From 31deb36c853536c4ddd9537304d63476ff534fb5 Mon Sep 17 00:00:00 2001 From: bcj Date: Sun, 23 May 2021 23:49:12 -0500 Subject: [PATCH 01/18] URL-Encode password in broker_url Needed to prevent connection errors if the password contains non-urlsafe characters. Dockerfile change because all the services using it are mirroring ./ in /app now anyway. Flower needs because it needs bookwyrm in order to read the celerywyrm config (because flower only allows overwriting broker_url from the command line and we want to do it in Python so we have access to a urlencode function). --- .env.dev.example | 4 +--- .env.prod.example | 2 -- Dockerfile | 2 -- bookwyrm/settings.py | 8 ++++++-- celerywyrm/settings.py | 4 ++-- docker-compose.yml | 6 +++--- 6 files changed, 12 insertions(+), 14 deletions(-) diff --git a/.env.dev.example b/.env.dev.example index 2f24378c6..03e6ef258 100644 --- a/.env.dev.example +++ b/.env.dev.example @@ -34,10 +34,8 @@ REDIS_ACTIVITY_PORT=6379 #REDIS_ACTIVITY_PASSWORD=redispassword345 # Redis as celery broker -#REDIS_BROKER_PORT=6379 +REDIS_BROKER_PORT=6379 #REDIS_BROKER_PASSWORD=redispassword123 -CELERY_BROKER=redis://redis_broker:6379/0 -CELERY_RESULT_BACKEND=redis://redis_broker:6379/0 FLOWER_PORT=8888 #FLOWER_USER=mouse diff --git a/.env.prod.example b/.env.prod.example index a82499a32..dd15fbb79 100644 --- a/.env.prod.example +++ b/.env.prod.example @@ -36,8 +36,6 @@ REDIS_ACTIVITY_PASSWORD=redispassword345 # Redis as celery broker REDIS_BROKER_PORT=6379 REDIS_BROKER_PASSWORD=redispassword123 -CELERY_BROKER=redis://:${REDIS_BROKER_PASSWORD}@redis_broker:${REDIS_BROKER_PORT}/0 -CELERY_RESULT_BACKEND=redis://:${REDIS_BROKER_PASSWORD}@redis_broker:${REDIS_BROKER_PORT}/0 FLOWER_PORT=8888 FLOWER_USER=mouse diff --git a/Dockerfile b/Dockerfile index 0f10015c6..1892ae234 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,5 +9,3 @@ WORKDIR /app COPY requirements.txt /app/ RUN pip install -r requirements.txt --no-cache-dir RUN apt-get update && apt-get install -y gettext libgettextpo-dev && apt-get clean - -COPY ./bookwyrm ./celerywyrm /app/ diff --git a/bookwyrm/settings.py b/bookwyrm/settings.py index d694e33fd..19d84c7f1 100644 --- a/bookwyrm/settings.py +++ b/bookwyrm/settings.py @@ -14,8 +14,12 @@ PAGE_LENGTH = env("PAGE_LENGTH", 15) DEFAULT_LANGUAGE = env("DEFAULT_LANGUAGE", "English") # celery -CELERY_BROKER = env("CELERY_BROKER") -CELERY_RESULT_BACKEND = env("CELERY_RESULT_BACKEND") +CELERY_BROKER = "redis://:{}@redis_broker:{}/0".format( + requests.utils.quote(env("REDIS_BROKER_PASSWORD", "")), env("REDIS_BROKER_PORT") +) +CELERY_RESULT_BACKEND = "redis://:{}@redis_broker:{}/0".format( + requests.utils.quote(env("REDIS_BROKER_PASSWORD", "")), env("REDIS_BROKER_PORT") +) CELERY_ACCEPT_CONTENT = ["application/json"] CELERY_TASK_SERIALIZER = "json" CELERY_RESULT_SERIALIZER = "json" diff --git a/celerywyrm/settings.py b/celerywyrm/settings.py index e4fa73ca2..63a6e9409 100644 --- a/celerywyrm/settings.py +++ b/celerywyrm/settings.py @@ -1,10 +1,10 @@ """ bookwyrm settings and configuration """ from bookwyrm.settings import * -CELERY_BROKER_URL = env("CELERY_BROKER") +CELERY_BROKER_URL = CELERY_BROKER CELERY_ACCEPT_CONTENT = ["json"] CELERY_TASK_SERIALIZER = "json" -CELERY_RESULT_BACKEND = "redis" +FLOWER_PORT = env("FLOWER_PORT") INSTALLED_APPS = INSTALLED_APPS + [ "celerywyrm", diff --git a/docker-compose.yml b/docker-compose.yml index 18f836502..49d02e706 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -74,10 +74,10 @@ services: restart: on-failure flower: build: . - command: flower --port=${FLOWER_PORT} + command: flower -A celerywyrm env_file: .env - environment: - - CELERY_BROKER_URL=${CELERY_BROKER} + volumes: + - .:/app networks: - main depends_on: From 2816d7cc88a5f671bb4a66cdec59ac22bfed4b89 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 1 Jun 2021 14:28:53 -0700 Subject: [PATCH 02/18] Use "instance" consistently --- bookwyrm/templates/layout.html | 2 +- bookwyrm/templates/moderation/reports.html | 4 +- bookwyrm/templates/settings/admin_layout.html | 2 +- bookwyrm/templates/settings/edit_server.html | 8 +- bookwyrm/templates/settings/federation.html | 10 +- .../templates/settings/server_blocklist.html | 8 +- .../templates/user_admin/server_filter.html | 2 +- bookwyrm/templates/user_admin/user_admin.html | 4 +- locale/de_DE/LC_MESSAGES/django.po | 269 +++++++++-------- locale/en_US/LC_MESSAGES/django.po | 221 +++++++------- locale/es/LC_MESSAGES/django.po | 107 ++++--- locale/fr_FR/LC_MESSAGES/django.po | 223 ++++++++------ locale/zh_Hans/LC_MESSAGES/django.po | 274 ++++++++++-------- 13 files changed, 651 insertions(+), 483 deletions(-) diff --git a/bookwyrm/templates/layout.html b/bookwyrm/templates/layout.html index d899d62cb..56530a841 100644 --- a/bookwyrm/templates/layout.html +++ b/bookwyrm/templates/layout.html @@ -203,7 +203,7 @@

- {% trans "About this server" %} + {% trans "About this instance" %}

{% if site.admin_email %}

