From 252f09325a9b3622cfade6acb8db44fdb951b7f1 Mon Sep 17 00:00:00 2001 From: Jim Fingal Date: Sun, 21 Feb 2021 23:07:58 -0800 Subject: [PATCH 001/111] Add black command --- Makefile | 5 +++++ requirements.txt | 11 +++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..44abad0b3 --- /dev/null +++ b/Makefile @@ -0,0 +1,5 @@ +.PHONY: itblack + +itblack: + docker-compose run --rm web black celerywyrm + docker-compose run --rm web black bookwyrm \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index e5d7798d7..f354fd439 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,4 @@ celery==4.4.2 -coverage==5.1 Django==3.0.7 django-model-utils==4.0.0 environs==7.2.0 @@ -8,11 +7,15 @@ Markdown==3.3.3 Pillow>=7.1.0 psycopg2==2.8.4 pycryptodome==3.9.4 -pytest-django==4.1.0 -pytest==6.1.2 -pytest-cov==2.10.1 python-dateutil==2.8.1 redis==3.4.1 requests==2.22.0 responses==0.10.14 django-rename-app==0.1.2 + +# Dev +black==20.8b1 +coverage==5.1 +pytest-django==4.1.0 +pytest==6.1.2 +pytest-cov==2.10.1 From 9580bec1541bec5127326cbbdc1e9115e7dfe811 Mon Sep 17 00:00:00 2001 From: Ned Zimmerman Date: Sat, 27 Feb 2021 11:47:03 -0400 Subject: [PATCH 002/111] feat: modify tabbed interfaces to support keyboard accessibility (fixes #526) --- bookwyrm/static/js/shared.js | 21 -- bookwyrm/static/js/tabs.js | 255 ++++++++++++++++++ bookwyrm/templates/feed.html | 90 ++++--- bookwyrm/templates/layout.html | 1 + bookwyrm/templates/shelf.html | 4 +- .../templates/snippets/create_status.html | 58 ++-- 6 files changed, 334 insertions(+), 95 deletions(-) create mode 100644 bookwyrm/static/js/tabs.js diff --git a/bookwyrm/static/js/shared.js b/bookwyrm/static/js/shared.js index a0c21bec6..3b0fa589e 100644 --- a/bookwyrm/static/js/shared.js +++ b/bookwyrm/static/js/shared.js @@ -12,10 +12,6 @@ window.onload = function() { Array.from(document.getElementsByClassName('select-all')) .forEach(t => t.onclick = selectAll); - // toggle between tabs - Array.from(document.getElementsByClassName('tab-change')) - .forEach(t => t.onclick = tabChange); - // handle aria settings on menus Array.from(document.getElementsByClassName('pulldown-menu')) .forEach(t => t.onclick = toggleMenu); @@ -131,23 +127,6 @@ function selectAll(e) { .forEach(t => t.checked=true); } -function tabChange(e) { - var el = e.currentTarget; - var parentElement = el.closest('[role="tablist"]'); - - parentElement.querySelectorAll('[aria-selected="true"]') - .forEach(t => t.setAttribute("aria-selected", false)); - el.setAttribute("aria-selected", true); - - parentElement.querySelectorAll('li') - .forEach(t => removeClass(t, 'is-active')); - addClass(el, 'is-active'); - - var tabId = el.getAttribute('data-tab'); - Array.from(document.getElementsByClassName(el.getAttribute('data-category'))) - .forEach(t => addRemoveClass(t, 'hidden', t.id != tabId)); -} - function toggleMenu(e) { var el = e.currentTarget; var expanded = el.getAttribute('aria-expanded') == 'false'; diff --git a/bookwyrm/static/js/tabs.js b/bookwyrm/static/js/tabs.js new file mode 100644 index 000000000..a57d29aed --- /dev/null +++ b/bookwyrm/static/js/tabs.js @@ -0,0 +1,255 @@ +/* +* This content is licensed according to the W3C Software License at +* https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document +* Heavily modified to web component by Zach Leatherman +* Further modified to support Bulma markup and nested tabs by Ned Zimmerman +*/ +class SevenMinuteTabs extends HTMLElement { + constructor() { + super(); + + this.tablist = this.querySelector('[role="tablist"]'); + this.buttons = this.tablist.querySelectorAll('[role="tab"]'); + this.panels = this.querySelectorAll(':scope > [role="tabpanel"]'); + this.delay = this.determineDelay(); + + if(!this.tablist || !this.buttons.length || !this.panels.length) { + return; + } + + this.initButtons(); + this.initPanels(); + } + + get keys() { + return { + end: 35, + home: 36, + left: 37, + up: 38, + right: 39, + down: 40 + }; + } + + // Add or substract depending on key pressed + get direction() { + return { + 37: -1, + 38: -1, + 39: 1, + 40: 1 + }; + } + + initButtons() { + let count = 0; + for(let button of this.buttons) { + let isSelected = button.getAttribute("aria-selected") === "true"; + button.setAttribute("tabindex", isSelected ? "0" : "-1"); + + button.addEventListener('click', this.clickEventListener.bind(this)); + button.addEventListener('keydown', this.keydownEventListener.bind(this)); + button.addEventListener('keyup', this.keyupEventListener.bind(this)); + + button.index = count++; + } + } + + initPanels() { + let selectedPanelId = this.tablist.querySelector('[role="tab"][aria-selected="true"]').getAttribute("aria-controls"); + for(let panel of this.panels) { + if(panel.getAttribute("id") !== selectedPanelId) { + panel.setAttribute("hidden", ""); + } + panel.setAttribute("tabindex", "0"); + } + } + + clickEventListener(event) { + let button = event.target; + if(button.tagName === "A" || button.tagName === "BUTTON" && button.getAttribute("type") === "submit") { + event.preventDefault(); + } + + this.activateTab(button, false); + } + + // Handle keydown on tabs + keydownEventListener(event) { + var key = event.keyCode; + + switch (key) { + case this.keys.end: + event.preventDefault(); + // Activate last tab + this.activateTab(this.buttons[this.buttons.length - 1]); + break; + case this.keys.home: + event.preventDefault(); + // Activate first tab + this.activateTab(this.buttons[0]); + break; + + // Up and down are in keydown + // because we need to prevent page scroll >:) + case this.keys.up: + case this.keys.down: + this.determineOrientation(event); + break; + }; + } + + // Handle keyup on tabs + keyupEventListener(event) { + var key = event.keyCode; + + switch (key) { + case this.keys.left: + case this.keys.right: + this.determineOrientation(event); + break; + }; + } + + // When a tablist’s aria-orientation is set to vertical, + // only up and down arrow should function. + // In all other cases only left and right arrow function. + determineOrientation(event) { + var key = event.keyCode; + var vertical = this.tablist.getAttribute('aria-orientation') == 'vertical'; + var proceed = false; + + if (vertical) { + if (key === this.keys.up || key === this.keys.down) { + event.preventDefault(); + proceed = true; + }; + } + else { + if (key === this.keys.left || key === this.keys.right) { + proceed = true; + }; + }; + + if (proceed) { + this.switchTabOnArrowPress(event); + }; + } + + // Either focus the next, previous, first, or last tab + // depending on key pressed + switchTabOnArrowPress(event) { + var pressed = event.keyCode; + + for (let button of this.buttons) { + button.addEventListener('focus', this.focusEventHandler.bind(this)); + }; + + if (this.direction[pressed]) { + var target = event.target; + if (target.index !== undefined) { + if (this.buttons[target.index + this.direction[pressed]]) { + this.buttons[target.index + this.direction[pressed]].focus(); + } + else if (pressed === this.keys.left || pressed === this.keys.up) { + this.focusLastTab(); + } + else if (pressed === this.keys.right || pressed == this.keys.down) { + this.focusFirstTab(); + } + } + } + } + + // Activates any given tab panel + activateTab (tab, setFocus) { + if(tab.getAttribute("role") !== "tab") { + tab = tab.closest('[role="tab"]'); + } + + setFocus = setFocus || true; + + // Deactivate all other tabs + this.deactivateTabs(); + + // Remove tabindex attribute + tab.removeAttribute('tabindex'); + + // Set the tab as selected + tab.setAttribute('aria-selected', 'true'); + + // Give the tab parent an is-active class + tab.parentNode.classList.add('is-active'); + + // Get the value of aria-controls (which is an ID) + var controls = tab.getAttribute('aria-controls'); + + // Remove hidden attribute from tab panel to make it visible + document.getElementById(controls).removeAttribute('hidden'); + + // Set focus when required + if (setFocus) { + tab.focus(); + } + } + + // Deactivate all tabs and tab panels + deactivateTabs() { + for (let button of this.buttons) { + button.parentNode.classList.remove('is-active'); + button.setAttribute('tabindex', '-1'); + button.setAttribute('aria-selected', 'false'); + button.removeEventListener('focus', this.focusEventHandler.bind(this)); + } + + for (let panel of this.panels) { + panel.setAttribute('hidden', 'hidden'); + } + } + + focusFirstTab() { + this.buttons[0].focus(); + } + + focusLastTab() { + this.buttons[this.buttons.length - 1].focus(); + } + + // Determine whether there should be a delay + // when user navigates with the arrow keys + determineDelay() { + var hasDelay = this.tablist.hasAttribute('data-delay'); + var delay = 0; + + if (hasDelay) { + var delayValue = this.tablist.getAttribute('data-delay'); + if (delayValue) { + delay = delayValue; + } + else { + // If no value is specified, default to 300ms + delay = 300; + }; + }; + + return delay; + } + + focusEventHandler(event) { + var target = event.target; + + setTimeout(this.checkTabFocus.bind(this), this.delay, target); + }; + + // Only activate tab on focus if it still has focus after the delay + checkTabFocus(target) { + let focused = document.activeElement; + + if (target === focused) { + this.activateTab(target, false); + } + } + } + + window.customElements.define("seven-minute-tabs", SevenMinuteTabs); diff --git a/bookwyrm/templates/feed.html b/bookwyrm/templates/feed.html index 1368660bc..82ccff5a1 100644 --- a/bookwyrm/templates/feed.html +++ b/bookwyrm/templates/feed.html @@ -8,56 +8,58 @@ {% if not suggested_books %}

There are no books here right now! Try searching for a book to get started

{% else %} -
-
    + +
    + +
    {% for shelf in suggested_books %} - {% if shelf.books %} {% with shelf_counter=forloop.counter %} -
  • -

    - {{ shelf.name }} + {% for book in shelf.books %} +

    +
    +

    + {% include 'snippets/book_titleby.html' with book=book %}

    -
    - +
    + {% include 'snippets/toggle/toggle_button.html' with label="close" controls_text="book" controls_uid=book.id class="delete" nonbutton=True pressed=True %}
    -
  • - {% endwith %} - {% endif %} - {% endfor %} -
-
- {% for shelf in suggested_books %} - {% with shelf_counter=forloop.counter %} - {% for book in shelf.books %} -
-
-

- {% include 'snippets/book_titleby.html' with book=book %} -

-
- {% include 'snippets/toggle/toggle_button.html' with label="close" controls_text="book" controls_uid=book.id class="delete" nonbutton=True pressed=True %} +
+
+ {% include 'snippets/shelve_button.html' with book=book %} + {% active_shelf book as active_shelf %} + {% if active_shelf.shelf.identifier == 'reading' and book.latest_readthrough %} + {% include 'snippets/progress_update.html' with readthrough=book.latest_readthrough %} + {% endif %} + {% include 'snippets/create_status.html' with book=book %}
-
- {% include 'snippets/shelve_button.html' with book=book %} - {% active_shelf book as active_shelf %} - {% if active_shelf.shelf.identifier == 'reading' and book.latest_readthrough %} - {% include 'snippets/progress_update.html' with readthrough=book.latest_readthrough %} - {% endif %} - {% include 'snippets/create_status.html' with book=book %} -
-
- {% endfor %} - {% endwith %} - {% endfor %} + {% endfor %} + {% endwith %} + {% endfor %} + {% endif %} {% if goal %} diff --git a/bookwyrm/templates/layout.html b/bookwyrm/templates/layout.html index ddbafbb42..c7a56cc74 100644 --- a/bookwyrm/templates/layout.html +++ b/bookwyrm/templates/layout.html @@ -191,5 +191,6 @@ var csrf_token = '{{ csrf_token }}'; + diff --git a/bookwyrm/templates/shelf.html b/bookwyrm/templates/shelf.html index da599c7d2..0206d7e91 100644 --- a/bookwyrm/templates/shelf.html +++ b/bookwyrm/templates/shelf.html @@ -18,11 +18,11 @@
-
+
diff --git a/bookwyrm/templates/snippets/create_status.html b/bookwyrm/templates/snippets/create_status.html index b443acdd6..1842285f2 100644 --- a/bookwyrm/templates/snippets/create_status.html +++ b/bookwyrm/templates/snippets/create_status.html @@ -1,34 +1,36 @@ {% load humanize %} {% load bookwyrm_tags %} -
- -
+ +
+ +
-
- {% with 0|uuid as uuid %} - {% include 'snippets/create_status_form.html' with type='review' %} - {% endwith %} -
+
+ {% with 0|uuid as uuid %} + {% include 'snippets/create_status_form.html' with type='review' %} + {% endwith %} +
- + - + +
From 9ed5226b5842354d5a45a254952afbcbb6fe478c Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 27 Feb 2021 11:07:16 -0800 Subject: [PATCH 003/111] Switches layout to use in-template html header titles --- bookwyrm/templates/feed/feed_layout.html | 1 + bookwyrm/templates/layout.html | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bookwyrm/templates/feed/feed_layout.html b/bookwyrm/templates/feed/feed_layout.html index 00ac4ab88..57dae971f 100644 --- a/bookwyrm/templates/feed/feed_layout.html +++ b/bookwyrm/templates/feed/feed_layout.html @@ -1,5 +1,6 @@ {% extends 'layout.html' %} {% load bookwyrm_tags %} +{% block title %}Updates{% endblock %} {% block content %}
diff --git a/bookwyrm/templates/layout.html b/bookwyrm/templates/layout.html index fe8a75094..ef1a20616 100644 --- a/bookwyrm/templates/layout.html +++ b/bookwyrm/templates/layout.html @@ -2,7 +2,7 @@ - {% if title %}{{ title }} | {% endif %}{{ site.name }} + {% block title %}BookWyrm{% endblock %} | {{ site.name }} From c48376854432f43ea5eaafc21c36ef15f5d3f5ec Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 28 Feb 2021 10:00:36 -0800 Subject: [PATCH 004/111] Moves titles into templates and adds i18n support --- bookwyrm/templates/author.html | 3 +++ bookwyrm/templates/book.html | 4 +++- bookwyrm/templates/discover/about.html | 4 ++-- bookwyrm/templates/discover/landing_layout.html | 4 +++- bookwyrm/templates/edit_author.html | 3 +++ bookwyrm/templates/edit_book.html | 3 +++ bookwyrm/templates/editions.html | 3 +++ bookwyrm/templates/error.html | 5 +++-- bookwyrm/templates/feed/direct_messages.html | 8 +++++++- bookwyrm/templates/feed/feed_layout.html | 5 +++-- bookwyrm/templates/feed/status.html | 1 + bookwyrm/templates/goal.html | 10 ++++++++-- bookwyrm/templates/import.html | 3 +++ bookwyrm/templates/import_status.html | 3 +++ bookwyrm/templates/invite.html | 3 +++ bookwyrm/templates/lists/list.html | 2 +- bookwyrm/templates/lists/list_layout.html | 4 +++- bookwyrm/templates/lists/lists.html | 3 +++ bookwyrm/templates/login.html | 4 +++- bookwyrm/templates/notfound.html | 5 +++-- bookwyrm/templates/notifications.html | 3 +++ bookwyrm/templates/password_reset.html | 4 +++- bookwyrm/templates/password_reset_request.html | 4 +++- bookwyrm/templates/preferences/blocks.html | 2 ++ bookwyrm/templates/preferences/change_password.html | 3 +++ bookwyrm/templates/preferences/edit_user.html | 3 +++ bookwyrm/templates/search_results.html | 3 +++ bookwyrm/templates/settings/federation.html | 3 +++ bookwyrm/templates/settings/site.html | 5 ++++- bookwyrm/templates/tag.html | 5 +++-- bookwyrm/templates/user/followers.html | 6 +----- bookwyrm/templates/user/following.html | 6 +----- bookwyrm/templates/user/lists.html | 6 +++--- bookwyrm/templates/user/shelf.html | 12 ++++++++---- bookwyrm/templates/user/user.html | 4 +++- bookwyrm/templates/user/user_layout.html | 2 ++ bookwyrm/views/authentication.py | 1 - bookwyrm/views/author.py | 3 --- bookwyrm/views/block.py | 3 +-- bookwyrm/views/books.py | 4 ---- bookwyrm/views/error.py | 6 ++---- bookwyrm/views/federation.py | 5 +---- bookwyrm/views/feed.py | 3 --- bookwyrm/views/goal.py | 2 -- bookwyrm/views/import_data.py | 2 -- bookwyrm/views/invite.py | 3 --- bookwyrm/views/landing.py | 6 +----- bookwyrm/views/list.py | 4 ---- bookwyrm/views/notifications.py | 1 - bookwyrm/views/password.py | 12 ++---------- bookwyrm/views/search.py | 1 - bookwyrm/views/shelf.py | 1 - bookwyrm/views/site.py | 10 ++-------- bookwyrm/views/tag.py | 1 - bookwyrm/views/user.py | 4 ---- 55 files changed, 121 insertions(+), 102 deletions(-) diff --git a/bookwyrm/templates/author.html b/bookwyrm/templates/author.html index 9dd831894..bc1034a8d 100644 --- a/bookwyrm/templates/author.html +++ b/bookwyrm/templates/author.html @@ -1,6 +1,9 @@ {% extends 'layout.html' %} {% load i18n %} {% load bookwyrm_tags %} + +{% block title %}{{ author.name }}{% endblock %} + {% block content %}
diff --git a/bookwyrm/templates/book.html b/bookwyrm/templates/book.html index 35ddba373..2280938b2 100644 --- a/bookwyrm/templates/book.html +++ b/bookwyrm/templates/book.html @@ -2,8 +2,10 @@ {% load i18n %} {% load bookwyrm_tags %} {% load humanize %} -{% block content %} +{% block title %}{{ book.title }}{% endblock %} + +{% block content %}
diff --git a/bookwyrm/templates/discover/about.html b/bookwyrm/templates/discover/about.html index dd0a8129b..a6f3a026a 100644 --- a/bookwyrm/templates/discover/about.html +++ b/bookwyrm/templates/discover/about.html @@ -1,10 +1,10 @@ {% extends 'discover/landing_layout.html' %} {% load i18n %} -{% block panel %} +{% block panel %}
- + {% endblock %} diff --git a/bookwyrm/templates/preferences/preferences_layout.html b/bookwyrm/templates/preferences/preferences_layout.html index c0f78f953..d463d9cba 100644 --- a/bookwyrm/templates/preferences/preferences_layout.html +++ b/bookwyrm/templates/preferences/preferences_layout.html @@ -14,13 +14,13 @@ {% trans "Profile" %}
  • - {% trans "Change password" %} + {% trans "Change Password" %}
  • diff --git a/bookwyrm/templates/settings/admin_layout.html b/bookwyrm/templates/settings/admin_layout.html index 73178ac88..0c3efce7c 100644 --- a/bookwyrm/templates/settings/admin_layout.html +++ b/bookwyrm/templates/settings/admin_layout.html @@ -26,7 +26,7 @@
    {% if type == 'quotation' %}
    - + {% include 'snippets/content_warning_field.html' with parent_status=status %}
    diff --git a/bookwyrm/templates/snippets/goal_card.html b/bookwyrm/templates/snippets/goal_card.html index 386c030c8..084a5ad0b 100644 --- a/bookwyrm/templates/snippets/goal_card.html +++ b/bookwyrm/templates/snippets/goal_card.html @@ -3,7 +3,7 @@ {% block card-header %}

    - {% blocktrans %}{{ year }} reading goal{% endblocktrans %} + {% blocktrans %}{{ year }} Reading Goal{% endblocktrans %}

    {% endblock %} diff --git a/locale/en_US/LC_MESSAGES/django.po b/locale/en_US/LC_MESSAGES/django.po index 4d140e521..c9a874034 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.1.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-02-28 08:42-0800\n" +"POT-Creation-Date: 2021-02-28 10:09-0800\n" "PO-Revision-Date: 2021-02-27 13:50+PST\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Mouse Reeve \n" @@ -18,56 +18,58 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: bookwyrm/templates/author.html:13 bookwyrm/templates/author.html:14 +#: bookwyrm/templates/author.html:16 bookwyrm/templates/author.html:17 +#: bookwyrm/templates/edit_author.html:5 msgid "Edit Author" msgstr "" -#: bookwyrm/templates/author.html:29 +#: bookwyrm/templates/author.html:32 msgid "Wikipedia" msgstr "" -#: bookwyrm/templates/author.html:34 +#: bookwyrm/templates/author.html:37 #, python-format msgid "Books by %(name)s" msgstr "" -#: bookwyrm/templates/book.html:27 bookwyrm/templates/book.html:28 +#: bookwyrm/templates/book.html:29 bookwyrm/templates/book.html:30 +#: bookwyrm/templates/edit_book.html:5 msgid "Edit Book" msgstr "" -#: bookwyrm/templates/book.html:43 +#: bookwyrm/templates/book.html:45 msgid "Add cover" msgstr "" -#: bookwyrm/templates/book.html:49 bookwyrm/templates/lists/list.html:89 +#: bookwyrm/templates/book.html:51 bookwyrm/templates/lists/list.html:89 msgid "Add" msgstr "" -#: bookwyrm/templates/book.html:58 +#: bookwyrm/templates/book.html:60 msgid "ISBN:" msgstr "" -#: bookwyrm/templates/book.html:65 bookwyrm/templates/edit_book.html:104 +#: bookwyrm/templates/book.html:67 bookwyrm/templates/edit_book.html:107 msgid "OCLC Number:" msgstr "" -#: bookwyrm/templates/book.html:72 bookwyrm/templates/edit_book.html:108 +#: bookwyrm/templates/book.html:74 bookwyrm/templates/edit_book.html:111 msgid "ASIN:" msgstr "" -#: bookwyrm/templates/book.html:84 +#: bookwyrm/templates/book.html:86 msgid "View on OpenLibrary" msgstr "" -#: bookwyrm/templates/book.html:102 bookwyrm/templates/edit_book.html:36 +#: bookwyrm/templates/book.html:104 bookwyrm/templates/edit_book.html:39 #: bookwyrm/templates/lists/form.html:12 msgid "Description:" msgstr "" -#: bookwyrm/templates/book.html:106 bookwyrm/templates/edit_author.html:75 -#: bookwyrm/templates/edit_book.html:117 bookwyrm/templates/lists/form.html:42 -#: bookwyrm/templates/preferences/edit_user.html:47 -#: bookwyrm/templates/settings/site.html:86 +#: bookwyrm/templates/book.html:108 bookwyrm/templates/edit_author.html:78 +#: bookwyrm/templates/edit_book.html:120 bookwyrm/templates/lists/form.html:42 +#: bookwyrm/templates/preferences/edit_user.html:50 +#: bookwyrm/templates/settings/site.html:89 #: bookwyrm/templates/snippets/progress_update.html:21 #: bookwyrm/templates/snippets/readthrough.html:61 #: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:42 @@ -75,45 +77,50 @@ msgstr "" msgid "Save" msgstr "" -#: bookwyrm/templates/book.html:138 +#: bookwyrm/templates/book.html:140 msgid "Your reading activity" msgstr "" -#: bookwyrm/templates/book.html:144 +#: bookwyrm/templates/book.html:146 msgid "You don't have any reading activity for this book." msgstr "" -#: bookwyrm/templates/book.html:151 +#: bookwyrm/templates/book.html:153 msgid "Create" msgstr "" -#: bookwyrm/templates/book.html:172 +#: bookwyrm/templates/book.html:174 msgid "Tags" msgstr "" -#: bookwyrm/templates/book.html:176 bookwyrm/templates/snippets/tag.html:18 +#: bookwyrm/templates/book.html:178 bookwyrm/templates/snippets/tag.html:18 msgid "Add tag" msgstr "" -#: bookwyrm/templates/book.html:193 +#: bookwyrm/templates/book.html:195 msgid "Subjects" msgstr "" -#: bookwyrm/templates/book.html:204 +#: bookwyrm/templates/book.html:206 msgid "Places" msgstr "" -#: bookwyrm/templates/book.html:215 bookwyrm/templates/layout.html:64 -#: bookwyrm/templates/lists/lists.html:6 -#: bookwyrm/templates/search_results.html:85 -#: bookwyrm/templates/user/user_layout.html:60 +#: bookwyrm/templates/book.html:217 bookwyrm/templates/layout.html:64 +#: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9 +#: bookwyrm/templates/search_results.html:88 +#: bookwyrm/templates/user/user_layout.html:62 msgid "Lists" msgstr "" -#: bookwyrm/templates/book.html:244 +#: bookwyrm/templates/book.html:246 msgid "rated it" msgstr "" +#: bookwyrm/templates/discover/about.html:7 +#, python-format +msgid "About %(site_name)s" +msgstr "" + #: bookwyrm/templates/discover/about.html:10 #: bookwyrm/templates/discover/about.html:20 msgid "Code of Conduct" @@ -128,162 +135,183 @@ msgstr "" msgid "Recent Books" msgstr "" -#: bookwyrm/templates/discover/landing_layout.html:15 +#: bookwyrm/templates/discover/landing_layout.html:5 +msgid "Welcome" +msgstr "" + +#: bookwyrm/templates/discover/landing_layout.html:17 msgid "Decentralized" msgstr "" -#: bookwyrm/templates/discover/landing_layout.html:21 +#: bookwyrm/templates/discover/landing_layout.html:23 msgid "Friendly" msgstr "" -#: bookwyrm/templates/discover/landing_layout.html:27 +#: bookwyrm/templates/discover/landing_layout.html:29 msgid "Anti-Corporate" msgstr "" -#: bookwyrm/templates/discover/landing_layout.html:42 +#: bookwyrm/templates/discover/landing_layout.html:44 #, python-format msgid "Join %(name)s" msgstr "" -#: bookwyrm/templates/discover/landing_layout.html:47 -#: bookwyrm/templates/login.html:46 +#: bookwyrm/templates/discover/landing_layout.html:49 +#: bookwyrm/templates/login.html:48 msgid "This instance is closed" msgstr "" -#: bookwyrm/templates/discover/landing_layout.html:53 +#: bookwyrm/templates/discover/landing_layout.html:55 msgid "Your Account" msgstr "" -#: bookwyrm/templates/edit_author.html:10 bookwyrm/templates/edit_book.html:10 +#: bookwyrm/templates/edit_author.html:13 bookwyrm/templates/edit_book.html:13 msgid "Added:" msgstr "" -#: bookwyrm/templates/edit_author.html:11 bookwyrm/templates/edit_book.html:11 +#: bookwyrm/templates/edit_author.html:14 bookwyrm/templates/edit_book.html:14 msgid "Updated:" msgstr "" -#: bookwyrm/templates/edit_author.html:12 bookwyrm/templates/edit_book.html:12 +#: bookwyrm/templates/edit_author.html:15 bookwyrm/templates/edit_book.html:15 msgid "Last edited by:" msgstr "" -#: bookwyrm/templates/edit_author.html:28 bookwyrm/templates/edit_book.html:27 +#: bookwyrm/templates/edit_author.html:31 bookwyrm/templates/edit_book.html:30 msgid "Metadata" msgstr "" -#: bookwyrm/templates/edit_author.html:29 bookwyrm/templates/lists/form.html:8 +#: bookwyrm/templates/edit_author.html:32 bookwyrm/templates/lists/form.html:8 #: bookwyrm/templates/user/create_shelf_form.html:13 #: bookwyrm/templates/user/edit_shelf_form.html:14 msgid "Name:" msgstr "" -#: bookwyrm/templates/edit_author.html:34 +#: bookwyrm/templates/edit_author.html:37 msgid "Bio:" msgstr "" -#: bookwyrm/templates/edit_author.html:39 +#: bookwyrm/templates/edit_author.html:42 msgid "Wikipedia link:" msgstr "" -#: bookwyrm/templates/edit_author.html:44 +#: bookwyrm/templates/edit_author.html:47 msgid "Birth date:" msgstr "" -#: bookwyrm/templates/edit_author.html:49 +#: bookwyrm/templates/edit_author.html:52 msgid "Death date:" msgstr "" -#: bookwyrm/templates/edit_author.html:55 +#: bookwyrm/templates/edit_author.html:58 msgid "Author Identifiers" msgstr "" -#: bookwyrm/templates/edit_author.html:56 bookwyrm/templates/edit_book.html:100 +#: bookwyrm/templates/edit_author.html:59 bookwyrm/templates/edit_book.html:103 msgid "Openlibrary key:" msgstr "" -#: bookwyrm/templates/edit_author.html:61 +#: bookwyrm/templates/edit_author.html:64 msgid "Librarything key:" msgstr "" -#: bookwyrm/templates/edit_author.html:66 +#: bookwyrm/templates/edit_author.html:69 msgid "Goodreads key:" msgstr "" -#: bookwyrm/templates/edit_author.html:76 bookwyrm/templates/edit_book.html:118 +#: bookwyrm/templates/edit_author.html:79 bookwyrm/templates/edit_book.html:121 msgid "Cancel" msgstr "" -#: bookwyrm/templates/edit_book.html:28 -#: bookwyrm/templates/snippets/create_status_form.html:10 +#: bookwyrm/templates/edit_book.html:31 msgid "Title:" msgstr "" -#: bookwyrm/templates/edit_book.html:32 +#: bookwyrm/templates/edit_book.html:35 msgid "Subtitle:" msgstr "" -#: bookwyrm/templates/edit_book.html:40 +#: bookwyrm/templates/edit_book.html:43 msgid "Series:" msgstr "" -#: bookwyrm/templates/edit_book.html:44 +#: bookwyrm/templates/edit_book.html:47 msgid "Series number:" msgstr "" -#: bookwyrm/templates/edit_book.html:48 +#: bookwyrm/templates/edit_book.html:51 msgid "First published date:" msgstr "" -#: bookwyrm/templates/edit_book.html:52 +#: bookwyrm/templates/edit_book.html:55 msgid "Published date:" msgstr "" -#: bookwyrm/templates/edit_book.html:65 +#: bookwyrm/templates/edit_book.html:68 #: bookwyrm/templates/snippets/shelf.html:9 msgid "Cover" msgstr "" -#: bookwyrm/templates/edit_book.html:75 +#: bookwyrm/templates/edit_book.html:78 msgid "Physical Properties" msgstr "" -#: bookwyrm/templates/edit_book.html:76 +#: bookwyrm/templates/edit_book.html:79 msgid "Format:" msgstr "" -#: bookwyrm/templates/edit_book.html:84 +#: bookwyrm/templates/edit_book.html:87 msgid "Pages:" msgstr "" -#: bookwyrm/templates/edit_book.html:91 +#: bookwyrm/templates/edit_book.html:94 msgid "Book Identifiers" msgstr "" -#: bookwyrm/templates/edit_book.html:92 +#: bookwyrm/templates/edit_book.html:95 msgid "ISBN 13:" msgstr "" -#: bookwyrm/templates/edit_book.html:96 +#: bookwyrm/templates/edit_book.html:99 msgid "ISBN 10:" msgstr "" -#: bookwyrm/templates/editions.html:6 +#: bookwyrm/templates/editions.html:5 +#, python-format +msgid "Editions of %(book_title)s" +msgstr "" + +#: bookwyrm/templates/editions.html:9 #, python-format msgid "Editions of \"%(work_title)s\"" msgstr "" -#: bookwyrm/templates/error.html:6 +#: bookwyrm/templates/error.html:4 +msgid "Oops!" +msgstr "" + +#: bookwyrm/templates/error.html:8 msgid "Server Error" msgstr "" -#: bookwyrm/templates/error.html:7 +#: bookwyrm/templates/error.html:9 msgid "Something went wrong! Sorry about that." msgstr "" -#: bookwyrm/templates/feed/direct_messages.html:7 +#: bookwyrm/templates/feed/direct_messages.html:8 +#, python-format +msgid "Direct Messages with %(username)s" +msgstr "" + +#: bookwyrm/templates/feed/direct_messages.html:10 +msgid "Direct Messages" +msgstr "" + +#: bookwyrm/templates/feed/direct_messages.html:13 msgid "All messages" msgstr "" -#: bookwyrm/templates/feed/direct_messages.html:16 +#: bookwyrm/templates/feed/direct_messages.html:22 msgid "You have no messages right now." msgstr "" @@ -313,21 +341,26 @@ msgid "" "There aren't any activities right now! Try following a user to get started" msgstr "" -#: bookwyrm/templates/feed/feed_layout.html:9 -msgid "Your books" +#: bookwyrm/templates/feed/feed_layout.html:5 +msgid "Updates" msgstr "" #: bookwyrm/templates/feed/feed_layout.html:11 +msgid "Your books" +msgstr "" + +#: bookwyrm/templates/feed/feed_layout.html:13 msgid "" "There are no books here right now! Try searching for a book to get started" msgstr "" -#: bookwyrm/templates/feed/feed_layout.html:68 +#: bookwyrm/templates/feed/feed_layout.html:70 bookwyrm/templates/goal.html:25 +#: bookwyrm/templates/snippets/goal_card.html:6 #, python-format msgid "%(year)s Reading Goal" msgstr "" -#: bookwyrm/templates/feed/status.html:7 +#: bookwyrm/templates/feed/status.html:8 msgid "Back" msgstr "" @@ -349,102 +382,115 @@ msgstr "" msgid "%(name)s hasn't set a reading goal for %(year)s." msgstr "" -#: bookwyrm/templates/import.html:6 +#: bookwyrm/templates/goal.html:50 +#, python-format +msgid "Your %(year)s Books" +msgstr "" + +#: bookwyrm/templates/goal.html:52 +#, python-format +msgid "%(username)s's %(year)s Books" +msgstr "" + +#: bookwyrm/templates/import.html:5 bookwyrm/templates/import.html:9 msgid "Import Books" msgstr "" -#: bookwyrm/templates/import.html:11 +#: bookwyrm/templates/import.html:14 msgid "Data source" msgstr "" -#: bookwyrm/templates/import.html:29 +#: bookwyrm/templates/import.html:32 msgid "Include reviews" msgstr "" -#: bookwyrm/templates/import.html:34 +#: bookwyrm/templates/import.html:37 msgid "Privacy setting for imported reviews:" msgstr "" -#: bookwyrm/templates/import.html:38 +#: bookwyrm/templates/import.html:41 msgid "Import" msgstr "" -#: bookwyrm/templates/import.html:43 +#: bookwyrm/templates/import.html:46 msgid "Recent Imports" msgstr "" -#: bookwyrm/templates/import.html:45 +#: bookwyrm/templates/import.html:48 msgid "No recent imports" msgstr "" -#: bookwyrm/templates/import_status.html:7 +#: bookwyrm/templates/import_status.html:6 +#: bookwyrm/templates/import_status.html:10 msgid "Import Status" msgstr "" -#: bookwyrm/templates/import_status.html:10 +#: bookwyrm/templates/import_status.html:13 msgid "Import started:" msgstr "" -#: bookwyrm/templates/import_status.html:14 +#: bookwyrm/templates/import_status.html:17 msgid "Import completed:" msgstr "" -#: bookwyrm/templates/import_status.html:17 +#: bookwyrm/templates/import_status.html:20 msgid "TASK FAILED" msgstr "" -#: bookwyrm/templates/import_status.html:23 +#: bookwyrm/templates/import_status.html:26 msgid "Import still in progress." msgstr "" -#: bookwyrm/templates/import_status.html:25 +#: bookwyrm/templates/import_status.html:28 msgid "(Hit reload to update!)" msgstr "" -#: bookwyrm/templates/import_status.html:32 +#: bookwyrm/templates/import_status.html:35 msgid "Failed to load" msgstr "" -#: bookwyrm/templates/import_status.html:56 +#: bookwyrm/templates/import_status.html:59 msgid "Select all" msgstr "" -#: bookwyrm/templates/import_status.html:59 +#: bookwyrm/templates/import_status.html:62 msgid "Retry items" msgstr "" -#: bookwyrm/templates/import_status.html:81 +#: bookwyrm/templates/import_status.html:84 msgid "Successfully imported" msgstr "" -#: bookwyrm/templates/import_status.html:85 +#: bookwyrm/templates/import_status.html:88 #: bookwyrm/templates/lists/curate.html:14 msgid "Book" msgstr "" -#: bookwyrm/templates/import_status.html:88 +#: bookwyrm/templates/import_status.html:91 +#: bookwyrm/templates/snippets/create_status_form.html:10 #: bookwyrm/templates/snippets/shelf.html:10 msgid "Title" msgstr "" -#: bookwyrm/templates/import_status.html:91 +#: bookwyrm/templates/import_status.html:94 #: bookwyrm/templates/snippets/shelf.html:11 msgid "Author" msgstr "" -#: bookwyrm/templates/import_status.html:114 +#: bookwyrm/templates/import_status.html:117 msgid "Imported" msgstr "" -#: bookwyrm/templates/invite.html:9 bookwyrm/templates/login.html:41 +#: bookwyrm/templates/invite.html:4 bookwyrm/templates/invite.html:12 +#: bookwyrm/templates/login.html:43 msgid "Create an Account" msgstr "" -#: bookwyrm/templates/invite.html:18 +#: bookwyrm/templates/invite.html:21 msgid "Permission Denied" msgstr "" -#: bookwyrm/templates/invite.html:19 +#: bookwyrm/templates/invite.html:22 msgid "Sorry! This invite code is no longer valid." msgstr "" @@ -466,18 +512,19 @@ msgid "Feed" msgstr "" #: bookwyrm/templates/layout.html:125 bookwyrm/templates/layout.html:126 -#: bookwyrm/templates/notifications.html:7 +#: bookwyrm/templates/notifications.html:6 +#: bookwyrm/templates/notifications.html:10 msgid "Notifications" msgstr "" #: bookwyrm/templates/layout.html:143 bookwyrm/templates/layout.html:147 -#: bookwyrm/templates/login.html:15 +#: bookwyrm/templates/login.html:17 #: bookwyrm/templates/snippets/register_form.html:4 msgid "Username:" msgstr "" -#: bookwyrm/templates/layout.html:152 bookwyrm/templates/login.html:8 -#: bookwyrm/templates/login.html:31 +#: bookwyrm/templates/layout.html:152 bookwyrm/templates/login.html:10 +#: bookwyrm/templates/login.html:33 msgid "Log in" msgstr "" @@ -595,165 +642,172 @@ msgid "Suggest" msgstr "" #: bookwyrm/templates/lists/list_items.html:19 -#: bookwyrm/templates/lists/list_layout.html:9 +#: bookwyrm/templates/lists/list_layout.html:11 msgid "Created and curated by" msgstr "" #: bookwyrm/templates/lists/list_items.html:19 -#: bookwyrm/templates/lists/list_layout.html:9 +#: bookwyrm/templates/lists/list_layout.html:11 msgid "Created by" msgstr "" -#: bookwyrm/templates/lists/lists.html:11 +#: bookwyrm/templates/lists/lists.html:14 msgid "Your lists" msgstr "" -#: bookwyrm/templates/lists/lists.html:36 +#: bookwyrm/templates/lists/lists.html:39 msgid "Recent Lists" msgstr "" -#: bookwyrm/templates/login.html:21 bookwyrm/templates/password_reset.html:15 +#: bookwyrm/templates/login.html:4 +msgid "Login" +msgstr "" + +#: bookwyrm/templates/login.html:23 bookwyrm/templates/password_reset.html:17 #: bookwyrm/templates/snippets/register_form.html:22 msgid "Password:" msgstr "" -#: bookwyrm/templates/login.html:34 +#: bookwyrm/templates/login.html:36 msgid "Forgot your password?" msgstr "" -#: bookwyrm/templates/login.html:47 +#: bookwyrm/templates/login.html:49 msgid "Contact an administrator to get an invite" msgstr "" -#: bookwyrm/templates/login.html:57 +#: bookwyrm/templates/login.html:59 msgid "More about this site" msgstr "" -#: bookwyrm/templates/notfound.html:6 +#: bookwyrm/templates/notfound.html:4 bookwyrm/templates/notfound.html:8 msgid "Not Found" msgstr "" -#: bookwyrm/templates/notfound.html:7 +#: bookwyrm/templates/notfound.html:9 msgid "The page your requested doesn't seem to exist!" msgstr "" -#: bookwyrm/templates/notifications.html:11 +#: bookwyrm/templates/notifications.html:14 msgid "Delete notifications" msgstr "" -#: bookwyrm/templates/notifications.html:45 -#, python-format -msgid "favorited your %(preview_name)s" -msgstr "" - #: bookwyrm/templates/notifications.html:48 #, python-format -msgid "mentioned you in a %(preview_name)s" +msgid "favorited your %(preview_name)s" msgstr "" #: bookwyrm/templates/notifications.html:51 #, python-format +msgid "mentioned you in a %(preview_name)s" +msgstr "" + +#: bookwyrm/templates/notifications.html:54 +#, python-format msgid "" "replied to your " "%(preview_name)s" msgstr "" -#: bookwyrm/templates/notifications.html:54 +#: bookwyrm/templates/notifications.html:57 msgid "followed you" msgstr "" -#: bookwyrm/templates/notifications.html:57 +#: bookwyrm/templates/notifications.html:60 msgid "sent you a follow request" msgstr "" -#: bookwyrm/templates/notifications.html:62 +#: bookwyrm/templates/notifications.html:65 #, python-format msgid "boosted your %(preview_name)s" msgstr "" -#: bookwyrm/templates/notifications.html:64 +#: bookwyrm/templates/notifications.html:67 msgid "added" msgstr "" -#: bookwyrm/templates/notifications.html:64 +#: bookwyrm/templates/notifications.html:67 msgid "suggested adding" msgstr "" -#: bookwyrm/templates/notifications.html:67 +#: bookwyrm/templates/notifications.html:70 #, python-format msgid " your import completed." msgstr "" -#: bookwyrm/templates/notifications.html:99 +#: bookwyrm/templates/notifications.html:102 msgid "You're all caught up!" msgstr "" -#: bookwyrm/templates/password_reset.html:8 -#: bookwyrm/templates/password_reset_request.html:8 +#: bookwyrm/templates/password_reset.html:4 +#: bookwyrm/templates/password_reset.html:10 +#: bookwyrm/templates/password_reset_request.html:4 +#: bookwyrm/templates/password_reset_request.html:10 msgid "Reset Password" msgstr "" -#: bookwyrm/templates/password_reset.html:21 -#: bookwyrm/templates/preferences/change_password.html:15 +#: bookwyrm/templates/password_reset.html:23 +#: bookwyrm/templates/preferences/change_password.html:18 msgid "Confirm password:" msgstr "" -#: bookwyrm/templates/password_reset.html:28 +#: bookwyrm/templates/password_reset.html:30 msgid "Confirm" msgstr "" -#: bookwyrm/templates/password_reset_request.html:10 +#: bookwyrm/templates/password_reset_request.html:12 msgid "A link to reset your password will be sent to your email address" msgstr "" -#: bookwyrm/templates/password_reset_request.html:14 -#: bookwyrm/templates/preferences/edit_user.html:35 +#: bookwyrm/templates/password_reset_request.html:16 +#: bookwyrm/templates/preferences/edit_user.html:38 #: bookwyrm/templates/snippets/register_form.html:13 msgid "Email address:" msgstr "" -#: bookwyrm/templates/password_reset_request.html:21 +#: bookwyrm/templates/password_reset_request.html:23 msgid "Reset password" msgstr "" -#: bookwyrm/templates/preferences/blocks.html:5 +#: bookwyrm/templates/preferences/blocks.html:4 +#: bookwyrm/templates/preferences/blocks.html:7 +#: bookwyrm/templates/preferences/preferences_layout.html:23 msgid "Blocked Users" msgstr "" -#: bookwyrm/templates/preferences/blocks.html:10 +#: bookwyrm/templates/preferences/blocks.html:12 msgid "No users currently blocked." msgstr "" #: bookwyrm/templates/preferences/change_password.html:4 +#: bookwyrm/templates/preferences/change_password.html:7 +#: bookwyrm/templates/preferences/change_password.html:21 +#: bookwyrm/templates/preferences/preferences_layout.html:17 msgid "Change Password" msgstr "" -#: bookwyrm/templates/preferences/change_password.html:11 +#: bookwyrm/templates/preferences/change_password.html:14 msgid "New password:" msgstr "" -#: bookwyrm/templates/preferences/change_password.html:18 -#: bookwyrm/templates/preferences/preferences_layout.html:17 -msgid "Change password" -msgstr "" - #: bookwyrm/templates/preferences/edit_user.html:4 +#: bookwyrm/templates/preferences/edit_user.html:7 msgid "Edit Profile" msgstr "" -#: bookwyrm/templates/preferences/edit_user.html:14 +#: bookwyrm/templates/preferences/edit_user.html:17 msgid "Avatar:" msgstr "" -#: bookwyrm/templates/preferences/edit_user.html:21 +#: bookwyrm/templates/preferences/edit_user.html:24 msgid "Display name:" msgstr "" -#: bookwyrm/templates/preferences/edit_user.html:28 +#: bookwyrm/templates/preferences/edit_user.html:31 msgid "Summary:" msgstr "" -#: bookwyrm/templates/preferences/edit_user.html:43 +#: bookwyrm/templates/preferences/edit_user.html:46 msgid "Manually approve followers:" msgstr "" @@ -769,42 +823,42 @@ msgstr "" msgid "Relationships" msgstr "" -#: bookwyrm/templates/preferences/preferences_layout.html:23 -msgid "Blocked users" +#: bookwyrm/templates/search_results.html:4 +msgid "Search Results" msgstr "" -#: bookwyrm/templates/search_results.html:6 +#: bookwyrm/templates/search_results.html:9 #, python-format msgid "Search Results for \"%(query)s\"" msgstr "" -#: bookwyrm/templates/search_results.html:11 +#: bookwyrm/templates/search_results.html:14 msgid "Matching Books" msgstr "" -#: bookwyrm/templates/search_results.html:14 +#: bookwyrm/templates/search_results.html:17 #, python-format msgid "No books found for \"%(query)s\"" msgstr "" -#: bookwyrm/templates/search_results.html:30 +#: bookwyrm/templates/search_results.html:33 msgid "Didn't find what you were looking for?" msgstr "" -#: bookwyrm/templates/search_results.html:53 +#: bookwyrm/templates/search_results.html:56 msgid "Import book" msgstr "" -#: bookwyrm/templates/search_results.html:70 +#: bookwyrm/templates/search_results.html:73 msgid "Matching Users" msgstr "" -#: bookwyrm/templates/search_results.html:72 +#: bookwyrm/templates/search_results.html:75 #, python-format msgid "No users found for \"%(query)s\"" msgstr "" -#: bookwyrm/templates/search_results.html:87 +#: bookwyrm/templates/search_results.html:90 #, python-format msgid "No lists found for \"%(query)s\"" msgstr "" @@ -819,7 +873,8 @@ msgid "Invites" msgstr "" #: bookwyrm/templates/settings/admin_layout.html:20 -#: bookwyrm/templates/settings/federation.html:3 +#: bookwyrm/templates/settings/federation.html:4 +#: bookwyrm/templates/settings/federation.html:6 msgid "Federated Servers" msgstr "" @@ -827,40 +882,35 @@ msgstr "" msgid "Instance Settings" msgstr "" -#: bookwyrm/templates/settings/admin_layout.html:29 -#: bookwyrm/templates/settings/site.html:3 -msgid "Site Configuration" -msgstr "" - #: bookwyrm/templates/settings/admin_layout.html:32 -#: bookwyrm/templates/settings/site.html:10 +#: bookwyrm/templates/settings/site.html:13 msgid "Instance Info" msgstr "" #: bookwyrm/templates/settings/admin_layout.html:33 -#: bookwyrm/templates/settings/site.html:36 +#: bookwyrm/templates/settings/site.html:39 msgid "Images" msgstr "" #: bookwyrm/templates/settings/admin_layout.html:34 -#: bookwyrm/templates/settings/site.html:56 +#: bookwyrm/templates/settings/site.html:59 msgid "Footer Content" msgstr "" #: bookwyrm/templates/settings/admin_layout.html:35 -#: bookwyrm/templates/settings/site.html:74 +#: bookwyrm/templates/settings/site.html:77 msgid "Registration" msgstr "" -#: bookwyrm/templates/settings/federation.html:9 +#: bookwyrm/templates/settings/federation.html:12 msgid "Server name" msgstr "" -#: bookwyrm/templates/settings/federation.html:10 +#: bookwyrm/templates/settings/federation.html:13 msgid "Software" msgstr "" -#: bookwyrm/templates/settings/federation.html:11 +#: bookwyrm/templates/settings/federation.html:14 msgid "Status" msgstr "" @@ -900,55 +950,60 @@ msgstr "" msgid "No active invites" msgstr "" -#: bookwyrm/templates/settings/site.html:12 +#: bookwyrm/templates/settings/site.html:4 +#: bookwyrm/templates/settings/site.html:6 +msgid "Site Settings" +msgstr "" + +#: bookwyrm/templates/settings/site.html:15 msgid "Instance Name:" msgstr "" -#: bookwyrm/templates/settings/site.html:16 +#: bookwyrm/templates/settings/site.html:19 msgid "Tagline:" msgstr "" -#: bookwyrm/templates/settings/site.html:20 +#: bookwyrm/templates/settings/site.html:23 msgid "Instance description:" msgstr "" -#: bookwyrm/templates/settings/site.html:24 +#: bookwyrm/templates/settings/site.html:27 msgid "Code of conduct:" msgstr "" -#: bookwyrm/templates/settings/site.html:28 +#: bookwyrm/templates/settings/site.html:31 msgid "Privacy Policy:" msgstr "" -#: bookwyrm/templates/settings/site.html:39 +#: bookwyrm/templates/settings/site.html:42 msgid "Logo:" msgstr "" -#: bookwyrm/templates/settings/site.html:43 +#: bookwyrm/templates/settings/site.html:46 msgid "Logo small:" msgstr "" -#: bookwyrm/templates/settings/site.html:47 +#: bookwyrm/templates/settings/site.html:50 msgid "Favicon:" msgstr "" -#: bookwyrm/templates/settings/site.html:58 +#: bookwyrm/templates/settings/site.html:61 msgid "Support link:" msgstr "" -#: bookwyrm/templates/settings/site.html:62 +#: bookwyrm/templates/settings/site.html:65 msgid "Support title:" msgstr "" -#: bookwyrm/templates/settings/site.html:66 +#: bookwyrm/templates/settings/site.html:69 msgid "Admin email:" msgstr "" -#: bookwyrm/templates/settings/site.html:76 +#: bookwyrm/templates/settings/site.html:79 msgid "Allow registration:" msgstr "" -#: bookwyrm/templates/settings/site.html:80 +#: bookwyrm/templates/settings/site.html:83 msgid "Registration closed text:" msgstr "" @@ -985,6 +1040,7 @@ msgid "Review" msgstr "" #: bookwyrm/templates/snippets/create_status.html:11 +#: bookwyrm/templates/snippets/create_status_form.html:44 msgid "Comment" msgstr "" @@ -1003,10 +1059,6 @@ msgstr "" msgid "No rating" msgstr "" -#: bookwyrm/templates/snippets/create_status_form.html:44 -msgid "Comment:" -msgstr "" - #: bookwyrm/templates/snippets/create_status_form.html:59 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -1066,11 +1118,6 @@ msgstr "" msgid "Accept" msgstr "" -#: bookwyrm/templates/snippets/goal_card.html:6 -#, python-format -msgid "%(year)s reading goal" -msgstr "" - #: bookwyrm/templates/snippets/goal_card.html:21 msgid "Dismiss message" msgstr "" @@ -1143,7 +1190,7 @@ msgid "Post privacy" msgstr "" #: bookwyrm/templates/snippets/privacy_select.html:16 -#: bookwyrm/templates/user/followers.html:17 +#: bookwyrm/templates/user/followers.html:13 msgid "Followers" msgstr "" @@ -1340,7 +1387,7 @@ msgstr "" msgid "Remove tag" msgstr "" -#: bookwyrm/templates/tag.html:7 +#: bookwyrm/templates/tag.html:9 #, python-format msgid "Books tagged \"%(tag.name)s\"" msgstr "" @@ -1361,73 +1408,101 @@ msgstr "" msgid "Update shelf" msgstr "" -#: bookwyrm/templates/user/followers.html:30 +#: bookwyrm/templates/user/followers.html:7 +#: bookwyrm/templates/user/following.html:7 bookwyrm/templates/user/user.html:9 +msgid "User Profile" +msgstr "" + +#: bookwyrm/templates/user/followers.html:26 #, python-format msgid "%(username)s has no followers" msgstr "" -#: bookwyrm/templates/user/following.html:17 +#: bookwyrm/templates/user/following.html:13 msgid "Following" msgstr "" -#: bookwyrm/templates/user/following.html:30 +#: bookwyrm/templates/user/following.html:26 #, python-format msgid "%(username)s isn't following any users" msgstr "" +#: bookwyrm/templates/user/lists.html:9 +msgid "Your Lists" +msgstr "" + +#: bookwyrm/templates/user/lists.html:11 +#, python-format +msgid "Lists: %(username)s" +msgstr "" + #: bookwyrm/templates/user/lists.html:28 msgid "Create list" msgstr "" -#: bookwyrm/templates/user/user.html:7 -msgid "User profile" +#: bookwyrm/templates/user/shelf.html:5 +#, python-format +msgid "Shelves: %(username)s" msgstr "" -#: bookwyrm/templates/user/user.html:13 +#: bookwyrm/templates/user/shelf.html:11 +msgid "Your Shelves" +msgstr "" + +#: bookwyrm/templates/user/shelf.html:13 +#, python-format +msgid "%(username)s: Shelves" +msgstr "" + +#: bookwyrm/templates/user/shelf.html:35 +msgid "Create Shelf" +msgstr "" + +#: bookwyrm/templates/user/user.html:15 msgid "Edit profile" msgstr "" -#: bookwyrm/templates/user/user.html:24 -#: bookwyrm/templates/user/user_layout.html:66 +#: bookwyrm/templates/user/user.html:26 +#: bookwyrm/templates/user/user_layout.html:68 msgid "Shelves" msgstr "" -#: bookwyrm/templates/user/user.html:29 +#: bookwyrm/templates/user/user.html:31 #, python-format msgid "See all %(size)s" msgstr "" -#: bookwyrm/templates/user/user.html:42 +#: bookwyrm/templates/user/user.html:44 #, python-format msgid "See all %(shelf_count)s shelves" msgstr "" -#: bookwyrm/templates/user/user.html:54 +#: bookwyrm/templates/user/user.html:56 #, python-format msgid "Set a reading goal for %(year)s" msgstr "" -#: bookwyrm/templates/user/user.html:60 +#: bookwyrm/templates/user/user.html:62 msgid "User Activity" msgstr "" -#: bookwyrm/templates/user/user.html:63 +#: bookwyrm/templates/user/user.html:65 msgid "RSS feed" msgstr "" -#: bookwyrm/templates/user/user.html:74 +#: bookwyrm/templates/user/user.html:76 msgid "No activities yet!" msgstr "" -#: bookwyrm/templates/user/user_layout.html:30 +#: bookwyrm/templates/user/user_layout.html:32 msgid "Follow Requests" msgstr "" -#: bookwyrm/templates/user/user_layout.html:48 +#: bookwyrm/templates/user/user_layout.html:50 msgid "Activity" msgstr "" -#: bookwyrm/templates/user/user_layout.html:54 +#: bookwyrm/templates/user/user_layout.html:56 msgid "Reading Goal" msgstr "" From 72c50b3f581d92b0d6daba58de082b3d6c5a1869 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 28 Feb 2021 10:45:21 -0800 Subject: [PATCH 007/111] Fixes typo in admn layout page --- bookwyrm/templates/settings/admin_layout.html | 5 ++- bookwyrm/templates/settings/federation.html | 2 - locale/en_US/LC_MESSAGES/django.po | 38 ++++++++++--------- 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/bookwyrm/templates/settings/admin_layout.html b/bookwyrm/templates/settings/admin_layout.html index 0c3efce7c..16741436c 100644 --- a/bookwyrm/templates/settings/admin_layout.html +++ b/bookwyrm/templates/settings/admin_layout.html @@ -1,5 +1,8 @@ {% extends 'layout.html' %} {% load i18n %} + +{% block title %}{% trans "Administration" %}{% endblock %} + {% block content %}
    @@ -26,7 +29,7 @@
    - {% include 'snippets/toggle/close_button.html' with text="Cancel" controls_text="add-readthrough" %} + {% trans "Cancel" as button_text %} + {% include 'snippets/toggle/close_button.html' with text=button_text controls_text="add-readthrough" %}
    diff --git a/bookwyrm/templates/components/inline_form.html b/bookwyrm/templates/components/inline_form.html index 6a244ffd7..97f619964 100644 --- a/bookwyrm/templates/components/inline_form.html +++ b/bookwyrm/templates/components/inline_form.html @@ -4,7 +4,8 @@ {% block header %}{% endblock %} - {% include 'snippets/toggle/toggle_button.html' with label="Close" class="delete" nonbutton=True controls_text=controls_text %} + {% trans "Close" as button_text %} + {% include 'snippets/toggle/toggle_button.html' with label=button_text class="delete" nonbutton=True controls_text=controls_text %}
    diff --git a/bookwyrm/templates/feed/feed_layout.html b/bookwyrm/templates/feed/feed_layout.html index edd4ce4af..f5d3a11b2 100644 --- a/bookwyrm/templates/feed/feed_layout.html +++ b/bookwyrm/templates/feed/feed_layout.html @@ -46,7 +46,8 @@ {% include 'snippets/book_titleby.html' with book=book %}

    - {% include 'snippets/toggle/toggle_button.html' with label="close" controls_text="book" controls_uid=book.id class="delete" nonbutton=True pressed=True %} + {% trans "Close" as button_text %} + {% include 'snippets/toggle/toggle_button.html' with label=button_text controls_text="book" controls_uid=book.id class="delete" nonbutton=True pressed=True %}
    diff --git a/bookwyrm/templates/goal.html b/bookwyrm/templates/goal.html index 4a16ccb61..53891d278 100644 --- a/bookwyrm/templates/goal.html +++ b/bookwyrm/templates/goal.html @@ -8,7 +8,8 @@
    {% if is_self and goal %}
    - {% include 'snippets/toggle/open_button.html' with text="Edit goal" icon="pencil" controls_text="show-edit-goal" focus="edit-form-header" %} + {% trans "Edit Goal" as button_text %} + {% include 'snippets/toggle/open_button.html' with text=button_text icon="pencil" controls_text="show-edit-goal" focus="edit-form-header" %}
    {% endif %}
    @@ -45,7 +46,13 @@ {% if goal.books %}
    -

    {% if goal.user == request.user %}Your{% else %}{{ goal.user.display_name }}'s{% endif %} {{ year }} Books

    +

    + {% if goal.user == request.user %} + {% blocktrans %}Your {{ year }} Books{% endblocktrans %} + {% else %} + {% blocktrans with username=goal.user.display_name %}{{ username }}'s {{ year }} Books{% endblocktrans %} + {% endif %} +

    {% for book in goal.books %}
    diff --git a/bookwyrm/templates/layout.html b/bookwyrm/templates/layout.html index c4499c4e8..a0e731286 100644 --- a/bookwyrm/templates/layout.html +++ b/bookwyrm/templates/layout.html @@ -30,7 +30,7 @@
    diff --git a/bookwyrm/templates/lists/list_layout.html b/bookwyrm/templates/lists/list_layout.html index 8e2e36e65..4a153a676 100644 --- a/bookwyrm/templates/lists/list_layout.html +++ b/bookwyrm/templates/lists/list_layout.html @@ -12,7 +12,8 @@
    {% if request.user == list.user %}
    - {% include 'snippets/toggle/open_button.html' with text="Edit list" icon="pencil" controls_text="edit-list" focus="edit-list-header" %} + {% trans "Edit List" as button_text %} + {% include 'snippets/toggle/open_button.html' with text=button_text icon="pencil" controls_text="edit-list" focus="edit-list-header" %}
    {% endif %} diff --git a/bookwyrm/templates/lists/lists.html b/bookwyrm/templates/lists/lists.html index 070326760..936d9633e 100644 --- a/bookwyrm/templates/lists/lists.html +++ b/bookwyrm/templates/lists/lists.html @@ -11,7 +11,8 @@

    {% trans "Your lists" %}

    - {% include 'snippets/toggle/open_button.html' with controls_text="create-list" icon="plus" text="Create new list" focus="create-list-header" %} + {% trans "Create List" as button_text %} + {% include 'snippets/toggle/open_button.html' with controls_text="create-list" icon="plus" text=button_text focus="create-list-header" %}
    diff --git a/bookwyrm/templates/search_results.html b/bookwyrm/templates/search_results.html index 30c88f3d1..7223b17bf 100644 --- a/bookwyrm/templates/search_results.html +++ b/bookwyrm/templates/search_results.html @@ -29,7 +29,8 @@

    {% trans "Didn't find what you were looking for?" %}

    - {% include 'snippets/toggle/open_button.html' with text="Show results from other catalogues" small=True controls_text="more-results" %} + {% trans "Show results from other catalogues" as button_text %} + {% include 'snippets/toggle/open_button.html' with text=button_text small=True controls_text="more-results" %}
    {% endif %} @@ -60,7 +61,8 @@ {% endfor %} {% if local_results.results %} - {% include 'snippets/toggle/close_button.html' with text="Hide results from other catalogues" small=True controls_text="more-results" %} + {% trans "Hide results from other catalogues" as button_text %} + {% include 'snippets/toggle/close_button.html' with text=button_text small=True controls_text="more-results" %} {% endif %}
    {% endif %} diff --git a/bookwyrm/templates/snippets/book_titleby.html b/bookwyrm/templates/snippets/book_titleby.html index b01ede4cb..e561a8a33 100644 --- a/bookwyrm/templates/snippets/book_titleby.html +++ b/bookwyrm/templates/snippets/book_titleby.html @@ -1,5 +1,7 @@ -{{ book.title }} +{% load i18n %} {% if book.authors %} -by {% include 'snippets/authors.html' with book=book %} +{% blocktrans with path=book.local_path title=book.title %}{{ title }} by {% endblocktrans %}{% include 'snippets/authors.html' with book=book %} +{% else %} +{{ book.title }} {% endif %} diff --git a/bookwyrm/templates/snippets/create_status_form.html b/bookwyrm/templates/snippets/create_status_form.html index b5a12084f..11bdcd359 100644 --- a/bookwyrm/templates/snippets/create_status_form.html +++ b/bookwyrm/templates/snippets/create_status_form.html @@ -51,7 +51,8 @@
    - {% include 'snippets/toggle/toggle_button.html' with text="Include spoiler alert" icon="warning is-size-4" controls_text="spoilers" controls_uid=uuid focus="id_content_warning" checkbox="id_show_spoilers" class="toggle-button" pressed=status.content_warning %} + {% trans "Include spoiler alert" as button_text %} + {% include 'snippets/toggle/toggle_button.html' with text=button_text icon="warning is-size-4" controls_text="spoilers" controls_uid=uuid focus="id_content_warning" checkbox="id_show_spoilers" class="toggle-button" pressed=status.content_warning %}
    {% if type == 'direct' %} diff --git a/bookwyrm/templates/snippets/delete_readthrough_modal.html b/bookwyrm/templates/snippets/delete_readthrough_modal.html index 557059eda..e1560f93e 100644 --- a/bookwyrm/templates/snippets/delete_readthrough_modal.html +++ b/bookwyrm/templates/snippets/delete_readthrough_modal.html @@ -14,6 +14,7 @@ - {% include 'snippets/toggle/toggle_button.html' with text="Cancel" controls_text="delete-readthrough" controls_uid=readthrough.id %} + {% trans "Cancel" as button_text %} + {% include 'snippets/toggle/toggle_button.html' with text=button_text controls_text="delete-readthrough" controls_uid=readthrough.id %} {% endblock %} diff --git a/bookwyrm/templates/snippets/generated_status/goal.html b/bookwyrm/templates/snippets/generated_status/goal.html index 3b4d0de4f..7d60165f8 100644 --- a/bookwyrm/templates/snippets/generated_status/goal.html +++ b/bookwyrm/templates/snippets/generated_status/goal.html @@ -1 +1 @@ -{% load humanize %}set a goal to read {{ goal.goal | intcomma }} book{{ goal.goal | pluralize }} in {{ goal.year }} +{% load humanize %}{% blocktrans with count=goal.goal|intcomma year=goal.year %}set a goal to read {{ count }} book in {{ year }}{% plural %}set a goal to read {{ count }} books in {{ year }}{% endblocktrans %} diff --git a/bookwyrm/templates/snippets/goal_form.html b/bookwyrm/templates/snippets/goal_form.html index cf5d21f26..30ea18392 100644 --- a/bookwyrm/templates/snippets/goal_form.html +++ b/bookwyrm/templates/snippets/goal_form.html @@ -29,7 +29,8 @@

    {% if goal %} - {% include 'snippets/toggle/close_button.html' with text="Cancel" controls_text="show-edit-goal" %} + {% trans "Cancel" as button_text %} + {% include 'snippets/toggle/close_button.html' with text=button_text controls_text="show-edit-goal" %} {% endif %}

    diff --git a/bookwyrm/templates/snippets/goal_progress.html b/bookwyrm/templates/snippets/goal_progress.html index 2fa0da54e..2d46181ef 100644 --- a/bookwyrm/templates/snippets/goal_progress.html +++ b/bookwyrm/templates/snippets/goal_progress.html @@ -4,9 +4,13 @@ {% if goal.progress_percent >= 100 %} {% trans "Success!" %} {% elif goal.progress_percent %} - {% blocktrans with percent=goal.percent %}{{ percent }}% complete!{% endblocktrans %} + {% blocktrans with percent=goal.progress_percent %}{{ percent }}% complete!{% endblocktrans %} + {% endif %} + {% if goal.user == request.user %} + {% blocktrans with read_count=goal.book_count|intcomma goal_count=goal.goal|intcomma path=goal.local_path %}You've read {{ read_count }} of {{ goal_count}} books.{% endblocktrans %} + {% else %} + {% blocktrans with username=goal.user.display_name read_count=goal.book_count|intcomma goal_count=goal.goal|intcomma path=goal.local_path %}{{ username }} has read {{ read_count }} of {{ goal_count}} books.{% endblocktrans %} {% endif %} - {% if goal.user == request.user %}You've{% else %}{{ goal.user.display_name }} has{% endif %} read {% if request.path != goal.local_path %}{% endif %}{{ goal.book_count }} of {{ goal.goal | intcomma }} books{% if request.path != goal.local_path %}{% endif %}.

    diff --git a/bookwyrm/templates/snippets/readthrough.html b/bookwyrm/templates/snippets/readthrough.html index de85635e4..edac21cfe 100644 --- a/bookwyrm/templates/snippets/readthrough.html +++ b/bookwyrm/templates/snippets/readthrough.html @@ -11,7 +11,8 @@
  • {% if readthrough.finish_date %} {{ readthrough.finish_date | naturalday }}: {% trans "finished" %} {% else %}{% if readthrough.progress_mode == 'PG' %}on page {{ readthrough.progress }}{% if book.pages %} of {{ book.pages }}{% endif %} {% else %}{{ readthrough.progress }}%{% endif %}{% endif %} {% if readthrough.progress %} - {% include 'snippets/toggle/toggle_button.html' with text="Show all updates" controls_text="updates" controls_uid=readthrough.id class="is-small" %} + {% trans "Show all updates" as button_text %} + {% include 'snippets/toggle/toggle_button.html' with text=button_text controls_text="updates" controls_uid=readthrough.id class="is-small" %}
  • diff --git a/bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html b/bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html index 896c80162..ca65bf06c 100644 --- a/bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html +++ b/bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html @@ -40,7 +40,8 @@
    - {% include 'snippets/toggle/close_button.html' with text="Cancel" controls_text="finish-reading" controls_uid=uuid %} + {% trans "Cancel" as button_text %} + {% include 'snippets/toggle/close_button.html' with text=button_text controls_text="finish-reading" controls_uid=uuid %}
    {% endblock %} diff --git a/bookwyrm/templates/snippets/shelve_button/shelve_button_options.html b/bookwyrm/templates/snippets/shelve_button/shelve_button_options.html index a1ef2c329..d6fdb13bc 100644 --- a/bookwyrm/templates/snippets/shelve_button/shelve_button_options.html +++ b/bookwyrm/templates/snippets/shelve_button/shelve_button_options.html @@ -5,13 +5,16 @@ {% if dropdown %}
  • {% endif %}
    - {% include 'snippets/toggle/toggle_button.html' with text="Cancel" controls_text="start-reading" controls_uid=uuid %} + {% trans "Cancel" as button_text %} + {% include 'snippets/toggle/toggle_button.html' with text=button_text controls_text="start-reading" controls_uid=uuid %}
  • {% endblock %} diff --git a/bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html b/bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html index 179e004e4..d7c378977 100644 --- a/bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html +++ b/bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html @@ -25,7 +25,8 @@ - {% include 'snippets/toggle/toggle_button.html' with text="Cancel" controls_text="want-to-read" controls_uid=uuid %} + {% trans "Cancel" as button_text %} + {% include 'snippets/toggle/toggle_button.html' with text=button_text controls_text="want-to-read" controls_uid=uuid %}
    {% endblock %} diff --git a/bookwyrm/templates/snippets/status/status_body.html b/bookwyrm/templates/snippets/status/status_body.html index 1bf0d3c70..8d6c21ed9 100644 --- a/bookwyrm/templates/snippets/status/status_body.html +++ b/bookwyrm/templates/snippets/status/status_body.html @@ -21,7 +21,8 @@ {% if request.user.is_authenticated %}
    - {% include 'snippets/toggle/toggle_button.html' with controls_text="show-comment" controls_uid=status.id text="Reply" icon="comment" class="is-small toggle-button" focus="id_content_reply" %} + {% trans "Reply" as button_text %} + {% include 'snippets/toggle/toggle_button.html' with controls_text="show-comment" controls_uid=status.id text=button_text icon="comment" class="is-small toggle-button" focus="id_content_reply" %}
    {% include 'snippets/boost_button.html' with status=status %} diff --git a/bookwyrm/templates/snippets/status/status_content.html b/bookwyrm/templates/snippets/status/status_content.html index b48566b0f..bdbf3cfcc 100644 --- a/bookwyrm/templates/snippets/status/status_content.html +++ b/bookwyrm/templates/snippets/status/status_content.html @@ -13,13 +13,15 @@ {% if status.content_warning %}

    {{ status.content_warning }}

    - {% include 'snippets/toggle/open_button.html' with text="show more" class="is-small" controls_text="show-status-cw" controls_uid=status.id %} + {% trans "Show more" as button_text %} + {% include 'snippets/toggle/open_button.html' with text=button_text class="is-small" controls_text="show-status-cw" controls_uid=status.id %}
    {% endif %}
    {% if is_self %}
    - {% include 'snippets/toggle/open_button.html' with controls_text="create-list" icon="plus" text="Create new list" %} + {% trans "Create new list" as button_text %} + {% include 'snippets/toggle/open_button.html' with controls_text="create-list" icon="plus" text=button_text %}
    {% endif %}
    diff --git a/bookwyrm/templates/user/shelf.html b/bookwyrm/templates/user/shelf.html index 19b93cbd6..b32d7a7c3 100644 --- a/bookwyrm/templates/user/shelf.html +++ b/bookwyrm/templates/user/shelf.html @@ -1,5 +1,6 @@ {% extends 'user/user_layout.html' %} {% load bookwyrm_tags %} +{% load i18n %} {% block header %}
    @@ -29,7 +30,8 @@ {% if is_self %}
    - {% include 'snippets/toggle/open_button.html' with text="Create shelf" icon="plus" controls_text="create-shelf-form" focus="create-shelf-form-header" %} + {% trans "Create shelf" as button_text %} + {% include 'snippets/toggle/open_button.html' with text=button_text icon="plus" controls_text="create-shelf-form" focus="create-shelf-form-header" %}
    {% endif %} @@ -49,7 +51,8 @@ {% if is_self %}
    - {% include 'snippets/toggle/open_button.html' with text="Edit shelf" icon="pencil" controls_text="edit-shelf-form" focus="edit-shelf-form-header" %} + {% trans "Edit shelf" as button_text %} + {% include 'snippets/toggle/open_button.html' with text=button_text icon="pencil" controls_text="edit-shelf-form" focus="edit-shelf-form-header" %}
    {% endif %} diff --git a/bookwyrm/templates/user/user_preview.html b/bookwyrm/templates/user/user_preview.html index 3158ff54e..c641c58fb 100644 --- a/bookwyrm/templates/user/user_preview.html +++ b/bookwyrm/templates/user/user_preview.html @@ -12,8 +12,8 @@

    {{ user.username }}

    {% blocktrans with date=user.created_date|naturaltime %}Joined {{ date }}{% endblocktrans %}

    - {{ user.followers.count }} follower{{ user.followers.count | pluralize }}, - {{ user.following.count }} following + {% blocktrans count counter=user.followers.count %}{{ counter }} follower{% plural %}{{ counter }} followers{% endblocktrans %}, + {% blocktrans with counter=user.following.count %}{{ counter }} following{% endblocktrans %}

    From fc5a180f0f10353e6aee7267d6d32808230ecf76 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 28 Feb 2021 17:11:41 -0800 Subject: [PATCH 016/111] Updates stub english translation file --- locale/en_US/LC_MESSAGES/django.po | 266 ++++++++++++++++++++++------- 1 file changed, 207 insertions(+), 59 deletions(-) diff --git a/locale/en_US/LC_MESSAGES/django.po b/locale/en_US/LC_MESSAGES/django.po index 4d140e521..df03d37a7 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.1.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-02-28 08:42-0800\n" +"POT-Creation-Date: 2021-02-28 17:11-0800\n" "PO-Revision-Date: 2021-02-27 13:50+PST\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Mouse Reeve \n" @@ -59,61 +59,85 @@ msgstr "" msgid "View on OpenLibrary" msgstr "" -#: bookwyrm/templates/book.html:102 bookwyrm/templates/edit_book.html:36 +#: bookwyrm/templates/book.html:96 +msgid "Add Description" +msgstr "" + +#: bookwyrm/templates/book.html:103 bookwyrm/templates/edit_book.html:36 #: bookwyrm/templates/lists/form.html:12 msgid "Description:" msgstr "" -#: bookwyrm/templates/book.html:106 bookwyrm/templates/edit_author.html:75 +#: bookwyrm/templates/book.html:107 bookwyrm/templates/edit_author.html:75 #: bookwyrm/templates/edit_book.html:117 bookwyrm/templates/lists/form.html:42 #: bookwyrm/templates/preferences/edit_user.html:47 #: bookwyrm/templates/settings/site.html:86 #: bookwyrm/templates/snippets/progress_update.html:21 -#: bookwyrm/templates/snippets/readthrough.html:61 +#: bookwyrm/templates/snippets/readthrough.html:64 #: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:42 #: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:34 msgid "Save" msgstr "" -#: bookwyrm/templates/book.html:138 +#: bookwyrm/templates/book.html:108 bookwyrm/templates/book.html:157 +#: bookwyrm/templates/edit_author.html:76 bookwyrm/templates/edit_book.html:118 +#: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 +#: bookwyrm/templates/snippets/goal_form.html:32 +#: bookwyrm/templates/snippets/readthrough.html:65 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:43 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:35 +#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:28 +msgid "Cancel" +msgstr "" + +#: bookwyrm/templates/book.html:140 msgid "Your reading activity" msgstr "" -#: bookwyrm/templates/book.html:144 +#: bookwyrm/templates/book.html:142 +msgid "Add read dates" +msgstr "" + +#: bookwyrm/templates/book.html:147 msgid "You don't have any reading activity for this book." msgstr "" -#: bookwyrm/templates/book.html:151 +#: bookwyrm/templates/book.html:154 msgid "Create" msgstr "" -#: bookwyrm/templates/book.html:172 +#: bookwyrm/templates/book.html:176 msgid "Tags" msgstr "" -#: bookwyrm/templates/book.html:176 bookwyrm/templates/snippets/tag.html:18 +#: bookwyrm/templates/book.html:180 bookwyrm/templates/snippets/tag.html:18 msgid "Add tag" msgstr "" -#: bookwyrm/templates/book.html:193 +#: bookwyrm/templates/book.html:197 msgid "Subjects" msgstr "" -#: bookwyrm/templates/book.html:204 +#: bookwyrm/templates/book.html:208 msgid "Places" msgstr "" -#: bookwyrm/templates/book.html:215 bookwyrm/templates/layout.html:64 +#: bookwyrm/templates/book.html:219 bookwyrm/templates/layout.html:64 #: bookwyrm/templates/lists/lists.html:6 -#: bookwyrm/templates/search_results.html:85 +#: bookwyrm/templates/search_results.html:87 #: bookwyrm/templates/user/user_layout.html:60 msgid "Lists" msgstr "" -#: bookwyrm/templates/book.html:244 +#: bookwyrm/templates/book.html:248 msgid "rated it" msgstr "" +#: bookwyrm/templates/components/inline_form.html:7 +#: bookwyrm/templates/feed/feed_layout.html:49 +msgid "Close" +msgstr "" + #: bookwyrm/templates/discover/about.html:10 #: bookwyrm/templates/discover/about.html:20 msgid "Code of Conduct" @@ -208,10 +232,6 @@ msgstr "" msgid "Goodreads key:" msgstr "" -#: bookwyrm/templates/edit_author.html:76 bookwyrm/templates/edit_book.html:118 -msgid "Cancel" -msgstr "" - #: bookwyrm/templates/edit_book.html:28 #: bookwyrm/templates/snippets/create_status_form.html:10 msgid "Title:" @@ -322,7 +342,7 @@ msgid "" "There are no books here right now! Try searching for a book to get started" msgstr "" -#: bookwyrm/templates/feed/feed_layout.html:68 +#: bookwyrm/templates/feed/feed_layout.html:71 #, python-format msgid "%(year)s Reading Goal" msgstr "" @@ -336,7 +356,11 @@ msgstr "" msgid "%(year)s Reading Progress" msgstr "" -#: bookwyrm/templates/goal.html:29 +#: bookwyrm/templates/goal.html:11 +msgid "Edit Goal" +msgstr "" + +#: bookwyrm/templates/goal.html:30 #: bookwyrm/templates/snippets/goal_card.html:13 #, python-format msgid "" @@ -344,12 +368,22 @@ msgid "" "your progress throughout the year." msgstr "" -#: bookwyrm/templates/goal.html:38 +#: bookwyrm/templates/goal.html:39 #, python-format msgid "%(name)s hasn't set a reading goal for %(year)s." msgstr "" -#: bookwyrm/templates/import.html:6 +#: bookwyrm/templates/goal.html:51 +#, python-format +msgid "Your %(year)s Books" +msgstr "" + +#: bookwyrm/templates/goal.html:53 +#, python-format +msgid "%(username)s's %(year)s Books" +msgstr "" + +#: bookwyrm/templates/import.html:6 bookwyrm/templates/layout.html:94 msgid "Import Books" msgstr "" @@ -448,6 +482,10 @@ msgstr "" msgid "Sorry! This invite code is no longer valid." msgstr "" +#: bookwyrm/templates/layout.html:33 +msgid "Search for a book or user" +msgstr "" + #: bookwyrm/templates/layout.html:37 bookwyrm/templates/layout.html:38 #: bookwyrm/templates/lists/list.html:62 msgid "Search" @@ -465,6 +503,35 @@ msgstr "" msgid "Feed" msgstr "" +#: bookwyrm/templates/layout.html:79 +msgid "Direct Messages" +msgstr "" + +#: bookwyrm/templates/layout.html:84 +#: bookwyrm/templates/preferences/preferences_layout.html:14 +msgid "Profile" +msgstr "" + +#: bookwyrm/templates/layout.html:89 +msgid "Settings" +msgstr "" + +#: bookwyrm/templates/layout.html:103 +#: bookwyrm/templates/settings/admin_layout.html:16 +#: bookwyrm/templates/settings/manage_invites.html:3 +msgid "Invites" +msgstr "" + +#: bookwyrm/templates/layout.html:110 +#: bookwyrm/templates/settings/admin_layout.html:29 +#: bookwyrm/templates/settings/site.html:3 +msgid "Site Configuration" +msgstr "" + +#: bookwyrm/templates/layout.html:117 +msgid "Log out" +msgstr "" + #: bookwyrm/templates/layout.html:125 bookwyrm/templates/layout.html:126 #: bookwyrm/templates/notifications.html:7 msgid "Notifications" @@ -489,7 +556,14 @@ msgstr "" msgid "Contact site admin" msgstr "" +#: bookwyrm/templates/layout.html:198 +msgid "" +"BookWyrm is open source software. You can contribute or report issues on GitHub." +msgstr "" + #: bookwyrm/templates/lists/create_form.html:5 +#: bookwyrm/templates/lists/lists.html:14 msgid "Create List" msgstr "" @@ -518,6 +592,7 @@ msgid "Discard" msgstr "" #: bookwyrm/templates/lists/edit_form.html:5 +#: bookwyrm/templates/lists/list_layout.html:15 msgid "Edit List" msgstr "" @@ -608,7 +683,7 @@ msgstr "" msgid "Your lists" msgstr "" -#: bookwyrm/templates/lists/lists.html:36 +#: bookwyrm/templates/lists/lists.html:37 msgid "Recent Lists" msgstr "" @@ -761,10 +836,6 @@ msgstr "" msgid "Account" msgstr "" -#: bookwyrm/templates/preferences/preferences_layout.html:14 -msgid "Profile" -msgstr "" - #: bookwyrm/templates/preferences/preferences_layout.html:20 msgid "Relationships" msgstr "" @@ -791,20 +862,28 @@ msgstr "" msgid "Didn't find what you were looking for?" msgstr "" -#: bookwyrm/templates/search_results.html:53 +#: bookwyrm/templates/search_results.html:32 +msgid "Show results from other catalogues" +msgstr "" + +#: bookwyrm/templates/search_results.html:54 msgid "Import book" msgstr "" -#: bookwyrm/templates/search_results.html:70 -msgid "Matching Users" +#: bookwyrm/templates/search_results.html:64 +msgid "Hide results from other catalogues" msgstr "" #: bookwyrm/templates/search_results.html:72 +msgid "Matching Users" +msgstr "" + +#: bookwyrm/templates/search_results.html:74 #, python-format msgid "No users found for \"%(query)s\"" msgstr "" -#: bookwyrm/templates/search_results.html:87 +#: bookwyrm/templates/search_results.html:89 #, python-format msgid "No lists found for \"%(query)s\"" msgstr "" @@ -813,11 +892,6 @@ msgstr "" msgid "Manage Users" msgstr "" -#: bookwyrm/templates/settings/admin_layout.html:16 -#: bookwyrm/templates/settings/manage_invites.html:3 -msgid "Invites" -msgstr "" - #: bookwyrm/templates/settings/admin_layout.html:20 #: bookwyrm/templates/settings/federation.html:3 msgid "Federated Servers" @@ -827,11 +901,6 @@ msgstr "" msgid "Instance Settings" msgstr "" -#: bookwyrm/templates/settings/admin_layout.html:29 -#: bookwyrm/templates/settings/site.html:3 -msgid "Site Configuration" -msgstr "" - #: bookwyrm/templates/settings/admin_layout.html:32 #: bookwyrm/templates/settings/site.html:10 msgid "Instance Info" @@ -960,10 +1029,15 @@ msgstr "" msgid "Un-block" msgstr "" +#: bookwyrm/templates/snippets/book_titleby.html:3 +#, python-format +msgid "%(title)s by " +msgstr "" + #: bookwyrm/templates/snippets/boost_button.html:8 #: bookwyrm/templates/snippets/boost_button.html:9 -#: bookwyrm/templates/snippets/status/status_body.html:40 #: bookwyrm/templates/snippets/status/status_body.html:41 +#: bookwyrm/templates/snippets/status/status_body.html:42 msgid "Boost status" msgstr "" @@ -980,15 +1054,15 @@ msgstr "" msgid "Spoilers ahead!" msgstr "" -#: bookwyrm/templates/snippets/create_status.html:8 +#: bookwyrm/templates/snippets/create_status.html:9 msgid "Review" msgstr "" -#: bookwyrm/templates/snippets/create_status.html:11 +#: bookwyrm/templates/snippets/create_status.html:12 msgid "Comment" msgstr "" -#: bookwyrm/templates/snippets/create_status.html:14 +#: bookwyrm/templates/snippets/create_status.html:15 msgid "Quote" msgstr "" @@ -1007,14 +1081,18 @@ msgstr "" msgid "Comment:" msgstr "" -#: bookwyrm/templates/snippets/create_status_form.html:59 +#: bookwyrm/templates/snippets/create_status_form.html:54 +msgid "Include spoiler alert" +msgstr "" + +#: bookwyrm/templates/snippets/create_status_form.html:60 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 #: bookwyrm/templates/snippets/privacy_select.html:19 msgid "Private" msgstr "" -#: bookwyrm/templates/snippets/create_status_form.html:66 +#: bookwyrm/templates/snippets/create_status_form.html:67 msgid "Post" msgstr "" @@ -1036,8 +1114,8 @@ msgstr "" #: bookwyrm/templates/snippets/fav_button.html:7 #: bookwyrm/templates/snippets/fav_button.html:8 -#: bookwyrm/templates/snippets/status/status_body.html:44 #: bookwyrm/templates/snippets/status/status_body.html:45 +#: bookwyrm/templates/snippets/status/status_body.html:46 msgid "Like status" msgstr "" @@ -1066,6 +1144,13 @@ msgstr "" msgid "Accept" msgstr "" +#: bookwyrm/templates/snippets/generated_status/goal.html:1 +#, python-format +msgid "set a goal to read %(count)s book in %(year)s" +msgid_plural "set a goal to read %(count)s books in %(year)s" +msgstr[0] "" +msgstr[1] "" + #: bookwyrm/templates/snippets/goal_card.html:6 #, python-format msgid "%(year)s reading goal" @@ -1114,6 +1199,19 @@ msgstr "" msgid "%(percent)s%% complete!" msgstr "" +#: bookwyrm/templates/snippets/goal_progress.html:10 +#, python-format +msgid "" +"You've read %(read_count)s of %(goal_count)s books." +msgstr "" + +#: bookwyrm/templates/snippets/goal_progress.html:12 +#, python-format +msgid "" +"%(username)s has read %(read_count)s of %(goal_count)s " +"books." +msgstr "" + #: bookwyrm/templates/snippets/pagination.html:7 msgid "Previous" msgstr "" @@ -1182,18 +1280,27 @@ msgstr "" msgid "finished" msgstr "" -#: bookwyrm/templates/snippets/readthrough.html:29 +#: bookwyrm/templates/snippets/readthrough.html:14 +msgid "Show all updates" +msgstr "" + +#: bookwyrm/templates/snippets/readthrough.html:30 msgid "Delete this progress update" msgstr "" -#: bookwyrm/templates/snippets/readthrough.html:39 +#: bookwyrm/templates/snippets/readthrough.html:40 msgid "started" msgstr "" -#: bookwyrm/templates/snippets/readthrough.html:57 +#: bookwyrm/templates/snippets/readthrough.html:46 +#: bookwyrm/templates/snippets/readthrough.html:60 msgid "Edit read dates" msgstr "" +#: bookwyrm/templates/snippets/readthrough.html:50 +msgid "Delete these read dates" +msgstr "" + #: bookwyrm/templates/snippets/readthrough_form.html:7 #: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:19 #: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:17 @@ -1287,10 +1394,23 @@ msgstr "" msgid "More shelves" msgstr "" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:10 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:8 +msgid "Start reading" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:11 msgid "Read" msgstr "" +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13 +msgid "Finish reading" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:16 +#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:26 +msgid "Want to read" +msgstr "" + #: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:5 #, python-format msgid "Start \"%(book_title)s\"" @@ -1301,20 +1421,27 @@ msgstr "" msgid "Want to Read \"%(book_title)s\"" msgstr "" -#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:26 -msgid "Want to read" -msgstr "" - #: bookwyrm/templates/snippets/status/status.html:7 msgid "boosted" msgstr "" -#: bookwyrm/templates/snippets/status/status_body.html:36 +#: bookwyrm/templates/snippets/status/status_body.html:24 #: bookwyrm/templates/snippets/status/status_body.html:37 +#: bookwyrm/templates/snippets/status/status_body.html:38 msgid "Reply" msgstr "" -#: bookwyrm/templates/snippets/status/status_content.html:42 +#: bookwyrm/templates/snippets/status/status_content.html:16 +#: bookwyrm/templates/snippets/trimmed_text.html:12 +msgid "Show more" +msgstr "" + +#: bookwyrm/templates/snippets/status/status_content.html:23 +#: bookwyrm/templates/snippets/trimmed_text.html:18 +msgid "Show less" +msgstr "" + +#: bookwyrm/templates/snippets/status/status_content.html:44 msgid "Open image in new window" msgstr "" @@ -1350,6 +1477,7 @@ msgid "Create New Shelf" msgstr "" #: bookwyrm/templates/user/create_shelf_form.html:22 +#: bookwyrm/templates/user/shelf.html:33 msgid "Create shelf" msgstr "" @@ -1375,10 +1503,18 @@ msgstr "" msgid "%(username)s isn't following any users" msgstr "" -#: bookwyrm/templates/user/lists.html:28 +#: bookwyrm/templates/user/lists.html:17 +msgid "Create new list" +msgstr "" + +#: bookwyrm/templates/user/lists.html:29 msgid "Create list" msgstr "" +#: bookwyrm/templates/user/shelf.html:54 +msgid "Edit shelf" +msgstr "" + #: bookwyrm/templates/user/user.html:7 msgid "User profile" msgstr "" @@ -1435,3 +1571,15 @@ msgstr "" #, python-format msgid "Joined %(date)s" msgstr "" + +#: bookwyrm/templates/user/user_preview.html:15 +#, python-format +msgid "%(counter)s follower" +msgid_plural "%(counter)s followers" +msgstr[0] "" +msgstr[1] "" + +#: bookwyrm/templates/user/user_preview.html:16 +#, python-format +msgid "%(counter)s following" +msgstr "" From b9bf65ad2ae18a4158c013773974e126d5ce1e46 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 28 Feb 2021 17:37:49 -0800 Subject: [PATCH 017/111] Adds missing i18n imports --- bookwyrm/templates/components/inline_form.html | 1 + bookwyrm/templates/snippets/generated_status/goal.html | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bookwyrm/templates/components/inline_form.html b/bookwyrm/templates/components/inline_form.html index 97f619964..40915a928 100644 --- a/bookwyrm/templates/components/inline_form.html +++ b/bookwyrm/templates/components/inline_form.html @@ -1,3 +1,4 @@ +{% load i18n %} {% endif %} From 2c3789379099c76d430bb50817b996870f6e115b Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Mar 2021 10:32:46 -0800 Subject: [PATCH 036/111] Adds default shelf names translations --- bookwyrm/templates/feed/feed_layout.html | 5 ++++- bookwyrm/templates/user/shelf.html | 2 +- bookwyrm/views/feed.py | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/bookwyrm/templates/feed/feed_layout.html b/bookwyrm/templates/feed/feed_layout.html index 7f35d2f30..04826a64d 100644 --- a/bookwyrm/templates/feed/feed_layout.html +++ b/bookwyrm/templates/feed/feed_layout.html @@ -20,7 +20,10 @@ {% with shelf_counter=forloop.counter %}
  • - {{ shelf.name }} + {% if shelf.identifier == 'to-read' %}{% trans "To Read" %} + {% elif shelf.identifier == 'reading' %}{% trans "Currently Reading" %} + {% elif shelf.identifier == 'read' %}{% trans "Read" %} + {% else %}{{ shelf.name }}{% endif %}

      diff --git a/bookwyrm/templates/user/shelf.html b/bookwyrm/templates/user/shelf.html index c7c833886..189d28568 100644 --- a/bookwyrm/templates/user/shelf.html +++ b/bookwyrm/templates/user/shelf.html @@ -21,7 +21,7 @@ diff --git a/bookwyrm/views/feed.py b/bookwyrm/views/feed.py index f9cb9d59b..f7e93e9a3 100644 --- a/bookwyrm/views/feed.py +++ b/bookwyrm/views/feed.py @@ -166,6 +166,7 @@ def get_suggested_books(user, max_books=5): continue shelf_preview = { 'name': shelf.name, + 'identifier': shelf.identifier, 'books': [s.book for s in shelf_books] } suggested_books.append(shelf_preview) From 9f2e255f501428de1ad524fff679dfc26537023b Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Mar 2021 10:33:48 -0800 Subject: [PATCH 037/111] Re-compile messages for new strings --- locale/en_US/LC_MESSAGES/django.mo | Bin 390 -> 386 bytes locale/en_US/LC_MESSAGES/django.po | 108 +++++++++++++++++++----- locale/fr_FR/LC_MESSAGES/django.mo | Bin 20801 -> 20692 bytes locale/fr_FR/LC_MESSAGES/django.po | 130 +++++++++++++++++++++++------ locale/zh_CN/LC_MESSAGES/django.mo | Bin 23973 -> 23894 bytes locale/zh_CN/LC_MESSAGES/django.po | 129 ++++++++++++++++++++++------ 6 files changed, 296 insertions(+), 71 deletions(-) diff --git a/locale/en_US/LC_MESSAGES/django.mo b/locale/en_US/LC_MESSAGES/django.mo index c0a5dd97922819649185a3a8135344140fa5f096..e07529141a2dbe01f4f40179065965e72cb674c3 100644 GIT binary patch delta 46 zcmZo;ZepIG!sszkRg2MJVt^@+g@U2Em7%4sfrWv=#0jqKu6gM>nZ+3sAIMGo-wps8 C4i0qy delta 51 zcmZo-ZeyOH!ss(mRg2MZVt^^Pxq_jwm8pStKyb*!iLTtf`K86F3PGu\n" "Language-Team: English \n" @@ -32,6 +32,10 @@ msgstr "" msgid "Books by %(name)s" msgstr "" +#: bookwyrm/templates/book.html:21 +msgid "by" +msgstr "" + #: bookwyrm/templates/book.html:29 bookwyrm/templates/book.html:30 #: bookwyrm/templates/edit_book.html:5 msgid "Edit Book" @@ -57,20 +61,43 @@ msgstr "" msgid "ASIN:" msgstr "" +#: bookwyrm/templates/book.html:84 +#, python-format +msgid "%(format)s, %(pages)s pages" +msgstr "" + #: bookwyrm/templates/book.html:86 +#, python-format +msgid "%(pages)s pages" +msgstr "" + +#: bookwyrm/templates/book.html:91 msgid "View on OpenLibrary" msgstr "" -#: bookwyrm/templates/book.html:98 +#: bookwyrm/templates/book.html:100 +#, python-format +msgid "" +"\n" +" (%(review_count)s review)\n" +" " +msgid_plural "" +"\n" +" (%(review_count)s reviews)\n" +" " +msgstr[0] "" +msgstr[1] "" + +#: bookwyrm/templates/book.html:110 msgid "Add Description" msgstr "" -#: bookwyrm/templates/book.html:105 bookwyrm/templates/edit_book.html:39 +#: bookwyrm/templates/book.html:117 bookwyrm/templates/edit_book.html:39 #: bookwyrm/templates/lists/form.html:12 msgid "Description:" msgstr "" -#: bookwyrm/templates/book.html:109 bookwyrm/templates/edit_author.html:78 +#: bookwyrm/templates/book.html:121 bookwyrm/templates/edit_author.html:78 #: bookwyrm/templates/edit_book.html:120 bookwyrm/templates/lists/form.html:42 #: bookwyrm/templates/preferences/edit_user.html:50 #: bookwyrm/templates/settings/site.html:89 @@ -81,7 +108,7 @@ msgstr "" msgid "Save" msgstr "" -#: bookwyrm/templates/book.html:110 bookwyrm/templates/book.html:159 +#: bookwyrm/templates/book.html:122 bookwyrm/templates/book.html:171 #: bookwyrm/templates/edit_author.html:79 bookwyrm/templates/edit_book.html:121 #: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 #: bookwyrm/templates/snippets/goal_form.html:32 @@ -92,51 +119,68 @@ msgstr "" msgid "Cancel" msgstr "" -#: bookwyrm/templates/book.html:142 +#: bookwyrm/templates/book.html:131 +#, python-format +msgid "%(count)s editions" +msgstr "" + +#: bookwyrm/templates/book.html:139 +#, python-format +msgid "This edition is on your %(shelf_name)s shelf." +msgstr "" + +#: bookwyrm/templates/book.html:145 +#, python-format +msgid "" +"A different edition of this book is on your %(shelf_name)s shelf." +msgstr "" + +#: bookwyrm/templates/book.html:154 msgid "Your reading activity" msgstr "" -#: bookwyrm/templates/book.html:144 +#: bookwyrm/templates/book.html:156 msgid "Add read dates" msgstr "" -#: bookwyrm/templates/book.html:149 +#: bookwyrm/templates/book.html:161 msgid "You don't have any reading activity for this book." msgstr "" -#: bookwyrm/templates/book.html:156 +#: bookwyrm/templates/book.html:168 msgid "Create" msgstr "" -#: bookwyrm/templates/book.html:178 +#: bookwyrm/templates/book.html:190 msgid "Tags" msgstr "" -#: bookwyrm/templates/book.html:182 bookwyrm/templates/snippets/tag.html:18 +#: bookwyrm/templates/book.html:194 bookwyrm/templates/snippets/tag.html:18 msgid "Add tag" msgstr "" -#: bookwyrm/templates/book.html:199 +#: bookwyrm/templates/book.html:211 msgid "Subjects" msgstr "" -#: bookwyrm/templates/book.html:210 +#: bookwyrm/templates/book.html:222 msgid "Places" msgstr "" -#: bookwyrm/templates/book.html:221 bookwyrm/templates/layout.html:64 +#: bookwyrm/templates/book.html:233 bookwyrm/templates/layout.html:64 #: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9 #: bookwyrm/templates/search_results.html:90 #: bookwyrm/templates/user/user_layout.html:62 msgid "Lists" msgstr "" -#: bookwyrm/templates/book.html:250 +#: bookwyrm/templates/book.html:262 msgid "rated it" msgstr "" #: bookwyrm/templates/components/inline_form.html:8 -#: bookwyrm/templates/feed/feed_layout.html:51 +#: bookwyrm/templates/feed/feed_layout.html:54 msgid "Close" msgstr "" @@ -375,7 +419,23 @@ msgid "" "There are no books here right now! Try searching for a book to get started" msgstr "" -#: bookwyrm/templates/feed/feed_layout.html:73 bookwyrm/templates/goal.html:26 +#: bookwyrm/templates/feed/feed_layout.html:23 +#: bookwyrm/templates/user/shelf.html:24 +msgid "To Read" +msgstr "" + +#: bookwyrm/templates/feed/feed_layout.html:24 +#: bookwyrm/templates/user/shelf.html:24 +msgid "Currently Reading" +msgstr "" + +#: bookwyrm/templates/feed/feed_layout.html:25 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:11 +#: bookwyrm/templates/user/shelf.html:24 +msgid "Read" +msgstr "" + +#: bookwyrm/templates/feed/feed_layout.html:76 bookwyrm/templates/goal.html:26 #: bookwyrm/templates/snippets/goal_card.html:6 #, python-format msgid "%(year)s Reading Goal" @@ -662,7 +722,8 @@ msgid "This list is currently empty" msgstr "" #: bookwyrm/templates/lists/list.html:35 -msgid "Added by" +#, python-format +msgid "Added by %(username)s" msgstr "" #: bookwyrm/templates/lists/list.html:41 @@ -716,6 +777,11 @@ msgstr "" msgid "Your lists" msgstr "" +#: bookwyrm/templates/lists/lists.html:32 +#, python-format +msgid "See all %(size)s lists" +msgstr "" + #: bookwyrm/templates/lists/lists.html:40 msgid "Recent Lists" msgstr "" @@ -1530,10 +1596,6 @@ msgstr "" msgid "Start reading" msgstr "" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:11 -msgid "Read" -msgstr "" - #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13 msgid "Finish reading" msgstr "" @@ -1583,7 +1645,7 @@ msgid "More options" msgstr "" #: bookwyrm/templates/snippets/status/status_options.html:17 -msgid "Delete post" +msgid "Delete status" msgstr "" #: bookwyrm/templates/snippets/status/status_options.html:23 diff --git a/locale/fr_FR/LC_MESSAGES/django.mo b/locale/fr_FR/LC_MESSAGES/django.mo index 8b845aa782e4dddbeaef185c9447f67e8c99eeb3..9f8cca0a8c197b367ab948e30475b8a861aa1fc9 100644 GIT binary patch delta 7043 zcmX@Oi1Ero#`=3gEK?a67#Lg`85m?37#Li*7#KD(GBD(bfJ7M>45S$tY#10A45b+u zL>U+u@}wCU3>X*~TBI2m#2FYEwn{TFh%qoQoRwx^kY!+Ccp}Zf5W>K~z$C-KpvJ(! z5H17JS0}^3Aj!bMFhvHUZ=DPSg98IYJ;N~>1_o9J1_pLn1_nU}1_oYP1_m|;1_pUq z1_pKp1_m`*1_llW1_nJ@1_ovZ1_pCk1_n+B1_o;=?Fv=r57ieg%fP_Hz`zg(rL$!j z7=#%Z7%F5L7bFeozAGcc@_WneI3U|={6HRvDIAT~J$1|g7x z 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 delta 7129 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 diff --git a/locale/fr_FR/LC_MESSAGES/django.po b/locale/fr_FR/LC_MESSAGES/django.po index 3956fc921..f0a25f6bb 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-03-02 11:38+0000\n" +"POT-Creation-Date: 2021-03-02 18:33+0000\n" "PO-Revision-Date: 2021-03-02 12:37+0100\n" "Last-Translator: Fabien Basmaison \n" "Language-Team: Mouse Reeve \n" @@ -32,6 +32,10 @@ msgstr "Wikipedia" msgid "Books by %(name)s" msgstr "Livres par %(name)s" +#: bookwyrm/templates/book.html:21 +msgid "by" +msgstr "" + #: bookwyrm/templates/book.html:29 bookwyrm/templates/book.html:30 #: bookwyrm/templates/edit_book.html:5 msgid "Edit Book" @@ -57,22 +61,47 @@ msgstr "Numéro OCLC :" msgid "ASIN:" msgstr "ASIN :" +#: bookwyrm/templates/book.html:84 +#, fuzzy, python-format +#| msgid "of %(book.pages)s pages" +msgid "%(format)s, %(pages)s pages" +msgstr "sur %(book.pages)s pages" + #: bookwyrm/templates/book.html:86 +#, fuzzy, python-format +#| msgid "of %(book.pages)s pages" +msgid "%(pages)s pages" +msgstr "sur %(book.pages)s pages" + +#: bookwyrm/templates/book.html:91 msgid "View on OpenLibrary" msgstr "Voir sur OpenLibrary" -#: bookwyrm/templates/book.html:98 +#: bookwyrm/templates/book.html:100 +#, python-format +msgid "" +"\n" +" (%(review_count)s review)\n" +" " +msgid_plural "" +"\n" +" (%(review_count)s reviews)\n" +" " +msgstr[0] "" +msgstr[1] "" + +#: bookwyrm/templates/book.html:110 #, fuzzy #| msgid "Description:" msgid "Add Description" msgstr "Ajouter une description" -#: bookwyrm/templates/book.html:105 bookwyrm/templates/edit_book.html:39 +#: bookwyrm/templates/book.html:117 bookwyrm/templates/edit_book.html:39 #: bookwyrm/templates/lists/form.html:12 msgid "Description:" msgstr "Description :" -#: bookwyrm/templates/book.html:109 bookwyrm/templates/edit_author.html:78 +#: bookwyrm/templates/book.html:121 bookwyrm/templates/edit_author.html:78 #: bookwyrm/templates/edit_book.html:120 bookwyrm/templates/lists/form.html:42 #: bookwyrm/templates/preferences/edit_user.html:50 #: bookwyrm/templates/settings/site.html:89 @@ -83,7 +112,7 @@ msgstr "Description :" msgid "Save" msgstr "Enregistrer" -#: bookwyrm/templates/book.html:110 bookwyrm/templates/book.html:159 +#: bookwyrm/templates/book.html:122 bookwyrm/templates/book.html:171 #: bookwyrm/templates/edit_author.html:79 bookwyrm/templates/edit_book.html:121 #: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 #: bookwyrm/templates/snippets/goal_form.html:32 @@ -94,53 +123,77 @@ msgstr "Enregistrer" msgid "Cancel" msgstr "Annuler" -#: bookwyrm/templates/book.html:142 +#: bookwyrm/templates/book.html:131 +#, fuzzy, python-format +#| msgid "Editions of \"%(work_title)s\"" +msgid "%(count)s editions" +msgstr "%(title)s par " + +#: bookwyrm/templates/book.html:139 +#, fuzzy, python-format +#| msgid "favorited your %(preview_name)s" +msgid "This edition is on your %(shelf_name)s shelf." +msgstr "Messages directs avec %(username)s" + +#: bookwyrm/templates/book.html:145 +#, fuzzy, python-format +#| msgid "" +#| "replied to your %(preview_name)s" +msgid "" +"A different edition of this book is on your %(shelf_name)s shelf." +msgstr "" +" a ajouté %(book_title)s à votre " +"liste « %(list_name)s »" + +#: bookwyrm/templates/book.html:154 msgid "Your reading activity" msgstr "Votre activité de lecture" -#: bookwyrm/templates/book.html:144 +#: bookwyrm/templates/book.html:156 #, fuzzy #| msgid "Edit read dates" msgid "Add read dates" msgstr "Ajouter des dates de lecture" -#: bookwyrm/templates/book.html:149 +#: bookwyrm/templates/book.html:161 msgid "You don't have any reading activity for this book." msgstr "Vous n’avez aucune activité de lecture pour ce livre" -#: bookwyrm/templates/book.html:156 +#: bookwyrm/templates/book.html:168 msgid "Create" msgstr "Créer" -#: bookwyrm/templates/book.html:178 +#: bookwyrm/templates/book.html:190 msgid "Tags" msgstr "Tags" -#: bookwyrm/templates/book.html:182 bookwyrm/templates/snippets/tag.html:18 +#: bookwyrm/templates/book.html:194 bookwyrm/templates/snippets/tag.html:18 msgid "Add tag" msgstr "Ajouter un tag" -#: bookwyrm/templates/book.html:199 +#: bookwyrm/templates/book.html:211 msgid "Subjects" msgstr "Sujets" -#: bookwyrm/templates/book.html:210 +#: bookwyrm/templates/book.html:222 msgid "Places" msgstr "Lieux" -#: bookwyrm/templates/book.html:221 bookwyrm/templates/layout.html:64 +#: bookwyrm/templates/book.html:233 bookwyrm/templates/layout.html:64 #: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9 #: bookwyrm/templates/search_results.html:90 #: bookwyrm/templates/user/user_layout.html:62 msgid "Lists" msgstr "Listes" -#: bookwyrm/templates/book.html:250 +#: bookwyrm/templates/book.html:262 msgid "rated it" msgstr "l’a noté" #: bookwyrm/templates/components/inline_form.html:8 -#: bookwyrm/templates/feed/feed_layout.html:51 +#: bookwyrm/templates/feed/feed_layout.html:54 #, fuzzy #| msgid "Closed" msgid "Close" @@ -389,7 +442,27 @@ msgid "" "There are no books here right now! Try searching for a book to get started" msgstr "Aucun livre ici pour l’instant ! Cherchez un livre pour commencer" -#: bookwyrm/templates/feed/feed_layout.html:73 bookwyrm/templates/goal.html:26 +#: bookwyrm/templates/feed/feed_layout.html:23 +#: bookwyrm/templates/user/shelf.html:24 +#, fuzzy +#| msgid "Read" +msgid "To Read" +msgstr "Lu" + +#: bookwyrm/templates/feed/feed_layout.html:24 +#: bookwyrm/templates/user/shelf.html:24 +#, fuzzy +#| msgid "Started reading" +msgid "Currently Reading" +msgstr "Commencer la lecture" + +#: bookwyrm/templates/feed/feed_layout.html:25 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:11 +#: bookwyrm/templates/user/shelf.html:24 +msgid "Read" +msgstr "Lu" + +#: bookwyrm/templates/feed/feed_layout.html:76 bookwyrm/templates/goal.html:26 #: bookwyrm/templates/snippets/goal_card.html:6 #, python-format msgid "%(year)s Reading Goal" @@ -690,8 +763,10 @@ msgid "This list is currently empty" msgstr "Cette liste est vide actuellement" #: bookwyrm/templates/lists/list.html:35 -msgid "Added by" -msgstr "Ajouté par" +#, fuzzy, python-format +#| msgid "favorited your %(preview_name)s" +msgid "Added by %(username)s" +msgstr "Messages directs avec %(username)s" #: bookwyrm/templates/lists/list.html:41 msgid "Remove" @@ -744,6 +819,12 @@ msgstr "Créée par" msgid "Your lists" msgstr "Vos listes" +#: bookwyrm/templates/lists/lists.html:32 +#, fuzzy, python-format +#| msgid "See all %(size)s" +msgid "See all %(size)s lists" +msgstr "Voir les %(size)s" + #: bookwyrm/templates/lists/lists.html:40 msgid "Recent Lists" msgstr "Listes récentes" @@ -1639,10 +1720,6 @@ msgstr "Plus d’étagères" msgid "Start reading" msgstr "Commencer la lecture" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:11 -msgid "Read" -msgstr "Lu" - #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13 #, fuzzy #| msgid "Finished reading" @@ -1694,7 +1771,9 @@ msgid "More options" msgstr "Plus d’options" #: bookwyrm/templates/snippets/status/status_options.html:17 -msgid "Delete post" +#, fuzzy +#| msgid "Delete post" +msgid "Delete status" msgstr "Supprimer le statut" #: bookwyrm/templates/snippets/status/status_options.html:23 @@ -1859,6 +1938,9 @@ msgstr[1] "%(username)s n’a pas d’abonné(e)s" msgid "%(counter)s following" msgstr "%(counter)s abonnements" +#~ msgid "Added by" +#~ msgstr "Ajouté par" + #~ msgid "added" #~ msgstr "a ajouté" diff --git a/locale/zh_CN/LC_MESSAGES/django.mo b/locale/zh_CN/LC_MESSAGES/django.mo index 818dd2a106bc0d908fae88238bb4d2157c8c0708..1114628341af6f1ca8e4f07e6dadb2932b1b0b91 100644 GIT binary patch delta 8038 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�m=*v4h#$o|CJdSSQ!`?98?$>gc%qZ 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 ZqJ7ooc9$$>wx|6QpG|Au{K`E?6ac2sJBa`Q diff --git a/locale/zh_CN/LC_MESSAGES/django.po b/locale/zh_CN/LC_MESSAGES/django.po index 9159c1ce4..fc53bf054 100644 --- a/locale/zh_CN/LC_MESSAGES/django.po +++ b/locale/zh_CN/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-03-02 10:32+0000\n" +"POT-Creation-Date: 2021-03-02 18:33+0000\n" "PO-Revision-Date: 2021-03-02 10:35+0000\n" "Last-Translator: Kana \n" "Language-Team: Mouse Reeve \n" @@ -32,6 +32,10 @@ msgstr "维基百科" msgid "Books by %(name)s" msgstr "%(name)s 所著的书" +#: bookwyrm/templates/book.html:21 +msgid "by" +msgstr "" + #: bookwyrm/templates/book.html:29 bookwyrm/templates/book.html:30 #: bookwyrm/templates/edit_book.html:5 msgid "Edit Book" @@ -57,20 +61,44 @@ msgstr "OCLC 号:" msgid "ASIN:" msgstr "ASIN:" +#: bookwyrm/templates/book.html:84 +#, fuzzy, python-format +#| msgid "of %(book.pages)s pages" +msgid "%(format)s, %(pages)s pages" +msgstr "全书 %(book.pages)s 页" + #: bookwyrm/templates/book.html:86 +#, fuzzy, python-format +#| msgid "of %(book.pages)s pages" +msgid "%(pages)s pages" +msgstr "全书 %(book.pages)s 页" + +#: bookwyrm/templates/book.html:91 msgid "View on OpenLibrary" msgstr "在 OpenLibrary 查看" -#: bookwyrm/templates/book.html:98 +#: bookwyrm/templates/book.html:100 +#, python-format +msgid "" +"\n" +" (%(review_count)s review)\n" +" " +msgid_plural "" +"\n" +" (%(review_count)s reviews)\n" +" " +msgstr[0] "" + +#: bookwyrm/templates/book.html:110 msgid "Add Description" msgstr "添加描述" -#: bookwyrm/templates/book.html:105 bookwyrm/templates/edit_book.html:39 +#: bookwyrm/templates/book.html:117 bookwyrm/templates/edit_book.html:39 #: bookwyrm/templates/lists/form.html:12 msgid "Description:" msgstr "描述:" -#: bookwyrm/templates/book.html:109 bookwyrm/templates/edit_author.html:78 +#: bookwyrm/templates/book.html:121 bookwyrm/templates/edit_author.html:78 #: bookwyrm/templates/edit_book.html:120 bookwyrm/templates/lists/form.html:42 #: bookwyrm/templates/preferences/edit_user.html:50 #: bookwyrm/templates/settings/site.html:89 @@ -81,7 +109,7 @@ msgstr "描述:" msgid "Save" msgstr "保存" -#: bookwyrm/templates/book.html:110 bookwyrm/templates/book.html:159 +#: bookwyrm/templates/book.html:122 bookwyrm/templates/book.html:171 #: bookwyrm/templates/edit_author.html:79 bookwyrm/templates/edit_book.html:121 #: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 #: bookwyrm/templates/snippets/goal_form.html:32 @@ -92,51 +120,75 @@ msgstr "保存" msgid "Cancel" msgstr "取消" -#: bookwyrm/templates/book.html:142 +#: bookwyrm/templates/book.html:131 +#, fuzzy, python-format +#| msgid "%(title)s by " +msgid "%(count)s editions" +msgstr "%(title)s 来自" + +#: bookwyrm/templates/book.html:139 +#, fuzzy, python-format +#| msgid "Direct Messages with %(username)s" +msgid "This edition is on your %(shelf_name)s shelf." +msgstr "与 %(username)s 私信" + +#: bookwyrm/templates/book.html:145 +#, fuzzy, python-format +#| msgid "" +#| " added %(book_title)s to your list " +#| "\"%(list_name)s\"" +msgid "" +"A different edition of this book is on your %(shelf_name)s shelf." +msgstr "" +" 添加了 %(book_title)s 到你的列表 " +"\"%(list_name)s\"" + +#: bookwyrm/templates/book.html:154 msgid "Your reading activity" msgstr "你的阅读活动" -#: bookwyrm/templates/book.html:144 +#: bookwyrm/templates/book.html:156 msgid "Add read dates" msgstr "添加阅读日期" -#: bookwyrm/templates/book.html:149 +#: bookwyrm/templates/book.html:161 msgid "You don't have any reading activity for this book." msgstr "你还没有任何这本书的阅读活动。" -#: bookwyrm/templates/book.html:156 +#: bookwyrm/templates/book.html:168 msgid "Create" msgstr "创建" -#: bookwyrm/templates/book.html:178 +#: bookwyrm/templates/book.html:190 msgid "Tags" msgstr "标签" -#: bookwyrm/templates/book.html:182 bookwyrm/templates/snippets/tag.html:18 +#: bookwyrm/templates/book.html:194 bookwyrm/templates/snippets/tag.html:18 msgid "Add tag" msgstr "添加标签" -#: bookwyrm/templates/book.html:199 +#: bookwyrm/templates/book.html:211 msgid "Subjects" msgstr "主题" -#: bookwyrm/templates/book.html:210 +#: bookwyrm/templates/book.html:222 msgid "Places" msgstr "地点" -#: bookwyrm/templates/book.html:221 bookwyrm/templates/layout.html:64 +#: bookwyrm/templates/book.html:233 bookwyrm/templates/layout.html:64 #: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9 #: bookwyrm/templates/search_results.html:90 #: bookwyrm/templates/user/user_layout.html:62 msgid "Lists" msgstr "列表" -#: bookwyrm/templates/book.html:250 +#: bookwyrm/templates/book.html:262 msgid "rated it" msgstr "评价了" #: bookwyrm/templates/components/inline_form.html:8 -#: bookwyrm/templates/feed/feed_layout.html:51 +#: bookwyrm/templates/feed/feed_layout.html:54 msgid "Close" msgstr "关闭" @@ -375,7 +427,27 @@ msgid "" "There are no books here right now! Try searching for a book to get started" msgstr "现在这里还没有任何书目!尝试着从搜索某本书开始吧" -#: bookwyrm/templates/feed/feed_layout.html:73 bookwyrm/templates/goal.html:26 +#: bookwyrm/templates/feed/feed_layout.html:23 +#: bookwyrm/templates/user/shelf.html:24 +#, fuzzy +#| msgid "Read" +msgid "To Read" +msgstr "阅读" + +#: bookwyrm/templates/feed/feed_layout.html:24 +#: bookwyrm/templates/user/shelf.html:24 +#, fuzzy +#| msgid "Start reading" +msgid "Currently Reading" +msgstr "开始阅读" + +#: bookwyrm/templates/feed/feed_layout.html:25 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:11 +#: bookwyrm/templates/user/shelf.html:24 +msgid "Read" +msgstr "阅读" + +#: bookwyrm/templates/feed/feed_layout.html:76 bookwyrm/templates/goal.html:26 #: bookwyrm/templates/snippets/goal_card.html:6 #, python-format msgid "%(year)s Reading Goal" @@ -664,8 +736,10 @@ msgid "This list is currently empty" msgstr "此列表当前是空的" #: bookwyrm/templates/lists/list.html:35 -msgid "Added by" -msgstr "添加来自" +#, fuzzy, python-format +#| msgid "Direct Messages with %(username)s" +msgid "Added by %(username)s" +msgstr "与 %(username)s 私信" #: bookwyrm/templates/lists/list.html:41 msgid "Remove" @@ -718,6 +792,12 @@ msgstr "创建者为" msgid "Your lists" msgstr "你的列表" +#: bookwyrm/templates/lists/lists.html:32 +#, fuzzy, python-format +#| msgid "See all %(size)s" +msgid "See all %(size)s lists" +msgstr "查看所有 %(size)s" + #: bookwyrm/templates/lists/lists.html:40 msgid "Recent Lists" msgstr "最近的列表" @@ -1562,10 +1642,6 @@ msgstr "更多书架" msgid "Start reading" msgstr "开始阅读" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:11 -msgid "Read" -msgstr "阅读" - #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13 msgid "Finish reading" msgstr "完成阅读" @@ -1615,7 +1691,9 @@ msgid "More options" msgstr "更多选项" #: bookwyrm/templates/snippets/status/status_options.html:17 -msgid "Delete post" +#, fuzzy +#| msgid "Delete post" +msgid "Delete status" msgstr "删除发文" #: bookwyrm/templates/snippets/status/status_options.html:23 @@ -1765,3 +1843,6 @@ msgstr[0] "%(counter)s 个关注者" #, python-format msgid "%(counter)s following" msgstr "关注着 %(counter)s 人" + +#~ msgid "Added by" +#~ msgstr "添加来自" From 549d8768a6786b9bff67674ca308038523277de8 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Mar 2021 10:46:08 -0800 Subject: [PATCH 038/111] Combine a couple very similar translation strings plus a whitespace fix --- bookwyrm/templates/book.html | 6 +- .../templates/user/create_shelf_form.html | 4 +- bookwyrm/templates/user/edit_shelf_form.html | 1 - bookwyrm/templates/user/lists.html | 2 +- locale/en_US/LC_MESSAGES/django.po | 62 ++++++--------- locale/fr_FR/LC_MESSAGES/django.mo | Bin 20692 -> 20629 bytes locale/fr_FR/LC_MESSAGES/django.po | 74 +++++++++--------- locale/zh_CN/LC_MESSAGES/django.mo | Bin 23894 -> 23803 bytes locale/zh_CN/LC_MESSAGES/django.po | 70 ++++++++--------- 9 files changed, 100 insertions(+), 119 deletions(-) diff --git a/bookwyrm/templates/book.html b/bookwyrm/templates/book.html index aabfb37b1..d80daca24 100644 --- a/bookwyrm/templates/book.html +++ b/bookwyrm/templates/book.html @@ -97,11 +97,7 @@

      {% include 'snippets/stars.html' with rating=rating %} - {% blocktrans count counter=review_count %} - ({{ review_count }} review) - {% plural %} - ({{ review_count }} reviews) - {% endblocktrans %} + {% blocktrans count counter=review_count %}({{ review_count }} review){% plural %}({{ review_count }} reviews){% endblocktrans %}

      {% include 'snippets/trimmed_text.html' with full=book|book_description %} diff --git a/bookwyrm/templates/user/create_shelf_form.html b/bookwyrm/templates/user/create_shelf_form.html index 785c8d06f..b7ea27de8 100644 --- a/bookwyrm/templates/user/create_shelf_form.html +++ b/bookwyrm/templates/user/create_shelf_form.html @@ -2,7 +2,7 @@ {% load i18n %} {% block header %} -{% trans "Create New Shelf" %} +{% trans "Create Shelf" %} {% endblock %} {% block form %} @@ -19,7 +19,7 @@ {% include 'snippets/privacy_select.html' %}
      - +
    diff --git a/bookwyrm/templates/user/edit_shelf_form.html b/bookwyrm/templates/user/edit_shelf_form.html index a9f86da4c..753d06816 100644 --- a/bookwyrm/templates/user/edit_shelf_form.html +++ b/bookwyrm/templates/user/edit_shelf_form.html @@ -29,4 +29,3 @@ {% endblock %} - diff --git a/bookwyrm/templates/user/lists.html b/bookwyrm/templates/user/lists.html index 8e47041f4..85c7cc8c6 100644 --- a/bookwyrm/templates/user/lists.html +++ b/bookwyrm/templates/user/lists.html @@ -14,7 +14,7 @@ {% if is_self %}
    - {% trans "Create new list" as button_text %} + {% trans "Create list" as button_text %} {% include 'snippets/toggle/open_button.html' with controls_text="create-list" icon="plus" text=button_text %}
    {% endif %} diff --git a/locale/en_US/LC_MESSAGES/django.po b/locale/en_US/LC_MESSAGES/django.po index 486494b0c..8aae6c92c 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-03-02 18:33+0000\n" +"POT-Creation-Date: 2021-03-02 18:44+0000\n" "PO-Revision-Date: 2021-02-28 17:19-0800\n" "Last-Translator: Mouse Reeve \n" "Language-Team: English \n" @@ -77,27 +77,21 @@ msgstr "" #: bookwyrm/templates/book.html:100 #, python-format -msgid "" -"\n" -" (%(review_count)s review)\n" -" " -msgid_plural "" -"\n" -" (%(review_count)s reviews)\n" -" " +msgid "(%(review_count)s review)" +msgid_plural "(%(review_count)s reviews)" msgstr[0] "" msgstr[1] "" -#: bookwyrm/templates/book.html:110 +#: bookwyrm/templates/book.html:106 msgid "Add Description" msgstr "" -#: bookwyrm/templates/book.html:117 bookwyrm/templates/edit_book.html:39 +#: bookwyrm/templates/book.html:113 bookwyrm/templates/edit_book.html:39 #: bookwyrm/templates/lists/form.html:12 msgid "Description:" msgstr "" -#: bookwyrm/templates/book.html:121 bookwyrm/templates/edit_author.html:78 +#: bookwyrm/templates/book.html:117 bookwyrm/templates/edit_author.html:78 #: bookwyrm/templates/edit_book.html:120 bookwyrm/templates/lists/form.html:42 #: bookwyrm/templates/preferences/edit_user.html:50 #: bookwyrm/templates/settings/site.html:89 @@ -108,7 +102,7 @@ msgstr "" msgid "Save" msgstr "" -#: bookwyrm/templates/book.html:122 bookwyrm/templates/book.html:171 +#: bookwyrm/templates/book.html:118 bookwyrm/templates/book.html:167 #: bookwyrm/templates/edit_author.html:79 bookwyrm/templates/edit_book.html:121 #: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 #: bookwyrm/templates/snippets/goal_form.html:32 @@ -119,63 +113,63 @@ msgstr "" msgid "Cancel" msgstr "" -#: bookwyrm/templates/book.html:131 +#: bookwyrm/templates/book.html:127 #, python-format msgid "%(count)s editions" msgstr "" -#: bookwyrm/templates/book.html:139 +#: bookwyrm/templates/book.html:135 #, python-format msgid "This edition is on your %(shelf_name)s shelf." msgstr "" -#: bookwyrm/templates/book.html:145 +#: bookwyrm/templates/book.html:141 #, python-format msgid "" "A different edition of this book is on your %(shelf_name)s shelf." msgstr "" -#: bookwyrm/templates/book.html:154 +#: bookwyrm/templates/book.html:150 msgid "Your reading activity" msgstr "" -#: bookwyrm/templates/book.html:156 +#: bookwyrm/templates/book.html:152 msgid "Add read dates" msgstr "" -#: bookwyrm/templates/book.html:161 +#: bookwyrm/templates/book.html:157 msgid "You don't have any reading activity for this book." msgstr "" -#: bookwyrm/templates/book.html:168 +#: bookwyrm/templates/book.html:164 msgid "Create" msgstr "" -#: bookwyrm/templates/book.html:190 +#: bookwyrm/templates/book.html:186 msgid "Tags" msgstr "" -#: bookwyrm/templates/book.html:194 bookwyrm/templates/snippets/tag.html:18 +#: bookwyrm/templates/book.html:190 bookwyrm/templates/snippets/tag.html:18 msgid "Add tag" msgstr "" -#: bookwyrm/templates/book.html:211 +#: bookwyrm/templates/book.html:207 msgid "Subjects" msgstr "" -#: bookwyrm/templates/book.html:222 +#: bookwyrm/templates/book.html:218 msgid "Places" msgstr "" -#: bookwyrm/templates/book.html:233 bookwyrm/templates/layout.html:64 +#: bookwyrm/templates/book.html:229 bookwyrm/templates/layout.html:64 #: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9 #: bookwyrm/templates/search_results.html:90 #: bookwyrm/templates/user/user_layout.html:62 msgid "Lists" msgstr "" -#: bookwyrm/templates/book.html:262 +#: bookwyrm/templates/book.html:258 msgid "rated it" msgstr "" @@ -1667,12 +1661,8 @@ msgid "Books tagged \"%(tag.name)s\"" msgstr "" #: bookwyrm/templates/user/create_shelf_form.html:5 -msgid "Create New Shelf" -msgstr "" - #: bookwyrm/templates/user/create_shelf_form.html:22 -#: bookwyrm/templates/user/shelf.html:33 -msgid "Create shelf" +msgid "Create Shelf" msgstr "" #: bookwyrm/templates/user/edit_shelf_form.html:5 @@ -1711,11 +1701,7 @@ msgstr "" msgid "Lists: %(username)s" msgstr "" -#: bookwyrm/templates/user/lists.html:17 -msgid "Create new list" -msgstr "" - -#: bookwyrm/templates/user/lists.html:29 +#: bookwyrm/templates/user/lists.html:17 bookwyrm/templates/user/lists.html:29 msgid "Create list" msgstr "" @@ -1728,6 +1714,10 @@ msgstr "" msgid "%(username)s: Shelves" msgstr "" +#: bookwyrm/templates/user/shelf.html:33 +msgid "Create shelf" +msgstr "" + #: bookwyrm/templates/user/shelf.html:54 msgid "Edit shelf" msgstr "" diff --git a/locale/fr_FR/LC_MESSAGES/django.mo b/locale/fr_FR/LC_MESSAGES/django.mo index 9f8cca0a8c197b367ab948e30475b8a861aa1fc9..a8d8ff0d4ff95439cf2ae37ec5b802c5110f58c8 100644 GIT binary patch delta 6960 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 Jv%ck0aRAdQvEcv! delta 7006 zcmbQbknzew#`=3gEK?a67#Lg`85m?37#Li*7#KD(GBD(bfJ7M>45S$tY#10A45b+u zL>U+u@}wCU3>X*~TBI2m#2FYEwn{TFh%qoQoRwx^kY!+Ccp}Zf5W>K~z$C-KpvJ(! z5H17JS0}^3Aj!bMFhvHUZ=DPSg98IYJ;N~>1_o9J1_pLn1_nU}1_oYP1_m|;1_pUq z1_pKp1_m`*1_llW1_nJ@1_ovZ1_pCk1_n+B1_o;=?Fv=r57ieg%fP_Hz`zg(rL$!j z7=#%Z7%F5L7bFeozAGcc@_WneI3U|={6HRvDIAT~J$1|g7x z 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\n" "Language-Team: Mouse Reeve \n" @@ -79,29 +79,23 @@ msgstr "Voir sur OpenLibrary" #: bookwyrm/templates/book.html:100 #, python-format -msgid "" -"\n" -" (%(review_count)s review)\n" -" " -msgid_plural "" -"\n" -" (%(review_count)s reviews)\n" -" " +msgid "(%(review_count)s review)" +msgid_plural "(%(review_count)s reviews)" msgstr[0] "" msgstr[1] "" -#: bookwyrm/templates/book.html:110 +#: bookwyrm/templates/book.html:106 #, fuzzy #| msgid "Description:" msgid "Add Description" msgstr "Ajouter une description" -#: bookwyrm/templates/book.html:117 bookwyrm/templates/edit_book.html:39 +#: bookwyrm/templates/book.html:113 bookwyrm/templates/edit_book.html:39 #: bookwyrm/templates/lists/form.html:12 msgid "Description:" msgstr "Description :" -#: bookwyrm/templates/book.html:121 bookwyrm/templates/edit_author.html:78 +#: bookwyrm/templates/book.html:117 bookwyrm/templates/edit_author.html:78 #: bookwyrm/templates/edit_book.html:120 bookwyrm/templates/lists/form.html:42 #: bookwyrm/templates/preferences/edit_user.html:50 #: bookwyrm/templates/settings/site.html:89 @@ -112,7 +106,7 @@ msgstr "Description :" msgid "Save" msgstr "Enregistrer" -#: bookwyrm/templates/book.html:122 bookwyrm/templates/book.html:171 +#: bookwyrm/templates/book.html:118 bookwyrm/templates/book.html:167 #: bookwyrm/templates/edit_author.html:79 bookwyrm/templates/edit_book.html:121 #: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 #: bookwyrm/templates/snippets/goal_form.html:32 @@ -123,19 +117,19 @@ msgstr "Enregistrer" msgid "Cancel" msgstr "Annuler" -#: bookwyrm/templates/book.html:131 +#: bookwyrm/templates/book.html:127 #, fuzzy, python-format #| msgid "Editions of \"%(work_title)s\"" msgid "%(count)s editions" msgstr "%(title)s par " -#: bookwyrm/templates/book.html:139 +#: bookwyrm/templates/book.html:135 #, fuzzy, python-format #| msgid "favorited your %(preview_name)s" msgid "This edition is on your %(shelf_name)s shelf." msgstr "Messages directs avec %(username)s" -#: bookwyrm/templates/book.html:145 +#: bookwyrm/templates/book.html:141 #, fuzzy, python-format #| msgid "" #| "replied to your %(book_title)s
    à votre " "liste « %(list_name)s »" -#: bookwyrm/templates/book.html:154 +#: bookwyrm/templates/book.html:150 msgid "Your reading activity" msgstr "Votre activité de lecture" -#: bookwyrm/templates/book.html:156 +#: bookwyrm/templates/book.html:152 #, fuzzy #| msgid "Edit read dates" msgid "Add read dates" msgstr "Ajouter des dates de lecture" -#: bookwyrm/templates/book.html:161 +#: bookwyrm/templates/book.html:157 msgid "You don't have any reading activity for this book." msgstr "Vous n’avez aucune activité de lecture pour ce livre" -#: bookwyrm/templates/book.html:168 +#: bookwyrm/templates/book.html:164 msgid "Create" msgstr "Créer" -#: bookwyrm/templates/book.html:190 +#: bookwyrm/templates/book.html:186 msgid "Tags" msgstr "Tags" -#: bookwyrm/templates/book.html:194 bookwyrm/templates/snippets/tag.html:18 +#: bookwyrm/templates/book.html:190 bookwyrm/templates/snippets/tag.html:18 msgid "Add tag" msgstr "Ajouter un tag" -#: bookwyrm/templates/book.html:211 +#: bookwyrm/templates/book.html:207 msgid "Subjects" msgstr "Sujets" -#: bookwyrm/templates/book.html:222 +#: bookwyrm/templates/book.html:218 msgid "Places" msgstr "Lieux" -#: bookwyrm/templates/book.html:233 bookwyrm/templates/layout.html:64 +#: bookwyrm/templates/book.html:229 bookwyrm/templates/layout.html:64 #: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9 #: bookwyrm/templates/search_results.html:90 #: bookwyrm/templates/user/user_layout.html:62 msgid "Lists" msgstr "Listes" -#: bookwyrm/templates/book.html:262 +#: bookwyrm/templates/book.html:258 msgid "rated it" msgstr "l’a noté" @@ -1795,12 +1789,10 @@ msgid "Books tagged \"%(tag.name)s\"" msgstr "Livres tagués « %(tag.name)s »" #: bookwyrm/templates/user/create_shelf_form.html:5 -msgid "Create New Shelf" -msgstr "Créer une nouvelle étagère" - #: bookwyrm/templates/user/create_shelf_form.html:22 -#: bookwyrm/templates/user/shelf.html:33 -msgid "Create shelf" +#, fuzzy +#| msgid "Create shelf" +msgid "Create Shelf" msgstr "Créer l’étagère" #: bookwyrm/templates/user/edit_shelf_form.html:5 @@ -1844,13 +1836,7 @@ msgstr "Vos listes" msgid "Lists: %(username)s" msgstr "Listes : %(username)s" -#: bookwyrm/templates/user/lists.html:17 -#, fuzzy -#| msgid "Create list" -msgid "Create new list" -msgstr "Créer une nouvelle liste" - -#: bookwyrm/templates/user/lists.html:29 +#: bookwyrm/templates/user/lists.html:17 bookwyrm/templates/user/lists.html:29 msgid "Create list" msgstr "Créer une liste" @@ -1866,6 +1852,10 @@ msgstr "Vos étagères" msgid "%(username)s: Shelves" msgstr "%(username)s : Étagères" +#: bookwyrm/templates/user/shelf.html:33 +msgid "Create shelf" +msgstr "Créer l’étagère" + #: bookwyrm/templates/user/shelf.html:54 #, fuzzy #| msgid "Edit Shelf" @@ -1938,6 +1928,14 @@ msgstr[1] "%(username)s n’a pas d’abonné(e)s" msgid "%(counter)s following" msgstr "%(counter)s abonnements" +#~ msgid "Create New Shelf" +#~ msgstr "Créer une nouvelle étagère" + +#, fuzzy +#~| msgid "Create list" +#~ msgid "Create new list" +#~ msgstr "Créer une nouvelle liste" + #~ msgid "Added by" #~ msgstr "Ajouté par" diff --git a/locale/zh_CN/LC_MESSAGES/django.mo b/locale/zh_CN/LC_MESSAGES/django.mo index 1114628341af6f1ca8e4f07e6dadb2932b1b0b91..dbdd1daa82d0c6bbb300cab32443cddfb7fdd201 100644 GIT binary patch delta 7934 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 delta 7998 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\n" "Language-Team: Mouse Reeve \n" @@ -79,26 +79,20 @@ msgstr "在 OpenLibrary 查看" #: bookwyrm/templates/book.html:100 #, python-format -msgid "" -"\n" -" (%(review_count)s review)\n" -" " -msgid_plural "" -"\n" -" (%(review_count)s reviews)\n" -" " +msgid "(%(review_count)s review)" +msgid_plural "(%(review_count)s reviews)" msgstr[0] "" -#: bookwyrm/templates/book.html:110 +#: bookwyrm/templates/book.html:106 msgid "Add Description" msgstr "添加描述" -#: bookwyrm/templates/book.html:117 bookwyrm/templates/edit_book.html:39 +#: bookwyrm/templates/book.html:113 bookwyrm/templates/edit_book.html:39 #: bookwyrm/templates/lists/form.html:12 msgid "Description:" msgstr "描述:" -#: bookwyrm/templates/book.html:121 bookwyrm/templates/edit_author.html:78 +#: bookwyrm/templates/book.html:117 bookwyrm/templates/edit_author.html:78 #: bookwyrm/templates/edit_book.html:120 bookwyrm/templates/lists/form.html:42 #: bookwyrm/templates/preferences/edit_user.html:50 #: bookwyrm/templates/settings/site.html:89 @@ -109,7 +103,7 @@ msgstr "描述:" msgid "Save" msgstr "保存" -#: bookwyrm/templates/book.html:122 bookwyrm/templates/book.html:171 +#: bookwyrm/templates/book.html:118 bookwyrm/templates/book.html:167 #: bookwyrm/templates/edit_author.html:79 bookwyrm/templates/edit_book.html:121 #: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 #: bookwyrm/templates/snippets/goal_form.html:32 @@ -120,19 +114,19 @@ msgstr "保存" msgid "Cancel" msgstr "取消" -#: bookwyrm/templates/book.html:131 +#: bookwyrm/templates/book.html:127 #, fuzzy, python-format #| msgid "%(title)s by " msgid "%(count)s editions" msgstr "%(title)s 来自" -#: bookwyrm/templates/book.html:139 +#: bookwyrm/templates/book.html:135 #, fuzzy, python-format #| msgid "Direct Messages with %(username)s" msgid "This edition is on your %(shelf_name)s shelf." msgstr "与 %(username)s 私信" -#: bookwyrm/templates/book.html:145 +#: bookwyrm/templates/book.html:141 #, fuzzy, python-format #| msgid "" #| " added %(book_title)s to your list " @@ -144,46 +138,46 @@ msgstr "" " 添加了 %(book_title)s 到你的列表 " "\"%(list_name)s\"" -#: bookwyrm/templates/book.html:154 +#: bookwyrm/templates/book.html:150 msgid "Your reading activity" msgstr "你的阅读活动" -#: bookwyrm/templates/book.html:156 +#: bookwyrm/templates/book.html:152 msgid "Add read dates" msgstr "添加阅读日期" -#: bookwyrm/templates/book.html:161 +#: bookwyrm/templates/book.html:157 msgid "You don't have any reading activity for this book." msgstr "你还没有任何这本书的阅读活动。" -#: bookwyrm/templates/book.html:168 +#: bookwyrm/templates/book.html:164 msgid "Create" msgstr "创建" -#: bookwyrm/templates/book.html:190 +#: bookwyrm/templates/book.html:186 msgid "Tags" msgstr "标签" -#: bookwyrm/templates/book.html:194 bookwyrm/templates/snippets/tag.html:18 +#: bookwyrm/templates/book.html:190 bookwyrm/templates/snippets/tag.html:18 msgid "Add tag" msgstr "添加标签" -#: bookwyrm/templates/book.html:211 +#: bookwyrm/templates/book.html:207 msgid "Subjects" msgstr "主题" -#: bookwyrm/templates/book.html:222 +#: bookwyrm/templates/book.html:218 msgid "Places" msgstr "地点" -#: bookwyrm/templates/book.html:233 bookwyrm/templates/layout.html:64 +#: bookwyrm/templates/book.html:229 bookwyrm/templates/layout.html:64 #: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9 #: bookwyrm/templates/search_results.html:90 #: bookwyrm/templates/user/user_layout.html:62 msgid "Lists" msgstr "列表" -#: bookwyrm/templates/book.html:262 +#: bookwyrm/templates/book.html:258 msgid "rated it" msgstr "评价了" @@ -1715,12 +1709,10 @@ msgid "Books tagged \"%(tag.name)s\"" msgstr "标有 \"%(tag.name)s\" 标签的书" #: bookwyrm/templates/user/create_shelf_form.html:5 -msgid "Create New Shelf" -msgstr "新建书架" - #: bookwyrm/templates/user/create_shelf_form.html:22 -#: bookwyrm/templates/user/shelf.html:33 -msgid "Create shelf" +#, fuzzy +#| msgid "Create shelf" +msgid "Create Shelf" msgstr "创建书架" #: bookwyrm/templates/user/edit_shelf_form.html:5 @@ -1759,11 +1751,7 @@ msgstr "你的列表" msgid "Lists: %(username)s" msgstr "列表: %(username)s" -#: bookwyrm/templates/user/lists.html:17 -msgid "Create new list" -msgstr "新建列表" - -#: bookwyrm/templates/user/lists.html:29 +#: bookwyrm/templates/user/lists.html:17 bookwyrm/templates/user/lists.html:29 msgid "Create list" msgstr "创建列表" @@ -1776,6 +1764,10 @@ msgstr "你的书架" msgid "%(username)s: Shelves" msgstr "%(username)s: 书架" +#: bookwyrm/templates/user/shelf.html:33 +msgid "Create shelf" +msgstr "创建书架" + #: bookwyrm/templates/user/shelf.html:54 msgid "Edit shelf" msgstr "编辑书架" @@ -1844,5 +1836,11 @@ msgstr[0] "%(counter)s 个关注者" msgid "%(counter)s following" msgstr "关注着 %(counter)s 人" +#~ msgid "Create New Shelf" +#~ msgstr "新建书架" + +#~ msgid "Create new list" +#~ msgstr "新建列表" + #~ msgid "Added by" #~ msgstr "添加来自" From b09f806662e3b58f87292919378bf71560276b01 Mon Sep 17 00:00:00 2001 From: tofuwabohu Date: Tue, 2 Mar 2021 20:39:10 +0100 Subject: [PATCH 039/111] Copied file and started translations --- locale/de_DE/LC_MESSAGES/django.po | 1736 ++++++++++++++++++++++++++++ 1 file changed, 1736 insertions(+) create mode 100644 locale/de_DE/LC_MESSAGES/django.po diff --git a/locale/de_DE/LC_MESSAGES/django.po b/locale/de_DE/LC_MESSAGES/django.po new file mode 100644 index 000000000..89f2e2f70 --- /dev/null +++ b/locale/de_DE/LC_MESSAGES/django.po @@ -0,0 +1,1736 @@ +# German language text for the bookwyrm UI +# Copyright (C) 2021 Mouse Reeve +# This file is distributed under the same license as the BookWyrm package. +# Mouse Reeve , 2021 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: 0.0.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-03-02 09:32-0800\n" +"PO-Revision-Date: 2021-03-02 17:19-0800\n" +"Last-Translator: Mouse Reeve \n" +"Language-Team: English \n" +"Language: de_DE\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: bookwyrm/templates/author.html:16 bookwyrm/templates/author.html:17 +#: bookwyrm/templates/edit_author.html:5 +msgid "Edit Author" +msgstr "Autor*in editieren" + +#: bookwyrm/templates/author.html:32 +msgid "Wikipedia" +msgstr "" + +#: bookwyrm/templates/author.html:37 +#, python-format +msgid "Books by %(name)s" +msgstr "Bücher von %(name)s" + +#: bookwyrm/templates/book.html:29 bookwyrm/templates/book.html:30 +#: bookwyrm/templates/edit_book.html:5 +msgid "Edit Book" +msgstr "Buch editieren" + +#: bookwyrm/templates/book.html:45 +msgid "Add cover" +msgstr "Cover hinzufügen" + +#: bookwyrm/templates/book.html:51 bookwyrm/templates/lists/list.html:89 +msgid "Add" +msgstr "Hinzufügen" + +#: bookwyrm/templates/book.html:60 +msgid "ISBN:" +msgstr "" + +#: bookwyrm/templates/book.html:67 bookwyrm/templates/edit_book.html:107 +msgid "OCLC Number:" +msgstr "OCLC Nummer:" + +#: bookwyrm/templates/book.html:74 bookwyrm/templates/edit_book.html:111 +msgid "ASIN:" +msgstr "" + +#: bookwyrm/templates/book.html:86 +msgid "View on OpenLibrary" +msgstr "In OpenLibrary ansehen" + +#: bookwyrm/templates/book.html:98 +msgid "Add Description" +msgstr "Beschreibung hinzufügen" + +#: bookwyrm/templates/book.html:105 bookwyrm/templates/edit_book.html:39 +#: bookwyrm/templates/lists/form.html:12 +msgid "Description:" +msgstr "Beschreibung:" + +#: bookwyrm/templates/book.html:109 bookwyrm/templates/edit_author.html:78 +#: bookwyrm/templates/edit_book.html:120 bookwyrm/templates/lists/form.html:42 +#: bookwyrm/templates/preferences/edit_user.html:50 +#: bookwyrm/templates/settings/site.html:89 +#: bookwyrm/templates/snippets/progress_update.html:21 +#: bookwyrm/templates/snippets/readthrough.html:64 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:42 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:34 +msgid "Save" +msgstr "Speichern" + +#: bookwyrm/templates/book.html:110 bookwyrm/templates/book.html:159 +#: bookwyrm/templates/edit_author.html:79 bookwyrm/templates/edit_book.html:121 +#: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 +#: bookwyrm/templates/snippets/goal_form.html:32 +#: bookwyrm/templates/snippets/readthrough.html:65 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:43 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:35 +#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:28 +msgid "Cancel" +msgstr "Abbrechen" + +#: bookwyrm/templates/book.html:142 +msgid "Your reading activity" +msgstr "Deine Leseaktivität" + +#: bookwyrm/templates/book.html:144 +msgid "Add read dates" +msgstr "Lesedaten hinzufügen" + +#: bookwyrm/templates/book.html:149 +msgid "You don't have any reading activity for this book." +msgstr "Du hast keine Leseaktivität für dieses Buch." + +#: bookwyrm/templates/book.html:156 +msgid "Create" +msgstr "Erstellen" + +#: bookwyrm/templates/book.html:178 +msgid "Tags" +msgstr "" + +#: bookwyrm/templates/book.html:182 bookwyrm/templates/snippets/tag.html:18 +msgid "Add tag" +msgstr "Tag hinzufügen" + +#: bookwyrm/templates/book.html:199 +msgid "Subjects" +msgstr "Themen" + +#: bookwyrm/templates/book.html:210 +msgid "Places" +msgstr "Orte" + +#: bookwyrm/templates/book.html:221 bookwyrm/templates/layout.html:64 +#: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9 +#: bookwyrm/templates/search_results.html:90 +#: bookwyrm/templates/user/user_layout.html:62 +msgid "Lists" +msgstr "Listen" + +#: bookwyrm/templates/book.html:250 +msgid "rated it" +msgstr "bewertet" + +#: bookwyrm/templates/components/inline_form.html:8 +#: bookwyrm/templates/feed/feed_layout.html:51 +msgid "Close" +msgstr "Schließen" + +#: bookwyrm/templates/discover/about.html:7 +#, python-format +msgid "About %(site_name)s" +msgstr "Über %(site_name)s" + +#: bookwyrm/templates/discover/about.html:10 +#: bookwyrm/templates/discover/about.html:20 +msgid "Code of Conduct" +msgstr "" + +#: bookwyrm/templates/discover/about.html:13 +#: bookwyrm/templates/discover/about.html:29 +msgid "Privacy Policy" +msgstr "" + +#: bookwyrm/templates/discover/discover.html:6 +msgid "Recent Books" +msgstr "" + +#: bookwyrm/templates/discover/landing_layout.html:5 +msgid "Welcome" +msgstr "" + +#: bookwyrm/templates/discover/landing_layout.html:17 +msgid "Decentralized" +msgstr "" + +#: bookwyrm/templates/discover/landing_layout.html:23 +msgid "Friendly" +msgstr "" + +#: bookwyrm/templates/discover/landing_layout.html:29 +msgid "Anti-Corporate" +msgstr "" + +#: bookwyrm/templates/discover/landing_layout.html:44 +#, python-format +msgid "Join %(name)s" +msgstr "" + +#: bookwyrm/templates/discover/landing_layout.html:49 +#: bookwyrm/templates/login.html:48 +msgid "This instance is closed" +msgstr "" + +#: bookwyrm/templates/discover/landing_layout.html:55 +msgid "Your Account" +msgstr "" + +#: bookwyrm/templates/edit_author.html:13 bookwyrm/templates/edit_book.html:13 +msgid "Added:" +msgstr "" + +#: bookwyrm/templates/edit_author.html:14 bookwyrm/templates/edit_book.html:14 +msgid "Updated:" +msgstr "" + +#: bookwyrm/templates/edit_author.html:15 bookwyrm/templates/edit_book.html:15 +msgid "Last edited by:" +msgstr "" + +#: bookwyrm/templates/edit_author.html:31 bookwyrm/templates/edit_book.html:30 +msgid "Metadata" +msgstr "" + +#: bookwyrm/templates/edit_author.html:32 bookwyrm/templates/lists/form.html:8 +#: bookwyrm/templates/user/create_shelf_form.html:13 +#: bookwyrm/templates/user/edit_shelf_form.html:14 +msgid "Name:" +msgstr "" + +#: bookwyrm/templates/edit_author.html:37 +msgid "Bio:" +msgstr "" + +#: bookwyrm/templates/edit_author.html:42 +msgid "Wikipedia link:" +msgstr "" + +#: bookwyrm/templates/edit_author.html:47 +msgid "Birth date:" +msgstr "" + +#: bookwyrm/templates/edit_author.html:52 +msgid "Death date:" +msgstr "" + +#: bookwyrm/templates/edit_author.html:58 +msgid "Author Identifiers" +msgstr "" + +#: bookwyrm/templates/edit_author.html:59 bookwyrm/templates/edit_book.html:103 +msgid "Openlibrary key:" +msgstr "" + +#: bookwyrm/templates/edit_author.html:64 +msgid "Librarything key:" +msgstr "" + +#: bookwyrm/templates/edit_author.html:69 +msgid "Goodreads key:" +msgstr "" + +#: bookwyrm/templates/edit_book.html:31 +msgid "Title:" +msgstr "" + +#: bookwyrm/templates/edit_book.html:35 +msgid "Subtitle:" +msgstr "" + +#: bookwyrm/templates/edit_book.html:43 +msgid "Series:" +msgstr "" + +#: bookwyrm/templates/edit_book.html:47 +msgid "Series number:" +msgstr "" + +#: bookwyrm/templates/edit_book.html:51 +msgid "First published date:" +msgstr "" + +#: bookwyrm/templates/edit_book.html:55 +msgid "Published date:" +msgstr "" + +#: bookwyrm/templates/edit_book.html:68 +#: bookwyrm/templates/snippets/shelf.html:9 +msgid "Cover" +msgstr "" + +#: bookwyrm/templates/edit_book.html:78 +msgid "Physical Properties" +msgstr "" + +#: bookwyrm/templates/edit_book.html:79 +msgid "Format:" +msgstr "" + +#: bookwyrm/templates/edit_book.html:87 +msgid "Pages:" +msgstr "" + +#: bookwyrm/templates/edit_book.html:94 +msgid "Book Identifiers" +msgstr "" + +#: bookwyrm/templates/edit_book.html:95 +msgid "ISBN 13:" +msgstr "" + +#: bookwyrm/templates/edit_book.html:99 +msgid "ISBN 10:" +msgstr "" + +#: bookwyrm/templates/editions.html:5 +#, python-format +msgid "Editions of %(book_title)s" +msgstr "" + +#: bookwyrm/templates/editions.html:9 +#, python-format +msgid "Editions of \"%(work_title)s\"" +msgstr "" + +#: bookwyrm/templates/error.html:4 +msgid "Oops!" +msgstr "" + +#: bookwyrm/templates/error.html:8 +msgid "Server Error" +msgstr "" + +#: bookwyrm/templates/error.html:9 +msgid "Something went wrong! Sorry about that." +msgstr "" + +#: bookwyrm/templates/feed/direct_messages.html:8 +#, python-format +msgid "Direct Messages with %(username)s" +msgstr "" + +#: bookwyrm/templates/feed/direct_messages.html:10 +#: bookwyrm/templates/layout.html:79 +msgid "Direct Messages" +msgstr "" + +#: bookwyrm/templates/feed/direct_messages.html:13 +msgid "All messages" +msgstr "" + +#: bookwyrm/templates/feed/direct_messages.html:22 +msgid "You have no messages right now." +msgstr "" + +#: bookwyrm/templates/feed/feed.html:6 +#, python-format +msgid "%(tab_title)s Timeline" +msgstr "" + +#: bookwyrm/templates/feed/feed.html:10 +msgid "Home" +msgstr "" + +#: bookwyrm/templates/feed/feed.html:13 +msgid "Local" +msgstr "" + +#: bookwyrm/templates/feed/feed.html:16 +msgid "Federated" +msgstr "" + +#: bookwyrm/templates/feed/feed.html:24 +msgid "Announcements" +msgstr "" + +#: bookwyrm/templates/feed/feed.html:32 +msgid "" +"There aren't any activities right now! Try following a user to get started" +msgstr "" + +#: bookwyrm/templates/feed/feed_layout.html:5 +msgid "Updates" +msgstr "" + +#: bookwyrm/templates/feed/feed_layout.html:11 +msgid "Your books" +msgstr "" + +#: bookwyrm/templates/feed/feed_layout.html:13 +msgid "" +"There are no books here right now! Try searching for a book to get started" +msgstr "" + +#: bookwyrm/templates/feed/feed_layout.html:73 bookwyrm/templates/goal.html:26 +#: bookwyrm/templates/snippets/goal_card.html:6 +#, python-format +msgid "%(year)s Reading Goal" +msgstr "" + +#: bookwyrm/templates/feed/status.html:8 +msgid "Back" +msgstr "" + +#: bookwyrm/templates/goal.html:7 +#, python-format +msgid "%(year)s Reading Progress" +msgstr "" + +#: bookwyrm/templates/goal.html:11 +msgid "Edit Goal" +msgstr "" + +#: bookwyrm/templates/goal.html:30 +#: bookwyrm/templates/snippets/goal_card.html:13 +#, python-format +msgid "" +"Set a goal for how many books you'll finish reading in %(year)s, and track " +"your progress throughout the year." +msgstr "" + +#: bookwyrm/templates/goal.html:39 +#, python-format +msgid "%(name)s hasn't set a reading goal for %(year)s." +msgstr "" + +#: bookwyrm/templates/goal.html:51 +#, python-format +msgid "Your %(year)s Books" +msgstr "" + +#: bookwyrm/templates/goal.html:53 +#, python-format +msgid "%(username)s's %(year)s Books" +msgstr "" + +#: bookwyrm/templates/import.html:5 bookwyrm/templates/import.html:9 +#: bookwyrm/templates/layout.html:94 +msgid "Import Books" +msgstr "" + +#: bookwyrm/templates/import.html:14 +msgid "Data source" +msgstr "" + +#: bookwyrm/templates/import.html:32 +msgid "Include reviews" +msgstr "" + +#: bookwyrm/templates/import.html:37 +msgid "Privacy setting for imported reviews:" +msgstr "" + +#: bookwyrm/templates/import.html:41 +msgid "Import" +msgstr "" + +#: bookwyrm/templates/import.html:46 +msgid "Recent Imports" +msgstr "" + +#: bookwyrm/templates/import.html:48 +msgid "No recent imports" +msgstr "" + +#: bookwyrm/templates/import_status.html:6 +#: bookwyrm/templates/import_status.html:10 +msgid "Import Status" +msgstr "" + +#: bookwyrm/templates/import_status.html:13 +msgid "Import started:" +msgstr "" + +#: bookwyrm/templates/import_status.html:17 +msgid "Import completed:" +msgstr "" + +#: bookwyrm/templates/import_status.html:20 +msgid "TASK FAILED" +msgstr "" + +#: bookwyrm/templates/import_status.html:26 +msgid "Import still in progress." +msgstr "" + +#: bookwyrm/templates/import_status.html:28 +msgid "(Hit reload to update!)" +msgstr "" + +#: bookwyrm/templates/import_status.html:35 +msgid "Failed to load" +msgstr "" + +#: bookwyrm/templates/import_status.html:59 +msgid "Select all" +msgstr "" + +#: bookwyrm/templates/import_status.html:62 +msgid "Retry items" +msgstr "" + +#: bookwyrm/templates/import_status.html:84 +msgid "Successfully imported" +msgstr "" + +#: bookwyrm/templates/import_status.html:88 +#: bookwyrm/templates/lists/curate.html:14 +msgid "Book" +msgstr "" + +#: bookwyrm/templates/import_status.html:91 +#: bookwyrm/templates/snippets/create_status_form.html:10 +#: bookwyrm/templates/snippets/shelf.html:10 +msgid "Title" +msgstr "" + +#: bookwyrm/templates/import_status.html:94 +#: bookwyrm/templates/snippets/shelf.html:11 +msgid "Author" +msgstr "" + +#: bookwyrm/templates/import_status.html:117 +msgid "Imported" +msgstr "" + +#: bookwyrm/templates/invite.html:4 bookwyrm/templates/invite.html:12 +#: bookwyrm/templates/login.html:43 +msgid "Create an Account" +msgstr "" + +#: bookwyrm/templates/invite.html:21 +msgid "Permission Denied" +msgstr "" + +#: bookwyrm/templates/invite.html:22 +msgid "Sorry! This invite code is no longer valid." +msgstr "" + +#: bookwyrm/templates/layout.html:33 +msgid "Search for a book or user" +msgstr "" + +#: bookwyrm/templates/layout.html:37 bookwyrm/templates/layout.html:38 +#: bookwyrm/templates/lists/list.html:62 +msgid "Search" +msgstr "" + +#: bookwyrm/templates/layout.html:47 bookwyrm/templates/layout.html:48 +msgid "Main navigation menu" +msgstr "" + +#: bookwyrm/templates/layout.html:58 +msgid "Your shelves" +msgstr "" + +#: bookwyrm/templates/layout.html:61 +msgid "Feed" +msgstr "" + +#: bookwyrm/templates/layout.html:84 +#: bookwyrm/templates/preferences/preferences_layout.html:14 +msgid "Profile" +msgstr "" + +#: bookwyrm/templates/layout.html:89 +msgid "Settings" +msgstr "" + +#: bookwyrm/templates/layout.html:103 +#: bookwyrm/templates/settings/admin_layout.html:19 +#: bookwyrm/templates/settings/manage_invites.html:3 +msgid "Invites" +msgstr "" + +#: bookwyrm/templates/layout.html:110 +msgid "Site Configuration" +msgstr "" + +#: bookwyrm/templates/layout.html:117 +msgid "Log out" +msgstr "" + +#: bookwyrm/templates/layout.html:125 bookwyrm/templates/layout.html:126 +#: bookwyrm/templates/notifications.html:6 +#: bookwyrm/templates/notifications.html:10 +msgid "Notifications" +msgstr "" + +#: bookwyrm/templates/layout.html:143 bookwyrm/templates/layout.html:147 +#: bookwyrm/templates/login.html:17 +#: bookwyrm/templates/snippets/register_form.html:4 +msgid "Username:" +msgstr "" + +#: bookwyrm/templates/layout.html:152 bookwyrm/templates/login.html:10 +#: bookwyrm/templates/login.html:33 +msgid "Log in" +msgstr "" + +#: bookwyrm/templates/layout.html:183 +msgid "About this server" +msgstr "" + +#: bookwyrm/templates/layout.html:187 +msgid "Contact site admin" +msgstr "" + +#: bookwyrm/templates/layout.html:198 +msgid "" +"BookWyrm is open source software. You can contribute or report issues on GitHub." +msgstr "" + +#: bookwyrm/templates/lists/create_form.html:5 +#: bookwyrm/templates/lists/lists.html:17 +msgid "Create List" +msgstr "" + +#: bookwyrm/templates/lists/curate.html:6 +msgid "Pending Books" +msgstr "" + +#: bookwyrm/templates/lists/curate.html:7 +msgid "Go to list" +msgstr "" + +#: bookwyrm/templates/lists/curate.html:9 +msgid "You're all set!" +msgstr "" + +#: bookwyrm/templates/lists/curate.html:15 +msgid "Suggested by" +msgstr "" + +#: bookwyrm/templates/lists/curate.html:35 +msgid "Approve" +msgstr "" + +#: bookwyrm/templates/lists/curate.html:41 +msgid "Discard" +msgstr "" + +#: bookwyrm/templates/lists/edit_form.html:5 +#: bookwyrm/templates/lists/list_layout.html:17 +msgid "Edit List" +msgstr "" + +#: bookwyrm/templates/lists/form.html:18 +msgid "List curation:" +msgstr "" + +#: bookwyrm/templates/lists/form.html:21 +msgid "Closed" +msgstr "" + +#: bookwyrm/templates/lists/form.html:22 +msgid "Only you can add and remove books to this list" +msgstr "" + +#: bookwyrm/templates/lists/form.html:26 +msgid "Curated" +msgstr "" + +#: bookwyrm/templates/lists/form.html:27 +msgid "Anyone can suggest books, subject to your approval" +msgstr "" + +#: bookwyrm/templates/lists/form.html:31 +msgid "Open" +msgstr "" + +#: bookwyrm/templates/lists/form.html:32 +msgid "Anyone can add books to this list" +msgstr "" + +#: bookwyrm/templates/lists/list.html:17 +msgid "This list is currently empty" +msgstr "" + +#: bookwyrm/templates/lists/list.html:35 +msgid "Added by" +msgstr "" + +#: bookwyrm/templates/lists/list.html:41 +msgid "Remove" +msgstr "" + +#: bookwyrm/templates/lists/list.html:54 +msgid "Add Books" +msgstr "" + +#: bookwyrm/templates/lists/list.html:54 +msgid "Suggest Books" +msgstr "" + +#: bookwyrm/templates/lists/list.html:58 +msgid "Search for a book" +msgstr "" + +#: bookwyrm/templates/lists/list.html:63 +msgid "search" +msgstr "" + +#: bookwyrm/templates/lists/list.html:69 +msgid "Clear search" +msgstr "" + +#: bookwyrm/templates/lists/list.html:74 +#, python-format +msgid "No books found matching the query \"%(query)s\"" +msgstr "" + +#: bookwyrm/templates/lists/list.html:75 +msgid "No books found" +msgstr "" + +#: bookwyrm/templates/lists/list.html:89 +msgid "Suggest" +msgstr "" + +#: bookwyrm/templates/lists/list_items.html:19 +#: bookwyrm/templates/lists/list_layout.html:11 +msgid "Created and curated by" +msgstr "" + +#: bookwyrm/templates/lists/list_items.html:19 +#: bookwyrm/templates/lists/list_layout.html:11 +msgid "Created by" +msgstr "" + +#: bookwyrm/templates/lists/lists.html:14 +msgid "Your lists" +msgstr "" + +#: bookwyrm/templates/lists/lists.html:40 +msgid "Recent Lists" +msgstr "" + +#: bookwyrm/templates/login.html:4 +msgid "Login" +msgstr "" + +#: bookwyrm/templates/login.html:23 bookwyrm/templates/password_reset.html:17 +#: bookwyrm/templates/snippets/register_form.html:22 +msgid "Password:" +msgstr "" + +#: bookwyrm/templates/login.html:36 +msgid "Forgot your password?" +msgstr "" + +#: bookwyrm/templates/login.html:49 +msgid "Contact an administrator to get an invite" +msgstr "" + +#: bookwyrm/templates/login.html:59 +msgid "More about this site" +msgstr "" + +#: bookwyrm/templates/notfound.html:4 bookwyrm/templates/notfound.html:8 +msgid "Not Found" +msgstr "" + +#: bookwyrm/templates/notfound.html:9 +msgid "The page your requested doesn't seem to exist!" +msgstr "" + +#: bookwyrm/templates/notifications.html:14 +msgid "Delete notifications" +msgstr "" + +#: bookwyrm/templates/notifications.html:49 +#, python-format +msgid "" +"favorited your review of %(book_title)s" +msgstr "" + +#: bookwyrm/templates/notifications.html:51 +#, python-format +msgid "" +"favorited your comment on %(book_title)s" +msgstr "" + +#: bookwyrm/templates/notifications.html:53 +#, python-format +msgid "" +"favorited your quote from %(book_title)s" +msgstr "" + +#: bookwyrm/templates/notifications.html:55 +#, python-format +msgid "favorited your status" +msgstr "" + +#: bookwyrm/templates/notifications.html:60 +#, python-format +msgid "" +"mentioned you in a review of " +"%(book_title)s" +msgstr "" + +#: bookwyrm/templates/notifications.html:62 +#, python-format +msgid "" +"mentioned you in a comment on " +"%(book_title)s" +msgstr "" + +#: bookwyrm/templates/notifications.html:64 +#, python-format +msgid "" +"mentioned you in a quote from " +"%(book_title)s" +msgstr "" + +#: bookwyrm/templates/notifications.html:66 +#, python-format +msgid "mentioned you in a status" +msgstr "" + +#: bookwyrm/templates/notifications.html:71 +#, python-format +msgid "" +"replied to your review of %(book_title)s" +msgstr "" + +#: bookwyrm/templates/notifications.html:73 +#, python-format +msgid "" +"replied to your comment on %(book_title)s" +msgstr "" + +#: bookwyrm/templates/notifications.html:75 +#, python-format +msgid "" +"replied to your quote from %(book_title)s" +msgstr "" + +#: bookwyrm/templates/notifications.html:77 +#, python-format +msgid "" +"replied to your status" +msgstr "" + +#: bookwyrm/templates/notifications.html:81 +msgid "followed you" +msgstr "" + +#: bookwyrm/templates/notifications.html:84 +msgid "sent you a follow request" +msgstr "" + +#: bookwyrm/templates/notifications.html:90 +#, python-format +msgid "" +"boosted your review of %(book.title)s" +msgstr "" + +#: bookwyrm/templates/notifications.html:92 +#, python-format +msgid "" +"boosted your comment on%(book.title)s" +msgstr "" + +#: bookwyrm/templates/notifications.html:94 +#, python-format +msgid "" +"boosted your quote from %(book.title)s" +msgstr "" + +#: bookwyrm/templates/notifications.html:96 +#, python-format +msgid "boosted your status" +msgstr "" + +#: bookwyrm/templates/notifications.html:100 +#, python-format +msgid "" +" added %(book_title)s to your list " +"\"%(list_name)s\"" +msgstr "" + +#: bookwyrm/templates/notifications.html:102 +#, python-format +msgid "" +" suggested adding %(book_title)s to " +"your list \"%(list_name)s\"" +msgstr "" + +#: bookwyrm/templates/notifications.html:106 +#, python-format +msgid " your import completed." +msgstr "" + +#: bookwyrm/templates/notifications.html:138 +msgid "You're all caught up!" +msgstr "" + +#: bookwyrm/templates/password_reset.html:4 +#: bookwyrm/templates/password_reset.html:10 +#: bookwyrm/templates/password_reset_request.html:4 +#: bookwyrm/templates/password_reset_request.html:10 +msgid "Reset Password" +msgstr "" + +#: bookwyrm/templates/password_reset.html:23 +#: bookwyrm/templates/preferences/change_password.html:18 +msgid "Confirm password:" +msgstr "" + +#: bookwyrm/templates/password_reset.html:30 +msgid "Confirm" +msgstr "" + +#: bookwyrm/templates/password_reset_request.html:12 +msgid "A link to reset your password will be sent to your email address" +msgstr "" + +#: bookwyrm/templates/password_reset_request.html:16 +#: bookwyrm/templates/preferences/edit_user.html:38 +#: bookwyrm/templates/snippets/register_form.html:13 +msgid "Email address:" +msgstr "" + +#: bookwyrm/templates/password_reset_request.html:23 +msgid "Reset password" +msgstr "" + +#: bookwyrm/templates/preferences/blocks.html:4 +#: bookwyrm/templates/preferences/blocks.html:7 +#: bookwyrm/templates/preferences/preferences_layout.html:23 +msgid "Blocked Users" +msgstr "" + +#: bookwyrm/templates/preferences/blocks.html:12 +msgid "No users currently blocked." +msgstr "" + +#: bookwyrm/templates/preferences/change_password.html:4 +#: bookwyrm/templates/preferences/change_password.html:7 +#: bookwyrm/templates/preferences/change_password.html:21 +#: bookwyrm/templates/preferences/preferences_layout.html:17 +msgid "Change Password" +msgstr "" + +#: bookwyrm/templates/preferences/change_password.html:14 +msgid "New password:" +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:4 +#: bookwyrm/templates/preferences/edit_user.html:7 +msgid "Edit Profile" +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:17 +msgid "Avatar:" +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:24 +msgid "Display name:" +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:31 +msgid "Summary:" +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:46 +msgid "Manually approve followers:" +msgstr "" + +#: bookwyrm/templates/preferences/preferences_layout.html:11 +msgid "Account" +msgstr "" + +#: bookwyrm/templates/preferences/preferences_layout.html:20 +msgid "Relationships" +msgstr "" + +#: bookwyrm/templates/search_results.html:4 +msgid "Search Results" +msgstr "" + +#: bookwyrm/templates/search_results.html:9 +#, python-format +msgid "Search Results for \"%(query)s\"" +msgstr "" + +#: bookwyrm/templates/search_results.html:14 +msgid "Matching Books" +msgstr "" + +#: bookwyrm/templates/search_results.html:17 +#, python-format +msgid "No books found for \"%(query)s\"" +msgstr "" + +#: bookwyrm/templates/search_results.html:33 +msgid "Didn't find what you were looking for?" +msgstr "" + +#: bookwyrm/templates/search_results.html:35 +msgid "Show results from other catalogues" +msgstr "" + +#: bookwyrm/templates/search_results.html:57 +msgid "Import book" +msgstr "" + +#: bookwyrm/templates/search_results.html:67 +msgid "Hide results from other catalogues" +msgstr "" + +#: bookwyrm/templates/search_results.html:75 +msgid "Matching Users" +msgstr "" + +#: bookwyrm/templates/search_results.html:77 +#, python-format +msgid "No users found for \"%(query)s\"" +msgstr "" + +#: bookwyrm/templates/search_results.html:92 +#, python-format +msgid "No lists found for \"%(query)s\"" +msgstr "" + +#: bookwyrm/templates/settings/admin_layout.html:4 +msgid "Administration" +msgstr "" + +#: bookwyrm/templates/settings/admin_layout.html:15 +msgid "Manage Users" +msgstr "" + +#: bookwyrm/templates/settings/admin_layout.html:23 +#: bookwyrm/templates/settings/federation.html:4 +msgid "Federated Servers" +msgstr "" + +#: bookwyrm/templates/settings/admin_layout.html:28 +msgid "Instance Settings" +msgstr "" + +#: bookwyrm/templates/settings/admin_layout.html:32 +#: bookwyrm/templates/settings/site.html:4 +#: bookwyrm/templates/settings/site.html:6 +msgid "Site Settings" +msgstr "" + +#: bookwyrm/templates/settings/admin_layout.html:35 +#: bookwyrm/templates/settings/site.html:13 +msgid "Instance Info" +msgstr "" + +#: bookwyrm/templates/settings/admin_layout.html:36 +#: bookwyrm/templates/settings/site.html:39 +msgid "Images" +msgstr "" + +#: bookwyrm/templates/settings/admin_layout.html:37 +#: bookwyrm/templates/settings/site.html:59 +msgid "Footer Content" +msgstr "" + +#: bookwyrm/templates/settings/admin_layout.html:38 +#: bookwyrm/templates/settings/site.html:77 +msgid "Registration" +msgstr "" + +#: bookwyrm/templates/settings/federation.html:10 +msgid "Server name" +msgstr "" + +#: bookwyrm/templates/settings/federation.html:11 +msgid "Software" +msgstr "" + +#: bookwyrm/templates/settings/federation.html:12 +msgid "Status" +msgstr "" + +#: bookwyrm/templates/settings/manage_invites.html:7 +msgid "Generate New Invite" +msgstr "" + +#: bookwyrm/templates/settings/manage_invites.html:13 +msgid "Expiry:" +msgstr "" + +#: bookwyrm/templates/settings/manage_invites.html:19 +msgid "Use limit:" +msgstr "" + +#: bookwyrm/templates/settings/manage_invites.html:26 +msgid "Create Invite" +msgstr "" + +#: bookwyrm/templates/settings/manage_invites.html:33 +msgid "Link" +msgstr "" + +#: bookwyrm/templates/settings/manage_invites.html:34 +msgid "Expires" +msgstr "" + +#: bookwyrm/templates/settings/manage_invites.html:35 +msgid "Max uses" +msgstr "" + +#: bookwyrm/templates/settings/manage_invites.html:36 +msgid "Times used" +msgstr "" + +#: bookwyrm/templates/settings/manage_invites.html:39 +msgid "No active invites" +msgstr "" + +#: bookwyrm/templates/settings/site.html:15 +msgid "Instance Name:" +msgstr "" + +#: bookwyrm/templates/settings/site.html:19 +msgid "Tagline:" +msgstr "" + +#: bookwyrm/templates/settings/site.html:23 +msgid "Instance description:" +msgstr "" + +#: bookwyrm/templates/settings/site.html:27 +msgid "Code of conduct:" +msgstr "" + +#: bookwyrm/templates/settings/site.html:31 +msgid "Privacy Policy:" +msgstr "" + +#: bookwyrm/templates/settings/site.html:42 +msgid "Logo:" +msgstr "" + +#: bookwyrm/templates/settings/site.html:46 +msgid "Logo small:" +msgstr "" + +#: bookwyrm/templates/settings/site.html:50 +msgid "Favicon:" +msgstr "" + +#: bookwyrm/templates/settings/site.html:61 +msgid "Support link:" +msgstr "" + +#: bookwyrm/templates/settings/site.html:65 +msgid "Support title:" +msgstr "" + +#: bookwyrm/templates/settings/site.html:69 +msgid "Admin email:" +msgstr "" + +#: bookwyrm/templates/settings/site.html:79 +msgid "Allow registration:" +msgstr "" + +#: bookwyrm/templates/settings/site.html:83 +msgid "Registration closed text:" +msgstr "" + +#: bookwyrm/templates/snippets/block_button.html:5 +msgid "Block" +msgstr "" + +#: bookwyrm/templates/snippets/block_button.html:10 +msgid "Un-block" +msgstr "" + +#: bookwyrm/templates/snippets/book_titleby.html:3 +#, python-format +msgid "%(title)s by " +msgstr "" + +#: bookwyrm/templates/snippets/boost_button.html:8 +#: bookwyrm/templates/snippets/boost_button.html:9 +#: bookwyrm/templates/snippets/status/status_body.html:41 +#: bookwyrm/templates/snippets/status/status_body.html:42 +msgid "Boost status" +msgstr "" + +#: bookwyrm/templates/snippets/boost_button.html:16 +#: bookwyrm/templates/snippets/boost_button.html:17 +msgid "Un-boost status" +msgstr "" + +#: bookwyrm/templates/snippets/content_warning_field.html:3 +msgid "Spoiler alert:" +msgstr "" + +#: bookwyrm/templates/snippets/content_warning_field.html:4 +msgid "Spoilers ahead!" +msgstr "" + +#: bookwyrm/templates/snippets/create_status.html:9 +msgid "Review" +msgstr "" + +#: bookwyrm/templates/snippets/create_status.html:12 +#: bookwyrm/templates/snippets/create_status_form.html:44 +msgid "Comment" +msgstr "" + +#: bookwyrm/templates/snippets/create_status.html:15 +msgid "Quote" +msgstr "" + +#: bookwyrm/templates/snippets/create_status_form.html:21 +#: bookwyrm/templates/snippets/shelf.html:17 +msgid "Rating" +msgstr "" + +#: bookwyrm/templates/snippets/create_status_form.html:23 +#: bookwyrm/templates/snippets/rate_action.html:14 +#: bookwyrm/templates/snippets/stars.html:3 +msgid "No rating" +msgstr "" + +#: bookwyrm/templates/snippets/create_status_form.html:54 +msgid "Include spoiler alert" +msgstr "" + +#: bookwyrm/templates/snippets/create_status_form.html:60 +#: bookwyrm/templates/snippets/privacy-icons.html:15 +#: bookwyrm/templates/snippets/privacy-icons.html:16 +#: bookwyrm/templates/snippets/privacy_select.html:19 +msgid "Private" +msgstr "" + +#: bookwyrm/templates/snippets/create_status_form.html:67 +msgid "Post" +msgstr "" + +#: bookwyrm/templates/snippets/delete_readthrough_modal.html:4 +msgid "Delete these read dates?" +msgstr "" + +#: bookwyrm/templates/snippets/delete_readthrough_modal.html:7 +#, python-format +msgid "" +"You are deleting this readthrough and its %(count)s associated progress " +"updates." +msgstr "" + +#: bookwyrm/templates/snippets/delete_readthrough_modal.html:15 +#: bookwyrm/templates/snippets/follow_request_buttons.html:13 +msgid "Delete" +msgstr "" + +#: bookwyrm/templates/snippets/fav_button.html:7 +#: bookwyrm/templates/snippets/fav_button.html:8 +#: bookwyrm/templates/snippets/status/status_body.html:45 +#: bookwyrm/templates/snippets/status/status_body.html:46 +msgid "Like status" +msgstr "" + +#: bookwyrm/templates/snippets/fav_button.html:15 +#: bookwyrm/templates/snippets/fav_button.html:16 +msgid "Un-like status" +msgstr "" + +#: bookwyrm/templates/snippets/follow_button.html:6 +msgid "Follow request already sent." +msgstr "" + +#: bookwyrm/templates/snippets/follow_button.html:19 +msgid "Send follow request" +msgstr "" + +#: bookwyrm/templates/snippets/follow_button.html:21 +msgid "Follow" +msgstr "" + +#: bookwyrm/templates/snippets/follow_button.html:27 +msgid "Unfollow" +msgstr "" + +#: bookwyrm/templates/snippets/follow_request_buttons.html:8 +msgid "Accept" +msgstr "" + +#: bookwyrm/templates/snippets/generated_status/goal.html:1 +#, python-format +msgid "set a goal to read %(counter)s book in %(year)s" +msgid_plural "set a goal to read %(counter)s books in %(year)s" +msgstr[0] "" +msgstr[1] "" + +#: bookwyrm/templates/snippets/goal_card.html:21 +msgid "Dismiss message" +msgstr "" + +#: bookwyrm/templates/snippets/goal_card.html:22 +#, python-format +msgid "" +"You can set or change your reading goal any time from your profile page" +msgstr "" + +#: bookwyrm/templates/snippets/goal_form.html:9 +msgid "Reading goal:" +msgstr "" + +#: bookwyrm/templates/snippets/goal_form.html:14 +msgid "books" +msgstr "" + +#: bookwyrm/templates/snippets/goal_form.html:19 +msgid "Goal privacy:" +msgstr "" + +#: bookwyrm/templates/snippets/goal_form.html:26 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:37 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:29 +#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:20 +msgid "Post to feed" +msgstr "" + +#: bookwyrm/templates/snippets/goal_form.html:30 +msgid "Set goal" +msgstr "" + +#: bookwyrm/templates/snippets/goal_progress.html:5 +msgid "Success!" +msgstr "" + +#: bookwyrm/templates/snippets/goal_progress.html:7 +#, python-format +msgid "%(percent)s%% complete!" +msgstr "" + +#: bookwyrm/templates/snippets/goal_progress.html:10 +#, python-format +msgid "" +"You've read %(read_count)s of %(goal_count)s books." +msgstr "" + +#: bookwyrm/templates/snippets/goal_progress.html:12 +#, python-format +msgid "" +"%(username)s has read %(read_count)s of %(goal_count)s " +"books." +msgstr "" + +#: bookwyrm/templates/snippets/pagination.html:7 +msgid "Previous" +msgstr "" + +#: bookwyrm/templates/snippets/pagination.html:15 +msgid "Next" +msgstr "" + +#: bookwyrm/templates/snippets/privacy-icons.html:3 +#: bookwyrm/templates/snippets/privacy-icons.html:4 +#: bookwyrm/templates/snippets/privacy_select.html:10 +msgid "Public" +msgstr "" + +#: bookwyrm/templates/snippets/privacy-icons.html:7 +#: bookwyrm/templates/snippets/privacy-icons.html:8 +#: bookwyrm/templates/snippets/privacy_select.html:13 +msgid "Unlisted" +msgstr "" + +#: bookwyrm/templates/snippets/privacy-icons.html:12 +msgid "Followers-only" +msgstr "" + +#: bookwyrm/templates/snippets/privacy_select.html:6 +msgid "Post privacy" +msgstr "" + +#: bookwyrm/templates/snippets/privacy_select.html:16 +#: bookwyrm/templates/user/followers.html:13 +msgid "Followers" +msgstr "" + +#: bookwyrm/templates/snippets/progress_update.html:6 +msgid "Progress:" +msgstr "" + +#: bookwyrm/templates/snippets/progress_update.html:16 +#: bookwyrm/templates/snippets/readthrough_form.html:22 +msgid "pages" +msgstr "" + +#: bookwyrm/templates/snippets/progress_update.html:17 +#: bookwyrm/templates/snippets/readthrough_form.html:23 +msgid "percent" +msgstr "" + +#: bookwyrm/templates/snippets/progress_update.html:25 +#, python-format +msgid "of %(book.pages)s pages" +msgstr "" + +#: bookwyrm/templates/snippets/rate_action.html:4 +msgid "Leave a rating" +msgstr "" + +#: bookwyrm/templates/snippets/rate_action.html:29 +msgid "Rate" +msgstr "" + +#: bookwyrm/templates/snippets/readthrough.html:7 +msgid "Progress Updates:" +msgstr "" + +#: bookwyrm/templates/snippets/readthrough.html:11 +msgid "finished" +msgstr "" + +#: bookwyrm/templates/snippets/readthrough.html:14 +msgid "Show all updates" +msgstr "" + +#: bookwyrm/templates/snippets/readthrough.html:30 +msgid "Delete this progress update" +msgstr "" + +#: bookwyrm/templates/snippets/readthrough.html:40 +msgid "started" +msgstr "" + +#: bookwyrm/templates/snippets/readthrough.html:46 +#: bookwyrm/templates/snippets/readthrough.html:60 +msgid "Edit read dates" +msgstr "" + +#: bookwyrm/templates/snippets/readthrough.html:50 +msgid "Delete these read dates" +msgstr "" + +#: bookwyrm/templates/snippets/readthrough_form.html:7 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:19 +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:17 +msgid "Started reading" +msgstr "" + +#: bookwyrm/templates/snippets/readthrough_form.html:14 +msgid "Progress" +msgstr "" + +#: bookwyrm/templates/snippets/readthrough_form.html:30 +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:25 +msgid "Finished reading" +msgstr "" + +#: bookwyrm/templates/snippets/register_form.html:32 +msgid "Sign Up" +msgstr "" + +#: bookwyrm/templates/snippets/rss_title.html:5 +#: bookwyrm/templates/snippets/status/status_header.html:9 +msgid "rated" +msgstr "" + +#: bookwyrm/templates/snippets/rss_title.html:7 +#: bookwyrm/templates/snippets/status/status_header.html:11 +msgid "reviewed" +msgstr "" + +#: bookwyrm/templates/snippets/rss_title.html:9 +#: bookwyrm/templates/snippets/status/status_header.html:13 +msgid "commented on" +msgstr "" + +#: bookwyrm/templates/snippets/rss_title.html:11 +#: bookwyrm/templates/snippets/status/status_header.html:15 +msgid "quoted" +msgstr "" + +#: bookwyrm/templates/snippets/search_result_text.html:3 +#, python-format +msgid "by %(author)s" +msgstr "" + +#: bookwyrm/templates/snippets/shelf.html:12 +msgid "Published" +msgstr "" + +#: bookwyrm/templates/snippets/shelf.html:13 +msgid "Shelved" +msgstr "" + +#: bookwyrm/templates/snippets/shelf.html:14 +msgid "Started" +msgstr "" + +#: bookwyrm/templates/snippets/shelf.html:15 +msgid "Finished" +msgstr "" + +#: bookwyrm/templates/snippets/shelf.html:16 +msgid "External links" +msgstr "" + +#: bookwyrm/templates/snippets/shelf.html:44 +msgid "OpenLibrary" +msgstr "" + +#: bookwyrm/templates/snippets/shelf.html:61 +msgid "This shelf is empty." +msgstr "" + +#: bookwyrm/templates/snippets/shelf.html:67 +msgid "Delete shelf" +msgstr "" + +#: bookwyrm/templates/snippets/shelf_selector.html:4 +msgid "Change shelf" +msgstr "" + +#: bookwyrm/templates/snippets/shelf_selector.html:27 +msgid "Unshelve" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:5 +#, python-format +msgid "Finish \"%(book_title)s\"" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown.html:5 +msgid "More shelves" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:8 +msgid "Start reading" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:11 +msgid "Read" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13 +msgid "Finish reading" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:16 +#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:26 +msgid "Want to read" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:5 +#, python-format +msgid "Start \"%(book_title)s\"" +msgstr "" + +#: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:5 +#, python-format +msgid "Want to Read \"%(book_title)s\"" +msgstr "" + +#: bookwyrm/templates/snippets/status/status.html:7 +msgid "boosted" +msgstr "" + +#: bookwyrm/templates/snippets/status/status_body.html:24 +#: bookwyrm/templates/snippets/status/status_body.html:37 +#: bookwyrm/templates/snippets/status/status_body.html:38 +msgid "Reply" +msgstr "" + +#: bookwyrm/templates/snippets/status/status_content.html:16 +#: bookwyrm/templates/snippets/trimmed_text.html:12 +msgid "Show more" +msgstr "" + +#: bookwyrm/templates/snippets/status/status_content.html:23 +#: bookwyrm/templates/snippets/trimmed_text.html:18 +msgid "Show less" +msgstr "" + +#: bookwyrm/templates/snippets/status/status_content.html:44 +msgid "Open image in new window" +msgstr "" + +#: bookwyrm/templates/snippets/status/status_options.html:7 +#: bookwyrm/templates/snippets/user_options.html:7 +msgid "More options" +msgstr "" + +#: bookwyrm/templates/snippets/status/status_options.html:17 +msgid "Delete post" +msgstr "" + +#: bookwyrm/templates/snippets/status/status_options.html:23 +#: bookwyrm/templates/snippets/user_options.html:13 +msgid "Send direct message" +msgstr "" + +#: bookwyrm/templates/snippets/switch_edition_button.html:5 +msgid "Switch to this edition" +msgstr "" + +#: bookwyrm/templates/snippets/tag.html:14 +msgid "Remove tag" +msgstr "" + +#: bookwyrm/templates/tag.html:9 +#, python-format +msgid "Books tagged \"%(tag.name)s\"" +msgstr "" + +#: bookwyrm/templates/user/create_shelf_form.html:5 +msgid "Create New Shelf" +msgstr "" + +#: bookwyrm/templates/user/create_shelf_form.html:22 +#: bookwyrm/templates/user/shelf.html:33 +msgid "Create shelf" +msgstr "" + +#: bookwyrm/templates/user/edit_shelf_form.html:5 +msgid "Edit Shelf" +msgstr "" + +#: bookwyrm/templates/user/edit_shelf_form.html:26 +msgid "Update shelf" +msgstr "" + +#: bookwyrm/templates/user/followers.html:7 +#: bookwyrm/templates/user/following.html:7 bookwyrm/templates/user/user.html:9 +msgid "User Profile" +msgstr "" + +#: bookwyrm/templates/user/followers.html:26 +#, python-format +msgid "%(username)s has no followers" +msgstr "" + +#: bookwyrm/templates/user/following.html:13 +msgid "Following" +msgstr "" + +#: bookwyrm/templates/user/following.html:26 +#, python-format +msgid "%(username)s isn't following any users" +msgstr "" + +#: bookwyrm/templates/user/lists.html:9 +msgid "Your Lists" +msgstr "" + +#: bookwyrm/templates/user/lists.html:11 +#, python-format +msgid "Lists: %(username)s" +msgstr "" + +#: bookwyrm/templates/user/lists.html:17 +msgid "Create new list" +msgstr "" + +#: bookwyrm/templates/user/lists.html:29 +msgid "Create list" +msgstr "" + +#: bookwyrm/templates/user/shelf.html:9 +msgid "Your Shelves" +msgstr "" + +#: bookwyrm/templates/user/shelf.html:11 +#, python-format +msgid "%(username)s: Shelves" +msgstr "" + +#: bookwyrm/templates/user/shelf.html:54 +msgid "Edit shelf" +msgstr "" + +#: bookwyrm/templates/user/user.html:15 +msgid "Edit profile" +msgstr "" + +#: bookwyrm/templates/user/user.html:26 +#: bookwyrm/templates/user/user_layout.html:68 +msgid "Shelves" +msgstr "" + +#: bookwyrm/templates/user/user.html:31 +#, python-format +msgid "See all %(size)s" +msgstr "" + +#: bookwyrm/templates/user/user.html:44 +#, python-format +msgid "See all %(shelf_count)s shelves" +msgstr "" + +#: bookwyrm/templates/user/user.html:56 +#, python-format +msgid "Set a reading goal for %(year)s" +msgstr "" + +#: bookwyrm/templates/user/user.html:62 +msgid "User Activity" +msgstr "" + +#: bookwyrm/templates/user/user.html:65 +msgid "RSS feed" +msgstr "" + +#: bookwyrm/templates/user/user.html:76 +msgid "No activities yet!" +msgstr "" + +#: bookwyrm/templates/user/user_layout.html:32 +msgid "Follow Requests" +msgstr "" + +#: bookwyrm/templates/user/user_layout.html:50 +msgid "Activity" +msgstr "" + +#: bookwyrm/templates/user/user_layout.html:56 +msgid "Reading Goal" +msgstr "" + +#: bookwyrm/templates/user/user_preview.html:13 +#, python-format +msgid "Joined %(date)s" +msgstr "" + +#: bookwyrm/templates/user/user_preview.html:15 +#, python-format +msgid "%(counter)s follower" +msgid_plural "%(counter)s followers" +msgstr[0] "" +msgstr[1] "" + +#: bookwyrm/templates/user/user_preview.html:16 +#, python-format +msgid "%(counter)s following" +msgstr "" From 821862a8919e11c9e9e410cce4997367397f3882 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Mar 2021 11:51:49 -0800 Subject: [PATCH 040/111] Updates bw-dev makemessages default flags --- bw-dev | 2 +- locale/en_US/LC_MESSAGES/django.po | 156 ++++++++-------- locale/fr_FR/LC_MESSAGES/django.po | 281 ++++++++++++----------------- locale/zh_CN/LC_MESSAGES/django.po | 238 +++++++++++------------- 4 files changed, 310 insertions(+), 367 deletions(-) diff --git a/bw-dev b/bw-dev index 7a003d018..b411751d7 100755 --- a/bw-dev +++ b/bw-dev @@ -91,7 +91,7 @@ case "$CMD" in execweb python manage.py collectstatic --no-input ;; makemessages) - execweb django-admin makemessages --extension html --ignore=venv3 $@ + execweb django-admin makemessages --no-wrap --ignore=venv3 $@ ;; compilemessages) execweb django-admin compilemessages --ignore venv3 $@ diff --git a/locale/en_US/LC_MESSAGES/django.po b/locale/en_US/LC_MESSAGES/django.po index 8aae6c92c..25d38437a 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-03-02 18:44+0000\n" +"POT-Creation-Date: 2021-03-02 19:51+0000\n" "PO-Revision-Date: 2021-02-28 17:19-0800\n" "Last-Translator: Mouse Reeve \n" "Language-Team: English \n" @@ -18,6 +18,61 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: bookwyrm/forms.py:185 +msgid "One Day" +msgstr "" + +#: bookwyrm/forms.py:186 +msgid "One Week" +msgstr "" + +#: bookwyrm/forms.py:187 +msgid "One Month" +msgstr "" + +#: bookwyrm/forms.py:188 +msgid "Does Not Expire" +msgstr "" + +#: bookwyrm/forms.py:190 +#, python-format +msgid "%(count)d uses" +msgstr "" + +#: bookwyrm/forms.py:192 +msgid "Unlimited" +msgstr "" + +#: bookwyrm/models/fields.py:24 +#, python-format +msgid "%(value)s is not a valid remote_id" +msgstr "" + +#: bookwyrm/models/fields.py:33 bookwyrm/models/fields.py:42 +#, python-format +msgid "%(value)s is not a valid username" +msgstr "" + +#: bookwyrm/models/fields.py:164 +msgid "username" +msgstr "" + +#: bookwyrm/models/fields.py:169 +msgid "A user with that username already exists." +msgstr "" + +#: bookwyrm/settings.py:142 +msgid "English" +msgstr "" + +#: bookwyrm/settings.py:143 +msgid "French" +msgstr "" + +#: bookwyrm/settings.py:144 +msgid "Simplified Chinese" +msgstr "" + #: bookwyrm/templates/author.html:16 bookwyrm/templates/author.html:17 #: bookwyrm/templates/edit_author.html:5 msgid "Edit Author" @@ -125,9 +180,7 @@ msgstr "" #: bookwyrm/templates/book.html:141 #, python-format -msgid "" -"A different edition of this book is on your %(shelf_name)s shelf." +msgid "A different edition of this book is on your %(shelf_name)s shelf." msgstr "" #: bookwyrm/templates/book.html:150 @@ -379,15 +432,15 @@ msgstr "" msgid "%(tab_title)s Timeline" msgstr "" -#: bookwyrm/templates/feed/feed.html:10 +#: bookwyrm/templates/feed/feed.html:10 bookwyrm/views/feed.py:33 msgid "Home" msgstr "" -#: bookwyrm/templates/feed/feed.html:13 +#: bookwyrm/templates/feed/feed.html:13 bookwyrm/views/feed.py:37 msgid "Local" msgstr "" -#: bookwyrm/templates/feed/feed.html:16 +#: bookwyrm/templates/feed/feed.html:16 bookwyrm/views/feed.py:41 msgid "Federated" msgstr "" @@ -396,8 +449,7 @@ msgid "Announcements" msgstr "" #: bookwyrm/templates/feed/feed.html:32 -msgid "" -"There aren't any activities right now! Try following a user to get started" +msgid "There aren't any activities right now! Try following a user to get started" msgstr "" #: bookwyrm/templates/feed/feed_layout.html:5 @@ -409,8 +461,7 @@ msgid "Your books" msgstr "" #: bookwyrm/templates/feed/feed_layout.html:13 -msgid "" -"There are no books here right now! Try searching for a book to get started" +msgid "There are no books here right now! Try searching for a book to get started" msgstr "" #: bookwyrm/templates/feed/feed_layout.html:23 @@ -451,9 +502,7 @@ msgstr "" #: bookwyrm/templates/goal.html:30 #: bookwyrm/templates/snippets/goal_card.html:13 #, python-format -msgid "" -"Set a goal for how many books you'll finish reading in %(year)s, and track " -"your progress throughout the year." +msgid "Set a goal for how many books you'll finish reading in %(year)s, and track your progress throughout the year." msgstr "" #: bookwyrm/templates/goal.html:39 @@ -644,9 +693,7 @@ msgid "Contact site admin" msgstr "" #: bookwyrm/templates/layout.html:198 -msgid "" -"BookWyrm is open source software. You can contribute or report issues on GitHub." +msgid "BookWyrm is open source software. You can contribute or report issues on GitHub." msgstr "" #: bookwyrm/templates/lists/create_form.html:5 @@ -815,23 +862,17 @@ msgstr "" #: bookwyrm/templates/notifications.html:49 #, python-format -msgid "" -"favorited your review of %(book_title)s" +msgid "favorited your review of %(book_title)s" msgstr "" #: bookwyrm/templates/notifications.html:51 #, python-format -msgid "" -"favorited your comment on %(book_title)s" +msgid "favorited your comment on %(book_title)s" msgstr "" #: bookwyrm/templates/notifications.html:53 #, python-format -msgid "" -"favorited your quote from %(book_title)s" +msgid "favorited your quote from %(book_title)s" msgstr "" #: bookwyrm/templates/notifications.html:55 @@ -841,23 +882,17 @@ msgstr "" #: bookwyrm/templates/notifications.html:60 #, python-format -msgid "" -"mentioned you in a review of " -"%(book_title)s" +msgid "mentioned you in a review of %(book_title)s" msgstr "" #: bookwyrm/templates/notifications.html:62 #, python-format -msgid "" -"mentioned you in a comment on " -"%(book_title)s" +msgid "mentioned you in a comment on %(book_title)s" msgstr "" #: bookwyrm/templates/notifications.html:64 #, python-format -msgid "" -"mentioned you in a quote from " -"%(book_title)s" +msgid "mentioned you in a quote from %(book_title)s" msgstr "" #: bookwyrm/templates/notifications.html:66 @@ -867,30 +902,22 @@ msgstr "" #: bookwyrm/templates/notifications.html:71 #, python-format -msgid "" -"replied to your review of %(book_title)s" +msgid "replied to your review of %(book_title)s" msgstr "" #: bookwyrm/templates/notifications.html:73 #, python-format -msgid "" -"replied to your comment on %(book_title)s" +msgid "replied to your comment on %(book_title)s" msgstr "" #: bookwyrm/templates/notifications.html:75 #, python-format -msgid "" -"replied to your quote from %(book_title)s" +msgid "replied to your quote from %(book_title)s" msgstr "" #: bookwyrm/templates/notifications.html:77 #, python-format -msgid "" -"replied to your status" +msgid "replied to your status" msgstr "" #: bookwyrm/templates/notifications.html:81 @@ -903,23 +930,17 @@ msgstr "" #: bookwyrm/templates/notifications.html:90 #, python-format -msgid "" -"boosted your review of %(book.title)s" +msgid "boosted your review of %(book.title)s" msgstr "" #: bookwyrm/templates/notifications.html:92 #, python-format -msgid "" -"boosted your comment on%(book.title)s" +msgid "boosted your comment on%(book.title)s" msgstr "" #: bookwyrm/templates/notifications.html:94 #, python-format -msgid "" -"boosted your quote from %(book.title)s" +msgid "boosted your quote from %(book.title)s" msgstr "" #: bookwyrm/templates/notifications.html:96 @@ -929,16 +950,12 @@ msgstr "" #: bookwyrm/templates/notifications.html:100 #, python-format -msgid "" -" added %(book_title)s to your list " -"\"%(list_name)s\"" +msgid " added %(book_title)s to your list \"%(list_name)s\"" msgstr "" #: bookwyrm/templates/notifications.html:102 #, python-format -msgid "" -" suggested adding %(book_title)s to " -"your list \"%(list_name)s\"" +msgid " suggested adding %(book_title)s to your list \"%(list_name)s\"" msgstr "" #: bookwyrm/templates/notifications.html:106 @@ -1299,9 +1316,7 @@ msgstr "" #: bookwyrm/templates/snippets/delete_readthrough_modal.html:7 #, python-format -msgid "" -"You are deleting this readthrough and its %(count)s associated progress " -"updates." +msgid "You are deleting this readthrough and its %(count)s associated progress updates." msgstr "" #: bookwyrm/templates/snippets/delete_readthrough_modal.html:15 @@ -1354,9 +1369,7 @@ msgstr "" #: bookwyrm/templates/snippets/goal_card.html:22 #, python-format -msgid "" -"You can set or change your reading goal any time from your profile page" +msgid "You can set or change your reading goal any time from your profile page" msgstr "" #: bookwyrm/templates/snippets/goal_form.html:9 @@ -1393,15 +1406,12 @@ msgstr "" #: bookwyrm/templates/snippets/goal_progress.html:10 #, python-format -msgid "" -"You've read %(read_count)s of %(goal_count)s books." +msgid "You've read %(read_count)s of %(goal_count)s books." msgstr "" #: bookwyrm/templates/snippets/goal_progress.html:12 #, python-format -msgid "" -"%(username)s has read %(read_count)s of %(goal_count)s " -"books." +msgid "%(username)s has read %(read_count)s of %(goal_count)s books." msgstr "" #: bookwyrm/templates/snippets/pagination.html:7 diff --git a/locale/fr_FR/LC_MESSAGES/django.po b/locale/fr_FR/LC_MESSAGES/django.po index 76b706152..263de6d13 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-03-02 18:44+0000\n" +"POT-Creation-Date: 2021-03-02 19:51+0000\n" "PO-Revision-Date: 2021-03-02 12:37+0100\n" "Last-Translator: Fabien Basmaison \n" "Language-Team: Mouse Reeve \n" @@ -18,6 +18,65 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: bookwyrm/forms.py:185 +msgid "One Day" +msgstr "" + +#: bookwyrm/forms.py:186 +msgid "One Week" +msgstr "" + +#: bookwyrm/forms.py:187 +msgid "One Month" +msgstr "" + +#: bookwyrm/forms.py:188 +msgid "Does Not Expire" +msgstr "" + +#: bookwyrm/forms.py:190 +#, python-format +msgid "%(count)d uses" +msgstr "" + +#: bookwyrm/forms.py:192 +#, fuzzy +#| msgid "Unlisted" +msgid "Unlimited" +msgstr "Non listé" + +#: bookwyrm/models/fields.py:24 +#, python-format +msgid "%(value)s is not a valid remote_id" +msgstr "" + +#: bookwyrm/models/fields.py:33 bookwyrm/models/fields.py:42 +#, python-format +msgid "%(value)s is not a valid username" +msgstr "" + +#: bookwyrm/models/fields.py:164 +#, fuzzy +#| msgid "Username:" +msgid "username" +msgstr "Nom d’utilisateur :" + +#: bookwyrm/models/fields.py:169 +msgid "A user with that username already exists." +msgstr "" + +#: bookwyrm/settings.py:142 +msgid "English" +msgstr "" + +#: bookwyrm/settings.py:143 +msgid "French" +msgstr "" + +#: bookwyrm/settings.py:144 +msgid "Simplified Chinese" +msgstr "" + #: bookwyrm/templates/author.html:16 bookwyrm/templates/author.html:17 #: bookwyrm/templates/edit_author.html:5 msgid "Edit Author" @@ -131,15 +190,9 @@ msgstr "Messages directs avec %(username)s" #: bookwyrm/templates/book.html:141 #, fuzzy, python-format -#| msgid "" -#| "replied to your %(preview_name)s" -msgid "" -"A different edition of this book is on your %(shelf_name)s shelf." -msgstr "" -" a ajouté %(book_title)s à votre " -"liste « %(list_name)s »" +#| msgid "replied to your %(preview_name)s" +msgid "A different edition of this book is on your %(shelf_name)s shelf." +msgstr " a ajouté %(book_title)s à votre liste « %(list_name)s »" #: bookwyrm/templates/book.html:150 msgid "Your reading activity" @@ -399,15 +452,15 @@ msgstr "Vous n’avez aucun message pour l’instant." msgid "%(tab_title)s Timeline" msgstr "%(tab_title)s — Fil d’actualité" -#: bookwyrm/templates/feed/feed.html:10 +#: bookwyrm/templates/feed/feed.html:10 bookwyrm/views/feed.py:33 msgid "Home" msgstr "Accueil" -#: bookwyrm/templates/feed/feed.html:13 +#: bookwyrm/templates/feed/feed.html:13 bookwyrm/views/feed.py:37 msgid "Local" msgstr "Local" -#: bookwyrm/templates/feed/feed.html:16 +#: bookwyrm/templates/feed/feed.html:16 bookwyrm/views/feed.py:41 msgid "Federated" msgstr "Fédéré" @@ -416,10 +469,8 @@ msgid "Announcements" msgstr "Annonces" #: bookwyrm/templates/feed/feed.html:32 -msgid "" -"There aren't any activities right now! Try following a user to get started" -msgstr "" -"Aucune activité pour l’instant ! Abonnez‑vous à quelqu’un pour commencer" +msgid "There aren't any activities right now! Try following a user to get started" +msgstr "Aucune activité pour l’instant ! Abonnez‑vous à quelqu’un pour commencer" #: bookwyrm/templates/feed/feed_layout.html:5 #, fuzzy @@ -432,8 +483,7 @@ msgid "Your books" msgstr "Vos livres" #: bookwyrm/templates/feed/feed_layout.html:13 -msgid "" -"There are no books here right now! Try searching for a book to get started" +msgid "There are no books here right now! Try searching for a book to get started" msgstr "Aucun livre ici pour l’instant ! Cherchez un livre pour commencer" #: bookwyrm/templates/feed/feed_layout.html:23 @@ -480,12 +530,8 @@ msgstr "Modifier le défi" #: bookwyrm/templates/goal.html:30 #: bookwyrm/templates/snippets/goal_card.html:13 #, python-format -msgid "" -"Set a goal for how many books you'll finish reading in %(year)s, and track " -"your progress throughout the year." -msgstr "" -"Définissez un nombre de livre à lire comme objectif pour %(year)s, et " -"suivezvotre progression au fil de l’année." +msgid "Set a goal for how many books you'll finish reading in %(year)s, and track your progress throughout the year." +msgstr "Définissez un nombre de livre à lire comme objectif pour %(year)s, et suivezvotre progression au fil de l’année." #: bookwyrm/templates/goal.html:39 #, python-format @@ -683,12 +729,8 @@ msgid "Contact site admin" msgstr "Contacter l’administrateur du site" #: bookwyrm/templates/layout.html:198 -msgid "" -"BookWyrm is open source software. 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." +msgid "BookWyrm is open source software. 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." #: bookwyrm/templates/lists/create_form.html:5 #: bookwyrm/templates/lists/lists.html:17 @@ -859,32 +901,20 @@ msgstr "Supprimer les notifications" #: bookwyrm/templates/notifications.html:49 #, fuzzy, python-format #| msgid "favorited your %(preview_name)s" -msgid "" -"favorited your review of %(book_title)s" -msgstr "" -"a ajouté votre critique de %(book_title)s à ses favoris" +msgid "favorited your review of %(book_title)s" +msgstr "a ajouté votre critique de %(book_title)s à ses favoris" #: bookwyrm/templates/notifications.html:51 #, fuzzy, python-format #| msgid "favorited your %(preview_name)s" -msgid "" -"favorited your comment on %(book_title)s" -msgstr "" -"a ajouté votre commentaire sur " -"%(book_title)s à ses favoris" +msgid "favorited your comment on %(book_title)s" +msgstr "a ajouté votre commentaire sur %(book_title)s à ses favoris" #: bookwyrm/templates/notifications.html:53 #, fuzzy, python-format #| msgid "favorited your %(preview_name)s" -msgid "" -"favorited your quote from %(book_title)s" -msgstr "" -"a ajouté votre citation de %(book_title)s à ses favoris" +msgid "favorited your quote from %(book_title)s" +msgstr "a ajouté votre citation de %(book_title)s à ses favoris" #: bookwyrm/templates/notifications.html:55 #, fuzzy, python-format @@ -895,32 +925,20 @@ msgstr "a ajouté votre statut à ses favoris" #: bookwyrm/templates/notifications.html:60 #, fuzzy, python-format #| msgid "mentioned you in a %(preview_name)s" -msgid "" -"mentioned you in a review of " -"%(book_title)s" -msgstr "" -"vous a mentionné dans sa critique de " -"%(book_title)s" +msgid "mentioned you in a review of %(book_title)s" +msgstr "vous a mentionné dans sa critique de %(book_title)s" #: bookwyrm/templates/notifications.html:62 #, fuzzy, python-format #| msgid "mentioned you in a %(preview_name)s" -msgid "" -"mentioned you in a comment on " -"%(book_title)s" -msgstr "" -"vous a mentionné dans son commentaire sur " -"%(book_title)s" +msgid "mentioned you in a comment on %(book_title)s" +msgstr "vous a mentionné dans son commentaire sur %(book_title)s" #: bookwyrm/templates/notifications.html:64 #, fuzzy, python-format #| msgid "mentioned you in a %(preview_name)s" -msgid "" -"mentioned you in a quote from " -"%(book_title)s" -msgstr "" -"vous a mentionné dans sa citation de " -"%(book_title)s" +msgid "mentioned you in a quote from %(book_title)s" +msgstr "vous a mentionné dans sa citation de %(book_title)s" #: bookwyrm/templates/notifications.html:66 #, fuzzy, python-format @@ -930,51 +948,27 @@ msgstr "vous a mentionné dans son statut" #: bookwyrm/templates/notifications.html:71 #, fuzzy, python-format -#| msgid "" -#| "replied to your %(preview_name)s" -msgid "" -"replied to your review of %(book_title)s" -msgstr "" -"a répondu à votre critique de %(book_title)s" +#| msgid "replied to your %(preview_name)s" +msgid "replied to your review of %(book_title)s" +msgstr "a répondu à votre critique de %(book_title)s" #: bookwyrm/templates/notifications.html:73 #, fuzzy, python-format -#| msgid "" -#| "replied to your %(preview_name)s" -msgid "" -"replied to your comment on %(book_title)s" -msgstr "" -"a répondu à votre commentaire sur %(book_title)s" +#| msgid "replied to your %(preview_name)s" +msgid "replied to your comment on %(book_title)s" +msgstr "a répondu à votre commentaire sur %(book_title)s" #: bookwyrm/templates/notifications.html:75 #, fuzzy, python-format -#| msgid "" -#| "replied to your %(preview_name)s" -msgid "" -"replied to your quote from %(book_title)s" -msgstr "" -"a répondu à votre citation de %(book_title)s" +#| msgid "replied to your %(preview_name)s" +msgid "replied to your quote from %(book_title)s" +msgstr "a répondu à votre citation de %(book_title)s" #: bookwyrm/templates/notifications.html:77 #, fuzzy, python-format -#| msgid "" -#| "replied to your %(preview_name)s" -msgid "" -"replied to your status" -msgstr "" -"a répondu à votre statut" +#| msgid "replied to your %(preview_name)s" +msgid "replied to your status" +msgstr "a répondu à votre statut" #: bookwyrm/templates/notifications.html:81 msgid "followed you" @@ -987,32 +981,20 @@ msgstr "vous a envoyé une demande d’abonnement" #: bookwyrm/templates/notifications.html:90 #, fuzzy, python-format #| msgid "boosted your %(preview_name)s" -msgid "" -"boosted your review of %(book.title)s" -msgstr "" -"a partagé votre critique de %(book_title)s" +msgid "boosted your review of %(book.title)s" +msgstr "a partagé votre critique de %(book_title)s" #: bookwyrm/templates/notifications.html:92 #, fuzzy, python-format #| msgid "boosted your %(preview_name)s" -msgid "" -"boosted your comment on%(book.title)s" -msgstr "" -"a partagé votre commentaire sur " -"%(book_title)s" +msgid "boosted your comment on%(book.title)s" +msgstr "a partagé votre commentaire sur %(book_title)s" #: bookwyrm/templates/notifications.html:94 #, fuzzy, python-format #| msgid "boosted your %(preview_name)s" -msgid "" -"boosted your quote from %(book.title)s" -msgstr "" -"a partagé votre citation de %(book_title)s" +msgid "boosted your quote from %(book.title)s" +msgstr "a partagé votre citation de %(book_title)s" #: bookwyrm/templates/notifications.html:96 #, fuzzy, python-format @@ -1022,33 +1004,20 @@ msgstr "a partagé votre statut" #: bookwyrm/templates/notifications.html:100 #, fuzzy, python-format -#| msgid "" -#| "replied to your %(preview_name)s" -msgid "" -" added %(book_title)s to your list " -"\"%(list_name)s\"" -msgstr "" -" a ajouté %(book_title)s à votre " -"liste « %(list_name)s »" +#| msgid "replied to your %(preview_name)s" +msgid " added %(book_title)s to your list \"%(list_name)s\"" +msgstr " a ajouté %(book_title)s à votre liste « %(list_name)s »" #: bookwyrm/templates/notifications.html:102 #, fuzzy, python-format -#| msgid "" -#| "replied to your %(preview_name)s" -msgid "" -" suggested adding %(book_title)s to " -"your list \"%(list_name)s\"" -msgstr "" -" a suggégré l’ajout de %(book_title)s " -"à votre liste « %(list_name)s »" +#| msgid "replied to your %(preview_name)s" +msgid " suggested adding %(book_title)s to your list \"%(list_name)s\"" +msgstr " a suggégré l’ajout de %(book_title)s à votre liste « %(list_name)s »" #: bookwyrm/templates/notifications.html:106 #, python-format msgid " your import completed." -msgstr "" -" votre importation est terminée." +msgstr " votre importation est terminée." #: bookwyrm/templates/notifications.html:138 msgid "You're all caught up!" @@ -1072,8 +1041,7 @@ msgstr "Confirmer" #: bookwyrm/templates/password_reset_request.html:12 msgid "A link to reset your password will be sent to your email address" -msgstr "" -"Un lien pour changer votre mot de passe sera envoyé à votre addresse email" +msgstr "Un lien pour changer votre mot de passe sera envoyé à votre addresse email" #: bookwyrm/templates/password_reset_request.html:16 #: bookwyrm/templates/preferences/edit_user.html:38 @@ -1413,9 +1381,7 @@ msgstr "Supprimer ces dates de lecture ?" #: bookwyrm/templates/snippets/delete_readthrough_modal.html:7 #, python-format -msgid "" -"You are deleting this readthrough and its %(count)s associated progress " -"updates." +msgid "You are deleting this readthrough and its %(count)s associated progress updates." msgstr "Vous avez supprimé ce résumé et ses %(count)s progressions associées." #: bookwyrm/templates/snippets/delete_readthrough_modal.html:15 @@ -1468,12 +1434,8 @@ msgstr "Rejeter le message" #: bookwyrm/templates/snippets/goal_card.html:22 #, python-format -msgid "" -"You can set or change your reading goal any time from your profile page" -msgstr "" -"Vous pouvez définir ou changer vore défi lecture à n’importe quel moment " -"depuis votre profil" +msgid "You can set or change your reading goal any time from your profile page" +msgstr "Vous pouvez définir ou changer vore défi lecture à n’importe quel moment depuis votre profil" #: bookwyrm/templates/snippets/goal_form.html:9 msgid "Reading goal:" @@ -1509,20 +1471,13 @@ msgstr "%(percent)s%% terminé !" #: bookwyrm/templates/snippets/goal_progress.html:10 #, python-format -msgid "" -"You've read %(read_count)s of %(goal_count)s books." -msgstr "" -"Vous avez lu %(read_count)s sur %(goal_count)s livres." +msgid "You've read %(read_count)s of %(goal_count)s books." +msgstr "Vous avez lu %(read_count)s sur %(goal_count)s livres." #: bookwyrm/templates/snippets/goal_progress.html:12 #, python-format -msgid "" -"%(username)s has read %(read_count)s of %(goal_count)s " -"books." -msgstr "" -"%(username)s a lu %(read_count)s sur %(goal_count)s " -"livres." +msgid "%(username)s has read %(read_count)s of %(goal_count)s books." +msgstr "%(username)s a lu %(read_count)s sur %(goal_count)s livres." #: bookwyrm/templates/snippets/pagination.html:7 msgid "Previous" diff --git a/locale/zh_CN/LC_MESSAGES/django.po b/locale/zh_CN/LC_MESSAGES/django.po index 1feaad2e3..0f51c6c33 100644 --- a/locale/zh_CN/LC_MESSAGES/django.po +++ b/locale/zh_CN/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-03-02 18:44+0000\n" +"POT-Creation-Date: 2021-03-02 19:51+0000\n" "PO-Revision-Date: 2021-03-02 10:35+0000\n" "Last-Translator: Kana \n" "Language-Team: Mouse Reeve \n" @@ -18,6 +18,65 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: bookwyrm/forms.py:185 +msgid "One Day" +msgstr "" + +#: bookwyrm/forms.py:186 +msgid "One Week" +msgstr "" + +#: bookwyrm/forms.py:187 +msgid "One Month" +msgstr "" + +#: bookwyrm/forms.py:188 +msgid "Does Not Expire" +msgstr "" + +#: bookwyrm/forms.py:190 +#, python-format +msgid "%(count)d uses" +msgstr "" + +#: bookwyrm/forms.py:192 +#, fuzzy +#| msgid "Unlisted" +msgid "Unlimited" +msgstr "不公开" + +#: bookwyrm/models/fields.py:24 +#, python-format +msgid "%(value)s is not a valid remote_id" +msgstr "" + +#: bookwyrm/models/fields.py:33 bookwyrm/models/fields.py:42 +#, python-format +msgid "%(value)s is not a valid username" +msgstr "" + +#: bookwyrm/models/fields.py:164 +#, fuzzy +#| msgid "Username:" +msgid "username" +msgstr "用户名:" + +#: bookwyrm/models/fields.py:169 +msgid "A user with that username already exists." +msgstr "" + +#: bookwyrm/settings.py:142 +msgid "English" +msgstr "" + +#: bookwyrm/settings.py:143 +msgid "French" +msgstr "" + +#: bookwyrm/settings.py:144 +msgid "Simplified Chinese" +msgstr "" + #: bookwyrm/templates/author.html:16 bookwyrm/templates/author.html:17 #: bookwyrm/templates/edit_author.html:5 msgid "Edit Author" @@ -128,15 +187,9 @@ msgstr "与 %(username)s 私信" #: bookwyrm/templates/book.html:141 #, fuzzy, python-format -#| msgid "" -#| " added %(book_title)s to your list " -#| "\"%(list_name)s\"" -msgid "" -"A different edition of this book is on your %(shelf_name)s shelf." -msgstr "" -" 添加了 %(book_title)s 到你的列表 " -"\"%(list_name)s\"" +#| msgid " added %(book_title)s to your list \"%(list_name)s\"" +msgid "A different edition of this book is on your %(shelf_name)s shelf." +msgstr " 添加了 %(book_title)s 到你的列表 \"%(list_name)s\"" #: bookwyrm/templates/book.html:150 msgid "Your reading activity" @@ -387,15 +440,15 @@ msgstr "你现在没有消息。" msgid "%(tab_title)s Timeline" msgstr "%(tab_title)s 时间线" -#: bookwyrm/templates/feed/feed.html:10 +#: bookwyrm/templates/feed/feed.html:10 bookwyrm/views/feed.py:33 msgid "Home" msgstr "主页" -#: bookwyrm/templates/feed/feed.html:13 +#: bookwyrm/templates/feed/feed.html:13 bookwyrm/views/feed.py:37 msgid "Local" msgstr "本站" -#: bookwyrm/templates/feed/feed.html:16 +#: bookwyrm/templates/feed/feed.html:16 bookwyrm/views/feed.py:41 msgid "Federated" msgstr "跨站" @@ -404,8 +457,7 @@ msgid "Announcements" msgstr "公告" #: bookwyrm/templates/feed/feed.html:32 -msgid "" -"There aren't any activities right now! Try following a user to get started" +msgid "There aren't any activities right now! Try following a user to get started" msgstr "现在还没有任何活动!尝试着从关注一个用户开始吧" #: bookwyrm/templates/feed/feed_layout.html:5 @@ -417,8 +469,7 @@ msgid "Your books" msgstr "你的书目" #: bookwyrm/templates/feed/feed_layout.html:13 -msgid "" -"There are no books here right now! Try searching for a book to get started" +msgid "There are no books here right now! Try searching for a book to get started" msgstr "现在这里还没有任何书目!尝试着从搜索某本书开始吧" #: bookwyrm/templates/feed/feed_layout.html:23 @@ -463,9 +514,7 @@ msgstr "编辑目标" #: bookwyrm/templates/goal.html:30 #: bookwyrm/templates/snippets/goal_card.html:13 #, python-format -msgid "" -"Set a goal for how many books you'll finish reading in %(year)s, and track " -"your progress throughout the year." +msgid "Set a goal for how many books you'll finish reading in %(year)s, and track your progress throughout the year." msgstr "设定一个 %(year)s 内要读多少书的目标,并记录你全年的进度。" #: bookwyrm/templates/goal.html:39 @@ -656,12 +705,8 @@ msgid "Contact site admin" msgstr "联系站点管理员" #: bookwyrm/templates/layout.html:198 -msgid "" -"BookWyrm is open source software. You can contribute or report issues on GitHub." -msgstr "" -"BookWyrm 是开源软件。你可以在GitHub 贡献或报告问题。" +msgid "BookWyrm is open source software. You can contribute or report issues on GitHub." +msgstr "BookWyrm 是开源软件。你可以在GitHub 贡献或报告问题。" #: bookwyrm/templates/lists/create_form.html:5 #: bookwyrm/templates/lists/lists.html:17 @@ -831,27 +876,18 @@ msgstr "删除通知" #: bookwyrm/templates/notifications.html:49 #, python-format -msgid "" -"favorited your review of %(book_title)s" -msgstr "" -"喜欢了你 %(book_title)s 的书评" +msgid "favorited your review of %(book_title)s" +msgstr "喜欢了你 %(book_title)s 的书评" #: bookwyrm/templates/notifications.html:51 #, python-format -msgid "" -"favorited your comment on %(book_title)s" -msgstr "" -"喜欢了你 %(book_title)s 的评论" +msgid "favorited your comment on %(book_title)s" +msgstr "喜欢了你 %(book_title)s 的评论" #: bookwyrm/templates/notifications.html:53 #, python-format -msgid "" -"favorited your quote from %(book_title)s" -msgstr "" -"喜欢了你 来自 %(book_title)s 的引用" +msgid "favorited your quote from %(book_title)s" +msgstr "喜欢了你 来自 %(book_title)s 的引用" #: bookwyrm/templates/notifications.html:55 #, python-format @@ -860,30 +896,18 @@ msgstr "喜欢了你的 状态" #: bookwyrm/templates/notifications.html:60 #, python-format -msgid "" -"mentioned you in a review of " -"%(book_title)s" -msgstr "" -"在 %(book_title)s 的书评 里提到" -"了你" +msgid "mentioned you in a review of %(book_title)s" +msgstr "在 %(book_title)s 的书评 里提到了你" #: bookwyrm/templates/notifications.html:62 #, python-format -msgid "" -"mentioned you in a comment on " -"%(book_title)s" -msgstr "" -"在 %(book_title)s 的评论 里提到" -"了你" +msgid "mentioned you in a comment on %(book_title)s" +msgstr "在 %(book_title)s 的评论 里提到了你" #: bookwyrm/templates/notifications.html:64 #, python-format -msgid "" -"mentioned you in a quote from " -"%(book_title)s" -msgstr "" -"在 %(book_title)s 的引用 中提到" -"了你" +msgid "mentioned you in a quote from %(book_title)s" +msgstr "在 %(book_title)s 的引用 中提到了你" #: bookwyrm/templates/notifications.html:66 #, python-format @@ -892,39 +916,23 @@ msgstr "在 状态 中提到了你" #: bookwyrm/templates/notifications.html:71 #, python-format -msgid "" -"replied to your review of %(book_title)s" -msgstr "" -"回复 了你的 对 " -"%(book_title)s 的书评" +msgid "replied to your review of %(book_title)s" +msgstr "回复 了你的 %(book_title)s 的书评" #: bookwyrm/templates/notifications.html:73 #, python-format -msgid "" -"replied to your comment on %(book_title)s" -msgstr "" -"回复 了你的 对 " -"%(book_title)s 的评论" +msgid "replied to your comment on %(book_title)s" +msgstr "回复 了你的 %(book_title)s 的评论" #: bookwyrm/templates/notifications.html:75 #, python-format -msgid "" -"replied to your quote from %(book_title)s" -msgstr "" -"回复 了你 对 " -"%(book_title)s 中的引用" +msgid "replied to your quote from %(book_title)s" +msgstr "回复 了你 %(book_title)s 中的引用" #: bookwyrm/templates/notifications.html:77 #, python-format -msgid "" -"replied to your status" -msgstr "" -"回复 了你的 状态" -"" +msgid "replied to your status" +msgstr "回复 了你的 状态" #: bookwyrm/templates/notifications.html:81 msgid "followed you" @@ -936,27 +944,18 @@ msgstr "向你发送了关注请求" #: bookwyrm/templates/notifications.html:90 #, python-format -msgid "" -"boosted your review of %(book.title)s" -msgstr "" -"转发了你的 %(book.title)s 的书评" +msgid "boosted your review of %(book.title)s" +msgstr "转发了你的 %(book.title)s 的书评" #: bookwyrm/templates/notifications.html:92 #, python-format -msgid "" -"boosted your comment on%(book.title)s" -msgstr "" -"转发了你的 %(book.title)s 的评论" +msgid "boosted your comment on%(book.title)s" +msgstr "转发了你的 %(book.title)s 的评论" #: bookwyrm/templates/notifications.html:94 #, python-format -msgid "" -"boosted your quote from %(book.title)s" -msgstr "" -"转发了你的 %(book.title)s 的引用" +msgid "boosted your quote from %(book.title)s" +msgstr "转发了你的 %(book.title)s 的引用" #: bookwyrm/templates/notifications.html:96 #, python-format @@ -965,21 +964,13 @@ msgstr "转发了你的 状态" #: bookwyrm/templates/notifications.html:100 #, python-format -msgid "" -" added %(book_title)s to your list " -"\"%(list_name)s\"" -msgstr "" -" 添加了 %(book_title)s 到你的列表 " -"\"%(list_name)s\"" +msgid " added %(book_title)s to your list \"%(list_name)s\"" +msgstr " 添加了 %(book_title)s 到你的列表 \"%(list_name)s\"" #: bookwyrm/templates/notifications.html:102 #, python-format -msgid "" -" suggested adding %(book_title)s to " -"your list \"%(list_name)s\"" -msgstr "" -" 推荐添加 %(book_title)s 到你的列表 " -"\"%(list_name)s\"" +msgid " suggested adding %(book_title)s to your list \"%(list_name)s\"" +msgstr " 推荐添加 %(book_title)s 到你的列表 \"%(list_name)s\"" #: bookwyrm/templates/notifications.html:106 #, python-format @@ -1340,9 +1331,7 @@ msgstr "删除这些阅读日期吗?" #: bookwyrm/templates/snippets/delete_readthrough_modal.html:7 #, python-format -msgid "" -"You are deleting this readthrough and its %(count)s associated progress " -"updates." +msgid "You are deleting this readthrough and its %(count)s associated progress updates." msgstr "你正要删除这篇阅读经过以及与之相关的 %(count)s 次进度更新。" #: bookwyrm/templates/snippets/delete_readthrough_modal.html:15 @@ -1394,12 +1383,8 @@ msgstr "遣散消息" #: bookwyrm/templates/snippets/goal_card.html:22 #, python-format -msgid "" -"You can set or change your reading goal any time from your profile page" -msgstr "" -"你可以在任何时候从你的个人资料页面 中设置或改变你的" -"阅读目标" +msgid "You can set or change your reading goal any time from your profile page" +msgstr "你可以在任何时候从你的个人资料页面 中设置或改变你的阅读目标" #: bookwyrm/templates/snippets/goal_form.html:9 msgid "Reading goal:" @@ -1435,20 +1420,13 @@ msgstr "完成了 %(percent)s%% !" #: bookwyrm/templates/snippets/goal_progress.html:10 #, python-format -msgid "" -"You've read %(read_count)s of %(goal_count)s books." -msgstr "" -"你已经阅读了 %(goal_count)s 本书中的 %(read_count)s 本。" +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 #, python-format -msgid "" -"%(username)s has read %(read_count)s of %(goal_count)s " -"books." -msgstr "" -"%(username)s 已经阅读了 %(goal_count)s 本书中的 " -"%(read_count)s 本。" +msgid "%(username)s has read %(read_count)s of %(goal_count)s books." +msgstr "%(username)s 已经阅读了 %(goal_count)s 本书中的 %(read_count)s 本。" #: bookwyrm/templates/snippets/pagination.html:7 msgid "Previous" From 21f39bc310e880c2a54bd5760844789a8cb53ffc Mon Sep 17 00:00:00 2001 From: tofuwabohu Date: Tue, 2 Mar 2021 20:52:11 +0100 Subject: [PATCH 041/111] More translations --- locale/de_DE/LC_MESSAGES/django.po | 74 +++++++++++++++--------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/locale/de_DE/LC_MESSAGES/django.po b/locale/de_DE/LC_MESSAGES/django.po index 89f2e2f70..fe817848c 100644 --- a/locale/de_DE/LC_MESSAGES/django.po +++ b/locale/de_DE/LC_MESSAGES/django.po @@ -161,15 +161,15 @@ msgstr "" #: bookwyrm/templates/discover/landing_layout.html:5 msgid "Welcome" -msgstr "" +msgstr "Willkommen" #: bookwyrm/templates/discover/landing_layout.html:17 msgid "Decentralized" -msgstr "" +msgstr "Dezentral" #: bookwyrm/templates/discover/landing_layout.html:23 msgid "Friendly" -msgstr "" +msgstr "Freundlich" #: bookwyrm/templates/discover/landing_layout.html:29 msgid "Anti-Corporate" @@ -178,32 +178,32 @@ msgstr "" #: bookwyrm/templates/discover/landing_layout.html:44 #, python-format msgid "Join %(name)s" -msgstr "" +msgstr "Tritt %(name)s bei" #: bookwyrm/templates/discover/landing_layout.html:49 #: bookwyrm/templates/login.html:48 msgid "This instance is closed" -msgstr "" +msgstr "Diese Instanz ist geschlossen" #: bookwyrm/templates/discover/landing_layout.html:55 msgid "Your Account" -msgstr "" +msgstr "Dein Account" #: bookwyrm/templates/edit_author.html:13 bookwyrm/templates/edit_book.html:13 msgid "Added:" -msgstr "" +msgstr "Hinzugefügt:" #: bookwyrm/templates/edit_author.html:14 bookwyrm/templates/edit_book.html:14 msgid "Updated:" -msgstr "" +msgstr "Aktualisiert:" #: bookwyrm/templates/edit_author.html:15 bookwyrm/templates/edit_book.html:15 msgid "Last edited by:" -msgstr "" +msgstr "Zuletzt bearbeitet von:" #: bookwyrm/templates/edit_author.html:31 bookwyrm/templates/edit_book.html:30 msgid "Metadata" -msgstr "" +msgstr "Metadaten" #: bookwyrm/templates/edit_author.html:32 bookwyrm/templates/lists/form.html:8 #: bookwyrm/templates/user/create_shelf_form.html:13 @@ -217,19 +217,19 @@ msgstr "" #: bookwyrm/templates/edit_author.html:42 msgid "Wikipedia link:" -msgstr "" +msgstr "Wikipedialink:" #: bookwyrm/templates/edit_author.html:47 msgid "Birth date:" -msgstr "" +msgstr "Geburtsdatum:" #: bookwyrm/templates/edit_author.html:52 msgid "Death date:" -msgstr "" +msgstr "Todesdatum:" #: bookwyrm/templates/edit_author.html:58 msgid "Author Identifiers" -msgstr "" +msgstr "Autor*innenidentifikatoren" #: bookwyrm/templates/edit_author.html:59 bookwyrm/templates/edit_book.html:103 msgid "Openlibrary key:" @@ -245,27 +245,27 @@ msgstr "" #: bookwyrm/templates/edit_book.html:31 msgid "Title:" -msgstr "" +msgstr "Titel:" #: bookwyrm/templates/edit_book.html:35 msgid "Subtitle:" -msgstr "" +msgstr "Untertitel:" #: bookwyrm/templates/edit_book.html:43 msgid "Series:" -msgstr "" +msgstr "Serie:" #: bookwyrm/templates/edit_book.html:47 msgid "Series number:" -msgstr "" +msgstr "Seriennummer:" #: bookwyrm/templates/edit_book.html:51 msgid "First published date:" -msgstr "" +msgstr "Erstveröffentlichungsdatum:" #: bookwyrm/templates/edit_book.html:55 msgid "Published date:" -msgstr "" +msgstr "Veröffentlichungsdatum:" #: bookwyrm/templates/edit_book.html:68 #: bookwyrm/templates/snippets/shelf.html:9 @@ -274,7 +274,7 @@ msgstr "" #: bookwyrm/templates/edit_book.html:78 msgid "Physical Properties" -msgstr "" +msgstr "Physikalische Eigenschaften" #: bookwyrm/templates/edit_book.html:79 msgid "Format:" @@ -282,11 +282,11 @@ msgstr "" #: bookwyrm/templates/edit_book.html:87 msgid "Pages:" -msgstr "" +msgstr "Seiten:" #: bookwyrm/templates/edit_book.html:94 msgid "Book Identifiers" -msgstr "" +msgstr "Buchidentifikatoren" #: bookwyrm/templates/edit_book.html:95 msgid "ISBN 13:" @@ -299,16 +299,16 @@ msgstr "" #: bookwyrm/templates/editions.html:5 #, python-format msgid "Editions of %(book_title)s" -msgstr "" +msgstr "Editionen von %(book_title)s" #: bookwyrm/templates/editions.html:9 #, python-format msgid "Editions of \"%(work_title)s\"" -msgstr "" +msgstr "Editionen von \"%(work_title)s\"" #: bookwyrm/templates/error.html:4 msgid "Oops!" -msgstr "" +msgstr "Ups!" #: bookwyrm/templates/error.html:8 msgid "Server Error" @@ -316,25 +316,25 @@ msgstr "" #: bookwyrm/templates/error.html:9 msgid "Something went wrong! Sorry about that." -msgstr "" +msgstr "Etwas lief schief. Entschuldigung!" #: bookwyrm/templates/feed/direct_messages.html:8 #, python-format msgid "Direct Messages with %(username)s" -msgstr "" +msgstr "Direktnachrichten mit %(username)s" #: bookwyrm/templates/feed/direct_messages.html:10 #: bookwyrm/templates/layout.html:79 msgid "Direct Messages" -msgstr "" +msgstr "Direktnachrichten" #: bookwyrm/templates/feed/direct_messages.html:13 msgid "All messages" -msgstr "" +msgstr "Alle Nachrichten" #: bookwyrm/templates/feed/direct_messages.html:22 msgid "You have no messages right now." -msgstr "" +msgstr "Du hast momentan keine Nachrichten." #: bookwyrm/templates/feed/feed.html:6 #, python-format @@ -347,20 +347,20 @@ msgstr "" #: bookwyrm/templates/feed/feed.html:13 msgid "Local" -msgstr "" +msgstr "Lokal" #: bookwyrm/templates/feed/feed.html:16 msgid "Federated" -msgstr "" +msgstr "Föderiert" #: bookwyrm/templates/feed/feed.html:24 msgid "Announcements" -msgstr "" +msgstr "Ankündigungen" #: bookwyrm/templates/feed/feed.html:32 msgid "" "There aren't any activities right now! Try following a user to get started" -msgstr "" +msgstr "Hier sind noch keine Aktivitäten! Folge anderen, um loszulegen" #: bookwyrm/templates/feed/feed_layout.html:5 msgid "Updates" @@ -368,12 +368,12 @@ msgstr "" #: bookwyrm/templates/feed/feed_layout.html:11 msgid "Your books" -msgstr "" +msgstr "Deine Bücher" #: bookwyrm/templates/feed/feed_layout.html:13 msgid "" "There are no books here right now! Try searching for a book to get started" -msgstr "" +msgstr "Hier sind noch keine Bücher! Versuche nach Büchern zu suchen um loszulegen" #: bookwyrm/templates/feed/feed_layout.html:73 bookwyrm/templates/goal.html:26 #: bookwyrm/templates/snippets/goal_card.html:6 From 78d6b3a8c9b1a72a398ee2ab63ec2989573e487a Mon Sep 17 00:00:00 2001 From: tofuwabohu Date: Tue, 2 Mar 2021 21:20:01 +0100 Subject: [PATCH 042/111] translation up to line 761 --- locale/de_DE/LC_MESSAGES/django.po | 165 +++++++++++++++-------------- 1 file changed, 83 insertions(+), 82 deletions(-) diff --git a/locale/de_DE/LC_MESSAGES/django.po b/locale/de_DE/LC_MESSAGES/django.po index fe817848c..ebff507e9 100644 --- a/locale/de_DE/LC_MESSAGES/django.po +++ b/locale/de_DE/LC_MESSAGES/django.po @@ -379,20 +379,20 @@ msgstr "Hier sind noch keine Bücher! Versuche nach Büchern zu suchen um loszul #: bookwyrm/templates/snippets/goal_card.html:6 #, python-format msgid "%(year)s Reading Goal" -msgstr "" +msgstr "%(year)s Leseziel" #: bookwyrm/templates/feed/status.html:8 msgid "Back" -msgstr "" +msgstr "Zurück" #: bookwyrm/templates/goal.html:7 #, python-format msgid "%(year)s Reading Progress" -msgstr "" +msgstr "%(year)s Lesefortschritt" #: bookwyrm/templates/goal.html:11 msgid "Edit Goal" -msgstr "" +msgstr "Ziel bearbeiten" #: bookwyrm/templates/goal.html:30 #: bookwyrm/templates/snippets/goal_card.html:13 @@ -400,142 +400,142 @@ msgstr "" msgid "" "Set a goal for how many books you'll finish reading in %(year)s, and track " "your progress throughout the year." -msgstr "" +msgstr "Setze dir ein Ziel, wie viele Bücher du %(year)s lesen wirst und behalte deinen Fortschritt über's Jahr im Auge." #: bookwyrm/templates/goal.html:39 #, python-format msgid "%(name)s hasn't set a reading goal for %(year)s." -msgstr "" +msgstr "%(name)s hat sich für %(year)s kein Leseziel gesetzt." #: bookwyrm/templates/goal.html:51 #, python-format msgid "Your %(year)s Books" -msgstr "" +msgstr "Deine %(year)s Bücher" #: bookwyrm/templates/goal.html:53 #, python-format msgid "%(username)s's %(year)s Books" -msgstr "" +msgstr "%(username)ss %(year)s Bücher" #: bookwyrm/templates/import.html:5 bookwyrm/templates/import.html:9 #: bookwyrm/templates/layout.html:94 msgid "Import Books" -msgstr "" +msgstr "Bücher importieren" #: bookwyrm/templates/import.html:14 msgid "Data source" -msgstr "" +msgstr "Datenquelle" #: bookwyrm/templates/import.html:32 msgid "Include reviews" -msgstr "" +msgstr "Bewertungen importieren" #: bookwyrm/templates/import.html:37 msgid "Privacy setting for imported reviews:" -msgstr "" +msgstr "Datenschutzeinstellung für importierte Bewertungen" #: bookwyrm/templates/import.html:41 msgid "Import" -msgstr "" +msgstr "Importieren" #: bookwyrm/templates/import.html:46 msgid "Recent Imports" -msgstr "" +msgstr "Aktuelle Importe" #: bookwyrm/templates/import.html:48 msgid "No recent imports" -msgstr "" +msgstr "Keine aktuellen Importe" #: bookwyrm/templates/import_status.html:6 #: bookwyrm/templates/import_status.html:10 msgid "Import Status" -msgstr "" +msgstr "Importstatus" #: bookwyrm/templates/import_status.html:13 msgid "Import started:" -msgstr "" +msgstr "Import gestartet:" #: bookwyrm/templates/import_status.html:17 msgid "Import completed:" -msgstr "" +msgstr "Import abgeschlossen:" #: bookwyrm/templates/import_status.html:20 msgid "TASK FAILED" -msgstr "" +msgstr "AUFGABE GESCHEITERT" #: bookwyrm/templates/import_status.html:26 msgid "Import still in progress." -msgstr "" +msgstr "Import läuft noch." #: bookwyrm/templates/import_status.html:28 msgid "(Hit reload to update!)" -msgstr "" +msgstr "(Aktualisiere für ein Update!)" #: bookwyrm/templates/import_status.html:35 msgid "Failed to load" -msgstr "" +msgstr "Laden fehlgeschlagen" #: bookwyrm/templates/import_status.html:59 msgid "Select all" -msgstr "" +msgstr "Alle auswählen" #: bookwyrm/templates/import_status.html:62 msgid "Retry items" -msgstr "" +msgstr "Punkte erneut versuchen" #: bookwyrm/templates/import_status.html:84 msgid "Successfully imported" -msgstr "" +msgstr "Erfolgreich importiert" #: bookwyrm/templates/import_status.html:88 #: bookwyrm/templates/lists/curate.html:14 msgid "Book" -msgstr "" +msgstr "Buch" #: bookwyrm/templates/import_status.html:91 #: bookwyrm/templates/snippets/create_status_form.html:10 #: bookwyrm/templates/snippets/shelf.html:10 msgid "Title" -msgstr "" +msgstr "Titel" #: bookwyrm/templates/import_status.html:94 #: bookwyrm/templates/snippets/shelf.html:11 msgid "Author" -msgstr "" +msgstr "Autor*in" #: bookwyrm/templates/import_status.html:117 msgid "Imported" -msgstr "" +msgstr "Importiert" #: bookwyrm/templates/invite.html:4 bookwyrm/templates/invite.html:12 #: bookwyrm/templates/login.html:43 msgid "Create an Account" -msgstr "" +msgstr "Erstelle einen Account" #: bookwyrm/templates/invite.html:21 msgid "Permission Denied" -msgstr "" +msgstr "Zugiff verweigert" #: bookwyrm/templates/invite.html:22 msgid "Sorry! This invite code is no longer valid." -msgstr "" +msgstr "Sorry! Dieser Einladecode ist mehr gültig." #: bookwyrm/templates/layout.html:33 msgid "Search for a book or user" -msgstr "" +msgstr "Suche nach Buch oder Benutzer*in" #: bookwyrm/templates/layout.html:37 bookwyrm/templates/layout.html:38 #: bookwyrm/templates/lists/list.html:62 msgid "Search" -msgstr "" +msgstr "Suche" #: bookwyrm/templates/layout.html:47 bookwyrm/templates/layout.html:48 msgid "Main navigation menu" -msgstr "" +msgstr "Navigationshauptmenü" #: bookwyrm/templates/layout.html:58 msgid "Your shelves" -msgstr "" +msgstr "Deine Regale" #: bookwyrm/templates/layout.html:61 msgid "Feed" @@ -548,27 +548,27 @@ msgstr "" #: bookwyrm/templates/layout.html:89 msgid "Settings" -msgstr "" +msgstr "Einstellungen" #: bookwyrm/templates/layout.html:103 #: bookwyrm/templates/settings/admin_layout.html:19 #: bookwyrm/templates/settings/manage_invites.html:3 msgid "Invites" -msgstr "" +msgstr "Einladungen" #: bookwyrm/templates/layout.html:110 msgid "Site Configuration" -msgstr "" +msgstr "Seiteneinstellungen" #: bookwyrm/templates/layout.html:117 msgid "Log out" -msgstr "" +msgstr "Abmelden" #: bookwyrm/templates/layout.html:125 bookwyrm/templates/layout.html:126 #: bookwyrm/templates/notifications.html:6 #: bookwyrm/templates/notifications.html:10 msgid "Notifications" -msgstr "" +msgstr "Benachrichtigungen" #: bookwyrm/templates/layout.html:143 bookwyrm/templates/layout.html:147 #: bookwyrm/templates/login.html:17 @@ -579,146 +579,147 @@ msgstr "" #: bookwyrm/templates/layout.html:152 bookwyrm/templates/login.html:10 #: bookwyrm/templates/login.html:33 msgid "Log in" -msgstr "" +msgstr "Anmelden" #: bookwyrm/templates/layout.html:183 msgid "About this server" -msgstr "" +msgstr "Über diesen Server" #: bookwyrm/templates/layout.html:187 msgid "Contact site admin" -msgstr "" +msgstr "Admin kontaktieren" #: bookwyrm/templates/layout.html:198 msgid "" "BookWyrm is open source software. You can contribute or report issues on GitHub." -msgstr "" +msgstr "BookWyrm ist open source Software. Du kannst dich auf GitHub beteiligen oder etwas melden." #: bookwyrm/templates/lists/create_form.html:5 #: bookwyrm/templates/lists/lists.html:17 msgid "Create List" -msgstr "" +msgstr "Liste erstellen" #: bookwyrm/templates/lists/curate.html:6 msgid "Pending Books" -msgstr "" +msgstr "Unbestätigte Bücher" #: bookwyrm/templates/lists/curate.html:7 msgid "Go to list" -msgstr "" +msgstr "Zur Liste" #: bookwyrm/templates/lists/curate.html:9 msgid "You're all set!" -msgstr "" +msgstr "Du bist soweit!" #: bookwyrm/templates/lists/curate.html:15 msgid "Suggested by" -msgstr "" +msgstr "Vorgeschlagen von" #: bookwyrm/templates/lists/curate.html:35 msgid "Approve" -msgstr "" +msgstr "Bestätigen" #: bookwyrm/templates/lists/curate.html:41 msgid "Discard" -msgstr "" +msgstr "Ablehnen" #: bookwyrm/templates/lists/edit_form.html:5 #: bookwyrm/templates/lists/list_layout.html:17 msgid "Edit List" -msgstr "" +msgstr "Liste bearbeiten" #: bookwyrm/templates/lists/form.html:18 msgid "List curation:" -msgstr "" +msgstr "Listenkuratierung:" #: bookwyrm/templates/lists/form.html:21 msgid "Closed" -msgstr "" +msgstr "Geschlossen" #: bookwyrm/templates/lists/form.html:22 msgid "Only you can add and remove books to this list" -msgstr "" +msgstr "Nur du kannst Bücher hinzufügen oder entfernen" #: bookwyrm/templates/lists/form.html:26 msgid "Curated" -msgstr "" +msgstr "Kuratiert" #: bookwyrm/templates/lists/form.html:27 msgid "Anyone can suggest books, subject to your approval" -msgstr "" +msgstr "Alle können Bücher vorschlagen, du kannst diese bestätigen" #: bookwyrm/templates/lists/form.html:31 msgid "Open" -msgstr "" +msgstr "Offen" #: bookwyrm/templates/lists/form.html:32 msgid "Anyone can add books to this list" -msgstr "" +msgstr "Alle können Bücher hinzufügen" #: bookwyrm/templates/lists/list.html:17 msgid "This list is currently empty" -msgstr "" +msgstr "Diese Liste ist momentan leer" #: bookwyrm/templates/lists/list.html:35 msgid "Added by" -msgstr "" +msgstr "Hinzugefügt von" #: bookwyrm/templates/lists/list.html:41 msgid "Remove" -msgstr "" +msgstr "Entfernen" #: bookwyrm/templates/lists/list.html:54 msgid "Add Books" -msgstr "" +msgstr "Bücher hinzufügen" #: bookwyrm/templates/lists/list.html:54 msgid "Suggest Books" -msgstr "" +msgstr "Bücher vorschlagen" #: bookwyrm/templates/lists/list.html:58 msgid "Search for a book" -msgstr "" +msgstr "Nach einem Buch suchen" #: bookwyrm/templates/lists/list.html:63 msgid "search" -msgstr "" +msgstr "suchen" #: bookwyrm/templates/lists/list.html:69 msgid "Clear search" -msgstr "" +msgstr "Suche leeren" #: bookwyrm/templates/lists/list.html:74 #, python-format msgid "No books found matching the query \"%(query)s\"" -msgstr "" +msgstr "Keine passenden Bücher zu \"%(query)s\" gefunden" #: bookwyrm/templates/lists/list.html:75 msgid "No books found" -msgstr "" +msgstr "Keine Bücher gefunden" #: bookwyrm/templates/lists/list.html:89 msgid "Suggest" -msgstr "" +msgstr "Vorschlagen" #: bookwyrm/templates/lists/list_items.html:19 #: bookwyrm/templates/lists/list_layout.html:11 msgid "Created and curated by" -msgstr "" +msgstr "Erstellt und kuratiert von" #: bookwyrm/templates/lists/list_items.html:19 #: bookwyrm/templates/lists/list_layout.html:11 msgid "Created by" -msgstr "" +msgstr "Erstellt von" #: bookwyrm/templates/lists/lists.html:14 msgid "Your lists" -msgstr "" +msgstr "Deine Listen" #: bookwyrm/templates/lists/lists.html:40 msgid "Recent Lists" -msgstr "" +msgstr "Aktuelle Listen" #: bookwyrm/templates/login.html:4 msgid "Login" @@ -727,31 +728,31 @@ msgstr "" #: bookwyrm/templates/login.html:23 bookwyrm/templates/password_reset.html:17 #: bookwyrm/templates/snippets/register_form.html:22 msgid "Password:" -msgstr "" +msgstr "Passwort:" #: bookwyrm/templates/login.html:36 msgid "Forgot your password?" -msgstr "" +msgstr "Passwort vergessen?" #: bookwyrm/templates/login.html:49 msgid "Contact an administrator to get an invite" -msgstr "" +msgstr "Kontaktiere für eine Einladung eine*n Admin" #: bookwyrm/templates/login.html:59 msgid "More about this site" -msgstr "" +msgstr "Mehr über diese Seite" #: bookwyrm/templates/notfound.html:4 bookwyrm/templates/notfound.html:8 msgid "Not Found" -msgstr "" +msgstr "Nicht gefunden" #: bookwyrm/templates/notfound.html:9 msgid "The page your requested doesn't seem to exist!" -msgstr "" +msgstr "Die Seite die du angefordert hast scheint nicht zu existieren!" #: bookwyrm/templates/notifications.html:14 msgid "Delete notifications" -msgstr "" +msgstr "Benachrichtigungen löschen" #: bookwyrm/templates/notifications.html:49 #, python-format From f64442764b4516cc5582312ad0be2f1c1f4a9bf9 Mon Sep 17 00:00:00 2001 From: tofuwabohu Date: Tue, 2 Mar 2021 21:34:20 +0100 Subject: [PATCH 043/111] translation up to line 901 --- locale/de_DE/LC_MESSAGES/django.po | 55 ++++++++++++++++++------------ 1 file changed, 34 insertions(+), 21 deletions(-) diff --git a/locale/de_DE/LC_MESSAGES/django.po b/locale/de_DE/LC_MESSAGES/django.po index ebff507e9..f847cf595 100644 --- a/locale/de_DE/LC_MESSAGES/django.po +++ b/locale/de_DE/LC_MESSAGES/django.po @@ -759,133 +759,146 @@ msgstr "Benachrichtigungen löschen" msgid "" "favorited your review of %(book_title)s" -msgstr "" +msgstr "hat deine Bewertung von %(book_title)s favorisiert" #: bookwyrm/templates/notifications.html:51 #, python-format msgid "" "favorited your comment on %(book_title)s" -msgstr "" +msgstr "hat deinen Kommentar zu %(book_title)s favorisiert" #: bookwyrm/templates/notifications.html:53 #, python-format msgid "" "favorited your quote from %(book_title)s" -msgstr "" +msgstr " hat dein Zitat aus %(book_title)s" #: bookwyrm/templates/notifications.html:55 #, python-format msgid "favorited your status" -msgstr "" +msgstr "hat deinen Status favorisiert" #: bookwyrm/templates/notifications.html:60 #, python-format msgid "" "mentioned you in a review of " "%(book_title)s" -msgstr "" +msgstr "hat dich in einer Bewertung von " +"%(book_title)s erwähnt" #: bookwyrm/templates/notifications.html:62 #, python-format msgid "" "mentioned you in a comment on " "%(book_title)s" -msgstr "" +msgstr "hat dich in einem Kommentar zu " +"%(book_title)s erwähnt" #: bookwyrm/templates/notifications.html:64 #, python-format msgid "" "mentioned you in a quote from " "%(book_title)s" -msgstr "" +msgstr "hat dich in einem Zitat von " +"%(book_title)s erwähnt" #: bookwyrm/templates/notifications.html:66 #, python-format msgid "mentioned you in a status" -msgstr "" +msgstr "hat dich in einem Status erwähnt" #: bookwyrm/templates/notifications.html:71 #, python-format msgid "" "replied to your review of %(book_title)s" -msgstr "" +msgstr "hat auf deine Bewertung von %(book_title)s geantwortet " #: bookwyrm/templates/notifications.html:73 #, python-format msgid "" "replied to your comment on %(book_title)s" -msgstr "" +msgstr "hat auf deinen Kommentar zu %(book_title)s geantwortet" #: bookwyrm/templates/notifications.html:75 #, python-format msgid "" "replied to your quote from %(book_title)s" -msgstr "" +msgstr "hat auf dein Zitat aus %(book_title)s geantwortet" #: bookwyrm/templates/notifications.html:77 #, python-format msgid "" "replied to your status" -msgstr "" +msgstr "hat auf deinen Status geantwortet" #: bookwyrm/templates/notifications.html:81 msgid "followed you" -msgstr "" +msgstr "folgt dir" #: bookwyrm/templates/notifications.html:84 msgid "sent you a follow request" -msgstr "" +msgstr "hat dir eine Folgeanfrage geschickt" #: bookwyrm/templates/notifications.html:90 #, python-format msgid "" "boosted your review of %(book.title)s" -msgstr "" +msgstr "hat deine Bewertung von %(book.title)s geteilt" #: bookwyrm/templates/notifications.html:92 #, python-format msgid "" "boosted your comment on%(book.title)s" -msgstr "" +msgstr "hat deinen Kommentar zu%(book.title)s geteilt" #: bookwyrm/templates/notifications.html:94 #, python-format msgid "" "boosted your quote from %(book.title)s" -msgstr "" +msgstr "hat dein Zitat aus %(book.title)s geteilt" #: bookwyrm/templates/notifications.html:96 #, python-format msgid "boosted your status" -msgstr "" +msgstr "hat deinen Status geteilt" #: bookwyrm/templates/notifications.html:100 #, python-format msgid "" " added %(book_title)s to your list " "\"%(list_name)s\"" -msgstr "" +msgstr "hat %(book_title)s zu deiner Liste \"%(list_name)s\" Hinzugefügt" #: bookwyrm/templates/notifications.html:102 #, python-format msgid "" " suggested adding %(book_title)s to " "your list \"%(list_name)s\"" -msgstr "" +msgstr "hat %(book_title)s für deine Liste \"%(list_name)s\" vorgeschlagen" #: bookwyrm/templates/notifications.html:106 #, python-format msgid " your import completed." -msgstr "" +msgstr " dein Import ist abgeschlossen." #: bookwyrm/templates/notifications.html:138 msgid "You're all caught up!" From 46710b23e14a7846e9da26ed74be7a3db61d2237 Mon Sep 17 00:00:00 2001 From: tofuwabohu Date: Tue, 2 Mar 2021 21:49:55 +0100 Subject: [PATCH 044/111] up to 1345 --- locale/de_DE/LC_MESSAGES/django.po | 161 +++++++++++++++-------------- 1 file changed, 81 insertions(+), 80 deletions(-) diff --git a/locale/de_DE/LC_MESSAGES/django.po b/locale/de_DE/LC_MESSAGES/django.po index f847cf595..968ebb52f 100644 --- a/locale/de_DE/LC_MESSAGES/django.po +++ b/locale/de_DE/LC_MESSAGES/django.po @@ -902,63 +902,63 @@ msgstr " dein Import ist abgeschlossen." #: bookwyrm/templates/notifications.html:138 msgid "You're all caught up!" -msgstr "" +msgstr "Du bist auf dem neusten Stand!" #: bookwyrm/templates/password_reset.html:4 #: bookwyrm/templates/password_reset.html:10 #: bookwyrm/templates/password_reset_request.html:4 #: bookwyrm/templates/password_reset_request.html:10 msgid "Reset Password" -msgstr "" +msgstr "Passwort zurücksetzen!" #: bookwyrm/templates/password_reset.html:23 #: bookwyrm/templates/preferences/change_password.html:18 msgid "Confirm password:" -msgstr "" +msgstr "Passwort bestätigen:" #: bookwyrm/templates/password_reset.html:30 msgid "Confirm" -msgstr "" +msgstr "Bestätigen" #: bookwyrm/templates/password_reset_request.html:12 msgid "A link to reset your password will be sent to your email address" -msgstr "" +msgstr "Ein Link zum Zurücksetzen deines Passworts wird an deine Mailadresse geschickt" #: bookwyrm/templates/password_reset_request.html:16 #: bookwyrm/templates/preferences/edit_user.html:38 #: bookwyrm/templates/snippets/register_form.html:13 msgid "Email address:" -msgstr "" +msgstr "E-Mail Adresse" #: bookwyrm/templates/password_reset_request.html:23 msgid "Reset password" -msgstr "" +msgstr "Passwort zurücksetzen" #: bookwyrm/templates/preferences/blocks.html:4 #: bookwyrm/templates/preferences/blocks.html:7 #: bookwyrm/templates/preferences/preferences_layout.html:23 msgid "Blocked Users" -msgstr "" +msgstr "Blockierte Nutzer*innen" #: bookwyrm/templates/preferences/blocks.html:12 msgid "No users currently blocked." -msgstr "" +msgstr "Momentan keine Nutzer*innen blockiert." #: bookwyrm/templates/preferences/change_password.html:4 #: bookwyrm/templates/preferences/change_password.html:7 #: bookwyrm/templates/preferences/change_password.html:21 #: bookwyrm/templates/preferences/preferences_layout.html:17 msgid "Change Password" -msgstr "" +msgstr "Passwort ändern" #: bookwyrm/templates/preferences/change_password.html:14 msgid "New password:" -msgstr "" +msgstr "Neues Passwort:" #: bookwyrm/templates/preferences/edit_user.html:4 #: bookwyrm/templates/preferences/edit_user.html:7 msgid "Edit Profile" -msgstr "" +msgstr "Profil bearbeiten:" #: bookwyrm/templates/preferences/edit_user.html:17 msgid "Avatar:" @@ -966,15 +966,15 @@ msgstr "" #: bookwyrm/templates/preferences/edit_user.html:24 msgid "Display name:" -msgstr "" +msgstr "Displayname:" #: bookwyrm/templates/preferences/edit_user.html:31 msgid "Summary:" -msgstr "" +msgstr "Zusammenfassung:" #: bookwyrm/templates/preferences/edit_user.html:46 msgid "Manually approve followers:" -msgstr "" +msgstr "Folgende manuell bestätigen" #: bookwyrm/templates/preferences/preferences_layout.html:11 msgid "Account" @@ -982,55 +982,55 @@ msgstr "" #: bookwyrm/templates/preferences/preferences_layout.html:20 msgid "Relationships" -msgstr "" +msgstr "Beziehungen" #: bookwyrm/templates/search_results.html:4 msgid "Search Results" -msgstr "" +msgstr "Suchergebnisse" #: bookwyrm/templates/search_results.html:9 #, python-format msgid "Search Results for \"%(query)s\"" -msgstr "" +msgstr "Suchergebnisse für \"%(query)s\"" #: bookwyrm/templates/search_results.html:14 msgid "Matching Books" -msgstr "" +msgstr "Passende Bücher" #: bookwyrm/templates/search_results.html:17 #, python-format msgid "No books found for \"%(query)s\"" -msgstr "" +msgstr "Keine Bücher für \"%(query)s\" gefunden" #: bookwyrm/templates/search_results.html:33 msgid "Didn't find what you were looking for?" -msgstr "" +msgstr "Nicht gefunden, wonach du gesucht hast?" #: bookwyrm/templates/search_results.html:35 msgid "Show results from other catalogues" -msgstr "" +msgstr "Ergebnisse aus anderen Katalogen zeigen" #: bookwyrm/templates/search_results.html:57 msgid "Import book" -msgstr "" +msgstr "Buch importieren" #: bookwyrm/templates/search_results.html:67 msgid "Hide results from other catalogues" -msgstr "" +msgstr "Ergebnisse aus anderen Katalogen ausblenden" #: bookwyrm/templates/search_results.html:75 msgid "Matching Users" -msgstr "" +msgstr "Passende Nutzer*innen" #: bookwyrm/templates/search_results.html:77 #, python-format msgid "No users found for \"%(query)s\"" -msgstr "" +msgstr "Keine Nutzer*innen für \"%(query)s\" gefunden" #: bookwyrm/templates/search_results.html:92 #, python-format msgid "No lists found for \"%(query)s\"" -msgstr "" +msgstr "Keine Liste für \"%(query)s\" gefunden" #: bookwyrm/templates/settings/admin_layout.html:4 msgid "Administration" @@ -1038,46 +1038,46 @@ msgstr "" #: bookwyrm/templates/settings/admin_layout.html:15 msgid "Manage Users" -msgstr "" +msgstr "Nutzer*innen verwalten" #: bookwyrm/templates/settings/admin_layout.html:23 #: bookwyrm/templates/settings/federation.html:4 msgid "Federated Servers" -msgstr "" +msgstr "Föderierende Server" #: bookwyrm/templates/settings/admin_layout.html:28 msgid "Instance Settings" -msgstr "" +msgstr "Instanzeinstellungen" #: bookwyrm/templates/settings/admin_layout.html:32 #: bookwyrm/templates/settings/site.html:4 #: bookwyrm/templates/settings/site.html:6 msgid "Site Settings" -msgstr "" +msgstr "Seiteneinstellungen" #: bookwyrm/templates/settings/admin_layout.html:35 #: bookwyrm/templates/settings/site.html:13 msgid "Instance Info" -msgstr "" +msgstr "Instanzinformationen" #: bookwyrm/templates/settings/admin_layout.html:36 #: bookwyrm/templates/settings/site.html:39 msgid "Images" -msgstr "" +msgstr "Bilder" #: bookwyrm/templates/settings/admin_layout.html:37 #: bookwyrm/templates/settings/site.html:59 msgid "Footer Content" -msgstr "" +msgstr "Inhalt des Footers" #: bookwyrm/templates/settings/admin_layout.html:38 #: bookwyrm/templates/settings/site.html:77 msgid "Registration" -msgstr "" +msgstr "Registrierung" #: bookwyrm/templates/settings/federation.html:10 msgid "Server name" -msgstr "" +msgstr "Servername" #: bookwyrm/templates/settings/federation.html:11 msgid "Software" @@ -1089,19 +1089,19 @@ msgstr "" #: bookwyrm/templates/settings/manage_invites.html:7 msgid "Generate New Invite" -msgstr "" +msgstr "Neue Einladung erzeugen" #: bookwyrm/templates/settings/manage_invites.html:13 msgid "Expiry:" -msgstr "" +msgstr "Ablaufen:" #: bookwyrm/templates/settings/manage_invites.html:19 msgid "Use limit:" -msgstr "" +msgstr "Begrenzte Benutzung" #: bookwyrm/templates/settings/manage_invites.html:26 msgid "Create Invite" -msgstr "" +msgstr "Einladung erstellen" #: bookwyrm/templates/settings/manage_invites.html:33 msgid "Link" @@ -1109,23 +1109,23 @@ msgstr "" #: bookwyrm/templates/settings/manage_invites.html:34 msgid "Expires" -msgstr "" +msgstr "Läuft aus" #: bookwyrm/templates/settings/manage_invites.html:35 msgid "Max uses" -msgstr "" +msgstr "Maximale Benutzungen" #: bookwyrm/templates/settings/manage_invites.html:36 msgid "Times used" -msgstr "" +msgstr "Mal benutzt" #: bookwyrm/templates/settings/manage_invites.html:39 msgid "No active invites" -msgstr "" +msgstr "Keine aktiven Einladungen" #: bookwyrm/templates/settings/site.html:15 msgid "Instance Name:" -msgstr "" +msgstr "Instanzname" #: bookwyrm/templates/settings/site.html:19 msgid "Tagline:" @@ -1133,7 +1133,7 @@ msgstr "" #: bookwyrm/templates/settings/site.html:23 msgid "Instance description:" -msgstr "" +msgstr "Instanzbeschreibung" #: bookwyrm/templates/settings/site.html:27 msgid "Code of conduct:" @@ -1141,7 +1141,7 @@ msgstr "" #: bookwyrm/templates/settings/site.html:31 msgid "Privacy Policy:" -msgstr "" +msgstr "Datenschutzerklärung" #: bookwyrm/templates/settings/site.html:42 msgid "Logo:" @@ -1149,7 +1149,7 @@ msgstr "" #: bookwyrm/templates/settings/site.html:46 msgid "Logo small:" -msgstr "" +msgstr "Logo klein" #: bookwyrm/templates/settings/site.html:50 msgid "Favicon:" @@ -1157,11 +1157,11 @@ msgstr "" #: bookwyrm/templates/settings/site.html:61 msgid "Support link:" -msgstr "" +msgstr "Unterstützungslink" #: bookwyrm/templates/settings/site.html:65 msgid "Support title:" -msgstr "" +msgstr "Unterstützungstitel" #: bookwyrm/templates/settings/site.html:69 msgid "Admin email:" @@ -1169,11 +1169,11 @@ msgstr "" #: bookwyrm/templates/settings/site.html:79 msgid "Allow registration:" -msgstr "" +msgstr "Registrierungen erlauben" #: bookwyrm/templates/settings/site.html:83 msgid "Registration closed text:" -msgstr "" +msgstr "Registrierungen geschlossen text" #: bookwyrm/templates/snippets/block_button.html:5 msgid "Block" @@ -1186,40 +1186,40 @@ msgstr "" #: bookwyrm/templates/snippets/book_titleby.html:3 #, python-format msgid "%(title)s by " -msgstr "" +msgstr "%(title)s von" #: bookwyrm/templates/snippets/boost_button.html:8 #: bookwyrm/templates/snippets/boost_button.html:9 #: bookwyrm/templates/snippets/status/status_body.html:41 #: bookwyrm/templates/snippets/status/status_body.html:42 msgid "Boost status" -msgstr "" +msgstr "Status teilen" #: bookwyrm/templates/snippets/boost_button.html:16 #: bookwyrm/templates/snippets/boost_button.html:17 msgid "Un-boost status" -msgstr "" +msgstr "Teilen zurücknehmen" #: bookwyrm/templates/snippets/content_warning_field.html:3 msgid "Spoiler alert:" -msgstr "" +msgstr "Spoileralarm:" #: bookwyrm/templates/snippets/content_warning_field.html:4 msgid "Spoilers ahead!" -msgstr "" +msgstr "Spoileralarm!" #: bookwyrm/templates/snippets/create_status.html:9 msgid "Review" -msgstr "" +msgstr "Bewerten" #: bookwyrm/templates/snippets/create_status.html:12 #: bookwyrm/templates/snippets/create_status_form.html:44 msgid "Comment" -msgstr "" +msgstr "Kommentieren" #: bookwyrm/templates/snippets/create_status.html:15 msgid "Quote" -msgstr "" +msgstr "Zitieren" #: bookwyrm/templates/snippets/create_status_form.html:21 #: bookwyrm/templates/snippets/shelf.html:17 @@ -1234,14 +1234,14 @@ msgstr "" #: bookwyrm/templates/snippets/create_status_form.html:54 msgid "Include spoiler alert" -msgstr "" +msgstr "Spoileralarm aktivieren" #: bookwyrm/templates/snippets/create_status_form.html:60 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 #: bookwyrm/templates/snippets/privacy_select.html:19 msgid "Private" -msgstr "" +msgstr "Privat" #: bookwyrm/templates/snippets/create_status_form.html:67 msgid "Post" @@ -1249,51 +1249,51 @@ msgstr "" #: bookwyrm/templates/snippets/delete_readthrough_modal.html:4 msgid "Delete these read dates?" -msgstr "" +msgstr "Diese Lesedaten löschen?" #: bookwyrm/templates/snippets/delete_readthrough_modal.html:7 #, python-format msgid "" "You are deleting this readthrough and its %(count)s associated progress " "updates." -msgstr "" +msgstr "Du löscht diesen Leseforschritt und %(count)s zugehörige Fortschrittsupdates." #: bookwyrm/templates/snippets/delete_readthrough_modal.html:15 #: bookwyrm/templates/snippets/follow_request_buttons.html:13 msgid "Delete" -msgstr "" +msgstr "Löschen" #: bookwyrm/templates/snippets/fav_button.html:7 #: bookwyrm/templates/snippets/fav_button.html:8 #: bookwyrm/templates/snippets/status/status_body.html:45 #: bookwyrm/templates/snippets/status/status_body.html:46 msgid "Like status" -msgstr "" +msgstr "Status favorisieren" #: bookwyrm/templates/snippets/fav_button.html:15 #: bookwyrm/templates/snippets/fav_button.html:16 msgid "Un-like status" -msgstr "" +msgstr "Favorisieren zurücknehmen" #: bookwyrm/templates/snippets/follow_button.html:6 msgid "Follow request already sent." -msgstr "" +msgstr "Folgeanfrage bereits gesendet." #: bookwyrm/templates/snippets/follow_button.html:19 msgid "Send follow request" -msgstr "" +msgstr "Folgeanfrage senden" #: bookwyrm/templates/snippets/follow_button.html:21 msgid "Follow" -msgstr "" +msgstr "Folgen" #: bookwyrm/templates/snippets/follow_button.html:27 msgid "Unfollow" -msgstr "" +msgstr "Entfolgen" #: bookwyrm/templates/snippets/follow_request_buttons.html:8 msgid "Accept" -msgstr "" +msgstr "Annehmen" #: bookwyrm/templates/snippets/generated_status/goal.html:1 #, python-format @@ -1304,41 +1304,42 @@ msgstr[1] "" #: bookwyrm/templates/snippets/goal_card.html:21 msgid "Dismiss message" -msgstr "" +msgstr "Nachricht verwerfen" #: bookwyrm/templates/snippets/goal_card.html:22 #, python-format msgid "" "You can set or change your reading goal any time from your profile page" -msgstr "" +msgstr "Du kannst dein Leseziel jederzeit auf deiner Profilseite setzen oder ändern." #: bookwyrm/templates/snippets/goal_form.html:9 msgid "Reading goal:" -msgstr "" +msgstr "Leseziel:" #: bookwyrm/templates/snippets/goal_form.html:14 msgid "books" -msgstr "" +msgstr "Bücher" #: bookwyrm/templates/snippets/goal_form.html:19 msgid "Goal privacy:" -msgstr "" +msgstr "Sichtbarkeit des Ziels" #: bookwyrm/templates/snippets/goal_form.html:26 #: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:37 #: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:29 #: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:20 msgid "Post to feed" -msgstr "" +msgstr "Posten" #: bookwyrm/templates/snippets/goal_form.html:30 msgid "Set goal" -msgstr "" +msgstr "Ziel setzen" #: bookwyrm/templates/snippets/goal_progress.html:5 msgid "Success!" -msgstr "" +msgstr "Erfolg!" #: bookwyrm/templates/snippets/goal_progress.html:7 #, python-format From f028df4691b2818e827354740de9857eef914539 Mon Sep 17 00:00:00 2001 From: tofuwabohu Date: Tue, 2 Mar 2021 22:03:29 +0100 Subject: [PATCH 045/111] Finished translation except for some non intuitive ones --- locale/de_DE/LC_MESSAGES/django.po | 173 +++++++++++++++-------------- 1 file changed, 87 insertions(+), 86 deletions(-) diff --git a/locale/de_DE/LC_MESSAGES/django.po b/locale/de_DE/LC_MESSAGES/django.po index 968ebb52f..242d7afd2 100644 --- a/locale/de_DE/LC_MESSAGES/django.po +++ b/locale/de_DE/LC_MESSAGES/django.po @@ -1344,44 +1344,45 @@ msgstr "Erfolg!" #: bookwyrm/templates/snippets/goal_progress.html:7 #, python-format msgid "%(percent)s%% complete!" -msgstr "" +msgstr "%(percent)s%% komplett!" #: bookwyrm/templates/snippets/goal_progress.html:10 #, python-format msgid "" "You've read %(read_count)s of %(goal_count)s books." -msgstr "" +msgstr "Du hast %(read_count)s von %(goal_count)s Büchern gelesen." #: bookwyrm/templates/snippets/goal_progress.html:12 #, python-format msgid "" "%(username)s has read %(read_count)s of %(goal_count)s " "books." -msgstr "" +msgstr "%(username)s hat %(read_count)s von %(goal_count)s " +"Büchern gelesen." #: bookwyrm/templates/snippets/pagination.html:7 msgid "Previous" -msgstr "" +msgstr "Vorher" #: bookwyrm/templates/snippets/pagination.html:15 msgid "Next" -msgstr "" +msgstr "Danach" #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:10 msgid "Public" -msgstr "" +msgstr "Öffentlich" #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:13 msgid "Unlisted" -msgstr "" +msgstr "Ungelistet" #: bookwyrm/templates/snippets/privacy-icons.html:12 msgid "Followers-only" -msgstr "" +msgstr "Nur für Folgende" #: bookwyrm/templates/snippets/privacy_select.html:6 msgid "Post privacy" @@ -1390,30 +1391,30 @@ msgstr "" #: bookwyrm/templates/snippets/privacy_select.html:16 #: bookwyrm/templates/user/followers.html:13 msgid "Followers" -msgstr "" +msgstr "Folgende" #: bookwyrm/templates/snippets/progress_update.html:6 msgid "Progress:" -msgstr "" +msgstr "Fortschritt:" #: bookwyrm/templates/snippets/progress_update.html:16 #: bookwyrm/templates/snippets/readthrough_form.html:22 msgid "pages" -msgstr "" +msgstr "Seiten" #: bookwyrm/templates/snippets/progress_update.html:17 #: bookwyrm/templates/snippets/readthrough_form.html:23 msgid "percent" -msgstr "" +msgstr "Prozent" #: bookwyrm/templates/snippets/progress_update.html:25 #, python-format msgid "of %(book.pages)s pages" -msgstr "" +msgstr "von %(book.pages)s Seiten" #: bookwyrm/templates/snippets/rate_action.html:4 msgid "Leave a rating" -msgstr "" +msgstr "Raten" #: bookwyrm/templates/snippets/rate_action.html:29 msgid "Rate" @@ -1421,51 +1422,51 @@ msgstr "" #: bookwyrm/templates/snippets/readthrough.html:7 msgid "Progress Updates:" -msgstr "" +msgstr "Fortschrittsupdates:" #: bookwyrm/templates/snippets/readthrough.html:11 msgid "finished" -msgstr "" +msgstr "beendet" #: bookwyrm/templates/snippets/readthrough.html:14 msgid "Show all updates" -msgstr "" +msgstr "Zeige alle Updates" #: bookwyrm/templates/snippets/readthrough.html:30 msgid "Delete this progress update" -msgstr "" +msgstr "Dieses Fortschrittsupdate löschen" #: bookwyrm/templates/snippets/readthrough.html:40 msgid "started" -msgstr "" +msgstr "Angefangen" #: bookwyrm/templates/snippets/readthrough.html:46 #: bookwyrm/templates/snippets/readthrough.html:60 msgid "Edit read dates" -msgstr "" +msgstr "Lesedaten bearbeiten" #: bookwyrm/templates/snippets/readthrough.html:50 msgid "Delete these read dates" -msgstr "" +msgstr "Diese Lesedaten löschen" #: bookwyrm/templates/snippets/readthrough_form.html:7 #: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:19 #: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:17 msgid "Started reading" -msgstr "" +msgstr "Zu lesen angefangen" #: bookwyrm/templates/snippets/readthrough_form.html:14 msgid "Progress" -msgstr "" +msgstr "Fortschritt" #: bookwyrm/templates/snippets/readthrough_form.html:30 #: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:25 msgid "Finished reading" -msgstr "" +msgstr "Lesen beendet" #: bookwyrm/templates/snippets/register_form.html:32 msgid "Sign Up" -msgstr "" +msgstr "Registrieren" #: bookwyrm/templates/snippets/rss_title.html:5 #: bookwyrm/templates/snippets/status/status_header.html:9 @@ -1475,42 +1476,42 @@ msgstr "" #: bookwyrm/templates/snippets/rss_title.html:7 #: bookwyrm/templates/snippets/status/status_header.html:11 msgid "reviewed" -msgstr "" +msgstr "bewertet" #: bookwyrm/templates/snippets/rss_title.html:9 #: bookwyrm/templates/snippets/status/status_header.html:13 msgid "commented on" -msgstr "" +msgstr "kommentiert zu" #: bookwyrm/templates/snippets/rss_title.html:11 #: bookwyrm/templates/snippets/status/status_header.html:15 msgid "quoted" -msgstr "" +msgstr "zitiert" #: bookwyrm/templates/snippets/search_result_text.html:3 #, python-format msgid "by %(author)s" -msgstr "" +msgstr "von %(author)s" #: bookwyrm/templates/snippets/shelf.html:12 msgid "Published" -msgstr "" +msgstr "Veröffentlicht" #: bookwyrm/templates/snippets/shelf.html:13 msgid "Shelved" -msgstr "" +msgstr "Ins Regal gestellt" #: bookwyrm/templates/snippets/shelf.html:14 msgid "Started" -msgstr "" +msgstr "Gestartet" #: bookwyrm/templates/snippets/shelf.html:15 msgid "Finished" -msgstr "" +msgstr "Beendet" #: bookwyrm/templates/snippets/shelf.html:16 msgid "External links" -msgstr "" +msgstr "Eterne Links" #: bookwyrm/templates/snippets/shelf.html:44 msgid "OpenLibrary" @@ -1518,200 +1519,200 @@ msgstr "" #: bookwyrm/templates/snippets/shelf.html:61 msgid "This shelf is empty." -msgstr "" +msgstr "Dieses Regal ist leer." #: bookwyrm/templates/snippets/shelf.html:67 msgid "Delete shelf" -msgstr "" +msgstr "Regal löschen" #: bookwyrm/templates/snippets/shelf_selector.html:4 msgid "Change shelf" -msgstr "" +msgstr "Regal wechseln" #: bookwyrm/templates/snippets/shelf_selector.html:27 msgid "Unshelve" -msgstr "" +msgstr "Vom Regal nehmen" #: bookwyrm/templates/snippets/shelve_button/finish_reading_modal.html:5 #, python-format msgid "Finish \"%(book_title)s\"" -msgstr "" +msgstr "\"%(book_title)s\" beenden" #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown.html:5 msgid "More shelves" -msgstr "" +msgstr "Mehr Regale" #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:8 msgid "Start reading" -msgstr "" +msgstr "Zu lesen beginnen" #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:11 msgid "Read" -msgstr "" +msgstr "Lesen" #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13 msgid "Finish reading" -msgstr "" +msgstr "Lesen beenden" #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:16 #: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:26 msgid "Want to read" -msgstr "" +msgstr "Auf Leseliste setzen" #: bookwyrm/templates/snippets/shelve_button/start_reading_modal.html:5 #, python-format msgid "Start \"%(book_title)s\"" -msgstr "" +msgstr "\"%(book_title)s\" beginnen" #: bookwyrm/templates/snippets/shelve_button/want_to_read_modal.html:5 #, python-format msgid "Want to Read \"%(book_title)s\"" -msgstr "" +msgstr "\"%(book_title)s\" auf Leseliste setzen" #: bookwyrm/templates/snippets/status/status.html:7 msgid "boosted" -msgstr "" +msgstr "geteilt" #: bookwyrm/templates/snippets/status/status_body.html:24 #: bookwyrm/templates/snippets/status/status_body.html:37 #: bookwyrm/templates/snippets/status/status_body.html:38 msgid "Reply" -msgstr "" +msgstr "Antwort" #: bookwyrm/templates/snippets/status/status_content.html:16 #: bookwyrm/templates/snippets/trimmed_text.html:12 msgid "Show more" -msgstr "" +msgstr "Mehr anzeigen" #: bookwyrm/templates/snippets/status/status_content.html:23 #: bookwyrm/templates/snippets/trimmed_text.html:18 msgid "Show less" -msgstr "" +msgstr "Weniger anzeigen" #: bookwyrm/templates/snippets/status/status_content.html:44 msgid "Open image in new window" -msgstr "" +msgstr "Bild in neuem Fenster öffnen" #: bookwyrm/templates/snippets/status/status_options.html:7 #: bookwyrm/templates/snippets/user_options.html:7 msgid "More options" -msgstr "" +msgstr "Mehr Optionen" #: bookwyrm/templates/snippets/status/status_options.html:17 msgid "Delete post" -msgstr "" +msgstr "Post löschen" #: bookwyrm/templates/snippets/status/status_options.html:23 #: bookwyrm/templates/snippets/user_options.html:13 msgid "Send direct message" -msgstr "" +msgstr "Direktnachricht senden" #: bookwyrm/templates/snippets/switch_edition_button.html:5 msgid "Switch to this edition" -msgstr "" +msgstr "Zu dieser Edition wechseln" #: bookwyrm/templates/snippets/tag.html:14 msgid "Remove tag" -msgstr "" +msgstr "Tag entfernen" #: bookwyrm/templates/tag.html:9 #, python-format msgid "Books tagged \"%(tag.name)s\"" -msgstr "" +msgstr "Mit \"%(tag.name)s\" markierte Bücher" #: bookwyrm/templates/user/create_shelf_form.html:5 msgid "Create New Shelf" -msgstr "" +msgstr "Neues Regal erstellen" #: bookwyrm/templates/user/create_shelf_form.html:22 #: bookwyrm/templates/user/shelf.html:33 msgid "Create shelf" -msgstr "" +msgstr "Regal erstellen" #: bookwyrm/templates/user/edit_shelf_form.html:5 msgid "Edit Shelf" -msgstr "" +msgstr "Regal bearbeiten" #: bookwyrm/templates/user/edit_shelf_form.html:26 msgid "Update shelf" -msgstr "" +msgstr "Regal aktualisieren" #: bookwyrm/templates/user/followers.html:7 #: bookwyrm/templates/user/following.html:7 bookwyrm/templates/user/user.html:9 msgid "User Profile" -msgstr "" +msgstr "Benutzerprofil" #: bookwyrm/templates/user/followers.html:26 #, python-format msgid "%(username)s has no followers" -msgstr "" +msgstr "niemand folgt %(username)s " #: bookwyrm/templates/user/following.html:13 msgid "Following" -msgstr "" +msgstr "Folgend" #: bookwyrm/templates/user/following.html:26 #, python-format msgid "%(username)s isn't following any users" -msgstr "" +msgstr "%(username)s folgt niemandem" #: bookwyrm/templates/user/lists.html:9 msgid "Your Lists" -msgstr "" +msgstr "Deine Listen" #: bookwyrm/templates/user/lists.html:11 #, python-format msgid "Lists: %(username)s" -msgstr "" +msgstr "Listen: %(username)s" #: bookwyrm/templates/user/lists.html:17 msgid "Create new list" -msgstr "" +msgstr "Neue Liste erstellen" #: bookwyrm/templates/user/lists.html:29 msgid "Create list" -msgstr "" +msgstr "Liste Erstellen" #: bookwyrm/templates/user/shelf.html:9 msgid "Your Shelves" -msgstr "" +msgstr "Deine Regale" #: bookwyrm/templates/user/shelf.html:11 #, python-format msgid "%(username)s: Shelves" -msgstr "" +msgstr "%(username)s: Regale" #: bookwyrm/templates/user/shelf.html:54 msgid "Edit shelf" -msgstr "" +msgstr "Regal bearbeiten" #: bookwyrm/templates/user/user.html:15 msgid "Edit profile" -msgstr "" +msgstr "Profil bearbeiten" #: bookwyrm/templates/user/user.html:26 #: bookwyrm/templates/user/user_layout.html:68 msgid "Shelves" -msgstr "" +msgstr "Regale" #: bookwyrm/templates/user/user.html:31 #, python-format msgid "See all %(size)s" -msgstr "" +msgstr "Alle %(size)s anzeigen" #: bookwyrm/templates/user/user.html:44 #, python-format msgid "See all %(shelf_count)s shelves" -msgstr "" +msgstr "Alle %(shelf_count)s Regale anzeigen" #: bookwyrm/templates/user/user.html:56 #, python-format msgid "Set a reading goal for %(year)s" -msgstr "" +msgstr "Leseziel für %(year)s setzen" #: bookwyrm/templates/user/user.html:62 msgid "User Activity" -msgstr "" +msgstr "Nutzer*innenaktivität" #: bookwyrm/templates/user/user.html:65 msgid "RSS feed" @@ -1719,33 +1720,33 @@ msgstr "" #: bookwyrm/templates/user/user.html:76 msgid "No activities yet!" -msgstr "" +msgstr "Noch keine Aktivitäten!" #: bookwyrm/templates/user/user_layout.html:32 msgid "Follow Requests" -msgstr "" +msgstr "Folgeanfragen" #: bookwyrm/templates/user/user_layout.html:50 msgid "Activity" -msgstr "" +msgstr "Aktivität" #: bookwyrm/templates/user/user_layout.html:56 msgid "Reading Goal" -msgstr "" +msgstr "Leseziel" #: bookwyrm/templates/user/user_preview.html:13 #, python-format msgid "Joined %(date)s" -msgstr "" +msgstr "Beigetreten %(date)s" #: bookwyrm/templates/user/user_preview.html:15 #, python-format msgid "%(counter)s follower" msgid_plural "%(counter)s followers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(counter)s Folgende*r" +msgstr[1] "%(counter)s Folgende" #: bookwyrm/templates/user/user_preview.html:16 #, python-format msgid "%(counter)s following" -msgstr "" +msgstr "%(counter)s folgen" From 1777e98a232b21ca3e0e79b3118edd7938211f6b Mon Sep 17 00:00:00 2001 From: tofuwabohu Date: Tue, 2 Mar 2021 22:12:04 +0100 Subject: [PATCH 046/111] 2 more translations --- locale/de_DE/LC_MESSAGES/django.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/locale/de_DE/LC_MESSAGES/django.po b/locale/de_DE/LC_MESSAGES/django.po index 242d7afd2..8d0b9375d 100644 --- a/locale/de_DE/LC_MESSAGES/django.po +++ b/locale/de_DE/LC_MESSAGES/django.po @@ -157,7 +157,7 @@ msgstr "" #: bookwyrm/templates/discover/discover.html:6 msgid "Recent Books" -msgstr "" +msgstr "Aktive Bücher" #: bookwyrm/templates/discover/landing_layout.html:5 msgid "Welcome" @@ -1299,8 +1299,8 @@ msgstr "Annehmen" #, python-format msgid "set a goal to read %(counter)s book in %(year)s" msgid_plural "set a goal to read %(counter)s books in %(year)s" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Setze das Ziel, %(year)s %(counter)s Buch zu lesen" +msgstr[1] "Setze das Ziel, %(year)s %(counter)s Bücher zu lesen" #: bookwyrm/templates/snippets/goal_card.html:21 msgid "Dismiss message" From caed268227185d2a391108b677b0883d931a8133 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Mar 2021 13:36:30 -0800 Subject: [PATCH 047/111] Adds german language to settings --- bookwyrm/settings.py | 1 + locale/de_DE/LC_MESSAGES/django.po | 348 ++++++++++++++++++----------- locale/en_US/LC_MESSAGES/django.po | 8 +- locale/fr_FR/LC_MESSAGES/django.po | 8 +- locale/zh_CN/LC_MESSAGES/django.po | 8 +- 5 files changed, 232 insertions(+), 141 deletions(-) diff --git a/bookwyrm/settings.py b/bookwyrm/settings.py index 6c3bb7d20..499e72a76 100644 --- a/bookwyrm/settings.py +++ b/bookwyrm/settings.py @@ -140,6 +140,7 @@ AUTH_PASSWORD_VALIDATORS = [ LANGUAGE_CODE = 'en-us' LANGUAGES = [ ('en-us', _('English')), + ('de-de', _('German')), ('fr-fr', _('French')), ('zh-cn', _('Simplified Chinese')), ] diff --git a/locale/de_DE/LC_MESSAGES/django.po b/locale/de_DE/LC_MESSAGES/django.po index 8d0b9375d..e45532117 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-03-02 09:32-0800\n" +"POT-Creation-Date: 2021-03-02 21:36+0000\n" "PO-Revision-Date: 2021-03-02 17:19-0800\n" "Last-Translator: Mouse Reeve \n" "Language-Team: English \n" @@ -18,6 +18,69 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: bookwyrm/forms.py:185 +msgid "One Day" +msgstr "" + +#: bookwyrm/forms.py:186 +msgid "One Week" +msgstr "" + +#: bookwyrm/forms.py:187 +msgid "One Month" +msgstr "" + +#: bookwyrm/forms.py:188 +msgid "Does Not Expire" +msgstr "" + +#: bookwyrm/forms.py:190 +#, python-format +msgid "%(count)d uses" +msgstr "" + +#: bookwyrm/forms.py:192 +#, fuzzy +#| msgid "Unlisted" +msgid "Unlimited" +msgstr "Ungelistet" + +#: bookwyrm/models/fields.py:24 +#, python-format +msgid "%(value)s is not a valid remote_id" +msgstr "" + +#: bookwyrm/models/fields.py:33 bookwyrm/models/fields.py:42 +#, python-format +msgid "%(value)s is not a valid username" +msgstr "" + +#: bookwyrm/models/fields.py:164 +#, fuzzy +#| msgid "Server name" +msgid "username" +msgstr "Servername" + +#: bookwyrm/models/fields.py:169 +msgid "A user with that username already exists." +msgstr "" + +#: bookwyrm/settings.py:142 +msgid "English" +msgstr "" + +#: bookwyrm/settings.py:143 +msgid "German" +msgstr "" + +#: bookwyrm/settings.py:144 +msgid "French" +msgstr "" + +#: bookwyrm/settings.py:145 +msgid "Simplified Chinese" +msgstr "" + #: bookwyrm/templates/author.html:16 bookwyrm/templates/author.html:17 #: bookwyrm/templates/edit_author.html:5 msgid "Edit Author" @@ -32,6 +95,10 @@ msgstr "" msgid "Books by %(name)s" msgstr "Bücher von %(name)s" +#: bookwyrm/templates/book.html:21 +msgid "by" +msgstr "" + #: bookwyrm/templates/book.html:29 bookwyrm/templates/book.html:30 #: bookwyrm/templates/edit_book.html:5 msgid "Edit Book" @@ -57,20 +124,39 @@ msgstr "OCLC Nummer:" msgid "ASIN:" msgstr "" +#: bookwyrm/templates/book.html:84 +#, fuzzy, python-format +#| msgid "of %(book.pages)s pages" +msgid "%(format)s, %(pages)s pages" +msgstr "von %(book.pages)s Seiten" + #: bookwyrm/templates/book.html:86 +#, fuzzy, python-format +#| msgid "of %(book.pages)s pages" +msgid "%(pages)s pages" +msgstr "von %(book.pages)s Seiten" + +#: bookwyrm/templates/book.html:91 msgid "View on OpenLibrary" msgstr "In OpenLibrary ansehen" -#: bookwyrm/templates/book.html:98 +#: bookwyrm/templates/book.html:100 +#, python-format +msgid "(%(review_count)s review)" +msgid_plural "(%(review_count)s reviews)" +msgstr[0] "" +msgstr[1] "" + +#: bookwyrm/templates/book.html:106 msgid "Add Description" msgstr "Beschreibung hinzufügen" -#: bookwyrm/templates/book.html:105 bookwyrm/templates/edit_book.html:39 +#: bookwyrm/templates/book.html:113 bookwyrm/templates/edit_book.html:39 #: bookwyrm/templates/lists/form.html:12 msgid "Description:" msgstr "Beschreibung:" -#: bookwyrm/templates/book.html:109 bookwyrm/templates/edit_author.html:78 +#: bookwyrm/templates/book.html:117 bookwyrm/templates/edit_author.html:78 #: bookwyrm/templates/edit_book.html:120 bookwyrm/templates/lists/form.html:42 #: bookwyrm/templates/preferences/edit_user.html:50 #: bookwyrm/templates/settings/site.html:89 @@ -81,7 +167,7 @@ msgstr "Beschreibung:" msgid "Save" msgstr "Speichern" -#: bookwyrm/templates/book.html:110 bookwyrm/templates/book.html:159 +#: bookwyrm/templates/book.html:118 bookwyrm/templates/book.html:167 #: bookwyrm/templates/edit_author.html:79 bookwyrm/templates/edit_book.html:121 #: bookwyrm/templates/snippets/delete_readthrough_modal.html:17 #: bookwyrm/templates/snippets/goal_form.html:32 @@ -92,51 +178,69 @@ msgstr "Speichern" msgid "Cancel" msgstr "Abbrechen" -#: bookwyrm/templates/book.html:142 +#: bookwyrm/templates/book.html:127 +#, fuzzy, python-format +#| msgid "%(title)s by " +msgid "%(count)s editions" +msgstr "%(title)s von" + +#: bookwyrm/templates/book.html:135 +#, fuzzy, python-format +#| msgid "Direct Messages with %(username)s" +msgid "This edition is on your %(shelf_name)s shelf." +msgstr "Direktnachrichten mit %(username)s" + +#: bookwyrm/templates/book.html:141 +#, fuzzy, python-format +#| msgid " added %(book_title)s to your list \"%(list_name)s\"" +msgid "A different edition of this book is on your %(shelf_name)s shelf." +msgstr "hat %(book_title)s zu deiner Liste \"%(list_name)s\" Hinzugefügt" + +#: bookwyrm/templates/book.html:150 msgid "Your reading activity" msgstr "Deine Leseaktivität" -#: bookwyrm/templates/book.html:144 +#: bookwyrm/templates/book.html:152 msgid "Add read dates" msgstr "Lesedaten hinzufügen" -#: bookwyrm/templates/book.html:149 +#: bookwyrm/templates/book.html:157 msgid "You don't have any reading activity for this book." msgstr "Du hast keine Leseaktivität für dieses Buch." -#: bookwyrm/templates/book.html:156 +#: bookwyrm/templates/book.html:164 msgid "Create" msgstr "Erstellen" -#: bookwyrm/templates/book.html:178 +#: bookwyrm/templates/book.html:186 msgid "Tags" msgstr "" -#: bookwyrm/templates/book.html:182 bookwyrm/templates/snippets/tag.html:18 +#: bookwyrm/templates/book.html:190 bookwyrm/templates/snippets/tag.html:18 msgid "Add tag" msgstr "Tag hinzufügen" -#: bookwyrm/templates/book.html:199 +#: bookwyrm/templates/book.html:207 msgid "Subjects" msgstr "Themen" -#: bookwyrm/templates/book.html:210 +#: bookwyrm/templates/book.html:218 msgid "Places" msgstr "Orte" -#: bookwyrm/templates/book.html:221 bookwyrm/templates/layout.html:64 +#: bookwyrm/templates/book.html:229 bookwyrm/templates/layout.html:64 #: bookwyrm/templates/lists/lists.html:4 bookwyrm/templates/lists/lists.html:9 #: bookwyrm/templates/search_results.html:90 #: bookwyrm/templates/user/user_layout.html:62 msgid "Lists" msgstr "Listen" -#: bookwyrm/templates/book.html:250 +#: bookwyrm/templates/book.html:258 msgid "rated it" msgstr "bewertet" #: bookwyrm/templates/components/inline_form.html:8 -#: bookwyrm/templates/feed/feed_layout.html:51 +#: bookwyrm/templates/feed/feed_layout.html:54 msgid "Close" msgstr "Schließen" @@ -341,15 +445,15 @@ msgstr "Du hast momentan keine Nachrichten." msgid "%(tab_title)s Timeline" msgstr "" -#: bookwyrm/templates/feed/feed.html:10 +#: bookwyrm/templates/feed/feed.html:10 bookwyrm/views/feed.py:33 msgid "Home" msgstr "" -#: bookwyrm/templates/feed/feed.html:13 +#: bookwyrm/templates/feed/feed.html:13 bookwyrm/views/feed.py:37 msgid "Local" msgstr "Lokal" -#: bookwyrm/templates/feed/feed.html:16 +#: bookwyrm/templates/feed/feed.html:16 bookwyrm/views/feed.py:41 msgid "Federated" msgstr "Föderiert" @@ -358,8 +462,7 @@ msgid "Announcements" msgstr "Ankündigungen" #: bookwyrm/templates/feed/feed.html:32 -msgid "" -"There aren't any activities right now! Try following a user to get started" +msgid "There aren't any activities right now! Try following a user to get started" msgstr "Hier sind noch keine Aktivitäten! Folge anderen, um loszulegen" #: bookwyrm/templates/feed/feed_layout.html:5 @@ -371,11 +474,30 @@ msgid "Your books" msgstr "Deine Bücher" #: bookwyrm/templates/feed/feed_layout.html:13 -msgid "" -"There are no books here right now! Try searching for a book to get started" +msgid "There are no books here right now! Try searching for a book to get started" msgstr "Hier sind noch keine Bücher! Versuche nach Büchern zu suchen um loszulegen" -#: bookwyrm/templates/feed/feed_layout.html:73 bookwyrm/templates/goal.html:26 +#: bookwyrm/templates/feed/feed_layout.html:23 +#: bookwyrm/templates/user/shelf.html:24 +#, fuzzy +#| msgid "Read" +msgid "To Read" +msgstr "Lesen" + +#: bookwyrm/templates/feed/feed_layout.html:24 +#: bookwyrm/templates/user/shelf.html:24 +#, fuzzy +#| msgid "Start reading" +msgid "Currently Reading" +msgstr "Zu lesen beginnen" + +#: bookwyrm/templates/feed/feed_layout.html:25 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:11 +#: bookwyrm/templates/user/shelf.html:24 +msgid "Read" +msgstr "Lesen" + +#: bookwyrm/templates/feed/feed_layout.html:76 bookwyrm/templates/goal.html:26 #: bookwyrm/templates/snippets/goal_card.html:6 #, python-format msgid "%(year)s Reading Goal" @@ -397,9 +519,7 @@ msgstr "Ziel bearbeiten" #: bookwyrm/templates/goal.html:30 #: bookwyrm/templates/snippets/goal_card.html:13 #, python-format -msgid "" -"Set a goal for how many books you'll finish reading in %(year)s, and track " -"your progress throughout the year." +msgid "Set a goal for how many books you'll finish reading in %(year)s, and track your progress throughout the year." msgstr "Setze dir ein Ziel, wie viele Bücher du %(year)s lesen wirst und behalte deinen Fortschritt über's Jahr im Auge." #: bookwyrm/templates/goal.html:39 @@ -590,11 +710,8 @@ msgid "Contact site admin" msgstr "Admin kontaktieren" #: bookwyrm/templates/layout.html:198 -msgid "" -"BookWyrm is open source software. You can contribute or report issues on GitHub." -msgstr "BookWyrm ist open source Software. Du kannst dich auf GitHub beteiligen oder etwas melden." +msgid "BookWyrm is open source software. You can contribute or report issues on GitHub." +msgstr "BookWyrm ist open source Software. Du kannst dich auf GitHub beteiligen oder etwas melden." #: bookwyrm/templates/lists/create_form.html:5 #: bookwyrm/templates/lists/lists.html:17 @@ -663,8 +780,10 @@ msgid "This list is currently empty" msgstr "Diese Liste ist momentan leer" #: bookwyrm/templates/lists/list.html:35 -msgid "Added by" -msgstr "Hinzugefügt von" +#, fuzzy, python-format +#| msgid "Direct Messages with %(username)s" +msgid "Added by %(username)s" +msgstr "Direktnachrichten mit %(username)s" #: bookwyrm/templates/lists/list.html:41 msgid "Remove" @@ -717,6 +836,12 @@ msgstr "Erstellt von" msgid "Your lists" msgstr "Deine Listen" +#: bookwyrm/templates/lists/lists.html:32 +#, fuzzy, python-format +#| msgid "See all %(size)s" +msgid "See all %(size)s lists" +msgstr "Alle %(size)s anzeigen" + #: bookwyrm/templates/lists/lists.html:40 msgid "Recent Lists" msgstr "Aktuelle Listen" @@ -756,27 +881,18 @@ msgstr "Benachrichtigungen löschen" #: bookwyrm/templates/notifications.html:49 #, python-format -msgid "" -"favorited your review of %(book_title)s" -msgstr "hat deine Bewertung von %(book_title)s favorisiert" +msgid "favorited your review of %(book_title)s" +msgstr "hat deine Bewertung von %(book_title)s favorisiert" #: bookwyrm/templates/notifications.html:51 #, python-format -msgid "" -"favorited your comment on %(book_title)s" -msgstr "hat deinen Kommentar zu %(book_title)s favorisiert" +msgid "favorited your comment on %(book_title)s" +msgstr "hat deinen Kommentar zu %(book_title)s favorisiert" #: bookwyrm/templates/notifications.html:53 #, python-format -msgid "" -"favorited your quote from %(book_title)s" -msgstr " hat dein Zitat aus %(book_title)s" +msgid "favorited your quote from %(book_title)s" +msgstr " hat dein Zitat aus %(book_title)s" #: bookwyrm/templates/notifications.html:55 #, python-format @@ -785,27 +901,18 @@ msgstr "hat deinen Status favorisiert" #: bookwyrm/templates/notifications.html:60 #, python-format -msgid "" -"mentioned you in a review of " -"%(book_title)s" -msgstr "hat dich in einer Bewertung von " -"%(book_title)s erwähnt" +msgid "mentioned you in a review of %(book_title)s" +msgstr "hat dich in einer Bewertung von %(book_title)s erwähnt" #: bookwyrm/templates/notifications.html:62 #, python-format -msgid "" -"mentioned you in a comment on " -"%(book_title)s" -msgstr "hat dich in einem Kommentar zu " -"%(book_title)s erwähnt" +msgid "mentioned you in a comment on %(book_title)s" +msgstr "hat dich in einem Kommentar zu %(book_title)s erwähnt" #: bookwyrm/templates/notifications.html:64 #, python-format -msgid "" -"mentioned you in a quote from " -"%(book_title)s" -msgstr "hat dich in einem Zitat von " -"%(book_title)s erwähnt" +msgid "mentioned you in a quote from %(book_title)s" +msgstr "hat dich in einem Zitat von %(book_title)s erwähnt" #: bookwyrm/templates/notifications.html:66 #, python-format @@ -814,35 +921,23 @@ msgstr "hat dich in einem Status erwähnt" #: bookwyrm/templates/notifications.html:71 #, python-format -msgid "" -"replied to your review of %(book_title)s" -msgstr "hat auf deine Bewertung von %(book_title)s geantwortet " +msgid "replied to your review of %(book_title)s" +msgstr "hat auf deine Bewertung von %(book_title)s geantwortet " #: bookwyrm/templates/notifications.html:73 #, python-format -msgid "" -"replied to your comment on %(book_title)s" -msgstr "hat auf deinen Kommentar zu %(book_title)s geantwortet" +msgid "replied to your comment on %(book_title)s" +msgstr "hat auf deinen Kommentar zu %(book_title)s geantwortet" #: bookwyrm/templates/notifications.html:75 #, python-format -msgid "" -"replied to your quote from %(book_title)s" -msgstr "hat auf dein Zitat aus %(book_title)s geantwortet" +msgid "replied to your quote from %(book_title)s" +msgstr "hat auf dein Zitat aus %(book_title)s geantwortet" #: bookwyrm/templates/notifications.html:77 #, python-format -msgid "" -"replied to your status" -msgstr "hat auf deinen Status geantwortet" +msgid "replied to your status" +msgstr "hat auf deinen Status geantwortet" #: bookwyrm/templates/notifications.html:81 msgid "followed you" @@ -854,27 +949,18 @@ msgstr "hat dir eine Folgeanfrage geschickt" #: bookwyrm/templates/notifications.html:90 #, python-format -msgid "" -"boosted your review of %(book.title)s" -msgstr "hat deine Bewertung von %(book.title)s geteilt" +msgid "boosted your review of %(book.title)s" +msgstr "hat deine Bewertung von %(book.title)s geteilt" #: bookwyrm/templates/notifications.html:92 #, python-format -msgid "" -"boosted your comment on%(book.title)s" -msgstr "hat deinen Kommentar zu%(book.title)s geteilt" +msgid "boosted your comment on%(book.title)s" +msgstr "hat deinen Kommentar zu%(book.title)s geteilt" #: bookwyrm/templates/notifications.html:94 #, python-format -msgid "" -"boosted your quote from %(book.title)s" -msgstr "hat dein Zitat aus %(book.title)s geteilt" +msgid "boosted your quote from %(book.title)s" +msgstr "hat dein Zitat aus %(book.title)s geteilt" #: bookwyrm/templates/notifications.html:96 #, python-format @@ -883,16 +969,12 @@ msgstr "hat deinen Status geteilt" #: bookwyrm/templates/notifications.html:100 #, python-format -msgid "" -" added %(book_title)s to your list " -"\"%(list_name)s\"" +msgid " added %(book_title)s to your list \"%(list_name)s\"" msgstr "hat %(book_title)s zu deiner Liste \"%(list_name)s\" Hinzugefügt" #: bookwyrm/templates/notifications.html:102 #, python-format -msgid "" -" suggested adding %(book_title)s to " -"your list \"%(list_name)s\"" +msgid " suggested adding %(book_title)s to your list \"%(list_name)s\"" msgstr "hat %(book_title)s für deine Liste \"%(list_name)s\" vorgeschlagen" #: bookwyrm/templates/notifications.html:106 @@ -1253,9 +1335,7 @@ msgstr "Diese Lesedaten löschen?" #: bookwyrm/templates/snippets/delete_readthrough_modal.html:7 #, python-format -msgid "" -"You are deleting this readthrough and its %(count)s associated progress " -"updates." +msgid "You are deleting this readthrough and its %(count)s associated progress updates." msgstr "Du löscht diesen Leseforschritt und %(count)s zugehörige Fortschrittsupdates." #: bookwyrm/templates/snippets/delete_readthrough_modal.html:15 @@ -1308,11 +1388,8 @@ msgstr "Nachricht verwerfen" #: bookwyrm/templates/snippets/goal_card.html:22 #, python-format -msgid "" -"You can set or change your reading goal any time from your profile page" -msgstr "Du kannst dein Leseziel jederzeit auf deiner Profilseite setzen oder ändern." +msgid "You can set or change your reading goal any time from your profile page" +msgstr "Du kannst dein Leseziel jederzeit auf deiner Profilseite setzen oder ändern." #: bookwyrm/templates/snippets/goal_form.html:9 msgid "Reading goal:" @@ -1348,17 +1425,13 @@ msgstr "%(percent)s%% komplett!" #: bookwyrm/templates/snippets/goal_progress.html:10 #, python-format -msgid "" -"You've read %(read_count)s of %(goal_count)s books." +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 #, 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." +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." #: bookwyrm/templates/snippets/pagination.html:7 msgid "Previous" @@ -1546,10 +1619,6 @@ msgstr "Mehr Regale" msgid "Start reading" msgstr "Zu lesen beginnen" -#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:11 -msgid "Read" -msgstr "Lesen" - #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:13 msgid "Finish reading" msgstr "Lesen beenden" @@ -1599,7 +1668,9 @@ msgid "More options" msgstr "Mehr Optionen" #: bookwyrm/templates/snippets/status/status_options.html:17 -msgid "Delete post" +#, fuzzy +#| msgid "Delete post" +msgid "Delete status" msgstr "Post löschen" #: bookwyrm/templates/snippets/status/status_options.html:23 @@ -1621,12 +1692,10 @@ msgid "Books tagged \"%(tag.name)s\"" msgstr "Mit \"%(tag.name)s\" markierte Bücher" #: bookwyrm/templates/user/create_shelf_form.html:5 -msgid "Create New Shelf" -msgstr "Neues Regal erstellen" - #: bookwyrm/templates/user/create_shelf_form.html:22 -#: bookwyrm/templates/user/shelf.html:33 -msgid "Create shelf" +#, fuzzy +#| msgid "Create shelf" +msgid "Create Shelf" msgstr "Regal erstellen" #: bookwyrm/templates/user/edit_shelf_form.html:5 @@ -1665,11 +1734,7 @@ msgstr "Deine Listen" msgid "Lists: %(username)s" msgstr "Listen: %(username)s" -#: bookwyrm/templates/user/lists.html:17 -msgid "Create new list" -msgstr "Neue Liste erstellen" - -#: bookwyrm/templates/user/lists.html:29 +#: bookwyrm/templates/user/lists.html:17 bookwyrm/templates/user/lists.html:29 msgid "Create list" msgstr "Liste Erstellen" @@ -1682,6 +1747,10 @@ msgstr "Deine Regale" msgid "%(username)s: Shelves" msgstr "%(username)s: Regale" +#: bookwyrm/templates/user/shelf.html:33 +msgid "Create shelf" +msgstr "Regal erstellen" + #: bookwyrm/templates/user/shelf.html:54 msgid "Edit shelf" msgstr "Regal bearbeiten" @@ -1750,3 +1819,12 @@ msgstr[1] "%(counter)s Folgende" #, python-format msgid "%(counter)s following" msgstr "%(counter)s folgen" + +#~ msgid "Added by" +#~ msgstr "Hinzugefügt von" + +#~ msgid "Create New Shelf" +#~ msgstr "Neues Regal erstellen" + +#~ msgid "Create new list" +#~ msgstr "Neue Liste erstellen" diff --git a/locale/en_US/LC_MESSAGES/django.po b/locale/en_US/LC_MESSAGES/django.po index 25d38437a..33494e076 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-03-02 19:51+0000\n" +"POT-Creation-Date: 2021-03-02 21:36+0000\n" "PO-Revision-Date: 2021-02-28 17:19-0800\n" "Last-Translator: Mouse Reeve \n" "Language-Team: English \n" @@ -66,10 +66,14 @@ msgid "English" msgstr "" #: bookwyrm/settings.py:143 -msgid "French" +msgid "German" msgstr "" #: bookwyrm/settings.py:144 +msgid "French" +msgstr "" + +#: bookwyrm/settings.py:145 msgid "Simplified Chinese" msgstr "" diff --git a/locale/fr_FR/LC_MESSAGES/django.po b/locale/fr_FR/LC_MESSAGES/django.po index 263de6d13..9288363b0 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-03-02 19:51+0000\n" +"POT-Creation-Date: 2021-03-02 21:36+0000\n" "PO-Revision-Date: 2021-03-02 12:37+0100\n" "Last-Translator: Fabien Basmaison \n" "Language-Team: Mouse Reeve \n" @@ -70,10 +70,14 @@ msgid "English" msgstr "" #: bookwyrm/settings.py:143 -msgid "French" +msgid "German" msgstr "" #: bookwyrm/settings.py:144 +msgid "French" +msgstr "" + +#: bookwyrm/settings.py:145 msgid "Simplified Chinese" msgstr "" diff --git a/locale/zh_CN/LC_MESSAGES/django.po b/locale/zh_CN/LC_MESSAGES/django.po index 0f51c6c33..a7b0869ed 100644 --- a/locale/zh_CN/LC_MESSAGES/django.po +++ b/locale/zh_CN/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-03-02 19:51+0000\n" +"POT-Creation-Date: 2021-03-02 21:36+0000\n" "PO-Revision-Date: 2021-03-02 10:35+0000\n" "Last-Translator: Kana \n" "Language-Team: Mouse Reeve \n" @@ -70,10 +70,14 @@ msgid "English" msgstr "" #: bookwyrm/settings.py:143 -msgid "French" +msgid "German" msgstr "" #: bookwyrm/settings.py:144 +msgid "French" +msgstr "" + +#: bookwyrm/settings.py:145 msgid "Simplified Chinese" msgstr "" From df196c787594e5d57e29a14646f152923484cf10 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Mar 2021 13:51:56 -0800 Subject: [PATCH 048/111] Adds compiled german language file --- locale/de_DE/LC_MESSAGES/django.mo | Bin 0 -> 23092 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 locale/de_DE/LC_MESSAGES/django.mo diff --git a/locale/de_DE/LC_MESSAGES/django.mo b/locale/de_DE/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..ebd743358d676536065661036acf2b1a4aff20f9 GIT binary patch literal 23092 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 NpTRLNJr&wW1OP~^?Oy-@ literal 0 HcmV?d00001 From be3c7ac90e09c61eb98fa991b5f942561eb8c936 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Mar 2021 20:17:32 -0800 Subject: [PATCH 049/111] Fixes boost display --- bookwyrm/templates/snippets/status/status.html | 2 +- bookwyrm/templates/snippets/status/status_content.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bookwyrm/templates/snippets/status/status.html b/bookwyrm/templates/snippets/status/status.html index b8925f183..e9ef13805 100644 --- a/bookwyrm/templates/snippets/status/status.html +++ b/bookwyrm/templates/snippets/status/status.html @@ -1,7 +1,7 @@ {% load bookwyrm_tags %} {% load i18n %} {% if not status.deleted %} - {% if status.status_type == 'Boost' %} + {% if status.status_type == 'Announce' %} {% include 'snippets/avatar.html' with user=status.user %} {% include 'snippets/username.html' with user=status.user %} {% trans "boosted" %} diff --git a/bookwyrm/templates/snippets/status/status_content.html b/bookwyrm/templates/snippets/status/status_content.html index bdbf3cfcc..d16c6922b 100644 --- a/bookwyrm/templates/snippets/status/status_content.html +++ b/bookwyrm/templates/snippets/status/status_content.html @@ -32,7 +32,7 @@ {% endif %} - {% if status.content and status.status_type != 'GeneratedNote' and status.status_type != 'Boost' %} + {% if status.content and status.status_type != 'GeneratedNote' and status.status_type != 'Announce' %} {% include 'snippets/trimmed_text.html' with full=status.content|safe %} {% endif %} {% if status.attachments %} From 3ee12345ec5db6ef847e219c2b77e322d6ff4e73 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Mar 2021 20:19:50 -0800 Subject: [PATCH 050/111] Fixes boost notification --- bookwyrm/models/status.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/bookwyrm/models/status.py b/bookwyrm/models/status.py index ba9727f58..6bcd5d93d 100644 --- a/bookwyrm/models/status.py +++ b/bookwyrm/models/status.py @@ -294,14 +294,16 @@ class Boost(ActivityMixin, Status): if not self.boosted_status.user.local: return - notification_model = apps.get_model( - 'bookwyrm.Notification', require_ready=True) - notification_model.objects.create( - user=self.boosted_status.user, - related_status=self.boosted_status, - related_user=self.user, - notification_type='BOOST', - ) + if self.boosted_status.user.local and \ + self.boosted_status.user != self.user: + notification_model = apps.get_model( + 'bookwyrm.Notification', require_ready=True) + notification_model.objects.create( + user=self.boosted_status.user, + related_status=self.boosted_status, + related_user=self.user, + notification_type='BOOST', + ) def delete(self, *args, **kwargs): ''' delete and un-notify ''' From 51cf580813894213f55f404297bfc260120c2550 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Mar 2021 20:24:51 -0800 Subject: [PATCH 051/111] Revert "Fixes boost notification" This reverts commit 3ee12345ec5db6ef847e219c2b77e322d6ff4e73. --- bookwyrm/models/status.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/bookwyrm/models/status.py b/bookwyrm/models/status.py index 6bcd5d93d..ba9727f58 100644 --- a/bookwyrm/models/status.py +++ b/bookwyrm/models/status.py @@ -294,16 +294,14 @@ class Boost(ActivityMixin, Status): if not self.boosted_status.user.local: return - if self.boosted_status.user.local and \ - self.boosted_status.user != self.user: - notification_model = apps.get_model( - 'bookwyrm.Notification', require_ready=True) - notification_model.objects.create( - user=self.boosted_status.user, - related_status=self.boosted_status, - related_user=self.user, - notification_type='BOOST', - ) + notification_model = apps.get_model( + 'bookwyrm.Notification', require_ready=True) + notification_model.objects.create( + user=self.boosted_status.user, + related_status=self.boosted_status, + related_user=self.user, + notification_type='BOOST', + ) def delete(self, *args, **kwargs): ''' delete and un-notify ''' From 714e1f3809a667d2ae2dca6ae7d557073f9e56c3 Mon Sep 17 00:00:00 2001 From: erion Date: Wed, 3 Mar 2021 12:11:28 +0100 Subject: [PATCH 052/111] Reduce Dockerfile size and the number of RUN steps. --- Dockerfile | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 99d2671ce..0f10015c6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,15 +2,12 @@ FROM python:3.9 ENV PYTHONUNBUFFERED 1 -RUN mkdir /app -RUN mkdir /app/static -RUN mkdir /app/images +RUN mkdir /app /app/static /app/images WORKDIR /app COPY requirements.txt /app/ -RUN pip install -r requirements.txt -RUN apt-get update && apt-get install -y gettext libgettextpo-dev +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 /app -COPY ./celerywyrm /app +COPY ./bookwyrm ./celerywyrm /app/ From 0d8eb959ea6a68c7db88f729747a9e413525e8a8 Mon Sep 17 00:00:00 2001 From: Fabien Basmaison Date: Wed, 3 Mar 2021 15:48:04 +0100 Subject: [PATCH 053/111] [profile] Use unique IDs on statuses. --- bookwyrm/templates/user/user.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bookwyrm/templates/user/user.html b/bookwyrm/templates/user/user.html index 5dd24caee..cefaab99f 100644 --- a/bookwyrm/templates/user/user.html +++ b/bookwyrm/templates/user/user.html @@ -67,7 +67,7 @@ {% for activity in activities %} -
    +
    {% include 'snippets/status/status.html' with status=activity %}
    {% endfor %} From a05b14c338aeab3471f0416d5d5ee793c26f7067 Mon Sep 17 00:00:00 2001 From: Fabien Basmaison Date: Wed, 3 Mar 2021 20:10:09 +0100 Subject: [PATCH 054/111] [profile] Various HTML fixes: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Wrap block level elements within block level elements, not inline. - Avoid empty blocks. - Change `
    ` in lists into allowed type of children. - Fix duplicated ID (some change that was not propagated across the template?). - Make the anchor optional in the navbar (interactive elements (`a`, `input`, `button`…) should not appear into other interactive elements). - Remove redundant `role` on main navigation. - Make the modal a modal with `role="dialog". - Use `button` instead of form-less `label`. --- bookwyrm/templates/components/dropdown.html | 2 +- bookwyrm/templates/components/modal.html | 11 ++++++--- bookwyrm/templates/layout.html | 22 +++++++++++------ .../templates/snippets/shelf_selector.html | 2 +- .../snippets/status/status_content.html | 8 ++++--- bookwyrm/templates/snippets/trimmed_text.html | 24 +++++++++++++------ bookwyrm/templates/snippets/username.html | 15 +++++++++++- 7 files changed, 61 insertions(+), 23 deletions(-) diff --git a/bookwyrm/templates/components/dropdown.html b/bookwyrm/templates/components/dropdown.html index 1e45fe51a..72582ddc3 100644 --- a/bookwyrm/templates/components/dropdown.html +++ b/bookwyrm/templates/components/dropdown.html @@ -5,7 +5,7 @@ {% block dropdown-trigger %}{% endblock %} diff --git a/bookwyrm/templates/components/modal.html b/bookwyrm/templates/components/modal.html index 554f9ccde..1110a8eea 100644 --- a/bookwyrm/templates/components/modal.html +++ b/bookwyrm/templates/components/modal.html @@ -1,8 +1,13 @@ - -{% endblock %} +{% endspaceless %}{% endblock %} diff --git a/locale/fr_FR/LC_MESSAGES/django.mo b/locale/fr_FR/LC_MESSAGES/django.mo index 2cddb7935337507fcce9245e070abe10274ca6fb..2620d2499b37f4a2772a7de337251835e38f686a 100644 GIT binary patch delta 7753 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 diff --git a/locale/fr_FR/LC_MESSAGES/django.po b/locale/fr_FR/LC_MESSAGES/django.po index 49f43c4cd..1f85035b2 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-03-04 22:24+0000\n" +"POT-Creation-Date: 2021-03-05 14:10+0000\n" "PO-Revision-Date: 2021-03-02 12:37+0100\n" "Last-Translator: Fabien Basmaison \n" "Language-Team: Mouse Reeve \n" @@ -613,37 +613,42 @@ msgstr "(Rechargez la page pour mettre à jour !" #: bookwyrm/templates/import_status.html:35 msgid "Failed to load" -msgstr "Le chargement a échoué" +msgstr "Items non importés" -#: bookwyrm/templates/import_status.html:59 +#: bookwyrm/templates/import_status.html:42 +#, python-format +msgid "Jump to the bottom of the list to select the %(failed_count)s items which failed to import." +msgstr "Sauter en bas de liste pour sélectionner les %(failed_count)s items n’ayant pu être importés." + +#: bookwyrm/templates/import_status.html:74 msgid "Select all" msgstr "Tout sélectionner" -#: bookwyrm/templates/import_status.html:62 +#: bookwyrm/templates/import_status.html:79 msgid "Retry items" -msgstr "Essayer d’importer les objets sélectionnés de nouveau" +msgstr "Essayer d’importer les items sélectionnés de nouveau" -#: bookwyrm/templates/import_status.html:84 +#: bookwyrm/templates/import_status.html:101 msgid "Successfully imported" msgstr "Importation réussie" -#: bookwyrm/templates/import_status.html:88 +#: bookwyrm/templates/import_status.html:105 #: bookwyrm/templates/lists/curate.html:14 msgid "Book" msgstr "Livre" -#: bookwyrm/templates/import_status.html:91 +#: bookwyrm/templates/import_status.html:108 #: bookwyrm/templates/snippets/create_status_form.html:10 #: bookwyrm/templates/snippets/shelf.html:10 msgid "Title" msgstr "Titre" -#: bookwyrm/templates/import_status.html:94 +#: bookwyrm/templates/import_status.html:111 #: bookwyrm/templates/snippets/shelf.html:11 msgid "Author" msgstr "Auteur ou autrice" -#: bookwyrm/templates/import_status.html:117 +#: bookwyrm/templates/import_status.html:134 msgid "Imported" msgstr "Importé" From b70e728ffb816574f68433b7ff5c1c1441217ac2 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Fri, 5 Mar 2021 06:58:22 -0800 Subject: [PATCH 080/111] Removes the word "cover" from cover alt text Fixes #694 --- bookwyrm/models/book.py | 2 +- bookwyrm/tests/models/test_book_model.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bookwyrm/models/book.py b/bookwyrm/models/book.py index f1f208303..6a1a18b1e 100644 --- a/bookwyrm/models/book.py +++ b/bookwyrm/models/book.py @@ -91,7 +91,7 @@ class Book(BookDataModel): @property def alt_text(self): ''' image alt test ''' - text = '%s cover' % self.title + text = '%s' % self.title if self.edition_info: text += ' (%s)' % self.edition_info return text diff --git a/bookwyrm/tests/models/test_book_model.py b/bookwyrm/tests/models/test_book_model.py index 98d6d446e..b4a099d05 100644 --- a/bookwyrm/tests/models/test_book_model.py +++ b/bookwyrm/tests/models/test_book_model.py @@ -81,7 +81,7 @@ class Book(TestCase): book.save() self.assertEqual(book.edition_info, 'worm, Glorbish language, 2020') self.assertEqual( - book.alt_text, 'Test Edition cover (worm, Glorbish language, 2020)') + book.alt_text, 'Test Edition (worm, Glorbish language, 2020)') def test_get_rank(self): From 91a14d3a1334848132a0474824da8b2ce054f185 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Fri, 5 Mar 2021 07:50:23 -0800 Subject: [PATCH 081/111] Updates alt text in status model tests --- bookwyrm/tests/models/test_status_model.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bookwyrm/tests/models/test_status_model.py b/bookwyrm/tests/models/test_status_model.py index c6911b6df..29be5c072 100644 --- a/bookwyrm/tests/models/test_status_model.py +++ b/bookwyrm/tests/models/test_status_model.py @@ -150,7 +150,7 @@ class Status(TestCase): self.assertEqual(activity['attachment'][0].url, 'https://%s%s' % \ (settings.DOMAIN, self.book.cover.url)) self.assertEqual( - activity['attachment'][0].name, 'Test Edition cover') + activity['attachment'][0].name, 'Test Edition') def test_comment_to_activity(self, _): ''' subclass of the base model version with a "pure" serializer ''' @@ -177,7 +177,7 @@ class Status(TestCase): self.assertEqual(activity['attachment'][0].url, 'https://%s%s' % \ (settings.DOMAIN, self.book.cover.url)) self.assertEqual( - activity['attachment'][0].name, 'Test Edition cover') + activity['attachment'][0].name, 'Test Edition') def test_quotation_to_activity(self, _): ''' subclass of the base model version with a "pure" serializer ''' @@ -207,7 +207,7 @@ class Status(TestCase): self.assertEqual(activity['attachment'][0].url, 'https://%s%s' % \ (settings.DOMAIN, self.book.cover.url)) self.assertEqual( - activity['attachment'][0].name, 'Test Edition cover') + activity['attachment'][0].name, 'Test Edition') def test_review_to_activity(self, _): ''' subclass of the base model version with a "pure" serializer ''' @@ -238,7 +238,7 @@ class Status(TestCase): self.assertEqual(activity['attachment'][0].url, 'https://%s%s' % \ (settings.DOMAIN, self.book.cover.url)) self.assertEqual( - activity['attachment'][0].name, 'Test Edition cover') + activity['attachment'][0].name, 'Test Edition') def test_favorite(self, _): ''' fav a status ''' From 99e5e3e414386bae121cd4da0cd2d2db350916e5 Mon Sep 17 00:00:00 2001 From: Fabien Basmaison Date: Fri, 5 Mar 2021 22:09:56 +0100 Subject: [PATCH 082/111] [import] Show skip link to all when there is more than 10 failed imports. --- bookwyrm/static/css/format.css | 5 +++++ bookwyrm/templates/import_status.html | 14 +++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/bookwyrm/static/css/format.css b/bookwyrm/static/css/format.css index 92e0d92c7..9badfaf0b 100644 --- a/bookwyrm/static/css/format.css +++ b/bookwyrm/static/css/format.css @@ -1,3 +1,8 @@ +html { + scroll-behavior: smooth; + scroll-padding-top: 20%; +} + /* --- --- */ .image { overflow: hidden; diff --git a/bookwyrm/templates/import_status.html b/bookwyrm/templates/import_status.html index 3ee9c4a58..f9ba36bf4 100644 --- a/bookwyrm/templates/import_status.html +++ b/bookwyrm/templates/import_status.html @@ -38,9 +38,13 @@ {% csrf_token %} {% with failed_count=failed_items|length %} - + {% if failed_count > 10 %} +

    + + {% blocktrans %}Jump to the bottom of the list to select the {{ failed_count }} items which failed to import.{% endblocktrans %} + +

    + {% endif %} {% endwith %}
    @@ -64,7 +68,7 @@
    -

    From 703ff60271fe4ad36bf2210949e0b375998df084 Mon Sep 17 00:00:00 2001 From: Henri Bourcereau Date: Mon, 1 Mar 2021 21:09:21 +0100 Subject: [PATCH 083/111] isbn search --- bookwyrm/connectors/abstract_connector.py | 33 ++++++++++++ bookwyrm/connectors/bookwyrm_connector.py | 8 +++ bookwyrm/connectors/connector_manager.py | 33 ++++++++++-- bookwyrm/connectors/openlibrary.py | 16 ++++++ bookwyrm/connectors/self_connector.py | 42 +++++++++++++++ bookwyrm/management/commands/initdb.py | 3 ++ .../0047_connector_isbn_search_url.py | 18 +++++++ bookwyrm/models/connector.py | 1 + bookwyrm/templates/isbn_search_results.html | 33 ++++++++++++ .../connectors/test_abstract_connector.py | 4 ++ .../test_abstract_minimal_connector.py | 6 +++ .../connectors/test_openlibrary_connector.py | 29 ++++++++++ bookwyrm/tests/data/ol_isbn_search.json | 45 ++++++++++++++++ bookwyrm/tests/views/test_isbn.py | 54 +++++++++++++++++++ bookwyrm/tests/views/test_search.py | 4 ++ bookwyrm/urls.py | 3 ++ bookwyrm/views/__init__.py | 1 + bookwyrm/views/isbn.py | 29 ++++++++++ 18 files changed, 358 insertions(+), 4 deletions(-) create mode 100644 bookwyrm/migrations/0047_connector_isbn_search_url.py create mode 100644 bookwyrm/templates/isbn_search_results.html create mode 100644 bookwyrm/tests/data/ol_isbn_search.json create mode 100644 bookwyrm/tests/views/test_isbn.py create mode 100644 bookwyrm/views/isbn.py diff --git a/bookwyrm/connectors/abstract_connector.py b/bookwyrm/connectors/abstract_connector.py index 68ff2a483..e6372438e 100644 --- a/bookwyrm/connectors/abstract_connector.py +++ b/bookwyrm/connectors/abstract_connector.py @@ -26,6 +26,7 @@ class AbstractMinimalConnector(ABC): 'books_url', 'covers_url', 'search_url', + 'isbn_search_url', 'max_query_count', 'name', 'identifier', @@ -61,6 +62,30 @@ class AbstractMinimalConnector(ABC): results.append(self.format_search_result(doc)) return results + def isbn_search(self, query): + ''' isbn search ''' + params = {} + resp = requests.get( + '%s%s' % (self.isbn_search_url, query), + params=params, + headers={ + 'Accept': 'application/json; charset=utf-8', + 'User-Agent': settings.USER_AGENT, + }, + ) + if not resp.ok: + resp.raise_for_status() + try: + data = resp.json() + except ValueError as e: + logger.exception(e) + raise ConnectorException('Unable to parse json response', e) + results = [] + + for doc in self.parse_isbn_search_data(data): + results.append(self.format_isbn_search_result(doc)) + return results + @abstractmethod def get_or_create_book(self, remote_id): ''' pull up a book record by whatever means possible ''' @@ -73,6 +98,14 @@ class AbstractMinimalConnector(ABC): def format_search_result(self, search_result): ''' create a SearchResult obj from json ''' + @abstractmethod + def parse_isbn_search_data(self, data): + ''' turn the result json from a search into a list ''' + + @abstractmethod + def format_isbn_search_result(self, search_result): + ''' create a SearchResult obj from json ''' + class AbstractConnector(AbstractMinimalConnector): ''' generic book data connector ''' diff --git a/bookwyrm/connectors/bookwyrm_connector.py b/bookwyrm/connectors/bookwyrm_connector.py index 00e6c62f1..96b72f267 100644 --- a/bookwyrm/connectors/bookwyrm_connector.py +++ b/bookwyrm/connectors/bookwyrm_connector.py @@ -19,3 +19,11 @@ class Connector(AbstractMinimalConnector): def format_search_result(self, search_result): search_result['connector'] = self return SearchResult(**search_result) + + def parse_isbn_search_data(self, data): + return data + + def format_isbn_search_result(self, search_result): + search_result['connector'] = self + return SearchResult(**search_result) + diff --git a/bookwyrm/connectors/connector_manager.py b/bookwyrm/connectors/connector_manager.py index a63a788eb..053e1f9ef 100644 --- a/bookwyrm/connectors/connector_manager.py +++ b/bookwyrm/connectors/connector_manager.py @@ -1,5 +1,6 @@ ''' interface with whatever connectors the app has ''' import importlib +import re from urllib.parse import urlparse from requests import HTTPError @@ -15,13 +16,31 @@ class ConnectorException(HTTPError): def search(query, min_confidence=0.1): ''' find books based on arbitary keywords ''' results = [] + + # Have we got a ISBN ? + isbn = re.sub('[\W_]', '', query) + maybe_isbn = len(isbn) in [10, 13] # ISBN10 or ISBN13 + dedup_slug = lambda r: '%s/%s/%s' % (r.title, r.author, r.year) result_index = set() for connector in get_connectors(): - try: - result_set = connector.search(query, min_confidence=min_confidence) - except (HTTPError, ConnectorException): - continue + result_set = None + if maybe_isbn: + # Search on ISBN + if not connector.isbn_search_url or connector.isbn_search_url == '': + result_set = [] + else: + try: + result_set = connector.isbn_search(isbn) + except (HTTPError, ConnectorException): + pass + + # if no isbn search or results, we fallback to generic search + if result_set == None or result_set == []: + try: + result_set = connector.search(query, min_confidence=min_confidence) + except (HTTPError, ConnectorException): + continue result_set = [r for r in result_set \ if dedup_slug(r) not in result_index] @@ -41,6 +60,12 @@ def local_search(query, min_confidence=0.1, raw=False): return connector.search(query, min_confidence=min_confidence, raw=raw) +def isbn_local_search(query, raw=False): + ''' only look at local search results ''' + connector = load_connector(models.Connector.objects.get(local=True)) + return connector.isbn_search(query, raw=raw) + + def first_search_result(query, min_confidence=0.1): ''' search until you find a result that fits ''' for connector in get_connectors(): diff --git a/bookwyrm/connectors/openlibrary.py b/bookwyrm/connectors/openlibrary.py index a767a45ac..8d227eef1 100644 --- a/bookwyrm/connectors/openlibrary.py +++ b/bookwyrm/connectors/openlibrary.py @@ -129,6 +129,22 @@ class Connector(AbstractConnector): ) + def parse_isbn_search_data(self, data): + return list(data.values()) + + def format_isbn_search_result(self, search_result): + # build the remote id from the openlibrary key + key = self.books_url + search_result['key'] + authors = search_result.get('authors') or [{'name': 'Unknown'}] + author_names = [ author.get('name') for author in authors] + return SearchResult( + title=search_result.get('title'), + key=key, + author=', '.join(author_names), + connector=self, + year=search_result.get('publish_date'), + ) + def load_edition_data(self, olkey): ''' query openlibrary for editions of a work ''' url = '%s/works/%s/editions' % (self.books_url, olkey) diff --git a/bookwyrm/connectors/self_connector.py b/bookwyrm/connectors/self_connector.py index f57fbc1cc..b3a4d6f9f 100644 --- a/bookwyrm/connectors/self_connector.py +++ b/bookwyrm/connectors/self_connector.py @@ -33,6 +33,31 @@ class Connector(AbstractConnector): search_results.sort(key=lambda r: r.confidence, reverse=True) return search_results + def isbn_search(self, query, raw=False): + ''' search your local database ''' + if not query: + return [] + + filters = [{f: query} for f in ['isbn_10', 'isbn_13']] + results = models.Edition.objects.filter( + reduce(operator.or_, (Q(**f) for f in filters)) + ).distinct() + + # when there are multiple editions of the same work, pick the default. + # it would be odd for this to happen. + results = results.filter(parent_work__default_edition__id=F('id')) \ + or results + + search_results = [] + for result in results: + if raw: + search_results.append(result) + else: + search_results.append(self.format_search_result(result)) + if len(search_results) >= 10: + break + return search_results + def format_search_result(self, search_result): return SearchResult( @@ -47,6 +72,19 @@ class Connector(AbstractConnector): ) + def format_isbn_search_result(self, search_result): + return SearchResult( + title=search_result.title, + key=search_result.remote_id, + author=search_result.author_text, + year=search_result.published_date.year if \ + search_result.published_date else None, + connector=self, + confidence=search_result.rank if \ + hasattr(search_result, 'rank') else 1, + ) + + def is_work_data(self, data): pass @@ -59,6 +97,10 @@ class Connector(AbstractConnector): def get_authors_from_data(self, data): return None + def parse_isbn_search_data(self, data): + ''' it's already in the right format, don't even worry about it ''' + return data + def parse_search_data(self, data): ''' it's already in the right format, don't even worry about it ''' return data diff --git a/bookwyrm/management/commands/initdb.py b/bookwyrm/management/commands/initdb.py index 9fd117871..5759abfcc 100644 --- a/bookwyrm/management/commands/initdb.py +++ b/bookwyrm/management/commands/initdb.py @@ -66,6 +66,7 @@ def init_connectors(): books_url='https://%s/book' % DOMAIN, covers_url='https://%s/images/covers' % DOMAIN, search_url='https://%s/search?q=' % DOMAIN, + isbn_search_url='https://%s/isbn/' % DOMAIN, priority=1, ) @@ -77,6 +78,7 @@ def init_connectors(): books_url='https://bookwyrm.social/book', covers_url='https://bookwyrm.social/images/covers', search_url='https://bookwyrm.social/search?q=', + isbn_search_url='https://bookwyrm.social/isbn/', priority=2, ) @@ -88,6 +90,7 @@ def init_connectors(): books_url='https://openlibrary.org', covers_url='https://covers.openlibrary.org', search_url='https://openlibrary.org/search?q=', + isbn_search_url='https://openlibrary.org/api/books?jscmd=data&format=json&bibkeys=ISBN:', priority=3, ) diff --git a/bookwyrm/migrations/0047_connector_isbn_search_url.py b/bookwyrm/migrations/0047_connector_isbn_search_url.py new file mode 100644 index 000000000..617a89d9d --- /dev/null +++ b/bookwyrm/migrations/0047_connector_isbn_search_url.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.7 on 2021-02-28 16:41 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('bookwyrm', '0046_sitesettings_privacy_policy'), + ] + + operations = [ + migrations.AddField( + model_name='connector', + name='isbn_search_url', + field=models.CharField(blank=True, max_length=255, null=True), + ), + ] diff --git a/bookwyrm/models/connector.py b/bookwyrm/models/connector.py index 6f64cdf3e..c1fbf58bc 100644 --- a/bookwyrm/models/connector.py +++ b/bookwyrm/models/connector.py @@ -22,6 +22,7 @@ class Connector(BookWyrmModel): books_url = models.CharField(max_length=255) covers_url = models.CharField(max_length=255) search_url = models.CharField(max_length=255, null=True, blank=True) + isbn_search_url = models.CharField(max_length=255, null=True, blank=True) politeness_delay = models.IntegerField(null=True, blank=True) #seconds max_query_count = models.IntegerField(null=True, blank=True) diff --git a/bookwyrm/templates/isbn_search_results.html b/bookwyrm/templates/isbn_search_results.html new file mode 100644 index 000000000..a3861a68a --- /dev/null +++ b/bookwyrm/templates/isbn_search_results.html @@ -0,0 +1,33 @@ +{% extends 'layout.html' %} +{% load i18n %} + +{% block title %}{% trans "Search Results" %}{% endblock %} + +{% block content %} +{% with book_results|first as local_results %} +
    +

    {% blocktrans %}Search Results for "{{ query }}"{% endblocktrans %}

    +
    + +
    +
    +

    {% trans "Matching Books" %}

    +
    + {% if not results %} +

    {% blocktrans %}No books found for "{{ query }}"{% endblocktrans %}

    + {% else %} + + {% endif %} +
    + +
    +
    +
    +{% endwith %} +{% endblock %} diff --git a/bookwyrm/tests/connectors/test_abstract_connector.py b/bookwyrm/tests/connectors/test_abstract_connector.py index 6e912858b..1b3821040 100644 --- a/bookwyrm/tests/connectors/test_abstract_connector.py +++ b/bookwyrm/tests/connectors/test_abstract_connector.py @@ -42,6 +42,10 @@ class AbstractConnector(TestCase): return search_result def parse_search_data(self, data): return data + def format_isbn_search_result(self, search_result): + return search_result + def parse_isbn_search_data(self, data): + return data def is_work_data(self, data): return data['type'] == 'work' def get_edition_from_work_data(self, data): diff --git a/bookwyrm/tests/connectors/test_abstract_minimal_connector.py b/bookwyrm/tests/connectors/test_abstract_minimal_connector.py index 0c6d25350..9b939067b 100644 --- a/bookwyrm/tests/connectors/test_abstract_minimal_connector.py +++ b/bookwyrm/tests/connectors/test_abstract_minimal_connector.py @@ -18,6 +18,7 @@ class AbstractConnector(TestCase): books_url='https://example.com/books', covers_url='https://example.com/covers', search_url='https://example.com/search?q=', + isbn_search_url='https://example.com/isbn', ) class TestConnector(abstract_connector.AbstractMinimalConnector): @@ -28,6 +29,10 @@ class AbstractConnector(TestCase): pass def parse_search_data(self, data): return data + def format_isbn_search_result(self, search_result): + return search_result + def parse_isbn_search_data(self, data): + return data self.test_connector = TestConnector('example.com') @@ -39,6 +44,7 @@ class AbstractConnector(TestCase): self.assertEqual(connector.books_url, 'https://example.com/books') self.assertEqual(connector.covers_url, 'https://example.com/covers') self.assertEqual(connector.search_url, 'https://example.com/search?q=') + self.assertEqual(connector.isbn_search_url, 'https://example.com/isbn') self.assertIsNone(connector.name) self.assertEqual(connector.identifier, 'example.com') self.assertIsNone(connector.max_query_count) diff --git a/bookwyrm/tests/connectors/test_openlibrary_connector.py b/bookwyrm/tests/connectors/test_openlibrary_connector.py index 576e353bf..a174300a9 100644 --- a/bookwyrm/tests/connectors/test_openlibrary_connector.py +++ b/bookwyrm/tests/connectors/test_openlibrary_connector.py @@ -27,6 +27,7 @@ class Openlibrary(TestCase): books_url='https://openlibrary.org', covers_url='https://covers.openlibrary.org', search_url='https://openlibrary.org/search?q=', + isbn_search_url='https://openlibrary.org/isbn', ) self.connector = Connector('openlibrary.org') @@ -149,6 +150,34 @@ class Openlibrary(TestCase): self.assertEqual(result.connector, self.connector) + def test_parse_isbn_search_result(self): + ''' extract the results from the search json response ''' + datafile = pathlib.Path(__file__).parent.joinpath( + '../data/ol_isbn_search.json') + search_data = json.loads(datafile.read_bytes()) + result = self.connector.parse_isbn_search_data(search_data) + self.assertIsInstance(result, list) + self.assertEqual(len(result), 1) + + + def test_format_isbn_search_result(self): + ''' translate json from openlibrary into SearchResult ''' + datafile = pathlib.Path(__file__).parent.joinpath( + '../data/ol_isbn_search.json') + search_data = json.loads(datafile.read_bytes()) + results = self.connector.parse_isbn_search_data(search_data) + self.assertIsInstance(results, list) + + result = self.connector.format_isbn_search_result(results[0]) + self.assertIsInstance(result, SearchResult) + self.assertEqual(result.title, 'Les ombres errantes') + self.assertEqual( + result.key, 'https://openlibrary.org/books/OL16262504M') + self.assertEqual(result.author, 'Pascal Quignard') + self.assertEqual(result.year, '2002') + self.assertEqual(result.connector, self.connector) + + @responses.activate def test_load_edition_data(self): ''' format url from key and make request ''' diff --git a/bookwyrm/tests/data/ol_isbn_search.json b/bookwyrm/tests/data/ol_isbn_search.json new file mode 100644 index 000000000..8516ff069 --- /dev/null +++ b/bookwyrm/tests/data/ol_isbn_search.json @@ -0,0 +1,45 @@ +{ + "ISBN:9782070427796": { + "url": "https://openlibrary.org/books/OL16262504M/Les_ombres_errantes", + "key": "/books/OL16262504M", + "title": "Les ombres errantes", + "authors": [ + { + "url": "https://openlibrary.org/authors/OL269675A/Pascal_Quignard", + "name": "Pascal Quignard" + } + ], + "by_statement": "Pascal Quignard.", + "identifiers": { + "goodreads": [ + "1835483" + ], + "librarything": [ + "983474" + ], + "isbn_10": [ + "207042779X" + ], + "openlibrary": [ + "OL16262504M" + ] + }, + "classifications": { + "dewey_decimal_class": [ + "848/.91403" + ] + }, + "publishers": [ + { + "name": "Gallimard" + } + ], + "publish_places": [ + { + "name": "Paris" + } + ], + "publish_date": "2002", + "notes": "Hardback published Grasset, 2002." + } +} diff --git a/bookwyrm/tests/views/test_isbn.py b/bookwyrm/tests/views/test_isbn.py new file mode 100644 index 000000000..1966702b4 --- /dev/null +++ b/bookwyrm/tests/views/test_isbn.py @@ -0,0 +1,54 @@ +''' test for app action functionality ''' +import json +from unittest.mock import patch + +from django.http import JsonResponse +from django.template.response import TemplateResponse +from django.test import TestCase +from django.test.client import RequestFactory + +from bookwyrm import models, views +from bookwyrm.connectors import abstract_connector +from bookwyrm.settings import DOMAIN + + +class IsbnViews(TestCase): + ''' tag views''' + def setUp(self): + ''' we need basic test data and mocks ''' + self.factory = RequestFactory() + self.local_user = models.User.objects.create_user( + 'mouse@local.com', 'mouse@mouse.com', 'mouseword', + local=True, localname='mouse', + remote_id='https://example.com/users/mouse', + ) + self.work = models.Work.objects.create(title='Test Work') + self.book = models.Edition.objects.create( + title='Test Book', + isbn_13='1234567890123', + remote_id='https://example.com/book/1', + parent_work=self.work + ) + models.Connector.objects.create( + identifier='self', + connector_file='self_connector', + local=True + ) + models.SiteSettings.objects.create() + + + def test_isbn_json_response(self): + ''' searches local data only and returns book data in json format ''' + view = views.Isbn.as_view() + request = self.factory.get('') + with patch('bookwyrm.views.isbn.is_api_request') as is_api: + is_api.return_value = True + response = view(request, isbn='1234567890123') + self.assertIsInstance(response, JsonResponse) + + data = json.loads(response.content) + self.assertEqual(len(data), 1) + self.assertEqual(data[0]['title'], 'Test Book') + self.assertEqual( + data[0]['key'], 'https://%s/book/%d' % (DOMAIN, self.book.id)) + diff --git a/bookwyrm/tests/views/test_search.py b/bookwyrm/tests/views/test_search.py index 655b4563a..5d7109e71 100644 --- a/bookwyrm/tests/views/test_search.py +++ b/bookwyrm/tests/views/test_search.py @@ -64,6 +64,10 @@ class ShelfViews(TestCase): pass def parse_search_data(self, data): pass + def format_isbn_search_result(self, search_result): + return search_result + def parse_isbn_search_data(self, data): + return data models.Connector.objects.create( identifier='example.com', connector_file='openlibrary', diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py index a741088a2..1c3da3016 100644 --- a/bookwyrm/urls.py +++ b/bookwyrm/urls.py @@ -135,6 +135,9 @@ urlpatterns = [ re_path(r'^resolve-book/?$', views.resolve_book), re_path(r'^switch-edition/?$', views.switch_edition), + # isbn + re_path(r'^isbn/(?P\d+)(.json)?/?$', views.Isbn.as_view()), + # author re_path(r'^author/(?P\d+)(.json)?/?$', views.Author.as_view()), re_path(r'^author/(?P\d+)/edit/?$', views.EditAuthor.as_view()), diff --git a/bookwyrm/views/__init__.py b/bookwyrm/views/__init__.py index 2c7cdc461..dd601b28b 100644 --- a/bookwyrm/views/__init__.py +++ b/bookwyrm/views/__init__.py @@ -31,3 +31,4 @@ from .site import Site from .status import CreateStatus, DeleteStatus from .updates import Updates from .user import User, EditUser, Followers, Following +from .isbn import Isbn diff --git a/bookwyrm/views/isbn.py b/bookwyrm/views/isbn.py new file mode 100644 index 000000000..e5539ba3a --- /dev/null +++ b/bookwyrm/views/isbn.py @@ -0,0 +1,29 @@ +''' isbn search view ''' +from django.http import HttpResponseNotFound +from django.http import JsonResponse +from django.shortcuts import get_object_or_404, redirect +from django.template.response import TemplateResponse +from django.utils.decorators import method_decorator +from django.views import View +from django.views.decorators.http import require_POST + +from bookwyrm import forms, models +from bookwyrm.connectors import connector_manager +from .helpers import is_api_request + +# pylint: disable= no-self-use +class Isbn(View): + ''' search a book by isbn ''' + def get(self, request, isbn): + ''' info about a book ''' + book_results = connector_manager.isbn_local_search(isbn) + + if is_api_request(request): + return JsonResponse([r.json() for r in book_results], safe=False) + + data = { + 'title': 'ISBN Search Results', + 'results': book_results, + 'query': isbn, + } + return TemplateResponse(request, 'isbn_search_results.html', data) From a52fee4ccfdd400ad07b2c291e8fb53462e8d486 Mon Sep 17 00:00:00 2001 From: Fabien Basmaison Date: Sat, 6 Mar 2021 21:18:39 +0100 Subject: [PATCH 084/111] Remove (potentially useful) unused CSS. --- bookwyrm/static/css/format.css | 32 -------------------------------- 1 file changed, 32 deletions(-) diff --git a/bookwyrm/static/css/format.css b/bookwyrm/static/css/format.css index 9badfaf0b..435d8eb9e 100644 --- a/bookwyrm/static/css/format.css +++ b/bookwyrm/static/css/format.css @@ -161,35 +161,3 @@ html { content: "\e905"; right: 0; } - -/** - * Accessibility (a11y) - ============================================================================ */ - -/** - * Skip links - * - * @see https://webaim.org/styles/main.css - ---------------------------------------------------------------------------- */ -.skip-link { - position: absolute; - opacity: 0; - z-index: 100; - padding: 6px; - border: 1px solid white; - color: white; - background: #BF1722; - transition: opacity 1s ease-out; -} - -.skip-link:focus { - opacity: 1; - outline-color: transparent; - transition: opacity .1s ease-in; -} - -@media (prefers-reduced-motion: reduce) { - .skip-link { - transition-duration: 0.001ms !important; - } -} From 9ed18a2b1d20f5c052d1331e30265fbf1f8e5a4e Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 6 Mar 2021 13:11:44 -0800 Subject: [PATCH 085/111] Fixes display name showing up on user page --- bookwyrm/templates/user/user.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bookwyrm/templates/user/user.html b/bookwyrm/templates/user/user.html index cefaab99f..52a915610 100644 --- a/bookwyrm/templates/user/user.html +++ b/bookwyrm/templates/user/user.html @@ -1,7 +1,7 @@ {% extends 'user/user_layout.html' %} {% load i18n %} -{% block title %}{{ user.name }}{% endblock %} +{% block title %}{{ user.display_name }}{% endblock %} {% block header %}
    From 9536f0058af4eaebe8b9aa51c910c70164f2edaf Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 6 Mar 2021 13:43:20 -0800 Subject: [PATCH 086/111] Testing out a Black github action --- .github/workflows/black.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/workflows/black.yml diff --git a/.github/workflows/black.yml b/.github/workflows/black.yml new file mode 100644 index 000000000..de770ccee --- /dev/null +++ b/.github/workflows/black.yml @@ -0,0 +1,13 @@ +name: Lint + +on: [push, pull_request] + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + - uses: psf/black@stable + with: + args: ". --check -l 80 -S" From 09c5275ec41efb0a7467081e24b98668de7a299c Mon Sep 17 00:00:00 2001 From: erion Date: Sun, 7 Mar 2021 13:18:10 +0100 Subject: [PATCH 087/111] Fix typo. --- bookwyrm/templates/feed/status.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bookwyrm/templates/feed/status.html b/bookwyrm/templates/feed/status.html index fc92f8556..9f90f355d 100644 --- a/bookwyrm/templates/feed/status.html +++ b/bookwyrm/templates/feed/status.html @@ -4,7 +4,7 @@ {% block panel %}
    - + {% trans "Back" %}
    From cb8ec01ccfff8ca71296226aea19f4050a5a12b8 Mon Sep 17 00:00:00 2001 From: erion Date: Sun, 7 Mar 2021 13:55:50 +0100 Subject: [PATCH 088/111] Indicate which page is the current. --- bookwyrm/templates/feed/feed.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bookwyrm/templates/feed/feed.html b/bookwyrm/templates/feed/feed.html index 1eae24d4e..4eb363e4a 100644 --- a/bookwyrm/templates/feed/feed.html +++ b/bookwyrm/templates/feed/feed.html @@ -6,13 +6,13 @@

    {% blocktrans %}{{ tab_title }} Timeline{% endblocktrans %}

    From ae8d39995d514f62b2a83e1e401f3244dcb7938b Mon Sep 17 00:00:00 2001 From: erion Date: Sun, 7 Mar 2021 14:39:18 +0100 Subject: [PATCH 089/111] Hide avatar image to screen readers on the status pages, since there is a link present for a user already. --- bookwyrm/templates/snippets/avatar.html | 2 +- bookwyrm/templates/snippets/status/status_header.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bookwyrm/templates/snippets/avatar.html b/bookwyrm/templates/snippets/avatar.html index ca49075cf..6d27cd856 100644 --- a/bookwyrm/templates/snippets/avatar.html +++ b/bookwyrm/templates/snippets/avatar.html @@ -1,3 +1,3 @@ {% load bookwyrm_tags %} -{{ user.alt_text }} +{{ user.alt_text }} diff --git a/bookwyrm/templates/snippets/status/status_header.html b/bookwyrm/templates/snippets/status/status_header.html index 2b9418200..a9a8d72c5 100644 --- a/bookwyrm/templates/snippets/status/status_header.html +++ b/bookwyrm/templates/snippets/status/status_header.html @@ -1,6 +1,6 @@ {% load bookwyrm_tags %} {% load i18n %} -{% include 'snippets/avatar.html' with user=status.user %} +{% include 'snippets/avatar.html' with user=status.user ariaHide="true" %} {% include 'snippets/username.html' with user=status.user %} {% if status.status_type == 'GeneratedNote' %} From 9082eefd8fd7073342af5116ac2432b82cb6a28d Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 7 Mar 2021 07:08:19 -0800 Subject: [PATCH 090/111] Sets specific proportions for book page columns --- bookwyrm/templates/book.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bookwyrm/templates/book.html b/bookwyrm/templates/book.html index d80daca24..ec6c504aa 100644 --- a/bookwyrm/templates/book.html +++ b/bookwyrm/templates/book.html @@ -35,7 +35,7 @@
    -
    +
    {% include 'snippets/book_cover.html' with book=book size=large %} {% include 'snippets/rate_action.html' with user=request.user book=book %} {% include 'snippets/shelve_button/shelve_button.html' %} @@ -93,7 +93,7 @@
    -
    +

    {% include 'snippets/stars.html' with rating=rating %} @@ -201,7 +201,7 @@

    -
    +
    {% if book.subjects %}

    {% trans "Subjects" %}

    From 9c94be8804b3bc7bcdb5c5bfbcb9bba83ffb4972 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 7 Mar 2021 07:35:38 -0800 Subject: [PATCH 091/111] Fixes typo in subject places block --- bookwyrm/templates/book.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bookwyrm/templates/book.html b/bookwyrm/templates/book.html index ec6c504aa..c4cede2ed 100644 --- a/bookwyrm/templates/book.html +++ b/bookwyrm/templates/book.html @@ -217,7 +217,7 @@

    {% trans "Places" %}

      - {% for place in book.subject_placess %} + {% for place in book.subject_places %}
    • {{ place }}
    • {% endfor %}
    From e5bdb4b9d1a9ef38ad49227362df28d1d9945099 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 7 Mar 2021 07:35:50 -0800 Subject: [PATCH 092/111] Make empty cover value null --- bookwyrm/activitypub/book.py | 2 +- bookwyrm/tests/actions/__init__.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 bookwyrm/tests/actions/__init__.py diff --git a/bookwyrm/activitypub/book.py b/bookwyrm/activitypub/book.py index 87c40c90a..8c32be967 100644 --- a/bookwyrm/activitypub/book.py +++ b/bookwyrm/activitypub/book.py @@ -26,7 +26,7 @@ class Book(ActivityObject): librarythingKey: str = '' goodreadsKey: str = '' - cover: Image = field(default_factory=lambda: {}) + cover: Image = None type: str = 'Book' diff --git a/bookwyrm/tests/actions/__init__.py b/bookwyrm/tests/actions/__init__.py deleted file mode 100644 index b6e690fd5..000000000 --- a/bookwyrm/tests/actions/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from . import * From b895059f03f25a866cffde77d600c8a5cb8f3034 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 7 Mar 2021 07:42:02 -0800 Subject: [PATCH 093/111] Uses same alt text generation for books with no cover --- bookwyrm/templates/snippets/book_cover.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bookwyrm/templates/snippets/book_cover.html b/bookwyrm/templates/snippets/book_cover.html index 6d15b37f8..921378537 100644 --- a/bookwyrm/templates/snippets/book_cover.html +++ b/bookwyrm/templates/snippets/book_cover.html @@ -6,8 +6,7 @@
    No cover
    -

    {{ book.title }}

    -

    ({{ book.edition_info }})

    +

    {{ book.alt_text }}

    {% endif %} From dfecdca6f93bb4f52c4a7ac9f807041fab816495 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 7 Mar 2021 07:56:33 -0800 Subject: [PATCH 094/111] Fixes display of ratings --- bookwyrm/templates/book.html | 4 ++-- bookwyrm/templates/layout.html | 2 +- bookwyrm/templates/snippets/username.html | 4 +--- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/bookwyrm/templates/book.html b/bookwyrm/templates/book.html index c4cede2ed..06578e894 100644 --- a/bookwyrm/templates/book.html +++ b/bookwyrm/templates/book.html @@ -254,8 +254,8 @@
    {% include 'snippets/username.html' with user=rating.user %}
    -
    -
    {% trans "rated it" %}
    +
    +

    {% trans "rated it" %}

    {% include 'snippets/stars.html' with rating=rating.rating %}
    diff --git a/bookwyrm/templates/layout.html b/bookwyrm/templates/layout.html index ee42b4f6e..8a708f633 100644 --- a/bookwyrm/templates/layout.html +++ b/bookwyrm/templates/layout.html @@ -79,7 +79,7 @@ aria-controls="navbar-dropdown" > {% include 'snippets/avatar.html' with user=request.user %} - {% include 'snippets/username.html' with user=request.user anchor=false %} + {% include 'snippets/username.html' with user=request.user anchor=false %}
    -{% include 'snippets/delete_readthrough_modal.html' with controls_text="delete-readthrough" controls_uid=readthrough.id %} +{% include 'snippets/delete_readthrough_modal.html' with controls_text="delete-readthrough" controls_uid=readthrough.id no_body=True %} From 5ddb3b810e800648d8607026d97bdad611cb4d65 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 7 Mar 2021 08:37:39 -0800 Subject: [PATCH 096/111] Don't show books lists when item isn't approved --- bookwyrm/views/books.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bookwyrm/views/books.py b/bookwyrm/views/books.py index 4d6afba96..cf246446c 100644 --- a/bookwyrm/views/books.py +++ b/bookwyrm/views/books.py @@ -89,7 +89,7 @@ class Book(View): 'rating': reviews.aggregate(Avg('rating'))['rating__avg'], 'tags': models.UserTag.objects.filter(book=book), 'lists': privacy_filter( - request.user, book.list_set.all() + request.user, book.list_set.filter(listitem__approved=True) ), 'user_tags': user_tags, 'user_shelves': user_shelves, From a70264c12c71b1a08ee86d53da71480cc769c7a1 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 7 Mar 2021 08:42:30 -0800 Subject: [PATCH 097/111] Fixes showing link to user lists --- bookwyrm/templates/snippets/status/status_header.html | 2 ++ bookwyrm/templates/user/user_layout.html | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/bookwyrm/templates/snippets/status/status_header.html b/bookwyrm/templates/snippets/status/status_header.html index a9a8d72c5..cecdddf61 100644 --- a/bookwyrm/templates/snippets/status/status_header.html +++ b/bookwyrm/templates/snippets/status/status_header.html @@ -1,7 +1,9 @@ {% load bookwyrm_tags %} {% load i18n %} + {% include 'snippets/avatar.html' with user=status.user ariaHide="true" %} {% include 'snippets/username.html' with user=status.user %} + {% if status.status_type == 'GeneratedNote' %} {{ status.content | safe }} diff --git a/bookwyrm/templates/user/user_layout.html b/bookwyrm/templates/user/user_layout.html index d76291608..75dc61dc3 100644 --- a/bookwyrm/templates/user/user_layout.html +++ b/bookwyrm/templates/user/user_layout.html @@ -56,7 +56,7 @@ {% trans "Reading Goal" %}
  • {% endif %} - {% if is_self or user.lists.exists %} + {% if is_self or user.list_set.exists %} {% url 'user-lists' user|username as url %} {% trans "Lists" %} From ec92aff7930c4f4d2749d939c7c3704ce20fc7fe Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 7 Mar 2021 08:50:07 -0800 Subject: [PATCH 098/111] Clearer notification preview for generated notes --- bookwyrm/templates/notifications.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bookwyrm/templates/notifications.html b/bookwyrm/templates/notifications.html index 007e6b053..d27196ba9 100644 --- a/bookwyrm/templates/notifications.html +++ b/bookwyrm/templates/notifications.html @@ -114,7 +114,9 @@
    {% if related_status.content %} - {{ related_status.content | safe | truncatewords_html:10 }} + + {{ related_status.content | safe | truncatewords_html:10 }}{% if related_status.mention_books %} {{ related_status.mention_books.first.title }}{% endif %} + {% elif related_status.quote %} {{ related_status.quote | safe | truncatewords_html:10 }} {% elif related_status.rating %} From c0ccb7065c450f24ea67c2958603ddc90857c8b3 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 7 Mar 2021 09:22:35 -0800 Subject: [PATCH 099/111] Safer federation of book data changes Only broadcast to other BW instances, plus bonus error handling --- bookwyrm/models/activitypub_mixin.py | 2 +- bookwyrm/models/book.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/bookwyrm/models/activitypub_mixin.py b/bookwyrm/models/activitypub_mixin.py index bebe00d02..10015bf14 100644 --- a/bookwyrm/models/activitypub_mixin.py +++ b/bookwyrm/models/activitypub_mixin.py @@ -449,7 +449,7 @@ def broadcast_task(sender_id, activity, recipients): for recipient in recipients: try: sign_and_send(sender, activity, recipient) - except (HTTPError, SSLError) as e: + except (HTTPError, SSLError, ConnectionError) as e: logger.exception(e) diff --git a/bookwyrm/models/book.py b/bookwyrm/models/book.py index 6a1a18b1e..84bfbc6bd 100644 --- a/bookwyrm/models/book.py +++ b/bookwyrm/models/book.py @@ -37,6 +37,10 @@ class BookDataModel(ObjectMixin, BookWyrmModel): self.remote_id = None return super().save(*args, **kwargs) + def broadcast(self, activity, sender, software='bookwyrm'): + ''' only send book data updates to other bookwyrm instances ''' + super().broadcast(activity, sender, software=software) + class Book(BookDataModel): ''' a generic book, which can mean either an edition or a work ''' From 71bbea83f97ca6cda270180aab940ab882687a7b Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 7 Mar 2021 09:42:31 -0800 Subject: [PATCH 100/111] Adds discard check to favs --- bookwyrm/activitypub/base_activity.py | 2 +- bookwyrm/models/favorite.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/bookwyrm/activitypub/base_activity.py b/bookwyrm/activitypub/base_activity.py index 57f1a7134..c732fe1d3 100644 --- a/bookwyrm/activitypub/base_activity.py +++ b/bookwyrm/activitypub/base_activity.py @@ -102,7 +102,7 @@ class ActivityObject: if allow_create and \ hasattr(model, 'ignore_activity') and \ model.ignore_activity(self): - return None + raise ActivitySerializerError() # check for an existing instance instance = instance or model.find_existing(self.serialize()) diff --git a/bookwyrm/models/favorite.py b/bookwyrm/models/favorite.py index f90195016..66befd80c 100644 --- a/bookwyrm/models/favorite.py +++ b/bookwyrm/models/favorite.py @@ -17,6 +17,11 @@ class Favorite(ActivityMixin, BookWyrmModel): activity_serializer = activitypub.Like + @classmethod + def ignore_activity(cls, activity): + ''' don't bother with incoming favs of unknown statuses ''' + return cls.objects.filter(remote_id=activity.object).exists() + def save(self, *args, **kwargs): ''' update user active time ''' self.user.last_active_date = timezone.now() From 09b77e567f8dc886ed4a505a87d79141fbddc8d2 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 7 Mar 2021 09:44:42 -0800 Subject: [PATCH 101/111] Check for invalid json before verifying signature --- bookwyrm/views/inbox.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/bookwyrm/views/inbox.py b/bookwyrm/views/inbox.py index 4da4e5b6e..46385093c 100644 --- a/bookwyrm/views/inbox.py +++ b/bookwyrm/views/inbox.py @@ -20,7 +20,7 @@ class Inbox(View): ''' requests sent by outside servers''' def post(self, request, username=None): ''' only works as POST request ''' - # first let's do some basic checks to see if this is legible + # make sure the user's inbox even exists if username: try: models.User.objects.get(localname=username) @@ -33,6 +33,11 @@ class Inbox(View): except json.decoder.JSONDecodeError: return HttpResponseBadRequest() + if not 'object' in activity_json or \ + not 'type' in activity_json or \ + not activity_json['type'] in activitypub.activity_objects: + return HttpResponseNotFound() + # verify the signature if not has_valid_signature(request, activity_json): if activity_json['type'] == 'Delete': @@ -42,12 +47,6 @@ class Inbox(View): return HttpResponse() return HttpResponse(status=401) - # just some quick smell tests before we try to parse the json - if not 'object' in activity_json or \ - not 'type' in activity_json or \ - not activity_json['type'] in activitypub.activity_objects: - return HttpResponseNotFound() - activity_task.delay(activity_json) return HttpResponse() @@ -63,7 +62,11 @@ def activity_task(activity_json): # cool that worked, now we should do the action described by the type # (create, update, delete, etc) - activity.action() + try: + activity.action() + except activitypub.ActivitySerializerError: + # this is raised if the activity is discarded + return def has_valid_signature(request, activity): From 47cf77145d19adb1ffc11364a8f45ec948ec8018 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 7 Mar 2021 09:45:02 -0800 Subject: [PATCH 102/111] Updates tests for inbox tweaks --- bookwyrm/models/favorite.py | 2 +- bookwyrm/tests/views/test_inbox.py | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/bookwyrm/models/favorite.py b/bookwyrm/models/favorite.py index 66befd80c..de500e51b 100644 --- a/bookwyrm/models/favorite.py +++ b/bookwyrm/models/favorite.py @@ -20,7 +20,7 @@ class Favorite(ActivityMixin, BookWyrmModel): @classmethod def ignore_activity(cls, activity): ''' don't bother with incoming favs of unknown statuses ''' - return cls.objects.filter(remote_id=activity.object).exists() + return not cls.objects.filter(remote_id=activity.object).exists() def save(self, *args, **kwargs): ''' update user active time ''' diff --git a/bookwyrm/tests/views/test_inbox.py b/bookwyrm/tests/views/test_inbox.py index ff55ad042..b0bd3e42f 100644 --- a/bookwyrm/tests/views/test_inbox.py +++ b/bookwyrm/tests/views/test_inbox.py @@ -74,7 +74,7 @@ class Inbox(TestCase): mock_valid.return_value = False result = self.client.post( '/user/mouse/inbox', - '{"type": "Test", "object": "exists"}', + '{"type": "Announce", "object": "exists"}', content_type="application/json" ) self.assertEqual(result.status_code, 401) @@ -494,6 +494,21 @@ class Inbox(TestCase): self.assertEqual(fav.remote_id, 'https://example.com/fav/1') self.assertEqual(fav.user, self.remote_user) + def test_ignore_favorite(self): + ''' don't try to save an unknown status ''' + activity = { + '@context': 'https://www.w3.org/ns/activitystreams', + 'id': 'https://example.com/fav/1', + 'actor': 'https://example.com/users/rat', + 'type': 'Like', + 'published': 'Mon, 25 May 2020 19:31:20 GMT', + 'object': 'https://unknown.status/not-found', + } + + views.inbox.activity_task(activity) + + self.assertFalse(models.Favorite.objects.exists()) + def test_handle_unfavorite(self): ''' fav a status ''' activity = { From 0bd27928e4d0641738a7fffe0b6d51e73e26b8e7 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 7 Mar 2021 10:24:46 -0800 Subject: [PATCH 103/111] Removes username snippet --- bookwyrm/templates/book.html | 2 +- bookwyrm/templates/layout.html | 2 +- bookwyrm/templates/lists/created_text.html | 10 ++++++++++ bookwyrm/templates/lists/curate.html | 2 +- bookwyrm/templates/lists/list_items.html | 5 +++-- bookwyrm/templates/lists/list_layout.html | 5 +++-- bookwyrm/templates/notifications.html | 6 ++++-- bookwyrm/templates/preferences/blocks.html | 2 +- bookwyrm/templates/search_results.html | 6 ++++-- bookwyrm/templates/snippets/status/status.html | 6 ++++-- .../templates/snippets/status/status_header.html | 14 ++++++++++++-- bookwyrm/templates/snippets/username.html | 13 ------------- bookwyrm/templates/user/followers.html | 13 ++++++++----- bookwyrm/templates/user/following.html | 7 +++++-- bookwyrm/templates/user/user_layout.html | 2 +- 15 files changed, 58 insertions(+), 37 deletions(-) create mode 100644 bookwyrm/templates/lists/created_text.html delete mode 100644 bookwyrm/templates/snippets/username.html diff --git a/bookwyrm/templates/book.html b/bookwyrm/templates/book.html index 06578e894..16bf11972 100644 --- a/bookwyrm/templates/book.html +++ b/bookwyrm/templates/book.html @@ -252,7 +252,7 @@
    {% include 'snippets/avatar.html' with user=rating.user %}
    - {% include 'snippets/username.html' with user=rating.user %} + {{ rating.user.display_name }}

    {% trans "rated it" %}

    diff --git a/bookwyrm/templates/layout.html b/bookwyrm/templates/layout.html index 8a708f633..377acb6c5 100644 --- a/bookwyrm/templates/layout.html +++ b/bookwyrm/templates/layout.html @@ -79,7 +79,7 @@ aria-controls="navbar-dropdown" > {% include 'snippets/avatar.html' with user=request.user %} - {% include 'snippets/username.html' with user=request.user anchor=false %} + {{ user.display_name }}