diff --git a/bookwyrm/templates/moderation/reports.html b/bookwyrm/templates/moderation/reports.html index f9d9d99b6..95a276af4 100644 --- a/bookwyrm/templates/moderation/reports.html +++ b/bookwyrm/templates/moderation/reports.html @@ -3,7 +3,7 @@ {% block title %} {% if server %} -{% blocktrans with server_name=server.server_name %}Reports: {{ server_name }}{% endblocktrans %} +{% blocktrans with instance_name=server.server_name %}Reports: {{ instance_name }}{% endblocktrans %} {% else %} {% trans "Reports" %} {% endif %} @@ -11,7 +11,7 @@ {% block header %} {% if server %} -{% blocktrans with server_name=server.server_name %}Reports: {{ server_name }}{% endblocktrans %} +{% blocktrans with instance_name=server.server_name %}Reports: {{ instance_name }}{% endblocktrans %} Clear filters {% else %} {% trans "Reports" %} diff --git a/bookwyrm/templates/settings/admin_layout.html b/bookwyrm/templates/settings/admin_layout.html index 635e86072..9e57076bf 100644 --- a/bookwyrm/templates/settings/admin_layout.html +++ b/bookwyrm/templates/settings/admin_layout.html @@ -36,7 +36,7 @@

  • {% url 'settings-federation' as url %} - {% trans "Federated Servers" %} + {% trans "Federated Instances" %}
  • {% endif %} diff --git a/bookwyrm/templates/settings/edit_server.html b/bookwyrm/templates/settings/edit_server.html index c5702c848..d7ca3a788 100644 --- a/bookwyrm/templates/settings/edit_server.html +++ b/bookwyrm/templates/settings/edit_server.html @@ -1,10 +1,10 @@ {% extends 'settings/admin_layout.html' %} {% load i18n %} -{% block title %}{% trans "Add server" %}{% endblock %} +{% block title %}{% trans "Add instance" %}{% endblock %} {% block header %} -{% trans "Add server" %} -{% trans "Back to server list" %} +{% trans "Add instance" %} +{% trans "Back to instance list" %} {% endblock %} {% block panel %} @@ -17,7 +17,7 @@ {% url 'settings-add-federated-server' as url %}
  • - {% trans "Add server" %} + {% trans "Add instance" %}
  • diff --git a/bookwyrm/templates/settings/federation.html b/bookwyrm/templates/settings/federation.html index bf1986725..208ecf8d2 100644 --- a/bookwyrm/templates/settings/federation.html +++ b/bookwyrm/templates/settings/federation.html @@ -1,13 +1,13 @@ {% extends 'settings/admin_layout.html' %} {% load i18n %} -{% block title %}{% trans "Federated Servers" %}{% endblock %} +{% block title %}{% trans "Federated Instances" %}{% endblock %} -{% block header %}{% trans "Federated Servers" %}{% endblock %} +{% block header %}{% trans "Federated Instances" %}{% endblock %} {% block edit-button %} - - {% trans "Add server" %} + + {% trans "Add instance" %} {% endblock %} @@ -16,7 +16,7 @@ {% url 'settings-federation' as url %} - {% trans "Server name" as text %} + {% trans "Instance name" as text %} {% include 'snippets/table-sort-header.html' with field="server_name" sort=sort text=text %} diff --git a/bookwyrm/templates/settings/server_blocklist.html b/bookwyrm/templates/settings/server_blocklist.html index 0de49acd7..171cf1339 100644 --- a/bookwyrm/templates/settings/server_blocklist.html +++ b/bookwyrm/templates/settings/server_blocklist.html @@ -1,10 +1,10 @@ {% extends 'settings/admin_layout.html' %} {% load i18n %} -{% block title %}{% trans "Add server" %}{% endblock %} +{% block title %}{% trans "Add instance" %}{% endblock %} {% block header %} {% trans "Import Blocklist" %} -{% trans "Back to server list" %} +{% trans "Back to instance list" %} {% endblock %} {% block panel %} @@ -17,7 +17,7 @@ {% url 'settings-add-federated-server' as url %}
  • - {% trans "Add server" %} + {% trans "Add instance" %}
  • @@ -51,7 +51,7 @@
     [
         {
    -        "instance": "example.server.com",
    +        "instance": "example.instance.com",
             "url": "https://link.to.more/info"
         },
         ...
    diff --git a/bookwyrm/templates/user_admin/server_filter.html b/bookwyrm/templates/user_admin/server_filter.html
    index fd8760cce..2a4b89fdb 100644
    --- a/bookwyrm/templates/user_admin/server_filter.html
    +++ b/bookwyrm/templates/user_admin/server_filter.html
    @@ -2,6 +2,6 @@
     {% load i18n %}
     
     {% block filter %}
    -
    +
     
     {% endblock %}
    diff --git a/bookwyrm/templates/user_admin/user_admin.html b/bookwyrm/templates/user_admin/user_admin.html
    index 2ab526a9f..4b4c79793 100644
    --- a/bookwyrm/templates/user_admin/user_admin.html
    +++ b/bookwyrm/templates/user_admin/user_admin.html
    @@ -4,7 +4,7 @@
     
     {% block header %}
     {% if server %}
    -{% blocktrans with server_name=server.server_name %}Users: {{ server_name }}{% endblocktrans %}
    +{% blocktrans with instance_name=server.server_name %}Users: {{ instance_name }}{% endblocktrans %}
     Clear filters
     {% else %}
     {% trans "Users" %}
    @@ -35,7 +35,7 @@
                 {% include 'snippets/table-sort-header.html' with field="is_active" sort=sort text=text %}
             
             
    -            {% 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 %}
             
         
    diff --git a/locale/de_DE/LC_MESSAGES/django.po b/locale/de_DE/LC_MESSAGES/django.po
    index 40f770b56..9649dc149 100644
    --- a/locale/de_DE/LC_MESSAGES/django.po
    +++ b/locale/de_DE/LC_MESSAGES/django.po
    @@ -8,7 +8,7 @@ msgid ""
     msgstr ""
     "Project-Id-Version: 0.0.1\n"
     "Report-Msgid-Bugs-To: \n"
    -"POT-Creation-Date: 2021-05-20 14:40-0700\n"
    +"POT-Creation-Date: 2021-06-01 14:49-0700\n"
     "PO-Revision-Date: 2021-03-02 17:19-0800\n"
     "Last-Translator: Mouse Reeve \n"
     "Language-Team: English \n"
    @@ -62,12 +62,12 @@ msgid "Book Title"
     msgstr "Titel"
     
     #: bookwyrm/forms.py:301 bookwyrm/templates/snippets/create_status_form.html:34
    -#: bookwyrm/templates/user/shelf/shelf.html:84
    -#: bookwyrm/templates/user/shelf/shelf.html:115
    +#: bookwyrm/templates/user/shelf/shelf.html:85
    +#: bookwyrm/templates/user/shelf/shelf.html:116
     msgid "Rating"
     msgstr ""
     
    -#: bookwyrm/forms.py:303 bookwyrm/templates/lists/list.html:101
    +#: bookwyrm/forms.py:303 bookwyrm/templates/lists/list.html:107
     msgid "Sort By"
     msgstr ""
     
    @@ -83,41 +83,41 @@ msgstr "Zu lesen angefangen"
     msgid "Descending"
     msgstr "Zu lesen angefangen"
     
    -#: bookwyrm/models/fields.py:24
    +#: bookwyrm/models/fields.py:25
     #, python-format
     msgid "%(value)s is not a valid remote_id"
     msgstr "%(value)s ist keine gültige remote_id"
     
    -#: bookwyrm/models/fields.py:33 bookwyrm/models/fields.py:42
    +#: bookwyrm/models/fields.py:34 bookwyrm/models/fields.py:43
     #, python-format
     msgid "%(value)s is not a valid username"
     msgstr "%(value)s ist kein gültiger Username"
     
    -#: bookwyrm/models/fields.py:165 bookwyrm/templates/layout.html:155
    +#: bookwyrm/models/fields.py:166 bookwyrm/templates/layout.html:152
     msgid "username"
     msgstr "Username"
     
    -#: bookwyrm/models/fields.py:170
    +#: bookwyrm/models/fields.py:171
     msgid "A user with that username already exists."
     msgstr "Dieser Benutzename ist bereits vergeben."
     
    -#: bookwyrm/settings.py:155
    +#: bookwyrm/settings.py:156
     msgid "English"
     msgstr "Englisch"
     
    -#: bookwyrm/settings.py:156
    +#: bookwyrm/settings.py:157
     msgid "German"
     msgstr "Deutsch"
     
    -#: bookwyrm/settings.py:157
    +#: bookwyrm/settings.py:158
     msgid "Spanish"
     msgstr "Spanisch"
     
    -#: bookwyrm/settings.py:158
    +#: bookwyrm/settings.py:159
     msgid "French"
     msgstr "Französisch"
     
    -#: bookwyrm/settings.py:159
    +#: bookwyrm/settings.py:160
     msgid "Simplified Chinese"
     msgstr "Vereinfachtes Chinesisch"
     
    @@ -266,7 +266,7 @@ msgstr ""
     #: bookwyrm/templates/book/edit_book.html:263
     #: bookwyrm/templates/lists/form.html:42
     #: bookwyrm/templates/preferences/edit_user.html:70
    -#: bookwyrm/templates/settings/announcement_form.html:65
    +#: bookwyrm/templates/settings/announcement_form.html:69
     #: bookwyrm/templates/settings/edit_server.html:68
     #: bookwyrm/templates/settings/federated_server.html:98
     #: bookwyrm/templates/settings/site.html:97
    @@ -398,7 +398,7 @@ msgstr "Themen"
     msgid "Places"
     msgstr "Orte"
     
    -#: bookwyrm/templates/book/book.html:276 bookwyrm/templates/layout.html:64
    +#: bookwyrm/templates/book/book.html:276 bookwyrm/templates/layout.html:61
     #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
     #: bookwyrm/templates/search/layout.html:25
     #: bookwyrm/templates/search/layout.html:50
    @@ -414,7 +414,7 @@ msgstr "Zur Liste"
     
     #: bookwyrm/templates/book/book.html:297
     #: bookwyrm/templates/book/cover_modal.html:31
    -#: bookwyrm/templates/lists/list.html:164
    +#: bookwyrm/templates/lists/list.html:179
     msgid "Add"
     msgstr "Hinzufügen"
     
    @@ -559,7 +559,7 @@ msgid "John Doe, Jane Smith"
     msgstr ""
     
     #: bookwyrm/templates/book/edit_book.html:183
    -#: bookwyrm/templates/user/shelf/shelf.html:77
    +#: bookwyrm/templates/user/shelf/shelf.html:78
     msgid "Cover"
     msgstr ""
     
    @@ -688,7 +688,7 @@ msgstr "Föderiert"
     
     #: bookwyrm/templates/directory/directory.html:4
     #: bookwyrm/templates/directory/directory.html:9
    -#: bookwyrm/templates/layout.html:92
    +#: bookwyrm/templates/layout.html:64
     msgid "Directory"
     msgstr ""
     
    @@ -902,7 +902,7 @@ msgid "Direct Messages with %(username)s"
     msgstr "Direktnachrichten mit %(username)s"
     
     #: bookwyrm/templates/feed/direct_messages.html:10
    -#: bookwyrm/templates/layout.html:87
    +#: bookwyrm/templates/layout.html:92
     msgid "Direct Messages"
     msgstr "Direktnachrichten"
     
    @@ -960,7 +960,6 @@ msgid "Updates"
     msgstr ""
     
     #: bookwyrm/templates/feed/feed_layout.html:10
    -#: bookwyrm/templates/layout.html:58
     #: bookwyrm/templates/user/shelf/books_header.html:3
     msgid "Your books"
     msgstr "Deine Bücher"
    @@ -1022,7 +1021,7 @@ msgid "What are you reading?"
     msgstr "Zu lesen angefangen"
     
     #: bookwyrm/templates/get_started/books.html:9
    -#: bookwyrm/templates/lists/list.html:120
    +#: bookwyrm/templates/lists/list.html:135
     msgid "Search for a book"
     msgstr "Nach einem Buch suchen"
     
    @@ -1042,7 +1041,7 @@ msgstr ""
     #: bookwyrm/templates/get_started/users.html:18
     #: bookwyrm/templates/get_started/users.html:19
     #: bookwyrm/templates/layout.html:37 bookwyrm/templates/layout.html:38
    -#: bookwyrm/templates/lists/list.html:124
    +#: bookwyrm/templates/lists/list.html:139
     #: bookwyrm/templates/search/layout.html:4
     #: bookwyrm/templates/search/layout.html:9
     msgid "Search"
    @@ -1061,7 +1060,7 @@ msgid "Popular on %(site_name)s"
     msgstr "Über %(site_name)s"
     
     #: bookwyrm/templates/get_started/books.html:58
    -#: bookwyrm/templates/lists/list.html:137
    +#: bookwyrm/templates/lists/list.html:152
     msgid "No books found"
     msgstr "Keine Bücher gefunden"
     
    @@ -1184,7 +1183,7 @@ msgid "%(username)s's %(year)s Books"
     msgstr "%(username)ss %(year)s Bücher"
     
     #: bookwyrm/templates/import.html:5 bookwyrm/templates/import.html:9
    -#: bookwyrm/templates/layout.html:97
    +#: bookwyrm/templates/user/shelf/shelf.html:40
     msgid "Import Books"
     msgstr "Bücher importieren"
     
    @@ -1271,14 +1270,14 @@ msgstr "Buch"
     
     #: bookwyrm/templates/import_status.html:114
     #: bookwyrm/templates/snippets/create_status_form.html:13
    -#: bookwyrm/templates/user/shelf/shelf.html:78
    -#: bookwyrm/templates/user/shelf/shelf.html:98
    +#: bookwyrm/templates/user/shelf/shelf.html:79
    +#: bookwyrm/templates/user/shelf/shelf.html:99
     msgid "Title"
     msgstr "Titel"
     
     #: bookwyrm/templates/import_status.html:117
    -#: bookwyrm/templates/user/shelf/shelf.html:79
    -#: bookwyrm/templates/user/shelf/shelf.html:101
    +#: bookwyrm/templates/user/shelf/shelf.html:80
    +#: bookwyrm/templates/user/shelf/shelf.html:102
     msgid "Author"
     msgstr "Autor*in"
     
    @@ -1320,15 +1319,21 @@ msgstr "Suche nach Buch oder Benutzer*in"
     msgid "Main navigation menu"
     msgstr "Navigationshauptmenü"
     
    -#: bookwyrm/templates/layout.html:61
    +#: bookwyrm/templates/layout.html:58
     msgid "Feed"
     msgstr ""
     
    -#: bookwyrm/templates/layout.html:102
    +#: bookwyrm/templates/layout.html:87
    +#, fuzzy
    +#| msgid "Your books"
    +msgid "Your Books"
    +msgstr "Deine Bücher"
    +
    +#: bookwyrm/templates/layout.html:97
     msgid "Settings"
     msgstr "Einstellungen"
     
    -#: bookwyrm/templates/layout.html:111
    +#: bookwyrm/templates/layout.html:106
     #: bookwyrm/templates/settings/admin_layout.html:31
     #: bookwyrm/templates/settings/manage_invite_requests.html:15
     #: bookwyrm/templates/settings/manage_invites.html:3
    @@ -1336,45 +1341,47 @@ msgstr "Einstellungen"
     msgid "Invites"
     msgstr "Einladungen"
     
    -#: bookwyrm/templates/layout.html:118
    +#: bookwyrm/templates/layout.html:113
     msgid "Admin"
     msgstr ""
     
    -#: bookwyrm/templates/layout.html:125
    +#: bookwyrm/templates/layout.html:120
     msgid "Log out"
     msgstr "Abmelden"
     
    -#: bookwyrm/templates/layout.html:133 bookwyrm/templates/layout.html:134
    +#: bookwyrm/templates/layout.html:128 bookwyrm/templates/layout.html:129
     #: bookwyrm/templates/notifications.html:6
     #: bookwyrm/templates/notifications.html:11
     msgid "Notifications"
     msgstr "Benachrichtigungen"
     
    -#: bookwyrm/templates/layout.html:154 bookwyrm/templates/layout.html:158
    +#: bookwyrm/templates/layout.html:151 bookwyrm/templates/layout.html:155
     #: bookwyrm/templates/login.html:17
     #: bookwyrm/templates/snippets/register_form.html:4
     msgid "Username:"
     msgstr ""
     
    -#: bookwyrm/templates/layout.html:159
    +#: bookwyrm/templates/layout.html:156
     msgid "password"
     msgstr "Passwort"
     
    -#: bookwyrm/templates/layout.html:160 bookwyrm/templates/login.html:36
    +#: bookwyrm/templates/layout.html:157 bookwyrm/templates/login.html:36
     msgid "Forgot your password?"
     msgstr "Passwort vergessen?"
     
    -#: bookwyrm/templates/layout.html:163 bookwyrm/templates/login.html:10
    +#: bookwyrm/templates/layout.html:160 bookwyrm/templates/login.html:10
     #: bookwyrm/templates/login.html:33
     msgid "Log in"
     msgstr "Anmelden"
     
    -#: bookwyrm/templates/layout.html:171
    +#: bookwyrm/templates/layout.html:168
     msgid "Join"
     msgstr ""
     
     #: bookwyrm/templates/layout.html:206
    -msgid "About this server"
    +#, fuzzy
    +#| msgid "About this server"
    +msgid "About this instance"
     msgstr "Über diesen Server"
     
     #: bookwyrm/templates/layout.html:210
    @@ -1438,7 +1445,7 @@ msgid "Discard"
     msgstr "Ablehnen"
     
     #: bookwyrm/templates/lists/edit_form.html:5
    -#: bookwyrm/templates/lists/list_layout.html:17
    +#: bookwyrm/templates/lists/list_layout.html:16
     msgid "Edit List"
     msgstr "Liste bearbeiten"
     
    @@ -1487,63 +1494,64 @@ msgstr "Alle können Bücher hinzufügen"
     msgid "This list is currently empty"
     msgstr "Diese Liste ist momentan leer"
     
    -#: bookwyrm/templates/lists/list.html:65
    +#: bookwyrm/templates/lists/list.html:66
     #, fuzzy, python-format
     #| msgid "Direct Messages with %(username)s"
     msgid "Added by %(username)s"
     msgstr "Direktnachrichten mit %(username)s"
     
    -#: bookwyrm/templates/lists/list.html:77
    -#, fuzzy
    -#| msgid "Started"
    -msgid "Set"
    -msgstr "Gestartet"
    -
    -#: bookwyrm/templates/lists/list.html:80
    +#: bookwyrm/templates/lists/list.html:74
     #, fuzzy
     #| msgid "List curation:"
     msgid "List position"
     msgstr "Listenkuratierung:"
     
    -#: bookwyrm/templates/lists/list.html:86
    +#: bookwyrm/templates/lists/list.html:81
    +#, fuzzy
    +#| msgid "Started"
    +msgid "Set"
    +msgstr "Gestartet"
    +
    +#: bookwyrm/templates/lists/list.html:89
     #: bookwyrm/templates/snippets/shelf_selector.html:26
     msgid "Remove"
     msgstr "Entfernen"
     
    -#: bookwyrm/templates/lists/list.html:99 bookwyrm/templates/lists/list.html:111
    +#: bookwyrm/templates/lists/list.html:103
    +#: bookwyrm/templates/lists/list.html:120
     #, fuzzy
     #| msgid "Your Lists"
     msgid "Sort List"
     msgstr "Deine Listen"
     
    -#: bookwyrm/templates/lists/list.html:105
    +#: bookwyrm/templates/lists/list.html:113
     #, fuzzy
     #| msgid "List curation:"
     msgid "Direction"
     msgstr "Listenkuratierung:"
     
    -#: bookwyrm/templates/lists/list.html:116
    +#: bookwyrm/templates/lists/list.html:127
     msgid "Add Books"
     msgstr "Bücher hinzufügen"
     
    -#: bookwyrm/templates/lists/list.html:116
    +#: bookwyrm/templates/lists/list.html:129
     msgid "Suggest Books"
     msgstr "Bücher vorschlagen"
     
    -#: bookwyrm/templates/lists/list.html:125
    +#: bookwyrm/templates/lists/list.html:140
     msgid "search"
     msgstr "suchen"
     
    -#: bookwyrm/templates/lists/list.html:131
    +#: bookwyrm/templates/lists/list.html:146
     msgid "Clear search"
     msgstr "Suche leeren"
     
    -#: bookwyrm/templates/lists/list.html:136
    +#: bookwyrm/templates/lists/list.html:151
     #, python-format
     msgid "No books found matching the query \"%(query)s\""
     msgstr "Keine passenden Bücher zu \"%(query)s\" gefunden"
     
    -#: bookwyrm/templates/lists/list.html:164
    +#: bookwyrm/templates/lists/list.html:179
     msgid "Suggest"
     msgstr "Vorschlagen"
     
    @@ -1643,7 +1651,7 @@ msgstr "Lösen"
     #: bookwyrm/templates/moderation/reports.html:6
     #, fuzzy, python-format
     #| msgid "Lists: %(username)s"
    -msgid "Reports: %(server_name)s"
    +msgid "Reports: %(instance_name)s"
     msgstr "Listen: %(username)s"
     
     #: bookwyrm/templates/moderation/reports.html:8
    @@ -1657,7 +1665,7 @@ msgstr "Aktuelle Importe"
     #: bookwyrm/templates/moderation/reports.html:14
     #, fuzzy, python-format
     #| msgid "Lists: %(username)s"
    -msgid "Reports: %(server_name)s"
    +msgid "Reports: %(instance_name)s"
     msgstr "Listen: %(username)s"
     
     #: bookwyrm/templates/moderation/reports.html:28
    @@ -1863,6 +1871,26 @@ msgstr "Profil"
     msgid "Relationships"
     msgstr "Beziehungen"
     
    +#: bookwyrm/templates/rss/title.html:5
    +#: bookwyrm/templates/snippets/status/status_header.html:35
    +msgid "rated"
    +msgstr ""
    +
    +#: bookwyrm/templates/rss/title.html:7
    +#: bookwyrm/templates/snippets/status/status_header.html:37
    +msgid "reviewed"
    +msgstr "bewertete"
    +
    +#: bookwyrm/templates/rss/title.html:9
    +#: bookwyrm/templates/snippets/status/status_header.html:39
    +msgid "commented on"
    +msgstr "kommentierte"
    +
    +#: bookwyrm/templates/rss/title.html:11
    +#: bookwyrm/templates/snippets/status/status_header.html:41
    +msgid "quoted"
    +msgstr "zitierte"
    +
     #: bookwyrm/templates/search/book.html:64
     #, fuzzy
     #| msgid "Show results from other catalogues"
    @@ -1922,7 +1950,9 @@ msgstr "Nutzer*innen verwalten"
     #: bookwyrm/templates/settings/admin_layout.html:39
     #: bookwyrm/templates/settings/federation.html:3
     #: bookwyrm/templates/settings/federation.html:5
    -msgid "Federated Servers"
    +#, fuzzy
    +#| msgid "Federated Servers"
    +msgid "Federated Instances"
     msgstr "Föderierende Server"
     
     #: bookwyrm/templates/settings/admin_layout.html:44
    @@ -1976,6 +2006,7 @@ msgid "Back to list"
     msgstr "Zurück zu den Meldungen"
     
     #: bookwyrm/templates/settings/announcement.html:11
    +#: bookwyrm/templates/settings/announcement_form.html:6
     #, fuzzy
     #| msgid "Announcements"
     msgid "Edit Announcement"
    @@ -2017,7 +2048,7 @@ msgstr "Geburtsdatum:"
     msgid "Active:"
     msgstr "Aktivität"
     
    -#: bookwyrm/templates/settings/announcement_form.html:5
    +#: bookwyrm/templates/settings/announcement_form.html:8
     #: bookwyrm/templates/settings/announcements.html:8
     #, fuzzy
     #| msgid "Announcements"
    @@ -2076,15 +2107,15 @@ msgstr "Aktivität"
     #: bookwyrm/templates/settings/server_blocklist.html:3
     #: bookwyrm/templates/settings/server_blocklist.html:20
     #, fuzzy
    -#| msgid "Add cover"
    -msgid "Add server"
    -msgstr "Cover hinzufügen"
    +#| msgid "Instance Name:"
    +msgid "Add instance"
    +msgstr "Instanzname"
     
     #: bookwyrm/templates/settings/edit_server.html:7
     #: bookwyrm/templates/settings/server_blocklist.html:7
     #, fuzzy
     #| msgid "Back to reports"
    -msgid "Back to server list"
    +msgid "Back to instance list"
     msgstr "Zurück zu den Meldungen"
     
     #: bookwyrm/templates/settings/edit_server.html:16
    @@ -2213,8 +2244,10 @@ msgstr ""
     
     #: bookwyrm/templates/settings/federation.html:19
     #: bookwyrm/templates/user_admin/server_filter.html:5
    -msgid "Server name"
    -msgstr "Servername"
    +#, fuzzy
    +#| msgid "Instance Name:"
    +msgid "Instance name"
    +msgstr "Instanzname"
     
     #: bookwyrm/templates/settings/federation.html:23
     #, fuzzy
    @@ -2353,7 +2386,7 @@ msgid "Import Blocklist"
     msgstr "Bücher importieren"
     
     #: bookwyrm/templates/settings/server_blocklist.html:26
    -#: bookwyrm/templates/snippets/goal_progress.html:5
    +#: bookwyrm/templates/snippets/goal_progress.html:7
     msgid "Success!"
     msgstr "Erfolg!"
     
    @@ -2446,15 +2479,15 @@ msgstr "Cover hinzufügen"
     msgid "%(title)s by "
     msgstr "%(title)s von "
     
    -#: bookwyrm/templates/snippets/boost_button.html:9
    -#: bookwyrm/templates/snippets/boost_button.html:10
    +#: bookwyrm/templates/snippets/boost_button.html:20
    +#: bookwyrm/templates/snippets/boost_button.html:21
     #, fuzzy
     #| msgid "boosted"
     msgid "Boost"
     msgstr "teilt"
     
    -#: bookwyrm/templates/snippets/boost_button.html:16
    -#: bookwyrm/templates/snippets/boost_button.html:17
    +#: bookwyrm/templates/snippets/boost_button.html:33
    +#: bookwyrm/templates/snippets/boost_button.html:34
     #, fuzzy
     #| msgid "Un-boost status"
     msgid "Un-boost"
    @@ -2554,13 +2587,13 @@ msgstr "Diese Lesedaten löschen?"
     msgid "You are deleting this readthrough and its %(count)s associated progress updates."
     msgstr "Du löscht diesen Leseforschritt und %(count)s zugehörige Fortschrittsupdates."
     
    -#: bookwyrm/templates/snippets/fav_button.html:9
    -#: bookwyrm/templates/snippets/fav_button.html:11
    +#: bookwyrm/templates/snippets/fav_button.html:10
    +#: bookwyrm/templates/snippets/fav_button.html:12
     msgid "Like"
     msgstr ""
     
    -#: bookwyrm/templates/snippets/fav_button.html:17
     #: bookwyrm/templates/snippets/fav_button.html:18
    +#: bookwyrm/templates/snippets/fav_button.html:19
     #, fuzzy
     #| msgid "Un-like status"
     msgid "Un-like"
    @@ -2664,17 +2697,17 @@ msgstr "Posten"
     msgid "Set goal"
     msgstr "Ziel setzen"
     
    -#: bookwyrm/templates/snippets/goal_progress.html:7
    +#: bookwyrm/templates/snippets/goal_progress.html:9
     #, python-format
     msgid "%(percent)s%% complete!"
     msgstr "%(percent)s%% komplett!"
     
    -#: bookwyrm/templates/snippets/goal_progress.html:10
    +#: bookwyrm/templates/snippets/goal_progress.html:12
     #, python-format
     msgid "You've read %(read_count)s of %(goal_count)s books."
     msgstr "Du hast %(read_count)s von %(goal_count)s Büchern gelesen."
     
    -#: bookwyrm/templates/snippets/goal_progress.html:12
    +#: bookwyrm/templates/snippets/goal_progress.html:14
     #, python-format
     msgid "%(username)s has read %(read_count)s of %(goal_count)s books."
     msgstr "%(username)s hat %(read_count)s von %(goal_count)s Büchern gelesen."
    @@ -2787,26 +2820,6 @@ msgstr "Registrieren"
     msgid "Report"
     msgstr "Importieren"
     
    -#: bookwyrm/templates/snippets/rss_title.html:5
    -#: bookwyrm/templates/snippets/status/status_header.html:35
    -msgid "rated"
    -msgstr ""
    -
    -#: bookwyrm/templates/snippets/rss_title.html:7
    -#: bookwyrm/templates/snippets/status/status_header.html:37
    -msgid "reviewed"
    -msgstr "bewertete"
    -
    -#: bookwyrm/templates/snippets/rss_title.html:9
    -#: bookwyrm/templates/snippets/status/status_header.html:39
    -msgid "commented on"
    -msgstr "kommentierte"
    -
    -#: bookwyrm/templates/snippets/rss_title.html:11
    -#: bookwyrm/templates/snippets/status/status_header.html:41
    -msgid "quoted"
    -msgstr "zitierte"
    -
     #: bookwyrm/templates/snippets/search_result_text.html:36
     msgid "Import book"
     msgstr "Buch importieren"
    @@ -2989,7 +3002,7 @@ msgstr "Regal bearbeiten"
     msgid "Update shelf"
     msgstr "Regal aktualisieren"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:25 bookwyrm/views/shelf.py:51
    +#: bookwyrm/templates/user/shelf/shelf.html:25 bookwyrm/views/shelf.py:56
     #, fuzzy
     #| msgid "books"
     msgid "All books"
    @@ -2999,30 +3012,30 @@ msgstr "Bücher"
     msgid "Create shelf"
     msgstr "Regal erstellen"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:61
    +#: bookwyrm/templates/user/shelf/shelf.html:62
     msgid "Edit shelf"
     msgstr "Regal bearbeiten"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:80
    -#: bookwyrm/templates/user/shelf/shelf.html:104
    +#: bookwyrm/templates/user/shelf/shelf.html:81
    +#: bookwyrm/templates/user/shelf/shelf.html:105
     msgid "Shelved"
     msgstr "Ins Regal gestellt"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:81
    -#: bookwyrm/templates/user/shelf/shelf.html:108
    +#: bookwyrm/templates/user/shelf/shelf.html:82
    +#: bookwyrm/templates/user/shelf/shelf.html:109
     msgid "Started"
     msgstr "Gestartet"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:82
    -#: bookwyrm/templates/user/shelf/shelf.html:111
    +#: bookwyrm/templates/user/shelf/shelf.html:83
    +#: bookwyrm/templates/user/shelf/shelf.html:112
     msgid "Finished"
     msgstr "Abgeschlossen"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:137
    +#: bookwyrm/templates/user/shelf/shelf.html:138
     msgid "This shelf is empty."
     msgstr "Dieses Regal ist leer."
     
    -#: bookwyrm/templates/user/shelf/shelf.html:143
    +#: bookwyrm/templates/user/shelf/shelf.html:144
     msgid "Delete shelf"
     msgstr "Regal löschen"
     
    @@ -3084,9 +3097,10 @@ msgid "Back to users"
     msgstr "Zurück zu den Meldungen"
     
     #: bookwyrm/templates/user_admin/user_admin.html:7
    -#, python-format
    -msgid "Users: %(server_name)s"
    -msgstr ""
    +#, fuzzy, python-format
    +#| msgid "Lists: %(username)s"
    +msgid "Users: %(instance_name)s"
    +msgstr "Listen: %(username)s"
     
     #: bookwyrm/templates/user_admin/user_admin.html:22
     #: bookwyrm/templates/user_admin/username_filter.html:5
    @@ -3107,9 +3121,9 @@ msgstr ""
     
     #: bookwyrm/templates/user_admin/user_admin.html:38
     #, fuzzy
    -#| msgid "Remove"
    -msgid "Remote server"
    -msgstr "Entfernen"
    +#| msgid "Instance Name:"
    +msgid "Remote instance"
    +msgstr "Instanzname"
     
     #: bookwyrm/templates/user_admin/user_admin.html:47
     #, fuzzy
    @@ -3158,6 +3172,10 @@ msgstr ""
     msgid "Access level:"
     msgstr ""
     
    +#: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:3
    +msgid "File exceeds maximum size: 10MB"
    +msgstr ""
    +
     #: bookwyrm/views/import_data.py:67
     #, fuzzy
     #| msgid "Email address:"
    @@ -3175,6 +3193,27 @@ msgstr "Dieser Benutzename ist bereits vergeben."
     msgid "A password reset link sent to %s"
     msgstr ""
     
    +#, fuzzy, python-format
    +#~| msgid "Lists: %(username)s"
    +#~ msgid "Reports: %(server_name)s"
    +#~ msgstr "Listen: %(username)s"
    +
    +#~ msgid "Federated Servers"
    +#~ msgstr "Föderierende Server"
    +
    +#~ msgid "Server name"
    +#~ msgstr "Servername"
    +
    +#, fuzzy
    +#~| msgid "Add cover"
    +#~ msgid "Add server"
    +#~ msgstr "Cover hinzufügen"
    +
    +#, fuzzy
    +#~| msgid "Remove"
    +#~ msgid "Remote server"
    +#~ msgstr "Entfernen"
    +
     #, fuzzy
     #~| msgid "Book"
     #~ msgid "BookWyrm\\"
    diff --git a/locale/en_US/LC_MESSAGES/django.po b/locale/en_US/LC_MESSAGES/django.po
    index 1fa5eb304..7d1044b2b 100644
    --- a/locale/en_US/LC_MESSAGES/django.po
    +++ b/locale/en_US/LC_MESSAGES/django.po
    @@ -8,7 +8,7 @@ msgid ""
     msgstr ""
     "Project-Id-Version: 0.0.1\n"
     "Report-Msgid-Bugs-To: \n"
    -"POT-Creation-Date: 2021-05-20 14:40-0700\n"
    +"POT-Creation-Date: 2021-06-01 14:49-0700\n"
     "PO-Revision-Date: 2021-02-28 17:19-0800\n"
     "Last-Translator: Mouse Reeve \n"
     "Language-Team: English \n"
    @@ -56,12 +56,12 @@ msgid "Book Title"
     msgstr ""
     
     #: bookwyrm/forms.py:301 bookwyrm/templates/snippets/create_status_form.html:34
    -#: bookwyrm/templates/user/shelf/shelf.html:84
    -#: bookwyrm/templates/user/shelf/shelf.html:115
    +#: bookwyrm/templates/user/shelf/shelf.html:85
    +#: bookwyrm/templates/user/shelf/shelf.html:116
     msgid "Rating"
     msgstr ""
     
    -#: bookwyrm/forms.py:303 bookwyrm/templates/lists/list.html:101
    +#: bookwyrm/forms.py:303 bookwyrm/templates/lists/list.html:107
     msgid "Sort By"
     msgstr ""
     
    @@ -73,41 +73,41 @@ msgstr ""
     msgid "Descending"
     msgstr ""
     
    -#: bookwyrm/models/fields.py:24
    +#: bookwyrm/models/fields.py:25
     #, python-format
     msgid "%(value)s is not a valid remote_id"
     msgstr ""
     
    -#: bookwyrm/models/fields.py:33 bookwyrm/models/fields.py:42
    +#: bookwyrm/models/fields.py:34 bookwyrm/models/fields.py:43
     #, python-format
     msgid "%(value)s is not a valid username"
     msgstr ""
     
    -#: bookwyrm/models/fields.py:165 bookwyrm/templates/layout.html:155
    +#: bookwyrm/models/fields.py:166 bookwyrm/templates/layout.html:152
     msgid "username"
     msgstr ""
     
    -#: bookwyrm/models/fields.py:170
    +#: bookwyrm/models/fields.py:171
     msgid "A user with that username already exists."
     msgstr ""
     
    -#: bookwyrm/settings.py:155
    +#: bookwyrm/settings.py:156
     msgid "English"
     msgstr ""
     
    -#: bookwyrm/settings.py:156
    +#: bookwyrm/settings.py:157
     msgid "German"
     msgstr ""
     
    -#: bookwyrm/settings.py:157
    +#: bookwyrm/settings.py:158
     msgid "Spanish"
     msgstr ""
     
    -#: bookwyrm/settings.py:158
    +#: bookwyrm/settings.py:159
     msgid "French"
     msgstr ""
     
    -#: bookwyrm/settings.py:159
    +#: bookwyrm/settings.py:160
     msgid "Simplified Chinese"
     msgstr ""
     
    @@ -248,7 +248,7 @@ msgstr ""
     #: bookwyrm/templates/book/edit_book.html:263
     #: bookwyrm/templates/lists/form.html:42
     #: bookwyrm/templates/preferences/edit_user.html:70
    -#: bookwyrm/templates/settings/announcement_form.html:65
    +#: bookwyrm/templates/settings/announcement_form.html:69
     #: bookwyrm/templates/settings/edit_server.html:68
     #: bookwyrm/templates/settings/federated_server.html:98
     #: bookwyrm/templates/settings/site.html:97
    @@ -367,7 +367,7 @@ msgstr ""
     msgid "Places"
     msgstr ""
     
    -#: bookwyrm/templates/book/book.html:276 bookwyrm/templates/layout.html:64
    +#: bookwyrm/templates/book/book.html:276 bookwyrm/templates/layout.html:61
     #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
     #: bookwyrm/templates/search/layout.html:25
     #: bookwyrm/templates/search/layout.html:50
    @@ -381,7 +381,7 @@ msgstr ""
     
     #: bookwyrm/templates/book/book.html:297
     #: bookwyrm/templates/book/cover_modal.html:31
    -#: bookwyrm/templates/lists/list.html:164
    +#: bookwyrm/templates/lists/list.html:179
     msgid "Add"
     msgstr ""
     
    @@ -511,7 +511,7 @@ msgid "John Doe, Jane Smith"
     msgstr ""
     
     #: bookwyrm/templates/book/edit_book.html:183
    -#: bookwyrm/templates/user/shelf/shelf.html:77
    +#: bookwyrm/templates/user/shelf/shelf.html:78
     msgid "Cover"
     msgstr ""
     
    @@ -630,7 +630,7 @@ msgstr ""
     
     #: bookwyrm/templates/directory/directory.html:4
     #: bookwyrm/templates/directory/directory.html:9
    -#: bookwyrm/templates/layout.html:92
    +#: bookwyrm/templates/layout.html:64
     msgid "Directory"
     msgstr ""
     
    @@ -831,7 +831,7 @@ msgid "Direct Messages with %(username)s"
     msgstr ""
     
     #: bookwyrm/templates/feed/direct_messages.html:10
    -#: bookwyrm/templates/layout.html:87
    +#: bookwyrm/templates/layout.html:92
     msgid "Direct Messages"
     msgstr ""
     
    @@ -887,7 +887,6 @@ msgid "Updates"
     msgstr ""
     
     #: bookwyrm/templates/feed/feed_layout.html:10
    -#: bookwyrm/templates/layout.html:58
     #: bookwyrm/templates/user/shelf/books_header.html:3
     msgid "Your books"
     msgstr ""
    @@ -942,7 +941,7 @@ msgid "What are you reading?"
     msgstr ""
     
     #: bookwyrm/templates/get_started/books.html:9
    -#: bookwyrm/templates/lists/list.html:120
    +#: bookwyrm/templates/lists/list.html:135
     msgid "Search for a book"
     msgstr ""
     
    @@ -962,7 +961,7 @@ msgstr ""
     #: bookwyrm/templates/get_started/users.html:18
     #: bookwyrm/templates/get_started/users.html:19
     #: bookwyrm/templates/layout.html:37 bookwyrm/templates/layout.html:38
    -#: bookwyrm/templates/lists/list.html:124
    +#: bookwyrm/templates/lists/list.html:139
     #: bookwyrm/templates/search/layout.html:4
     #: bookwyrm/templates/search/layout.html:9
     msgid "Search"
    @@ -978,7 +977,7 @@ msgid "Popular on %(site_name)s"
     msgstr ""
     
     #: bookwyrm/templates/get_started/books.html:58
    -#: bookwyrm/templates/lists/list.html:137
    +#: bookwyrm/templates/lists/list.html:152
     msgid "No books found"
     msgstr ""
     
    @@ -1090,7 +1089,7 @@ msgid "%(username)s's %(year)s Books"
     msgstr ""
     
     #: bookwyrm/templates/import.html:5 bookwyrm/templates/import.html:9
    -#: bookwyrm/templates/layout.html:97
    +#: bookwyrm/templates/user/shelf/shelf.html:40
     msgid "Import Books"
     msgstr ""
     
    @@ -1175,14 +1174,14 @@ msgstr ""
     
     #: bookwyrm/templates/import_status.html:114
     #: bookwyrm/templates/snippets/create_status_form.html:13
    -#: bookwyrm/templates/user/shelf/shelf.html:78
    -#: bookwyrm/templates/user/shelf/shelf.html:98
    +#: bookwyrm/templates/user/shelf/shelf.html:79
    +#: bookwyrm/templates/user/shelf/shelf.html:99
     msgid "Title"
     msgstr ""
     
     #: bookwyrm/templates/import_status.html:117
    -#: bookwyrm/templates/user/shelf/shelf.html:79
    -#: bookwyrm/templates/user/shelf/shelf.html:101
    +#: bookwyrm/templates/user/shelf/shelf.html:80
    +#: bookwyrm/templates/user/shelf/shelf.html:102
     msgid "Author"
     msgstr ""
     
    @@ -1224,15 +1223,19 @@ msgstr ""
     msgid "Main navigation menu"
     msgstr ""
     
    -#: bookwyrm/templates/layout.html:61
    +#: bookwyrm/templates/layout.html:58
     msgid "Feed"
     msgstr ""
     
    -#: bookwyrm/templates/layout.html:102
    +#: bookwyrm/templates/layout.html:87
    +msgid "Your Books"
    +msgstr ""
    +
    +#: bookwyrm/templates/layout.html:97
     msgid "Settings"
     msgstr ""
     
    -#: bookwyrm/templates/layout.html:111
    +#: bookwyrm/templates/layout.html:106
     #: bookwyrm/templates/settings/admin_layout.html:31
     #: bookwyrm/templates/settings/manage_invite_requests.html:15
     #: bookwyrm/templates/settings/manage_invites.html:3
    @@ -1240,45 +1243,45 @@ msgstr ""
     msgid "Invites"
     msgstr ""
     
    -#: bookwyrm/templates/layout.html:118
    +#: bookwyrm/templates/layout.html:113
     msgid "Admin"
     msgstr ""
     
    -#: bookwyrm/templates/layout.html:125
    +#: bookwyrm/templates/layout.html:120
     msgid "Log out"
     msgstr ""
     
    -#: bookwyrm/templates/layout.html:133 bookwyrm/templates/layout.html:134
    +#: bookwyrm/templates/layout.html:128 bookwyrm/templates/layout.html:129
     #: bookwyrm/templates/notifications.html:6
     #: bookwyrm/templates/notifications.html:11
     msgid "Notifications"
     msgstr ""
     
    -#: bookwyrm/templates/layout.html:154 bookwyrm/templates/layout.html:158
    +#: bookwyrm/templates/layout.html:151 bookwyrm/templates/layout.html:155
     #: bookwyrm/templates/login.html:17
     #: bookwyrm/templates/snippets/register_form.html:4
     msgid "Username:"
     msgstr ""
     
    -#: bookwyrm/templates/layout.html:159
    +#: bookwyrm/templates/layout.html:156
     msgid "password"
     msgstr ""
     
    -#: bookwyrm/templates/layout.html:160 bookwyrm/templates/login.html:36
    +#: bookwyrm/templates/layout.html:157 bookwyrm/templates/login.html:36
     msgid "Forgot your password?"
     msgstr ""
     
    -#: bookwyrm/templates/layout.html:163 bookwyrm/templates/login.html:10
    +#: bookwyrm/templates/layout.html:160 bookwyrm/templates/login.html:10
     #: bookwyrm/templates/login.html:33
     msgid "Log in"
     msgstr ""
     
    -#: bookwyrm/templates/layout.html:171
    +#: bookwyrm/templates/layout.html:168
     msgid "Join"
     msgstr ""
     
     #: bookwyrm/templates/layout.html:206
    -msgid "About this server"
    +msgid "About this instance"
     msgstr ""
     
     #: bookwyrm/templates/layout.html:210
    @@ -1338,7 +1341,7 @@ msgid "Discard"
     msgstr ""
     
     #: bookwyrm/templates/lists/edit_form.html:5
    -#: bookwyrm/templates/lists/list_layout.html:17
    +#: bookwyrm/templates/lists/list_layout.html:16
     msgid "Edit List"
     msgstr ""
     
    @@ -1385,54 +1388,55 @@ msgstr ""
     msgid "This list is currently empty"
     msgstr ""
     
    -#: bookwyrm/templates/lists/list.html:65
    +#: bookwyrm/templates/lists/list.html:66
     #, python-format
     msgid "Added by %(username)s"
     msgstr ""
     
    -#: bookwyrm/templates/lists/list.html:77
    -msgid "Set"
    -msgstr ""
    -
    -#: bookwyrm/templates/lists/list.html:80
    +#: bookwyrm/templates/lists/list.html:74
     msgid "List position"
     msgstr ""
     
    -#: bookwyrm/templates/lists/list.html:86
    +#: bookwyrm/templates/lists/list.html:81
    +msgid "Set"
    +msgstr ""
    +
    +#: bookwyrm/templates/lists/list.html:89
     #: bookwyrm/templates/snippets/shelf_selector.html:26
     msgid "Remove"
     msgstr ""
     
    -#: bookwyrm/templates/lists/list.html:99 bookwyrm/templates/lists/list.html:111
    +#: bookwyrm/templates/lists/list.html:103
    +#: bookwyrm/templates/lists/list.html:120
     msgid "Sort List"
     msgstr ""
     
    -#: bookwyrm/templates/lists/list.html:105
    +#: bookwyrm/templates/lists/list.html:113
     msgid "Direction"
     msgstr ""
     
    -#: bookwyrm/templates/lists/list.html:116
    +#: bookwyrm/templates/lists/list.html:127
     msgid "Add Books"
     msgstr ""
     
    -#: bookwyrm/templates/lists/list.html:116
    +#: bookwyrm/templates/lists/list.html:129
     msgid "Suggest Books"
     msgstr ""
     
    -#: bookwyrm/templates/lists/list.html:125
    +#: bookwyrm/templates/lists/list.html:140
     msgid "search"
     msgstr ""
     
    -#: bookwyrm/templates/lists/list.html:131
    +#: bookwyrm/templates/lists/list.html:146
     msgid "Clear search"
     msgstr ""
     
    -#: bookwyrm/templates/lists/list.html:136
    +#: bookwyrm/templates/lists/list.html:151
     #, python-format
     msgid "No books found matching the query \"%(query)s\""
     msgstr ""
     
    -#: bookwyrm/templates/lists/list.html:164
    +#: bookwyrm/templates/lists/list.html:179
     msgid "Suggest"
     msgstr ""
     
    @@ -1523,7 +1527,7 @@ msgstr ""
     
     #: bookwyrm/templates/moderation/reports.html:6
     #, python-format
    -msgid "Reports: %(server_name)s"
    +msgid "Reports: %(instance_name)s"
     msgstr ""
     
     #: bookwyrm/templates/moderation/reports.html:8
    @@ -1534,7 +1538,7 @@ msgstr ""
     
     #: bookwyrm/templates/moderation/reports.html:14
     #, python-format
    -msgid "Reports: %(server_name)s"
    +msgid "Reports: %(instance_name)s"
     msgstr ""
     
     #: bookwyrm/templates/moderation/reports.html:28
    @@ -1733,6 +1737,26 @@ msgstr ""
     msgid "Relationships"
     msgstr ""
     
    +#: bookwyrm/templates/rss/title.html:5
    +#: bookwyrm/templates/snippets/status/status_header.html:35
    +msgid "rated"
    +msgstr ""
    +
    +#: bookwyrm/templates/rss/title.html:7
    +#: bookwyrm/templates/snippets/status/status_header.html:37
    +msgid "reviewed"
    +msgstr ""
    +
    +#: bookwyrm/templates/rss/title.html:9
    +#: bookwyrm/templates/snippets/status/status_header.html:39
    +msgid "commented on"
    +msgstr ""
    +
    +#: bookwyrm/templates/rss/title.html:11
    +#: bookwyrm/templates/snippets/status/status_header.html:41
    +msgid "quoted"
    +msgstr ""
    +
     #: bookwyrm/templates/search/book.html:64
     msgid "Load results from other catalogues"
     msgstr ""
    @@ -1783,7 +1807,7 @@ msgstr ""
     #: bookwyrm/templates/settings/admin_layout.html:39
     #: bookwyrm/templates/settings/federation.html:3
     #: bookwyrm/templates/settings/federation.html:5
    -msgid "Federated Servers"
    +msgid "Federated Instances"
     msgstr ""
     
     #: bookwyrm/templates/settings/admin_layout.html:44
    @@ -1833,6 +1857,7 @@ msgid "Back to list"
     msgstr ""
     
     #: bookwyrm/templates/settings/announcement.html:11
    +#: bookwyrm/templates/settings/announcement_form.html:6
     msgid "Edit Announcement"
     msgstr ""
     
    @@ -1866,7 +1891,7 @@ msgstr ""
     msgid "Active:"
     msgstr ""
     
    -#: bookwyrm/templates/settings/announcement_form.html:5
    +#: bookwyrm/templates/settings/announcement_form.html:8
     #: bookwyrm/templates/settings/announcements.html:8
     msgid "Create Announcement"
     msgstr ""
    @@ -1910,12 +1935,12 @@ msgstr ""
     #: bookwyrm/templates/settings/federation.html:10
     #: bookwyrm/templates/settings/server_blocklist.html:3
     #: bookwyrm/templates/settings/server_blocklist.html:20
    -msgid "Add server"
    +msgid "Add instance"
     msgstr ""
     
     #: bookwyrm/templates/settings/edit_server.html:7
     #: bookwyrm/templates/settings/server_blocklist.html:7
    -msgid "Back to server list"
    +msgid "Back to instance list"
     msgstr ""
     
     #: bookwyrm/templates/settings/edit_server.html:16
    @@ -2022,7 +2047,7 @@ msgstr ""
     
     #: bookwyrm/templates/settings/federation.html:19
     #: bookwyrm/templates/user_admin/server_filter.html:5
    -msgid "Server name"
    +msgid "Instance name"
     msgstr ""
     
     #: bookwyrm/templates/settings/federation.html:23
    @@ -2144,7 +2169,7 @@ msgid "Import Blocklist"
     msgstr ""
     
     #: bookwyrm/templates/settings/server_blocklist.html:26
    -#: bookwyrm/templates/snippets/goal_progress.html:5
    +#: bookwyrm/templates/snippets/goal_progress.html:7
     msgid "Success!"
     msgstr ""
     
    @@ -2230,13 +2255,13 @@ msgstr ""
     msgid "%(title)s by "
     msgstr ""
     
    -#: bookwyrm/templates/snippets/boost_button.html:9
    -#: bookwyrm/templates/snippets/boost_button.html:10
    +#: bookwyrm/templates/snippets/boost_button.html:20
    +#: bookwyrm/templates/snippets/boost_button.html:21
     msgid "Boost"
     msgstr ""
     
    -#: bookwyrm/templates/snippets/boost_button.html:16
    -#: bookwyrm/templates/snippets/boost_button.html:17
    +#: bookwyrm/templates/snippets/boost_button.html:33
    +#: bookwyrm/templates/snippets/boost_button.html:34
     msgid "Un-boost"
     msgstr ""
     
    @@ -2326,13 +2351,13 @@ msgstr ""
     msgid "You are deleting this readthrough and its %(count)s associated progress updates."
     msgstr ""
     
    -#: bookwyrm/templates/snippets/fav_button.html:9
    -#: bookwyrm/templates/snippets/fav_button.html:11
    +#: bookwyrm/templates/snippets/fav_button.html:10
    +#: bookwyrm/templates/snippets/fav_button.html:12
     msgid "Like"
     msgstr ""
     
    -#: bookwyrm/templates/snippets/fav_button.html:17
     #: bookwyrm/templates/snippets/fav_button.html:18
    +#: bookwyrm/templates/snippets/fav_button.html:19
     msgid "Un-like"
     msgstr ""
     
    @@ -2427,17 +2452,17 @@ msgstr ""
     msgid "Set goal"
     msgstr ""
     
    -#: bookwyrm/templates/snippets/goal_progress.html:7
    +#: bookwyrm/templates/snippets/goal_progress.html:9
     #, python-format
     msgid "%(percent)s%% complete!"
     msgstr ""
     
    -#: bookwyrm/templates/snippets/goal_progress.html:10
    +#: bookwyrm/templates/snippets/goal_progress.html:12
     #, python-format
     msgid "You've read %(read_count)s of %(goal_count)s books."
     msgstr ""
     
    -#: bookwyrm/templates/snippets/goal_progress.html:12
    +#: bookwyrm/templates/snippets/goal_progress.html:14
     #, python-format
     msgid "%(username)s has read %(read_count)s of %(goal_count)s books."
     msgstr ""
    @@ -2546,26 +2571,6 @@ msgstr ""
     msgid "Report"
     msgstr ""
     
    -#: bookwyrm/templates/snippets/rss_title.html:5
    -#: bookwyrm/templates/snippets/status/status_header.html:35
    -msgid "rated"
    -msgstr ""
    -
    -#: bookwyrm/templates/snippets/rss_title.html:7
    -#: bookwyrm/templates/snippets/status/status_header.html:37
    -msgid "reviewed"
    -msgstr ""
    -
    -#: bookwyrm/templates/snippets/rss_title.html:9
    -#: bookwyrm/templates/snippets/status/status_header.html:39
    -msgid "commented on"
    -msgstr ""
    -
    -#: bookwyrm/templates/snippets/rss_title.html:11
    -#: bookwyrm/templates/snippets/status/status_header.html:41
    -msgid "quoted"
    -msgstr ""
    -
     #: bookwyrm/templates/snippets/search_result_text.html:36
     msgid "Import book"
     msgstr ""
    @@ -2735,7 +2740,7 @@ msgstr ""
     msgid "Update shelf"
     msgstr ""
     
    -#: bookwyrm/templates/user/shelf/shelf.html:25 bookwyrm/views/shelf.py:51
    +#: bookwyrm/templates/user/shelf/shelf.html:25 bookwyrm/views/shelf.py:56
     msgid "All books"
     msgstr ""
     
    @@ -2743,30 +2748,30 @@ msgstr ""
     msgid "Create shelf"
     msgstr ""
     
    -#: bookwyrm/templates/user/shelf/shelf.html:61
    +#: bookwyrm/templates/user/shelf/shelf.html:62
     msgid "Edit shelf"
     msgstr ""
     
    -#: bookwyrm/templates/user/shelf/shelf.html:80
    -#: bookwyrm/templates/user/shelf/shelf.html:104
    +#: bookwyrm/templates/user/shelf/shelf.html:81
    +#: bookwyrm/templates/user/shelf/shelf.html:105
     msgid "Shelved"
     msgstr ""
     
    -#: bookwyrm/templates/user/shelf/shelf.html:81
    -#: bookwyrm/templates/user/shelf/shelf.html:108
    +#: bookwyrm/templates/user/shelf/shelf.html:82
    +#: bookwyrm/templates/user/shelf/shelf.html:109
     msgid "Started"
     msgstr ""
     
    -#: bookwyrm/templates/user/shelf/shelf.html:82
    -#: bookwyrm/templates/user/shelf/shelf.html:111
    +#: bookwyrm/templates/user/shelf/shelf.html:83
    +#: bookwyrm/templates/user/shelf/shelf.html:112
     msgid "Finished"
     msgstr ""
     
    -#: bookwyrm/templates/user/shelf/shelf.html:137
    +#: bookwyrm/templates/user/shelf/shelf.html:138
     msgid "This shelf is empty."
     msgstr ""
     
    -#: bookwyrm/templates/user/shelf/shelf.html:143
    +#: bookwyrm/templates/user/shelf/shelf.html:144
     msgid "Delete shelf"
     msgstr ""
     
    @@ -2825,7 +2830,7 @@ msgstr ""
     
     #: bookwyrm/templates/user_admin/user_admin.html:7
     #, python-format
    -msgid "Users: %(server_name)s"
    +msgid "Users: %(instance_name)s"
     msgstr ""
     
     #: bookwyrm/templates/user_admin/user_admin.html:22
    @@ -2842,7 +2847,7 @@ msgid "Last Active"
     msgstr ""
     
     #: bookwyrm/templates/user_admin/user_admin.html:38
    -msgid "Remote server"
    +msgid "Remote instance"
     msgstr ""
     
     #: bookwyrm/templates/user_admin/user_admin.html:47
    @@ -2886,6 +2891,10 @@ msgstr ""
     msgid "Access level:"
     msgstr ""
     
    +#: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:3
    +msgid "File exceeds maximum size: 10MB"
    +msgstr ""
    +
     #: bookwyrm/views/import_data.py:67
     msgid "Not a valid csv file"
     msgstr ""
    diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po
    index cbf07ea50..012d1e138 100644
    --- a/locale/es/LC_MESSAGES/django.po
    +++ b/locale/es/LC_MESSAGES/django.po
    @@ -8,7 +8,7 @@ msgid ""
     msgstr ""
     "Project-Id-Version: 0.0.1\n"
     "Report-Msgid-Bugs-To: \n"
    -"POT-Creation-Date: 2021-05-25 01:44+0000\n"
    +"POT-Creation-Date: 2021-06-01 14:49-0700\n"
     "PO-Revision-Date: 2021-03-19 11:49+0800\n"
     "Last-Translator: FULL NAME \n"
     "Language-Team: LANGUAGE \n"
    @@ -73,41 +73,41 @@ msgstr "Ascendente"
     msgid "Descending"
     msgstr "Descendente"
     
    -#: bookwyrm/models/fields.py:24
    +#: bookwyrm/models/fields.py:25
     #, python-format
     msgid "%(value)s is not a valid remote_id"
     msgstr "%(value)s no es un remote_id válido"
     
    -#: bookwyrm/models/fields.py:33 bookwyrm/models/fields.py:42
    +#: bookwyrm/models/fields.py:34 bookwyrm/models/fields.py:43
     #, python-format
     msgid "%(value)s is not a valid username"
     msgstr "%(value)s no es un usuario válido"
     
    -#: bookwyrm/models/fields.py:165 bookwyrm/templates/layout.html:152
    +#: bookwyrm/models/fields.py:166 bookwyrm/templates/layout.html:152
     msgid "username"
     msgstr "nombre de usuario"
     
    -#: bookwyrm/models/fields.py:170
    +#: bookwyrm/models/fields.py:171
     msgid "A user with that username already exists."
     msgstr "Ya existe un usuario con ese nombre."
     
    -#: bookwyrm/settings.py:155
    +#: bookwyrm/settings.py:156
     msgid "English"
     msgstr "Inglés"
     
    -#: bookwyrm/settings.py:156
    +#: bookwyrm/settings.py:157
     msgid "German"
     msgstr "Aléman"
     
    -#: bookwyrm/settings.py:157
    +#: bookwyrm/settings.py:158
     msgid "Spanish"
     msgstr "Español"
     
    -#: bookwyrm/settings.py:158
    +#: bookwyrm/settings.py:159
     msgid "French"
     msgstr "Francés"
     
    -#: bookwyrm/settings.py:159
    +#: bookwyrm/settings.py:160
     msgid "Simplified Chinese"
     msgstr "Chino simplificado"
     
    @@ -1281,7 +1281,9 @@ msgid "Join"
     msgstr "Unirse"
     
     #: bookwyrm/templates/layout.html:206
    -msgid "About this server"
    +#, fuzzy
    +#| msgid "About this server"
    +msgid "About this instance"
     msgstr "Sobre este servidor"
     
     #: bookwyrm/templates/layout.html:210
    @@ -1526,8 +1528,9 @@ msgid "Resolve"
     msgstr "Resolver"
     
     #: bookwyrm/templates/moderation/reports.html:6
    -#, python-format
    -msgid "Reports: %(server_name)s"
    +#, fuzzy, python-format
    +#| msgid "Reports: %(server_name)s"
    +msgid "Reports: %(instance_name)s"
     msgstr "Informes: %(server_name)s"
     
     #: bookwyrm/templates/moderation/reports.html:8
    @@ -1537,9 +1540,10 @@ msgid "Reports"
     msgstr "Informes"
     
     #: bookwyrm/templates/moderation/reports.html:14
    -#, python-format
    -msgid "Reports: %(server_name)s"
    -msgstr "Informes: %(server_name)s"
    +#, fuzzy, python-format
    +#| msgid "Users: %(server_name)s"
    +msgid "Reports: %(instance_name)s"
    +msgstr "Usuarios %(server_name)s"
     
     #: bookwyrm/templates/moderation/reports.html:28
     msgid "Resolved"
    @@ -1660,6 +1664,7 @@ msgid " suggested adding %(book_title)s t
     msgstr " sugirió agregar %(book_title)s a tu lista \"%(list_name)s\""
     
     #: bookwyrm/templates/notifications.html:128
    +#, python-format
     msgid "Your import completed."
     msgstr "Tu importación ha terminado."
     
    @@ -1791,6 +1796,7 @@ msgid "Users"
     msgstr "Usuarios"
     
     #: bookwyrm/templates/search/layout.html:58
    +#, python-format
     msgid "No results found for \"%(query)s\""
     msgstr "No se encontró ningún resultado correspondiente a \"%(query)s\""
     
    @@ -1805,7 +1811,9 @@ msgstr "Administrar usuarios"
     #: bookwyrm/templates/settings/admin_layout.html:39
     #: bookwyrm/templates/settings/federation.html:3
     #: bookwyrm/templates/settings/federation.html:5
    -msgid "Federated Servers"
    +#, fuzzy
    +#| msgid "Federated Servers"
    +msgid "Federated Instances"
     msgstr "Servidores federalizados"
     
     #: bookwyrm/templates/settings/admin_layout.html:44
    @@ -1933,12 +1941,16 @@ msgstr "inactivo"
     #: bookwyrm/templates/settings/federation.html:10
     #: bookwyrm/templates/settings/server_blocklist.html:3
     #: bookwyrm/templates/settings/server_blocklist.html:20
    -msgid "Add server"
    -msgstr "Agregar servidor"
    +#, fuzzy
    +#| msgid "View instance"
    +msgid "Add instance"
    +msgstr "Ver instancia"
     
     #: bookwyrm/templates/settings/edit_server.html:7
     #: bookwyrm/templates/settings/server_blocklist.html:7
    -msgid "Back to server list"
    +#, fuzzy
    +#| msgid "Back to server list"
    +msgid "Back to instance list"
     msgstr "Volver a la lista de servidores"
     
     #: bookwyrm/templates/settings/edit_server.html:16
    @@ -2045,8 +2057,10 @@ msgstr "Todos los usuarios en esta instancia serán re-activados."
     
     #: bookwyrm/templates/settings/federation.html:19
     #: bookwyrm/templates/user_admin/server_filter.html:5
    -msgid "Server name"
    -msgstr "Nombre de servidor"
    +#, fuzzy
    +#| msgid "Instance Name:"
    +msgid "Instance name"
    +msgstr "Nombre de instancia:"
     
     #: bookwyrm/templates/settings/federation.html:23
     msgid "Date federated"
    @@ -2240,6 +2254,7 @@ msgid "Registration closed text:"
     msgstr "Texto de registración cerrada:"
     
     #: bookwyrm/templates/snippets/announcement.html:31
    +#, python-format
     msgid "Posted by %(username)s"
     msgstr "Publicado por %(username)s"
     
    @@ -2395,14 +2410,6 @@ msgstr "Aceptar"
     msgid "No rating"
     msgstr "No calificación"
     
    -#: 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] "%(rating)s estrella"
    -msgstr[1] "%(rating)s estrellas"
    -
     #: bookwyrm/templates/snippets/generated_status/goal.html:1
     #, python-format
     msgid "set a goal to read %(counter)s book in %(year)s"
    @@ -2478,6 +2485,8 @@ msgid "page %(page)s of %(total_pages)s"
     msgstr "página %(page)s de %(total_pages)s"
     
     #: bookwyrm/templates/snippets/page_text.html:6
    +#, fuzzy, python-format
    +#| msgid "page %(page)s"
     msgid "page %(page)s"
     msgstr "página %(pages)s"
     
    @@ -2822,6 +2831,7 @@ msgid "%(counter)s following"
     msgstr "%(counter)s siguiendo"
     
     #: bookwyrm/templates/user/user_preview.html:26
    +#, python-format
     msgid "%(mutuals_display)s follower you follow"
     msgid_plural "%(mutuals_display)s followers you follow"
     msgstr[0] "%(mutuals_display)s seguidor que sigues"
    @@ -2832,8 +2842,9 @@ msgid "Back to users"
     msgstr "Volver a usuarios"
     
     #: bookwyrm/templates/user_admin/user_admin.html:7
    -#, python-format
    -msgid "Users: %(server_name)s"
    +#, fuzzy, python-format
    +#| msgid "Users: %(server_name)s"
    +msgid "Users: %(instance_name)s"
     msgstr "Usuarios %(server_name)s"
     
     #: bookwyrm/templates/user_admin/user_admin.html:22
    @@ -2850,8 +2861,10 @@ msgid "Last Active"
     msgstr "Actividad reciente"
     
     #: bookwyrm/templates/user_admin/user_admin.html:38
    -msgid "Remote server"
    -msgstr "Quitar servidor"
    +#, fuzzy
    +#| msgid "View instance"
    +msgid "Remote instance"
    +msgstr "Ver instancia"
     
     #: bookwyrm/templates/user_admin/user_admin.html:47
     msgid "Active"
    @@ -2894,6 +2907,10 @@ msgstr "Des-suspender usuario"
     msgid "Access level:"
     msgstr "Nivel de acceso:"
     
    +#: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:3
    +msgid "File exceeds maximum size: 10MB"
    +msgstr ""
    +
     #: bookwyrm/views/import_data.py:67
     msgid "Not a valid csv file"
     msgstr "No un archivo csv válido"
    @@ -2907,6 +2924,28 @@ msgstr "No se pudo encontrar un usuario con esa dirección de correo electrónic
     msgid "A password reset link sent to %s"
     msgstr "Un enlace para reestablecer tu contraseña se enviará a %s"
     
    +#, python-format
    +#~ msgid "Reports: %(server_name)s"
    +#~ msgstr "Informes: %(server_name)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"
    +
    +#, python-format
    +#~ msgid "%(rating)s star"
    +#~ msgid_plural "%(rating)s stars"
    +#~ msgstr[0] "%(rating)s estrella"
    +#~ msgstr[1] "%(rating)s estrellas"
    +
     #, fuzzy
     #~| msgid "BookWyrm users"
     #~ msgid "BookWyrm\\"
    diff --git a/locale/fr_FR/LC_MESSAGES/django.po b/locale/fr_FR/LC_MESSAGES/django.po
    index a96f9d76d..71b154ba1 100644
    --- a/locale/fr_FR/LC_MESSAGES/django.po
    +++ b/locale/fr_FR/LC_MESSAGES/django.po
    @@ -8,7 +8,7 @@ msgid ""
     msgstr ""
     "Project-Id-Version: 0.1.1\n"
     "Report-Msgid-Bugs-To: \n"
    -"POT-Creation-Date: 2021-05-23 10:45+0000\n"
    +"POT-Creation-Date: 2021-06-01 14:49-0700\n"
     "PO-Revision-Date: 2021-04-05 12:44+0100\n"
     "Last-Translator: Fabien Basmaison \n"
     "Language-Team: Mouse Reeve \n"
    @@ -56,12 +56,12 @@ msgid "Book Title"
     msgstr "Titre du livre"
     
     #: bookwyrm/forms.py:301 bookwyrm/templates/snippets/create_status_form.html:34
    -#: bookwyrm/templates/user/shelf/shelf.html:84
    -#: bookwyrm/templates/user/shelf/shelf.html:115
    +#: bookwyrm/templates/user/shelf/shelf.html:85
    +#: bookwyrm/templates/user/shelf/shelf.html:116
     msgid "Rating"
     msgstr "Note"
     
    -#: bookwyrm/forms.py:303 bookwyrm/templates/lists/list.html:101
    +#: bookwyrm/forms.py:303 bookwyrm/templates/lists/list.html:107
     msgid "Sort By"
     msgstr "Trier par"
     
    @@ -73,41 +73,41 @@ msgstr "Ordre croissant"
     msgid "Descending"
     msgstr "Ordre décroissant"
     
    -#: bookwyrm/models/fields.py:24
    +#: bookwyrm/models/fields.py:25
     #, python-format
     msgid "%(value)s is not a valid remote_id"
     msgstr "%(value)s n’est pas une remote_id valide."
     
    -#: bookwyrm/models/fields.py:33 bookwyrm/models/fields.py:42
    +#: bookwyrm/models/fields.py:34 bookwyrm/models/fields.py:43
     #, python-format
     msgid "%(value)s is not a valid username"
     msgstr "%(value)s n’est pas un nom de compte valide."
     
    -#: bookwyrm/models/fields.py:165 bookwyrm/templates/layout.html:157
    +#: bookwyrm/models/fields.py:166 bookwyrm/templates/layout.html:152
     msgid "username"
     msgstr "nom du compte :"
     
    -#: bookwyrm/models/fields.py:170
    +#: bookwyrm/models/fields.py:171
     msgid "A user with that username already exists."
     msgstr "Ce nom est déjà associé à un compte."
     
    -#: bookwyrm/settings.py:155
    +#: bookwyrm/settings.py:156
     msgid "English"
     msgstr "English"
     
    -#: bookwyrm/settings.py:156
    +#: bookwyrm/settings.py:157
     msgid "German"
     msgstr "Deutsch"
     
    -#: bookwyrm/settings.py:157
    +#: bookwyrm/settings.py:158
     msgid "Spanish"
     msgstr "Español"
     
    -#: bookwyrm/settings.py:158
    +#: bookwyrm/settings.py:159
     msgid "French"
     msgstr "Français"
     
    -#: bookwyrm/settings.py:159
    +#: bookwyrm/settings.py:160
     msgid "Simplified Chinese"
     msgstr "简化字"
     
    @@ -367,7 +367,7 @@ msgstr "Sujets"
     msgid "Places"
     msgstr "Lieux"
     
    -#: bookwyrm/templates/book/book.html:276 bookwyrm/templates/layout.html:64
    +#: bookwyrm/templates/book/book.html:276 bookwyrm/templates/layout.html:61
     #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
     #: bookwyrm/templates/search/layout.html:25
     #: bookwyrm/templates/search/layout.html:50
    @@ -381,7 +381,7 @@ msgstr "Ajouter à la liste"
     
     #: bookwyrm/templates/book/book.html:297
     #: bookwyrm/templates/book/cover_modal.html:31
    -#: bookwyrm/templates/lists/list.html:164
    +#: bookwyrm/templates/lists/list.html:179
     msgid "Add"
     msgstr "Ajouter"
     
    @@ -511,7 +511,7 @@ msgid "John Doe, Jane Smith"
     msgstr "Claude Dupont, Dominique Durand"
     
     #: bookwyrm/templates/book/edit_book.html:183
    -#: bookwyrm/templates/user/shelf/shelf.html:77
    +#: bookwyrm/templates/user/shelf/shelf.html:78
     msgid "Cover"
     msgstr "Couverture"
     
    @@ -630,7 +630,7 @@ msgstr "Communauté fédérée"
     
     #: bookwyrm/templates/directory/directory.html:4
     #: bookwyrm/templates/directory/directory.html:9
    -#: bookwyrm/templates/layout.html:92
    +#: bookwyrm/templates/layout.html:64
     msgid "Directory"
     msgstr "Répertoire"
     
    @@ -831,7 +831,7 @@ msgid "Direct Messages with %(username)s"
     msgstr "Messages directs avec %(username)s"
     
     #: bookwyrm/templates/feed/direct_messages.html:10
    -#: bookwyrm/templates/layout.html:87
    +#: bookwyrm/templates/layout.html:92
     msgid "Direct Messages"
     msgstr "Messages directs"
     
    @@ -887,7 +887,6 @@ msgid "Updates"
     msgstr "Mises à jour"
     
     #: bookwyrm/templates/feed/feed_layout.html:10
    -#: bookwyrm/templates/layout.html:58
     #: bookwyrm/templates/user/shelf/books_header.html:3
     msgid "Your books"
     msgstr "Vos livres"
    @@ -942,7 +941,7 @@ msgid "What are you reading?"
     msgstr "Que lisez‑vous ?"
     
     #: bookwyrm/templates/get_started/books.html:9
    -#: bookwyrm/templates/lists/list.html:120
    +#: bookwyrm/templates/lists/list.html:135
     msgid "Search for a book"
     msgstr "Chercher un livre"
     
    @@ -962,7 +961,7 @@ msgstr "Vous pourrez ajouter des livres lorsque vous commencerez à utiliser %(s
     #: bookwyrm/templates/get_started/users.html:18
     #: bookwyrm/templates/get_started/users.html:19
     #: bookwyrm/templates/layout.html:37 bookwyrm/templates/layout.html:38
    -#: bookwyrm/templates/lists/list.html:124
    +#: bookwyrm/templates/lists/list.html:139
     #: bookwyrm/templates/search/layout.html:4
     #: bookwyrm/templates/search/layout.html:9
     msgid "Search"
    @@ -978,7 +977,7 @@ msgid "Popular on %(site_name)s"
     msgstr "Populaire sur %(site_name)s"
     
     #: bookwyrm/templates/get_started/books.html:58
    -#: bookwyrm/templates/lists/list.html:137
    +#: bookwyrm/templates/lists/list.html:152
     msgid "No books found"
     msgstr "Aucun livre trouvé"
     
    @@ -1090,7 +1089,7 @@ msgid "%(username)s's %(year)s Books"
     msgstr "Livres de %(username)s en %(year)s"
     
     #: bookwyrm/templates/import.html:5 bookwyrm/templates/import.html:9
    -#: bookwyrm/templates/layout.html:97
    +#: bookwyrm/templates/user/shelf/shelf.html:40
     msgid "Import Books"
     msgstr "Importer des livres"
     
    @@ -1175,14 +1174,14 @@ msgstr "Livre"
     
     #: bookwyrm/templates/import_status.html:114
     #: bookwyrm/templates/snippets/create_status_form.html:13
    -#: bookwyrm/templates/user/shelf/shelf.html:78
    -#: bookwyrm/templates/user/shelf/shelf.html:98
    +#: bookwyrm/templates/user/shelf/shelf.html:79
    +#: bookwyrm/templates/user/shelf/shelf.html:99
     msgid "Title"
     msgstr "Titre"
     
     #: bookwyrm/templates/import_status.html:117
    -#: bookwyrm/templates/user/shelf/shelf.html:79
    -#: bookwyrm/templates/user/shelf/shelf.html:101
    +#: bookwyrm/templates/user/shelf/shelf.html:80
    +#: bookwyrm/templates/user/shelf/shelf.html:102
     msgid "Author"
     msgstr "Auteur ou autrice"
     
    @@ -1224,15 +1223,21 @@ msgstr "Chercher un livre ou un compte"
     msgid "Main navigation menu"
     msgstr "Menu de navigation principal "
     
    -#: bookwyrm/templates/layout.html:61
    +#: bookwyrm/templates/layout.html:58
     msgid "Feed"
     msgstr "Fil d’actualité"
     
    -#: bookwyrm/templates/layout.html:102
    +#: bookwyrm/templates/layout.html:87
    +#, fuzzy
    +#| msgid "Your books"
    +msgid "Your Books"
    +msgstr "Vos livres"
    +
    +#: bookwyrm/templates/layout.html:97
     msgid "Settings"
     msgstr "Paramètres"
     
    -#: bookwyrm/templates/layout.html:111
    +#: bookwyrm/templates/layout.html:106
     #: bookwyrm/templates/settings/admin_layout.html:31
     #: bookwyrm/templates/settings/manage_invite_requests.html:15
     #: bookwyrm/templates/settings/manage_invites.html:3
    @@ -1240,61 +1245,63 @@ msgstr "Paramètres"
     msgid "Invites"
     msgstr "Invitations"
     
    -#: bookwyrm/templates/layout.html:118
    +#: bookwyrm/templates/layout.html:113
     msgid "Admin"
     msgstr "Admin"
     
    -#: bookwyrm/templates/layout.html:125
    +#: bookwyrm/templates/layout.html:120
     msgid "Log out"
     msgstr "Se déconnecter"
     
    -#: bookwyrm/templates/layout.html:133 bookwyrm/templates/layout.html:134
    +#: bookwyrm/templates/layout.html:128 bookwyrm/templates/layout.html:129
     #: bookwyrm/templates/notifications.html:6
     #: bookwyrm/templates/notifications.html:11
     msgid "Notifications"
     msgstr "Notifications"
     
    -#: bookwyrm/templates/layout.html:156 bookwyrm/templates/layout.html:160
    +#: bookwyrm/templates/layout.html:151 bookwyrm/templates/layout.html:155
     #: bookwyrm/templates/login.html:17
     #: bookwyrm/templates/snippets/register_form.html:4
     msgid "Username:"
     msgstr "Nom du compte :"
     
    -#: bookwyrm/templates/layout.html:161
    +#: bookwyrm/templates/layout.html:156
     msgid "password"
     msgstr "Mot de passe"
     
    -#: bookwyrm/templates/layout.html:162 bookwyrm/templates/login.html:36
    +#: bookwyrm/templates/layout.html:157 bookwyrm/templates/login.html:36
     msgid "Forgot your password?"
     msgstr "Mot de passe oublié ?"
     
    -#: bookwyrm/templates/layout.html:165 bookwyrm/templates/login.html:10
    +#: bookwyrm/templates/layout.html:160 bookwyrm/templates/login.html:10
     #: bookwyrm/templates/login.html:33
     msgid "Log in"
     msgstr "Se connecter"
     
    -#: bookwyrm/templates/layout.html:173
    +#: bookwyrm/templates/layout.html:168
     msgid "Join"
     msgstr "Rejoindre"
     
    -#: bookwyrm/templates/layout.html:211
    -msgid "About this server"
    +#: bookwyrm/templates/layout.html:206
    +#, fuzzy
    +#| msgid "About this server"
    +msgid "About this instance"
     msgstr "À propos de ce serveur"
     
    -#: bookwyrm/templates/layout.html:215
    +#: bookwyrm/templates/layout.html:210
     msgid "Contact site admin"
     msgstr "Contacter l’administrateur du site"
     
    -#: bookwyrm/templates/layout.html:219
    +#: bookwyrm/templates/layout.html:214
     msgid "Documentation"
     msgstr "Documentation"
     
    -#: bookwyrm/templates/layout.html:226
    +#: bookwyrm/templates/layout.html:221
     #, python-format
     msgid "Support %(site_name)s on %(support_title)s"
     msgstr "Soutenez %(site_name)s avec %(support_title)s"
     
    -#: 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 GitHub."
     msgstr "BookWyrm est un logiciel libre. Vous pouvez contribuer ou faire des rapports de bogues via GitHub."
     
    @@ -1338,7 +1345,7 @@ msgid "Discard"
     msgstr "Rejeter"
     
     #: bookwyrm/templates/lists/edit_form.html:5
    -#: bookwyrm/templates/lists/list_layout.html:17
    +#: bookwyrm/templates/lists/list_layout.html:16
     msgid "Edit List"
     msgstr "Modifier la liste"
     
    @@ -1385,54 +1392,55 @@ msgstr "Vous avez ajouté un livre à cette liste !"
     msgid "This list is currently empty"
     msgstr "Cette liste est actuellement vide"
     
    -#: bookwyrm/templates/lists/list.html:65
    +#: bookwyrm/templates/lists/list.html:66
     #, python-format
     msgid "Added by %(username)s"
     msgstr "Ajouté par %(username)s"
     
    -#: bookwyrm/templates/lists/list.html:77
    -msgid "Set"
    -msgstr "Appliquer"
    -
    -#: bookwyrm/templates/lists/list.html:80
    +#: bookwyrm/templates/lists/list.html:74
     msgid "List position"
     msgstr "Position"
     
    -#: bookwyrm/templates/lists/list.html:86
    +#: bookwyrm/templates/lists/list.html:81
    +msgid "Set"
    +msgstr "Appliquer"
    +
    +#: bookwyrm/templates/lists/list.html:89
     #: bookwyrm/templates/snippets/shelf_selector.html:26
     msgid "Remove"
     msgstr "Retirer"
     
    -#: bookwyrm/templates/lists/list.html:99 bookwyrm/templates/lists/list.html:111
    +#: bookwyrm/templates/lists/list.html:103
    +#: bookwyrm/templates/lists/list.html:120
     msgid "Sort List"
     msgstr "Trier la liste"
     
    -#: bookwyrm/templates/lists/list.html:105
    +#: bookwyrm/templates/lists/list.html:113
     msgid "Direction"
     msgstr "Direction"
     
    -#: bookwyrm/templates/lists/list.html:116
    +#: bookwyrm/templates/lists/list.html:127
     msgid "Add Books"
     msgstr "Ajouter des livres"
     
    -#: bookwyrm/templates/lists/list.html:116
    +#: bookwyrm/templates/lists/list.html:129
     msgid "Suggest Books"
     msgstr "Suggérer des livres"
     
    -#: bookwyrm/templates/lists/list.html:125
    +#: bookwyrm/templates/lists/list.html:140
     msgid "search"
     msgstr "chercher"
     
    -#: bookwyrm/templates/lists/list.html:131
    +#: bookwyrm/templates/lists/list.html:146
     msgid "Clear search"
     msgstr "Vider la requête"
     
    -#: bookwyrm/templates/lists/list.html:136
    +#: bookwyrm/templates/lists/list.html:151
     #, python-format
     msgid "No books found matching the query \"%(query)s\""
     msgstr "Aucun livre trouvé pour la requête « %(query)s »"
     
    -#: bookwyrm/templates/lists/list.html:164
    +#: bookwyrm/templates/lists/list.html:179
     msgid "Suggest"
     msgstr "Suggérer"
     
    @@ -1522,8 +1530,9 @@ msgid "Resolve"
     msgstr "Résoudre"
     
     #: bookwyrm/templates/moderation/reports.html:6
    -#, python-format
    -msgid "Reports: %(server_name)s"
    +#, fuzzy, python-format
    +#| msgid "Reports: %(server_name)s"
    +msgid "Reports: %(instance_name)s"
     msgstr "Signalements : %(server_name)s"
     
     #: bookwyrm/templates/moderation/reports.html:8
    @@ -1533,9 +1542,10 @@ msgid "Reports"
     msgstr "Signalements"
     
     #: bookwyrm/templates/moderation/reports.html:14
    -#, python-format
    -msgid "Reports: %(server_name)s"
    -msgstr "Signalements: %(server_name)s"
    +#, fuzzy, python-format
    +#| msgid "Users: %(server_name)s"
    +msgid "Reports: %(instance_name)s"
    +msgstr "Comptes : %(server_name)s"
     
     #: bookwyrm/templates/moderation/reports.html:28
     msgid "Resolved"
    @@ -1803,7 +1813,9 @@ msgstr "Gérer les comptes"
     #: bookwyrm/templates/settings/admin_layout.html:39
     #: bookwyrm/templates/settings/federation.html:3
     #: bookwyrm/templates/settings/federation.html:5
    -msgid "Federated Servers"
    +#, fuzzy
    +#| msgid "Federated Servers"
    +msgid "Federated Instances"
     msgstr "Serveurs fédérés"
     
     #: bookwyrm/templates/settings/admin_layout.html:44
    @@ -1931,12 +1943,16 @@ msgstr "inactive"
     #: bookwyrm/templates/settings/federation.html:10
     #: bookwyrm/templates/settings/server_blocklist.html:3
     #: bookwyrm/templates/settings/server_blocklist.html:20
    -msgid "Add server"
    -msgstr "Ajouter un serveur"
    +#, fuzzy
    +#| msgid "View instance"
    +msgid "Add instance"
    +msgstr "Voir l’instance"
     
     #: bookwyrm/templates/settings/edit_server.html:7
     #: bookwyrm/templates/settings/server_blocklist.html:7
    -msgid "Back to server list"
    +#, fuzzy
    +#| msgid "Back to server list"
    +msgid "Back to instance list"
     msgstr "Retour à la liste des serveurs"
     
     #: bookwyrm/templates/settings/edit_server.html:16
    @@ -2043,8 +2059,10 @@ msgstr "Tous les comptes de cette instance seront réactivés."
     
     #: bookwyrm/templates/settings/federation.html:19
     #: bookwyrm/templates/user_admin/server_filter.html:5
    -msgid "Server name"
    -msgstr "Nom du serveur"
    +#, fuzzy
    +#| msgid "Instance Name:"
    +msgid "Instance name"
    +msgstr "Nom de l’instance :"
     
     #: bookwyrm/templates/settings/federation.html:23
     msgid "Date federated"
    @@ -2394,14 +2412,6 @@ msgstr "Accepter"
     msgid "No rating"
     msgstr "Aucune note"
     
    -#: 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] "%(rating)s étoile"
    -msgstr[1] "%(rating)s étoiles"
    -
     #: bookwyrm/templates/snippets/generated_status/goal.html:1
     #, python-format
     msgid "set a goal to read %(counter)s book in %(year)s"
    @@ -2752,30 +2762,30 @@ msgstr "Tous les livres"
     msgid "Create shelf"
     msgstr "Créer une étagère"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:61
    +#: bookwyrm/templates/user/shelf/shelf.html:62
     msgid "Edit shelf"
     msgstr "Modifier l’étagère"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:80
    -#: bookwyrm/templates/user/shelf/shelf.html:104
    +#: bookwyrm/templates/user/shelf/shelf.html:81
    +#: bookwyrm/templates/user/shelf/shelf.html:105
     msgid "Shelved"
     msgstr "Date d’ajout"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:81
    -#: bookwyrm/templates/user/shelf/shelf.html:108
    +#: bookwyrm/templates/user/shelf/shelf.html:82
    +#: bookwyrm/templates/user/shelf/shelf.html:109
     msgid "Started"
     msgstr "Commencé"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:82
    -#: bookwyrm/templates/user/shelf/shelf.html:111
    +#: bookwyrm/templates/user/shelf/shelf.html:83
    +#: bookwyrm/templates/user/shelf/shelf.html:112
     msgid "Finished"
     msgstr "Terminé"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:137
    +#: bookwyrm/templates/user/shelf/shelf.html:138
     msgid "This shelf is empty."
     msgstr "Cette étagère est vide"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:143
    +#: bookwyrm/templates/user/shelf/shelf.html:144
     msgid "Delete shelf"
     msgstr "Supprimer l’étagère"
     
    @@ -2833,8 +2843,9 @@ msgid "Back to users"
     msgstr "Retour aux comptes"
     
     #: bookwyrm/templates/user_admin/user_admin.html:7
    -#, python-format
    -msgid "Users: %(server_name)s"
    +#, fuzzy, python-format
    +#| msgid "Users: %(server_name)s"
    +msgid "Users: %(instance_name)s"
     msgstr "Comptes : %(server_name)s"
     
     #: bookwyrm/templates/user_admin/user_admin.html:22
    @@ -2851,8 +2862,10 @@ msgid "Last Active"
     msgstr "Dernière activité"
     
     #: bookwyrm/templates/user_admin/user_admin.html:38
    -msgid "Remote server"
    -msgstr "Serveur distant"
    +#, fuzzy
    +#| msgid "View instance"
    +msgid "Remote instance"
    +msgstr "Voir l’instance"
     
     #: bookwyrm/templates/user_admin/user_admin.html:47
     msgid "Active"
    @@ -2895,6 +2908,10 @@ msgstr "Rétablir le compte"
     msgid "Access level:"
     msgstr "Niveau d’accès :"
     
    +#: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:3
    +msgid "File exceeds maximum size: 10MB"
    +msgstr ""
    +
     #: bookwyrm/views/import_data.py:67
     msgid "Not a valid csv file"
     msgstr "Fichier CSV non valide"
    @@ -2908,6 +2925,28 @@ msgstr "Aucun compte avec cette adresse email n’a été trouvé."
     msgid "A password reset link sent to %s"
     msgstr "Un lien de réinitialisation a été envoyé à %s."
     
    +#, python-format
    +#~ msgid "Reports: %(server_name)s"
    +#~ msgstr "Signalements: %(server_name)s"
    +
    +#~ msgid "Federated Servers"
    +#~ msgstr "Serveurs fédérés"
    +
    +#~ msgid "Server name"
    +#~ msgstr "Nom du serveur"
    +
    +#~ msgid "Add server"
    +#~ msgstr "Ajouter un serveur"
    +
    +#~ msgid "Remote server"
    +#~ msgstr "Serveur distant"
    +
    +#, python-format
    +#~ msgid "%(rating)s star"
    +#~ msgid_plural "%(rating)s stars"
    +#~ msgstr[0] "%(rating)s étoile"
    +#~ msgstr[1] "%(rating)s étoiles"
    +
     #, fuzzy
     #~| msgid "BookWyrm users"
     #~ msgid "BookWyrm\\"
    diff --git a/locale/zh_Hans/LC_MESSAGES/django.po b/locale/zh_Hans/LC_MESSAGES/django.po
    index 0ec8b1d88..56b424a4a 100644
    --- a/locale/zh_Hans/LC_MESSAGES/django.po
    +++ b/locale/zh_Hans/LC_MESSAGES/django.po
    @@ -8,7 +8,7 @@ msgid ""
     msgstr ""
     "Project-Id-Version: 0.1.1\n"
     "Report-Msgid-Bugs-To: \n"
    -"POT-Creation-Date: 2021-05-20 14:40-0700\n"
    +"POT-Creation-Date: 2021-06-01 14:49-0700\n"
     "PO-Revision-Date: 2021-03-20 00:56+0000\n"
     "Last-Translator: Kana \n"
     "Language-Team: Mouse Reeve \n"
    @@ -58,12 +58,12 @@ msgid "Book Title"
     msgstr "标题"
     
     #: bookwyrm/forms.py:301 bookwyrm/templates/snippets/create_status_form.html:34
    -#: bookwyrm/templates/user/shelf/shelf.html:84
    -#: bookwyrm/templates/user/shelf/shelf.html:115
    +#: bookwyrm/templates/user/shelf/shelf.html:85
    +#: bookwyrm/templates/user/shelf/shelf.html:116
     msgid "Rating"
     msgstr "评价"
     
    -#: bookwyrm/forms.py:303 bookwyrm/templates/lists/list.html:101
    +#: bookwyrm/forms.py:303 bookwyrm/templates/lists/list.html:107
     msgid "Sort By"
     msgstr ""
     
    @@ -79,41 +79,41 @@ msgstr "升序排序"
     msgid "Descending"
     msgstr "升序排序"
     
    -#: bookwyrm/models/fields.py:24
    +#: bookwyrm/models/fields.py:25
     #, python-format
     msgid "%(value)s is not a valid remote_id"
     msgstr "%(value)s 不是有效的 remote_id"
     
    -#: bookwyrm/models/fields.py:33 bookwyrm/models/fields.py:42
    +#: bookwyrm/models/fields.py:34 bookwyrm/models/fields.py:43
     #, python-format
     msgid "%(value)s is not a valid username"
     msgstr "%(value)s 不是有效的用户名"
     
    -#: bookwyrm/models/fields.py:165 bookwyrm/templates/layout.html:155
    +#: bookwyrm/models/fields.py:166 bookwyrm/templates/layout.html:152
     msgid "username"
     msgstr "用户名"
     
    -#: bookwyrm/models/fields.py:170
    +#: bookwyrm/models/fields.py:171
     msgid "A user with that username already exists."
     msgstr "已经存在使用该用户名的用户。"
     
    -#: bookwyrm/settings.py:155
    +#: bookwyrm/settings.py:156
     msgid "English"
     msgstr "English(英语)"
     
    -#: bookwyrm/settings.py:156
    +#: bookwyrm/settings.py:157
     msgid "German"
     msgstr "Deutsch(德语)"
     
    -#: bookwyrm/settings.py:157
    +#: bookwyrm/settings.py:158
     msgid "Spanish"
     msgstr "Español(西班牙语)"
     
    -#: bookwyrm/settings.py:158
    +#: bookwyrm/settings.py:159
     msgid "French"
     msgstr "Français(法语)"
     
    -#: bookwyrm/settings.py:159
    +#: bookwyrm/settings.py:160
     msgid "Simplified Chinese"
     msgstr "简体中文"
     
    @@ -260,7 +260,7 @@ msgstr "Goodreads key:"
     #: bookwyrm/templates/book/edit_book.html:263
     #: bookwyrm/templates/lists/form.html:42
     #: bookwyrm/templates/preferences/edit_user.html:70
    -#: bookwyrm/templates/settings/announcement_form.html:65
    +#: bookwyrm/templates/settings/announcement_form.html:69
     #: bookwyrm/templates/settings/edit_server.html:68
     #: bookwyrm/templates/settings/federated_server.html:98
     #: bookwyrm/templates/settings/site.html:97
    @@ -386,7 +386,7 @@ msgstr "主题"
     msgid "Places"
     msgstr "地点"
     
    -#: bookwyrm/templates/book/book.html:276 bookwyrm/templates/layout.html:64
    +#: bookwyrm/templates/book/book.html:276 bookwyrm/templates/layout.html:61
     #: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12
     #: bookwyrm/templates/search/layout.html:25
     #: bookwyrm/templates/search/layout.html:50
    @@ -400,7 +400,7 @@ msgstr "添加到列表"
     
     #: bookwyrm/templates/book/book.html:297
     #: bookwyrm/templates/book/cover_modal.html:31
    -#: bookwyrm/templates/lists/list.html:164
    +#: bookwyrm/templates/lists/list.html:179
     msgid "Add"
     msgstr "添加"
     
    @@ -532,7 +532,7 @@ msgid "John Doe, Jane Smith"
     msgstr "张三, 李四"
     
     #: bookwyrm/templates/book/edit_book.html:183
    -#: bookwyrm/templates/user/shelf/shelf.html:77
    +#: bookwyrm/templates/user/shelf/shelf.html:78
     msgid "Cover"
     msgstr "封面"
     
    @@ -655,7 +655,7 @@ msgstr "跨站社区"
     
     #: bookwyrm/templates/directory/directory.html:4
     #: bookwyrm/templates/directory/directory.html:9
    -#: bookwyrm/templates/layout.html:92
    +#: bookwyrm/templates/layout.html:64
     msgid "Directory"
     msgstr "目录"
     
    @@ -854,7 +854,7 @@ msgid "Direct Messages with %(username)s"
     msgstr "与 %(username)s 私信"
     
     #: bookwyrm/templates/feed/direct_messages.html:10
    -#: bookwyrm/templates/layout.html:87
    +#: bookwyrm/templates/layout.html:92
     msgid "Direct Messages"
     msgstr "私信"
     
    @@ -910,7 +910,6 @@ msgid "Updates"
     msgstr "更新"
     
     #: bookwyrm/templates/feed/feed_layout.html:10
    -#: bookwyrm/templates/layout.html:58
     #: bookwyrm/templates/user/shelf/books_header.html:3
     msgid "Your books"
     msgstr "你的书目"
    @@ -963,7 +962,7 @@ msgid "What are you reading?"
     msgstr "你在阅读什么?"
     
     #: bookwyrm/templates/get_started/books.html:9
    -#: bookwyrm/templates/lists/list.html:120
    +#: bookwyrm/templates/lists/list.html:135
     msgid "Search for a book"
     msgstr "搜索书目"
     
    @@ -983,7 +982,7 @@ msgstr "你可以在开始使用 %(site_name)s 后添加书目。"
     #: bookwyrm/templates/get_started/users.html:18
     #: bookwyrm/templates/get_started/users.html:19
     #: bookwyrm/templates/layout.html:37 bookwyrm/templates/layout.html:38
    -#: bookwyrm/templates/lists/list.html:124
    +#: bookwyrm/templates/lists/list.html:139
     #: bookwyrm/templates/search/layout.html:4
     #: bookwyrm/templates/search/layout.html:9
     msgid "Search"
    @@ -999,7 +998,7 @@ msgid "Popular on %(site_name)s"
     msgstr "%(site_name)s 上的热门"
     
     #: bookwyrm/templates/get_started/books.html:58
    -#: bookwyrm/templates/lists/list.html:137
    +#: bookwyrm/templates/lists/list.html:152
     msgid "No books found"
     msgstr "没有找到书目"
     
    @@ -1111,7 +1110,7 @@ msgid "%(username)s's %(year)s Books"
     msgstr "%(username)s 在 %(year)s 的书目"
     
     #: bookwyrm/templates/import.html:5 bookwyrm/templates/import.html:9
    -#: bookwyrm/templates/layout.html:97
    +#: bookwyrm/templates/user/shelf/shelf.html:40
     msgid "Import Books"
     msgstr "导入书目"
     
    @@ -1196,14 +1195,14 @@ msgstr "书目"
     
     #: bookwyrm/templates/import_status.html:114
     #: bookwyrm/templates/snippets/create_status_form.html:13
    -#: bookwyrm/templates/user/shelf/shelf.html:78
    -#: bookwyrm/templates/user/shelf/shelf.html:98
    +#: bookwyrm/templates/user/shelf/shelf.html:79
    +#: bookwyrm/templates/user/shelf/shelf.html:99
     msgid "Title"
     msgstr "标题"
     
     #: bookwyrm/templates/import_status.html:117
    -#: bookwyrm/templates/user/shelf/shelf.html:79
    -#: bookwyrm/templates/user/shelf/shelf.html:101
    +#: bookwyrm/templates/user/shelf/shelf.html:80
    +#: bookwyrm/templates/user/shelf/shelf.html:102
     msgid "Author"
     msgstr "作者"
     
    @@ -1245,15 +1244,21 @@ msgstr "搜索书目或用户"
     msgid "Main navigation menu"
     msgstr "主导航菜单"
     
    -#: bookwyrm/templates/layout.html:61
    +#: bookwyrm/templates/layout.html:58
     msgid "Feed"
     msgstr "动态"
     
    -#: bookwyrm/templates/layout.html:102
    +#: bookwyrm/templates/layout.html:87
    +#, fuzzy
    +#| msgid "Your books"
    +msgid "Your Books"
    +msgstr "你的书目"
    +
    +#: bookwyrm/templates/layout.html:97
     msgid "Settings"
     msgstr "设置"
     
    -#: bookwyrm/templates/layout.html:111
    +#: bookwyrm/templates/layout.html:106
     #: bookwyrm/templates/settings/admin_layout.html:31
     #: bookwyrm/templates/settings/manage_invite_requests.html:15
     #: bookwyrm/templates/settings/manage_invites.html:3
    @@ -1261,45 +1266,47 @@ msgstr "设置"
     msgid "Invites"
     msgstr "邀请"
     
    -#: bookwyrm/templates/layout.html:118
    +#: bookwyrm/templates/layout.html:113
     msgid "Admin"
     msgstr "管理员"
     
    -#: bookwyrm/templates/layout.html:125
    +#: bookwyrm/templates/layout.html:120
     msgid "Log out"
     msgstr "登出"
     
    -#: bookwyrm/templates/layout.html:133 bookwyrm/templates/layout.html:134
    +#: bookwyrm/templates/layout.html:128 bookwyrm/templates/layout.html:129
     #: bookwyrm/templates/notifications.html:6
     #: bookwyrm/templates/notifications.html:11
     msgid "Notifications"
     msgstr "通知"
     
    -#: bookwyrm/templates/layout.html:154 bookwyrm/templates/layout.html:158
    +#: bookwyrm/templates/layout.html:151 bookwyrm/templates/layout.html:155
     #: bookwyrm/templates/login.html:17
     #: bookwyrm/templates/snippets/register_form.html:4
     msgid "Username:"
     msgstr "用户名:"
     
    -#: bookwyrm/templates/layout.html:159
    +#: bookwyrm/templates/layout.html:156
     msgid "password"
     msgstr "密码"
     
    -#: bookwyrm/templates/layout.html:160 bookwyrm/templates/login.html:36
    +#: bookwyrm/templates/layout.html:157 bookwyrm/templates/login.html:36
     msgid "Forgot your password?"
     msgstr "忘记了密码?"
     
    -#: bookwyrm/templates/layout.html:163 bookwyrm/templates/login.html:10
    +#: bookwyrm/templates/layout.html:160 bookwyrm/templates/login.html:10
     #: bookwyrm/templates/login.html:33
     msgid "Log in"
     msgstr "登录"
     
    -#: bookwyrm/templates/layout.html:171
    +#: bookwyrm/templates/layout.html:168
     msgid "Join"
     msgstr "加入"
     
     #: bookwyrm/templates/layout.html:206
    -msgid "About this server"
    +#, fuzzy
    +#| msgid "About this server"
    +msgid "About this instance"
     msgstr "关于本服务器"
     
     #: bookwyrm/templates/layout.html:210
    @@ -1361,7 +1368,7 @@ msgid "Discard"
     msgstr "削除"
     
     #: bookwyrm/templates/lists/edit_form.html:5
    -#: bookwyrm/templates/lists/list_layout.html:17
    +#: bookwyrm/templates/lists/list_layout.html:16
     msgid "Edit List"
     msgstr "编辑列表"
     
    @@ -1410,62 +1417,63 @@ msgstr "任何人都可以向此列表中添加书目"
     msgid "This list is currently empty"
     msgstr "此列表当前是空的"
     
    -#: bookwyrm/templates/lists/list.html:65
    +#: bookwyrm/templates/lists/list.html:66
     #, python-format
     msgid "Added by %(username)s"
     msgstr "由 %(username)s 添加"
     
    -#: bookwyrm/templates/lists/list.html:77
    -#, fuzzy
    -#| msgid "Sent"
    -msgid "Set"
    -msgstr "已发送"
    -
    -#: bookwyrm/templates/lists/list.html:80
    +#: bookwyrm/templates/lists/list.html:74
     #, fuzzy
     #| msgid "List curation:"
     msgid "List position"
     msgstr "列表策展:"
     
    -#: bookwyrm/templates/lists/list.html:86
    +#: bookwyrm/templates/lists/list.html:81
    +#, fuzzy
    +#| msgid "Sent"
    +msgid "Set"
    +msgstr "已发送"
    +
    +#: bookwyrm/templates/lists/list.html:89
     #: bookwyrm/templates/snippets/shelf_selector.html:26
     msgid "Remove"
     msgstr "移除"
     
    -#: bookwyrm/templates/lists/list.html:99 bookwyrm/templates/lists/list.html:111
    +#: bookwyrm/templates/lists/list.html:103
    +#: bookwyrm/templates/lists/list.html:120
     #, fuzzy
     #| msgid "Your Lists"
     msgid "Sort List"
     msgstr "你的列表"
     
    -#: bookwyrm/templates/lists/list.html:105
    +#: bookwyrm/templates/lists/list.html:113
     #, fuzzy
     #| msgid "Directory"
     msgid "Direction"
     msgstr "目录"
     
    -#: bookwyrm/templates/lists/list.html:116
    +#: bookwyrm/templates/lists/list.html:127
     msgid "Add Books"
     msgstr "添加书目"
     
    -#: bookwyrm/templates/lists/list.html:116
    +#: bookwyrm/templates/lists/list.html:129
     msgid "Suggest Books"
     msgstr "推荐书目"
     
    -#: bookwyrm/templates/lists/list.html:125
    +#: bookwyrm/templates/lists/list.html:140
     msgid "search"
     msgstr "搜索"
     
    -#: bookwyrm/templates/lists/list.html:131
    +#: bookwyrm/templates/lists/list.html:146
     msgid "Clear search"
     msgstr "清除搜索"
     
    -#: bookwyrm/templates/lists/list.html:136
    +#: bookwyrm/templates/lists/list.html:151
     #, python-format
     msgid "No books found matching the query \"%(query)s\""
     msgstr "没有符合 \"%(query)s\" 请求的书目"
     
    -#: bookwyrm/templates/lists/list.html:164
    +#: bookwyrm/templates/lists/list.html:179
     msgid "Suggest"
     msgstr "推荐"
     
    @@ -1557,8 +1565,9 @@ msgid "Resolve"
     msgstr "已解决"
     
     #: bookwyrm/templates/moderation/reports.html:6
    -#, python-format
    -msgid "Reports: %(server_name)s"
    +#, fuzzy, python-format
    +#| msgid "Reports: %(server_name)s"
    +msgid "Reports: %(instance_name)s"
     msgstr "报告: %(server_name)s"
     
     #: bookwyrm/templates/moderation/reports.html:8
    @@ -1568,9 +1577,10 @@ msgid "Reports"
     msgstr "报告"
     
     #: bookwyrm/templates/moderation/reports.html:14
    -#, python-format
    -msgid "Reports: %(server_name)s"
    -msgstr "报告: %(server_name)s"
    +#, fuzzy, python-format
    +#| msgid "Users: %(server_name)s"
    +msgid "Reports: %(instance_name)s"
    +msgstr "用户: %(server_name)s"
     
     #: bookwyrm/templates/moderation/reports.html:28
     msgid "Resolved"
    @@ -1771,6 +1781,26 @@ msgstr "个人资料"
     msgid "Relationships"
     msgstr "关系"
     
    +#: bookwyrm/templates/rss/title.html:5
    +#: bookwyrm/templates/snippets/status/status_header.html:35
    +msgid "rated"
    +msgstr "评价了"
    +
    +#: bookwyrm/templates/rss/title.html:7
    +#: bookwyrm/templates/snippets/status/status_header.html:37
    +msgid "reviewed"
    +msgstr "写了书评给"
    +
    +#: bookwyrm/templates/rss/title.html:9
    +#: bookwyrm/templates/snippets/status/status_header.html:39
    +msgid "commented on"
    +msgstr "评论了"
    +
    +#: bookwyrm/templates/rss/title.html:11
    +#: bookwyrm/templates/snippets/status/status_header.html:41
    +msgid "quoted"
    +msgstr "引用了"
    +
     #: bookwyrm/templates/search/book.html:64
     #, fuzzy
     #| msgid "Show results from other catalogues"
    @@ -1828,7 +1858,9 @@ msgstr "管理用户"
     #: bookwyrm/templates/settings/admin_layout.html:39
     #: bookwyrm/templates/settings/federation.html:3
     #: bookwyrm/templates/settings/federation.html:5
    -msgid "Federated Servers"
    +#, fuzzy
    +#| msgid "Federated Servers"
    +msgid "Federated Instances"
     msgstr "互联的服务器"
     
     #: bookwyrm/templates/settings/admin_layout.html:44
    @@ -1882,6 +1914,7 @@ msgid "Back to list"
     msgstr "回到服务器列表"
     
     #: bookwyrm/templates/settings/announcement.html:11
    +#: bookwyrm/templates/settings/announcement_form.html:6
     #, fuzzy
     #| msgid "Announcements"
     msgid "Edit Announcement"
    @@ -1923,7 +1956,7 @@ msgstr "出生日期:"
     msgid "Active:"
     msgstr "活跃"
     
    -#: bookwyrm/templates/settings/announcement_form.html:5
    +#: bookwyrm/templates/settings/announcement_form.html:8
     #: bookwyrm/templates/settings/announcements.html:8
     #, fuzzy
     #| msgid "Announcements"
    @@ -1982,13 +2015,15 @@ msgstr "停用"
     #: bookwyrm/templates/settings/server_blocklist.html:3
     #: bookwyrm/templates/settings/server_blocklist.html:20
     #, fuzzy
    -#| msgid "Add cover"
    -msgid "Add server"
    -msgstr "添加封面"
    +#| msgid "Instance Name:"
    +msgid "Add instance"
    +msgstr "实例名称"
     
     #: bookwyrm/templates/settings/edit_server.html:7
     #: bookwyrm/templates/settings/server_blocklist.html:7
    -msgid "Back to server list"
    +#, fuzzy
    +#| msgid "Back to server list"
    +msgid "Back to instance list"
     msgstr "回到服务器列表"
     
     #: bookwyrm/templates/settings/edit_server.html:16
    @@ -2103,8 +2138,10 @@ msgstr ""
     
     #: bookwyrm/templates/settings/federation.html:19
     #: bookwyrm/templates/user_admin/server_filter.html:5
    -msgid "Server name"
    -msgstr "服务器名称"
    +#, fuzzy
    +#| msgid "Instance Name:"
    +msgid "Instance name"
    +msgstr "实例名称"
     
     #: bookwyrm/templates/settings/federation.html:23
     msgid "Date federated"
    @@ -2231,7 +2268,7 @@ msgid "Import Blocklist"
     msgstr "导入书目"
     
     #: bookwyrm/templates/settings/server_blocklist.html:26
    -#: bookwyrm/templates/snippets/goal_progress.html:5
    +#: bookwyrm/templates/snippets/goal_progress.html:7
     msgid "Success!"
     msgstr "成功!"
     
    @@ -2320,15 +2357,15 @@ msgstr "没有封面"
     msgid "%(title)s by "
     msgstr "%(title)s 来自"
     
    -#: bookwyrm/templates/snippets/boost_button.html:9
    -#: bookwyrm/templates/snippets/boost_button.html:10
    +#: bookwyrm/templates/snippets/boost_button.html:20
    +#: bookwyrm/templates/snippets/boost_button.html:21
     #, fuzzy
     #| msgid "boosted"
     msgid "Boost"
     msgstr "转发了"
     
    -#: bookwyrm/templates/snippets/boost_button.html:16
    -#: bookwyrm/templates/snippets/boost_button.html:17
    +#: bookwyrm/templates/snippets/boost_button.html:33
    +#: bookwyrm/templates/snippets/boost_button.html:34
     #, fuzzy
     #| msgid "Un-boost status"
     msgid "Un-boost"
    @@ -2422,13 +2459,13 @@ msgstr "删除这些阅读日期吗?"
     msgid "You are deleting this readthrough and its %(count)s associated progress updates."
     msgstr "你正要删除这篇阅读经过以及与之相关的 %(count)s 次进度更新。"
     
    -#: bookwyrm/templates/snippets/fav_button.html:9
    -#: bookwyrm/templates/snippets/fav_button.html:11
    +#: bookwyrm/templates/snippets/fav_button.html:10
    +#: bookwyrm/templates/snippets/fav_button.html:12
     msgid "Like"
     msgstr ""
     
    -#: bookwyrm/templates/snippets/fav_button.html:17
     #: bookwyrm/templates/snippets/fav_button.html:18
    +#: bookwyrm/templates/snippets/fav_button.html:19
     #, fuzzy
     #| msgid "Un-like status"
     msgid "Un-like"
    @@ -2522,17 +2559,17 @@ msgstr "发布到消息流中"
     msgid "Set goal"
     msgstr "设置目标"
     
    -#: bookwyrm/templates/snippets/goal_progress.html:7
    +#: bookwyrm/templates/snippets/goal_progress.html:9
     #, python-format
     msgid "%(percent)s%% complete!"
     msgstr "完成了 %(percent)s%% !"
     
    -#: bookwyrm/templates/snippets/goal_progress.html:10
    +#: bookwyrm/templates/snippets/goal_progress.html:12
     #, python-format
     msgid "You've read %(read_count)s of %(goal_count)s books."
     msgstr "你已经阅读了 %(goal_count)s 本书中的 %(read_count)s 本。"
     
    -#: bookwyrm/templates/snippets/goal_progress.html:12
    +#: bookwyrm/templates/snippets/goal_progress.html:14
     #, python-format
     msgid "%(username)s has read %(read_count)s of %(goal_count)s books."
     msgstr "%(username)s 已经阅读了 %(goal_count)s 本书中的 %(read_count)s 本。"
    @@ -2641,26 +2678,6 @@ msgstr "注册"
     msgid "Report"
     msgstr "报告"
     
    -#: bookwyrm/templates/snippets/rss_title.html:5
    -#: bookwyrm/templates/snippets/status/status_header.html:35
    -msgid "rated"
    -msgstr "评价了"
    -
    -#: bookwyrm/templates/snippets/rss_title.html:7
    -#: bookwyrm/templates/snippets/status/status_header.html:37
    -msgid "reviewed"
    -msgstr "写了书评给"
    -
    -#: bookwyrm/templates/snippets/rss_title.html:9
    -#: bookwyrm/templates/snippets/status/status_header.html:39
    -msgid "commented on"
    -msgstr "评论了"
    -
    -#: bookwyrm/templates/snippets/rss_title.html:11
    -#: bookwyrm/templates/snippets/status/status_header.html:41
    -msgid "quoted"
    -msgstr "引用了"
    -
     #: bookwyrm/templates/snippets/search_result_text.html:36
     msgid "Import book"
     msgstr "导入书目"
    @@ -2832,7 +2849,7 @@ msgstr "编辑书架"
     msgid "Update shelf"
     msgstr "更新书架"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:25 bookwyrm/views/shelf.py:51
    +#: bookwyrm/templates/user/shelf/shelf.html:25 bookwyrm/views/shelf.py:56
     msgid "All books"
     msgstr "所有书目"
     
    @@ -2840,30 +2857,30 @@ msgstr "所有书目"
     msgid "Create shelf"
     msgstr "创建书架"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:61
    +#: bookwyrm/templates/user/shelf/shelf.html:62
     msgid "Edit shelf"
     msgstr "编辑书架"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:80
    -#: bookwyrm/templates/user/shelf/shelf.html:104
    +#: bookwyrm/templates/user/shelf/shelf.html:81
    +#: bookwyrm/templates/user/shelf/shelf.html:105
     msgid "Shelved"
     msgstr "上架时间"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:81
    -#: bookwyrm/templates/user/shelf/shelf.html:108
    +#: bookwyrm/templates/user/shelf/shelf.html:82
    +#: bookwyrm/templates/user/shelf/shelf.html:109
     msgid "Started"
     msgstr "开始时间"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:82
    -#: bookwyrm/templates/user/shelf/shelf.html:111
    +#: bookwyrm/templates/user/shelf/shelf.html:83
    +#: bookwyrm/templates/user/shelf/shelf.html:112
     msgid "Finished"
     msgstr "完成时间"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:137
    +#: bookwyrm/templates/user/shelf/shelf.html:138
     msgid "This shelf is empty."
     msgstr "此书架是空的。"
     
    -#: bookwyrm/templates/user/shelf/shelf.html:143
    +#: bookwyrm/templates/user/shelf/shelf.html:144
     msgid "Delete shelf"
     msgstr "删除书架"
     
    @@ -2923,8 +2940,9 @@ msgid "Back to users"
     msgstr "回到报告"
     
     #: bookwyrm/templates/user_admin/user_admin.html:7
    -#, python-format
    -msgid "Users: %(server_name)s"
    +#, fuzzy, python-format
    +#| msgid "Users: %(server_name)s"
    +msgid "Users: %(instance_name)s"
     msgstr "用户: %(server_name)s"
     
     #: bookwyrm/templates/user_admin/user_admin.html:22
    @@ -2941,8 +2959,10 @@ msgid "Last Active"
     msgstr "最后或缺"
     
     #: bookwyrm/templates/user_admin/user_admin.html:38
    -msgid "Remote server"
    -msgstr "移除服务器"
    +#, fuzzy
    +#| msgid "Instance Name:"
    +msgid "Remote instance"
    +msgstr "实例名称"
     
     #: bookwyrm/templates/user_admin/user_admin.html:47
     msgid "Active"
    @@ -2989,6 +3009,10 @@ msgstr ""
     msgid "Access level:"
     msgstr ""
     
    +#: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:3
    +msgid "File exceeds maximum size: 10MB"
    +msgstr ""
    +
     #: bookwyrm/views/import_data.py:67
     #, fuzzy
     #| msgid "Email address:"
    @@ -3004,6 +3028,24 @@ msgstr "没有找到使用该邮箱的用户。"
     msgid "A password reset link sent to %s"
     msgstr "密码重置连接已发送给 %s"
     
    +#, python-format
    +#~ msgid "Reports: %(server_name)s"
    +#~ msgstr "报告: %(server_name)s"
    +
    +#~ msgid "Federated Servers"
    +#~ msgstr "互联的服务器"
    +
    +#~ msgid "Server name"
    +#~ msgstr "服务器名称"
    +
    +#, fuzzy
    +#~| msgid "Add cover"
    +#~ msgid "Add server"
    +#~ msgstr "添加封面"
    +
    +#~ msgid "Remote server"
    +#~ msgstr "移除服务器"
    +
     #, fuzzy
     #~| msgid "BookWyrm users"
     #~ msgid "BookWyrm\\"
    
    From 5d2f01d7ffef9bccda2ea75500ba3aa4f18b18cc Mon Sep 17 00:00:00 2001
    From: Mouse Reeve 
    Date: Tue, 1 Jun 2021 14:51:57 -0700
    Subject: [PATCH 03/18] Updates locales
    
    ---
     locale/de_DE/LC_MESSAGES/django.mo   | Bin 24502 -> 24354 bytes
     locale/de_DE/LC_MESSAGES/django.po   |   2 +-
     locale/en_US/LC_MESSAGES/django.po   |   2 +-
     locale/es/LC_MESSAGES/django.mo      | Bin 43765 -> 42979 bytes
     locale/es/LC_MESSAGES/django.po      |   2 +-
     locale/fr_FR/LC_MESSAGES/django.mo   | Bin 45401 -> 44654 bytes
     locale/fr_FR/LC_MESSAGES/django.po   |   2 +-
     locale/zh_Hans/LC_MESSAGES/django.mo | Bin 36590 -> 36011 bytes
     locale/zh_Hans/LC_MESSAGES/django.po |   2 +-
     9 files changed, 5 insertions(+), 5 deletions(-)
    
    diff --git a/locale/de_DE/LC_MESSAGES/django.mo b/locale/de_DE/LC_MESSAGES/django.mo
    index 089ac656a8b3cf4cdb6fdbabd8127cd33bb6afab..dde00be621032b841673a440278b1fb305361245 100644
    GIT binary patch
    delta 7362
    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
    RVXbQN2OSHkNvL={{C|FM-#q{T
    
    delta 7503
    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\n"
     "Language-Team: English \n"
    diff --git a/locale/en_US/LC_MESSAGES/django.po b/locale/en_US/LC_MESSAGES/django.po
    index 7d1044b2b..b88dad088 100644
    --- a/locale/en_US/LC_MESSAGES/django.po
    +++ b/locale/en_US/LC_MESSAGES/django.po
    @@ -8,7 +8,7 @@ msgid ""
     msgstr ""
     "Project-Id-Version: 0.0.1\n"
     "Report-Msgid-Bugs-To: \n"
    -"POT-Creation-Date: 2021-06-01 14:49-0700\n"
    +"POT-Creation-Date: 2021-06-01 14:50-0700\n"
     "PO-Revision-Date: 2021-02-28 17:19-0800\n"
     "Last-Translator: Mouse Reeve \n"
     "Language-Team: English \n"
    diff --git a/locale/es/LC_MESSAGES/django.mo b/locale/es/LC_MESSAGES/django.mo
    index 0e5df226ff94914032c35b735f32bebe7ae3630e..ea8dada7bc1a39ae38e7c218be0b586dae3ac452 100644
    GIT binary patch
    delta 13312
    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
    
    delta 13996
    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
    
    diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po
    index 012d1e138..eee94c1f4 100644
    --- a/locale/es/LC_MESSAGES/django.po
    +++ b/locale/es/LC_MESSAGES/django.po
    @@ -8,7 +8,7 @@ msgid ""
     msgstr ""
     "Project-Id-Version: 0.0.1\n"
     "Report-Msgid-Bugs-To: \n"
    -"POT-Creation-Date: 2021-06-01 14:49-0700\n"
    +"POT-Creation-Date: 2021-06-01 14:50-0700\n"
     "PO-Revision-Date: 2021-03-19 11:49+0800\n"
     "Last-Translator: FULL NAME \n"
     "Language-Team: LANGUAGE \n"
    diff --git a/locale/fr_FR/LC_MESSAGES/django.mo b/locale/fr_FR/LC_MESSAGES/django.mo
    index b893b1287e9b958ea2c5cc78708ab547f378d4b4..29020216d94cec7b210cab035fcb6aecfbf08b73 100644
    GIT binary patch
    delta 13288
    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
    IN_N2i1I$B2_y7O^
    
    delta 14009
    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
    
    diff --git a/locale/fr_FR/LC_MESSAGES/django.po b/locale/fr_FR/LC_MESSAGES/django.po
    index 71b154ba1..6fc145d17 100644
    --- a/locale/fr_FR/LC_MESSAGES/django.po
    +++ b/locale/fr_FR/LC_MESSAGES/django.po
    @@ -8,7 +8,7 @@ msgid ""
     msgstr ""
     "Project-Id-Version: 0.1.1\n"
     "Report-Msgid-Bugs-To: \n"
    -"POT-Creation-Date: 2021-06-01 14:49-0700\n"
    +"POT-Creation-Date: 2021-06-01 14:50-0700\n"
     "PO-Revision-Date: 2021-04-05 12:44+0100\n"
     "Last-Translator: Fabien Basmaison \n"
     "Language-Team: Mouse Reeve \n"
    diff --git a/locale/zh_Hans/LC_MESSAGES/django.mo b/locale/zh_Hans/LC_MESSAGES/django.mo
    index 17b3df6956342292739f79d1aa1f47e4e6dd7793..496caabcf282089a8988b0acb1f577dc27ddbe8a 100644
    GIT binary patch
    delta 11507
    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
    l0sh`2gF^zn*R%SB)yQhRSoQDW7KAffhGVgWU
    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
    WQAz$$^ETW_+4HZP+mMtl^Zx;wXZ9=r
    
    diff --git a/locale/zh_Hans/LC_MESSAGES/django.po b/locale/zh_Hans/LC_MESSAGES/django.po
    index 56b424a4a..ef5cd2da4 100644
    --- a/locale/zh_Hans/LC_MESSAGES/django.po
    +++ b/locale/zh_Hans/LC_MESSAGES/django.po
    @@ -8,7 +8,7 @@ msgid ""
     msgstr ""
     "Project-Id-Version: 0.1.1\n"
     "Report-Msgid-Bugs-To: \n"
    -"POT-Creation-Date: 2021-06-01 14:49-0700\n"
    +"POT-Creation-Date: 2021-06-01 14:50-0700\n"
     "PO-Revision-Date: 2021-03-20 00:56+0000\n"
     "Last-Translator: Kana \n"
     "Language-Team: Mouse Reeve \n"
    
    From 3301de5e5453845a9977372a4ae64eee4df25787 Mon Sep 17 00:00:00 2001
    From: Mouse Reeve 
    Date: Wed, 2 Jun 2021 07:21:18 -0700
    Subject: [PATCH 04/18] Update locale/fr_FR/LC_MESSAGES/django.po
    
    Co-authored-by: Joachim 
    ---
     locale/fr_FR/LC_MESSAGES/django.po | 4 +---
     1 file changed, 1 insertion(+), 3 deletions(-)
    
    diff --git a/locale/fr_FR/LC_MESSAGES/django.po b/locale/fr_FR/LC_MESSAGES/django.po
    index 6fc145d17..562d2ffed 100644
    --- a/locale/fr_FR/LC_MESSAGES/django.po
    +++ b/locale/fr_FR/LC_MESSAGES/django.po
    @@ -1530,10 +1530,8 @@ msgid "Resolve"
     msgstr "Résoudre"
     
     #: bookwyrm/templates/moderation/reports.html:6
    -#, fuzzy, 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:17
    
    From 34b93679f0b952723d696563ad0cab9d3224fa4b Mon Sep 17 00:00:00 2001
    From: Mouse Reeve 
    Date: Wed, 2 Jun 2021 07:21:32 -0700
    Subject: [PATCH 05/18] Update locale/fr_FR/LC_MESSAGES/django.po
    
    Co-authored-by: Joachim 
    ---
     locale/fr_FR/LC_MESSAGES/django.po | 4 +---
     1 file changed, 1 insertion(+), 3 deletions(-)
    
    diff --git a/locale/fr_FR/LC_MESSAGES/django.po b/locale/fr_FR/LC_MESSAGES/django.po
    index 562d2ffed..23308c8ba 100644
    --- a/locale/fr_FR/LC_MESSAGES/django.po
    +++ b/locale/fr_FR/LC_MESSAGES/django.po
    @@ -1283,10 +1283,8 @@ msgid "Join"
     msgstr "Rejoindre"
     
     #: bookwyrm/templates/layout.html:206
    -#, fuzzy
    -#| msgid "About this server"
     msgid "About this instance"
    -msgstr "À propos de ce serveur"
    +msgstr "À propos de cette instance"
     
     #: bookwyrm/templates/layout.html:210
     msgid "Contact site admin"
    
    From 7d1e4aebbc03346a15a5078f879d3c4dbfc48373 Mon Sep 17 00:00:00 2001
    From: Joachim 
    Date: Wed, 2 Jun 2021 18:17:53 +0200
    Subject: [PATCH 06/18] Better forms
    
    ---
     bookwyrm/templates/author/edit_author.html    |  98 ++++---
     bookwyrm/templates/book/edit_book.html        | 266 +++++++++++-------
     bookwyrm/templates/import.html                |   4 +-
     bookwyrm/templates/import_status.html         |  36 +--
     bookwyrm/templates/settings/edit_server.html  |  12 +-
     bookwyrm/templates/settings/site.html         |  36 +--
     .../templates/snippets/readthrough_form.html  |   8 +-
     .../shelve_button/finish_reading_modal.html   |   8 +-
     .../shelve_button/start_reading_modal.html    |   6 +-
     .../clearable_file_input_with_warning.html    |  25 +-
     bookwyrm/templatetags/utilities.py            |  13 +
     11 files changed, 314 insertions(+), 198 deletions(-)
    
    diff --git a/bookwyrm/templates/author/edit_author.html b/bookwyrm/templates/author/edit_author.html
    index 010d36efc..103341bfd 100644
    --- a/bookwyrm/templates/author/edit_author.html
    +++ b/bookwyrm/templates/author/edit_author.html
    @@ -29,67 +29,85 @@
         

    {% trans "Metadata" %}

    -

    {{ form.name }}

    - {% for error in form.name.errors %} -

    {{ error | escape }}

    - {% endfor %} +
    + + {{ form.name }} + {% for error in form.name.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    +

    {{ form.aliases }} {% trans "Separate multiple values with commas." %} -

    - {% for error in form.aliases.errors %} -

    {{ error | escape }}

    - {% endfor %} + {% for error in form.aliases.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    {{ form.bio }}

    - {% for error in form.bio.errors %} -

    {{ error | escape }}

    - {% endfor %} +
    + + {{ form.bio }} + {% for error in form.bio.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    {{ form.wikipedia_link }}

    +

    {{ form.wikipedia_link }}

    {% for error in form.wikipedia_link.errors %}

    {{ error | escape }}

    {% endfor %} -

    +

    -

    - {% for error in form.born.errors %} -

    {{ error | escape }}

    - {% endfor %} + {% for error in form.born.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    +

    -

    - {% for error in form.died.errors %} -

    {{ error | escape }}

    - {% endfor %} + {% for error in form.died.errors %} +

    {{ error | escape }}

    + {% endfor %} +

    {% trans "Author Identifiers" %}

    -

    {{ form.openlibrary_key }}

    - {% for error in form.openlibrary_key.errors %} -

    {{ error | escape }}

    - {% endfor %} +
    + + {{ form.openlibrary_key }} + {% for error in form.openlibrary_key.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    {{ form.inventaire_id }}

    - {% for error in form.inventaire_id.errors %} -

    {{ error | escape }}

    - {% endfor %} +
    + + {{ form.inventaire_id }} + {% for error in form.inventaire_id.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    {{ form.librarything_key }}

    - {% for error in form.librarything_key.errors %} -

    {{ error | escape }}

    - {% endfor %} +
    + + {{ form.librarything_key }} + {% for error in form.librarything_key.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    {{ form.goodreads_key }}

    - {% for error in form.goodreads_key.errors %} -

    {{ error | escape }}

    - {% endfor %} +
    + + {{ form.goodreads_key }} + {% for error in form.goodreads_key.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    diff --git a/bookwyrm/templates/book/edit_book.html b/bookwyrm/templates/book/edit_book.html index 8dae1d044..32018a251 100644 --- a/bookwyrm/templates/book/edit_book.html +++ b/bookwyrm/templates/book/edit_book.html @@ -14,11 +14,25 @@ {% endif %} {% if book %} -
    -

    {% trans "Added:" %} {{ book.created_date | naturaltime }}

    -

    {% trans "Updated:" %} {{ book.updated_date | naturaltime }}

    -

    {% trans "Last edited by:" %} {{ book.last_edited_by.display_name }}

    -
    +
    +
    +
    {% trans "Added:" %}
    +
    {{ book.created_date | naturaltime }}
    +
    + +
    +
    {% trans "Updated:" %}
    +
    {{ book.updated_date | naturaltime }}
    +
    + + {% if book.last_edited_by %} +
    +
    {% trans "Last edited by:" %}
    +
    {{ book.last_edited_by.display_name }}
    +
    + {% endif %} + +
    {% endif %} @@ -38,21 +52,28 @@ {% if confirm_mode %}

    {% trans "Confirm Book Info" %}

    -
    +
    {% if author_matches %}
    {% for author in author_matches %} -
    - {% blocktrans with name=author.name %}Is "{{ name }}" an existing author?{% endblocktrans %} +
    + + {% blocktrans with name=author.name %}Is "{{ name }}" an existing author?{% endblocktrans %} + {% with forloop.counter0 as counter %} {% for match in author.matches %} - +

    {% blocktrans with book_title=match.book_set.first.title %}Author of {{ book_title }}{% endblocktrans %}

    {% endfor %} - + {% endwith %}
    {% endfor %} @@ -64,11 +85,17 @@ {% if not book %}
    - {% trans "Is this an edition of an existing work?" %} + + {% trans "Is this an edition of an existing work?" %} + {% for match in book_matches %} - + {% endfor %} - +
    {% endif %} @@ -89,76 +116,79 @@

    {% trans "Metadata" %}

    -

    +

    -

    - {% for error in form.title.errors %} -

    {{ error | escape }}

    - {% endfor %} + {% for error in form.title.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    +

    -

    - {% for error in form.subtitle.errors %} -

    {{ error | escape }}

    - {% endfor %} + {% for error in form.subtitle.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    {{ form.description }}

    - {% for error in form.description.errors %} -

    {{ error | escape }}

    - {% endfor %} +
    + + {{ form.description }} + {% for error in form.description.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    +

    -

    - {% for error in form.series.errors %} -

    {{ error | escape }}

    - {% endfor %} + {% for error in form.series.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    +

    {{ form.series_number }} -

    - {% for error in form.series_number.errors %} -

    {{ error | escape }}

    - {% endfor %} + {% for error in form.series_number.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    +

    {{ form.languages }} {% trans "Separate multiple values with commas." %} -

    - {% for error in form.languages.errors %} -

    {{ error | escape }}

    - {% endfor %} + {% for error in form.languages.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    +

    {{ form.publishers }} {% trans "Separate multiple values with commas." %} -

    - {% for error in form.publishers.errors %} -

    {{ error | escape }}

    - {% endfor %} + {% for error in form.publishers.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    +

    -

    - {% for error in form.first_published_date.errors %} -

    {{ error | escape }}

    - {% endfor %} + {% for error in form.first_published_date.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    +

    -

    - {% for error in form.published_date.errors %} -

    {{ error | escape }}

    - {% endfor %} + {% for error in form.published_date.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    @@ -166,16 +196,23 @@ {% if book.authors.exists %}
    {% for author in book.authors.all %} - +
    + +

    + {% blocktrans with name=author.name %}Author page for {{ name }}{% endblocktrans %} +

    +
    {% endfor %}
    {% endif %} - - - {% trans "Separate multiple values with commas." %} +
    + + + {% trans "Separate multiple values with commas." %} +
    @@ -188,17 +225,17 @@
    -

    +

    {{ form.cover }} -

    +
    {% if book %} -

    +

    -

    +
    {% endif %} {% for error in form.cover.errors %}

    {{ error | escape }}

    @@ -209,51 +246,72 @@

    {% trans "Physical Properties" %}

    -

    {{ form.physical_format }}

    - {% for error in form.physical_format.errors %} -

    {{ error | escape }}

    - {% endfor %} - {% for error in form.physical_format.errors %} -

    {{ error | escape }}

    - {% endfor %} +
    + + {{ form.physical_format }} + {% for error in form.physical_format.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    {{ form.pages }}

    - {% for error in form.pages.errors %} -

    {{ error | escape }}

    - {% endfor %} +
    + + {{ form.pages }} + {% for error in form.pages.errors %} +

    {{ error | escape }}

    + {% endfor %} +

    {% trans "Book Identifiers" %}

    -

    {{ form.isbn_13 }}

    - {% for error in form.isbn_13.errors %} -

    {{ error | escape }}

    - {% endfor %} +
    + + {{ form.isbn_13 }} + {% for error in form.isbn_13.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    {{ form.isbn_10 }}

    - {% for error in form.isbn_10.errors %} -

    {{ error | escape }}

    - {% endfor %} +
    + + {{ form.isbn_10 }} + {% for error in form.isbn_10.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    {{ form.openlibrary_key }}

    - {% for error in form.openlibrary_key.errors %} -

    {{ error | escape }}

    - {% endfor %} +
    + + {{ form.openlibrary_key }} + {% for error in form.openlibrary_key.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    {{ form.inventaire_id }}

    - {% for error in form.inventaire_id.errors %} -

    {{ error | escape }}

    - {% endfor %} +
    + + {{ form.inventaire_id }} + {% for error in form.inventaire_id.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    {{ form.oclc_number }}

    - {% for error in form.oclc_number.errors %} -

    {{ error | escape }}

    - {% endfor %} +
    + + {{ form.oclc_number }} + {% for error in form.oclc_number.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    -

    {{ form.asin }}

    - {% for error in form.ASIN.errors %} -

    {{ error | escape }}

    - {% endfor %} +
    + + {{ form.asin }} + {% for error in form.ASIN.errors %} +

    {{ error | escape }}

    + {% endfor %} +
    @@ -261,7 +319,7 @@ {% if not confirm_mode %} {% endif %} diff --git a/bookwyrm/templates/import.html b/bookwyrm/templates/import.html index 2b7d69e10..d2e407486 100644 --- a/bookwyrm/templates/import.html +++ b/bookwyrm/templates/import.html @@ -41,8 +41,8 @@
    -
    diff --git a/bookwyrm/templates/import_status.html b/bookwyrm/templates/import_status.html index b1145611d..ff80ad71c 100644 --- a/bookwyrm/templates/import_status.html +++ b/bookwyrm/templates/import_status.html @@ -8,13 +8,17 @@

    {% trans "Import Status" %}

    -

    - {% trans "Import started:" %} {{ job.created_date | naturaltime }} -

    - {% if job.complete %} -

    - {% trans "Import completed:" %} {{ task.date_done | naturaltime }} -

    +
    +
    +
    {% trans "Import started:" %}
    +
    {{ job.created_date | naturaltime }}
    +
    + {% if job.complete %} +
    +
    {% trans "Import completed:" %}
    +
    {{ task.date_done | naturaltime }}
    +
    +
    {% elif task.failed %}
    {% trans "TASK FAILED" %}
    {% endif %} @@ -22,8 +26,9 @@
    {% if not job.complete %} - {% trans "Import still in progress." %}

    + {% trans "Import still in progress." %} +
    {% trans "(Hit reload to update!)" %}

    {% endif %} @@ -49,16 +54,13 @@
      {% for item in failed_items %} -
    • - - -

      +

    • + +
    • {% endfor %}
    diff --git a/bookwyrm/templates/settings/edit_server.html b/bookwyrm/templates/settings/edit_server.html index c5702c848..04585fe59 100644 --- a/bookwyrm/templates/settings/edit_server.html +++ b/bookwyrm/templates/settings/edit_server.html @@ -26,14 +26,14 @@ {% csrf_token %}
    -
    +
    {% for error in form.server_name.errors %}

    {{ error | escape }}

    {% endfor %}
    -
    +
    {% for error in form.application_type.errors %}

    {{ error | escape }}

    {% endfor %}
    -
    +
    {% for error in form.application_version.errors %} @@ -60,10 +60,10 @@
    -

    +

    -

    +
    diff --git a/bookwyrm/templates/settings/site.html b/bookwyrm/templates/settings/site.html index 1b9424527..d36371a41 100644 --- a/bookwyrm/templates/settings/site.html +++ b/bookwyrm/templates/settings/site.html @@ -11,23 +11,23 @@ {% csrf_token %}

    {% trans "Instance Info" %}

    -
    +
    {{ site_form.name }}
    -
    +
    {{ site_form.instance_tagline }}
    -
    +
    {{ site_form.instance_description }}
    -
    +
    {{ site_form.code_of_conduct }}
    -
    +
    {{ site_form.privacy_policy }}
    @@ -57,19 +57,19 @@