From 688978369f3615e8a4d5b6743c97ecaf8a18e782 Mon Sep 17 00:00:00 2001 From: CSDUMMI Date: Tue, 5 Sep 2023 22:35:26 +0000 Subject: [PATCH 001/184] Implement self-contained archives to import and export entire users between instances (#38) Co-authored-by: Daniel Burgess Co-authored-by: Hugh Rundle Co-authored-by: dannymate Co-authored-by: hughrun Reviewed-on: https://codeberg.org/GuildAlpha/bookwyrm/pulls/38 Co-authored-by: CSDUMMI Co-committed-by: CSDUMMI --- bookwyrm/forms/forms.py | 4 + bookwyrm/importers/__init__.py | 1 + bookwyrm/importers/bookwyrm_import.py | 19 + ...ob_bookwyrmimportjob_childjob_parentjob.py | 165 ++++++ .../migrations/0182_merge_20230905_2240.py | 13 + bookwyrm/models/__init__.py | 1 + bookwyrm/models/bookwyrm_export_job.py | 216 +++++++ bookwyrm/models/bookwyrm_import_job.py | 505 ++++++++++++++++ bookwyrm/models/job.py | 290 +++++++++ bookwyrm/templates/import/import_user.html | 163 ++++++ .../templates/preferences/export-user.html | 89 +++ bookwyrm/templates/preferences/export.html | 6 +- bookwyrm/templates/preferences/layout.html | 12 +- .../tests/data/bookwyrm_account_export.json | 452 +++++++++++++++ .../tests/data/bookwyrm_account_export.tar.gz | Bin 0 -> 161361 bytes bookwyrm/tests/data/simple_user_export.json | 26 + .../models/test_bookwyrm_import_model.py | 548 ++++++++++++++++++ bookwyrm/tests/utils/test_tar.py | 23 + .../tests/views/imports/test_user_import.py | 68 +++ .../views/preferences/test_export_user.py | 74 +++ bookwyrm/urls.py | 11 + bookwyrm/utils/tar.py | 40 ++ bookwyrm/views/__init__.py | 4 +- bookwyrm/views/imports/import_data.py | 46 ++ bookwyrm/views/preferences/export.py | 50 ++ 25 files changed, 2819 insertions(+), 7 deletions(-) create mode 100644 bookwyrm/importers/bookwyrm_import.py create mode 100644 bookwyrm/migrations/0179_bookwyrmexportjob_bookwyrmimportjob_childjob_parentjob.py create mode 100644 bookwyrm/migrations/0182_merge_20230905_2240.py create mode 100644 bookwyrm/models/bookwyrm_export_job.py create mode 100644 bookwyrm/models/bookwyrm_import_job.py create mode 100644 bookwyrm/models/job.py create mode 100644 bookwyrm/templates/import/import_user.html create mode 100644 bookwyrm/templates/preferences/export-user.html create mode 100644 bookwyrm/tests/data/bookwyrm_account_export.json create mode 100644 bookwyrm/tests/data/bookwyrm_account_export.tar.gz create mode 100644 bookwyrm/tests/data/simple_user_export.json create mode 100644 bookwyrm/tests/models/test_bookwyrm_import_model.py create mode 100644 bookwyrm/tests/utils/test_tar.py create mode 100644 bookwyrm/tests/views/imports/test_user_import.py create mode 100644 bookwyrm/tests/views/preferences/test_export_user.py create mode 100644 bookwyrm/utils/tar.py diff --git a/bookwyrm/forms/forms.py b/bookwyrm/forms/forms.py index ea6093750..3d555f308 100644 --- a/bookwyrm/forms/forms.py +++ b/bookwyrm/forms/forms.py @@ -25,6 +25,10 @@ class ImportForm(forms.Form): csv_file = forms.FileField() +class ImportUserForm(forms.Form): + archive_file = forms.FileField() + + class ShelfForm(CustomForm): class Meta: model = models.Shelf diff --git a/bookwyrm/importers/__init__.py b/bookwyrm/importers/__init__.py index 6ce50f160..8e92872f2 100644 --- a/bookwyrm/importers/__init__.py +++ b/bookwyrm/importers/__init__.py @@ -1,6 +1,7 @@ """ import classes """ from .importer import Importer +from .bookwyrm_import import BookwyrmImporter from .calibre_import import CalibreImporter from .goodreads_import import GoodreadsImporter from .librarything_import import LibrarythingImporter diff --git a/bookwyrm/importers/bookwyrm_import.py b/bookwyrm/importers/bookwyrm_import.py new file mode 100644 index 000000000..a2eb71725 --- /dev/null +++ b/bookwyrm/importers/bookwyrm_import.py @@ -0,0 +1,19 @@ +"""Import data from Bookwyrm export files""" +from bookwyrm import settings +from bookwyrm.models.bookwyrm_import_job import BookwyrmImportJob + + +class BookwyrmImporter: + """Import a Bookwyrm User export JSON file. + This is kind of a combination of an importer and a connector. + """ + + def process_import(self, user, archive_file, settings): + """import user data from a Bookwyrm export file""" + + required = [k for k in settings if settings.get(k) == "on"] + + job = BookwyrmImportJob.objects.create( + user=user, archive_file=archive_file, required=required + ) + return job diff --git a/bookwyrm/migrations/0179_bookwyrmexportjob_bookwyrmimportjob_childjob_parentjob.py b/bookwyrm/migrations/0179_bookwyrmexportjob_bookwyrmimportjob_childjob_parentjob.py new file mode 100644 index 000000000..d13668cc4 --- /dev/null +++ b/bookwyrm/migrations/0179_bookwyrmexportjob_bookwyrmimportjob_childjob_parentjob.py @@ -0,0 +1,165 @@ +# Generated by Django 3.2.19 on 2023-08-31 22:57 + +from django.conf import settings +import django.contrib.postgres.fields +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ("bookwyrm", "0178_auto_20230328_2132"), + ] + + operations = [ + migrations.CreateModel( + name="ParentJob", + fields=[ + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("task_id", models.UUIDField(blank=True, null=True, unique=True)), + ( + "created_date", + models.DateTimeField(default=django.utils.timezone.now), + ), + ( + "updated_date", + models.DateTimeField(default=django.utils.timezone.now), + ), + ("complete", models.BooleanField(default=False)), + ( + "status", + models.CharField( + choices=[ + ("pending", "Pending"), + ("active", "Active"), + ("complete", "Complete"), + ("stopped", "Stopped"), + ], + default="pending", + max_length=50, + null=True, + ), + ), + ( + "user", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to=settings.AUTH_USER_MODEL, + ), + ), + ], + options={ + "abstract": False, + }, + ), + migrations.CreateModel( + name="BookwyrmExportJob", + fields=[ + ( + "parentjob_ptr", + models.OneToOneField( + auto_created=True, + on_delete=django.db.models.deletion.CASCADE, + parent_link=True, + primary_key=True, + serialize=False, + to="bookwyrm.parentjob", + ), + ), + ("export_data", models.FileField(null=True, upload_to="")), + ], + options={ + "abstract": False, + }, + bases=("bookwyrm.parentjob",), + ), + migrations.CreateModel( + name="BookwyrmImportJob", + fields=[ + ( + "parentjob_ptr", + models.OneToOneField( + auto_created=True, + on_delete=django.db.models.deletion.CASCADE, + parent_link=True, + primary_key=True, + serialize=False, + to="bookwyrm.parentjob", + ), + ), + ("archive_file", models.FileField(blank=True, null=True, upload_to="")), + ("import_data", models.JSONField(null=True)), + ( + "required", + django.contrib.postgres.fields.ArrayField( + base_field=models.CharField(blank=True, max_length=50), + blank=True, + size=None, + ), + ), + ], + options={ + "abstract": False, + }, + bases=("bookwyrm.parentjob",), + ), + migrations.CreateModel( + name="ChildJob", + fields=[ + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("task_id", models.UUIDField(blank=True, null=True, unique=True)), + ( + "created_date", + models.DateTimeField(default=django.utils.timezone.now), + ), + ( + "updated_date", + models.DateTimeField(default=django.utils.timezone.now), + ), + ("complete", models.BooleanField(default=False)), + ( + "status", + models.CharField( + choices=[ + ("pending", "Pending"), + ("active", "Active"), + ("complete", "Complete"), + ("stopped", "Stopped"), + ], + default="pending", + max_length=50, + null=True, + ), + ), + ( + "parent_job", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="child_jobs", + to="bookwyrm.parentjob", + ), + ), + ], + options={ + "abstract": False, + }, + ), + ] diff --git a/bookwyrm/migrations/0182_merge_20230905_2240.py b/bookwyrm/migrations/0182_merge_20230905_2240.py new file mode 100644 index 000000000..83920a9c7 --- /dev/null +++ b/bookwyrm/migrations/0182_merge_20230905_2240.py @@ -0,0 +1,13 @@ +# Generated by Django 3.2.19 on 2023-09-05 22:40 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("bookwyrm", "0179_bookwyrmexportjob_bookwyrmimportjob_childjob_parentjob"), + ("bookwyrm", "0181_merge_20230806_2302"), + ] + + operations = [] diff --git a/bookwyrm/models/__init__.py b/bookwyrm/models/__init__.py index 7b779190b..c2e5308cc 100644 --- a/bookwyrm/models/__init__.py +++ b/bookwyrm/models/__init__.py @@ -26,6 +26,7 @@ from .federated_server import FederatedServer from .group import Group, GroupMember, GroupMemberInvitation from .import_job import ImportJob, ImportItem +from .bookwyrm_import_job import BookwyrmImportJob from .site import SiteSettings, Theme, SiteInvite from .site import PasswordReset, InviteRequest diff --git a/bookwyrm/models/bookwyrm_export_job.py b/bookwyrm/models/bookwyrm_export_job.py new file mode 100644 index 000000000..c262d9b5c --- /dev/null +++ b/bookwyrm/models/bookwyrm_export_job.py @@ -0,0 +1,216 @@ +import logging + +from django.db.models import FileField +from django.db.models import Q +from django.core.serializers.json import DjangoJSONEncoder +from django.core.files.base import ContentFile + +from bookwyrm import models +from bookwyrm.settings import DOMAIN +from bookwyrm.tasks import app, IMPORTS +from bookwyrm.models.job import ParentJob, ParentTask, SubTask, create_child_job +from uuid import uuid4 +from bookwyrm.utils.tar import BookwyrmTarFile + +logger = logging.getLogger(__name__) + + +class BookwyrmExportJob(ParentJob): + """entry for a specific request to export a bookwyrm user""" + + export_data = FileField(null=True) + + def start_job(self): + """Start the job""" + start_export_task.delay(job_id=self.id, no_children=True) + + return self + + +@app.task(queue=IMPORTS, base=ParentTask) +def start_export_task(**kwargs): + """trigger the child tasks for each row""" + job = BookwyrmExportJob.objects.get(id=kwargs["job_id"]) + + # don't start the job if it was stopped from the UI + if job.complete: + return + + # This is where ChildJobs get made + job.export_data = ContentFile(b"", str(uuid4())) + + json_data = json_export(job.user) + tar_export(json_data, job.user, job.export_data) + + job.save(update_fields=["export_data"]) + + +def tar_export(json_data: str, user, f): + f.open("wb") + with BookwyrmTarFile.open(mode="w:gz", fileobj=f) as tar: + tar.write_bytes(json_data.encode("utf-8")) + + # Add avatar image if present + if getattr(user, "avatar", False): + tar.add_image(user.avatar, filename="avatar") + + editions, books = get_books_for_user(user) + for book in editions: + tar.add_image(book.cover) + + f.close() + + +def json_export(user): + """Generate an export for a user""" + # user + exported_user = {} + vals = [ + "username", + "name", + "summary", + "manually_approves_followers", + "hide_follows", + "show_goal", + "show_suggested_users", + "discoverable", + "preferred_timezone", + "default_post_privacy", + ] + for k in vals: + exported_user[k] = getattr(user, k) + + if getattr(user, "avatar", False): + exported_user["avatar"] = f'https://{DOMAIN}{getattr(user, "avatar").url}' + + # reading goals + reading_goals = models.AnnualGoal.objects.filter(user=user).distinct() + goals_list = [] + try: + for goal in reading_goals: + goals_list.append( + {"goal": goal.goal, "year": goal.year, "privacy": goal.privacy} + ) + except Exception: + pass + + try: + readthroughs = models.ReadThrough.objects.filter(user=user).distinct().values() + readthroughs = list(readthroughs) + except Exception as e: + readthroughs = [] + + # books + editions, books = get_books_for_user(user) + final_books = [] + + for book in books.values(): + edition = editions.filter(id=book["id"]) + book["edition"] = edition.values()[0] + # authors + book["authors"] = list(edition.first().authors.all().values()) + # readthroughs + book_readthroughs = ( + models.ReadThrough.objects.filter(user=user, book=book["id"]) + .distinct() + .values() + ) + book["readthroughs"] = list(book_readthroughs) + # shelves + shelf_books = models.ShelfBook.objects.filter( + user=user, book=book["id"] + ).distinct() + shelves_from_books = models.Shelf.objects.filter( + shelfbook__in=shelf_books, user=user + ) + + book["shelves"] = list(shelves_from_books.values()) + book["shelf_books"] = {} + + for shelf in shelves_from_books: + shelf_contents = models.ShelfBook.objects.filter( + user=user, shelf=shelf + ).distinct() + + book["shelf_books"][shelf.identifier] = list(shelf_contents.values()) + + # book lists + book_lists = models.List.objects.filter( + books__in=[book["id"]], user=user + ).distinct() + book["lists"] = list(book_lists.values()) + book["list_items"] = {} + for blist in book_lists: + list_items = models.ListItem.objects.filter(book_list=blist).distinct() + book["list_items"][blist.name] = list(list_items.values()) + + # reviews + reviews = models.Review.objects.filter(user=user, book=book["id"]).distinct() + + book["reviews"] = list(reviews.values()) + + # comments + comments = models.Comment.objects.filter(user=user, book=book["id"]).distinct() + + book["comments"] = list(comments.values()) + logger.error("FINAL COMMENTS") + logger.error(book["comments"]) + + # quotes + quotes = models.Quotation.objects.filter(user=user, book=book["id"]).distinct() + # quote_statuses = models.Status.objects.filter( + # id__in=quotes, user=kwargs["user"] + # ).distinct() + + book["quotes"] = list(quotes.values()) + + logger.error("FINAL QUOTES") + logger.error(book["quotes"]) + + # append everything + final_books.append(book) + + # saved book lists + saved_lists = models.List.objects.filter(id__in=user.saved_lists.all()).distinct() + saved_lists = [l.remote_id for l in saved_lists] + + # follows + follows = models.UserFollows.objects.filter(user_subject=user).distinct() + following = models.User.objects.filter( + userfollows_user_object__in=follows + ).distinct() + follows = [f.remote_id for f in following] + + # blocks + blocks = models.UserBlocks.objects.filter(user_subject=user).distinct() + blocking = models.User.objects.filter(userblocks_user_object__in=blocks).distinct() + + blocks = [b.remote_id for b in blocking] + + data = { + "user": exported_user, + "goals": goals_list, + "books": final_books, + "saved_lists": saved_lists, + "follows": follows, + "blocked_users": blocks, + } + + return DjangoJSONEncoder().encode(data) + + +def get_books_for_user(user): + """Get all the books and editions related to a user + :returns: tuple of editions, books + """ + all_books = models.Edition.viewer_aware_objects(user) + editions = all_books.filter( + Q(shelves__user=user) + | Q(readthrough__user=user) + | Q(review__user=user) + | Q(list__user=user) + | Q(comment__user=user) + | Q(quotation__user=user) + ).distinct() + books = models.Book.objects.filter(id__in=editions).distinct() + return editions, books diff --git a/bookwyrm/models/bookwyrm_import_job.py b/bookwyrm/models/bookwyrm_import_job.py new file mode 100644 index 000000000..696f8061a --- /dev/null +++ b/bookwyrm/models/bookwyrm_import_job.py @@ -0,0 +1,505 @@ +from functools import reduce +import json +import operator + +from django.db.models import FileField, JSONField, CharField +from django.db.models import Q +from django.utils.dateparse import parse_datetime +from django.contrib.postgres.fields import ArrayField as DjangoArrayField + +from bookwyrm import activitypub +from bookwyrm import models +from bookwyrm.tasks import app, IMPORTS +from bookwyrm.models.job import ( + ParentJob, + ParentTask, + ChildJob, + SubTask, + create_child_job, +) +from bookwyrm.utils.tar import BookwyrmTarFile +import json + + +class BookwyrmImportJob(ParentJob): + """entry for a specific request for importing a bookwyrm user backup""" + + archive_file = FileField(null=True, blank=True) + import_data = JSONField(null=True) + required = DjangoArrayField(CharField(max_length=50, blank=True), blank=True) + + def start_job(self): + """Start the job""" + start_import_task.delay(job_id=self.id, no_children=True) + + +@app.task(queue=IMPORTS, base=ParentTask) +def start_import_task(**kwargs): + """trigger the child import tasks for each user data""" + job = BookwyrmImportJob.objects.get(id=kwargs["job_id"]) + archive_file = job.archive_file + + # don't start the job if it was stopped from the UI + if job.complete: + return + + archive_file.open("rb") + with BookwyrmTarFile.open(mode="r:gz", fileobj=archive_file) as tar: + job.import_data = json.loads(tar.read("archive.json").decode("utf-8")) + + if "include_user_profile" in job.required: + update_user_profile(job.user, tar, job.import_data.get("user")) + if "include_user_settings" in job.required: + update_user_settings(job.user, job.import_data.get("user")) + if "include_goals" in job.required: + update_goals(job.user, job.import_data.get("goals")) + if "include_saved_lists" in job.required: + upsert_saved_lists(job.user, job.import_data.get("saved_lists")) + if "include_follows" in job.required: + upsert_follows(job.user, job.import_data.get("follows")) + if "include_blocks" in job.required: + upsert_user_blocks(job.user, job.import_data.get("blocked_users")) + + process_books(job, tar) + + job.save() + archive_file.close() + + +def process_books(job, tar): + """process user import data related to books""" + + # create the books. We need to merge Book and Edition instances + # and also check whether these books already exist in the DB + books = job.import_data.get("books") + + for data in books: + book = get_or_create_edition(data, tar) + + if "include_shelves" in job.required: + upsert_shelves(book, job.user, data) + + if "include_readthroughs" in job.required: + upsert_readthroughs(data.get("readthroughs"), job.user, book.id) + + if "include_reviews" in job.required: + get_or_create_statuses( + job.user, models.Review, data.get("reviews"), book.id + ) + + if "include_comments" in job.required: + get_or_create_statuses( + job.user, models.Comment, data.get("comments"), book.id + ) + + if "include_quotes" in job.required: + get_or_create_statuses( + job.user, models.Quotation, data.get("quotes"), book.id + ) + if "include_lists" in job.required: + upsert_lists(job.user, data.get("lists"), data.get("list_items"), book.id) + + +def get_or_create_edition(book_data, tar): + """Take a JSON string of book and edition data, + find or create the edition in the database and + return an edition instance""" + + cover_path = book_data.get( + "cover", None + ) # we use this further down but need to assign a var before cleaning + + clean_book = clean_values(book_data) + book = clean_book.copy() # don't mutate the original book data + + # prefer edition values only if they are not null + edition = clean_values(book["edition"]) + for key in edition.keys(): + if key not in book.keys() or ( + key in book.keys() and (edition[key] not in [None, ""]) + ): + book[key] = edition[key] + + existing = find_existing(models.Edition, book, None) + if existing: + return existing + + # the book is not in the local database, so we have to do this the hard way + local_authors = get_or_create_authors(book["authors"]) + + # get rid of everything that's not strictly in a Book + # or is many-to-many so can't be set directly + associated_values = [ + "edition", + "authors", + "readthroughs", + "shelves", + "shelf_books", + "lists", + "list_items", + "reviews", + "comments", + "quotes", + ] + + for val in associated_values: + del book[val] + + # now we can save the book as an Edition + new_book = models.Edition.objects.create(**book) + new_book.authors.set(local_authors) # now we can add authors with set() + + # get cover from original book_data because we lost it in clean_values + if cover_path: + tar.write_image_to_file(cover_path, new_book.cover) + + # NOTE: clean_values removes "last_edited_by" because it's a user ID from the old database + # if this is required, bookwyrm_export_job will need to bring in the user who edited it. + + # create parent + work = models.Work.objects.create(title=book["title"]) + work.authors.set(local_authors) + new_book.parent_work = work + + new_book.save(broadcast=False) + return new_book + + +def clean_values(data): + """clean values we don't want when creating new instances""" + + values = [ + "id", + "pk", + "remote_id", + "cover", + "preview_image", + "last_edited_by", + "last_edited_by_id", + "user", + "book_list", + "shelf_book", + "parent_work_id", + ] + + common = data.keys() & values + new_data = data + for val in common: + del new_data[val] + return new_data + + +def find_existing(cls, data, user): + """Given a book or author, find any existing model instances""" + + identifiers = [ + "openlibrary_key", + "inventaire_id", + "librarything_key", + "goodreads_key", + "asin", + "isfdb", + "isbn_10", + "isbn_13", + "oclc_number", + "origin_id", + "viaf", + "wikipedia_link", + "isni", + "gutenberg_id", + ] + + match_fields = [] + for i in identifiers: + if data.get(i) not in [None, ""]: + match_fields.append({i: data.get(i)}) + + if len(match_fields) > 0: + match = cls.objects.filter(reduce(operator.or_, (Q(**f) for f in match_fields))) + return match.first() + return None + + +def get_or_create_authors(data): + """Take a JSON string of authors find or create the authors + in the database and return a list of author instances""" + + authors = [] + for author in data: + clean = clean_values(author) + existing = find_existing(models.Author, clean, None) + if existing: + authors.append(existing) + else: + new = models.Author.objects.create(**clean) + authors.append(new) + return authors + + +def upsert_readthroughs(data, user, book_id): + """Take a JSON string of readthroughs, find or create the + instances in the database and return a list of saved instances""" + + for rt in data: + start_date = ( + parse_datetime(rt["start_date"]) if rt["start_date"] is not None else None + ) + finish_date = ( + parse_datetime(rt["finish_date"]) if rt["finish_date"] is not None else None + ) + stopped_date = ( + parse_datetime(rt["stopped_date"]) + if rt["stopped_date"] is not None + else None + ) + readthrough = { + "user": user, + "book": models.Edition.objects.get(id=book_id), + "progress": rt["progress"], + "progress_mode": rt["progress_mode"], + "start_date": start_date, + "finish_date": finish_date, + "stopped_date": stopped_date, + "is_active": rt["is_active"], + } + + existing = models.ReadThrough.objects.filter(**readthrough).exists() + if not existing: + models.ReadThrough.objects.create(**readthrough) + + +def get_or_create_statuses(user, cls, data, book_id): + """Take a JSON string of a status and + find or create the instances in the database""" + + for book_status in data: + + keys = [ + "content", + "raw_content", + "content_warning", + "privacy", + "sensitive", + "published_date", + "reading_status", + "name", + "rating", + "quote", + "raw_quote", + "progress", + "progress_mode", + "position", + "position_mode", + ] + common = book_status.keys() & keys + status = {k: book_status[k] for k in common} + status["published_date"] = parse_datetime(book_status["published_date"]) + if "rating" in common: + status["rating"] = float(book_status["rating"]) + book = models.Edition.objects.get(id=book_id) + exists = cls.objects.filter(**status, book=book, user=user).exists() + if not exists: + cls.objects.create(**status, book=book, user=user) + + +def upsert_lists(user, lists, items, book_id): + """Take a list and ListItems as JSON and create DB entries if they don't already exist""" + + book = models.Edition.objects.get(id=book_id) + + for lst in lists: + book_list = models.List.objects.filter(name=lst["name"], user=user).first() + if not book_list: + book_list = models.List.objects.create( + user=user, + name=lst["name"], + description=lst["description"], + curation=lst["curation"], + privacy=lst["privacy"], + ) + + # If the list exists but the ListItem doesn't don't try to add it + # with the same order as an existing item + count = models.ListItem.objects.filter(book_list=book_list).count() + + for i in items[lst["name"]]: + if not models.ListItem.objects.filter( + book=book, book_list=book_list, user=user + ).exists(): + models.ListItem.objects.create( + book=book, + book_list=book_list, + user=user, + notes=i["notes"], + order=i["order"] + count, + ) + + +def upsert_shelves(book, user, book_data): + """Take shelf and ShelfBooks JSON objects and create + DB entries if they don't already exist""" + + shelves = book_data["shelves"] + + for shelf in shelves: + book_shelf = models.Shelf.objects.filter(name=shelf["name"], user=user).first() + if not book_shelf: + book_shelf = models.Shelf.objects.create( + name=shelf["name"], + user=user, + identifier=shelf["identifier"], + description=shelf["description"], + editable=shelf["editable"], + privacy=shelf["privacy"], + ) + + for shelfbook in book_data["shelf_books"][book_shelf.identifier]: + + shelved_date = parse_datetime(shelfbook["shelved_date"]) + + if not models.ShelfBook.objects.filter( + book=book, shelf=book_shelf, user=user + ).exists(): + models.ShelfBook.objects.create( + book=book, + shelf=book_shelf, + user=user, + shelved_date=shelved_date, + ) + + +def update_user_profile(user, tar, data): + """update the user's profile from import data""" + name = data.get("name") + username = data.get("username").split("@")[0] + user.name = name if name else username + user.summary = data.get("summary") + user.save(update_fields=["name", "summary"]) + + if data.get("avatar") is not None: + avatar_filename = next(filter(lambda n: n.startswith("avatar"), tar.getnames())) + tar.write_image_to_file(avatar_filename, user.avatar) + + +def update_user_settings(user, data): + """update the user's settings from import data""" + + update_fields = [ + "manually_approves_followers", + "hide_follows", + "show_goal", + "show_suggested_users", + "discoverable", + "preferred_timezone", + "default_post_privacy", + ] + + for field in update_fields: + setattr(user, field, data[field]) + user.save(update_fields=update_fields) + + +@app.task(queue=IMPORTS, base=SubTask) +def update_user_settings_task(job_id, child_id): + """wrapper task for user's settings import""" + parent_job = BookwyrmImportJob.objects.get(id=job_id) + + return update_user_settings(parent_job.user, parent_job.import_data.get("user")) + + +def update_goals(user, data): + """update the user's goals from import data""" + + for goal in data: + # edit the existing goal if there is one instead of making a new one + existing = models.AnnualGoal.objects.filter( + year=goal["year"], user=user + ).first() + if existing: + for k in goal.keys(): + setattr(existing, k, goal[k]) + existing.save() + else: + goal["user"] = user + models.AnnualGoal.objects.create(**goal) + + +@app.task(queue=IMPORTS, base=SubTask) +def update_goals_task(job_id, child_id): + """wrapper task for user's goals import""" + parent_job = BookwyrmImportJob.objects.get(id=job_id) + + return update_goals(parent_job.user, parent_job.import_data.get("goals")) + + +def upsert_saved_lists(user, values): + """Take a list of remote ids and add as saved lists""" + + for remote_id in values: + book_list = activitypub.resolve_remote_id(remote_id, models.List) + if book_list: + user.saved_lists.add(book_list) + + +@app.task(queue=IMPORTS, base=SubTask) +def upsert_saved_lists_task(job_id, child_id): + """wrapper task for user's saved lists import""" + parent_job = BookwyrmImportJob.objects.get(id=job_id) + + return upsert_saved_lists( + parent_job.user, parent_job.import_data.get("saved_lists") + ) + + +def upsert_follows(user, values): + """Take a list of remote ids and add as follows""" + + for remote_id in values: + followee = activitypub.resolve_remote_id(remote_id, models.User) + if followee: + (follow_request, created,) = models.UserFollowRequest.objects.get_or_create( + user_subject=user, + user_object=followee, + ) + + if not created: + # this request probably failed to connect with the remote + # that means we should save to trigger a re-broadcast + follow_request.save() + + +@app.task(queue=IMPORTS, base=SubTask) +def upsert_follows_task(job_id, child_id): + """wrapper task for user's follows import""" + parent_job = BookwyrmImportJob.objects.get(id=job_id) + + return upsert_follows(parent_job.user, parent_job.import_data.get("follows")) + + +def upsert_user_blocks(user, user_ids): + """block users""" + + for user_id in user_ids: + user_object = activitypub.resolve_remote_id(user_id, models.User) + if user_object: + exists = models.UserBlocks.objects.filter( + user_subject=user, user_object=user_object + ).exists() + if not exists: + models.UserBlocks.objects.create( + user_subject=user, user_object=user_object + ) + # remove the blocked users's lists from the groups + models.List.remove_from_group(user, user_object) + # remove the blocked user from all blocker's owned groups + models.GroupMember.remove(user, user_object) + + +@app.task(queue=IMPORTS, base=SubTask) +def upsert_user_blocks_task(job_id, child_id): + """wrapper task for user's blocks import""" + parent_job = BookwyrmImportJob.objects.get(id=job_id) + + return upsert_user_blocks( + parent_job.user, parent_job.import_data.get("blocked_users") + ) diff --git a/bookwyrm/models/job.py b/bookwyrm/models/job.py new file mode 100644 index 000000000..6e8d0dc5c --- /dev/null +++ b/bookwyrm/models/job.py @@ -0,0 +1,290 @@ +"""Everything needed for Celery to multi-thread complex tasks.""" + +from django.db import models +from django.db import transaction +from django.utils.translation import gettext_lazy as _ +from django.utils import timezone +from bookwyrm.models.user import User + +from bookwyrm.tasks import app + + +class Job(models.Model): + """Abstract model to store the state of a Task.""" + + class Status(models.TextChoices): + """Possible job states.""" + + PENDING = "pending", _("Pending") + ACTIVE = "active", _("Active") + COMPLETE = "complete", _("Complete") + STOPPED = "stopped", _("Stopped") + + task_id = models.UUIDField(unique=True, null=True, blank=True) + + created_date = models.DateTimeField(default=timezone.now) + updated_date = models.DateTimeField(default=timezone.now) + complete = models.BooleanField(default=False) + status = models.CharField( + max_length=50, choices=Status.choices, default=Status.PENDING, null=True + ) + + class Meta: + abstract = True + + def complete_job(self): + """Report that the job has completed""" + if self.complete: + return + + self.status = self.Status.COMPLETE + self.complete = True + self.updated_date = timezone.now() + + self.save(update_fields=["status", "complete", "updated_date"]) + + def stop_job(self): + """Stop the job""" + if self.complete: + return + + self.__terminate_job() + + self.status = self.Status.STOPPED + self.complete = True + self.updated_date = timezone.now() + + self.save(update_fields=["status", "complete", "updated_date"]) + + def set_status(self, status): + """Set job status""" + if self.complete: + return + + if self.status == status: + return + + if status == self.Status.COMPLETE: + self.complete_job() + return + + if status == self.Status.STOPPED: + self.stop_job() + return + + self.updated_date = timezone.now() + self.status = status + + self.save(update_fields=["status", "updated_date"]) + + def __terminate_job(self): + """Tell workers to ignore and not execute this task.""" + app.control.revoke(self.task_id, terminate=True) + + +class ParentJob(Job): + """Store the state of a Task which can spawn many :model:`ChildJob`s to spread + resource load. + + Intended to be sub-classed if necessary via proxy or + multi-table inheritance. + Extends :model:`Job`. + """ + + user = models.ForeignKey(User, on_delete=models.CASCADE) + + def complete_job(self): + """Report that the job has completed and stop pending + children. Extend. + """ + super().complete_job() + self.__terminate_pending_child_jobs() + + def notify_child_job_complete(self): + """let the job know when the items get work done""" + if self.complete: + return + + self.updated_date = timezone.now() + self.save(update_fields=["updated_date"]) + + if not self.complete and self.has_completed: + self.complete_job() + + def __terminate_job(self): + """Tell workers to ignore and not execute this task + & pending child tasks. Extend. + """ + super().__terminate_job() + self.__terminate_pending_child_jobs() + + def __terminate_pending_child_jobs(self): + """Tell workers to ignore and not execute any pending child tasks.""" + tasks = self.pending_child_jobs.filter(task_id__isnull=False).values_list( + "task_id", flat=True + ) + app.control.revoke(list(tasks)) + + for task in self.pending_child_jobs: + task.update(status=self.Status.STOPPED) + + @property + def has_completed(self): + """has this job finished""" + return not self.pending_child_jobs.exists() + + @property + def pending_child_jobs(self): + """items that haven't been processed yet""" + return self.child_jobs.filter(complete=False) + + +class ChildJob(Job): + """Stores the state of a Task for the related :model:`ParentJob`. + + Intended to be sub-classed if necessary via proxy or + multi-table inheritance. + Extends :model:`Job`. + """ + + parent_job = models.ForeignKey( + ParentJob, on_delete=models.CASCADE, related_name="child_jobs" + ) + + def set_status(self, status): + """Set job and parent_job status. Extend.""" + super().set_status(status) + + if ( + status == self.Status.ACTIVE + and self.parent_job.status == self.Status.PENDING + ): + self.parent_job.set_status(self.Status.ACTIVE) + + def complete_job(self): + """Report to parent_job that the job has completed. Extend.""" + super().complete_job() + self.parent_job.notify_child_job_complete() + + +class ParentTask(app.Task): + """Used with ParentJob, Abstract Tasks execute code at specific points in + a Task's lifecycle, applying to all Tasks with the same 'base'. + + All status & ParentJob.task_id assignment is managed here for you. + Usage e.g. @app.task(base=ParentTask) + """ + + def before_start(self, task_id, args, kwargs): + """Handler called before the task starts. Override. + + Prepare ParentJob before the task starts. + + Arguments: + task_id (str): Unique id of the task to execute. + args (Tuple): Original arguments for the task to execute. + kwargs (Dict): Original keyword arguments for the task to execute. + + Keyword Arguments: + job_id (int): Unique 'id' of the ParentJob. + no_children (bool): If 'True' this is the only Task expected to run + for the given ParentJob. + + Returns: + None: The return value of this handler is ignored. + """ + job = ParentJob.objects.get(id=kwargs["job_id"]) + job.task_id = task_id + job.save(update_fields=["task_id"]) + + if kwargs["no_children"]: + job.set_status(ChildJob.Status.ACTIVE) + + def on_success(self, retval, task_id, args, kwargs): + """Run by the worker if the task executes successfully. Override. + + Update ParentJob on Task complete. + + Arguments: + retval (Any): The return value of the task. + task_id (str): Unique id of the executed task. + args (Tuple): Original arguments for the executed task. + kwargs (Dict): Original keyword arguments for the executed task. + + Keyword Arguments: + job_id (int): Unique 'id' of the ParentJob. + no_children (bool): If 'True' this is the only Task expected to run + for the given ParentJob. + + Returns: + None: The return value of this handler is ignored. + """ + + if kwargs["no_children"]: + job = ParentJob.objects.get(id=kwargs["job_id"]) + job.complete_job() + + +class SubTask(app.Task): + """Used with ChildJob, Abstract Tasks execute code at specific points in + a Task's lifecycle, applying to all Tasks with the same 'base'. + + All status & ChildJob.task_id assignment is managed here for you. + Usage e.g. @app.task(base=SubTask) + """ + + def before_start(self, task_id, args, kwargs): + """Handler called before the task starts. Override. + + Prepare ChildJob before the task starts. + + Arguments: + task_id (str): Unique id of the task to execute. + args (Tuple): Original arguments for the task to execute. + kwargs (Dict): Original keyword arguments for the task to execute. + + Keyword Arguments: + job_id (int): Unique 'id' of the ParentJob. + child_id (int): Unique 'id' of the ChildJob. + + Returns: + None: The return value of this handler is ignored. + """ + child_job = ChildJob.objects.get(id=kwargs["child_id"]) + child_job.task_id = task_id + child_job.save(update_fields=["task_id"]) + child_job.set_status(ChildJob.Status.ACTIVE) + + def on_success(self, retval, task_id, args, kwargs): + """Run by the worker if the task executes successfully. Override. + + Notify ChildJob of task completion. + + Arguments: + retval (Any): The return value of the task. + task_id (str): Unique id of the executed task. + args (Tuple): Original arguments for the executed task. + kwargs (Dict): Original keyword arguments for the executed task. + + Keyword Arguments: + job_id (int): Unique 'id' of the ParentJob. + child_id (int): Unique 'id' of the ChildJob. + + Returns: + None: The return value of this handler is ignored. + """ + subtask = ChildJob.objects.get(id=kwargs["child_id"]) + subtask.complete_job() + + +@transaction.atomic +def create_child_job(parent_job, task_callback): + """Utility method for creating a ChildJob + and running a task to avoid DB race conditions + """ + child_job = ChildJob.objects.create(parent_job=parent_job) + transaction.on_commit( + lambda: task_callback.delay(job_id=parent_job.id, child_id=child_job.id) + ) + + return child_job diff --git a/bookwyrm/templates/import/import_user.html b/bookwyrm/templates/import/import_user.html new file mode 100644 index 000000000..86e99f657 --- /dev/null +++ b/bookwyrm/templates/import/import_user.html @@ -0,0 +1,163 @@ +{% extends 'layout.html' %} +{% load i18n %} +{% load humanize %} + +{% block title %}{% trans "Import User" %}{% endblock %} + +{% block content %} +
+

{% trans "Import User" %}

+ + {% if invalid %} +
+ {% trans "Not a valid JSON file" %} +
+ {% endif %} + + + {% if import_size_limit and import_limit_reset %} +
+

{% blocktrans %}Currently you are allowed to import one user every {{ user_import_limit_reset }} days.{% endblocktrans %}

+

{% blocktrans %}You have {{ allowed_imports }} left.{% endblocktrans %}

+
+ {% endif %} + {% if recent_avg_hours or recent_avg_minutes %} +
+

+ {% if recent_avg_hours %} + {% blocktrans trimmed with hours=recent_avg_hours|floatformat:0|intcomma %} + On average, recent imports have taken {{ hours }} hours. + {% endblocktrans %} + {% else %} + {% blocktrans trimmed with minutes=recent_avg_minutes|floatformat:0|intcomma %} + On average, recent imports have taken {{ minutes }} minutes. + {% endblocktrans %} + {% endif %} +

+
+ {% endif %} + +
+ {% csrf_token %} + +
+
+
+ + {{ import_form.archive_file }} +
+
+

{% trans "Importing this file will overwrite any data you currently have saved." %}

+

{% trans "Deselect any data you do not wish to include in your import. Books will always be imported" %}

+
+
+ +
+
+ + + + + + + + + + + + +
+
+
+ {% if not import_limit_reset and not import_size_limit or allowed_imports > 0 %} + + {% else %} + +

{% trans "You've reached the import limit." %}

+ {% endif%} +
+ +
+ +
+

{% trans "Recent Imports" %}

+
+ + + + + + + {% if not jobs %} + + + + {% endif %} + {% for job in jobs %} + + + + + + {% endfor %} +
+ {% trans "Date Created" %} + + {% trans "Last Updated" %} + + {% trans "Status" %} +
+ {% trans "No recent imports" %} +
+

{{ job.created_date }}

+
{{ job.updated_date }} + + {% if job.status %} + {{ job.status }} + {{ job.status_display }} + {% elif job.complete %} + {% trans "Complete" %} + {% else %} + {% trans "Active" %} + {% endif %} + +
+
+ + {% include 'snippets/pagination.html' with page=jobs path=request.path %} +
+{% endblock %} diff --git a/bookwyrm/templates/preferences/export-user.html b/bookwyrm/templates/preferences/export-user.html new file mode 100644 index 000000000..81f13bc22 --- /dev/null +++ b/bookwyrm/templates/preferences/export-user.html @@ -0,0 +1,89 @@ +{% extends 'preferences/layout.html' %} +{% load i18n %} + +{% block title %}{% trans "User Export" %}{% endblock %} + +{% block header %} +{% trans "User Export" %} +{% endblock %} + +{% block panel %} +
+

+ {% trans "Your exported archive file will include all user data for import into another Bookwyrm server" %} +

+

+

+ {% csrf_token %} + +
+

+
+
+

{% trans "Recent Exports" %}

+

+ {% trans "User export files will show 'complete' once ready. This may take a little while. Click the link to download your file." %} +

+
+ + + + + + + {% if not jobs %} + + + + {% endif %} + {% for job in jobs %} + + + + + + {% endfor %} +
+ {% trans "Date Created" %} + + {% trans "Last Updated" %} + + {% trans "Status" %} +
+ {% trans "No recent imports" %} +
+ {% if job.complete %} +

{{ job.created_date }}

+ {% else %} +

{{ job.created_date }}

+ {% endif %} +
{{ job.updated_date }} + + {% if job.status %} + {{ job.status }} + {{ job.status_display }} + {% elif job.complete %} + {% trans "Complete" %} + {% else %} + {% trans "Active" %} + {% endif %} + +
+
+ + {% include 'snippets/pagination.html' with page=jobs path=request.path %} +
+{% endblock %} diff --git a/bookwyrm/templates/preferences/export.html b/bookwyrm/templates/preferences/export.html index 61933be3e..6976c5e27 100644 --- a/bookwyrm/templates/preferences/export.html +++ b/bookwyrm/templates/preferences/export.html @@ -1,16 +1,16 @@ {% extends 'preferences/layout.html' %} {% load i18n %} -{% block title %}{% trans "CSV Export" %}{% endblock %} +{% block title %}{% trans "Books Export" %}{% endblock %} {% block header %} -{% trans "CSV Export" %} +{% trans "Books Export" %} {% endblock %} {% block panel %}

- {% trans "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity." %} + {% trans "Your CSV export file will include all the books on your shelves, books you have reviewed, and books with reading activity.
Use this to import into a service like Goodreads." %}

diff --git a/bookwyrm/templates/preferences/layout.html b/bookwyrm/templates/preferences/layout.html index ca63ec93d..8a03e7723 100644 --- a/bookwyrm/templates/preferences/layout.html +++ b/bookwyrm/templates/preferences/layout.html @@ -32,11 +32,19 @@ diff --git a/bookwyrm/tests/data/bookwyrm_account_export.json b/bookwyrm/tests/data/bookwyrm_account_export.json new file mode 100644 index 000000000..1652d9e45 --- /dev/null +++ b/bookwyrm/tests/data/bookwyrm_account_export.json @@ -0,0 +1,452 @@ +{ + "user": { + "username": "rat@www.example.com", + "name": "Rat", + "summary": "I love to make soup in Paris and eat pizza in New York", + "manually_approves_followers": true, + "hide_follows": true, + "show_goal": false, + "show_suggested_users": false, + "discoverable": false, + "preferred_timezone": "Australia/Adelaide", + "default_post_privacy": "followers" + }, + "goals": [ + { + "goal": 12, + "year": 2023, + "privacy": "followers" + } + ], + "books": [ + { + "id": 4880, + "created_date": "2023-08-14T02:03:12.509Z", + "updated_date": "2023-08-14T02:04:51.602Z", + "remote_id": "https://www.example.com/book/4880", + "origin_id": "https://bookwyrm.social/book/9389", + "openlibrary_key": "OL680025M", + "inventaire_id": "isbn:9780300070163", + "librarything_key": null, + "goodreads_key": null, + "bnf_id": null, + "viaf": null, + "wikidata": null, + "asin": null, + "aasin": null, + "isfdb": null, + "search_vector": "'c':16C 'certain':6B 'condit':12B 'fail':14B 'human':11B 'improv':9B 'james':15C 'like':2A 'scheme':7B 'scott':17C 'see':1A 'state':4A", + "last_edited_by_id": 243, + "connector_id": null, + "title": "Seeing Like a State", + "sort_title": "seeing like a state", + "subtitle": "how certain schemes to improve the human condition have failed", + "description": "

Examines how (sometimes quasi-) authoritarian high-modernist planning fails to deliver the goods, be they increased resources for the state or a better life for the people.

", + "languages": [ + "English" + ], + "series": "", + "series_number": "", + "subjects": [], + "subject_places": [], + "cover": "covers/d273d638-191d-4ebf-b213-3c60dbf010fe.jpeg", + "preview_image": "", + "first_published_date": null, + "published_date": "1998-03-30T00:00:00Z", + "edition": { + "id": 4880, + "created_date": "2023-08-14T02:03:12.509Z", + "updated_date": "2023-08-14T02:04:51.602Z", + "remote_id": "https://www.example.com/book/4880", + "origin_id": "https://bookwyrm.social/book/9389", + "openlibrary_key": "OL680025M", + "inventaire_id": "isbn:9780300070163", + "librarything_key": null, + "goodreads_key": null, + "bnf_id": null, + "viaf": null, + "wikidata": null, + "asin": null, + "aasin": null, + "isfdb": null, + "search_vector": "'c':16C 'certain':6B 'condit':12B 'fail':14B 'human':11B 'improv':9B 'james':15C 'like':2A 'scheme':7B 'scott':17C 'see':1A 'state':4A", + "last_edited_by_id": 243, + "connector_id": null, + "title": "Seeing Like a State", + "sort_title": "seeing like a state", + "subtitle": "how certain schemes to improve the human condition have failed", + "description": "

Examines how (sometimes quasi-) authoritarian high-modernist planning fails to deliver the goods, be they increased resources for the state or a better life for the people.

", + "languages": [ + "English" + ], + "series": "", + "series_number": "", + "subjects": [], + "subject_places": [], + "cover": "covers/d273d638-191d-4ebf-b213-3c60dbf010fe.jpeg", + "preview_image": "", + "first_published_date": null, + "published_date": "1998-03-30T00:00:00Z", + "book_ptr_id": 4880, + "isbn_10": "0300070160", + "isbn_13": "9780300070163", + "oclc_number": "", + "pages": 445, + "physical_format": "", + "physical_format_detail": "", + "publishers": [], + "parent_work_id": 4877, + "edition_rank": 8 + }, + "authors": [ + { + "id": 1189, + "created_date": "2023-08-14T02:03:11.578Z", + "updated_date": "2023-08-14T02:03:11.578Z", + "remote_id": "https://www.example.com/author/1189", + "origin_id": "https://bookwyrm.social/author/1110", + "openlibrary_key": "OL4398216A", + "inventaire_id": "wd:Q3025403", + "librarything_key": "scottjamesc", + "goodreads_key": "11958", + "bnf_id": "120602158", + "viaf": "47858502", + "wikidata": "Q3025403", + "asin": "B001H9W1D2", + "aasin": null, + "search_vector": null, + "last_edited_by_id": 62, + "wikipedia_link": "https://en.wikipedia.org/wiki/James_C._Scott", + "isni": "0000000108973024", + "gutenberg_id": null, + "isfdb": null, + "website": "", + "born": "1934-12-01T23:00:00Z", + "died": null, + "name": "James C. Scott", + "aliases": [ + "James Campbell Scott", + "\u30b8\u30a7\u30fc\u30e0\u30ba\u30fbC. \u30b9\u30b3\u30c3\u30c8", + "\u30b8\u30a7\u30fc\u30e0\u30ba\u30fbC\u30fb\u30b9\u30b3\u30c3\u30c8", + "\u062c\u06cc\u0645\u0632 \u0633\u06cc. \u0627\u0633\u06a9\u0627\u062a", + "Jim Scott", + "\u062c\u064a\u0645\u0633 \u0633\u0643\u0648\u062a", + "James C. Scott", + "\u0414\u0436\u0435\u0439\u043c\u0441 \u0421\u043a\u043e\u0442\u0442", + "\u30b8\u30a7\u30fc\u30e0\u30b9\u30fbC \u30b9\u30b3\u30c3\u30c8", + "James Cameron Scott" + ], + "bio": "

American political scientist and anthropologist

" + } + ], + "readthroughs": [ + { + "id": 1, + "created_date": "2023-08-14T04:00:27.544Z", + "updated_date": "2023-08-14T04:00:27.546Z", + "remote_id": "https://www.example.com/user/rat/readthrough/1", + "user_id": 1, + "book_id": 4880, + "progress": null, + "progress_mode": "PG", + "start_date": "2018-01-01T00:00:00Z", + "finish_date": "2023-08-13T00:00:00Z", + "stopped_date": null, + "is_active": false + } + ], + "shelves": [ + { + "id": 3, + "created_date": "2023-08-13T05:02:16.554Z", + "updated_date": "2023-08-13T05:02:16.554Z", + "remote_id": "https://www.example.com/user/rat/books/read", + "name": "Read", + "identifier": "read", + "description": null, + "user_id": 1, + "editable": false, + "privacy": "public" + }, + { + "id": 1, + "created_date": "2023-08-13T05:02:16.551Z", + "updated_date": "2023-08-13T05:02:16.552Z", + "remote_id": "https://www.example.com/user/rat/books/to-read", + "name": "To Read", + "identifier": "to-read", + "description": null, + "user_id": 1, + "editable": false, + "privacy": "public" + } + ], + "shelf_books": { + "read": [ + { + "id": 1, + "created_date": "2023-08-14T02:51:09.005Z", + "updated_date": "2023-08-14T02:51:09.015Z", + "remote_id": "https://www.example.com/user/rat/shelfbook/1", + "book_id": 4880, + "shelf_id": 3, + "shelved_date": "2023-08-13T03:52:49.196Z", + "user_id": 1 + } + ], + "to-read": [ + { + "id": 2, + "created_date": "2023-08-14T04:00:27.558Z", + "updated_date": "2023-08-14T04:00:27.564Z", + "remote_id": "https://www.example.com/user/rat/shelfbook/2", + "book_id": 4880, + "shelf_id": 1, + "shelved_date": "2023-08-13T03:51:13.175Z", + "user_id": 1 + } + ] + }, + "lists": [ + { + "id": 2, + "created_date": "2023-08-14T04:00:27.585Z", + "updated_date": "2023-08-14T04:02:54.826Z", + "remote_id": "https://www.example.com/list/2", + "name": "my list of books", + "user_id": 1, + "description": "Here is a description of my list", + "privacy": "followers", + "curation": "closed", + "group_id": null, + "embed_key": "6759a53e-3581-4685-b77a-7de765c03480" + } + ], + "list_items": { + "my list of books": [ + { + "id": 1, + "created_date": "2023-08-14T04:02:54.806Z", + "updated_date": "2023-08-14T04:02:54.808Z", + "remote_id": "https://www.example.com/user/rat/listitem/1", + "book_id": 4880, + "book_list_id": 2, + "user_id": 1, + "notes": "It's fun.", + "approved": true, + "order": 1 + } + ] + }, + "reviews": [ + { + "id": 1082, + "created_date": "2023-08-14T04:09:18.354Z", + "updated_date": "2023-08-14T04:09:18.382Z", + "remote_id": "https://www.example.com/user/rat/review/1082", + "user_id": 1, + "content": "

I like it

", + "raw_content": "I like it", + "local": true, + "content_warning": "Here's a spoiler alert", + "privacy": "followers", + "sensitive": true, + "published_date": "2023-08-14T04:09:18.343Z", + "edited_date": null, + "deleted": false, + "deleted_date": null, + "reply_parent_id": null, + "thread_id": 1082, + "ready": true, + "status_ptr_id": 1082, + "book_id": 4880, + "reading_status": null, + "name": "great book", + "rating": "5.00" + } + ], + "comments": [], + "quotes": [] + }, + { + "id": 6190, + "created_date": "2023-08-14T04:48:02.034Z", + "updated_date": "2023-08-14T04:48:02.174Z", + "remote_id": "https://www.example.com/book/6190", + "origin_id": "https://bookrastinating.com/book/330127", + "openlibrary_key": null, + "inventaire_id": "isbn:9780062975645", + "librarything_key": null, + "goodreads_key": null, + "bnf_id": null, + "viaf": null, + "wikidata": null, + "asin": null, + "aasin": null, + "isfdb": null, + "search_vector": "'indigen':4A 'sand':1A 'save':7A 'talk':2A 'think':5A 'tyson':10C 'world':9A 'yunkaporta':11C", + "last_edited_by_id": null, + "connector_id": null, + "title": "Sand Talk: How Indigenous Thinking Can Save the World", + "sort_title": null, + "subtitle": null, + "description": null, + "languages": [ + "English" + ], + "series": "", + "series_number": "", + "subjects": [], + "subject_places": [], + "cover": "covers/6a553a08-2641-42a1-baa4-960df9edbbfc.jpeg", + "preview_image": "", + "first_published_date": null, + "published_date": "2020-11-26T00:00:00Z", + "edition": { + "id": 4265, + "created_date": "2023-08-24T10:18:16.563Z", + "updated_date": "2023-08-24T10:18:16.649Z", + "remote_id": "https://www.example.com/book/4265", + "origin_id": "https://bookwyrm.social/book/65189", + "openlibrary_key": "OL28216445M", + "inventaire_id": null, + "librarything_key": "", + "goodreads_key": null, + "bnf_id": null, + "viaf": null, + "wikidata": null, + "asin": null, + "aasin": null, + "isfdb": null, + "search_vector": "'indigen':4B 'sand':1A 'save':7B 'talk':2A 'think':5B 'tyson':10C 'world':9B 'yunkaporta':11C", + "last_edited_by_id": 241, + "connector_id": null, + "title": "Sand Talk", + "sort_title": null, + "subtitle": "How Indigenous Thinking Can Save the World", + "description": "

As an indigenous person, Tyson Yunkaporta looks at global systems from a unique perspective, one tied to the natural and spiritual world. In considering how contemporary life diverges from the pattern of creation, he raises important questions. How does this affect us? How can we do things differently?

\n

In this thoughtful, culturally rich, mind-expanding book, he provides answers. Yunkaporta\u2019s writing process begins with images. Honoring indigenous traditions, he makes carvings of what he wants to say, channeling his thoughts through symbols and diagrams rather than words. He yarns with people, looking for ways to connect images and stories with place and relationship to create a coherent world view, and he uses sand talk, the Aboriginal custom of drawing images on the ground to convey knowledge.

\n

In Sand Talk, he provides a new model for our everyday lives. Rich in ideas and inspiration, it explains how lines and symbols and shapes can help us make sense of the world. It\u2019s about how we learn and how we remember. It\u2019s about talking to everyone and listening carefully. It\u2019s about finding different ways to look at things.

\n

Most of all it\u2019s about a very special way of thinking, of learning to see from a native perspective, one that is spiritually and physically tied to the earth around us, and how it can save our world.

\n

Sand Talk include 22 black-and-white illustrations that add depth to the text.

", + "languages": [], + "series": "", + "series_number": "", + "subjects": [], + "subject_places": [], + "cover": "covers/70d90f7d-8b81-431d-9b00-ca2656b06ca0.jpeg", + "preview_image": "", + "first_published_date": null, + "published_date": "2020-05-12T00:00:00Z", + "book_ptr_id": 4265, + "isbn_10": "", + "isbn_13": "", + "oclc_number": "", + "pages": 256, + "physical_format": "", + "physical_format_detail": "hardcover", + "publishers": [ + "HarperOne" + ], + "parent_work_id": 4263, + "edition_rank": 5 + }, + "authors": [ + { + "id": 1390, + "created_date": "2023-08-14T04:48:00.433Z", + "updated_date": "2023-08-14T04:48:00.436Z", + "remote_id": "https://www.example.com/author/1390", + "origin_id": "https://bookrastinating.com/author/52150", + "openlibrary_key": null, + "inventaire_id": null, + "librarything_key": null, + "goodreads_key": null, + "bnf_id": null, + "viaf": null, + "wikidata": null, + "asin": null, + "aasin": null, + "search_vector": null, + "last_edited_by_id": null, + "wikipedia_link": "", + "isni": null, + "gutenberg_id": null, + "isfdb": null, + "website": "", + "born": null, + "died": null, + "name": "Tyson Yunkaporta", + "aliases": [], + "bio": null + } + ], + "readthroughs": [], + "shelves": [], + "shelf_books": {}, + "lists": [], + "list_items": {}, + "reviews": [], + "comments": [ + { + "id": 1083, + "created_date": "2023-08-14T04:48:18.753Z", + "updated_date": "2023-08-14T04:48:18.769Z", + "remote_id": "https://www.example.com/user/rat/comment/1083", + "user_id": 1, + "content": "

this is a comment about an amazing book

", + "raw_content": "this is a comment about an amazing book", + "local": true, + "content_warning": null, + "privacy": "followers", + "sensitive": false, + "published_date": "2023-08-14T04:48:18.746Z", + "edited_date": null, + "deleted": false, + "deleted_date": null, + "reply_parent_id": null, + "thread_id": 1083, + "ready": true, + "status_ptr_id": 1083, + "book_id": 6190, + "reading_status": null, + "progress": null, + "progress_mode": "PG" + } + ], + "quotes": [ + { + "id": 1084, + "created_date": "2023-08-14T04:48:50.216Z", + "updated_date": "2023-08-14T04:48:50.234Z", + "remote_id": "https://www.example.com/user/rat/quotation/1084", + "user_id": 1, + "content": "

not actually from this book lol

", + "raw_content": "not actually from this book lol", + "local": true, + "content_warning": "spoiler ahead!", + "privacy": "followers", + "sensitive": true, + "published_date": "2023-08-14T04:48:50.207Z", + "edited_date": null, + "deleted": false, + "deleted_date": null, + "reply_parent_id": null, + "thread_id": 1084, + "ready": true, + "status_ptr_id": 1084, + "book_id": 6190, + "reading_status": null, + "quote": "

To be or not to be

", + "raw_quote": "To be or not to be", + "position": 1, + "endposition": null, + "position_mode": "PG" + } + ] + } + ], + "saved_lists": [ + "https://local.lists/9999" + ], + "follows": [ + "https://your.domain.here/user/rat" + ], + "blocked_users": ["https://your.domain.here/user/badger"] +} \ No newline at end of file diff --git a/bookwyrm/tests/data/bookwyrm_account_export.tar.gz b/bookwyrm/tests/data/bookwyrm_account_export.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..7612db57ed6897816af33a834ec7e19694efe592 GIT binary patch literal 161361 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 *QYZ41$Xu+whN z+6il|tcwSB@mil=RTsDYzkFM3{>`{0o^-LxB;MwaK}i5;lrA1pg(kON!N=EH*rH7krtYj0)4;)*1 zQ}#F)s6!siF?B9_R%N~EUOgmYJsu^g*LKDTq;J|MVR(VxI|l6SBs2IQBpvh7lZy8| z*clr^*W3wKbQi{oc8;z}+B>BdLnX1ag=vdJU>#sIWH2CFh+G%Ub=ZH1*#BTWT;rp4 zRc+CDE}G!A9h7-q$6L%d&VuZ-vPvfYy9Bp%RE-CE+-W8bge=M|NLsyOz{oRS=0eD&bt5z%98Zi9Hh{r4pib*X0H$=LjC-ya+HfP-Vzzvv76Kx}`N?d2k?ilcCu3c-6=i%bTKjn@l8uz*y0{O5?@g5!`@;x90PFfJ_aRojw6acm2ExcdBR7&XaZ?>&8Q0!#iL@^ef zaaKJfZO7BN$g+?vuM{jOHte=9^=D;!Q%Wsb60@-I8U1ih!b~$-`mKq*s*n`u+YTCK zaOWCOZ8x>YfI?8gy{7aQZdmEqRPx^p9M?UN;E{L2xz^7iNoqUv#uv14E5qcR)selo z?kWz7l3cu>F>!gyS#)NX#y}_gYF!4~z}Jhe5Y((h%o2fCC45IgN+hZF^P6_n+3dNR zEDifv>gz69&Qu2tSZ(k95V%tN52ww2HpVb=$j$9$mMhieFhG2q36w0`%sm`LRLaz_3S)Lr<@<8W}_X?aBO5;yIB)4IIIBV&) z(Fixqq^*+fOwNcS%UQ{Ck0Z-n{E*P{T7=dJTT{uk%!|jgdl<3?>Qk0MQBO zGBl08v_4<3M^8=cC0fk7hV>8J6SQ(NnB{m@)|qf{PKTC_{=Fpjvpl*J8OGBjvCHx+ z`{Ju8N*L__#xnWf`BQ)73zC%;;V+7Aj*e_Gj;(AhFXh+-LBnXtwrvEPY{R7`+u=zFy z;w`pCOaW8@@3yrkb5Fq2yuA&~OyU&LcYmyX5dl8#6TlI%_qEjQ21l9`#?>P$3#AV8 zAls9Ju088$`4eW`2kL)V1|!}H`ruw0L9KmZ^v49bI}<3Piq1mM<1X~^qHQn0bGoFW zwr0u_6r3ET{gbm2_RR11B?1=v-ka_V7bKCDds2s4P{FdVD^yRg#MWk8nKid#5a#Ml z-I&bYZgVhmgQTPniT?wn0G=1L)2)7PEM0F--|MdU^6?4aHLg9eu`2o@nHTpDRR?1J zv>396dbMM0O~U!MWa_jo#*8oFu^*1w?6*goJoNmqPe4>!Wc8GgV<tGdAvm^;{ zcZUb#41mrF#eX${0QPp^L7#**7$p=|sR`}?QJMhGzwiY7BFRvpGI9cG%ML_CY?UO- zX}Cmf^)HAE??dp!SvdM@@}(eJFKYb5KXikSHO-S`@&h=llXwesGU121C8meh__8C& zhGFx|*fAL1}t`~8s8cH9IDtfuL2?9AWHvC0&Thy+m)+o-d6u-l~d2rU= zt@polh=~9I5a^Lu1qJF9P?{5Vu>a|r?DNI1-20H-N!C;1Yogv54 z?d*3GAs4+$7A!bP#MVAbjR*E(nRWGl(J)B9{>=te5gQMgq4xfhXWR4o=@amZzp;j< z<9L-k^kTUZno~Ve`;R9TIk0hBO~9}P>PkK8mOh<4&S&#g#%kSVo|;j8oUlXS;(0nn zEhQ(?^4bIapfyT%boa7(bU?N4;rTOK)^KL{IqeVYCj_xsOXb*{Ec}f=ISl{)$Ei8{kjW z8Bw+RXAlS{KM>#w+SP^5?0CL$vzCk zmh_~aX{D0g+G;ZSv<}K~JL-=vl$jEfk3~s!>=$>!y%I1j|FnIyA}NBUmM+WU59;@vQ_0C9v8Wr;tE@; za|Qg1U~%*O^fqSKtZY1KY;4L3%eGo|*2ipQNV=rlr}&m^6FiBcmrag#yjd@PxHsQ= zx^Ihgj9`O~{61~|eQI+-Euj-bUo%Fsu}!~>X--wBXTC$D=MDF^K#GYe;{dg~&uHh| zPRs13SG7Wl&Z*rsy^5)nJ<=M@%29+O#hzOP6k)HcB`|z*_SJgPN!2(Gx54j+9sFg! z?oJg+jUI#LuIl4b^y2+1+fJC-JpmagHPeK>S=*=+;Gj?#zNtAP8>mAjd0~ZS{Ciyj zZ?Po~&rkO+xYHaV2jLjyNPgJq_BFT)mGvuou0r_`p7Xau9bQR$d&p!{oE;#q*;@W} zV?k@NRM#{q(_!3oT6MeP>NSVXb1eagoOpflk-k5*0Nop-(06$* z<5v6C?p3Tum99&5UhA3ZWkT#Y5A|p`^VSKENvrTMo$)ZAx|M%e6Ze{;4#1t6@j#HGkQDjlRPJWLoh3h7hzlj@Ej7ywr^6 zXFcaWzAb>z)sCYq9m(|+`FOLfRF6dkz~y83W5WII$9#J45 z;m5QmmY$yGh0bYgGi#Lco?5|KG}V))v*No1kKnIhcgZ+AmcSM<+<6=+6>E(_8M7#A ziKo_;%4+ra^Me&)1Ys8_Rtv*w_o((;)B#^F<}u3}kRi(&7$7ZJ_<|-Lb5{Q&yMe@X z^M63}lRAr$ObK7LGr*J?84PsZv|i)~FmrNB4W~w>P{`+?%_UXxvC?l_kGeRupy==- zkEP`3#uukpggYNw*{!Xbo>zZc>>GIUP34zm>V7Y?w9mTtm#dj^a;x%mVXO7RpI#7g zPIk2;g%={rGCe=i;{i&A_4}l?qtTEgPPXih3hq`|2kE!ym3O%H%A))Q9U=I4oOG+AMh* zaDzU{6XSr@w#=<1mat4zs7-}$HK}L9G#Bq{vC|b}+-r@|IRYi%{TT3M%$qWbHBCC& zb;9x>I>KsGOHL1gtCkCoiJ96XUZC4zbJ8U3GT1oU;@diqe^lJ8rTQkD&jVKH2F+mv z%BUnuIpMpP7cL=7O41ZL8CW3fb(cMqrpSAN)6f7=EM46g@4P$uUrE0tm=iHFQ>|qR z@s5_&TE`UoVsG|%!}NN{#}S`N_!BBW=-y~oELz%n+I4g$NYf;H9LZIDNz2>eA|mPM(BP{ zxqUGfAmKYl97o(2FORiXQzzIt65z>heU{Oy@Cx)4jKCv<+v&;Oi9(Y60pzwYF2u1f z?zKQ?%?NcaIp3{%l6J@yb1^x0SY6sSuB+9$dXQM!^?)Q6nx*|K5&Nq~(cnfPabQRC zS)%Y(JLP)OlEe0aikzC2l#Sj*>n8ys*d%b-GE? z(_l}fWLx%UzOI2wh;YJrm4PTV+(%ap_}jm&)vx8zhv~v_$Y)ffrdbrMeBmX7xD(?}&CiA*Z+nnnUR0z{|%O|CNU-RM}^mb&0HYrX3Y*n>G-CwQ2 zC^>d!Eut)&DU%kYIMe+*61VCwSo>KwAEB<#cL62 z9gtp+TJfD}c#c{*Ivql4H*sE9+E!NW#Nh4ML23sKblQq*Hql>K>iipRK~}FGes}xr z>VDk=X7Th^D%9y@z0TAbXa%LZNiN4JZwuQn@0~YFDeI3a=!Bls4X{*j+T=O2PS7+v zXz#T4+IX-2E;mZ}90sr;13h2=g&CEYh=fT<34+B5?Yj{= zDJz+&Ete62)5)6hr$gL^Q-&r&^3Fp%Kla`>v1_jnwzF-tq#nS zIAs0Qi>S<{uTK~8cxkTNf@9pEWT%lSGjobKvK(a-YoFxDjrJ%e`>DcKEe82su`Mi zFsT;^_gTI_UE{2V!U}n4aSa-l#4U8&^y=y+BNq>vgoN)GN(ilMBcRoqANV6@O*I#su3jJXa)4}1aunn`vOF8)gVkYy+wxMKKn-mA34efCPJtpUk78V72%qJX=C#_ClWvm^v2T|fn zzckhmGw_-}B)(*z4ZjQ{wG{lMbpv@yi9j^C;^Jyp$sarfG52Q;& z$a$?{?-P!|)n%aVUNNkDFoH_-)hhB^_X=!@*lNlDB3?Qf^o9&^t_PR|erN|RE~$P3 ztlr~!+j`LWQ2ip*?Vf)JhizuSw6JAgzNg_{r4}qYG)wa!9?F#u;wXG;iC3c$fRj+E z)P|DsUmlW&z+OKb>p~eubh4>fU^u?*YFt6eWu^H^Jr@a(zFwRZ736uq^G<&{O%pX1MruEIO_k zF6DYlVF_;VSjw&2QLsmLJ((CqfA5GtU~MqrLRz<05)P);??YylCEpfMaf|QADA{t& zYEe=N(@3(+>Fi*gpSkbHBBZAoWiqKu3#s@@4 zJ^?U9FBBi515Ve&HSB*n(0tq-U&%ivh+0@Qz$L zIkw?)-IV)?5>wO}{>gt)43NELBT9D1Bi5+vJS6BO1(oh^Lv0ep&dDd4mK2g4erb%x zF)Bqy7{{1Z6iw7F_@T9}WGRX0+8Y!zaMUkk(b8c36xX-Yn$mday)-CgbZ6*hbZsNf z(ke|kEmNV+(vq!&ceJ8TnKWhbw{KRW6ff3XFEM~Dv!;&%p6R)zmX4lm{YsuxRG#RX zoFZ?ni{o2A$nVy|xJhgYecJG|ALhleT~z5=_#(r1B*0hU1OtbH_y&OdV#I%?6B&#c zg;@xRM9B!1h>69?r4d{>C~<(4l}*_>sc-@9yRk{|Et!Z)(cS+4&WIodL6NrqdZKT` zb_vK3-)kWzjr*p%`ljK*-3>M{#~m9P+33v77uK3upX%+#GMxVTcir4}7n)+gEK@r> z85%^C{sn#GCtSzeuk`Q#2`}>m@nUVzz&ND*9^{XcehGWK{L|1N{GSm!p`y2lNi2O)9=+uGB=)tefivSwPLARMhyGaP@_gwW{aMGGZ< z80A^a7cg=Oy9+5OQu6*PFn3b|e_`xS0Ig37&v2*;#CWJHGPu*SJDB~(9WFkwFg%_Q zAs6oh@tt}3mX(Ddg0;icz4`xwsi{++7xkEOyfCKrY0h! zVmM7$0&FU{XGe>o9Lyj7l1AZMT~{Nn^Sf>xrcbe7Uf6(+<`F%It~#L;vk1~MfiHBn zpl*Eb0zhg-3eOsBHuJ_YqGg$8p?o%GEK9BL*a#&XGkh3FA23KhFm2v(KSbt2q?E$T zFKIWV7ZAeaz1rjQ^2VTeH^57427NWHIuXj?B!^3(=B zBafWN7;OcIG6jJJnl!-5t99%L0}+qJMx!s7!jyS5AR9!iX)qvjl7$3!m7*KsnITF% zy^V>S=ex$W;-|L!TO>=;0}Wewh2K5xpm&)mx!yH?40k3%>x*Airc8SP3?D9f=poTI z4m++=!O{>#NuU?Sas`N&Z*LmUchzlG87+ARx0IJ|ttZ#x^=y`a(r2NR8TIbsobbxp z0XE>t5Ph9inbHk%xM>mAz=CT>gAUcl5;*q|B;Ih#WaX34wM&+c3Wo5ig8w(0a?j!4 z|1g*1G+0ewizYD^#Yeck?(5A%ftb>mAT#}v`R=Jln`IJ?PSjd1Zy8J!`?PypsuPx` zSogCPLQnIm14zBX+eLs&)0gj6`yfLc=`*ay4J;Lu+R$LE&j569NzQUjezR0ek8@ud-{vD%Ke6q zc8@~sObI-jJ!#sk1?D%D8L{K`LDtTwMs&T5`Vy=1la_m^u9>+1mgPQG zaqNh+r}YfG;=K-vF%Xld;fkcE@T$5#Gl-1P=`Wl91dLDoJ)^?L*};`EIF5;dRf=t zoZ_B+)TLM8?c`jbg661EWt`2L+C+91nU6H_#l?1g`1;f>#hzil%OOoe7ErO#be<6i zJ#v5Oex{%*9oOuyj1C2;+3>3WCm%|)kDF)9!IHO{Ai~Cq*ut)&r{Q$3KWwjH=qiYZ z82kcp8Jg5*Boz6>@i0)Wb9gzt@`ZczrwDSRermur&);eiJ{+#_+EeZ|2|^Gv^H$+4 zK}DaQYnRuXenC}3r0_4am#m@2~y~TSVHf!o8>7Eg!PU!^ML(v6V;y0j=Y%DK)N`_?rY$NR}z` z%Kz--%HLvfxlENzzNm6#=G#I2LcNZEd;W-U=b-ja8whm#1SiM;4kQtstPS!cmQC3q z*c+d7@Wx3xGsQaaM|W38>J}|8M+QDn6AR&N^&eYR`-_P6 zHjB+&E_gi8Gty2tJnBTT+s+~nc(e0Q#|)_YERMkcWitP0N|y{hM8Wkpw2M7jHI=A~ zD1(HFg3{wp>crOnLFZ7i8d^~0GH0RMGQw+BJL`s1i47(Zl>nz!hwuM5j39vEl1zXw z!1K$#jl`~RA@PC`&e1Lm_9PK@X#KHd#@SLAh$vRYvFc;O+)6iUOiUR7@^$(7}cDb0T@ zT|h|Q$feP=`ivu^KrI~Ovw{cEpBCJ)9>}PaH$ATQr11X{(b7hd{i+a*U@!izpW7M# zv@2%YW*%|h@XGK_@{e1_2gzUTFZnGzYF{!%`gUCKO<9{&YS13q_pnel ziEoPYfTN}X2R1^aGKiEfvm$V+AUre>uxcnWo$KT6hK8U#=?gJfw!bdtVan<7`;GsL zGq1tZlf`PtO5%>$m`cWkLRYVsKD?;_@o@f|Fp zds(sN&1nXg-Gw7yZW6_IRd(mEuvKfI50%j zq-Qg}j4CjfayLg^PSf>|pu0 z_#|sqbB;FmJEr6qs!zdwqS}-mq+CZ8i-o5ZF3ml+lafPlIX(U|FxD2#7&QSxspkpl z3(`hP^~uKG+dk`8Z4jAqDCXv( zNhN!cSAo7yhb;fow%CU)Bj zwNvr~3442)|Ko#M_f?0cBvxx%WI%-P-ii@N1uL%pH3-BN#2Rs${6NMeWK}8Y5PeD- zHWG5OD>e%Ox)udNtM~&zG@>#494UxeE7z3-VEFAxgG(?_o;@0 zcbSO)GGcdjdU69OJq#F}DlL8vJsE&=|8he(JFX3!tZ}6PC7vUBL+A6|Y)TK>kS>{J z3R+`3fHYU*dOI|8c6FDUZM)4$7L+c3O^sA5+hhx!9FifJzOsC4?F;h}Oxu+&tp4s_ zb|;z(nOUfaf8Gb$=wHcO!vK_z#b>%OrrTugH1K1tN3ibAA4k)zE_zx1#nyzsLb zNSHtx01?9K@~S4dSou-9-N;>4!s85l4alH6*J(&O9zAmusQORGJhm7|*bd!I^nxyN z6Q)Vd<2dk?9FClAxWG+yv=mO`_4eGp^IhL@C~PugA}v9dmTQz2bBKPc91Fu7j4? z2v}%-tSZ^{!ITzz2?n+%dw7(wu4pp%A;_Tvk~yG|ICnN7f!`Ep{(xOs5*NbJL zRdtXN2)b!Trhmm)CEC2*%iYSB-^f<3t*G)HRsgdacH91?-LM8CE*kJG9vQAmWQjqU zbU30pu>ewM#=Rw5W&G!0LvBdIwt~Bga&&Ut{B+;!nVh3md>>#-9O7+;*g#Y0V^l(cAT^jQ(}T{z%iK7c%O^`AN`Wd5a3AAu znMTc^kwL^wS>1EOk^b9pM~ge|CP!|JfYdhyo28-`HtI<{XVSsz)A|pZ1Ah`+b+O_v z@M^`%2LmUS7o`t^np=^}Do;tJ1$75zSX`0j5USOh4S4k@kAx(^Vg(d_GKU@+<_>W+ zqUa|edKgE7BqS4iM@4tvDQS!pOlY{>st0*S#UAQrlWlPzbSC+9xj-J7gNh>;g}pnK zC#=JiV)?E7pYsL%A+zN>^$m?jLQ!J&wVk6Pb}H__=}s#$xe>uQ!^r|s_kvGoqy82( z00}ZUtloX)0F1Em0hNTAN6qKPgIT*zzppq-D(Ic_#7 zu@wrbQ6af9$cOEGKnQNKDEJe;gw2;$l&eO*6nIu}m|ShC6gIa@MxH8K~NF0$o$ZGW*HpWj|CZrXr^?Ox0m$IFY(Xxrhs$!W0FZBBPq> zh&1E&>wt}aq;0zRgo=*QVSV;FA~`GbgA=nVHTD=EfOmx*S5#k8cs^}VLD?NE%}}(& z&fDyAm#XtH+ zin*T_G3XNpiFdAwOWJa%Aie> z!7(|nPR>T5<~bI`zwlBU?8+ND(s|c_ymedqCpD^MEQj)N+bB4{A0EV5vtBuaDQDs1 z#{O7ZuGlt~u=*D*6U^@ZS&U9N5xP``g{I<90Iie=`iYogOnBQax?b!MSA#w}=v@ym z!|4u}TH)lCA;z<{d-YL&0hEC~w^dNez#*P#-zGc;T|RzhO&>=~xw@ODn@>!|6(q)W zOzrZ-e)dZ<zTX;|BR(sedbWIz?AOn(}&<&s$4wiba?+mRmE(KJyN$euvF!M&nuRaYWVo#J>c_)TQleofNPrN&3C9GrkP={diwEmuaf)dV1%GyY7bl zSdDS*Q8Waijl@Om1K0W^xS>I4x>LEwfhG<+Zm$5{Wf#jkten*JIALAGp7Km#`INT8w7}0NL{&|iAufQ2_Kvbz*uG)aXXpP{`D!HBlOsLbx6HCRIX)vu?`vf3|K=Vc?4mv%Kkd~Adtrj1)6&}^Mu9gKKomsE0@*J7@F1~Wcy2Go9M{E&xAu?GVg=}cgbW*=RHj9Od1^U>hRxGOMaoX#Yw2V&4-kM9F&PVDMd=BlEjI~ zo1oEV+^LWtb;SyM+WO#TtCYLrhaX8P!<89ZMPTK@WaHm_0$_5f$mjGfZZ&99nJ7zE zbVCori5FH}80|Xe_|xpkgpeb}mfg|*B{$CAF$;D`5)&qdiG4ksNZ*jr)}f0F8+QGi z#ff`RnyYEWcet;sAiEnKT`-|Yrd{s~Ya{g67^#;T0IcG(Nv62EiP z#6qxX$81$4^{Qj)O~zjryTg^PhR6`4#b?Ufc7drCW*8OmRe3LBST(ZtIp_TZP>$aB zMzumCaHn3{n#<7w1xGSSyD3Ev;2Q~gyIP?H2LCP6j5vxpES*c6;z)TcT!h(;vRE(= z1|4Qs+dQWBEIgfIlGQf$3Hui4y~am7#zR=Y3r54^8ADDl;3wTmPRABa| z7!_ET*KhLni=_ZC{IIVrU~WM?pZ6b~1l5-FLLeHa`LkGEEDnPVdpw!Xq)riMD97@V z|6t%Jz}A}NpB%fT0LKvSD$9+OoAf8KUTKMw{NSH1 zPl{m)qksMP1alN?aYybE4lRmzsNIB7_GPa76k!i5>=mK?x0WqjG{&^)aO`RPOoNIu zBbyXZU9TFa(9tgHGg!yJli9gSOGsX2!Gj7&Xdy1XL?qKps6F0~l%IfDZ#P76rY8Af zL$2lxEK~FxI_=9`RoO~zw>m{qa(H_*3_9KcN71th5yN<5?Xjes;y?06b}hk;9zs(n zNOudfj^SrHgE@|*iXr-DjmQ&RL0}R35o!GBv9wq8%eGM8n%p1aN$)o)>C==8&Rd|A z8V7F1*K5Z>8aTfZch1Hz1v!B#Mji*cdk-@7w!nzAb||=rN-Y>W4*DtGrn1OUB5**@ z@eY*GG@M#3KpF?lSdfZY!VbIj(In$dCSgGedC(#TDy}Y%Ohcf9ZTX@WCPeI@zgo;8 z3AS!k-+u!DGfzM~Xx@UaR|!Gh>#mIOBA#-Ed zJOvJ@^MR5URT6-BSnuzH{S~HO{zKZW@$0|Q2!T25eIkG5vfS`7J7BvteL)E=G(6Hj z0n4Xmiq7&@Cb`pL&klj6n)FXyUJ!_O3c>D>-Ej+G3wU=ZK|@hns~1Qk(ZrhQRV&u5 z+Lxch0BR%<04OL37#R5fJ<93WcQzhnCTfB(@UNX$9FvYp@2 zPQ0A@vykPZr0x@dVyubRVi9;7ScTb}%nv=7uSXOtdXEUypY~N__D>mmRU8JpOtrXG zcu_ukKpLX^1e}egX_@{1U)I-^=D}k&>Ab?g95%oDVb-%ov-`mbc1GCVT+|F#!e9zZ z{p#I6bU_uh&uQiqYfj;nFCovI@&h{>6eq!=LBEYa{w_}2q~;!tyC$&cP9&1QZgmC> zegdBUiqi9f7w*Nfp{Bj0q1tFv4eJ}BxADq^{A9_g8aw-&0!2S;;el+k1G@2Oz;dYF z7AK=uSYwYfuY^0o58~8X;TWAJ=B-HY_X*Il(zt>IN3-K?M(>Zl^VphOwE6*~6N2sc zC$*tM5x9o6Y`qIBOabkd85p&IeFAZq+pnq?y|2xlgAz>-AV5=LH7adcn&uBg)2Yoj zMklaQ5d8CA1QP}@&%6zwBAW6ZHu^_cfEF#*gp$)O_b=u@C$IBlf% zdvTdvE!_VQ*PGCIH)a0bQ}~(*)-Cw92Se95mj3#j3a*OQvV+eKq5VOnb66wd9M5HO zqWPV|*8c8~>KoGuF;DDPZ^5Q-W0SLQ{ag=22pOlvxf3kCLte6M3d2sBFc^1Pj?h7s50|kv z?{Z^=)q)d&rhJBPvfT>rutyqcKxi4@E;J8podlx4_5vNA#sq3xLK2RX*ZMyxwehJBY&o5eFUe&JN$w_znNf&5bfu7(Ft#Ugeik0hc)~ko zTjCO#Ip}`O{`Zw&Bwg4a1!OCF2#3x6I?cD?im)(aT{!e=w$+?yg+)0!>Z#E#7<5ae)eaX^-8FR53FoW(fa&>% zPmvrU_@LnCWH>77FKGv`x7VJjj&X@Mw;8gyc#U)2oWw>vz8CcHd0xAXrI{}sSh`TT@kx)B ziNCsLU}`f8m{AArS!GMVBfs>(#VIZq$FzQPW?FqesH`=w#u*c4ZY!Y3Z)oaG)KAL= zY+}taLxL!)36C$e+YE!jbXK7}9H1LA*-~XWO;j`?6zZ04*0ES1`N|>@r?0=8VFIg~ zq)TSp-QN5cz^tqPEJ3>%)trx0D0gBvE2*U&%6r~1IJcJCs|TOMdc4a#AOKc51M2Pr zQ~eAt4(yfZwaJ%gLWYSlX{JVvH2AJSFOglVXc%W6HmBzi&X;LMUE}k9)zoIzA*1>9 zKO89O{BF+RPcnd`k9}~e`@KqXO(2)Zif!ocFiHeU!k1K0M@l17%aT2cJKRctwHLpp zhR)4XU!_eBXc6y3=nn5@HonSVCZH5BZ?WlN$v!nj;B(D=Q#?DTAUF&>{z>`AuLxV| z699>S07hq7EC=Gy(v6H&7we=H2I2^PQ%3SDEyl!vPmGmJo$l(`iaGpiv$+r37o{Z; zQgMd9C@mFiUfiB{>$Y+;?8C;Zl>vDNMCj+baMDofMZ8F`1j{RG|9Fo7L2D+9#r71L zO0#uM4sCjNpuWK@kR16#q*uV#%t!a~2N*WQnnWcSWYDIZj6k9Pn({t=PwkXNWMqw2 zt2M*c_|YO&7VR!vUq&igij4gEGXcTnJHL(uDXjVgBx(y8Ev;b zG#I*-(U{7?AJvSRy53wVlT|Zvxe=n}m&QbTTAPCXD+m$3W(>2greg13h@Qhv9iWS)0;csWTw;20%SsKMZTz3XY!ddz23Y|zetP4AUxdaGR2aFh#irc^QTta-{FDYvvxTn(^f8|R$lKsoyr zHCXkmZ*J=LAq$`2Y*p*cP8ej0C!Ga*T$=y#UPOq!0FAD`@YeZQzi(Q{i?H8H6_z)i zOORgO2~U}6ECi_#Y6^Da#vBF54nR2k%_cMS_oI|=&{0nOAvx2J7O1z!%6=Ni5O{#U zj$>x|`?^-D>twi|O;B>7LR<(*zh+FVr<1n?L>x3n zBzwv*QpW?i0=@Nnovu_`6IEB441X}-PBo*u#hj@8j?HEC<8~m#uK$XPQ22wB?jyi5 zV$4;#?bRD?!l7JnK*{Istv+=q1R>9tbhm%l!F5fu?Gr%3Z|z6XU$ZwXkgKN^IMQAG zH!Gh4Oyqak;Dgx<%j?#ubWg#(SI+b*)Z_0Ei~GN#0=&hG2fFq9Y9MtCTChWJRR*+? zJzzF1rf#_+Ky4rCN2Vc-sT#{{LDUSBLw*xHfoY==^+=*FSnLea!NLueR~k|_%^yFd zPnn#)L=-XpG=o+EI6%k00q*$|u=7V(=%>*nz|+}^C$DGbVDHHqWb&jOCA`Cl>KkgG z|Bp_w2z-)+w7r^jbv>LDl$^~-a)PKGKZCi_aP??x0jB?C;joL`8@#E~w*LJlb+#N+ z;Vo+g?YFPDj|j3C6=R4Z-r06pKbT~UNs0aa>#%k{txOU&n?gbdxKi zzQ~T9R|t`7DvQR>nLJFt|AncDrH==uVGLz`$kcJ8qn*ATVZzy=FK$?MSW13X)db>A zwx*;2@AlxWe?EwhS~G^`drmiKeQwIg z3I?;A1iGEDTJ)n`Txt~2Re;v zrE+P&iAA{rM}UjwFobj1u!mK20OkM|h^rG+@G2WlVo0Ba(2oRxdG zx4fl$HidF2ADq?)yt4iD(z!;#o0FBNNM8?$G7|{fy<_N9AswIMR9gh`sSAi=yw$ho zKr&SxBS@ACrEP>%FIw1(&dKWND&0&4kc1u^A&3db!*f7J*AO!X$Ze~yOgOrB+Swgr zI?R&Bbdl#mQis$meCzoIcjSm(sZt?#U>n@6xt4flyILCv(?<7@9 zYJKJUKc>QYBzk$KoZX_;?E?*3hR5~p>hgI9wa+$v&i&15)p!Y(hzQ7yt$1a!>VL`- z=#>>i@apmCLfC z|J$TjRV$ogxa~QQ#`N<`B2(c%nBm8+aAZ&qJVW^%f{_(W1>C?m;X$Xh5${gl>sDW! zW9-2M{_LVf$@Qb7bU>p4kU-r|0TL9`Jo!y48f4GP$}N}}{C=vo?V?9%3ir!AD#(g} zG$gQQe&!WbYDN!j%hS{U32YwAnWi~Ki0PF#ewl=k2Mu%_NqNP|u5jz-`Rh z`EE4q0R37pE6j?M_rx1x)v6AgB{05gP?h!3r)lQAwZb@(g&m1K!^-k3&+y}T8I$2( zIswi%XGXvYdf8tg?qng!CaHe`zUf<5HO7S&8g$p}T$cR$6d1JTH@KQ?Nx6>cCXbZq53>KzL*UANo`7q*c)in0w0&PoE9;#C<)pU|1sO8cQgTO}&>Eg@_=S<}|DdrG)C(Q2kF$N|Z-dzY^1VMZ7!assc=A zJBbc|l1_V)2X>r{$P-o9t$er-)BpIkk`bh666Tys&ew+KJTw|jjdN8JwjXoF44d9# zP=;|M@T;=|9-mKWY8W>IwikzM8DP>6qKin=3F(scr1r*jlkk2LiGPV-0j> zRzW1DS|FSVr6fPgDVD=M+y%_qlE7V`nf1EPy$Q$YkV_!1be(m4Uv_CO+>O;0tBRuE z9&UT99pa94r7xnWELoj=a$~Ajc1ral>5J~4i_DI}VPC>#?XHybt2D~Nug;D5^yL>> zUHsF7={2GwBSks<*7ZF{g?&k&q&OotcSs0zx$FLEbf^|CDy(W%yk3->=bQvEnpFqI zdkpVfsS=a&YLU&YtzP6aza7vQAqHgqs<1odLx+mqNnX9hCakOLNa^AkM3x1sFE@5}OFrPACoc)Ic^cTOzTFigZW*IG2;%Sj? zE8pfHU3;f|{y}cGF}u)yX)FkJY$ESt^uME7Onq^BdYq0^`*I@0Kof(;IPLkx41c~( zPd6YUs7vgOohuv(UC5sVI|C*k!HQ)_h)OTtUnN-Oj8E`LND}- zDc%s%`U+3bi^nySO-Ff7ZSPF1slx-5HTh|-SQ0kz;U8N+;j(e7`6Nn+H0;$EMA_tE z-1_)iD_1bSJbK4#y-3J*un-D*s>`Ig)<3J(5!Y|#RJ~8paq8P$p1X3P-huTMcquHn zoIq()VX@j_I(Yu39T$+Y2FUY5=(>lJXW3Pk#{?S9z&?k3eU-3ZH~L&r3Du0r&#%M& z1$faw`~~PJ8Ede*m}D=HXNk9-=zDuZ)c0JgGfq!_O72r-u=yzi7>S>~RW#_Fq9k;> z?zTbxm=@OAT``IZsi_cVjYP}RgMTM{PzAZxP?*!x<{KG6_H=$t7GiJLk2#E$c7mLr z*WVK~SgoynX1-br)L+nQG3OCmiI!TE;8uA}aHV=HV?t!u-dI6GMFcmDwKT?4N{PFi z?(Q=`EO|(Hy}jfL`)*-yBj(?a*bdQ8GqA*Hd&C}q^p+kNe-cDoSZQonSwfC^J>(%T zS^1#G!$3m&wH%3Z3!jVNKPb(wrnUD-))N`X4LW^QLn_$D3i!{14}lv*EK=K+YNx_~ z?RRBrUp(k-#=8ZMrI+{$4YtFab4{VWg*Z3)YgQARx*lFJaVUyQj$LR!9qSeR0S#%c z9iE?59jbsdCZ)#_90#zyItn1Hgrr2GW<~o3U#3ZMmPrRC|4~0#4sWdQd%BNwn!b z((0OiA>{xYy`M9j>M)Pz$|8QZSA?^*!QbOY-dEOHLs*FoMZz@U!14MMM;DK7)_<^V z%Mn*fJMv+f!;6rcrmbf&W-=t-AA7~so`82&boznkKOAoF4_>-t9+U0go>Yn!q zuXACC52(JJdO6f)rDMle{sr(OZ4*Bcy*a5VUEjH!BbB=~%a>a1rLyyU>>j6iAUaOh z?dbh-0`6+vAY67^NNIff$(P;4Z!t&gGf{rnOic?pL0nZ~Q&-v=fJ zd7MK|;w`*QinP?B!vCuI~>V}RxMF4!7{VY%u|WZ^%%p_=ZAK@u*W zSY(Q)3w2>&6Ib1js%XldT(?GYbnq2hd?2&eF!Ec&ceOc? zJR`eAaoWu;VVR_Zpk?cAqgDjv%XhN0`51RPB>V7l7p zq#3iQKf1wN7&zokAwYR@zY9f)Jrh5!z~Z<|r?E55$kQ7f<)Osfy}}w zncaF1DmRNxdvo@&Xa?34#IDX|>xPHbnnV;>YK!%gB$?g2{RJ3Wr&X;7K0q;Qd?o}R zm8gBquoDb;zodIM?bcso*~983p^4k-UB2hZ76UTbADB?KO~#+v%((J1)4@^x=qaux zu=;@KTxdlJ4;e&!RR(gJaT6;sn;d&i!ilQDn>}YbuynEVQ+$DF6oE2-{R4(zT)LuK zKk@|n5c-n0-Iu^TQ8wKXPp)o*^^Hh#tB9Wq?yurRA?<1W`WIkpxn@ypjP;zsvKBoi zDdpt?IekDnk6vytpI7v`qX6w1>6>aNV|1I3*3)x5xc(`WUjNE0hSB%QKQ!QdIe49N@TYm}V8A$OGvb2*pK38=D%5l)|r z_>6Qab=rEeEPK~0?iv!wz57}gL_q+ZztC9QA*)`}OnA7VR>S^1Cup*K;DFx@`s{S> z!T83ikoB*>irh|Edn-E#j%tF0qU(7vP^ZJeL-XAgz&~X{{qY(xc>r%B>&?;RZ*$K8&fFU6g9hdZJt?_a<)T( zd_%7fpR!GTo%cf<0Wz;=y8U4OdkE!EJ znxRamAM2%uB01jyeLo9EYre1V^!v}fQ~cr@7QjOD3zN)B(AmqW@}-N>;r^ph#&zVk z?B*+J_MUw*sS7;egin$(Ube0ch^=u4*1^MR4Nwr8uz0sk@=tI0LvPP zEE)t}%B{}qn5m~sg}jqiSW}2R-rWsqVs><;=8bYaY3^Bz+3Uzr_IO$94O2OT0+ufU zixS-MLLC)-a)*g}&K^mi#dV^heo@1UdpreetslSas&~C-PO^%NlF`MWzt+E?4P(;9>c8c&oEgxB|FDX zuP&IYZVQe+y$wp=8S4sI|M5kLlUZY_uKqC@4x;6Y7=zZiu4g1UPr+Rw4DfJqJ7NP= zh+l1YKD>|*8PaU-HKpZU;WfFAP(j9BAd#YyJs6b0d0&KK+6L>; zx9{7b=ya5H$EveSA-KX?nmw^QfUyHfR|r{I22tj*B{fD&H87tuxQfPq0Y~d+ZPko! zaLuI}Z;$1#24(fE`&}d~LDCBD0qo5BTpJ-m=UQ^2^s7P33Whpu2FOOCZJ=D0&g<%~ zaaW*bV}n|@h@~>%60Kf!4S6Dch*kkyM+@-nZS9$R$g)L@BH}d5xdUxhL^>A?#!!#0 zVn-mn#S-|UHi3Bk4Pjp2BW~H0X=$_8+wWmCwBL-(P%Ux*p?!Gr zqe?}wmYsvWAXkQy>oIk6Qoa0~(_wM&>tgLdo|+oqve`OT3mQyS^L1YIQZTjDy*Z4k ze)sgED{L?ch<@FvK&$-|YkDtS9zS)ctLHC*=uBo-+}^2TA0W{F>8B+ zI@-evmGng{K|S; zL&9>NYV;3!)3ph7-5670A?$21k6n9(hCCX>iK%_fU@4!WPpEt7!%=l~QuRcMknPA~7!JznnPFMz~w@#Fm%Zolb#f9{$$TW|96+)+g#>miRIy>SD9G|#Dhh3SZJjgf)q7T9O$6|Kl!|4HQd_FqF}*aYb#Fx&q}z|>V-&K)V@_%K zN~5ZJoQl!_-h$jmFnD4ClA_{T0x#MH)hQOJKCkXaun-Q(Gy>V#yr2*Dn-)8Jt+04$ z+Q>=b8e@lopzwPse2qQ1Re?Pf65vYuG-Wu14*5&*_pkXBUb*l7KW?{? z2UV&{jR(QFKAbjeOXRjD>eVtL(ISw8V;fSNp5sJOIn*>*LlM(;C$D6(Ghn&!7?&a? z2?poK?6y=2yhc39Q_CX`AOjPsN?Gk;Xa(*o8f9Z$JJU+va^k~fwOvz9Ay$7AQ%){K zu?FsXVrPMim}B+SPs@(uw#d(`i5NB$LWyu0WX;`uHdRZ$7B`z5xSZjRDd^z`FAZyf?ZU&S;pWDufIojP{t*G zQ;BP*SlKz1++e&9qffPU5!{bx(VtvSSAh_sqQh`^6K=6oxvrp{;>ETkj}}e|R)3wr zdvNW&1lP%!XI?^TK@G%zWT-etug9ECaOxY;e6wqu=*4*0`H0}qrf#XojGwTpWnIx- zp3PmOv1za?i5>(C3PG|q<7fUEv*uOIb?~G7zrQyCKmh;%(x;e(?2zmJ9McdS-_ji4 z!;DZLD-t$TmP5Sf-U$E0ET2n=5z2=w^(W9S{5W?#W^Tsk<>6Ts`!+RPC}@BRRe{e; zr!#}t+%j|u#ME*i9&2e@lUpU~GrKbSMF{P)%=4Y^oL(kijS1$MS5%=I@}G$bFym1^ zv!Aqg79?&K^n=NU0m|_FVvVNH3Bl_y*E~;Xr>e**{*|nO3`-L2b9nH!V&8omFb&?ztS!X0R z=`@z_WA%9Wwa>1g39pwCE%g}@;Ckpoj5#Z~hNVYn1H09p%xNfi2xur^ERnu-ntUM0 z1=y_+@Zk`H;M#ZeJjcTvTSv-`Ka9ML9<%$r5yUvRe-&(J(;-eg%bGu+ALg4zr%sn1 zX2saGrGb3kRny1PyL{XfrOLqZctKM9It-a4GJ<`tzxF&-;41-gH3{>v2yq1~W{*UX z4bAZvj>3UX1B|0mXe_3K&zppGk(?2rK;dl<2c)EM@oe7l8m5tqqR5nHNrBCz2W&|$ z^n8Z{(QI}dD*Dh9XBGaX z%G8s%ofXj=xGG%}eA!Ub)h9?T=Xrp>2A#?7Ig&nWbLx;%>XLC(sh7V1*rg{jezUrh zRW5draRP&13jdk1LjIR8KoBr+@c&&K@ZTvbBqbv!qM)RrMy7#<{o6aC|6Q(vR1Cro zCsJKrgd4~YTDdGh!8`OSaxgf2-g8K=3--2S*oMbQCXy?2Rc6ip}NmeIlx)vP=K zYUvuEd21t?ODZyIik_3(HC$Fu;@MF+)I6+y#GYZ>dIh!q6H_XjlA2)+v=-3FGQ^vE zK;!rYsym!sMc$>`arR|tq-m_%7M~f<2_(3$%|O+1R=bb?(>#eSi?nKyAzdLc^dU%a z=ei_!l^d&`5;BC2cEC$HXkC*owi2&BQnYd6mT`ccTE@}yF--d7$<2mRf0WJ~fv?z} zys_=rUkw;q#D&95r0l1ilXtoUCqw>6wali|x6sZjelskI@7QRl`Jd1Pr(9`?dkS0~ zRWw$w0%wj4B++37kQWzTV>#mi1*B(57T?VNQ@7Zy(VvjK1HF#QeIFrZ7>t#!w(fz zOx9s%*GuKque?VOCS%ZQ*2cPpC{m@LgsRjCSHV=TSxLFnoag__5iYzl>s)2H_^@_|2Ql&?1|fS!lbogRwrUsXlReNm^h}_% z`E5?{!{R5xtkD&f&hINY{0U1Gs>Llx6Nr0h?qE7YQ^9yybu zmkhvS{Cb(SPM6=0b;KdOfzG!ynoTf>MSi< zpB}(l*#!DZE&APNs^mOAj|lyWmup%`*y|XzYr6p9)~N5drX0QSm1k~vYT+)r~n3>j_MusE0&MGX5pbbR=j#;aAUaMdX{v<+$#pRi11iF z3GHZ1U-9@Uo4L=J5G8O*>ay1Xhz`g2+k?3<*xAMctkg$0(ZI0qdp=I-VWU{`SKL zdr{;?CB+IH#8)e2mB>T)QVV4$(8z)Mz_)&v28aOZV7L zyMtzB@D?$4^5v#AKv*~*{es5N`7|`P6ee{8&~k2oBLv)DcVR-$1eMmn^kBlU^Pc*O z{p+zpix>>LzVd)^h~4$pa}-ZEtzxAVw26>mUG`}%x}~#SrPmcrp_lqg?ehi&a*PHp zyJTvSDq^1K<@NQ{GA$FrDc2@qW^!#toRj`E7LrXOi%r3_oMvZBiLX_Z?p~o`MrLIw zucM}=mSthjrO{4;R5158*16X-6Kp?wy^8;9kaQMfbIhu#qI8dy$J+aetLBKuYuW~E zm5)9vD$4E4rx^W_{q|z7%Z4EgOI&VDa~4F@;s(8owtHpSI&FU?@i?RyPKE&X=}#6Z80)F_@T9aCPj!8xN=>`0eEyDHRfL>E;IO#ZZ?|-GuNZ0y zm`Ie9#@jd^Ve2S;fIdh*`z7z7YArNPOguxgm+kp1erN@<#n&%z2}2!Vbe&O_a`S*a z)^yPxwJivfi)EUvFnFj&bZ5k~#Xlk^M*h!~EXaTNzX1Oqks}EcG5w=*p@IM1{eomB z+{xSULUup&m8$pV*_s6Zdq!YeY+QE(Z*z|Um8{Ez9EAJk&o%aq5(USpdw!9@(Jxah zxDJ7&=gwAwDXr}<(&yAHn`hBqP&tvLvAn<_Jg&`QK2N;ujxCSr@GtJq5M%sVBQNcO zb7~KHfCACagg^0{1c*siCI}CE_C-NCxJ1jm>uB7A(uk}O!1l5!z+Y}0wWAF{UG;%s5NThpVXtVv+n*c?~N8Jw|)>K?go)2%^ z#Kipzu#fTnk^V&2=41lNY0Kb3X(~_Zo&L(zyk(BIXpUqd*cLvbi@DN0_I%M?>Cr_$ z6Tj{5QXP!%%&)K(!Zm)^e7Md(cBCT{8s8nBe{_I{Jc6q5=C&b%1qq($C;TU2!otPs zVZf-~20f8{x|<%xI~}@^{P!kN7oS<>0mCPS*Vz}bB(zApy#rVLPYq15IPf>f@wB4` zE=ukLvA_;(TuwdRQ`Th%Tgd>v&UWrw&pDR}CJ78XW=f9y{R~ou9fK4I-`Se4&Q14= z*}s6Ha@N--;Q*w+fKb~D`#(=d?MzE91sx^(z1uwvUt{b?w--x;1fN!&cLSTii%r>0 z-yjaT<}pjlbUj`gqmc!l&SzRR#HqgkodOHEq~Y47vCP@c?}1bMPb~px$3+(FO*v>v zPS~>0VvA1EO!*>QE%L4YUvT+$51XUlp&{Gph!{>YVTnkH%J5AtZEsMAj}B9SS3@lV z?vNDc?hBW>3M%pq#PHBlf3EvJx@XENk{V&Bv*1>?bpH!*9q)%s zE7;^WY5hpS54;TBd!MpuAES9v6!x=v8?=lh;pe*x-o5=|{bal=*bj*PC-pupUJVWf z|6vaM8}oJU_Sa}Y*!Ta(G5zp!l+@6K(-NEWGa(|*A-scO6K5d*kINpRm~?i}aavf= zkx$RzP>2+t%Ya{t7D1PgJ$ZR?YdeP?rurMXJ3bxSd#=u&Yw}z6@2SMuNdB|>?MjX= z`n`A^LGbLCL;B{oV>TK`IN5i@a@``?iq@uH@4|ziOXQdcY=+=w9b*v;YRE%cV8nq$x`yPi zyGdnxL(SK7!;GU*1#g^3bOvz)NKn#*;Oh$~oJ7m$qb%Vuv!c2S9l}$=w(DbYnWQiY zdXg>g_t7E6h}Ln!dyX5&_v}Q42VhVC0^}mc^9v(s;DtEcb4^qs01SuMIk!Ij7^Ss< zbAp!NpdL}fo@i~n?w=OS8VZz836c^LULdy&5p)>EIy|phW9{69^1_}783mdY4SY5G z_c;oEnu=A5J^k}|OQ#5hLA4LND<^KzhA46nQHM4?Ajq$GEiM+yWy zIe%}JUC#lW#k3+-4R4e69MB$y#Za1BL@oJzN2?4-`a{6WsDYQgfv0~rB92dLKjg?l z4Vy$^ClRWG^?nV`MHmvQ9{Z{?jPMF{;XG@fIa48W27>6L4--$)>rA9aS=8p!4lO#R z-A+>y#JDSc;LXq>c`$8EZOohR9+FFG>q1{f=c{u#}b)#UC7KD^Ck8eOhw`Uc20K%wzKuE z3ll>Knvrwf!BS)khkMVN{g6!#WC0O9r>HR`JexE_{!Vr@xF892CDB<8cub&SE*XH& zL_s>oxU57$lWs{}s0ycYVo+CKfTIG{B5+v%dl^nB(P~Q_S#wE+U^wqU_^JAr)s`5q zDV^hFY2iUPp6*HIF`M1l`6~Bv0uvFxL#)iw(=oVF`&G&*^$+DSL|k491#p>C%syj& z69}sYEs=**o_P99{~VaxAm{$uk z$~<&98e6wnTWkzrMoAwJU8Q;9rHKr%Z{buZZO}7&S9}v`adkq>-Hg2n$We$-N^30T zqBy*4D0jEMJ23EV<$Zn|(UE@fItU(XZ|}og0ybWBZgP(MUMy0)rrb$F7cC;IZWn!d z|KC%}o(95cqcZos@KKUq%s)nok6!PB)-$GJNTn*ppSb-q3u?6??+LMFe$brmCS9fg zJo|;AB0o*(WlQ1XF105#O+}cheMI3=oVTI{(!vfd$UwjvfnLnQI`wFbVUXO?r^VlU zPEx`0uC1Hp*Cv(+BH7ffKap<_H`y#H1Ge5-K8LE3jv&qzV(Si~-;`$?hr?$oNRQbg z8ff&?QO45s8E9;kNgL5z_OoX0S62XaFT!=$$qHEhIb=5xk#N%X)y(Wk(eoW%%Ey|*sv&1rnfh2(*eGeK^o%m+t z=8+1UG=)-ON8JVXe1=%j)YaB7ZjZxgz5CR?U1P4qW=4jBR?+=-`rNn|L;3o^dtOee zPaAA1aOpjTU8M24`Fd3U%b1$zAdJ*wB_C!U@V%>)f}B7xrRtFvR!0W|Tkj}WQ`M*; z8_FIv`30P0pMl*jsFVXw3%#cx?!^P5Wq=lab8$Wz3s|uDk|AVDgeS2gP|b84YtHAx z)cfNkn1qi+R@BwCev|I{^~8dZB+c;OvSsSUl@O?w5~fIxmg__rWdp&X+SXvB!X z@A!cNje<5uK5Xs}0{asNf`K~09x6tJ>11+w<4fP~bw#`Mvz(>BfGvue43e`uzpqD9qsep?syysCCpWjIMB{%wk9Z@avR!` z7%4H!4kVHmZr6GFX1Q5n07`o+0`h)2BaSJ?^St%g{Uiw8m+NWDJEHlu11;!Qmct^j zDHbVnLrG=%oIxr2V>qZ**6-DGfBIvWr75KjRXv%JPQ#l+dT7!X5AedED?n>x^Dd3h z<$nCq?2Vj}S{l|;oS8Tp@&R%3#xzrtue7%;cU!p(K>eLyyEhqtaR?Wla)5a@W79at5$KoC{->}n{4p9{rvZr^J-M9lPK zpD5kuhNESATefUB$fasHZ2#v@NsDxSTbc#-*93~`}68L_cKSNPX ziDv?ujBM$~S6=4`0&3Ixv{qwBJOMeC60Y<%n#ISV?;C%*iT1~A@G#&*Q8+r;-~G2?NSSoflMS9%p{u>|6O;Cj0CibEgl+( z#_Y!qD_LwO@5U_OeqU;0BfBT>^PW&(1sTv{ahhaOnfz2iqT>dgRzY+a?SVbfm3GqF z?dupx1SZJR$&?Z62n1p7hA^q1jiWf^9}l*GU+H{PSjQ6S(@N>H7FH3|6Y0fG>@UwKQ1#lFgapb36IhhAo??(xAV>;z5h9vX<-j5J3U}Y_ zKr4?IN+wo5PB&Z^Ek!*U(m*JX`a8mD;@*8A-s}*fE?ViM{=AFAm}kUF;XGotV_RS( zc6C`5(SMS2)+2Z5(V5p?;_X{~2$dj~D8*DN85!u}1U`)y;la($TNHMcRz{r!(Oenu zWB`^?g@L|A%N&PxGC_>lyPvks{1pxEeAxQ9;*x`gTmK%S@$+OaiG9sRyUTkf6rPQd z>*`7xzM)_Tk9=4x=9J`ayYDWO2+EF!aSdI1eq7EOe~k;RQU+PT4Ic2q`w}rSuli%q?XsMBr-8Akmz*$ZJVlKmwrj89Fn1$N6p||9SfE2_5ZEs{ zX+wzyeI%$C60?-qmS~VBkcmZ_?IQCLavaf*W?%EOt3qH4uXRAnKj6^Ve!oA0b1v^x zqRC4YO~XQ=UNaabJVI?a2#5FVJUe7EaR;EI0Wwm2ah>ZiJ%OO^wa|DL! zd&{t>`qPjKtWf0n^MHX>OKd0LF~Fo5C4$)VoM0>`H|CAC&}Wz5@ciM1eXmoM>eZzF zbSSEJS&n#k*MKW@4Ov32i*XGt^=clAQZ51lu!jtFsOxK_gtpLeKFs*jO1Y#t>#aYy zJe*KY-|t`;v_*1_;z|6RdqgGJEpkK71d`s30Mbicl#^i2q6e*H?mGwK0iGsu?`&;* zs5^d+GByxW&nz4=*-nMWfS?g1*TTs1wIu2j=1~5$_8^2BZwz?v?SzC&bEE3l-ZFZJ zL{7KmYfDR<+K*Mvf;d(`C8m=@y z|C7&=fX^)^*EH(DApfJkkpISeR70!W@Gwh`aQuxB3&F;rWVd8Z(`ptk;J7&fxfFL; z?vkAc-Nut=!dzC)C3R6!Kvp`w@)ACaEc>+?*yC=*zK6hf^H`Kboys-__?=vyGB@T$ zR#^H3X>l~@yoB>eYk-ZSc_gdSp0+XrTA?w{La$#y_&MAdsUZ2rH9nXtSB}T&?5UDQ z&HwT^NQ)=jn;j(?pzDMy^~Qtw5S})9X-VAoi>t6Vh`O(iueQ6_WVZd<@XYUSd|R_* zD2#~S)yGpnp$$&rlJQ%IkH646y&eK~_Y(N4xR4_MzF-yLaFGF^8?|8uTzm=P`*C@W z70P8S6Hbgj1Y_WiLNsB-i27S>f|}yvt_iO46O3taTyo*~<>rrXp??N&c5bWs~_wXi=cqa7x!#Gn<$d3wgC0a5JT2Mp`2b`Q9HOl5u%WK@tz{j*=EToD#hU z`0CQSsf9xMAR(sgru4}ok=Ee;1%!|1@$2FuKkP6#)eUoR=N!UzrPLZ1)po2%2x1rs zp~bH|jq-)C)eE)>A2IivuRU1~N}|(E#(N`Doqtl~8bA=NI|oq8HA98h=E9p<})zMjZ9#U?EM9B4M2o4^N1sD|CqTpn=dghX?zZd zRrUi3M3^&iX*QQt_~d|B$pyi$$Zf9c=z2Ht?hjwz%Dyzfb{Seb%YX-_3XO?$1Pmfz z8O7(B_1zN7r{3oC9wMu%A*@l}J9B|G+Q{ijDckhmE(j#trNqxZeVI^YD4n9@r+;1x z28=od34waNok9b9b2B}=zj+5!n%1)uN@WeD*2* zPWDVlOB7VUQf5_tc5ND>7@|b>90^gpbroQ>0Ke zHE9E##kS;gfqWAI2a&}x!rpaM(je($&9K@KPdDF+`>@PQHQfiwj%@XZ&00Nw0YrOt zZnI;t(a`>Q?Xn*k09zwZ1m@=15RBQ5f0;}_gQ_ofZr@~y5qh*M{Lq7oSy}r=xHKwX zMG)>(o-^EEd4@IHc^4UNapdvQn|JgBm&o|u{&Fn#D3MPi_BsXKYs{~MO07o33oi!EID5|E0S9*eqGhX)9M*!yuv z>-RR2<0a{3j(~%HyvKhG(#@ph=gq6%M9!xuy&iQ+4C{|+8 zu0_0i&|-#1r!aNu5BxWX>VaVa=^<0%A-^aS8Mx8N**%R%JiD0pcuYu558Fj(rj5$II-L^;AUq10TY!?U<6;O7Ecj6>t& z(vR-^q5byyI>^G$h($^(3jJXyo7jDP3t3>`iyj|o&wFR!#RBvMe|#H}QC|z$`}Ur+ zfEet)|2TATz!I;NC=OJS-;!WJ6JZd4+#|`?P{aN85XDpK5Yp!ugmxy!_ZQHYX^j@B z_V5?5yNQ8KyN_cYtviyRa`w%vQt-AuPhDd+zYvOq*RHqSAr1p9bxn0h;5y$5mp`YK zyBfwTlL#uRJKoKu@)OfYeO;j>4b2os=ab9`KJ&;SMcCZi9wLNxs(%z_kcut7!wvb} zfU>cbap3@V_4F6eufjl`#y#jH_8Sjj(N7kw3~os;b4N4*LFe~hfLoXpRZe~J5m=!s zMM19Gj+MIg4`2Vc31LnGf!}#F5wvTBqgG4KnK0s99)8?y!ROq*33rJA5DHq4`;-K% z;z(OyvK4Hp=TLvOERSeoAJ-@yJ<0Gl3y7=cdJQ&+OraHjo)^=C;H8BqL2OlJKdvsb zHZihLNg8GtZZNTkM>0ziRbjtCu9=sH(iw=YS661Y-0dQ83T4Q7Z^jHaW27(Tk4U*A^%SH;o7eDYjTqmN67 zzku1<_>U~cmjb2RBU6ps_r5pmd;iynxg{<^x#KU!&p@}N3PV*HSI86wez?`$t;2`p zp@di!EiK2B$V7pKhs!>v?~y`;vey{2DaxWCnQ=WElT{p5F0J;s0#;yhab6I|=SM$H z7zl6R6TeAfdm#*s7qA)muq3?yzz;KjnkVUC<>@0_r5I?tw8dVIeySQ>Z>@Z2bhjQdkDuIiwYl6{gN)D2XO8s2BZ59i2L?7B^uRZVCq z7U`t#0!8f}Xc3yvk;_~xHoygc`(1$LH0u_wLgyBj?Oq_de~7OWB|)GlEDG-OZ&LW2b6se7epJWhbFa<&EW`4a*KxurXXS-h@OieH@L zB2%&iG*RP>W{(qxhWXHh3$Ol|=%wr(0jN4i3PAQn4yHIDAR&9;J%p|--Jtp^SfCD# ziOuEeH(VX}jTc~zRU^Wh-d|mC{VYQf6y3VpRqEwfX}f z$3G^TT7-qjT<#5(iJ)+v)DZa0n8OF0>LYT0!q6WeZ$yr*4aB zFC4Mb)R9_bO!n*-2)pGGI36#!Yc3j+N~COD3ZC(d6hLU0Z~_-wBUIDX@)wS897dl!S`bnaxt)JsO49P>rDMIwJfwmJ zLDpRKtU;!~s?H>`p+B;VejpSvhaV8Jc~rbnNKh z^Irfq?l%a&$ZiMtnRIM|S0Jofr57&qOp}6(89+4ET8%HZNfxi?j$c(aSHwS%&>X zdm+mCe(a$T$V~Mk&)>FOf?nyM6RXzc=XrRB$ZCLpg)iLQRfaLhQ&-wGj`c3AB@q31 z1lTb;mW}fNnagdHrDaEZ|;oShdPqvG+E>vVRL}+*3wqX$?#ntPO zD$+{;SK(?3WWL>qJWHe331u^fD=$F<7g0*g2jV_cAU0=ARa|I`WPzqI)Y-7-n-f|k z(l*Yaq2h3VGA!B?o5Br{qNID0Ik^3F2|+tl~j=wtBfnkGx*(NP|OT;AIa;rOr-4`?<#gY>Z^` z4y%xWbn6-BhVWfN&}uF@+jTr#?3i?1_&I~6$DTA=U02a1XSx-#xOeL=mZPs>7roUH zUIOe5tt%Cv#PGMI64@%WO)o=XAw2jAk5a7iQvT0s7(^*q9zBs$(_}>N>XPdwvcJ5p`&*QzB zID|{R`3{MAg$LnbFK40hijd|5@D8mu)ApZYJRQ^Y^=|=r#$D}U8Ffv|p^(N_`iJqK z28WX83k-zB#?1HcAvZw?dCE-5Uby8o%UssT%WB}Jq65yfEq=ZTbL$i8+2a-{zrtOj zl%Q#>8U0?J>(F)obP0yre-+{!dARXI4skz$ig9Zw_nvAI2fy@|oX-C6MUhKjdAdx% zvLw0Ex%bYL2xeR4VRLD|z^X|MM2IALSsN9*nL>gIL-xEuFu-aK394e3hd69jz+BLg zW+?PvX0KV)Lr}nEm@L}DX`Ox>5n(%U3p7;eqND>N{U7SyIw+3lYa1Ng0s(@%TX46a zAwX~l?(XhRAZT!RcXx-uArRaGgAXtv$lx}}@_TFF-TmX++TE}ApYL>6-RioxZ=a|7 z+;g7O)paf^93a<>YeUs7C77XE5BHK3<776M{4Cch0j68*>OZ_hqD&szACyI3f37R{ zzTjm)Esy?Y`Emz03Pb^C*uU6azr#qE00KJZk_^0oe@LILisy!qXg0{ zi}PsVjgEjw27r_t08{GJ&v3(SO%|fFvs7Oz=%!}dQpeElx)@2(xL{06p3p9tU(~|F zULr-H_=hIEOa0nqevEj4_k^KRE5sSze=p>R_K9+@nLT6K9PE$h-(hS^y`qwTR*>#q zIL`~Q&WR!Ge%ph)tL*Gh)T}Zk`(8_106%UACrFWAIZW-WbE?y4`@kKa) zOv0&z=|PFTg7(W1B(omxns=$lIdhab=@N2b)BU;LF-ViGc#Bst?VwmUN$ymv$mAuV z{Vkq8Oo=F8bvbM(AD}W5X(#a>LafOxMgfcksS*wp^ponq@sleZ_w|eXBB+tIZO|L* zY8sk=TS&kP6|`9Xs#zCPp0@QH^~YGL8u|M7+@3!t!^=@=l1sbQx1KqFE!)hf4=ecf zCvxbmC7gTWT4h-HeM(jbpzmqe42SWKRaVi6sFl2Bv7O`I6DyS`SpcH&`PJhh@bJm& zY@>!v1{z3KgUJu(;W5?uyrTWl;?J7PNxu2(wjQ{Qo5z!}q~aL|aq|v3E0)|60n`%D zV^zlBImN0DnZF`MY=03ia!kUs9VA7oTdVgurhCwUrtO_fa)yiSzcdcE z{h0T_l4!ov(5(qi9+3zzke)m6xHp!V;#X$*W*8+(&mlMvl3o`TvG>J(jJ=ymk>=Dv zvs?g=5AfHa7qg=`Mm8m&V9O=>t6sdSYJ&clrzCuS$R)Ahlqjym;zWQa7}r)8PHtJW zVul{TOxnnrVIVk0QrT1(E(GZiEH-9sQCzi{D2?2eEBw3;jf6Ae?k-lv*yI$-a%C$V z{z`haB{{5GAIYBeWMt^(68S>v63%9rAI@mPniCq9s^%?$^gCA%R@? zVW=C{Dq4aZ+;=%I-!Zom6apKMEVF{#`C`9O+7t$=wi-;`-(xj@j4o}y&1466Pl-fM z5X|-qwh#RPs~j!Vb17RBHB1pniiJ#1&u5t0eA=e)$^W{BjyLe4h`rvF|kn++|~&h?}$bJ#@`>rmA-PZXt#^{2je=}C=7iW1UPvr zXlG9bkf??}^TlPr(|$FQb$5YK?JT~dY^swYu6B`CIROolMs`nc&{TkQ&0-*Blo0qN z4<>rBEZ{19QRon?%MO_9$gM2qCzplxUR_}iog>TjTEtPcrmm&rXBGq7!z zz!_dI^`Cd^Z`_QK_-3X_m3g^=fh3lDw<3Dz*(`^6C24i%qRm&Wh7x3vffde&L(!!i z%dLLhO?lR|UTeXdPI_y3J;GFm=h~u@%bMsDH3G~0mOXOp4Tjs;VuHtvnL5U?nLzvS zc@jzCE57u_RrnrC3M$(0hl7E+ga|c0d4#{yS6F<#3hc&K^lRUcm)a6$Q2pn&6Eh`| zV`dM6V}$_;cw6z?7Wte4WU54G_ggZCdMg%8rTENv{I-S=Ood;eUE|#4$=$n;J7w6y zMq~^)L+E%m0qjEhgTi%zy%zI{qO_alvx_Wh-g=rD$4NL!e>>Mr=8m{ zGv5_@e=FUhL9DtJceSKKw=D%`V*Z^kF)`0%goEFU;~13-u16vXS2T;i z^tNB^?V(4+^mFE+z%i-`4e4b{S9^J14`pv~BYB(+$I7iG>+fe68)&j3p@HUeP=@seTVpRP5BNC~CbWpkU17?d7sp1wD;7=j?Sf4OgXj(A#maYH1rj6RT=3R?=6q<=c!qwgNIQ;!rxB104~bNYif?nc=rixBI9F`RgfFxZXf;mq(>E5%?I(wkIH$DKI*zF$`c=T$2?{||A5A2Kd za3X)@HliZp9&2Phj7m2%+yWlGWs?T*&=phl=mjysK2t0fAN@7HltNb&%S;8fbP@+G zZy#a9MGQ)14}zgr6LiS^k`?+qmhf&!QSx{Q-9}`FsVJ&Q-q*w2jtbN(MTMdyoEFG< z@`jj*oPWc+glO_5;BF$$&1f@*C!U9yjy?yuRshRMZG(Cy;zEs@_+69KpokFzTF<~* zx1KF{_Dy8u0Vw>ZAos~5n0N^yE>$MnV2TendoL7C_E!!Y){)@AV3M6n@dxZCmLufV zqlS8R0OnuW)iLsszrQ6(+#xMi%uk7^**FGlK4!$(2y>ENXVB>0{xzzu=0^}JA2BXX zh9~@iFmv&D%8s>Ib$MId=$RbQ(55M^Dt&Pwo)m5)oK%*L+728(a^B_r2m|CR>)eB^ z`6>}oePei(ofj!uUXmOWwv6RxU!nc(Yg8g6a#V6sXmIH;KBZ3|7`2)Jw^b6(s~U=_ zAZNy_k*LCQ{%==as+PR6pGbKs1V_EX!CUA!|8WX4yKwi9TX%Lux$(QyeK460V~@on z?^uo)1LboB;PQUjBOzC}^y$EnZ|oA+Gb#HqliulmRaeI2uwwW&7*aBZM+DD8Fnk;l zBC$h2#PlgM1e?%1>*#3KUYE-d;3(*|E4p`rh|OI615wB|{|}uMRy>CP;CnVr?Si0B z<|kC5fL?X6J}_zA2f4XV(2N;+8%fkZP8a>wvbn{Kjq`krBINmanHmkfd_L*JoS)2K zY}Zp~L;K#nT!`v1t^9(b`-Yp}@A*Amia!tr$6drBSN>$WR5s-O);WeR6E&CnIpAR& zB|SvW2wQ8oXNEOEPL4AbSK2X?JGQy1)&E-utAzoH`qWY7v+d0Wtv zjK!7I>zz@2SX7FJOXzm<9XH(YG6%#@V2>?kPCj2h0jFLIW|rTNUcxA>6cLxFia5~D zK3DdRjEMf4yzn*SEB{>-9o>MA5O1paZ%A+zb)d0`cj6JMfm3Ew5u&lrAUs`2nLNrn z%w}iQskxZM&_B~SABV9MYtTIO3A49rD?4o;Mbl{y_EfUC5~f-JWDR4OtM3v?75{7t z3S)i1a~E^(iUg7QQXV`DvrfGNl;NlmBO0hhbLU#vbogNX6nuSi49t^)G^BqpBtK2w-aQwA9Te^-nHBi z)I7yfG{n;V6h;>)KY)^jM>|%K+n%Knd92qol`Mh(1?yw^F4`~@lf!o+ldIFVONje? zZ=3if!MH*;me3XPtBP!H!L=ppB)yrKi-0^YP9f=I5ZDD1=EZ9gqZnj89oIzSZMIOpIk5mzaKD5+3AUtia;>}u3jF9E9w zo2f(lT7sCmDCw>U5$6wos+3}v1wstiQzC9w#;==y)y{Y3yJ=k9TfZaV1Pgaw)plNm z{nQX&JH9rx8IEwq%ozx0WA;%l*N8Emd-kug`ff}CA<9ld#%fpHopXTbbPOgUF{!0{ zMiSwA!%g8g36W(|7hy|SEiguToQ{j8ox*AUU87LP;<$6uOdY~mYrW#TRfG=|knOKgIODjW;Ed_=u9fk?B^WU}@w73E-Piy@PRBsCr^~iSkXv zKf35S+@3Ep3?rj>V<7=Wol0Fo!xm9;siC-nnD#5EdpndK`N-nZvS5aKI3$%Kv%uWT zW6W+aM=S-mwvg$}B?>#?y^p&==q9VwJFx%5bhN|5UFiG*w|O!e#$YW-o|t)=%H`9p zCN}oTGjpCLE1z5RHkr>*ltdCHPHe8r1on52UC_a{7+)kY@_u02j-$!F;NaJn1Iexx z=`gc>*0KICqaMWCChk9yCQXQa;O4QT_P`7e*ffqiG8W@#b8sZ5V2}K!=}OQsJUR|b zSsBCJ*M=6R6J%5}emBv*2*DC^EX~oLGI$rH1-Gl1mLxY`bg3B8MmMPx8IbOEIV&<9 zYQ(~b^1y(ctGp^9rrp=mPS*q?*8%u&Kb#rRpHsXS?g1kAt5oiK_uDDe8KRC{W9a)M zNp|jdUBYdJ&8ropuXSn#86S{CT2vTgjpfT~vEKV1UPXl_3h|)S(%|cN=%OhU`+`cg zL=V-`zJ>U%wQHb<+l0cWB9yFnh8N>6N*Uza3Jq@2MHJhmXd)7$h1bPi1A>YEgv^a; zXK1U$e$833ov7-hU)`=P(9Xl*wHj}iHg;MKBpH{Jgzu21JCgi6#AJfEh-V|RKho+# z4PL~2=5Mx8`V@oMEdFan+HbJBOzh(p!aS1GPJCNS>c$`^J)DkAh^H3GU2F&vIqk2o zEMTdT@}JyA#wa!#H4ar}&lMuh#Q~IuXI9rFgPjwxA%RU@zzdg??UX^;iUD!Q(a&1q zYwO2PL3wZ}ku+Nu0yR%&q^kzI?&Ug!)!+$r80yKRsY2s};%0ylcQ}9Q^11&gi!K$X zuav}X*}wgFcp%&5z2W#qFbODzSV>9rx$*iC0l}>Komkf}8|u6D##g}ocC5Wgh7H+6 zLH{KK3i>Eg&2Md7T8G%?+LiM)k8?D+qRLj^j|_l`G03{9#4XeaY56s;w!{wJQfuefvb%2Pl(S{J2=vP zvA%k81Dy`kyX00sK~RLiPiNSFj^t%&TFMKfr`TJT@`|xlOac+o80@iXvY{^xg&}mk3)Mu7{T<&IkH{bP5l$) z;|kz%oU+tAWAKHtLODCe6e0}D3o0iyWh?ccfkKE-#E34jfSPkAp}b7{7Q!j&r-QZG zd9f#(+2CIJl%(%&+{Ui}H}M&z83JpzdH2Dn%y~8nM2rMBF45?0nI>6=j#*-X+_;KH z^)KgFD>B@?dYybBXlriV2BeQ_7KGG|j&~ogej*5(%(x$i#vP+=3_A*9uL2iKO(OJh zBgZ7aMG|%}256#faxE|J6$CjxS#7hghgQ`3aZ)2lpkoalMC67e--7BMa(^f3?5h{g zFcN*ElE?EN6DOlb6ntMG=Bn^D)vs2>^c|z!7qvqYtA3X+IGlF$HNW~k@Dd1dvDTCE z24Zt9a9*PSs+#~3lU5E5^(hhyysHl9=hMZI5 z(J^KO560Y_T&)v)+lEoM>K0^Az#0Z7ByQ!HgB1<)`f+bj94HlMRy#sTR51Z}SK4|0 zl{X|c;8>6?(HWrxDPjec!j#KUc}X+)-kiTimDe^+NE0uzYUYBI*XMHnk24@?+l*PP zGqqb-Ya=BOtZIwjLdo*2M))prnBuOn)~uWzR%=wtN3RC-wa~+ zIm`KOq5%6lM#NR3Op@x5TP%Sv`j5r%!pq%bxDY#Z=E0|(fMy{>Bya(QfrPAX8|WKg zwV0?Ez0!2uMS-t6?XVWpmyj|ed~15I_Qd*GOlT-i)O&@^CGg-P&^+eXW42)5))`sQ!T3bhS@;7U>J)E4ONTH&HTLo_hBQbS(rFEgv+aK` zYWAH~Fvqx@p%Z3_fOmaq;WL?)2ntm*UL`_7TImRVPle8ZKb0n&gx*R-GVI~y{+(Z1 z!dKv-9`%JBo+;@#pKA{N^Zj5om}D>>t1(Q69*jr(l)1_zb2M-xfAR$aMj0DRhD02P zq2~DHIa=p)VyN~_w4d2i=inztbUmsNcbZPRmcOKsDB^Z|al#>oQWdv9U4%Z+nB20p zt_pH+e*YuG;d9n$B3T&UK=clbFTB) zT)eNr6t(;`QL>FM_pag!89q7tTZnBvt7AylY%P#n)q_Zi=2nI(L+28NJZ_Oc_dq9Z z4=RQJ2;7AYLpb?{Tn?QFHb*s*jU-yVep&C=#A|*Sw}dne*hCwHNT{SFxKCR1NI!Xnos!TUG=We`@bv zB*c7c3(9YaTH_X#B?*ZNcbgR&jOMb$F?wf|jLx%^Cp0*)%Pjo!nLn!@&zWJ=z&LhxOo>0$oy5%R77KtH_MfQT5Nfw3R@*o9-qN|AS zJ2L*TeKhQy=ac!@*4bJIfDm@g0?>>EE>O6uRM(uyiwiXn4Ns%d!_5l<4S4;AmZXPq zGb46q+AgA%k}e(#5ivX==xJZG^@X?I*fX}cY`g~e-M=X651vr}LHH7>GvARJ7i@Wt zVK4;yqjdq10+NCbMuxM|m3|GjQmoQm$wHTC7$`%gT z>yK5Kk018P-T7FCp5+oOi9c7tfJs(l5?0!~R)HK6J>gkldHnI3PPJF=;?l%$s2${a zJ%LD~BkO(%MRM3=5 zfOLMu3n8iUGdSm+eyldH`|T^BC62gt;zFG4aO@^3CYN`3T5AN#CaV9rN*qgS6j9sE z@P#LHTDunW+Z^A=X{{L?iM?dg#4xR5`m9HqVpEFp_;3?Wuxz`g#@)fvoJCURJ4#X zGg8fgwwP}eGf^aGWjtrTvhHcTL~Ic)t7iHyV)SXQJp8`1?)vU;m7@B z!FV=5`yRQMu%~1aCxAmgj?s8&&uE#2;DH16W5{Juol2*twLr0(+eb?ejg*tvXXanOwj$;G;q_l}p|0>h9y5kFPYmC6K9Mzs6Oo5E46_HSBt|M)5!Zjz7#cc8wuI8q$ zTkL5QwcH50S)T-36HFvXqLo}ECSr{bH;i#1ZO_>4KK=S&X>%hk<~sQq@$)GK-qQgS zqV&!|rhQd%#3|NxJdaG=--nU=kWx5r|A74#9TSR|KjK`j%N%6>y%AJLCwIyB)En(a zmd7}m1ht0U#79$3dq48f$%svGQBWYv(i3aLJo*R$mX3JM?;`Xkaw0A-YpIRiv&)ee zG5~{I6VsZS6qln^2XtI|`s^8N;ndVAB#Q)czz9jw+A6Eq6EJweKRl0|Ur9(}CFNxt zBW5lbOwtPDW^z4$4{G>r@O@|#^3wbN`VQ^;P`uf&-0%plFEmJc+mo8 zBQ1fW=M&>geaEG%tS(#7jv3$14(SD~FV~ZE-Sy(vev+I+zdEKnsdTc((|VVNTJbAV zqpxtaq{QD9Rf3VCiAWhU5e80fqzJc!L1+N+6Wi^8aF2tUnT4F*izp|zN=YSgCGSWd zH3a3>zGru1sdn^kqQFZT3H;)xAWnk-c;wIaVcRn-Y9&*l8YwMIi2_Y*;<2ctm8peF zTU@L-3*W2X1Gjm*sHC-vpv-`_r8X3gJ@2q(Y&!Uewt2rTF3nWzR+T-23;jO8AQ)mJaH->&2st!*V@Y1)h`rB3L>qmR`FV{oi-PvL87I zA7cZE(VI3_N~$ouYfE{DK7Y#heK$~f%`Y&>7a`m)VUt9Y2krH{-P2eo-u%Tml*>Xr z`Cj3Tp1C9$6D{^pNhm=JKmcsJh&tcXClk$hB1Y;n!NTVUyj#)TErfp7=A7ahr*n*7 zC|aoU{ZBWk8Q&YeT%Y9U5}hK%hzmyh6)g*0<{5F~%n>VHp)~~>z*9MGrO)P$eEe6Y z9cg+Og3h$iOMb>1ZJ&JNZOFPtMpink9@9=XO=fngS2UvA!%OC!W+cxrEyB+w#>Mb? zsXT3N)S2B&5uK!}X8{w!d>2iv?%NB+wd0ZrBwVI_gT^%hZ;6fS@E`h|T zb@DL#3SfP?dIkIv?|lVaszAk`q+z4j0HJx{3_05TpL5vk>l)yHH8FSgvUGFju;3Qp zvEb(sWaARzvS8!2G_zte~$m^fi9RT*%FY;di|EUK7_jUkYK>%q00zCYGPK5t#Qiyh z5;%mndk~S(kdV;uFflOk{y)p>000LS4g{x*07nCW$ALq@fqNYRP`>H;U-c{gyRO&U zHT;{7$SA02=ooJU+OPrt*pFgMLF>?z=Lnk04A||0{U}R!u;pO8O5EK%Y{w(uFR!;t_#y3qZZ5>@ba|=r= zYa3fTcMnf5Zy#U3upi+Okx|hx$tkI6=^2?>*~KNLW#tu>Rn^Tct!?ccon75S!y}_( z;}gFo7Z#V6S62V5t?%xE_YV#se~pJnZa=NmQK(@s7koly%530lm> zv&GZZ2+Jw=Cq7GBQmvB9I}r{Rp#K3cfG$jw{CEEiW8Oy0_bl3gT&L5q^)w>x6Dn1N z6m%D!X;~hmeazoV@;t2eZ=U)6ogHTb^%d$vk1B#_azn};5LnQsoTlKoBLG|e$myJN zUwJuu_X@aJ2YffZ#dtZYQtNkm1#swjrw0RH0r3mv{FRhGfscSBZBLGLe+{NW6zD&l*-wXBkJZ>xy;6< zolN9b2v0U8S85Dhqz#16Hp9KjI6Y~pg@d#bfm=>ls2WPFIiqCX%OJT>Y$Gi;oeGz; ze@d)z*KdcroxXp{=Y0Yzz!%m#C1-+9){on;tRCpt^;=G834aCLe2WkZ(&#uZM4xg3 za`0I(Nj3Nxcjr&Zac_7Oq9kO*m`@OyP-drcG)ya>YPisJC$g0m=GDdAQu3>)Jh}B+ zt35cD37r~^-hO{Rdu4#6ZS^&02Ha?usqxAHElN&RX7S=k;NXS>m!X4N2O8{?Qd#{Vs?NA6`d(|+bN2} zeWX`_SDA6DSqRnT0|cLise)sxqbZ`;B!%=;AVDAg)Myh zW_k82z&!>K?J76PwFp&zUKtb969{O9`@l3#>6dk7-KTPJdYB% zV~&OJ(Rv(7U`G2)b3RS0H*A)8Psadg5}X-I(qcML996mtxzZix5X5(+!v6xdih`^v zxYHa|5p0`xgMwAEOD#bwIUT=GUjc!thzg`Em5hflP!(9PisVy`QX%pypikjmeNh4F zxF9`*h7IIBrHt8n&AY$W(V)?tw$#GT1SdLcE}M1Qp1=fCJD{`!guVh^J{8n&C#gK& zir*S8A5(sBU|!O9`~g`DGQP)Mt$Z#PKT~)G1ib=aERgC`^Uw7@&#BQ(!9Ptl^`d^I z(;n0wlgA3|um^|BR!~0s_4K&D0<5~<4LN6LW~qhPc#&$8w%@(n+7zNVUJ229@{ZHQ z4HQ_G{JxxAf|Y=l93SW4FkHG|f2t7Pd6a*YUBXeu{A&Ym%;CwG%Aw~AYpsgsDY(Z6 zd=Y3dEAhVV23qh=Ks?XV79qv=u^Xl>~vrW<0SFkTL`nRa!Gkd_w-ATYqinXHP(Fbgq+6lGnN6Dr^aE z?DVE`vPTTAe(Y*@rp5l^(-WHi{vZ2~HNmFh`7mnv>G33>i{i-?Z9;~i-H{mW%d8({ zIQXY9$1to<`YRB)Lff9cs?nCWGGzf}b!31jo=Cr2dr;<|w;H${jotO@*i|-Y;5!y$ zdCqSuKzXv6?SX*bC11-g{&_3a-_gdr`t25b6G6(NaU5WncO(gF z1RDRHgUut-ViK^Na$&q1UvpkD`o72xSJIQLUF)trJ3Qws;&R>RPw70DCKHkK?#r(6 zt-AzS1X$u!n#po}@f9G|pm1(I2vaiO-R~E?kc~Dwj|?we7H?v60xujc9rpBI20%VX z@Jl5XJN=H`9=@yt_!dDGwM4qLoqf*}bi?*01H>20n=dF@K0WbkxgQZSvz6^;AvSg^ zw1s?$F@(4!_Ym=UQn1}4SeO3I=Pr=Cn2wCOaYo*Kk}TIf>L7SC+gR}w)|D%f#;$l~ zm-@-dAgz}x3k(WbMdx(A8%oqC!j9g1zkJb);5Xf@e=sbS&7V4%EtV~vLF-j5UuGRB zXv~#>yj^59n82+X@cXc%bI6_t1?h!%w1Y<;mOtXsX@HueCEsb=a&BS|NCl6pc|u)1 zroeyS5!T!a2hpz*@C*ER3ycm11aO=Kzb*2fO7Hc>jXv+`7>cU;m|gVdh$Pl_P#){x z(l{P+^sU)(L>t3B@$FCoY_=FwqSMz)yPsoM*ZK2MA{uC5X5+#`;A!s0ghTT?7)!xk z;d>ICyP~B>^#uZvj2J+e?Z(4tsMlXP<&2vJOd{r@Q=M3%(^VU>$(};YYfAXplkh2?%(r zcVo;g4rPQGsrU@mSrU;G9=rm+qu;z!dR_~Lc0(#t+NPU@uC1QQOjchF8F#pLYzO2nV_y zgI4zfTd8Kmmy~BGXok4JRF`Jc<%;KaOxsi(GA0)ITbCmNMl}1*V#muN@jj7nT5$ib z@r9q?uOX)hjz!xq>l8>AU!p4qJqvvnAj4a9ZJkl3l)rl}tsH0Ly+P@qguS;HvZ@RI z*@FSa@PUHq=Epk3F`WZUcMga(udKSeKUO%X?0r`H3SL~jw+H)*y6$lZ3`1aUcQ4F4 zH6<@sFOm~JMR%MI?QMo7wYYL8YQH=hr4>g;H>mK-c{Pr7?HdromHj~Ncd zwom50v?Bj(6Kjg^f`d>{FI;QxO}%L2rYleKcYuob=#3ok# z_;FJ#^_;2e0{dR$90(Q|rUlm#>NK~spJ&8eN2Z+mITeVB7PC_uCew-2V(&X(-02@S zq>1X5tlc}0J{~4H`tjMb38;59b@WFC{X3=20_);;n}!CzzsqiI6_4G<7X7$e6(CUR z10L}+j@;iqv|SN^;xPtq8#W4%e+E1ROlnLmt~dM%*WzH;f6tA7K+1T+eOTqr^8@ zTcaZhtlL=i#(tQGMof2{*lgnG+}Uk>RD7OgVK?tdqaHv=@syBdU*CL_!hWk*rtv1 zJ&_OX&ia-e1=8XR%M;5| zTf6ogySi?9>k?RIPn&-x2eqt3D=HL3_ z9a*M^H4OSo+yk!k8Om5QjOk0+TJ8=tow>Bjg`Czde;yyl>HXU~yFIjr)pT%pep-sq zbwU%#@z0kxe=-cxe5mm^y3Ybr;@jM2i*@Whd+RRLZc;3&EVU7{Q@1nm7k&0JK~L!R zoA=Uaf>O}TpNU$+umf0M0YBWvj+f*Q$+_1=YX){}*y7gdAAzsGIur&D!r zyr`WQMQODcZTI+S*zSes-m%o?u~z;0SYe=phnK$F5^?^G!1?&EX57n;=hL6lFWngt zTwqo0`d9VKGtNUT+P#e?M@b>a6uaS)dRemA!4Gkea=qRj0;80rnrvCg7;GNZJR$Lqdh|yX< zhN^Nv31MxbKf7|o2NyD9Xbr9;@SSNdcg)_;1WERsU5)w+|cm%9We z7c3}sZ0xahs>h}xFkMIxR`&+D_JnICnSs^LYVm$*LRUtJTE+li1J5y*bGZZ!KYd)% zw}I>NT2d^_YSQTVYWfi71S<|9?XVr7JZFhftUrlcHtjc3;(0cC3ynqb?qMDHjJd$g z5-7pfpU%8+L@D-Hmj|6ycbI*4;&k#W8MYcRfHWNeX*J-s9kRKTjG&|C3=QQ4t z@MV`XCssKUV**ohwRx|Av`_t}G2g+U85=m#I)VEp>42q8AP1#i2u<4OJWLtfygbaW zeYUhI`*wgBPY}j_Kndn!ouBtQ@TlSM$Eh>!#wp-|dfb(Eu`k=H?pFb;#6MT$pCZ?; zCJ)<6;uV>hV8Oj5|KSx{Ryo!zBc+&?+Z<4=!^0kh_ZS<$Eb*ty9tWSx=UwoL|CrU~ytlwJuT}*^WMwd!K5#S1Yo!A8 zmVk}F6tM3uI{4qd0$K+j1MQu^B(vEau+<)5iiyc(zU6vzoq7p2Cn_Uu3Pl@GSlF8< zDgUXFfVF)#7%dA^yg614V7~Y~&kB)ac5)k%XOPh{9<7oc`s8W&BYkc#Y_jj)8O6rO zRoZcN74Vn&5_NsriTJQ!ip``^4w#tB+w`)$_r2o&40E(ofx*L`{tn`3p2#e8{jEnY zb=Fp{4>YfUzkFWKKQ4!Q*e!jRC%(mt6yMKIU-1+t+!L(N!lW|XRcbU(eEfVkbgWF$ zWB!mP%r0JORuK+74tst#Gk*LFeA4s}j2zm=G7z5fu?S1(j`R;6Ft!T5SO*FWZjz9u zb8Q~`IiNjZA@(HPEysQh-r-BQjb*pJ(MuO4e8CP>(ob=G-p)P~e_<(Af&W)G!7rkJ z@X)Ype7JnJ5(F125WTZFdZN_z`EGIAmi-j~rKN40!rX8`fd(wQEe^Lgjf&qU{K#KN zdWbn%RdTD(!`I-3+y_~`0_@M`uJ9Mt!9ObRM9IZSk8$7mK8iYRicV{>bFEbT+;ysG z%2zTUuG|E_ELmB;0=#j|UjY;iK`Qs3iTCmsK+4~>Fs~$8am&X<+VQ7)YBfk$$?KQdcO`A|2j2dbX_h5BY3VQefEA7nR>G~ z);o^Q_qRd6%j@5-&5nxc3H8qvYX_E&#?)IJJ$aXM`nHg>dV7={E&i98ij9ZwuK;UtyfcS?6qHI$ zHL2-mo|Z3A9qn|o$_mC4$Xv|)TV2-Aoz3I|i|9>IM4(@(~u zZ9o{#D*(PcJYIGSyPL(O7NqM2a_w0L_DD_Fq&?>;K7@-~1rzWp(f%VrcXR`a-Z2;C zY!N&iy#mgsURWKwmU-D@UI9S|z}vV$&J`L#wJm{Xup?$%|M4rJ$P@B{pvd-;G~!xP z>?9I@V+8aKhSsV*S4F))d6b>rew%_ZVH($77@b$8<=Jw=ESM-5TCMq<^(6JX$g>YA zGa@+IKSI3(ito&raE~8Ile2nKnLvlpR4k@@nbz_oN>czks+!_?&Nmk468#|*|M}hT z;d^h2DcRe68c^tfnwZloAj0&5lm)Cm-$A*1RpxxB+e8Qh-YtJEXnqAmtr_IGOQ6S3 z2CP*m2ScZ{=Rp>k`j=B5ei!Pg}AK{I}P<;I5dnn4{HZ|?JuJ$SRBbV0HUYs?b{ zWxU{U?(6w}Hm#=MlPu$cEAUO}Op_MQ7dAca^}+y^n&x^}P^l*7{HC_&>Qi~rO&_`7 zhQ{6R3GsC`!neo{U-V{Lc|p9tR(P$Pwnby6-w5hj_TAbUO+0x)u$gmUQu_}^Gk+`xxX%>-toJ_GB$ zXJgwvX?F8g_&q5%!q!m*A&z+9MO8KU0_t;>@I8>=bo_AIpKxzQLh0eWt{U0 zAZxI+G2g^S78e&m)Ze`2DBsSYDO2KKmu3-6(;!Wl+2*43Y==6DZ|SWb-}wLhmpYp- zYJNTg8GMxbhx;#GKps-cfFaHBJlo^EEkil5J!)V#7E_I-UEy~(8`pSx&Z`gj3=3e_ zKhUyfW{0M7fQ|6F#=YJakNuy)l{~wE1<`-kX+oF9A7N^)6;njx8=F_;HLrj`ZT(vq z@ZsQ5`=e`@TEfGPrNvBJ_~Ia|$fzl}k$vdh6*^q~L^o0!S+b1Y*{0-|-aQLUZeaG`M?di3}o3FxDdgpE2 zyJd2Te)i_1eOb6(R!&x0*Kd1#odG0XqpJPZ>k^vGPsTixYY*N5Am7_M)0mO+l(gGz zb^6F6wpLM$kw=cWUU5jC_n_MGO5?9~g+2mPuS)T#W=GwW7sR(0Ow@f&8BIJq%AUi@ zm65$RJlYYy+2aSipxiYz)|F-;)=*0J()ATL)ea+zz57$4&ZmLgz`xvhmH^z4q3IwP1yp zrI<4nJe3k7-|0-=PjvdD1j5Y^$(@jj>Gk#i`Ey1!eP*-yCu8%fPvur0Ymcmm4T0hK zI~#yI(9=i#S;B~_k4hDnO}VyawlzZ#_8@Ux{t3QUz&pD~{=$UzFQF=}pi|0`YM4Rr zK#jlb1?2mU#bs@;n!U3tmzKqnmA!4y+46X1j98CelS3~G7$)AlZYPX18&$W;g^@>d zwtj=|^lt^?5$O#3Dt4;bd(NIwBfS1EJ0M$WSiZ6BptRfn>IuERKC9&45<`O$Xi<$- zNhiP#QiI8VxSOw_kXfIk@nUE#pJ6?9mnGo(a%u_;cNAMlRxzPT67#qOug8epZJpRh zCEU6a+^H}|wkb)=r4jCDs063Y)`)Vv$zxRP@tT&ya3QiTyX;nkb zr?XpHu;yUzgxea%@0HtUhd^4-_=?-*_?SIn@Rww`TYg$dQk|wi>?>f_IP)-7T7=jT zEYJ*g+2m&6O6WZ6LO7gRHiicKHE)kna4c$)>Yw988=PKUR~>|B1{0o@Y6-pqL~6Xh zu8N9RDKPcL-^q1n@kep68omX;(`p{LyEifkS6db_B5D6YXSL*0mMIiLKAKKHBEugM zHVNab1)gIAhqljI_BlLAmE_AJd_8{Y4mq^9C+{t2@5J>gj*!=Cd(G}OsJEWijaA`i zE^?Un+6wFmvJ04Fwq;gKa@O4G_5@?{U+wl+H})o27^duRL|?rv$ppK@pV=$h%W-r& zGYU#=DJoi@mkzpZRO!+eI=q-MOWvChuS3h-j5=}qtDC6XG<98FT3h!@CNJ(Jl)Dt4Zr;$ zuK>%Uh0B+E?KXv~kju}FJiV4?W=&3sXKvdY5GNIwNQY(u7eDABy6KJCxuyZ3B~QS- z_vcy*kKUgbmm$&X-(o;+<>0#lsP_>t>}A>EPXHTm!DtDM9>$UW4}brvJybkA4;K+< zeOSNoB)&}7m?{geyeCnN38PHt^?jqDb6=mfJ(lEm3UKPCyE^9?E_>U|+FR;|Y2CZ@ zQA^OpBUg%f^+8itrl-l=3Upp4(LdIu z7t)xOnb9*y{FZNCrVRVvY>r*S2}8Nfj{BbFKLH=yJ?<5p+j)xn|0ZPj1^_wk_&W@j zm_)WVV{RMI-1AM7iBbs*(jU@h?}B?SUjYNv44YS};ye*b8y^)Cvf5wp-}3DtjKFq) ztsBi*wigR|_} z&!;1e`8rMqU+y-`hso4H0y)$k9BsrQKiTfDV*WabzIP{!h85Su9dw)-0*Bs`Vn}^a z`i$<=2xRw4j8O67_J!Y0+7?_x)=UlS7S3#gu*&=W3 zGrenaFa9YgJloeo-YG{klGJSe{1aL&91?8hidxcYW?@v$lqn=s_QtmVLm0^jW>qy6 zXI-`}?e4v-?4T7s!^;nxG;<$^&(G&bVN%MfADb4qqcwlu<;qP?J{#6yOctA-&{OI- z1OWeh_Xu+8>H7rUMx38-Qw9wM6BC{gUU6xj6+*5pN0bO1!Toc9& zmGAr=%aVjp51v_(ned?2yEl{_L8 zTwdolSD_!FGnf|r6{h$rKih2?n!ib|Nx@d+ts@`IPE;w9(@(D;nMIKF<#`#~dhRe} zmMiBF;qy3au3C}5f~s$!V4E2NX&Z=}=J~Z*NeIHIK8`?c;Jc%NUitW2-(8CHt)(v! z(=}1yL1-F8^F8`TIybiT#hS#{dWC0A@E39yoP6D5zoib@fRtZ0zxe9$6CBE=Zik~k zIoS2nGO%dbdlF{YCy`bQoboZ$giID;LAkROLk#4t{U&*4;)nq)EdQ1 zqYNios3=TMs9EKa10fRfX`K4%Vums^wXhy(6?kf3nwd=1a9x7URfXo(z}5${C007# zyF>lPWqQ)+ZH-ByfeSKRr*d!%!)H85@jB^geMpU;pI;Txq~5-FZAnL81sUMdmN8e= z3EcXy)~hIi{A#MByAoP*4E{uiPRGP-)!2IodU2m$kgj_5y|=U?pPq$UwagJkab6_L z3Ljg3)r$FX2sr8F*yozG@+hBg*GuTLSq3BWNoM)!t)flm89XC;!{VX-bZhQ6BVKAb zn)vAuu+UudH!9_7YrAs)m2(^IQ-b?3=awdotbXQ~l{5H76M{p1Z<$PI#95E+= zbmq%H>s^O$g(@2!yD2Y(f|E1OAW$3h3K;i{#4Cl@!T($nG+Y!=Hc)$74ERSIq8=i* z{@M|`5QcwIE2vW+022q1&cGyeAatAMl2Z@-Ugn$bNTnM(0ioP(nVip$aB>1?7Wc_#v(+&ZIKR~7fB|}=27IsQvtj5zL zk1Ai#{+aO-LKDyGz7&2B&O}rtrrC7_>>ZuU?;bwJ_Sil?nKoBtVEJZ;PZ))-wAJ&A z2Yyazn%s2&wU0%So2TwB2;fk2^f&t(93jhi`{wZmgg;Mo$^*@H+#vIpYCdppJN)$77VWX#&fV54 zgM9JOv!3_lius&0f)QW`&&ey(oO6uKZK=N*u5+Km@6U@HQ#acm%!}W!?j}e&QTYZE zzqii%#%3?CzOn_MLA-#S3b)*r&H_cxk3(UKWHIJEx-RZU9!U94(xidw2M?eUF}tE0 z;ax$!@O#U%BmE$E74zN6WpLr+Z}GIjsA2J*J67I1AS|pqf9nl9U~7pTEB)Q^asxA6 z9XeDm+oyq;dKgz%@YXRSY=fCWuHMsW+!`h;&Vet6P!@h!!{$#;a3=!J%HL}?_U%s9 zE_mIa1Nt<80fBk?J`d>@;A7wX-q^OSy{kfyDoSjOyX?{82Fpzoe{o7v1@*slt{kIc zHvOvysgXaeGqpWOa6_yR?e=!r^7agw;3P}_8Il3K)F31=^Eys88v0p-WPJ#D-0pE@ zpH)G}v|3eZJ&&D`Y~8v~6qd2A-JoCqJ?jQU8qr$F zZr@l%2oPT6U8{|^`aXWH-WBlzsZM`nnx^Wm%O#bX!h zJNv}kR0q;V7IY6;-%V~Mr!LFbAhIu8d5AY93Hz)MPt(m~(I?i3;r_^s2!x;s2k1&(GtaSAzGc3X6S-w2;gTBr-Yp}1jpR3F8qSE$# zu-85~{tbB%7tYK2B!dzb-aGeGdO}uU>YQhP|B_MoK z_g~Hqvq_s;Is`Q3N{iZLy>;l6y!n^DNztU>Yo2tLYGspM_3pOJ4Le*`Y?E8E4AhQjf7P2clA(b>>1BlDFh9(hUVq z#OjYI%!ASd`Y^;FERu|?O$4Sw${S>!qmZa-C*`NXUk7tv@FzR7VpMfi9}l=2#7=Kg zQJma9tw}w4^j_ivz2@f8&7x4_NY3+zxWW~eIh)hFmL>(vKi}WljDP#5d-YnjCCCO4sUUqTpsti;i$_;#U8!D(Unu^J$SQdYOjO1zs{ zCb5TbB?&!@i-ZtEjT1Opinb2#mvbfU>_QF!=|}x}GpRRzbj|k9+V0GQ0lvOcIN5G2 zzdy&SED&oyuiTVmrR$!fP%%7_u~nH91i88^%I+^$%~JP-@gTdsYtFC2UkZ64i?fjFm7&! zwYR)Mi^7~87)k3<5~BMvjZ!0M@n4CRUd?gWU5uE1cI{Sn8A~;`*6?#tRQi`kgRrpt%xVaL8hDWu@`_*AHG#nDN{i=SZ$=q zp0xLoOuubs{r2PL$CCIh&`D9_iVDH9Rc$e z6cjWGZfuAjmV@d9z!p_e>bFt_vz6O4U0)8v>M<`&lST9Yw=$AQ%oTkvYLmKT*0Ax_ zccekbn&PIM0XJS0nVaJzn+TlI3b)nOw;`IALsjto1Y52KvG#wbztX##Aa>PL+N z{2@tw^nrAKkYl5dEqg^Tc_>Ekot3X^xI=RPo8WMaTKL=Y?hHxr#FzYFEXk=wAG=du zhEB5!@l9?c!D|F4mZe42qz}fHm63_zvYfAN;BA!iq}vuZtsHv@aBbt)pnZ_6#4vPj3`@?W#VnW-;_HSo9Co6q!oJzKwf6HjeWR6R@2<|7wM+dr%OFKLmh4R?(%ocBMRiK4xK>=13>urhdLIiQ%3L z@mP6^`QF}`;aKk<;UWE4|P%T%#STh9~f=!&tBEZg(n&3Qrr}(ARTa|;C;#Er_1Yf_)OE^Oq)1w z2xf6dWihQ9t^;659Rm2IX6YUMxlj1oUsWj-8Oy_vk1!s(Dh*||5|3ug5HXDO_OKsQ z8Nd^J(OXL;Z|Cbr$%W}5vtEn4x-CvU^mU3sAO6iYy<(npW%czTASzsC*6Eq|?#~jR zEcJ~?l~fP?*e@UZvR_NxxU5u_Ppep^V&hm{8u_Put6h-eYS}jJ?ZgoxbF@h!(%Q!J zjyZtR6|T_)$;z8m-Zkj48yzOs|DGZWYrp6>gb*O5NO$mT72 z?ALZp56lY+mT4ap=K-NYtO z-s08@cfOJToZ0=SziwfPyHf|fTch|VMv)2y)5Z|K+|hdvb~}PaXd-}NDI}H-3sq;& zRNJ_|v_u56eU@P&I3jLC^nX7gIi;~AADyuJ5;{i3`RyU#)aHSabgO6__tlN8~l!)>(k9!JpjmoVGwi!nVfG^BB) zH%i=*`* z`tjfC^0B;u^{Vj(wC$tKdBB|)+w^}4Eg1nqT>5>h!4bksLBntQ3C-zt!v0<84OgBN zpt`J0bnx~ZN^)3{H`jJ1@^=Im;>nn@PUi(pC@7*I%@L5b3K)J5Y1+)=?ha3mNfq z%O1Fo>Q5T4_?AyCgHXw{OWUiY1`tR!lYc@jn7Icurux`6&v*?&i<3;o5jH)2oFkhS3tsKRP`bR{g3PBC_ z070Mlt1YBger;!;RnXgIsQJ#~c}5PDiD8LturUX&Kpvv~YjYJuz2*Vz*tKz30V6qk zjjI~2DOVz+b{|BMmSod=ovY}fHFaF^N8~NiulM|Tc`xfe5mf>k_^TUzdxYx)Kb<>> z+O28fip)I3@V8yP^ug#5FilHvHQ&UCH!|VLyYz~cddOVI_}-Q=$-U=ezhUrCxxPX~ zRiH`YAt3w^kUPGYxd=aU!y?La2_nnEjb-MBla&Abyl|$r;k&BwM|z}Z>G6q- -s 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 IXaLXx0HeG@zW@LL literal 0 HcmV?d00001 diff --git a/bookwyrm/tests/data/simple_user_export.json b/bookwyrm/tests/data/simple_user_export.json new file mode 100644 index 000000000..39d9074ae --- /dev/null +++ b/bookwyrm/tests/data/simple_user_export.json @@ -0,0 +1,26 @@ +{ + "user": { + "username": "hugh@example.com", + "name": "Hugh", + "summary": "just a test account", + "manually_approves_followers": false, + "hide_follows": false, + "show_goal": true, + "show_suggested_users": true, + "discoverable": true, + "preferred_timezone": "Australia/Broken_Hill", + "default_post_privacy": "public", + "avatar": "" + }, + "goals": [ + { + "goal": 12, + "year": 2023, + "privacy": "public" + } + ], + "books": [], + "saved_lists": [], + "follows": [], + "blocked_users": [] +} \ No newline at end of file diff --git a/bookwyrm/tests/models/test_bookwyrm_import_model.py b/bookwyrm/tests/models/test_bookwyrm_import_model.py new file mode 100644 index 000000000..644cbd265 --- /dev/null +++ b/bookwyrm/tests/models/test_bookwyrm_import_model.py @@ -0,0 +1,548 @@ +""" testing models """ + +import json +import pathlib +from unittest.mock import patch + +from django.db.models import Q +from django.utils import timezone +from django.utils.dateparse import parse_datetime +from django.test import TestCase + +from bookwyrm import models +from bookwyrm.settings import DOMAIN +from bookwyrm.utils.tar import BookwyrmTarFile +import bookwyrm.models.bookwyrm_import_job as bookwyrm_import_job + + +class BookwyrmImport(TestCase): + """testing user import functions""" + + def setUp(self): + """setting stuff up""" + with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch( + "bookwyrm.activitystreams.populate_stream_task.delay" + ), patch("bookwyrm.lists_stream.populate_lists_task.delay"), patch( + "bookwyrm.suggested_users.rerank_user_task.delay" + ): + + self.local_user = models.User.objects.create_user( + "mouse", + "mouse@mouse.mouse", + "password", + local=True, + localname="mouse", + name="Mouse", + summary="I'm a real bookmouse", + manually_approves_followers=False, + hide_follows=False, + show_goal=True, + show_suggested_users=True, + discoverable=True, + preferred_timezone="America/Los Angeles", + default_post_privacy="public", + ) + + self.rat_user = models.User.objects.create_user( + "rat", "rat@rat.rat", "password", local=True, localname="rat" + ) + + self.badger_user = models.User.objects.create_user( + "badger", + "badger@badger.badger", + "password", + local=True, + localname="badger", + ) + + self.work = models.Work.objects.create(title="Test Book") + + self.book = models.Edition.objects.create( + title="Test Book", + remote_id="https://example.com/book/1234", + openlibrary_key="OL28216445M", + parent_work=self.work, + ) + + archive_file = pathlib.Path(__file__).parent.joinpath( + "../data/bookwyrm_account_export.tar.gz" + ) + self.tarfile = BookwyrmTarFile.open( + mode="r:gz", fileobj=open(archive_file, "rb") + ) + self.import_data = json.loads( + self.tarfile.read("archive.json").decode("utf-8") + ) + + def test_update_user_profile(self): + """Test update the user's profile from import data""" + + # TODO once the tar is set up + pass + + def test_update_user_settings(self): + """Test updating the user's settings from import data""" + + with patch("bookwyrm.suggested_users.remove_user_task.delay"), patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ): + + models.bookwyrm_import_job.update_user_settings( + self.local_user, self.import_data.get("user") + ) + self.local_user.refresh_from_db() + + self.assertEqual(self.local_user.manually_approves_followers, True) + self.assertEqual(self.local_user.hide_follows, True) + self.assertEqual(self.local_user.show_goal, False) + self.assertEqual(self.local_user.show_suggested_users, False) + self.assertEqual(self.local_user.discoverable, False) + self.assertEqual(self.local_user.preferred_timezone, "Australia/Adelaide") + self.assertEqual(self.local_user.default_post_privacy, "followers") + + def test_update_goals(self): + """Test update the user's goals from import data""" + + models.AnnualGoal.objects.create( + user=self.local_user, + year=2023, + goal=999, + privacy="public", + ) + + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + + models.bookwyrm_import_job.update_goals( + self.local_user, self.import_data.get("goals") + ) + + self.local_user.refresh_from_db() + goal = models.AnnualGoal.objects.get() + self.assertEqual(goal.year, 2023) + self.assertEqual(goal.goal, 12) + self.assertEqual(goal.privacy, "followers") + + def test_upsert_saved_lists_existing(self): + """Test upserting an existing saved list""" + + with patch("bookwyrm.lists_stream.remove_list_task.delay"), patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ): + book_list = models.List.objects.create( + name="My cool list", + user=self.rat_user, + remote_id="https://local.lists/9999", + ) + + self.assertFalse(self.local_user.saved_lists.filter(id=book_list.id).exists()) + + self.local_user.saved_lists.add(book_list) + + self.assertTrue(self.local_user.saved_lists.filter(id=book_list.id).exists()) + + with patch("bookwyrm.activitypub.base_activity.resolve_remote_id"): + models.bookwyrm_import_job.upsert_saved_lists( + self.local_user, ["https://local.lists/9999"] + ) + saved_lists = self.local_user.saved_lists.filter( + remote_id="https://local.lists/9999" + ).all() + self.assertEqual(len(saved_lists), 1) + + def test_upsert_saved_lists_not_existing(self): + """Test upserting a new saved list""" + + with patch("bookwyrm.lists_stream.remove_list_task.delay"), patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ): + book_list = models.List.objects.create( + name="My cool list", + user=self.rat_user, + remote_id="https://local.lists/9999", + ) + + self.assertFalse(self.local_user.saved_lists.filter(id=book_list.id).exists()) + + with patch("bookwyrm.activitypub.base_activity.resolve_remote_id"): + models.bookwyrm_import_job.upsert_saved_lists( + self.local_user, ["https://local.lists/9999"] + ) + + self.assertTrue(self.local_user.saved_lists.filter(id=book_list.id).exists()) + + def test_upsert_follows(self): + """Test take a list of remote ids and add as follows""" + + before_follow = models.UserFollows.objects.filter( + user_subject=self.local_user, user_object=self.rat_user + ).exists() + + self.assertFalse(before_follow) + + with patch("bookwyrm.activitystreams.add_user_statuses_task.delay"), patch( + "bookwyrm.lists_stream.add_user_lists_task.delay" + ), patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + models.bookwyrm_import_job.upsert_follows( + self.local_user, self.import_data.get("follows") + ) + + after_follow = models.UserFollows.objects.filter( + user_subject=self.local_user, user_object=self.rat_user + ).exists() + self.assertTrue(after_follow) + + def test_upsert_user_blocks(self): + """test adding blocked users""" + + blocked_before = models.UserBlocks.objects.filter( + Q( + user_subject=self.local_user, + user_object=self.badger_user, + ) + ).exists() + self.assertFalse(blocked_before) + + with patch("bookwyrm.suggested_users.remove_suggestion_task.delay"), patch( + "bookwyrm.activitystreams.remove_user_statuses_task.delay" + ), patch("bookwyrm.lists_stream.remove_user_lists_task.delay"), patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ): + models.bookwyrm_import_job.upsert_user_blocks( + self.local_user, self.import_data.get("blocked_users") + ) + + blocked_after = models.UserBlocks.objects.filter( + Q( + user_subject=self.local_user, + user_object=self.badger_user, + ) + ).exists() + self.assertTrue(blocked_after) + + def test_get_or_create_authors(self): + """Test taking a JSON string of authors find or create the authors + in the database and returning a list of author instances""" + + author_exists = models.Author.objects.filter(isni="0000000108973024").exists() + self.assertFalse(author_exists) + + authors = self.import_data.get("books")[0]["authors"] + bookwyrm_import_job.get_or_create_authors(authors) + + author = models.Author.objects.get(isni="0000000108973024") + self.assertEqual(author.name, "James C. Scott") + + def test_get_or_create_edition_existing(self): + """Test take a JSON string of books and editions, find or create the editions in the database and return a list of edition instances""" + + self.assertEqual(models.Edition.objects.count(), 1) + self.assertEqual(models.Edition.objects.count(), 1) + + bookwyrm_import_job.get_or_create_edition( + self.import_data["books"][1], self.tarfile + ) # Sand Talk + + self.assertEqual(models.Edition.objects.count(), 1) + + def test_get_or_create_edition_not_existing(self): + """Test take a JSON string of books and editions, find or create the editions in the database and return a list of edition instances""" + + self.assertEqual(models.Edition.objects.count(), 1) + + bookwyrm_import_job.get_or_create_edition( + self.import_data["books"][0], self.tarfile + ) # Seeing like a state + + self.assertTrue(models.Edition.objects.filter(isbn_13="9780300070163").exists()) + self.assertEqual(models.Edition.objects.count(), 2) + + def test_clean_values(self): + """test clean values we don't want when creating new instances""" + + author = self.import_data.get("books")[0]["authors"][0] + edition = self.import_data.get("books")[0]["edition"] + + cleaned_author = bookwyrm_import_job.clean_values(author) + cleaned_edition = bookwyrm_import_job.clean_values(edition) + + self.assertEqual(cleaned_author["name"], "James C. Scott") + self.assertEqual(cleaned_author.get("id"), None) + self.assertEqual(cleaned_author.get("remote_id"), None) + self.assertEqual(cleaned_author.get("last_edited_by"), None) + self.assertEqual(cleaned_author.get("last_edited_by_id"), None) + + self.assertEqual(cleaned_edition.get("title"), "Seeing Like a State") + self.assertEqual(cleaned_edition.get("id"), None) + self.assertEqual(cleaned_edition.get("remote_id"), None) + self.assertEqual(cleaned_edition.get("last_edited_by"), None) + self.assertEqual(cleaned_edition.get("last_edited_by_id"), None) + self.assertEqual(cleaned_edition.get("cover"), None) + self.assertEqual(cleaned_edition.get("preview_image "), None) + self.assertEqual(cleaned_edition.get("user"), None) + self.assertEqual(cleaned_edition.get("book_list"), None) + self.assertEqual(cleaned_edition.get("shelf_book"), None) + + def test_find_existing(self): + """Given a book or author, find any existing model instances""" + + self.assertEqual(models.Book.objects.count(), 2) # includes Work + self.assertEqual(models.Edition.objects.count(), 1) + self.assertEqual(models.Edition.objects.first().title, "Test Book") + self.assertEqual(models.Edition.objects.first().openlibrary_key, "OL28216445M") + + existing = bookwyrm_import_job.find_existing( + models.Edition, {"openlibrary_key": "OL28216445M", "isbn_10": None}, None + ) + self.assertEqual(existing.title, "Test Book") + + def test_upsert_readthroughs(self): + """Test take a JSON string of readthroughs, find or create the + instances in the database and return a list of saved instances""" + + readthroughs = [ + { + "id": 1, + "created_date": "2023-08-24T10:18:45.923Z", + "updated_date": "2023-08-24T10:18:45.928Z", + "remote_id": "https://example.com/mouse/readthrough/1", + "user_id": 1, + "book_id": 1234, + "progress": None, + "progress_mode": "PG", + "start_date": "2022-12-31T13:30:00Z", + "finish_date": "2023-08-23T14:30:00Z", + "stopped_date": None, + "is_active": False, + } + ] + + self.assertEqual(models.ReadThrough.objects.count(), 0) + bookwyrm_import_job.upsert_readthroughs( + readthroughs, self.local_user, self.book.id + ) + + self.assertEqual(models.ReadThrough.objects.count(), 1) + self.assertEqual(models.ReadThrough.objects.first().progress_mode, "PG") + self.assertEqual( + models.ReadThrough.objects.first().start_date, + parse_datetime("2022-12-31T13:30:00Z"), + ) + self.assertEqual(models.ReadThrough.objects.first().book_id, self.book.id) + self.assertEqual(models.ReadThrough.objects.first().user, self.local_user) + + def test_get_or_create_review_status(self): + """Test get_or_create_review_status with a review""" + + self.assertEqual(models.Review.objects.filter(user=self.local_user).count(), 0) + reviews = self.import_data["books"][0]["reviews"] + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + bookwyrm_import_job.get_or_create_statuses( + self.local_user, models.Review, reviews, self.book.id + ) + self.assertEqual(models.Review.objects.filter(user=self.local_user).count(), 1) + self.assertEqual( + models.Review.objects.filter(book=self.book).first().raw_content, + "I like it", + ) + self.assertEqual( + models.Review.objects.filter(book=self.book).first().content_warning, + "Here's a spoiler alert", + ) + self.assertEqual( + models.Review.objects.filter(book=self.book).first().sensitive, True + ) + self.assertEqual( + models.Review.objects.filter(book=self.book).first().published_date, + parse_datetime("2023-08-14T04:09:18.343Z"), + ) + self.assertEqual( + models.Review.objects.filter(book=self.book).first().name, "great book" + ) + self.assertEqual( + models.Review.objects.filter(book=self.book).first().rating, 5.00 + ) + + def test_get_or_create_comment_status(self): + """Test get_or_create_review_status with a comment""" + + self.assertEqual(models.Comment.objects.filter(user=self.local_user).count(), 0) + comments = self.import_data["books"][1]["comments"] + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + bookwyrm_import_job.get_or_create_statuses( + self.local_user, models.Comment, comments, self.book.id + ) + self.assertEqual(models.Comment.objects.filter(user=self.local_user).count(), 1) + self.assertEqual( + models.Comment.objects.filter(book=self.book).first().raw_content, + "this is a comment about an amazing book", + ) + self.assertEqual( + models.Comment.objects.filter(book=self.book).first().content_warning, None + ) + self.assertEqual( + models.Comment.objects.filter(book=self.book).first().sensitive, False + ) + self.assertEqual( + models.Comment.objects.filter(book=self.book).first().published_date, + parse_datetime("2023-08-14T04:48:18.746Z"), + ) + self.assertEqual( + models.Comment.objects.filter(book=self.book).first().progress_mode, "PG" + ) + + def test_get_or_create_comment_quote(self): + """Test get_or_create_review_status with a quote""" + + self.assertEqual( + models.Quotation.objects.filter(user=self.local_user).count(), 0 + ) + quotes = self.import_data["books"][1]["quotes"] + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + bookwyrm_import_job.get_or_create_statuses( + self.local_user, models.Quotation, quotes, self.book.id + ) + self.assertEqual( + models.Quotation.objects.filter(user=self.local_user).count(), 1 + ) + self.assertEqual( + models.Quotation.objects.filter(book=self.book).first().raw_content, + "not actually from this book lol", + ) + self.assertEqual( + models.Quotation.objects.filter(book=self.book).first().content_warning, + "spoiler ahead!", + ) + self.assertEqual( + models.Quotation.objects.filter(book=self.book).first().raw_quote, + "To be or not to be", + ) + self.assertEqual( + models.Quotation.objects.filter(book=self.book).first().published_date, + parse_datetime("2023-08-14T04:48:50.207Z"), + ) + self.assertEqual( + models.Quotation.objects.filter(book=self.book).first().position_mode, "PG" + ) + self.assertEqual( + models.Quotation.objects.filter(book=self.book).first().position, 1 + ) + + def test_upsert_list_existing(self): + """Take a list and ListItems as JSON and create DB entries if they don't already exist""" + + book_data = self.import_data["books"][0] + + other_book = models.Edition.objects.create( + title="Another Book", remote_id="https://example.com/book/9876" + ) + + with patch("bookwyrm.lists_stream.remove_list_task.delay"), patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ): + book_list = models.List.objects.create( + name="my list of books", user=self.local_user + ) + + list_item = models.ListItem.objects.create( + book=self.book, book_list=book_list, user=self.local_user, order=1 + ) + + self.assertTrue(models.List.objects.filter(id=book_list.id).exists()) + self.assertEqual(models.List.objects.filter(user=self.local_user).count(), 1) + self.assertEqual( + models.ListItem.objects.filter( + user=self.local_user, book_list=book_list + ).count(), + 1, + ) + + with patch("bookwyrm.lists_stream.remove_list_task.delay"), patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ): + bookwyrm_import_job.upsert_lists( + self.local_user, + book_data["lists"], + book_data["list_items"], + other_book.id, + ) + + self.assertEqual(models.List.objects.filter(user=self.local_user).count(), 1) + self.assertEqual(models.List.objects.filter(user=self.local_user).count(), 1) + self.assertEqual( + models.ListItem.objects.filter( + user=self.local_user, book_list=book_list + ).count(), + 2, + ) + + def test_upsert_list_not_existing(self): + """Take a list and ListItems as JSON and create DB entries if they don't already exist""" + + book_data = self.import_data["books"][0] + + self.assertEqual(models.List.objects.filter(user=self.local_user).count(), 0) + self.assertFalse(models.ListItem.objects.filter(book=self.book.id).exists()) + + with patch("bookwyrm.lists_stream.remove_list_task.delay"), patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ): + bookwyrm_import_job.upsert_lists( + self.local_user, + book_data["lists"], + book_data["list_items"], + self.book.id, + ) + + self.assertEqual(models.List.objects.filter(user=self.local_user).count(), 1) + self.assertEqual( + models.ListItem.objects.filter(user=self.local_user).count(), 1 + ) + + def test_upsert_shelves_existing(self): + """Take shelf and ShelfBooks JSON objects and create + DB entries if they don't already exist""" + + self.assertEqual( + models.ShelfBook.objects.filter(user=self.local_user.id).count(), 0 + ) + + shelf = models.Shelf.objects.get(name="Read", user=self.local_user) + + with patch("bookwyrm.activitystreams.add_book_statuses_task.delay"), patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ): + models.ShelfBook.objects.create( + book=self.book, shelf=shelf, user=self.local_user + ) + + book_data = self.import_data["books"][0] + with patch("bookwyrm.activitystreams.add_book_statuses_task.delay"), patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ): + bookwyrm_import_job.upsert_shelves(self.book, self.local_user, book_data) + + self.assertEqual( + models.ShelfBook.objects.filter(user=self.local_user.id).count(), 2 + ) + + def test_upsert_shelves_not_existing(self): + """Take shelf and ShelfBooks JSON objects and create + DB entries if they don't already exist""" + + self.assertEqual( + models.ShelfBook.objects.filter(user=self.local_user.id).count(), 0 + ) + + book_data = self.import_data["books"][0] + + with patch("bookwyrm.activitystreams.add_book_statuses_task.delay"), patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ): + bookwyrm_import_job.upsert_shelves(self.book, self.local_user, book_data) + + self.assertEqual( + models.ShelfBook.objects.filter(user=self.local_user.id).count(), 2 + ) + self.assertEqual( + models.Shelf.objects.filter(user=self.local_user.id).count(), 2 + ) diff --git a/bookwyrm/tests/utils/test_tar.py b/bookwyrm/tests/utils/test_tar.py new file mode 100644 index 000000000..5989d3bb9 --- /dev/null +++ b/bookwyrm/tests/utils/test_tar.py @@ -0,0 +1,23 @@ +from bookwyrm.utils.tar import BookwyrmTarFile +import pytest + + +@pytest.fixture +def read_tar(): + archive_path = "../data/bookwyrm_account_export.tar.gz" + with open(archive_path, "rb") as archive_file: + with BookwyrmTarFile.open(mode="r:gz", fileobj=archive_file) as tar: + yield tar + + +def get_write_tar(): + archive_path = "/tmp/test.tar.gz" + with open(archive_path, "wb") as archive_file: + with BookwyrmTarFile.open(mode="w:gz", fileobj=archive_file) as tar: + return tar + + os.remove(archive_path) + + +def test_write_bytes(write_tar): + write_tar.write_bytes(b"ABCDEF", filename="example.txt") diff --git a/bookwyrm/tests/views/imports/test_user_import.py b/bookwyrm/tests/views/imports/test_user_import.py new file mode 100644 index 000000000..db5837101 --- /dev/null +++ b/bookwyrm/tests/views/imports/test_user_import.py @@ -0,0 +1,68 @@ +""" test for app action functionality """ +import pathlib +from unittest.mock import patch + +from django.core.files.uploadedfile import SimpleUploadedFile +from django.template.response import TemplateResponse +from django.test import TestCase +from django.test.client import RequestFactory + +from bookwyrm import forms, models, views +from bookwyrm.tests.validate_html import validate_html + + +class ImportUserViews(TestCase): + """user import views""" + + # pylint: disable=invalid-name + def setUp(self): + """we need basic test data and mocks""" + self.factory = RequestFactory() + with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch( + "bookwyrm.activitystreams.populate_stream_task.delay" + ), patch("bookwyrm.lists_stream.populate_lists_task.delay"): + self.local_user = models.User.objects.create_user( + "mouse@local.com", + "mouse@mouse.mouse", + "password", + local=True, + localname="mouse", + ) + models.SiteSettings.objects.create() + + def test_get_user_import_page(self): + """there are so many views, this just makes sure it LOADS""" + view = views.UserImport.as_view() + request = self.factory.get("") + request.user = self.local_user + result = view(request) + self.assertIsInstance(result, TemplateResponse) + validate_html(result.render()) + self.assertEqual(result.status_code, 200) + + def test_user_import_post(self): + """does the import job start?""" + + view = views.UserImport.as_view() + form = forms.ImportUserForm() + archive_file = pathlib.Path(__file__).parent.joinpath( + "../../data/bookwyrm_account_export.tar.gz" + ) + + form.data["archive_file"] = SimpleUploadedFile( + # pylint: disable=consider-using-with + archive_file, + open(archive_file, "rb").read(), + content_type="application/gzip", + ) + + form.data["include_user_settings"] = "" + form.data["include_goals"] = "on" + + request = self.factory.post("", form.data) + request.user = self.local_user + + with patch("bookwyrm.models.bookwyrm_import_job.BookwyrmImportJob.start_job"): + view(request) + job = models.BookwyrmImportJob.objects.get() + self.assertEqual(job.required, ["include_goals"]) diff --git a/bookwyrm/tests/views/preferences/test_export_user.py b/bookwyrm/tests/views/preferences/test_export_user.py new file mode 100644 index 000000000..c7594749b --- /dev/null +++ b/bookwyrm/tests/views/preferences/test_export_user.py @@ -0,0 +1,74 @@ +""" test for app action functionality """ +from collections import namedtuple +from unittest.mock import patch + +from django.http import HttpResponse +from django.test import TestCase +from django.test.client import RequestFactory + +from bookwyrm import models, views +from bookwyrm.tests.validate_html import validate_html + + +class ExportUserViews(TestCase): + """exporting user data""" + + def setUp(self): + self.factory = RequestFactory() + models.SiteSettings.objects.create() + with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch( + "bookwyrm.activitystreams.populate_stream_task.delay" + ): + self.local_user = models.User.objects.create_user( + "hugh@example.com", + "hugh@example.com", + "password", + local=True, + localname="Hugh", + summary="just a test account", + remote_id="https://example.com/users/hugh", + preferred_timezone="Australia/Broken_Hill", + ) + + def test_export_user_get(self, *_): + """request export""" + request = self.factory.get("") + request.user = self.local_user + result = views.ExportUser.as_view()(request) + validate_html(result.render()) + + def test_trigger_export_user_file(self, *_): + """simple user export""" + + request = self.factory.post("") + request.user = self.local_user + with patch("bookwyrm.models.bookwyrm_export_job.start_export_task.delay"): + export = views.ExportUser.as_view()(request) + self.assertIsInstance(export, HttpResponse) + self.assertEqual(export.status_code, 302) + + jobs = models.bookwyrm_export_job.BookwyrmExportJob.objects.count() + self.assertEqual(jobs, 1) + + def test_download_export_user_file(self, *_): + """simple user export""" + + # TODO: need some help with this one + job = models.bookwyrm_export_job.BookwyrmExportJob.objects.create( + user=self.local_user + ) + MockTask = namedtuple("Task", ("id")) + with patch( + "bookwyrm.models.bookwyrm_export_job.start_export_task.delay" + ) as mock: + mock.return_value = MockTask(b'{"name": "mouse"}') + job.start_job() + + request = self.factory.get("") + request.user = self.local_user + job.refresh_from_db() + export = views.ExportArchive.as_view()(request, job.id) + self.assertIsInstance(export, HttpResponse) + self.assertEqual(export.status_code, 200) + # pylint: disable=line-too-long + self.assertEqual(export.content, b'{"name": "mouse"}') diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py index 0ebd7925c..5b83acb85 100644 --- a/bookwyrm/urls.py +++ b/bookwyrm/urls.py @@ -396,6 +396,7 @@ urlpatterns = [ re_path(r"^search/?$", views.Search.as_view(), name="search"), # imports re_path(r"^import/?$", views.Import.as_view(), name="import"), + re_path(r"^user-import/?$", views.UserImport.as_view(), name="user-import"), re_path( r"^import/(?P\d+)/?$", views.ImportStatus.as_view(), @@ -593,6 +594,16 @@ urlpatterns = [ name="prompt-2fa", ), re_path(r"^preferences/export/?$", views.Export.as_view(), name="prefs-export"), + re_path( + r"^preferences/user-export/?$", + views.ExportUser.as_view(), + name="prefs-user-export", + ), + path( + "preferences/user-export/", + views.ExportArchive.as_view(), + name="prefs-export-file", + ), re_path(r"^preferences/delete/?$", views.DeleteUser.as_view(), name="prefs-delete"), re_path( r"^preferences/deactivate/?$", diff --git a/bookwyrm/utils/tar.py b/bookwyrm/utils/tar.py new file mode 100644 index 000000000..448df48d9 --- /dev/null +++ b/bookwyrm/utils/tar.py @@ -0,0 +1,40 @@ +from uuid import uuid4 +from django.core.files import File +import tarfile +import io + + +class BookwyrmTarFile(tarfile.TarFile): + def write_bytes(self, data: bytes, filename="archive.json"): + """Add a file containing :data: bytestring with name :filename: to the archive""" + buffer = io.BytesIO(data) + info = tarfile.TarInfo("archive.json") + info.size = len(data) + self.addfile(info, fileobj=buffer) + + def add_image(self, image, filename=None, directory=""): + """ + Add an image to the tar archive + :param str filename: overrides the file name set by image + :param str directory: the directory in the archive to put the image + """ + if filename is not None: + file_type = image.name.rsplit(".", maxsplit=1)[-1] + filename = f"{directory}{filename}.{file_type}" + else: + filename = f"{directory}{image.name}" + + info = tarfile.TarInfo(name=filename) + info.size = image.size + + self.addfile(info, fileobj=image) + + def read(self, filename): + with self.extractfile(filename) as reader: + return reader.read() + + def write_image_to_file(self, filename, file_field): + extension = filename.rsplit(".")[-1] + with self.extractfile(filename) as reader: + filename = f"{str(uuid4())}.{extension}" + file_field.save(filename, File(reader)) diff --git a/bookwyrm/views/__init__.py b/bookwyrm/views/__init__.py index 84060acb7..c044200e3 100644 --- a/bookwyrm/views/__init__.py +++ b/bookwyrm/views/__init__.py @@ -36,7 +36,7 @@ from .admin.user_admin import UserAdmin, UserAdminList, ActivateUserAdmin # user preferences from .preferences.change_password import ChangePassword from .preferences.edit_user import EditUser -from .preferences.export import Export +from .preferences.export import Export, ExportUser, ExportArchive from .preferences.delete_user import DeleteUser, DeactivateUser, ReactivateUser from .preferences.block import Block, unblock from .preferences.two_factor_auth import ( @@ -80,7 +80,7 @@ from .shelf.shelf_actions import create_shelf, delete_shelf from .shelf.shelf_actions import shelve, unshelve # csv import -from .imports.import_data import Import +from .imports.import_data import Import, UserImport from .imports.import_status import ImportStatus, retry_item, stop_import from .imports.troubleshoot import ImportTroubleshoot from .imports.manually_review import ( diff --git a/bookwyrm/views/imports/import_data.py b/bookwyrm/views/imports/import_data.py index 01812e1d5..69a87c0c2 100644 --- a/bookwyrm/views/imports/import_data.py +++ b/bookwyrm/views/imports/import_data.py @@ -15,12 +15,14 @@ from django.views import View from bookwyrm import forms, models from bookwyrm.importers import ( + BookwyrmImporter, CalibreImporter, LibrarythingImporter, GoodreadsImporter, StorygraphImporter, OpenLibraryImporter, ) +from bookwyrm.models.bookwyrm_import_job import BookwyrmImportJob from bookwyrm.settings import PAGE_LENGTH from bookwyrm.utils.cache import get_or_set @@ -127,3 +129,47 @@ def get_average_import_time() -> float: if recent_avg: return recent_avg.total_seconds() return None + + +# pylint: disable= no-self-use +@method_decorator(login_required, name="dispatch") +class UserImport(View): + """import user view""" + + def get(self, request, invalid=False): + """load user import page""" + + jobs = BookwyrmImportJob.objects.filter(user=request.user).order_by( + "-created_date" + ) + paginated = Paginator(jobs, PAGE_LENGTH) + page = paginated.get_page(request.GET.get("page")) + data = { + "import_form": forms.ImportUserForm(), + "jobs": page, + "page_range": paginated.get_elided_page_range( + page.number, on_each_side=2, on_ends=1 + ), + "invalid": invalid, + } + + return TemplateResponse(request, "import/import_user.html", data) + + def post(self, request): + """ingest a Bookwyrm json file""" + + importer = BookwyrmImporter() + + form = forms.ImportUserForm(request.POST, request.FILES) + if not form.is_valid(): + return HttpResponseBadRequest() + + job = importer.process_import( + user=request.user, + archive_file=request.FILES["archive_file"], + settings=request.POST, + ) + + job.start_job() + + return redirect("user-import") diff --git a/bookwyrm/views/preferences/export.py b/bookwyrm/views/preferences/export.py index 6880318bc..28e83051e 100644 --- a/bookwyrm/views/preferences/export.py +++ b/bookwyrm/views/preferences/export.py @@ -3,13 +3,17 @@ import csv import io from django.contrib.auth.decorators import login_required +from django.core.paginator import Paginator from django.db.models import Q from django.http import HttpResponse from django.template.response import TemplateResponse from django.views import View from django.utils.decorators import method_decorator +from django.shortcuts import redirect from bookwyrm import models +from bookwyrm.models.bookwyrm_export_job import BookwyrmExportJob +from bookwyrm.settings import PAGE_LENGTH # pylint: disable=no-self-use @method_decorator(login_required, name="dispatch") @@ -84,3 +88,49 @@ class Export(View): "Content-Disposition": 'attachment; filename="bookwyrm-export.csv"' }, ) + + +# pylint: disable=no-self-use +@method_decorator(login_required, name="dispatch") +class ExportUser(View): + """Let users export user data to import into another Bookwyrm instance""" + + def get(self, request): + """Request tar file""" + + jobs = BookwyrmExportJob.objects.filter(user=request.user).order_by( + "-created_date" + ) + paginated = Paginator(jobs, PAGE_LENGTH) + page = paginated.get_page(request.GET.get("page")) + data = { + "jobs": page, + "page_range": paginated.get_elided_page_range( + page.number, on_each_side=2, on_ends=1 + ), + } + + return TemplateResponse(request, "preferences/export-user.html", data) + + def post(self, request): + """Download the json file of a user's data""" + + job = BookwyrmExportJob.objects.create(user=request.user) + job.start_job() + + return redirect("prefs-user-export") + + +@method_decorator(login_required, name="dispatch") +class ExportArchive(View): + """Serve the archive file""" + + def get(self, request, archive_id): + export = BookwyrmExportJob.objects.get(task_id=archive_id, user=request.user) + return HttpResponse( + export.export_data, + content_type="application/gzip", + headers={ + "Content-Disposition": 'attachment; filename="bookwyrm-account-export.tar.gz"' + }, + ) From a4bfcb34d5c2e53448700c5970b2c3634fc1245c Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Sun, 15 Oct 2023 15:09:19 +1100 Subject: [PATCH 002/184] fix tests and clean up * cleans up some test logging * cleans up some commented-out code * adds export_job model tests * reconsiders some tests in export user view tests --- bookwyrm/models/bookwyrm_export_job.py | 8 - .../templates/preferences/export-user.html | 16 +- .../tests/models/test_bookwyrm_export_job.py | 233 ++++++++++++++++++ ...t_model.py => test_bookwyrm_import_job.py} | 27 +- .../views/preferences/test_export_user.py | 23 -- 5 files changed, 261 insertions(+), 46 deletions(-) create mode 100644 bookwyrm/tests/models/test_bookwyrm_export_job.py rename bookwyrm/tests/models/{test_bookwyrm_import_model.py => test_bookwyrm_import_job.py} (96%) diff --git a/bookwyrm/models/bookwyrm_export_job.py b/bookwyrm/models/bookwyrm_export_job.py index c262d9b5c..c3a0b652a 100644 --- a/bookwyrm/models/bookwyrm_export_job.py +++ b/bookwyrm/models/bookwyrm_export_job.py @@ -153,20 +153,12 @@ def json_export(user): comments = models.Comment.objects.filter(user=user, book=book["id"]).distinct() book["comments"] = list(comments.values()) - logger.error("FINAL COMMENTS") - logger.error(book["comments"]) # quotes quotes = models.Quotation.objects.filter(user=user, book=book["id"]).distinct() - # quote_statuses = models.Status.objects.filter( - # id__in=quotes, user=kwargs["user"] - # ).distinct() book["quotes"] = list(quotes.values()) - logger.error("FINAL QUOTES") - logger.error(book["quotes"]) - # append everything final_books.append(book) diff --git a/bookwyrm/templates/preferences/export-user.html b/bookwyrm/templates/preferences/export-user.html index 81f13bc22..393d8990e 100644 --- a/bookwyrm/templates/preferences/export-user.html +++ b/bookwyrm/templates/preferences/export-user.html @@ -12,15 +12,13 @@

{% trans "Your exported archive file will include all user data for import into another Bookwyrm server" %}

-

- - {% csrf_token %} - -

-

+
+ {% csrf_token %} + +

{% trans "Recent Exports" %}

diff --git a/bookwyrm/tests/models/test_bookwyrm_export_job.py b/bookwyrm/tests/models/test_bookwyrm_export_job.py new file mode 100644 index 000000000..bd314e60e --- /dev/null +++ b/bookwyrm/tests/models/test_bookwyrm_export_job.py @@ -0,0 +1,233 @@ +import datetime +import time +import json +from unittest.mock import patch + +from django.core.serializers.json import DjangoJSONEncoder +from django.test import TestCase +from django.utils import timezone + +from bookwyrm import models +import bookwyrm.models.bookwyrm_export_job as export_job + + +class BookwyrmExport(TestCase): + """testing user export functions""" + + def setUp(self): + """lots of stuff to set up for a user export""" + with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch( + "bookwyrm.activitystreams.populate_stream_task.delay" + ), patch("bookwyrm.lists_stream.populate_lists_task.delay"), patch( + "bookwyrm.suggested_users.rerank_user_task.delay" + ), patch( + "bookwyrm.lists_stream.remove_list_task.delay" + ), patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch( + "bookwyrm.activitystreams.add_book_statuses_task" + ): + + self.local_user = models.User.objects.create_user( + "mouse", + "mouse@mouse.mouse", + "password", + local=True, + localname="mouse", + name="Mouse", + summary="I'm a real bookmouse", + manually_approves_followers=False, + hide_follows=False, + show_goal=False, + show_suggested_users=False, + discoverable=True, + preferred_timezone="America/Los Angeles", + default_post_privacy="followers", + ) + + self.rat_user = models.User.objects.create_user( + "rat", "rat@rat.rat", "ratword", local=True, localname="rat" + ) + + self.badger_user = models.User.objects.create_user( + "badger", + "badger@badger.badger", + "badgerword", + local=True, + localname="badger", + ) + + models.AnnualGoal.objects.create( + user=self.local_user, + year=timezone.now().year, + goal=128937123, + privacy="followers", + ) + + self.list = models.List.objects.create( + name="My excellent list", + user=self.local_user, + remote_id="https://local.lists/1111", + ) + + self.saved_list = models.List.objects.create( + name="My cool list", + user=self.rat_user, + remote_id="https://local.lists/9999", + ) + + self.local_user.saved_lists.add(self.saved_list) + self.local_user.blocks.add(self.badger_user) + self.rat_user.followers.add(self.local_user) + + # book, edition, author + self.author = models.Author.objects.create(name="Sam Zhu") + self.work = models.Work.objects.create( + title="Example Work", remote_id="https://example.com/book/1" + ) + self.edition = models.Edition.objects.create( + title="Example Edition", parent_work=self.work + ) + + self.edition.authors.add(self.author) + + # readthrough + self.readthrough_start = timezone.now() + finish = self.readthrough_start + datetime.timedelta(days=1) + models.ReadThrough.objects.create( + user=self.local_user, + book=self.edition, + start_date=self.readthrough_start, + finish_date=finish, + ) + + # shelve + read_shelf = models.Shelf.objects.get( + user=self.local_user, identifier="read" + ) + models.ShelfBook.objects.create( + book=self.edition, shelf=read_shelf, user=self.local_user + ) + + # add to list + item = models.ListItem.objects.create( + book_list=self.list, + user=self.local_user, + book=self.edition, + approved=True, + order=1, + ) + + # review + models.Review.objects.create( + content="awesome", + name="my review", + rating=5, + user=self.local_user, + book=self.edition, + ) + # comment + models.Comment.objects.create( + content="ok so far", + user=self.local_user, + book=self.edition, + progress=15, + ) + # quote + models.Quotation.objects.create( + content="check this out", + quote="A rose by any other name", + user=self.local_user, + book=self.edition, + ) + + def test_json_export_user_settings(self): + """Test the json export function for basic user info""" + data = export_job.json_export(self.local_user) + user_data = json.loads(data)["user"] + self.assertEqual(user_data["username"], "mouse") + self.assertEqual(user_data["name"], "Mouse") + self.assertEqual(user_data["summary"], "I'm a real bookmouse") + self.assertEqual(user_data["manually_approves_followers"], False) + self.assertEqual(user_data["hide_follows"], False) + self.assertEqual(user_data["show_goal"], False) + self.assertEqual(user_data["show_suggested_users"], False) + self.assertEqual(user_data["discoverable"], True) + self.assertEqual(user_data["preferred_timezone"], "America/Los Angeles") + self.assertEqual(user_data["default_post_privacy"], "followers") + + def test_json_export_extended_user_data(self): + """Test the json export function for other non-book user info""" + data = export_job.json_export(self.local_user) + json_data = json.loads(data) + + # goal + self.assertEqual(len(json_data["goals"]), 1) + self.assertEqual(json_data["goals"][0]["goal"], 128937123) + self.assertEqual(json_data["goals"][0]["year"], timezone.now().year) + self.assertEqual(json_data["goals"][0]["privacy"], "followers") + + # saved lists + self.assertEqual(len(json_data["saved_lists"]), 1) + self.assertEqual(json_data["saved_lists"][0], "https://local.lists/9999") + + # follows + self.assertEqual(len(json_data["follows"]), 1) + self.assertEqual(json_data["follows"][0], "https://your.domain.here/user/rat") + # blocked users + self.assertEqual(len(json_data["blocked_users"]), 1) + self.assertEqual( + json_data["blocked_users"][0], "https://your.domain.here/user/badger" + ) + + def test_json_export_books(self): + """Test the json export function for extended user info""" + + data = export_job.json_export(self.local_user) + json_data = json.loads(data) + start_date = json_data["books"][0]["readthroughs"][0]["start_date"] + + self.assertEqual(len(json_data["books"]), 1) + self.assertEqual(json_data["books"][0]["title"], "Example Edition") + self.assertEqual(len(json_data["books"][0]["authors"]), 1) + self.assertEqual(json_data["books"][0]["authors"][0]["name"], "Sam Zhu") + self.assertEqual( + f'"{start_date}"', DjangoJSONEncoder().encode(self.readthrough_start) + ) + self.assertEqual(json_data["books"][0]["shelves"][0]["identifier"], "read") + self.assertEqual( + json_data["books"][0]["shelf_books"]["read"][0]["book_id"], self.edition.id + ) + + self.assertEqual(len(json_data["books"][0]["lists"]), 1) + self.assertEqual(json_data["books"][0]["lists"][0]["name"], "My excellent list") + self.assertEqual(len(json_data["books"][0]["list_items"]), 1) + self.assertEqual( + json_data["books"][0]["list_items"]["My excellent list"][0]["book_id"], + self.edition.id, + ) + + self.assertEqual(len(json_data["books"][0]["reviews"]), 1) + self.assertEqual(len(json_data["books"][0]["comments"]), 1) + self.assertEqual(len(json_data["books"][0]["quotes"]), 1) + + self.assertEqual(json_data["books"][0]["reviews"][0]["name"], "my review") + self.assertEqual(json_data["books"][0]["reviews"][0]["content"], "awesome") + self.assertEqual(json_data["books"][0]["reviews"][0]["rating"], "5.00") + + self.assertEqual(json_data["books"][0]["comments"][0]["content"], "ok so far") + self.assertEqual(json_data["books"][0]["comments"][0]["progress"], 15) + self.assertEqual(json_data["books"][0]["comments"][0]["progress_mode"], "PG") + + self.assertEqual( + json_data["books"][0]["quotes"][0]["content"], "check this out" + ) + self.assertEqual( + json_data["books"][0]["quotes"][0]["quote"], "A rose by any other name" + ) + + def test_tar_export(self): + """test the tar export function""" + + # TODO + pass diff --git a/bookwyrm/tests/models/test_bookwyrm_import_model.py b/bookwyrm/tests/models/test_bookwyrm_import_job.py similarity index 96% rename from bookwyrm/tests/models/test_bookwyrm_import_model.py rename to bookwyrm/tests/models/test_bookwyrm_import_job.py index 644cbd265..61713cd17 100644 --- a/bookwyrm/tests/models/test_bookwyrm_import_model.py +++ b/bookwyrm/tests/models/test_bookwyrm_import_job.py @@ -70,15 +70,28 @@ class BookwyrmImport(TestCase): self.tarfile = BookwyrmTarFile.open( mode="r:gz", fileobj=open(archive_file, "rb") ) - self.import_data = json.loads( - self.tarfile.read("archive.json").decode("utf-8") - ) + self.import_data = json.loads(self.tarfile.read("archive.json").decode("utf-8")) def test_update_user_profile(self): """Test update the user's profile from import data""" - # TODO once the tar is set up - pass + with patch("bookwyrm.suggested_users.remove_user_task.delay"), patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ): + + models.bookwyrm_import_job.update_user_profile( + self.local_user, self.tarfile, self.import_data.get("user") + ) + self.local_user.refresh_from_db() + + self.assertEqual( + self.local_user.username, "mouse" + ) # username should not change + self.assertEqual(self.local_user.name, "Rat") + self.assertEqual( + self.local_user.summary, + "I love to make soup in Paris and eat pizza in New York", + ) def test_update_user_settings(self): """Test updating the user's settings from import data""" @@ -543,6 +556,8 @@ class BookwyrmImport(TestCase): self.assertEqual( models.ShelfBook.objects.filter(user=self.local_user.id).count(), 2 ) + + # check we didn't create an extra shelf self.assertEqual( - models.Shelf.objects.filter(user=self.local_user.id).count(), 2 + models.Shelf.objects.filter(user=self.local_user.id).count(), 4 ) diff --git a/bookwyrm/tests/views/preferences/test_export_user.py b/bookwyrm/tests/views/preferences/test_export_user.py index c7594749b..1483fc4ec 100644 --- a/bookwyrm/tests/views/preferences/test_export_user.py +++ b/bookwyrm/tests/views/preferences/test_export_user.py @@ -49,26 +49,3 @@ class ExportUserViews(TestCase): jobs = models.bookwyrm_export_job.BookwyrmExportJob.objects.count() self.assertEqual(jobs, 1) - - def test_download_export_user_file(self, *_): - """simple user export""" - - # TODO: need some help with this one - job = models.bookwyrm_export_job.BookwyrmExportJob.objects.create( - user=self.local_user - ) - MockTask = namedtuple("Task", ("id")) - with patch( - "bookwyrm.models.bookwyrm_export_job.start_export_task.delay" - ) as mock: - mock.return_value = MockTask(b'{"name": "mouse"}') - job.start_job() - - request = self.factory.get("") - request.user = self.local_user - job.refresh_from_db() - export = views.ExportArchive.as_view()(request, job.id) - self.assertIsInstance(export, HttpResponse) - self.assertEqual(export.status_code, 200) - # pylint: disable=line-too-long - self.assertEqual(export.content, b'{"name": "mouse"}') From 781b01a007b8248992e5c98ceda958ec520aed4c Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Sat, 21 Oct 2023 19:43:44 +1100 Subject: [PATCH 003/184] add error handling and status for user exports * fix Safari not downloading with the correct filename * add FAILED status * don't provide download link for stopped jobs --- bookwyrm/models/bookwyrm_export_job.py | 18 ++++++++++-------- bookwyrm/models/job.py | 12 ++++++++++-- .../templates/preferences/export-user.html | 6 +++--- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/bookwyrm/models/bookwyrm_export_job.py b/bookwyrm/models/bookwyrm_export_job.py index c3a0b652a..00cab7559 100644 --- a/bookwyrm/models/bookwyrm_export_job.py +++ b/bookwyrm/models/bookwyrm_export_job.py @@ -35,13 +35,14 @@ def start_export_task(**kwargs): # don't start the job if it was stopped from the UI if job.complete: return - - # This is where ChildJobs get made - job.export_data = ContentFile(b"", str(uuid4())) - - json_data = json_export(job.user) - tar_export(json_data, job.user, job.export_data) - + try: + # This is where ChildJobs get made + job.export_data = ContentFile(b"", str(uuid4())) + json_data = json_export(job.user) + tar_export(json_data, job.user, job.export_data) + except Exception as err: # pylint: disable=broad-except + logger.exception("Job %s Failed with error: %s", job.id, err) + job.set_status("failed") job.save(update_fields=["export_data"]) @@ -56,7 +57,8 @@ def tar_export(json_data: str, user, f): editions, books = get_books_for_user(user) for book in editions: - tar.add_image(book.cover) + if getattr(book, "cover", False): + tar.add_image(book.cover) f.close() diff --git a/bookwyrm/models/job.py b/bookwyrm/models/job.py index 6e8d0dc5c..7557c5855 100644 --- a/bookwyrm/models/job.py +++ b/bookwyrm/models/job.py @@ -19,6 +19,7 @@ class Job(models.Model): ACTIVE = "active", _("Active") COMPLETE = "complete", _("Complete") STOPPED = "stopped", _("Stopped") + FAILED = "failed", _("Failed") task_id = models.UUIDField(unique=True, null=True, blank=True) @@ -43,14 +44,17 @@ class Job(models.Model): self.save(update_fields=["status", "complete", "updated_date"]) - def stop_job(self): + def stop_job(self, reason=None): """Stop the job""" if self.complete: return self.__terminate_job() - self.status = self.Status.STOPPED + if reason and reason is "failed": + self.status = self.Status.FAILED + else: + self.status = self.Status.STOPPED self.complete = True self.updated_date = timezone.now() @@ -72,6 +76,10 @@ class Job(models.Model): self.stop_job() return + if status == self.Status.FAILED: + self.stop_job(reason="failed") + return + self.updated_date = timezone.now() self.status = status diff --git a/bookwyrm/templates/preferences/export-user.html b/bookwyrm/templates/preferences/export-user.html index 393d8990e..2dd3f6de3 100644 --- a/bookwyrm/templates/preferences/export-user.html +++ b/bookwyrm/templates/preferences/export-user.html @@ -48,8 +48,8 @@ {% for job in jobs %} - {% if job.complete %} -

{{ job.created_date }}

+ {% if job.complete and not job.status == "stopped" and not job.status == "failed" %} +

{{ job.created_date }}

{% else %}

{{ job.created_date }}

{% endif %} @@ -57,7 +57,7 @@ {{ job.updated_date }} Date: Sun, 22 Oct 2023 09:03:28 +1100 Subject: [PATCH 004/184] add notifs and error handling for user export/import --- .../migrations/0183_auto_20231021_2050.py | 34 ++++++++++++++ bookwyrm/models/bookwyrm_export_job.py | 3 +- bookwyrm/models/bookwyrm_import_job.py | 46 +++++++++++-------- bookwyrm/models/job.py | 2 +- bookwyrm/models/notification.py | 38 ++++++++++++++- bookwyrm/templates/import/import_user.html | 2 +- bookwyrm/templates/notifications/item.html | 4 ++ .../notifications/items/user_export.html | 11 +++++ .../notifications/items/user_import.html | 10 ++++ 9 files changed, 126 insertions(+), 24 deletions(-) create mode 100644 bookwyrm/migrations/0183_auto_20231021_2050.py create mode 100644 bookwyrm/templates/notifications/items/user_export.html create mode 100644 bookwyrm/templates/notifications/items/user_import.html diff --git a/bookwyrm/migrations/0183_auto_20231021_2050.py b/bookwyrm/migrations/0183_auto_20231021_2050.py new file mode 100644 index 000000000..201a9201a --- /dev/null +++ b/bookwyrm/migrations/0183_auto_20231021_2050.py @@ -0,0 +1,34 @@ +# Generated by Django 3.2.20 on 2023-10-21 20:50 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('bookwyrm', '0182_merge_20230905_2240'), + ] + + operations = [ + migrations.AddField( + model_name='notification', + name='related_user_export', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='bookwyrm.bookwyrmexportjob'), + ), + migrations.AlterField( + model_name='childjob', + name='status', + field=models.CharField(choices=[('pending', 'Pending'), ('active', 'Active'), ('complete', 'Complete'), ('stopped', 'Stopped'), ('failed', 'Failed')], default='pending', max_length=50, null=True), + ), + migrations.AlterField( + model_name='notification', + name='notification_type', + field=models.CharField(choices=[('FAVORITE', 'Favorite'), ('REPLY', 'Reply'), ('MENTION', 'Mention'), ('TAG', 'Tag'), ('FOLLOW', 'Follow'), ('FOLLOW_REQUEST', 'Follow Request'), ('BOOST', 'Boost'), ('IMPORT', 'Import'), ('USER_IMPORT', 'User Import'), ('USER_EXPORT', 'User Export'), ('ADD', 'Add'), ('REPORT', 'Report'), ('LINK_DOMAIN', 'Link Domain'), ('INVITE', 'Invite'), ('ACCEPT', 'Accept'), ('JOIN', 'Join'), ('LEAVE', 'Leave'), ('REMOVE', 'Remove'), ('GROUP_PRIVACY', 'Group Privacy'), ('GROUP_NAME', 'Group Name'), ('GROUP_DESCRIPTION', 'Group Description')], max_length=255), + ), + migrations.AlterField( + model_name='parentjob', + name='status', + field=models.CharField(choices=[('pending', 'Pending'), ('active', 'Active'), ('complete', 'Complete'), ('stopped', 'Stopped'), ('failed', 'Failed')], default='pending', max_length=50, null=True), + ), + ] diff --git a/bookwyrm/models/bookwyrm_export_job.py b/bookwyrm/models/bookwyrm_export_job.py index 00cab7559..96e602cc9 100644 --- a/bookwyrm/models/bookwyrm_export_job.py +++ b/bookwyrm/models/bookwyrm_export_job.py @@ -41,8 +41,9 @@ def start_export_task(**kwargs): json_data = json_export(job.user) tar_export(json_data, job.user, job.export_data) except Exception as err: # pylint: disable=broad-except - logger.exception("Job %s Failed with error: %s", job.id, err) + logger.exception("User Export Job %s Failed with error: %s", job.id, err) job.set_status("failed") + job.set_status("complete") # need to explicitly set this here to trigger notifications job.save(update_fields=["export_data"]) diff --git a/bookwyrm/models/bookwyrm_import_job.py b/bookwyrm/models/bookwyrm_import_job.py index 696f8061a..73372829b 100644 --- a/bookwyrm/models/bookwyrm_import_job.py +++ b/bookwyrm/models/bookwyrm_import_job.py @@ -1,5 +1,6 @@ from functools import reduce import json +import logging import operator from django.db.models import FileField, JSONField, CharField @@ -18,7 +19,8 @@ from bookwyrm.models.job import ( create_child_job, ) from bookwyrm.utils.tar import BookwyrmTarFile -import json + +logger = logging.getLogger(__name__) class BookwyrmImportJob(ParentJob): @@ -43,27 +45,33 @@ def start_import_task(**kwargs): if job.complete: return - archive_file.open("rb") - with BookwyrmTarFile.open(mode="r:gz", fileobj=archive_file) as tar: - job.import_data = json.loads(tar.read("archive.json").decode("utf-8")) + try: + archive_file.open("rb") + with BookwyrmTarFile.open(mode="r:gz", fileobj=archive_file) as tar: + job.import_data = json.loads(tar.read("archive.json").decode("utf-8")) - if "include_user_profile" in job.required: - update_user_profile(job.user, tar, job.import_data.get("user")) - if "include_user_settings" in job.required: - update_user_settings(job.user, job.import_data.get("user")) - if "include_goals" in job.required: - update_goals(job.user, job.import_data.get("goals")) - if "include_saved_lists" in job.required: - upsert_saved_lists(job.user, job.import_data.get("saved_lists")) - if "include_follows" in job.required: - upsert_follows(job.user, job.import_data.get("follows")) - if "include_blocks" in job.required: - upsert_user_blocks(job.user, job.import_data.get("blocked_users")) + if "include_user_profile" in job.required: + update_user_profile(job.user, tar, job.import_data.get("user")) + if "include_user_settings" in job.required: + update_user_settings(job.user, job.import_data.get("user")) + if "include_goals" in job.required: + update_goals(job.user, job.import_data.get("goals")) + if "include_saved_lists" in job.required: + upsert_saved_lists(job.user, job.import_data.get("saved_lists")) + if "include_follows" in job.required: + upsert_follows(job.user, job.import_data.get("follows")) + if "include_blocks" in job.required: + upsert_user_blocks(job.user, job.import_data.get("blocked_users")) - process_books(job, tar) + process_books(job, tar) - job.save() - archive_file.close() + job.set_status("complete") # set here to trigger notifications + job.save() + archive_file.close() + + except Exception as err: # pylint: disable=broad-except + logger.exception("User Import Job %s Failed with error: %s", job.id, err) + job.set_status("failed") def process_books(job, tar): diff --git a/bookwyrm/models/job.py b/bookwyrm/models/job.py index 7557c5855..4ba4bc2d7 100644 --- a/bookwyrm/models/job.py +++ b/bookwyrm/models/job.py @@ -51,7 +51,7 @@ class Job(models.Model): self.__terminate_job() - if reason and reason is "failed": + if reason and reason == "failed": self.status = self.Status.FAILED else: self.status = self.Status.STOPPED diff --git a/bookwyrm/models/notification.py b/bookwyrm/models/notification.py index 522038f9a..4c420a2e1 100644 --- a/bookwyrm/models/notification.py +++ b/bookwyrm/models/notification.py @@ -2,7 +2,8 @@ from django.db import models, transaction from django.dispatch import receiver from .base_model import BookWyrmModel -from . import Boost, Favorite, GroupMemberInvitation, ImportJob, LinkDomain +from . import Boost, Favorite, GroupMemberInvitation, ImportJob, BookwyrmImportJob, LinkDomain +from bookwyrm.models.bookwyrm_export_job import BookwyrmExportJob from . import ListItem, Report, Status, User, UserFollowRequest @@ -22,6 +23,8 @@ class Notification(BookWyrmModel): # Imports IMPORT = "IMPORT" + USER_IMPORT = "USER_IMPORT" + USER_EXPORT = "USER_EXPORT" # List activity ADD = "ADD" @@ -44,7 +47,7 @@ class Notification(BookWyrmModel): NotificationType = models.TextChoices( # there has got be a better way to do this "NotificationType", - f"{FAVORITE} {REPLY} {MENTION} {TAG} {FOLLOW} {FOLLOW_REQUEST} {BOOST} {IMPORT} {ADD} {REPORT} {LINK_DOMAIN} {INVITE} {ACCEPT} {JOIN} {LEAVE} {REMOVE} {GROUP_PRIVACY} {GROUP_NAME} {GROUP_DESCRIPTION}", + f"{FAVORITE} {REPLY} {MENTION} {TAG} {FOLLOW} {FOLLOW_REQUEST} {BOOST} {IMPORT} {USER_IMPORT} {USER_EXPORT} {ADD} {REPORT} {LINK_DOMAIN} {INVITE} {ACCEPT} {JOIN} {LEAVE} {REMOVE} {GROUP_PRIVACY} {GROUP_NAME} {GROUP_DESCRIPTION}", ) user = models.ForeignKey("User", on_delete=models.CASCADE) @@ -61,6 +64,7 @@ class Notification(BookWyrmModel): ) related_status = models.ForeignKey("Status", on_delete=models.CASCADE, null=True) related_import = models.ForeignKey("ImportJob", on_delete=models.CASCADE, null=True) + related_user_export = models.ForeignKey("BookwyrmExportJob", on_delete=models.CASCADE, null=True) related_list_items = models.ManyToManyField( "ListItem", symmetrical=False, related_name="notifications" ) @@ -222,6 +226,36 @@ def notify_user_on_import_complete( related_import=instance, ) +@receiver(models.signals.post_save, sender=BookwyrmImportJob) +# pylint: disable=unused-argument +def notify_user_on_user_import_complete( + sender, instance, *args, update_fields=None, **kwargs +): + """we imported your user details! aren't you proud of us""" + update_fields = update_fields or [] + if not instance.complete or "complete" not in update_fields: + return + Notification.objects.create( + user=instance.user, + notification_type=Notification.USER_IMPORT + ) + +@receiver(models.signals.post_save, sender=BookwyrmExportJob) +# pylint: disable=unused-argument +def notify_user_on_user_export_complete( + sender, instance, *args, update_fields=None, **kwargs +): + """we imported your user details! aren't you proud of us""" + update_fields = update_fields or [] + if not instance.complete or "complete" not in update_fields: + print("RETURNING", instance.status) + return + print("NOTIFYING") + Notification.objects.create( + user=instance.user, + notification_type=Notification.USER_EXPORT, + related_user_export=instance, + ) @receiver(models.signals.post_save, sender=Report) @transaction.atomic diff --git a/bookwyrm/templates/import/import_user.html b/bookwyrm/templates/import/import_user.html index 86e99f657..e48f0198d 100644 --- a/bookwyrm/templates/import/import_user.html +++ b/bookwyrm/templates/import/import_user.html @@ -133,7 +133,7 @@ {{ job.updated_date }} +{% endblock %} + +{% block description %} + {% url 'prefs-export-file' notification.related_user_export.task_id as url %} + {% blocktrans %}Your user export is ready.{% endblocktrans %} +{% endblock %} diff --git a/bookwyrm/templates/notifications/items/user_import.html b/bookwyrm/templates/notifications/items/user_import.html new file mode 100644 index 000000000..e0b3ddaad --- /dev/null +++ b/bookwyrm/templates/notifications/items/user_import.html @@ -0,0 +1,10 @@ +{% extends 'notifications/items/layout.html' %} +{% load i18n %} + +{% block icon %} + +{% endblock %} + +{% block description %} + {% blocktrans %}Your user import is complete.{% endblocktrans %} +{% endblock %} From 836127f369d5e352c118d486944651f139066af3 Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Sun, 22 Oct 2023 10:49:13 +1100 Subject: [PATCH 005/184] cooldown period for user exports add USER_EXPORT_COOLDOWN_HOURS setting for controlling user exports and imports --- bookwyrm/settings.py | 3 +++ bookwyrm/templates/import/import_user.html | 27 +++++-------------- .../templates/preferences/export-user.html | 9 +++++++ bookwyrm/views/imports/import_data.py | 7 ++++- bookwyrm/views/preferences/export.py | 9 ++++++- 5 files changed, 32 insertions(+), 23 deletions(-) diff --git a/bookwyrm/settings.py b/bookwyrm/settings.py index 9a4c9b5a4..854f05973 100644 --- a/bookwyrm/settings.py +++ b/bookwyrm/settings.py @@ -423,3 +423,6 @@ if HTTP_X_FORWARDED_PROTO: # Do not change this setting unless you already have an existing # user with the same username - in which case you should change it! INSTANCE_ACTOR_USERNAME = "bookwyrm.instance.actor" + +# exports +USER_EXPORT_COOLDOWN_HOURS = 48 \ No newline at end of file diff --git a/bookwyrm/templates/import/import_user.html b/bookwyrm/templates/import/import_user.html index e48f0198d..1eee017fa 100644 --- a/bookwyrm/templates/import/import_user.html +++ b/bookwyrm/templates/import/import_user.html @@ -15,28 +15,12 @@ {% endif %} - {% if import_size_limit and import_limit_reset %} -
-

{% blocktrans %}Currently you are allowed to import one user every {{ user_import_limit_reset }} days.{% endblocktrans %}

-

{% blocktrans %}You have {{ allowed_imports }} left.{% endblocktrans %}

+ {% if next_available %} +
+

{% blocktrans %}Currently you are allowed to import one user every {{ user_import_hours }} hours.{% endblocktrans %}

+

{% blocktrans %}You will next be able to import a user file at {{ next_available }}{% endblocktrans %}

- {% endif %} - {% if recent_avg_hours or recent_avg_minutes %} -
-

- {% if recent_avg_hours %} - {% blocktrans trimmed with hours=recent_avg_hours|floatformat:0|intcomma %} - On average, recent imports have taken {{ hours }} hours. - {% endblocktrans %} - {% else %} - {% blocktrans trimmed with minutes=recent_avg_minutes|floatformat:0|intcomma %} - On average, recent imports have taken {{ minutes }} minutes. - {% endblocktrans %} - {% endif %} -

-
- {% endif %} - + {% else %}
{% csrf_token %} @@ -100,6 +84,7 @@

{% trans "You've reached the import limit." %}

{% endif%}
+ {% endif %}
diff --git a/bookwyrm/templates/preferences/export-user.html b/bookwyrm/templates/preferences/export-user.html index 2dd3f6de3..2f63c9e1c 100644 --- a/bookwyrm/templates/preferences/export-user.html +++ b/bookwyrm/templates/preferences/export-user.html @@ -9,6 +9,13 @@ {% block panel %}
+ {% if next_available %} +

+ {% blocktrans %} + You will be able to create a new export file at {{ next_available }} + {% endblocktrans %} +

+ {% else %}

{% trans "Your exported archive file will include all user data for import into another Bookwyrm server" %}

@@ -19,6 +26,8 @@ {% trans "Create user export file" %} + {% endif %} +

{% trans "Recent Exports" %}

diff --git a/bookwyrm/views/imports/import_data.py b/bookwyrm/views/imports/import_data.py index 69a87c0c2..aa561d367 100644 --- a/bookwyrm/views/imports/import_data.py +++ b/bookwyrm/views/imports/import_data.py @@ -23,7 +23,7 @@ from bookwyrm.importers import ( OpenLibraryImporter, ) from bookwyrm.models.bookwyrm_import_job import BookwyrmImportJob -from bookwyrm.settings import PAGE_LENGTH +from bookwyrm.settings import PAGE_LENGTH, USER_EXPORT_COOLDOWN_HOURS from bookwyrm.utils.cache import get_or_set # pylint: disable= no-self-use @@ -142,11 +142,16 @@ class UserImport(View): jobs = BookwyrmImportJob.objects.filter(user=request.user).order_by( "-created_date" ) + hours = USER_EXPORT_COOLDOWN_HOURS + allowed = jobs.first().created_date < timezone.now() - datetime.timedelta(hours=hours) + next_available = jobs.first().created_date + datetime.timedelta(hours=hours) if not allowed else False paginated = Paginator(jobs, PAGE_LENGTH) page = paginated.get_page(request.GET.get("page")) data = { "import_form": forms.ImportUserForm(), "jobs": page, + "user_import_hours": hours, + "next_available": next_available, "page_range": paginated.get_elided_page_range( page.number, on_each_side=2, on_ends=1 ), diff --git a/bookwyrm/views/preferences/export.py b/bookwyrm/views/preferences/export.py index 28e83051e..49b19aea8 100644 --- a/bookwyrm/views/preferences/export.py +++ b/bookwyrm/views/preferences/export.py @@ -1,4 +1,5 @@ """ Let users export their book data """ +from datetime import timedelta import csv import io @@ -7,11 +8,12 @@ from django.core.paginator import Paginator from django.db.models import Q from django.http import HttpResponse from django.template.response import TemplateResponse +from django.utils import timezone from django.views import View from django.utils.decorators import method_decorator from django.shortcuts import redirect -from bookwyrm import models +from bookwyrm import models, settings from bookwyrm.models.bookwyrm_export_job import BookwyrmExportJob from bookwyrm.settings import PAGE_LENGTH @@ -101,10 +103,15 @@ class ExportUser(View): jobs = BookwyrmExportJob.objects.filter(user=request.user).order_by( "-created_date" ) + hours = settings.USER_EXPORT_COOLDOWN_HOURS + allowed = jobs.first().created_date < timezone.now() - timedelta(hours=hours) + next_available = jobs.first().created_date + timedelta(hours=hours) if not allowed else False + paginated = Paginator(jobs, PAGE_LENGTH) page = paginated.get_page(request.GET.get("page")) data = { "jobs": page, + "next_available": next_available, "page_range": paginated.get_elided_page_range( page.number, on_each_side=2, on_ends=1 ), From a27c6525019839120c81f662aac98c786e6e1405 Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Sun, 22 Oct 2023 15:07:49 +1100 Subject: [PATCH 006/184] admin view for user imports - makes user_import_time_limit a site setting rather than a value in settings.py (note this applies to exports as well as imports) - admins can change user_import_time_limit from UI - admins can cancel stuck user imports - disabling new imports also disables user imports --- ...184_sitesettings_user_import_time_limit.py | 18 ++ bookwyrm/models/site.py | 1 + bookwyrm/settings.py | 5 +- bookwyrm/templates/import/import_user.html | 146 ++++----- .../imports/complete_user_import_modal.html | 23 ++ .../templates/settings/imports/imports.html | 286 +++++++++++++----- bookwyrm/urls.py | 10 + bookwyrm/views/__init__.py | 2 + bookwyrm/views/admin/imports.py | 30 ++ bookwyrm/views/imports/import_data.py | 7 +- bookwyrm/views/preferences/export.py | 6 +- 11 files changed, 374 insertions(+), 160 deletions(-) create mode 100644 bookwyrm/migrations/0184_sitesettings_user_import_time_limit.py create mode 100644 bookwyrm/templates/settings/imports/complete_user_import_modal.html diff --git a/bookwyrm/migrations/0184_sitesettings_user_import_time_limit.py b/bookwyrm/migrations/0184_sitesettings_user_import_time_limit.py new file mode 100644 index 000000000..a23161db1 --- /dev/null +++ b/bookwyrm/migrations/0184_sitesettings_user_import_time_limit.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.20 on 2023-10-22 02:27 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('bookwyrm', '0183_auto_20231021_2050'), + ] + + operations = [ + migrations.AddField( + model_name='sitesettings', + name='user_import_time_limit', + field=models.IntegerField(default=48), + ), + ] diff --git a/bookwyrm/models/site.py b/bookwyrm/models/site.py index a27c4b70d..cce055999 100644 --- a/bookwyrm/models/site.py +++ b/bookwyrm/models/site.py @@ -96,6 +96,7 @@ class SiteSettings(SiteModel): imports_enabled = models.BooleanField(default=True) import_size_limit = models.IntegerField(default=0) import_limit_reset = models.IntegerField(default=0) + user_import_time_limit = models.IntegerField(default=48) field_tracker = FieldTracker(fields=["name", "instance_tagline", "logo"]) diff --git a/bookwyrm/settings.py b/bookwyrm/settings.py index 854f05973..f74ef0093 100644 --- a/bookwyrm/settings.py +++ b/bookwyrm/settings.py @@ -422,7 +422,4 @@ if HTTP_X_FORWARDED_PROTO: # Mastodon servers. # Do not change this setting unless you already have an existing # user with the same username - in which case you should change it! -INSTANCE_ACTOR_USERNAME = "bookwyrm.instance.actor" - -# exports -USER_EXPORT_COOLDOWN_HOURS = 48 \ No newline at end of file +INSTANCE_ACTOR_USERNAME = "bookwyrm.instance.actor" \ No newline at end of file diff --git a/bookwyrm/templates/import/import_user.html b/bookwyrm/templates/import/import_user.html index 1eee017fa..8e7bb1a09 100644 --- a/bookwyrm/templates/import/import_user.html +++ b/bookwyrm/templates/import/import_user.html @@ -10,81 +10,89 @@ {% if invalid %}
- {% trans "Not a valid JSON file" %} + {% trans "Not a valid import file" %}
{% endif %} + {% if not site.imports_enabled %} +
+

+ +

+

+ {% trans "Imports are temporarily disabled; thank you for your patience." %} +

+
+ {% elif next_available %} +
+

{% blocktrans %}Currently you are allowed to import one user every {{ user_import_hours }} hours.{% endblocktrans %}

+

{% blocktrans %}You will next be able to import a user file at {{ next_available }}{% endblocktrans %}

+
+ {% else %} +
+ {% csrf_token %} - {% if next_available %} -
-

{% blocktrans %}Currently you are allowed to import one user every {{ user_import_hours }} hours.{% endblocktrans %}

-

{% blocktrans %}You will next be able to import a user file at {{ next_available }}{% endblocktrans %}

+
+
+
+ + {{ import_form.archive_file }}
+
+

{% trans "Importing this file will overwrite any data you currently have saved." %}

+

{% trans "Deselect any data you do not wish to include in your import. Books will always be imported" %}

+
+
+ +
+
+ + + + + + + + + + + + +
+
+
+ {% if not import_limit_reset and not import_size_limit or allowed_imports > 0 %} + {% else %} - - {% csrf_token %} - -
-
-
- - {{ import_form.archive_file }} -
-
-

{% trans "Importing this file will overwrite any data you currently have saved." %}

-

{% trans "Deselect any data you do not wish to include in your import. Books will always be imported" %}

-
-
- -
-
- - - - - - - - - - - - -
-
-
- {% if not import_limit_reset and not import_size_limit or allowed_imports > 0 %} - - {% else %} - -

{% trans "You've reached the import limit." %}

- {% endif%} - - {% endif %} + +

{% trans "You've reached the import limit." %}

+ {% endif%} + + {% endif %}
diff --git a/bookwyrm/templates/settings/imports/complete_user_import_modal.html b/bookwyrm/templates/settings/imports/complete_user_import_modal.html new file mode 100644 index 000000000..74004b7a2 --- /dev/null +++ b/bookwyrm/templates/settings/imports/complete_user_import_modal.html @@ -0,0 +1,23 @@ +{% extends 'components/modal.html' %} +{% load i18n %} + +{% block modal-title %}{% trans "Stop import?" %}{% endblock %} + +{% block modal-body %} +{% trans "This action will stop the user import before it is complete and cannot be un-done" %} +{% endblock %} + +{% block modal-footer %} +
+ {% csrf_token %} + +
+ + +
+
+{% endblock %} diff --git a/bookwyrm/templates/settings/imports/imports.html b/bookwyrm/templates/settings/imports/imports.html index 8819220fb..09d12b04a 100644 --- a/bookwyrm/templates/settings/imports/imports.html +++ b/bookwyrm/templates/settings/imports/imports.html @@ -29,6 +29,7 @@
{% trans "This is only intended to be used when things have gone very wrong with imports and you need to pause the feature while addressing issues." %} {% trans "While imports are disabled, users will not be allowed to start new imports, but existing imports will not be affected." %} + {% trans "This setting prevents both book imports and user imports." %}
{% csrf_token %}
@@ -89,91 +90,214 @@
+
+ + + {% trans "Limit how often users can import and export" %} + + + +
+
+ {% trans "Some users might try to run user imports or exports very frequently, which you want to limit." %} + {% trans "Set the value to 0 to not enforce any limit." %} +
+
+ + + + {% csrf_token %} +
+ +
+
+
+
-
- +

{% trans "Book Imports" %}

+
+
+ +
+ +
+ + + {% url 'settings-imports' status as url %} + + + + {% if status != "active" %} + + {% endif %} + + + + + {% if status == "active" %} + + {% endif %} + + {% for import in imports %} + + + + + {% if status != "active" %} + + {% endif %} + + + + + {% if status == "active" %} + + {% endif %} + + {% endfor %} + {% if not imports %} + + + + {% endif %} +
+ {% trans "ID" %} + + {% trans "User" as text %} + {% include 'snippets/table-sort-header.html' with field="user" sort=sort text=text %} + + {% trans "Date Created" as text %} + {% include 'snippets/table-sort-header.html' with field="created_date" sort=sort text=text %} + + {% trans "Date Updated" %} + + {% trans "Items" %} + + {% trans "Pending items" %} + + {% trans "Successful items" %} + + {% trans "Failed items" %} + {% trans "Actions" %}
{{ import.id }} + {{ import.user|username }} + {{ import.created_date }}{{ import.updated_date }}{{ import.item_count|intcomma }}{{ import.pending_item_count|intcomma }}{{ import.successful_item_count|intcomma }}{{ import.failed_item_count|intcomma }} + {% join "complete" import.id as modal_id %} + + {% include "settings/imports/complete_import_modal.html" with id=modal_id %} +
+ {% trans "No matching imports found." %} +
+
+ + {% include 'snippets/pagination.html' with page=imports path=request.path %} +
-
- - - {% url 'settings-imports' status as url %} - - - - {% if status != "active" %} - +
+

{% trans "User Imports" %}

+
+
+ +
+
+ +
+
- {% trans "ID" %} - - {% trans "User" as text %} - {% include 'snippets/table-sort-header.html' with field="user" sort=sort text=text %} - - {% trans "Date Created" as text %} - {% include 'snippets/table-sort-header.html' with field="created_date" sort=sort text=text %} - - {% trans "Date Updated" %} -
+ + {% url 'settings-imports' status as url %} + + + + {% if status != "active" %} + + {% endif %} + + {% if status == "active" %} + + {% else %} + + {% endif %} + + {% for import in user_imports %} + + + + + {% if status != "active" %} + + {% endif %} + {% if status == "active" %} + + {% else %} + + + {% endif %} + + {% endfor %} + {% if not user_imports %} + + + {% endif %} - - - - - {% if status == "active" %} - - {% endif %} - - {% for import in imports %} - - - - - {% if status != "active" %} - - {% endif %} - - - - - {% if status == "active" %} - - {% endif %} - - {% endfor %} - {% if not imports %} - - - - {% endif %} -
+ {% trans "ID" %} + + {% trans "User" as text %} + {% include 'snippets/table-sort-header.html' with field="user" sort=sort text=text %} + + {% trans "Date Created" as text %} + {% include 'snippets/table-sort-header.html' with field="created_date" sort=sort text=text %} + + {% trans "Date Updated" %} + {% trans "Actions" %}{% trans "Status" %}
{{ import.id }} + {{ import.user|username }} + {{ import.created_date }}{{ import.updated_date }} + {% join "complete" import.id as modal_id %} + + {% include "settings/imports/complete_user_import_modal.html" with id=modal_id %} + + {{ import.status }}
+ {% trans "No matching imports found." %} +
- {% trans "Items" %} - - {% trans "Pending items" %} - - {% trans "Successful items" %} - - {% trans "Failed items" %} - {% trans "Actions" %}
{{ import.id }} - {{ import.user|username }} - {{ import.created_date }}{{ import.updated_date }}{{ import.item_count|intcomma }}{{ import.pending_item_count|intcomma }}{{ import.successful_item_count|intcomma }}{{ import.failed_item_count|intcomma }} - {% join "complete" import.id as modal_id %} - - {% include "settings/imports/complete_import_modal.html" with id=modal_id %} -
- {% trans "No matching imports found." %} -
+ +
+ + {% include 'snippets/pagination.html' with page=user_imports path=request.path %} + {% endblock %}
- -{% include 'snippets/pagination.html' with page=imports path=request.path %} -{% endblock %} - diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py index 5b83acb85..2871ef282 100644 --- a/bookwyrm/urls.py +++ b/bookwyrm/urls.py @@ -316,6 +316,11 @@ urlpatterns = [ views.ImportList.as_view(), name="settings-imports-complete", ), + re_path( + r"^settings/user-imports/(?P\d+)/complete/?$", + views.set_user_import_completed, + name="settings-user-import-complete", + ), re_path( r"^settings/imports/disable/?$", views.disable_imports, @@ -331,6 +336,11 @@ urlpatterns = [ views.set_import_size_limit, name="settings-imports-set-limit", ), + re_path( + r"^settings/user-imports/set-limit/?$", + views.set_user_import_limit, + name="settings-user-imports-set-limit", + ), re_path( r"^settings/celery/?$", views.CeleryStatus.as_view(), name="settings-celery" ), diff --git a/bookwyrm/views/__init__.py b/bookwyrm/views/__init__.py index c044200e3..d98dffdcc 100644 --- a/bookwyrm/views/__init__.py +++ b/bookwyrm/views/__init__.py @@ -16,6 +16,8 @@ from .admin.imports import ( disable_imports, enable_imports, set_import_size_limit, + set_user_import_completed, + set_user_import_limit ) from .admin.ip_blocklist import IPBlocklist from .admin.invite import ManageInvites, Invite, InviteRequest diff --git a/bookwyrm/views/admin/imports.py b/bookwyrm/views/admin/imports.py index 7ae190ce8..4da7acf0e 100644 --- a/bookwyrm/views/admin/imports.py +++ b/bookwyrm/views/admin/imports.py @@ -40,9 +40,17 @@ class ImportList(View): paginated = Paginator(imports, PAGE_LENGTH) page = paginated.get_page(request.GET.get("page")) + user_imports = models.BookwyrmImportJob.objects.filter(complete=complete).order_by( + "created_date" + ) + + user_paginated = Paginator(user_imports, PAGE_LENGTH) + user_page = user_paginated.get_page(request.GET.get("page")) + site_settings = models.SiteSettings.objects.get() data = { "imports": page, + "user_imports": user_page, "page_range": paginated.get_elided_page_range( page.number, on_each_side=2, on_ends=1 ), @@ -50,6 +58,7 @@ class ImportList(View): "sort": sort, "import_size_limit": site_settings.import_size_limit, "import_limit_reset": site_settings.import_limit_reset, + "user_import_time_limit": site_settings.user_import_time_limit, } return TemplateResponse(request, "settings/imports/imports.html", data) @@ -95,3 +104,24 @@ def set_import_size_limit(request): site.import_limit_reset = import_limit_reset site.save(update_fields=["import_size_limit", "import_limit_reset"]) return redirect("settings-imports") + +@require_POST +@login_required +@permission_required("bookwyrm.moderate_user", raise_exception=True) +# pylint: disable=unused-argument +def set_user_import_completed(request, import_id): + """Mark a user import as complete""" + import_job = get_object_or_404(models.BookwyrmImportJob, id=import_id) + import_job.stop_job() + return redirect("settings-imports") + + +@require_POST +@permission_required("bookwyrm.edit_instance_settings", raise_exception=True) +# pylint: disable=unused-argument +def set_user_import_limit(request): + """Limit how ofter users can import and export their account""" + site = models.SiteSettings.objects.get() + site.user_import_time_limit = int(request.POST.get("limit")) + site.save(update_fields=["user_import_time_limit"]) + return redirect("settings-imports") \ No newline at end of file diff --git a/bookwyrm/views/imports/import_data.py b/bookwyrm/views/imports/import_data.py index aa561d367..4fd50d9ce 100644 --- a/bookwyrm/views/imports/import_data.py +++ b/bookwyrm/views/imports/import_data.py @@ -23,7 +23,7 @@ from bookwyrm.importers import ( OpenLibraryImporter, ) from bookwyrm.models.bookwyrm_import_job import BookwyrmImportJob -from bookwyrm.settings import PAGE_LENGTH, USER_EXPORT_COOLDOWN_HOURS +from bookwyrm.settings import PAGE_LENGTH from bookwyrm.utils.cache import get_or_set # pylint: disable= no-self-use @@ -142,8 +142,9 @@ class UserImport(View): jobs = BookwyrmImportJob.objects.filter(user=request.user).order_by( "-created_date" ) - hours = USER_EXPORT_COOLDOWN_HOURS - allowed = jobs.first().created_date < timezone.now() - datetime.timedelta(hours=hours) + site = models.SiteSettings.objects.get() + hours = site.user_import_time_limit + allowed = jobs.first().created_date < timezone.now() - datetime.timedelta(hours=hours) if jobs.first() else True next_available = jobs.first().created_date + datetime.timedelta(hours=hours) if not allowed else False paginated = Paginator(jobs, PAGE_LENGTH) page = paginated.get_page(request.GET.get("page")) diff --git a/bookwyrm/views/preferences/export.py b/bookwyrm/views/preferences/export.py index 49b19aea8..5e70f896e 100644 --- a/bookwyrm/views/preferences/export.py +++ b/bookwyrm/views/preferences/export.py @@ -103,10 +103,10 @@ class ExportUser(View): jobs = BookwyrmExportJob.objects.filter(user=request.user).order_by( "-created_date" ) - hours = settings.USER_EXPORT_COOLDOWN_HOURS - allowed = jobs.first().created_date < timezone.now() - timedelta(hours=hours) + site = models.SiteSettings.objects.get() + hours = site.user_import_time_limit + allowed = jobs.first().created_date < timezone.now() - timedelta(hours=hours) if jobs.first() else True next_available = jobs.first().created_date + timedelta(hours=hours) if not allowed else False - paginated = Paginator(jobs, PAGE_LENGTH) page = paginated.get_page(request.GET.get("page")) data = { From b34a49117263d9136e94669d9edef5bd04ae8df2 Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Sun, 22 Oct 2023 15:34:25 +1100 Subject: [PATCH 007/184] run black --- .../migrations/0183_auto_20231021_2050.py | 77 +++++++++++++++---- ...184_sitesettings_user_import_time_limit.py | 6 +- bookwyrm/models/bookwyrm_export_job.py | 4 +- bookwyrm/models/bookwyrm_import_job.py | 2 +- bookwyrm/models/notification.py | 19 ++++- bookwyrm/settings.py | 2 +- bookwyrm/views/__init__.py | 2 +- bookwyrm/views/admin/imports.py | 9 ++- bookwyrm/views/imports/import_data.py | 12 ++- bookwyrm/views/preferences/export.py | 10 ++- 10 files changed, 111 insertions(+), 32 deletions(-) diff --git a/bookwyrm/migrations/0183_auto_20231021_2050.py b/bookwyrm/migrations/0183_auto_20231021_2050.py index 201a9201a..c960fe5bd 100644 --- a/bookwyrm/migrations/0183_auto_20231021_2050.py +++ b/bookwyrm/migrations/0183_auto_20231021_2050.py @@ -7,28 +7,79 @@ import django.db.models.deletion class Migration(migrations.Migration): dependencies = [ - ('bookwyrm', '0182_merge_20230905_2240'), + ("bookwyrm", "0182_merge_20230905_2240"), ] operations = [ migrations.AddField( - model_name='notification', - name='related_user_export', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='bookwyrm.bookwyrmexportjob'), + model_name="notification", + name="related_user_export", + field=models.ForeignKey( + null=True, + on_delete=django.db.models.deletion.CASCADE, + to="bookwyrm.bookwyrmexportjob", + ), ), migrations.AlterField( - model_name='childjob', - name='status', - field=models.CharField(choices=[('pending', 'Pending'), ('active', 'Active'), ('complete', 'Complete'), ('stopped', 'Stopped'), ('failed', 'Failed')], default='pending', max_length=50, null=True), + model_name="childjob", + name="status", + field=models.CharField( + choices=[ + ("pending", "Pending"), + ("active", "Active"), + ("complete", "Complete"), + ("stopped", "Stopped"), + ("failed", "Failed"), + ], + default="pending", + max_length=50, + null=True, + ), ), migrations.AlterField( - model_name='notification', - name='notification_type', - field=models.CharField(choices=[('FAVORITE', 'Favorite'), ('REPLY', 'Reply'), ('MENTION', 'Mention'), ('TAG', 'Tag'), ('FOLLOW', 'Follow'), ('FOLLOW_REQUEST', 'Follow Request'), ('BOOST', 'Boost'), ('IMPORT', 'Import'), ('USER_IMPORT', 'User Import'), ('USER_EXPORT', 'User Export'), ('ADD', 'Add'), ('REPORT', 'Report'), ('LINK_DOMAIN', 'Link Domain'), ('INVITE', 'Invite'), ('ACCEPT', 'Accept'), ('JOIN', 'Join'), ('LEAVE', 'Leave'), ('REMOVE', 'Remove'), ('GROUP_PRIVACY', 'Group Privacy'), ('GROUP_NAME', 'Group Name'), ('GROUP_DESCRIPTION', 'Group Description')], max_length=255), + model_name="notification", + name="notification_type", + field=models.CharField( + choices=[ + ("FAVORITE", "Favorite"), + ("REPLY", "Reply"), + ("MENTION", "Mention"), + ("TAG", "Tag"), + ("FOLLOW", "Follow"), + ("FOLLOW_REQUEST", "Follow Request"), + ("BOOST", "Boost"), + ("IMPORT", "Import"), + ("USER_IMPORT", "User Import"), + ("USER_EXPORT", "User Export"), + ("ADD", "Add"), + ("REPORT", "Report"), + ("LINK_DOMAIN", "Link Domain"), + ("INVITE", "Invite"), + ("ACCEPT", "Accept"), + ("JOIN", "Join"), + ("LEAVE", "Leave"), + ("REMOVE", "Remove"), + ("GROUP_PRIVACY", "Group Privacy"), + ("GROUP_NAME", "Group Name"), + ("GROUP_DESCRIPTION", "Group Description"), + ], + max_length=255, + ), ), migrations.AlterField( - model_name='parentjob', - name='status', - field=models.CharField(choices=[('pending', 'Pending'), ('active', 'Active'), ('complete', 'Complete'), ('stopped', 'Stopped'), ('failed', 'Failed')], default='pending', max_length=50, null=True), + model_name="parentjob", + name="status", + field=models.CharField( + choices=[ + ("pending", "Pending"), + ("active", "Active"), + ("complete", "Complete"), + ("stopped", "Stopped"), + ("failed", "Failed"), + ], + default="pending", + max_length=50, + null=True, + ), ), ] diff --git a/bookwyrm/migrations/0184_sitesettings_user_import_time_limit.py b/bookwyrm/migrations/0184_sitesettings_user_import_time_limit.py index a23161db1..24b4dad37 100644 --- a/bookwyrm/migrations/0184_sitesettings_user_import_time_limit.py +++ b/bookwyrm/migrations/0184_sitesettings_user_import_time_limit.py @@ -6,13 +6,13 @@ from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('bookwyrm', '0183_auto_20231021_2050'), + ("bookwyrm", "0183_auto_20231021_2050"), ] operations = [ migrations.AddField( - model_name='sitesettings', - name='user_import_time_limit', + model_name="sitesettings", + name="user_import_time_limit", field=models.IntegerField(default=48), ), ] diff --git a/bookwyrm/models/bookwyrm_export_job.py b/bookwyrm/models/bookwyrm_export_job.py index 96e602cc9..65f209905 100644 --- a/bookwyrm/models/bookwyrm_export_job.py +++ b/bookwyrm/models/bookwyrm_export_job.py @@ -43,7 +43,9 @@ def start_export_task(**kwargs): except Exception as err: # pylint: disable=broad-except logger.exception("User Export Job %s Failed with error: %s", job.id, err) job.set_status("failed") - job.set_status("complete") # need to explicitly set this here to trigger notifications + job.set_status( + "complete" + ) # need to explicitly set this here to trigger notifications job.save(update_fields=["export_data"]) diff --git a/bookwyrm/models/bookwyrm_import_job.py b/bookwyrm/models/bookwyrm_import_job.py index 73372829b..6e71aa4b5 100644 --- a/bookwyrm/models/bookwyrm_import_job.py +++ b/bookwyrm/models/bookwyrm_import_job.py @@ -65,7 +65,7 @@ def start_import_task(**kwargs): process_books(job, tar) - job.set_status("complete") # set here to trigger notifications + job.set_status("complete") # set here to trigger notifications job.save() archive_file.close() diff --git a/bookwyrm/models/notification.py b/bookwyrm/models/notification.py index 4c420a2e1..c8140bce9 100644 --- a/bookwyrm/models/notification.py +++ b/bookwyrm/models/notification.py @@ -2,7 +2,14 @@ from django.db import models, transaction from django.dispatch import receiver from .base_model import BookWyrmModel -from . import Boost, Favorite, GroupMemberInvitation, ImportJob, BookwyrmImportJob, LinkDomain +from . import ( + Boost, + Favorite, + GroupMemberInvitation, + ImportJob, + BookwyrmImportJob, + LinkDomain, +) from bookwyrm.models.bookwyrm_export_job import BookwyrmExportJob from . import ListItem, Report, Status, User, UserFollowRequest @@ -64,7 +71,9 @@ class Notification(BookWyrmModel): ) related_status = models.ForeignKey("Status", on_delete=models.CASCADE, null=True) related_import = models.ForeignKey("ImportJob", on_delete=models.CASCADE, null=True) - related_user_export = models.ForeignKey("BookwyrmExportJob", on_delete=models.CASCADE, null=True) + related_user_export = models.ForeignKey( + "BookwyrmExportJob", on_delete=models.CASCADE, null=True + ) related_list_items = models.ManyToManyField( "ListItem", symmetrical=False, related_name="notifications" ) @@ -226,6 +235,7 @@ def notify_user_on_import_complete( related_import=instance, ) + @receiver(models.signals.post_save, sender=BookwyrmImportJob) # pylint: disable=unused-argument def notify_user_on_user_import_complete( @@ -236,10 +246,10 @@ def notify_user_on_user_import_complete( if not instance.complete or "complete" not in update_fields: return Notification.objects.create( - user=instance.user, - notification_type=Notification.USER_IMPORT + user=instance.user, notification_type=Notification.USER_IMPORT ) + @receiver(models.signals.post_save, sender=BookwyrmExportJob) # pylint: disable=unused-argument def notify_user_on_user_export_complete( @@ -257,6 +267,7 @@ def notify_user_on_user_export_complete( related_user_export=instance, ) + @receiver(models.signals.post_save, sender=Report) @transaction.atomic # pylint: disable=unused-argument diff --git a/bookwyrm/settings.py b/bookwyrm/settings.py index f74ef0093..9a4c9b5a4 100644 --- a/bookwyrm/settings.py +++ b/bookwyrm/settings.py @@ -422,4 +422,4 @@ if HTTP_X_FORWARDED_PROTO: # Mastodon servers. # Do not change this setting unless you already have an existing # user with the same username - in which case you should change it! -INSTANCE_ACTOR_USERNAME = "bookwyrm.instance.actor" \ No newline at end of file +INSTANCE_ACTOR_USERNAME = "bookwyrm.instance.actor" diff --git a/bookwyrm/views/__init__.py b/bookwyrm/views/__init__.py index d98dffdcc..2746ab9f9 100644 --- a/bookwyrm/views/__init__.py +++ b/bookwyrm/views/__init__.py @@ -17,7 +17,7 @@ from .admin.imports import ( enable_imports, set_import_size_limit, set_user_import_completed, - set_user_import_limit + set_user_import_limit, ) from .admin.ip_blocklist import IPBlocklist from .admin.invite import ManageInvites, Invite, InviteRequest diff --git a/bookwyrm/views/admin/imports.py b/bookwyrm/views/admin/imports.py index 4da7acf0e..a85d6c79e 100644 --- a/bookwyrm/views/admin/imports.py +++ b/bookwyrm/views/admin/imports.py @@ -40,9 +40,9 @@ class ImportList(View): paginated = Paginator(imports, PAGE_LENGTH) page = paginated.get_page(request.GET.get("page")) - user_imports = models.BookwyrmImportJob.objects.filter(complete=complete).order_by( - "created_date" - ) + user_imports = models.BookwyrmImportJob.objects.filter( + complete=complete + ).order_by("created_date") user_paginated = Paginator(user_imports, PAGE_LENGTH) user_page = user_paginated.get_page(request.GET.get("page")) @@ -105,6 +105,7 @@ def set_import_size_limit(request): site.save(update_fields=["import_size_limit", "import_limit_reset"]) return redirect("settings-imports") + @require_POST @login_required @permission_required("bookwyrm.moderate_user", raise_exception=True) @@ -124,4 +125,4 @@ def set_user_import_limit(request): site = models.SiteSettings.objects.get() site.user_import_time_limit = int(request.POST.get("limit")) site.save(update_fields=["user_import_time_limit"]) - return redirect("settings-imports") \ No newline at end of file + return redirect("settings-imports") diff --git a/bookwyrm/views/imports/import_data.py b/bookwyrm/views/imports/import_data.py index 4fd50d9ce..1a9085ce1 100644 --- a/bookwyrm/views/imports/import_data.py +++ b/bookwyrm/views/imports/import_data.py @@ -144,8 +144,16 @@ class UserImport(View): ) site = models.SiteSettings.objects.get() hours = site.user_import_time_limit - allowed = jobs.first().created_date < timezone.now() - datetime.timedelta(hours=hours) if jobs.first() else True - next_available = jobs.first().created_date + datetime.timedelta(hours=hours) if not allowed else False + allowed = ( + jobs.first().created_date < timezone.now() - datetime.timedelta(hours=hours) + if jobs.first() + else True + ) + next_available = ( + jobs.first().created_date + datetime.timedelta(hours=hours) + if not allowed + else False + ) paginated = Paginator(jobs, PAGE_LENGTH) page = paginated.get_page(request.GET.get("page")) data = { diff --git a/bookwyrm/views/preferences/export.py b/bookwyrm/views/preferences/export.py index 5e70f896e..037b8dbdc 100644 --- a/bookwyrm/views/preferences/export.py +++ b/bookwyrm/views/preferences/export.py @@ -105,8 +105,14 @@ class ExportUser(View): ) site = models.SiteSettings.objects.get() hours = site.user_import_time_limit - allowed = jobs.first().created_date < timezone.now() - timedelta(hours=hours) if jobs.first() else True - next_available = jobs.first().created_date + timedelta(hours=hours) if not allowed else False + allowed = ( + jobs.first().created_date < timezone.now() - timedelta(hours=hours) + if jobs.first() + else True + ) + next_available = ( + jobs.first().created_date + timedelta(hours=hours) if not allowed else False + ) paginated = Paginator(jobs, PAGE_LENGTH) page = paginated.get_page(request.GET.get("page")) data = { From fd1ebf5f71faf84cc35d1ad5199ddeaea9b9b7b7 Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Sun, 22 Oct 2023 16:52:29 +1100 Subject: [PATCH 008/184] formatting and pylint fixes --- bookwyrm/importers/bookwyrm_import.py | 7 +-- bookwyrm/models/bookwyrm_export_job.py | 22 ++++---- bookwyrm/models/bookwyrm_import_job.py | 51 ++++++++++--------- bookwyrm/models/job.py | 20 ++++++-- bookwyrm/models/notification.py | 2 +- .../templates/settings/imports/imports.html | 6 +-- .../tests/models/test_bookwyrm_export_job.py | 5 +- .../tests/models/test_bookwyrm_import_job.py | 20 +++++--- .../views/preferences/test_export_user.py | 3 +- bookwyrm/utils/tar.py | 13 +++-- bookwyrm/views/preferences/export.py | 5 +- 11 files changed, 91 insertions(+), 63 deletions(-) diff --git a/bookwyrm/importers/bookwyrm_import.py b/bookwyrm/importers/bookwyrm_import.py index a2eb71725..c8f4433ca 100644 --- a/bookwyrm/importers/bookwyrm_import.py +++ b/bookwyrm/importers/bookwyrm_import.py @@ -1,14 +1,15 @@ """Import data from Bookwyrm export files""" -from bookwyrm import settings from bookwyrm.models.bookwyrm_import_job import BookwyrmImportJob class BookwyrmImporter: - """Import a Bookwyrm User export JSON file. + """Import a Bookwyrm User export file. This is kind of a combination of an importer and a connector. """ - def process_import(self, user, archive_file, settings): + def process_import( + self, user, archive_file, settings + ): # pylint: disable=no-self-use """import user data from a Bookwyrm export file""" required = [k for k in settings if settings.get(k) == "on"] diff --git a/bookwyrm/models/bookwyrm_export_job.py b/bookwyrm/models/bookwyrm_export_job.py index 65f209905..e3fb2a81f 100644 --- a/bookwyrm/models/bookwyrm_export_job.py +++ b/bookwyrm/models/bookwyrm_export_job.py @@ -1,4 +1,7 @@ +"""Export user account to tar.gz file for import into another Bookwyrm instance""" + import logging +from uuid import uuid4 from django.db.models import FileField from django.db.models import Q @@ -6,10 +9,9 @@ from django.core.serializers.json import DjangoJSONEncoder from django.core.files.base import ContentFile from bookwyrm import models +from bookwyrm.models.job import ParentJob, ParentTask from bookwyrm.settings import DOMAIN from bookwyrm.tasks import app, IMPORTS -from bookwyrm.models.job import ParentJob, ParentTask, SubTask, create_child_job -from uuid import uuid4 from bookwyrm.utils.tar import BookwyrmTarFile logger = logging.getLogger(__name__) @@ -49,21 +51,22 @@ def start_export_task(**kwargs): job.save(update_fields=["export_data"]) -def tar_export(json_data: str, user, f): - f.open("wb") - with BookwyrmTarFile.open(mode="w:gz", fileobj=f) as tar: +def tar_export(json_data: str, user, file): + """wrap the export information in a tar file""" + file.open("wb") + with BookwyrmTarFile.open(mode="w:gz", fileobj=file) as tar: tar.write_bytes(json_data.encode("utf-8")) # Add avatar image if present if getattr(user, "avatar", False): tar.add_image(user.avatar, filename="avatar") - editions, books = get_books_for_user(user) + editions = get_books_for_user(user) for book in editions: if getattr(book, "cover", False): tar.add_image(book.cover) - f.close() + file.close() def json_export(user): @@ -91,18 +94,19 @@ def json_export(user): # reading goals reading_goals = models.AnnualGoal.objects.filter(user=user).distinct() goals_list = [] + # TODO: either error checking should be more sophisticated or maybe we don't need this try/except try: for goal in reading_goals: goals_list.append( {"goal": goal.goal, "year": goal.year, "privacy": goal.privacy} ) - except Exception: + except Exception: # pylint: disable=broad-except pass try: readthroughs = models.ReadThrough.objects.filter(user=user).distinct().values() readthroughs = list(readthroughs) - except Exception as e: + except Exception: # pylint: disable=broad-except readthroughs = [] # books diff --git a/bookwyrm/models/bookwyrm_import_job.py b/bookwyrm/models/bookwyrm_import_job.py index 6e71aa4b5..8fe797ed7 100644 --- a/bookwyrm/models/bookwyrm_import_job.py +++ b/bookwyrm/models/bookwyrm_import_job.py @@ -1,3 +1,5 @@ +"""Import a user from another Bookwyrm instance""" + from functools import reduce import json import logging @@ -11,13 +13,7 @@ from django.contrib.postgres.fields import ArrayField as DjangoArrayField from bookwyrm import activitypub from bookwyrm import models from bookwyrm.tasks import app, IMPORTS -from bookwyrm.models.job import ( - ParentJob, - ParentTask, - ChildJob, - SubTask, - create_child_job, -) +from bookwyrm.models.job import ParentJob, ParentTask, SubTask from bookwyrm.utils.tar import BookwyrmTarFile logger = logging.getLogger(__name__) @@ -161,8 +157,10 @@ def get_or_create_edition(book_data, tar): if cover_path: tar.write_image_to_file(cover_path, new_book.cover) - # NOTE: clean_values removes "last_edited_by" because it's a user ID from the old database - # if this is required, bookwyrm_export_job will need to bring in the user who edited it. + # NOTE: clean_values removes "last_edited_by" + # because it's a user ID from the old database + # if this is required, bookwyrm_export_job will + # need to bring in the user who edited it. # create parent work = models.Work.objects.create(title=book["title"]) @@ -197,7 +195,7 @@ def clean_values(data): return new_data -def find_existing(cls, data, user): +def find_existing(cls, data): """Given a book or author, find any existing model instances""" identifiers = [ @@ -248,27 +246,31 @@ def upsert_readthroughs(data, user, book_id): """Take a JSON string of readthroughs, find or create the instances in the database and return a list of saved instances""" - for rt in data: + for read_thru in data: start_date = ( - parse_datetime(rt["start_date"]) if rt["start_date"] is not None else None + parse_datetime(read_thru["start_date"]) + if read_thru["start_date"] is not None + else None ) finish_date = ( - parse_datetime(rt["finish_date"]) if rt["finish_date"] is not None else None + parse_datetime(read_thru["finish_date"]) + if read_thru["finish_date"] is not None + else None ) stopped_date = ( - parse_datetime(rt["stopped_date"]) - if rt["stopped_date"] is not None + parse_datetime(read_thru["stopped_date"]) + if read_thru["stopped_date"] is not None else None ) readthrough = { "user": user, "book": models.Edition.objects.get(id=book_id), - "progress": rt["progress"], - "progress_mode": rt["progress_mode"], + "progress": read_thru["progress"], + "progress_mode": read_thru["progress_mode"], "start_date": start_date, "finish_date": finish_date, "stopped_date": stopped_date, - "is_active": rt["is_active"], + "is_active": read_thru["is_active"], } existing = models.ReadThrough.objects.filter(**readthrough).exists() @@ -311,7 +313,8 @@ def get_or_create_statuses(user, cls, data, book_id): def upsert_lists(user, lists, items, book_id): - """Take a list and ListItems as JSON and create DB entries if they don't already exist""" + """Take a list and ListItems as JSON and + create DB entries if they don't already exist""" book = models.Edition.objects.get(id=book_id) @@ -408,7 +411,7 @@ def update_user_settings(user, data): @app.task(queue=IMPORTS, base=SubTask) -def update_user_settings_task(job_id, child_id): +def update_user_settings_task(job_id): """wrapper task for user's settings import""" parent_job = BookwyrmImportJob.objects.get(id=job_id) @@ -433,7 +436,7 @@ def update_goals(user, data): @app.task(queue=IMPORTS, base=SubTask) -def update_goals_task(job_id, child_id): +def update_goals_task(job_id): """wrapper task for user's goals import""" parent_job = BookwyrmImportJob.objects.get(id=job_id) @@ -450,7 +453,7 @@ def upsert_saved_lists(user, values): @app.task(queue=IMPORTS, base=SubTask) -def upsert_saved_lists_task(job_id, child_id): +def upsert_saved_lists_task(job_id): """wrapper task for user's saved lists import""" parent_job = BookwyrmImportJob.objects.get(id=job_id) @@ -477,7 +480,7 @@ def upsert_follows(user, values): @app.task(queue=IMPORTS, base=SubTask) -def upsert_follows_task(job_id, child_id): +def upsert_follows_task(job_id): """wrapper task for user's follows import""" parent_job = BookwyrmImportJob.objects.get(id=job_id) @@ -504,7 +507,7 @@ def upsert_user_blocks(user, user_ids): @app.task(queue=IMPORTS, base=SubTask) -def upsert_user_blocks_task(job_id, child_id): +def upsert_user_blocks_task(job_id): """wrapper task for user's blocks import""" parent_job = BookwyrmImportJob.objects.get(id=job_id) diff --git a/bookwyrm/models/job.py b/bookwyrm/models/job.py index 4ba4bc2d7..4f5cb2093 100644 --- a/bookwyrm/models/job.py +++ b/bookwyrm/models/job.py @@ -31,6 +31,8 @@ class Job(models.Model): ) class Meta: + """Make it abstract""" + abstract = True def complete_job(self): @@ -119,7 +121,7 @@ class ParentJob(Job): if not self.complete and self.has_completed: self.complete_job() - def __terminate_job(self): + def __terminate_job(self): # pylint: disable=unused-private-member """Tell workers to ignore and not execute this task & pending child tasks. Extend. """ @@ -183,7 +185,9 @@ class ParentTask(app.Task): Usage e.g. @app.task(base=ParentTask) """ - def before_start(self, task_id, args, kwargs): + def before_start( + self, task_id, args, kwargs + ): # pylint: disable=no-self-use, unused-argument """Handler called before the task starts. Override. Prepare ParentJob before the task starts. @@ -208,7 +212,9 @@ class ParentTask(app.Task): if kwargs["no_children"]: job.set_status(ChildJob.Status.ACTIVE) - def on_success(self, retval, task_id, args, kwargs): + def on_success( + self, retval, task_id, args, kwargs + ): # pylint: disable=no-self-use, unused-argument """Run by the worker if the task executes successfully. Override. Update ParentJob on Task complete. @@ -241,7 +247,9 @@ class SubTask(app.Task): Usage e.g. @app.task(base=SubTask) """ - def before_start(self, task_id, args, kwargs): + def before_start( + self, task_id, args, kwargs + ): # pylint: disable=no-self-use, unused-argument """Handler called before the task starts. Override. Prepare ChildJob before the task starts. @@ -263,7 +271,9 @@ class SubTask(app.Task): child_job.save(update_fields=["task_id"]) child_job.set_status(ChildJob.Status.ACTIVE) - def on_success(self, retval, task_id, args, kwargs): + def on_success( + self, retval, task_id, args, kwargs + ): # pylint: disable=no-self-use, unused-argument """Run by the worker if the task executes successfully. Override. Notify ChildJob of task completion. diff --git a/bookwyrm/models/notification.py b/bookwyrm/models/notification.py index c8140bce9..98d20a3cb 100644 --- a/bookwyrm/models/notification.py +++ b/bookwyrm/models/notification.py @@ -1,6 +1,7 @@ """ alert a user to activity """ from django.db import models, transaction from django.dispatch import receiver +from bookwyrm.models.bookwyrm_export_job import BookwyrmExportJob from .base_model import BookWyrmModel from . import ( Boost, @@ -10,7 +11,6 @@ from . import ( BookwyrmImportJob, LinkDomain, ) -from bookwyrm.models.bookwyrm_export_job import BookwyrmExportJob from . import ListItem, Report, Status, User, UserFollowRequest diff --git a/bookwyrm/templates/settings/imports/imports.html b/bookwyrm/templates/settings/imports/imports.html index 09d12b04a..0f4ae04fc 100644 --- a/bookwyrm/templates/settings/imports/imports.html +++ b/bookwyrm/templates/settings/imports/imports.html @@ -141,7 +141,7 @@
- {% url 'settings-imports' status as url %} + {% url 'settings-imports' status as url %} @@ -231,7 +231,7 @@
{% trans "ID" %}
- {% url 'settings-imports' status as url %} + {% url 'settings-imports' status as url %} @@ -299,5 +299,5 @@ {% include 'snippets/pagination.html' with page=user_imports path=request.path %} - {% endblock %} +{% endblock %} diff --git a/bookwyrm/tests/models/test_bookwyrm_export_job.py b/bookwyrm/tests/models/test_bookwyrm_export_job.py index bd314e60e..73b59a4cc 100644 --- a/bookwyrm/tests/models/test_bookwyrm_export_job.py +++ b/bookwyrm/tests/models/test_bookwyrm_export_job.py @@ -1,3 +1,4 @@ +"""test bookwyrm user export functions""" import datetime import time import json @@ -110,7 +111,7 @@ class BookwyrmExport(TestCase): ) # add to list - item = models.ListItem.objects.create( + models.ListItem.objects.create( book_list=self.list, user=self.local_user, book=self.edition, @@ -226,7 +227,7 @@ class BookwyrmExport(TestCase): json_data["books"][0]["quotes"][0]["quote"], "A rose by any other name" ) - def test_tar_export(self): + def test_tar_export(self): # pylint: disable=unnecessary-pass """test the tar export function""" # TODO diff --git a/bookwyrm/tests/models/test_bookwyrm_import_job.py b/bookwyrm/tests/models/test_bookwyrm_import_job.py index 61713cd17..c07772e16 100644 --- a/bookwyrm/tests/models/test_bookwyrm_import_job.py +++ b/bookwyrm/tests/models/test_bookwyrm_import_job.py @@ -5,14 +5,12 @@ import pathlib from unittest.mock import patch from django.db.models import Q -from django.utils import timezone from django.utils.dateparse import parse_datetime from django.test import TestCase from bookwyrm import models -from bookwyrm.settings import DOMAIN from bookwyrm.utils.tar import BookwyrmTarFile -import bookwyrm.models.bookwyrm_import_job as bookwyrm_import_job +from bookwyrm.models import bookwyrm_import_job class BookwyrmImport(TestCase): @@ -246,7 +244,9 @@ class BookwyrmImport(TestCase): self.assertEqual(author.name, "James C. Scott") def test_get_or_create_edition_existing(self): - """Test take a JSON string of books and editions, find or create the editions in the database and return a list of edition instances""" + """Test take a JSON string of books and editions, + find or create the editions in the database and + return a list of edition instances""" self.assertEqual(models.Edition.objects.count(), 1) self.assertEqual(models.Edition.objects.count(), 1) @@ -258,7 +258,9 @@ class BookwyrmImport(TestCase): self.assertEqual(models.Edition.objects.count(), 1) def test_get_or_create_edition_not_existing(self): - """Test take a JSON string of books and editions, find or create the editions in the database and return a list of edition instances""" + """Test take a JSON string of books and editions, + find or create the editions in the database and + return a list of edition instances""" self.assertEqual(models.Edition.objects.count(), 1) @@ -441,7 +443,8 @@ class BookwyrmImport(TestCase): ) def test_upsert_list_existing(self): - """Take a list and ListItems as JSON and create DB entries if they don't already exist""" + """Take a list and ListItems as JSON and create DB entries + if they don't already exist""" book_data = self.import_data["books"][0] @@ -456,7 +459,7 @@ class BookwyrmImport(TestCase): name="my list of books", user=self.local_user ) - list_item = models.ListItem.objects.create( + models.ListItem.objects.create( book=self.book, book_list=book_list, user=self.local_user, order=1 ) @@ -489,7 +492,8 @@ class BookwyrmImport(TestCase): ) def test_upsert_list_not_existing(self): - """Take a list and ListItems as JSON and create DB entries if they don't already exist""" + """Take a list and ListItems as JSON and create DB entries + if they don't already exist""" book_data = self.import_data["books"][0] diff --git a/bookwyrm/tests/views/preferences/test_export_user.py b/bookwyrm/tests/views/preferences/test_export_user.py index 1483fc4ec..654ed2a05 100644 --- a/bookwyrm/tests/views/preferences/test_export_user.py +++ b/bookwyrm/tests/views/preferences/test_export_user.py @@ -1,5 +1,4 @@ -""" test for app action functionality """ -from collections import namedtuple +""" test for user export app functionality """ from unittest.mock import patch from django.http import HttpResponse diff --git a/bookwyrm/utils/tar.py b/bookwyrm/utils/tar.py index 448df48d9..8f43b2c15 100644 --- a/bookwyrm/utils/tar.py +++ b/bookwyrm/utils/tar.py @@ -1,12 +1,15 @@ +"""manage tar files for user exports""" +import io +import tarfile from uuid import uuid4 from django.core.files import File -import tarfile -import io class BookwyrmTarFile(tarfile.TarFile): - def write_bytes(self, data: bytes, filename="archive.json"): - """Add a file containing :data: bytestring with name :filename: to the archive""" + """Create tar files for user exports""" + + def write_bytes(self, data: bytes): + """Add a file containing bytes to the archive""" buffer = io.BytesIO(data) info = tarfile.TarInfo("archive.json") info.size = len(data) @@ -30,10 +33,12 @@ class BookwyrmTarFile(tarfile.TarFile): self.addfile(info, fileobj=image) def read(self, filename): + """read data from the tar""" with self.extractfile(filename) as reader: return reader.read() def write_image_to_file(self, filename, file_field): + """add an image to the tar""" extension = filename.rsplit(".")[-1] with self.extractfile(filename) as reader: filename = f"{str(uuid4())}.{extension}" diff --git a/bookwyrm/views/preferences/export.py b/bookwyrm/views/preferences/export.py index 037b8dbdc..c55e12c86 100644 --- a/bookwyrm/views/preferences/export.py +++ b/bookwyrm/views/preferences/export.py @@ -13,7 +13,7 @@ from django.views import View from django.utils.decorators import method_decorator from django.shortcuts import redirect -from bookwyrm import models, settings +from bookwyrm import models from bookwyrm.models.bookwyrm_export_job import BookwyrmExportJob from bookwyrm.settings import PAGE_LENGTH @@ -135,10 +135,11 @@ class ExportUser(View): @method_decorator(login_required, name="dispatch") -class ExportArchive(View): +class ExportArchive(View): # pylint: disable=line-too-long """Serve the archive file""" def get(self, request, archive_id): + """download user export file""" export = BookwyrmExportJob.objects.get(task_id=archive_id, user=request.user) return HttpResponse( export.export_data, From 07ef12ce8e02d187e109c9efde2a8720526782b6 Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Sun, 22 Oct 2023 17:26:27 +1100 Subject: [PATCH 009/184] fix tests and linting --- bookwyrm/models/bookwyrm_export_job.py | 2 +- bookwyrm/models/bookwyrm_import_job.py | 4 ++-- .../templates/settings/imports/imports.html | 21 ++++++++++--------- .../tests/models/test_bookwyrm_export_job.py | 5 ++--- .../tests/models/test_bookwyrm_import_job.py | 2 +- bookwyrm/tests/utils/test_tar.py | 2 +- bookwyrm/views/preferences/export.py | 4 ++-- 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/bookwyrm/models/bookwyrm_export_job.py b/bookwyrm/models/bookwyrm_export_job.py index e3fb2a81f..1185c867a 100644 --- a/bookwyrm/models/bookwyrm_export_job.py +++ b/bookwyrm/models/bookwyrm_export_job.py @@ -69,7 +69,7 @@ def tar_export(json_data: str, user, file): file.close() -def json_export(user): +def json_export(user): # pylint: disable=too-many-locals, too-many-statements """Generate an export for a user""" # user exported_user = {} diff --git a/bookwyrm/models/bookwyrm_import_job.py b/bookwyrm/models/bookwyrm_import_job.py index 8fe797ed7..32c1a037a 100644 --- a/bookwyrm/models/bookwyrm_import_job.py +++ b/bookwyrm/models/bookwyrm_import_job.py @@ -124,7 +124,7 @@ def get_or_create_edition(book_data, tar): ): book[key] = edition[key] - existing = find_existing(models.Edition, book, None) + existing = find_existing(models.Edition, book) if existing: return existing @@ -233,7 +233,7 @@ def get_or_create_authors(data): authors = [] for author in data: clean = clean_values(author) - existing = find_existing(models.Author, clean, None) + existing = find_existing(models.Author, clean) if existing: authors.append(existing) else: diff --git a/bookwyrm/templates/settings/imports/imports.html b/bookwyrm/templates/settings/imports/imports.html index 0f4ae04fc..8898aab71 100644 --- a/bookwyrm/templates/settings/imports/imports.html +++ b/bookwyrm/templates/settings/imports/imports.html @@ -274,16 +274,17 @@ {% else %} + {% if import.status == "stopped" or import.status == "failed" %} + class="tag is-danger" + {% elif import.status == "pending" %} + class="tag is-warning" + {% elif import.complete %} + class="tag" + {% else %} + class="tag is-success" + {% endif %} + >{{ import.status }} + {% endif %} diff --git a/bookwyrm/tests/models/test_bookwyrm_export_job.py b/bookwyrm/tests/models/test_bookwyrm_export_job.py index 73b59a4cc..d3e81a161 100644 --- a/bookwyrm/tests/models/test_bookwyrm_export_job.py +++ b/bookwyrm/tests/models/test_bookwyrm_export_job.py @@ -1,6 +1,5 @@ """test bookwyrm user export functions""" import datetime -import time import json from unittest.mock import patch @@ -227,8 +226,8 @@ class BookwyrmExport(TestCase): json_data["books"][0]["quotes"][0]["quote"], "A rose by any other name" ) - def test_tar_export(self): # pylint: disable=unnecessary-pass + def test_tar_export(self): """test the tar export function""" # TODO - pass + pass # pylint: disable=unnecessary-pass diff --git a/bookwyrm/tests/models/test_bookwyrm_import_job.py b/bookwyrm/tests/models/test_bookwyrm_import_job.py index c07772e16..78a8ec160 100644 --- a/bookwyrm/tests/models/test_bookwyrm_import_job.py +++ b/bookwyrm/tests/models/test_bookwyrm_import_job.py @@ -306,7 +306,7 @@ class BookwyrmImport(TestCase): self.assertEqual(models.Edition.objects.first().openlibrary_key, "OL28216445M") existing = bookwyrm_import_job.find_existing( - models.Edition, {"openlibrary_key": "OL28216445M", "isbn_10": None}, None + models.Edition, {"openlibrary_key": "OL28216445M", "isbn_10": None} ) self.assertEqual(existing.title, "Test Book") diff --git a/bookwyrm/tests/utils/test_tar.py b/bookwyrm/tests/utils/test_tar.py index 5989d3bb9..d1945c735 100644 --- a/bookwyrm/tests/utils/test_tar.py +++ b/bookwyrm/tests/utils/test_tar.py @@ -10,7 +10,7 @@ def read_tar(): yield tar -def get_write_tar(): +def write_tar(): archive_path = "/tmp/test.tar.gz" with open(archive_path, "wb") as archive_file: with BookwyrmTarFile.open(mode="w:gz", fileobj=archive_file) as tar: diff --git a/bookwyrm/views/preferences/export.py b/bookwyrm/views/preferences/export.py index c55e12c86..f54d97ccb 100644 --- a/bookwyrm/views/preferences/export.py +++ b/bookwyrm/views/preferences/export.py @@ -135,7 +135,7 @@ class ExportUser(View): @method_decorator(login_required, name="dispatch") -class ExportArchive(View): # pylint: disable=line-too-long +class ExportArchive(View): """Serve the archive file""" def get(self, request, archive_id): @@ -145,6 +145,6 @@ class ExportArchive(View): # pylint: disable=line-too-long export.export_data, content_type="application/gzip", headers={ - "Content-Disposition": 'attachment; filename="bookwyrm-account-export.tar.gz"' + "Content-Disposition": 'attachment; filename="bookwyrm-account-export.tar.gz"' # pylint: disable=line-too-long }, ) From b6b55b2e657ba200d29b7e81f84c05c6040e1771 Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Sun, 22 Oct 2023 17:49:26 +1100 Subject: [PATCH 010/184] once more into the linting breach! --- bookwyrm/models/bookwyrm_export_job.py | 3 ++- bookwyrm/tests/utils/test_tar.py | 1 + bookwyrm/utils/tar.py | 8 ++++---- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/bookwyrm/models/bookwyrm_export_job.py b/bookwyrm/models/bookwyrm_export_job.py index 1185c867a..e4a6e314f 100644 --- a/bookwyrm/models/bookwyrm_export_job.py +++ b/bookwyrm/models/bookwyrm_export_job.py @@ -94,7 +94,8 @@ def json_export(user): # pylint: disable=too-many-locals, too-many-statements # reading goals reading_goals = models.AnnualGoal.objects.filter(user=user).distinct() goals_list = [] - # TODO: either error checking should be more sophisticated or maybe we don't need this try/except + # TODO: either error checking should be more sophisticated + # or maybe we don't need this try/except try: for goal in reading_goals: goals_list.append( diff --git a/bookwyrm/tests/utils/test_tar.py b/bookwyrm/tests/utils/test_tar.py index d1945c735..cb4e738d7 100644 --- a/bookwyrm/tests/utils/test_tar.py +++ b/bookwyrm/tests/utils/test_tar.py @@ -10,6 +10,7 @@ def read_tar(): yield tar +@pytest.fixture def write_tar(): archive_path = "/tmp/test.tar.gz" with open(archive_path, "wb") as archive_file: diff --git a/bookwyrm/utils/tar.py b/bookwyrm/utils/tar.py index 8f43b2c15..61c1019ec 100644 --- a/bookwyrm/utils/tar.py +++ b/bookwyrm/utils/tar.py @@ -8,14 +8,14 @@ from django.core.files import File class BookwyrmTarFile(tarfile.TarFile): """Create tar files for user exports""" - def write_bytes(self, data: bytes): + def write_bytes(self, data: bytes) -> None: """Add a file containing bytes to the archive""" buffer = io.BytesIO(data) info = tarfile.TarInfo("archive.json") info.size = len(data) self.addfile(info, fileobj=buffer) - def add_image(self, image, filename=None, directory=""): + def add_image(self, image: Any, filename: str = None, directory: Any = "") -> None: """ Add an image to the tar archive :param str filename: overrides the file name set by image @@ -32,12 +32,12 @@ class BookwyrmTarFile(tarfile.TarFile): self.addfile(info, fileobj=image) - def read(self, filename): + def read(self, filename: str) -> Any: """read data from the tar""" with self.extractfile(filename) as reader: return reader.read() - def write_image_to_file(self, filename, file_field): + def write_image_to_file(self, filename: str, file_field: Any) -> None: """add an image to the tar""" extension = filename.rsplit(".")[-1] with self.extractfile(filename) as reader: From 2b6852e7a0b40ce4dd8db168ba77049333cac937 Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Sun, 22 Oct 2023 17:56:46 +1100 Subject: [PATCH 011/184] oops import Any --- bookwyrm/utils/tar.py | 1 + 1 file changed, 1 insertion(+) diff --git a/bookwyrm/utils/tar.py b/bookwyrm/utils/tar.py index 61c1019ec..6aec88b42 100644 --- a/bookwyrm/utils/tar.py +++ b/bookwyrm/utils/tar.py @@ -1,6 +1,7 @@ """manage tar files for user exports""" import io import tarfile +from typing import Any from uuid import uuid4 from django.core.files import File From b8fc5c9b7a6ee796d8f7629270bd7a19b3da26c1 Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Mon, 23 Oct 2023 20:42:56 +1100 Subject: [PATCH 012/184] fix tests --- .../tests/models/test_bookwyrm_import_job.py | 64 +++++++++++-------- bookwyrm/tests/utils/test_tar.py | 7 +- 2 files changed, 40 insertions(+), 31 deletions(-) diff --git a/bookwyrm/tests/models/test_bookwyrm_import_job.py b/bookwyrm/tests/models/test_bookwyrm_import_job.py index 78a8ec160..249160481 100644 --- a/bookwyrm/tests/models/test_bookwyrm_import_job.py +++ b/bookwyrm/tests/models/test_bookwyrm_import_job.py @@ -62,13 +62,12 @@ class BookwyrmImport(TestCase): parent_work=self.work, ) - archive_file = pathlib.Path(__file__).parent.joinpath( + self.archive_file = pathlib.Path(__file__).parent.joinpath( "../data/bookwyrm_account_export.tar.gz" ) - self.tarfile = BookwyrmTarFile.open( - mode="r:gz", fileobj=open(archive_file, "rb") - ) - self.import_data = json.loads(self.tarfile.read("archive.json").decode("utf-8")) + with open(self.archive_file, "rb") as fileobj: + tarfile = BookwyrmTarFile.open(mode="r:gz", fileobj=fileobj) + self.import_data = json.loads(tarfile.read("archive.json").decode("utf-8")) def test_update_user_profile(self): """Test update the user's profile from import data""" @@ -77,19 +76,22 @@ class BookwyrmImport(TestCase): "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" ): - models.bookwyrm_import_job.update_user_profile( - self.local_user, self.tarfile, self.import_data.get("user") - ) - self.local_user.refresh_from_db() + with open(self.archive_file, "rb") as fileobj: + tarfile = BookwyrmTarFile.open(mode="r:gz", fileobj=fileobj) - self.assertEqual( - self.local_user.username, "mouse" - ) # username should not change - self.assertEqual(self.local_user.name, "Rat") - self.assertEqual( - self.local_user.summary, - "I love to make soup in Paris and eat pizza in New York", - ) + models.bookwyrm_import_job.update_user_profile( + self.local_user, tarfile, self.import_data.get("user") + ) + self.local_user.refresh_from_db() + + self.assertEqual( + self.local_user.username, "mouse" + ) # username should not change + self.assertEqual(self.local_user.name, "Rat") + self.assertEqual( + self.local_user.summary, + "I love to make soup in Paris and eat pizza in New York", + ) def test_update_user_settings(self): """Test updating the user's settings from import data""" @@ -248,14 +250,16 @@ class BookwyrmImport(TestCase): find or create the editions in the database and return a list of edition instances""" - self.assertEqual(models.Edition.objects.count(), 1) self.assertEqual(models.Edition.objects.count(), 1) - bookwyrm_import_job.get_or_create_edition( - self.import_data["books"][1], self.tarfile - ) # Sand Talk + with open(self.archive_file, "rb") as fileobj: + tarfile = BookwyrmTarFile.open(mode="r:gz", fileobj=fileobj) - self.assertEqual(models.Edition.objects.count(), 1) + bookwyrm_import_job.get_or_create_edition( + self.import_data["books"][1], tarfile + ) # Sand Talk + + self.assertEqual(models.Edition.objects.count(), 1) def test_get_or_create_edition_not_existing(self): """Test take a JSON string of books and editions, @@ -264,12 +268,16 @@ class BookwyrmImport(TestCase): self.assertEqual(models.Edition.objects.count(), 1) - bookwyrm_import_job.get_or_create_edition( - self.import_data["books"][0], self.tarfile - ) # Seeing like a state + with open(self.archive_file, "rb") as fileobj: + tarfile = BookwyrmTarFile.open(mode="r:gz", fileobj=fileobj) + bookwyrm_import_job.get_or_create_edition( + self.import_data["books"][0], tarfile + ) # Seeing like a state - self.assertTrue(models.Edition.objects.filter(isbn_13="9780300070163").exists()) - self.assertEqual(models.Edition.objects.count(), 2) + self.assertTrue( + models.Edition.objects.filter(isbn_13="9780300070163").exists() + ) + self.assertEqual(models.Edition.objects.count(), 2) def test_clean_values(self): """test clean values we don't want when creating new instances""" @@ -373,7 +381,7 @@ class BookwyrmImport(TestCase): self.assertEqual( models.Review.objects.filter(book=self.book).first().name, "great book" ) - self.assertEqual( + self.assertAlmostEqual( models.Review.objects.filter(book=self.book).first().rating, 5.00 ) diff --git a/bookwyrm/tests/utils/test_tar.py b/bookwyrm/tests/utils/test_tar.py index cb4e738d7..be5257542 100644 --- a/bookwyrm/tests/utils/test_tar.py +++ b/bookwyrm/tests/utils/test_tar.py @@ -1,5 +1,6 @@ -from bookwyrm.utils.tar import BookwyrmTarFile +import os import pytest +from bookwyrm.utils.tar import BookwyrmTarFile @pytest.fixture @@ -15,10 +16,10 @@ def write_tar(): archive_path = "/tmp/test.tar.gz" with open(archive_path, "wb") as archive_file: with BookwyrmTarFile.open(mode="w:gz", fileobj=archive_file) as tar: - return tar + yield tar os.remove(archive_path) def test_write_bytes(write_tar): - write_tar.write_bytes(b"ABCDEF", filename="example.txt") + write_tar.write_bytes(b"ABCDEF") From ddec2dbaa98b6f3a9a8fedeacefeb40508aa5ab2 Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Mon, 23 Oct 2023 20:43:49 +1100 Subject: [PATCH 013/184] fix tar types notification docstring --- bookwyrm/models/notification.py | 2 +- bookwyrm/utils/tar.py | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/bookwyrm/models/notification.py b/bookwyrm/models/notification.py index 98d20a3cb..d62043845 100644 --- a/bookwyrm/models/notification.py +++ b/bookwyrm/models/notification.py @@ -255,7 +255,7 @@ def notify_user_on_user_import_complete( def notify_user_on_user_export_complete( sender, instance, *args, update_fields=None, **kwargs ): - """we imported your user details! aren't you proud of us""" + """we exported your user details! aren't you proud of us""" update_fields = update_fields or [] if not instance.complete or "complete" not in update_fields: print("RETURNING", instance.status) diff --git a/bookwyrm/utils/tar.py b/bookwyrm/utils/tar.py index 6aec88b42..044a47404 100644 --- a/bookwyrm/utils/tar.py +++ b/bookwyrm/utils/tar.py @@ -1,7 +1,7 @@ """manage tar files for user exports""" import io import tarfile -from typing import Any +from typing import Any, Optional from uuid import uuid4 from django.core.files import File @@ -16,7 +16,9 @@ class BookwyrmTarFile(tarfile.TarFile): info.size = len(data) self.addfile(info, fileobj=buffer) - def add_image(self, image: Any, filename: str = None, directory: Any = "") -> None: + def add_image( + self, image: Any, filename: Optional[str] = None, directory: Any = "" + ) -> None: """ Add an image to the tar archive :param str filename: overrides the file name set by image @@ -35,12 +37,12 @@ class BookwyrmTarFile(tarfile.TarFile): def read(self, filename: str) -> Any: """read data from the tar""" - with self.extractfile(filename) as reader: + if reader := self.extractfile(filename): return reader.read() def write_image_to_file(self, filename: str, file_field: Any) -> None: """add an image to the tar""" extension = filename.rsplit(".")[-1] - with self.extractfile(filename) as reader: + if buf := self.extractfile(filename): filename = f"{str(uuid4())}.{extension}" - file_field.save(filename, File(reader)) + file_field.save(filename, File(buf)) From e29c93a1e90155bdc186c09502453d7b95f51240 Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Mon, 23 Oct 2023 20:44:52 +1100 Subject: [PATCH 014/184] complete jobs more sensibly - fix tuple in tar export I accidentally broke by following pylint blindly - just use job.set_status to complete jobs since it does everything we need - fix/avoid Celery "not JSON deserializable" error by not saving whole job including user value --- bookwyrm/models/bookwyrm_export_job.py | 9 ++++----- bookwyrm/models/bookwyrm_import_job.py | 3 +-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/bookwyrm/models/bookwyrm_export_job.py b/bookwyrm/models/bookwyrm_export_job.py index e4a6e314f..7c3d3ac2a 100644 --- a/bookwyrm/models/bookwyrm_export_job.py +++ b/bookwyrm/models/bookwyrm_export_job.py @@ -42,13 +42,12 @@ def start_export_task(**kwargs): job.export_data = ContentFile(b"", str(uuid4())) json_data = json_export(job.user) tar_export(json_data, job.user, job.export_data) + job.save(update_fields=["export_data"]) except Exception as err: # pylint: disable=broad-except logger.exception("User Export Job %s Failed with error: %s", job.id, err) job.set_status("failed") - job.set_status( - "complete" - ) # need to explicitly set this here to trigger notifications - job.save(update_fields=["export_data"]) + + job.set_status("complete") def tar_export(json_data: str, user, file): @@ -61,7 +60,7 @@ def tar_export(json_data: str, user, file): if getattr(user, "avatar", False): tar.add_image(user.avatar, filename="avatar") - editions = get_books_for_user(user) + editions, books = get_books_for_user(user) # pylint: disable=unused-argument for book in editions: if getattr(book, "cover", False): tar.add_image(book.cover) diff --git a/bookwyrm/models/bookwyrm_import_job.py b/bookwyrm/models/bookwyrm_import_job.py index 32c1a037a..16dad1bfc 100644 --- a/bookwyrm/models/bookwyrm_import_job.py +++ b/bookwyrm/models/bookwyrm_import_job.py @@ -61,8 +61,7 @@ def start_import_task(**kwargs): process_books(job, tar) - job.set_status("complete") # set here to trigger notifications - job.save() + job.set_status("complete") archive_file.close() except Exception as err: # pylint: disable=broad-except From f30555be0f2d71217724619b072e74e905456f4d Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Mon, 23 Oct 2023 21:30:17 +1100 Subject: [PATCH 015/184] minor pylint and mypy fixes --- bookwyrm/importers/bookwyrm_import.py | 9 ++- bookwyrm/models/bookwyrm_export_job.py | 2 +- .../tests/models/test_bookwyrm_import_job.py | 60 ++++++++++--------- bookwyrm/utils/tar.py | 1 + 4 files changed, 40 insertions(+), 32 deletions(-) diff --git a/bookwyrm/importers/bookwyrm_import.py b/bookwyrm/importers/bookwyrm_import.py index c8f4433ca..38fc6af61 100644 --- a/bookwyrm/importers/bookwyrm_import.py +++ b/bookwyrm/importers/bookwyrm_import.py @@ -1,4 +1,9 @@ """Import data from Bookwyrm export files""" +from typing import Any + +from django.http import QueryDict + +from bookwyrm.models import User from bookwyrm.models.bookwyrm_import_job import BookwyrmImportJob @@ -8,8 +13,8 @@ class BookwyrmImporter: """ def process_import( - self, user, archive_file, settings - ): # pylint: disable=no-self-use + self, user: User, archive_file: bytes, settings: QueryDict + ) -> BookwyrmImportJob: # pylint: disable=no-self-use """import user data from a Bookwyrm export file""" required = [k for k in settings if settings.get(k) == "on"] diff --git a/bookwyrm/models/bookwyrm_export_job.py b/bookwyrm/models/bookwyrm_export_job.py index 7c3d3ac2a..da1cab320 100644 --- a/bookwyrm/models/bookwyrm_export_job.py +++ b/bookwyrm/models/bookwyrm_export_job.py @@ -60,7 +60,7 @@ def tar_export(json_data: str, user, file): if getattr(user, "avatar", False): tar.add_image(user.avatar, filename="avatar") - editions, books = get_books_for_user(user) # pylint: disable=unused-argument + editions, books = get_books_for_user(user) # pylint: disable=unused-variable for book in editions: if getattr(book, "cover", False): tar.add_image(book.cover) diff --git a/bookwyrm/tests/models/test_bookwyrm_import_job.py b/bookwyrm/tests/models/test_bookwyrm_import_job.py index 249160481..5a41e5607 100644 --- a/bookwyrm/tests/models/test_bookwyrm_import_job.py +++ b/bookwyrm/tests/models/test_bookwyrm_import_job.py @@ -13,7 +13,7 @@ from bookwyrm.utils.tar import BookwyrmTarFile from bookwyrm.models import bookwyrm_import_job -class BookwyrmImport(TestCase): +class BookwyrmImport(TestCase): # pylint: disable=too-many-public-methods """testing user import functions""" def setUp(self): @@ -66,8 +66,10 @@ class BookwyrmImport(TestCase): "../data/bookwyrm_account_export.tar.gz" ) with open(self.archive_file, "rb") as fileobj: - tarfile = BookwyrmTarFile.open(mode="r:gz", fileobj=fileobj) - self.import_data = json.loads(tarfile.read("archive.json").decode("utf-8")) + with BookwyrmTarFile.open(mode="r:gz", fileobj=fileobj) as tarfile: + self.import_data = json.loads( + tarfile.read("archive.json").decode("utf-8") + ) def test_update_user_profile(self): """Test update the user's profile from import data""" @@ -77,21 +79,21 @@ class BookwyrmImport(TestCase): ): with open(self.archive_file, "rb") as fileobj: - tarfile = BookwyrmTarFile.open(mode="r:gz", fileobj=fileobj) + with BookwyrmTarFile.open(mode="r:gz", fileobj=fileobj) as tarfile: - models.bookwyrm_import_job.update_user_profile( - self.local_user, tarfile, self.import_data.get("user") - ) - self.local_user.refresh_from_db() + models.bookwyrm_import_job.update_user_profile( + self.local_user, tarfile, self.import_data.get("user") + ) + self.local_user.refresh_from_db() - self.assertEqual( - self.local_user.username, "mouse" - ) # username should not change - self.assertEqual(self.local_user.name, "Rat") - self.assertEqual( - self.local_user.summary, - "I love to make soup in Paris and eat pizza in New York", - ) + self.assertEqual( + self.local_user.username, "mouse" + ) # username should not change + self.assertEqual(self.local_user.name, "Rat") + self.assertEqual( + self.local_user.summary, + "I love to make soup in Paris and eat pizza in New York", + ) def test_update_user_settings(self): """Test updating the user's settings from import data""" @@ -253,13 +255,13 @@ class BookwyrmImport(TestCase): self.assertEqual(models.Edition.objects.count(), 1) with open(self.archive_file, "rb") as fileobj: - tarfile = BookwyrmTarFile.open(mode="r:gz", fileobj=fileobj) + with BookwyrmTarFile.open(mode="r:gz", fileobj=fileobj) as tarfile: - bookwyrm_import_job.get_or_create_edition( - self.import_data["books"][1], tarfile - ) # Sand Talk + bookwyrm_import_job.get_or_create_edition( + self.import_data["books"][1], tarfile + ) # Sand Talk - self.assertEqual(models.Edition.objects.count(), 1) + self.assertEqual(models.Edition.objects.count(), 1) def test_get_or_create_edition_not_existing(self): """Test take a JSON string of books and editions, @@ -269,15 +271,15 @@ class BookwyrmImport(TestCase): self.assertEqual(models.Edition.objects.count(), 1) with open(self.archive_file, "rb") as fileobj: - tarfile = BookwyrmTarFile.open(mode="r:gz", fileobj=fileobj) - bookwyrm_import_job.get_or_create_edition( - self.import_data["books"][0], tarfile - ) # Seeing like a state + with BookwyrmTarFile.open(mode="r:gz", fileobj=fileobj) as tarfile: + bookwyrm_import_job.get_or_create_edition( + self.import_data["books"][0], tarfile + ) # Seeing like a state - self.assertTrue( - models.Edition.objects.filter(isbn_13="9780300070163").exists() - ) - self.assertEqual(models.Edition.objects.count(), 2) + self.assertTrue( + models.Edition.objects.filter(isbn_13="9780300070163").exists() + ) + self.assertEqual(models.Edition.objects.count(), 2) def test_clean_values(self): """test clean values we don't want when creating new instances""" diff --git a/bookwyrm/utils/tar.py b/bookwyrm/utils/tar.py index 044a47404..bae3f7628 100644 --- a/bookwyrm/utils/tar.py +++ b/bookwyrm/utils/tar.py @@ -39,6 +39,7 @@ class BookwyrmTarFile(tarfile.TarFile): """read data from the tar""" if reader := self.extractfile(filename): return reader.read() + return None def write_image_to_file(self, filename: str, file_field: Any) -> None: """add an image to the tar""" From 25a2615d5f16afffbc58e2b85c409c5a485af5fe Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Sat, 28 Oct 2023 06:51:26 +1100 Subject: [PATCH 016/184] stop pylint constantly whining --- bookwyrm/importers/bookwyrm_import.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/bookwyrm/importers/bookwyrm_import.py b/bookwyrm/importers/bookwyrm_import.py index 38fc6af61..206cd6219 100644 --- a/bookwyrm/importers/bookwyrm_import.py +++ b/bookwyrm/importers/bookwyrm_import.py @@ -1,6 +1,4 @@ """Import data from Bookwyrm export files""" -from typing import Any - from django.http import QueryDict from bookwyrm.models import User @@ -12,9 +10,10 @@ class BookwyrmImporter: This is kind of a combination of an importer and a connector. """ + # pylint: disable=no-self-use def process_import( self, user: User, archive_file: bytes, settings: QueryDict - ) -> BookwyrmImportJob: # pylint: disable=no-self-use + ) -> BookwyrmImportJob: """import user data from a Bookwyrm export file""" required = [k for k in settings if settings.get(k) == "on"] From df43a8e2c52e16ba4dd63c74bd447a36f2ad5cf6 Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Mon, 30 Oct 2023 19:43:39 +1100 Subject: [PATCH 017/184] Use django-file-resubmit plugin - save cover images to cache when checking author and work for existing records - fixes #2760 --- bookwyrm/forms/books.py | 5 ++--- bookwyrm/settings.py | 7 ++++++- requirements.txt | 1 + 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/bookwyrm/forms/books.py b/bookwyrm/forms/books.py index 4885dc063..e28c19d79 100644 --- a/bookwyrm/forms/books.py +++ b/bookwyrm/forms/books.py @@ -3,6 +3,7 @@ from django import forms from bookwyrm import models from bookwyrm.models.fields import ClearableFileInputWithWarning +from file_resubmit.admin import AdminResubmitImageWidget from .custom_form import CustomForm from .widgets import ArrayWidget, SelectDateWidget, Select @@ -70,9 +71,7 @@ class EditionForm(CustomForm): "published_date": SelectDateWidget( attrs={"aria-describedby": "desc_published_date"} ), - "cover": ClearableFileInputWithWarning( - attrs={"aria-describedby": "desc_cover"} - ), + "cover": AdminResubmitImageWidget(attrs={"aria-describedby": "desc_cover"}), "physical_format": Select( attrs={"aria-describedby": "desc_physical_format"} ), diff --git a/bookwyrm/settings.py b/bookwyrm/settings.py index 16241f9df..8c1841e2e 100644 --- a/bookwyrm/settings.py +++ b/bookwyrm/settings.py @@ -99,6 +99,7 @@ INSTALLED_APPS = [ "django.contrib.messages", "django.contrib.staticfiles", "django.contrib.humanize", + "file_resubmit", "sass_processor", "bookwyrm", "celery", @@ -252,7 +253,11 @@ else: "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", }, - } + }, + "file_resubmit": { + "BACKEND": "django.core.cache.backends.filebased.FileBasedCache", + "LOCATION": "/tmp/file_resubmit/", + }, } SESSION_ENGINE = "django.contrib.sessions.backends.cache" diff --git a/requirements.txt b/requirements.txt index 0602f8da4..f63989e1f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,6 +4,7 @@ celery==5.2.7 colorthief==0.2.1 Django==3.2.20 django-celery-beat==2.4.0 +django-file-resubmit==0.5.2 django-compressor==4.3.1 django-imagekit==4.1.0 django-model-utils==4.3.1 From c486b9c37e5fefd61272c1039b28e2cdae4191e2 Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Mon, 30 Oct 2023 21:47:19 +1100 Subject: [PATCH 018/184] pylint fixes --- bookwyrm/forms/books.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bookwyrm/forms/books.py b/bookwyrm/forms/books.py index e28c19d79..c65a6aaf7 100644 --- a/bookwyrm/forms/books.py +++ b/bookwyrm/forms/books.py @@ -1,9 +1,9 @@ """ using django model forms """ from django import forms -from bookwyrm import models -from bookwyrm.models.fields import ClearableFileInputWithWarning from file_resubmit.admin import AdminResubmitImageWidget + +from bookwyrm import models from .custom_form import CustomForm from .widgets import ArrayWidget, SelectDateWidget, Select From d682e55812e04b475271e8036a588cb8df4b9d25 Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Sun, 5 Nov 2023 16:34:24 +1100 Subject: [PATCH 019/184] swap out django-file-resubmit - we decided to fork it, so this now uses the inaugural RC release of bw-file-resubmit (will need to be adjusted once we're confident it's ok to push a full release) - I was accidentally using the wrong widget lol --- bookwyrm/forms/books.py | 4 ++-- requirements.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bookwyrm/forms/books.py b/bookwyrm/forms/books.py index c65a6aaf7..f73ce3f5a 100644 --- a/bookwyrm/forms/books.py +++ b/bookwyrm/forms/books.py @@ -1,7 +1,7 @@ """ using django model forms """ from django import forms -from file_resubmit.admin import AdminResubmitImageWidget +from file_resubmit.widgets import ResubmitImageWidget from bookwyrm import models from .custom_form import CustomForm @@ -71,7 +71,7 @@ class EditionForm(CustomForm): "published_date": SelectDateWidget( attrs={"aria-describedby": "desc_published_date"} ), - "cover": AdminResubmitImageWidget(attrs={"aria-describedby": "desc_cover"}), + "cover": ResubmitImageWidget(attrs={"aria-describedby": "desc_cover"}), "physical_format": Select( attrs={"aria-describedby": "desc_physical_format"} ), diff --git a/requirements.txt b/requirements.txt index f63989e1f..cda7b1967 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,7 @@ celery==5.2.7 colorthief==0.2.1 Django==3.2.20 django-celery-beat==2.4.0 -django-file-resubmit==0.5.2 +bw-file-resubmit==0.6.0rc2 django-compressor==4.3.1 django-imagekit==4.1.0 django-model-utils==4.3.1 From 89b87db1c87afe88ff5f65d543c19f71663d63ca Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 5 Nov 2023 06:54:29 -0800 Subject: [PATCH 020/184] Adds merge migration --- bookwyrm/migrations/0185_merge_20231105_1453.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 bookwyrm/migrations/0185_merge_20231105_1453.py diff --git a/bookwyrm/migrations/0185_merge_20231105_1453.py b/bookwyrm/migrations/0185_merge_20231105_1453.py new file mode 100644 index 000000000..767fe4195 --- /dev/null +++ b/bookwyrm/migrations/0185_merge_20231105_1453.py @@ -0,0 +1,13 @@ +# Generated by Django 3.2.20 on 2023-11-05 14:53 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("bookwyrm", "0182_auto_20231027_1122"), + ("bookwyrm", "0184_sitesettings_user_import_time_limit"), + ] + + operations = [] From ff2bb513ed09ba5816de1563bebf618c1f8e567c Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 5 Nov 2023 06:56:10 -0800 Subject: [PATCH 021/184] Adds migration for notification types --- ...86_alter_notification_notification_type.py | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 bookwyrm/migrations/0186_alter_notification_notification_type.py diff --git a/bookwyrm/migrations/0186_alter_notification_notification_type.py b/bookwyrm/migrations/0186_alter_notification_notification_type.py new file mode 100644 index 000000000..3e4effdfa --- /dev/null +++ b/bookwyrm/migrations/0186_alter_notification_notification_type.py @@ -0,0 +1,43 @@ +# Generated by Django 3.2.20 on 2023-11-05 14:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("bookwyrm", "0185_merge_20231105_1453"), + ] + + operations = [ + migrations.AlterField( + model_name="notification", + name="notification_type", + field=models.CharField( + choices=[ + ("FAVORITE", "Favorite"), + ("REPLY", "Reply"), + ("MENTION", "Mention"), + ("TAG", "Tag"), + ("FOLLOW", "Follow"), + ("FOLLOW_REQUEST", "Follow Request"), + ("BOOST", "Boost"), + ("IMPORT", "Import"), + ("USER_IMPORT", "User Import"), + ("USER_EXPORT", "User Export"), + ("ADD", "Add"), + ("REPORT", "Report"), + ("LINK_DOMAIN", "Link Domain"), + ("INVITE", "Invite"), + ("ACCEPT", "Accept"), + ("JOIN", "Join"), + ("LEAVE", "Leave"), + ("REMOVE", "Remove"), + ("GROUP_PRIVACY", "Group Privacy"), + ("GROUP_NAME", "Group Name"), + ("GROUP_DESCRIPTION", "Group Description"), + ("MOVE", "Move"), + ], + max_length=255, + ), + ), + ] From 9e9e9a9f8552b84e879079b547eeedd729e27a23 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 5 Nov 2023 07:04:05 -0800 Subject: [PATCH 022/184] Uses explicit imports to avoid circular import in migrations code --- bookwyrm/models/__init__.py | 1 + bookwyrm/models/bookwyrm_export_job.py | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/bookwyrm/models/__init__.py b/bookwyrm/models/__init__.py index 7062fe390..4f86f2aa6 100644 --- a/bookwyrm/models/__init__.py +++ b/bookwyrm/models/__init__.py @@ -27,6 +27,7 @@ from .group import Group, GroupMember, GroupMemberInvitation from .import_job import ImportJob, ImportItem from .bookwyrm_import_job import BookwyrmImportJob +from .bookwyrm_export_job import BookwyrmExportJob from .move import MoveUser diff --git a/bookwyrm/models/bookwyrm_export_job.py b/bookwyrm/models/bookwyrm_export_job.py index da1cab320..4b0abd73f 100644 --- a/bookwyrm/models/bookwyrm_export_job.py +++ b/bookwyrm/models/bookwyrm_export_job.py @@ -8,7 +8,10 @@ from django.db.models import Q from django.core.serializers.json import DjangoJSONEncoder from django.core.files.base import ContentFile -from bookwyrm import models +from bookwyrm.models import AnnualGoal, ReadThrough, ShelfBook, Shelf, List, ListItem +from bookwyrm.models import Review, Comment, Quotation +from bookwyrm.models import Edition, Book +from bookwyrm.models import UserFollows, User, UserBlocks from bookwyrm.models.job import ParentJob, ParentTask from bookwyrm.settings import DOMAIN from bookwyrm.tasks import app, IMPORTS From d2f06e804ff03561167b29de2befa0403ae33aa9 Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Mon, 6 Nov 2023 12:07:40 +1100 Subject: [PATCH 023/184] update references to bookwyrm models in export job --- bookwyrm/models/bookwyrm_export_job.py | 36 +++++++++++++------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/bookwyrm/models/bookwyrm_export_job.py b/bookwyrm/models/bookwyrm_export_job.py index 4b0abd73f..d91ef6257 100644 --- a/bookwyrm/models/bookwyrm_export_job.py +++ b/bookwyrm/models/bookwyrm_export_job.py @@ -94,7 +94,7 @@ def json_export(user): # pylint: disable=too-many-locals, too-many-statements exported_user["avatar"] = f'https://{DOMAIN}{getattr(user, "avatar").url}' # reading goals - reading_goals = models.AnnualGoal.objects.filter(user=user).distinct() + reading_goals = AnnualGoal.objects.filter(user=user).distinct() goals_list = [] # TODO: either error checking should be more sophisticated # or maybe we don't need this try/except @@ -107,7 +107,7 @@ def json_export(user): # pylint: disable=too-many-locals, too-many-statements pass try: - readthroughs = models.ReadThrough.objects.filter(user=user).distinct().values() + readthroughs = ReadThrough.objects.filter(user=user).distinct().values() readthroughs = list(readthroughs) except Exception: # pylint: disable=broad-except readthroughs = [] @@ -123,16 +123,16 @@ def json_export(user): # pylint: disable=too-many-locals, too-many-statements book["authors"] = list(edition.first().authors.all().values()) # readthroughs book_readthroughs = ( - models.ReadThrough.objects.filter(user=user, book=book["id"]) + ReadThrough.objects.filter(user=user, book=book["id"]) .distinct() .values() ) book["readthroughs"] = list(book_readthroughs) # shelves - shelf_books = models.ShelfBook.objects.filter( + shelf_books = ShelfBook.objects.filter( user=user, book=book["id"] ).distinct() - shelves_from_books = models.Shelf.objects.filter( + shelves_from_books = Shelf.objects.filter( shelfbook__in=shelf_books, user=user ) @@ -140,34 +140,34 @@ def json_export(user): # pylint: disable=too-many-locals, too-many-statements book["shelf_books"] = {} for shelf in shelves_from_books: - shelf_contents = models.ShelfBook.objects.filter( + shelf_contents = ShelfBook.objects.filter( user=user, shelf=shelf ).distinct() book["shelf_books"][shelf.identifier] = list(shelf_contents.values()) # book lists - book_lists = models.List.objects.filter( + book_lists = List.objects.filter( books__in=[book["id"]], user=user ).distinct() book["lists"] = list(book_lists.values()) book["list_items"] = {} for blist in book_lists: - list_items = models.ListItem.objects.filter(book_list=blist).distinct() + list_items = ListItem.objects.filter(book_list=blist).distinct() book["list_items"][blist.name] = list(list_items.values()) # reviews - reviews = models.Review.objects.filter(user=user, book=book["id"]).distinct() + reviews = Review.objects.filter(user=user, book=book["id"]).distinct() book["reviews"] = list(reviews.values()) # comments - comments = models.Comment.objects.filter(user=user, book=book["id"]).distinct() + comments = Comment.objects.filter(user=user, book=book["id"]).distinct() book["comments"] = list(comments.values()) # quotes - quotes = models.Quotation.objects.filter(user=user, book=book["id"]).distinct() + quotes = Quotation.objects.filter(user=user, book=book["id"]).distinct() book["quotes"] = list(quotes.values()) @@ -175,19 +175,19 @@ def json_export(user): # pylint: disable=too-many-locals, too-many-statements final_books.append(book) # saved book lists - saved_lists = models.List.objects.filter(id__in=user.saved_lists.all()).distinct() + saved_lists = List.objects.filter(id__in=user.saved_lists.all()).distinct() saved_lists = [l.remote_id for l in saved_lists] # follows - follows = models.UserFollows.objects.filter(user_subject=user).distinct() - following = models.User.objects.filter( + follows = UserFollows.objects.filter(user_subject=user).distinct() + following = User.objects.filter( userfollows_user_object__in=follows ).distinct() follows = [f.remote_id for f in following] # blocks - blocks = models.UserBlocks.objects.filter(user_subject=user).distinct() - blocking = models.User.objects.filter(userblocks_user_object__in=blocks).distinct() + blocks = UserBlocks.objects.filter(user_subject=user).distinct() + blocking = User.objects.filter(userblocks_user_object__in=blocks).distinct() blocks = [b.remote_id for b in blocking] @@ -207,7 +207,7 @@ def get_books_for_user(user): """Get all the books and editions related to a user :returns: tuple of editions, books """ - all_books = models.Edition.viewer_aware_objects(user) + all_books = Edition.viewer_aware_objects(user) editions = all_books.filter( Q(shelves__user=user) | Q(readthrough__user=user) @@ -216,5 +216,5 @@ def get_books_for_user(user): | Q(comment__user=user) | Q(quotation__user=user) ).distinct() - books = models.Book.objects.filter(id__in=editions).distinct() + books = Book.objects.filter(id__in=editions).distinct() return editions, books From 93a32f4e1551c3c8843ff3f8a306b1ba7ba5960c Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Mon, 6 Nov 2023 14:40:19 +1100 Subject: [PATCH 024/184] update import/export user templates - always explain what export file can be used for - provide more information about overwrite vs upsert when importing --- bookwyrm/templates/import/import_user.html | 29 +++++++++++++++++-- .../templates/preferences/export-user.html | 8 ++--- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/bookwyrm/templates/import/import_user.html b/bookwyrm/templates/import/import_user.html index 8e7bb1a09..1871da84f 100644 --- a/bookwyrm/templates/import/import_user.html +++ b/bookwyrm/templates/import/import_user.html @@ -38,9 +38,32 @@ {{ import_form.archive_file }} -
-

{% trans "Importing this file will overwrite any data you currently have saved." %}

-

{% trans "Deselect any data you do not wish to include in your import. Books will always be imported" %}

+
+ {% blocktrans trimmed %} +

Deselect any checkboxes for data you do not wish to include in your import.

+

Importing this file will not delete any data but will overwrite the following information:

+
    +
  • Profile
  • +
      +
    • name
    • +
    • summary
    • +
    • avatar
    • +
    +
  • Settings
  • +
      +
    • whether manual approval is required for other users to follow your account
    • +
    • whether following/followers are shown on your profile
    • +
    • whether your reading goal is shown on your profile
    • +
    • whether you see user follow suggestions
    • +
    • whether your account is suggested to others
    • +
    • your timezone
    • +
    • your default post privacy setting
    • +
    +
  • Reading goals for all years listed in the import file
  • +
+

All other imported data will be added if it does not already exist. For example, if you have an existing list with the same name as an imported list, the existing list settings will not change, any new list items will be added, and no existing list items will be deleted.

+ + {% endblocktrans %}
diff --git a/bookwyrm/templates/preferences/export-user.html b/bookwyrm/templates/preferences/export-user.html index 2f63c9e1c..437b6c7be 100644 --- a/bookwyrm/templates/preferences/export-user.html +++ b/bookwyrm/templates/preferences/export-user.html @@ -9,16 +9,16 @@ {% block panel %}
+

+ {% trans "Your exported archive file will include all user data for import into another Bookwyrm server" %} +

{% if next_available %}

- {% blocktrans %} + {% blocktrans trimmed %} You will be able to create a new export file at {{ next_available }} {% endblocktrans %}

{% else %} -

- {% trans "Your exported archive file will include all user data for import into another Bookwyrm server" %} -

{% csrf_token %}
{% trans "ID" %} {{ import.status }}
- - @@ -56,13 +53,6 @@ {% endif %} {% for job in jobs %} - + {% endfor %} From 06d822d9e031afedd5e2b6bd2e73a63684afd712 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Mon, 6 Nov 2023 09:35:04 -0800 Subject: [PATCH 029/184] Alternative format for user import guide --- bookwyrm/templates/import/import_user.html | 179 +++++++++++++-------- 1 file changed, 109 insertions(+), 70 deletions(-) diff --git a/bookwyrm/templates/import/import_user.html b/bookwyrm/templates/import/import_user.html index 1871da84f..3f0f7453d 100644 --- a/bookwyrm/templates/import/import_user.html +++ b/bookwyrm/templates/import/import_user.html @@ -29,85 +29,124 @@

{% blocktrans %}You will next be able to import a user file at {{ next_available }}{% endblocktrans %}

{% else %} - + {% csrf_token %} -
-
-
+
+
+

{% trans "Step 1:" %}

+

+ {% blocktrans trimmed %} + Select an export file generated from another BookWyrm account. The file format should be .tar.gz. + {% endblocktrans %} +

+
+
{{ import_form.archive_file }}
-
- {% blocktrans trimmed %} -

Deselect any checkboxes for data you do not wish to include in your import.

-

Importing this file will not delete any data but will overwrite the following information:

-
    -
  • Profile
  • -
      -
    • name
    • -
    • summary
    • -
    • avatar
    • -
    -
  • Settings
  • -
      -
    • whether manual approval is required for other users to follow your account
    • -
    • whether following/followers are shown on your profile
    • -
    • whether your reading goal is shown on your profile
    • -
    • whether you see user follow suggestions
    • -
    • whether your account is suggested to others
    • -
    • your timezone
    • -
    • your default post privacy setting
    • -
    -
  • Reading goals for all years listed in the import file
  • -
-

All other imported data will be added if it does not already exist. For example, if you have an existing list with the same name as an imported list, the existing list settings will not change, any new list items will be added, and no existing list items will be deleted.

+
- {% endblocktrans %} + + +
+
+

{% trans "Step 2:" %}

+

+ {% blocktrans trimmed %} + Deselect any checkboxes for data you do not wish to include in your import. + {% endblocktrans %} +

+

Unless specified below, importing will not delete any data. Imported data will be added if it does not already exist. For example, if you have an existing list with the same name as an imported list, the existing list settings will not change, any new list items will be added, and no existing list items will be deleted.

+
+
+
+
+ +

+ {% trans "Overwrites display name, summary, and avatar" %} +

+
+
+ +
+ {% trans "Overwrites:" %} +
    +
  • + {% trans "Whether manual approval is required for other users to follow your account" %} +
  • +
  • + {% trans "Whether following/followers are shown on your profile" %} +
  • +
  • + {% trans "Whether your reading goal is shown on your profile" %} +
  • +
  • + {% trans "Whether you see user follow suggestions" %} +
  • +
  • + {% trans "Whether your account is suggested to others" %} +
  • +
  • + {% trans "Your timezone" %} +
  • +
  • + {% trans "Your default post privacy setting" %} +
  • +
+
+
+
+ +
+ +
+
+
+ +

+ {% trans "Reading goals for all years listed in the import file" %} +

+
+ + + + + + + +
-
-
- - - - - - - - - - - - -
-
-
{% if not import_limit_reset and not import_size_limit or allowed_imports > 0 %} {% else %} From 3f038b4d67c324a49c647e75d69f1f9ff5620c12 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Mon, 6 Nov 2023 09:42:58 -0800 Subject: [PATCH 030/184] Moves if to the right place --- bookwyrm/templates/preferences/export-user.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bookwyrm/templates/preferences/export-user.html b/bookwyrm/templates/preferences/export-user.html index b1e36f9d2..0a45b8b0a 100644 --- a/bookwyrm/templates/preferences/export-user.html +++ b/bookwyrm/templates/preferences/export-user.html @@ -75,9 +75,9 @@ {% trans "Active" %} {% endif %} - {% if job.complete and not job.status == "stopped" and not job.status == "failed" %}
- + {% if not jobs %} @@ -76,6 +80,9 @@ {% endif %} +
- {% trans "Date Created" %} + {% trans "Date" %} - {% trans "Last Updated" %} - + {% trans "Status" %}
- {% if job.complete and not job.status == "stopped" and not job.status == "failed" %} -

{{ job.created_date }}

- {% else %} -

{{ job.created_date }}

- {% endif %} -
{{ job.updated_date }} + {% if job.complete and not job.status == "stopped" and not job.status == "failed" %} + +

+ + + + {% trans "Download your export" %} + + +

+ {% endif %}
+ {% if job.complete and not job.status == "stopped" and not job.status == "failed" %}

From 282f7dd8d649dca3fbb7a5ac96e8850eada55e9f Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Tue, 7 Nov 2023 11:04:11 +1100 Subject: [PATCH 031/184] show filesize on user downloads page - add column to user download page to display filesize - adds a filter to display file sizes - don't download the user downloads page from notifications ;) --- .../notifications/items/user_export.html | 2 +- bookwyrm/templates/preferences/export-user.html | 9 ++++++++- bookwyrm/templatetags/utilities.py | 17 +++++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/bookwyrm/templates/notifications/items/user_export.html b/bookwyrm/templates/notifications/items/user_export.html index d4ab04faa..1df40dbac 100644 --- a/bookwyrm/templates/notifications/items/user_export.html +++ b/bookwyrm/templates/notifications/items/user_export.html @@ -11,5 +11,5 @@ {% block description %} {% url 'prefs-user-export' as url %} - {% blocktrans %}Your user export is ready.{% endblocktrans %} + {% blocktrans %}Your user export is ready.{% endblocktrans %} {% endblock %} diff --git a/bookwyrm/templates/preferences/export-user.html b/bookwyrm/templates/preferences/export-user.html index 0a45b8b0a..da8f537a6 100644 --- a/bookwyrm/templates/preferences/export-user.html +++ b/bookwyrm/templates/preferences/export-user.html @@ -1,5 +1,6 @@ {% extends 'preferences/layout.html' %} {% load i18n %} +{% load utilities %} {% block title %}{% trans "User Export" %}{% endblock %} @@ -40,9 +41,12 @@

{% trans "Date" %} + {% trans "Status" %} + {% trans "Size" %} +
+ {{ job.export_data|get_file_size }} + {% if job.complete and not job.status == "stopped" and not job.status == "failed" %}

diff --git a/bookwyrm/templatetags/utilities.py b/bookwyrm/templatetags/utilities.py index 42e67990f..3ae14c17c 100644 --- a/bookwyrm/templatetags/utilities.py +++ b/bookwyrm/templatetags/utilities.py @@ -125,3 +125,20 @@ def id_to_username(user_id): value = f"{name}@{domain}" return value + + +@register.filter(name="get_file_size") +def get_file_size(file): + """display the size of a file in human readable terms""" + + try: + raw_size = os.stat(file.path).st_size + if raw_size < 1024: + return f"{raw_size} bytes" + if raw_size < 1024**2: + return f"{raw_size/1024:.2f} KB" + if raw_size < 1024**3: + return f"{raw_size/1024**2:.2f} MB" + return f"{raw_size/1024**3:.2f} GB" + except Exception: # pylint: disable=broad-except + return "" From 0a5e1048ce041643affe67bf45036da9decb8fce Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Tue, 7 Nov 2023 12:09:06 +1100 Subject: [PATCH 032/184] Add more info to user export page (#3093) - match page title to menu - change description on IMPORT page from 'readthroughs' to 'reading history' - provide more information on export page about what is and is not included. --- bookwyrm/templates/import/import_user.html | 4 +-- .../templates/preferences/export-user.html | 35 ++++++++++++++++--- 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/bookwyrm/templates/import/import_user.html b/bookwyrm/templates/import/import_user.html index 3f0f7453d..29081df00 100644 --- a/bookwyrm/templates/import/import_user.html +++ b/bookwyrm/templates/import/import_user.html @@ -119,14 +119,14 @@ {% trans "Reading goals" %}

- {% trans "Reading goals for all years listed in the import file" %} + {% trans "Overwrites reading goals for all years listed in the import file" %}

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 BI)nfK delta 30831 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\n" "Language-Team: Basque\n" "Language: eu\n" @@ -42,15 +42,15 @@ msgstr "{i} erabilera" msgid "Unlimited" msgstr "Mugagabea" -#: bookwyrm/forms/edit_user.py:88 +#: bookwyrm/forms/edit_user.py:104 msgid "Incorrect password" msgstr "Pasahitz okerra" -#: bookwyrm/forms/edit_user.py:95 bookwyrm/forms/landing.py:90 +#: bookwyrm/forms/edit_user.py:111 bookwyrm/forms/landing.py:90 msgid "Password does not match" msgstr "Pasahitzak ez datoz bat" -#: bookwyrm/forms/edit_user.py:118 +#: bookwyrm/forms/edit_user.py:134 msgid "Incorrect Password" msgstr "Pasahitz okerra" @@ -102,8 +102,8 @@ msgstr "Zerrendaren ordena" msgid "Book Title" msgstr "Liburuaren izenburua" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 +#: bookwyrm/templates/shelf/shelf.html:203 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Balorazioa" @@ -145,7 +145,7 @@ msgstr "Arriskua" msgid "Automatically generated report" msgstr "Automatikoki sortutako txostena" -#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:47 +#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:48 #: bookwyrm/models/link.py:72 bookwyrm/templates/import/import_status.html:214 #: bookwyrm/templates/settings/link_domains/link_domains.html:19 msgid "Pending" @@ -171,23 +171,23 @@ msgstr "Moderatzaile ezabatzea" msgid "Domain block" msgstr "Domeinu blokeoa" -#: bookwyrm/models/book.py:283 +#: bookwyrm/models/book.py:282 msgid "Audiobook" msgstr "Audio-liburua" -#: bookwyrm/models/book.py:284 +#: bookwyrm/models/book.py:283 msgid "eBook" msgstr "eBook" -#: bookwyrm/models/book.py:285 +#: bookwyrm/models/book.py:284 msgid "Graphic novel" msgstr "Eleberri grafikoa" -#: bookwyrm/models/book.py:286 +#: bookwyrm/models/book.py:285 msgid "Hardcover" msgstr "Azal gogorra" -#: bookwyrm/models/book.py:287 +#: bookwyrm/models/book.py:286 msgid "Paperback" msgstr "Azal biguna" @@ -205,26 +205,26 @@ msgstr "Federatuta" msgid "Blocked" msgstr "Blokeatuta" -#: bookwyrm/models/fields.py:29 +#: bookwyrm/models/fields.py:30 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s ez da baliozko remote_id" -#: bookwyrm/models/fields.py:38 bookwyrm/models/fields.py:47 +#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s ez da baliozko erabiltzaile-izena" -#: bookwyrm/models/fields.py:192 bookwyrm/templates/layout.html:128 +#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "erabiltzaile-izena" -#: bookwyrm/models/fields.py:197 +#: bookwyrm/models/fields.py:198 msgid "A user with that username already exists." msgstr "Erabiltzaile-izen hori duen erabiltzailea dagoeneko existitzen da." -#: bookwyrm/models/fields.py:216 +#: bookwyrm/models/fields.py:217 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "Erabiltzaile-izen hori duen erabiltzailea dagoeneko existitzen da." msgid "Public" msgstr "Publikoa" -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:218 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Publikoa" msgid "Unlisted" msgstr "Zerrendatu gabea" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:219 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Zerrendatu gabea" msgid "Followers" msgstr "Jarraitzaileak" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:220 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -258,30 +258,30 @@ msgstr "Jarraitzaileak" msgid "Private" msgstr "Pribatua" -#: bookwyrm/models/import_job.py:48 bookwyrm/templates/import/import.html:174 +#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:81 -#: bookwyrm/templates/settings/users/user_info.html:28 +#: bookwyrm/templates/settings/users/user_admin.html:87 +#: bookwyrm/templates/settings/users/user_info.html:33 msgid "Active" msgstr "Aktiboa" -#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:172 +#: bookwyrm/models/import_job.py:50 bookwyrm/templates/import/import.html:172 msgid "Complete" msgstr "Osatuta" -#: bookwyrm/models/import_job.py:50 +#: bookwyrm/models/import_job.py:51 msgid "Stopped" msgstr "Geldituta" -#: bookwyrm/models/import_job.py:83 bookwyrm/models/import_job.py:91 +#: bookwyrm/models/import_job.py:84 bookwyrm/models/import_job.py:92 msgid "Import stopped" msgstr "Inportazioa gelditu da" -#: bookwyrm/models/import_job.py:363 bookwyrm/models/import_job.py:388 +#: bookwyrm/models/import_job.py:356 bookwyrm/models/import_job.py:381 msgid "Error loading book" msgstr "Errorea liburua kargatzean" -#: bookwyrm/models/import_job.py:372 +#: bookwyrm/models/import_job.py:365 msgid "Could not find a match for book" msgstr "Ezin izan da libururako parekorik aurkitu" @@ -310,47 +310,47 @@ msgstr "Iruzkina" #: bookwyrm/models/report.py:85 msgid "Resolved report" -msgstr "" +msgstr "Ebatzitako txostena" #: bookwyrm/models/report.py:86 msgid "Re-opened report" -msgstr "" +msgstr "Berrirekitako txostena" #: bookwyrm/models/report.py:87 msgid "Messaged reporter" -msgstr "" +msgstr "Salatzaileari mezua bidali zaio" #: bookwyrm/models/report.py:88 msgid "Messaged reported user" -msgstr "" +msgstr "Salatutako erabiltzaileari mezua bidali zaio" #: bookwyrm/models/report.py:89 msgid "Suspended user" -msgstr "" +msgstr "Erabiltzailea debekatu da" #: bookwyrm/models/report.py:90 msgid "Un-suspended user" -msgstr "" +msgstr "Erabiltzaileari debekua kendu zaio" #: bookwyrm/models/report.py:91 msgid "Changed user permission level" -msgstr "" +msgstr "Erabiltzailearen baimen-maila aldatu da" #: bookwyrm/models/report.py:92 msgid "Deleted user account" -msgstr "" +msgstr "Erabiltzaile-kontua ezabatu da" #: bookwyrm/models/report.py:93 msgid "Blocked domain" -msgstr "" +msgstr "Domeinua blokeatu da" #: bookwyrm/models/report.py:94 msgid "Approved domain" -msgstr "" +msgstr "Domeinua onartu da" #: bookwyrm/models/report.py:95 msgid "Deleted item" -msgstr "" +msgstr "Elementua ezabatu da" #: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:307 msgid "Reviews" @@ -368,103 +368,103 @@ msgstr "Aipuak" msgid "Everything else" msgstr "Gainerako guztia" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home Timeline" msgstr "Hasierako denbora-lerroa" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home" msgstr "Hasiera" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 msgid "Books Timeline" msgstr "Liburuen denbora-lerroa" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:97 +#: bookwyrm/templates/user/layout.html:112 msgid "Books" msgstr "Liburuak" -#: bookwyrm/settings.py:296 +#: bookwyrm/settings.py:303 msgid "English" msgstr "English (Ingelesa)" -#: bookwyrm/settings.py:297 +#: bookwyrm/settings.py:304 msgid "Català (Catalan)" msgstr "Català (katalana)" -#: bookwyrm/settings.py:298 +#: bookwyrm/settings.py:305 msgid "Deutsch (German)" msgstr "Deutsch (alemana)" -#: bookwyrm/settings.py:299 +#: bookwyrm/settings.py:306 msgid "Esperanto (Esperanto)" msgstr "Esperantoa" -#: bookwyrm/settings.py:300 +#: bookwyrm/settings.py:307 msgid "Español (Spanish)" msgstr "Español (espainiera)" -#: bookwyrm/settings.py:301 +#: bookwyrm/settings.py:308 msgid "Euskara (Basque)" msgstr "Euskara" -#: bookwyrm/settings.py:302 +#: bookwyrm/settings.py:309 msgid "Galego (Galician)" msgstr "Galego (Galiziera)" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:310 msgid "Italiano (Italian)" msgstr "Italiano (Italiera)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:311 msgid "Suomi (Finnish)" msgstr "Suomi (finlandiera)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:312 msgid "Français (French)" msgstr "Français (frantses)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:313 msgid "Lietuvių (Lithuanian)" msgstr "Lituano (lituaniera)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:314 msgid "Nederlands (Dutch)" -msgstr "" +msgstr "Herbehereak (nederlandera)" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:315 msgid "Norsk (Norwegian)" msgstr "Norsk (Norvegiera)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:316 msgid "Polski (Polish)" msgstr "Polski (poloniera)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:317 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil (Brasilgo Portugesa)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:318 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (Europako Portugesa)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:319 msgid "Română (Romanian)" msgstr "Română (errumaniera)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:320 msgid "Svenska (Swedish)" msgstr "Svenska (suediera)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:321 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文 (Txinera soildua)" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:322 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (Txinera tradizionala)" @@ -575,7 +575,7 @@ msgid "Software version:" msgstr "Softwarearen bertsioa:" #: bookwyrm/templates/about/layout.html:30 -#: bookwyrm/templates/embed-layout.html:33 +#: bookwyrm/templates/embed-layout.html:34 #: bookwyrm/templates/snippets/footer.html:8 #, python-format msgid "About %(site_name)s" @@ -680,7 +680,7 @@ msgstr "Aurtengo irakurketarik laburrena…" #: bookwyrm/templates/annual_summary/layout.html:157 #: bookwyrm/templates/annual_summary/layout.html:178 #: bookwyrm/templates/annual_summary/layout.html:247 -#: bookwyrm/templates/book/book.html:63 +#: bookwyrm/templates/book/book.html:65 #: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/landing/large-book.html:26 #: bookwyrm/templates/landing/small-book.html:18 @@ -768,24 +768,24 @@ msgid "View ISNI record" msgstr "Ikusi ISNI erregistroa" #: bookwyrm/templates/author/author.html:95 -#: bookwyrm/templates/book/book.html:173 +#: bookwyrm/templates/book/book.html:175 msgid "View on ISFDB" msgstr "Ikus ISFDB webgunean" #: bookwyrm/templates/author/author.html:100 #: bookwyrm/templates/author/sync_modal.html:5 -#: bookwyrm/templates/book/book.html:140 +#: bookwyrm/templates/book/book.html:142 #: bookwyrm/templates/book/sync_modal.html:5 msgid "Load data" msgstr "Kargatu datuak" #: bookwyrm/templates/author/author.html:104 -#: bookwyrm/templates/book/book.html:144 +#: bookwyrm/templates/book/book.html:146 msgid "View on OpenLibrary" msgstr "OpenLibraryn ikusi" #: bookwyrm/templates/author/author.html:119 -#: bookwyrm/templates/book/book.html:158 +#: bookwyrm/templates/book/book.html:160 msgid "View on Inventaire" msgstr "Inventairen ikusi" @@ -797,11 +797,7 @@ msgstr "LibraryThing-en ikusi" msgid "View on Goodreads" msgstr "Goodreads-en ikusi" -#: bookwyrm/templates/author/author.html:151 -msgid "View ISFDB entry" -msgstr "Ikus ISFDB atala" - -#: bookwyrm/templates/author/author.html:166 +#: bookwyrm/templates/author/author.html:158 #, python-format msgid "Books by %(name)s" msgstr "%(name)s(e)k idatzitako liburuak" @@ -959,19 +955,19 @@ msgstr "Berretsi" msgid "Unable to connect to remote source." msgstr "Ezin izan da urruneko edukira konektatu." -#: bookwyrm/templates/book/book.html:71 bookwyrm/templates/book/book.html:72 +#: bookwyrm/templates/book/book.html:73 bookwyrm/templates/book/book.html:74 msgid "Edit Book" msgstr "Editatu liburua" -#: bookwyrm/templates/book/book.html:97 bookwyrm/templates/book/book.html:100 +#: bookwyrm/templates/book/book.html:99 bookwyrm/templates/book/book.html:102 msgid "Click to add cover" msgstr "Egin klik azala gehitzeko" -#: bookwyrm/templates/book/book.html:106 +#: bookwyrm/templates/book/book.html:108 msgid "Failed to load cover" msgstr "Ezin izan da azala kargatu" -#: bookwyrm/templates/book/book.html:117 +#: bookwyrm/templates/book/book.html:119 msgid "Click to enlarge" msgstr "Egin click handitzeko" @@ -1046,13 +1042,13 @@ msgstr "Lekuak" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:90 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:91 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Zerrendak" @@ -1076,11 +1072,11 @@ msgstr "ISBN:" #: bookwyrm/templates/book/book_identifiers.html:12 #: bookwyrm/templates/book/book_identifiers.html:13 msgid "Copy ISBN" -msgstr "" +msgstr "ISBN-a kopiatu" #: bookwyrm/templates/book/book_identifiers.html:16 msgid "Copied ISBN!" -msgstr "" +msgstr "ISBN-a kopiatu!" #: bookwyrm/templates/book/book_identifiers.html:23 #: bookwyrm/templates/book/edit/edit_book_form.html:352 @@ -1117,7 +1113,7 @@ msgstr "Kargatu azala:" #: bookwyrm/templates/book/cover_add_modal.html:23 #: bookwyrm/templates/book/edit/edit_book_form.html:250 -msgid "Load cover from url:" +msgid "Load cover from URL:" msgstr "Kargatu azala URLtik:" #: bookwyrm/templates/book/cover_show_modal.html:6 @@ -1245,7 +1241,7 @@ msgstr "Izenburua:" #: bookwyrm/templates/book/edit/edit_book_form.html:35 msgid "Sort Title:" -msgstr "" +msgstr "Izenburuaren arabera ordenatu:" #: bookwyrm/templates/book/edit/edit_book_form.html:44 msgid "Subtitle:" @@ -1328,7 +1324,7 @@ msgid "Add Another Author" msgstr "Gehitu beste egile bat" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:147 +#: bookwyrm/templates/shelf/shelf.html:162 msgid "Cover" msgstr "Azala" @@ -1373,7 +1369,7 @@ msgstr "%(book_title)s(r)en edizioak" #: bookwyrm/templates/book/editions/editions.html:8 #, python-format msgid "Editions of %(work_title)s" -msgstr "" +msgstr "%(work_title)s lanaren edizioak" #: bookwyrm/templates/book/editions/editions.html:55 msgid "Can't find the edition you're looking for?" @@ -1529,22 +1525,22 @@ msgstr "%(pages)s orrialde" msgid "%(languages)s language" msgstr "%(languages)s hizkuntza" -#: bookwyrm/templates/book/publisher_info.html:65 +#: bookwyrm/templates/book/publisher_info.html:63 #, python-format msgid "Published %(date)s by %(publisher)s." msgstr "%(date)s(e)an %(publisher)s(e)n argitaratua." +#: bookwyrm/templates/book/publisher_info.html:65 +#, python-format +msgid "Published by %(publisher)s." +msgstr "%(publisher)s(e)k argitaratua." + #: bookwyrm/templates/book/publisher_info.html:67 #, python-format msgid "Published %(date)s" msgstr "%(date)s(e)an argitaratua" -#: bookwyrm/templates/book/publisher_info.html:69 -#, python-format -msgid "Published by %(publisher)s." -msgstr "%(publisher)s(e)k argitaratua." - -#: bookwyrm/templates/book/rating.html:13 +#: bookwyrm/templates/book/rating.html:19 msgid "rated it" msgstr "baloratu du" @@ -1552,12 +1548,12 @@ msgstr "baloratu du" msgid "Series by" msgstr "Seriearen sortzailea: " -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 #, python-format msgid "Book %(series_number)s" msgstr "%(series_number)s. liburua" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 msgid "Unsorted Book" msgstr "Sailkatu gabeko liburua" @@ -1587,7 +1583,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Barkatu! Ezin izan dugu kode hori aurkitu." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:92 +#: bookwyrm/templates/settings/users/user_info.html:98 msgid "Confirmation code:" msgstr "Berrespen kodea:" @@ -1681,6 +1677,7 @@ msgstr "Iradokizunak" #: bookwyrm/templates/ostatus/subscribe.html:42 #: bookwyrm/templates/ostatus/success.html:17 #: bookwyrm/templates/ostatus/success.html:18 +#: bookwyrm/templates/user/moved.html:19 bookwyrm/templates/user/moved.html:20 #: bookwyrm/templates/user/user_preview.html:16 #: bookwyrm/templates/user/user_preview.html:17 msgid "Locked account" @@ -1755,7 +1752,7 @@ msgstr "%(username)s(e)k To Read, Currently Reading, Read, and Stopped Reading are default shelves. When you change the reading status of a book it will automatically be moved to the matching shelf. A book can only be on one default shelf at a time." -msgstr "Irakurtzeko, Irakurtzen, Irakurrita eta Irakurtzeari utzita lehenetsitako apalak dira. Liburu baten irakurketa-egoera aldatzen duzunean automatikoki aldatuko da dagokion apalera. Liburu bat lehentsitako apal bakarrean egon daiteke aldiko." +msgstr "Irakurtzekoak, Orain irakurtzen, Irakurritakoak eta Irakurtzeari utzita lehenetsitako apalak dira. Liburu baten irakurketa-egoera aldatzen duzunean automatikoki aldatuko da dagokion apalera. Liburu bat lehentsitako apal bakarrean egon daiteke aldiko." #: bookwyrm/templates/guided_tour/user_books.html:32 msgid "Reading status shelves" @@ -2702,7 +2699,8 @@ msgstr "Talde berri bat sor dezakezu edo existitzen den batean sar zaitezke. Tal #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:85 +#: bookwyrm/templates/user/groups.html:6 +#: bookwyrm/templates/user/layout.html:100 msgid "Groups" msgstr "Taldeak" @@ -2747,7 +2745,7 @@ msgid "This is your user profile. All your latest activities will be listed here msgstr "Hau zure erabiltzaile profila da. Zure azken jarduerak hemen zerrendatuko dira. Bookwyrm-en beste erabiltzaile batzuek ere ikus ditzakete orrialde honen zatiak - ikus dezaketena pribatutasun ezarpenen araberakoa da." #: bookwyrm/templates/guided_tour/user_profile.html:11 -#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:14 +#: bookwyrm/templates/user/layout.html:20 bookwyrm/templates/user/user.html:14 msgid "User Profile" msgstr "Erabiltzailearen profila" @@ -2756,7 +2754,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "Fitxa honetan erakusten da irakurri duzun guztia urteko irakurketa-helburuari begira, edo irakurketa-helburu bat ezartzeko aukera ematen dizu. Ez duzu irakurketa-helbururik ezarri behar hori ez bada zure asmoetan!" #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:79 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 msgid "Reading Goal" msgstr "Irakurketa-helburua" @@ -2795,7 +2793,7 @@ msgstr "Ez dago aktibitaterik oraindik traola honentzat!" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:64 +#: bookwyrm/templates/shelf/shelf.html:79 msgid "Import Books" msgstr "Inportatu liburuak" @@ -2806,14 +2804,14 @@ msgstr "CSV fitxategia ez da baliozkoa" #: bookwyrm/templates/import/import.html:21 #, python-format msgid "Currently, you are allowed to import %(display_size)s books every %(import_limit_reset)s day." -msgid_plural "Currently, you are allowed to import %(import_size_limit)s books every %(import_limit_reset)s days." -msgstr[0] "" -msgstr[1] "" +msgid_plural "Currently, you are allowed to import %(display_size)s books every %(import_limit_reset)s days." +msgstr[0] "Une honetan, %(display_size)s liburu inporta ditzakezu %(import_limit_reset)s egun bakoitzeko." +msgstr[1] "Une honetan, %(display_size)s liburu inporta ditzakezu %(import_limit_reset)s egunero." #: bookwyrm/templates/import/import.html:27 #, python-format msgid "You have %(display_left)s left." -msgstr "" +msgstr "%(display_left)s geratzen zaizkizu." #: bookwyrm/templates/import/import.html:34 #, python-format @@ -2867,7 +2865,7 @@ msgstr "Inportatutako berrikuspenen pribatutasun ezarpena:" #: bookwyrm/templates/import/import.html:106 #: bookwyrm/templates/import/import.html:108 -#: bookwyrm/templates/preferences/layout.html:35 +#: bookwyrm/templates/preferences/layout.html:43 #: bookwyrm/templates/settings/federation/instance_blocklist.html:78 msgid "Import" msgstr "Inportatu" @@ -2966,8 +2964,8 @@ msgid "Row" msgstr "Errenkada" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:148 -#: bookwyrm/templates/shelf/shelf.html:170 +#: bookwyrm/templates/shelf/shelf.html:163 +#: bookwyrm/templates/shelf/shelf.html:185 msgid "Title" msgstr "Izenburua" @@ -2980,8 +2978,8 @@ msgid "Openlibrary key" msgstr "Openlibrary-ren giltza" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:149 -#: bookwyrm/templates/shelf/shelf.html:173 +#: bookwyrm/templates/shelf/shelf.html:164 +#: bookwyrm/templates/shelf/shelf.html:188 msgid "Author" msgstr "Egilea" @@ -3138,7 +3136,7 @@ msgid "Login" msgstr "Hasi saioa" #: bookwyrm/templates/landing/login.html:7 -#: bookwyrm/templates/landing/login.html:36 bookwyrm/templates/layout.html:136 +#: bookwyrm/templates/landing/login.html:36 bookwyrm/templates/layout.html:142 #: bookwyrm/templates/ostatus/error.html:37 msgid "Log in" msgstr "Hasi saioa" @@ -3149,7 +3147,7 @@ msgstr "Ondo! Helbide elektronikoa baieztatu duzu." #: bookwyrm/templates/landing/login.html:21 #: bookwyrm/templates/landing/reactivate.html:17 -#: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:28 +#: bookwyrm/templates/layout.html:128 bookwyrm/templates/ostatus/error.html:28 #: bookwyrm/templates/snippets/register_form.html:4 msgid "Username:" msgstr "Erabiltzaile-izena:" @@ -3157,13 +3155,13 @@ msgstr "Erabiltzaile-izena:" #: bookwyrm/templates/landing/login.html:27 #: bookwyrm/templates/landing/password_reset.html:26 #: bookwyrm/templates/landing/reactivate.html:23 -#: bookwyrm/templates/layout.html:131 bookwyrm/templates/ostatus/error.html:32 +#: bookwyrm/templates/layout.html:132 bookwyrm/templates/ostatus/error.html:32 #: bookwyrm/templates/preferences/2fa.html:91 #: bookwyrm/templates/snippets/register_form.html:45 msgid "Password:" msgstr "Pasahitza:" -#: bookwyrm/templates/landing/login.html:39 bookwyrm/templates/layout.html:133 +#: bookwyrm/templates/landing/login.html:39 bookwyrm/templates/layout.html:139 #: bookwyrm/templates/ostatus/error.html:34 msgid "Forgot your password?" msgstr "Zure pasahitza ahaztu duzu?" @@ -3206,35 +3204,39 @@ msgstr "Berriz aktibatu kontua" msgid "%(site_name)s search" msgstr "%(site_name)s bilaketa" -#: bookwyrm/templates/layout.html:37 +#: bookwyrm/templates/layout.html:39 msgid "Search for a book, user, or list" msgstr "Bilatu liburu, erabiltzaile edo zerrenda bat" -#: bookwyrm/templates/layout.html:52 bookwyrm/templates/layout.html:53 +#: bookwyrm/templates/layout.html:54 bookwyrm/templates/layout.html:55 msgid "Scan Barcode" msgstr "Eskaneatu barra-kodea" -#: bookwyrm/templates/layout.html:67 +#: bookwyrm/templates/layout.html:69 msgid "Main navigation menu" msgstr "Nabigazio-menu nagusia" -#: bookwyrm/templates/layout.html:87 +#: bookwyrm/templates/layout.html:88 msgid "Feed" msgstr "Jarioa" -#: bookwyrm/templates/layout.html:132 bookwyrm/templates/ostatus/error.html:33 +#: bookwyrm/templates/layout.html:134 bookwyrm/templates/ostatus/error.html:33 msgid "password" msgstr "pasahitza" -#: bookwyrm/templates/layout.html:144 +#: bookwyrm/templates/layout.html:136 +msgid "Show/Hide password" +msgstr "Erakutsi/Ezkutatu pasahitza" + +#: bookwyrm/templates/layout.html:150 msgid "Join" msgstr "Sartu" -#: bookwyrm/templates/layout.html:179 +#: bookwyrm/templates/layout.html:196 msgid "Successfully posted status" msgstr "Egoera ondo bidali da" -#: bookwyrm/templates/layout.html:180 +#: bookwyrm/templates/layout.html:197 msgid "Error posting status" msgstr "Errorea egoera bidaltzean" @@ -3479,7 +3481,7 @@ msgstr "Gordeta" #: bookwyrm/templates/lists/list_items.html:50 msgid "No lists found." -msgstr "" +msgstr "Ez da listarik aurkitu." #: bookwyrm/templates/lists/lists.html:14 bookwyrm/templates/user/lists.html:14 msgid "Your Lists" @@ -3493,6 +3495,23 @@ msgstr "Zerrenda guztiak" msgid "Saved Lists" msgstr "Gordetako zerrendak" +#: bookwyrm/templates/moved.html:27 +#, python-format +msgid "You have moved your account to %(username)s" +msgstr "Kontua hona mugitu duzu: %(username)s" + +#: bookwyrm/templates/moved.html:32 +msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "Ezin duzu desegin mugimena funtzionaltasun osoa berrezartzeko, baina baliteke jarraitzaile batzuek kontu honi jarraitzeari utzi izana." + +#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +msgid "Undo move" +msgstr "Desegin mugimena" + +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +msgid "Log out" +msgstr "Amaitu saioa" + #: bookwyrm/templates/notifications/items/accept.html:18 #, python-format msgid "%(related_user)s accepted your invitation to join group \"%(group_name)s\"" @@ -3721,8 +3740,8 @@ msgstr "%(related_user)s eta beste %(other #, python-format msgid "A new link domain needs review" msgid_plural "%(display_count)s new link domains need moderation" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Esteken domeinu berri batek moderazioa behar du" +msgstr[1] "%(display_count)s esteken domeinuek moderazioa behar dute" #: bookwyrm/templates/notifications/items/mention.html:20 #, python-format @@ -3744,6 +3763,16 @@ msgstr "%(related_user)s erabiltzaileak %(related_user)s mentioned you in a status" msgstr "%(related_user)s(e)k aipatu egin zaitu egoera batean" +#: bookwyrm/templates/notifications/items/move_user.html:18 +#, python-format +msgid "%(related_user)s has moved to %(username)s" +msgstr "%(related_user)s hona mugitu da: %(username)s" + +#: bookwyrm/templates/notifications/items/move_user.html:25 +#, python-format +msgid "%(related_user)s has undone their move" +msgstr "%(related_user)s erabiltzaileak mugimena desegin du" + #: bookwyrm/templates/notifications/items/remove.html:17 #, python-format msgid "has been removed from your group \"%(group_name)s\"" @@ -3782,7 +3811,7 @@ msgstr[0] "Salaketa berri batek moderatzea behar du" msgstr[1] "%(display_count)s salaketa berrik moderatzea behar dute" #: bookwyrm/templates/notifications/items/status_preview.html:4 -#: bookwyrm/templates/snippets/status/content_status.html:73 +#: bookwyrm/templates/snippets/status/content_status.html:62 msgid "Content warning" msgstr "Edukiari buruzko abisua" @@ -4000,9 +4029,51 @@ msgstr "Baieztatu zure pasahitza 2FA ezartzen hasteko." msgid "Set up 2FA" msgstr "Ezarri 2FA" +#: bookwyrm/templates/preferences/alias_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:7 +#: bookwyrm/templates/preferences/move_user.html:39 +msgid "Move Account" +msgstr "Mugitu kontua" + +#: bookwyrm/templates/preferences/alias_user.html:7 +#: bookwyrm/templates/preferences/alias_user.html:34 +msgid "Create Alias" +msgstr "Sortu ezizena" + +#: bookwyrm/templates/preferences/alias_user.html:12 +msgid "Add another account as an alias" +msgstr "Gehitu beste kontu bat ezizen gisa" + +#: bookwyrm/templates/preferences/alias_user.html:16 +msgid "Marking another account as an alias is required if you want to move that account to this one." +msgstr "Beste kontu bat ezizen gisa markatzea beharrezkoa da kontu hori honetara mugitu nahi baduzu." + +#: bookwyrm/templates/preferences/alias_user.html:19 +msgid "This is a reversable action and will not change the functionality of this account." +msgstr "Ekintza atzeraezina da hau eta ez du aldatuko kontu honen funtzionaltasuna." + +#: bookwyrm/templates/preferences/alias_user.html:25 +msgid "Enter the username for the account you want to add as an alias e.g. user@example.com :" +msgstr "Sartu ezizena gehitu nahi diozun kontuaren erabiltzaile-izena, adibidez erabiltzailea@adibidea.eus:" + +#: bookwyrm/templates/preferences/alias_user.html:30 +#: bookwyrm/templates/preferences/move_user.html:35 +msgid "Confirm your password:" +msgstr "Berretsi ezazu zure pasahitza:" + +#: bookwyrm/templates/preferences/alias_user.html:39 +#: bookwyrm/templates/preferences/layout.html:28 +msgid "Aliases" +msgstr "Ezizenak" + +#: bookwyrm/templates/preferences/alias_user.html:49 +msgid "Remove alias" +msgstr "Kendu ezizena" + #: bookwyrm/templates/preferences/blocks.html:4 #: bookwyrm/templates/preferences/blocks.html:7 -#: bookwyrm/templates/preferences/layout.html:46 +#: bookwyrm/templates/preferences/layout.html:54 msgid "Blocked Users" msgstr "Blokeatutako erabiltzaileak" @@ -4032,7 +4103,7 @@ msgstr "Pasahitz Berria:" #: bookwyrm/templates/preferences/delete_user.html:4 #: bookwyrm/templates/preferences/delete_user.html:7 #: bookwyrm/templates/preferences/delete_user.html:40 -#: bookwyrm/templates/preferences/layout.html:28 +#: bookwyrm/templates/preferences/layout.html:36 #: bookwyrm/templates/settings/users/delete_user_form.html:22 msgid "Delete Account" msgstr "Ezabatu kontua" @@ -4154,18 +4225,47 @@ msgstr "Deskargatu fitxategia" msgid "Account" msgstr "Kontua" -#: bookwyrm/templates/preferences/layout.html:31 +#: bookwyrm/templates/preferences/layout.html:32 +msgid "Move Account" +msgstr "Mugitu kontua" + +#: bookwyrm/templates/preferences/layout.html:39 msgid "Data" msgstr "Datuak" -#: bookwyrm/templates/preferences/layout.html:39 +#: bookwyrm/templates/preferences/layout.html:47 msgid "CSV export" msgstr "Esportatu CSVra" -#: bookwyrm/templates/preferences/layout.html:42 +#: bookwyrm/templates/preferences/layout.html:50 msgid "Relationships" msgstr "Harremanak" +#: bookwyrm/templates/preferences/move_user.html:12 +msgid "Migrate account to another server" +msgstr "Migratu kontua beste zerbitzari batera" + +#: bookwyrm/templates/preferences/move_user.html:16 +msgid "Moving your account will notify all your followers and direct them to follow the new account." +msgstr "Kontua mugitzean, zure jarraitzaile guztiei jakinaraziko zaie eta kontu berrira bideratuko dira jarrai dezaten." + +#: bookwyrm/templates/preferences/move_user.html:19 +#, python-format +msgid "\n" +" %(user)s will be marked as moved and will not be discoverable or usable unless you undo the move.\n" +" " +msgstr "\n" +" %(user)s mugitutako gisa markatuko da eta ezingo da aurkitu edo erabili mugimendua desegin arte.\n" +" " + +#: bookwyrm/templates/preferences/move_user.html:25 +msgid "Remember to add this user as an alias of the target account before you try to move." +msgstr "Gogoratu erabiltzaile hau helburuko kontuaren alias gisa gehitzea mugitu aurretik." + +#: bookwyrm/templates/preferences/move_user.html:30 +msgid "Enter the username for the account you want to move to e.g. user@example.com :" +msgstr "Sartu mugitu nahi duzun kontuaren erabiltzaile-izena, adib. erabiltzailea@adibidea.eus:" + #: bookwyrm/templates/reading_progress/finish.html:5 #, python-format msgid "Finish \"%(book_title)s\"" @@ -4562,7 +4662,7 @@ msgstr "Celery-ren egoera" #: bookwyrm/templates/settings/celery.html:14 msgid "You can set up monitoring to check if Celery is running by querying:" -msgstr "" +msgstr "Monitorizazioa konfigura dezakezu Celery kontsulta bidez exekutatzen ari bada:" #: bookwyrm/templates/settings/celery.html:22 msgid "Queues" @@ -4570,23 +4670,23 @@ msgstr "Ilarak" #: bookwyrm/templates/settings/celery.html:26 msgid "Streams" -msgstr "" +msgstr "Igorpenak" #: bookwyrm/templates/settings/celery.html:32 -msgid "Broadcasts" -msgstr "Emanaldiak" +msgid "Broadcast" +msgstr "Emisioa" #: bookwyrm/templates/settings/celery.html:38 msgid "Inbox" -msgstr "" +msgstr "Sarrera ontzia" #: bookwyrm/templates/settings/celery.html:51 msgid "Import triggered" -msgstr "" +msgstr "Inportazioa abiarazi da" #: bookwyrm/templates/settings/celery.html:57 msgid "Connectors" -msgstr "" +msgstr "Konektoreak" #: bookwyrm/templates/settings/celery.html:64 #: bookwyrm/templates/settings/site.html:91 @@ -4595,7 +4695,7 @@ msgstr "Irudiak" #: bookwyrm/templates/settings/celery.html:70 msgid "Suggested Users" -msgstr "" +msgstr "Iradokitako erabiltzaileak" #: bookwyrm/templates/settings/celery.html:83 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:43 @@ -4605,7 +4705,7 @@ msgstr "Eposta" #: bookwyrm/templates/settings/celery.html:89 msgid "Misc" -msgstr "" +msgstr "Askotarikoa" #: bookwyrm/templates/settings/celery.html:96 msgid "Low priority" @@ -4663,11 +4763,11 @@ msgstr "Ezin izan da Celeryra konektatu" #: bookwyrm/templates/settings/celery.html:178 #: bookwyrm/templates/settings/celery.html:201 msgid "Clear Queues" -msgstr "" +msgstr "Garbitu kontsultak" #: bookwyrm/templates/settings/celery.html:182 msgid "Clearing queues can cause serious problems including data loss! Only play with this if you really know what you're doing. You must shut down the Celery worker before you do this." -msgstr "" +msgstr "Kontsultak garbitzean, arazo larriak ekar ditzake, hala nola, datuen galera. Aldatu ezarpen hauek soilik zer egiten ari zaren baldin badakizu. Celery-ren prozesuak itzali behar dituzu lehenik hau egin baino lehen." #: bookwyrm/templates/settings/celery.html:208 msgid "Errors" @@ -4899,19 +4999,19 @@ msgstr "Instantzia:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:119 msgid "Status:" msgstr "Egoera:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:107 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Software:" msgstr "Softwarea:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:110 +#: bookwyrm/templates/settings/users/user_info.html:116 msgid "Version:" msgstr "Bertsioa:" @@ -4924,7 +5024,7 @@ msgid "Details" msgstr "Xehetasunak" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:69 +#: bookwyrm/templates/user/layout.html:84 msgid "Activity" msgstr "Jarduera" @@ -4938,7 +5038,7 @@ msgid "View all" msgstr "Ikusi guztiak" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:60 +#: bookwyrm/templates/settings/users/user_info.html:66 msgid "Reports:" msgstr "Salaketak:" @@ -4955,7 +5055,7 @@ msgid "Blocked by us:" msgstr "Guk bloketatuta:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:117 +#: bookwyrm/templates/settings/users/user_info.html:123 msgid "Notes" msgstr "Oharrak" @@ -5035,7 +5135,7 @@ msgstr "Erabiltzen da hori inportazioekin gauzak benetan gaizki doazenean eta ar #: bookwyrm/templates/settings/imports/imports.html:31 msgid "While imports are disabled, users will not be allowed to start new imports, but existing imports will not be affected." -msgstr "" +msgstr "Inportazioak desgaituta dauden bitartean, erabiltzaileek ezingo dituzte inportazio berriak hasi, baina dauden inportazioei ez die eragingo." #: bookwyrm/templates/settings/imports/imports.html:36 msgid "Disable imports" @@ -5419,22 +5519,22 @@ msgstr "Salatutako estekak" #: bookwyrm/templates/settings/reports/report.html:66 msgid "Moderation Activity" -msgstr "" +msgstr "Moderazioaren jarduera" #: bookwyrm/templates/settings/reports/report.html:73 #, python-format msgid "%(user)s opened this report" -msgstr "" +msgstr "%(user)s erabiltzaileak txosten hau ireki du" #: bookwyrm/templates/settings/reports/report.html:86 #, python-format msgid "%(user)s commented on this report:" -msgstr "" +msgstr "%(user)s erabiltzaileak txosten honetan iruzkindu du:" #: bookwyrm/templates/settings/reports/report.html:90 #, python-format msgid "%(user)s took an action on this report:" -msgstr "" +msgstr "%(user)s erabiltzaileak neurriak hartu ditu txosten honetan:" #: bookwyrm/templates/settings/reports/report_header.html:6 #, python-format @@ -5458,7 +5558,7 @@ msgstr "#%(report_id)s salaketa: @%(username)s erabiltzailea" #: bookwyrm/templates/settings/reports/report_links_table.html:19 msgid "Approve domain" -msgstr "" +msgstr "Onartu domeinua" #: bookwyrm/templates/settings/reports/report_links_table.html:26 msgid "Block domain" @@ -5675,17 +5775,22 @@ msgstr "Azken jarduera" msgid "Remote instance" msgstr "Urruneko instantzia" -#: bookwyrm/templates/settings/users/user_admin.html:86 +#: bookwyrm/templates/settings/users/user_admin.html:82 +#: bookwyrm/templates/settings/users/user_info.html:29 +msgid "Moved" +msgstr "Mugituta" + +#: bookwyrm/templates/settings/users/user_admin.html:93 msgid "Deleted" msgstr "Ezabatuta" -#: bookwyrm/templates/settings/users/user_admin.html:92 -#: bookwyrm/templates/settings/users/user_info.html:32 +#: bookwyrm/templates/settings/users/user_admin.html:99 +#: bookwyrm/templates/settings/users/user_info.html:38 msgid "Inactive" msgstr "Inaktiboa" -#: bookwyrm/templates/settings/users/user_admin.html:101 -#: bookwyrm/templates/settings/users/user_info.html:127 +#: bookwyrm/templates/settings/users/user_admin.html:108 +#: bookwyrm/templates/settings/users/user_info.html:133 msgid "Not set" msgstr "Ezarri gabe" @@ -5697,55 +5802,55 @@ msgstr "Ikusi erablitzailearen profila" msgid "Go to user admin" msgstr "Joan erabiltzaileen administraziora" -#: bookwyrm/templates/settings/users/user_info.html:40 +#: bookwyrm/templates/settings/users/user_info.html:46 msgid "Local" msgstr "Lokala" -#: bookwyrm/templates/settings/users/user_info.html:42 +#: bookwyrm/templates/settings/users/user_info.html:48 msgid "Remote" msgstr "Urrunekoa" -#: bookwyrm/templates/settings/users/user_info.html:51 +#: bookwyrm/templates/settings/users/user_info.html:57 msgid "User details" msgstr "Erabiltzailearen xehetasunak" -#: bookwyrm/templates/settings/users/user_info.html:55 +#: bookwyrm/templates/settings/users/user_info.html:61 msgid "Email:" msgstr "Eposta:" -#: bookwyrm/templates/settings/users/user_info.html:65 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "(View reports)" msgstr "(Ikusi salaketak)" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Blocked by count:" msgstr "Zenbatek blokeatu duten:" -#: bookwyrm/templates/settings/users/user_info.html:74 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Date added:" msgstr "Noiz gehitua:" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Last active date:" msgstr "Azkenekoz aktibo:" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:86 msgid "Manually approved followers:" msgstr "Eskuz onartutako jarraitzaileak:" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:89 msgid "Discoverable:" msgstr "Aurkigarria:" -#: bookwyrm/templates/settings/users/user_info.html:87 +#: bookwyrm/templates/settings/users/user_info.html:93 msgid "Deactivation reason:" msgstr "Desaktibatzeko arrazoia:" -#: bookwyrm/templates/settings/users/user_info.html:102 +#: bookwyrm/templates/settings/users/user_info.html:108 msgid "Instance details" msgstr "Instantziaren xehetasunak" -#: bookwyrm/templates/settings/users/user_info.html:124 +#: bookwyrm/templates/settings/users/user_info.html:130 msgid "View instance" msgstr "Ikusi instantzia" @@ -5882,7 +5987,7 @@ msgid "Need help?" msgstr "Laguntzarik behar?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:72 +#: bookwyrm/templates/shelf/shelf.html:87 msgid "Create shelf" msgstr "Sortu apala" @@ -5890,58 +5995,66 @@ msgstr "Sortu apala" msgid "Edit Shelf" msgstr "Editatu apala" -#: bookwyrm/templates/shelf/shelf.html:24 +#: bookwyrm/templates/shelf/shelf.html:25 +msgid "You have have moved to" +msgstr "Hona mugitu zara:" + +#: bookwyrm/templates/shelf/shelf.html:28 +msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "Ezin duzu desegin mugimendu hau funtzionaltasun osoa berrezartzeko, jarraitzaile batzuk, baina, baliteke kontu honi jarraitzeari utzi izana." + +#: bookwyrm/templates/shelf/shelf.html:39 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Erabiltzailearen profila" -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:54 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Liburu guztiak" -#: bookwyrm/templates/shelf/shelf.html:97 +#: bookwyrm/templates/shelf/shelf.html:112 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "liburu %(formatted_count)s" msgstr[1] "%(formatted_count)s liburu" -#: bookwyrm/templates/shelf/shelf.html:104 +#: bookwyrm/templates/shelf/shelf.html:119 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(%(start)s-%(end)s tartea bistaratzen)" -#: bookwyrm/templates/shelf/shelf.html:116 +#: bookwyrm/templates/shelf/shelf.html:131 msgid "Edit shelf" msgstr "Editatu apala" -#: bookwyrm/templates/shelf/shelf.html:124 +#: bookwyrm/templates/shelf/shelf.html:139 msgid "Delete shelf" msgstr "Ezabatu apala" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:178 +#: bookwyrm/templates/shelf/shelf.html:167 +#: bookwyrm/templates/shelf/shelf.html:193 msgid "Shelved" msgstr "Apalean jarrita" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:181 +#: bookwyrm/templates/shelf/shelf.html:168 +#: bookwyrm/templates/shelf/shelf.html:196 msgid "Started" msgstr "Noiz hasia" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Finished" msgstr "Amaituta" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Until" msgstr "Noiz arte" -#: bookwyrm/templates/shelf/shelf.html:210 +#: bookwyrm/templates/shelf/shelf.html:225 msgid "This shelf is empty." msgstr "Apal hau hutsik dago." @@ -6048,7 +6161,7 @@ msgstr "Iruzkina:" #: bookwyrm/templates/snippets/create_status/post_options_block.html:19 msgid "Update" -msgstr "" +msgstr "Eguneratu" #: bookwyrm/templates/snippets/create_status/post_options_block.html:21 msgid "Post" @@ -6077,7 +6190,7 @@ msgstr "Ehunekotan:" #: bookwyrm/templates/snippets/create_status/quotation.html:69 msgid "to" -msgstr "" +msgstr "hona:" #: bookwyrm/templates/snippets/create_status/review.html:24 #, python-format @@ -6247,6 +6360,10 @@ msgstr "%(goal_count)s liburutik %(read_count)s irakurr msgid "%(username)s has read %(read_count)s of %(goal_count)s books." msgstr "%(username)s(e)k %(goal_count)s liburutik %(read_count)s irakurri ditu." +#: bookwyrm/templates/snippets/move_user_buttons.html:10 +msgid "Follow at new account" +msgstr "Jarraitu kontu berrian" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6388,35 +6505,35 @@ msgstr "Utzi irakurtzeari" msgid "Finish reading" msgstr "Bukatu irakurtzen" -#: bookwyrm/templates/snippets/status/content_status.html:80 +#: bookwyrm/templates/snippets/status/content_status.html:69 msgid "Show status" msgstr "Erakutsi egoera" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "(Page %(page)s" -msgstr "" +msgstr "(%(page)s. orria" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "%(endpage)s" msgstr "%(endpage)s" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid "(%(percent)s%%" msgstr "(%%%(percent)s" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid " - %(endpercent)s%%" msgstr " - %%%(endpercent)s" -#: bookwyrm/templates/snippets/status/content_status.html:127 +#: bookwyrm/templates/snippets/status/content_status.html:116 msgid "Open image in new window" msgstr "Ireki irudia leiho berrian" -#: bookwyrm/templates/snippets/status/content_status.html:148 +#: bookwyrm/templates/snippets/status/content_status.html:137 msgid "Hide status" msgstr "Ezkutatu egoera" @@ -6453,7 +6570,7 @@ msgstr "%(book)s aipatu du" #: bookwyrm/templates/snippets/status/headers/rating.html:3 #, python-format msgid "rated %(book)s:" -msgstr "%(book)s puntuatu du:" +msgstr "(e)k %(book)s puntuatu du:" #: bookwyrm/templates/snippets/status/headers/read.html:10 #, python-format @@ -6478,7 +6595,7 @@ msgstr ", %(book)s irakurtzen hasi da" #: bookwyrm/templates/snippets/status/headers/review.html:8 #, python-format msgid "reviewed %(book)s by %(author_name)s" -msgstr "(e)k %(author_name)s(r)en %(book)s kritika egin du" +msgstr "(e)k %(author_name)s(r)en %(book)s liburuaren kritika egin du" #: bookwyrm/templates/snippets/status/headers/review.html:15 #, python-format @@ -6608,10 +6725,14 @@ msgid "Groups: %(username)s" msgstr "Taldeak: %(username)s" #: bookwyrm/templates/user/layout.html:50 +msgid "has moved to" +msgstr "hona mugitu da:" + +#: bookwyrm/templates/user/layout.html:64 msgid "Follow Requests" msgstr "Jarraitzeko eskaerak" -#: bookwyrm/templates/user/layout.html:73 +#: bookwyrm/templates/user/layout.html:88 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6626,6 +6747,12 @@ msgstr "Zerrendak: %(username)s" msgid "Create list" msgstr "Sortu zerrenda" +#: bookwyrm/templates/user/moved.html:25 +#: bookwyrm/templates/user/user_preview.html:22 +#, python-format +msgid "Joined %(date)s" +msgstr "%(date)s(e)an batu zen" + #: bookwyrm/templates/user/relationships/followers.html:31 #, python-format msgid "%(username)s has no followers" @@ -6697,17 +6824,12 @@ msgstr "Iruzkinak bakarrik" msgid "No activities yet!" msgstr "Ez dago aktibitaterik oraindik!" -#: bookwyrm/templates/user/user_preview.html:22 -#, python-format -msgid "Joined %(date)s" -msgstr "%(date)s(e)an batu zen" - #: bookwyrm/templates/user/user_preview.html:26 #, python-format msgid "%(display_count)s follower" msgid_plural "%(display_count)s followers" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "jarraitzaile %(display_count)s" +msgstr[1] "%(display_count)s jarraitzaile" #: bookwyrm/templates/user/user_preview.html:31 #, python-format @@ -6729,10 +6851,6 @@ msgstr "Ez dago jarraitzen duzun jarraitzailerik" msgid "View profile and more" msgstr "Ikusi profila eta gehiago" -#: bookwyrm/templates/user_menu.html:82 -msgid "Log out" -msgstr "Amaitu saioa" - #: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:28 msgid "File exceeds maximum size: 10MB" msgstr "Fitxategiak gehienezko tamaina gainditzen du: 10 Mb" @@ -6749,7 +6867,7 @@ msgid_plural "%(num)d books - by %(user)s" msgstr[0] "liburu %(num)d - %(user)s" msgstr[1] "%(num)d liburu - %(user)s" -#: bookwyrm/templatetags/utilities.py:39 +#: bookwyrm/templatetags/utilities.py:48 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s" diff --git a/locale/fi_FI/LC_MESSAGES/django.mo b/locale/fi_FI/LC_MESSAGES/django.mo index aef95bcc06233ef2f3ce16e1794ef8273684aba7..e34ee4a6bde7da344f7a3b5c3ee83f60290be68b 100644 GIT binary patch delta 30865 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 Rk)!y0iLxU>Y@coE{|6Q)Q?>vA delta 30844 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

A)SK)gYR1n{ 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\n" "Language-Team: Finnish\n" "Language: fi\n" @@ -42,15 +42,15 @@ msgstr "{i} käyttökertaa" msgid "Unlimited" msgstr "rajattomasti" -#: bookwyrm/forms/edit_user.py:88 +#: bookwyrm/forms/edit_user.py:104 msgid "Incorrect password" msgstr "Väärä salasana" -#: bookwyrm/forms/edit_user.py:95 bookwyrm/forms/landing.py:90 +#: bookwyrm/forms/edit_user.py:111 bookwyrm/forms/landing.py:90 msgid "Password does not match" msgstr "Salasanat eivät täsmää" -#: bookwyrm/forms/edit_user.py:118 +#: bookwyrm/forms/edit_user.py:134 msgid "Incorrect Password" msgstr "Virheellinen salasana" @@ -102,8 +102,8 @@ msgstr "Lisäysjärjestys" msgid "Book Title" msgstr "Kirjan nimi" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 +#: bookwyrm/templates/shelf/shelf.html:203 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Arvosana" @@ -145,7 +145,7 @@ msgstr "Vaara" msgid "Automatically generated report" msgstr "Automaattisesti luotu raportti" -#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:47 +#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:48 #: bookwyrm/models/link.py:72 bookwyrm/templates/import/import_status.html:214 #: bookwyrm/templates/settings/link_domains/link_domains.html:19 msgid "Pending" @@ -171,23 +171,23 @@ msgstr "Moderaattorin poistama" msgid "Domain block" msgstr "Verkkotunnuksen esto" -#: bookwyrm/models/book.py:283 +#: bookwyrm/models/book.py:282 msgid "Audiobook" msgstr "Äänikirja" -#: bookwyrm/models/book.py:284 +#: bookwyrm/models/book.py:283 msgid "eBook" msgstr "E-kirja" -#: bookwyrm/models/book.py:285 +#: bookwyrm/models/book.py:284 msgid "Graphic novel" msgstr "Sarjakuva" -#: bookwyrm/models/book.py:286 +#: bookwyrm/models/book.py:285 msgid "Hardcover" msgstr "Kovakantinen" -#: bookwyrm/models/book.py:287 +#: bookwyrm/models/book.py:286 msgid "Paperback" msgstr "Pehmeäkantinen" @@ -205,26 +205,26 @@ msgstr "Federoitu" msgid "Blocked" msgstr "Estetty" -#: bookwyrm/models/fields.py:29 +#: bookwyrm/models/fields.py:30 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s ei ole kelvollinen remote_id" -#: bookwyrm/models/fields.py:38 bookwyrm/models/fields.py:47 +#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s ei ole kelvollinen käyttäjänimi" -#: bookwyrm/models/fields.py:192 bookwyrm/templates/layout.html:128 +#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "käyttäjänimi" -#: bookwyrm/models/fields.py:197 +#: bookwyrm/models/fields.py:198 msgid "A user with that username already exists." msgstr "Käyttäjänimi on jo käytössä." -#: bookwyrm/models/fields.py:216 +#: bookwyrm/models/fields.py:217 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "Käyttäjänimi on jo käytössä." msgid "Public" msgstr "Julkinen" -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:218 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Julkinen" msgid "Unlisted" msgstr "Ei jakelua" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:219 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Ei jakelua" msgid "Followers" msgstr "Seuraajat" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:220 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -258,30 +258,30 @@ msgstr "Seuraajat" msgid "Private" msgstr "Yksityinen" -#: bookwyrm/models/import_job.py:48 bookwyrm/templates/import/import.html:174 +#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:81 -#: bookwyrm/templates/settings/users/user_info.html:28 +#: bookwyrm/templates/settings/users/user_admin.html:87 +#: bookwyrm/templates/settings/users/user_info.html:33 msgid "Active" msgstr "Aktiivinen" -#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:172 +#: bookwyrm/models/import_job.py:50 bookwyrm/templates/import/import.html:172 msgid "Complete" msgstr "Valmis" -#: bookwyrm/models/import_job.py:50 +#: bookwyrm/models/import_job.py:51 msgid "Stopped" msgstr "Keskeytetty" -#: bookwyrm/models/import_job.py:83 bookwyrm/models/import_job.py:91 +#: bookwyrm/models/import_job.py:84 bookwyrm/models/import_job.py:92 msgid "Import stopped" msgstr "Tuonti keskeytetty" -#: bookwyrm/models/import_job.py:363 bookwyrm/models/import_job.py:388 +#: bookwyrm/models/import_job.py:356 bookwyrm/models/import_job.py:381 msgid "Error loading book" msgstr "Virhe kirjan lataamisessa" -#: bookwyrm/models/import_job.py:372 +#: bookwyrm/models/import_job.py:365 msgid "Could not find a match for book" msgstr "Kirjaa ei löytynyt tietokannoista" @@ -368,103 +368,103 @@ msgstr "Lainaukset" msgid "Everything else" msgstr "Muut" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home Timeline" msgstr "Oma aikajana" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home" msgstr "Etusivu" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 msgid "Books Timeline" msgstr "Kirjavirta" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:97 +#: bookwyrm/templates/user/layout.html:112 msgid "Books" msgstr "Kirjat" -#: bookwyrm/settings.py:296 +#: bookwyrm/settings.py:303 msgid "English" msgstr "English (englanti)" -#: bookwyrm/settings.py:297 +#: bookwyrm/settings.py:304 msgid "Català (Catalan)" msgstr "Català (katalaani)" -#: bookwyrm/settings.py:298 +#: bookwyrm/settings.py:305 msgid "Deutsch (German)" msgstr "Deutsch (saksa)" -#: bookwyrm/settings.py:299 +#: bookwyrm/settings.py:306 msgid "Esperanto (Esperanto)" msgstr "Esperanto (esperanto)" -#: bookwyrm/settings.py:300 +#: bookwyrm/settings.py:307 msgid "Español (Spanish)" msgstr "Español (espanja)" -#: bookwyrm/settings.py:301 +#: bookwyrm/settings.py:308 msgid "Euskara (Basque)" msgstr "Euskara (baski)" -#: bookwyrm/settings.py:302 +#: bookwyrm/settings.py:309 msgid "Galego (Galician)" msgstr "Galego (galego)" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:310 msgid "Italiano (Italian)" msgstr "Italiano (italia)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:311 msgid "Suomi (Finnish)" msgstr "suomi" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:312 msgid "Français (French)" msgstr "Français (ranska)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:313 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių (liettua)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:314 msgid "Nederlands (Dutch)" msgstr "Nederlands (hollanti)" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:315 msgid "Norsk (Norwegian)" msgstr "Norsk (norja)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:316 msgid "Polski (Polish)" msgstr "Polski (puola)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:317 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil (brasilianportugali)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:318 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (portugali)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:319 msgid "Română (Romanian)" msgstr "Română (romania)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:320 msgid "Svenska (Swedish)" msgstr "Svenska (ruotsi)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:321 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文 (yksinkertaistettu kiina)" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:322 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (perinteinen kiina)" @@ -575,7 +575,7 @@ msgid "Software version:" msgstr "Ohjelmistoversio:" #: bookwyrm/templates/about/layout.html:30 -#: bookwyrm/templates/embed-layout.html:33 +#: bookwyrm/templates/embed-layout.html:34 #: bookwyrm/templates/snippets/footer.html:8 #, python-format msgid "About %(site_name)s" @@ -680,7 +680,7 @@ msgstr "Vuoden lyhyin kirja…" #: bookwyrm/templates/annual_summary/layout.html:157 #: bookwyrm/templates/annual_summary/layout.html:178 #: bookwyrm/templates/annual_summary/layout.html:247 -#: bookwyrm/templates/book/book.html:63 +#: bookwyrm/templates/book/book.html:65 #: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/landing/large-book.html:26 #: bookwyrm/templates/landing/small-book.html:18 @@ -768,24 +768,24 @@ msgid "View ISNI record" msgstr "Näytä ISNI-tietue" #: bookwyrm/templates/author/author.html:95 -#: bookwyrm/templates/book/book.html:173 +#: bookwyrm/templates/book/book.html:175 msgid "View on ISFDB" msgstr "Näytä ISFDB:ssä" #: bookwyrm/templates/author/author.html:100 #: bookwyrm/templates/author/sync_modal.html:5 -#: bookwyrm/templates/book/book.html:140 +#: bookwyrm/templates/book/book.html:142 #: bookwyrm/templates/book/sync_modal.html:5 msgid "Load data" msgstr "Lataa tiedot" #: bookwyrm/templates/author/author.html:104 -#: bookwyrm/templates/book/book.html:144 +#: bookwyrm/templates/book/book.html:146 msgid "View on OpenLibrary" msgstr "Näytä OpenLibraryssa" #: bookwyrm/templates/author/author.html:119 -#: bookwyrm/templates/book/book.html:158 +#: bookwyrm/templates/book/book.html:160 msgid "View on Inventaire" msgstr "Näytä Inventairessa" @@ -797,11 +797,7 @@ msgstr "Näytä LibraryThingissä" msgid "View on Goodreads" msgstr "Näytä Goodreadsissa" -#: bookwyrm/templates/author/author.html:151 -msgid "View ISFDB entry" -msgstr "Näytä ISFDB-tietue" - -#: bookwyrm/templates/author/author.html:166 +#: bookwyrm/templates/author/author.html:158 #, python-format msgid "Books by %(name)s" msgstr "Tekijän %(name)s kirjat" @@ -959,19 +955,19 @@ msgstr "Vahvista" msgid "Unable to connect to remote source." msgstr "Lähteeseen ei saada yhteyttä." -#: bookwyrm/templates/book/book.html:71 bookwyrm/templates/book/book.html:72 +#: bookwyrm/templates/book/book.html:73 bookwyrm/templates/book/book.html:74 msgid "Edit Book" msgstr "Muokkaa kirjaa" -#: bookwyrm/templates/book/book.html:97 bookwyrm/templates/book/book.html:100 +#: bookwyrm/templates/book/book.html:99 bookwyrm/templates/book/book.html:102 msgid "Click to add cover" msgstr "Lisää kansikuva" -#: bookwyrm/templates/book/book.html:106 +#: bookwyrm/templates/book/book.html:108 msgid "Failed to load cover" msgstr "Kansikuvan lataus epäonnistui" -#: bookwyrm/templates/book/book.html:117 +#: bookwyrm/templates/book/book.html:119 msgid "Click to enlarge" msgstr "Suurenna" @@ -1046,13 +1042,13 @@ msgstr "Paikat" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:90 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:91 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Listat" @@ -1117,8 +1113,8 @@ msgstr "Lataa kansikuva:" #: bookwyrm/templates/book/cover_add_modal.html:23 #: bookwyrm/templates/book/edit/edit_book_form.html:250 -msgid "Load cover from url:" -msgstr "Lataa kansikuva osoitteesta:" +msgid "Load cover from URL:" +msgstr "Ladattavan kansikuvan URL:" #: bookwyrm/templates/book/cover_show_modal.html:6 msgid "Book cover preview" @@ -1328,7 +1324,7 @@ msgid "Add Another Author" msgstr "Yksi tekijä lisää" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:147 +#: bookwyrm/templates/shelf/shelf.html:162 msgid "Cover" msgstr "Kansikuva" @@ -1529,22 +1525,22 @@ msgstr "%(pages)s sivua" msgid "%(languages)s language" msgstr "Kieli: %(languages)s" -#: bookwyrm/templates/book/publisher_info.html:65 +#: bookwyrm/templates/book/publisher_info.html:63 #, python-format msgid "Published %(date)s by %(publisher)s." msgstr "Julkaisu: %(publisher)s, %(date)s." +#: bookwyrm/templates/book/publisher_info.html:65 +#, python-format +msgid "Published by %(publisher)s." +msgstr "Kustantaja: %(publisher)s." + #: bookwyrm/templates/book/publisher_info.html:67 #, python-format msgid "Published %(date)s" msgstr "Julkaistu: %(date)s" -#: bookwyrm/templates/book/publisher_info.html:69 -#, python-format -msgid "Published by %(publisher)s." -msgstr "Kustantaja: %(publisher)s." - -#: bookwyrm/templates/book/rating.html:13 +#: bookwyrm/templates/book/rating.html:19 msgid "rated it" msgstr "antoi arvosanan" @@ -1552,12 +1548,12 @@ msgstr "antoi arvosanan" msgid "Series by" msgstr "Sarja." -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 #, python-format msgid "Book %(series_number)s" msgstr "Osa %(series_number)s" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 msgid "Unsorted Book" msgstr "Lajittelematon kirja" @@ -1587,7 +1583,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Koodia ei löytynyt." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:92 +#: bookwyrm/templates/settings/users/user_info.html:98 msgid "Confirmation code:" msgstr "Vahvistuskoodi:" @@ -1681,6 +1677,7 @@ msgstr "Ehdotetut ensin" #: bookwyrm/templates/ostatus/subscribe.html:42 #: bookwyrm/templates/ostatus/success.html:17 #: bookwyrm/templates/ostatus/success.html:18 +#: bookwyrm/templates/user/moved.html:19 bookwyrm/templates/user/moved.html:20 #: bookwyrm/templates/user/user_preview.html:16 #: bookwyrm/templates/user/user_preview.html:17 msgid "Locked account" @@ -1755,7 +1752,7 @@ msgstr "%(username)s lainasi teosta You have moved your account to %(username)s" +msgstr "" + +#: bookwyrm/templates/moved.html:32 +msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +msgid "Undo move" +msgstr "" + +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +msgid "Log out" +msgstr "Kirjaudu ulos" + #: bookwyrm/templates/notifications/items/accept.html:18 #, python-format msgid "%(related_user)s accepted your invitation to join group \"%(group_name)s\"" @@ -3744,6 +3763,16 @@ msgstr "%(related_user)s mainitsi sinut %(related_user)s mentioned you in a status" msgstr "%(related_user)s mainitsi sinut tilapäivityksessään" +#: bookwyrm/templates/notifications/items/move_user.html:18 +#, python-format +msgid "%(related_user)s has moved to %(username)s" +msgstr "" + +#: bookwyrm/templates/notifications/items/move_user.html:25 +#, python-format +msgid "%(related_user)s has undone their move" +msgstr "" + #: bookwyrm/templates/notifications/items/remove.html:17 #, python-format msgid "has been removed from your group \"%(group_name)s\"" @@ -3782,7 +3811,7 @@ msgstr[0] "Uusi raportti odottaa tarkastusta" msgstr[1] "%(display_count)s uutta raporttia odottaa tarkastusta" #: bookwyrm/templates/notifications/items/status_preview.html:4 -#: bookwyrm/templates/snippets/status/content_status.html:73 +#: bookwyrm/templates/snippets/status/content_status.html:62 msgid "Content warning" msgstr "Sisältövaroitus" @@ -4000,9 +4029,51 @@ msgstr "Aloita kaksivaiheisen tunnistautumisen käyttöönotto syöttämällä s msgid "Set up 2FA" msgstr "Ota kaksivaiheinen tunnistautuminen käyttöön" +#: bookwyrm/templates/preferences/alias_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:7 +#: bookwyrm/templates/preferences/move_user.html:39 +msgid "Move Account" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:7 +#: bookwyrm/templates/preferences/alias_user.html:34 +msgid "Create Alias" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:12 +msgid "Add another account as an alias" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:16 +msgid "Marking another account as an alias is required if you want to move that account to this one." +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:19 +msgid "This is a reversable action and will not change the functionality of this account." +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:25 +msgid "Enter the username for the account you want to add as an alias e.g. user@example.com :" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:30 +#: bookwyrm/templates/preferences/move_user.html:35 +msgid "Confirm your password:" +msgstr "Varmista salasanasi:" + +#: bookwyrm/templates/preferences/alias_user.html:39 +#: bookwyrm/templates/preferences/layout.html:28 +msgid "Aliases" +msgstr "Muut nimet" + +#: bookwyrm/templates/preferences/alias_user.html:49 +msgid "Remove alias" +msgstr "" + #: bookwyrm/templates/preferences/blocks.html:4 #: bookwyrm/templates/preferences/blocks.html:7 -#: bookwyrm/templates/preferences/layout.html:46 +#: bookwyrm/templates/preferences/layout.html:54 msgid "Blocked Users" msgstr "Estetyt käyttäjät" @@ -4032,7 +4103,7 @@ msgstr "Uusi salasana:" #: bookwyrm/templates/preferences/delete_user.html:4 #: bookwyrm/templates/preferences/delete_user.html:7 #: bookwyrm/templates/preferences/delete_user.html:40 -#: bookwyrm/templates/preferences/layout.html:28 +#: bookwyrm/templates/preferences/layout.html:36 #: bookwyrm/templates/settings/users/delete_user_form.html:22 msgid "Delete Account" msgstr "Poista käyttäjätili" @@ -4154,18 +4225,45 @@ msgstr "Lataa tiedosto" msgid "Account" msgstr "Käyttäjätili" -#: bookwyrm/templates/preferences/layout.html:31 +#: bookwyrm/templates/preferences/layout.html:32 +msgid "Move Account" +msgstr "" + +#: bookwyrm/templates/preferences/layout.html:39 msgid "Data" msgstr "Tiedot" -#: bookwyrm/templates/preferences/layout.html:39 +#: bookwyrm/templates/preferences/layout.html:47 msgid "CSV export" msgstr "CSV-vienti" -#: bookwyrm/templates/preferences/layout.html:42 +#: bookwyrm/templates/preferences/layout.html:50 msgid "Relationships" msgstr "Suhteet" +#: bookwyrm/templates/preferences/move_user.html:12 +msgid "Migrate account to another server" +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:16 +msgid "Moving your account will notify all your followers and direct them to follow the new account." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:19 +#, python-format +msgid "\n" +" %(user)s will be marked as moved and will not be discoverable or usable unless you undo the move.\n" +" " +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:25 +msgid "Remember to add this user as an alias of the target account before you try to move." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:30 +msgid "Enter the username for the account you want to move to e.g. user@example.com :" +msgstr "" + #: bookwyrm/templates/reading_progress/finish.html:5 #, python-format msgid "Finish \"%(book_title)s\"" @@ -4574,8 +4672,8 @@ msgid "Streams" msgstr "Virrat" #: bookwyrm/templates/settings/celery.html:32 -msgid "Broadcasts" -msgstr "Lähetykset" +msgid "Broadcast" +msgstr "" #: bookwyrm/templates/settings/celery.html:38 msgid "Inbox" @@ -4900,19 +4998,19 @@ msgstr "Palvelin:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:119 msgid "Status:" msgstr "Tila:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:107 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Software:" msgstr "Ohjelmisto:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:110 +#: bookwyrm/templates/settings/users/user_info.html:116 msgid "Version:" msgstr "Versio:" @@ -4925,7 +5023,7 @@ msgid "Details" msgstr "Lisätiedot" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:69 +#: bookwyrm/templates/user/layout.html:84 msgid "Activity" msgstr "Aktiivisuus" @@ -4939,7 +5037,7 @@ msgid "View all" msgstr "Näytä kaikki" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:60 +#: bookwyrm/templates/settings/users/user_info.html:66 msgid "Reports:" msgstr "Raportteja:" @@ -4956,7 +5054,7 @@ msgid "Blocked by us:" msgstr "Täältä estettyjä:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:117 +#: bookwyrm/templates/settings/users/user_info.html:123 msgid "Notes" msgstr "Merkintöjä" @@ -5676,17 +5774,22 @@ msgstr "Viimeksi paikalla" msgid "Remote instance" msgstr "Etäpalvelin" -#: bookwyrm/templates/settings/users/user_admin.html:86 +#: bookwyrm/templates/settings/users/user_admin.html:82 +#: bookwyrm/templates/settings/users/user_info.html:29 +msgid "Moved" +msgstr "" + +#: bookwyrm/templates/settings/users/user_admin.html:93 msgid "Deleted" msgstr "Poistettu" -#: bookwyrm/templates/settings/users/user_admin.html:92 -#: bookwyrm/templates/settings/users/user_info.html:32 +#: bookwyrm/templates/settings/users/user_admin.html:99 +#: bookwyrm/templates/settings/users/user_info.html:38 msgid "Inactive" msgstr "Ei aktiivinen" -#: bookwyrm/templates/settings/users/user_admin.html:101 -#: bookwyrm/templates/settings/users/user_info.html:127 +#: bookwyrm/templates/settings/users/user_admin.html:108 +#: bookwyrm/templates/settings/users/user_info.html:133 msgid "Not set" msgstr "Ei asetettu" @@ -5698,55 +5801,55 @@ msgstr "Näytä käyttäjäprofiili" msgid "Go to user admin" msgstr "Siirry käyttäjien hallintaan" -#: bookwyrm/templates/settings/users/user_info.html:40 +#: bookwyrm/templates/settings/users/user_info.html:46 msgid "Local" msgstr "Paikallinen" -#: bookwyrm/templates/settings/users/user_info.html:42 +#: bookwyrm/templates/settings/users/user_info.html:48 msgid "Remote" msgstr "Etä" -#: bookwyrm/templates/settings/users/user_info.html:51 +#: bookwyrm/templates/settings/users/user_info.html:57 msgid "User details" msgstr "Käyttäjän tiedot" -#: bookwyrm/templates/settings/users/user_info.html:55 +#: bookwyrm/templates/settings/users/user_info.html:61 msgid "Email:" msgstr "Sähköpostiosoite:" -#: bookwyrm/templates/settings/users/user_info.html:65 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "(View reports)" msgstr "(Näytä raportit)" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Blocked by count:" msgstr "Estäneiden määrä:" -#: bookwyrm/templates/settings/users/user_info.html:74 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Date added:" msgstr "Lisätty:" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Last active date:" msgstr "Viimeksi paikalla:" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:86 msgid "Manually approved followers:" msgstr "Käsin hyväksytyt seuraajat:" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:89 msgid "Discoverable:" msgstr "Löydettävissä:" -#: bookwyrm/templates/settings/users/user_info.html:87 +#: bookwyrm/templates/settings/users/user_info.html:93 msgid "Deactivation reason:" msgstr "Poistumisen syy:" -#: bookwyrm/templates/settings/users/user_info.html:102 +#: bookwyrm/templates/settings/users/user_info.html:108 msgid "Instance details" msgstr "Palvelimen tiedot" -#: bookwyrm/templates/settings/users/user_info.html:124 +#: bookwyrm/templates/settings/users/user_info.html:130 msgid "View instance" msgstr "Näytä palvelin" @@ -5883,7 +5986,7 @@ msgid "Need help?" msgstr "Tarvitsetko apua?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:72 +#: bookwyrm/templates/shelf/shelf.html:87 msgid "Create shelf" msgstr "Luo hylly" @@ -5891,58 +5994,66 @@ msgstr "Luo hylly" msgid "Edit Shelf" msgstr "Muokkaa hyllyä" -#: bookwyrm/templates/shelf/shelf.html:24 +#: bookwyrm/templates/shelf/shelf.html:25 +msgid "You have have moved to" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:28 +msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:39 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Käyttäjäprofiili" -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:54 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Kaikki kirjat" -#: bookwyrm/templates/shelf/shelf.html:97 +#: bookwyrm/templates/shelf/shelf.html:112 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s kirja" msgstr[1] "%(formatted_count)s kirjaa" -#: bookwyrm/templates/shelf/shelf.html:104 +#: bookwyrm/templates/shelf/shelf.html:119 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(näytetään %(start)s–%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:116 +#: bookwyrm/templates/shelf/shelf.html:131 msgid "Edit shelf" msgstr "Muokkaa hyllyä" -#: bookwyrm/templates/shelf/shelf.html:124 +#: bookwyrm/templates/shelf/shelf.html:139 msgid "Delete shelf" msgstr "Poista hylly" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:178 +#: bookwyrm/templates/shelf/shelf.html:167 +#: bookwyrm/templates/shelf/shelf.html:193 msgid "Shelved" msgstr "Hyllytetty" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:181 +#: bookwyrm/templates/shelf/shelf.html:168 +#: bookwyrm/templates/shelf/shelf.html:196 msgid "Started" msgstr "Aloitettu" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Finished" msgstr "Luettu" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Until" -msgstr "Saakka" +msgstr "Lopetettu" -#: bookwyrm/templates/shelf/shelf.html:210 +#: bookwyrm/templates/shelf/shelf.html:225 msgid "This shelf is empty." msgstr "Hylly on tyhjä." @@ -6248,6 +6359,10 @@ msgstr "Olet lukenut %(read_count)s/%(goal_count)s kirjaa%(read_count)s of %(goal_count)s books." msgstr "%(username)s on lukenut %(read_count)s/%(goal_count)s kirjaa." +#: bookwyrm/templates/snippets/move_user_buttons.html:10 +msgid "Follow at new account" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6389,35 +6504,35 @@ msgstr "Keskeytä lukeminen" msgid "Finish reading" msgstr "Luettu kokonaan" -#: bookwyrm/templates/snippets/status/content_status.html:80 +#: bookwyrm/templates/snippets/status/content_status.html:69 msgid "Show status" msgstr "Näytä tilapäivitys" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "(Page %(page)s" msgstr "(Sivu %(page)s" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "%(endpage)s" msgstr "%(endpage)s" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid "(%(percent)s%%" msgstr "(%(percent)s %%" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid " - %(endpercent)s%%" msgstr "–%(endpercent)s %%" -#: bookwyrm/templates/snippets/status/content_status.html:127 +#: bookwyrm/templates/snippets/status/content_status.html:116 msgid "Open image in new window" msgstr "Avaa kuva uudessa ikkunassa" -#: bookwyrm/templates/snippets/status/content_status.html:148 +#: bookwyrm/templates/snippets/status/content_status.html:137 msgid "Hide status" msgstr "Piilota tilapäivitys" @@ -6609,10 +6724,14 @@ msgid "Groups: %(username)s" msgstr "Ryhmät: %(username)s" #: bookwyrm/templates/user/layout.html:50 +msgid "has moved to" +msgstr "" + +#: bookwyrm/templates/user/layout.html:64 msgid "Follow Requests" msgstr "Seuraamispyynnöt" -#: bookwyrm/templates/user/layout.html:73 +#: bookwyrm/templates/user/layout.html:88 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6627,6 +6746,12 @@ msgstr "Listat: %(username)s" msgid "Create list" msgstr "Luo lista" +#: bookwyrm/templates/user/moved.html:25 +#: bookwyrm/templates/user/user_preview.html:22 +#, python-format +msgid "Joined %(date)s" +msgstr "Liittynyt %(date)s" + #: bookwyrm/templates/user/relationships/followers.html:31 #, python-format msgid "%(username)s has no followers" @@ -6698,11 +6823,6 @@ msgstr "Vain kommentit" msgid "No activities yet!" msgstr "Ei toimintaa!" -#: bookwyrm/templates/user/user_preview.html:22 -#, python-format -msgid "Joined %(date)s" -msgstr "Liittynyt %(date)s" - #: bookwyrm/templates/user/user_preview.html:26 #, python-format msgid "%(display_count)s follower" @@ -6730,10 +6850,6 @@ msgstr "Ei seuraajia, joita seuraat itse" msgid "View profile and more" msgstr "Näytä profiili ja muita tietoja" -#: bookwyrm/templates/user_menu.html:82 -msgid "Log out" -msgstr "Kirjaudu ulos" - #: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:28 msgid "File exceeds maximum size: 10MB" msgstr "Tiedosto on enimmäiskokoa 10 Mt suurempi" @@ -6750,7 +6866,7 @@ msgid_plural "%(num)d books - by %(user)s" msgstr[0] "%(num)d kirja — %(user)s" msgstr[1] "%(num)d kirjaa — %(user)s" -#: bookwyrm/templatetags/utilities.py:39 +#: bookwyrm/templatetags/utilities.py:48 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s" diff --git a/locale/fr_FR/LC_MESSAGES/django.mo b/locale/fr_FR/LC_MESSAGES/django.mo index 4cdcbf8ea2a3ffdeed740317a055f435e5954b7c..46882a4dceaf89059a11ee6c1a3fce74cc85843c 100644 GIT binary patch literal 154174 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 literal 44850 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\n" "Language-Team: French\n" "Language: fr\n" @@ -42,15 +42,15 @@ msgstr "{i} utilisations" msgid "Unlimited" msgstr "Sans limite" -#: bookwyrm/forms/edit_user.py:88 +#: bookwyrm/forms/edit_user.py:104 msgid "Incorrect password" msgstr "Mot de passe incorrect" -#: bookwyrm/forms/edit_user.py:95 bookwyrm/forms/landing.py:90 +#: bookwyrm/forms/edit_user.py:111 bookwyrm/forms/landing.py:90 msgid "Password does not match" msgstr "Le mot de passe ne correspond pas" -#: bookwyrm/forms/edit_user.py:118 +#: bookwyrm/forms/edit_user.py:134 msgid "Incorrect Password" msgstr "Mot de passe incorrect" @@ -102,8 +102,8 @@ msgstr "Ordre de la liste" msgid "Book Title" msgstr "Titre du livre" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 +#: bookwyrm/templates/shelf/shelf.html:203 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Note" @@ -145,7 +145,7 @@ msgstr "Danger" msgid "Automatically generated report" msgstr "Rapport généré automatiquement" -#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:47 +#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:48 #: bookwyrm/models/link.py:72 bookwyrm/templates/import/import_status.html:214 #: bookwyrm/templates/settings/link_domains/link_domains.html:19 msgid "Pending" @@ -171,23 +171,23 @@ msgstr "Suppression par un modérateur" msgid "Domain block" msgstr "Blocage de domaine" -#: bookwyrm/models/book.py:283 +#: bookwyrm/models/book.py:282 msgid "Audiobook" msgstr "Livre audio" -#: bookwyrm/models/book.py:284 +#: bookwyrm/models/book.py:283 msgid "eBook" msgstr "eBook" -#: bookwyrm/models/book.py:285 +#: bookwyrm/models/book.py:284 msgid "Graphic novel" msgstr "Roman graphique" -#: bookwyrm/models/book.py:286 +#: bookwyrm/models/book.py:285 msgid "Hardcover" msgstr "Livre relié" -#: bookwyrm/models/book.py:287 +#: bookwyrm/models/book.py:286 msgid "Paperback" msgstr "Livre broché" @@ -205,26 +205,26 @@ msgstr "Fédéré" msgid "Blocked" msgstr "Bloqué" -#: bookwyrm/models/fields.py:29 +#: bookwyrm/models/fields.py:30 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s n’est pas une remote_id valide." -#: bookwyrm/models/fields.py:38 bookwyrm/models/fields.py:47 +#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s n’est pas un nom de compte valide." -#: bookwyrm/models/fields.py:192 bookwyrm/templates/layout.html:128 +#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "nom du compte :" -#: bookwyrm/models/fields.py:197 +#: bookwyrm/models/fields.py:198 msgid "A user with that username already exists." msgstr "Ce nom est déjà associé à un compte." -#: bookwyrm/models/fields.py:216 +#: bookwyrm/models/fields.py:217 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "Ce nom est déjà associé à un compte." msgid "Public" msgstr "Public" -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:218 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Public" msgid "Unlisted" msgstr "Non listé" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:219 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Non listé" msgid "Followers" msgstr "Abonné(e)s" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:220 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -258,30 +258,30 @@ msgstr "Abonné(e)s" msgid "Private" msgstr "Privé" -#: bookwyrm/models/import_job.py:48 bookwyrm/templates/import/import.html:174 +#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:81 -#: bookwyrm/templates/settings/users/user_info.html:28 +#: bookwyrm/templates/settings/users/user_admin.html:87 +#: bookwyrm/templates/settings/users/user_info.html:33 msgid "Active" msgstr "Actif" -#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:172 +#: bookwyrm/models/import_job.py:50 bookwyrm/templates/import/import.html:172 msgid "Complete" msgstr "Terminé" -#: bookwyrm/models/import_job.py:50 +#: bookwyrm/models/import_job.py:51 msgid "Stopped" msgstr "Interrompu" -#: bookwyrm/models/import_job.py:83 bookwyrm/models/import_job.py:91 +#: bookwyrm/models/import_job.py:84 bookwyrm/models/import_job.py:92 msgid "Import stopped" msgstr "Import arrêté" -#: bookwyrm/models/import_job.py:363 bookwyrm/models/import_job.py:388 +#: bookwyrm/models/import_job.py:356 bookwyrm/models/import_job.py:381 msgid "Error loading book" msgstr "Erreur lors du chargement du livre" -#: bookwyrm/models/import_job.py:372 +#: bookwyrm/models/import_job.py:365 msgid "Could not find a match for book" msgstr "Impossible de trouver une correspondance pour le livre" @@ -368,103 +368,103 @@ msgstr "Citations" msgid "Everything else" msgstr "Tout le reste" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home Timeline" msgstr "Mon fil d’actualité" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home" msgstr "Accueil" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 msgid "Books Timeline" msgstr "Mon fil d’actualité littéraire" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:97 +#: bookwyrm/templates/user/layout.html:112 msgid "Books" msgstr "Livres" -#: bookwyrm/settings.py:296 +#: bookwyrm/settings.py:303 msgid "English" msgstr "English" -#: bookwyrm/settings.py:297 +#: bookwyrm/settings.py:304 msgid "Català (Catalan)" msgstr "Català (Catalan)" -#: bookwyrm/settings.py:298 +#: bookwyrm/settings.py:305 msgid "Deutsch (German)" msgstr "Deutsch" -#: bookwyrm/settings.py:299 +#: bookwyrm/settings.py:306 msgid "Esperanto (Esperanto)" msgstr "Esperanto (Espéranto)" -#: bookwyrm/settings.py:300 +#: bookwyrm/settings.py:307 msgid "Español (Spanish)" msgstr "Español" -#: bookwyrm/settings.py:301 +#: bookwyrm/settings.py:308 msgid "Euskara (Basque)" msgstr "Euskara (Basque)" -#: bookwyrm/settings.py:302 +#: bookwyrm/settings.py:309 msgid "Galego (Galician)" msgstr "Galego (Galicien)" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:310 msgid "Italiano (Italian)" msgstr "Italiano (Italien)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:311 msgid "Suomi (Finnish)" msgstr "Suomi (Finnois)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:312 msgid "Français (French)" msgstr "Français" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:313 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių (Lituanien)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:314 msgid "Nederlands (Dutch)" msgstr "Pays‑Bas (Néerlandais)" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:315 msgid "Norsk (Norwegian)" msgstr "Norsk (Norvégien)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:316 msgid "Polski (Polish)" msgstr "Polski (Polonais)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:317 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil (Portugais brésilien)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:318 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (Portugais européen)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:319 msgid "Română (Romanian)" msgstr "Română (Roumain)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:320 msgid "Svenska (Swedish)" msgstr "Svenska (Suédois)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:321 msgid "简体中文 (Simplified Chinese)" msgstr "简化字" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:322 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (chinois traditionnel)" @@ -575,7 +575,7 @@ msgid "Software version:" msgstr "Version logicielle :" #: bookwyrm/templates/about/layout.html:30 -#: bookwyrm/templates/embed-layout.html:33 +#: bookwyrm/templates/embed-layout.html:34 #: bookwyrm/templates/snippets/footer.html:8 #, python-format msgid "About %(site_name)s" @@ -680,7 +680,7 @@ msgstr "Sa lecture la plus courte l’année…" #: bookwyrm/templates/annual_summary/layout.html:157 #: bookwyrm/templates/annual_summary/layout.html:178 #: bookwyrm/templates/annual_summary/layout.html:247 -#: bookwyrm/templates/book/book.html:63 +#: bookwyrm/templates/book/book.html:65 #: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/landing/large-book.html:26 #: bookwyrm/templates/landing/small-book.html:18 @@ -768,24 +768,24 @@ msgid "View ISNI record" msgstr "Voir l’enregistrement ISNI" #: bookwyrm/templates/author/author.html:95 -#: bookwyrm/templates/book/book.html:173 +#: bookwyrm/templates/book/book.html:175 msgid "View on ISFDB" msgstr "Voir sur ISFDB" #: bookwyrm/templates/author/author.html:100 #: bookwyrm/templates/author/sync_modal.html:5 -#: bookwyrm/templates/book/book.html:140 +#: bookwyrm/templates/book/book.html:142 #: bookwyrm/templates/book/sync_modal.html:5 msgid "Load data" msgstr "Charger les données" #: bookwyrm/templates/author/author.html:104 -#: bookwyrm/templates/book/book.html:144 +#: bookwyrm/templates/book/book.html:146 msgid "View on OpenLibrary" msgstr "Voir sur OpenLibrary" #: bookwyrm/templates/author/author.html:119 -#: bookwyrm/templates/book/book.html:158 +#: bookwyrm/templates/book/book.html:160 msgid "View on Inventaire" msgstr "Voir sur Inventaire" @@ -797,11 +797,7 @@ msgstr "Voir sur LibraryThing" msgid "View on Goodreads" msgstr "Voir sur Goodreads" -#: bookwyrm/templates/author/author.html:151 -msgid "View ISFDB entry" -msgstr "Voir l’entrée ISFDB" - -#: bookwyrm/templates/author/author.html:166 +#: bookwyrm/templates/author/author.html:158 #, python-format msgid "Books by %(name)s" msgstr "Livres de %(name)s" @@ -959,19 +955,19 @@ msgstr "Confirmer" msgid "Unable to connect to remote source." msgstr "Impossible de se connecter au serveur distant." -#: bookwyrm/templates/book/book.html:71 bookwyrm/templates/book/book.html:72 +#: bookwyrm/templates/book/book.html:73 bookwyrm/templates/book/book.html:74 msgid "Edit Book" msgstr "Modifier le livre" -#: bookwyrm/templates/book/book.html:97 bookwyrm/templates/book/book.html:100 +#: bookwyrm/templates/book/book.html:99 bookwyrm/templates/book/book.html:102 msgid "Click to add cover" msgstr "Cliquez pour ajouter une couverture" -#: bookwyrm/templates/book/book.html:106 +#: bookwyrm/templates/book/book.html:108 msgid "Failed to load cover" msgstr "La couverture n’a pu être chargée" -#: bookwyrm/templates/book/book.html:117 +#: bookwyrm/templates/book/book.html:119 msgid "Click to enlarge" msgstr "Cliquez pour élargir" @@ -1046,13 +1042,13 @@ msgstr "Lieux" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:90 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:91 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Listes" @@ -1117,7 +1113,7 @@ msgstr "Charger une couverture :" #: bookwyrm/templates/book/cover_add_modal.html:23 #: bookwyrm/templates/book/edit/edit_book_form.html:250 -msgid "Load cover from url:" +msgid "Load cover from URL:" msgstr "Charger la couverture depuis une URL :" #: bookwyrm/templates/book/cover_show_modal.html:6 @@ -1328,7 +1324,7 @@ msgid "Add Another Author" msgstr "Ajouter un autre auteur ou autrice" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:147 +#: bookwyrm/templates/shelf/shelf.html:162 msgid "Cover" msgstr "Couverture" @@ -1529,22 +1525,22 @@ msgstr "%(pages)s pages" msgid "%(languages)s language" msgstr "Langue : %(languages)s" -#: bookwyrm/templates/book/publisher_info.html:65 +#: bookwyrm/templates/book/publisher_info.html:63 #, python-format msgid "Published %(date)s by %(publisher)s." msgstr "Publié %(date)s par %(publisher)s." +#: bookwyrm/templates/book/publisher_info.html:65 +#, python-format +msgid "Published by %(publisher)s." +msgstr "Publié par %(publisher)s." + #: bookwyrm/templates/book/publisher_info.html:67 #, python-format msgid "Published %(date)s" msgstr "Publié %(date)s" -#: bookwyrm/templates/book/publisher_info.html:69 -#, python-format -msgid "Published by %(publisher)s." -msgstr "Publié par %(publisher)s." - -#: bookwyrm/templates/book/rating.html:13 +#: bookwyrm/templates/book/rating.html:19 msgid "rated it" msgstr "l’a noté" @@ -1552,12 +1548,12 @@ msgstr "l’a noté" msgid "Series by" msgstr "Séries par" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 #, python-format msgid "Book %(series_number)s" msgstr "Livre %(series_number)s" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 msgid "Unsorted Book" msgstr "Livre hors classement" @@ -1587,7 +1583,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Pardon ! Nous ne reconnaissons pas ce code." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:92 +#: bookwyrm/templates/settings/users/user_info.html:98 msgid "Confirmation code:" msgstr "Code de confirmation :" @@ -1681,6 +1677,7 @@ msgstr "Suggéré" #: bookwyrm/templates/ostatus/subscribe.html:42 #: bookwyrm/templates/ostatus/success.html:17 #: bookwyrm/templates/ostatus/success.html:18 +#: bookwyrm/templates/user/moved.html:19 bookwyrm/templates/user/moved.html:20 #: bookwyrm/templates/user/user_preview.html:16 #: bookwyrm/templates/user/user_preview.html:17 msgid "Locked account" @@ -1755,7 +1752,7 @@ msgstr "%(username)s a cité un passage de You have moved your account to %(username)s" +msgstr "Vous avez migré votre compte vers %(username)s" + +#: bookwyrm/templates/moved.html:32 +msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "Vous pouvez annuler votre migration pour restaurer toutes les fonctionnalités, mais certain·e·s abonné·e·s peuvent déjà ne plus suivre ce compte." + +#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +msgid "Undo move" +msgstr "Annuler la migration" + +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +msgid "Log out" +msgstr "Se déconnecter" + #: bookwyrm/templates/notifications/items/accept.html:18 #, python-format msgid "%(related_user)s accepted your invitation to join group \"%(group_name)s\"" @@ -3744,6 +3763,16 @@ msgstr "%(related_user)s vous a mentionné msgid "%(related_user)s mentioned you in a status" msgstr "%(related_user)s vous a mentionné(e) dans un statut" +#: bookwyrm/templates/notifications/items/move_user.html:18 +#, python-format +msgid "%(related_user)s has moved to %(username)s" +msgstr "%(related_user)s a déménagé vers %(username)s" + +#: bookwyrm/templates/notifications/items/move_user.html:25 +#, python-format +msgid "%(related_user)s has undone their move" +msgstr "%(related_user)s a annulé sa migration" + #: bookwyrm/templates/notifications/items/remove.html:17 #, python-format msgid "has been removed from your group \"%(group_name)s\"" @@ -3782,7 +3811,7 @@ msgstr[0] "Un nouveau signalement a besoin d’être tr msgstr[1] "%(display_count)s nouveaux signalements ont besoin d’être traités" #: bookwyrm/templates/notifications/items/status_preview.html:4 -#: bookwyrm/templates/snippets/status/content_status.html:73 +#: bookwyrm/templates/snippets/status/content_status.html:62 msgid "Content warning" msgstr "Avertissement sur le contenu" @@ -4000,9 +4029,51 @@ msgstr "Confirmez votre mot de passe pour commencer à configurer l’authentifi msgid "Set up 2FA" msgstr "Configurer l’authentification à deux facteurs" +#: bookwyrm/templates/preferences/alias_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:7 +#: bookwyrm/templates/preferences/move_user.html:39 +msgid "Move Account" +msgstr "Migrer le compte" + +#: bookwyrm/templates/preferences/alias_user.html:7 +#: bookwyrm/templates/preferences/alias_user.html:34 +msgid "Create Alias" +msgstr "Créer un alias de redirection" + +#: bookwyrm/templates/preferences/alias_user.html:12 +msgid "Add another account as an alias" +msgstr "Déclarer un alias de redirection" + +#: bookwyrm/templates/preferences/alias_user.html:16 +msgid "Marking another account as an alias is required if you want to move that account to this one." +msgstr "Déclarer un compte comme alias de redirection est obligatoire si vous souhaitez déplacer ce compte vers un nouveau." + +#: bookwyrm/templates/preferences/alias_user.html:19 +msgid "This is a reversable action and will not change the functionality of this account." +msgstr "Cette action est réversible et ne changera pas les fonctionnalités de ce compte." + +#: bookwyrm/templates/preferences/alias_user.html:25 +msgid "Enter the username for the account you want to add as an alias e.g. user@example.com :" +msgstr "Entrez le nom d'utilisateur du compte que vous souhaitez déclarer comme alias (ex. : user@example.com) :" + +#: bookwyrm/templates/preferences/alias_user.html:30 +#: bookwyrm/templates/preferences/move_user.html:35 +msgid "Confirm your password:" +msgstr "Confirmez votre mot de passe :" + +#: bookwyrm/templates/preferences/alias_user.html:39 +#: bookwyrm/templates/preferences/layout.html:28 +msgid "Aliases" +msgstr "Alias de redirection" + +#: bookwyrm/templates/preferences/alias_user.html:49 +msgid "Remove alias" +msgstr "Supprimer l'alias de redirection" + #: bookwyrm/templates/preferences/blocks.html:4 #: bookwyrm/templates/preferences/blocks.html:7 -#: bookwyrm/templates/preferences/layout.html:46 +#: bookwyrm/templates/preferences/layout.html:54 msgid "Blocked Users" msgstr "Comptes bloqués" @@ -4032,7 +4103,7 @@ msgstr "Nouveau mot de passe :" #: bookwyrm/templates/preferences/delete_user.html:4 #: bookwyrm/templates/preferences/delete_user.html:7 #: bookwyrm/templates/preferences/delete_user.html:40 -#: bookwyrm/templates/preferences/layout.html:28 +#: bookwyrm/templates/preferences/layout.html:36 #: bookwyrm/templates/settings/users/delete_user_form.html:22 msgid "Delete Account" msgstr "Supprimer le compte" @@ -4154,18 +4225,46 @@ msgstr "Télécharger le fichier" msgid "Account" msgstr "Compte" -#: bookwyrm/templates/preferences/layout.html:31 +#: bookwyrm/templates/preferences/layout.html:32 +msgid "Move Account" +msgstr "Migrer le compte" + +#: bookwyrm/templates/preferences/layout.html:39 msgid "Data" msgstr "Données" -#: bookwyrm/templates/preferences/layout.html:39 +#: bookwyrm/templates/preferences/layout.html:47 msgid "CSV export" msgstr "Export CSV" -#: bookwyrm/templates/preferences/layout.html:42 +#: bookwyrm/templates/preferences/layout.html:50 msgid "Relationships" msgstr "Relations" +#: bookwyrm/templates/preferences/move_user.html:12 +msgid "Migrate account to another server" +msgstr "Migrer ce compte vers une autre instance" + +#: bookwyrm/templates/preferences/move_user.html:16 +msgid "Moving your account will notify all your followers and direct them to follow the new account." +msgstr "Migrer ce compte notifiera tou·te·s vos abonné·e·s et les redirigera vers votre nouveau compte." + +#: bookwyrm/templates/preferences/move_user.html:19 +#, python-format +msgid "\n" +" %(user)s will be marked as moved and will not be discoverable or usable unless you undo the move.\n" +" " +msgstr "\n" +"L'utilisateur %(user)s sera marqué comme migré et ne sera plus découvrable ou utilisable, à moins que vous n'annuliez la migration. " + +#: bookwyrm/templates/preferences/move_user.html:25 +msgid "Remember to add this user as an alias of the target account before you try to move." +msgstr "Pensez à déclarer cet utilisateur comme alias du compte cible avant d'initier la migration." + +#: bookwyrm/templates/preferences/move_user.html:30 +msgid "Enter the username for the account you want to move to e.g. user@example.com :" +msgstr "Entrez le nom d'utilisateur du compte que vous souhaitez faire migrer (ex. : user@example.com) :" + #: bookwyrm/templates/reading_progress/finish.html:5 #, python-format msgid "Finish \"%(book_title)s\"" @@ -4574,7 +4673,7 @@ msgid "Streams" msgstr "Flux" #: bookwyrm/templates/settings/celery.html:32 -msgid "Broadcasts" +msgid "Broadcast" msgstr "Diffusion" #: bookwyrm/templates/settings/celery.html:38 @@ -4900,19 +4999,19 @@ msgstr "Instance :" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:119 msgid "Status:" msgstr "Statut :" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:107 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Software:" msgstr "Logiciel :" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:110 +#: bookwyrm/templates/settings/users/user_info.html:116 msgid "Version:" msgstr "Description :" @@ -4925,7 +5024,7 @@ msgid "Details" msgstr "Détails" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:69 +#: bookwyrm/templates/user/layout.html:84 msgid "Activity" msgstr "Activité" @@ -4939,7 +5038,7 @@ msgid "View all" msgstr "Voir tous" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:60 +#: bookwyrm/templates/settings/users/user_info.html:66 msgid "Reports:" msgstr "Signalements :" @@ -4956,7 +5055,7 @@ msgid "Blocked by us:" msgstr "Bloqués par nous :" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:117 +#: bookwyrm/templates/settings/users/user_info.html:123 msgid "Notes" msgstr "Remarques" @@ -5676,17 +5775,22 @@ msgstr "Dernière activité" msgid "Remote instance" msgstr "Instance distante" -#: bookwyrm/templates/settings/users/user_admin.html:86 +#: bookwyrm/templates/settings/users/user_admin.html:82 +#: bookwyrm/templates/settings/users/user_info.html:29 +msgid "Moved" +msgstr "Déménagé" + +#: bookwyrm/templates/settings/users/user_admin.html:93 msgid "Deleted" msgstr "Supprimé" -#: bookwyrm/templates/settings/users/user_admin.html:92 -#: bookwyrm/templates/settings/users/user_info.html:32 +#: bookwyrm/templates/settings/users/user_admin.html:99 +#: bookwyrm/templates/settings/users/user_info.html:38 msgid "Inactive" msgstr "Inactif" -#: bookwyrm/templates/settings/users/user_admin.html:101 -#: bookwyrm/templates/settings/users/user_info.html:127 +#: bookwyrm/templates/settings/users/user_admin.html:108 +#: bookwyrm/templates/settings/users/user_info.html:133 msgid "Not set" msgstr "Non défini" @@ -5698,55 +5802,55 @@ msgstr "Voir le profil" msgid "Go to user admin" msgstr "Accéder à l’admininstration des comptes" -#: bookwyrm/templates/settings/users/user_info.html:40 +#: bookwyrm/templates/settings/users/user_info.html:46 msgid "Local" msgstr "Local" -#: bookwyrm/templates/settings/users/user_info.html:42 +#: bookwyrm/templates/settings/users/user_info.html:48 msgid "Remote" msgstr "Distant·e" -#: bookwyrm/templates/settings/users/user_info.html:51 +#: bookwyrm/templates/settings/users/user_info.html:57 msgid "User details" msgstr "Détails du compte" -#: bookwyrm/templates/settings/users/user_info.html:55 +#: bookwyrm/templates/settings/users/user_info.html:61 msgid "Email:" msgstr "Email :" -#: bookwyrm/templates/settings/users/user_info.html:65 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "(View reports)" msgstr "(Voir les rapports)" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Blocked by count:" msgstr "Bloqué par compte:" -#: bookwyrm/templates/settings/users/user_info.html:74 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Date added:" msgstr "Date d’ajout :" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Last active date:" msgstr "Dernière date d'activité :" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:86 msgid "Manually approved followers:" msgstr "Abonné(e)s approuvés manuellement :" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:89 msgid "Discoverable:" msgstr "Visible publiquement :" -#: bookwyrm/templates/settings/users/user_info.html:87 +#: bookwyrm/templates/settings/users/user_info.html:93 msgid "Deactivation reason:" msgstr "Raison de la désactivation :" -#: bookwyrm/templates/settings/users/user_info.html:102 +#: bookwyrm/templates/settings/users/user_info.html:108 msgid "Instance details" msgstr "Détails de l’instance" -#: bookwyrm/templates/settings/users/user_info.html:124 +#: bookwyrm/templates/settings/users/user_info.html:130 msgid "View instance" msgstr "Voir l’instance" @@ -5883,7 +5987,7 @@ msgid "Need help?" msgstr "Besoin d’aide ?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:72 +#: bookwyrm/templates/shelf/shelf.html:87 msgid "Create shelf" msgstr "Créer une étagère" @@ -5891,58 +5995,66 @@ msgstr "Créer une étagère" msgid "Edit Shelf" msgstr "Modifier l’étagère" -#: bookwyrm/templates/shelf/shelf.html:24 +#: bookwyrm/templates/shelf/shelf.html:25 +msgid "You have have moved to" +msgstr "Vous avez déménagé vers" + +#: bookwyrm/templates/shelf/shelf.html:28 +msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "Vous pouvez annuler cette migration pour restaurer toutes les fonctionnalités, mais certain·e·s abonné·e·s peuvent déjà ne plus suivre ce compte." + +#: bookwyrm/templates/shelf/shelf.html:39 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Profil utilisateur·rice" -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:54 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Tous les livres" -#: bookwyrm/templates/shelf/shelf.html:97 +#: bookwyrm/templates/shelf/shelf.html:112 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s livre" msgstr[1] "%(formatted_count)s livres" -#: bookwyrm/templates/shelf/shelf.html:104 +#: bookwyrm/templates/shelf/shelf.html:119 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(affichage de %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:116 +#: bookwyrm/templates/shelf/shelf.html:131 msgid "Edit shelf" msgstr "Modifier l’étagère" -#: bookwyrm/templates/shelf/shelf.html:124 +#: bookwyrm/templates/shelf/shelf.html:139 msgid "Delete shelf" msgstr "Supprimer l’étagère" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:178 +#: bookwyrm/templates/shelf/shelf.html:167 +#: bookwyrm/templates/shelf/shelf.html:193 msgid "Shelved" msgstr "Date d’ajout" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:181 +#: bookwyrm/templates/shelf/shelf.html:168 +#: bookwyrm/templates/shelf/shelf.html:196 msgid "Started" msgstr "Commencé" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Finished" msgstr "Terminé" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Until" msgstr "Jusqu’à" -#: bookwyrm/templates/shelf/shelf.html:210 +#: bookwyrm/templates/shelf/shelf.html:225 msgid "This shelf is empty." msgstr "Cette étagère est vide" @@ -6248,6 +6360,10 @@ msgstr "Vous avez lu %(read_count)s livres sur %(goal_count 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/move_user_buttons.html:10 +msgid "Follow at new account" +msgstr "Suivre le nouveau compte" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6389,35 +6505,35 @@ msgstr "Interrompre la lecture" msgid "Finish reading" msgstr "Terminer la lecture" -#: bookwyrm/templates/snippets/status/content_status.html:80 +#: bookwyrm/templates/snippets/status/content_status.html:69 msgid "Show status" msgstr "Afficher le statut" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "(Page %(page)s" msgstr "(Page %(page)s" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "%(endpage)s" msgstr "%(endpage)s" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid "(%(percent)s%%" msgstr "(%(percent)s%%" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid " - %(endpercent)s%%" msgstr " - %(endpercent)s%%" -#: bookwyrm/templates/snippets/status/content_status.html:127 +#: bookwyrm/templates/snippets/status/content_status.html:116 msgid "Open image in new window" msgstr "Ouvrir l’image dans une nouvelle fenêtre" -#: bookwyrm/templates/snippets/status/content_status.html:148 +#: bookwyrm/templates/snippets/status/content_status.html:137 msgid "Hide status" msgstr "Masquer le statut" @@ -6609,10 +6725,14 @@ msgid "Groups: %(username)s" msgstr "Groupes : %(username)s" #: bookwyrm/templates/user/layout.html:50 +msgid "has moved to" +msgstr "a déménagé vers" + +#: bookwyrm/templates/user/layout.html:64 msgid "Follow Requests" msgstr "Demandes d’abonnement" -#: bookwyrm/templates/user/layout.html:73 +#: bookwyrm/templates/user/layout.html:88 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6627,6 +6747,12 @@ msgstr "Listes : %(username)s" msgid "Create list" msgstr "Créer une liste" +#: bookwyrm/templates/user/moved.html:25 +#: bookwyrm/templates/user/user_preview.html:22 +#, python-format +msgid "Joined %(date)s" +msgstr "A rejoint ce serveur %(date)s" + #: bookwyrm/templates/user/relationships/followers.html:31 #, python-format msgid "%(username)s has no followers" @@ -6698,11 +6824,6 @@ msgstr "Seulement les commentaires" msgid "No activities yet!" msgstr "Aucune activité pour l’instant !" -#: bookwyrm/templates/user/user_preview.html:22 -#, python-format -msgid "Joined %(date)s" -msgstr "A rejoint ce serveur %(date)s" - #: bookwyrm/templates/user/user_preview.html:26 #, python-format msgid "%(display_count)s follower" @@ -6730,10 +6851,6 @@ msgstr "Aucun·e abonné·e que vous suivez" msgid "View profile and more" msgstr "Voir le profil et plus" -#: bookwyrm/templates/user_menu.html:82 -msgid "Log out" -msgstr "Se déconnecter" - #: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:28 msgid "File exceeds maximum size: 10MB" msgstr "Ce fichier dépasse la taille limite : 10 Mo" @@ -6750,7 +6867,7 @@ msgid_plural "%(num)d books - by %(user)s" msgstr[0] "%(num)d livre - par %(user)s" msgstr[1] "%(num)d livres - par %(user)s" -#: bookwyrm/templatetags/utilities.py:39 +#: bookwyrm/templatetags/utilities.py:48 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s (%(subtitle)s)" diff --git a/locale/gl_ES/LC_MESSAGES/django.mo b/locale/gl_ES/LC_MESSAGES/django.mo index 780a8def4f48af3d9148628b71fa01888de99c51..9b2c7c2ff22a3695dde4b588ba9ed2fcccbdd6bb 100644 GIT binary patch delta 34244 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 M#r7>6uq46%0l?-~v;Y7A delta 31233 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 N{Www83V6-;`9H#ZhQ\n" "Language-Team: Galician\n" "Language: gl\n" @@ -42,15 +42,15 @@ msgstr "{i} usos" msgid "Unlimited" msgstr "Sen límite" -#: bookwyrm/forms/edit_user.py:88 +#: bookwyrm/forms/edit_user.py:104 msgid "Incorrect password" msgstr "Contrasinal incorrecto" -#: bookwyrm/forms/edit_user.py:95 bookwyrm/forms/landing.py:90 +#: bookwyrm/forms/edit_user.py:111 bookwyrm/forms/landing.py:90 msgid "Password does not match" msgstr "O contrasinal non concorda" -#: bookwyrm/forms/edit_user.py:118 +#: bookwyrm/forms/edit_user.py:134 msgid "Incorrect Password" msgstr "Contrasinal incorrecto" @@ -102,8 +102,8 @@ msgstr "Orde da lista" msgid "Book Title" msgstr "Título do libro" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 +#: bookwyrm/templates/shelf/shelf.html:203 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Valoración" @@ -145,7 +145,7 @@ msgstr "Perigo" msgid "Automatically generated report" msgstr "Denuncia creada automáticamente" -#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:47 +#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:48 #: bookwyrm/models/link.py:72 bookwyrm/templates/import/import_status.html:214 #: bookwyrm/templates/settings/link_domains/link_domains.html:19 msgid "Pending" @@ -171,23 +171,23 @@ msgstr "Eliminado pola moderación" msgid "Domain block" msgstr "Bloqueo de dominio" -#: bookwyrm/models/book.py:283 +#: bookwyrm/models/book.py:282 msgid "Audiobook" msgstr "Audiolibro" -#: bookwyrm/models/book.py:284 +#: bookwyrm/models/book.py:283 msgid "eBook" msgstr "eBook" -#: bookwyrm/models/book.py:285 +#: bookwyrm/models/book.py:284 msgid "Graphic novel" msgstr "Novela gráfica" -#: bookwyrm/models/book.py:286 +#: bookwyrm/models/book.py:285 msgid "Hardcover" msgstr "Tapa dura" -#: bookwyrm/models/book.py:287 +#: bookwyrm/models/book.py:286 msgid "Paperback" msgstr "Libro de bolso" @@ -205,26 +205,26 @@ msgstr "Federado" msgid "Blocked" msgstr "Bloqueado" -#: bookwyrm/models/fields.py:29 +#: bookwyrm/models/fields.py:30 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s non é un remote_id válido" -#: bookwyrm/models/fields.py:38 bookwyrm/models/fields.py:47 +#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s non é un nome de usuaria válido" -#: bookwyrm/models/fields.py:192 bookwyrm/templates/layout.html:128 +#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "identificador" -#: bookwyrm/models/fields.py:197 +#: bookwyrm/models/fields.py:198 msgid "A user with that username already exists." msgstr "Xa existe unha usuaria con ese identificador." -#: bookwyrm/models/fields.py:216 +#: bookwyrm/models/fields.py:217 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "Xa existe unha usuaria con ese identificador." msgid "Public" msgstr "Público" -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:218 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Público" msgid "Unlisted" msgstr "Non listado" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:219 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Non listado" msgid "Followers" msgstr "Seguidoras" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:220 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -258,30 +258,30 @@ msgstr "Seguidoras" msgid "Private" msgstr "Privado" -#: bookwyrm/models/import_job.py:48 bookwyrm/templates/import/import.html:174 +#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:81 -#: bookwyrm/templates/settings/users/user_info.html:28 +#: bookwyrm/templates/settings/users/user_admin.html:87 +#: bookwyrm/templates/settings/users/user_info.html:33 msgid "Active" msgstr "Activa" -#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:172 +#: bookwyrm/models/import_job.py:50 bookwyrm/templates/import/import.html:172 msgid "Complete" msgstr "Completa" -#: bookwyrm/models/import_job.py:50 +#: bookwyrm/models/import_job.py:51 msgid "Stopped" msgstr "Detida" -#: bookwyrm/models/import_job.py:83 bookwyrm/models/import_job.py:91 +#: bookwyrm/models/import_job.py:84 bookwyrm/models/import_job.py:92 msgid "Import stopped" msgstr "Importación detida" -#: bookwyrm/models/import_job.py:363 bookwyrm/models/import_job.py:388 +#: bookwyrm/models/import_job.py:356 bookwyrm/models/import_job.py:381 msgid "Error loading book" msgstr "Erro ao cargar o libro" -#: bookwyrm/models/import_job.py:372 +#: bookwyrm/models/import_job.py:365 msgid "Could not find a match for book" msgstr "Non se atopan coincidencias para o libro" @@ -368,103 +368,103 @@ msgstr "Citas" msgid "Everything else" msgstr "As outras cousas" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home Timeline" msgstr "Cronoloxía de Inicio" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home" msgstr "Inicio" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 msgid "Books Timeline" msgstr "Cronoloxía de libros" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:97 +#: bookwyrm/templates/user/layout.html:112 msgid "Books" msgstr "Libros" -#: bookwyrm/settings.py:296 +#: bookwyrm/settings.py:303 msgid "English" msgstr "English (Inglés)" -#: bookwyrm/settings.py:297 +#: bookwyrm/settings.py:304 msgid "Català (Catalan)" msgstr "Català (Catalan)" -#: bookwyrm/settings.py:298 +#: bookwyrm/settings.py:305 msgid "Deutsch (German)" msgstr "Deutsch (Alemán)" -#: bookwyrm/settings.py:299 +#: bookwyrm/settings.py:306 msgid "Esperanto (Esperanto)" msgstr "Esperanto (Esperanto)" -#: bookwyrm/settings.py:300 +#: bookwyrm/settings.py:307 msgid "Español (Spanish)" msgstr "Español (Español)" -#: bookwyrm/settings.py:301 +#: bookwyrm/settings.py:308 msgid "Euskara (Basque)" msgstr "Euskara (Éuscaro)" -#: bookwyrm/settings.py:302 +#: bookwyrm/settings.py:309 msgid "Galego (Galician)" msgstr "Galego (Galego)" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:310 msgid "Italiano (Italian)" msgstr "Italiano (Italiano)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:311 msgid "Suomi (Finnish)" msgstr "Suomi (Finés)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:312 msgid "Français (French)" msgstr "Français (Francés)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:313 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių (Lituano)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:314 msgid "Nederlands (Dutch)" msgstr "Paises Baixos (Dutch)" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:315 msgid "Norsk (Norwegian)" msgstr "Norsk (Noruegués)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:316 msgid "Polski (Polish)" msgstr "Polski (Polaco)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:317 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil (Portugués brasileiro)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:318 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (Portugués europeo)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:319 msgid "Română (Romanian)" msgstr "Română (Rumanés)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:320 msgid "Svenska (Swedish)" msgstr "Svenska (Sueco)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:321 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文 (Chinés simplificado)" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:322 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (Chinés tradicional)" @@ -575,7 +575,7 @@ msgid "Software version:" msgstr "Versión do software:" #: bookwyrm/templates/about/layout.html:30 -#: bookwyrm/templates/embed-layout.html:33 +#: bookwyrm/templates/embed-layout.html:34 #: bookwyrm/templates/snippets/footer.html:8 #, python-format msgid "About %(site_name)s" @@ -680,7 +680,7 @@ msgstr "A lectura máis curta deste ano…" #: bookwyrm/templates/annual_summary/layout.html:157 #: bookwyrm/templates/annual_summary/layout.html:178 #: bookwyrm/templates/annual_summary/layout.html:247 -#: bookwyrm/templates/book/book.html:63 +#: bookwyrm/templates/book/book.html:65 #: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/landing/large-book.html:26 #: bookwyrm/templates/landing/small-book.html:18 @@ -768,24 +768,24 @@ msgid "View ISNI record" msgstr "Ver rexistro ISNI" #: bookwyrm/templates/author/author.html:95 -#: bookwyrm/templates/book/book.html:173 +#: bookwyrm/templates/book/book.html:175 msgid "View on ISFDB" msgstr "Ver en ISFDB" #: bookwyrm/templates/author/author.html:100 #: bookwyrm/templates/author/sync_modal.html:5 -#: bookwyrm/templates/book/book.html:140 +#: bookwyrm/templates/book/book.html:142 #: bookwyrm/templates/book/sync_modal.html:5 msgid "Load data" msgstr "Cargar datos" #: bookwyrm/templates/author/author.html:104 -#: bookwyrm/templates/book/book.html:144 +#: bookwyrm/templates/book/book.html:146 msgid "View on OpenLibrary" msgstr "Ver en OpenLibrary" #: bookwyrm/templates/author/author.html:119 -#: bookwyrm/templates/book/book.html:158 +#: bookwyrm/templates/book/book.html:160 msgid "View on Inventaire" msgstr "Ver en Inventaire" @@ -797,11 +797,7 @@ msgstr "Ver en LibraryThing" msgid "View on Goodreads" msgstr "Ver en Goodreads" -#: bookwyrm/templates/author/author.html:151 -msgid "View ISFDB entry" -msgstr "Ver a entrada ISFDB" - -#: bookwyrm/templates/author/author.html:166 +#: bookwyrm/templates/author/author.html:158 #, python-format msgid "Books by %(name)s" msgstr "Libros de %(name)s" @@ -959,19 +955,19 @@ msgstr "Confirmar" msgid "Unable to connect to remote source." msgstr "Non se pode conectar coa fonte remota." -#: bookwyrm/templates/book/book.html:71 bookwyrm/templates/book/book.html:72 +#: bookwyrm/templates/book/book.html:73 bookwyrm/templates/book/book.html:74 msgid "Edit Book" msgstr "Editar libro" -#: bookwyrm/templates/book/book.html:97 bookwyrm/templates/book/book.html:100 +#: bookwyrm/templates/book/book.html:99 bookwyrm/templates/book/book.html:102 msgid "Click to add cover" msgstr "Preme para engadir portada" -#: bookwyrm/templates/book/book.html:106 +#: bookwyrm/templates/book/book.html:108 msgid "Failed to load cover" msgstr "Fallou a carga da portada" -#: bookwyrm/templates/book/book.html:117 +#: bookwyrm/templates/book/book.html:119 msgid "Click to enlarge" msgstr "Preme para agrandar" @@ -1046,13 +1042,13 @@ msgstr "Lugares" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:90 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:91 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Listas" @@ -1117,8 +1113,8 @@ msgstr "Subir portada:" #: bookwyrm/templates/book/cover_add_modal.html:23 #: bookwyrm/templates/book/edit/edit_book_form.html:250 -msgid "Load cover from url:" -msgstr "Cargar portada desde url:" +msgid "Load cover from URL:" +msgstr "Cargar portada desde URL:" #: bookwyrm/templates/book/cover_show_modal.html:6 msgid "Book cover preview" @@ -1328,7 +1324,7 @@ msgid "Add Another Author" msgstr "Engade outra Autora" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:147 +#: bookwyrm/templates/shelf/shelf.html:162 msgid "Cover" msgstr "Portada" @@ -1529,22 +1525,22 @@ msgstr "%(pages)s páxinas" msgid "%(languages)s language" msgstr "idioma %(languages)s" -#: bookwyrm/templates/book/publisher_info.html:65 +#: bookwyrm/templates/book/publisher_info.html:63 #, python-format msgid "Published %(date)s by %(publisher)s." msgstr "Publicado en %(date)s por %(publisher)s." +#: bookwyrm/templates/book/publisher_info.html:65 +#, python-format +msgid "Published by %(publisher)s." +msgstr "Publicado por %(publisher)s." + #: bookwyrm/templates/book/publisher_info.html:67 #, python-format msgid "Published %(date)s" msgstr "Publicado o %(date)s" -#: bookwyrm/templates/book/publisher_info.html:69 -#, python-format -msgid "Published by %(publisher)s." -msgstr "Publicado por %(publisher)s." - -#: bookwyrm/templates/book/rating.html:13 +#: bookwyrm/templates/book/rating.html:19 msgid "rated it" msgstr "valorouno" @@ -1552,12 +1548,12 @@ msgstr "valorouno" msgid "Series by" msgstr "Unha Serie de" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 #, python-format msgid "Book %(series_number)s" msgstr "Libro %(series_number)s" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 msgid "Unsorted Book" msgstr "Libro non ordenado" @@ -1587,7 +1583,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Lamentámolo! Non puidemos atopar ese código." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:92 +#: bookwyrm/templates/settings/users/user_info.html:98 msgid "Confirmation code:" msgstr "Código de confirmación:" @@ -1681,6 +1677,7 @@ msgstr "Suxerido" #: bookwyrm/templates/ostatus/subscribe.html:42 #: bookwyrm/templates/ostatus/success.html:17 #: bookwyrm/templates/ostatus/success.html:18 +#: bookwyrm/templates/user/moved.html:19 bookwyrm/templates/user/moved.html:20 #: bookwyrm/templates/user/user_preview.html:16 #: bookwyrm/templates/user/user_preview.html:17 msgid "Locked account" @@ -1755,7 +1752,7 @@ msgstr "%(username)s citou You have moved your account to %(username)s" +msgstr "Migraches a túa conta a %(username)s" + +#: bookwyrm/templates/moved.html:32 +msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "Podes desfacer a migracións para restablecer todas as funcións, mais é posible que algunhas seguidoras deixasen de seguir esta conta." + +#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +msgid "Undo move" +msgstr "Desfacer migración" + +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +msgid "Log out" +msgstr "Desconectar" + #: bookwyrm/templates/notifications/items/accept.html:18 #, python-format msgid "%(related_user)s accepted your invitation to join group \"%(group_name)s\"" @@ -3744,6 +3763,16 @@ msgstr "%(related_user)s mencionoute nunha msgid "%(related_user)s mentioned you in a status" msgstr "%(related_user)s mencionoute nun estado" +#: bookwyrm/templates/notifications/items/move_user.html:18 +#, python-format +msgid "%(related_user)s has moved to %(username)s" +msgstr "%(related_user)s migrou a %(username)s" + +#: bookwyrm/templates/notifications/items/move_user.html:25 +#, python-format +msgid "%(related_user)s has undone their move" +msgstr "%(related_user)s retractouse da migración" + #: bookwyrm/templates/notifications/items/remove.html:17 #, python-format msgid "has been removed from your group \"%(group_name)s\"" @@ -3782,7 +3811,7 @@ msgstr[0] "Nova denuncia pendente de revisión" msgstr[1] "Novas %(display_count)s new denuncias pendentes de revisión" #: bookwyrm/templates/notifications/items/status_preview.html:4 -#: bookwyrm/templates/snippets/status/content_status.html:73 +#: bookwyrm/templates/snippets/status/content_status.html:62 msgid "Content warning" msgstr "Aviso sobre o contido" @@ -4000,9 +4029,51 @@ msgstr "Confirma o teu contrasinal para comezar a usar 2FA." msgid "Set up 2FA" msgstr "Configurar 2FA" +#: bookwyrm/templates/preferences/alias_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:7 +#: bookwyrm/templates/preferences/move_user.html:39 +msgid "Move Account" +msgstr "Migrar Conta" + +#: bookwyrm/templates/preferences/alias_user.html:7 +#: bookwyrm/templates/preferences/alias_user.html:34 +msgid "Create Alias" +msgstr "Crear Alcume" + +#: bookwyrm/templates/preferences/alias_user.html:12 +msgid "Add another account as an alias" +msgstr "Engadir outra conta como un alcume" + +#: bookwyrm/templates/preferences/alias_user.html:16 +msgid "Marking another account as an alias is required if you want to move that account to this one." +msgstr "É preciso facer que outra conta sexa un alcume se queres migrar desde esa conta a esta." + +#: bookwyrm/templates/preferences/alias_user.html:19 +msgid "This is a reversable action and will not change the functionality of this account." +msgstr "Esta acción é reversible e non afecta á funcionabilidade desta conta." + +#: bookwyrm/templates/preferences/alias_user.html:25 +msgid "Enter the username for the account you want to add as an alias e.g. user@example.com :" +msgstr "Escribe o identificador da conta que queres engadir como un alcume, ex. usuaria@exemplo.com:" + +#: bookwyrm/templates/preferences/alias_user.html:30 +#: bookwyrm/templates/preferences/move_user.html:35 +msgid "Confirm your password:" +msgstr "Confirma o teu contrasinal:" + +#: bookwyrm/templates/preferences/alias_user.html:39 +#: bookwyrm/templates/preferences/layout.html:28 +msgid "Aliases" +msgstr "Alcumes" + +#: bookwyrm/templates/preferences/alias_user.html:49 +msgid "Remove alias" +msgstr "Eliminar alcume" + #: bookwyrm/templates/preferences/blocks.html:4 #: bookwyrm/templates/preferences/blocks.html:7 -#: bookwyrm/templates/preferences/layout.html:46 +#: bookwyrm/templates/preferences/layout.html:54 msgid "Blocked Users" msgstr "Usuarias bloqueadas" @@ -4032,7 +4103,7 @@ msgstr "Novo contrasinal:" #: bookwyrm/templates/preferences/delete_user.html:4 #: bookwyrm/templates/preferences/delete_user.html:7 #: bookwyrm/templates/preferences/delete_user.html:40 -#: bookwyrm/templates/preferences/layout.html:28 +#: bookwyrm/templates/preferences/layout.html:36 #: bookwyrm/templates/settings/users/delete_user_form.html:22 msgid "Delete Account" msgstr "Eliminar conta" @@ -4154,18 +4225,47 @@ msgstr "Descargar ficheiro" msgid "Account" msgstr "Conta" -#: bookwyrm/templates/preferences/layout.html:31 +#: bookwyrm/templates/preferences/layout.html:32 +msgid "Move Account" +msgstr "Migrar Conta" + +#: bookwyrm/templates/preferences/layout.html:39 msgid "Data" msgstr "Datos" -#: bookwyrm/templates/preferences/layout.html:39 +#: bookwyrm/templates/preferences/layout.html:47 msgid "CSV export" msgstr "Exportar CSV" -#: bookwyrm/templates/preferences/layout.html:42 +#: bookwyrm/templates/preferences/layout.html:50 msgid "Relationships" msgstr "Relacións" +#: bookwyrm/templates/preferences/move_user.html:12 +msgid "Migrate account to another server" +msgstr "Migrar a conta a outro servidor" + +#: bookwyrm/templates/preferences/move_user.html:16 +msgid "Moving your account will notify all your followers and direct them to follow the new account." +msgstr "Ao mover a conta vaiselle notificar ás túas seguidoras e indicarlles que te sigan na nova conta." + +#: bookwyrm/templates/preferences/move_user.html:19 +#, python-format +msgid "\n" +" %(user)s will be marked as moved and will not be discoverable or usable unless you undo the move.\n" +" " +msgstr "\n" +"%(user)s quedará marcada como migrada e non aparecerá na sección Descubrir ou será utilizable a menos que desfagas a migración.\n" +" " + +#: bookwyrm/templates/preferences/move_user.html:25 +msgid "Remember to add this user as an alias of the target account before you try to move." +msgstr "Lembra engadir esta usuaria como un alcume na outra conta antes de realizar a migración." + +#: bookwyrm/templates/preferences/move_user.html:30 +msgid "Enter the username for the account you want to move to e.g. user@example.com :" +msgstr "Escribe o identificador da conta á cal queres migrar, ex. usuaria@exemplo.com:" + #: bookwyrm/templates/reading_progress/finish.html:5 #, python-format msgid "Finish \"%(book_title)s\"" @@ -4574,7 +4674,7 @@ msgid "Streams" msgstr "" #: bookwyrm/templates/settings/celery.html:32 -msgid "Broadcasts" +msgid "Broadcast" msgstr "" #: bookwyrm/templates/settings/celery.html:38 @@ -4900,19 +5000,19 @@ msgstr "Instancia:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:119 msgid "Status:" msgstr "Estado:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:107 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Software:" msgstr "Software:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:110 +#: bookwyrm/templates/settings/users/user_info.html:116 msgid "Version:" msgstr "Versión:" @@ -4925,7 +5025,7 @@ msgid "Details" msgstr "Detalles" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:69 +#: bookwyrm/templates/user/layout.html:84 msgid "Activity" msgstr "Actividade" @@ -4939,7 +5039,7 @@ msgid "View all" msgstr "Ver todo" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:60 +#: bookwyrm/templates/settings/users/user_info.html:66 msgid "Reports:" msgstr "Denuncias:" @@ -4956,7 +5056,7 @@ msgid "Blocked by us:" msgstr "Temos bloquedas:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:117 +#: bookwyrm/templates/settings/users/user_info.html:123 msgid "Notes" msgstr "Notas" @@ -5676,17 +5776,22 @@ msgstr "Última vez activa" msgid "Remote instance" msgstr "Instancia remota" -#: bookwyrm/templates/settings/users/user_admin.html:86 +#: bookwyrm/templates/settings/users/user_admin.html:82 +#: bookwyrm/templates/settings/users/user_info.html:29 +msgid "Moved" +msgstr "Migrada" + +#: bookwyrm/templates/settings/users/user_admin.html:93 msgid "Deleted" msgstr "Eliminada" -#: bookwyrm/templates/settings/users/user_admin.html:92 -#: bookwyrm/templates/settings/users/user_info.html:32 +#: bookwyrm/templates/settings/users/user_admin.html:99 +#: bookwyrm/templates/settings/users/user_info.html:38 msgid "Inactive" msgstr "Inactiva" -#: bookwyrm/templates/settings/users/user_admin.html:101 -#: bookwyrm/templates/settings/users/user_info.html:127 +#: bookwyrm/templates/settings/users/user_admin.html:108 +#: bookwyrm/templates/settings/users/user_info.html:133 msgid "Not set" msgstr "Non establecido" @@ -5698,55 +5803,55 @@ msgstr "Ver perfil da usuaria" msgid "Go to user admin" msgstr "Ir á xestión da usuaria" -#: bookwyrm/templates/settings/users/user_info.html:40 +#: bookwyrm/templates/settings/users/user_info.html:46 msgid "Local" msgstr "Local" -#: bookwyrm/templates/settings/users/user_info.html:42 +#: bookwyrm/templates/settings/users/user_info.html:48 msgid "Remote" msgstr "Remota" -#: bookwyrm/templates/settings/users/user_info.html:51 +#: bookwyrm/templates/settings/users/user_info.html:57 msgid "User details" msgstr "Detalles da usuaria" -#: bookwyrm/templates/settings/users/user_info.html:55 +#: bookwyrm/templates/settings/users/user_info.html:61 msgid "Email:" msgstr "Email:" -#: bookwyrm/templates/settings/users/user_info.html:65 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "(View reports)" msgstr "(Ver denuncias)" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Blocked by count:" msgstr "Bloqueada pola conta:" -#: bookwyrm/templates/settings/users/user_info.html:74 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Date added:" msgstr "Engadido en:" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Last active date:" msgstr "Data da última actividade:" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:86 msgid "Manually approved followers:" msgstr "Seguidoras aprobadas manualmente:" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:89 msgid "Discoverable:" msgstr "Atopable:" -#: bookwyrm/templates/settings/users/user_info.html:87 +#: bookwyrm/templates/settings/users/user_info.html:93 msgid "Deactivation reason:" msgstr "Razón da desactivación:" -#: bookwyrm/templates/settings/users/user_info.html:102 +#: bookwyrm/templates/settings/users/user_info.html:108 msgid "Instance details" msgstr "Detalles da instancia" -#: bookwyrm/templates/settings/users/user_info.html:124 +#: bookwyrm/templates/settings/users/user_info.html:130 msgid "View instance" msgstr "Ver instancia" @@ -5883,7 +5988,7 @@ msgid "Need help?" msgstr "Precisas axuda?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:72 +#: bookwyrm/templates/shelf/shelf.html:87 msgid "Create shelf" msgstr "Crear estante" @@ -5891,58 +5996,66 @@ msgstr "Crear estante" msgid "Edit Shelf" msgstr "Editar estante" -#: bookwyrm/templates/shelf/shelf.html:24 +#: bookwyrm/templates/shelf/shelf.html:25 +msgid "You have have moved to" +msgstr "Migraches a" + +#: bookwyrm/templates/shelf/shelf.html:28 +msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "Podes desfacer esta migración para restablecer todas as funcións, pero algunhas seguidoras pode que deixasen de seguirte." + +#: bookwyrm/templates/shelf/shelf.html:39 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Perfil da usuaria" -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:54 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Todos os libros" -#: bookwyrm/templates/shelf/shelf.html:97 +#: bookwyrm/templates/shelf/shelf.html:112 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s libro" msgstr[1] "%(formatted_count)s libros" -#: bookwyrm/templates/shelf/shelf.html:104 +#: bookwyrm/templates/shelf/shelf.html:119 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(mostrando %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:116 +#: bookwyrm/templates/shelf/shelf.html:131 msgid "Edit shelf" msgstr "Editar estante" -#: bookwyrm/templates/shelf/shelf.html:124 +#: bookwyrm/templates/shelf/shelf.html:139 msgid "Delete shelf" msgstr "Eliminar estante" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:178 +#: bookwyrm/templates/shelf/shelf.html:167 +#: bookwyrm/templates/shelf/shelf.html:193 msgid "Shelved" msgstr "No estante" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:181 +#: bookwyrm/templates/shelf/shelf.html:168 +#: bookwyrm/templates/shelf/shelf.html:196 msgid "Started" msgstr "Comezado" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Finished" msgstr "Rematado" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Until" msgstr "Ata" -#: bookwyrm/templates/shelf/shelf.html:210 +#: bookwyrm/templates/shelf/shelf.html:225 msgid "This shelf is empty." msgstr "Este estante esta baleiro." @@ -6248,6 +6361,10 @@ msgstr "Liches %(read_count)s de %(goal_count)s libros. msgid "%(username)s has read %(read_count)s of %(goal_count)s books." msgstr "%(username)s leu %(read_count)s de %(goal_count)s libros." +#: bookwyrm/templates/snippets/move_user_buttons.html:10 +msgid "Follow at new account" +msgstr "Seguir na nova conta" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6389,35 +6506,35 @@ msgstr "Deixar de ler" msgid "Finish reading" msgstr "Rematar a lectura" -#: bookwyrm/templates/snippets/status/content_status.html:80 +#: bookwyrm/templates/snippets/status/content_status.html:69 msgid "Show status" msgstr "Mostrar estado" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "(Page %(page)s" msgstr "(Páxina %(page)s" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "%(endpage)s" msgstr "%(endpage)s" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid "(%(percent)s%%" msgstr "(%(percent)s%%" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid " - %(endpercent)s%%" msgstr " - %(endpercent)s%%" -#: bookwyrm/templates/snippets/status/content_status.html:127 +#: bookwyrm/templates/snippets/status/content_status.html:116 msgid "Open image in new window" msgstr "Abrir imaxe en nova ventá" -#: bookwyrm/templates/snippets/status/content_status.html:148 +#: bookwyrm/templates/snippets/status/content_status.html:137 msgid "Hide status" msgstr "Agochar estado" @@ -6609,10 +6726,14 @@ msgid "Groups: %(username)s" msgstr "Grupos: %(username)s" #: bookwyrm/templates/user/layout.html:50 +msgid "has moved to" +msgstr "migrou a" + +#: bookwyrm/templates/user/layout.html:64 msgid "Follow Requests" msgstr "Solicitudes de seguimento" -#: bookwyrm/templates/user/layout.html:73 +#: bookwyrm/templates/user/layout.html:88 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6627,6 +6748,12 @@ msgstr "Listas: %(username)s" msgid "Create list" msgstr "Crear lista" +#: bookwyrm/templates/user/moved.html:25 +#: bookwyrm/templates/user/user_preview.html:22 +#, python-format +msgid "Joined %(date)s" +msgstr "Desde hai %(date)s" + #: bookwyrm/templates/user/relationships/followers.html:31 #, python-format msgid "%(username)s has no followers" @@ -6698,11 +6825,6 @@ msgstr "Só comentarios" msgid "No activities yet!" msgstr "Sen actividade!" -#: bookwyrm/templates/user/user_preview.html:22 -#, python-format -msgid "Joined %(date)s" -msgstr "Desde hai %(date)s" - #: bookwyrm/templates/user/user_preview.html:26 #, python-format msgid "%(display_count)s follower" @@ -6730,10 +6852,6 @@ msgstr "Sen seguidoras que ti segues" msgid "View profile and more" msgstr "Ver perfil e máis" -#: bookwyrm/templates/user_menu.html:82 -msgid "Log out" -msgstr "Desconectar" - #: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:28 msgid "File exceeds maximum size: 10MB" msgstr "O ficheiro supera o tamaño máximo: 10MB" @@ -6750,7 +6868,7 @@ msgid_plural "%(num)d books - by %(user)s" msgstr[0] "%(num)d libro - por %(user)s" msgstr[1] "%(num)d libros - por %(user)s" -#: bookwyrm/templatetags/utilities.py:39 +#: bookwyrm/templatetags/utilities.py:48 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s" diff --git a/locale/it_IT/LC_MESSAGES/django.mo b/locale/it_IT/LC_MESSAGES/django.mo index 958cdcbf3644fb2077f764e7eba476b5fdc5c8e5..db21106f4de9c7b6e8ad92b26d83b98882a96325 100644 GIT binary patch delta 33912 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 delta 30733 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 dn!\n" "Language-Team: Italian\n" "Language: it\n" @@ -42,15 +42,15 @@ msgstr "{i} usi" msgid "Unlimited" msgstr "Illimitato" -#: bookwyrm/forms/edit_user.py:88 +#: bookwyrm/forms/edit_user.py:104 msgid "Incorrect password" msgstr "Password errata" -#: bookwyrm/forms/edit_user.py:95 bookwyrm/forms/landing.py:90 +#: bookwyrm/forms/edit_user.py:111 bookwyrm/forms/landing.py:90 msgid "Password does not match" msgstr "La password non corrisponde" -#: bookwyrm/forms/edit_user.py:118 +#: bookwyrm/forms/edit_user.py:134 msgid "Incorrect Password" msgstr "Password errata" @@ -102,8 +102,8 @@ msgstr "Ordina Lista" msgid "Book Title" msgstr "Titolo del libro" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 +#: bookwyrm/templates/shelf/shelf.html:203 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Valutazione" @@ -145,7 +145,7 @@ msgstr "Attenzione" msgid "Automatically generated report" msgstr "Rapporto generato automaticamente" -#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:47 +#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:48 #: bookwyrm/models/link.py:72 bookwyrm/templates/import/import_status.html:214 #: bookwyrm/templates/settings/link_domains/link_domains.html:19 msgid "Pending" @@ -171,23 +171,23 @@ msgstr "Cancellazione del moderatore" msgid "Domain block" msgstr "Blocco del dominio" -#: bookwyrm/models/book.py:283 +#: bookwyrm/models/book.py:282 msgid "Audiobook" msgstr "Audiolibro" -#: bookwyrm/models/book.py:284 +#: bookwyrm/models/book.py:283 msgid "eBook" msgstr "eBook" -#: bookwyrm/models/book.py:285 +#: bookwyrm/models/book.py:284 msgid "Graphic novel" msgstr "Graphic novel" -#: bookwyrm/models/book.py:286 +#: bookwyrm/models/book.py:285 msgid "Hardcover" msgstr "Copertina rigida" -#: bookwyrm/models/book.py:287 +#: bookwyrm/models/book.py:286 msgid "Paperback" msgstr "Brossura" @@ -205,26 +205,26 @@ msgstr "Federato" msgid "Blocked" msgstr "Bloccato" -#: bookwyrm/models/fields.py:29 +#: bookwyrm/models/fields.py:30 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s non è un Id remoto valido" -#: bookwyrm/models/fields.py:38 bookwyrm/models/fields.py:47 +#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s non è un nome utente valido" -#: bookwyrm/models/fields.py:192 bookwyrm/templates/layout.html:128 +#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "nome utente" -#: bookwyrm/models/fields.py:197 +#: bookwyrm/models/fields.py:198 msgid "A user with that username already exists." msgstr "Un utente con questo nome utente esiste già." -#: bookwyrm/models/fields.py:216 +#: bookwyrm/models/fields.py:217 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "Un utente con questo nome utente esiste già." msgid "Public" msgstr "Pubblico" -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:218 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Pubblico" msgid "Unlisted" msgstr "Non in lista" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:219 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Non in lista" msgid "Followers" msgstr "Followers" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:220 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -258,30 +258,30 @@ msgstr "Followers" msgid "Private" msgstr "Privata" -#: bookwyrm/models/import_job.py:48 bookwyrm/templates/import/import.html:174 +#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:81 -#: bookwyrm/templates/settings/users/user_info.html:28 +#: bookwyrm/templates/settings/users/user_admin.html:87 +#: bookwyrm/templates/settings/users/user_info.html:33 msgid "Active" msgstr "Attivo" -#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:172 +#: bookwyrm/models/import_job.py:50 bookwyrm/templates/import/import.html:172 msgid "Complete" msgstr "Completato" -#: bookwyrm/models/import_job.py:50 +#: bookwyrm/models/import_job.py:51 msgid "Stopped" msgstr "Interrotto" -#: bookwyrm/models/import_job.py:83 bookwyrm/models/import_job.py:91 +#: bookwyrm/models/import_job.py:84 bookwyrm/models/import_job.py:92 msgid "Import stopped" msgstr "Importazione interrotta" -#: bookwyrm/models/import_job.py:363 bookwyrm/models/import_job.py:388 +#: bookwyrm/models/import_job.py:356 bookwyrm/models/import_job.py:381 msgid "Error loading book" msgstr "Errore nel caricamento del libro" -#: bookwyrm/models/import_job.py:372 +#: bookwyrm/models/import_job.py:365 msgid "Could not find a match for book" msgstr "Impossibile trovare una corrispondenza per il libro" @@ -368,103 +368,103 @@ msgstr "Citazioni" msgid "Everything else" msgstr "Tutto il resto" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home Timeline" msgstr "La tua timeline" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home" msgstr "Home" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 msgid "Books Timeline" msgstr "Timeline dei libri" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:97 +#: bookwyrm/templates/user/layout.html:112 msgid "Books" msgstr "Libri" -#: bookwyrm/settings.py:296 +#: bookwyrm/settings.py:303 msgid "English" msgstr "English (Inglese)" -#: bookwyrm/settings.py:297 +#: bookwyrm/settings.py:304 msgid "Català (Catalan)" msgstr "Català (catalano)" -#: bookwyrm/settings.py:298 +#: bookwyrm/settings.py:305 msgid "Deutsch (German)" msgstr "Deutsch (Tedesco)" -#: bookwyrm/settings.py:299 +#: bookwyrm/settings.py:306 msgid "Esperanto (Esperanto)" msgstr "Esperanto (Esperanto)" -#: bookwyrm/settings.py:300 +#: bookwyrm/settings.py:307 msgid "Español (Spanish)" msgstr "Español (Spagnolo)" -#: bookwyrm/settings.py:301 +#: bookwyrm/settings.py:308 msgid "Euskara (Basque)" msgstr "Euskara (Basque)" -#: bookwyrm/settings.py:302 +#: bookwyrm/settings.py:309 msgid "Galego (Galician)" msgstr "Galego (Galiziano)" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:310 msgid "Italiano (Italian)" msgstr "Italiano (Italiano)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:311 msgid "Suomi (Finnish)" msgstr "Suomi (Finlandese)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:312 msgid "Français (French)" msgstr "Français (Francese)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:313 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių (Lituano)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:314 msgid "Nederlands (Dutch)" msgstr "" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:315 msgid "Norsk (Norwegian)" msgstr "Norsk (Norvegese)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:316 msgid "Polski (Polish)" msgstr "Polski (Polacco)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:317 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil (Portoghese Brasiliano)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:318 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (Portoghese europeo)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:319 msgid "Română (Romanian)" msgstr "Rumeno (Romanian)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:320 msgid "Svenska (Swedish)" msgstr "Svenska (Svedese)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:321 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文 (Cinese Semplificato)" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:322 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (Cinese Tradizionale)" @@ -512,7 +512,7 @@ msgstr "%(title)s è il libro più amato #: bookwyrm/templates/about/about.html:64 #, python-format msgid "More %(site_name)s users want to read %(title)s than any other book." -msgstr "Più utenti di %(site_name) vogliono leggere %(title)s rispetto a qualsiasi altro libro." +msgstr "Più utenti di %(site_name)s vogliono leggere %(title)s rispetto a qualsiasi altro libro." #: bookwyrm/templates/about/about.html:83 #, python-format @@ -575,7 +575,7 @@ msgid "Software version:" msgstr "Versione del software:" #: bookwyrm/templates/about/layout.html:30 -#: bookwyrm/templates/embed-layout.html:33 +#: bookwyrm/templates/embed-layout.html:34 #: bookwyrm/templates/snippets/footer.html:8 #, python-format msgid "About %(site_name)s" @@ -680,7 +680,7 @@ msgstr "La loro lettura più breve quest’anno…" #: bookwyrm/templates/annual_summary/layout.html:157 #: bookwyrm/templates/annual_summary/layout.html:178 #: bookwyrm/templates/annual_summary/layout.html:247 -#: bookwyrm/templates/book/book.html:63 +#: bookwyrm/templates/book/book.html:65 #: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/landing/large-book.html:26 #: bookwyrm/templates/landing/small-book.html:18 @@ -768,24 +768,24 @@ msgid "View ISNI record" msgstr "Visualizza record ISNI" #: bookwyrm/templates/author/author.html:95 -#: bookwyrm/templates/book/book.html:173 +#: bookwyrm/templates/book/book.html:175 msgid "View on ISFDB" msgstr "Vedi su ISFDB" #: bookwyrm/templates/author/author.html:100 #: bookwyrm/templates/author/sync_modal.html:5 -#: bookwyrm/templates/book/book.html:140 +#: bookwyrm/templates/book/book.html:142 #: bookwyrm/templates/book/sync_modal.html:5 msgid "Load data" msgstr "Carica dati" #: bookwyrm/templates/author/author.html:104 -#: bookwyrm/templates/book/book.html:144 +#: bookwyrm/templates/book/book.html:146 msgid "View on OpenLibrary" msgstr "Visualizza su OpenLibrary" #: bookwyrm/templates/author/author.html:119 -#: bookwyrm/templates/book/book.html:158 +#: bookwyrm/templates/book/book.html:160 msgid "View on Inventaire" msgstr "Visualizza su Inventaire" @@ -797,11 +797,7 @@ msgstr "Visualizza su LibraryThing" msgid "View on Goodreads" msgstr "Visualizza su Goodreads" -#: bookwyrm/templates/author/author.html:151 -msgid "View ISFDB entry" -msgstr "Vedi voce ISFDB" - -#: bookwyrm/templates/author/author.html:166 +#: bookwyrm/templates/author/author.html:158 #, python-format msgid "Books by %(name)s" msgstr "Libri di %(name)s" @@ -959,19 +955,19 @@ msgstr "Conferma" msgid "Unable to connect to remote source." msgstr "Impossibile connettersi alla sorgente remota." -#: bookwyrm/templates/book/book.html:71 bookwyrm/templates/book/book.html:72 +#: bookwyrm/templates/book/book.html:73 bookwyrm/templates/book/book.html:74 msgid "Edit Book" msgstr "Modifica libro" -#: bookwyrm/templates/book/book.html:97 bookwyrm/templates/book/book.html:100 +#: bookwyrm/templates/book/book.html:99 bookwyrm/templates/book/book.html:102 msgid "Click to add cover" msgstr "Clicca per aggiungere una copertina" -#: bookwyrm/templates/book/book.html:106 +#: bookwyrm/templates/book/book.html:108 msgid "Failed to load cover" msgstr "Impossibile caricare la copertina" -#: bookwyrm/templates/book/book.html:117 +#: bookwyrm/templates/book/book.html:119 msgid "Click to enlarge" msgstr "Clicca per ingrandire" @@ -1046,13 +1042,13 @@ msgstr "Luoghi" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:90 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:91 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Liste" @@ -1117,8 +1113,8 @@ msgstr "Carica la copertina:" #: bookwyrm/templates/book/cover_add_modal.html:23 #: bookwyrm/templates/book/edit/edit_book_form.html:250 -msgid "Load cover from url:" -msgstr "Carica la copertina dall'url:" +msgid "Load cover from URL:" +msgstr "Carica la copertina dall'URL:" #: bookwyrm/templates/book/cover_show_modal.html:6 msgid "Book cover preview" @@ -1328,7 +1324,7 @@ msgid "Add Another Author" msgstr "Aggiungi un altro autore" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:147 +#: bookwyrm/templates/shelf/shelf.html:162 msgid "Cover" msgstr "Copertina" @@ -1529,22 +1525,22 @@ msgstr "%(pages)s, pagine" msgid "%(languages)s language" msgstr "lingua %(languages)s" -#: bookwyrm/templates/book/publisher_info.html:65 +#: bookwyrm/templates/book/publisher_info.html:63 #, python-format msgid "Published %(date)s by %(publisher)s." msgstr "Pubblicato il %(date)s da %(publisher)s." +#: bookwyrm/templates/book/publisher_info.html:65 +#, python-format +msgid "Published by %(publisher)s." +msgstr "Pubblicato da %(publisher)s." + #: bookwyrm/templates/book/publisher_info.html:67 #, python-format msgid "Published %(date)s" msgstr "Pubblicato il %(date)s" -#: bookwyrm/templates/book/publisher_info.html:69 -#, python-format -msgid "Published by %(publisher)s." -msgstr "Pubblicato da %(publisher)s." - -#: bookwyrm/templates/book/rating.html:13 +#: bookwyrm/templates/book/rating.html:19 msgid "rated it" msgstr "Valuta" @@ -1552,12 +1548,12 @@ msgstr "Valuta" msgid "Series by" msgstr "Serie di" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 #, python-format msgid "Book %(series_number)s" msgstr "Libro %(series_number)s" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 msgid "Unsorted Book" msgstr "Libro non ordinato" @@ -1587,7 +1583,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Ci dispiace! Non siamo riusciti a trovare quel codice." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:92 +#: bookwyrm/templates/settings/users/user_info.html:98 msgid "Confirmation code:" msgstr "Codice di conferma:" @@ -1681,6 +1677,7 @@ msgstr "Suggerimenti" #: bookwyrm/templates/ostatus/subscribe.html:42 #: bookwyrm/templates/ostatus/success.html:17 #: bookwyrm/templates/ostatus/success.html:18 +#: bookwyrm/templates/user/moved.html:19 bookwyrm/templates/user/moved.html:20 #: bookwyrm/templates/user/user_preview.html:16 #: bookwyrm/templates/user/user_preview.html:17 msgid "Locked account" @@ -1755,7 +1752,7 @@ msgstr "%(username)s ha citato You have moved your account to %(username)s" +msgstr "Hai spostato il tuo account a %(username)s" + +#: bookwyrm/templates/moved.html:32 +msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "È possibile annullare lo spostamento per ripristinare la funzionalità completa, ma alcuni follower potrebbero aver già smesso di seguire questo account." + +#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +msgid "Undo move" +msgstr "Annulla spostamento" + +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +msgid "Log out" +msgstr "Esci" + #: bookwyrm/templates/notifications/items/accept.html:18 #, python-format msgid "%(related_user)s accepted your invitation to join group \"%(group_name)s\"" @@ -3744,6 +3763,16 @@ msgstr "%(related_user)s ti ha menzionato msgid "%(related_user)s mentioned you in a status" msgstr "%(related_user)s ti ha menzionato in uno stato" +#: bookwyrm/templates/notifications/items/move_user.html:18 +#, python-format +msgid "%(related_user)s has moved to %(username)s" +msgstr "%(related_user)s si è spostato in %(username)s" + +#: bookwyrm/templates/notifications/items/move_user.html:25 +#, python-format +msgid "%(related_user)s has undone their move" +msgstr "%(related_user)s ha annullato lo spostamento" + #: bookwyrm/templates/notifications/items/remove.html:17 #, python-format msgid "has been removed from your group \"%(group_name)s\"" @@ -3782,7 +3811,7 @@ msgstr[0] "Un nuovo report necessita di moderazione" msgstr[1] "%(display_count)s nuovi report necessitano di moderazione" #: bookwyrm/templates/notifications/items/status_preview.html:4 -#: bookwyrm/templates/snippets/status/content_status.html:73 +#: bookwyrm/templates/snippets/status/content_status.html:62 msgid "Content warning" msgstr "Avviso sul contenuto" @@ -4000,9 +4029,51 @@ msgstr "Conferma la tua password per iniziare a configurare 2FA." msgid "Set up 2FA" msgstr "Configura 2FA" +#: bookwyrm/templates/preferences/alias_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:7 +#: bookwyrm/templates/preferences/move_user.html:39 +msgid "Move Account" +msgstr "Sposta account" + +#: bookwyrm/templates/preferences/alias_user.html:7 +#: bookwyrm/templates/preferences/alias_user.html:34 +msgid "Create Alias" +msgstr "Crea alias" + +#: bookwyrm/templates/preferences/alias_user.html:12 +msgid "Add another account as an alias" +msgstr "Aggiungi un altro account come alias" + +#: bookwyrm/templates/preferences/alias_user.html:16 +msgid "Marking another account as an alias is required if you want to move that account to this one." +msgstr "Contrassegnare un altro account come alias è necessario se si desidera spostare tale account su questo." + +#: bookwyrm/templates/preferences/alias_user.html:19 +msgid "This is a reversable action and will not change the functionality of this account." +msgstr "Questa è un'azione reversibile e non cambierà la funzionalità di questo account." + +#: bookwyrm/templates/preferences/alias_user.html:25 +msgid "Enter the username for the account you want to add as an alias e.g. user@example.com :" +msgstr "Inserisci il nome utente per l'account che vuoi aggiungere come alias, ad esempio user@example.com :" + +#: bookwyrm/templates/preferences/alias_user.html:30 +#: bookwyrm/templates/preferences/move_user.html:35 +msgid "Confirm your password:" +msgstr "Conferma la password:" + +#: bookwyrm/templates/preferences/alias_user.html:39 +#: bookwyrm/templates/preferences/layout.html:28 +msgid "Aliases" +msgstr "Alias" + +#: bookwyrm/templates/preferences/alias_user.html:49 +msgid "Remove alias" +msgstr "Rimuovi alias" + #: bookwyrm/templates/preferences/blocks.html:4 #: bookwyrm/templates/preferences/blocks.html:7 -#: bookwyrm/templates/preferences/layout.html:46 +#: bookwyrm/templates/preferences/layout.html:54 msgid "Blocked Users" msgstr "Utenti bloccati" @@ -4032,7 +4103,7 @@ msgstr "Nuova password:" #: bookwyrm/templates/preferences/delete_user.html:4 #: bookwyrm/templates/preferences/delete_user.html:7 #: bookwyrm/templates/preferences/delete_user.html:40 -#: bookwyrm/templates/preferences/layout.html:28 +#: bookwyrm/templates/preferences/layout.html:36 #: bookwyrm/templates/settings/users/delete_user_form.html:22 msgid "Delete Account" msgstr "Elimina account" @@ -4154,18 +4225,47 @@ msgstr "Scarica il file" msgid "Account" msgstr "Profilo" -#: bookwyrm/templates/preferences/layout.html:31 +#: bookwyrm/templates/preferences/layout.html:32 +msgid "Move Account" +msgstr "Sposta account" + +#: bookwyrm/templates/preferences/layout.html:39 msgid "Data" msgstr "Dati" -#: bookwyrm/templates/preferences/layout.html:39 +#: bookwyrm/templates/preferences/layout.html:47 msgid "CSV export" msgstr "Esportazione CSV" -#: bookwyrm/templates/preferences/layout.html:42 +#: bookwyrm/templates/preferences/layout.html:50 msgid "Relationships" msgstr "Relazioni" +#: bookwyrm/templates/preferences/move_user.html:12 +msgid "Migrate account to another server" +msgstr "Migra l'account su un altro server" + +#: bookwyrm/templates/preferences/move_user.html:16 +msgid "Moving your account will notify all your followers and direct them to follow the new account." +msgstr "Spostare il tuo account avviserà tutti i tuoi follower e li dirigerà a seguire il nuovo account." + +#: bookwyrm/templates/preferences/move_user.html:19 +#, python-format +msgid "\n" +" %(user)s will be marked as moved and will not be discoverable or usable unless you undo the move.\n" +" " +msgstr "\n" +" %(user)s sarà contrassegnato come spostato e non sarà individuabile o utilizzabile a meno che non annulli lo spostamento.\n" +" " + +#: bookwyrm/templates/preferences/move_user.html:25 +msgid "Remember to add this user as an alias of the target account before you try to move." +msgstr "Ricordati di aggiungere questo utente come alias dell'account di destinazione prima di provare a spostarti." + +#: bookwyrm/templates/preferences/move_user.html:30 +msgid "Enter the username for the account you want to move to e.g. user@example.com :" +msgstr "Inserisci il nome utente per l'account verso cui ti spostare ad es. user@example.com:" + #: bookwyrm/templates/reading_progress/finish.html:5 #, python-format msgid "Finish \"%(book_title)s\"" @@ -4574,8 +4674,8 @@ msgid "Streams" msgstr "" #: bookwyrm/templates/settings/celery.html:32 -msgid "Broadcasts" -msgstr "Broadcast" +msgid "Broadcast" +msgstr "Trasmissione" #: bookwyrm/templates/settings/celery.html:38 msgid "Inbox" @@ -4900,19 +5000,19 @@ msgstr "Istanza:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:119 msgid "Status:" msgstr "Stato:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:107 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Software:" msgstr "Software:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:110 +#: bookwyrm/templates/settings/users/user_info.html:116 msgid "Version:" msgstr "Versione:" @@ -4925,7 +5025,7 @@ msgid "Details" msgstr "Dettagli" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:69 +#: bookwyrm/templates/user/layout.html:84 msgid "Activity" msgstr "Attività" @@ -4939,7 +5039,7 @@ msgid "View all" msgstr "Vedi tutti" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:60 +#: bookwyrm/templates/settings/users/user_info.html:66 msgid "Reports:" msgstr "Reports:" @@ -4956,7 +5056,7 @@ msgid "Blocked by us:" msgstr "Bloccati da noi:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:117 +#: bookwyrm/templates/settings/users/user_info.html:123 msgid "Notes" msgstr "Note" @@ -5676,17 +5776,22 @@ msgstr "Attivo l'ultima volta" msgid "Remote instance" msgstr "Istanza remota" -#: bookwyrm/templates/settings/users/user_admin.html:86 +#: bookwyrm/templates/settings/users/user_admin.html:82 +#: bookwyrm/templates/settings/users/user_info.html:29 +msgid "Moved" +msgstr "Trasferito" + +#: bookwyrm/templates/settings/users/user_admin.html:93 msgid "Deleted" msgstr "Elimina" -#: bookwyrm/templates/settings/users/user_admin.html:92 -#: bookwyrm/templates/settings/users/user_info.html:32 +#: bookwyrm/templates/settings/users/user_admin.html:99 +#: bookwyrm/templates/settings/users/user_info.html:38 msgid "Inactive" msgstr "Inattivo" -#: bookwyrm/templates/settings/users/user_admin.html:101 -#: bookwyrm/templates/settings/users/user_info.html:127 +#: bookwyrm/templates/settings/users/user_admin.html:108 +#: bookwyrm/templates/settings/users/user_info.html:133 msgid "Not set" msgstr "Non impostato" @@ -5698,55 +5803,55 @@ msgstr "Visualizza il profilo dell'utente" msgid "Go to user admin" msgstr "Vai ad amministratore utente" -#: bookwyrm/templates/settings/users/user_info.html:40 +#: bookwyrm/templates/settings/users/user_info.html:46 msgid "Local" msgstr "Locale" -#: bookwyrm/templates/settings/users/user_info.html:42 +#: bookwyrm/templates/settings/users/user_info.html:48 msgid "Remote" msgstr "Remoto" -#: bookwyrm/templates/settings/users/user_info.html:51 +#: bookwyrm/templates/settings/users/user_info.html:57 msgid "User details" msgstr "Dettagli utente" -#: bookwyrm/templates/settings/users/user_info.html:55 +#: bookwyrm/templates/settings/users/user_info.html:61 msgid "Email:" msgstr "Email:" -#: bookwyrm/templates/settings/users/user_info.html:65 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "(View reports)" msgstr "(Visualizza reports)" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Blocked by count:" msgstr "Bloccato per conteggio:" -#: bookwyrm/templates/settings/users/user_info.html:74 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Date added:" msgstr "Data di inserimento:" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Last active date:" msgstr "Attivo l'ultima volta:" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:86 msgid "Manually approved followers:" msgstr "Approvare manualmente i follower:" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:89 msgid "Discoverable:" msgstr "Scopribile:" -#: bookwyrm/templates/settings/users/user_info.html:87 +#: bookwyrm/templates/settings/users/user_info.html:93 msgid "Deactivation reason:" msgstr "Motivo della disattivazione:" -#: bookwyrm/templates/settings/users/user_info.html:102 +#: bookwyrm/templates/settings/users/user_info.html:108 msgid "Instance details" msgstr "Dettagli dell'istanza" -#: bookwyrm/templates/settings/users/user_info.html:124 +#: bookwyrm/templates/settings/users/user_info.html:130 msgid "View instance" msgstr "Visualizza istanza" @@ -5883,7 +5988,7 @@ msgid "Need help?" msgstr "Hai bisogno di aiuto?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:72 +#: bookwyrm/templates/shelf/shelf.html:87 msgid "Create shelf" msgstr "Crea scaffale" @@ -5891,58 +5996,66 @@ msgstr "Crea scaffale" msgid "Edit Shelf" msgstr "Modifica Scaffale" -#: bookwyrm/templates/shelf/shelf.html:24 +#: bookwyrm/templates/shelf/shelf.html:25 +msgid "You have have moved to" +msgstr "Ti sei spostato in" + +#: bookwyrm/templates/shelf/shelf.html:28 +msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "È possibile annullare questo spostamento per ripristinare la funzionalità completa, ma alcuni follower potrebbero aver già smesso di seguire questo account." + +#: bookwyrm/templates/shelf/shelf.html:39 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Profilo utente" -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:54 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Tutti i libri" -#: bookwyrm/templates/shelf/shelf.html:97 +#: bookwyrm/templates/shelf/shelf.html:112 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s libro" msgstr[1] "%(formatted_count)s libri" -#: bookwyrm/templates/shelf/shelf.html:104 +#: bookwyrm/templates/shelf/shelf.html:119 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(mostra %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:116 +#: bookwyrm/templates/shelf/shelf.html:131 msgid "Edit shelf" msgstr "Modifica scaffale" -#: bookwyrm/templates/shelf/shelf.html:124 +#: bookwyrm/templates/shelf/shelf.html:139 msgid "Delete shelf" msgstr "Elimina scaffale" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:178 +#: bookwyrm/templates/shelf/shelf.html:167 +#: bookwyrm/templates/shelf/shelf.html:193 msgid "Shelved" msgstr "Scaffali" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:181 +#: bookwyrm/templates/shelf/shelf.html:168 +#: bookwyrm/templates/shelf/shelf.html:196 msgid "Started" msgstr "Iniziato" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Finished" msgstr "Completato" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Until" msgstr "Finito" -#: bookwyrm/templates/shelf/shelf.html:210 +#: bookwyrm/templates/shelf/shelf.html:225 msgid "This shelf is empty." msgstr "Questo scaffale è vuoto." @@ -6248,6 +6361,10 @@ msgstr "Hai letto %(read_count)s di %(goal_count)s libri%(read_count)s of %(goal_count)s books." msgstr "%(username)s ha letto %(read_count)s di %(goal_count)s libri." +#: bookwyrm/templates/snippets/move_user_buttons.html:10 +msgid "Follow at new account" +msgstr "Segui sul nuovo account" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6389,35 +6506,35 @@ msgstr "Interrompi la lettura" msgid "Finish reading" msgstr "Finito di leggere" -#: bookwyrm/templates/snippets/status/content_status.html:80 +#: bookwyrm/templates/snippets/status/content_status.html:69 msgid "Show status" msgstr "Mostra stato" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "(Page %(page)s" msgstr "(Pagina %(page)s" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "%(endpage)s" msgstr "%(endpage)s" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid "(%(percent)s%%" msgstr "(%(percent)s%%" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid " - %(endpercent)s%%" msgstr " - %(endpercent)s%%" -#: bookwyrm/templates/snippets/status/content_status.html:127 +#: bookwyrm/templates/snippets/status/content_status.html:116 msgid "Open image in new window" msgstr "Apri immagine in una nuova finestra" -#: bookwyrm/templates/snippets/status/content_status.html:148 +#: bookwyrm/templates/snippets/status/content_status.html:137 msgid "Hide status" msgstr "Nascondi lo stato" @@ -6609,10 +6726,14 @@ msgid "Groups: %(username)s" msgstr "Gruppi: %(username)s" #: bookwyrm/templates/user/layout.html:50 +msgid "has moved to" +msgstr "si è spostato in" + +#: bookwyrm/templates/user/layout.html:64 msgid "Follow Requests" msgstr "Richieste di seguirti" -#: bookwyrm/templates/user/layout.html:73 +#: bookwyrm/templates/user/layout.html:88 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6627,6 +6748,12 @@ msgstr "Liste: %(username)s" msgid "Create list" msgstr "Crea lista" +#: bookwyrm/templates/user/moved.html:25 +#: bookwyrm/templates/user/user_preview.html:22 +#, python-format +msgid "Joined %(date)s" +msgstr "Registrato %(date)s" + #: bookwyrm/templates/user/relationships/followers.html:31 #, python-format msgid "%(username)s has no followers" @@ -6698,11 +6825,6 @@ msgstr "Solo commenti" msgid "No activities yet!" msgstr "Ancora nessuna attività!" -#: bookwyrm/templates/user/user_preview.html:22 -#, python-format -msgid "Joined %(date)s" -msgstr "Registrato %(date)s" - #: bookwyrm/templates/user/user_preview.html:26 #, python-format msgid "%(display_count)s follower" @@ -6730,10 +6852,6 @@ msgstr "Nessun follower che segui" msgid "View profile and more" msgstr "Visualizza profilo e altro" -#: bookwyrm/templates/user_menu.html:82 -msgid "Log out" -msgstr "Esci" - #: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:28 msgid "File exceeds maximum size: 10MB" msgstr "Il file supera la dimensione massima: 10MB" @@ -6750,7 +6868,7 @@ msgid_plural "%(num)d books - by %(user)s" msgstr[0] "" msgstr[1] "%(num)d libri - di %(user)s" -#: bookwyrm/templatetags/utilities.py:39 +#: bookwyrm/templatetags/utilities.py:48 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s" diff --git a/locale/lt_LT/LC_MESSAGES/django.mo b/locale/lt_LT/LC_MESSAGES/django.mo index 7f23c75a3a3f1802c8a3d70918a7e4d0772e02c1..692025f6cd100343dfcc44f5429bd67c521d3a15 100644 GIT binary patch delta 30168 zcmZAA1$Y%#qqgDM!9%d%nxH`fAt6|BcXx`rmg3If?i4LhoZ?p8iWEw5rxbU$LZL`G z&pT_;pZ}Zd4EJ)M**k%LXXNYHCtt;OuLVY*?r`;r;W%mVSPsXj6w7f2)KjYC{M5s7 zQsD|rj0Z6jUc#jK3DaWYp47u|EQtfLF#dwM@DtX>&|Z$y6o=t{$8nw81RjyFtheLD z#VLIpCpFH)2;7dP@d;+f@V<_d3>#qv?2dVG1{TNPu{y@>=Qz2s5eDG|%!g|*0p7vn z^zXbT5KKZqe>38oSebYSOpaSI%I7#IF$r=1fsV5cgHZXGP%H2PYh(ODj*|sjqSD8r z>ivWo@NP_xH!vOjJAV9;6w_l$%x~j0Fh23N7>T{G8?HisOgGr%XT!|I3)pxQOhLRe zrpA#N2Nz*NT#X%YH@d?JWF6u-8F4i(!Bf_rLmg)^@l+HVjeBqmmK*LkPw_M^$Gsyc zQ;OQt#w$Hgf%&2iS^F4UHF{N9*pI@?P8>U5TJE`jMY zIFT4J)3^nhyc0ExS>bLhfthEs4cHb3<27WloThV(H&N*=e{h`Ecn7s&73oBtL#vPnL<_*TgIIEcj zCd7D{5_vy4AvPX{Dp$m&m$vDZZF)ltAip_k1-?bKGZ~*;wbKCOU}veN>Pge)&!x-_qFN6P%AJARemA5;RIF^&=Ouj?cr@y z$L~=~9e17CqQt0yr9=%l3&zKARD;DaJ61rgWDnE;`dEiz0^;LQ?aW=r`iBu%L4pSI z2kM<4cfDD%qNpvXjd`&x@&GvVFc^z(Fz@u{sHb2Ss^K@NSFYbiv!cmS6U>Yna42ek zg*LMO9SIa8Aw90b2t1DQ(Ai{GAU;8%#*N2dd!_ zsCu(7Ixax9w-giL9#p^X30vSQ>hRn`J&w;%OZghrkZ+smC=Mnfo*dOcHdF@%Fc}s> z4Wu?E#@48_(ib(b;i#3EiBWp~7ZT8Ey@F~m-*(42jAc**iMPX~Cq{Lg0SjOxD!(&o zpxteJFsj3m)+wkhn2S1`D^V+X9%JhHe@s9Pzd{v^zS9_pTB=~|jJYvC&PNU40?xn$ zyVy@3Utlnd_~qSZK>mA7JIPT4%#0i>Cj#{*y^Brs{Ab&1z7mZ_Eztwi5`I94DmaILG8UsUHlP~XiCUQh zsQmM&0p7Opzft+o_nGgA$uJl3a8$WwI0U=f_#2!=JobKjIQO&un$ZFhG?4YE2Df7^ zJZcLD9WYB6f+`=0J+L$;S9wg0r!hS~#UM;@(5z4x>M-U-O{4hBu{J*4x(L6HRIna$C5Ys{&?NSAE64qw&}iOCO^QM+?oLcD3=p8@F<&J5#tiCgBoaa)Y1cb}tV`EusHEVs;1e@D< zN7M@TIL`W~B`|=595@HHcZbk>Dp05P1E$1;C(J;yqw>R1OI#W?;D)FfcSOywH_paU zs1DPgG-kv2#KTQ0=?938|` ze86~^=(K4k2-Qw@q+izwCs2=sGMEYHp;lr)CculRy}pkcsB^}QJP9Tung&%a7iwjS zq6Spn#_ORb*4(CdMh$ELde8q<0$Pei7>FxTOSv00qy4Ckj-m!|71h8?)XKywOzftvKoHIYtI|&Iyk}wKYaTjXOf5$*Pg_^-_>vL4O4;X=Q z&YO-4qn5S`_Qu+n1dpNW-$bp@Q`DhrV^B}Q z9MlRd$7Hw}brz1HW_Arz<0EU#D`u}Vp!PZfm0toikjAJLScE!rt6Ty_32Z{Gz$?_! ze#Ao<>#FJK1ghd?)S0-AI#hpSQjB@cq^Ci39A@K1F){HPsDZaeO{6z!V(vr&sxa3U zSY_k8Q4JqMt;j9wU#N=FubTk}TGOD~$%0zRyr=;dMxBMqs2MlMjMyGIYpyeafM&EA zwdcQ~W_kj3XfC2UykdQX>gXM+T&x?WqlBm>4o0nHYt%}1L2Xq()RvA!t;96+p8ur; z^rqX4s(2Aq@FrHpXBdPX zi|Tk3YN8WteD*!|e-{ZqlAsYbx^E6kd(=P%p_XFc;sR6$ zM=(8JK&`+#)C~O}n?sliHQ=JCEvkX)*KJ2Yd(|6r;tbS`4`Nz8jvByYYwRcHY-Gmd zq?boE+zi!DcN?FI8qiYAh=);I@)$M1m`}Z*mR%+R7Oo}D~wCL7Y5@{)Lt$| zmEUXQM^GK#Mb(e~%;YCSZA~!hY~)3)U=fUor7)g8O)3)5V^kmO;6@C<*w4+USyEKR z6qpawVHDOut<+@ffU~hHMt@;C?1dWWAXK^0sB%*<7k zfX%I4F(L6Gs2NSgJU9o7;|Wwp30|4KO@W$e2x=g?P+L~O#;c>Nh8hxxhb^q%q4sJJ zs={p4q1=Fp@K+nZi0a@m>dp5GHQ<21%tX?lRxU4Q#X^_^TcHLt`7hRAr+E$u@$pC0 zK-QwRV3+j>Mi9S%+S53%%?hML%{YsVhuL_38!wJ(w>)ZK^)NHGwfPfXv;JCv=_F_d z^H2?LMa}dV)JV@*ub^gp4|O=7Vj%v5nK0muIi%sJ4y&L)Hb#|ihib0}s+~cuEieML zRFiGS4AiNfhpM;>HL%}MD|Q;yzy;I9BwhzY@eZn; zL?4YQ(bb6369~e5sD|reVr+@gus7Dg{-_3yqh@>_3*$A^;Y$6<)C)$fP$X)ArBM^C zh+g~Hmw3xhtiKM!RT8vBk5MytV+(%7{>0<_YaXK!sD>w_9?u0Bj2lsVeAcGN{A_-u zlLFOY4b;juK~1QKJSOxewc&!BGk&BK=1GWUJ_74|6oFl7SnW)1l4gC z)ZXSrEp-{xo3R-NVQwC-IzEi5f6{s#)y{KNc_+5d{Qf^40j)qX)ChxZ zJOtHHIBGxzQ7@#DsD@f$a_osIa02R$w+uDVU8ohiY~ycG^%KW2?dFZ+bG^TlDMEsl ztQ~3~y-*_`j2h`=)Bxt$^kq1J_!jieh`&7}sPffOXQVM|tGb{jHWJm&1XR5l{;uh8 z2?^T6wU`~ZqYlX()QcrnTr;33tW3Nj4#t^S5K{#BoYPnn70(pU=Y0k=!JNcLqgHB* zO+SIb#NW9DbjVW1Hv`Cu8fhMD6jmf&!a5%N5Wk4IuzCWs)GpR1J`dH=-?$OuC-fdO zXCLZuy@1-HhgbpK&jiL0sF29#{fmdQScZ7rK%e(dB<7-KR6DWH`y0-Q*pPUsBxZ%? zV^`w)P%o%FNzH(&qaMF+QLo$$xCjrSwzz#VZ^EwAoq%32gHSUcjyiPXZ2C0RVVjLQ z?JIG%kEKMNk?JYTtF{@|A>JBm<4)9BNSM;R7t&%R@%*SaZ6}Pb&;RcT=uq^u4zi9y zjdU_ACI09Xr`iTToVK(X% zFUJ|!H?7b41{0<;OWX-H@~)`zgKT`fbvC9ZeVL8#N3F<7)JopLEcgsHkfcF8|9Z^Q z1(^aRP&2QDVORru;Ski>c!weQ8P#A&uxTh9bw;9Wyb|j9uZ?=T+MxRBY2&j{Pr>qF z*NkvC3F$~UgPPe()XIEDHRPY(q^ChWM%hs_D}vhVny3cbpbqH(>u6N{?@=>ehI%uu zL#@Pdmw=Y^HEIui8BE7wQ` zL(MBVdrtEP?2Y?LUxr<=eJ-EV1pma+7!~I8en;%0w)i)U!24K2&wr}iKJS;tjW8z} z>rkKTS5co(5}LM?e38_$Y*;pD*vSP#452GkkIl-JZ7jM}_XTeC+ z`(QDu{k^C|{0PdN@Wbc@eclh7v9Ja4f~d!BE~?@>>t@sv??gQvM^T6E z9JWFKDD$1ND`q7=1FPa*)Y8W<Ty8VoCJMpytffYKO@^-xRO z$HqsZ2DThkZw+cfTWtCs)CwQOM)<qn7p) zHpA$}Ob4w|pJtu0H7>I0v5TAZgsAi~sFhuX>SrxR;8tvj?jxH~wS<{zJ=Cf1fEjQ+ z)~AJaHa&J}^Tx}LmB=rOdi9P))%yW=;%=OYearZqDVV6N+0wO|CI!$ z`FOs|`<(meU(qc6t4ij}&6f#6?)BhFOVgn34hdYMPJZ)U|xhN%A95 zpZ|Wf&8bg?`YM(m^@^U1dTdvs%ALT>cn?GM{0G!AU!M!2D%3>1sXC!5j6;2jEk>2! zh*vS9u34#s^-O*m)Y-{_`r6$9_4xHbJ&u!6kKG#7ht_s{}C`1()GX z)LxBlVB(<-O}Vo;oAhSi_?-9n9`%ZT)5yn`F4C4 zyAbcv-5xURK|E~_bJ(V$$_Mu}@r|f>@m{P5p26W*w71Xucg6>BB=K@?A5-82>J1gu zmp$T;jlo02r}y(Y>sZo8{Y|-m!RGY#L46Ish>bB~h)JJ}xrjeUZEd=tKJVWR4@Z5* zJj4{3Y?#k!hi({w90X>e4$nbskFPKjHX818cxgF9Q04ZF@Ogh>`3UDhhg|T z>hXDx`p%bpy!lQSifXVZ>cgmpwK=NeuGSH#aJ52z4nZBZ2{;=U<0dTfJ!gkg{u0j+e>dF> z_~;CCrmmwNyL;%5pHTzxcW0V+bz;;^b72sc$6#!SIy7TY6_#RpT#NdYJB9jiX)?=v zF&S!|j9Rhzs4d-ydb)O@R%}1&FuQjNq$ThkHNzCM%^qe#br_CnC<>Kd6}2J_QG4CN zruRm5Fbs7l$5wnvJ&d>5bdbuL z$(jq*KmpW%N~89+73$0ku<<#l!@CiK@fha8r>GgHU*hxrK~i2+xizTo6^EDD@BbZ_ znx*fKn#p+7z@}k6T!0$LJJgJ$FEfWI8FnI`7uE10)Z@Dgv*K;kt2r>Q4P06?dbs2o(@MnmXlBo&qB>;1?s8Tjhe`Dn}5Z| zpW6J7Ha%dac{<#*1hnKiP|s-u>XlgqHPU9N$EXjggORAEo`HHXtw)`WW2gZ=K~3lr zYGAQene^1Ccqr=eE{?SCI&}%C!*8uaP%nt@Q4McG4dg7U6U{dR1MM^PQ-SZ9{1AZi7wp*m=bYN!k9 zEQ~}AWD;toYfwwP549B+Q7d}WraSA+RwhGNdzOWO%#RvKc^hwtYOo_}i(Kneo4?e? zx1h=$vGJ>@L;S+V<7_bX)1U?thT58{8+iVe(2xY}ZC_MF(`>=z=zSKTW_$&;C4XTE zIvdTG)U2p-RcyQ^YUZO+hjuDzMHiu-j`cQu??#?~&HN+@+N&EFjJB~z;aZ*EiM6X>8w{#kKs!!hyj~T z17%SiR!5buk2+MHP^Z5)Y5?O=sLqHW`Y%xm}4>iKH zs2PN!W*&uFsrsmf+oQJbJ5cx+k=B?(-~am% z(2`F<9h%jsJ=}t7=s0SrE}&N67HZ~yp)c{2I(S@eeoz%kA+wqwok$!Ww&hPFcK( z?J?^w=BMJRsPq?D1oQ9ndB1PyiRvfuex84QK}fsbEM*kxv8sT1!n0rLh-hf2?nIun(#9dj}~*aC46n}R{8 z{5;n3sB(>MygOI}>g59X6>=dfpW8_WhI&TSNAtBRm=CD;lHP{Gs zy4#>C^h7l<1cPxd>M`7nn&}nPK%b$0E{Jx-oS_P+m8*_A_4QF(*bP(Z`JZGHR$>Sl zhrJBGtJ!q_-_2hrhG1s$2cY(H5vs$(s3pCEYWM|e3*sF$1I~guh?hXEL}!~m7`?y$ z`+=0pw5Aj6;u`4!fbsPe2W90cwSQw(&!# z6~2tF-b8l@EXR+i=Y7cuGlR{jtvP`+@D2Wi<4>AHoA;C{Uli40HPkD&1!^U_U}2R< zo%SQBtvrVs(2Y|(|H^np!Xf;GYUto;^B7%3y<*>>mNd~B^OsNAu_*E8=*^f>C@1yFyMeTjUv*z$-M@_W&S)PBL<{BjEFttU!C`O`YauBsbr%|7V4^cCCYxAR> zGml?FYY6ruzbI-2wxjm`0&1Xs=S|1SPy-Bc324OmQ8O=Q3)DnC*DX=EEVVrQL?w(=!-?cTnvHTrw+>8uex@fWcT7nV9SJCJ;r!c+|)aqn7TnDd4`=lM@UKzka5l`scZ z#@?tsKZsiDGpLG}FgM=92u%E^8Aw?iO}qxS$IGaCrLUOByCQ1qYM{*=Gs5(!hC@*UC~mEVYM>2j$-hM%u7#)xtVhjo4{9PuP+NM&re8y~ z_Yl?oN7Mik-gHgFMQ<9*qL!#CYG55vFQA^N4yK?Qo{JjLPpA&pqZ;0hdd!Zaw(2En zh5T=s`e{({5F0P(6426>Mm1Q;#%tMlL)43@1*+pA)(NNq%|@N-C8#~!fWi11*2IUX znHRootcEJz0(C~*E(A&w7>rtyUr{6c%NB@n#~ij~sB*bc<$9u)elhArvjNrMG1S1W zqE_Sqs>6?{@0xM$n$MI_q`vFaBA}T!M=fQ0Yd6$D`lA}0fNF3SYH3%a4%e@!=lv>b z0I#gk?wR(IptdqC7QztBjx8~dp8tsiB1zbf8sS^i8Ax^CoaX$fjvAw0JUvkzEs{32_Yu`mx`)Q> zsHY$wYLCmHR;WH|#+^_D?}c4_Oce7I|M!vEx_pm${xzb~1hj|MP^Y&8YAGk88vYTr zMH{gW?m%^%@QGd|AgAR$EZC{`NDLV12ur6HeL<2axG9D48&lZf?04QYDNCA>32}|W4tsba|vi^ zLr?<=L+xELY>5?6BVB`9(hD~J7&WjYugv3_1@-DJj!JKX`nc_b+Nv3-tyqd0&>qxh zihG2BI=+rNEYDGU6YDSYn~scFlz4U2KqsMQIuje=DjSde+SE^jI=qpnjw@LkqCQL7 zqgG%H(y!~xA)t;|qLyqwhTucghH2ooii#u9j*Kff#riW8y{B2(KaUXy+cPq1QJ5GiDP;B^lbK0Y%tgF7 zs(~(83wvW1Jc`FpQBO_MSY`l` zsFkXXI=nyOdfbDYE!XK1+t1sJfv8Wn@u=s17HY&xQBT8m)S=pM(=Q{h2&V%FT9Lh&9j~MJ@BjS+Ob3CerB01HeCbh#Boy@&6td|RPy?-v zIy=oU9J``sz8LlOe82Sy>hS)Jnt&6}Oe_T^b%}=(&HjPN*|5 z*ygW89kPR{0Xgx_$_1bfVM^5FeF^onJjS#50X4Cc3H%&afolX*@G0ssaT5A@|2!r& zZYFvIo8yc`W@X-?>O~7Q0}Dj0P!?1>k(dX|+4TOX$8ij5Aj?rt%ho{trw_G+S4hZ- zPf@2cbz(p7MU)fu*hJ!BY=l~&tEe~ST~x<`Nz4icqdvT{q1q{f+KPIprSFQlaSUpO zcO-Gmp*Tr`p7-adLy|bDpZ7kTx=X`VRR3^*)K4%$Na{ zUl28cx~R{LCN6<60wYi(-i+GI!>FY?i#j~FQBTEF8-I`5g6PTpycbqt{Em1ePQs<73i}iP9a~`8l%`#Gg$-;%Ezxe&0M4U63vQx1dVmG+t&QjAfACRTQw+;u zTh!@aizD$k4#V21&3oh$HYA=bjUWGU6I+3K_53$Z>*xJ7`ZT;u#vL4td(-(j&#-uq zpZC{mVZnahKPdbjQ}Nt~ruXyy3x;wT{JhWiDY%pJN3jcz%4q7nMLnL4GWj_ra3bnO zbPB!S|KB4JMZ#ySj!~KYym#|B)Lw5!?fvhlhVNoAtdqsh8HCd@43mVI$FnqQCA(t+ z9EZyP0o&kF)ESG&${SSAe@y~9r9WaW+>YLoqqgF$jYrF7UO0iM$15Z1O;-=Q;~LZw zr_XNoegJ9!W3da)!M^C9!{iS~_Zt$X63{7rhI%doLe0{JqgG%BcEnYvfhEsrPIVU4 ztF#E}@U}yp?tVBGhoTL9*t9CC5I_1A3TkD)dJ*O8?Baank z@_VB?7=n7yjIqu|HMkBVaSLj|k5L1tm)mSXJJgEJLT%x*+&urq3FHd*^L|k1f;EWm zL=7ljgxUM#s174AJ(fW|UTtl>C#w8R)ML8P#@C`=?b}cXvB)O7RsIW3v; zP*el=BK^F7%l!gXpmJV6=UW_rYUnXO$JaJ~C!e49Yq+PV8E49GR%kNvcsaAM1D-%X zELgy-NMTgITZMoM3_~5ZXQ;h=j~OtapgFB!sIAe(56Di#FA?JJyj1hYvFQ9Zgio#N ze3bI!{dbilEdzP6NqdL?;6%=!bBZEaxWBgzcCj9yg02)4F2r4)_Gi2CxzxNUKbyzC`E?!%*8;71D=s|L?_b(;S{O?|>;Ukn*)i`x*Pw zPAl@3*!HVnE7InfMqDQi2^C2Q;@0)ic2FF5(m)w}jR|ae5z7BSx$cy&LE0Vi_!8}1 zyKI?*#M+bgFL@0p*OU0KsApeSVZt-H`+GkqSv3$U=xT}!xgQa3&Apm1uWhFn zl^$aS+u=`y&y#nHGDB?IZ^YYhpP+0BZoWJ@C5X4jPL$J?fmM#snbY~3LdB{S_;SS} zV+w`&q;>MsfZl|<&JzyczRLXvdAj(%;$6Jjoix8gsqkv;`~C$2L$ z3cHc!CbS(_wpOB0H!@e*hU$_Yi~AXAi*18H*qIh5K7+hp$g8Q@a7B=pm2`bqC`%i2 zZ9873{bP)6r>Oq>yKz)FMU` z?QAM(ybzsaw#;qfSsCDG;ztQ@<$lN=m(QR7uJkmj>#(iVo^U3@OE9NROJc1`*;5Qe z*B<eLE^3J@8DU)wtchqa3-=?+k0E`wP3IS+|6T2Enm$!^ z>6_8-w5zLyEmw)(KRBuAxEBrS`oR`RMYt8|g(+B^hMw8R_`2YI0l7$eOw!tM-?Moc zs8g8yB*b6ZG_@H{+1z%u=G*o=li!?szxIC`l~PhD%4V*_x>Q*6RU>>UcK)X9Ny>e> zniKwxvik10gR)HtZ{?0j-4*0DBfOS+vryM~(q5XN_f@?h<=jVKb)q~U@tsuoj*6cM zC&krN)c3&U+|}$%_)hBmCl{(yj{GpnPRGxR)zQwo2D|6G;)A)r@2c~SKp4};!5<{4pi>TmD$doUmbf_ zFaAvVU%9WI|3Nh9($Qa3D9=5ag6%1o+SGHhkXFnNwLL0eX*naY14BC3deSvhh9+i_S^Q#8GCoKgHl*aGL z>O|g4Dl{R^uX~+pxPbJ0q-`Xut2U0Jow=knC;TsWGVY&6!$^O6ZiR8JWI<&nHb+DGL5*XF11K+K1^$yJh2jD9bOr zozyhG$y9SD+B(T`KlwN8#Bvfo$bHF{yG__T|A#5if(9~^5go7D##QbY3jJj(JjJ0j z+K0OXWd?Aoud({WUjDQ-*v4mkm9Fdy#GBCGW?MG3-v9N8Y~%ihjz^HG>m`j$$BR^m zO(*GXdSc4VCQmQ2DI++|%dws5zz4c5USWXz**L(-FSPvd^gy_d8y!`_KC80@dI~P+W|@5 ze|p7_lumxicIO^I-W;3XmUMoD@BOE}ZVnO?k&qSxX>>4^6OhT@EjUX^t3=*X(i#vy ziMlFNZWboNnv^+BIGl202;XKPKj2=}RgZe*$oq1=C+{cjzNB-xPBa?%!$iE4yxyPx z{~yDMeoG@sC^w7BU8!@(7O6}6A9U83I{|sR%2Vz*VW zSsHzA2XVzDdw<5~&w1o^q3mw#LHr=?gxXG^`ExcLOx{LY?jP#rQp;Syl-a>u# zToZMw+rl>L)S=TtM6TQPgtp#I;_K{y-qT@A2HTIkw1i`jH;KHw+~bLtrTzh&Wy^c# zuRMv{N!Y~Qj?B4KI%_*o=l>9XNM0PQOvAbH2jV3ut7|=J-MF)ozL)rZn?8qdJkn1Q z&ttc41K}&w<+nRder|97`Aw?xEd@K+ioI#5CAY3n?kMuVT;JM;9Gg~rG*uXUu? zBz-S+$`P*qRhfZ$Gt?rn9f^+^St#Mh-2Z#UB5xjdBW_)NXzVx^v++Q}J*iiL`vUhB z(&Lf#JLM`7A4mIjNgGGFDQWu%Ct%<|>zg5e)8xeBzDuUA>fFsqKaAB#TS+R+^tEUg+Zhp!EnlK!0eR!a_u7EwzUZrDfo;67w}&) zB2ia6^6O&{8kkI@x{7ko=dMWk=Hw3}y_hn%7INRCY2L>PPsBRJc+U~$-6)r zm)ZZCM5<6J#1<+`qn)^i5|2rGGb+`hQVi}wgxgTQ8|nXDlubzFD0$IHpH4YlLEM>1 zi}zL8pQyW(_@AT?`ttn!=@mDBj5Z^4p3q23?p_oeOWFg}^_Fm9I$UBKtwDMb?hWLP zpnNgz-sA<4mes5A|Nf{-y|1rtH2?2x!;ypw*l;sC$xS15xT_O>Z);5^9-R(!z2a_6 z-mlcTP1+N}UoJn&Eh3VXv@PThA)bpnl6#GAFjLW8z<~x5WRY%mE=j3WMk@CokR#Jl1e>`uC_ z)duf>t{@|Ad`FuH>3j!e7UBYzKXfG|b0VIz9bL5P*=Z;X_iWNjahIoodfWwUxg)rb zdPUR-R|xT*)QycXi66y(>8vnq{Ee@zDrhzBK zw~%*;yMxU*j{&ycm$F?bH=Z&hxkIR@D=CBCZQF}M`6i^*|N1vWt861r$aq7+>bCID z#DAutu{5-SdjjbLDcgs%u3vTRPk1?LXK*-oH{0mn`%D0j%)A5dZ)H delta 30256 zcmY-21$Y$Mf`;Mhpg{t`JqfM>g1c*QcXubaHtz23Hn_X{;4-)~xDC!Af&KnEhx^Rd zv&DPdtGWr9yXW6W9q}=$_imhs(;copksK!(KFZ`cm7_S$+S*EWoM+t~CkZ~sxEQgA zq z;TVL0^qqp+Db649u_-3TUN$}%{fMu`oVXps@FhmWMuSX#TTDZ|w~a5rM8wx&Qap~n z_z+{`D{P11=p9O+&0xn#g|BcK#vWqahD(XpqtGb)iKB7kFqRShhch_*g-Lt}k1%_D zn8KS#PfX!8c-q=)468~!)mX=wi08(#{%r{~8s|6*@g)9%ZN?kpOmLi4#P=dePD^SX z#1FU|w@xy4p6ocgh-aMQI1BI*a%`NTQyphL{y=TnnrX%s(;a6A@#HgD%6SB?%%Cua z%`|>SChzo}n}2F*3;OR**CscD?aJ7cWz=9`sV zfE`Is=ViE+2u#Oc_y{$VM=VESmUO`)$7w?R&JxFIfrXc{9k>+h;!kXVb=bFH+=k8Z z5jMrL%N-{Ru10^njy##p3(Sn(CM(S08jm^@hcOVdu(7E<3=Z=U@5Vlqz%|$x|3M9) z9s5-jkD?ySNNg~R>LkNHI1jsG0uDlD9EBP1I;K@opS4sXA%it5>P3?aBV##?id8Ts z*2O5;+QvJh$_=pT!)*FEn?46)kiQtU0_#!j9KNx`H;3`JIdzc3Q#yIG^&I~9S zMkAgLV_*SPy|UgweZ2%UqVX7r^H2lXhl%hWY5@PDRz$C@E|36I;7C*lD=;>0MKyd3Rqr}R#QUiB z9;3G4C#qks-%e8?IqLAFMD2AjYAJJ~8Y+hBs2uuZZBzqoQ62Qg1ULXSkZBkfm!r=GXK8fPhYGvR$UZo_K=zaMVC5?l$SwQ5`qKyx1L;zYaCfEjE4-)!}jL zMeA+U1fHS}=_ib@=Ra_d*^}I;4ho?PR<<@oEm?c)i2X1RK1U5CXs_eUzmUgRGArYU$`3>hFxbY6 z+5F0wg!HBujQvsN*5F{=Z{tM|o6rC1hgpAh@HYvX(M!}ozN5Ax;t^gtm;hC-9cr(` zQ02YY9VcQ!jCj<1<4J}=#PebR)-ydKr@KFosWQ5}Y( zo{nh8OgsUqp;Xp9n4fqkYUU$Q@0D$+Eebkr1`>j*R}HmQt-J&@vyP|{^*{|^sC7C< zCcYB2CF?OF?nIsPeW(GRwDBu8e&6~U)$TW&AN7QpNLLS`l4P$qcABhu<_lf1}|V_yl3N2Py_sgYRBiKY1a?gLcaeKP=Oq%4vM1ovJxi3 zR;Yn_Q7bbA)$uZnf(KFcPGU>Eidvb1f0}m7pvu+2sMr9tB`qpW z9ik|wO@-p93RO@uZh~6c{-_ljifU*Q>am-J>SzmUD-NNy_5y0luAo-%B}T_^^r|7> zGiJsKtbrJf^o%y13u6#3V$&;FYg?OHJ7NsV^+pYRxJ{pq>TnTipldM_o;bt$tKeA@ z^jO?Mjr^U}IcruX7HVdJs1*ptWS9$eMyjFewMTsj^+j#LWa}L3QuHN#t&ML#%lc~x z50H=?Phci|jM_W@bM~n~Jq@KXG1f;7q=(J#k6Pl1sI6R%n(=nj1P|kEyoBnn!+B$O zF9AOi`eO_ni|S|=7Ql6=3eQnX_6{|(FQ}O~7tG2L5*w`Y6hEa`Yx-l$Z$wSRdzgS`b^}%6sV(r?#-rXd4JSmc zNET~hRK3cm0XMX^MzzxwwS|LF100Du3o}s@UW=);i(3ikuw6&Z$hmLMLR{1mB}N^Z zl&B8VS#zN}DuF6j4b@S7)DpKx4QwOoknTpU;4##eUPOPLqPqlC@h$32=R7bKQ=$rH z#!8qE18@{-uUDZ4a1_<>Wz-7Y!^HR&wI$IWnxC!(q9#}pwFR{?0sT8|3226cPz?=7 zbuihcuR{%FGj6~Gm;yWh&07#BU|qb4nrY5QW~GXt23XO?8=%^0hkDw2p;w1u0D%HH z8MQ}eQA_s_HPTm@5`W@G40_BHgO^YZ4Sr$E5SiK!2hJau>D4Z!rWt&&*%Na-zz2z+miyQE(NyryY|JKa5)0 zJD3c=K4bl(5=ijeoPhvT2U#%}7DeUvwCP?OpM+ZK+31VQPeR z9n>Ljhdg#pU(|rT3kYbBHlaE`iQ21cm<2zhRv`5&^9?BrY5<|uHmI{P9Q7t$g=+X9 zs-4R={vI`;NUzNR(ji;obwUYfgsm_u_C~G9Dx1F9dK9CReiZ}pA!;upyfNhiQ1J|? zj!U81ZDI3!qPAub>TFC$_xt~R0+C5riZO9D>T%kMH8IXVW=Y$i5AhzTrSFZoaUkZ$ zZK#!ci|z0$cEuKNO@~)e6T6El_YB+V`F}?s7#qAZ4Ua|b>15P5o*C$m8!#3gvR=g4 z#2=t$^d58IH!O<5?@dRY(T{j<)I>+31~LJ?+Ot_UVI!)c-Kdo~Y`uVbeD0#ke?=Wi z{|{zhX;ASzs18C=Z@_A(0e3)6q(5rqrlSt)+z;%3CIUxE(1_lmX8sK|;$NtN_4BRKC=F42%NA5URyt*W)O~QFySXN z(?HZfL#zc+GcJufoE0$+*2UD=0d*)RqdHuN(QqHC{7EkXHTV~*p}V%gW7JZ;wdtQx zr#c)}G1+G`u=J=E%Z{p_8?_RJP%|xs1+WHcV3Vv%QT4pr3B(|<2eaWx492ghrBDCG zG?W_?5HE$oem38?yeQ62t?n(1}aK%UwBx7Kjf%0~OwJp*1RH34;05jBJQHr~v} zyPz8EW#c1ld;-QJeSvigx=V^0$X}>|{f+KQqT2tAIy>Q*QlJ0XzM6M^b<9A$pCc$>7c86np+<@BhV;E1*|9Jvw@ewA% z=-*98sZle@W-Wqxg;qj!)CJX1Z`4c&qh>n6#;2iXyx7K9;RNE_Ff*3?!TzhEt^{Ns z)QksX0M0-)ydC4>5sZM>uqxg{)yooY29gU45-*H8T>Vh>2BB7H8ft*cP%F7Qob`7* zAfXQlM^I;>&`+~Op{NI_8lF$0K;NrG}7GY?d|{)lpScLv>LzX^!fkJF4Rms3n|^TI%Jf z_r*aBz-y?b{(?FSK2glT{ZQ>EL)A}>k?G&bX%h-yLgJyQ_d#=1g)yj^PC-?iiyGJ( zOpbd|Fe>j4Rj+x4Nu36I3KmwCs6~riW>QS z)Ii^&1`ux3BS-T%{fQ?)_l%%>Mo{H9qPB1!YOBtpCiWzn*EIB+1XcWu>M&w-vxk1D z0VPH~ekD;ame!~N&A|$|8VBJQ%!j>WczEXdD;p|4ET+f(4A_rZh(ANER06M`$q2?k z66&Bv-UoGvMxjPJ)j9{u6JKn7g}sUAiRE!Wwl|{A#67Ho;i!&k#rC-W=+p`Ilm+>l z$JLvgfcB^ymczz48vno{m?MtIDTUi{2mV0KXlq=L`!AkvupaTH@yrVS#ID4H;+q%L zRMdbrq8`6WNCCQWS4LKoC~VF2dT^FNb-UbSaX@8}Dt!*#`a*ZLGS(6^`o zeY5%`F&#(4RHP?CEqP(oOlzUur0r4ddQpdPl;V2+7ZT7ZU4`mkn=0?oU;F{;6lsCFi!&d40=8k@cs^&U8eddjW^dQFEch66^x(OY)va1M0^5j>tdzz zxIbALfeg^=>?QDsj6~_pDGtZ##M5W+I7hHQj=`cCJQNH1p~92 z&-Y5GPrXh!2q&S+`-gbkA5K@tOvKM&HvEP<1DW{c0Ig^-OoLUiik|;o1Oo9SmdEF) z!;>?o`R-O0bryP{&cG1Vl8?9X*{B!KGOUXyF$`1YGG|~qs@^-)*8M=OaJ1Y!|6K_* zBA@~nP&2-Tnn7?LvnBPgD)HgyJ~r5q_!HDXYUDLDY=QyAd!hzB1NE3L#R|9@^`-R- z>b(#zAJ2bA0@?DJ!&M*EU{lng>xe$s1G8gqY=)~*k6X3LBhLXPl^$Pxusu!b_$Jv9yI1^vsWIg{wN}D~6SH|Q1vS}|oO@X9kJ&K1P)r(b_anx{b%#LfogV>3BO{BwnSRIYTMidz_QR-=OO4=-_dd zW3P@LryC~k5TW$J!IWI?k^-wKpnOSJxuw@sCcTLCcX*V6EETI<#C1)*nmSZXK(X)y%SZSNFVcp zT7%I!WZ&>O>5=<+oDD4LSyZ_JgUsQ5j`})YcCg23h)YrL3(pYqsn`UywG*)gdOs1+ zVXHUP9JZ0zhWH}PgucVf;mL(V44^bq2biR|!`MXy%Vm4gEmPG{Hpku^WK;dR-Ou z0;-QH-xsw7lTibnZS(&?wR6&@Kg1Zs-(w*DLTzQ>B%Xf_Ak8FGASY^xilG{;iTSZ5 z>U+W>)SK)ys)Mhn@^L4dfu_Ur#OtD7%^9Yc^a@y+_&|(~=TIwka|+MD5?+&_8Gl6$ z$Y-jVnLjoso*2{O0Mv873^l-qsQT|whwUfM#(2}ri)lSZ=Cn7P?r|=W-gbr=aKV}8 zOjYp`&^x|1>MK|m)Ij>7-qpiUGhK)QxC;aE2I?$)LwBoYnUC23)QhGVro!_W6F*oz zv&{fvp|;eUihv%kET|>RfjZ5#FgdnI&2Tho52vF#T!LEqH8%eMYDG??%H6W*&rt1u zL>Cvo_(D^*IJo;0vl^qWNa2vY@sq4=TNiwIymL`eGZLfMxLu zR>7hR%!kfotjJl&v(Oys;folsp8tacbm%Ui8oGxY@dFmaWsA)_{t2psYD>&n*n?Wq zTd2MKU=2sTFQP0pE1L+lQW;SzkR5f_@}XCIThb;}!64%GQ3D!)+RJgM4rW`ITGyfK z??4^SBd7uWjXFEuZ9MTZbBMEJAnBo)13N6^`PYmWk znM7Y<1{Mcv6AwTQq!;Qe4Mm-$>DU3cqMo9lmF6)nfa!@hTgmgUclcNmG{aS>0d2M( zM>Tj8wIZ*q-!UigXsb+m5mdQKsHJaW)4QV1${@^x(=juiMSZdP<|UvC4gWBYUnkTO zPDaiA57fXmp*q-uT8Xo$hM%CyeMjwSgw^Kp^h33q5H+FnsHdYKY9bYEzPG+j=wJ)< zvl(MikI6jLlCMU+kT#)Soo7%3y@x9I1=T^MHD;;fqh3&1QD-9*HK6vW3H3(?=5UbEcqeZBdT8&NdfQ<*O)0yG< z%S}K_R2)^XmbE=<=7Vf}Bo-$=54Gg?P*2BG)CzpW4Cu4od^%=EJq0CDU$vT|>K#W7 z>>Q@0f9E;@?cFcb$7-|UcV8&z4)aqXu%q#&4h+e1Y1cpH}}(re11PdM;GC zvNqlTb%;A};`vvBQ8r^PY9Q-T&+}Ouzk%A@e^Cv^*=)+CMa`rXYR2_ZTM~xp(2M%A zx)N3HjEz4;Z9$YRJpY=h{}!{PL8!+gD=NJ(Y6U7`T5OEjaRln{?L;m8b<|$JMLpks zTg_G!Kuxd&Y5=uR1MPs?!l7OQ8p&iFgL6>>NW0B09lA?rZGd_VyI?*Xi>iMNwfE;y z<*%X6)JxQ%{)`$x^zEix5bAJyGZ4@Sv!Rx(1ZoM}qqd+os^MX%6&Z&b;5^g})}Us- z3$;?$Pz^srZRJ0xcKvpk`ngg0rA^%HR3xCiZHO9qFVslKqP{pRw&^Re7x6u)Z#Fr0 zn)0<#18a}kihij2Q&AoLfof+XY9iZFPsM(Wq38bu0TukqX52!p$RpG#{eoKZ*t^V9 zXF}~^E>uGmP%BjvwE|61GY><(h$f>}Y8_6;J*Y!jbvOO!`R_?U4U9(3WIAdl%Tar{ z4}0KAtcZp8n2yGw20kCPa?4PAy%Y7Ao<(idJ$R3RDK=Q z3bjK`*o!(_^A%9WcGRIbjcxEPs-wC`%}TUDefV@lrEf&7*dF9-qH_YZ#BGk7fp~#^0k> zGRjFaV1HD5$&qxg6GA|bTS3%gRv9(3cBofrPfUwTQHSjms=-^REqRP8{}EN+`O_?Y zQq*Hu5H-{KsE#{gDI9{4_57bCprt#HI@Q-u-wEHL8uUA5;u$a<@zSXDPBwis)*!wD z)8Kd1RtB9m9hOF|Xnj<>ol#pb4wLBlUrrzs9z?CgD`ns>)J&6{F{eE>>iv)jm0tig z@LH&Pjc^}!#f+HstoaK_J=BcXpz6Itm5*_b=U*cWAfP46fr^(xbzB$qB5IB+u^*~| zROiiB6h_UYGHQ$3;0&CIt1#^ab9m3Aw(dHr(B-{awr}!vpRmq+HG#=Ce?IClTx~sseTiT963_}% zzhcfn7t~1Sp*r4(+VexG5nn{j{D#ecg=#n)b-LqSHK#uV>J3^R_2#T@)9a$z>x=2p zJBEPvbc^*I>f`k}s-u|K%zy$>k6TU*#uC;rRD+9A?QB9l1!qtlyhm+C((7hrtD&~E z1E$mSKahYLUV&PPZKzk|B@D#3sG0fSFn?`MiyBx{RQc|x{K=?+tU$f#wxb662z937 z-ZWd30+pW|s68Ky+S8e+r(hYXf%T|8-G!le3@f1jEwks1P)pqbRWA&) zVSfz4b*Ogk<0yQIZT0+jziles#mK}Tq4w@2>X3ZIBG~zk`9*~ds1CNEmU{!+aezz*ndV{zMHt(tVzP?OCS#ra}SKR#Zn02mdXH*{h+b8Eirg za1W~CHIe2Iyk<{3*o@w&28W_Ln1MPht5FSK zx86ss&@tm>gWsV#S`n9>98n z{|qFcrJ9c_cp5d6J2w6d)!{eHgvphYU_>S(9+DC#M=fZF1Fs11gib}7A`dn|1BXFcm_j_X+PKDaK5Y&tcpvqN7?eSIA zz@DPsGv6>hM*GJc(j5Qr{Hs835<+n-s-bJB0lY+2aNe2*GN3xlhx$5R9JO`BQCqhK z)!s4G0Iu8kbJWWHK((Lnoq7B+c?sy0S3u3Yo6Q)AYG9#tBWh_6p=RagCx=J+>i zpk>~hfp<tW?HogQ^e>-w`z0NrT>iDtsBkIE>!Y8u=sZbr~L{%(_ zTCoP04u_&1r!}ah-HDpO85@6$D)$w&r9q#~Pt$W_9DV*TAy9>kZI}-ue=!3nidw=Z zsHGc?+LEQHhPI-<9x|of(Mh$#8YQk&L{rUeM0`7Bb z{0V9)|F!APS5wXxwd6@r<;z;Dq6StEwPl@Ae-RmuI;5*nD|j8XLT}Oi{P+E4_Bsh_ zhH0$1tz}TBx(-Id_81wvq6XL-^?VOPotX(Xe>P?yz6iB7r%)?)7d3z%-+2BtqWIs< zn=1>dKxNE|9Z^d-A2rh>HvJ6hO#DD~7~_W-ctX@uksg&Ef+|-C*=eUDYJz7`D|Pn= z&%ZkSK!UcwKioX0sZcX3jM}TxsERdFuiRD`hyze>!Ud>_9L8Y0iK_4W)BG#AKXxYG z6162)a6f+Y63~auu3zSr`w7z#&%$r#=qad)TEZTvl~{=G3kEgd>!_K$KyA%0)BqxR zeB6II&56T_cShC!g!+s~>f_`71jJj2fI6Csn{f|nuR29A9SlL8>SYxsnudk206$w$FZfQ}^eF$p6MNns?I%+E#*!1qmE5#XwTB!li%}PzdnmQG; z2Njs!|^il>8P2tjcx3WDmN1KX*LIs;x^odef@o$rkE{` zS(z!Q`twl}S&LesgQ#}S#qsgFU#%Y4jQDYV+{ZB$>bWh3dR(famar#g!I7xbzYX;w zI)Qp>&fy^Zj9Q^y@qFAjr5DxlTGR^eMjh%S@w`6nr`UZG)Zh=)R`|s?TaX^J5ig2b z%C4xxIs*0Fudwk`sQ1DPt0#e3p+u;9IZ&ULWl`^&7N`LX@e70&h_> ziJ8#H{qTs7S&0`!4Y&hpPY0q_Yz*oQ%|Y$)G8^B7+KN3Gh^Md%dS4QlNT5L?vqZ0O z1o3a!4+kgqahhQ`s^KR54?W6us6*NvHGpxbt(b-CXd&js^)~(#wMCz?G^R*upZ}Hw z)Zs83iqVsq7s^DeNBk_l#PrF1+~4Jlm%_*WxGs-3NuP^@uxEe||9KT(zp({A3G{J) z(J(ZKt>F3p8_SXYGo_FFF<&;755JJe^EZS*XEF+>HWk;Sp3}H#e4Juf3ibGnM15+_ z$Nab*tKd7#fW_0Az3zZ|ItHWKorgs*Mmis7AXdPvcp8KC{C_8)rOcS#>|t?Kfoj+a zhoBDKbF6^A8O$NAg~7zTpu6O#typj4yHQWgpO^!0VomhR=;QwOTMP7RiLVpT> zHz1hjU#B~Ju#fv&ulZ0TK7;D;4(d$2L>;cqS3C+ZLmMz+=&i`j5IYT)~AesDJP z^yEdoaEe;1quOhgjpsinfsQ1!$0eu%_+>X+5P({;%BVeDjz#e?hGNhW8FIupJ*eVpb@IUlNl z`MJ!NtVHEU$nE2F!W^h}mf%0Q#>VI7@o|3~w+uC5?=1q_f--r{<5d~k5g(2|_!hMy zA8dZad?r6X>aZ4)`I7PVYQhY8= zoFX+3hLV=RR?{mb5#gt#|Gs!SLTS?VxmKTWDB(ReKc(W_32Z%{PvCxP%f+o_T|QJ$aIIP18Zkv;)iQNO7jh|2U* z*v9p6_oUoW+eSI{f00Id{HKB{>1st|<0yEI{Jw@FF*|_lgp+Y+AwHf)c=I@a+Q$B*vAR^cO+%4w zS|!p35wAn~6s(P7sXv=r*J8?D#JX7BP2umzc2J6X#}lbeWVXtR#N@KWV!N@26Z^8tO@Y65<26^H4v`c2u9daMG4= zccg4(@@8W%;?oE(!@IQq3mZ_@%eMt5lC7MY#0uQ}K;VDZCc>#Gm>l;~E+YB5`VsF> z{0#N);zQC}64sU0)<29JxNn+dCnt6FEphVQ$cl}>b zAS#g(MAu=R|1_u~xyb*0JtpvtdowrR&HvxUcX-E##w*i#HriQ4_&eUQ^?fmn8YM~7 z*O)J=t@A&hNK5XEWE8~7+#9(EQsFa=-set9JOOum%IGReSl3C6LfU-FJm+pjxEl2? z5RPR#-e`(Cqe#0?esj|25l%_ieg48|WCoE8WMt=VNBk583J~VImotjI1%$`hhD34F zCUI9J+?G6D`G`lPd;&a+UAb#>HzuxYH|6FM|BLV+q&2ktJ2yzkN@iN_I26z~gEQQ^ zIuS2#f=)*&wI$re#>Fzy_zv%QYiF7;o- zW(=W$9E7KGci=um!DHO>Y=>QNDe3LGUl2}6qq_3YVPw)8lGYF7aR0ta+Rmm@MqhPv zQD-1&C5ZDc8D{@|N!&xE5O)#^h0#C@8k@|mi=Q;Q*J}RcpTykX!Y61bDvlyP zhj0bLd#Kl)cthIxgPR{LxPJrCU+D7DmwxV|>$rY0*@+5WD3ppj3b(FVq=i#S7e5qq zuiWJAB5kCJI!EXvB6*9sFLAfv9%l!vB0nkLle8u{ocI>*cZ4t5GQ07)nLkTR!Q_l= z4eDx1c(Mt)KiO089F-qnBL-24a>r~#ISH@e_M?u2x5c!x%IOTU9U+`L;iYh zU8%SacxmJjcTEaz#ld7|r=i+vj4Oonr`+4fyG{eYuN##6NW4FJgKc76(r!?0mW|IL z9*uU&+W041zaM3OU*+l&`9(&0+o3WN(&#-ZkH89~XW||~`eNeU{!`hHG6CeRC9UJs zL+#^w&i;by;@t#Qm!}UR*^b{vMX%4-@K!ohx;C7+^6X(g-Y4ng;eI}4$f(8Kza@=Zu3H^ zFoCpb+|g`W5eAZtG8M>s&mD_ zh5KKV@BZf(I&Hz^UEw}Sqq?eCQ`5OF{kX@6a=Pl-v<`&tQf?Xc;yz~Uys;Lw<-BdF z_(+8rovtSoI6-Isz4{aBMuiQiufOG}lNuY@LXW63f%^dUTG+ZFA}RS zQfC`?J>p}u|Az=PA)_dXLop>CZKW|?L-9WOA*64^J=`}*TS{I=!cDn5Q2sB{c2Q<1 z@!oWH1lLn0n7jn!mE*2PzApVBWIK0v%4F2rB$&)LRLV(#n^=wb@9QXmIHdjes!u#R zcR3n3O&xx?;;hF!6l!M67P1w#lh@03ToF?eFG#&^wvS8vM900>V@g61C^P}TVgLmf z5$;1+Km7>DtaQ+cSxupQCem(^_Q19=jCfz}`P2)c%s4xkVdN8a`jXyQ0ed|n-`kD` z^pUoUNEQmj=gvW)mA27bm zbk>M+^+{VmnY4sQn|9SThk}gPCc!yOycYLk3hGMAfTq~I`p7>)x&L+CH^Nb=R|O+; zr=wgqQ^ko#{37N0kfv*t+M=wkvgDOxV5{9Y{g<($>_9?uGD9d-n(z}UN8-LrLs z!$PEYQDgS1O8zGs?nhp1?iI9=hBn(0{(UtjJeBmgB%~lblr|PBQ}a(@8(czxUBo|f zx21v26f8oTuGWVC{TbEHObHLEf6V4&quwv-q_g!F(#Br$b7LTPdFoyHUn}&Vmx6^U zkcNz6|H(K)S|IUsRQmp(^ulydko))bl0bgicuf5kl+{&$y2VKQV50o9A8%9gN^;kv z?loLxCg64MlUc_W6mM-K#VIg`@J!Oq+S%-;;mW3>TVoF4FQm1%1By*}E;*OE_j1p* zWe?Df{$GZDvu!6Py)SLXp|uo9i;0OhqOs`2Cvjh(!cOk=+!st0rxf|R zVw0w;26q5ui(oA*O8R_daINLu#GQmebfE3()QwC2V!hw{*oLN~A8}p#4DO$0NZY`D zk60>OwyT|SAo1GVWohhRoA8p!o8fr zdFW&bX%TE^j;+{-y#0iWlc#GWk+==wR zXgZLLKPga#!pTY8hy%EPU$F>BCbFE0e^72SUcm08ccnc4=d2*@3Tau0yj8+~t~7*? zk{8LgnT4>fC)`cluQUW=ala*FG7XKTpnh2Wj=LEnj*j_BFUdX4$Nkbo%5-AsaVfQK z*`||Y5Z$LI?SSp(iyh7;@|I9u*I`@!G1j2mDelj<+*HChNPkWH>$qbOPeR^!)K!uZ zc_WaKl!WKp*GMcxfnv7N&J@t)OFRPkv&c)vU4lA=$h$+{8@B`xEJh^nppBQO&LGO^ z8cjF>w!yz`n$n-^LpzX$uF?1%Dt97rI|UvS))h*H7=+7_Uxe@{@><(LnG*aQfxOk+ zy4H|?oO=P`6j%ZCVJ+&MvTcUjvPntH6oC)ESrmA~-P1O_m9VZdc#FdRx(OfBeodWJ zH=_59Z9=7jY}m{2bQPzSeKy>fcy(%?rA$TAm)i71b|`XX=g8n)RUI4-(d3QQKGptj%4F2BvTa*+#-_r^#ugrP44e4F};)%IS)x z_G~+fpSS7zC{vGkHSWI%n~N9SG#jjG3o5$TcI2V)Nfcg2{3mxi?m_=)TxDw#Ps4qc zyc#$HXVO+I>YgEgHg|v024F_gVv<*gHhXX%r+=qAiNCK5gzr)KztV36?@}-QbOy`fnq}gOACxg`a<9|<-uj{tM(zY@2fyP#1cN}BWE2|~0YE+I! zOFO7nitu>C!^x{^XMU4-Eb5iu&O-SV+`m+j>lJn4Q*O3?Y^tlgtyIbmZ8ViS+VD*4 zRm$z*&P?9#E26FUmmR#)3v+*@%%3=t0kxpa4BB{U2fl!^6$xi0y|!LYQ^>qR;zTOc zqT)Zc!`KwqPrNXB|5Bk0`E6{64@i%~eZ)3OmUEAKyNQ>j%-_`cNW8G}w=D1epj5Qt zVV#?{Xx_A2_ikH;@Ak~*2*dwe%{w;$a9W3Bmx@7UdmYuqX_1Tdx z&~rE_TDC0NLIShr&7VETj!4Bl\n" "Language-Team: Lithuanian\n" "Language: lt\n" @@ -42,15 +42,15 @@ msgstr "{i} naudoja" msgid "Unlimited" msgstr "Neribota" -#: bookwyrm/forms/edit_user.py:88 +#: bookwyrm/forms/edit_user.py:104 msgid "Incorrect password" msgstr "Neteisingas slaptažodis" -#: bookwyrm/forms/edit_user.py:95 bookwyrm/forms/landing.py:90 +#: bookwyrm/forms/edit_user.py:111 bookwyrm/forms/landing.py:90 msgid "Password does not match" msgstr "Slaptažodis nesutampa" -#: bookwyrm/forms/edit_user.py:118 +#: bookwyrm/forms/edit_user.py:134 msgid "Incorrect Password" msgstr "Neteisingas slaptažodis" @@ -102,8 +102,8 @@ msgstr "Kaip pridėta į sąrašą" msgid "Book Title" msgstr "Knygos antraštė" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 +#: bookwyrm/templates/shelf/shelf.html:203 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Įvertinimas" @@ -145,7 +145,7 @@ msgstr "Pavojus" msgid "Automatically generated report" msgstr "Automatiškai sugeneruota ataskaita" -#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:47 +#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:48 #: bookwyrm/models/link.py:72 bookwyrm/templates/import/import_status.html:214 #: bookwyrm/templates/settings/link_domains/link_domains.html:19 msgid "Pending" @@ -171,23 +171,23 @@ msgstr "Moderatorius ištrynė" msgid "Domain block" msgstr "Blokuoti pagal domeną" -#: bookwyrm/models/book.py:283 +#: bookwyrm/models/book.py:282 msgid "Audiobook" msgstr "Audioknyga" -#: bookwyrm/models/book.py:284 +#: bookwyrm/models/book.py:283 msgid "eBook" msgstr "Elektroninė knyga" -#: bookwyrm/models/book.py:285 +#: bookwyrm/models/book.py:284 msgid "Graphic novel" msgstr "Grafinė novelė" -#: bookwyrm/models/book.py:286 +#: bookwyrm/models/book.py:285 msgid "Hardcover" msgstr "Knyga kietais viršeliais" -#: bookwyrm/models/book.py:287 +#: bookwyrm/models/book.py:286 msgid "Paperback" msgstr "Knyga minkštais viršeliais" @@ -205,26 +205,26 @@ msgstr "Susijungę" msgid "Blocked" msgstr "Užblokuoti" -#: bookwyrm/models/fields.py:29 +#: bookwyrm/models/fields.py:30 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s yra negaliojantis remote_id" -#: bookwyrm/models/fields.py:38 bookwyrm/models/fields.py:47 +#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s yra negaliojantis naudotojo vardas" -#: bookwyrm/models/fields.py:192 bookwyrm/templates/layout.html:128 +#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "naudotojo vardas" -#: bookwyrm/models/fields.py:197 +#: bookwyrm/models/fields.py:198 msgid "A user with that username already exists." msgstr "Toks naudotojo vardas jau egzistuoja." -#: bookwyrm/models/fields.py:216 +#: bookwyrm/models/fields.py:217 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "Toks naudotojo vardas jau egzistuoja." msgid "Public" msgstr "Viešas" -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:218 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Viešas" msgid "Unlisted" msgstr "Slaptas" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:219 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Slaptas" msgid "Followers" msgstr "Sekėjai" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:220 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -258,30 +258,30 @@ msgstr "Sekėjai" msgid "Private" msgstr "Privatu" -#: bookwyrm/models/import_job.py:48 bookwyrm/templates/import/import.html:174 +#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:81 -#: bookwyrm/templates/settings/users/user_info.html:28 +#: bookwyrm/templates/settings/users/user_admin.html:87 +#: bookwyrm/templates/settings/users/user_info.html:33 msgid "Active" msgstr "Aktyvus" -#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:172 +#: bookwyrm/models/import_job.py:50 bookwyrm/templates/import/import.html:172 msgid "Complete" msgstr "Užbaigti" -#: bookwyrm/models/import_job.py:50 +#: bookwyrm/models/import_job.py:51 msgid "Stopped" msgstr "Sustabdyta" -#: bookwyrm/models/import_job.py:83 bookwyrm/models/import_job.py:91 +#: bookwyrm/models/import_job.py:84 bookwyrm/models/import_job.py:92 msgid "Import stopped" msgstr "Importavimas sustojo" -#: bookwyrm/models/import_job.py:363 bookwyrm/models/import_job.py:388 +#: bookwyrm/models/import_job.py:356 bookwyrm/models/import_job.py:381 msgid "Error loading book" msgstr "Klaida įkeliant knygą" -#: bookwyrm/models/import_job.py:372 +#: bookwyrm/models/import_job.py:365 msgid "Could not find a match for book" msgstr "Nepavyko rasti tokios knygos" @@ -368,103 +368,103 @@ msgstr "Citatos" msgid "Everything else" msgstr "Visa kita" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home Timeline" msgstr "Pagrindinė siena" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home" msgstr "Pagrindinis" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 msgid "Books Timeline" msgstr "Knygų siena" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:97 +#: bookwyrm/templates/user/layout.html:112 msgid "Books" msgstr "Knygos" -#: bookwyrm/settings.py:296 +#: bookwyrm/settings.py:303 msgid "English" msgstr "English (Anglų)" -#: bookwyrm/settings.py:297 +#: bookwyrm/settings.py:304 msgid "Català (Catalan)" msgstr "Català (kataloniečių)" -#: bookwyrm/settings.py:298 +#: bookwyrm/settings.py:305 msgid "Deutsch (German)" msgstr "Deutsch (Vokiečių)" -#: bookwyrm/settings.py:299 +#: bookwyrm/settings.py:306 msgid "Esperanto (Esperanto)" msgstr "Esperanto (Esperanto)" -#: bookwyrm/settings.py:300 +#: bookwyrm/settings.py:307 msgid "Español (Spanish)" msgstr "Español (Ispanų)" -#: bookwyrm/settings.py:301 +#: bookwyrm/settings.py:308 msgid "Euskara (Basque)" msgstr "Euskara (Baskų kalba)" -#: bookwyrm/settings.py:302 +#: bookwyrm/settings.py:309 msgid "Galego (Galician)" msgstr "Galego (galisų)" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:310 msgid "Italiano (Italian)" msgstr "Italų (Italian)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:311 msgid "Suomi (Finnish)" msgstr "Suomi (suomių)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:312 msgid "Français (French)" msgstr "Français (Prancūzų)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:313 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:314 msgid "Nederlands (Dutch)" msgstr "" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:315 msgid "Norsk (Norwegian)" msgstr "Norvegų (Norwegian)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:316 msgid "Polski (Polish)" msgstr "Polski (lenkų)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:317 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português brasileiro (Brazilijos portugalų)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:318 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (Europos portugalų)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:319 msgid "Română (Romanian)" msgstr "Română (rumunų)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:320 msgid "Svenska (Swedish)" msgstr "Svenska (Švedų)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:321 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文 (Supaprastinta kinų)" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:322 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (Tradicinė kinų)" @@ -575,7 +575,7 @@ msgid "Software version:" msgstr "Serverio programinės įrangos versija:" #: bookwyrm/templates/about/layout.html:30 -#: bookwyrm/templates/embed-layout.html:33 +#: bookwyrm/templates/embed-layout.html:34 #: bookwyrm/templates/snippets/footer.html:8 #, python-format msgid "About %(site_name)s" @@ -684,7 +684,7 @@ msgstr "Trumpiausias skaitinys tais metais…" #: bookwyrm/templates/annual_summary/layout.html:157 #: bookwyrm/templates/annual_summary/layout.html:178 #: bookwyrm/templates/annual_summary/layout.html:247 -#: bookwyrm/templates/book/book.html:63 +#: bookwyrm/templates/book/book.html:65 #: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/landing/large-book.html:26 #: bookwyrm/templates/landing/small-book.html:18 @@ -776,24 +776,24 @@ msgid "View ISNI record" msgstr "Peržiūrėti ISNI įrašą" #: bookwyrm/templates/author/author.html:95 -#: bookwyrm/templates/book/book.html:173 +#: bookwyrm/templates/book/book.html:175 msgid "View on ISFDB" msgstr "Žiūrėti per ISFDB" #: bookwyrm/templates/author/author.html:100 #: bookwyrm/templates/author/sync_modal.html:5 -#: bookwyrm/templates/book/book.html:140 +#: bookwyrm/templates/book/book.html:142 #: bookwyrm/templates/book/sync_modal.html:5 msgid "Load data" msgstr "Įkelti duomenis" #: bookwyrm/templates/author/author.html:104 -#: bookwyrm/templates/book/book.html:144 +#: bookwyrm/templates/book/book.html:146 msgid "View on OpenLibrary" msgstr "Žiūrėti „OpenLibrary“" #: bookwyrm/templates/author/author.html:119 -#: bookwyrm/templates/book/book.html:158 +#: bookwyrm/templates/book/book.html:160 msgid "View on Inventaire" msgstr "Žiūrėti „Inventaire“" @@ -805,11 +805,7 @@ msgstr "Žiūrėti „LibraryThing“" msgid "View on Goodreads" msgstr "Žiūrėti „Goodreads“" -#: bookwyrm/templates/author/author.html:151 -msgid "View ISFDB entry" -msgstr "Peržiūrėti ISFDB įrašą" - -#: bookwyrm/templates/author/author.html:166 +#: bookwyrm/templates/author/author.html:158 #, python-format msgid "Books by %(name)s" msgstr "%(name)s knygos" @@ -967,19 +963,19 @@ msgstr "Patvirtinti" msgid "Unable to connect to remote source." msgstr "Nepavyksta prisijungti prie nuotolinio šaltinio." -#: bookwyrm/templates/book/book.html:71 bookwyrm/templates/book/book.html:72 +#: bookwyrm/templates/book/book.html:73 bookwyrm/templates/book/book.html:74 msgid "Edit Book" msgstr "Redaguoti knygą" -#: bookwyrm/templates/book/book.html:97 bookwyrm/templates/book/book.html:100 +#: bookwyrm/templates/book/book.html:99 bookwyrm/templates/book/book.html:102 msgid "Click to add cover" msgstr "Spausti, kad pridėti viršelį" -#: bookwyrm/templates/book/book.html:106 +#: bookwyrm/templates/book/book.html:108 msgid "Failed to load cover" msgstr "Nepavyko įkelti viršelio" -#: bookwyrm/templates/book/book.html:117 +#: bookwyrm/templates/book/book.html:119 msgid "Click to enlarge" msgstr "Spustelėkite padidinti" @@ -1058,13 +1054,13 @@ msgstr "Vietos" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:90 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:91 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Sąrašai" @@ -1129,8 +1125,8 @@ msgstr "Įkelti viršelį:" #: bookwyrm/templates/book/cover_add_modal.html:23 #: bookwyrm/templates/book/edit/edit_book_form.html:250 -msgid "Load cover from url:" -msgstr "Įkelti viršelį iš url:" +msgid "Load cover from URL:" +msgstr "" #: bookwyrm/templates/book/cover_show_modal.html:6 msgid "Book cover preview" @@ -1340,7 +1336,7 @@ msgid "Add Another Author" msgstr "Pridėti dar vieną autorių" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:147 +#: bookwyrm/templates/shelf/shelf.html:162 msgid "Cover" msgstr "Viršelis" @@ -1541,22 +1537,22 @@ msgstr "%(pages)s psl." msgid "%(languages)s language" msgstr "%(languages)s kalba" -#: bookwyrm/templates/book/publisher_info.html:65 +#: bookwyrm/templates/book/publisher_info.html:63 #, python-format msgid "Published %(date)s by %(publisher)s." msgstr "Publikuota %(date)s, %(publisher)s." +#: bookwyrm/templates/book/publisher_info.html:65 +#, python-format +msgid "Published by %(publisher)s." +msgstr "Publikavo %(publisher)s." + #: bookwyrm/templates/book/publisher_info.html:67 #, python-format msgid "Published %(date)s" msgstr "Publikuota %(date)s" -#: bookwyrm/templates/book/publisher_info.html:69 -#, python-format -msgid "Published by %(publisher)s." -msgstr "Publikavo %(publisher)s." - -#: bookwyrm/templates/book/rating.html:13 +#: bookwyrm/templates/book/rating.html:19 msgid "rated it" msgstr "įvertino" @@ -1564,12 +1560,12 @@ msgstr "įvertino" msgid "Series by" msgstr "Serijos autorius" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 #, python-format msgid "Book %(series_number)s" msgstr "%(series_number)s knyga" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 msgid "Unsorted Book" msgstr "Nesurūšiuota knyga" @@ -1599,7 +1595,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Deja, šio kodo neradome." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:92 +#: bookwyrm/templates/settings/users/user_info.html:98 msgid "Confirmation code:" msgstr "Patvirtinimo kodas:" @@ -1693,6 +1689,7 @@ msgstr "Pasiūlyta" #: bookwyrm/templates/ostatus/subscribe.html:42 #: bookwyrm/templates/ostatus/success.html:17 #: bookwyrm/templates/ostatus/success.html:18 +#: bookwyrm/templates/user/moved.html:19 bookwyrm/templates/user/moved.html:20 #: bookwyrm/templates/user/user_preview.html:16 #: bookwyrm/templates/user/user_preview.html:17 msgid "Locked account" @@ -1771,7 +1768,7 @@ msgstr "%(username)s citavo You have moved your account to %(username)s" +msgstr "" + +#: bookwyrm/templates/moved.html:32 +msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +msgid "Undo move" +msgstr "" + +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +msgid "Log out" +msgstr "Atsijungti" + #: bookwyrm/templates/notifications/items/accept.html:18 #, python-format msgid "%(related_user)s accepted your invitation to join group \"%(group_name)s\"" @@ -3776,6 +3795,16 @@ msgstr "%(related_user)s paminėjo jus %(related_user)s mentioned you in a status" msgstr "%(related_user)s paminėjo jus būsenoje" +#: bookwyrm/templates/notifications/items/move_user.html:18 +#, python-format +msgid "%(related_user)s has moved to %(username)s" +msgstr "" + +#: bookwyrm/templates/notifications/items/move_user.html:25 +#, python-format +msgid "%(related_user)s has undone their move" +msgstr "" + #: bookwyrm/templates/notifications/items/remove.html:17 #, python-format msgid "has been removed from your group \"%(group_name)s\"" @@ -3816,7 +3845,7 @@ msgstr[2] "Reikia moderuoti %(display_count)s naujų ataska msgstr[3] "Reikia moderuoti %(display_count)s naujas ataskaitas" #: bookwyrm/templates/notifications/items/status_preview.html:4 -#: bookwyrm/templates/snippets/status/content_status.html:73 +#: bookwyrm/templates/snippets/status/content_status.html:62 msgid "Content warning" msgstr "Įspėjimas dėl turinio" @@ -4034,9 +4063,51 @@ msgstr "Prieš tvarkant 2FA reikia patvirinti slaptažodį." msgid "Set up 2FA" msgstr "Sutvarkyti 2FA" +#: bookwyrm/templates/preferences/alias_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:7 +#: bookwyrm/templates/preferences/move_user.html:39 +msgid "Move Account" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:7 +#: bookwyrm/templates/preferences/alias_user.html:34 +msgid "Create Alias" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:12 +msgid "Add another account as an alias" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:16 +msgid "Marking another account as an alias is required if you want to move that account to this one." +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:19 +msgid "This is a reversable action and will not change the functionality of this account." +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:25 +msgid "Enter the username for the account you want to add as an alias e.g. user@example.com :" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:30 +#: bookwyrm/templates/preferences/move_user.html:35 +msgid "Confirm your password:" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:39 +#: bookwyrm/templates/preferences/layout.html:28 +msgid "Aliases" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:49 +msgid "Remove alias" +msgstr "" + #: bookwyrm/templates/preferences/blocks.html:4 #: bookwyrm/templates/preferences/blocks.html:7 -#: bookwyrm/templates/preferences/layout.html:46 +#: bookwyrm/templates/preferences/layout.html:54 msgid "Blocked Users" msgstr "Blokuoti nariai" @@ -4066,7 +4137,7 @@ msgstr "Naujas slaptažodis:" #: bookwyrm/templates/preferences/delete_user.html:4 #: bookwyrm/templates/preferences/delete_user.html:7 #: bookwyrm/templates/preferences/delete_user.html:40 -#: bookwyrm/templates/preferences/layout.html:28 +#: bookwyrm/templates/preferences/layout.html:36 #: bookwyrm/templates/settings/users/delete_user_form.html:22 msgid "Delete Account" msgstr "Pašalinti paskyrą" @@ -4188,18 +4259,45 @@ msgstr "Parsisiųsti failą" msgid "Account" msgstr "Paskyra" -#: bookwyrm/templates/preferences/layout.html:31 +#: bookwyrm/templates/preferences/layout.html:32 +msgid "Move Account" +msgstr "" + +#: bookwyrm/templates/preferences/layout.html:39 msgid "Data" msgstr "Duomenys" -#: bookwyrm/templates/preferences/layout.html:39 +#: bookwyrm/templates/preferences/layout.html:47 msgid "CSV export" msgstr "CSV eksportas" -#: bookwyrm/templates/preferences/layout.html:42 +#: bookwyrm/templates/preferences/layout.html:50 msgid "Relationships" msgstr "Sąsajos" +#: bookwyrm/templates/preferences/move_user.html:12 +msgid "Migrate account to another server" +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:16 +msgid "Moving your account will notify all your followers and direct them to follow the new account." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:19 +#, python-format +msgid "\n" +" %(user)s will be marked as moved and will not be discoverable or usable unless you undo the move.\n" +" " +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:25 +msgid "Remember to add this user as an alias of the target account before you try to move." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:30 +msgid "Enter the username for the account you want to move to e.g. user@example.com :" +msgstr "" + #: bookwyrm/templates/reading_progress/finish.html:5 #, python-format msgid "Finish \"%(book_title)s\"" @@ -4612,8 +4710,8 @@ msgid "Streams" msgstr "" #: bookwyrm/templates/settings/celery.html:32 -msgid "Broadcasts" -msgstr "Transliacijos" +msgid "Broadcast" +msgstr "" #: bookwyrm/templates/settings/celery.html:38 msgid "Inbox" @@ -4946,19 +5044,19 @@ msgstr "Serveris:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:119 msgid "Status:" msgstr "Būsena:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:107 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Software:" msgstr "Programinė įranga:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:110 +#: bookwyrm/templates/settings/users/user_info.html:116 msgid "Version:" msgstr "Versija:" @@ -4971,7 +5069,7 @@ msgid "Details" msgstr "Išsami informacija" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:69 +#: bookwyrm/templates/user/layout.html:84 msgid "Activity" msgstr "Veikla" @@ -4985,7 +5083,7 @@ msgid "View all" msgstr "Žiūrėti viską" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:60 +#: bookwyrm/templates/settings/users/user_info.html:66 msgid "Reports:" msgstr "Pranešimai:" @@ -5002,7 +5100,7 @@ msgid "Blocked by us:" msgstr "Blokuojame:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:117 +#: bookwyrm/templates/settings/users/user_info.html:123 msgid "Notes" msgstr "Užrašai" @@ -5722,17 +5820,22 @@ msgstr "Paskutinį kartą aktyvus" msgid "Remote instance" msgstr "Nutolęs serveris" -#: bookwyrm/templates/settings/users/user_admin.html:86 +#: bookwyrm/templates/settings/users/user_admin.html:82 +#: bookwyrm/templates/settings/users/user_info.html:29 +msgid "Moved" +msgstr "" + +#: bookwyrm/templates/settings/users/user_admin.html:93 msgid "Deleted" msgstr "Ištrinta" -#: bookwyrm/templates/settings/users/user_admin.html:92 -#: bookwyrm/templates/settings/users/user_info.html:32 +#: bookwyrm/templates/settings/users/user_admin.html:99 +#: bookwyrm/templates/settings/users/user_info.html:38 msgid "Inactive" msgstr "Neaktyvus" -#: bookwyrm/templates/settings/users/user_admin.html:101 -#: bookwyrm/templates/settings/users/user_info.html:127 +#: bookwyrm/templates/settings/users/user_admin.html:108 +#: bookwyrm/templates/settings/users/user_info.html:133 msgid "Not set" msgstr "Nenustatytas" @@ -5744,55 +5847,55 @@ msgstr "Peržiūrėti nario paskyrą" msgid "Go to user admin" msgstr "Eiti į administratoriaus naudotoją" -#: bookwyrm/templates/settings/users/user_info.html:40 +#: bookwyrm/templates/settings/users/user_info.html:46 msgid "Local" msgstr "Vietinis" -#: bookwyrm/templates/settings/users/user_info.html:42 +#: bookwyrm/templates/settings/users/user_info.html:48 msgid "Remote" msgstr "Nutolęs" -#: bookwyrm/templates/settings/users/user_info.html:51 +#: bookwyrm/templates/settings/users/user_info.html:57 msgid "User details" msgstr "Vartotojo duomenys" -#: bookwyrm/templates/settings/users/user_info.html:55 +#: bookwyrm/templates/settings/users/user_info.html:61 msgid "Email:" msgstr "El. paštas:" -#: bookwyrm/templates/settings/users/user_info.html:65 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "(View reports)" msgstr "(Peržiūrėti ataskaitas)" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Blocked by count:" msgstr "Užblokavę:" -#: bookwyrm/templates/settings/users/user_info.html:74 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Date added:" msgstr "Pridėjimo data:" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Last active date:" msgstr "Paskutinį kartą aktyvus:" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:86 msgid "Manually approved followers:" msgstr "Patvirtinti sekėjai:" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:89 msgid "Discoverable:" msgstr "Aptinkama:" -#: bookwyrm/templates/settings/users/user_info.html:87 +#: bookwyrm/templates/settings/users/user_info.html:93 msgid "Deactivation reason:" msgstr "Išjungimo priežastis:" -#: bookwyrm/templates/settings/users/user_info.html:102 +#: bookwyrm/templates/settings/users/user_info.html:108 msgid "Instance details" msgstr "Serverio informacija" -#: bookwyrm/templates/settings/users/user_info.html:124 +#: bookwyrm/templates/settings/users/user_info.html:130 msgid "View instance" msgstr "Peržiūrėti serverį" @@ -5929,7 +6032,7 @@ msgid "Need help?" msgstr "Reikia pagalbos?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:72 +#: bookwyrm/templates/shelf/shelf.html:87 msgid "Create shelf" msgstr "Sukurti lentyną" @@ -5937,18 +6040,26 @@ msgstr "Sukurti lentyną" msgid "Edit Shelf" msgstr "Redaguoti lentyną" -#: bookwyrm/templates/shelf/shelf.html:24 +#: bookwyrm/templates/shelf/shelf.html:25 +msgid "You have have moved to" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:28 +msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:39 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Nario paskyra" -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:54 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Visos knygos" -#: bookwyrm/templates/shelf/shelf.html:97 +#: bookwyrm/templates/shelf/shelf.html:112 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" @@ -5957,40 +6068,40 @@ msgstr[1] "%(formatted_count)s knygos" msgstr[2] "%(formatted_count)s knygų" msgstr[3] "%(formatted_count)s knygos" -#: bookwyrm/templates/shelf/shelf.html:104 +#: bookwyrm/templates/shelf/shelf.html:119 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(rodoma %(start)s–%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:116 +#: bookwyrm/templates/shelf/shelf.html:131 msgid "Edit shelf" msgstr "Redaguoti lentyną" -#: bookwyrm/templates/shelf/shelf.html:124 +#: bookwyrm/templates/shelf/shelf.html:139 msgid "Delete shelf" msgstr "Ištrinti lentyną" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:178 +#: bookwyrm/templates/shelf/shelf.html:167 +#: bookwyrm/templates/shelf/shelf.html:193 msgid "Shelved" msgstr "Sudėta į lentynas" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:181 +#: bookwyrm/templates/shelf/shelf.html:168 +#: bookwyrm/templates/shelf/shelf.html:196 msgid "Started" msgstr "Pradėta" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Finished" msgstr "Baigta" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Until" msgstr "Iki" -#: bookwyrm/templates/shelf/shelf.html:210 +#: bookwyrm/templates/shelf/shelf.html:225 msgid "This shelf is empty." msgstr "Ši lentyna tuščia." @@ -6308,6 +6419,10 @@ msgstr "Perskaityta %(read_count)s iš %(goal_count)s knyg msgid "%(username)s has read %(read_count)s of %(goal_count)s books." msgstr "%(username)s perskaitė %(read_count)s iš %(goal_count)s knygų." +#: bookwyrm/templates/snippets/move_user_buttons.html:10 +msgid "Follow at new account" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6449,35 +6564,35 @@ msgstr "Nustoti skaityti" msgid "Finish reading" msgstr "Baigti skaityti" -#: bookwyrm/templates/snippets/status/content_status.html:80 +#: bookwyrm/templates/snippets/status/content_status.html:69 msgid "Show status" msgstr "Rodyti būseną" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "(Page %(page)s" msgstr "(Psl. %(page)s" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "%(endpage)s" msgstr "%(endpage)s" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid "(%(percent)s%%" msgstr "(%(percent)s%%" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid " - %(endpercent)s%%" msgstr " - %(endpercent)s%%" -#: bookwyrm/templates/snippets/status/content_status.html:127 +#: bookwyrm/templates/snippets/status/content_status.html:116 msgid "Open image in new window" msgstr "Atidaryti paveikslėlį naujame lange" -#: bookwyrm/templates/snippets/status/content_status.html:148 +#: bookwyrm/templates/snippets/status/content_status.html:137 msgid "Hide status" msgstr "Slėpti būseną" @@ -6669,10 +6784,14 @@ msgid "Groups: %(username)s" msgstr "Grupės: %(username)s" #: bookwyrm/templates/user/layout.html:50 +msgid "has moved to" +msgstr "" + +#: bookwyrm/templates/user/layout.html:64 msgid "Follow Requests" msgstr "Sekti prašymus" -#: bookwyrm/templates/user/layout.html:73 +#: bookwyrm/templates/user/layout.html:88 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6687,6 +6806,12 @@ msgstr "Sąrašai: %(username)s" msgid "Create list" msgstr "Sukurti sąrašą" +#: bookwyrm/templates/user/moved.html:25 +#: bookwyrm/templates/user/user_preview.html:22 +#, python-format +msgid "Joined %(date)s" +msgstr "Prisijungė %(date)s" + #: bookwyrm/templates/user/relationships/followers.html:31 #, python-format msgid "%(username)s has no followers" @@ -6758,11 +6883,6 @@ msgstr "Tik komentarai" msgid "No activities yet!" msgstr "Įrašų dar nėra" -#: bookwyrm/templates/user/user_preview.html:22 -#, python-format -msgid "Joined %(date)s" -msgstr "Prisijungė %(date)s" - #: bookwyrm/templates/user/user_preview.html:26 #, python-format msgid "%(display_count)s follower" @@ -6794,10 +6914,6 @@ msgstr "Jūs kartu nieko nesekate" msgid "View profile and more" msgstr "Žiūrėti paskyrą ir dar daugiau" -#: bookwyrm/templates/user_menu.html:82 -msgid "Log out" -msgstr "Atsijungti" - #: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:28 msgid "File exceeds maximum size: 10MB" msgstr "Failas viršijo maksimalų dydį: 10 MB" @@ -6816,7 +6932,7 @@ msgstr[1] "%(num)d knygos %(user)s" msgstr[2] "%(num)d knygos %(user)s" msgstr[3] "%(num)d knygos %(user)s" -#: bookwyrm/templatetags/utilities.py:39 +#: bookwyrm/templatetags/utilities.py:48 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s" diff --git a/locale/nl_NL/LC_MESSAGES/django.mo b/locale/nl_NL/LC_MESSAGES/django.mo index 088c596b16365b8c664e97097cf74bd173ca5f54..94ff7e1de4989a8f547f0e1df339dc48990bdc8c 100644 GIT binary patch delta 34499 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
Ow|`7Rsqz6uQvNSeY*G6F

delta 31291
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
KDeO%a;r{`kj>OUc

diff --git a/locale/nl_NL/LC_MESSAGES/django.po b/locale/nl_NL/LC_MESSAGES/django.po
index 0cb6c8ee5..c87aca2d2 100644
--- a/locale/nl_NL/LC_MESSAGES/django.po
+++ b/locale/nl_NL/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bookwyrm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-02 16:40+0000\n"
-"PO-Revision-Date: 2023-10-02 19:32\n"
+"POT-Creation-Date: 2023-11-02 21:32+0000\n"
+"PO-Revision-Date: 2023-11-17 10:39\n"
 "Last-Translator: Mouse Reeve \n"
 "Language-Team: Dutch\n"
 "Language: nl\n"
@@ -42,15 +42,15 @@ msgstr "{i} keer gebruikt"
 msgid "Unlimited"
 msgstr "Onbeperkt"
 
-#: bookwyrm/forms/edit_user.py:88
+#: bookwyrm/forms/edit_user.py:104
 msgid "Incorrect password"
 msgstr "Onjuist wachtwoord"
 
-#: bookwyrm/forms/edit_user.py:95 bookwyrm/forms/landing.py:90
+#: bookwyrm/forms/edit_user.py:111 bookwyrm/forms/landing.py:90
 msgid "Password does not match"
 msgstr "Wachtwoord komt niet overeen"
 
-#: bookwyrm/forms/edit_user.py:118
+#: bookwyrm/forms/edit_user.py:134
 msgid "Incorrect Password"
 msgstr "Onjuist wachtwoord"
 
@@ -102,8 +102,8 @@ msgstr "Lijst volgorde"
 msgid "Book Title"
 msgstr "Boektitel"
 
-#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156
-#: bookwyrm/templates/shelf/shelf.html:188
+#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171
+#: bookwyrm/templates/shelf/shelf.html:203
 #: bookwyrm/templates/snippets/create_status/review.html:32
 msgid "Rating"
 msgstr "Beoordeling"
@@ -145,7 +145,7 @@ msgstr "Gevaar"
 msgid "Automatically generated report"
 msgstr "Automatisch gegenereerd rapport"
 
-#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:47
+#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:48
 #: bookwyrm/models/link.py:72 bookwyrm/templates/import/import_status.html:214
 #: bookwyrm/templates/settings/link_domains/link_domains.html:19
 msgid "Pending"
@@ -171,23 +171,23 @@ msgstr "Verwijdering moderator"
 msgid "Domain block"
 msgstr "Domeinblokkade"
 
-#: bookwyrm/models/book.py:283
+#: bookwyrm/models/book.py:282
 msgid "Audiobook"
 msgstr "Luisterboek"
 
-#: bookwyrm/models/book.py:284
+#: bookwyrm/models/book.py:283
 msgid "eBook"
 msgstr "eBook"
 
-#: bookwyrm/models/book.py:285
+#: bookwyrm/models/book.py:284
 msgid "Graphic novel"
 msgstr "Striproman"
 
-#: bookwyrm/models/book.py:286
+#: bookwyrm/models/book.py:285
 msgid "Hardcover"
 msgstr "Harde kaft"
 
-#: bookwyrm/models/book.py:287
+#: bookwyrm/models/book.py:286
 msgid "Paperback"
 msgstr "Zachte kaft"
 
@@ -205,26 +205,26 @@ msgstr "Gefedereerd"
 msgid "Blocked"
 msgstr "Geblokkeerd"
 
-#: bookwyrm/models/fields.py:29
+#: bookwyrm/models/fields.py:30
 #, python-format
 msgid "%(value)s is not a valid remote_id"
 msgstr "%(value)s is geen geldige remote_id"
 
-#: bookwyrm/models/fields.py:38 bookwyrm/models/fields.py:47
+#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48
 #, python-format
 msgid "%(value)s is not a valid username"
 msgstr "%(value)s is geen geldige gebruikersnaam"
 
-#: bookwyrm/models/fields.py:192 bookwyrm/templates/layout.html:128
+#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129
 #: bookwyrm/templates/ostatus/error.html:29
 msgid "username"
 msgstr "gebruikersnaam"
 
-#: bookwyrm/models/fields.py:197
+#: bookwyrm/models/fields.py:198
 msgid "A user with that username already exists."
 msgstr "Er bestaat al een gebruiker met deze gebruikersnaam."
 
-#: bookwyrm/models/fields.py:216
+#: bookwyrm/models/fields.py:217
 #: bookwyrm/templates/snippets/privacy-icons.html:3
 #: bookwyrm/templates/snippets/privacy-icons.html:4
 #: bookwyrm/templates/snippets/privacy_select.html:11
@@ -232,7 +232,7 @@ msgstr "Er bestaat al een gebruiker met deze gebruikersnaam."
 msgid "Public"
 msgstr "Openbaar"
 
-#: bookwyrm/models/fields.py:217
+#: bookwyrm/models/fields.py:218
 #: bookwyrm/templates/snippets/privacy-icons.html:7
 #: bookwyrm/templates/snippets/privacy-icons.html:8
 #: bookwyrm/templates/snippets/privacy_select.html:14
@@ -240,7 +240,7 @@ msgstr "Openbaar"
 msgid "Unlisted"
 msgstr "Niet vermeld"
 
-#: bookwyrm/models/fields.py:218
+#: bookwyrm/models/fields.py:219
 #: bookwyrm/templates/snippets/privacy_select.html:17
 #: bookwyrm/templates/user/relationships/followers.html:6
 #: bookwyrm/templates/user/relationships/followers.html:11
@@ -249,7 +249,7 @@ msgstr "Niet vermeld"
 msgid "Followers"
 msgstr "Volgers"
 
-#: bookwyrm/models/fields.py:219
+#: bookwyrm/models/fields.py:220
 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6
 #: bookwyrm/templates/snippets/privacy-icons.html:15
 #: bookwyrm/templates/snippets/privacy-icons.html:16
@@ -258,30 +258,30 @@ msgstr "Volgers"
 msgid "Private"
 msgstr "Privé"
 
-#: bookwyrm/models/import_job.py:48 bookwyrm/templates/import/import.html:174
+#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174
 #: bookwyrm/templates/settings/imports/imports.html:98
-#: bookwyrm/templates/settings/users/user_admin.html:81
-#: bookwyrm/templates/settings/users/user_info.html:28
+#: bookwyrm/templates/settings/users/user_admin.html:87
+#: bookwyrm/templates/settings/users/user_info.html:33
 msgid "Active"
 msgstr "Actief"
 
-#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:172
+#: bookwyrm/models/import_job.py:50 bookwyrm/templates/import/import.html:172
 msgid "Complete"
 msgstr "Voltooid"
 
-#: bookwyrm/models/import_job.py:50
+#: bookwyrm/models/import_job.py:51
 msgid "Stopped"
 msgstr "Gestopt"
 
-#: bookwyrm/models/import_job.py:83 bookwyrm/models/import_job.py:91
+#: bookwyrm/models/import_job.py:84 bookwyrm/models/import_job.py:92
 msgid "Import stopped"
 msgstr "Import gestopt"
 
-#: bookwyrm/models/import_job.py:363 bookwyrm/models/import_job.py:388
+#: bookwyrm/models/import_job.py:356 bookwyrm/models/import_job.py:381
 msgid "Error loading book"
 msgstr "Fout bij laden boek"
 
-#: bookwyrm/models/import_job.py:372
+#: bookwyrm/models/import_job.py:365
 msgid "Could not find a match for book"
 msgstr "Kan geen match vinden voor het boek"
 
@@ -368,103 +368,103 @@ msgstr "Quotes"
 msgid "Everything else"
 msgstr "Overig"
 
-#: bookwyrm/settings.py:223
+#: bookwyrm/settings.py:230
 msgid "Home Timeline"
 msgstr "Tijdlijnen"
 
-#: bookwyrm/settings.py:223
+#: bookwyrm/settings.py:230
 msgid "Home"
 msgstr "Start"
 
-#: bookwyrm/settings.py:224
+#: bookwyrm/settings.py:231
 msgid "Books Timeline"
 msgstr "Boeken tijdlijn"
 
-#: bookwyrm/settings.py:224
+#: bookwyrm/settings.py:231
 #: bookwyrm/templates/guided_tour/user_profile.html:101
 #: bookwyrm/templates/search/layout.html:22
 #: bookwyrm/templates/search/layout.html:43
-#: bookwyrm/templates/user/layout.html:97
+#: bookwyrm/templates/user/layout.html:112
 msgid "Books"
 msgstr "Boeken"
 
-#: bookwyrm/settings.py:296
+#: bookwyrm/settings.py:303
 msgid "English"
 msgstr "Engels (English)"
 
-#: bookwyrm/settings.py:297
+#: bookwyrm/settings.py:304
 msgid "Català (Catalan)"
 msgstr "Català (Catalaans)"
 
-#: bookwyrm/settings.py:298
+#: bookwyrm/settings.py:305
 msgid "Deutsch (German)"
 msgstr "Duits (Deutsch)"
 
-#: bookwyrm/settings.py:299
+#: bookwyrm/settings.py:306
 msgid "Esperanto (Esperanto)"
 msgstr "Esperanto (Esperanto)"
 
-#: bookwyrm/settings.py:300
+#: bookwyrm/settings.py:307
 msgid "Español (Spanish)"
 msgstr "Spaans (Español)"
 
-#: bookwyrm/settings.py:301
+#: bookwyrm/settings.py:308
 msgid "Euskara (Basque)"
 msgstr "Euskara (Baskisch)"
 
-#: bookwyrm/settings.py:302
+#: bookwyrm/settings.py:309
 msgid "Galego (Galician)"
 msgstr "Galego (Galicisch)"
 
-#: bookwyrm/settings.py:303
+#: bookwyrm/settings.py:310
 msgid "Italiano (Italian)"
 msgstr "Italiano (Italiaans)"
 
-#: bookwyrm/settings.py:304
+#: bookwyrm/settings.py:311
 msgid "Suomi (Finnish)"
 msgstr "Suomi (Fins)"
 
-#: bookwyrm/settings.py:305
+#: bookwyrm/settings.py:312
 msgid "Français (French)"
 msgstr "Frans (Français)"
 
-#: bookwyrm/settings.py:306
+#: bookwyrm/settings.py:313
 msgid "Lietuvių (Lithuanian)"
 msgstr "Lietuvių (Litouws)"
 
-#: bookwyrm/settings.py:307
+#: bookwyrm/settings.py:314
 msgid "Nederlands (Dutch)"
 msgstr "Nederlands"
 
-#: bookwyrm/settings.py:308
+#: bookwyrm/settings.py:315
 msgid "Norsk (Norwegian)"
 msgstr "Norsk (Noors)"
 
-#: bookwyrm/settings.py:309
+#: bookwyrm/settings.py:316
 msgid "Polski (Polish)"
 msgstr "Polski (Pools)"
 
-#: bookwyrm/settings.py:310
+#: bookwyrm/settings.py:317
 msgid "Português do Brasil (Brazilian Portuguese)"
 msgstr "Português do Brasil (Braziliaans-Portugees)"
 
-#: bookwyrm/settings.py:311
+#: bookwyrm/settings.py:318
 msgid "Português Europeu (European Portuguese)"
 msgstr "Português Europeu (Europeaans Portugees)"
 
-#: bookwyrm/settings.py:312
+#: bookwyrm/settings.py:319
 msgid "Română (Romanian)"
 msgstr "Română (Roemeens)"
 
-#: bookwyrm/settings.py:313
+#: bookwyrm/settings.py:320
 msgid "Svenska (Swedish)"
 msgstr "Svenska (Zweeds)"
 
-#: bookwyrm/settings.py:314
+#: bookwyrm/settings.py:321
 msgid "简体中文 (Simplified Chinese)"
 msgstr "简体中文 (Vereenvoudigd Chinees)"
 
-#: bookwyrm/settings.py:315
+#: bookwyrm/settings.py:322
 msgid "繁體中文 (Traditional Chinese)"
 msgstr "简体中文 (Traditioneel Chinees)"
 
@@ -575,7 +575,7 @@ msgid "Software version:"
 msgstr "Software-versie:"
 
 #: bookwyrm/templates/about/layout.html:30
-#: bookwyrm/templates/embed-layout.html:33
+#: bookwyrm/templates/embed-layout.html:34
 #: bookwyrm/templates/snippets/footer.html:8
 #, python-format
 msgid "About %(site_name)s"
@@ -680,7 +680,7 @@ msgstr "Diens kortste lees dit jaar…"
 #: bookwyrm/templates/annual_summary/layout.html:157
 #: bookwyrm/templates/annual_summary/layout.html:178
 #: bookwyrm/templates/annual_summary/layout.html:247
-#: bookwyrm/templates/book/book.html:63
+#: bookwyrm/templates/book/book.html:65
 #: bookwyrm/templates/discover/large-book.html:22
 #: bookwyrm/templates/landing/large-book.html:26
 #: bookwyrm/templates/landing/small-book.html:18
@@ -768,24 +768,24 @@ msgid "View ISNI record"
 msgstr "ISNI vermelding bekijken"
 
 #: bookwyrm/templates/author/author.html:95
-#: bookwyrm/templates/book/book.html:173
+#: bookwyrm/templates/book/book.html:175
 msgid "View on ISFDB"
 msgstr "Bekijk op ISFDB"
 
 #: bookwyrm/templates/author/author.html:100
 #: bookwyrm/templates/author/sync_modal.html:5
-#: bookwyrm/templates/book/book.html:140
+#: bookwyrm/templates/book/book.html:142
 #: bookwyrm/templates/book/sync_modal.html:5
 msgid "Load data"
 msgstr "Gegevens laden"
 
 #: bookwyrm/templates/author/author.html:104
-#: bookwyrm/templates/book/book.html:144
+#: bookwyrm/templates/book/book.html:146
 msgid "View on OpenLibrary"
 msgstr "Bekijk op OpenLibrary"
 
 #: bookwyrm/templates/author/author.html:119
-#: bookwyrm/templates/book/book.html:158
+#: bookwyrm/templates/book/book.html:160
 msgid "View on Inventaire"
 msgstr "Bekijk op Inventaire"
 
@@ -797,11 +797,7 @@ msgstr "Bekijk op LibraryThing"
 msgid "View on Goodreads"
 msgstr "Bekijk op Goodreads"
 
-#: bookwyrm/templates/author/author.html:151
-msgid "View ISFDB entry"
-msgstr "ISFDB melding bekijken"
-
-#: bookwyrm/templates/author/author.html:166
+#: bookwyrm/templates/author/author.html:158
 #, python-format
 msgid "Books by %(name)s"
 msgstr "Boeken door %(name)s"
@@ -959,19 +955,19 @@ msgstr "Bevestigen"
 msgid "Unable to connect to remote source."
 msgstr "Verbinden met externe bron niet mogelijk."
 
-#: bookwyrm/templates/book/book.html:71 bookwyrm/templates/book/book.html:72
+#: bookwyrm/templates/book/book.html:73 bookwyrm/templates/book/book.html:74
 msgid "Edit Book"
 msgstr "Boek bewerken"
 
-#: bookwyrm/templates/book/book.html:97 bookwyrm/templates/book/book.html:100
+#: bookwyrm/templates/book/book.html:99 bookwyrm/templates/book/book.html:102
 msgid "Click to add cover"
 msgstr "Klik om omslag toe te voegen"
 
-#: bookwyrm/templates/book/book.html:106
+#: bookwyrm/templates/book/book.html:108
 msgid "Failed to load cover"
 msgstr "Omslag laden mislukt"
 
-#: bookwyrm/templates/book/book.html:117
+#: bookwyrm/templates/book/book.html:119
 msgid "Click to enlarge"
 msgstr "Klik om te vergroten"
 
@@ -1046,13 +1042,13 @@ msgstr "Plaatsen"
 #: bookwyrm/templates/guided_tour/lists.html:14
 #: bookwyrm/templates/guided_tour/user_books.html:102
 #: bookwyrm/templates/guided_tour/user_profile.html:78
-#: bookwyrm/templates/layout.html:90 bookwyrm/templates/lists/curate.html:8
+#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8
 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5
 #: bookwyrm/templates/lists/lists.html:12
 #: bookwyrm/templates/search/layout.html:26
 #: bookwyrm/templates/search/layout.html:51
 #: bookwyrm/templates/settings/celery.html:77
-#: bookwyrm/templates/user/layout.html:91 bookwyrm/templates/user/lists.html:6
+#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6
 msgid "Lists"
 msgstr "Lijsten"
 
@@ -1117,8 +1113,8 @@ msgstr "Upload Omslag:"
 
 #: bookwyrm/templates/book/cover_add_modal.html:23
 #: bookwyrm/templates/book/edit/edit_book_form.html:250
-msgid "Load cover from url:"
-msgstr "Omslag laden vanuit url:"
+msgid "Load cover from URL:"
+msgstr "Omslag laden vanuit URL:"
 
 #: bookwyrm/templates/book/cover_show_modal.html:6
 msgid "Book cover preview"
@@ -1328,7 +1324,7 @@ msgid "Add Another Author"
 msgstr "Nog een auteur toevoegen"
 
 #: bookwyrm/templates/book/edit/edit_book_form.html:231
-#: bookwyrm/templates/shelf/shelf.html:147
+#: bookwyrm/templates/shelf/shelf.html:162
 msgid "Cover"
 msgstr "Omslag"
 
@@ -1529,22 +1525,22 @@ msgstr "%(pages)s bladzijdes"
 msgid "%(languages)s language"
 msgstr "%(languages)s taal"
 
-#: bookwyrm/templates/book/publisher_info.html:65
+#: bookwyrm/templates/book/publisher_info.html:63
 #, python-format
 msgid "Published %(date)s by %(publisher)s."
 msgstr "Gepubliceerd %(date)s door %(publisher)s."
 
+#: bookwyrm/templates/book/publisher_info.html:65
+#, python-format
+msgid "Published by %(publisher)s."
+msgstr "Gepubliceerd door %(publisher)s."
+
 #: bookwyrm/templates/book/publisher_info.html:67
 #, python-format
 msgid "Published %(date)s"
 msgstr "Gepubliceerd %(date)s"
 
-#: bookwyrm/templates/book/publisher_info.html:69
-#, python-format
-msgid "Published by %(publisher)s."
-msgstr "Gepubliceerd door %(publisher)s."
-
-#: bookwyrm/templates/book/rating.html:13
+#: bookwyrm/templates/book/rating.html:19
 msgid "rated it"
 msgstr "beoordeelde het"
 
@@ -1552,12 +1548,12 @@ msgstr "beoordeelde het"
 msgid "Series by"
 msgstr "Reeksen van"
 
-#: bookwyrm/templates/book/series.html:27
+#: bookwyrm/templates/book/series.html:28
 #, python-format
 msgid "Book %(series_number)s"
 msgstr "Boek %(series_number)s"
 
-#: bookwyrm/templates/book/series.html:27
+#: bookwyrm/templates/book/series.html:28
 msgid "Unsorted Book"
 msgstr "Ongecategoriseerd boek"
 
@@ -1587,7 +1583,7 @@ msgid "Sorry! We couldn't find that code."
 msgstr "Sorry! We konden die code niet vinden."
 
 #: bookwyrm/templates/confirm_email/confirm_email.html:19
-#: bookwyrm/templates/settings/users/user_info.html:92
+#: bookwyrm/templates/settings/users/user_info.html:98
 msgid "Confirmation code:"
 msgstr "Bevestigingscode:"
 
@@ -1681,6 +1677,7 @@ msgstr "Aanbevolen"
 #: bookwyrm/templates/ostatus/subscribe.html:42
 #: bookwyrm/templates/ostatus/success.html:17
 #: bookwyrm/templates/ostatus/success.html:18
+#: bookwyrm/templates/user/moved.html:19 bookwyrm/templates/user/moved.html:20
 #: bookwyrm/templates/user/user_preview.html:16
 #: bookwyrm/templates/user/user_preview.html:17
 msgid "Locked account"
@@ -1755,7 +1752,7 @@ msgstr "%(username)s heeft You have moved your account to %(username)s"
+msgstr "Je hebt je account verhuisd naar %(username)s"
+
+#: bookwyrm/templates/moved.html:32
+msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account."
+msgstr "Je kan de verhuizing ongedaan maken om de volledige functionaliteit te herstellen, maar sommige volgers volgen dit account mogelijk al niet meer."
+
+#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32
+msgid "Undo move"
+msgstr "Verhuizing ongedaan maken"
+
+#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82
+msgid "Log out"
+msgstr "Uitloggen"
+
 #: bookwyrm/templates/notifications/items/accept.html:18
 #, python-format
 msgid "%(related_user)s accepted your invitation to join group \"%(group_name)s\""
@@ -3744,6 +3763,16 @@ msgstr "%(related_user)s heeft je genoemd
 msgid "%(related_user)s mentioned you in a status"
 msgstr "%(related_user)s heeft je genoemd in een status"
 
+#: bookwyrm/templates/notifications/items/move_user.html:18
+#, python-format
+msgid "%(related_user)s has moved to %(username)s"
+msgstr "%(related_user)s is verhuisd naar %(username)s"
+
+#: bookwyrm/templates/notifications/items/move_user.html:25
+#, python-format
+msgid "%(related_user)s has undone their move"
+msgstr "%(related_user)s heeft hun verhuizing ongedaan gemaakt"
+
 #: bookwyrm/templates/notifications/items/remove.html:17
 #, python-format
 msgid "has been removed from your group \"%(group_name)s\""
@@ -3782,7 +3811,7 @@ msgstr[0] "Een nieuwe melding moet gemodereerd worden"
 msgstr[1] "%(display_count)s nieuwe meldingen moeten worden gemodereerd"
 
 #: bookwyrm/templates/notifications/items/status_preview.html:4
-#: bookwyrm/templates/snippets/status/content_status.html:73
+#: bookwyrm/templates/snippets/status/content_status.html:62
 msgid "Content warning"
 msgstr "Inhoudswaarschuwing"
 
@@ -4000,9 +4029,51 @@ msgstr "Bevestig uw wachtwoord om te beginnen met het instellen van de tweestaps
 msgid "Set up 2FA"
 msgstr "Tweestapsverificatie instellen"
 
+#: bookwyrm/templates/preferences/alias_user.html:4
+#: bookwyrm/templates/preferences/move_user.html:4
+#: bookwyrm/templates/preferences/move_user.html:7
+#: bookwyrm/templates/preferences/move_user.html:39
+msgid "Move Account"
+msgstr "Verhuis account"
+
+#: bookwyrm/templates/preferences/alias_user.html:7
+#: bookwyrm/templates/preferences/alias_user.html:34
+msgid "Create Alias"
+msgstr "Alias aanmaken"
+
+#: bookwyrm/templates/preferences/alias_user.html:12
+msgid "Add another account as an alias"
+msgstr "Een andere account als alias toevoegen"
+
+#: bookwyrm/templates/preferences/alias_user.html:16
+msgid "Marking another account as an alias is required if you want to move that account to this one."
+msgstr "Een andere account als alias markering is vereist als je die account naar deze wilt verhuizen."
+
+#: bookwyrm/templates/preferences/alias_user.html:19
+msgid "This is a reversable action and will not change the functionality of this account."
+msgstr "Deze actie kan ongedaan worden gemaakt en zal de functionaliteit van deze account niet wijzigen."
+
+#: bookwyrm/templates/preferences/alias_user.html:25
+msgid "Enter the username for the account you want to add as an alias e.g. user@example.com :"
+msgstr "Voer de gebruikersnaam in voor het account dat je wilt toevoegen als een alias, bijvoorbeeld user@example.com :"
+
+#: bookwyrm/templates/preferences/alias_user.html:30
+#: bookwyrm/templates/preferences/move_user.html:35
+msgid "Confirm your password:"
+msgstr "Bevestig wachtwoord:"
+
+#: bookwyrm/templates/preferences/alias_user.html:39
+#: bookwyrm/templates/preferences/layout.html:28
+msgid "Aliases"
+msgstr "Aliassen"
+
+#: bookwyrm/templates/preferences/alias_user.html:49
+msgid "Remove alias"
+msgstr "Alias verwijderen"
+
 #: bookwyrm/templates/preferences/blocks.html:4
 #: bookwyrm/templates/preferences/blocks.html:7
-#: bookwyrm/templates/preferences/layout.html:46
+#: bookwyrm/templates/preferences/layout.html:54
 msgid "Blocked Users"
 msgstr "Geblokkeerde gebruikers"
 
@@ -4032,7 +4103,7 @@ msgstr "Nieuw wachtwoord:"
 #: bookwyrm/templates/preferences/delete_user.html:4
 #: bookwyrm/templates/preferences/delete_user.html:7
 #: bookwyrm/templates/preferences/delete_user.html:40
-#: bookwyrm/templates/preferences/layout.html:28
+#: bookwyrm/templates/preferences/layout.html:36
 #: bookwyrm/templates/settings/users/delete_user_form.html:22
 msgid "Delete Account"
 msgstr "Account Verwijderen"
@@ -4154,18 +4225,47 @@ msgstr "Download bestand"
 msgid "Account"
 msgstr "Account"
 
-#: bookwyrm/templates/preferences/layout.html:31
+#: bookwyrm/templates/preferences/layout.html:32
+msgid "Move  Account"
+msgstr "Verhuis account"
+
+#: bookwyrm/templates/preferences/layout.html:39
 msgid "Data"
 msgstr "Gegevens"
 
-#: bookwyrm/templates/preferences/layout.html:39
+#: bookwyrm/templates/preferences/layout.html:47
 msgid "CSV export"
 msgstr "CSV export"
 
-#: bookwyrm/templates/preferences/layout.html:42
+#: bookwyrm/templates/preferences/layout.html:50
 msgid "Relationships"
 msgstr "Relaties"
 
+#: bookwyrm/templates/preferences/move_user.html:12
+msgid "Migrate account to another server"
+msgstr "Account overzetten naar een andere server"
+
+#: bookwyrm/templates/preferences/move_user.html:16
+msgid "Moving your account will notify all your followers and direct them to follow the new account."
+msgstr "Het verplaatsen van je account zal al je volgers op de hoogte stellen en doorsturen om het nieuwe account te volgen."
+
+#: bookwyrm/templates/preferences/move_user.html:19
+#, python-format
+msgid "\n"
+"                %(user)s will be marked as moved and will not be discoverable or usable unless you undo the move.\n"
+"                "
+msgstr "\n"
+"                %(user)s wordt gemarkeerd als verhuisd en zal niet vindbaar of bruikbaar zijn tenzij je de verhuizing ongedaan maakt.\n"
+"                "
+
+#: bookwyrm/templates/preferences/move_user.html:25
+msgid "Remember to add this user as an alias of the target account before you try to move."
+msgstr "Vergeet niet om deze gebruiker toe te voegen als een alias van het doelaccount voordat je probeert te verhuizen."
+
+#: bookwyrm/templates/preferences/move_user.html:30
+msgid "Enter the username for the account you want to move to e.g. user@example.com :"
+msgstr "Voer de gebruikersnaam in voor het account waar je naartoe wilt verhuizen, bijvoorbeeld user@example.com :"
+
 #: bookwyrm/templates/reading_progress/finish.html:5
 #, python-format
 msgid "Finish \"%(book_title)s\""
@@ -4574,8 +4674,8 @@ msgid "Streams"
 msgstr "Streams"
 
 #: bookwyrm/templates/settings/celery.html:32
-msgid "Broadcasts"
-msgstr "Broadcasts"
+msgid "Broadcast"
+msgstr "Uitzending"
 
 #: bookwyrm/templates/settings/celery.html:38
 msgid "Inbox"
@@ -4900,19 +5000,19 @@ msgstr "Instance:"
 
 #: bookwyrm/templates/settings/federation/edit_instance.html:52
 #: bookwyrm/templates/settings/federation/instance.html:46
-#: bookwyrm/templates/settings/users/user_info.html:113
+#: bookwyrm/templates/settings/users/user_info.html:119
 msgid "Status:"
 msgstr "Status:"
 
 #: bookwyrm/templates/settings/federation/edit_instance.html:66
 #: bookwyrm/templates/settings/federation/instance.html:40
-#: bookwyrm/templates/settings/users/user_info.html:107
+#: bookwyrm/templates/settings/users/user_info.html:113
 msgid "Software:"
 msgstr "Software:"
 
 #: bookwyrm/templates/settings/federation/edit_instance.html:76
 #: bookwyrm/templates/settings/federation/instance.html:43
-#: bookwyrm/templates/settings/users/user_info.html:110
+#: bookwyrm/templates/settings/users/user_info.html:116
 msgid "Version:"
 msgstr "Versie:"
 
@@ -4925,7 +5025,7 @@ msgid "Details"
 msgstr "Details"
 
 #: bookwyrm/templates/settings/federation/instance.html:53
-#: bookwyrm/templates/user/layout.html:69
+#: bookwyrm/templates/user/layout.html:84
 msgid "Activity"
 msgstr "Activiteit"
 
@@ -4939,7 +5039,7 @@ msgid "View all"
 msgstr "Alles bekijken"
 
 #: bookwyrm/templates/settings/federation/instance.html:62
-#: bookwyrm/templates/settings/users/user_info.html:60
+#: bookwyrm/templates/settings/users/user_info.html:66
 msgid "Reports:"
 msgstr "Meldingen:"
 
@@ -4956,7 +5056,7 @@ msgid "Blocked by us:"
 msgstr "Door ons geblokkeerd:"
 
 #: bookwyrm/templates/settings/federation/instance.html:90
-#: bookwyrm/templates/settings/users/user_info.html:117
+#: bookwyrm/templates/settings/users/user_info.html:123
 msgid "Notes"
 msgstr "Notities"
 
@@ -5676,17 +5776,22 @@ msgstr "Laatst actief"
 msgid "Remote instance"
 msgstr "Externe instance"
 
-#: bookwyrm/templates/settings/users/user_admin.html:86
+#: bookwyrm/templates/settings/users/user_admin.html:82
+#: bookwyrm/templates/settings/users/user_info.html:29
+msgid "Moved"
+msgstr "Verhuisd"
+
+#: bookwyrm/templates/settings/users/user_admin.html:93
 msgid "Deleted"
 msgstr "Verwijderd"
 
-#: bookwyrm/templates/settings/users/user_admin.html:92
-#: bookwyrm/templates/settings/users/user_info.html:32
+#: bookwyrm/templates/settings/users/user_admin.html:99
+#: bookwyrm/templates/settings/users/user_info.html:38
 msgid "Inactive"
 msgstr "Inactief"
 
-#: bookwyrm/templates/settings/users/user_admin.html:101
-#: bookwyrm/templates/settings/users/user_info.html:127
+#: bookwyrm/templates/settings/users/user_admin.html:108
+#: bookwyrm/templates/settings/users/user_info.html:133
 msgid "Not set"
 msgstr "Niet ingesteld"
 
@@ -5698,55 +5803,55 @@ msgstr "Gebruikersprofiel bekijken"
 msgid "Go to user admin"
 msgstr "Ga naar gebruikersbeheer"
 
-#: bookwyrm/templates/settings/users/user_info.html:40
+#: bookwyrm/templates/settings/users/user_info.html:46
 msgid "Local"
 msgstr "Lokaal"
 
-#: bookwyrm/templates/settings/users/user_info.html:42
+#: bookwyrm/templates/settings/users/user_info.html:48
 msgid "Remote"
 msgstr "Extern"
 
-#: bookwyrm/templates/settings/users/user_info.html:51
+#: bookwyrm/templates/settings/users/user_info.html:57
 msgid "User details"
 msgstr "Gebruikersdetails"
 
-#: bookwyrm/templates/settings/users/user_info.html:55
+#: bookwyrm/templates/settings/users/user_info.html:61
 msgid "Email:"
 msgstr "E-mail:"
 
-#: bookwyrm/templates/settings/users/user_info.html:65
+#: bookwyrm/templates/settings/users/user_info.html:71
 msgid "(View reports)"
 msgstr "(Bekijk meldingen)"
 
-#: bookwyrm/templates/settings/users/user_info.html:71
+#: bookwyrm/templates/settings/users/user_info.html:77
 msgid "Blocked by count:"
 msgstr "Aantal geblokkeerd:"
 
-#: bookwyrm/templates/settings/users/user_info.html:74
+#: bookwyrm/templates/settings/users/user_info.html:80
 msgid "Date added:"
 msgstr "Datum toegevoegd:"
 
-#: bookwyrm/templates/settings/users/user_info.html:77
+#: bookwyrm/templates/settings/users/user_info.html:83
 msgid "Last active date:"
 msgstr "Laatst actieve datum:"
 
-#: bookwyrm/templates/settings/users/user_info.html:80
+#: bookwyrm/templates/settings/users/user_info.html:86
 msgid "Manually approved followers:"
 msgstr "Handmatig goedgekeurde volgers:"
 
-#: bookwyrm/templates/settings/users/user_info.html:83
+#: bookwyrm/templates/settings/users/user_info.html:89
 msgid "Discoverable:"
 msgstr "Vindbaar:"
 
-#: bookwyrm/templates/settings/users/user_info.html:87
+#: bookwyrm/templates/settings/users/user_info.html:93
 msgid "Deactivation reason:"
 msgstr "Reden voor deactivatie:"
 
-#: bookwyrm/templates/settings/users/user_info.html:102
+#: bookwyrm/templates/settings/users/user_info.html:108
 msgid "Instance details"
 msgstr "Instance details"
 
-#: bookwyrm/templates/settings/users/user_info.html:124
+#: bookwyrm/templates/settings/users/user_info.html:130
 msgid "View instance"
 msgstr "Bekijk instance"
 
@@ -5883,7 +5988,7 @@ msgid "Need help?"
 msgstr "Hulp nodig?"
 
 #: bookwyrm/templates/shelf/create_shelf_form.html:5
-#: bookwyrm/templates/shelf/shelf.html:72
+#: bookwyrm/templates/shelf/shelf.html:87
 msgid "Create shelf"
 msgstr "Nieuwe boekenplank maken"
 
@@ -5891,58 +5996,66 @@ msgstr "Nieuwe boekenplank maken"
 msgid "Edit Shelf"
 msgstr "Bewerk boekenplank"
 
-#: bookwyrm/templates/shelf/shelf.html:24
+#: bookwyrm/templates/shelf/shelf.html:25
+msgid "You have have moved to"
+msgstr "Je bent verhuisd naar"
+
+#: bookwyrm/templates/shelf/shelf.html:28
+msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account."
+msgstr "Je kan deze verhuizing ongedaan maken om de volledige functionaliteit te herstellen, maar sommige volgers volgen dit account mogelijk al niet meer."
+
+#: bookwyrm/templates/shelf/shelf.html:39
 #: bookwyrm/templates/user/relationships/followers.html:18
 #: bookwyrm/templates/user/relationships/following.html:18
 msgid "User profile"
 msgstr "Gebruikersprofiel"
 
-#: bookwyrm/templates/shelf/shelf.html:39
+#: bookwyrm/templates/shelf/shelf.html:54
 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53
 msgid "All books"
 msgstr "Alle boeken"
 
-#: bookwyrm/templates/shelf/shelf.html:97
+#: bookwyrm/templates/shelf/shelf.html:112
 #, python-format
 msgid "%(formatted_count)s book"
 msgid_plural "%(formatted_count)s books"
 msgstr[0] "%(formatted_count)s boek"
 msgstr[1] "%(formatted_count)s boeken"
 
-#: bookwyrm/templates/shelf/shelf.html:104
+#: bookwyrm/templates/shelf/shelf.html:119
 #, python-format
 msgid "(showing %(start)s-%(end)s)"
 msgstr "(%(start)s-%(end)s getoond)"
 
-#: bookwyrm/templates/shelf/shelf.html:116
+#: bookwyrm/templates/shelf/shelf.html:131
 msgid "Edit shelf"
 msgstr "Bewerk boekenplank"
 
-#: bookwyrm/templates/shelf/shelf.html:124
+#: bookwyrm/templates/shelf/shelf.html:139
 msgid "Delete shelf"
 msgstr "Verwijder boekenplank"
 
-#: bookwyrm/templates/shelf/shelf.html:152
-#: bookwyrm/templates/shelf/shelf.html:178
+#: bookwyrm/templates/shelf/shelf.html:167
+#: bookwyrm/templates/shelf/shelf.html:193
 msgid "Shelved"
 msgstr "Op boekenplank gezet"
 
-#: bookwyrm/templates/shelf/shelf.html:153
-#: bookwyrm/templates/shelf/shelf.html:181
+#: bookwyrm/templates/shelf/shelf.html:168
+#: bookwyrm/templates/shelf/shelf.html:196
 msgid "Started"
 msgstr "Begonnen"
 
-#: bookwyrm/templates/shelf/shelf.html:154
-#: bookwyrm/templates/shelf/shelf.html:184
+#: bookwyrm/templates/shelf/shelf.html:169
+#: bookwyrm/templates/shelf/shelf.html:199
 msgid "Finished"
 msgstr "Uitgelezen"
 
-#: bookwyrm/templates/shelf/shelf.html:154
-#: bookwyrm/templates/shelf/shelf.html:184
+#: bookwyrm/templates/shelf/shelf.html:169
+#: bookwyrm/templates/shelf/shelf.html:199
 msgid "Until"
 msgstr "Tot"
 
-#: bookwyrm/templates/shelf/shelf.html:210
+#: bookwyrm/templates/shelf/shelf.html:225
 msgid "This shelf is empty."
 msgstr "Deze boekenplank is leeg."
 
@@ -6248,6 +6361,10 @@ msgstr "Je hebt %(read_count)s van %(goal_count)s boeken%(read_count)s of %(goal_count)s books."
 msgstr "%(username)s heeft %(read_count)s van %(goal_count)s boeken gelezen."
 
+#: bookwyrm/templates/snippets/move_user_buttons.html:10
+msgid "Follow at new account"
+msgstr "Volg op nieuwe account"
+
 #: bookwyrm/templates/snippets/page_text.html:8
 #, python-format
 msgid "page %(page)s of %(total_pages)s"
@@ -6389,35 +6506,35 @@ msgstr "Stop met lezen"
 msgid "Finish reading"
 msgstr "Uitgelezen"
 
-#: bookwyrm/templates/snippets/status/content_status.html:80
+#: bookwyrm/templates/snippets/status/content_status.html:69
 msgid "Show status"
 msgstr "Toon status"
 
-#: bookwyrm/templates/snippets/status/content_status.html:102
+#: bookwyrm/templates/snippets/status/content_status.html:91
 #, python-format
 msgid "(Page %(page)s"
 msgstr "(Pagina %(page)s"
 
-#: bookwyrm/templates/snippets/status/content_status.html:102
+#: bookwyrm/templates/snippets/status/content_status.html:91
 #, python-format
 msgid "%(endpage)s"
 msgstr "%(endpage)s"
 
-#: bookwyrm/templates/snippets/status/content_status.html:104
+#: bookwyrm/templates/snippets/status/content_status.html:93
 #, python-format
 msgid "(%(percent)s%%"
 msgstr "(%(percent)s%%"
 
-#: bookwyrm/templates/snippets/status/content_status.html:104
+#: bookwyrm/templates/snippets/status/content_status.html:93
 #, python-format
 msgid " - %(endpercent)s%%"
 msgstr " - %(endpercent)s%%"
 
-#: bookwyrm/templates/snippets/status/content_status.html:127
+#: bookwyrm/templates/snippets/status/content_status.html:116
 msgid "Open image in new window"
 msgstr "Afbeelding in nieuw venster openen"
 
-#: bookwyrm/templates/snippets/status/content_status.html:148
+#: bookwyrm/templates/snippets/status/content_status.html:137
 msgid "Hide status"
 msgstr "Status verbergen"
 
@@ -6609,10 +6726,14 @@ msgid "Groups: %(username)s"
 msgstr "Groepen: %(username)s"
 
 #: bookwyrm/templates/user/layout.html:50
+msgid "has moved to"
+msgstr "is verhuisd naar"
+
+#: bookwyrm/templates/user/layout.html:64
 msgid "Follow Requests"
 msgstr "Volgverzoeken"
 
-#: bookwyrm/templates/user/layout.html:73
+#: bookwyrm/templates/user/layout.html:88
 #: bookwyrm/templates/user/reviews_comments.html:6
 #: bookwyrm/templates/user/reviews_comments.html:12
 msgid "Reviews and Comments"
@@ -6627,6 +6748,12 @@ msgstr "Lijsten: %(username)s"
 msgid "Create list"
 msgstr "Lijst aanmaken"
 
+#: bookwyrm/templates/user/moved.html:25
+#: bookwyrm/templates/user/user_preview.html:22
+#, python-format
+msgid "Joined %(date)s"
+msgstr "Lid geworden %(date)s"
+
 #: bookwyrm/templates/user/relationships/followers.html:31
 #, python-format
 msgid "%(username)s has no followers"
@@ -6698,11 +6825,6 @@ msgstr "Alleen reacties"
 msgid "No activities yet!"
 msgstr "Nog geen activiteiten!"
 
-#: bookwyrm/templates/user/user_preview.html:22
-#, python-format
-msgid "Joined %(date)s"
-msgstr "Lid geworden %(date)s"
-
 #: bookwyrm/templates/user/user_preview.html:26
 #, python-format
 msgid "%(display_count)s follower"
@@ -6730,10 +6852,6 @@ msgstr "Geen volgers die jij volgt"
 msgid "View profile and more"
 msgstr "Bekijk profiel en meer"
 
-#: bookwyrm/templates/user_menu.html:82
-msgid "Log out"
-msgstr "Uitloggen"
-
 #: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:28
 msgid "File exceeds maximum size: 10MB"
 msgstr "Het bestand overschrijdt de maximale grootte: 10MB"
@@ -6750,7 +6868,7 @@ msgid_plural "%(num)d books - by %(user)s"
 msgstr[0] "%(num)d boek - van %(user)s"
 msgstr[1] "%(num)d boeken - van %(user)s"
 
-#: bookwyrm/templatetags/utilities.py:39
+#: bookwyrm/templatetags/utilities.py:48
 #, python-format
 msgid "%(title)s: %(subtitle)s"
 msgstr "%(title)s: %(subtitle)s"
diff --git a/locale/no_NO/LC_MESSAGES/django.mo b/locale/no_NO/LC_MESSAGES/django.mo
index f2038692fe9d143a4c320cb0acdf23d3a47c94f5..ed03ba8c043a6f944b437ff285212d5c51d40754 100644
GIT binary patch
delta 25561
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
CF4zG8

delta 25398
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

diff --git a/locale/no_NO/LC_MESSAGES/django.po b/locale/no_NO/LC_MESSAGES/django.po
index 3c125d8aa..7fb235df5 100644
--- a/locale/no_NO/LC_MESSAGES/django.po
+++ b/locale/no_NO/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bookwyrm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-10-02 16:40+0000\n"
-"PO-Revision-Date: 2023-10-09 19:52\n"
+"POT-Creation-Date: 2023-11-02 21:32+0000\n"
+"PO-Revision-Date: 2023-11-04 20:12\n"
 "Last-Translator: Mouse Reeve \n"
 "Language-Team: Norwegian\n"
 "Language: no\n"
@@ -42,15 +42,15 @@ msgstr "{i} ganger"
 msgid "Unlimited"
 msgstr "Ubegrenset"
 
-#: bookwyrm/forms/edit_user.py:88
+#: bookwyrm/forms/edit_user.py:104
 msgid "Incorrect password"
 msgstr "Feil passord"
 
-#: bookwyrm/forms/edit_user.py:95 bookwyrm/forms/landing.py:90
+#: bookwyrm/forms/edit_user.py:111 bookwyrm/forms/landing.py:90
 msgid "Password does not match"
 msgstr "Passordet samsvarer ikke"
 
-#: bookwyrm/forms/edit_user.py:118
+#: bookwyrm/forms/edit_user.py:134
 msgid "Incorrect Password"
 msgstr "Feil passord"
 
@@ -102,8 +102,8 @@ msgstr "Liste rekkefølge"
 msgid "Book Title"
 msgstr "Boktittel"
 
-#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156
-#: bookwyrm/templates/shelf/shelf.html:188
+#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171
+#: bookwyrm/templates/shelf/shelf.html:203
 #: bookwyrm/templates/snippets/create_status/review.html:32
 msgid "Rating"
 msgstr "Vurdering"
@@ -145,7 +145,7 @@ msgstr "Fare"
 msgid "Automatically generated report"
 msgstr "Automatisk generert rapport"
 
-#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:47
+#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:48
 #: bookwyrm/models/link.py:72 bookwyrm/templates/import/import_status.html:214
 #: bookwyrm/templates/settings/link_domains/link_domains.html:19
 msgid "Pending"
@@ -171,23 +171,23 @@ msgstr "Moderatør sletting"
 msgid "Domain block"
 msgstr "Domeneblokkering"
 
-#: bookwyrm/models/book.py:283
+#: bookwyrm/models/book.py:282
 msgid "Audiobook"
 msgstr "Lydbok"
 
-#: bookwyrm/models/book.py:284
+#: bookwyrm/models/book.py:283
 msgid "eBook"
 msgstr "e-bok"
 
-#: bookwyrm/models/book.py:285
+#: bookwyrm/models/book.py:284
 msgid "Graphic novel"
 msgstr "Tegneserie"
 
-#: bookwyrm/models/book.py:286
+#: bookwyrm/models/book.py:285
 msgid "Hardcover"
 msgstr "Innbundet"
 
-#: bookwyrm/models/book.py:287
+#: bookwyrm/models/book.py:286
 msgid "Paperback"
 msgstr "Paperback"
 
@@ -205,26 +205,26 @@ msgstr "Føderert"
 msgid "Blocked"
 msgstr "Blokkert"
 
-#: bookwyrm/models/fields.py:29
+#: bookwyrm/models/fields.py:30
 #, python-format
 msgid "%(value)s is not a valid remote_id"
 msgstr "%(value)s er en ugyldig remote_id"
 
-#: bookwyrm/models/fields.py:38 bookwyrm/models/fields.py:47
+#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48
 #, python-format
 msgid "%(value)s is not a valid username"
 msgstr "%(value)s er et ugyldig brukernavn"
 
-#: bookwyrm/models/fields.py:192 bookwyrm/templates/layout.html:128
+#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129
 #: bookwyrm/templates/ostatus/error.html:29
 msgid "username"
 msgstr "brukernavn"
 
-#: bookwyrm/models/fields.py:197
+#: bookwyrm/models/fields.py:198
 msgid "A user with that username already exists."
 msgstr "En bruker med det brukernavnet eksisterer allerede."
 
-#: bookwyrm/models/fields.py:216
+#: bookwyrm/models/fields.py:217
 #: bookwyrm/templates/snippets/privacy-icons.html:3
 #: bookwyrm/templates/snippets/privacy-icons.html:4
 #: bookwyrm/templates/snippets/privacy_select.html:11
@@ -232,7 +232,7 @@ msgstr "En bruker med det brukernavnet eksisterer allerede."
 msgid "Public"
 msgstr "Offentlig"
 
-#: bookwyrm/models/fields.py:217
+#: bookwyrm/models/fields.py:218
 #: bookwyrm/templates/snippets/privacy-icons.html:7
 #: bookwyrm/templates/snippets/privacy-icons.html:8
 #: bookwyrm/templates/snippets/privacy_select.html:14
@@ -240,7 +240,7 @@ msgstr "Offentlig"
 msgid "Unlisted"
 msgstr "Uoppført"
 
-#: bookwyrm/models/fields.py:218
+#: bookwyrm/models/fields.py:219
 #: bookwyrm/templates/snippets/privacy_select.html:17
 #: bookwyrm/templates/user/relationships/followers.html:6
 #: bookwyrm/templates/user/relationships/followers.html:11
@@ -249,7 +249,7 @@ msgstr "Uoppført"
 msgid "Followers"
 msgstr "Følgere"
 
-#: bookwyrm/models/fields.py:219
+#: bookwyrm/models/fields.py:220
 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6
 #: bookwyrm/templates/snippets/privacy-icons.html:15
 #: bookwyrm/templates/snippets/privacy-icons.html:16
@@ -258,30 +258,30 @@ msgstr "Følgere"
 msgid "Private"
 msgstr "Privat"
 
-#: bookwyrm/models/import_job.py:48 bookwyrm/templates/import/import.html:174
+#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174
 #: bookwyrm/templates/settings/imports/imports.html:98
-#: bookwyrm/templates/settings/users/user_admin.html:81
-#: bookwyrm/templates/settings/users/user_info.html:28
+#: bookwyrm/templates/settings/users/user_admin.html:87
+#: bookwyrm/templates/settings/users/user_info.html:33
 msgid "Active"
 msgstr "Aktiv"
 
-#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:172
+#: bookwyrm/models/import_job.py:50 bookwyrm/templates/import/import.html:172
 msgid "Complete"
 msgstr "Ferdig"
 
-#: bookwyrm/models/import_job.py:50
+#: bookwyrm/models/import_job.py:51
 msgid "Stopped"
 msgstr "Stoppet"
 
-#: bookwyrm/models/import_job.py:83 bookwyrm/models/import_job.py:91
+#: bookwyrm/models/import_job.py:84 bookwyrm/models/import_job.py:92
 msgid "Import stopped"
 msgstr "Importering stoppet"
 
-#: bookwyrm/models/import_job.py:363 bookwyrm/models/import_job.py:388
+#: bookwyrm/models/import_job.py:356 bookwyrm/models/import_job.py:381
 msgid "Error loading book"
 msgstr "Feilet ved lasting av bok"
 
-#: bookwyrm/models/import_job.py:372
+#: bookwyrm/models/import_job.py:365
 msgid "Could not find a match for book"
 msgstr "Fant ikke den boka"
 
@@ -368,103 +368,103 @@ msgstr "Sitater"
 msgid "Everything else"
 msgstr "Andre ting"
 
-#: bookwyrm/settings.py:223
+#: bookwyrm/settings.py:230
 msgid "Home Timeline"
 msgstr "Lokal tidslinje"
 
-#: bookwyrm/settings.py:223
+#: bookwyrm/settings.py:230
 msgid "Home"
 msgstr "Hjem"
 
-#: bookwyrm/settings.py:224
+#: bookwyrm/settings.py:231
 msgid "Books Timeline"
 msgstr "Boktidslinja"
 
-#: bookwyrm/settings.py:224
+#: bookwyrm/settings.py:231
 #: bookwyrm/templates/guided_tour/user_profile.html:101
 #: bookwyrm/templates/search/layout.html:22
 #: bookwyrm/templates/search/layout.html:43
-#: bookwyrm/templates/user/layout.html:97
+#: bookwyrm/templates/user/layout.html:112
 msgid "Books"
 msgstr "Bøker"
 
-#: bookwyrm/settings.py:296
+#: bookwyrm/settings.py:303
 msgid "English"
 msgstr "English (Engelsk)"
 
-#: bookwyrm/settings.py:297
+#: bookwyrm/settings.py:304
 msgid "Català (Catalan)"
 msgstr "Català (katalansk)"
 
-#: bookwyrm/settings.py:298
+#: bookwyrm/settings.py:305
 msgid "Deutsch (German)"
 msgstr "Deutsch (Tysk)"
 
-#: bookwyrm/settings.py:299
+#: bookwyrm/settings.py:306
 msgid "Esperanto (Esperanto)"
 msgstr "Esperanto (Esperanto)"
 
-#: bookwyrm/settings.py:300
+#: bookwyrm/settings.py:307
 msgid "Español (Spanish)"
 msgstr "Español (Spansk)"
 
-#: bookwyrm/settings.py:301
+#: bookwyrm/settings.py:308
 msgid "Euskara (Basque)"
 msgstr "Euskara (Baskisk)"
 
-#: bookwyrm/settings.py:302
+#: bookwyrm/settings.py:309
 msgid "Galego (Galician)"
 msgstr "Galego (Gallisk)"
 
-#: bookwyrm/settings.py:303
+#: bookwyrm/settings.py:310
 msgid "Italiano (Italian)"
 msgstr "Italiano (Italiensk)"
 
-#: bookwyrm/settings.py:304
+#: bookwyrm/settings.py:311
 msgid "Suomi (Finnish)"
 msgstr "Suomi (finsk)"
 
-#: bookwyrm/settings.py:305
+#: bookwyrm/settings.py:312
 msgid "Français (French)"
 msgstr "Français (Fransk)"
 
-#: bookwyrm/settings.py:306
+#: bookwyrm/settings.py:313
 msgid "Lietuvių (Lithuanian)"
 msgstr "Lietuvių (Litauisk)"
 
-#: bookwyrm/settings.py:307
+#: bookwyrm/settings.py:314
 msgid "Nederlands (Dutch)"
 msgstr ""
 
-#: bookwyrm/settings.py:308
+#: bookwyrm/settings.py:315
 msgid "Norsk (Norwegian)"
 msgstr "Norsk (Norsk)"
 
-#: bookwyrm/settings.py:309
+#: bookwyrm/settings.py:316
 msgid "Polski (Polish)"
 msgstr "Polski (Polsk)"
 
-#: bookwyrm/settings.py:310
+#: bookwyrm/settings.py:317
 msgid "Português do Brasil (Brazilian Portuguese)"
 msgstr "Português - Brasil (Brasiliansk portugisisk)"
 
-#: bookwyrm/settings.py:311
+#: bookwyrm/settings.py:318
 msgid "Português Europeu (European Portuguese)"
 msgstr "Português Europeu (Europeisk Portugisisk)"
 
-#: bookwyrm/settings.py:312
+#: bookwyrm/settings.py:319
 msgid "Română (Romanian)"
 msgstr "Română (romansk)"
 
-#: bookwyrm/settings.py:313
+#: bookwyrm/settings.py:320
 msgid "Svenska (Swedish)"
 msgstr "Svenska (Svensk)"
 
-#: bookwyrm/settings.py:314
+#: bookwyrm/settings.py:321
 msgid "简体中文 (Simplified Chinese)"
 msgstr "简体中文 (Forenklet kinesisk)"
 
-#: bookwyrm/settings.py:315
+#: bookwyrm/settings.py:322
 msgid "繁體中文 (Traditional Chinese)"
 msgstr "繁體中文 (Tradisjonelt kinesisk)"
 
@@ -575,7 +575,7 @@ msgid "Software version:"
 msgstr "Programvareversjon:"
 
 #: bookwyrm/templates/about/layout.html:30
-#: bookwyrm/templates/embed-layout.html:33
+#: bookwyrm/templates/embed-layout.html:34
 #: bookwyrm/templates/snippets/footer.html:8
 #, python-format
 msgid "About %(site_name)s"
@@ -680,7 +680,7 @@ msgstr "Den korteste teksten lest i år…"
 #: bookwyrm/templates/annual_summary/layout.html:157
 #: bookwyrm/templates/annual_summary/layout.html:178
 #: bookwyrm/templates/annual_summary/layout.html:247
-#: bookwyrm/templates/book/book.html:63
+#: bookwyrm/templates/book/book.html:65
 #: bookwyrm/templates/discover/large-book.html:22
 #: bookwyrm/templates/landing/large-book.html:26
 #: bookwyrm/templates/landing/small-book.html:18
@@ -768,24 +768,24 @@ msgid "View ISNI record"
 msgstr "Vis ISNI -oppføring"
 
 #: bookwyrm/templates/author/author.html:95
-#: bookwyrm/templates/book/book.html:173
+#: bookwyrm/templates/book/book.html:175
 msgid "View on ISFDB"
 msgstr "Vis på ISFDB"
 
 #: bookwyrm/templates/author/author.html:100
 #: bookwyrm/templates/author/sync_modal.html:5
-#: bookwyrm/templates/book/book.html:140
+#: bookwyrm/templates/book/book.html:142
 #: bookwyrm/templates/book/sync_modal.html:5
 msgid "Load data"
 msgstr "Last inn data"
 
 #: bookwyrm/templates/author/author.html:104
-#: bookwyrm/templates/book/book.html:144
+#: bookwyrm/templates/book/book.html:146
 msgid "View on OpenLibrary"
 msgstr "Vis på OpenLibrary"
 
 #: bookwyrm/templates/author/author.html:119
-#: bookwyrm/templates/book/book.html:158
+#: bookwyrm/templates/book/book.html:160
 msgid "View on Inventaire"
 msgstr "Vis på Inventaire"
 
@@ -797,11 +797,7 @@ msgstr "Vis på LibraryThing"
 msgid "View on Goodreads"
 msgstr "Vis på Goodreads"
 
-#: bookwyrm/templates/author/author.html:151
-msgid "View ISFDB entry"
-msgstr "Vis ISFDB-oppføring"
-
-#: bookwyrm/templates/author/author.html:166
+#: bookwyrm/templates/author/author.html:158
 #, python-format
 msgid "Books by %(name)s"
 msgstr "Bøker av %(name)s"
@@ -959,19 +955,19 @@ msgstr "Bekreft"
 msgid "Unable to connect to remote source."
 msgstr "Kunne ikke koble til ekstern kilde."
 
-#: bookwyrm/templates/book/book.html:71 bookwyrm/templates/book/book.html:72
+#: bookwyrm/templates/book/book.html:73 bookwyrm/templates/book/book.html:74
 msgid "Edit Book"
 msgstr "Rediger bok"
 
-#: bookwyrm/templates/book/book.html:97 bookwyrm/templates/book/book.html:100
+#: bookwyrm/templates/book/book.html:99 bookwyrm/templates/book/book.html:102
 msgid "Click to add cover"
 msgstr "Klikk for å legge til omslag"
 
-#: bookwyrm/templates/book/book.html:106
+#: bookwyrm/templates/book/book.html:108
 msgid "Failed to load cover"
 msgstr "Klarte ikke å laste inn omslag"
 
-#: bookwyrm/templates/book/book.html:117
+#: bookwyrm/templates/book/book.html:119
 msgid "Click to enlarge"
 msgstr "Klikk for å forstørre"
 
@@ -1046,13 +1042,13 @@ msgstr "Steder"
 #: bookwyrm/templates/guided_tour/lists.html:14
 #: bookwyrm/templates/guided_tour/user_books.html:102
 #: bookwyrm/templates/guided_tour/user_profile.html:78
-#: bookwyrm/templates/layout.html:90 bookwyrm/templates/lists/curate.html:8
+#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8
 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5
 #: bookwyrm/templates/lists/lists.html:12
 #: bookwyrm/templates/search/layout.html:26
 #: bookwyrm/templates/search/layout.html:51
 #: bookwyrm/templates/settings/celery.html:77
-#: bookwyrm/templates/user/layout.html:91 bookwyrm/templates/user/lists.html:6
+#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6
 msgid "Lists"
 msgstr "Lister"
 
@@ -1117,8 +1113,8 @@ msgstr "Last opp omslag:"
 
 #: bookwyrm/templates/book/cover_add_modal.html:23
 #: bookwyrm/templates/book/edit/edit_book_form.html:250
-msgid "Load cover from url:"
-msgstr "Last bilde av omslag fra nettadresse:"
+msgid "Load cover from URL:"
+msgstr "Last inn omslag fra hyperlenke:"
 
 #: bookwyrm/templates/book/cover_show_modal.html:6
 msgid "Book cover preview"
@@ -1328,7 +1324,7 @@ msgid "Add Another Author"
 msgstr "Legg til enda en forfatter"
 
 #: bookwyrm/templates/book/edit/edit_book_form.html:231
-#: bookwyrm/templates/shelf/shelf.html:147
+#: bookwyrm/templates/shelf/shelf.html:162
 msgid "Cover"
 msgstr "Omslag"
 
@@ -1529,22 +1525,22 @@ msgstr "%(pages)s sider"
 msgid "%(languages)s language"
 msgstr "%(languages)s språk"
 
-#: bookwyrm/templates/book/publisher_info.html:65
+#: bookwyrm/templates/book/publisher_info.html:63
 #, python-format
 msgid "Published %(date)s by %(publisher)s."
 msgstr "Utgitt %(date)s av %(publisher)s."
 
+#: bookwyrm/templates/book/publisher_info.html:65
+#, python-format
+msgid "Published by %(publisher)s."
+msgstr "Utgitt av %(publisher)s."
+
 #: bookwyrm/templates/book/publisher_info.html:67
 #, python-format
 msgid "Published %(date)s"
 msgstr "Utgitt %(date)s"
 
-#: bookwyrm/templates/book/publisher_info.html:69
-#, python-format
-msgid "Published by %(publisher)s."
-msgstr "Utgitt av %(publisher)s."
-
-#: bookwyrm/templates/book/rating.html:13
+#: bookwyrm/templates/book/rating.html:19
 msgid "rated it"
 msgstr "vurderte den"
 
@@ -1552,12 +1548,12 @@ msgstr "vurderte den"
 msgid "Series by"
 msgstr "En serie av"
 
-#: bookwyrm/templates/book/series.html:27
+#: bookwyrm/templates/book/series.html:28
 #, python-format
 msgid "Book %(series_number)s"
 msgstr "Bok %(series_number)s"
 
-#: bookwyrm/templates/book/series.html:27
+#: bookwyrm/templates/book/series.html:28
 msgid "Unsorted Book"
 msgstr "Usortert bok"
 
@@ -1587,7 +1583,7 @@ msgid "Sorry! We couldn't find that code."
 msgstr "Beklager, vi fant ikke den koden."
 
 #: bookwyrm/templates/confirm_email/confirm_email.html:19
-#: bookwyrm/templates/settings/users/user_info.html:92
+#: bookwyrm/templates/settings/users/user_info.html:98
 msgid "Confirmation code:"
 msgstr "Bekreftelseskode:"
 
@@ -1681,6 +1677,7 @@ msgstr "Foreslått"
 #: bookwyrm/templates/ostatus/subscribe.html:42
 #: bookwyrm/templates/ostatus/success.html:17
 #: bookwyrm/templates/ostatus/success.html:18
+#: bookwyrm/templates/user/moved.html:19 bookwyrm/templates/user/moved.html:20
 #: bookwyrm/templates/user/user_preview.html:16
 #: bookwyrm/templates/user/user_preview.html:17
 msgid "Locked account"
@@ -1755,7 +1752,7 @@ msgstr "%(username)s siterte You have moved your account to %(username)s"
+msgstr "Du har flyttet brukeren til  til %(username)s"
+
+#: bookwyrm/templates/moved.html:32
+msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account."
+msgstr ""
+
+#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32
+msgid "Undo move"
+msgstr ""
+
+#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82
+msgid "Log out"
+msgstr "Logg ut"
+
 #: bookwyrm/templates/notifications/items/accept.html:18
 #, python-format
 msgid "%(related_user)s accepted your invitation to join group \"%(group_name)s\""
@@ -3744,6 +3763,16 @@ msgstr ""
 msgid "%(related_user)s mentioned you in a status"
 msgstr ""
 
+#: bookwyrm/templates/notifications/items/move_user.html:18
+#, python-format
+msgid "%(related_user)s has moved to %(username)s"
+msgstr ""
+
+#: bookwyrm/templates/notifications/items/move_user.html:25
+#, python-format
+msgid "%(related_user)s has undone their move"
+msgstr ""
+
 #: bookwyrm/templates/notifications/items/remove.html:17
 #, python-format
 msgid "has been removed from your group \"%(group_name)s\""
@@ -3782,7 +3811,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: bookwyrm/templates/notifications/items/status_preview.html:4
-#: bookwyrm/templates/snippets/status/content_status.html:73
+#: bookwyrm/templates/snippets/status/content_status.html:62
 msgid "Content warning"
 msgstr "Varsel om følsomt innhold"
 
@@ -4000,9 +4029,51 @@ msgstr ""
 msgid "Set up 2FA"
 msgstr "Sett opp 2FA"
 
+#: bookwyrm/templates/preferences/alias_user.html:4
+#: bookwyrm/templates/preferences/move_user.html:4
+#: bookwyrm/templates/preferences/move_user.html:7
+#: bookwyrm/templates/preferences/move_user.html:39
+msgid "Move Account"
+msgstr ""
+
+#: bookwyrm/templates/preferences/alias_user.html:7
+#: bookwyrm/templates/preferences/alias_user.html:34
+msgid "Create Alias"
+msgstr ""
+
+#: bookwyrm/templates/preferences/alias_user.html:12
+msgid "Add another account as an alias"
+msgstr ""
+
+#: bookwyrm/templates/preferences/alias_user.html:16
+msgid "Marking another account as an alias is required if you want to move that account to this one."
+msgstr ""
+
+#: bookwyrm/templates/preferences/alias_user.html:19
+msgid "This is a reversable action and will not change the functionality of this account."
+msgstr ""
+
+#: bookwyrm/templates/preferences/alias_user.html:25
+msgid "Enter the username for the account you want to add as an alias e.g. user@example.com :"
+msgstr ""
+
+#: bookwyrm/templates/preferences/alias_user.html:30
+#: bookwyrm/templates/preferences/move_user.html:35
+msgid "Confirm your password:"
+msgstr ""
+
+#: bookwyrm/templates/preferences/alias_user.html:39
+#: bookwyrm/templates/preferences/layout.html:28
+msgid "Aliases"
+msgstr ""
+
+#: bookwyrm/templates/preferences/alias_user.html:49
+msgid "Remove alias"
+msgstr ""
+
 #: bookwyrm/templates/preferences/blocks.html:4
 #: bookwyrm/templates/preferences/blocks.html:7
-#: bookwyrm/templates/preferences/layout.html:46
+#: bookwyrm/templates/preferences/layout.html:54
 msgid "Blocked Users"
 msgstr "Blokkerte brukere"
 
@@ -4032,7 +4103,7 @@ msgstr "Nytt passord:"
 #: bookwyrm/templates/preferences/delete_user.html:4
 #: bookwyrm/templates/preferences/delete_user.html:7
 #: bookwyrm/templates/preferences/delete_user.html:40
-#: bookwyrm/templates/preferences/layout.html:28
+#: bookwyrm/templates/preferences/layout.html:36
 #: bookwyrm/templates/settings/users/delete_user_form.html:22
 msgid "Delete Account"
 msgstr "Slett konto"
@@ -4154,18 +4225,45 @@ msgstr "Last ned fil"
 msgid "Account"
 msgstr "Konto"
 
-#: bookwyrm/templates/preferences/layout.html:31
+#: bookwyrm/templates/preferences/layout.html:32
+msgid "Move  Account"
+msgstr ""
+
+#: bookwyrm/templates/preferences/layout.html:39
 msgid "Data"
 msgstr "Data"
 
-#: bookwyrm/templates/preferences/layout.html:39
+#: bookwyrm/templates/preferences/layout.html:47
 msgid "CSV export"
 msgstr "CSV-eksport"
 
-#: bookwyrm/templates/preferences/layout.html:42
+#: bookwyrm/templates/preferences/layout.html:50
 msgid "Relationships"
 msgstr "Relasjoner"
 
+#: bookwyrm/templates/preferences/move_user.html:12
+msgid "Migrate account to another server"
+msgstr ""
+
+#: bookwyrm/templates/preferences/move_user.html:16
+msgid "Moving your account will notify all your followers and direct them to follow the new account."
+msgstr ""
+
+#: bookwyrm/templates/preferences/move_user.html:19
+#, python-format
+msgid "\n"
+"                %(user)s will be marked as moved and will not be discoverable or usable unless you undo the move.\n"
+"                "
+msgstr ""
+
+#: bookwyrm/templates/preferences/move_user.html:25
+msgid "Remember to add this user as an alias of the target account before you try to move."
+msgstr ""
+
+#: bookwyrm/templates/preferences/move_user.html:30
+msgid "Enter the username for the account you want to move to e.g. user@example.com :"
+msgstr ""
+
 #: bookwyrm/templates/reading_progress/finish.html:5
 #, python-format
 msgid "Finish \"%(book_title)s\""
@@ -4574,7 +4672,7 @@ msgid "Streams"
 msgstr ""
 
 #: bookwyrm/templates/settings/celery.html:32
-msgid "Broadcasts"
+msgid "Broadcast"
 msgstr ""
 
 #: bookwyrm/templates/settings/celery.html:38
@@ -4900,19 +4998,19 @@ msgstr "Instans:"
 
 #: bookwyrm/templates/settings/federation/edit_instance.html:52
 #: bookwyrm/templates/settings/federation/instance.html:46
-#: bookwyrm/templates/settings/users/user_info.html:113
+#: bookwyrm/templates/settings/users/user_info.html:119
 msgid "Status:"
 msgstr "Status:"
 
 #: bookwyrm/templates/settings/federation/edit_instance.html:66
 #: bookwyrm/templates/settings/federation/instance.html:40
-#: bookwyrm/templates/settings/users/user_info.html:107
+#: bookwyrm/templates/settings/users/user_info.html:113
 msgid "Software:"
 msgstr "Programvare:"
 
 #: bookwyrm/templates/settings/federation/edit_instance.html:76
 #: bookwyrm/templates/settings/federation/instance.html:43
-#: bookwyrm/templates/settings/users/user_info.html:110
+#: bookwyrm/templates/settings/users/user_info.html:116
 msgid "Version:"
 msgstr "Versjon:"
 
@@ -4925,7 +5023,7 @@ msgid "Details"
 msgstr "Detaljer"
 
 #: bookwyrm/templates/settings/federation/instance.html:53
-#: bookwyrm/templates/user/layout.html:69
+#: bookwyrm/templates/user/layout.html:84
 msgid "Activity"
 msgstr "Aktivitet"
 
@@ -4939,7 +5037,7 @@ msgid "View all"
 msgstr "Vis alle"
 
 #: bookwyrm/templates/settings/federation/instance.html:62
-#: bookwyrm/templates/settings/users/user_info.html:60
+#: bookwyrm/templates/settings/users/user_info.html:66
 msgid "Reports:"
 msgstr "Rapporter:"
 
@@ -4956,7 +5054,7 @@ msgid "Blocked by us:"
 msgstr "Blokkert av oss:"
 
 #: bookwyrm/templates/settings/federation/instance.html:90
-#: bookwyrm/templates/settings/users/user_info.html:117
+#: bookwyrm/templates/settings/users/user_info.html:123
 msgid "Notes"
 msgstr "Notater"
 
@@ -5676,17 +5774,22 @@ msgstr "Sist aktiv"
 msgid "Remote instance"
 msgstr "Ekstern instans"
 
-#: bookwyrm/templates/settings/users/user_admin.html:86
+#: bookwyrm/templates/settings/users/user_admin.html:82
+#: bookwyrm/templates/settings/users/user_info.html:29
+msgid "Moved"
+msgstr ""
+
+#: bookwyrm/templates/settings/users/user_admin.html:93
 msgid "Deleted"
 msgstr "Slettet"
 
-#: bookwyrm/templates/settings/users/user_admin.html:92
-#: bookwyrm/templates/settings/users/user_info.html:32
+#: bookwyrm/templates/settings/users/user_admin.html:99
+#: bookwyrm/templates/settings/users/user_info.html:38
 msgid "Inactive"
 msgstr "Inaktiv"
 
-#: bookwyrm/templates/settings/users/user_admin.html:101
-#: bookwyrm/templates/settings/users/user_info.html:127
+#: bookwyrm/templates/settings/users/user_admin.html:108
+#: bookwyrm/templates/settings/users/user_info.html:133
 msgid "Not set"
 msgstr "Ikke angitt"
 
@@ -5698,55 +5801,55 @@ msgstr "Vis brukerprofil"
 msgid "Go to user admin"
 msgstr "Gå til brukeradministrasjon"
 
-#: bookwyrm/templates/settings/users/user_info.html:40
+#: bookwyrm/templates/settings/users/user_info.html:46
 msgid "Local"
 msgstr "Lokal"
 
-#: bookwyrm/templates/settings/users/user_info.html:42
+#: bookwyrm/templates/settings/users/user_info.html:48
 msgid "Remote"
 msgstr "Ekstern"
 
-#: bookwyrm/templates/settings/users/user_info.html:51
+#: bookwyrm/templates/settings/users/user_info.html:57
 msgid "User details"
 msgstr "Brukerdetaljer"
 
-#: bookwyrm/templates/settings/users/user_info.html:55
+#: bookwyrm/templates/settings/users/user_info.html:61
 msgid "Email:"
 msgstr "E-post:"
 
-#: bookwyrm/templates/settings/users/user_info.html:65
+#: bookwyrm/templates/settings/users/user_info.html:71
 msgid "(View reports)"
 msgstr "(vis rapporter)"
 
-#: bookwyrm/templates/settings/users/user_info.html:71
+#: bookwyrm/templates/settings/users/user_info.html:77
 msgid "Blocked by count:"
 msgstr "Blokkert av:"
 
-#: bookwyrm/templates/settings/users/user_info.html:74
+#: bookwyrm/templates/settings/users/user_info.html:80
 msgid "Date added:"
 msgstr "Dato lagt til:"
 
-#: bookwyrm/templates/settings/users/user_info.html:77
+#: bookwyrm/templates/settings/users/user_info.html:83
 msgid "Last active date:"
 msgstr "Sist aktiv dato:"
 
-#: bookwyrm/templates/settings/users/user_info.html:80
+#: bookwyrm/templates/settings/users/user_info.html:86
 msgid "Manually approved followers:"
 msgstr "Manuelt godkjente følgere:"
 
-#: bookwyrm/templates/settings/users/user_info.html:83
+#: bookwyrm/templates/settings/users/user_info.html:89
 msgid "Discoverable:"
 msgstr "Synlig:"
 
-#: bookwyrm/templates/settings/users/user_info.html:87
+#: bookwyrm/templates/settings/users/user_info.html:93
 msgid "Deactivation reason:"
 msgstr "Deaktiveringsgrunn:"
 
-#: bookwyrm/templates/settings/users/user_info.html:102
+#: bookwyrm/templates/settings/users/user_info.html:108
 msgid "Instance details"
 msgstr "Instansdetaljer"
 
-#: bookwyrm/templates/settings/users/user_info.html:124
+#: bookwyrm/templates/settings/users/user_info.html:130
 msgid "View instance"
 msgstr "Vis instans"
 
@@ -5883,7 +5986,7 @@ msgid "Need help?"
 msgstr ""
 
 #: bookwyrm/templates/shelf/create_shelf_form.html:5
-#: bookwyrm/templates/shelf/shelf.html:72
+#: bookwyrm/templates/shelf/shelf.html:87
 msgid "Create shelf"
 msgstr "Lag hylle"
 
@@ -5891,58 +5994,66 @@ msgstr "Lag hylle"
 msgid "Edit Shelf"
 msgstr "Rediger hylle"
 
-#: bookwyrm/templates/shelf/shelf.html:24
+#: bookwyrm/templates/shelf/shelf.html:25
+msgid "You have have moved to"
+msgstr ""
+
+#: bookwyrm/templates/shelf/shelf.html:28
+msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account."
+msgstr ""
+
+#: bookwyrm/templates/shelf/shelf.html:39
 #: bookwyrm/templates/user/relationships/followers.html:18
 #: bookwyrm/templates/user/relationships/following.html:18
 msgid "User profile"
 msgstr "Brukerprofil"
 
-#: bookwyrm/templates/shelf/shelf.html:39
+#: bookwyrm/templates/shelf/shelf.html:54
 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53
 msgid "All books"
 msgstr "Alle bøker"
 
-#: bookwyrm/templates/shelf/shelf.html:97
+#: bookwyrm/templates/shelf/shelf.html:112
 #, python-format
 msgid "%(formatted_count)s book"
 msgid_plural "%(formatted_count)s books"
 msgstr[0] "%(formatted_count)s bok"
 msgstr[1] "%(formatted_count)s bøker"
 
-#: bookwyrm/templates/shelf/shelf.html:104
+#: bookwyrm/templates/shelf/shelf.html:119
 #, python-format
 msgid "(showing %(start)s-%(end)s)"
 msgstr "(viser %(start)s-%(end)s)"
 
-#: bookwyrm/templates/shelf/shelf.html:116
+#: bookwyrm/templates/shelf/shelf.html:131
 msgid "Edit shelf"
 msgstr "Rediger hylle"
 
-#: bookwyrm/templates/shelf/shelf.html:124
+#: bookwyrm/templates/shelf/shelf.html:139
 msgid "Delete shelf"
 msgstr "Slett hylle"
 
-#: bookwyrm/templates/shelf/shelf.html:152
-#: bookwyrm/templates/shelf/shelf.html:178
+#: bookwyrm/templates/shelf/shelf.html:167
+#: bookwyrm/templates/shelf/shelf.html:193
 msgid "Shelved"
 msgstr "Lagt på hylla"
 
-#: bookwyrm/templates/shelf/shelf.html:153
-#: bookwyrm/templates/shelf/shelf.html:181
+#: bookwyrm/templates/shelf/shelf.html:168
+#: bookwyrm/templates/shelf/shelf.html:196
 msgid "Started"
 msgstr "Startet"
 
-#: bookwyrm/templates/shelf/shelf.html:154
-#: bookwyrm/templates/shelf/shelf.html:184
+#: bookwyrm/templates/shelf/shelf.html:169
+#: bookwyrm/templates/shelf/shelf.html:199
 msgid "Finished"
 msgstr "Fullført"
 
-#: bookwyrm/templates/shelf/shelf.html:154
-#: bookwyrm/templates/shelf/shelf.html:184
+#: bookwyrm/templates/shelf/shelf.html:169
+#: bookwyrm/templates/shelf/shelf.html:199
 msgid "Until"
 msgstr ""
 
-#: bookwyrm/templates/shelf/shelf.html:210
+#: bookwyrm/templates/shelf/shelf.html:225
 msgid "This shelf is empty."
 msgstr "Denne hylla er tom."
 
@@ -6248,6 +6359,10 @@ msgstr "Du har lest %(read_count)s av %(goal_count)s bøker
 msgid "%(username)s has read %(read_count)s of %(goal_count)s books."
 msgstr "%(username)s har lest %(read_count)s av %(goal_count)s bøker."
 
+#: bookwyrm/templates/snippets/move_user_buttons.html:10
+msgid "Follow at new account"
+msgstr ""
+
 #: bookwyrm/templates/snippets/page_text.html:8
 #, python-format
 msgid "page %(page)s of %(total_pages)s"
@@ -6389,35 +6504,35 @@ msgstr "Slutt å lese"
 msgid "Finish reading"
 msgstr "Fullfør lesing"
 
-#: bookwyrm/templates/snippets/status/content_status.html:80
+#: bookwyrm/templates/snippets/status/content_status.html:69
 msgid "Show status"
 msgstr "Vis status"
 
-#: bookwyrm/templates/snippets/status/content_status.html:102
+#: bookwyrm/templates/snippets/status/content_status.html:91
 #, python-format
 msgid "(Page %(page)s"
 msgstr ""
 
-#: bookwyrm/templates/snippets/status/content_status.html:102
+#: bookwyrm/templates/snippets/status/content_status.html:91
 #, python-format
 msgid "%(endpage)s"
 msgstr "%(endpage)s"
 
-#: bookwyrm/templates/snippets/status/content_status.html:104
+#: bookwyrm/templates/snippets/status/content_status.html:93
 #, python-format
 msgid "(%(percent)s%%"
 msgstr "(%(percent)s%%"
 
-#: bookwyrm/templates/snippets/status/content_status.html:104
+#: bookwyrm/templates/snippets/status/content_status.html:93
 #, python-format
 msgid " - %(endpercent)s%%"
 msgstr " - %(endpercent)s%%"
 
-#: bookwyrm/templates/snippets/status/content_status.html:127
+#: bookwyrm/templates/snippets/status/content_status.html:116
 msgid "Open image in new window"
 msgstr "Åpne bilde i nytt vindu"
 
-#: bookwyrm/templates/snippets/status/content_status.html:148
+#: bookwyrm/templates/snippets/status/content_status.html:137
 msgid "Hide status"
 msgstr "Skjul status"
 
@@ -6609,10 +6724,14 @@ msgid "Groups: %(username)s"
 msgstr "Grupper: %(username)s"
 
 #: bookwyrm/templates/user/layout.html:50
+msgid "has moved to"
+msgstr ""
+
+#: bookwyrm/templates/user/layout.html:64
 msgid "Follow Requests"
 msgstr "Følgeforespørsler"
 
-#: bookwyrm/templates/user/layout.html:73
+#: bookwyrm/templates/user/layout.html:88
 #: bookwyrm/templates/user/reviews_comments.html:6
 #: bookwyrm/templates/user/reviews_comments.html:12
 msgid "Reviews and Comments"
@@ -6627,6 +6746,12 @@ msgstr "Lister: %(username)s"
 msgid "Create list"
 msgstr "Opprett liste"
 
+#: bookwyrm/templates/user/moved.html:25
+#: bookwyrm/templates/user/user_preview.html:22
+#, python-format
+msgid "Joined %(date)s"
+msgstr "Ble med %(date)s"
+
 #: bookwyrm/templates/user/relationships/followers.html:31
 #, python-format
 msgid "%(username)s has no followers"
@@ -6698,11 +6823,6 @@ msgstr "Kun kommentarer"
 msgid "No activities yet!"
 msgstr "Ingen aktivitet enda!"
 
-#: bookwyrm/templates/user/user_preview.html:22
-#, python-format
-msgid "Joined %(date)s"
-msgstr "Ble med %(date)s"
-
 #: bookwyrm/templates/user/user_preview.html:26
 #, python-format
 msgid "%(display_count)s follower"
@@ -6730,10 +6850,6 @@ msgstr "Ingen følgere du følger"
 msgid "View profile and more"
 msgstr "Vis profil og mer"
 
-#: bookwyrm/templates/user_menu.html:82
-msgid "Log out"
-msgstr "Logg ut"
-
 #: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:28
 msgid "File exceeds maximum size: 10MB"
 msgstr "Filen overskrider maksimal størrelse: 10MB"
@@ -6750,7 +6866,7 @@ msgid_plural "%(num)d books - by %(user)s"
 msgstr[0] ""
 msgstr[1] ""
 
-#: bookwyrm/templatetags/utilities.py:39
+#: bookwyrm/templatetags/utilities.py:48
 #, python-format
 msgid "%(title)s: %(subtitle)s"
 msgstr "%(title)s: %(subtitle)s"
diff --git a/locale/pl_PL/LC_MESSAGES/django.mo b/locale/pl_PL/LC_MESSAGES/django.mo
index e7134182d0f9a041a402e9be1710fde4e2d93e13..d763756b16c37cc2fbb1d1e6f9c210ed9a7c206a 100644
GIT binary patch
delta 26149
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 delta 26205 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
  • ^qU0l*(RIP#v?Wc~Xv(a_t&|%}-E7`-4I{EIBXuMtc9D7p?~tR5 z4;SBcnRtC~mPSD(qbd24yD_Eo-C{fUw}gw@8kKN7cV}w;%I#0MC1px_yEY1TPZN7Y zZCw}0{oVw9|6NbsXIlD|{JGo(h+ne#2?*=DVsPH8M;jK2iErk9!hOoNpPz6t!X3#k zPhVB|0_CJ6QP))xwvrh@oY%AyYAX#QzMRhbljbW&dQ-wRY`i9k`U26~mfuNwamvr} zwrU()va(IBPwE3&DrJW~jqpS6U#Z!Gw83hc>pu5T(nomLH4gT~c@H-ZZ8pT#>Fq1Q zKj6`39A%<#BmR3Grd(|z`)&C?HiJ(!ry}=QJC>P*hmn`xTeeAvTZq)=wuUO~AzoMk zuH}Rua<8G6h16P)`+Pa(Kd+$zY2Q*NwQVC4;Z~%L9g%i;$_G?LE00-y1upf>1~If z$nQ(I9r=?8>za)b`aiMgPhxoz%3}rFfWH6yO(Vx`L*t0&v*EkglFAP-H&&qGzSzUN z_{-p^r-XEUur|jTlvqW}MMytFExy0_KJTB~7FE6#_hQPXB<&xYK7cgW>)$jaY9Bd^ z?ATO#2QBO(o=p+uanG@}>XN6c4fi;;M*I-@x_%klRU3*!4IH=49fwywIXL%1jD`qDMgrZ*uzjqd(^9bDorO*oV?e-hU9mfK6(YCBt{WwGH(gv*iFg|Zn4 zCn9~Ft@oVpJK9-BdOLmitmY1-u&#Avj^ZxPot6rDZKaRiEG>fE8pNU~nV8(0w#Gtg z-KB;8U)xT6TS zvQt!JFElLdNcz85P4ati^BXniHi@mgJzEC3lW8g7Kc$uuu0`zvlxjj=1xjus?c#sR zEF)i6Z}R8icetMNx;{~kpICiA=P3Tl)@w|eHN;m@cM55L5RUOU-BiYzXe$>aBiJ^6 z0DIZ=(JDl^Hu>3UNLLA*VS>K@o}>JCgqCpga`j#JZCksn)x14hg%pgWW&|l6ZR;vp zl{Bv%>Q>@e2p^`*VbXu{?rs(A79}*B8oyv$U+d;SnJ77*^cS{v7u)I)vS->fl|0Hl z=|AxmguB_YE9fa1;it4+-KIUng2elncva^L6<$*?6A2e-EEn+~)iPH$3br8qFVc1q zZ;D@YkL0e){TKO9NdMrS^HoT`KvL$BQo=OtefCq>+V$^$R9lZ*3=EllJdbjITw6^C>|4EOq zX-}#1hkiRdg2Ew00_+6B2=C%PM0yKbIEwI18j0raNnSJ3i*bL!oshH>+%eJD|P1L9NrcTPZV$`zGoAxU>FWzVi*?c;r>2!g1>U#;t2N_9DFj-lELk_<{6Q zHop|^A-^tpV@cnEZ&Z;>L;jigZSEU>9P#TEJWk?uD$P+Q@gTyV2{$18|E~)+Eu1pJ zgy+#>fI1*th44Vqb?qlj*C^se2>(icS(D^kB<*|RQ{#Jcw8`qWC3_q90FvI5)q-Mq zu{H5hgnN=#z*ap=+7QC)NvlFwS3_$;{DJ#>hLPQ-jU@jL@$9{@j_z=Pov|zTM_bdM z@Ik_7kzWiu-*VR^T#-7BxSJE-OMDi0G8(^xr@6l)@89b&fsuCnQwUEboRj<^l*=8T zZ#XkZcu7Q8V(zBiuI)mam7qveGC zMKGE&ElJb$inImZTkS&J=eDJ4r2I@cmfQijkdiH_b)EF2r2Wm^p70g!7u-KkraNij zwtjXjM)}O-wLx8{u@mhyCoP2gzgJch$?O~@BPW%2k`SK?UgAq}Eot$*bK2)j@FywJ z-ox!9+$S`)j&xn)u_SioPCnCVQSu4lt#hxwg4p#OD#7V27EHa{0Nt+k9Vf zy4hswE8dR0-$)y5yKhF_@udIb?HL\n" "Language-Team: Polish\n" "Language: pl\n" @@ -42,15 +42,15 @@ msgstr "{i} użyć" msgid "Unlimited" msgstr "Nieskończone" -#: bookwyrm/forms/edit_user.py:88 +#: bookwyrm/forms/edit_user.py:104 msgid "Incorrect password" msgstr "Niepoprawne hasło" -#: bookwyrm/forms/edit_user.py:95 bookwyrm/forms/landing.py:90 +#: bookwyrm/forms/edit_user.py:111 bookwyrm/forms/landing.py:90 msgid "Password does not match" msgstr "Hasła nie są identyczne" -#: bookwyrm/forms/edit_user.py:118 +#: bookwyrm/forms/edit_user.py:134 msgid "Incorrect Password" msgstr "Niepoprawne hasło" @@ -102,8 +102,8 @@ msgstr "Sortowanie" msgid "Book Title" msgstr "Tytuł książki" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 +#: bookwyrm/templates/shelf/shelf.html:203 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Ocena" @@ -145,7 +145,7 @@ msgstr "Zagrożenie" msgid "Automatically generated report" msgstr "Automatycznie wygenerowany raport" -#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:47 +#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:48 #: bookwyrm/models/link.py:72 bookwyrm/templates/import/import_status.html:214 #: bookwyrm/templates/settings/link_domains/link_domains.html:19 msgid "Pending" @@ -171,23 +171,23 @@ msgstr "Usunięte przez moderatora" msgid "Domain block" msgstr "Blokada domeny" -#: bookwyrm/models/book.py:283 +#: bookwyrm/models/book.py:282 msgid "Audiobook" msgstr "Audiobook" -#: bookwyrm/models/book.py:284 +#: bookwyrm/models/book.py:283 msgid "eBook" msgstr "eBook" -#: bookwyrm/models/book.py:285 +#: bookwyrm/models/book.py:284 msgid "Graphic novel" msgstr "Powieść ilustrowana" -#: bookwyrm/models/book.py:286 +#: bookwyrm/models/book.py:285 msgid "Hardcover" msgstr "Twarda oprawa" -#: bookwyrm/models/book.py:287 +#: bookwyrm/models/book.py:286 msgid "Paperback" msgstr "Miękka oprawa" @@ -205,26 +205,26 @@ msgstr "Federacja" msgid "Blocked" msgstr "Zablokowane" -#: bookwyrm/models/fields.py:29 +#: bookwyrm/models/fields.py:30 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s nie jest prawidłowym remote_id" -#: bookwyrm/models/fields.py:38 bookwyrm/models/fields.py:47 +#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s nie jest prawidłową nazwą użytkownika" -#: bookwyrm/models/fields.py:192 bookwyrm/templates/layout.html:128 +#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "nazwa użytkownika" -#: bookwyrm/models/fields.py:197 +#: bookwyrm/models/fields.py:198 msgid "A user with that username already exists." msgstr "Ta nazwa użytkownika jest już w użyciu." -#: bookwyrm/models/fields.py:216 +#: bookwyrm/models/fields.py:217 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "Ta nazwa użytkownika jest już w użyciu." msgid "Public" msgstr "Publiczne" -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:218 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Publiczne" msgid "Unlisted" msgstr "Niepubliczne" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:219 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Niepubliczne" msgid "Followers" msgstr "Obserwujący" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:220 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -258,30 +258,30 @@ msgstr "Obserwujący" msgid "Private" msgstr "Prywatne" -#: bookwyrm/models/import_job.py:48 bookwyrm/templates/import/import.html:174 +#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:81 -#: bookwyrm/templates/settings/users/user_info.html:28 +#: bookwyrm/templates/settings/users/user_admin.html:87 +#: bookwyrm/templates/settings/users/user_info.html:33 msgid "Active" msgstr "Aktywne" -#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:172 +#: bookwyrm/models/import_job.py:50 bookwyrm/templates/import/import.html:172 msgid "Complete" msgstr "Zakończone" -#: bookwyrm/models/import_job.py:50 +#: bookwyrm/models/import_job.py:51 msgid "Stopped" msgstr "Wstrzymane" -#: bookwyrm/models/import_job.py:83 bookwyrm/models/import_job.py:91 +#: bookwyrm/models/import_job.py:84 bookwyrm/models/import_job.py:92 msgid "Import stopped" msgstr "Import wstrzymany" -#: bookwyrm/models/import_job.py:363 bookwyrm/models/import_job.py:388 +#: bookwyrm/models/import_job.py:356 bookwyrm/models/import_job.py:381 msgid "Error loading book" msgstr "Błąd wczytywania książki" -#: bookwyrm/models/import_job.py:372 +#: bookwyrm/models/import_job.py:365 msgid "Could not find a match for book" msgstr "Nie znaleziono pasującej książki" @@ -368,103 +368,103 @@ msgstr "Cytaty" msgid "Everything else" msgstr "Wszystko inne" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home Timeline" msgstr "Strona główna" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home" msgstr "Start" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 msgid "Books Timeline" msgstr "Oś czasu książek" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:97 +#: bookwyrm/templates/user/layout.html:112 msgid "Books" msgstr "Książki" -#: bookwyrm/settings.py:296 +#: bookwyrm/settings.py:303 msgid "English" msgstr "English (Angielski)" -#: bookwyrm/settings.py:297 +#: bookwyrm/settings.py:304 msgid "Català (Catalan)" msgstr "Català (Kataloński)" -#: bookwyrm/settings.py:298 +#: bookwyrm/settings.py:305 msgid "Deutsch (German)" msgstr "Deutsch (Niemiecki)" -#: bookwyrm/settings.py:299 +#: bookwyrm/settings.py:306 msgid "Esperanto (Esperanto)" msgstr "Esperanto (Esperanto)" -#: bookwyrm/settings.py:300 +#: bookwyrm/settings.py:307 msgid "Español (Spanish)" msgstr "Español (Hiszpański)" -#: bookwyrm/settings.py:301 +#: bookwyrm/settings.py:308 msgid "Euskara (Basque)" msgstr "" -#: bookwyrm/settings.py:302 +#: bookwyrm/settings.py:309 msgid "Galego (Galician)" msgstr "Galego (Galicyjski)" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:310 msgid "Italiano (Italian)" msgstr "Italiano (Włoski)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:311 msgid "Suomi (Finnish)" msgstr "Suomi (Fiński)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:312 msgid "Français (French)" msgstr "Français (Francuski)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:313 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių (Litewski)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:314 msgid "Nederlands (Dutch)" msgstr "Holenderski" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:315 msgid "Norsk (Norwegian)" msgstr "Norsk (Norweski)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:316 msgid "Polski (Polish)" msgstr "Polski" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:317 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil (Brazylijski Portugalski)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:318 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (Portugalski)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:319 msgid "Română (Romanian)" msgstr "Română (Rumuński)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:320 msgid "Svenska (Swedish)" msgstr "Svenska (Szwedzki)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:321 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文 (Uproszczony chiński)" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:322 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (Tradycyjny chiński)" @@ -575,7 +575,7 @@ msgid "Software version:" msgstr "Wersja oprogramowania:" #: bookwyrm/templates/about/layout.html:30 -#: bookwyrm/templates/embed-layout.html:33 +#: bookwyrm/templates/embed-layout.html:34 #: bookwyrm/templates/snippets/footer.html:8 #, python-format msgid "About %(site_name)s" @@ -684,7 +684,7 @@ msgstr "Najkrócej wczytano się w…" #: bookwyrm/templates/annual_summary/layout.html:157 #: bookwyrm/templates/annual_summary/layout.html:178 #: bookwyrm/templates/annual_summary/layout.html:247 -#: bookwyrm/templates/book/book.html:63 +#: bookwyrm/templates/book/book.html:65 #: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/landing/large-book.html:26 #: bookwyrm/templates/landing/small-book.html:18 @@ -776,24 +776,24 @@ msgid "View ISNI record" msgstr "Zobacz wpis ISNI" #: bookwyrm/templates/author/author.html:95 -#: bookwyrm/templates/book/book.html:173 +#: bookwyrm/templates/book/book.html:175 msgid "View on ISFDB" msgstr "Zobacz na ISFDB" #: bookwyrm/templates/author/author.html:100 #: bookwyrm/templates/author/sync_modal.html:5 -#: bookwyrm/templates/book/book.html:140 +#: bookwyrm/templates/book/book.html:142 #: bookwyrm/templates/book/sync_modal.html:5 msgid "Load data" msgstr "Wczytaj dane" #: bookwyrm/templates/author/author.html:104 -#: bookwyrm/templates/book/book.html:144 +#: bookwyrm/templates/book/book.html:146 msgid "View on OpenLibrary" msgstr "Pokaż na OpenLibrary" #: bookwyrm/templates/author/author.html:119 -#: bookwyrm/templates/book/book.html:158 +#: bookwyrm/templates/book/book.html:160 msgid "View on Inventaire" msgstr "Pokaż na Inventaire" @@ -805,11 +805,7 @@ msgstr "Pokaż na LibraryThing" msgid "View on Goodreads" msgstr "Pokaż na Goodreads" -#: bookwyrm/templates/author/author.html:151 -msgid "View ISFDB entry" -msgstr "" - -#: bookwyrm/templates/author/author.html:166 +#: bookwyrm/templates/author/author.html:158 #, python-format msgid "Books by %(name)s" msgstr "Książki autorstwa %(name)s" @@ -967,19 +963,19 @@ msgstr "Zatwierdź" msgid "Unable to connect to remote source." msgstr "Błąd połączenia ze zdalnym źródłem." -#: bookwyrm/templates/book/book.html:71 bookwyrm/templates/book/book.html:72 +#: bookwyrm/templates/book/book.html:73 bookwyrm/templates/book/book.html:74 msgid "Edit Book" msgstr "Edytuj książkę" -#: bookwyrm/templates/book/book.html:97 bookwyrm/templates/book/book.html:100 +#: bookwyrm/templates/book/book.html:99 bookwyrm/templates/book/book.html:102 msgid "Click to add cover" msgstr "Naciśnij, aby dodać okładkę" -#: bookwyrm/templates/book/book.html:106 +#: bookwyrm/templates/book/book.html:108 msgid "Failed to load cover" msgstr "Błąd wczytywania okładki" -#: bookwyrm/templates/book/book.html:117 +#: bookwyrm/templates/book/book.html:119 msgid "Click to enlarge" msgstr "Naciśnij, aby powiększyć" @@ -1058,13 +1054,13 @@ msgstr "Miejsca" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:90 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:91 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Listy" @@ -1129,8 +1125,8 @@ msgstr "Prześlij okładkę:" #: bookwyrm/templates/book/cover_add_modal.html:23 #: bookwyrm/templates/book/edit/edit_book_form.html:250 -msgid "Load cover from url:" -msgstr "Wczytaj okładkę z adresu URL:" +msgid "Load cover from URL:" +msgstr "" #: bookwyrm/templates/book/cover_show_modal.html:6 msgid "Book cover preview" @@ -1340,7 +1336,7 @@ msgid "Add Another Author" msgstr "Dodaj kolejnego autora" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:147 +#: bookwyrm/templates/shelf/shelf.html:162 msgid "Cover" msgstr "Okładka" @@ -1541,22 +1537,22 @@ msgstr "%(pages)s stron" msgid "%(languages)s language" msgstr "Język %(languages)s" -#: bookwyrm/templates/book/publisher_info.html:65 +#: bookwyrm/templates/book/publisher_info.html:63 #, python-format msgid "Published %(date)s by %(publisher)s." msgstr "Opublikowane %(date)s przez %(publisher)s." +#: bookwyrm/templates/book/publisher_info.html:65 +#, python-format +msgid "Published by %(publisher)s." +msgstr "Opublikowane przez %(publisher)s." + #: bookwyrm/templates/book/publisher_info.html:67 #, python-format msgid "Published %(date)s" msgstr "Opublikowane %(date)s" -#: bookwyrm/templates/book/publisher_info.html:69 -#, python-format -msgid "Published by %(publisher)s." -msgstr "Opublikowane przez %(publisher)s." - -#: bookwyrm/templates/book/rating.html:13 +#: bookwyrm/templates/book/rating.html:19 msgid "rated it" msgstr "ocenia to" @@ -1564,12 +1560,12 @@ msgstr "ocenia to" msgid "Series by" msgstr "" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 #, python-format msgid "Book %(series_number)s" msgstr "Książka%(series_number)s" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 msgid "Unsorted Book" msgstr "" @@ -1599,7 +1595,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Nie udało nam się znaleźć tego kodu." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:92 +#: bookwyrm/templates/settings/users/user_info.html:98 msgid "Confirmation code:" msgstr "Kod potwierdzający:" @@ -1693,6 +1689,7 @@ msgstr "Polecane" #: bookwyrm/templates/ostatus/subscribe.html:42 #: bookwyrm/templates/ostatus/success.html:17 #: bookwyrm/templates/ostatus/success.html:18 +#: bookwyrm/templates/user/moved.html:19 bookwyrm/templates/user/moved.html:20 #: bookwyrm/templates/user/user_preview.html:16 #: bookwyrm/templates/user/user_preview.html:17 msgid "Locked account" @@ -1771,7 +1768,7 @@ msgstr "%(username)s cytuje You have moved your account to %(username)s" +msgstr "" + +#: bookwyrm/templates/moved.html:32 +msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +msgid "Undo move" +msgstr "" + +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +msgid "Log out" +msgstr "Wyloguj się" + #: bookwyrm/templates/notifications/items/accept.html:18 #, python-format msgid "%(related_user)s accepted your invitation to join group \"%(group_name)s\"" @@ -3776,6 +3795,16 @@ msgstr "%(related_user)s wspomina Cię w < msgid "%(related_user)s mentioned you in a status" msgstr "%(related_user)s wspomina Cię w statusie" +#: bookwyrm/templates/notifications/items/move_user.html:18 +#, python-format +msgid "%(related_user)s has moved to %(username)s" +msgstr "" + +#: bookwyrm/templates/notifications/items/move_user.html:25 +#, python-format +msgid "%(related_user)s has undone their move" +msgstr "" + #: bookwyrm/templates/notifications/items/remove.html:17 #, python-format msgid "has been removed from your group \"%(group_name)s\"" @@ -3816,7 +3845,7 @@ msgstr[2] "%(display_count)s nowych zgłoszeń wymaga u msgstr[3] "%(display_count)s nowych zgłoszeń wymaga uwagi" #: bookwyrm/templates/notifications/items/status_preview.html:4 -#: bookwyrm/templates/snippets/status/content_status.html:73 +#: bookwyrm/templates/snippets/status/content_status.html:62 msgid "Content warning" msgstr "" @@ -4034,9 +4063,51 @@ msgstr "Potwierdź hasło, aby skonfigurować 2FA." msgid "Set up 2FA" msgstr "Skonfiguruj 2FA" +#: bookwyrm/templates/preferences/alias_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:7 +#: bookwyrm/templates/preferences/move_user.html:39 +msgid "Move Account" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:7 +#: bookwyrm/templates/preferences/alias_user.html:34 +msgid "Create Alias" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:12 +msgid "Add another account as an alias" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:16 +msgid "Marking another account as an alias is required if you want to move that account to this one." +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:19 +msgid "This is a reversable action and will not change the functionality of this account." +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:25 +msgid "Enter the username for the account you want to add as an alias e.g. user@example.com :" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:30 +#: bookwyrm/templates/preferences/move_user.html:35 +msgid "Confirm your password:" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:39 +#: bookwyrm/templates/preferences/layout.html:28 +msgid "Aliases" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:49 +msgid "Remove alias" +msgstr "" + #: bookwyrm/templates/preferences/blocks.html:4 #: bookwyrm/templates/preferences/blocks.html:7 -#: bookwyrm/templates/preferences/layout.html:46 +#: bookwyrm/templates/preferences/layout.html:54 msgid "Blocked Users" msgstr "Zablokowani użytkownicy" @@ -4066,7 +4137,7 @@ msgstr "Nowe hasło:" #: bookwyrm/templates/preferences/delete_user.html:4 #: bookwyrm/templates/preferences/delete_user.html:7 #: bookwyrm/templates/preferences/delete_user.html:40 -#: bookwyrm/templates/preferences/layout.html:28 +#: bookwyrm/templates/preferences/layout.html:36 #: bookwyrm/templates/settings/users/delete_user_form.html:22 msgid "Delete Account" msgstr "Usuń konto" @@ -4188,18 +4259,45 @@ msgstr "Pobierz plik" msgid "Account" msgstr "Konto" -#: bookwyrm/templates/preferences/layout.html:31 +#: bookwyrm/templates/preferences/layout.html:32 +msgid "Move Account" +msgstr "" + +#: bookwyrm/templates/preferences/layout.html:39 msgid "Data" msgstr "Dane" -#: bookwyrm/templates/preferences/layout.html:39 +#: bookwyrm/templates/preferences/layout.html:47 msgid "CSV export" msgstr "Eksport CSV" -#: bookwyrm/templates/preferences/layout.html:42 +#: bookwyrm/templates/preferences/layout.html:50 msgid "Relationships" msgstr "Relacje" +#: bookwyrm/templates/preferences/move_user.html:12 +msgid "Migrate account to another server" +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:16 +msgid "Moving your account will notify all your followers and direct them to follow the new account." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:19 +#, python-format +msgid "\n" +" %(user)s will be marked as moved and will not be discoverable or usable unless you undo the move.\n" +" " +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:25 +msgid "Remember to add this user as an alias of the target account before you try to move." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:30 +msgid "Enter the username for the account you want to move to e.g. user@example.com :" +msgstr "" + #: bookwyrm/templates/reading_progress/finish.html:5 #, python-format msgid "Finish \"%(book_title)s\"" @@ -4612,7 +4710,7 @@ msgid "Streams" msgstr "" #: bookwyrm/templates/settings/celery.html:32 -msgid "Broadcasts" +msgid "Broadcast" msgstr "" #: bookwyrm/templates/settings/celery.html:38 @@ -4946,19 +5044,19 @@ msgstr "Instancja:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:119 msgid "Status:" msgstr "Status:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:107 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Software:" msgstr "Oprogramowanie:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:110 +#: bookwyrm/templates/settings/users/user_info.html:116 msgid "Version:" msgstr "Wersja:" @@ -4971,7 +5069,7 @@ msgid "Details" msgstr "Szczegóły" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:69 +#: bookwyrm/templates/user/layout.html:84 msgid "Activity" msgstr "Aktywność" @@ -4985,7 +5083,7 @@ msgid "View all" msgstr "Pokaż wszystko" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:60 +#: bookwyrm/templates/settings/users/user_info.html:66 msgid "Reports:" msgstr "" @@ -5002,7 +5100,7 @@ msgid "Blocked by us:" msgstr "Zablokowane przez nas:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:117 +#: bookwyrm/templates/settings/users/user_info.html:123 msgid "Notes" msgstr "Notatki" @@ -5722,17 +5820,22 @@ msgstr "Ostatnia aktywność" msgid "Remote instance" msgstr "Zdalna instancja" -#: bookwyrm/templates/settings/users/user_admin.html:86 +#: bookwyrm/templates/settings/users/user_admin.html:82 +#: bookwyrm/templates/settings/users/user_info.html:29 +msgid "Moved" +msgstr "" + +#: bookwyrm/templates/settings/users/user_admin.html:93 msgid "Deleted" msgstr "Usunięte" -#: bookwyrm/templates/settings/users/user_admin.html:92 -#: bookwyrm/templates/settings/users/user_info.html:32 +#: bookwyrm/templates/settings/users/user_admin.html:99 +#: bookwyrm/templates/settings/users/user_info.html:38 msgid "Inactive" msgstr "Nieaktywne" -#: bookwyrm/templates/settings/users/user_admin.html:101 -#: bookwyrm/templates/settings/users/user_info.html:127 +#: bookwyrm/templates/settings/users/user_admin.html:108 +#: bookwyrm/templates/settings/users/user_info.html:133 msgid "Not set" msgstr "" @@ -5744,55 +5847,55 @@ msgstr "Wyświetl profil użytkownika" msgid "Go to user admin" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:40 +#: bookwyrm/templates/settings/users/user_info.html:46 msgid "Local" msgstr "Lokalne" -#: bookwyrm/templates/settings/users/user_info.html:42 +#: bookwyrm/templates/settings/users/user_info.html:48 msgid "Remote" msgstr "Zdalne" -#: bookwyrm/templates/settings/users/user_info.html:51 +#: bookwyrm/templates/settings/users/user_info.html:57 msgid "User details" msgstr "Szczegóły użytkownika" -#: bookwyrm/templates/settings/users/user_info.html:55 +#: bookwyrm/templates/settings/users/user_info.html:61 msgid "Email:" msgstr "E-mail:" -#: bookwyrm/templates/settings/users/user_info.html:65 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "(View reports)" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Blocked by count:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:74 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Date added:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Last active date:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:86 msgid "Manually approved followers:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:89 msgid "Discoverable:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:87 +#: bookwyrm/templates/settings/users/user_info.html:93 msgid "Deactivation reason:" msgstr "Powód dezaktywacji:" -#: bookwyrm/templates/settings/users/user_info.html:102 +#: bookwyrm/templates/settings/users/user_info.html:108 msgid "Instance details" msgstr "Szczegóły instancji" -#: bookwyrm/templates/settings/users/user_info.html:124 +#: bookwyrm/templates/settings/users/user_info.html:130 msgid "View instance" msgstr "Zobacz instancję" @@ -5929,7 +6032,7 @@ msgid "Need help?" msgstr "Potrzebujesz pomocy?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:72 +#: bookwyrm/templates/shelf/shelf.html:87 msgid "Create shelf" msgstr "Utwórz półkę" @@ -5937,18 +6040,26 @@ msgstr "Utwórz półkę" msgid "Edit Shelf" msgstr "Edytuj półkę" -#: bookwyrm/templates/shelf/shelf.html:24 +#: bookwyrm/templates/shelf/shelf.html:25 +msgid "You have have moved to" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:28 +msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:39 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Profil użytkownika" -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:54 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Wszystkie książki" -#: bookwyrm/templates/shelf/shelf.html:97 +#: bookwyrm/templates/shelf/shelf.html:112 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" @@ -5957,40 +6068,40 @@ msgstr[1] "%(formatted_count)s książki" msgstr[2] "%(formatted_count)s książek" msgstr[3] "%(formatted_count)s książek" -#: bookwyrm/templates/shelf/shelf.html:104 +#: bookwyrm/templates/shelf/shelf.html:119 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(wyświetlanie %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:116 +#: bookwyrm/templates/shelf/shelf.html:131 msgid "Edit shelf" msgstr "Edytuj półkę" -#: bookwyrm/templates/shelf/shelf.html:124 +#: bookwyrm/templates/shelf/shelf.html:139 msgid "Delete shelf" msgstr "Usuń półkę" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:178 +#: bookwyrm/templates/shelf/shelf.html:167 +#: bookwyrm/templates/shelf/shelf.html:193 msgid "Shelved" msgstr "Na półce" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:181 +#: bookwyrm/templates/shelf/shelf.html:168 +#: bookwyrm/templates/shelf/shelf.html:196 msgid "Started" msgstr "Rozpoczęte" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Finished" msgstr "Ukończone" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Until" msgstr "Do" -#: bookwyrm/templates/shelf/shelf.html:210 +#: bookwyrm/templates/shelf/shelf.html:225 msgid "This shelf is empty." msgstr "Półka jest pusta." @@ -6308,6 +6419,10 @@ msgstr "Przeczytano %(read_count)s z %(goal_count)s książ msgid "%(username)s has read %(read_count)s of %(goal_count)s books." msgstr "%(username)s ma przeczytane %(read_count)s z %(goal_count)s książek." +#: bookwyrm/templates/snippets/move_user_buttons.html:10 +msgid "Follow at new account" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6449,35 +6564,35 @@ msgstr "Przerwij czytanie" msgid "Finish reading" msgstr "Ukończ czytanie" -#: bookwyrm/templates/snippets/status/content_status.html:80 +#: bookwyrm/templates/snippets/status/content_status.html:69 msgid "Show status" msgstr "Pokaż status" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "(Page %(page)s" msgstr "(Strona %(page)s" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "%(endpage)s" msgstr "%(endpage)s" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid "(%(percent)s%%" msgstr "(%(percent)s %%" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid " - %(endpercent)s%%" msgstr " - %(endpercent)s %%" -#: bookwyrm/templates/snippets/status/content_status.html:127 +#: bookwyrm/templates/snippets/status/content_status.html:116 msgid "Open image in new window" msgstr "Otwórz obraz w nowym oknie" -#: bookwyrm/templates/snippets/status/content_status.html:148 +#: bookwyrm/templates/snippets/status/content_status.html:137 msgid "Hide status" msgstr "Ukryj status" @@ -6669,10 +6784,14 @@ msgid "Groups: %(username)s" msgstr "Grupy: %(username)s" #: bookwyrm/templates/user/layout.html:50 +msgid "has moved to" +msgstr "" + +#: bookwyrm/templates/user/layout.html:64 msgid "Follow Requests" msgstr "Prośby o obserwowanie" -#: bookwyrm/templates/user/layout.html:73 +#: bookwyrm/templates/user/layout.html:88 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6687,6 +6806,12 @@ msgstr "Listy: %(username)s" msgid "Create list" msgstr "Utwórz listę" +#: bookwyrm/templates/user/moved.html:25 +#: bookwyrm/templates/user/user_preview.html:22 +#, python-format +msgid "Joined %(date)s" +msgstr "Dołączono %(date)s" + #: bookwyrm/templates/user/relationships/followers.html:31 #, python-format msgid "%(username)s has no followers" @@ -6758,11 +6883,6 @@ msgstr "Tylko komentarze" msgid "No activities yet!" msgstr "Jeszcze brak aktywności!" -#: bookwyrm/templates/user/user_preview.html:22 -#, python-format -msgid "Joined %(date)s" -msgstr "Dołączono %(date)s" - #: bookwyrm/templates/user/user_preview.html:26 #, python-format msgid "%(display_count)s follower" @@ -6794,10 +6914,6 @@ msgstr "Brak obserwujących, których obserwujesz" msgid "View profile and more" msgstr "Zobacz profil i więcej" -#: bookwyrm/templates/user_menu.html:82 -msgid "Log out" -msgstr "Wyloguj się" - #: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:28 msgid "File exceeds maximum size: 10MB" msgstr "Rozmiar pliku przekracza maksymalny rozmiar: 10MB" @@ -6816,7 +6932,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: bookwyrm/templatetags/utilities.py:39 +#: bookwyrm/templatetags/utilities.py:48 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s" diff --git a/locale/pt_BR/LC_MESSAGES/django.mo b/locale/pt_BR/LC_MESSAGES/django.mo index 42da17a08b31601e4d80a782e3290ad350e5f86f..f5cceed233a1e171e866363d4cb8ac7c106e90e2 100644 GIT binary patch delta 24077 zcmZA91zc9yqWAHQ0(OCd2^e4?s9<4tVt0?--D5nqj*c<5jyhv^cemK1j-6w-qmG^T z_kY&nzTS6#&YJJ)-WznzIUCM-Z8+=Yy6NLN&EaX{={V`pGqdBI^>UnNWtHnVxtlmn zTFir4Fd9=~cg%pJu`({kQuqpsVBV&V6OP@nF8+zl@I4;DdL*7Wj>}2=ljEc#!>hUD zL|{hDfwj>OU6=`{Ve4K+xa52WijkbKJO&_r7 zUBPPIJm<$JFQk-DR z=c3v#LDkz~J%sA-G-^UuQ2jo{sFu!USr*c z+K~gOj?Q5&yoH)TvYzI3E{S>zdZ7=F#e6sy7tp=)H<2JR`t)*~{5S)3drzY}4&`R1 z#Db`;tb$ruBh-XjpeEQIxxY?t)N6PfBQS0s(=I=12g;xp7>&~y->E}{nK)1JJx=Ir zRywMm+4@PSf#;xhU zgB3(Hz;^V*J*bIXK;4Z8s0qD7?SSV1KAo5p8(>9LKMPR*Ss0m#~ z-Hk`6qk4myuq*Bm({UV=xX zK-7R^ZTTEzCtc1$BD#F5QFmYiYNfkv`Z%hC3pRZhHPIKSm3%_APcY1UCz7JdGo#w& z!gN>^_4+kHwd;!BjPDG#86!~xPepYwANAo`jXIJ8w)`Bb<6Ee$e~x-By@s1J4M43l z4{G4j*czLm7I+vn&KZoy_|6R??z2YS(if;R{EiyfYlOMwsZf`%s!be<0G{bWk5ARr?pl19UwPKGk_I6`o(wR~9o1s?P z7UN@Q)WrIrUf&_ssi>n`W?hXs0@ns2dVhD@j2jrA^dr;&uTUL*L`@{gFJ`4_(VKJ; z)LT#*gRl{5;sa6rj6DryH7qqcr0G69!!jEFiqj~eJ2*28}>3zi>iR^AD5j1S=L5vU0c+O zI-v&Yjhet{Oo+duR=NbW!mX$U97avx398;lNRYS+VUZ&2~I|RpypvR+<{5)xXr(Un)qAPQGP@1koP3+2PQ}Lb7>O$uZnlc zNQTc)ci{_aXMBD$9S5V*c~NIx9#dc=)C4=DCOiT)k;#|>=iBr~RKEu>IbOCtb`ep- zPpBEjpKSC&b(9{pL!qb%Mxc(W6l!JlFf%qoo%L|^!Ih|m?Li%73~HQ{)~l%gU5|*U z;(OEp&J;6&l>Xk-)@oJ$a-WzpvF06{bqP{EFP)GF{HK6}g(_aX( z6D}u$h_I0^7}wzJ8RoWEoM|Rh4YjgHsH5tDe%Ku~ zp)shVT8es0)}j`&S!uoh`-!B)7}UzIqb|t{jKJ?$03&9Z6?edJ(tS}KFG00igZk;W z54GjjP(Re(qmDS`Y}0QB%ttyLT`Fj03p%6HgHc;H8nqLX(FfaZMYtLtDG_ChUW0qTpm64T=`>jTu$#+}Rl>!(-9T+?weYYo)Etx%V86lwx1FcLQ{F^H68G47FA3P?u>7YG-z%w)O;S zWtXu7-bS^H{=@WB8&%#ERo)hLSI(jO_4w25Y&=X&+Lf4y-sfOzKGfwai|V*8Mq*Pe zfs;`K{EgcB>!^u7MJ?ntYDd4=bjtarp8(WCLNG1nMe4bnYD9Dg+M>2(fK87_bvz%_ z;4;)i51?j#4zuA?48@cS%mhlH?oK7tfYnet*TmWZ^;Y%8lzRVH5YbBaqE;4T(`T%g zQ7ioiHGzLI7{A-{;Dx4r7;2*VQ2kUxEvP;)<7eOtwH0p>eqx;YQjfoT{qa%9a zQq-2M!rZtWb%~y!wlvLRvm;qC59$0EhV4-8rrYv`s0D054Sc|sAGcmw%>HZ3?vbI6 zzoAx;c!^2-qS6^r9c8oWf;L?o^+Bp;ZH3yQ{-`4xiJH(<^uqb*jZ0B?V9gTtU!TI; zWMoJGrRKv@64h~i%z&Ly9gjop$PCl~M^O{Igz@kpYU}?+-SQ8petnmjA96)eccB)l z|0XUXAw+thZuKnGKpRj4?6IE0jHIul2Kt8a(R;a>Kr+-y15qo@Y10v?6&JVZayWr> zEzF6oJ4DoBvK2;u)aw|CaWT^77r-K4rLz@u;(( zj=CG`ZT@~#|Hm;2UcqE~{~r?34BulmOti*avb?CRZH<~xN7Q$sC+htjg_`&b>wF9% zy%H1RNz{rjp?2;rX2A~_j2YIl|LV9j5zVMFCdCG*m9#@`Wp~s-!%?s6cr1lWF)Kd7 zQ1n@6cBUAr-{z=x?J+s_MD;fUli~Dr?7y~Z2^so%z8?eeGHL}MP%DVL-b^qVs^bi( z4uVmaDxXakLH+QFM!i+7Q1!>57BmIbZVo2LRqNS*RoHC{4x`Te0;<6s)C!)W26}7L zUr_D5H<)@!QLm>zY64NH*SQ9!!Vai~4nej19dqD97ZGj!Y1Ba1Q8Rpin#eoUMB;8V z`H4~W)1!_m2dZ8aroeKjove>)*A=ys{ZIoAM_t}E7=f;{L^Po1COW~CcowVLbkJt= z1#5_5whN$cV)5B~BAwWD8ln-5LmJ^W%y zItA)G(iZgr>WK06{&!OZ`&);h?!q|KfYYpVQ5`SF%(xk~Lsw7}e}%s2z1Q@Y7X3(P zw&_BsyHXm}e|2>K{@;*@E>%lwcT__cYQX8J%d-SE(X*(DT}8FKgNN}Y>auOw$Df99 zKWe}X`%S$ZsB}SV+5PN)Ix=e7j4r5^3_#6r66!skjT(4A>I{$D^5>`{dXIhZE9$6v z9WWoJ0jPc!qS~)U9oZI}jyd2mugw`UbbIe$CVXYnDG!=UmKim%C=9@=sFim{t#|&hGsG~WJy0mvtcjkl3Mm!Ih4w9p0nhEubM<{9sDx$Wo8*1wZp#~ml z)00r`W}CtcxQsn(>`$MD+e=JI)_6upVlQx1hdI z7qBG8KVkkdsS<{fo{NEa0yE-M{27y+G(U{SU~bZz(EXi2E$lM}W1>@92|9~g$}6HiJaaKACOboa zjPC>x(F}8-R#XBt@K5NCoiQ4FVS3z;dTVZC4*Y~Vs$jm`x*MSw2O}{L=EoM;4s|I{ zpz7a5S27~^i0JaX!F>1?+hF85^9#dl%tm@IR>eoC9V_rR9}^sgRq%*Sr#x@^tB=~T z=IDc+F$jlX5}bdY{a40XGBl$zsEJ%et>l)?e~6)^pJQW8bHSwh;AGMZQ0?+vG~fDS z7)E*)>Q2R=b~5A=yNY3`{wG{w|ML==PDX1yf$AvFWpnuoVN24TQTb<4E4hlgbk9-W zi)2^Wa`rp|vysks&AhfvF(v7d7>u*A74E|d80@;vUk(uIg86X^*2m}A9n0O|&j7d$ zUtr&x=Iv;6%S?PE<|cm!`r%X5Kym&t{bj?-q?=(QT!|Vd-feTVu3|*AqL%23eJ}*a zqRx6f2BC9@*Uy7hqw4j#YyK*A4EmF<#>*arZLvCzvFR(Q9r}ctV21mq|GdZ%xtvBs z^uGUs`r<9aAUuMp@F8l(Uoj!(ePC{VaZFCS1FGEs?1{5*0w#HAUe7t$nDjo>QD%5# z{$6k>Hq!fljfg4~cx*1sRBS=|04hKDiOC;^+NpIo3=d*9Ecev>%}7_&k*&kbnCThc z29;wa9DzgdFVqoNf6iY@GQP8%h%U(^Y=B=e80&H1x}1a13pZG|p^jh=#=~>yjaM-R z-bU5`&*pzb)pPze`SDRZmlWOq{hvT0>L3p$z=GCN7)m-C^+Ti|>Z~WD23mnSqFtB_ z&!IZLWApz*wM+2QlxN1&q$6!Q`X&3Hl#Iq?Xlpy78VpA5$V{7FjT$%xHQ+7OnZLyd z^nGOpD2JL@UF?GGQ2k#*_5T3X|3{ne`H!G@?y-PuJ%6If(3uA^QT-#2C@`7w%g1>B6o zP#qO~YyR|G7q!x{sDVGC2KbITQlEEbA!$$(&WwpL5?iCIIFWE7i?JY{M^#Mn-dvgt z7@u@7&ckqAg{Lqn--Dk&m;rwIXxdFd?Z`q*i0e_8Zx^P=LzoJ0W1!yu_e6ro@c(4K z0|ikH>tRN0f#Y$6P5XQ{mn<)8rDaha*T)pt8@2M$sMl};YQPPc4v(VxzlXkh|NkYT z6~_HyI!KH<`v6Rd*-)3Ls7*(swz@g`V_Vd%c42ayi5h6RO&`XJq%UG)4Eky&Gzh)* z{!by224|yIvPJ=4Xg4)?I z48j5q|NTo1T%QbWT{~-kTVX6}Wh+rzdKl;7ZFIk$9vTewe;ePCi zcTjIv-8dfZzX|Cd$K~N(!8|gw#S2kew$`S1TaQ^USZ`aOqw0S|?PR>T9_|JCVPVoC zsJE*HcE;Z@7{8+*2D>~x+*?}&HS;p44y&M6&j=~i6hZA! zRhzDZQKZ|VCOjYYzAs0$+l1<84`$Q*A45cE@e;LF@#32f)1oGp5i?*ujKo@~9UG0B z;B-{I1*nd&!$^iyP=L` z5USlcn?KvS6t$2|sCqG&7B8UczeG*=JG%5*`6e_o%Y{1o{HPVwLhVdD)Y-aFTRIH` zaV~0ScBAgfHPnRTBr*dfMQwcsRDL$pk>y3*g>s2_|205sGIWavqGmQ8HQ;>Ij%>BY zpmydGYOC*|I)08?*+*2z@e`Z&S+OqZqNs^aMZG<9Q0*5a=KWV>B^erU6KVp-QD=7( z)$kE&f-g}k^+;mU*-#UVLe;B?T44>F-xBo!>xt@byiLzQeTde(h^T|}w!%G|et}xa zH`Haxz|UGuEFbC;RkZ2qSd(-sRQ;`}qq~SY^QWjC_D*KnXFyFf59*G%qKIh5(WtX( zYSZmeJ2L>a#UoH1PeM&(u}yDB)jMs|mu&hOYQ=9+3;d26Fj;c5bD5AGa5<4g)Nx%@ zM;&d2UZ@F;#Mw9r^;0V}g}K$;P-i(9b#x<8cVIT^{a=pSsk^BDpP=4`@2H6-@zK%n z{`nJ8M|m(i7C?2_95wU4sE$XYwsJb^=lyEboj8K}q+UWT;JWobs^1r=0pFk|^v&jb z`Fc3D^!_IzQWl$`{)Dm^RWU(I4@bWNB}biE1ZsdnsIx7NnqX7Z#JXSzjz zUB0Q91y`dwJZF7?TF57x_DE+gXDU?tw0IuFP~*Acr1x>;U&~SPf-m$ zGnkJ3QLj?~*1<^B&isPG_$MC5Be)-b4KQy()j)G+YNK|pH8N3`)0>Do7>L<$3hH&* zWhyxPQ9E!H^*UWdZRvH?CHjOqYri1#D_3r;MYPIO~fmUF#~D> z`Ou|EQzGhMH0qB`lTZU~!mN1O=D$M?m^RoPK_OJf^-=wF!%&=sdW{dGeha>X+R=az zlOK*c!pb4M|GMSv$;gQ=)O)-Nwe>qu9bQCT!Z=w?N2ySEA{ez(k*HfAg=$~ImRCdV zR1+MJ?NRmKqwd1DtS<8b@y=$>CPT*(CiV)ogPz$v z-2W~4Bv_tw1=Iv4p}v@NPT;)f|3(r~gGs0@oP}D+e4Ad4TJdJo zksQOacolU=g2K(62*y&R^I>l6hpN9EbyPc0?M`Ar^vOj#z5kVo=!4M+b(wmgW;_!0 zdQC)4a4Cl1I$M6p=HEuG^a*Nf-=YTmf?810+-4$vsGZA-T2N7R={2fBM7O#bYKyy~ zCNR)C3iTdO!UA{_wL;H4=8W^9CRz=3$=ae`!-*J)^H38yhpKlEHQ_ILc>lH4@gmHv z^+kOL@}L?tMOEyEx>N&D158Ezwz~_pfNQ7)JhpyB{d7zaY1)UQ#)(4Rv9hRk4I_E~ zbw=&T&;b2WTRquU_#LN{UXEc{BCjd$V(p8X=n&MUnv7ccOstGcQAhG0>WDv~>ZQnM zCgATPqAy)A>TF7&j-W2;2wLJF*co*I4WWz+)SqINiLA${0*|B@5YO3R}zM_mlWj+hl7R83BFXBwpCEtL-djD?`(agMx7=2L{Gon7lg;4|5Lv`4}mXAj5+?-x`(&tm3>P?BQ2|C&G)8Cq#w)S34{z2Co}8ZJX^**erj zZlF4PhFbAk)XKbzn@_SYYR6Ke%0p3aMG>1{9kpXEi@VHL_as9z9d8R}p>||BY9fDQ zUVM!jC~FB1rv&E3-PjvTV`NEl+xucR(o0bbI%CrhQT-(^WhRizMMNDIM|~Kgtu?U( z>H1g-XJJ3Qj(U&lls0Go3w9vA3iX!wm+^3pV+3m8uc#eJS=Q`uF#bfkBrZeO0wRZr zR4!)*N>Sc?xoTqw`G4XVj6ro+y@H4PUsAP2UDExit-OXhs;8)<`44p$zMvN7UD15v z6QhnM2fpC`IYo)6`Gg{4s}#JQ3J=IcJLBvzHY6RL|Zfqbv7$d0~|wrkS?G)eu^6CE$TAGsbVJXhk6aeQ2Es{ z0$ZW_nSr{r3sLPi;8Wa-{(ApcRyCi>gQyO&RWkz@L2Xq{)N9z<=KpN-C!uy=A!-2| zQ9tz#+4N(Z{)AdUV0B}5>`ginUHVimClZRAP-pj#^)YG-U!ywktYIdW6gAN-s4rtd z)CyaoUgsXxi5NtBl`TJo>gPIY!VhZj{_D&4o(v7-Rnv6rk6L*sD!&-2UUgK%rl>p9 z71iM=)a{>y`UA{LoBx;f3TmNuQJ3@uYN79Hx=hA*GITcaYMDEb67|C-5+`Fc&cs`& zGwoN~bT|UF6BALld?9M0%TYg+wqk31jybVb9S>&|4nZA3JXc-w;TVJoJ$Rk4I0Yx` zc{t55aeWW>zl`pL-AMn1`p}eU;Nkw?|BgUizK@s{(>FA~T$aHqqz9pn_5|v6eUCb_ z6pcLG{}S6(gotkIUW~-os84Z7W3wZrun_5LsGsL!u_FG9`Y9OI#Qgc72I?rrpmu1o zb)IzvY9d>(58go*=yDn~H4V0-&iXLc#Y?CG!<(6{o`SmV^H4{#1_Ln$wdD^{NAMOa z;AhmOEc25ouZ8*!G)Mh#nuLk<{?8y1hm1uShD)(2UO-jM+uT?fb@@u6R$2@7GocCU zj3=Wm?FZCOCTd~6q{UI6@NuZ$qEBNqCTz*yD=@xOkBDyNEYuFnM}2rUVh|of4g3Uk zyFa7q2evXR&WhUdFw{;&q0YEGHo_jLg`LJZ_ysl5S*>~hTM}7CL=}>^F)J^ITH#!5 zhf7hfOY*j6Wob}HQw24#4XE}9Q9JhvRlj;Wv!Dj3iFZU@)``ench1CR|KG*s_kBVr zXHX0EM0)be1@X?r!*w=1s|cfLRe-Yp|EX>3#O80JUQOEPuyw23ezTD8OWvduw(u9s zZQJaiypxMgiji@RL}JY-winz-_|sNCLHsT83mE%!q<&@cQek0&9uEe;h0EM2^N;eB z?WX^u)E$HiY~AU^b^qMYIufraC`AV;smSGb4&Y>4S(P@CcK=KUeN6O8?Ptq%-udVw z_8Cas?SvxqmyP_5YReNyI`%oG@t@McIdbya3jIlsBVL6@)d)LmzILkq4+E^Ty>OYG z-w1k6QTHu%N@80=WAe%p)|01S!DDbS`Hh$achDKE^}nUyCkmDl{-E#x>6Es^e@OQv zttS`d?+LvryGD8<@kfLaq$8-8kf3KQ=^Nxm+@^g~F`Y|;ETSNr0)=`$+lGZ~#q9Wqke_goMlG>DJ|iS0Tq0DU?L*q0B)m~4_W6sl zg7nvoHoxF(LTd7IBELwvoW2z3xk5-p!4-m@afCmql-W+|FX~+8-^3Ghm1vT#e=uZc(o1 z3uXG!eJ50-&ObK)9{Hv1fcJ^lB|p-p)lSbw^7w_ySx)GqkI#R$!W{}0P+>bBA%7a` zDM`@J_P(~>Qfy4wc1(=pZNBPW`yn3wLwqIm__^c6(C?3rYbcrjDTfLvSjiHsj|B;z z$o@+DHbGA^@=g)I^+U(?$PaXva^rvKyfg8`)E$F+uo~W^T|Qf97JBIXr&8!oK_Xj_ zf^;&%c>=#}IUeNu+A@vviyeG4<&%haqHGxPEOrtpiR-CC{&>P$>U<_-wfQO=Onf9| z)%5$*w3k#F~AL&sl zuulgJBmX!-&sys~EXII(DpJ2Lp#>p3ef>%ZrtCR&YT(c0|3-Wy`4jo`$NzcwrPTc! zk22RQP+3oM8pI>SKK~LgLHI^}Jxi#^FV0R{o4!ik74p8~aO#yN=vOX1{RrD^z0tAb zAEH7PW|u}Yw1ujCn{bEFfb!aO*o*KBLC-1bb;3QQs}hz`XAOC)ZF@iZihYU@nLz$n z>I}2xDsyeIHNxm%DDfv$@FEPNlKzOL=Ne`Gl}~&MAw6XkNyk2g>_F$qe@NZfCjiA9*vucj)Dn^$eTtw0hxZb z^E{Y_HgT~OWy5hkp(u5VVGGPb$l~tL?*A7m>gh&7W*RT1Vt3+t1{0q`h<$p*MyvxU z8*bzK@j2-a1TO}dLLYa@8%KHw{pPpz#3IT@>-#^KFw_oqhJvP4PEF&yHZKvrrcQ6$ z_>y%$d0DA@mGZ*W&rEz8dACtdUGmP_KAK=_n?HfFRFoB=u6zB%iPWURFbWphO5;c` zCNw3~AjDqOG3uG8IBiOj?@dQ}NdIfwxyXA#dLHRAgc#xp$@@yY5Mc@FwFLWAayHOW zTbnvb#Z;s>P_Z(hIO*P`^+Xfb(}GZdu*#;Dw~xABQ|4FD{~MP6TYsEBrTm%RNlfe1 zge0VWDVssw4C3`|ud1(SJYgjHzf-;fkGOOBfk1o*@%DHhbI>k|B`>n==aR2yH|ZO? z&LhY;N62U^v?5-C(1?(hhI)b+q&wjd@r~{rUU167$a_Y;)wJD9JofoUx(SK;gyn?4 z36a!`eY#Lyp7xh@N~=f&Q@EYd)tCTR&{=ETX=Em2Q6@r(@ok8Qkxyp`ky zk=KzrI|(0b+vONx>#1!+(o6Ao!XJbIq`y=Coi^_C|CNk26kI3x6IzkxPq0qsA3BL9 z{|)(i`q@dD6nBC2F6us}{1};|iC4rSgl4wQV&Z?2Uk;DsIYJlxIx~linyexcYY_D4 z595#NbUKZD;&1qxye`D+)9@-Gf;N@NA4UFM@_&4OCY_b?HkAKO-HZf1N60Ua-`pws zH|yucBcrjc)PqVhX{aYVo#^jQ^xUJo9%WH@$(Aesv2B+d_YnT3j-JLp)Okey8uE+N zUn85JmUJGy{a*-c$P6NErQ&|VMuMKNj66suY)Q7w%;^_%-NN1pYo2~PX zvV!#S89!2vToe3NmIrwZPm~1B*L1vVVtNeH3O$c47la8RLlKwg)ABnPbQjYMM3KuE(j z?w;z@HFf#Fv-qLWPgKf4gHPn$pi)6XW!oqkw^DY8vQ6agA*3So{Goj#(l4o_XDfZR zwPl{fXOZWRdWw_Z5?99lI=jyn459HDLN1%GLd6g6CjajrJt*rzes!`IVM-?U1UK6% z6^MHi&q&x!{1pzQ&+fKQRog)F!CO@<7djtMz<77KaZC#fynPn7cu+C>bXR{O@x=^{Yw~RvYqFuYoB_=AJ}vm{roRQgTHM?L*j7=aY+|K zJ;w<<88C!&Ir0aPPJ%bci+v{9_PfdGOudDKwLg?UBR>x5UAULJ^C_QCymegO|Afrm zhm1c6N68GO!f8o(K%+k7FCc^vUr1R6^4sBL)H9TLe#(wgM^9?2;=3rTL%2s?T*jG2 zy_e)4S9|h;^!-0VW=}F=pXyZHOa5i@FWda0#P!r7Ur$Bq1P#R{PbT8C z@h`$Ro0lKYF!*`$4q+#o|Ae}gNYBTr460`V@h4c_U5CGO_(FwZWE}O_*tE%%sEyt; qzJzY{J-FX5VV-KYbF*L-GN;t#eX_3%zGGNNgj&s4saRSOK*Kt}l zbDVV83bWu~OofXu6t`j(ynv-KqPgP~!?u_U7h!!ojV&;eKlbAoeCRl?Q@N$%q$eYP zE60h&S{Q{RF*UBmOn4aM@Bx;@(AJJq6PsfmT#Fg;HU^^8#&JR*Ifi3)tcsOv{!A?5 zR zNR3M8!F*UA{TSaFL?kPY#$>n(wIe&QGhV_GSh}O*WX8kT5+5RSb*gl7oW{5g8=*gq znqoWD5$s3S=)6ES&#BkNabj>Qx+#eKO{6cr!D#H()y!}X(#AQ3;aH@b;}pauSO%xz zcX$akaP98qXjY+)?g`ewggqQ52iC=GI23(wX%Eg{k(Fcw<9hVPLzoy(U{bt*iSUjs ze`M1yZTdZGAzt5_`oXCB5vYE0U;>Oq?Q{VQ!lvJ{{~EXl8Gbkd18^d$;ap6DOE3`E zU^3io%TJ=(Uqsb=X#EG(-zU@plJqqFhG25iS*-b8B5GJ3)p1RX#1^Otj6r{#jN0OP zsQRyMzSGOBJOEWc4D(_nY9||^25gDik)Eg>ABbA0>k`pSC!i)U3)RswjKa03t-FdE z_@?zfYDZq8I`Z!AIJq$pHGyw17JH&@{SpkqUok(P#Kn656ZA2cYZ(@x;0WsWenNHJ zgqxWXJEFF72x?{HQ4^kun&2Yj{yIxhuVIRQW&&}jcI{C+&`D=e@D>rh*^6?IwmSdXH1;EYXQL)H5WHNnTIE&gN;7;5s< zVLI}oQ4^|QZR`@6L`FAMM;}oW@?l~cI29^i7ey<|W+xnnydX{)48d)f5l^F5_#A`r zHEKeB-^u(s$qdM>zZpwpE6AeSHBns8OFzP!| z!j{)TwQGUtu^Z}6jYYLvfWCVF*Vv5BsDTfn1~`N2@CNEgUfOc+5vJon)YgZhUd#Nb zv#pL=X)Dygy|EomLM`xL)Hu#ac8Kwvq(nStjk={_s58us8aO}dmX||azMNm+U!K~(d@qp(vzWzS#3eAwYasSwGOIYbJRq;*!)4L z0Y{@IHWhtvHLBi5)R`YZt^6!%hwhAK|9y$PAR`05MV)1;G3HB{3$?Z7tktazP!n&7 ziLf(j>wBT@z;x8zS#HxiQ9E=BHG#iT6MpRy(G0!gO-Di2bf_6;LajJ2dTuusC0z#- z;Uv^bXJKNTkDAyr)a$#>dJuI~m#sHYm(l%`h~D2PHY4d+(@`4K01>E;a-b$s9JSKQ zsGaMIdJB4EIF3h6d=)0f9jFx_MD4%@)Yd;jCg3{nh^V84HS|xL=A4E&hja0 z;D68`6a8R*lLhL|P zV&FtmF+FO<;np0e3C5xZEQFd+X`5dO>yoa46>$mH#wVzHB`2A?QUR52F^Th6q&*qh zx^5VNLs2svkNSmVHfqb)p(eN=^?~{w1Mwjy!}m5n$z(I}tf-^Rg_>{yJd7n#{Un;g z{%eK7Q%px0Ph~ok$HY^O zXyx;d(xs0CF( z^;aL+3D;>&L|fAvwUV)@fmWlob`NR=7f}tb+4McsfRAx4zQZtFF~j_W#8K2QrzvNe zg>*+vU?6HI;?alkotZ>}$(V=ww64RH_!zY^uUY2r_x`w!bS_+jw@`1x#2?MXrlST} zh&r;hm>RdBCUz2aWRFqp{y~4e|L<*v?`$)00BQ#!P?seRW3en2#Qx~nYRpA?C#vH| zsCKVVKLvf}n5_>-{ctOWI_gHKep{oPpGa?8u)-E>u;~M+J8%NE6PGXu|3K}~KiCPA z%r)uWsDa{96I^QDfNH-7wen-AojNs_{nr3D$#ol8i%j zJQw5eXDo@AP!mYA$ZUNCYNB~i6DWw<(NZ?u2-Qy;)Iz#oI=%k`iKyaq)E!ub+L66B zeHPX6T}+ElP!mnG*i1YGvy;w)Ik6FH0;5nXoP-*1I_gp`wywokz5hFj=r%t?%`oB5 zW@Q1WbSi5o>XKzeO&}j;#j>`%v$Yp$qTiu*XgX>^^HCF9Yu%2%jPD#EqRVm|b@?u0 z7JPuZEXkIb0i#fFOA%E4a;Oe#+59G`JJTMuV_i`b=#2?+u+1NaT39@~I^)Siw6aB5 z6xU%we2m(%7nlb>p)OJGrDjW;quO=Fyf_H;+O0;lyJpMpqju~KYT!i6OnKlk_Fok< zkfANhfjX-)=!>;%x}iC#Y%(mS8OJ!5khh;RXOJuTeYZv&syV4)tNmhN{;XRj&i8 zzka9*#G@uU6aDcQOsMyN3z4j3>_E-%4^#(_P+R;S1JHZ5*@-~xMmiWX;V{%&v;_6T zWi#qX&Z5r#8ft;BZNBds(|;f))%zbtL=~b@Gc1PLu_o%04Mc72FQ^HvLwzT4n0uZ11UEqK%m`G!%TVpsU~=4s>hIV(_CJuwH8QkSk5I3j?|SpgV<>6`#ZhNg z5jDZOsE%8s+IL3X?(b}R80u%r6x3U_0#*MsYC)G#?fzKL{%b}rYz6NProaz%=IKxk zB2g>IgBqxaO_xG-Tm@CH4(j!6ikiSs)ayJG_1>>VE%Xqo-EEgh6p{O=l?87!14W=_ zm=iUTqNo8X+WcCm`mIn$)dN*;D5k*isGXdTYPSisleafR(T? z=|*@4r`dG7&E^ZX0At8MhFakpn;*EvT)M)j2{lFy*a@{`eXN79GU?$)*EvaK02yhv znjbDxP@mep*br}G2o~JN=ND^WO7z}t-hvQJMLG&AVM!d04d+~2Ss3R=3 z+k7c&VLj6IQD4+m%Gdk9j)=}^vvs%i2;MctKnbTz;XTd)9iss3l(f@*jWHQ+VW<#~kaIQ3pLv5cs8k$4F6qjv5C zHbLKgX28~{dOd7<$UgR8GZ{xldYokoHlogWFKU7pQ19_A)WE*`%^3!w%41PSR1EuJ zY1C0|$4K0Zs&^mN{w3gT%6e~Lk*|3kG4JZO$6i%Ucu7D8Q~>ej}n4%(w;JOK4p3`6b20@ThOM%|5b zsDZE9^j%cDr>LEIWAi^^TGBq8lg4#35}8CKKhDHMsFgH5Y__a3>g@ZV4~|5YkHZ4^ zBi6)IsI3k^;yB-9MbuFo!~9tCDF0Uy?1#ETO^)%kWPE2dk@{p@#j2S1xcLqY#pa|} zqqaEUH}j#&iKR$4$J)3MWAGJb#E28-6I=?vBi#mb;!VthekaY!i(;VO|5`+{QqT&u zk}+5rFQZ9**HJ<%Tr+jKl;COr*%;a1e`k2+=QkH(~=rywhL7GO`t zcU}=mhV4$94*Q_a=6lqNW}*h(g1&eFtKxCYfFXRR_4ee$D6EM(szI0thoLu)#k@EH zTjOqYbt@yzng;nWkaQ8$<*AH1yE@n&$6^+Ij@dEQIrDElB~Ux|1D3(dSPe6rH|fr( z{??#&Y%2!gf%EKtIFXBFXlve}(mof=gtDO;Mx$1e-{u!booN|tial)l1WqOW7S(S2 zMf1&{jxnU4q3%@ZC9{)*FR}kE$rwR~2KWo};bUxv5tmIzV=$KVWNd>6Y<}bwvywa* zL4Fz3_o5wov*+=sof?15ytbP#CFyIZJNMir(w0c->%1~J2rJ-0EPw$w%um5G*pu`; z+>Oa@@^0fv48xtb%*3x@9@5Egn@@Ks)IbeU{SCz`xEY(E>-C2zXofo5>8P{Wj=^{W zv*B&5j*0#>M^qncd-0D^sCvimn15Qmi6Nwy^0J5HF06?+Z94bgW`}BGYQ6uxiD-av zs54rRTG1`k7w;2>V}`rtttgIKNgdQ{I1Y8|XJB&Ni)wcUd*d^lh;8nf*YhRn&ZNGt zqvZU16KO=oCDfMWePAm5fSS-lY>jCin*2ei{L84F@_l4};Yf?wNzcQQcnEc5zK_ko z1F*Qtu`*u8?-}38`ox^^GAu#*GwPC*;D9x;I+zt#qb}z;^uff>jLA?(kP>x?v!gHO z!4y~!RlkzWuYsypA6*qRC!(!ui)zpp)xj7{f)lMjVouVFF)jX%I_vwWcFuEiL_rux zGCQi@LN>n=s$C0I`M~Gwe;OiVZN_3uMtTEkYxkiVoJZ}*Q=3lk!VDaWsmRZdI`b+R zi=9vd%)=D83cKTORR1wAP5;GSvi};O1{o^ogavT``r|rO`A*bMTtw~IZA^!EZMoMg zGhlj5N`6j^#looiU2Su}VBr@BOfh^#~1>I0|=ytnDtf6VLB3AK_5SQvl8&3GBr z(Zqkv--1`6R(cyXaE;fd|9Yq+?TA`P57Z911Bqy*W3e61z+CtN3t`k7Q?U)|()7l} zI0%2jk+=#ozhwvc9-KxEaO<6E_W-pc@6Znuy*K>?VFtbb>4>DFpde<%Y8Z~)P~U-x zsD`UC0=MB0c-5vmelVA89BL=$A{{$xP&@V;YUMXDGya7dFY$l+smb|=5zzoeFc{0B zR@eyDL2J~C`d~^Nin=S)Ym&;L+VeiZ7+%G&&z)@E3k{LZL)OHd2hjq2wJ>L{*a1-y@LMIw1V z(-{s#t!y{ya-764yn$Nzf2awjaJ)QsAq}eIaMaGlVM45c8n`M3U_EPV)K2%X<=;8{ z_m|q*5oCnp52%6Hptf$e^^`5Yjar$PmzQTt)8kL13!?hDh?>xCn|_6w$VXIvzTRG* zaYC>+=|bMFm*?m8Dl)Q=aSFA9e^6We4z*=I2~0ZJn$eomTF_bsRlf#mC!3)b)D?^3 zVAR{S4ZGnzmq=D3^%8n{{;D+y^_opZ&3q23!=F(rSdTh_{nlfs%Xb=eSudjM-M8s? zsH5@sG5usj?NAKr&bcLtXvOtWx3&pt=6z5zAAuQg8fL?Fs0m#{P4sV@eq#M#P2y_? z2tiFC2Gw6F)Lp8D+%4B>PecQZLJhna)nGkF;vpP>Pf$nFK9RXpy-+*kqRu`ZwF6U8 zJG8{6SEAmEU8o7aL0!Vnm_+ZtUt-fyO3Y3{D5l2psI6*->hN3C#QI|>j>kA$ftvUY z)C3=+>b*rxFd&IpaVpeAqc9xvq37TK>k-k1qbcfj>4WNU7;4KV+x&&70an}ecI#o( zk(@)d`@`lxw|+z|#Lv&v3&nJ#bE4KGp>jFQguSDcogbrCZNu21!`w@qb|<{ z)RsQNjQ9$*Gr|7muH;2cxFKp{ZBbj_+vX4T=l$22jUz)Jnt7-JcA#$YS=7Ytpay({ z+L5FI#!%Fb#h|vj2x`DGr~zxB`fZMCKLqRJG}Oc&2Jrst^?6B#I(TdKN@^PTp(YTH zI=g(Rh9yuFERT9C8rbwu)C4D?>McMmaJkLjj{1NdL-lvZwHZ$^6B&v48LAGVP!)>U zbXn9&>Z0ySZ`8!bqmF8UO)taRq<=-#Pa0^BE*f>_rBFNE6xH7CO++&tgSsS>P%~bP zI;%}Ky$7{JXHZ*w6?G@>qB{Cu(}BrNy)3Bm7@IDQT2K|#0_!2;xlTJG+R6c_9Tcgm`JdZl-tEfBh9QFQxM(tGLAk%+IOse<49udu~ z4eD&Vp*k9aIq(Nmhg(rIKZ)x225KuGqrRL8g3UrQpuVUvs0GAYi=z51iyE&odfxxK zwx9{tp`aC(!_BC_Y<@t^yhTbcCj#4}jw~KEz+}|f&PGje6KY}yQJ3?YE%#1kCLW5h z_JWB3hFLBu;~w| zo%9bempCGX_g^2F!er>fQy+DidZ9ifqfzBcP%GSrn(%ehTkr~XY5mifOBsf`BT=X$ z%8#08S=7X;p*~a{Z2p)uy#Fy|OeP~I?nX`EA!^G%p?1P2t;r8WtspaMB85?JLrv6* zo1%`UD{A0As2v!BTEHaK!hS&=!BLlp=k-B#9GK3_^VjUGsG0Uby~op0L(z~d7P8Kuq0MsRnMy)tMs$C`2ooSA) zX40RCoP^ry<<`@v4&I^u>g1i(43rHcNtZ}_!jjc8Gv1I1V-UA)a#QjhZ!Iv>ds_EO`sI&NNS-b z)&{kM{jdnSSOI@UO~BiYGPge&>JnwN=0J5Ehgv}mR7dqupV}6vo%$BTaU$vttVK=W z7c6w)Avw(*aB~pRS(Zj^X=l{RXQBpNgt{!hpeA&{=HJ2sr0=5!&KPYj zSz%PWYN!R(N3FCas-Lc?`lGOr-v0$eG~i{_O7CDeK16lkA7gH9Dpb8FYkt%~B~iZv zRzj_~K4!}u<19b2Hv^M7W$)B5^U2MQLj}b z>PU)WIjoAhBU4d#ViuOh<(LN_qUxv5%~9$7k0zpqC6Fy~Mxq+-LVYk!qAt^4s2zEO zdcC~zmjTt8U!v|*!u)3CeprQcTGWxW zbBXATyP_(NKuusQ>W9oM)X{7}9l=r55nR9pcnftm+yZ8$Q&GP~FGfw^ko6MkXdhq% zenc(M%~;T!MIKZ}TU3XAt?{S{%|%Ug1?mj;jk?55Q3Lcr z-H9=%_LEUZw-ohZT8qW?{+}SC*Tt`xx#d|fE9qLOiS@URLe-mw`V_B54Rj3E;dNX7 z4s{2Di<=!QfI8aps0B4ZO{_h7{{G*Ch*mxnHQ;zuhqF;D-GbV}+qV2ZYDKS69r~9r zw>cf^(nX-k<4^-tM6J9Q>ee?wy>+ci@cygg?zUn-%t_isO<*NzrAJX`{uk<3vk$0t z>Ao>LmI*bH8mIxAqgLDjwXgxGPx2_#j*YYB^S^P;Yq7=_>_=U)3#hIB8#U9wPcf;#&T*crphnzv*u9w)s7wUa%{nH_RR6VVpW!j`xZ z|A#5do8Q-Wp#~aJ!F;(6qkh-~RrGS=u`sH`{n!Yvpmr{$5_%AQT-&T&ZX7+pNfb&$byeBFX}@QTEl!Q^P@VRgBo}ZYNrmOUb9O!|FO;Y zu4#546>0%lQ9tzx*mM({?uwrO{$~mitz<6t#igh%O<&8rj@eLWSKHbI^_^&o+R9$2 z_9IafoQRt65{$xasMqrj>a~7p4Xn-kA5KPeZBwBds-vc;nYTyJ7Z5ejC{)L@P&=^F z=I=(;JB@006Lkd7Q2qJVF>gU~)L&R~qVj9haZRKV8Cr20^n8#|EAD60F6xNJpkCAI zs2@5TaVnm`AF)MUbGC0${UxktCLD-*jWeSrngjD=L6=B7BHb_=&*5lv>YJk&gZhAc zL_gk&QVqPEZ%9{d=;gG)3D_DRg76WdWod<5MlL|zin%Br{Xa^~S+)a#YDz4-^oXjJ)R)XI0G zRv6mB%jt-bsJCS@YGt!gM{^Q2vDl8LeHm2yo~Zh#JM#YPy}m+*X8s5>VPGdOhs*BF zXW!2!;B_OeEi6pjUj;mui9f*Vo)pJOT2J|ej&s|_O%AUuZ6?@6ux+no9OFChh+HO= zQ4Y^e8qcTF8NwRB=Lzwyl)Z5ILr*$7NI>Ro{E2jo%~#o78&}&mgz}^t6TTy!fy};N)$K+5Jft&` zzk&XKBIF``dGt+~K{}Rt7YOdXuNte;R5JDW&_OqB>PhiCovoK0ms6)c=*5APW^K>6VN2$mRp<+XF1`{9UDKUSnqET(?=y^@q zPE2Yis=RRW64>+r;(A_?enPt+h+p&Ma7S>yjT;z$84Y?;QO^$IA-03cUkz}Qyncjk zn2=~+dH zAy3aJ)E7&Svc4gFq=T{yxQC1k#P1WX5oQwfyt1|+-kv(+a5HuxKZtg_)De%ycaAb} z4}yMe(vQurp9xevNTY8k*AqRmbokcxbCYM^M&cF7`wKr2Jo}$o9oY`vS_e|tUKQ-)O~;1`#R>Z4-lVg?i2sZi zsP`M83UNI@Sm$DM<&$@u_($wu`^>0{JZ^Ui9-6r4&$?8&M{FFOZy|n!P>Bh?Bb`jE zp?(SC{7iC+P__^Ci$_B8f3*GRXTU{5Tk?DfzY}jw-QpNR&@+a79?$*r{4hC2Mxe=b z*3s!9PdUHw*t{?X*E5_@fzGnq^xw8Ti6rcz?K;YD5Z06agOHPumV7V+PVq z2wjNRBK%A|6DHO~wEi@9Mp-Z|LBIbUC1j&wZ7O<^cZAOLY$o&|uMt5HzYco-#|HW_ zuHOm1Jo^3N%afLV^z@}o0X*kP@$-YW?m1hiygkH!A?RoHmuH$CSm|F0v6L^u^mJB| zcriPXA;iCamVMPuza@R7-fuQ<&;M6+oyjy@K;d38D`HjBby#shLUYo2$xlcge`|6o z*+I704)j}&AN9UG&4~X=y?iz=9BmWl0evkYaSinhCcYy9`(J{{JTgDf@B{_?D(`vH zt0nPWkec}S_%G>OIF@kTc2t!KRhm+L0A+~@TXp_=f(e5NKhW?11r=$aC!?M1&&2(RxAo-m zQK8;?!Y%Un%d9h(HhSW%iq|AQo-#dQ#Gg^ODCuRS{psJA_+pL!L^Zy8a()%hLZuvb z5{)qx9mSBB7waK^&va%IFH2cA+HJz;wtjB%-%@^+^m5|91U-J3nEX=2-CZR9vjr-= zPk2Py+jgS7R-{WankT@o&=o=_r8k<*D-}Vl7ME{scW4Y4acc^#Ao;=a^0W z&Vc8LKPB8CJ^-8Bvb&_y(8(#%r|94@{zs@zUTZ9cE$oEblh)IjyplFAfOJWl?~)fu z*&2N3&HnpQSl$-iA+sS?&5wj-B&twhJ7%WZZtO_Dz7JPOd)da3#4nLQg>*0K==q49 z$oov5kFBTtt%R23C&dedP|E6IBPQDun-SbN8fPX$&m!U#3H+7cc~00)<3C92nPPCN z*}C+jf%Iydke!ad^WO_}Q)py30PutTtgq~F-QbT;=r zHl*_gHl3XES9H|f);o*+C@W#hqo`Yj(1>&v>MghV=ZFs@pji9^?@jN#FAJUbHSElc^ z7;o#jf6&Qe3agR%tIg!!nmqq^ya9FwXDO>eUV0iACls>zUCG;S+x%(sZqnD6CkgQg zwWZC!WImzpa?(}tGX^AJ{r7EySyWg_K|9j_P&f$7lUIhudY;;PQPk;77(yLAbuc~Y z4w#m7CEQH9FJU3^?+JQlS-WB!p(c4n^uNEXMaN@E6r@2IVLD*~c?E5QABmS$4?GJ9 zmnqLg7;Vcv1^h9QdcCm`cB1^t^F8sGB*Lg))hXab7C7zD559D9Lq=e)IJ*z3( zOW-l@-zf^JGvF*TJK`NIO6daPdNvT6k@pw%Qj?d0Fq`x?LVC)skp7jj>%_;C=Z_JD z5#(2}gBB#eITQOId3wIZCOZEb6!bYg> zMAOe}LU!^m5GD{WOxRDI>-gnK$XN48RC8^^Alp$5>qGKK6SO~L$?HcvCGlc(GL-mX z!gPY3ch)-AeAG!s{xf_^+v$XTq|4ayROFAdanJr|Bx5+0{w1>kGh2zB2*b!9>TT4&|4but zkqUagp;8OtQ;B<#uP2bap*Eh4hVdrbi6So_b-%;p)Y)e1*kb1c>60XWrA}g77Eb%W z$jf0Xozd@q`>D{Af=y(0AWS0NfUubG(l%U8{u|e- zrz!P=ZTk{gJDLszfM8#atMQC2^zes3`UO5FbM0OT_C_ zcA4~5;?sx+5e5_TQa;nRA?fTS-io}IN__Qr&i@3BCsJV`1$_yL3D3W(^qTls>XfEV zEt_9}iDj|zQ5BC9I{w8B9dMdhAXp zq|Qj|nM?UYf}TxQlQMsh|ULf93gnRgl~cI*5*H z(nwDp;;X;v_=w5&{JDldFH$c*-XIjBeQiQ3;>WQVmSo3v(Eb>4J)?=YbopbgNqhdE zk4F0V`l6=SzL5U|=&1lq diff --git a/locale/pt_BR/LC_MESSAGES/django.po b/locale/pt_BR/LC_MESSAGES/django.po index 495ea43b3..cf9eee066 100644 --- a/locale/pt_BR/LC_MESSAGES/django.po +++ b/locale/pt_BR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-02 16:40+0000\n" -"PO-Revision-Date: 2023-10-02 18:13\n" +"POT-Creation-Date: 2023-11-02 21:32+0000\n" +"PO-Revision-Date: 2023-11-02 22:29\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt\n" @@ -42,15 +42,15 @@ msgstr "{i} usos" msgid "Unlimited" msgstr "Ilimitado" -#: bookwyrm/forms/edit_user.py:88 +#: bookwyrm/forms/edit_user.py:104 msgid "Incorrect password" msgstr "Senha incorreta" -#: bookwyrm/forms/edit_user.py:95 bookwyrm/forms/landing.py:90 +#: bookwyrm/forms/edit_user.py:111 bookwyrm/forms/landing.py:90 msgid "Password does not match" msgstr "As senhas não correspondem" -#: bookwyrm/forms/edit_user.py:118 +#: bookwyrm/forms/edit_user.py:134 msgid "Incorrect Password" msgstr "Senha incorreta" @@ -102,8 +102,8 @@ msgstr "Ordem de inserção" msgid "Book Title" msgstr "Título do livro" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 +#: bookwyrm/templates/shelf/shelf.html:203 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Avaliação" @@ -145,7 +145,7 @@ msgstr "Perigo" msgid "Automatically generated report" msgstr "Relatório gerado automaticamente" -#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:47 +#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:48 #: bookwyrm/models/link.py:72 bookwyrm/templates/import/import_status.html:214 #: bookwyrm/templates/settings/link_domains/link_domains.html:19 msgid "Pending" @@ -171,23 +171,23 @@ msgstr "Exclusão de moderador" msgid "Domain block" msgstr "Bloqueio de domínio" -#: bookwyrm/models/book.py:283 +#: bookwyrm/models/book.py:282 msgid "Audiobook" msgstr "Audiolivro" -#: bookwyrm/models/book.py:284 +#: bookwyrm/models/book.py:283 msgid "eBook" msgstr "e-book" -#: bookwyrm/models/book.py:285 +#: bookwyrm/models/book.py:284 msgid "Graphic novel" msgstr "Graphic novel" -#: bookwyrm/models/book.py:286 +#: bookwyrm/models/book.py:285 msgid "Hardcover" msgstr "Capa dura" -#: bookwyrm/models/book.py:287 +#: bookwyrm/models/book.py:286 msgid "Paperback" msgstr "Capa mole" @@ -205,26 +205,26 @@ msgstr "Federado" msgid "Blocked" msgstr "Bloqueado" -#: bookwyrm/models/fields.py:29 +#: bookwyrm/models/fields.py:30 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s não é um remote_id válido" -#: bookwyrm/models/fields.py:38 bookwyrm/models/fields.py:47 +#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s não é um nome de usuário válido" -#: bookwyrm/models/fields.py:192 bookwyrm/templates/layout.html:128 +#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "nome de usuário" -#: bookwyrm/models/fields.py:197 +#: bookwyrm/models/fields.py:198 msgid "A user with that username already exists." msgstr "Já existe um usuário com este nome." -#: bookwyrm/models/fields.py:216 +#: bookwyrm/models/fields.py:217 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "Já existe um usuário com este nome." msgid "Public" msgstr "Público" -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:218 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Público" msgid "Unlisted" msgstr "Não listado" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:219 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Não listado" msgid "Followers" msgstr "Seguidores" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:220 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -258,30 +258,30 @@ msgstr "Seguidores" msgid "Private" msgstr "Particular" -#: bookwyrm/models/import_job.py:48 bookwyrm/templates/import/import.html:174 +#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:81 -#: bookwyrm/templates/settings/users/user_info.html:28 +#: bookwyrm/templates/settings/users/user_admin.html:87 +#: bookwyrm/templates/settings/users/user_info.html:33 msgid "Active" msgstr "Ativo" -#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:172 +#: bookwyrm/models/import_job.py:50 bookwyrm/templates/import/import.html:172 msgid "Complete" msgstr "Completo" -#: bookwyrm/models/import_job.py:50 +#: bookwyrm/models/import_job.py:51 msgid "Stopped" msgstr "Parado" -#: bookwyrm/models/import_job.py:83 bookwyrm/models/import_job.py:91 +#: bookwyrm/models/import_job.py:84 bookwyrm/models/import_job.py:92 msgid "Import stopped" msgstr "Importação interrompida" -#: bookwyrm/models/import_job.py:363 bookwyrm/models/import_job.py:388 +#: bookwyrm/models/import_job.py:356 bookwyrm/models/import_job.py:381 msgid "Error loading book" msgstr "Erro ao carregar livro" -#: bookwyrm/models/import_job.py:372 +#: bookwyrm/models/import_job.py:365 msgid "Could not find a match for book" msgstr "Não foi possível encontrar o livro" @@ -368,103 +368,103 @@ msgstr "Citações" msgid "Everything else" msgstr "Todo o resto" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home Timeline" msgstr "Linha do tempo" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home" msgstr "Página inicial" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 msgid "Books Timeline" msgstr "Linha do tempo dos livros" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:97 +#: bookwyrm/templates/user/layout.html:112 msgid "Books" msgstr "Livros" -#: bookwyrm/settings.py:296 +#: bookwyrm/settings.py:303 msgid "English" msgstr "English (Inglês)" -#: bookwyrm/settings.py:297 +#: bookwyrm/settings.py:304 msgid "Català (Catalan)" msgstr "Català (Catalão)" -#: bookwyrm/settings.py:298 +#: bookwyrm/settings.py:305 msgid "Deutsch (German)" msgstr "Deutsch (Alemão)" -#: bookwyrm/settings.py:299 +#: bookwyrm/settings.py:306 msgid "Esperanto (Esperanto)" msgstr "Esperanto (Esperanto)" -#: bookwyrm/settings.py:300 +#: bookwyrm/settings.py:307 msgid "Español (Spanish)" msgstr "Español (Espanhol)" -#: bookwyrm/settings.py:301 +#: bookwyrm/settings.py:308 msgid "Euskara (Basque)" msgstr "Euskara (Basco)" -#: bookwyrm/settings.py:302 +#: bookwyrm/settings.py:309 msgid "Galego (Galician)" msgstr "Galego (Galego)" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:310 msgid "Italiano (Italian)" msgstr "Italiano (Italiano)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:311 msgid "Suomi (Finnish)" msgstr "Suomi (Finlandês)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:312 msgid "Français (French)" msgstr "Français (Francês)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:313 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių (Lituano)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:314 msgid "Nederlands (Dutch)" msgstr "" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:315 msgid "Norsk (Norwegian)" msgstr "Norsk (Norueguês)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:316 msgid "Polski (Polish)" msgstr "Polski (Polonês)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:317 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil (Português do Brasil)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:318 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (Português Europeu)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:319 msgid "Română (Romanian)" msgstr "Română (Romeno)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:320 msgid "Svenska (Swedish)" msgstr "Svenska (Sueco)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:321 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文 (Chinês simplificado)" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:322 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (Chinês tradicional)" @@ -575,7 +575,7 @@ msgid "Software version:" msgstr "Versão do software:" #: bookwyrm/templates/about/layout.html:30 -#: bookwyrm/templates/embed-layout.html:33 +#: bookwyrm/templates/embed-layout.html:34 #: bookwyrm/templates/snippets/footer.html:8 #, python-format msgid "About %(site_name)s" @@ -680,7 +680,7 @@ msgstr "A leitura mais curta do ano…" #: bookwyrm/templates/annual_summary/layout.html:157 #: bookwyrm/templates/annual_summary/layout.html:178 #: bookwyrm/templates/annual_summary/layout.html:247 -#: bookwyrm/templates/book/book.html:63 +#: bookwyrm/templates/book/book.html:65 #: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/landing/large-book.html:26 #: bookwyrm/templates/landing/small-book.html:18 @@ -768,24 +768,24 @@ msgid "View ISNI record" msgstr "Ver registro ISNI" #: bookwyrm/templates/author/author.html:95 -#: bookwyrm/templates/book/book.html:173 +#: bookwyrm/templates/book/book.html:175 msgid "View on ISFDB" msgstr "Veja no ISFDB" #: bookwyrm/templates/author/author.html:100 #: bookwyrm/templates/author/sync_modal.html:5 -#: bookwyrm/templates/book/book.html:140 +#: bookwyrm/templates/book/book.html:142 #: bookwyrm/templates/book/sync_modal.html:5 msgid "Load data" msgstr "Carregar informações" #: bookwyrm/templates/author/author.html:104 -#: bookwyrm/templates/book/book.html:144 +#: bookwyrm/templates/book/book.html:146 msgid "View on OpenLibrary" msgstr "Ver na OpenLibrary" #: bookwyrm/templates/author/author.html:119 -#: bookwyrm/templates/book/book.html:158 +#: bookwyrm/templates/book/book.html:160 msgid "View on Inventaire" msgstr "Ver no Inventaire" @@ -797,11 +797,7 @@ msgstr "Ver no LibraryThing" msgid "View on Goodreads" msgstr "Ver no Goodreads" -#: bookwyrm/templates/author/author.html:151 -msgid "View ISFDB entry" -msgstr "Veja no ISFDB" - -#: bookwyrm/templates/author/author.html:166 +#: bookwyrm/templates/author/author.html:158 #, python-format msgid "Books by %(name)s" msgstr "Livros de %(name)s" @@ -959,19 +955,19 @@ msgstr "Confirmar" msgid "Unable to connect to remote source." msgstr "Não conseguimos nos conectar à fonte remota." -#: bookwyrm/templates/book/book.html:71 bookwyrm/templates/book/book.html:72 +#: bookwyrm/templates/book/book.html:73 bookwyrm/templates/book/book.html:74 msgid "Edit Book" msgstr "Editar livro" -#: bookwyrm/templates/book/book.html:97 bookwyrm/templates/book/book.html:100 +#: bookwyrm/templates/book/book.html:99 bookwyrm/templates/book/book.html:102 msgid "Click to add cover" msgstr "Clique para adicionar uma capa" -#: bookwyrm/templates/book/book.html:106 +#: bookwyrm/templates/book/book.html:108 msgid "Failed to load cover" msgstr "Erro ao carregar capa" -#: bookwyrm/templates/book/book.html:117 +#: bookwyrm/templates/book/book.html:119 msgid "Click to enlarge" msgstr "Clique para aumentar" @@ -1046,13 +1042,13 @@ msgstr "Lugares" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:90 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:91 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Listas" @@ -1117,8 +1113,8 @@ msgstr "Enviar capa:" #: bookwyrm/templates/book/cover_add_modal.html:23 #: bookwyrm/templates/book/edit/edit_book_form.html:250 -msgid "Load cover from url:" -msgstr "Carregar capa do endereço:" +msgid "Load cover from URL:" +msgstr "" #: bookwyrm/templates/book/cover_show_modal.html:6 msgid "Book cover preview" @@ -1328,7 +1324,7 @@ msgid "Add Another Author" msgstr "Adicionar outro/a autor/a" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:147 +#: bookwyrm/templates/shelf/shelf.html:162 msgid "Cover" msgstr "Capa" @@ -1529,22 +1525,22 @@ msgstr "%(pages)s páginas" msgid "%(languages)s language" msgstr "Língua: %(languages)s" -#: bookwyrm/templates/book/publisher_info.html:65 +#: bookwyrm/templates/book/publisher_info.html:63 #, python-format msgid "Published %(date)s by %(publisher)s." msgstr "Publicado em %(date)s por %(publisher)s." +#: bookwyrm/templates/book/publisher_info.html:65 +#, python-format +msgid "Published by %(publisher)s." +msgstr "Publicado por %(publisher)s." + #: bookwyrm/templates/book/publisher_info.html:67 #, python-format msgid "Published %(date)s" msgstr "Publicado em %(date)s" -#: bookwyrm/templates/book/publisher_info.html:69 -#, python-format -msgid "Published by %(publisher)s." -msgstr "Publicado por %(publisher)s." - -#: bookwyrm/templates/book/rating.html:13 +#: bookwyrm/templates/book/rating.html:19 msgid "rated it" msgstr "avaliou este livro" @@ -1552,12 +1548,12 @@ msgstr "avaliou este livro" msgid "Series by" msgstr "Séries de" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 #, python-format msgid "Book %(series_number)s" msgstr "Livro %(series_number)s" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 msgid "Unsorted Book" msgstr "Livro não ordenado" @@ -1587,7 +1583,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Desculpe! Não encontramos o código." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:92 +#: bookwyrm/templates/settings/users/user_info.html:98 msgid "Confirmation code:" msgstr "Código de confirmação:" @@ -1681,6 +1677,7 @@ msgstr "Sugerido" #: bookwyrm/templates/ostatus/subscribe.html:42 #: bookwyrm/templates/ostatus/success.html:17 #: bookwyrm/templates/ostatus/success.html:18 +#: bookwyrm/templates/user/moved.html:19 bookwyrm/templates/user/moved.html:20 #: bookwyrm/templates/user/user_preview.html:16 #: bookwyrm/templates/user/user_preview.html:17 msgid "Locked account" @@ -1755,7 +1752,7 @@ msgstr "%(username)s citou You have moved your account to %(username)s" +msgstr "" + +#: bookwyrm/templates/moved.html:32 +msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +msgid "Undo move" +msgstr "" + +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +msgid "Log out" +msgstr "Sair" + #: bookwyrm/templates/notifications/items/accept.html:18 #, python-format msgid "%(related_user)s accepted your invitation to join group \"%(group_name)s\"" @@ -3744,6 +3763,16 @@ msgstr "" msgid "%(related_user)s mentioned you in a status" msgstr "" +#: bookwyrm/templates/notifications/items/move_user.html:18 +#, python-format +msgid "%(related_user)s has moved to %(username)s" +msgstr "" + +#: bookwyrm/templates/notifications/items/move_user.html:25 +#, python-format +msgid "%(related_user)s has undone their move" +msgstr "" + #: bookwyrm/templates/notifications/items/remove.html:17 #, python-format msgid "has been removed from your group \"%(group_name)s\"" @@ -3782,7 +3811,7 @@ msgstr[0] "" msgstr[1] "" #: bookwyrm/templates/notifications/items/status_preview.html:4 -#: bookwyrm/templates/snippets/status/content_status.html:73 +#: bookwyrm/templates/snippets/status/content_status.html:62 msgid "Content warning" msgstr "Aviso de conteúdo" @@ -4000,9 +4029,51 @@ msgstr "" msgid "Set up 2FA" msgstr "" +#: bookwyrm/templates/preferences/alias_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:7 +#: bookwyrm/templates/preferences/move_user.html:39 +msgid "Move Account" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:7 +#: bookwyrm/templates/preferences/alias_user.html:34 +msgid "Create Alias" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:12 +msgid "Add another account as an alias" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:16 +msgid "Marking another account as an alias is required if you want to move that account to this one." +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:19 +msgid "This is a reversable action and will not change the functionality of this account." +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:25 +msgid "Enter the username for the account you want to add as an alias e.g. user@example.com :" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:30 +#: bookwyrm/templates/preferences/move_user.html:35 +msgid "Confirm your password:" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:39 +#: bookwyrm/templates/preferences/layout.html:28 +msgid "Aliases" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:49 +msgid "Remove alias" +msgstr "" + #: bookwyrm/templates/preferences/blocks.html:4 #: bookwyrm/templates/preferences/blocks.html:7 -#: bookwyrm/templates/preferences/layout.html:46 +#: bookwyrm/templates/preferences/layout.html:54 msgid "Blocked Users" msgstr "Usuários bloqueados" @@ -4032,7 +4103,7 @@ msgstr "Nova senha:" #: bookwyrm/templates/preferences/delete_user.html:4 #: bookwyrm/templates/preferences/delete_user.html:7 #: bookwyrm/templates/preferences/delete_user.html:40 -#: bookwyrm/templates/preferences/layout.html:28 +#: bookwyrm/templates/preferences/layout.html:36 #: bookwyrm/templates/settings/users/delete_user_form.html:22 msgid "Delete Account" msgstr "Excluir conta" @@ -4154,18 +4225,45 @@ msgstr "" msgid "Account" msgstr "Conta" -#: bookwyrm/templates/preferences/layout.html:31 +#: bookwyrm/templates/preferences/layout.html:32 +msgid "Move Account" +msgstr "" + +#: bookwyrm/templates/preferences/layout.html:39 msgid "Data" msgstr "Dados" -#: bookwyrm/templates/preferences/layout.html:39 +#: bookwyrm/templates/preferences/layout.html:47 msgid "CSV export" msgstr "Exportar CSV" -#: bookwyrm/templates/preferences/layout.html:42 +#: bookwyrm/templates/preferences/layout.html:50 msgid "Relationships" msgstr "Relações" +#: bookwyrm/templates/preferences/move_user.html:12 +msgid "Migrate account to another server" +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:16 +msgid "Moving your account will notify all your followers and direct them to follow the new account." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:19 +#, python-format +msgid "\n" +" %(user)s will be marked as moved and will not be discoverable or usable unless you undo the move.\n" +" " +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:25 +msgid "Remember to add this user as an alias of the target account before you try to move." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:30 +msgid "Enter the username for the account you want to move to e.g. user@example.com :" +msgstr "" + #: bookwyrm/templates/reading_progress/finish.html:5 #, python-format msgid "Finish \"%(book_title)s\"" @@ -4574,7 +4672,7 @@ msgid "Streams" msgstr "" #: bookwyrm/templates/settings/celery.html:32 -msgid "Broadcasts" +msgid "Broadcast" msgstr "" #: bookwyrm/templates/settings/celery.html:38 @@ -4900,19 +4998,19 @@ msgstr "Instância:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:119 msgid "Status:" msgstr "Status:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:107 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Software:" msgstr "Software:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:110 +#: bookwyrm/templates/settings/users/user_info.html:116 msgid "Version:" msgstr "Versão:" @@ -4925,7 +5023,7 @@ msgid "Details" msgstr "Detalhes" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:69 +#: bookwyrm/templates/user/layout.html:84 msgid "Activity" msgstr "Atividade" @@ -4939,7 +5037,7 @@ msgid "View all" msgstr "Ver todos" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:60 +#: bookwyrm/templates/settings/users/user_info.html:66 msgid "Reports:" msgstr "Denúncias:" @@ -4956,7 +5054,7 @@ msgid "Blocked by us:" msgstr "Bloqueados por nós:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:117 +#: bookwyrm/templates/settings/users/user_info.html:123 msgid "Notes" msgstr "Notas" @@ -5676,17 +5774,22 @@ msgstr "Última atividade" msgid "Remote instance" msgstr "Instância remota" -#: bookwyrm/templates/settings/users/user_admin.html:86 +#: bookwyrm/templates/settings/users/user_admin.html:82 +#: bookwyrm/templates/settings/users/user_info.html:29 +msgid "Moved" +msgstr "" + +#: bookwyrm/templates/settings/users/user_admin.html:93 msgid "Deleted" msgstr "" -#: bookwyrm/templates/settings/users/user_admin.html:92 -#: bookwyrm/templates/settings/users/user_info.html:32 +#: bookwyrm/templates/settings/users/user_admin.html:99 +#: bookwyrm/templates/settings/users/user_info.html:38 msgid "Inactive" msgstr "Inativo" -#: bookwyrm/templates/settings/users/user_admin.html:101 -#: bookwyrm/templates/settings/users/user_info.html:127 +#: bookwyrm/templates/settings/users/user_admin.html:108 +#: bookwyrm/templates/settings/users/user_info.html:133 msgid "Not set" msgstr "Não definido" @@ -5698,55 +5801,55 @@ msgstr "Ver perfil do usuário" msgid "Go to user admin" msgstr "Ir à administração de usuários" -#: bookwyrm/templates/settings/users/user_info.html:40 +#: bookwyrm/templates/settings/users/user_info.html:46 msgid "Local" msgstr "Local" -#: bookwyrm/templates/settings/users/user_info.html:42 +#: bookwyrm/templates/settings/users/user_info.html:48 msgid "Remote" msgstr "Remoto" -#: bookwyrm/templates/settings/users/user_info.html:51 +#: bookwyrm/templates/settings/users/user_info.html:57 msgid "User details" msgstr "Detalhes do usuário" -#: bookwyrm/templates/settings/users/user_info.html:55 +#: bookwyrm/templates/settings/users/user_info.html:61 msgid "Email:" msgstr "E-mail:" -#: bookwyrm/templates/settings/users/user_info.html:65 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "(View reports)" msgstr "(Ver denúncias)" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Blocked by count:" msgstr "Bloqueado por:" -#: bookwyrm/templates/settings/users/user_info.html:74 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Date added:" msgstr "Data da inclusão:" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Last active date:" msgstr "Data da última atividade:" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:86 msgid "Manually approved followers:" msgstr "Seguidores manualmente aprovados:" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:89 msgid "Discoverable:" msgstr "Publicamente visível:" -#: bookwyrm/templates/settings/users/user_info.html:87 +#: bookwyrm/templates/settings/users/user_info.html:93 msgid "Deactivation reason:" msgstr "Motivo de desativação:" -#: bookwyrm/templates/settings/users/user_info.html:102 +#: bookwyrm/templates/settings/users/user_info.html:108 msgid "Instance details" msgstr "Detalhes da instância" -#: bookwyrm/templates/settings/users/user_info.html:124 +#: bookwyrm/templates/settings/users/user_info.html:130 msgid "View instance" msgstr "Ver instância" @@ -5883,7 +5986,7 @@ msgid "Need help?" msgstr "Precisa de ajuda?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:72 +#: bookwyrm/templates/shelf/shelf.html:87 msgid "Create shelf" msgstr "Criar estante" @@ -5891,58 +5994,66 @@ msgstr "Criar estante" msgid "Edit Shelf" msgstr "Editar estante" -#: bookwyrm/templates/shelf/shelf.html:24 +#: bookwyrm/templates/shelf/shelf.html:25 +msgid "You have have moved to" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:28 +msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:39 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Perfil do usuário" -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:54 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Todos os livros" -#: bookwyrm/templates/shelf/shelf.html:97 +#: bookwyrm/templates/shelf/shelf.html:112 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s livro" msgstr[1] "%(formatted_count)s livros" -#: bookwyrm/templates/shelf/shelf.html:104 +#: bookwyrm/templates/shelf/shelf.html:119 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(mostrando %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:116 +#: bookwyrm/templates/shelf/shelf.html:131 msgid "Edit shelf" msgstr "Editar estante" -#: bookwyrm/templates/shelf/shelf.html:124 +#: bookwyrm/templates/shelf/shelf.html:139 msgid "Delete shelf" msgstr "Excluir estante" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:178 +#: bookwyrm/templates/shelf/shelf.html:167 +#: bookwyrm/templates/shelf/shelf.html:193 msgid "Shelved" msgstr "Adicionado" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:181 +#: bookwyrm/templates/shelf/shelf.html:168 +#: bookwyrm/templates/shelf/shelf.html:196 msgid "Started" msgstr "Iniciado" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Finished" msgstr "Terminado" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Until" msgstr "" -#: bookwyrm/templates/shelf/shelf.html:210 +#: bookwyrm/templates/shelf/shelf.html:225 msgid "This shelf is empty." msgstr "Esta estante está vazia." @@ -6248,6 +6359,10 @@ msgstr "Você leu %(read_count)s de %(goal_count)s livros%(read_count)s of %(goal_count)s books." msgstr "%(username)s leu %(read_count)s de %(goal_count)s livros." +#: bookwyrm/templates/snippets/move_user_buttons.html:10 +msgid "Follow at new account" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6389,35 +6504,35 @@ msgstr "" msgid "Finish reading" msgstr "Terminar de ler" -#: bookwyrm/templates/snippets/status/content_status.html:80 +#: bookwyrm/templates/snippets/status/content_status.html:69 msgid "Show status" msgstr "Mostrar publicação" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "(Page %(page)s" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "%(endpage)s" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid "(%(percent)s%%" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid " - %(endpercent)s%%" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:127 +#: bookwyrm/templates/snippets/status/content_status.html:116 msgid "Open image in new window" msgstr "Abrir imagem em nova janela" -#: bookwyrm/templates/snippets/status/content_status.html:148 +#: bookwyrm/templates/snippets/status/content_status.html:137 msgid "Hide status" msgstr "Esconder publicação" @@ -6609,10 +6724,14 @@ msgid "Groups: %(username)s" msgstr "Grupos: %(username)s" #: bookwyrm/templates/user/layout.html:50 +msgid "has moved to" +msgstr "" + +#: bookwyrm/templates/user/layout.html:64 msgid "Follow Requests" msgstr "Solicitações para seguir" -#: bookwyrm/templates/user/layout.html:73 +#: bookwyrm/templates/user/layout.html:88 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6627,6 +6746,12 @@ msgstr "Listas: %(username)s" msgid "Create list" msgstr "Criar lista" +#: bookwyrm/templates/user/moved.html:25 +#: bookwyrm/templates/user/user_preview.html:22 +#, python-format +msgid "Joined %(date)s" +msgstr "Entrou %(date)s" + #: bookwyrm/templates/user/relationships/followers.html:31 #, python-format msgid "%(username)s has no followers" @@ -6698,11 +6823,6 @@ msgstr "" msgid "No activities yet!" msgstr "Nenhuma atividade ainda!" -#: bookwyrm/templates/user/user_preview.html:22 -#, python-format -msgid "Joined %(date)s" -msgstr "Entrou %(date)s" - #: bookwyrm/templates/user/user_preview.html:26 #, python-format msgid "%(display_count)s follower" @@ -6730,10 +6850,6 @@ msgstr "Nenhum seguidor que você segue" msgid "View profile and more" msgstr "Ver perfil e mais" -#: bookwyrm/templates/user_menu.html:82 -msgid "Log out" -msgstr "Sair" - #: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:28 msgid "File exceeds maximum size: 10MB" msgstr "Arquivo excede o tamanho máximo: 10MB" @@ -6750,7 +6866,7 @@ msgid_plural "%(num)d books - by %(user)s" msgstr[0] "" msgstr[1] "" -#: bookwyrm/templatetags/utilities.py:39 +#: bookwyrm/templatetags/utilities.py:48 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s" diff --git a/locale/pt_PT/LC_MESSAGES/django.mo b/locale/pt_PT/LC_MESSAGES/django.mo index 4e2f18bcbbc5be2dfd3fd9b19f47925cf4850486..0fa86ece7dbd1d09a6027fa7cda2a1aa8241db2b 100644 GIT binary patch delta 29886 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 delta 30060 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 ivy-X&pgXgb`anxQ|%P?=H+O)nU;\n" "Language-Team: Portuguese\n" "Language: pt\n" @@ -42,15 +42,15 @@ msgstr "{i} utilizações" msgid "Unlimited" msgstr "Ilimitado" -#: bookwyrm/forms/edit_user.py:88 +#: bookwyrm/forms/edit_user.py:104 msgid "Incorrect password" msgstr "Palavra-passe incorreta" -#: bookwyrm/forms/edit_user.py:95 bookwyrm/forms/landing.py:90 +#: bookwyrm/forms/edit_user.py:111 bookwyrm/forms/landing.py:90 msgid "Password does not match" msgstr "Palavras-passe não coincidem" -#: bookwyrm/forms/edit_user.py:118 +#: bookwyrm/forms/edit_user.py:134 msgid "Incorrect Password" msgstr "Palavra-passe Incorreta" @@ -102,8 +102,8 @@ msgstr "Ordem da Lista" msgid "Book Title" msgstr "Título do livro" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 +#: bookwyrm/templates/shelf/shelf.html:203 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Classificação" @@ -145,7 +145,7 @@ msgstr "Perigo" msgid "Automatically generated report" msgstr "Relatório gerado automaticamente" -#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:47 +#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:48 #: bookwyrm/models/link.py:72 bookwyrm/templates/import/import_status.html:214 #: bookwyrm/templates/settings/link_domains/link_domains.html:19 msgid "Pending" @@ -171,23 +171,23 @@ msgstr "Exclusão do moderador" msgid "Domain block" msgstr "Bloqueio de domínio" -#: bookwyrm/models/book.py:283 +#: bookwyrm/models/book.py:282 msgid "Audiobook" msgstr "Livro-áudio" -#: bookwyrm/models/book.py:284 +#: bookwyrm/models/book.py:283 msgid "eBook" msgstr "eBook" -#: bookwyrm/models/book.py:285 +#: bookwyrm/models/book.py:284 msgid "Graphic novel" msgstr "Novela gráfica" -#: bookwyrm/models/book.py:286 +#: bookwyrm/models/book.py:285 msgid "Hardcover" msgstr "Capa dura" -#: bookwyrm/models/book.py:287 +#: bookwyrm/models/book.py:286 msgid "Paperback" msgstr "Capa mole" @@ -205,26 +205,26 @@ msgstr "Federado" msgid "Blocked" msgstr "Bloqueado" -#: bookwyrm/models/fields.py:29 +#: bookwyrm/models/fields.py:30 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s não é um remote_id válido" -#: bookwyrm/models/fields.py:38 bookwyrm/models/fields.py:47 +#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s não é um nome de utilizador válido" -#: bookwyrm/models/fields.py:192 bookwyrm/templates/layout.html:128 +#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "nome de utilizador" -#: bookwyrm/models/fields.py:197 +#: bookwyrm/models/fields.py:198 msgid "A user with that username already exists." msgstr "Um utilizador com o mesmo nome de utilizador já existe." -#: bookwyrm/models/fields.py:216 +#: bookwyrm/models/fields.py:217 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "Um utilizador com o mesmo nome de utilizador já existe." msgid "Public" msgstr "Público" -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:218 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Público" msgid "Unlisted" msgstr "Não listado" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:219 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Não listado" msgid "Followers" msgstr "Seguidores" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:220 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -258,30 +258,30 @@ msgstr "Seguidores" msgid "Private" msgstr "Privado" -#: bookwyrm/models/import_job.py:48 bookwyrm/templates/import/import.html:174 +#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:81 -#: bookwyrm/templates/settings/users/user_info.html:28 +#: bookwyrm/templates/settings/users/user_admin.html:87 +#: bookwyrm/templates/settings/users/user_info.html:33 msgid "Active" msgstr "Ativo" -#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:172 +#: bookwyrm/models/import_job.py:50 bookwyrm/templates/import/import.html:172 msgid "Complete" msgstr "Concluído" -#: bookwyrm/models/import_job.py:50 +#: bookwyrm/models/import_job.py:51 msgid "Stopped" msgstr "Parado" -#: bookwyrm/models/import_job.py:83 bookwyrm/models/import_job.py:91 +#: bookwyrm/models/import_job.py:84 bookwyrm/models/import_job.py:92 msgid "Import stopped" msgstr "A importação parou" -#: bookwyrm/models/import_job.py:363 bookwyrm/models/import_job.py:388 +#: bookwyrm/models/import_job.py:356 bookwyrm/models/import_job.py:381 msgid "Error loading book" msgstr "Erro ao carregar o livro" -#: bookwyrm/models/import_job.py:372 +#: bookwyrm/models/import_job.py:365 msgid "Could not find a match for book" msgstr "Não foi possível encontrar um resultado para o livro pedido" @@ -368,103 +368,103 @@ msgstr "Citações" msgid "Everything else" msgstr "Tudo o resto" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home Timeline" msgstr "Cronograma Inicial" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home" msgstr "Início" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 msgid "Books Timeline" msgstr "Cronograma de Livros" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:97 +#: bookwyrm/templates/user/layout.html:112 msgid "Books" msgstr "Livros" -#: bookwyrm/settings.py:296 +#: bookwyrm/settings.py:303 msgid "English" msgstr "Inglês" -#: bookwyrm/settings.py:297 +#: bookwyrm/settings.py:304 msgid "Català (Catalan)" msgstr "Català (catalão)" -#: bookwyrm/settings.py:298 +#: bookwyrm/settings.py:305 msgid "Deutsch (German)" msgstr "Deutsch (Alemão)" -#: bookwyrm/settings.py:299 +#: bookwyrm/settings.py:306 msgid "Esperanto (Esperanto)" msgstr "Esperanto (Esperanto)" -#: bookwyrm/settings.py:300 +#: bookwyrm/settings.py:307 msgid "Español (Spanish)" msgstr "Español (Espanhol)" -#: bookwyrm/settings.py:301 +#: bookwyrm/settings.py:308 msgid "Euskara (Basque)" msgstr "Euskara (Basco)" -#: bookwyrm/settings.py:302 +#: bookwyrm/settings.py:309 msgid "Galego (Galician)" msgstr "Galego (Galician)" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:310 msgid "Italiano (Italian)" msgstr "Italiano (Italiano)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:311 msgid "Suomi (Finnish)" msgstr "Suomi (finlandês)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:312 msgid "Français (French)" msgstr "Français (Francês)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:313 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių (lituano)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:314 msgid "Nederlands (Dutch)" msgstr "" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:315 msgid "Norsk (Norwegian)" msgstr "Norsk (Norueguês)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:316 msgid "Polski (Polish)" msgstr "Polski (Polaco)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:317 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil (Português brasileiro)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:318 msgid "Português Europeu (European Portuguese)" msgstr "Português (Português Europeu)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:319 msgid "Română (Romanian)" msgstr "Română (Romeno)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:320 msgid "Svenska (Swedish)" msgstr "Svenska (sueco)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:321 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文 (Chinês simplificado)" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:322 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (Chinês tradicional)" @@ -575,7 +575,7 @@ msgid "Software version:" msgstr "Versão do software:" #: bookwyrm/templates/about/layout.html:30 -#: bookwyrm/templates/embed-layout.html:33 +#: bookwyrm/templates/embed-layout.html:34 #: bookwyrm/templates/snippets/footer.html:8 #, python-format msgid "About %(site_name)s" @@ -680,7 +680,7 @@ msgstr "A sua menor leitura este ano…" #: bookwyrm/templates/annual_summary/layout.html:157 #: bookwyrm/templates/annual_summary/layout.html:178 #: bookwyrm/templates/annual_summary/layout.html:247 -#: bookwyrm/templates/book/book.html:63 +#: bookwyrm/templates/book/book.html:65 #: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/landing/large-book.html:26 #: bookwyrm/templates/landing/small-book.html:18 @@ -768,24 +768,24 @@ msgid "View ISNI record" msgstr "Ver registro do ISNI" #: bookwyrm/templates/author/author.html:95 -#: bookwyrm/templates/book/book.html:173 +#: bookwyrm/templates/book/book.html:175 msgid "View on ISFDB" msgstr "Ver no ISFDB" #: bookwyrm/templates/author/author.html:100 #: bookwyrm/templates/author/sync_modal.html:5 -#: bookwyrm/templates/book/book.html:140 +#: bookwyrm/templates/book/book.html:142 #: bookwyrm/templates/book/sync_modal.html:5 msgid "Load data" msgstr "Carregar dados" #: bookwyrm/templates/author/author.html:104 -#: bookwyrm/templates/book/book.html:144 +#: bookwyrm/templates/book/book.html:146 msgid "View on OpenLibrary" msgstr "Ver na OpenLibrary" #: bookwyrm/templates/author/author.html:119 -#: bookwyrm/templates/book/book.html:158 +#: bookwyrm/templates/book/book.html:160 msgid "View on Inventaire" msgstr "Ver no Inventaire" @@ -797,11 +797,7 @@ msgstr "Ver na LibraryThing" msgid "View on Goodreads" msgstr "Ver na Goodreads" -#: bookwyrm/templates/author/author.html:151 -msgid "View ISFDB entry" -msgstr "Ver entrada ISFDB" - -#: bookwyrm/templates/author/author.html:166 +#: bookwyrm/templates/author/author.html:158 #, python-format msgid "Books by %(name)s" msgstr "Livros por %(name)s" @@ -959,19 +955,19 @@ msgstr "Confirmar" msgid "Unable to connect to remote source." msgstr "Não foi possível conectar à fonte remota." -#: bookwyrm/templates/book/book.html:71 bookwyrm/templates/book/book.html:72 +#: bookwyrm/templates/book/book.html:73 bookwyrm/templates/book/book.html:74 msgid "Edit Book" msgstr "Editar Livro" -#: bookwyrm/templates/book/book.html:97 bookwyrm/templates/book/book.html:100 +#: bookwyrm/templates/book/book.html:99 bookwyrm/templates/book/book.html:102 msgid "Click to add cover" msgstr "Clica para adicionar capa" -#: bookwyrm/templates/book/book.html:106 +#: bookwyrm/templates/book/book.html:108 msgid "Failed to load cover" msgstr "Não foi possível carregar a capa" -#: bookwyrm/templates/book/book.html:117 +#: bookwyrm/templates/book/book.html:119 msgid "Click to enlarge" msgstr "Clica para ampliar" @@ -1046,13 +1042,13 @@ msgstr "Lugares" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:90 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:91 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Listas" @@ -1117,8 +1113,8 @@ msgstr "Carregar uma capa:" #: bookwyrm/templates/book/cover_add_modal.html:23 #: bookwyrm/templates/book/edit/edit_book_form.html:250 -msgid "Load cover from url:" -msgstr "Carregar capa através de um Url:" +msgid "Load cover from URL:" +msgstr "" #: bookwyrm/templates/book/cover_show_modal.html:6 msgid "Book cover preview" @@ -1328,7 +1324,7 @@ msgid "Add Another Author" msgstr "Adicionar outro autor(a)" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:147 +#: bookwyrm/templates/shelf/shelf.html:162 msgid "Cover" msgstr "Capa" @@ -1529,22 +1525,22 @@ msgstr "%(pages)s páginas" msgid "%(languages)s language" msgstr "%(languages)s idioma" -#: bookwyrm/templates/book/publisher_info.html:65 +#: bookwyrm/templates/book/publisher_info.html:63 #, python-format msgid "Published %(date)s by %(publisher)s." msgstr "Publicado em %(date)s por %(publisher)s." +#: bookwyrm/templates/book/publisher_info.html:65 +#, python-format +msgid "Published by %(publisher)s." +msgstr "Publicado por %(publisher)s." + #: bookwyrm/templates/book/publisher_info.html:67 #, python-format msgid "Published %(date)s" msgstr "Publicado em %(date)s" -#: bookwyrm/templates/book/publisher_info.html:69 -#, python-format -msgid "Published by %(publisher)s." -msgstr "Publicado por %(publisher)s." - -#: bookwyrm/templates/book/rating.html:13 +#: bookwyrm/templates/book/rating.html:19 msgid "rated it" msgstr "avalia-o" @@ -1552,12 +1548,12 @@ msgstr "avalia-o" msgid "Series by" msgstr "Série por" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 #, python-format msgid "Book %(series_number)s" msgstr "Livro %(series_number)s" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 msgid "Unsorted Book" msgstr "Livro não organizado" @@ -1587,7 +1583,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Pedimos desculpa, não conseguimos encontrar esse código." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:92 +#: bookwyrm/templates/settings/users/user_info.html:98 msgid "Confirmation code:" msgstr "Código de confirmação:" @@ -1681,6 +1677,7 @@ msgstr "Sugerido" #: bookwyrm/templates/ostatus/subscribe.html:42 #: bookwyrm/templates/ostatus/success.html:17 #: bookwyrm/templates/ostatus/success.html:18 +#: bookwyrm/templates/user/moved.html:19 bookwyrm/templates/user/moved.html:20 #: bookwyrm/templates/user/user_preview.html:16 #: bookwyrm/templates/user/user_preview.html:17 msgid "Locked account" @@ -1755,7 +1752,7 @@ msgstr "%(username)s citou You have moved your account to %(username)s" +msgstr "" + +#: bookwyrm/templates/moved.html:32 +msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +msgid "Undo move" +msgstr "" + +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +msgid "Log out" +msgstr "Terminar sessão" + #: bookwyrm/templates/notifications/items/accept.html:18 #, python-format msgid "%(related_user)s accepted your invitation to join group \"%(group_name)s\"" @@ -3744,6 +3763,16 @@ msgstr "%(related_user)s menciounou-te num msgid "%(related_user)s mentioned you in a status" msgstr "%(related_user)s mencionou-te numa actualização de estado" +#: bookwyrm/templates/notifications/items/move_user.html:18 +#, python-format +msgid "%(related_user)s has moved to %(username)s" +msgstr "" + +#: bookwyrm/templates/notifications/items/move_user.html:25 +#, python-format +msgid "%(related_user)s has undone their move" +msgstr "" + #: bookwyrm/templates/notifications/items/remove.html:17 #, python-format msgid "has been removed from your group \"%(group_name)s\"" @@ -3782,7 +3811,7 @@ msgstr[0] "" msgstr[1] "%(display_count)s novos domínio do link precisam de moderação" #: bookwyrm/templates/notifications/items/status_preview.html:4 -#: bookwyrm/templates/snippets/status/content_status.html:73 +#: bookwyrm/templates/snippets/status/content_status.html:62 msgid "Content warning" msgstr "Aviso de Conteúdo" @@ -4000,9 +4029,51 @@ msgstr "Confirma a tua palavra-passe para começar a configurar o 2FA." msgid "Set up 2FA" msgstr "Configurar 2FA" +#: bookwyrm/templates/preferences/alias_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:7 +#: bookwyrm/templates/preferences/move_user.html:39 +msgid "Move Account" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:7 +#: bookwyrm/templates/preferences/alias_user.html:34 +msgid "Create Alias" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:12 +msgid "Add another account as an alias" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:16 +msgid "Marking another account as an alias is required if you want to move that account to this one." +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:19 +msgid "This is a reversable action and will not change the functionality of this account." +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:25 +msgid "Enter the username for the account you want to add as an alias e.g. user@example.com :" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:30 +#: bookwyrm/templates/preferences/move_user.html:35 +msgid "Confirm your password:" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:39 +#: bookwyrm/templates/preferences/layout.html:28 +msgid "Aliases" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:49 +msgid "Remove alias" +msgstr "" + #: bookwyrm/templates/preferences/blocks.html:4 #: bookwyrm/templates/preferences/blocks.html:7 -#: bookwyrm/templates/preferences/layout.html:46 +#: bookwyrm/templates/preferences/layout.html:54 msgid "Blocked Users" msgstr "Utilizadores Bloqueados" @@ -4032,7 +4103,7 @@ msgstr "Nova Palavra-passe:" #: bookwyrm/templates/preferences/delete_user.html:4 #: bookwyrm/templates/preferences/delete_user.html:7 #: bookwyrm/templates/preferences/delete_user.html:40 -#: bookwyrm/templates/preferences/layout.html:28 +#: bookwyrm/templates/preferences/layout.html:36 #: bookwyrm/templates/settings/users/delete_user_form.html:22 msgid "Delete Account" msgstr "Apagar conta" @@ -4154,18 +4225,45 @@ msgstr "Descarregar ficheiro" msgid "Account" msgstr "Conta" -#: bookwyrm/templates/preferences/layout.html:31 +#: bookwyrm/templates/preferences/layout.html:32 +msgid "Move Account" +msgstr "" + +#: bookwyrm/templates/preferences/layout.html:39 msgid "Data" msgstr "Dados" -#: bookwyrm/templates/preferences/layout.html:39 +#: bookwyrm/templates/preferences/layout.html:47 msgid "CSV export" msgstr "Exportar CSV" -#: bookwyrm/templates/preferences/layout.html:42 +#: bookwyrm/templates/preferences/layout.html:50 msgid "Relationships" msgstr "Relacionamentos" +#: bookwyrm/templates/preferences/move_user.html:12 +msgid "Migrate account to another server" +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:16 +msgid "Moving your account will notify all your followers and direct them to follow the new account." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:19 +#, python-format +msgid "\n" +" %(user)s will be marked as moved and will not be discoverable or usable unless you undo the move.\n" +" " +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:25 +msgid "Remember to add this user as an alias of the target account before you try to move." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:30 +msgid "Enter the username for the account you want to move to e.g. user@example.com :" +msgstr "" + #: bookwyrm/templates/reading_progress/finish.html:5 #, python-format msgid "Finish \"%(book_title)s\"" @@ -4574,8 +4672,8 @@ msgid "Streams" msgstr "" #: bookwyrm/templates/settings/celery.html:32 -msgid "Broadcasts" -msgstr "Transmissões" +msgid "Broadcast" +msgstr "" #: bookwyrm/templates/settings/celery.html:38 msgid "Inbox" @@ -4900,19 +4998,19 @@ msgstr "Domínio:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:119 msgid "Status:" msgstr "Estado:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:107 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Software:" msgstr "Software:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:110 +#: bookwyrm/templates/settings/users/user_info.html:116 msgid "Version:" msgstr "Versão:" @@ -4925,7 +5023,7 @@ msgid "Details" msgstr "Detalhes" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:69 +#: bookwyrm/templates/user/layout.html:84 msgid "Activity" msgstr "Actividade" @@ -4939,7 +5037,7 @@ msgid "View all" msgstr "Ver todos" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:60 +#: bookwyrm/templates/settings/users/user_info.html:66 msgid "Reports:" msgstr "Denúncias:" @@ -4956,7 +5054,7 @@ msgid "Blocked by us:" msgstr "Bloqueado por nós:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:117 +#: bookwyrm/templates/settings/users/user_info.html:123 msgid "Notes" msgstr "Notas" @@ -5676,17 +5774,22 @@ msgstr "Última atividade" msgid "Remote instance" msgstr "Domínio remoto" -#: bookwyrm/templates/settings/users/user_admin.html:86 +#: bookwyrm/templates/settings/users/user_admin.html:82 +#: bookwyrm/templates/settings/users/user_info.html:29 +msgid "Moved" +msgstr "" + +#: bookwyrm/templates/settings/users/user_admin.html:93 msgid "Deleted" msgstr "Apagado" -#: bookwyrm/templates/settings/users/user_admin.html:92 -#: bookwyrm/templates/settings/users/user_info.html:32 +#: bookwyrm/templates/settings/users/user_admin.html:99 +#: bookwyrm/templates/settings/users/user_info.html:38 msgid "Inactive" msgstr "Inativo" -#: bookwyrm/templates/settings/users/user_admin.html:101 -#: bookwyrm/templates/settings/users/user_info.html:127 +#: bookwyrm/templates/settings/users/user_admin.html:108 +#: bookwyrm/templates/settings/users/user_info.html:133 msgid "Not set" msgstr "Não definido" @@ -5698,55 +5801,55 @@ msgstr "Ver perfil do utilizador" msgid "Go to user admin" msgstr "Ir para a administração de utilizadores" -#: bookwyrm/templates/settings/users/user_info.html:40 +#: bookwyrm/templates/settings/users/user_info.html:46 msgid "Local" msgstr "Local" -#: bookwyrm/templates/settings/users/user_info.html:42 +#: bookwyrm/templates/settings/users/user_info.html:48 msgid "Remote" msgstr "Remoto" -#: bookwyrm/templates/settings/users/user_info.html:51 +#: bookwyrm/templates/settings/users/user_info.html:57 msgid "User details" msgstr "Detalhes do Utilizador" -#: bookwyrm/templates/settings/users/user_info.html:55 +#: bookwyrm/templates/settings/users/user_info.html:61 msgid "Email:" msgstr "Email:" -#: bookwyrm/templates/settings/users/user_info.html:65 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "(View reports)" msgstr "(Ver denúncias)" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Blocked by count:" msgstr "Bloqueado por contagem:" -#: bookwyrm/templates/settings/users/user_info.html:74 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Date added:" msgstr "Data de adição:" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Last active date:" msgstr "Última vez ativo:" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:86 msgid "Manually approved followers:" msgstr "Seguidores manualmente aprovados:" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:89 msgid "Discoverable:" msgstr "Detetável:" -#: bookwyrm/templates/settings/users/user_info.html:87 +#: bookwyrm/templates/settings/users/user_info.html:93 msgid "Deactivation reason:" msgstr "Razão da desativação:" -#: bookwyrm/templates/settings/users/user_info.html:102 +#: bookwyrm/templates/settings/users/user_info.html:108 msgid "Instance details" msgstr "Detalhes do domínio" -#: bookwyrm/templates/settings/users/user_info.html:124 +#: bookwyrm/templates/settings/users/user_info.html:130 msgid "View instance" msgstr "Ver domínio" @@ -5883,7 +5986,7 @@ msgid "Need help?" msgstr "Precisas de ajuda?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:72 +#: bookwyrm/templates/shelf/shelf.html:87 msgid "Create shelf" msgstr "Criar prateleira" @@ -5891,58 +5994,66 @@ msgstr "Criar prateleira" msgid "Edit Shelf" msgstr "Editar prateleira" -#: bookwyrm/templates/shelf/shelf.html:24 +#: bookwyrm/templates/shelf/shelf.html:25 +msgid "You have have moved to" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:28 +msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:39 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Perfil de utilizador" -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:54 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Todos os livros" -#: bookwyrm/templates/shelf/shelf.html:97 +#: bookwyrm/templates/shelf/shelf.html:112 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s livro" msgstr[1] "%(formatted_count)s livros" -#: bookwyrm/templates/shelf/shelf.html:104 +#: bookwyrm/templates/shelf/shelf.html:119 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(a exibir %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:116 +#: bookwyrm/templates/shelf/shelf.html:131 msgid "Edit shelf" msgstr "Editar prateleira" -#: bookwyrm/templates/shelf/shelf.html:124 +#: bookwyrm/templates/shelf/shelf.html:139 msgid "Delete shelf" msgstr "Apagar prateleira" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:178 +#: bookwyrm/templates/shelf/shelf.html:167 +#: bookwyrm/templates/shelf/shelf.html:193 msgid "Shelved" msgstr "Arquivado" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:181 +#: bookwyrm/templates/shelf/shelf.html:168 +#: bookwyrm/templates/shelf/shelf.html:196 msgid "Started" msgstr "Iniciado" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Finished" msgstr "Concluído" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Until" msgstr "Até" -#: bookwyrm/templates/shelf/shelf.html:210 +#: bookwyrm/templates/shelf/shelf.html:225 msgid "This shelf is empty." msgstr "Esta prateleira está vazia." @@ -6248,6 +6359,10 @@ msgstr "Leste %(read_count)s de %(goal_count)s livros." msgid "%(username)s has read %(read_count)s of %(goal_count)s books." msgstr "%(username)s leu %(read_count)s de %(goal_count)s livros." +#: bookwyrm/templates/snippets/move_user_buttons.html:10 +msgid "Follow at new account" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6389,35 +6504,35 @@ msgstr "Parar de ler" msgid "Finish reading" msgstr "Terminar leitura" -#: bookwyrm/templates/snippets/status/content_status.html:80 +#: bookwyrm/templates/snippets/status/content_status.html:69 msgid "Show status" msgstr "Mostrar o estado" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "(Page %(page)s" msgstr "(Página %(page)s" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "%(endpage)s" msgstr "%(endpage)s" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid "(%(percent)s%%" msgstr "(%(percent)s%%" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid " - %(endpercent)s%%" msgstr " - %(endpercent)s%%" -#: bookwyrm/templates/snippets/status/content_status.html:127 +#: bookwyrm/templates/snippets/status/content_status.html:116 msgid "Open image in new window" msgstr "Abrir imagem numa nova janela" -#: bookwyrm/templates/snippets/status/content_status.html:148 +#: bookwyrm/templates/snippets/status/content_status.html:137 msgid "Hide status" msgstr "Ocultar estado" @@ -6609,10 +6724,14 @@ msgid "Groups: %(username)s" msgstr "Grupos: %(username)s" #: bookwyrm/templates/user/layout.html:50 +msgid "has moved to" +msgstr "" + +#: bookwyrm/templates/user/layout.html:64 msgid "Follow Requests" msgstr "Solicitações para seguir" -#: bookwyrm/templates/user/layout.html:73 +#: bookwyrm/templates/user/layout.html:88 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6627,6 +6746,12 @@ msgstr "Listas: %(username)s" msgid "Create list" msgstr "Criar lista" +#: bookwyrm/templates/user/moved.html:25 +#: bookwyrm/templates/user/user_preview.html:22 +#, python-format +msgid "Joined %(date)s" +msgstr "Juntou-se em %(date)s" + #: bookwyrm/templates/user/relationships/followers.html:31 #, python-format msgid "%(username)s has no followers" @@ -6698,11 +6823,6 @@ msgstr "Apenas comentários" msgid "No activities yet!" msgstr "Ainda sem atividade!" -#: bookwyrm/templates/user/user_preview.html:22 -#, python-format -msgid "Joined %(date)s" -msgstr "Juntou-se em %(date)s" - #: bookwyrm/templates/user/user_preview.html:26 #, python-format msgid "%(display_count)s follower" @@ -6730,10 +6850,6 @@ msgstr "Não há seguidores que tu segues" msgid "View profile and more" msgstr "Visualizar perfil e mais" -#: bookwyrm/templates/user_menu.html:82 -msgid "Log out" -msgstr "Terminar sessão" - #: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:28 msgid "File exceeds maximum size: 10MB" msgstr "Ficheiro excede o tamanho máximo: 10MB" @@ -6750,7 +6866,7 @@ msgid_plural "%(num)d books - by %(user)s" msgstr[0] "" msgstr[1] "" -#: bookwyrm/templatetags/utilities.py:39 +#: bookwyrm/templatetags/utilities.py:48 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s" diff --git a/locale/ro_RO/LC_MESSAGES/django.mo b/locale/ro_RO/LC_MESSAGES/django.mo index 7aa5899d19d92c606ad6941aff77df8c2a7c9863..1adb9470a35d5c9d6da68b6e5ed77cd89c5f1a06 100644 GIT binary patch delta 26468 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 F`ag(O*M9&2 delta 26604 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 diff --git a/locale/ro_RO/LC_MESSAGES/django.po b/locale/ro_RO/LC_MESSAGES/django.po index 54e13162c..ae743b734 100644 --- a/locale/ro_RO/LC_MESSAGES/django.po +++ b/locale/ro_RO/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-02 16:40+0000\n" -"PO-Revision-Date: 2023-10-02 18:13\n" +"POT-Creation-Date: 2023-11-02 21:32+0000\n" +"PO-Revision-Date: 2023-11-02 22:29\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Romanian\n" "Language: ro\n" @@ -42,15 +42,15 @@ msgstr "{i} utilizări" msgid "Unlimited" msgstr "Nelimitat" -#: bookwyrm/forms/edit_user.py:88 +#: bookwyrm/forms/edit_user.py:104 msgid "Incorrect password" msgstr "Parolă incorectă" -#: bookwyrm/forms/edit_user.py:95 bookwyrm/forms/landing.py:90 +#: bookwyrm/forms/edit_user.py:111 bookwyrm/forms/landing.py:90 msgid "Password does not match" msgstr "Parola nu se potrivește" -#: bookwyrm/forms/edit_user.py:118 +#: bookwyrm/forms/edit_user.py:134 msgid "Incorrect Password" msgstr "" @@ -102,8 +102,8 @@ msgstr "Ordonează după listă" msgid "Book Title" msgstr "Titlul cărții" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 +#: bookwyrm/templates/shelf/shelf.html:203 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Rating" @@ -145,7 +145,7 @@ msgstr "Pericol" msgid "Automatically generated report" msgstr "Raport generat automat" -#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:47 +#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:48 #: bookwyrm/models/link.py:72 bookwyrm/templates/import/import_status.html:214 #: bookwyrm/templates/settings/link_domains/link_domains.html:19 msgid "Pending" @@ -171,23 +171,23 @@ msgstr "Șters de moderator" msgid "Domain block" msgstr "Blocat de domeniu" -#: bookwyrm/models/book.py:283 +#: bookwyrm/models/book.py:282 msgid "Audiobook" msgstr "Carte audio" -#: bookwyrm/models/book.py:284 +#: bookwyrm/models/book.py:283 msgid "eBook" msgstr "Carte digitală" -#: bookwyrm/models/book.py:285 +#: bookwyrm/models/book.py:284 msgid "Graphic novel" msgstr "Roman grafic" -#: bookwyrm/models/book.py:286 +#: bookwyrm/models/book.py:285 msgid "Hardcover" msgstr "Copertă dură" -#: bookwyrm/models/book.py:287 +#: bookwyrm/models/book.py:286 msgid "Paperback" msgstr "Broșură" @@ -205,26 +205,26 @@ msgstr "Federat" msgid "Blocked" msgstr "Blocat" -#: bookwyrm/models/fields.py:29 +#: bookwyrm/models/fields.py:30 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s nu este un remote_id valid" -#: bookwyrm/models/fields.py:38 bookwyrm/models/fields.py:47 +#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s nu este un nume de utilizator valid" -#: bookwyrm/models/fields.py:192 bookwyrm/templates/layout.html:128 +#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "nume de utilizator" -#: bookwyrm/models/fields.py:197 +#: bookwyrm/models/fields.py:198 msgid "A user with that username already exists." msgstr "Un utilizator cu acel nume există deja." -#: bookwyrm/models/fields.py:216 +#: bookwyrm/models/fields.py:217 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "Un utilizator cu acel nume există deja." msgid "Public" msgstr "Public" -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:218 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Public" msgid "Unlisted" msgstr "Nelistat" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:219 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Nelistat" msgid "Followers" msgstr "Urmăritori" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:220 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -258,30 +258,30 @@ msgstr "Urmăritori" msgid "Private" msgstr "Privat" -#: bookwyrm/models/import_job.py:48 bookwyrm/templates/import/import.html:174 +#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:81 -#: bookwyrm/templates/settings/users/user_info.html:28 +#: bookwyrm/templates/settings/users/user_admin.html:87 +#: bookwyrm/templates/settings/users/user_info.html:33 msgid "Active" msgstr "Activ" -#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:172 +#: bookwyrm/models/import_job.py:50 bookwyrm/templates/import/import.html:172 msgid "Complete" msgstr "" -#: bookwyrm/models/import_job.py:50 +#: bookwyrm/models/import_job.py:51 msgid "Stopped" msgstr "" -#: bookwyrm/models/import_job.py:83 bookwyrm/models/import_job.py:91 +#: bookwyrm/models/import_job.py:84 bookwyrm/models/import_job.py:92 msgid "Import stopped" msgstr "" -#: bookwyrm/models/import_job.py:363 bookwyrm/models/import_job.py:388 +#: bookwyrm/models/import_job.py:356 bookwyrm/models/import_job.py:381 msgid "Error loading book" msgstr "Eroare la încărcarea cărții" -#: bookwyrm/models/import_job.py:372 +#: bookwyrm/models/import_job.py:365 msgid "Could not find a match for book" msgstr "Nu a putut fi găsită o potrivire pentru carte" @@ -368,103 +368,103 @@ msgstr "Citate" msgid "Everything else" msgstr "Orice altceva" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home Timeline" msgstr "Friză cronologică principală" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home" msgstr "Acasă" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 msgid "Books Timeline" msgstr "Friză cronologică de cărți" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:97 +#: bookwyrm/templates/user/layout.html:112 msgid "Books" msgstr "Cărți" -#: bookwyrm/settings.py:296 +#: bookwyrm/settings.py:303 msgid "English" msgstr "English (engleză)" -#: bookwyrm/settings.py:297 +#: bookwyrm/settings.py:304 msgid "Català (Catalan)" msgstr "Català (catalană)" -#: bookwyrm/settings.py:298 +#: bookwyrm/settings.py:305 msgid "Deutsch (German)" msgstr "Deutsch (germană)" -#: bookwyrm/settings.py:299 +#: bookwyrm/settings.py:306 msgid "Esperanto (Esperanto)" msgstr "" -#: bookwyrm/settings.py:300 +#: bookwyrm/settings.py:307 msgid "Español (Spanish)" msgstr "Español (spaniolă)" -#: bookwyrm/settings.py:301 +#: bookwyrm/settings.py:308 msgid "Euskara (Basque)" msgstr "" -#: bookwyrm/settings.py:302 +#: bookwyrm/settings.py:309 msgid "Galego (Galician)" msgstr "Galego (galiciană)" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:310 msgid "Italiano (Italian)" msgstr "Italiano (italiană)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:311 msgid "Suomi (Finnish)" msgstr "Suomi (finlandeză)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:312 msgid "Français (French)" msgstr "Français (franceză)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:313 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių (lituaniană)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:314 msgid "Nederlands (Dutch)" msgstr "" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:315 msgid "Norsk (Norwegian)" msgstr "Norsk (norvegiană)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:316 msgid "Polski (Polish)" msgstr "" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:317 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil (portugheză braziliană)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:318 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (portugheză europeană)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:319 msgid "Română (Romanian)" msgstr "Română (română)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:320 msgid "Svenska (Swedish)" msgstr "Svenska (suedeză)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:321 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文 (chineză simplificată)" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:322 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (chineză tradițională)" @@ -575,7 +575,7 @@ msgid "Software version:" msgstr "Versiunea programului:" #: bookwyrm/templates/about/layout.html:30 -#: bookwyrm/templates/embed-layout.html:33 +#: bookwyrm/templates/embed-layout.html:34 #: bookwyrm/templates/snippets/footer.html:8 #, python-format msgid "About %(site_name)s" @@ -682,7 +682,7 @@ msgstr "Cea mai scurtă lectură a sa…" #: bookwyrm/templates/annual_summary/layout.html:157 #: bookwyrm/templates/annual_summary/layout.html:178 #: bookwyrm/templates/annual_summary/layout.html:247 -#: bookwyrm/templates/book/book.html:63 +#: bookwyrm/templates/book/book.html:65 #: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/landing/large-book.html:26 #: bookwyrm/templates/landing/small-book.html:18 @@ -772,24 +772,24 @@ msgid "View ISNI record" msgstr "Vizualizați intrarea ISNI" #: bookwyrm/templates/author/author.html:95 -#: bookwyrm/templates/book/book.html:173 +#: bookwyrm/templates/book/book.html:175 msgid "View on ISFDB" msgstr "" #: bookwyrm/templates/author/author.html:100 #: bookwyrm/templates/author/sync_modal.html:5 -#: bookwyrm/templates/book/book.html:140 +#: bookwyrm/templates/book/book.html:142 #: bookwyrm/templates/book/sync_modal.html:5 msgid "Load data" msgstr "Încărcați date" #: bookwyrm/templates/author/author.html:104 -#: bookwyrm/templates/book/book.html:144 +#: bookwyrm/templates/book/book.html:146 msgid "View on OpenLibrary" msgstr "Vizualizați în OpenLibrary" #: bookwyrm/templates/author/author.html:119 -#: bookwyrm/templates/book/book.html:158 +#: bookwyrm/templates/book/book.html:160 msgid "View on Inventaire" msgstr "Vizualizați în Inventaire" @@ -801,11 +801,7 @@ msgstr "Vizualizați în LibraryThing" msgid "View on Goodreads" msgstr "Vizualizați în Goodreads" -#: bookwyrm/templates/author/author.html:151 -msgid "View ISFDB entry" -msgstr "" - -#: bookwyrm/templates/author/author.html:166 +#: bookwyrm/templates/author/author.html:158 #, python-format msgid "Books by %(name)s" msgstr "Cărți de %(name)s" @@ -963,19 +959,19 @@ msgstr "Confirmați" msgid "Unable to connect to remote source." msgstr "Nu s-a putut stabili conexiunea la distanță." -#: bookwyrm/templates/book/book.html:71 bookwyrm/templates/book/book.html:72 +#: bookwyrm/templates/book/book.html:73 bookwyrm/templates/book/book.html:74 msgid "Edit Book" msgstr "Editați carte" -#: bookwyrm/templates/book/book.html:97 bookwyrm/templates/book/book.html:100 +#: bookwyrm/templates/book/book.html:99 bookwyrm/templates/book/book.html:102 msgid "Click to add cover" msgstr "Adăugați o copertă" -#: bookwyrm/templates/book/book.html:106 +#: bookwyrm/templates/book/book.html:108 msgid "Failed to load cover" msgstr "Eșec la încărcarea coperții" -#: bookwyrm/templates/book/book.html:117 +#: bookwyrm/templates/book/book.html:119 msgid "Click to enlarge" msgstr "Clic pentru a mări" @@ -1052,13 +1048,13 @@ msgstr "Locuri" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:90 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:91 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Liste" @@ -1123,8 +1119,8 @@ msgstr "Încărcați copertă:" #: bookwyrm/templates/book/cover_add_modal.html:23 #: bookwyrm/templates/book/edit/edit_book_form.html:250 -msgid "Load cover from url:" -msgstr "Încărcați copertă de la URL-ul:" +msgid "Load cover from URL:" +msgstr "" #: bookwyrm/templates/book/cover_show_modal.html:6 msgid "Book cover preview" @@ -1334,7 +1330,7 @@ msgid "Add Another Author" msgstr "Adăugați un alt autor" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:147 +#: bookwyrm/templates/shelf/shelf.html:162 msgid "Cover" msgstr "Copertă" @@ -1535,22 +1531,22 @@ msgstr "%(pages)s pagini" msgid "%(languages)s language" msgstr "%(languages)s Limbă" -#: bookwyrm/templates/book/publisher_info.html:65 +#: bookwyrm/templates/book/publisher_info.html:63 #, python-format msgid "Published %(date)s by %(publisher)s." msgstr "Publicat în %(date)s de %(publisher)s." +#: bookwyrm/templates/book/publisher_info.html:65 +#, python-format +msgid "Published by %(publisher)s." +msgstr "Publicat de %(publisher)s." + #: bookwyrm/templates/book/publisher_info.html:67 #, python-format msgid "Published %(date)s" msgstr "Publicat în %(date)s" -#: bookwyrm/templates/book/publisher_info.html:69 -#, python-format -msgid "Published by %(publisher)s." -msgstr "Publicat de %(publisher)s." - -#: bookwyrm/templates/book/rating.html:13 +#: bookwyrm/templates/book/rating.html:19 msgid "rated it" msgstr "a evaluat-o" @@ -1558,12 +1554,12 @@ msgstr "a evaluat-o" msgid "Series by" msgstr "" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 #, python-format msgid "Book %(series_number)s" msgstr "" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 msgid "Unsorted Book" msgstr "" @@ -1593,7 +1589,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Ne pare rău! Nu am putut găsi acel cod." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:92 +#: bookwyrm/templates/settings/users/user_info.html:98 msgid "Confirmation code:" msgstr "Cod de confirmare:" @@ -1687,6 +1683,7 @@ msgstr "Sugerate" #: bookwyrm/templates/ostatus/subscribe.html:42 #: bookwyrm/templates/ostatus/success.html:17 #: bookwyrm/templates/ostatus/success.html:18 +#: bookwyrm/templates/user/moved.html:19 bookwyrm/templates/user/moved.html:20 #: bookwyrm/templates/user/user_preview.html:16 #: bookwyrm/templates/user/user_preview.html:17 msgid "Locked account" @@ -1763,7 +1760,7 @@ msgstr "%(username)s a citat You have moved your account to %(username)s" +msgstr "" + +#: bookwyrm/templates/moved.html:32 +msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +msgid "Undo move" +msgstr "" + +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +msgid "Log out" +msgstr "Deconectați-vă" + #: bookwyrm/templates/notifications/items/accept.html:18 #, python-format msgid "%(related_user)s accepted your invitation to join group \"%(group_name)s\"" @@ -3760,6 +3779,16 @@ msgstr "%(related_user)s v-a menționat î msgid "%(related_user)s mentioned you in a status" msgstr "%(related_user)s v-a menționat într-o stare" +#: bookwyrm/templates/notifications/items/move_user.html:18 +#, python-format +msgid "%(related_user)s has moved to %(username)s" +msgstr "" + +#: bookwyrm/templates/notifications/items/move_user.html:25 +#, python-format +msgid "%(related_user)s has undone their move" +msgstr "" + #: bookwyrm/templates/notifications/items/remove.html:17 #, python-format msgid "has been removed from your group \"%(group_name)s\"" @@ -3799,7 +3828,7 @@ msgstr[1] "" msgstr[2] "%(display_count)s noi rapoarte au nevoie de moderare" #: bookwyrm/templates/notifications/items/status_preview.html:4 -#: bookwyrm/templates/snippets/status/content_status.html:73 +#: bookwyrm/templates/snippets/status/content_status.html:62 msgid "Content warning" msgstr "Avertisment de conținut" @@ -4017,9 +4046,51 @@ msgstr "" msgid "Set up 2FA" msgstr "" +#: bookwyrm/templates/preferences/alias_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:7 +#: bookwyrm/templates/preferences/move_user.html:39 +msgid "Move Account" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:7 +#: bookwyrm/templates/preferences/alias_user.html:34 +msgid "Create Alias" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:12 +msgid "Add another account as an alias" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:16 +msgid "Marking another account as an alias is required if you want to move that account to this one." +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:19 +msgid "This is a reversable action and will not change the functionality of this account." +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:25 +msgid "Enter the username for the account you want to add as an alias e.g. user@example.com :" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:30 +#: bookwyrm/templates/preferences/move_user.html:35 +msgid "Confirm your password:" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:39 +#: bookwyrm/templates/preferences/layout.html:28 +msgid "Aliases" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:49 +msgid "Remove alias" +msgstr "" + #: bookwyrm/templates/preferences/blocks.html:4 #: bookwyrm/templates/preferences/blocks.html:7 -#: bookwyrm/templates/preferences/layout.html:46 +#: bookwyrm/templates/preferences/layout.html:54 msgid "Blocked Users" msgstr "Utilizatori blocați" @@ -4049,7 +4120,7 @@ msgstr "Parolă nouă:" #: bookwyrm/templates/preferences/delete_user.html:4 #: bookwyrm/templates/preferences/delete_user.html:7 #: bookwyrm/templates/preferences/delete_user.html:40 -#: bookwyrm/templates/preferences/layout.html:28 +#: bookwyrm/templates/preferences/layout.html:36 #: bookwyrm/templates/settings/users/delete_user_form.html:22 msgid "Delete Account" msgstr "Ștergeți cont" @@ -4171,18 +4242,45 @@ msgstr "Descărcați fișierul" msgid "Account" msgstr "Cont" -#: bookwyrm/templates/preferences/layout.html:31 +#: bookwyrm/templates/preferences/layout.html:32 +msgid "Move Account" +msgstr "" + +#: bookwyrm/templates/preferences/layout.html:39 msgid "Data" msgstr "Date" -#: bookwyrm/templates/preferences/layout.html:39 +#: bookwyrm/templates/preferences/layout.html:47 msgid "CSV export" msgstr "Export CSV" -#: bookwyrm/templates/preferences/layout.html:42 +#: bookwyrm/templates/preferences/layout.html:50 msgid "Relationships" msgstr "Relații" +#: bookwyrm/templates/preferences/move_user.html:12 +msgid "Migrate account to another server" +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:16 +msgid "Moving your account will notify all your followers and direct them to follow the new account." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:19 +#, python-format +msgid "\n" +" %(user)s will be marked as moved and will not be discoverable or usable unless you undo the move.\n" +" " +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:25 +msgid "Remember to add this user as an alias of the target account before you try to move." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:30 +msgid "Enter the username for the account you want to move to e.g. user@example.com :" +msgstr "" + #: bookwyrm/templates/reading_progress/finish.html:5 #, python-format msgid "Finish \"%(book_title)s\"" @@ -4592,7 +4690,7 @@ msgid "Streams" msgstr "" #: bookwyrm/templates/settings/celery.html:32 -msgid "Broadcasts" +msgid "Broadcast" msgstr "" #: bookwyrm/templates/settings/celery.html:38 @@ -4922,19 +5020,19 @@ msgstr "Instanță:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:119 msgid "Status:" msgstr "Stare:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:107 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Software:" msgstr "Program:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:110 +#: bookwyrm/templates/settings/users/user_info.html:116 msgid "Version:" msgstr "Versiune:" @@ -4947,7 +5045,7 @@ msgid "Details" msgstr "Detalii" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:69 +#: bookwyrm/templates/user/layout.html:84 msgid "Activity" msgstr "Activitate" @@ -4961,7 +5059,7 @@ msgid "View all" msgstr "Vedeți tot" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:60 +#: bookwyrm/templates/settings/users/user_info.html:66 msgid "Reports:" msgstr "Raporturi:" @@ -4978,7 +5076,7 @@ msgid "Blocked by us:" msgstr "Blocat de noi:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:117 +#: bookwyrm/templates/settings/users/user_info.html:123 msgid "Notes" msgstr "Notes" @@ -5698,17 +5796,22 @@ msgstr "Ultima dată activ(ă)" msgid "Remote instance" msgstr "Instanță la distanță" -#: bookwyrm/templates/settings/users/user_admin.html:86 +#: bookwyrm/templates/settings/users/user_admin.html:82 +#: bookwyrm/templates/settings/users/user_info.html:29 +msgid "Moved" +msgstr "" + +#: bookwyrm/templates/settings/users/user_admin.html:93 msgid "Deleted" msgstr "Șters" -#: bookwyrm/templates/settings/users/user_admin.html:92 -#: bookwyrm/templates/settings/users/user_info.html:32 +#: bookwyrm/templates/settings/users/user_admin.html:99 +#: bookwyrm/templates/settings/users/user_info.html:38 msgid "Inactive" msgstr "Inactiv" -#: bookwyrm/templates/settings/users/user_admin.html:101 -#: bookwyrm/templates/settings/users/user_info.html:127 +#: bookwyrm/templates/settings/users/user_admin.html:108 +#: bookwyrm/templates/settings/users/user_info.html:133 msgid "Not set" msgstr "Neconfigurat" @@ -5720,55 +5823,55 @@ msgstr "Vizualizați profilul utilizatorului" msgid "Go to user admin" msgstr "Mergeți la utilizatorul admin" -#: bookwyrm/templates/settings/users/user_info.html:40 +#: bookwyrm/templates/settings/users/user_info.html:46 msgid "Local" msgstr "Local" -#: bookwyrm/templates/settings/users/user_info.html:42 +#: bookwyrm/templates/settings/users/user_info.html:48 msgid "Remote" msgstr "La distanță" -#: bookwyrm/templates/settings/users/user_info.html:51 +#: bookwyrm/templates/settings/users/user_info.html:57 msgid "User details" msgstr "Detaliile utilizatorului" -#: bookwyrm/templates/settings/users/user_info.html:55 +#: bookwyrm/templates/settings/users/user_info.html:61 msgid "Email:" msgstr "Email:" -#: bookwyrm/templates/settings/users/user_info.html:65 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "(View reports)" msgstr "(Vizualizați raporturi)" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Blocked by count:" msgstr "Blocat după număr:" -#: bookwyrm/templates/settings/users/user_info.html:74 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Date added:" msgstr "Dată adăugată:" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Last active date:" msgstr "Ultima dată de activitate:" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:86 msgid "Manually approved followers:" msgstr "Urmăritori aprobați manual:" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:89 msgid "Discoverable:" msgstr "Vizibil public:" -#: bookwyrm/templates/settings/users/user_info.html:87 +#: bookwyrm/templates/settings/users/user_info.html:93 msgid "Deactivation reason:" msgstr "Motiv de dezactivare:" -#: bookwyrm/templates/settings/users/user_info.html:102 +#: bookwyrm/templates/settings/users/user_info.html:108 msgid "Instance details" msgstr "Detaliile instanței" -#: bookwyrm/templates/settings/users/user_info.html:124 +#: bookwyrm/templates/settings/users/user_info.html:130 msgid "View instance" msgstr "Vizualizați instanță" @@ -5906,7 +6009,7 @@ msgid "Need help?" msgstr "Aveți nevoie de ajutor?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:72 +#: bookwyrm/templates/shelf/shelf.html:87 msgid "Create shelf" msgstr "Creați un raft" @@ -5914,18 +6017,26 @@ msgstr "Creați un raft" msgid "Edit Shelf" msgstr "Editați raftul" -#: bookwyrm/templates/shelf/shelf.html:24 +#: bookwyrm/templates/shelf/shelf.html:25 +msgid "You have have moved to" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:28 +msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:39 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Profilul utilizatorului" -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:54 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Toate cărțile" -#: bookwyrm/templates/shelf/shelf.html:97 +#: bookwyrm/templates/shelf/shelf.html:112 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" @@ -5933,40 +6044,40 @@ msgstr[0] "%(formatted_count)s carte" msgstr[1] "" msgstr[2] "%(formatted_count)s cărți" -#: bookwyrm/templates/shelf/shelf.html:104 +#: bookwyrm/templates/shelf/shelf.html:119 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(se afișează %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:116 +#: bookwyrm/templates/shelf/shelf.html:131 msgid "Edit shelf" msgstr "Editați raft" -#: bookwyrm/templates/shelf/shelf.html:124 +#: bookwyrm/templates/shelf/shelf.html:139 msgid "Delete shelf" msgstr "Ștergeți raft" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:178 +#: bookwyrm/templates/shelf/shelf.html:167 +#: bookwyrm/templates/shelf/shelf.html:193 msgid "Shelved" msgstr "Pusă pe raft" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:181 +#: bookwyrm/templates/shelf/shelf.html:168 +#: bookwyrm/templates/shelf/shelf.html:196 msgid "Started" msgstr "Începută" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Finished" msgstr "Terminată" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Until" msgstr "Până la" -#: bookwyrm/templates/shelf/shelf.html:210 +#: bookwyrm/templates/shelf/shelf.html:225 msgid "This shelf is empty." msgstr "Acest raft este gol." @@ -6278,6 +6389,10 @@ msgstr "Ați citit %(read_count)s din %(goal_count)s cărț msgid "%(username)s has read %(read_count)s of %(goal_count)s books." msgstr "%(username)s a citit %(read_count)s din %(goal_count)s cărți." +#: bookwyrm/templates/snippets/move_user_buttons.html:10 +msgid "Follow at new account" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6419,35 +6534,35 @@ msgstr "Opriți lectura" msgid "Finish reading" msgstr "Terminați de citit" -#: bookwyrm/templates/snippets/status/content_status.html:80 +#: bookwyrm/templates/snippets/status/content_status.html:69 msgid "Show status" msgstr "Arătați stare" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "(Page %(page)s" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "%(endpage)s" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid "(%(percent)s%%" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid " - %(endpercent)s%%" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:127 +#: bookwyrm/templates/snippets/status/content_status.html:116 msgid "Open image in new window" msgstr "Deshideți imaginea într-o fereastră nouă" -#: bookwyrm/templates/snippets/status/content_status.html:148 +#: bookwyrm/templates/snippets/status/content_status.html:137 msgid "Hide status" msgstr "Ascundeți starea" @@ -6639,10 +6754,14 @@ msgid "Groups: %(username)s" msgstr "Grupuri: %(username)s" #: bookwyrm/templates/user/layout.html:50 +msgid "has moved to" +msgstr "" + +#: bookwyrm/templates/user/layout.html:64 msgid "Follow Requests" msgstr "Cereri de urmărire" -#: bookwyrm/templates/user/layout.html:73 +#: bookwyrm/templates/user/layout.html:88 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6657,6 +6776,12 @@ msgstr "Liste: %(username)s" msgid "Create list" msgstr "Creați listă" +#: bookwyrm/templates/user/moved.html:25 +#: bookwyrm/templates/user/user_preview.html:22 +#, python-format +msgid "Joined %(date)s" +msgstr "S-a alăturat %(date)s" + #: bookwyrm/templates/user/relationships/followers.html:31 #, python-format msgid "%(username)s has no followers" @@ -6728,11 +6853,6 @@ msgstr "" msgid "No activities yet!" msgstr "Încă nicio activitate!" -#: bookwyrm/templates/user/user_preview.html:22 -#, python-format -msgid "Joined %(date)s" -msgstr "S-a alăturat %(date)s" - #: bookwyrm/templates/user/user_preview.html:26 #, python-format msgid "%(display_count)s follower" @@ -6762,10 +6882,6 @@ msgstr "Niciun urmăritor pe care îl urmărești" msgid "View profile and more" msgstr "Vizualizați profil și multe altele" -#: bookwyrm/templates/user_menu.html:82 -msgid "Log out" -msgstr "Deconectați-vă" - #: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:28 msgid "File exceeds maximum size: 10MB" msgstr "Fișierul depășește dimensiuneaz maximă: 10Mo" @@ -6783,7 +6899,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: bookwyrm/templatetags/utilities.py:39 +#: bookwyrm/templatetags/utilities.py:48 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s" diff --git a/locale/sv_SE/LC_MESSAGES/django.mo b/locale/sv_SE/LC_MESSAGES/django.mo index 0086e52597aabd883480676c40cc5a33f57af649..bf045754c81b36aa35f9d6e7925738a4b3df14d2 100644 GIT binary patch delta 29826 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\n" "Language-Team: Swedish\n" "Language: sv\n" @@ -42,15 +42,15 @@ msgstr "{i} använder" msgid "Unlimited" msgstr "Obegränsad" -#: bookwyrm/forms/edit_user.py:88 +#: bookwyrm/forms/edit_user.py:104 msgid "Incorrect password" msgstr "Felaktigt lösenord" -#: bookwyrm/forms/edit_user.py:95 bookwyrm/forms/landing.py:90 +#: bookwyrm/forms/edit_user.py:111 bookwyrm/forms/landing.py:90 msgid "Password does not match" msgstr "Lösenord matchar inte" -#: bookwyrm/forms/edit_user.py:118 +#: bookwyrm/forms/edit_user.py:134 msgid "Incorrect Password" msgstr "Felaktigt lösenord" @@ -102,8 +102,8 @@ msgstr "Listordning" msgid "Book Title" msgstr "Bokens titel" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 +#: bookwyrm/templates/shelf/shelf.html:203 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Recension" @@ -145,7 +145,7 @@ msgstr "Fara" msgid "Automatically generated report" msgstr "Automatiskt genererad rapport" -#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:47 +#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:48 #: bookwyrm/models/link.py:72 bookwyrm/templates/import/import_status.html:214 #: bookwyrm/templates/settings/link_domains/link_domains.html:19 msgid "Pending" @@ -171,23 +171,23 @@ msgstr "Borttagning av moderator" msgid "Domain block" msgstr "Domänblockering" -#: bookwyrm/models/book.py:283 +#: bookwyrm/models/book.py:282 msgid "Audiobook" msgstr "Ljudbok" -#: bookwyrm/models/book.py:284 +#: bookwyrm/models/book.py:283 msgid "eBook" msgstr "E-bok" -#: bookwyrm/models/book.py:285 +#: bookwyrm/models/book.py:284 msgid "Graphic novel" msgstr "Grafisk novell" -#: bookwyrm/models/book.py:286 +#: bookwyrm/models/book.py:285 msgid "Hardcover" msgstr "Inbunden" -#: bookwyrm/models/book.py:287 +#: bookwyrm/models/book.py:286 msgid "Paperback" msgstr "Pocketbok" @@ -205,26 +205,26 @@ msgstr "Federerad" msgid "Blocked" msgstr "Blockerad" -#: bookwyrm/models/fields.py:29 +#: bookwyrm/models/fields.py:30 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s är inte ett giltigt remote_id" -#: bookwyrm/models/fields.py:38 bookwyrm/models/fields.py:47 +#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s är inte ett giltigt användarnamn" -#: bookwyrm/models/fields.py:192 bookwyrm/templates/layout.html:128 +#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "användarnamn" -#: bookwyrm/models/fields.py:197 +#: bookwyrm/models/fields.py:198 msgid "A user with that username already exists." msgstr "En användare med det användarnamnet finns redan." -#: bookwyrm/models/fields.py:216 +#: bookwyrm/models/fields.py:217 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "En användare med det användarnamnet finns redan." msgid "Public" msgstr "Publik" -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:218 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Publik" msgid "Unlisted" msgstr "Ej listad" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:219 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Ej listad" msgid "Followers" msgstr "Följare" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:220 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -258,30 +258,30 @@ msgstr "Följare" msgid "Private" msgstr "Privat" -#: bookwyrm/models/import_job.py:48 bookwyrm/templates/import/import.html:174 +#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:81 -#: bookwyrm/templates/settings/users/user_info.html:28 +#: bookwyrm/templates/settings/users/user_admin.html:87 +#: bookwyrm/templates/settings/users/user_info.html:33 msgid "Active" msgstr "Aktiv" -#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:172 +#: bookwyrm/models/import_job.py:50 bookwyrm/templates/import/import.html:172 msgid "Complete" msgstr "Slutförd" -#: bookwyrm/models/import_job.py:50 +#: bookwyrm/models/import_job.py:51 msgid "Stopped" msgstr "Avbruten" -#: bookwyrm/models/import_job.py:83 bookwyrm/models/import_job.py:91 +#: bookwyrm/models/import_job.py:84 bookwyrm/models/import_job.py:92 msgid "Import stopped" msgstr "Import avbröts" -#: bookwyrm/models/import_job.py:363 bookwyrm/models/import_job.py:388 +#: bookwyrm/models/import_job.py:356 bookwyrm/models/import_job.py:381 msgid "Error loading book" msgstr "Fel uppstod vid inläsning av boken" -#: bookwyrm/models/import_job.py:372 +#: bookwyrm/models/import_job.py:365 msgid "Could not find a match for book" msgstr "Kunde inte hitta en träff för boken" @@ -368,103 +368,103 @@ msgstr "Citat" msgid "Everything else" msgstr "Allt annat" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home Timeline" msgstr "Tidslinje för Hem" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home" msgstr "Hem" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 msgid "Books Timeline" msgstr "Tidslinjer för böcker" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:97 +#: bookwyrm/templates/user/layout.html:112 msgid "Books" msgstr "Böcker" -#: bookwyrm/settings.py:296 +#: bookwyrm/settings.py:303 msgid "English" msgstr "Engelska" -#: bookwyrm/settings.py:297 +#: bookwyrm/settings.py:304 msgid "Català (Catalan)" msgstr "Català (katalanska)" -#: bookwyrm/settings.py:298 +#: bookwyrm/settings.py:305 msgid "Deutsch (German)" msgstr "Tyska (Tysk)" -#: bookwyrm/settings.py:299 +#: bookwyrm/settings.py:306 msgid "Esperanto (Esperanto)" msgstr "Esperanto (Esperanto)" -#: bookwyrm/settings.py:300 +#: bookwyrm/settings.py:307 msgid "Español (Spanish)" msgstr "Spanska (Spansk)" -#: bookwyrm/settings.py:301 +#: bookwyrm/settings.py:308 msgid "Euskara (Basque)" msgstr "Euskara (Baskiska)" -#: bookwyrm/settings.py:302 +#: bookwyrm/settings.py:309 msgid "Galego (Galician)" msgstr "Galego (Gallisk)" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:310 msgid "Italiano (Italian)" msgstr "Italienska (Italiensk)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:311 msgid "Suomi (Finnish)" msgstr "Finland (Finska)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:312 msgid "Français (French)" msgstr "Franska (Fransk)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:313 msgid "Lietuvių (Lithuanian)" msgstr "Litauiska (Litauisk)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:314 msgid "Nederlands (Dutch)" msgstr "" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:315 msgid "Norsk (Norwegian)" msgstr "Norska (Norska)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:316 msgid "Polski (Polish)" msgstr "Polski (polska)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:317 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português d Brasil (Brasiliansk Portugisiska)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:318 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (Europeisk Portugisiska)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:319 msgid "Română (Romanian)" msgstr "Rumänien (Rumänska)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:320 msgid "Svenska (Swedish)" msgstr "Svenska (Svenska)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:321 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文 (Förenklad Kinesiska)" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:322 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (Traditionell Kinesiska)" @@ -575,7 +575,7 @@ msgid "Software version:" msgstr "Programvaruversion:" #: bookwyrm/templates/about/layout.html:30 -#: bookwyrm/templates/embed-layout.html:33 +#: bookwyrm/templates/embed-layout.html:34 #: bookwyrm/templates/snippets/footer.html:8 #, python-format msgid "About %(site_name)s" @@ -680,7 +680,7 @@ msgstr "Det kortast lästa det här året…" #: bookwyrm/templates/annual_summary/layout.html:157 #: bookwyrm/templates/annual_summary/layout.html:178 #: bookwyrm/templates/annual_summary/layout.html:247 -#: bookwyrm/templates/book/book.html:63 +#: bookwyrm/templates/book/book.html:65 #: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/landing/large-book.html:26 #: bookwyrm/templates/landing/small-book.html:18 @@ -768,24 +768,24 @@ msgid "View ISNI record" msgstr "Visa ISNI-samling" #: bookwyrm/templates/author/author.html:95 -#: bookwyrm/templates/book/book.html:173 +#: bookwyrm/templates/book/book.html:175 msgid "View on ISFDB" msgstr "Visa på ISFDB" #: bookwyrm/templates/author/author.html:100 #: bookwyrm/templates/author/sync_modal.html:5 -#: bookwyrm/templates/book/book.html:140 +#: bookwyrm/templates/book/book.html:142 #: bookwyrm/templates/book/sync_modal.html:5 msgid "Load data" msgstr "Ladda data" #: bookwyrm/templates/author/author.html:104 -#: bookwyrm/templates/book/book.html:144 +#: bookwyrm/templates/book/book.html:146 msgid "View on OpenLibrary" msgstr "Visa i OpenLibrary" #: bookwyrm/templates/author/author.html:119 -#: bookwyrm/templates/book/book.html:158 +#: bookwyrm/templates/book/book.html:160 msgid "View on Inventaire" msgstr "Visa i Inventaire" @@ -797,11 +797,7 @@ msgstr "Visa i LibraryThing" msgid "View on Goodreads" msgstr "Visa i Goodreads" -#: bookwyrm/templates/author/author.html:151 -msgid "View ISFDB entry" -msgstr "Visa ISFDB-post" - -#: bookwyrm/templates/author/author.html:166 +#: bookwyrm/templates/author/author.html:158 #, python-format msgid "Books by %(name)s" msgstr "Böcker av %(name)s" @@ -959,19 +955,19 @@ msgstr "Bekräfta" msgid "Unable to connect to remote source." msgstr "Kunde inte ansluta till fjärrkälla." -#: bookwyrm/templates/book/book.html:71 bookwyrm/templates/book/book.html:72 +#: bookwyrm/templates/book/book.html:73 bookwyrm/templates/book/book.html:74 msgid "Edit Book" msgstr "Redigera bok" -#: bookwyrm/templates/book/book.html:97 bookwyrm/templates/book/book.html:100 +#: bookwyrm/templates/book/book.html:99 bookwyrm/templates/book/book.html:102 msgid "Click to add cover" msgstr "Klicka för att lägga till omslag" -#: bookwyrm/templates/book/book.html:106 +#: bookwyrm/templates/book/book.html:108 msgid "Failed to load cover" msgstr "Misslyckades med att ladda omslaget" -#: bookwyrm/templates/book/book.html:117 +#: bookwyrm/templates/book/book.html:119 msgid "Click to enlarge" msgstr "Klicka för att förstora" @@ -1046,13 +1042,13 @@ msgstr "Platser" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:90 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:91 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Listor" @@ -1117,8 +1113,8 @@ msgstr "Ladda upp omslag:" #: bookwyrm/templates/book/cover_add_modal.html:23 #: bookwyrm/templates/book/edit/edit_book_form.html:250 -msgid "Load cover from url:" -msgstr "Ladda omslag från url:" +msgid "Load cover from URL:" +msgstr "" #: bookwyrm/templates/book/cover_show_modal.html:6 msgid "Book cover preview" @@ -1328,7 +1324,7 @@ msgid "Add Another Author" msgstr "Lägg till en annan författare" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:147 +#: bookwyrm/templates/shelf/shelf.html:162 msgid "Cover" msgstr "Omslag" @@ -1529,22 +1525,22 @@ msgstr "%(pages)s sidor" msgid "%(languages)s language" msgstr "På %(languages)s" -#: bookwyrm/templates/book/publisher_info.html:65 +#: bookwyrm/templates/book/publisher_info.html:63 #, python-format msgid "Published %(date)s by %(publisher)s." msgstr "Publicerades %(date)s av %(publisher)s." +#: bookwyrm/templates/book/publisher_info.html:65 +#, python-format +msgid "Published by %(publisher)s." +msgstr "Publicerades av %(publisher)s." + #: bookwyrm/templates/book/publisher_info.html:67 #, python-format msgid "Published %(date)s" msgstr "Publicerades %(date)s" -#: bookwyrm/templates/book/publisher_info.html:69 -#, python-format -msgid "Published by %(publisher)s." -msgstr "Publicerades av %(publisher)s." - -#: bookwyrm/templates/book/rating.html:13 +#: bookwyrm/templates/book/rating.html:19 msgid "rated it" msgstr "betygsatte den" @@ -1552,12 +1548,12 @@ msgstr "betygsatte den" msgid "Series by" msgstr "Serier av" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 #, python-format msgid "Book %(series_number)s" msgstr "Bok %(series_number)s" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 msgid "Unsorted Book" msgstr "Osorterad bok" @@ -1587,7 +1583,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Tyvärr! Vi kunde inte hitta den där koden." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:92 +#: bookwyrm/templates/settings/users/user_info.html:98 msgid "Confirmation code:" msgstr "Bekräftelsekod:" @@ -1681,6 +1677,7 @@ msgstr "Föreslagna" #: bookwyrm/templates/ostatus/subscribe.html:42 #: bookwyrm/templates/ostatus/success.html:17 #: bookwyrm/templates/ostatus/success.html:18 +#: bookwyrm/templates/user/moved.html:19 bookwyrm/templates/user/moved.html:20 #: bookwyrm/templates/user/user_preview.html:16 #: bookwyrm/templates/user/user_preview.html:17 msgid "Locked account" @@ -1755,7 +1752,7 @@ msgstr "%(username)s citerade You have moved your account to %(username)s" +msgstr "" + +#: bookwyrm/templates/moved.html:32 +msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +msgid "Undo move" +msgstr "" + +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +msgid "Log out" +msgstr "Logga ut" + #: bookwyrm/templates/notifications/items/accept.html:18 #, python-format msgid "%(related_user)s accepted your invitation to join group \"%(group_name)s\"" @@ -3744,6 +3763,16 @@ msgstr "%(related_user)s nämnde dig i ett msgid "%(related_user)s mentioned you in a status" msgstr "%(related_user)s nämnde dig i en statusuppdatering" +#: bookwyrm/templates/notifications/items/move_user.html:18 +#, python-format +msgid "%(related_user)s has moved to %(username)s" +msgstr "" + +#: bookwyrm/templates/notifications/items/move_user.html:25 +#, python-format +msgid "%(related_user)s has undone their move" +msgstr "" + #: bookwyrm/templates/notifications/items/remove.html:17 #, python-format msgid "has been removed from your group \"%(group_name)s\"" @@ -3782,7 +3811,7 @@ msgstr[0] "En ny rapport behöver moderering" msgstr[1] "%(display_count)s nya rapporter behöver moderering" #: bookwyrm/templates/notifications/items/status_preview.html:4 -#: bookwyrm/templates/snippets/status/content_status.html:73 +#: bookwyrm/templates/snippets/status/content_status.html:62 msgid "Content warning" msgstr "Innehållsvarning" @@ -4000,9 +4029,51 @@ msgstr "Bekräfta ditt lösenord för att påbörja inställningen av 2FA." msgid "Set up 2FA" msgstr "Ställ in 2FA" +#: bookwyrm/templates/preferences/alias_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:7 +#: bookwyrm/templates/preferences/move_user.html:39 +msgid "Move Account" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:7 +#: bookwyrm/templates/preferences/alias_user.html:34 +msgid "Create Alias" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:12 +msgid "Add another account as an alias" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:16 +msgid "Marking another account as an alias is required if you want to move that account to this one." +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:19 +msgid "This is a reversable action and will not change the functionality of this account." +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:25 +msgid "Enter the username for the account you want to add as an alias e.g. user@example.com :" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:30 +#: bookwyrm/templates/preferences/move_user.html:35 +msgid "Confirm your password:" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:39 +#: bookwyrm/templates/preferences/layout.html:28 +msgid "Aliases" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:49 +msgid "Remove alias" +msgstr "" + #: bookwyrm/templates/preferences/blocks.html:4 #: bookwyrm/templates/preferences/blocks.html:7 -#: bookwyrm/templates/preferences/layout.html:46 +#: bookwyrm/templates/preferences/layout.html:54 msgid "Blocked Users" msgstr "Blockerade användare" @@ -4032,7 +4103,7 @@ msgstr "Nytt lösenord:" #: bookwyrm/templates/preferences/delete_user.html:4 #: bookwyrm/templates/preferences/delete_user.html:7 #: bookwyrm/templates/preferences/delete_user.html:40 -#: bookwyrm/templates/preferences/layout.html:28 +#: bookwyrm/templates/preferences/layout.html:36 #: bookwyrm/templates/settings/users/delete_user_form.html:22 msgid "Delete Account" msgstr "Ta bort kontot" @@ -4154,18 +4225,45 @@ msgstr "Ladda ner fil" msgid "Account" msgstr "Konto" -#: bookwyrm/templates/preferences/layout.html:31 +#: bookwyrm/templates/preferences/layout.html:32 +msgid "Move Account" +msgstr "" + +#: bookwyrm/templates/preferences/layout.html:39 msgid "Data" msgstr "Data" -#: bookwyrm/templates/preferences/layout.html:39 +#: bookwyrm/templates/preferences/layout.html:47 msgid "CSV export" msgstr "CSV-export" -#: bookwyrm/templates/preferences/layout.html:42 +#: bookwyrm/templates/preferences/layout.html:50 msgid "Relationships" msgstr "Förhållanden" +#: bookwyrm/templates/preferences/move_user.html:12 +msgid "Migrate account to another server" +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:16 +msgid "Moving your account will notify all your followers and direct them to follow the new account." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:19 +#, python-format +msgid "\n" +" %(user)s will be marked as moved and will not be discoverable or usable unless you undo the move.\n" +" " +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:25 +msgid "Remember to add this user as an alias of the target account before you try to move." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:30 +msgid "Enter the username for the account you want to move to e.g. user@example.com :" +msgstr "" + #: bookwyrm/templates/reading_progress/finish.html:5 #, python-format msgid "Finish \"%(book_title)s\"" @@ -4574,8 +4672,8 @@ msgid "Streams" msgstr "" #: bookwyrm/templates/settings/celery.html:32 -msgid "Broadcasts" -msgstr "Sändningar" +msgid "Broadcast" +msgstr "" #: bookwyrm/templates/settings/celery.html:38 msgid "Inbox" @@ -4900,19 +4998,19 @@ msgstr "Instans:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:119 msgid "Status:" msgstr "Status:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:107 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Software:" msgstr "Programvara:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:110 +#: bookwyrm/templates/settings/users/user_info.html:116 msgid "Version:" msgstr "Version:" @@ -4925,7 +5023,7 @@ msgid "Details" msgstr "Detaljer" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:69 +#: bookwyrm/templates/user/layout.html:84 msgid "Activity" msgstr "Aktivitet" @@ -4939,7 +5037,7 @@ msgid "View all" msgstr "Visa alla" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:60 +#: bookwyrm/templates/settings/users/user_info.html:66 msgid "Reports:" msgstr "Rapporter:" @@ -4956,7 +5054,7 @@ msgid "Blocked by us:" msgstr "Blockerade av oss:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:117 +#: bookwyrm/templates/settings/users/user_info.html:123 msgid "Notes" msgstr "Anteckningar" @@ -5676,17 +5774,22 @@ msgstr "Senast aktiv" msgid "Remote instance" msgstr "Fjärrinstans" -#: bookwyrm/templates/settings/users/user_admin.html:86 +#: bookwyrm/templates/settings/users/user_admin.html:82 +#: bookwyrm/templates/settings/users/user_info.html:29 +msgid "Moved" +msgstr "" + +#: bookwyrm/templates/settings/users/user_admin.html:93 msgid "Deleted" msgstr "Togs bort" -#: bookwyrm/templates/settings/users/user_admin.html:92 -#: bookwyrm/templates/settings/users/user_info.html:32 +#: bookwyrm/templates/settings/users/user_admin.html:99 +#: bookwyrm/templates/settings/users/user_info.html:38 msgid "Inactive" msgstr "Inaktiv" -#: bookwyrm/templates/settings/users/user_admin.html:101 -#: bookwyrm/templates/settings/users/user_info.html:127 +#: bookwyrm/templates/settings/users/user_admin.html:108 +#: bookwyrm/templates/settings/users/user_info.html:133 msgid "Not set" msgstr "Inte inställd" @@ -5698,55 +5801,55 @@ msgstr "Visa användarens profil" msgid "Go to user admin" msgstr "Gå till användaradministratör" -#: bookwyrm/templates/settings/users/user_info.html:40 +#: bookwyrm/templates/settings/users/user_info.html:46 msgid "Local" msgstr "Lokal" -#: bookwyrm/templates/settings/users/user_info.html:42 +#: bookwyrm/templates/settings/users/user_info.html:48 msgid "Remote" msgstr "Fjärr" -#: bookwyrm/templates/settings/users/user_info.html:51 +#: bookwyrm/templates/settings/users/user_info.html:57 msgid "User details" msgstr "Användardetaljer" -#: bookwyrm/templates/settings/users/user_info.html:55 +#: bookwyrm/templates/settings/users/user_info.html:61 msgid "Email:" msgstr "E-postadress:" -#: bookwyrm/templates/settings/users/user_info.html:65 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "(View reports)" msgstr "(Visa rapporter)" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Blocked by count:" msgstr "Blockerade av antal:" -#: bookwyrm/templates/settings/users/user_info.html:74 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Date added:" msgstr "Tillägningsdatum:" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Last active date:" msgstr "Senaste aktiva datum:" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:86 msgid "Manually approved followers:" msgstr "Manuellt godkända följare:" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:89 msgid "Discoverable:" msgstr "Upptäckbar:" -#: bookwyrm/templates/settings/users/user_info.html:87 +#: bookwyrm/templates/settings/users/user_info.html:93 msgid "Deactivation reason:" msgstr "Orsak till inaktivering:" -#: bookwyrm/templates/settings/users/user_info.html:102 +#: bookwyrm/templates/settings/users/user_info.html:108 msgid "Instance details" msgstr "Instansens detaljer" -#: bookwyrm/templates/settings/users/user_info.html:124 +#: bookwyrm/templates/settings/users/user_info.html:130 msgid "View instance" msgstr "Visa instansen" @@ -5883,7 +5986,7 @@ msgid "Need help?" msgstr "Behöver du hjälp?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:72 +#: bookwyrm/templates/shelf/shelf.html:87 msgid "Create shelf" msgstr "Skapa hylla" @@ -5891,58 +5994,66 @@ msgstr "Skapa hylla" msgid "Edit Shelf" msgstr "Redigera hylla" -#: bookwyrm/templates/shelf/shelf.html:24 +#: bookwyrm/templates/shelf/shelf.html:25 +msgid "You have have moved to" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:28 +msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:39 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Användarprofil" -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:54 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Alla böcker" -#: bookwyrm/templates/shelf/shelf.html:97 +#: bookwyrm/templates/shelf/shelf.html:112 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s bok" msgstr[1] "%(formatted_count)s böcker" -#: bookwyrm/templates/shelf/shelf.html:104 +#: bookwyrm/templates/shelf/shelf.html:119 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(visar %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:116 +#: bookwyrm/templates/shelf/shelf.html:131 msgid "Edit shelf" msgstr "Redigera hylla" -#: bookwyrm/templates/shelf/shelf.html:124 +#: bookwyrm/templates/shelf/shelf.html:139 msgid "Delete shelf" msgstr "Ta bort hylla" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:178 +#: bookwyrm/templates/shelf/shelf.html:167 +#: bookwyrm/templates/shelf/shelf.html:193 msgid "Shelved" msgstr "Lagd på hyllan" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:181 +#: bookwyrm/templates/shelf/shelf.html:168 +#: bookwyrm/templates/shelf/shelf.html:196 msgid "Started" msgstr "Påbörjade" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Finished" msgstr "Avslutade" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Until" msgstr "Till" -#: bookwyrm/templates/shelf/shelf.html:210 +#: bookwyrm/templates/shelf/shelf.html:225 msgid "This shelf is empty." msgstr "Den här hyllan är tom." @@ -6248,6 +6359,10 @@ msgstr "Du har läst %(read_count)s av %(goal_count)s böck msgid "%(username)s has read %(read_count)s of %(goal_count)s books." msgstr "%(username)s har läst %(read_count)s av %(goal_count)s böcker." +#: bookwyrm/templates/snippets/move_user_buttons.html:10 +msgid "Follow at new account" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6389,35 +6504,35 @@ msgstr "Sluta läs" msgid "Finish reading" msgstr "Sluta läs" -#: bookwyrm/templates/snippets/status/content_status.html:80 +#: bookwyrm/templates/snippets/status/content_status.html:69 msgid "Show status" msgstr "Visa status" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "(Page %(page)s" msgstr "(Sida %(page)s" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "%(endpage)s" msgstr "%(endpage)s" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid "(%(percent)s%%" msgstr "(%(percent)s%%" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid " - %(endpercent)s%%" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:127 +#: bookwyrm/templates/snippets/status/content_status.html:116 msgid "Open image in new window" msgstr "Öppna bild i nytt fönster" -#: bookwyrm/templates/snippets/status/content_status.html:148 +#: bookwyrm/templates/snippets/status/content_status.html:137 msgid "Hide status" msgstr "Göm status" @@ -6609,10 +6724,14 @@ msgid "Groups: %(username)s" msgstr "Grupper: %(username)s" #: bookwyrm/templates/user/layout.html:50 +msgid "has moved to" +msgstr "" + +#: bookwyrm/templates/user/layout.html:64 msgid "Follow Requests" msgstr "Följdförfrågningar" -#: bookwyrm/templates/user/layout.html:73 +#: bookwyrm/templates/user/layout.html:88 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6627,6 +6746,12 @@ msgstr "Listor: %(username)s" msgid "Create list" msgstr "Skapa lista" +#: bookwyrm/templates/user/moved.html:25 +#: bookwyrm/templates/user/user_preview.html:22 +#, python-format +msgid "Joined %(date)s" +msgstr "Gick med %(date)s" + #: bookwyrm/templates/user/relationships/followers.html:31 #, python-format msgid "%(username)s has no followers" @@ -6698,11 +6823,6 @@ msgstr "Endast kommentarer" msgid "No activities yet!" msgstr "Inga aktiviteter än!" -#: bookwyrm/templates/user/user_preview.html:22 -#, python-format -msgid "Joined %(date)s" -msgstr "Gick med %(date)s" - #: bookwyrm/templates/user/user_preview.html:26 #, python-format msgid "%(display_count)s follower" @@ -6730,10 +6850,6 @@ msgstr "Inga följare som du följer" msgid "View profile and more" msgstr "Visa profil och mer" -#: bookwyrm/templates/user_menu.html:82 -msgid "Log out" -msgstr "Logga ut" - #: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:28 msgid "File exceeds maximum size: 10MB" msgstr "Filen överskrider maximal storlek: 10 MB" @@ -6750,7 +6866,7 @@ msgid_plural "%(num)d books - by %(user)s" msgstr[0] "%(num)d bok - av %(user)s" msgstr[1] "%(num)d böcker - av %(user)s" -#: bookwyrm/templatetags/utilities.py:39 +#: bookwyrm/templatetags/utilities.py:48 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s" diff --git a/locale/uk_UA/LC_MESSAGES/django.mo b/locale/uk_UA/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..1c040fd6e830cb6e6aa48ed77ac999d13ff46f05 GIT binary patch literal 137627 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 e=U?A=?7#o#i_\n" +"Language-Team: Ukrainian\n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" +"X-Crowdin-Project: bookwyrm\n" +"X-Crowdin-Project-ID: 479239\n" +"X-Crowdin-Language: uk\n" +"X-Crowdin-File: /[bookwyrm-social.bookwyrm] main/locale/en_US/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 1553\n" + +#: bookwyrm/forms/admin.py:42 +msgid "One Day" +msgstr "Один День" + +#: bookwyrm/forms/admin.py:43 +msgid "One Week" +msgstr "Один Тиждень" + +#: bookwyrm/forms/admin.py:44 +msgid "One Month" +msgstr "Один Місяць" + +#: bookwyrm/forms/admin.py:45 +msgid "Does Not Expire" +msgstr "Невичерпний" + +#: bookwyrm/forms/admin.py:49 +#, python-brace-format +msgid "{i} uses" +msgstr "{i} використань" + +#: bookwyrm/forms/admin.py:50 +msgid "Unlimited" +msgstr "Без обмежень" + +#: bookwyrm/forms/edit_user.py:104 +msgid "Incorrect password" +msgstr "Невірний пароль" + +#: bookwyrm/forms/edit_user.py:111 bookwyrm/forms/landing.py:90 +msgid "Password does not match" +msgstr "Пароль не збігається" + +#: bookwyrm/forms/edit_user.py:134 +msgid "Incorrect Password" +msgstr "Неправильний Пароль" + +#: bookwyrm/forms/forms.py:54 +msgid "Reading finish date cannot be before start date." +msgstr "Дата прочитання не може бути до дати початку читання." + +#: bookwyrm/forms/forms.py:59 +msgid "Reading stopped date cannot be before start date." +msgstr "Дата зупинки читання не може бути раніше дати початку." + +#: bookwyrm/forms/forms.py:67 +msgid "Reading stopped date cannot be in the future." +msgstr "Дата зупинки читання не може бути в майбутньому." + +#: bookwyrm/forms/forms.py:74 +msgid "Reading finished date cannot be in the future." +msgstr "Дата прочитання не може бути в майбутньому." + +#: bookwyrm/forms/landing.py:38 +msgid "Username or password are incorrect" +msgstr "Ім’я користувача або пароль невірні" + +#: bookwyrm/forms/landing.py:57 +msgid "User with this username already exists" +msgstr "Користувач з таким ім'ям вже існує" + +#: bookwyrm/forms/landing.py:66 +msgid "A user with this email already exists." +msgstr "Користувач із цією електронною адресою вже існує." + +#: bookwyrm/forms/landing.py:124 bookwyrm/forms/landing.py:132 +msgid "Incorrect code" +msgstr "Неправильний код" + +#: bookwyrm/forms/links.py:36 +msgid "This domain is blocked. Please contact your administrator if you think this is an error." +msgstr "Цей домен заблоковано. Зверніться до адміністратора, якщо ви вважаєте це помилкою." + +#: bookwyrm/forms/links.py:49 +msgid "This link with file type has already been added for this book. If it is not visible, the domain is still pending." +msgstr "Це посилання на файл вже було додано для цієї книги. Якщо воно не відображується, домен все ще перевіряється." + +#: bookwyrm/forms/lists.py:26 +msgid "List Order" +msgstr "Порядком" + +#: bookwyrm/forms/lists.py:27 +msgid "Book Title" +msgstr "Назвою книги" + +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 +#: bookwyrm/templates/shelf/shelf.html:203 +#: bookwyrm/templates/snippets/create_status/review.html:32 +msgid "Rating" +msgstr "Рейтингом" + +#: bookwyrm/forms/lists.py:30 bookwyrm/templates/lists/list.html:185 +msgid "Sort By" +msgstr "Сортувати за" + +#: bookwyrm/forms/lists.py:34 +msgid "Ascending" +msgstr "За зростанням" + +#: bookwyrm/forms/lists.py:35 +msgid "Descending" +msgstr "За спаданням" + +#: bookwyrm/models/announcement.py:11 +msgid "Primary" +msgstr "Основний" + +#: bookwyrm/models/announcement.py:12 +msgid "Success" +msgstr "Успіх" + +#: bookwyrm/models/announcement.py:13 +#: bookwyrm/templates/settings/invites/manage_invites.html:47 +msgid "Link" +msgstr "Посилання" + +#: bookwyrm/models/announcement.py:14 +msgid "Warning" +msgstr "Увага" + +#: bookwyrm/models/announcement.py:15 +msgid "Danger" +msgstr "Небезпека" + +#: bookwyrm/models/antispam.py:112 bookwyrm/models/antispam.py:146 +msgid "Automatically generated report" +msgstr "Автоматично згенерований звіт" + +#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:48 +#: bookwyrm/models/link.py:72 bookwyrm/templates/import/import_status.html:214 +#: bookwyrm/templates/settings/link_domains/link_domains.html:19 +msgid "Pending" +msgstr "Перевіряється" + +#: bookwyrm/models/base_model.py:19 +msgid "Self deletion" +msgstr "Самовидалення" + +#: bookwyrm/models/base_model.py:20 +msgid "Self deactivation" +msgstr "Самодеактивація" + +#: bookwyrm/models/base_model.py:21 +msgid "Moderator suspension" +msgstr "Призупинення модератором" + +#: bookwyrm/models/base_model.py:22 +msgid "Moderator deletion" +msgstr "Видалення модератором" + +#: bookwyrm/models/base_model.py:23 +msgid "Domain block" +msgstr "Домен заблоковано" + +#: bookwyrm/models/book.py:282 +msgid "Audiobook" +msgstr "Аудіокнига" + +#: bookwyrm/models/book.py:283 +msgid "eBook" +msgstr "Електронна книга" + +#: bookwyrm/models/book.py:284 +msgid "Graphic novel" +msgstr "Графічний роман" + +#: bookwyrm/models/book.py:285 +msgid "Hardcover" +msgstr "Тверда обкладинка" + +#: bookwyrm/models/book.py:286 +msgid "Paperback" +msgstr "М'яка обкладинка" + +#: bookwyrm/models/federated_server.py:11 +#: bookwyrm/templates/settings/federation/edit_instance.html:55 +#: bookwyrm/templates/settings/federation/instance_list.html:22 +msgid "Federated" +msgstr "Федеруються" + +#: bookwyrm/models/federated_server.py:12 bookwyrm/models/link.py:71 +#: bookwyrm/templates/settings/federation/edit_instance.html:56 +#: bookwyrm/templates/settings/federation/instance.html:10 +#: bookwyrm/templates/settings/federation/instance_list.html:26 +#: bookwyrm/templates/settings/link_domains/link_domains.html:27 +msgid "Blocked" +msgstr "Заблоковані" + +#: bookwyrm/models/fields.py:30 +#, python-format +msgid "%(value)s is not a valid remote_id" +msgstr "%(value)s не є дійсним remote_id" + +#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 +#, python-format +msgid "%(value)s is not a valid username" +msgstr "%(value)s не є дійсним іменем користувача" + +#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 +#: bookwyrm/templates/ostatus/error.html:29 +msgid "username" +msgstr "ім'я користувача" + +#: bookwyrm/models/fields.py:198 +msgid "A user with that username already exists." +msgstr "Користувач із таким ім'ям вже існує." + +#: bookwyrm/models/fields.py:217 +#: bookwyrm/templates/snippets/privacy-icons.html:3 +#: bookwyrm/templates/snippets/privacy-icons.html:4 +#: bookwyrm/templates/snippets/privacy_select.html:11 +#: bookwyrm/templates/snippets/privacy_select_no_followers.html:11 +msgid "Public" +msgstr "Бачуть усі" + +#: bookwyrm/models/fields.py:218 +#: bookwyrm/templates/snippets/privacy-icons.html:7 +#: bookwyrm/templates/snippets/privacy-icons.html:8 +#: bookwyrm/templates/snippets/privacy_select.html:14 +#: bookwyrm/templates/snippets/privacy_select_no_followers.html:14 +msgid "Unlisted" +msgstr "Тільки по посиланню" + +#: bookwyrm/models/fields.py:219 +#: bookwyrm/templates/snippets/privacy_select.html:17 +#: bookwyrm/templates/user/relationships/followers.html:6 +#: bookwyrm/templates/user/relationships/followers.html:11 +#: bookwyrm/templates/user/relationships/followers.html:21 +#: bookwyrm/templates/user/relationships/layout.html:11 +msgid "Followers" +msgstr "Бачать тільки підписники" + +#: bookwyrm/models/fields.py:220 +#: bookwyrm/templates/snippets/create_status/post_options_block.html:6 +#: bookwyrm/templates/snippets/privacy-icons.html:15 +#: bookwyrm/templates/snippets/privacy-icons.html:16 +#: bookwyrm/templates/snippets/privacy_select.html:20 +#: bookwyrm/templates/snippets/privacy_select_no_followers.html:17 +msgid "Private" +msgstr "Не бачить ніхто" + +#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 +#: bookwyrm/templates/settings/imports/imports.html:98 +#: bookwyrm/templates/settings/users/user_admin.html:87 +#: bookwyrm/templates/settings/users/user_info.html:33 +msgid "Active" +msgstr "В процесі" + +#: bookwyrm/models/import_job.py:50 bookwyrm/templates/import/import.html:172 +msgid "Complete" +msgstr "Завершено" + +#: bookwyrm/models/import_job.py:51 +msgid "Stopped" +msgstr "Зупинено" + +#: bookwyrm/models/import_job.py:84 bookwyrm/models/import_job.py:92 +msgid "Import stopped" +msgstr "Імпорт зупинено" + +#: bookwyrm/models/import_job.py:356 bookwyrm/models/import_job.py:381 +msgid "Error loading book" +msgstr "Помилка при завантаженні книги" + +#: bookwyrm/models/import_job.py:365 +msgid "Could not find a match for book" +msgstr "Не вдалося знайти відповідну книгу" + +#: bookwyrm/models/link.py:51 +msgid "Free" +msgstr "Безплатно" + +#: bookwyrm/models/link.py:52 +msgid "Purchasable" +msgstr "Можна придбати" + +#: bookwyrm/models/link.py:53 +msgid "Available for loan" +msgstr "Доступно для позики" + +#: bookwyrm/models/link.py:70 +#: bookwyrm/templates/settings/link_domains/link_domains.html:23 +msgid "Approved" +msgstr "Схвалено" + +#: bookwyrm/models/report.py:84 +#: bookwyrm/templates/settings/reports/report.html:115 +#: bookwyrm/templates/snippets/create_status.html:26 +msgid "Comment" +msgstr "Прокоментувати" + +#: bookwyrm/models/report.py:85 +msgid "Resolved report" +msgstr "" + +#: bookwyrm/models/report.py:86 +msgid "Re-opened report" +msgstr "" + +#: bookwyrm/models/report.py:87 +msgid "Messaged reporter" +msgstr "" + +#: bookwyrm/models/report.py:88 +msgid "Messaged reported user" +msgstr "" + +#: bookwyrm/models/report.py:89 +msgid "Suspended user" +msgstr "" + +#: bookwyrm/models/report.py:90 +msgid "Un-suspended user" +msgstr "" + +#: bookwyrm/models/report.py:91 +msgid "Changed user permission level" +msgstr "" + +#: bookwyrm/models/report.py:92 +msgid "Deleted user account" +msgstr "" + +#: bookwyrm/models/report.py:93 +msgid "Blocked domain" +msgstr "" + +#: bookwyrm/models/report.py:94 +msgid "Approved domain" +msgstr "" + +#: bookwyrm/models/report.py:95 +msgid "Deleted item" +msgstr "" + +#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:307 +msgid "Reviews" +msgstr "Рецензії" + +#: bookwyrm/models/user.py:33 +msgid "Comments" +msgstr "Коментарі" + +#: bookwyrm/models/user.py:34 +msgid "Quotations" +msgstr "Цитати" + +#: bookwyrm/models/user.py:35 +msgid "Everything else" +msgstr "Все інше" + +#: bookwyrm/settings.py:230 +msgid "Home Timeline" +msgstr "Головна Стрічка" + +#: bookwyrm/settings.py:230 +msgid "Home" +msgstr "Головна" + +#: bookwyrm/settings.py:231 +msgid "Books Timeline" +msgstr "Книжкова Стрічка" + +#: bookwyrm/settings.py:231 +#: bookwyrm/templates/guided_tour/user_profile.html:101 +#: bookwyrm/templates/search/layout.html:22 +#: bookwyrm/templates/search/layout.html:43 +#: bookwyrm/templates/user/layout.html:112 +msgid "Books" +msgstr "Книги" + +#: bookwyrm/settings.py:303 +msgid "English" +msgstr "Англійська" + +#: bookwyrm/settings.py:304 +msgid "Català (Catalan)" +msgstr "Català (Каталонська)" + +#: bookwyrm/settings.py:305 +msgid "Deutsch (German)" +msgstr "Deutsch (Німецька)" + +#: bookwyrm/settings.py:306 +msgid "Esperanto (Esperanto)" +msgstr "Esperanto (Есперанто)" + +#: bookwyrm/settings.py:307 +msgid "Español (Spanish)" +msgstr "Español (Іспанська)" + +#: bookwyrm/settings.py:308 +msgid "Euskara (Basque)" +msgstr "Euskara (Баскська)" + +#: bookwyrm/settings.py:309 +msgid "Galego (Galician)" +msgstr "Galego (Галісійська)" + +#: bookwyrm/settings.py:310 +msgid "Italiano (Italian)" +msgstr "Italiano (Італійська)" + +#: bookwyrm/settings.py:311 +msgid "Suomi (Finnish)" +msgstr "Suomi (Фінська)" + +#: bookwyrm/settings.py:312 +msgid "Français (French)" +msgstr "Français (Французька)" + +#: bookwyrm/settings.py:313 +msgid "Lietuvių (Lithuanian)" +msgstr "Lietuvių (Литовська)" + +#: bookwyrm/settings.py:314 +msgid "Nederlands (Dutch)" +msgstr "" + +#: bookwyrm/settings.py:315 +msgid "Norsk (Norwegian)" +msgstr "Norsk (Норвезька)" + +#: bookwyrm/settings.py:316 +msgid "Polski (Polish)" +msgstr "Polski (Польська)" + +#: bookwyrm/settings.py:317 +msgid "Português do Brasil (Brazilian Portuguese)" +msgstr "Português do Brasil (Бразильська португальська)" + +#: bookwyrm/settings.py:318 +msgid "Português Europeu (European Portuguese)" +msgstr "Português Europeu (Європейська португальська)" + +#: bookwyrm/settings.py:319 +msgid "Română (Romanian)" +msgstr "Română (Румунська)" + +#: bookwyrm/settings.py:320 +msgid "Svenska (Swedish)" +msgstr "Svenska (Шведська)" + +#: bookwyrm/settings.py:321 +msgid "简体中文 (Simplified Chinese)" +msgstr "简体中文 (Спрощена китайська)" + +#: bookwyrm/settings.py:322 +msgid "繁體中文 (Traditional Chinese)" +msgstr "繁體中文 (Традиційна китайська)" + +#: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8 +msgid "Not Found" +msgstr "Не Знайдено" + +#: bookwyrm/templates/404.html:9 +msgid "The page you requested doesn't seem to exist!" +msgstr "Вказана сторінка не існує!" + +#: bookwyrm/templates/500.html:4 +msgid "Oops!" +msgstr "От халепа!" + +#: bookwyrm/templates/500.html:8 +msgid "Server Error" +msgstr "Помилка Сервера" + +#: bookwyrm/templates/500.html:9 +msgid "Something went wrong! Sorry about that." +msgstr "Щось пішло не так! Вибачте." + +#: bookwyrm/templates/about/about.html:9 +#: bookwyrm/templates/about/layout.html:35 +msgid "About" +msgstr "Про ресурс" + +#: bookwyrm/templates/about/about.html:21 +#: bookwyrm/templates/get_started/layout.html:22 +#, python-format +msgid "Welcome to %(site_name)s!" +msgstr "Вітаємо вас на %(site_name)s!" + +#: bookwyrm/templates/about/about.html:25 +#, python-format +msgid "%(site_name)s is part of BookWyrm, a network of independent, self-directed communities for readers. While you can interact seamlessly with users anywhere in the BookWyrm network, this community is unique." +msgstr "%(site_name)s є частиною BookWyrm, мережі незалежних, самокерованих спільнот для читачів. Ви можете безперешкодно взаємодіяти з користувачами з будь-якого інстансу мережі BookWyrm, але саме ця спільнота унікальна." + +#: bookwyrm/templates/about/about.html:45 +#, python-format +msgid "%(title)s is %(site_name)s's most beloved book, with an average rating of %(rating)s out of 5." +msgstr "%(title)s є найулюбленішою книгою на %(site_name)s. Її середній рейтинг дорівнює %(rating)s з 5." + +#: bookwyrm/templates/about/about.html:64 +#, python-format +msgid "More %(site_name)s users want to read %(title)s than any other book." +msgstr "Користувачі %(site_name)s хочуть прочитати %(title)s більше ніж будь-яку іншу книгу." + +#: bookwyrm/templates/about/about.html:83 +#, python-format +msgid "%(title)s has the most divisive ratings of any book on %(site_name)s." +msgstr "%(title)s має найсуперечливіші оцінки серед усіх книг на %(site_name)s." + +#: bookwyrm/templates/about/about.html:94 +msgid "Track your reading, talk about books, write reviews, and discover what to read next. Always ad-free, anti-corporate, and community-oriented, BookWyrm is human-scale software, designed to stay small and personal. If you have feature requests, bug reports, or grand dreams, reach out and make yourself heard." +msgstr "Відстежуйте що читаєте, обговорюйте книги, пишіть рецензії та знаходьте що читати далі. BookWyrm - це програмне забезпечення для людей, а не прибутку. Завжди без реклами, анти-корпоративне та орієнтоване на спільноту. Воно спроектовано так, щоб залишатися невеличким та особистим. Якщо у вас є побажання, баг-репорти або великі задуми, зв'яжитесь з нами та розкажіть про них." + +#: bookwyrm/templates/about/about.html:105 +msgid "Meet your admins" +msgstr "Адміністратори" + +#: bookwyrm/templates/about/about.html:108 +#, python-format +msgid "%(site_name)s's moderators and administrators keep the site up and running, enforce the code of conduct, and respond when users report spam and bad behavior." +msgstr "Модератори та адміністратори %(site_name)s підтримують працездатність сайту, слідкують за дотриманням правил поведінки та реагують на скарги користувачів про спам і погану поведінку." + +#: bookwyrm/templates/about/about.html:122 +msgid "Moderator" +msgstr "Модератор" + +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +msgid "Admin" +msgstr "Адміністратор" + +#: bookwyrm/templates/about/about.html:140 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/snippets/status/status_options.html:35 +#: bookwyrm/templates/snippets/user_options.html:14 +msgid "Send direct message" +msgstr "Надішліть особисте повідомлення" + +#: bookwyrm/templates/about/conduct.html:4 +#: bookwyrm/templates/about/conduct.html:9 +#: bookwyrm/templates/about/layout.html:41 +#: bookwyrm/templates/snippets/footer.html:27 +msgid "Code of Conduct" +msgstr "Правила поведінки" + +#: bookwyrm/templates/about/impressum.html:4 +#: bookwyrm/templates/about/impressum.html:9 +#: bookwyrm/templates/about/layout.html:54 +#: bookwyrm/templates/snippets/footer.html:34 +msgid "Impressum" +msgstr "Імпресум" + +#: bookwyrm/templates/about/layout.html:11 +msgid "Active users:" +msgstr "Активні користувачі:" + +#: bookwyrm/templates/about/layout.html:15 +msgid "Statuses posted:" +msgstr "Опубліковані статуси:" + +#: bookwyrm/templates/about/layout.html:19 +#: bookwyrm/templates/setup/config.html:74 +msgid "Software version:" +msgstr "Версія програмного забезпечення:" + +#: bookwyrm/templates/about/layout.html:30 +#: bookwyrm/templates/embed-layout.html:34 +#: bookwyrm/templates/snippets/footer.html:8 +#, python-format +msgid "About %(site_name)s" +msgstr "Про %(site_name)s" + +#: bookwyrm/templates/about/layout.html:47 +#: bookwyrm/templates/about/privacy.html:4 +#: bookwyrm/templates/about/privacy.html:9 +#: bookwyrm/templates/snippets/footer.html:30 +msgid "Privacy Policy" +msgstr "Політика Конфіденційності" + +#: bookwyrm/templates/annual_summary/layout.html:7 +#: bookwyrm/templates/feed/summary_card.html:8 +#, python-format +msgid "%(year)s in the books" +msgstr "%(year)s в книгах" + +#: bookwyrm/templates/annual_summary/layout.html:43 +#, python-format +msgid "%(year)s in the books" +msgstr "%(year)s в книгах" + +#: bookwyrm/templates/annual_summary/layout.html:47 +#, python-format +msgid "%(display_name)s’s year of reading" +msgstr "Рік читання для %(display_name)s" + +#: bookwyrm/templates/annual_summary/layout.html:53 +msgid "Share this page" +msgstr "Поділитися цією сторінкою" + +#: bookwyrm/templates/annual_summary/layout.html:67 +msgid "Copy address" +msgstr "Скопіювати адресу" + +#: bookwyrm/templates/annual_summary/layout.html:68 +#: bookwyrm/templates/lists/list.html:277 +msgid "Copied!" +msgstr "Скопійовано!" + +#: bookwyrm/templates/annual_summary/layout.html:77 +msgid "Sharing status: public with key" +msgstr "Статус шерінгу: публічний, за ключем" + +#: bookwyrm/templates/annual_summary/layout.html:78 +msgid "The page can be seen by anyone with the complete address." +msgstr "Цю сторінку може переглянути будь-хто за повною адресою." + +#: bookwyrm/templates/annual_summary/layout.html:83 +msgid "Make page private" +msgstr "Зробити сторінку приватною" + +#: bookwyrm/templates/annual_summary/layout.html:89 +msgid "Sharing status: private" +msgstr "Статус шерінгу: приватний" + +#: bookwyrm/templates/annual_summary/layout.html:90 +msgid "The page is private, only you can see it." +msgstr "Сторінка приватна, тільки ви можете її бачити." + +#: bookwyrm/templates/annual_summary/layout.html:95 +msgid "Make page public" +msgstr "Зробити сторінку публічною" + +#: bookwyrm/templates/annual_summary/layout.html:99 +msgid "When you make your page private, the old key won’t give access to the page anymore. A new key will be created if the page is once again made public." +msgstr "Якщо ви зробите свою сторінку приватною, старий ключ більше не надаватиме доступу до сторінки. Якщо сторінка знову стане публічною, буде створено новий ключ." + +#: bookwyrm/templates/annual_summary/layout.html:112 +#, python-format +msgid "Sadly %(display_name)s didn’t finish any books in %(year)s" +msgstr "На жаль, %(display_name)s не прочитав жодної книги в %(year)s" + +#: bookwyrm/templates/annual_summary/layout.html:118 +#, python-format +msgid "In %(year)s, %(display_name)s read %(books_total)s book
    for a total of %(pages_total)s pages!" +msgid_plural "In %(year)s, %(display_name)s read %(books_total)s books
    for a total of %(pages_total)s pages!" +msgstr[0] "У %(year)s, користувачем %(display_name)s була прочитана %(books_total)s книга
    або %(pages_total)s сторінок загалом!" +msgstr[1] "У %(year)s, користувачем %(display_name)s було прочитано %(books_total)s книги
    або %(pages_total)s сторінок загалом!" +msgstr[2] "У %(year)s, користувачем %(display_name)s було прочитано %(books_total)s книг
    або %(pages_total)s сторінок загалом!" +msgstr[3] "У %(year)s, користувачем %(display_name)s було прочитано %(books_total)s книг
    або %(pages_total)s сторінок загалом!" + +#: bookwyrm/templates/annual_summary/layout.html:124 +msgid "That’s great!" +msgstr "Чудово!" + +#: bookwyrm/templates/annual_summary/layout.html:128 +#, python-format +msgid "That makes an average of %(pages)s pages per book." +msgstr "Це становить в середньому %(pages)s сторінок на книгу." + +#: bookwyrm/templates/annual_summary/layout.html:134 +#, python-format +msgid "(No page data was available for %(no_page_number)s book)" +msgid_plural "(No page data was available for %(no_page_number)s books)" +msgstr[0] "(Дані про кількість сторінок не було знайдено для %(no_page_number)s книги)" +msgstr[1] "(Дані про кількість сторінок не було знайдено для %(no_page_number)s книг)" +msgstr[2] "(Дані про кількість сторінок не було знайдено для %(no_page_number)s книг)" +msgstr[3] "(Дані про кількість сторінок не було знайдено для %(no_page_number)s книг)" + +#: bookwyrm/templates/annual_summary/layout.html:150 +msgid "Their shortest read this year…" +msgstr "Найшвидше прочитана книга цього року…" + +#: bookwyrm/templates/annual_summary/layout.html:157 +#: bookwyrm/templates/annual_summary/layout.html:178 +#: bookwyrm/templates/annual_summary/layout.html:247 +#: bookwyrm/templates/book/book.html:65 +#: bookwyrm/templates/discover/large-book.html:22 +#: bookwyrm/templates/landing/large-book.html:26 +#: bookwyrm/templates/landing/small-book.html:18 +msgid "by" +msgstr "від" + +#: bookwyrm/templates/annual_summary/layout.html:163 +#: bookwyrm/templates/annual_summary/layout.html:184 +#, python-format +msgid "%(pages)s pages" +msgstr "%(pages)s сторінок" + +#: bookwyrm/templates/annual_summary/layout.html:171 +msgid "…and the longest" +msgstr "…і найдовший" + +#: bookwyrm/templates/annual_summary/layout.html:202 +#, python-format +msgid "%(display_name)s set a goal of reading %(goal)s book in %(year)s,
    and achieved %(goal_percent)s%% of that goal" +msgid_plural "%(display_name)s set a goal of reading %(goal)s books in %(year)s,
    and achieved %(goal_percent)s%% of that goal" +msgstr[0] "%(display_name)s встановив(-ла) ціль прочитати %(goal)s книгу в %(year)s,
    і досяг(-ла) %(goal_percent)s%% від цієї мети" +msgstr[1] "%(display_name)s встановив(-ла) ціль прочитати %(goal)s книги в %(year)s,
    і досяг(-ла) %(goal_percent)s%% від цієї мети" +msgstr[2] "%(display_name)s встановив(-ла) ціль прочитати %(goal)s книги в %(year)s,
    і досяг(-ла) %(goal_percent)s%% від цієї мети" +msgstr[3] "%(display_name)s встановив(-ла) ціль прочитати %(goal)s книги в %(year)s,
    і досяг(-ла) %(goal_percent)s%% від цієї мети" + +#: bookwyrm/templates/annual_summary/layout.html:211 +msgid "Way to go!" +msgstr "Так тримати!" + +#: bookwyrm/templates/annual_summary/layout.html:226 +#, python-format +msgid "%(display_name)s left %(ratings_total)s rating,
    their average rating is %(rating_average)s" +msgid_plural "%(display_name)s left %(ratings_total)s ratings,
    their average rating is %(rating_average)s" +msgstr[0] "%(display_name)s залишив(-ла) %(ratings_total)s оцінку,
    вона дорівнює %(rating_average)s" +msgstr[1] "%(display_name)s залишив(-ла) %(ratings_total)s оцінок,
    їх середнє значення - %(rating_average)s" +msgstr[2] "%(display_name)s залишив(-ла) %(ratings_total)s оцінок,
    їх середнє значення - %(rating_average)s" +msgstr[3] "%(display_name)s залишив(-ла) %(ratings_total)s оцінок,
    їх середнє значення - %(rating_average)s" + +#: bookwyrm/templates/annual_summary/layout.html:240 +msgid "Their best rated review" +msgstr "Їх найкраща рецензія" + +#: bookwyrm/templates/annual_summary/layout.html:253 +#, python-format +msgid "Their rating: %(rating)s" +msgstr "Їхній рейтинг: %(rating)s" + +#: bookwyrm/templates/annual_summary/layout.html:270 +#, python-format +msgid "All the books %(display_name)s read in %(year)s" +msgstr "Всі книжки %(display_name)s прочитані в %(year)s" + +#: bookwyrm/templates/author/author.html:19 +#: bookwyrm/templates/author/author.html:20 +msgid "Edit Author" +msgstr "Редагувати Автора" + +#: bookwyrm/templates/author/author.html:36 +msgid "Author details" +msgstr "Подробиці про автора" + +#: bookwyrm/templates/author/author.html:40 +#: bookwyrm/templates/author/edit_author.html:42 +msgid "Aliases:" +msgstr "Псевдоніми:" + +#: bookwyrm/templates/author/author.html:49 +msgid "Born:" +msgstr "Дата народження:" + +#: bookwyrm/templates/author/author.html:56 +msgid "Died:" +msgstr "Дата смерті:" + +#: bookwyrm/templates/author/author.html:66 +msgid "External links" +msgstr "Зовнішні посилання" + +#: bookwyrm/templates/author/author.html:71 +msgid "Wikipedia" +msgstr "Вікіпедія" + +#: bookwyrm/templates/author/author.html:79 +msgid "Website" +msgstr "Вебсайт" + +#: bookwyrm/templates/author/author.html:87 +msgid "View ISNI record" +msgstr "Переглянути запис ISNI" + +#: bookwyrm/templates/author/author.html:95 +#: bookwyrm/templates/book/book.html:175 +msgid "View on ISFDB" +msgstr "Переглянути на ISFDB" + +#: bookwyrm/templates/author/author.html:100 +#: bookwyrm/templates/author/sync_modal.html:5 +#: bookwyrm/templates/book/book.html:142 +#: bookwyrm/templates/book/sync_modal.html:5 +msgid "Load data" +msgstr "Завантажити данні" + +#: bookwyrm/templates/author/author.html:104 +#: bookwyrm/templates/book/book.html:146 +msgid "View on OpenLibrary" +msgstr "Переглянути на OpenLibrary" + +#: bookwyrm/templates/author/author.html:119 +#: bookwyrm/templates/book/book.html:160 +msgid "View on Inventaire" +msgstr "Переглянути на Inventaire" + +#: bookwyrm/templates/author/author.html:135 +msgid "View on LibraryThing" +msgstr "Переглянути на LibraryThing" + +#: bookwyrm/templates/author/author.html:143 +msgid "View on Goodreads" +msgstr "Переглянути на Goodreads" + +#: bookwyrm/templates/author/author.html:158 +#, python-format +msgid "Books by %(name)s" +msgstr "Книги за авторством %(name)s" + +#: bookwyrm/templates/author/edit_author.html:5 +msgid "Edit Author:" +msgstr "Редагування автора:" + +#: bookwyrm/templates/author/edit_author.html:13 +#: bookwyrm/templates/book/edit/edit_book.html:25 +msgid "Added:" +msgstr "Додано:" + +#: bookwyrm/templates/author/edit_author.html:14 +#: bookwyrm/templates/book/edit/edit_book.html:28 +msgid "Updated:" +msgstr "Оновлено:" + +#: bookwyrm/templates/author/edit_author.html:16 +#: bookwyrm/templates/book/edit/edit_book.html:32 +msgid "Last edited by:" +msgstr "Востаннє відредаговано:" + +#: bookwyrm/templates/author/edit_author.html:33 +#: bookwyrm/templates/book/edit/edit_book_form.html:21 +msgid "Metadata" +msgstr "Метадані" + +#: bookwyrm/templates/author/edit_author.html:35 +#: bookwyrm/templates/lists/form.html:9 +#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:14 +#: bookwyrm/templates/shelf/form.html:9 +msgid "Name:" +msgstr "Ім'я:" + +#: bookwyrm/templates/author/edit_author.html:44 +#: bookwyrm/templates/book/edit/edit_book_form.html:89 +#: bookwyrm/templates/book/edit/edit_book_form.html:159 +msgid "Separate multiple values with commas." +msgstr "Якщо значень багато, розділіть їх комами." + +#: bookwyrm/templates/author/edit_author.html:50 +msgid "Bio:" +msgstr "Біографія:" + +#: bookwyrm/templates/author/edit_author.html:56 +msgid "Wikipedia link:" +msgstr "Посилання на Вікіпедію:" + +#: bookwyrm/templates/author/edit_author.html:60 +msgid "Website:" +msgstr "Вебсайт:" + +#: bookwyrm/templates/author/edit_author.html:65 +msgid "Birth date:" +msgstr "Дата народження:" + +#: bookwyrm/templates/author/edit_author.html:72 +msgid "Death date:" +msgstr "Дата смерті:" + +#: bookwyrm/templates/author/edit_author.html:79 +msgid "Author Identifiers" +msgstr "Ідентифікатори Автора" + +#: bookwyrm/templates/author/edit_author.html:81 +msgid "Openlibrary key:" +msgstr "Ключ Openlibrary:" + +#: bookwyrm/templates/author/edit_author.html:88 +#: bookwyrm/templates/book/edit/edit_book_form.html:334 +msgid "Inventaire ID:" +msgstr "Inventaire ID:" + +#: bookwyrm/templates/author/edit_author.html:95 +msgid "Librarything key:" +msgstr "Ключ Librarything:" + +#: bookwyrm/templates/author/edit_author.html:102 +#: bookwyrm/templates/book/edit/edit_book_form.html:343 +msgid "Goodreads key:" +msgstr "Ключ Goodreads:" + +#: bookwyrm/templates/author/edit_author.html:109 +msgid "ISFDB:" +msgstr "ISFDB:" + +#: bookwyrm/templates/author/edit_author.html:116 +msgid "ISNI:" +msgstr "ISNI:" + +#: bookwyrm/templates/author/edit_author.html:126 +#: bookwyrm/templates/book/book.html:220 +#: bookwyrm/templates/book/edit/edit_book.html:150 +#: bookwyrm/templates/book/file_links/add_link_modal.html:60 +#: bookwyrm/templates/book/file_links/edit_links.html:86 +#: bookwyrm/templates/groups/form.html:32 +#: bookwyrm/templates/lists/bookmark_button.html:15 +#: bookwyrm/templates/lists/edit_item_form.html:15 +#: bookwyrm/templates/lists/form.html:130 +#: bookwyrm/templates/preferences/edit_user.html:140 +#: bookwyrm/templates/readthrough/readthrough_modal.html:81 +#: bookwyrm/templates/settings/announcements/edit_announcement.html:120 +#: bookwyrm/templates/settings/federation/edit_instance.html:98 +#: bookwyrm/templates/settings/federation/instance.html:105 +#: bookwyrm/templates/settings/registration.html:96 +#: bookwyrm/templates/settings/registration_limited.html:76 +#: bookwyrm/templates/settings/site.html:144 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/shelf/form.html:25 +#: bookwyrm/templates/snippets/reading_modals/layout.html:18 +msgid "Save" +msgstr "Зберегти" + +#: bookwyrm/templates/author/edit_author.html:127 +#: bookwyrm/templates/author/sync_modal.html:23 +#: bookwyrm/templates/book/book.html:221 +#: bookwyrm/templates/book/cover_add_modal.html:33 +#: bookwyrm/templates/book/edit/edit_book.html:152 +#: bookwyrm/templates/book/edit/edit_book.html:155 +#: bookwyrm/templates/book/file_links/add_link_modal.html:59 +#: bookwyrm/templates/book/file_links/verification_modal.html:25 +#: bookwyrm/templates/book/sync_modal.html:23 +#: bookwyrm/templates/groups/delete_group_modal.html:15 +#: bookwyrm/templates/lists/add_item_modal.html:36 +#: bookwyrm/templates/lists/delete_list_modal.html:16 +#: bookwyrm/templates/preferences/disable-2fa.html:19 +#: bookwyrm/templates/readthrough/delete_readthrough_modal.html:27 +#: bookwyrm/templates/readthrough/readthrough_modal.html:80 +#: bookwyrm/templates/search/barcode_modal.html:43 +#: bookwyrm/templates/settings/federation/instance.html:106 +#: bookwyrm/templates/settings/imports/complete_import_modal.html:16 +#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:22 +#: bookwyrm/templates/snippets/report_modal.html:52 +msgid "Cancel" +msgstr "Скасувати" + +#: bookwyrm/templates/author/sync_modal.html:15 +#, python-format +msgid "Loading data will connect to %(source_name)s and check for any metadata about this author which aren't present here. Existing metadata will not be overwritten." +msgstr "Процес завантаження даних з'єднається з %(source_name)s та перевірить наявність метаданих про цього автора, яких тут немає. Наявні метадані не буде перезаписано." + +#: bookwyrm/templates/author/sync_modal.html:24 +#: bookwyrm/templates/book/edit/edit_book.html:137 +#: bookwyrm/templates/book/sync_modal.html:24 +#: bookwyrm/templates/groups/members.html:29 +#: bookwyrm/templates/landing/password_reset.html:52 +#: bookwyrm/templates/preferences/2fa.html:77 +#: bookwyrm/templates/settings/imports/complete_import_modal.html:19 +#: bookwyrm/templates/snippets/remove_from_group_button.html:17 +msgid "Confirm" +msgstr "Підтвердити" + +#: bookwyrm/templates/book/book.html:20 +msgid "Unable to connect to remote source." +msgstr "Не вдалося під'єднатися до віддаленого джерела." + +#: bookwyrm/templates/book/book.html:73 bookwyrm/templates/book/book.html:74 +msgid "Edit Book" +msgstr "Редагувати Книгу" + +#: bookwyrm/templates/book/book.html:99 bookwyrm/templates/book/book.html:102 +msgid "Click to add cover" +msgstr "Натисніть, щоб додати обкладинку" + +#: bookwyrm/templates/book/book.html:108 +msgid "Failed to load cover" +msgstr "Не вдалося завантажити обкладинку" + +#: bookwyrm/templates/book/book.html:119 +msgid "Click to enlarge" +msgstr "Натисніть для збільшення" + +#: bookwyrm/templates/book/book.html:196 +#, python-format +msgid "(%(review_count)s review)" +msgid_plural "(%(review_count)s reviews)" +msgstr[0] "(%(review_count)s рецензія)" +msgstr[1] "(%(review_count)s рецензії)" +msgstr[2] "(%(review_count)s рецензій)" +msgstr[3] "(%(review_count)s рецензій)" + +#: bookwyrm/templates/book/book.html:209 +msgid "Add Description" +msgstr "Додати Опис" + +#: bookwyrm/templates/book/book.html:216 +#: bookwyrm/templates/book/edit/edit_book_form.html:53 +#: bookwyrm/templates/lists/form.html:13 bookwyrm/templates/shelf/form.html:17 +msgid "Description:" +msgstr "Опис:" + +#: bookwyrm/templates/book/book.html:232 +#, python-format +msgid "%(count)s edition" +msgid_plural "%(count)s editions" +msgstr[0] "%(count)s видання" +msgstr[1] "%(count)s видання" +msgstr[2] "%(count)s видань" +msgstr[3] "%(count)s видань" + +#: bookwyrm/templates/book/book.html:246 +msgid "You have shelved this edition in:" +msgstr "Ви відклали це видання на полицю:" + +#: bookwyrm/templates/book/book.html:261 +#, python-format +msgid "A different edition of this book is on your %(shelf_name)s shelf." +msgstr "Інше видання цієї книги знаходиться на вашій %(shelf_name)s полиці." + +#: bookwyrm/templates/book/book.html:272 +msgid "Your reading activity" +msgstr "Ваша читацька активність" + +#: bookwyrm/templates/book/book.html:278 +#: bookwyrm/templates/guided_tour/book.html:56 +msgid "Add read dates" +msgstr "Додати дати коли прочитано" + +#: bookwyrm/templates/book/book.html:286 +msgid "You don't have any reading activity for this book." +msgstr "Ви не маєте жодної читацької активності для цієї книги." + +#: bookwyrm/templates/book/book.html:312 +msgid "Your reviews" +msgstr "Ваші відгуки" + +#: bookwyrm/templates/book/book.html:318 +msgid "Your comments" +msgstr "Ваші коментарі" + +#: bookwyrm/templates/book/book.html:324 +msgid "Your quotes" +msgstr "Ваші цитати" + +#: bookwyrm/templates/book/book.html:360 +msgid "Subjects" +msgstr "Теми" + +#: bookwyrm/templates/book/book.html:372 +msgid "Places" +msgstr "Місця" + +#: bookwyrm/templates/book/book.html:383 +#: bookwyrm/templates/groups/group.html:19 +#: bookwyrm/templates/guided_tour/lists.html:14 +#: bookwyrm/templates/guided_tour/user_books.html:102 +#: bookwyrm/templates/guided_tour/user_profile.html:78 +#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 +#: bookwyrm/templates/lists/lists.html:12 +#: bookwyrm/templates/search/layout.html:26 +#: bookwyrm/templates/search/layout.html:51 +#: bookwyrm/templates/settings/celery.html:77 +#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +msgid "Lists" +msgstr "Списки" + +#: bookwyrm/templates/book/book.html:395 +msgid "Add to list" +msgstr "Додати до списку" + +#: bookwyrm/templates/book/book.html:405 +#: bookwyrm/templates/book/cover_add_modal.html:32 +#: bookwyrm/templates/lists/add_item_modal.html:39 +#: bookwyrm/templates/lists/list.html:255 +#: bookwyrm/templates/settings/email_blocklist/domain_form.html:24 +#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:32 +msgid "Add" +msgstr "Додати" + +#: bookwyrm/templates/book/book_identifiers.html:8 +msgid "ISBN:" +msgstr "ISBN:" + +#: bookwyrm/templates/book/book_identifiers.html:12 +#: bookwyrm/templates/book/book_identifiers.html:13 +msgid "Copy ISBN" +msgstr "" + +#: bookwyrm/templates/book/book_identifiers.html:16 +msgid "Copied ISBN!" +msgstr "" + +#: bookwyrm/templates/book/book_identifiers.html:23 +#: bookwyrm/templates/book/edit/edit_book_form.html:352 +msgid "OCLC Number:" +msgstr "Номер OCLC:" + +#: bookwyrm/templates/book/book_identifiers.html:30 +#: bookwyrm/templates/book/edit/edit_book_form.html:361 +msgid "ASIN:" +msgstr "ASIN:" + +#: bookwyrm/templates/book/book_identifiers.html:37 +#: bookwyrm/templates/book/edit/edit_book_form.html:370 +msgid "Audible ASIN:" +msgstr "Audible ASIN:" + +#: bookwyrm/templates/book/book_identifiers.html:44 +#: bookwyrm/templates/book/edit/edit_book_form.html:379 +msgid "ISFDB ID:" +msgstr "ISFDB ID:" + +#: bookwyrm/templates/book/book_identifiers.html:51 +msgid "Goodreads:" +msgstr "Goodreads:" + +#: bookwyrm/templates/book/cover_add_modal.html:5 +msgid "Add cover" +msgstr "Додати обкладинку" + +#: bookwyrm/templates/book/cover_add_modal.html:17 +#: bookwyrm/templates/book/edit/edit_book_form.html:244 +msgid "Upload cover:" +msgstr "Завантажити обкладинку:" + +#: bookwyrm/templates/book/cover_add_modal.html:23 +#: bookwyrm/templates/book/edit/edit_book_form.html:250 +msgid "Load cover from URL:" +msgstr "Завантажити обкладинку з посилання:" + +#: bookwyrm/templates/book/cover_show_modal.html:6 +msgid "Book cover preview" +msgstr "Попередній перегляд обкладинки книги" + +#: bookwyrm/templates/book/cover_show_modal.html:11 +#: bookwyrm/templates/components/inline_form.html:8 +#: bookwyrm/templates/components/modal.html:13 +#: bookwyrm/templates/components/modal.html:30 +#: bookwyrm/templates/feed/suggested_books.html:67 +#: bookwyrm/templates/get_started/layout.html:27 +#: bookwyrm/templates/get_started/layout.html:60 +msgid "Close" +msgstr "Закрити" + +#: bookwyrm/templates/book/edit/edit_book.html:8 +#: bookwyrm/templates/book/edit/edit_book.html:18 +#, python-format +msgid "Edit \"%(book_title)s\"" +msgstr "Редагувати \"%(book_title)s\"" + +#: bookwyrm/templates/book/edit/edit_book.html:10 +#: bookwyrm/templates/book/edit/edit_book.html:20 +msgid "Add Book" +msgstr "Додати книгу" + +#: bookwyrm/templates/book/edit/edit_book.html:43 +msgid "Failed to save book, see errors below for more information." +msgstr "Не вдалося зберегти книгу, дивіться помилки нижче для додаткової інформації." + +#: bookwyrm/templates/book/edit/edit_book.html:70 +msgid "Confirm Book Info" +msgstr "Підтвердити інформацію" + +#: bookwyrm/templates/book/edit/edit_book.html:78 +#, python-format +msgid "Is \"%(name)s\" one of these authors?" +msgstr "Чи є \"%(name)s одним з цих авторів?" + +#: bookwyrm/templates/book/edit/edit_book.html:89 +#, python-format +msgid "Author of %(book_title)s" +msgstr "Автор %(book_title)s" + +#: bookwyrm/templates/book/edit/edit_book.html:93 +#, python-format +msgid "Author of %(alt_title)s" +msgstr "Автор %(alt_title)s" + +#: bookwyrm/templates/book/edit/edit_book.html:95 +msgid "Find more information at isni.org" +msgstr "Знайти більше інформації на isni.org" + +#: bookwyrm/templates/book/edit/edit_book.html:105 +msgid "This is a new author" +msgstr "Це новий автор" + +#: bookwyrm/templates/book/edit/edit_book.html:115 +#, python-format +msgid "Creating a new author: %(name)s" +msgstr "Створення нового автора: %(name)s" + +#: bookwyrm/templates/book/edit/edit_book.html:122 +msgid "Is this an edition of an existing work?" +msgstr "Це видання вже існуючого твору?" + +#: bookwyrm/templates/book/edit/edit_book.html:130 +msgid "This is a new work" +msgstr "Це новий твір" + +#: bookwyrm/templates/book/edit/edit_book.html:139 +#: bookwyrm/templates/feed/status.html:19 +#: bookwyrm/templates/guided_tour/book.html:44 +#: bookwyrm/templates/guided_tour/book.html:68 +#: bookwyrm/templates/guided_tour/book.html:91 +#: bookwyrm/templates/guided_tour/book.html:116 +#: bookwyrm/templates/guided_tour/book.html:140 +#: bookwyrm/templates/guided_tour/book.html:164 +#: bookwyrm/templates/guided_tour/book.html:188 +#: bookwyrm/templates/guided_tour/book.html:213 +#: bookwyrm/templates/guided_tour/book.html:237 +#: bookwyrm/templates/guided_tour/book.html:262 +#: bookwyrm/templates/guided_tour/book.html:290 +#: bookwyrm/templates/guided_tour/group.html:43 +#: bookwyrm/templates/guided_tour/group.html:66 +#: bookwyrm/templates/guided_tour/group.html:89 +#: bookwyrm/templates/guided_tour/group.html:108 +#: bookwyrm/templates/guided_tour/home.html:91 +#: bookwyrm/templates/guided_tour/home.html:115 +#: bookwyrm/templates/guided_tour/home.html:140 +#: bookwyrm/templates/guided_tour/home.html:165 +#: bookwyrm/templates/guided_tour/home.html:189 +#: bookwyrm/templates/guided_tour/home.html:212 +#: bookwyrm/templates/guided_tour/lists.html:47 +#: bookwyrm/templates/guided_tour/lists.html:70 +#: bookwyrm/templates/guided_tour/lists.html:94 +#: bookwyrm/templates/guided_tour/lists.html:117 +#: bookwyrm/templates/guided_tour/lists.html:136 +#: bookwyrm/templates/guided_tour/search.html:83 +#: bookwyrm/templates/guided_tour/search.html:110 +#: bookwyrm/templates/guided_tour/search.html:134 +#: bookwyrm/templates/guided_tour/search.html:155 +#: bookwyrm/templates/guided_tour/user_books.html:44 +#: bookwyrm/templates/guided_tour/user_books.html:67 +#: bookwyrm/templates/guided_tour/user_books.html:90 +#: bookwyrm/templates/guided_tour/user_books.html:118 +#: bookwyrm/templates/guided_tour/user_groups.html:44 +#: bookwyrm/templates/guided_tour/user_groups.html:67 +#: bookwyrm/templates/guided_tour/user_groups.html:91 +#: bookwyrm/templates/guided_tour/user_groups.html:110 +#: bookwyrm/templates/guided_tour/user_profile.html:43 +#: bookwyrm/templates/guided_tour/user_profile.html:66 +#: bookwyrm/templates/guided_tour/user_profile.html:89 +#: bookwyrm/templates/guided_tour/user_profile.html:112 +#: bookwyrm/templates/guided_tour/user_profile.html:135 +#: bookwyrm/templates/user/user.html:93 bookwyrm/templates/user_menu.html:18 +msgid "Back" +msgstr "Назад" + +#: bookwyrm/templates/book/edit/edit_book_form.html:26 +#: bookwyrm/templates/snippets/create_status/review.html:15 +msgid "Title:" +msgstr "Назва:" + +#: bookwyrm/templates/book/edit/edit_book_form.html:35 +msgid "Sort Title:" +msgstr "" + +#: bookwyrm/templates/book/edit/edit_book_form.html:44 +msgid "Subtitle:" +msgstr "Підзаголовок:" + +#: bookwyrm/templates/book/edit/edit_book_form.html:64 +msgid "Series:" +msgstr "Серії:" + +#: bookwyrm/templates/book/edit/edit_book_form.html:74 +msgid "Series number:" +msgstr "Номер серії:" + +#: bookwyrm/templates/book/edit/edit_book_form.html:85 +msgid "Languages:" +msgstr "Мови:" + +#: bookwyrm/templates/book/edit/edit_book_form.html:97 +msgid "Subjects:" +msgstr "Теми:" + +#: bookwyrm/templates/book/edit/edit_book_form.html:101 +msgid "Add subject" +msgstr "Додати тему" + +#: bookwyrm/templates/book/edit/edit_book_form.html:119 +msgid "Remove subject" +msgstr "Видалити тему" + +#: bookwyrm/templates/book/edit/edit_book_form.html:142 +msgid "Add Another Subject" +msgstr "Додати іншу тему" + +#: bookwyrm/templates/book/edit/edit_book_form.html:150 +msgid "Publication" +msgstr "Видання" + +#: bookwyrm/templates/book/edit/edit_book_form.html:155 +msgid "Publisher:" +msgstr "Видавець:" + +#: bookwyrm/templates/book/edit/edit_book_form.html:167 +msgid "First published date:" +msgstr "Дата першого видання:" + +#: bookwyrm/templates/book/edit/edit_book_form.html:175 +msgid "Published date:" +msgstr "Дата видання:" + +#: bookwyrm/templates/book/edit/edit_book_form.html:186 +msgid "Authors" +msgstr "Автори" + +#: bookwyrm/templates/book/edit/edit_book_form.html:197 +#, python-format +msgid "Remove %(name)s" +msgstr "Видалити %(name)s" + +#: bookwyrm/templates/book/edit/edit_book_form.html:200 +#, python-format +msgid "Author page for %(name)s" +msgstr "Сторінка автора для %(name)s" + +#: bookwyrm/templates/book/edit/edit_book_form.html:208 +msgid "Add Authors:" +msgstr "Додати авторів:" + +#: bookwyrm/templates/book/edit/edit_book_form.html:211 +#: bookwyrm/templates/book/edit/edit_book_form.html:214 +msgid "Add Author" +msgstr "Додати автора" + +#: bookwyrm/templates/book/edit/edit_book_form.html:212 +#: bookwyrm/templates/book/edit/edit_book_form.html:215 +msgid "Jane Doe" +msgstr "Ілона Павлюк" + +#: bookwyrm/templates/book/edit/edit_book_form.html:221 +msgid "Add Another Author" +msgstr "Додати іншого автора" + +#: bookwyrm/templates/book/edit/edit_book_form.html:231 +#: bookwyrm/templates/shelf/shelf.html:162 +msgid "Cover" +msgstr "Обкладинка" + +#: bookwyrm/templates/book/edit/edit_book_form.html:263 +msgid "Physical Properties" +msgstr "Фізичні властивості" + +#: bookwyrm/templates/book/edit/edit_book_form.html:270 +#: bookwyrm/templates/book/editions/format_filter.html:6 +msgid "Format:" +msgstr "Формат:" + +#: bookwyrm/templates/book/edit/edit_book_form.html:280 +msgid "Format details:" +msgstr "Деталі формату:" + +#: bookwyrm/templates/book/edit/edit_book_form.html:291 +msgid "Pages:" +msgstr "Сторінок:" + +#: bookwyrm/templates/book/edit/edit_book_form.html:302 +msgid "Book Identifiers" +msgstr "Ідентифікатори книги" + +#: bookwyrm/templates/book/edit/edit_book_form.html:307 +msgid "ISBN 13:" +msgstr "ISBN 13:" + +#: bookwyrm/templates/book/edit/edit_book_form.html:316 +msgid "ISBN 10:" +msgstr "ISBN 10:" + +#: bookwyrm/templates/book/edit/edit_book_form.html:325 +msgid "Openlibrary ID:" +msgstr "Openlibrary ID:" + +#: bookwyrm/templates/book/editions/editions.html:4 +#, python-format +msgid "Editions of %(book_title)s" +msgstr "Видання %(book_title)s" + +#: bookwyrm/templates/book/editions/editions.html:8 +#, python-format +msgid "Editions of %(work_title)s" +msgstr "" + +#: bookwyrm/templates/book/editions/editions.html:55 +msgid "Can't find the edition you're looking for?" +msgstr "Не можете знайти потрібне видання?" + +#: bookwyrm/templates/book/editions/editions.html:76 +msgid "Add another edition" +msgstr "Додати інше видання" + +#: bookwyrm/templates/book/editions/format_filter.html:9 +#: bookwyrm/templates/book/editions/language_filter.html:9 +msgid "Any" +msgstr "Будь-яка" + +#: bookwyrm/templates/book/editions/language_filter.html:6 +#: bookwyrm/templates/preferences/edit_user.html:95 +msgid "Language:" +msgstr "Мова:" + +#: bookwyrm/templates/book/editions/search_filter.html:6 +msgid "Search editions" +msgstr "Пошук видань" + +#: bookwyrm/templates/book/file_links/add_link_modal.html:6 +msgid "Add file link" +msgstr "Додати посилання на файл" + +#: bookwyrm/templates/book/file_links/add_link_modal.html:19 +msgid "Links from unknown domains will need to be approved by a moderator before they are added." +msgstr "Посилання з невідомих доменів необхідно затвердити модератором перед тим, як вони додадуться." + +#: bookwyrm/templates/book/file_links/add_link_modal.html:24 +msgid "URL:" +msgstr "URL:" + +#: bookwyrm/templates/book/file_links/add_link_modal.html:29 +msgid "File type:" +msgstr "Тип файлу:" + +#: bookwyrm/templates/book/file_links/add_link_modal.html:48 +msgid "Availability:" +msgstr "Наявність:" + +#: bookwyrm/templates/book/file_links/edit_links.html:5 +#: bookwyrm/templates/book/file_links/edit_links.html:21 +#: bookwyrm/templates/book/file_links/links.html:53 +msgid "Edit links" +msgstr "Редагування посилання" + +#: bookwyrm/templates/book/file_links/edit_links.html:11 +#, python-format +msgid "Links for \"%(title)s\"" +msgstr "Посилання для \"%(title)s\"" + +#: bookwyrm/templates/book/file_links/edit_links.html:32 +#: bookwyrm/templates/settings/link_domains/link_table.html:6 +msgid "URL" +msgstr "URL" + +#: bookwyrm/templates/book/file_links/edit_links.html:33 +#: bookwyrm/templates/settings/link_domains/link_table.html:7 +msgid "Added by" +msgstr "Додано" + +#: bookwyrm/templates/book/file_links/edit_links.html:34 +#: bookwyrm/templates/settings/link_domains/link_table.html:8 +msgid "Filetype" +msgstr "Тип файлу" + +#: bookwyrm/templates/book/file_links/edit_links.html:35 +#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:25 +#: bookwyrm/templates/settings/reports/report_links_table.html:5 +msgid "Domain" +msgstr "Домен" + +#: bookwyrm/templates/book/file_links/edit_links.html:36 +#: bookwyrm/templates/import/import.html:139 +#: bookwyrm/templates/import/import_status.html:134 +#: bookwyrm/templates/settings/announcements/announcements.html:37 +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 +#: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/users/user_admin.html:56 +#: bookwyrm/templates/settings/users/user_info.html:24 +msgid "Status" +msgstr "Статус" + +#: bookwyrm/templates/book/file_links/edit_links.html:37 +#: bookwyrm/templates/settings/announcements/announcements.html:41 +#: bookwyrm/templates/settings/federation/instance.html:112 +#: bookwyrm/templates/settings/imports/imports.html:141 +#: bookwyrm/templates/settings/reports/report_links_table.html:6 +#: bookwyrm/templates/settings/themes.html:99 +msgid "Actions" +msgstr "Дії" + +#: bookwyrm/templates/book/file_links/edit_links.html:48 +#: bookwyrm/templates/settings/link_domains/link_table.html:21 +msgid "Unknown user" +msgstr "Невідомий користувач" + +#: bookwyrm/templates/book/file_links/edit_links.html:57 +#: bookwyrm/templates/book/file_links/verification_modal.html:22 +msgid "Report spam" +msgstr "Повідомити про спам" + +#: bookwyrm/templates/book/file_links/edit_links.html:102 +msgid "No links available for this book." +msgstr "Немає посилань для цієї книги." + +#: bookwyrm/templates/book/file_links/edit_links.html:113 +#: bookwyrm/templates/book/file_links/links.html:18 +msgid "Add link to file" +msgstr "Додати посилання на файл" + +#: bookwyrm/templates/book/file_links/file_link_page.html:6 +msgid "File Links" +msgstr "Посилання на файли" + +#: bookwyrm/templates/book/file_links/links.html:9 +msgid "Get a copy" +msgstr "Отримати копію" + +#: bookwyrm/templates/book/file_links/links.html:47 +msgid "No links available" +msgstr "Немає доступних посиланнь" + +#: bookwyrm/templates/book/file_links/verification_modal.html:5 +msgid "Leaving BookWyrm" +msgstr "Ви покидаєте BookWyrm" + +#: bookwyrm/templates/book/file_links/verification_modal.html:11 +#, python-format +msgid "This link is taking you to: %(link_url)s.
    Is that where you'd like to go?" +msgstr "Це посилання веде на: %(link_url)s.
    Ви впевнені що хочете перейти за ним?" + +#: bookwyrm/templates/book/file_links/verification_modal.html:26 +#: bookwyrm/templates/setup/config.html:139 +msgid "Continue" +msgstr "Продовжити" + +#: bookwyrm/templates/book/publisher_info.html:23 +#, python-format +msgid "%(format)s, %(pages)s pages" +msgstr "%(format)s, %(pages)s сторінок" + +#: bookwyrm/templates/book/publisher_info.html:25 +#, python-format +msgid "%(pages)s pages" +msgstr "%(pages)s сторінок" + +#: bookwyrm/templates/book/publisher_info.html:38 +#, python-format +msgid "%(languages)s language" +msgstr "%(languages)s мова" + +#: bookwyrm/templates/book/publisher_info.html:63 +#, python-format +msgid "Published %(date)s by %(publisher)s." +msgstr "Видано %(publisher)s, %(date)s." + +#: bookwyrm/templates/book/publisher_info.html:65 +#, python-format +msgid "Published by %(publisher)s." +msgstr "Видано %(publisher)s." + +#: bookwyrm/templates/book/publisher_info.html:67 +#, python-format +msgid "Published %(date)s" +msgstr "Видано %(date)s" + +#: bookwyrm/templates/book/rating.html:19 +msgid "rated it" +msgstr "оцінив у" + +#: bookwyrm/templates/book/series.html:11 +msgid "Series by" +msgstr "Серія від" + +#: bookwyrm/templates/book/series.html:28 +#, python-format +msgid "Book %(series_number)s" +msgstr "Книга %(series_number)s" + +#: bookwyrm/templates/book/series.html:28 +msgid "Unsorted Book" +msgstr "Несортована Книга" + +#: bookwyrm/templates/book/sync_modal.html:15 +#, python-format +msgid "Loading data will connect to %(source_name)s and check for any metadata about this book which aren't present here. Existing metadata will not be overwritten." +msgstr "Процес завантаження даних з'єднається з %(source_name)s та перевірить наявність метаданих про цю книгу, яких тут немає. Наявні метадані не буде перезаписано." + +#: bookwyrm/templates/compose.html:5 bookwyrm/templates/compose.html:8 +msgid "Edit status" +msgstr "Редагувати статус" + +#: bookwyrm/templates/confirm_email/confirm_email.html:4 +msgid "Confirm email" +msgstr "Підтвердження email-адреси" + +#: bookwyrm/templates/confirm_email/confirm_email.html:7 +msgid "Confirm your email address" +msgstr "Підтвердьте свою email-адресу" + +#: bookwyrm/templates/confirm_email/confirm_email.html:13 +msgid "A confirmation code has been sent to the email address you used to register your account." +msgstr "На вашу електронну адресу надіслано код підтвердження." + +#: bookwyrm/templates/confirm_email/confirm_email.html:15 +msgid "Sorry! We couldn't find that code." +msgstr "Вибачте! Ми не змогли знайти цей код." + +#: bookwyrm/templates/confirm_email/confirm_email.html:19 +#: bookwyrm/templates/settings/users/user_info.html:98 +msgid "Confirmation code:" +msgstr "Код підтвердження:" + +#: bookwyrm/templates/confirm_email/confirm_email.html:25 +#: bookwyrm/templates/landing/layout.html:81 +#: bookwyrm/templates/settings/dashboard/dashboard.html:102 +#: bookwyrm/templates/snippets/report_modal.html:53 +msgid "Submit" +msgstr "Надіслати" + +#: bookwyrm/templates/confirm_email/confirm_email.html:38 +msgid "Can't find your code?" +msgstr "Не вдалося знайти код?" + +#: bookwyrm/templates/confirm_email/resend.html:5 +#: bookwyrm/templates/confirm_email/resend_modal.html:5 +msgid "Resend confirmation link" +msgstr "Повторно надіслати підтвердження на електронну пошту" + +#: bookwyrm/templates/confirm_email/resend_modal.html:15 +#: bookwyrm/templates/landing/layout.html:68 +#: bookwyrm/templates/landing/password_reset_request.html:24 +#: bookwyrm/templates/preferences/edit_user.html:53 +#: bookwyrm/templates/snippets/register_form.html:27 +msgid "Email address:" +msgstr "Електронна пошта:" + +#: bookwyrm/templates/confirm_email/resend_modal.html:30 +msgid "Resend link" +msgstr "Надіслати посилання ще раз" + +#: bookwyrm/templates/directory/community_filter.html:5 +msgid "Community" +msgstr "Спільнота" + +#: bookwyrm/templates/directory/community_filter.html:8 +#: bookwyrm/templates/settings/users/user_admin.html:25 +msgid "Local users" +msgstr "Локальні користувачі" + +#: bookwyrm/templates/directory/community_filter.html:12 +#: bookwyrm/templates/settings/users/user_admin.html:33 +msgid "Federated community" +msgstr "Федеративна спільнота" + +#: bookwyrm/templates/directory/directory.html:4 +#: bookwyrm/templates/directory/directory.html:9 +#: bookwyrm/templates/user_menu.html:34 +msgid "Directory" +msgstr "Каталог" + +#: bookwyrm/templates/directory/directory.html:17 +msgid "Make your profile discoverable to other BookWyrm users." +msgstr "Зробити свій профіль видимим для інших користувачів BookWyrm." + +#: bookwyrm/templates/directory/directory.html:21 +msgid "Join Directory" +msgstr "Приєднатися до Каталогу" + +#: bookwyrm/templates/directory/directory.html:24 +#, python-format +msgid "You can opt-out at any time in your profile settings." +msgstr "Ви можете від'єднатися будь-коли в настройках профілю " + +#: bookwyrm/templates/directory/directory.html:29 +#: bookwyrm/templates/directory/directory.html:31 +#: bookwyrm/templates/feed/goal_card.html:17 +#: bookwyrm/templates/feed/summary_card.html:12 +#: bookwyrm/templates/feed/summary_card.html:14 +#: bookwyrm/templates/snippets/announcement.html:31 +msgid "Dismiss message" +msgstr "Відхилити повідомлення" + +#: bookwyrm/templates/directory/sort_filter.html:5 +msgid "Order by" +msgstr "Сортувати за" + +#: bookwyrm/templates/directory/sort_filter.html:9 +msgid "Recently active" +msgstr "Нещодавно активні" + +#: bookwyrm/templates/directory/sort_filter.html:10 +msgid "Suggested" +msgstr "Рекомендовані" + +#: bookwyrm/templates/directory/user_card.html:17 +#: bookwyrm/templates/directory/user_card.html:18 +#: bookwyrm/templates/ostatus/remote_follow.html:21 +#: bookwyrm/templates/ostatus/remote_follow.html:22 +#: bookwyrm/templates/ostatus/subscribe.html:41 +#: bookwyrm/templates/ostatus/subscribe.html:42 +#: bookwyrm/templates/ostatus/success.html:17 +#: bookwyrm/templates/ostatus/success.html:18 +#: bookwyrm/templates/user/moved.html:19 bookwyrm/templates/user/moved.html:20 +#: bookwyrm/templates/user/user_preview.html:16 +#: bookwyrm/templates/user/user_preview.html:17 +msgid "Locked account" +msgstr "Заблокований обліковий запис" + +#: bookwyrm/templates/directory/user_card.html:40 +msgid "follower you follow" +msgid_plural "followers you follow" +msgstr[0] "підписник, за яким ви стежите" +msgstr[1] "підписників, за якими ви стежите" +msgstr[2] "підписників, за якими ви стежите" +msgstr[3] "підписників, за якими ви стежите" + +#: bookwyrm/templates/directory/user_card.html:47 +msgid "book on your shelves" +msgid_plural "books on your shelves" +msgstr[0] "книга на ваших полицях" +msgstr[1] "книги на ваших полицях" +msgstr[2] "книги на ваших полицях" +msgstr[3] "книги на ваших полицях" + +#: bookwyrm/templates/directory/user_card.html:55 +msgid "posts" +msgstr "постів" + +#: bookwyrm/templates/directory/user_card.html:61 +msgid "last active" +msgstr "остання активність" + +#: bookwyrm/templates/directory/user_type_filter.html:5 +msgid "User type" +msgstr "Тип користувача" + +#: bookwyrm/templates/directory/user_type_filter.html:8 +msgid "BookWyrm users" +msgstr "Користувачі BookWyrm" + +#: bookwyrm/templates/directory/user_type_filter.html:12 +msgid "All known users" +msgstr "Усі відомі користувачі" + +#: bookwyrm/templates/discover/card-header.html:8 +#, python-format +msgid "%(username)s wants to read %(book_title)s" +msgstr "%(username)s хоче прочитати %(book_title)s" + +#: bookwyrm/templates/discover/card-header.html:13 +#, python-format +msgid "%(username)s finished reading %(book_title)s" +msgstr "%(username)s закінчив(-ла) читати %(book_title)s" + +#: bookwyrm/templates/discover/card-header.html:18 +#, python-format +msgid "%(username)s started reading %(book_title)s" +msgstr "%(username)s почав(-ла) читати %(book_title)s" + +#: bookwyrm/templates/discover/card-header.html:23 +#, python-format +msgid "%(username)s rated %(book_title)s" +msgstr "%(username)s оцінив(-ла) %(book_title)s" + +#: bookwyrm/templates/discover/card-header.html:27 +#, python-format +msgid "%(username)s reviewed %(book_title)s" +msgstr "%(username)s рецензував(-ла) %(book_title)s" + +#: bookwyrm/templates/discover/card-header.html:31 +#, python-format +msgid "%(username)s commented on %(book_title)s" +msgstr "%(username)s прокоментував(-ла) %(book_title)s" + +#: bookwyrm/templates/discover/card-header.html:35 +#, python-format +msgid "%(username)s quoted %(book_title)s" +msgstr "%(username)s процитував(-ла) %(book_title)s" + +#: bookwyrm/templates/discover/discover.html:4 +#: bookwyrm/templates/discover/discover.html:10 +#: bookwyrm/templates/layout.html:94 +msgid "Discover" +msgstr "Огляд" + +#: bookwyrm/templates/discover/discover.html:12 +#, python-format +msgid "See what's new in the local %(site_name)s community" +msgstr "Що нового коїться у місцевій спільноті %(site_name)s" + +#: bookwyrm/templates/discover/large-book.html:52 +#: bookwyrm/templates/discover/small-book.html:36 +msgid "View status" +msgstr "Переглянути статус" + +#: bookwyrm/templates/email/confirm/html_content.html:6 +#: bookwyrm/templates/email/confirm/text_content.html:4 +#, python-format +msgid "One last step before you join %(site_name)s! Please confirm your email address by clicking the link below:" +msgstr "Це останнє що треба зробити перед приєднанням до %(site_name)s! Будь ласка, підтвердьте вашу адресу електронної пошти, натиснувши на посилання нижче:" + +#: bookwyrm/templates/email/confirm/html_content.html:11 +msgid "Confirm Email" +msgstr "Підтвердження email-адреси" + +#: bookwyrm/templates/email/confirm/html_content.html:15 +#, python-format +msgid "Or enter the code \"%(confirmation_code)s\" at login." +msgstr "Або введіть код \"%(confirmation_code)s\" при вході в систему." + +#: bookwyrm/templates/email/confirm/subject.html:2 +msgid "Please confirm your email" +msgstr "Будь ласка, підтвердьте свою email-адресу" + +#: bookwyrm/templates/email/confirm/text_content.html:10 +#, python-format +msgid "Or enter the code \"%(confirmation_code)s\" at login." +msgstr "Або введіть код \"%(confirmation_code)s\" при вході в систему." + +#: bookwyrm/templates/email/html_layout.html:15 +#: bookwyrm/templates/email/text_layout.html:2 +msgid "Hi there," +msgstr "Привіт," + +#: bookwyrm/templates/email/html_layout.html:21 +#, python-format +msgid "BookWyrm hosted on %(site_name)s" +msgstr "BookWyrm розміщений на %(site_name)s" + +#: bookwyrm/templates/email/html_layout.html:23 +msgid "Email preference" +msgstr "Налаштування Email" + +#: bookwyrm/templates/email/invite/html_content.html:6 +#: bookwyrm/templates/email/invite/subject.html:2 +#, python-format +msgid "You're invited to join %(site_name)s!" +msgstr "Вас запрошують приєднатися до %(site_name)s!" + +#: bookwyrm/templates/email/invite/html_content.html:9 +msgid "Join Now" +msgstr "Приєднатися зараз" + +#: bookwyrm/templates/email/invite/html_content.html:15 +#, python-format +msgid "Learn more about %(site_name)s." +msgstr "Дізнайтеся більше про %(site_name)s." + +#: bookwyrm/templates/email/invite/text_content.html:4 +#, python-format +msgid "You're invited to join %(site_name)s! Click the link below to create an account." +msgstr "Вас запросили приєднатися до %(site_name)s! Перейдіть за посиланням нижче, щоб створити обліковий запис." + +#: bookwyrm/templates/email/invite/text_content.html:8 +#, python-format +msgid "Learn more about %(site_name)s:" +msgstr "Дізнайтеся більше про %(site_name)s:" + +#: bookwyrm/templates/email/moderation_report/html_content.html:8 +#: bookwyrm/templates/email/moderation_report/text_content.html:6 +#, python-format +msgid "@%(reporter)s has flagged a link domain for moderation." +msgstr "@%(reporter)s позначив домен посилання на модерацію." + +#: bookwyrm/templates/email/moderation_report/html_content.html:14 +#: bookwyrm/templates/email/moderation_report/text_content.html:10 +#, python-format +msgid "@%(reporter)s has flagged behavior by @%(reportee)s for moderation." +msgstr "@%(reporter)s позначає поведінку @%(reportee)s на модерацію." + +#: bookwyrm/templates/email/moderation_report/html_content.html:21 +#: bookwyrm/templates/email/moderation_report/text_content.html:15 +msgid "View report" +msgstr "Переглянути скаргу" + +#: bookwyrm/templates/email/moderation_report/subject.html:2 +#, python-format +msgid "New report for %(site_name)s" +msgstr "Нова скарга для %(site_name)s" + +#: bookwyrm/templates/email/password_reset/html_content.html:6 +#: bookwyrm/templates/email/password_reset/text_content.html:4 +#, python-format +msgid "You requested to reset your %(site_name)s password. Click the link below to set a new password and log in to your account." +msgstr "Ви надіслали запит на зміну пароля на сайті %(site_name)s. Перейдіть за посиланням нижче, щоб встановити новий пароль і увійти до свого облікового запису." + +#: bookwyrm/templates/email/password_reset/html_content.html:9 +#: bookwyrm/templates/landing/password_reset.html:4 +#: bookwyrm/templates/landing/password_reset.html:10 +#: bookwyrm/templates/landing/password_reset_request.html:4 +#: bookwyrm/templates/landing/password_reset_request.html:10 +msgid "Reset Password" +msgstr "Скинути пароль" + +#: bookwyrm/templates/email/password_reset/html_content.html:13 +#: bookwyrm/templates/email/password_reset/text_content.html:8 +msgid "If you didn't request to reset your password, you can ignore this email." +msgstr "Якщо ви не запитували зміну пароля, ви можете ігнорувати цей лист." + +#: bookwyrm/templates/email/password_reset/subject.html:2 +#, python-format +msgid "Reset your %(site_name)s password" +msgstr "Скинути пароль до %(site_name)s" + +#: bookwyrm/templates/email/test/html_content.html:6 +#: bookwyrm/templates/email/test/text_content.html:4 +msgid "This is a test email." +msgstr "Це тест е-пошти." + +#: bookwyrm/templates/email/test/subject.html:2 +msgid "Test email" +msgstr "Перевірка е-пошти" + +#: bookwyrm/templates/embed-layout.html:21 bookwyrm/templates/layout.html:33 +#: bookwyrm/templates/layout.html:163 bookwyrm/templates/setup/layout.html:15 +#: bookwyrm/templates/two_factor_auth/two_factor_login.html:18 +#: bookwyrm/templates/two_factor_auth/two_factor_prompt.html:18 +#, python-format +msgid "%(site_name)s home page" +msgstr "Головна сторінка %(site_name)s" + +#: bookwyrm/templates/embed-layout.html:40 +#: bookwyrm/templates/snippets/footer.html:12 +msgid "Contact site admin" +msgstr "Зв'язатися з адміністратором сайту" + +#: bookwyrm/templates/embed-layout.html:46 +msgid "Join BookWyrm" +msgstr "Приєднатися до BookWyrm" + +#: bookwyrm/templates/feed/direct_messages.html:8 +#, python-format +msgid "Direct Messages with %(username)s" +msgstr "Особисті Повідомлення з %(username)s" + +#: bookwyrm/templates/feed/direct_messages.html:10 +#: bookwyrm/templates/user_menu.html:44 +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:55 +msgid "There aren't any activities right now! Try following a user to get started" +msgstr "Немає жодних активностей! Для початку, спробуйте підписатися на якогось користувача" + +#: bookwyrm/templates/feed/feed.html:56 +msgid "Alternatively, you can try enabling more status types" +msgstr "Або, ви можете спробувати увімкнути більше типів постів" + +#: bookwyrm/templates/feed/goal_card.html:6 +#: bookwyrm/templates/feed/layout.html:14 +#: bookwyrm/templates/user/goal_form.html:6 +#, python-format +msgid "%(year)s Reading Goal" +msgstr "Мета читання на %(year)s рік" + +#: bookwyrm/templates/feed/goal_card.html:18 +#, python-format +msgid "You can set or change your reading goal any time from your profile page" +msgstr "Ви можете задати або змінити ціль читання у будь-який час на сторінці профілю " + +#: bookwyrm/templates/feed/layout.html:4 +msgid "Updates" +msgstr "Оновлення" + +#: bookwyrm/templates/feed/suggested_books.html:6 +#: bookwyrm/templates/guided_tour/home.html:127 +#: bookwyrm/templates/user_menu.html:39 +msgid "Your Books" +msgstr "Ваші книги" + +#: bookwyrm/templates/feed/suggested_books.html:10 +msgid "There are no books here right now! Try searching for a book to get started" +msgstr "Тут немає жодної книги! Спробуйте пошукати книгу, щоб почати" + +#: bookwyrm/templates/feed/suggested_books.html:13 +msgid "Do you have book data from another service like GoodReads?" +msgstr "Чи є у вас дані книги з іншого сервісу, наприклад, GoodReads?" + +#: bookwyrm/templates/feed/suggested_books.html:16 +msgid "Import your reading history" +msgstr "Імпортувати історію читання" + +#: bookwyrm/templates/feed/suggested_users.html:5 +#: bookwyrm/templates/get_started/users.html:6 +msgid "Who to follow" +msgstr "На кого підписатися" + +#: bookwyrm/templates/feed/suggested_users.html:9 +msgid "Don't show suggested users" +msgstr "Не показувати запропонованих користувачів" + +#: bookwyrm/templates/feed/suggested_users.html:14 +msgid "View directory" +msgstr "Переглянути каталог" + +#: bookwyrm/templates/feed/summary_card.html:21 +msgid "The end of the year is the best moment to take stock of all the books read during the last 12 months. How many pages have you read? Which book is your best-rated of the year? We compiled these stats, and more!" +msgstr "Кінець року - найкращий момент, щоб підбити підсумки всіх книг, прочитаних за останні 12 місяців. Скільки сторінок ви прочитали? Яка книга вам найбільше сподобалась? Ми зібрали цю статистику і не тільки!" + +#: bookwyrm/templates/feed/summary_card.html:26 +#, python-format +msgid "Discover your stats for %(year)s!" +msgstr "Дослідіть вашу статистику за %(year)s рік!" + +#: bookwyrm/templates/get_started/book_preview.html:6 +#, python-format +msgid "Have you read %(book_title)s?" +msgstr "Ви прочитали %(book_title)s?" + +#: bookwyrm/templates/get_started/book_preview.html:7 +msgid "Add to your books" +msgstr "Додати до ваших книг" + +#: bookwyrm/templates/get_started/book_preview.html:10 +#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templatetags/shelf_tags.py:14 +msgid "To Read" +msgstr "В \"Прочитати\"" + +#: bookwyrm/templates/get_started/book_preview.html:11 +#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templatetags/shelf_tags.py:15 +msgid "Currently Reading" +msgstr "Зараз Читаю" + +#: bookwyrm/templates/get_started/book_preview.html:12 +#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/snippets/shelf_selector.html:46 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 +#: bookwyrm/templates/user/user.html:39 bookwyrm/templatetags/shelf_tags.py:16 +msgid "Read" +msgstr "Прочитано" + +#: bookwyrm/templates/get_started/book_preview.html:13 +#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templatetags/shelf_tags.py:17 +msgid "Stopped Reading" +msgstr "Читання Зупинено" + +#: bookwyrm/templates/get_started/books.html:6 +msgid "What are you reading?" +msgstr "Що ви читаєте?" + +#: bookwyrm/templates/get_started/books.html:9 +#: bookwyrm/templates/layout.html:41 bookwyrm/templates/lists/list.html:213 +msgid "Search for a book" +msgstr "Шукати книгу" + +#: bookwyrm/templates/get_started/books.html:11 +#, python-format +msgid "No books found for \"%(query)s\"" +msgstr "Не знайдено книг по запиту \"%(query)s\"" + +#: bookwyrm/templates/get_started/books.html:11 +#, python-format +msgid "You can add books when you start using %(site_name)s." +msgstr "Ви зможете додавати книги, коли почнете користуватися %(site_name)s." + +#: bookwyrm/templates/get_started/books.html:16 +#: bookwyrm/templates/get_started/books.html:17 +#: bookwyrm/templates/get_started/users.html:18 +#: bookwyrm/templates/get_started/users.html:19 +#: bookwyrm/templates/groups/members.html:15 +#: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:47 +#: bookwyrm/templates/layout.html:48 bookwyrm/templates/lists/list.html:217 +#: bookwyrm/templates/search/layout.html:5 +#: bookwyrm/templates/search/layout.html:10 +#: bookwyrm/templates/search/layout.html:32 +msgid "Search" +msgstr "Пошук" + +#: bookwyrm/templates/get_started/books.html:27 +msgid "Suggested Books" +msgstr "Запропоновані Книги" + +#: bookwyrm/templates/get_started/books.html:33 +msgid "Search results" +msgstr "Результати пошуку" + +#: bookwyrm/templates/get_started/books.html:46 +#, python-format +msgid "Popular on %(site_name)s" +msgstr "Популярне на %(site_name)s" + +#: bookwyrm/templates/get_started/books.html:58 +#: bookwyrm/templates/lists/list.html:230 +msgid "No books found" +msgstr "Книжок не знайдено" + +#: bookwyrm/templates/get_started/books.html:63 +#: bookwyrm/templates/get_started/profile.html:64 +msgid "Save & continue" +msgstr "Зберегти & продовжити" + +#: bookwyrm/templates/get_started/layout.html:5 +#: bookwyrm/templates/landing/layout.html:5 +msgid "Welcome" +msgstr "Вітаємо" + +#: bookwyrm/templates/get_started/layout.html:24 +msgid "These are some first steps to get you started." +msgstr "Це кілька перших кроків, які допоможуть вам розпочати роботу." + +#: bookwyrm/templates/get_started/layout.html:38 +#: bookwyrm/templates/get_started/profile.html:6 +msgid "Create your profile" +msgstr "Створити свій профіль" + +#: bookwyrm/templates/get_started/layout.html:42 +msgid "Add books" +msgstr "Додати книги" + +#: bookwyrm/templates/get_started/layout.html:46 +msgid "Find friends" +msgstr "Знайти друзів" + +#: bookwyrm/templates/get_started/layout.html:52 +msgid "Skip this step" +msgstr "Пропустити цей крок" + +#: bookwyrm/templates/get_started/layout.html:56 +#: bookwyrm/templates/guided_tour/group.html:101 +msgid "Finish" +msgstr "Завершити" + +#: bookwyrm/templates/get_started/profile.html:15 +#: bookwyrm/templates/preferences/edit_user.html:41 +msgid "Display name:" +msgstr "Відображуване ім'я:" + +#: bookwyrm/templates/get_started/profile.html:29 +#: bookwyrm/templates/preferences/edit_user.html:47 +#: bookwyrm/templates/settings/announcements/edit_announcement.html:49 +msgid "Summary:" +msgstr "Підсумок:" + +#: bookwyrm/templates/get_started/profile.html:34 +msgid "A little bit about you" +msgstr "Трохи про вас" + +#: bookwyrm/templates/get_started/profile.html:43 +#: bookwyrm/templates/preferences/edit_user.html:27 +msgid "Avatar:" +msgstr "Аватар:" + +#: bookwyrm/templates/get_started/profile.html:52 +msgid "Manually approve followers:" +msgstr "Підтверджувати підписників вручну:" + +#: bookwyrm/templates/get_started/profile.html:58 +msgid "Show this account in suggested users:" +msgstr "Показувати цей обліковий запис в запропонованих користувачах:" + +#: bookwyrm/templates/get_started/profile.html:62 +msgid "Your account will show up in the directory, and may be recommended to other BookWyrm users." +msgstr "Ваш обліковий запис буде показуватися в каталозі, та може бути рекомендований іншим користувачам BookWyrm." + +#: bookwyrm/templates/get_started/users.html:8 +msgid "You can follow users on other BookWyrm instances and federated services like Mastodon." +msgstr "Ви можете слідкувати за користувачами з інших інстансів BookWyrm або федеративних сервісів на кшталт Mastodon." + +#: bookwyrm/templates/get_started/users.html:11 +msgid "Search for a user" +msgstr "Пошук користувача" + +#: bookwyrm/templates/get_started/users.html:13 +#, python-format +msgid "No users found for \"%(query)s\"" +msgstr "По запиту \"%(query)s\" користувачів не знайдено" + +#: bookwyrm/templates/groups/create_form.html:5 +#: bookwyrm/templates/guided_tour/user_groups.html:32 +#: bookwyrm/templates/user/groups.html:22 +msgid "Create group" +msgstr "Створити групу" + +#: bookwyrm/templates/groups/created_text.html:4 +#, python-format +msgid "Managed by %(username)s" +msgstr "Керує %(username)s" + +#: bookwyrm/templates/groups/delete_group_modal.html:4 +msgid "Delete this group?" +msgstr "Видалити цю групу?" + +#: bookwyrm/templates/groups/delete_group_modal.html:7 +#: bookwyrm/templates/lists/delete_list_modal.html:7 +#: bookwyrm/templates/readthrough/delete_readthrough_modal.html:12 +#: bookwyrm/templates/settings/imports/complete_import_modal.html:7 +msgid "This action cannot be un-done" +msgstr "Цю дію не можна скасувати" + +#: bookwyrm/templates/groups/delete_group_modal.html:17 +#: bookwyrm/templates/lists/delete_list_modal.html:19 +#: bookwyrm/templates/readthrough/delete_readthrough_modal.html:29 +#: bookwyrm/templates/settings/announcements/announcement.html:23 +#: bookwyrm/templates/settings/announcements/announcements.html:56 +#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:49 +#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:36 +#: bookwyrm/templates/snippets/follow_request_buttons.html:12 +#: bookwyrm/templates/snippets/join_invitation_buttons.html:14 +msgid "Delete" +msgstr "Видалити" + +#: bookwyrm/templates/groups/edit_form.html:5 +msgid "Edit Group" +msgstr "Редагувати групу" + +#: bookwyrm/templates/groups/form.html:8 +msgid "Group Name:" +msgstr "Назва групи:" + +#: bookwyrm/templates/groups/form.html:12 +msgid "Group Description:" +msgstr "Опис групи:" + +#: bookwyrm/templates/groups/form.html:21 +msgid "Delete group" +msgstr "Видалити групу" + +#: bookwyrm/templates/groups/group.html:21 +msgid "Members of this group can create group-curated lists." +msgstr "Учасники цієї групи можуть створювати списки, які куруються групою." + +#: bookwyrm/templates/groups/group.html:26 +#: bookwyrm/templates/lists/create_form.html:5 +#: bookwyrm/templates/lists/lists.html:20 +msgid "Create List" +msgstr "Створити список" + +#: bookwyrm/templates/groups/group.html:39 +msgid "This group has no lists" +msgstr "Ця група не має списків" + +#: bookwyrm/templates/groups/layout.html:17 +msgid "Edit group" +msgstr "Редагувати групу" + +#: bookwyrm/templates/groups/members.html:11 +msgid "Search to add a user" +msgstr "Пошук, щоб додати користувача" + +#: bookwyrm/templates/groups/members.html:32 +msgid "Leave group" +msgstr "Покинути групу" + +#: bookwyrm/templates/groups/members.html:54 +#: bookwyrm/templates/groups/suggested_users.html:35 +#: bookwyrm/templates/snippets/suggested_users.html:31 +#: bookwyrm/templates/user/user_preview.html:39 +#: bookwyrm/templates/user/user_preview.html:47 +msgid "Follows you" +msgstr "Слідкує за вами" + +#: bookwyrm/templates/groups/suggested_users.html:7 +msgid "Add new members!" +msgstr "Додавайте нових учасників!" + +#: bookwyrm/templates/groups/suggested_users.html:20 +#: bookwyrm/templates/snippets/suggested_users.html:16 +#, python-format +msgid "%(mutuals)s follower you follow" +msgid_plural "%(mutuals)s followers you follow" +msgstr[0] "%(mutuals)s підписник, за яким ви стежите" +msgstr[1] "%(mutuals)s підписників, за якими ви стежите" +msgstr[2] "%(mutuals)s підписників, за якими ви стежите" +msgstr[3] "%(mutuals)s підписників, за якими ви стежите" + +#: bookwyrm/templates/groups/suggested_users.html:27 +#: bookwyrm/templates/snippets/suggested_users.html:23 +#, python-format +msgid "%(shared_books)s book on your shelves" +msgid_plural "%(shared_books)s books on your shelves" +msgstr[0] "%(shared_books)s книга на ваших полицях" +msgstr[1] "%(shared_books)s книги на ваших полицях" +msgstr[2] "%(shared_books)s книг на ваших полицях" +msgstr[3] "%(shared_books)s книг на ваших полицях" + +#: bookwyrm/templates/groups/suggested_users.html:43 +#, python-format +msgid "No potential members found for \"%(user_query)s\"" +msgstr "Не знайдено потенційних учасників по запиту \"%(user_query)s\"" + +#: bookwyrm/templates/groups/user_groups.html:15 +msgid "Manager" +msgstr "Керівник" + +#: bookwyrm/templates/groups/user_groups.html:35 +msgid "No groups found." +msgstr "" + +#: bookwyrm/templates/guided_tour/book.html:10 +msgid "This is home page of a book. Let's see what you can do while you're here!" +msgstr "Це домашня сторінка книги. Подивімось, що ви можете зробити, поки ви тут!" + +#: bookwyrm/templates/guided_tour/book.html:11 +msgid "Book page" +msgstr "Сторінка книги" + +#: bookwyrm/templates/guided_tour/book.html:19 +#: bookwyrm/templates/guided_tour/group.html:19 +#: bookwyrm/templates/guided_tour/lists.html:22 +#: bookwyrm/templates/guided_tour/search.html:29 +#: bookwyrm/templates/guided_tour/search.html:56 +#: bookwyrm/templates/guided_tour/user_books.html:19 +#: bookwyrm/templates/guided_tour/user_groups.html:19 +#: bookwyrm/templates/guided_tour/user_profile.html:19 +msgid "End Tour" +msgstr "Завершити тур" + +#: bookwyrm/templates/guided_tour/book.html:26 +#: bookwyrm/templates/guided_tour/book.html:50 +#: bookwyrm/templates/guided_tour/book.html:74 +#: bookwyrm/templates/guided_tour/book.html:97 +#: bookwyrm/templates/guided_tour/book.html:122 +#: bookwyrm/templates/guided_tour/book.html:146 +#: bookwyrm/templates/guided_tour/book.html:170 +#: bookwyrm/templates/guided_tour/book.html:194 +#: bookwyrm/templates/guided_tour/book.html:219 +#: bookwyrm/templates/guided_tour/book.html:243 +#: bookwyrm/templates/guided_tour/book.html:268 +#: bookwyrm/templates/guided_tour/book.html:274 +#: bookwyrm/templates/guided_tour/group.html:26 +#: bookwyrm/templates/guided_tour/group.html:49 +#: bookwyrm/templates/guided_tour/group.html:72 +#: bookwyrm/templates/guided_tour/group.html:95 +#: bookwyrm/templates/guided_tour/home.html:74 +#: bookwyrm/templates/guided_tour/home.html:97 +#: bookwyrm/templates/guided_tour/home.html:121 +#: bookwyrm/templates/guided_tour/home.html:146 +#: bookwyrm/templates/guided_tour/home.html:171 +#: bookwyrm/templates/guided_tour/home.html:195 +#: bookwyrm/templates/guided_tour/lists.html:29 +#: bookwyrm/templates/guided_tour/lists.html:53 +#: bookwyrm/templates/guided_tour/lists.html:76 +#: bookwyrm/templates/guided_tour/lists.html:100 +#: bookwyrm/templates/guided_tour/lists.html:123 +#: bookwyrm/templates/guided_tour/search.html:36 +#: bookwyrm/templates/guided_tour/search.html:63 +#: bookwyrm/templates/guided_tour/search.html:89 +#: bookwyrm/templates/guided_tour/search.html:116 +#: bookwyrm/templates/guided_tour/search.html:140 +#: bookwyrm/templates/guided_tour/user_books.html:26 +#: bookwyrm/templates/guided_tour/user_books.html:50 +#: bookwyrm/templates/guided_tour/user_books.html:73 +#: bookwyrm/templates/guided_tour/user_books.html:96 +#: bookwyrm/templates/guided_tour/user_groups.html:26 +#: bookwyrm/templates/guided_tour/user_groups.html:50 +#: bookwyrm/templates/guided_tour/user_groups.html:73 +#: bookwyrm/templates/guided_tour/user_groups.html:97 +#: bookwyrm/templates/guided_tour/user_profile.html:26 +#: bookwyrm/templates/guided_tour/user_profile.html:49 +#: bookwyrm/templates/guided_tour/user_profile.html:72 +#: bookwyrm/templates/guided_tour/user_profile.html:95 +#: bookwyrm/templates/guided_tour/user_profile.html:118 +#: bookwyrm/templates/snippets/pagination.html:30 +msgid "Next" +msgstr "Далі" + +#: bookwyrm/templates/guided_tour/book.html:31 +msgid "This is where you can set a reading status for this book. You can press the button to move to the next stage, or use the drop down button to select the reading status you want to set." +msgstr "Тут ви можете встановити статус читання для цієї книги. Ви можете натиснути кнопку, щоб перейти до наступного етапу, або скористатися випадаючим списком, щоб вибрати статус читання, який ви хочете встановити." + +#: bookwyrm/templates/guided_tour/book.html:32 +msgid "Reading status" +msgstr "Статус читання" + +#: bookwyrm/templates/guided_tour/book.html:55 +msgid "You can also manually add reading dates here. Unlike changing the reading status using the previous method, adding dates manually will not automatically add them to your Read or Reading shelves." +msgstr "Ви також можете додати дати читання вручну. На відміну від зміни статусу читання за допомогою попереднього методу, додавання дат вручну не додасть їх до полиць Прочитано або Читаю." + +#: bookwyrm/templates/guided_tour/book.html:55 +msgid "Got a favourite you re-read every year? We've got you covered - you can add multiple read dates for the same book 😀" +msgstr "Є улюблена книга, яку ви перечитуєте щороку? Ми про це подбали - ви можете додати кілька дат читання однієї і тієї ж книги 😀" + +#: bookwyrm/templates/guided_tour/book.html:79 +msgid "There can be multiple editions of a book, in various formats or languages. You can choose which edition you want to use." +msgstr "Може існувати кілька видань книги, у різних форматах або на різних мовах. Ви можете вибрати, яке видання ви хочете використовувати." + +#: bookwyrm/templates/guided_tour/book.html:80 +msgid "Other editions" +msgstr "Інші видання" + +#: bookwyrm/templates/guided_tour/book.html:102 +msgid "You can post a review, comment, or quote here." +msgstr "Тут ви можете залишити рецензію, коментар або цитату." + +#: bookwyrm/templates/guided_tour/book.html:103 +msgid "Share your thoughts" +msgstr "Поділіться своїми думками" + +#: bookwyrm/templates/guided_tour/book.html:127 +msgid "If you have read this book you can post a review including an optional star rating" +msgstr "Якщо ви прочитали цю книгу, ви можете написати рецензію та оцінити її в зірках" + +#: bookwyrm/templates/guided_tour/book.html:128 +msgid "Post a review" +msgstr "Написати рецензію" + +#: bookwyrm/templates/guided_tour/book.html:151 +msgid "You can share your thoughts on this book generally with a simple comment" +msgstr "Ви можете поділитися загальними думками про цю книжку за допомогою простого коментаря" + +#: bookwyrm/templates/guided_tour/book.html:152 +msgid "Post a comment" +msgstr "Написати коментар" + +#: bookwyrm/templates/guided_tour/book.html:175 +msgid "Just read some perfect prose? Let the world know by sharing a quote!" +msgstr "Щойно прочитали чудову книгу? Розкажіть про це всьому світу, поділившись цитатою!" + +#: bookwyrm/templates/guided_tour/book.html:176 +msgid "Share a quote" +msgstr "Поділитися цитатою" + +#: bookwyrm/templates/guided_tour/book.html:199 +msgid "If your review or comment might ruin the book for someone who hasn't read it yet, you can hide your post behind a spoiler alert" +msgstr "Якщо ваша рецензія або коментар може враження від книги для тих, хто її ще не читав, ви можете приховати свій пост під спойлером" + +#: bookwyrm/templates/guided_tour/book.html:200 +msgid "Spoiler alerts" +msgstr "Попередження про спойлери" + +#: bookwyrm/templates/guided_tour/book.html:224 +msgid "Choose who can see your post here. Post privacy can be Public (everyone can see), Unlisted (everyone can see, but it doesn't appear in public feeds or discovery pages), Followers (only your followers can see), or Private (only you can see)" +msgstr "Виберіть, хто може бачити ваш пост тут. Конфіденційність постів може бути Публічною (бачити може кожен), Не в стрічці (кожен може бачити, але пост не відображається в публічних стрічках або на сторінці \"Відкриття\"), Підписники (побачити можуть тільки ваші підписники), або Приватною (бачите тільки ви)" + +#: bookwyrm/templates/guided_tour/book.html:225 +#: bookwyrm/templates/snippets/privacy_select.html:6 +#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6 +msgid "Post privacy" +msgstr "Видимість постів" + +#: bookwyrm/templates/guided_tour/book.html:248 +msgid "Some ebooks can be downloaded for free from external sources. They will be shown here." +msgstr "Деякі електронні книги можна завантажити безкоштовно з зовнішніх джерел. Вони будуть відображені тут." + +#: bookwyrm/templates/guided_tour/book.html:249 +msgid "Download links" +msgstr "Посилання для завантаження" + +#: bookwyrm/templates/guided_tour/book.html:273 +msgid "Continue the tour by selecting Your books from the drop down menu." +msgstr "Щоб продовжити тур, оберіть Ваші книги у випадаючому меню." + +#: bookwyrm/templates/guided_tour/book.html:296 +#: bookwyrm/templates/guided_tour/home.html:50 +#: bookwyrm/templates/guided_tour/home.html:218 +#: bookwyrm/templates/guided_tour/search.html:161 +#: bookwyrm/templates/guided_tour/user_books.html:124 +#: bookwyrm/templates/guided_tour/user_groups.html:116 +#: bookwyrm/templates/guided_tour/user_profile.html:141 +msgid "Ok" +msgstr "Ок" + +#: bookwyrm/templates/guided_tour/group.html:10 +msgid "Welcome to the page for your group! This is where you can add and remove users, create user-curated lists, and edit the group details." +msgstr "Ласкаво просимо на сторінку вашої групи! Тут ви можете додавати та видаляти користувачів, створювати користувацькі списки та редагувати інформацію про групу." + +#: bookwyrm/templates/guided_tour/group.html:11 +msgid "Your group" +msgstr "Ваша група" + +#: bookwyrm/templates/guided_tour/group.html:31 +msgid "Use this search box to find users to join your group. Currently users must be members of the same Bookwyrm instance and be invited by the group owner." +msgstr "Використовуйте це поле пошуку, щоб шукати користувачів, які можуть приєднатися до вашої групи. Наразі користувачі повинні бути учасниками одного інстансу Bookwyrm і бути запрошеними власником групи." + +#: bookwyrm/templates/guided_tour/group.html:32 +msgid "Find users" +msgstr "Пошук користувачів" + +#: bookwyrm/templates/guided_tour/group.html:54 +msgid "Your group members will appear here. The group owner is marked with a star symbol." +msgstr "Тут з'являться учасники вашої групи. Власник групи позначений символом зірочки." + +#: bookwyrm/templates/guided_tour/group.html:55 +msgid "Group members" +msgstr "Учасники групи" + +#: bookwyrm/templates/guided_tour/group.html:77 +msgid "As well as creating lists from the Lists page, you can create a group-curated list here on the group's homepage. Any member of the group can create a list curated by group members." +msgstr "Окрім створення списків зі сторінки \"Списки\", ви можете створити список, що буде куруватися групою, на головній сторінці групи. Кожен учасник групи може створити список, який буде куруватися іншими учасниками групи." + +#: bookwyrm/templates/guided_tour/group.html:78 +msgid "Group lists" +msgstr "Списки груп" + +#: bookwyrm/templates/guided_tour/group.html:100 +msgid "Congratulations, you've finished the tour! Now you know the basics, but there is lots more to explore on your own. Happy reading!" +msgstr "Вітаємо, ви закінчили тур! Тепер ви знаєте основи, але самостійне дослідження Bookwyrm набагато цікавіше. Приємного читання!" + +#: bookwyrm/templates/guided_tour/group.html:115 +msgid "End tour" +msgstr "Завершити тур" + +#: bookwyrm/templates/guided_tour/home.html:16 +msgid "Welcome to Bookwyrm!

    Would you like to take the guided tour to help you get started?" +msgstr "Ласкаво просимо на Bookwyrm!

    Бажаєте пройти екскурсію, щоб почати користуватись сервісом?" + +#: bookwyrm/templates/guided_tour/home.html:17 +#: bookwyrm/templates/guided_tour/home.html:39 +#: bookwyrm/templates/snippets/footer.html:20 +msgid "Guided Tour" +msgstr "Вступний Тур" + +#: bookwyrm/templates/guided_tour/home.html:25 +#: bookwyrm/templates/two_factor_auth/two_factor_prompt.html:36 +msgid "No thanks" +msgstr "Ні, дякую" + +#: bookwyrm/templates/guided_tour/home.html:33 +msgid "Yes please!" +msgstr "Так, будь ласка!" + +#: bookwyrm/templates/guided_tour/home.html:38 +msgid "If you ever change your mind, just click on the Guided Tour link to start your tour" +msgstr "Якщо передумаєте, просто натисніть на \"Екскурсія\", щоб розпочати знайомство" + +#: bookwyrm/templates/guided_tour/home.html:62 +msgid "Search for books, users, or lists using this search box." +msgstr "Шукайте книги, користувачів або списки за допомогою цього поля." + +#: bookwyrm/templates/guided_tour/home.html:63 +msgid "Search box" +msgstr "Поле пошуку" + +#: bookwyrm/templates/guided_tour/home.html:79 +msgid "Search book records by scanning an ISBN barcode using your device's camera - great when you're in the bookstore or library!" +msgstr "Шукайте книги, скануючи штрих-код ISBN за допомогою камери вашого пристрою - корисно, коли ви у книжному або бібліотеці!" + +#: bookwyrm/templates/guided_tour/home.html:80 +msgid "Barcode reader" +msgstr "Сканер штрих-кодів" + +#: bookwyrm/templates/guided_tour/home.html:102 +msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" +msgstr "Використовуйте посилання на Стрічку, Списки та Огляд, щоб побачити останні новини з вашої стрічки, тематичні списки книг та останні події на цьому інстансі BookWyrm!" + +#: bookwyrm/templates/guided_tour/home.html:103 +msgid "Navigation Bar" +msgstr "Панель навігації" + +#: bookwyrm/templates/guided_tour/home.html:126 +msgid "Books on your reading status shelves will be shown here." +msgstr "Книги з полиць статусу читання будуть показуватися тут." + +#: bookwyrm/templates/guided_tour/home.html:151 +msgid "Updates from people you are following will appear in your Home timeline.

    The Books tab shows activity from anyone, related to your books." +msgstr "Оновлення від користувачів, за якими ви слідкуєте, будуть з'являтися у вашій Головній стрічці.

    Вкладинка Книги міститиме активність від будь-кого, пов'язаного з вашими книгами." + +#: bookwyrm/templates/guided_tour/home.html:152 +msgid "Timelines" +msgstr "Стрічки" + +#: bookwyrm/templates/guided_tour/home.html:176 +msgid "The bell will light up when you have a new notification. When it does, click on it to find out what exciting thing has happened!" +msgstr "Дзвіночок підсвітиться при новому сповіщенні. Коли це станеться, натисніть на нього щоб дізнатися що прикольного сталося!" + +#: bookwyrm/templates/guided_tour/home.html:177 +#: bookwyrm/templates/layout.html:77 bookwyrm/templates/layout.html:107 +#: bookwyrm/templates/layout.html:108 +#: bookwyrm/templates/notifications/notifications_page.html:5 +#: bookwyrm/templates/notifications/notifications_page.html:10 +msgid "Notifications" +msgstr "Сповіщення" + +#: bookwyrm/templates/guided_tour/home.html:200 +msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgstr "Ваш профіль, книги, особисті повідомлення та налаштування можна подивитись натиснувши на ваше ім'я в цьому меню." + +#: bookwyrm/templates/guided_tour/home.html:200 +msgid "Try selecting Profile from the drop down menu to continue the tour." +msgstr "Спробуйте вибрати Профіль з випадаючого меню, щоб продовжити екскурсію." + +#: bookwyrm/templates/guided_tour/home.html:201 +msgid "Profile and settings menu" +msgstr "Меню профілю та налаштувань" + +#: bookwyrm/templates/guided_tour/lists.html:13 +msgid "This is the lists page where you can discover book lists created by any user. A List is a collection of books, similar to a shelf." +msgstr "На цій сторінці ви можете знайти списки книг, створені будь-яким користувачем. Список - це набір книг, схожий на полицю." + +#: bookwyrm/templates/guided_tour/lists.html:13 +msgid "Shelves are for organising books for yourself, whereas Lists are generally for sharing with others." +msgstr "Полиці призначені для організації книг для себе, тоді як Списки, як правило, для обміну з іншими." + +#: bookwyrm/templates/guided_tour/lists.html:34 +msgid "Let's see how to create a new list." +msgstr "Подивімось, як створити новий список." + +#: bookwyrm/templates/guided_tour/lists.html:34 +msgid "Click the Create List button, then Next to continue the tour" +msgstr "Натисніть на кнопку Створити Список, а потім Далі для продовження екскурсії" + +#: bookwyrm/templates/guided_tour/lists.html:35 +#: bookwyrm/templates/guided_tour/lists.html:59 +msgid "Creating a new list" +msgstr "Створення нового списку" + +#: bookwyrm/templates/guided_tour/lists.html:58 +msgid "You must give your list a name and can optionally give it a description to help other people understand what your list is about." +msgstr "Ви повинні дати своєму списку ім'я та, за бажанням, опис, щоб допомогти іншим людям зрозуміти, про що ваш список." + +#: bookwyrm/templates/guided_tour/lists.html:81 +msgid "Choose who can see your list here. List privacy options work just like we saw when posting book reviews. This is a common pattern throughout Bookwyrm." +msgstr "Виберіть, хто може бачити ваш список. Опції конфіденційності списків працюють так само, як і для рецензій. Це типовий підхід усюди в BookWyrm." + +#: bookwyrm/templates/guided_tour/lists.html:82 +msgid "List privacy" +msgstr "Конфіденційність списків" + +#: bookwyrm/templates/guided_tour/lists.html:105 +msgid "You can also decide how your list is to be curated - only by you, by anyone, or by a group." +msgstr "Ви також можете вирішити, ким ваш список буде куруватися - тільки вами, ким завгодно, або групою." + +#: bookwyrm/templates/guided_tour/lists.html:106 +msgid "List curation" +msgstr "Кураторство списку" + +#: bookwyrm/templates/guided_tour/lists.html:128 +msgid "Next in our tour we will explore Groups!" +msgstr "Далі в екскурсії ми вивчатимемо Групи!" + +#: bookwyrm/templates/guided_tour/lists.html:129 +msgid "Next: Groups" +msgstr "Далі: Групи" + +#: bookwyrm/templates/guided_tour/lists.html:143 +msgid "Take me there" +msgstr "Перейти" + +#: bookwyrm/templates/guided_tour/search.html:16 +msgid "If the book you are looking for is available on a remote catalogue such as Open Library, click on Import book." +msgstr "Якщо книга, яку ви шукаєте, доступна на віддаленому каталозі, наприклад Open Library, натисніть на Імпортувати книгу." + +#: bookwyrm/templates/guided_tour/search.html:17 +#: bookwyrm/templates/guided_tour/search.html:44 +msgid "Searching" +msgstr "Пошук" + +#: bookwyrm/templates/guided_tour/search.html:43 +msgid "If the book you are looking for is already on this Bookwyrm instance, you can click on the title to go to the book's page." +msgstr "Якщо книжка, яку ви шукаєте, вже знаходиться на цьому інстансі Bookwyrm, ви можете натиснути на заголовок, щоб перейти на сторінку книги." + +#: bookwyrm/templates/guided_tour/search.html:71 +msgid "If the book you are looking for is not listed, try loading more records from other sources like Open Library or Inventaire." +msgstr "Якщо книжки, яку ви шукаєте, немає в списку, спробуйте завантажити більше записів з інших джерел, таких як Open Library чи Inventaire." + +#: bookwyrm/templates/guided_tour/search.html:72 +msgid "Load more records" +msgstr "Завантажити більше записів" + +#: bookwyrm/templates/guided_tour/search.html:98 +msgid "If your book is not in the results, try adjusting your search terms." +msgstr "Якщо вашої книги немає в результатах, спробуйте змінити пошуковий запит." + +#: bookwyrm/templates/guided_tour/search.html:99 +msgid "Search again" +msgstr "Шукати знов" + +#: bookwyrm/templates/guided_tour/search.html:121 +msgid "If you still can't find your book, you can add a record manually." +msgstr "Якщо ви все ще не можете знайти свою книгу, ви можете додати запис вручну." + +#: bookwyrm/templates/guided_tour/search.html:122 +msgid "Add a record manually" +msgstr "Створення запису вручну" + +#: bookwyrm/templates/guided_tour/search.html:147 +msgid "Import, manually add, or view an existing book to continue the tour." +msgstr "Імпортуйте, додайте вручну або перегляньте наявну книгу для продовження екскурсії." + +#: bookwyrm/templates/guided_tour/search.html:148 +msgid "Continue the tour" +msgstr "Продовжити екскурсію" + +#: bookwyrm/templates/guided_tour/user_books.html:10 +msgid "This is the page where your books are listed, organised into shelves." +msgstr "Це сторінка з переліком ваших книг, які організовані в полиці." + +#: bookwyrm/templates/guided_tour/user_books.html:11 +#: bookwyrm/templates/user/books_header.html:4 +msgid "Your books" +msgstr "Ваші книги" + +#: bookwyrm/templates/guided_tour/user_books.html:31 +msgid "To Read, Currently Reading, Read, and Stopped Reading are default shelves. When you change the reading status of a book it will automatically be moved to the matching shelf. A book can only be on one default shelf at a time." +msgstr "Прочитати, Зараз Читаю, Прочитано, і Читання Зупинено - це стандартні полиці. При зміні статусу читання книги вона автоматично буде перенесена в відповідну полицю. Книжка може бути лише на одній стандартній полиці одночасно." + +#: bookwyrm/templates/guided_tour/user_books.html:32 +msgid "Reading status shelves" +msgstr "Полиці статусу читання" + +#: bookwyrm/templates/guided_tour/user_books.html:55 +msgid "You can create additional custom shelves to organise your books. A book on a custom shelf can be on any number of other shelves simultaneously, including one of the default reading status shelves" +msgstr "Ви можете організувати ваші книжки створивши додаткові власні полиці. Книга на власній полиці може одночасно бути на будь-яких інших полицях, в тому числі стандартних (Прочитати, Читаю Зараз, і. т. д.)" + +#: bookwyrm/templates/guided_tour/user_books.html:56 +msgid "Adding custom shelves." +msgstr "Додавання власних полиць." + +#: bookwyrm/templates/guided_tour/user_books.html:78 +msgid "If you have an export file from another service like Goodreads or LibraryThing, you can import it here." +msgstr "Якщо у вас є файл експорту з іншого сервісу, наприклад Goodreads чи LibraryThing, ви можете імпортувати його тут." + +#: bookwyrm/templates/guided_tour/user_books.html:79 +msgid "Import from another service" +msgstr "Імпорт з іншого сервісу" + +#: bookwyrm/templates/guided_tour/user_books.html:101 +msgid "Now that we've explored book shelves, let's take a look at a related concept: book lists!" +msgstr "Тепер, коли ми дослідили книжкові полиці, погляньмо на пов'язану концепцію: списки книг!" + +#: bookwyrm/templates/guided_tour/user_books.html:101 +msgid "Click on the Lists link here to continue the tour." +msgstr "Натисніть на Списки тут, щоб продовжити екскурсію." + +#: bookwyrm/templates/guided_tour/user_groups.html:10 +msgid "You can create or join a group with other users. Groups can share group-curated book lists, and in future will be able to do other things." +msgstr "Ви можете створити або приєднатися до групи з іншими користувачами. Групи можуть поширювати куровані списки, і в майбутньому зможуть робити інші речі." + +#: bookwyrm/templates/guided_tour/user_groups.html:11 +#: bookwyrm/templates/guided_tour/user_profile.html:55 +#: bookwyrm/templates/user/groups.html:6 +#: bookwyrm/templates/user/layout.html:100 +msgid "Groups" +msgstr "Групи" + +#: bookwyrm/templates/guided_tour/user_groups.html:31 +msgid "Let's create a new group!" +msgstr "Створімо нову групу!" + +#: bookwyrm/templates/guided_tour/user_groups.html:31 +msgid "Click the Create group button, then Next to continue the tour" +msgstr "Натисніть на кнопку Створити групу, а потім Далі для продовження туру" + +#: bookwyrm/templates/guided_tour/user_groups.html:55 +msgid "Give your group a name and describe what it is about. You can make user groups for any purpose - a reading group, a bunch of friends, whatever!" +msgstr "Дайте назву вашій групі та опишіть її. Ви можете створити групи користувачів з будь-якої мети - група для читання, групи друзів, що завгодно!" + +#: bookwyrm/templates/guided_tour/user_groups.html:56 +msgid "Creating a group" +msgstr "Створення групи" + +#: bookwyrm/templates/guided_tour/user_groups.html:78 +msgid "Groups have privacy settings just like posts and lists, except that group privacy cannot be Followers." +msgstr "Групи мають налаштування конфіденційності, як і публікації та списки, за винятком того, що конфіденційність групи не може бути Підписникам." + +#: bookwyrm/templates/guided_tour/user_groups.html:79 +msgid "Group visibility" +msgstr "Видимість групи" + +#: bookwyrm/templates/guided_tour/user_groups.html:102 +msgid "Once you're happy with how everything is set up, click the Save button to create your new group." +msgstr "Якщо ви задоволені тим, як все налаштовано, натисніть кнопку Зберегти, щоб створити нову групу." + +#: bookwyrm/templates/guided_tour/user_groups.html:102 +msgid "Create and save a group to continue the tour." +msgstr "Створити та зберегти групу для продовження туру." + +#: bookwyrm/templates/guided_tour/user_groups.html:103 +msgid "Save your group" +msgstr "Зберегти свою групу" + +#: bookwyrm/templates/guided_tour/user_profile.html:10 +msgid "This is your user profile. All your latest activities will be listed here. Other Bookwyrm users can see parts of this page too - what they can see depends on your privacy settings." +msgstr "Це ваш профіль користувача. Усі ваші останні дії будуть перераховані тут. Інші користувачі Bookwyrm можуть також бачити частини цієї сторінки - те, що вони можуть бачити, залежить від ваших налаштувань конфіденційності." + +#: bookwyrm/templates/guided_tour/user_profile.html:11 +#: bookwyrm/templates/user/layout.html:20 bookwyrm/templates/user/user.html:14 +msgid "User Profile" +msgstr "Профіль Користувача" + +#: bookwyrm/templates/guided_tour/user_profile.html:31 +msgid "This tab shows everything you have read towards your annual reading goal, or allows you to set one. You don't have to set a reading goal if that's not your thing!" +msgstr "Ця вкладка показує все, що ви прочитали у рамках річної мети читання, або дозволяє її встановити. Це не обов'язково. Тільки якщо вам таке подобається." + +#: bookwyrm/templates/guided_tour/user_profile.html:32 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +msgid "Reading Goal" +msgstr "Мета Читання" + +#: bookwyrm/templates/guided_tour/user_profile.html:54 +msgid "Here you can see your groups, or create a new one. A group brings together Bookwyrm users and allows them to curate lists together." +msgstr "Тут ви можете переглянути свої групи, або створити нову. Група об'єднує користувачів Bookwyrm і дозволяє керувати списками разом." + +#: bookwyrm/templates/guided_tour/user_profile.html:77 +msgid "You can see your lists, or create a new one, here. A list is a collection of books that have something in common." +msgstr "Ви можете переглянути списки або створити новий. Список - це колекція книг, що мають щось спільне." + +#: bookwyrm/templates/guided_tour/user_profile.html:100 +msgid "The Books tab shows your book shelves. We'll explore this later in the tour." +msgstr "Вкладка Книги показує ваші книжкові полиці. Ми дослідимо це пізніше в екскурсії." + +#: bookwyrm/templates/guided_tour/user_profile.html:123 +msgid "Now you understand the basics of your profile page, let's add a book to your shelves." +msgstr "Тепер, коли ви розібралися у сторінці вашого профілю, нумо додамо книгу до ваших полиць." + +#: bookwyrm/templates/guided_tour/user_profile.html:123 +msgid "Search for a title or author to continue the tour." +msgstr "Пошукайте назву книги або автора, щоб продовжити екскурсію." + +#: bookwyrm/templates/guided_tour/user_profile.html:124 +msgid "Find a book" +msgstr "Пошук книг" + +#: bookwyrm/templates/hashtag.html:12 +#, python-format +msgid "See tagged statuses in the local %(site_name)s community" +msgstr "Дивіться відмічені статуси у локальній спільноті %(site_name)s" + +#: bookwyrm/templates/hashtag.html:25 +msgid "No activities for this hashtag yet!" +msgstr "Поки що ніхто не використовував цей хештег!" + +#: bookwyrm/templates/import/import.html:5 +#: bookwyrm/templates/import/import.html:9 +#: bookwyrm/templates/shelf/shelf.html:79 +msgid "Import Books" +msgstr "Імпортувати Книги" + +#: bookwyrm/templates/import/import.html:13 +msgid "Not a valid CSV file" +msgstr "Некоректний CSV-файл" + +#: bookwyrm/templates/import/import.html:21 +#, python-format +msgid "Currently, you are allowed to import %(display_size)s books every %(import_limit_reset)s day." +msgid_plural "Currently, you are allowed to import %(display_size)s books every %(import_limit_reset)s days." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: bookwyrm/templates/import/import.html:27 +#, python-format +msgid "You have %(display_left)s left." +msgstr "" + +#: bookwyrm/templates/import/import.html:34 +#, python-format +msgid "On average, recent imports have taken %(hours)s hours." +msgstr "В середньому, недавні імпорти зайняли %(hours)s годин." + +#: bookwyrm/templates/import/import.html:38 +#, python-format +msgid "On average, recent imports have taken %(minutes)s minutes." +msgstr "В середньому, недавні імпорти зайняли %(minutes)s хвилин." + +#: bookwyrm/templates/import/import.html:53 +msgid "Data source:" +msgstr "Джерело даних:" + +#: bookwyrm/templates/import/import.html:59 +msgid "Goodreads (CSV)" +msgstr "Goodreads (CSV)" + +#: bookwyrm/templates/import/import.html:62 +msgid "Storygraph (CSV)" +msgstr "Storygraph (CSV)" + +#: bookwyrm/templates/import/import.html:65 +msgid "LibraryThing (TSV)" +msgstr "LibraryThing (TSV)" + +#: bookwyrm/templates/import/import.html:68 +msgid "OpenLibrary (CSV)" +msgstr "OpenLibrary (CSV)" + +#: bookwyrm/templates/import/import.html:71 +msgid "Calibre (CSV)" +msgstr "Calibre (CSV)" + +#: bookwyrm/templates/import/import.html:77 +msgid "You can download your Goodreads data from the Import/Export page of your Goodreads account." +msgstr "Ви можете завантажити дані Goodreads на сторінці Import/Export вашого облікового запису Goodreads." + +#: bookwyrm/templates/import/import.html:86 +msgid "Data file:" +msgstr "Файл даних:" + +#: bookwyrm/templates/import/import.html:94 +msgid "Include reviews" +msgstr "Разом з рецензіями" + +#: bookwyrm/templates/import/import.html:99 +msgid "Privacy setting for imported reviews:" +msgstr "Налаштування приватності для імпортованих рецензій:" + +#: bookwyrm/templates/import/import.html:106 +#: bookwyrm/templates/import/import.html:108 +#: bookwyrm/templates/preferences/layout.html:43 +#: bookwyrm/templates/settings/federation/instance_blocklist.html:78 +msgid "Import" +msgstr "Імпортувати" + +#: bookwyrm/templates/import/import.html:109 +msgid "You've reached the import limit." +msgstr "Ви досягли ліміту на імпорт." + +#: bookwyrm/templates/import/import.html:118 +msgid "Imports are temporarily disabled; thank you for your patience." +msgstr "Імпортування тимчасово відключено; дякуємо за терпіння." + +#: bookwyrm/templates/import/import.html:125 +msgid "Recent Imports" +msgstr "Останні Імпорти" + +#: bookwyrm/templates/import/import.html:130 +#: bookwyrm/templates/settings/imports/imports.html:120 +msgid "Date Created" +msgstr "Дата Створення" + +#: bookwyrm/templates/import/import.html:133 +msgid "Last Updated" +msgstr "Останнє Оновлення" + +#: bookwyrm/templates/import/import.html:136 +#: bookwyrm/templates/settings/imports/imports.html:129 +msgid "Items" +msgstr "Одиниць" + +#: bookwyrm/templates/import/import.html:145 +msgid "No recent imports" +msgstr "Останнім часом імпортів не було" + +#: bookwyrm/templates/import/import_status.html:6 +#: bookwyrm/templates/import/import_status.html:15 +#: bookwyrm/templates/import/import_status.html:29 +msgid "Import Status" +msgstr "Статус Імпорту" + +#: bookwyrm/templates/import/import_status.html:13 +#: bookwyrm/templates/import/import_status.html:27 +msgid "Retry Status" +msgstr "Статус Повторення" + +#: bookwyrm/templates/import/import_status.html:22 +#: bookwyrm/templates/settings/celery.html:45 +#: bookwyrm/templates/settings/imports/imports.html:6 +#: bookwyrm/templates/settings/imports/imports.html:9 +#: bookwyrm/templates/settings/layout.html:82 +msgid "Imports" +msgstr "Імпорти" + +#: bookwyrm/templates/import/import_status.html:39 +msgid "Import started:" +msgstr "Імпорт розпочато:" + +#: bookwyrm/templates/import/import_status.html:48 +msgid "In progress" +msgstr "Триває" + +#: bookwyrm/templates/import/import_status.html:50 +msgid "Refresh" +msgstr "Оновити" + +#: bookwyrm/templates/import/import_status.html:72 +#: bookwyrm/templates/settings/imports/imports.html:161 +msgid "Stop import" +msgstr "Зупинити імпорт" + +#: bookwyrm/templates/import/import_status.html:78 +#, python-format +msgid "%(display_counter)s item needs manual approval." +msgid_plural "%(display_counter)s items need manual approval." +msgstr[0] "%(display_counter)s елемент потребує ручного підтвердження." +msgstr[1] "%(display_counter)s елементів потребують ручного підтвердження." +msgstr[2] "%(display_counter)s елементів потребують ручного підтвердження." +msgstr[3] "%(display_counter)s елементів потребують ручного підтвердження." + +#: bookwyrm/templates/import/import_status.html:83 +#: bookwyrm/templates/import/manual_review.html:8 +msgid "Review items" +msgstr "Огляд елементів" + +#: bookwyrm/templates/import/import_status.html:89 +#, python-format +msgid "%(display_counter)s item failed to import." +msgid_plural "%(display_counter)s items failed to import." +msgstr[0] "Не вдалося імпортувати %(display_counter)s елемент." +msgstr[1] "Не вдалося імпортувати %(display_counter)s елементів." +msgstr[2] "Не вдалося імпортувати %(display_counter)s елементів." +msgstr[3] "Не вдалося імпортувати %(display_counter)s елементів." + +#: bookwyrm/templates/import/import_status.html:95 +msgid "View and troubleshoot failed items" +msgstr "Переглянути та виправити невдалі елементи." + +#: bookwyrm/templates/import/import_status.html:107 +msgid "Row" +msgstr "Рядок" + +#: bookwyrm/templates/import/import_status.html:110 +#: bookwyrm/templates/shelf/shelf.html:163 +#: bookwyrm/templates/shelf/shelf.html:185 +msgid "Title" +msgstr "Назва" + +#: bookwyrm/templates/import/import_status.html:113 +msgid "ISBN" +msgstr "ISBN" + +#: bookwyrm/templates/import/import_status.html:117 +msgid "Openlibrary key" +msgstr "Ключ Openlibrary" + +#: bookwyrm/templates/import/import_status.html:121 +#: bookwyrm/templates/shelf/shelf.html:164 +#: bookwyrm/templates/shelf/shelf.html:188 +msgid "Author" +msgstr "Автор" + +#: bookwyrm/templates/import/import_status.html:124 +msgid "Shelf" +msgstr "Полиця" + +#: bookwyrm/templates/import/import_status.html:127 +#: bookwyrm/templates/import/manual_review.html:13 +#: bookwyrm/templates/snippets/create_status.html:16 +msgid "Review" +msgstr "Рецензія" + +#: bookwyrm/templates/import/import_status.html:131 +#: bookwyrm/templates/settings/link_domains/link_table.html:9 +msgid "Book" +msgstr "Книга" + +#: bookwyrm/templates/import/import_status.html:142 +msgid "Import preview unavailable." +msgstr "Попередній перегляд імпорту недоступний." + +#: bookwyrm/templates/import/import_status.html:150 +msgid "No items currently need review" +msgstr "Наразі жоден елемент не потребує перевірки" + +#: bookwyrm/templates/import/import_status.html:186 +msgid "View imported review" +msgstr "Показати імпортовану рецензію" + +#: bookwyrm/templates/import/import_status.html:200 +msgid "Imported" +msgstr "Імпортовано" + +#: bookwyrm/templates/import/import_status.html:206 +msgid "Needs manual review" +msgstr "Потребує ручної перевірки" + +#: bookwyrm/templates/import/import_status.html:219 +msgid "Retry" +msgstr "Спробувати знову" + +#: bookwyrm/templates/import/import_status.html:237 +msgid "This import is in an old format that is no longer supported. If you would like to troubleshoot missing items from this import, click the button below to update the import format." +msgstr "Це імпорт старого формату, який більше не підтримується. Якщо ви хочете виправити невдалі елементи з цього імпорту, натисніть на кнопку нижче, щоб оновити формат імпорту." + +#: bookwyrm/templates/import/import_status.html:239 +msgid "Update import" +msgstr "Оновити імпорт" + +#: bookwyrm/templates/import/manual_review.html:5 +#: bookwyrm/templates/import/troubleshoot.html:4 +msgid "Import Troubleshooting" +msgstr "Виправлення Імпорту" + +#: bookwyrm/templates/import/manual_review.html:21 +msgid "Approving a suggestion will permanently add the suggested book to your shelves and associate your reading dates, reviews, and ratings with that book." +msgstr "Підтвердження пропозиції назавжди додасть запропоновану книгу до ваших полиць та асоціює ваші дати читання, рецензії та рейтинги з цією книгою." + +#: bookwyrm/templates/import/manual_review.html:58 +#: bookwyrm/templates/lists/curate.html:71 +#: bookwyrm/templates/settings/link_domains/link_domains.html:76 +msgid "Approve" +msgstr "Підтвердити" + +#: bookwyrm/templates/import/manual_review.html:66 +msgid "Reject" +msgstr "Відхилити" + +#: bookwyrm/templates/import/troubleshoot.html:7 +#: bookwyrm/templates/settings/imports/imports.html:138 +msgid "Failed items" +msgstr "Невдалі елементи" + +#: bookwyrm/templates/import/troubleshoot.html:12 +msgid "Troubleshooting" +msgstr "Виправлення невдалого імпорту" + +#: bookwyrm/templates/import/troubleshoot.html:20 +msgid "Re-trying an import can fix missing items in cases such as:" +msgstr "Повторна спроба імпорту може виправити пропущені елементи у таких випадках, як:" + +#: bookwyrm/templates/import/troubleshoot.html:23 +msgid "The book has been added to the instance since this import" +msgstr "" + +#: bookwyrm/templates/import/troubleshoot.html:24 +msgid "A transient error or timeout caused the external data source to be unavailable." +msgstr "" + +#: bookwyrm/templates/import/troubleshoot.html:25 +msgid "BookWyrm has been updated since this import with a bug fix" +msgstr "" + +#: bookwyrm/templates/import/troubleshoot.html:28 +msgid "Contact your admin or open an issue if you are seeing unexpected failed items." +msgstr "" + +#: bookwyrm/templates/landing/invite.html:4 +#: bookwyrm/templates/landing/invite.html:8 +#: bookwyrm/templates/landing/login.html:48 +#: bookwyrm/templates/landing/reactivate.html:41 +msgid "Create an Account" +msgstr "" + +#: bookwyrm/templates/landing/invite.html:21 +msgid "Permission Denied" +msgstr "" + +#: bookwyrm/templates/landing/invite.html:22 +msgid "Sorry! This invite code is no longer valid." +msgstr "" + +#: bookwyrm/templates/landing/landing.html:9 +msgid "Recent Books" +msgstr "" + +#: bookwyrm/templates/landing/layout.html:17 +msgid "Decentralized" +msgstr "" + +#: bookwyrm/templates/landing/layout.html:23 +msgid "Friendly" +msgstr "" + +#: bookwyrm/templates/landing/layout.html:29 +msgid "Anti-Corporate" +msgstr "" + +#: bookwyrm/templates/landing/layout.html:46 +#, python-format +msgid "Join %(name)s" +msgstr "" + +#: bookwyrm/templates/landing/layout.html:48 +msgid "Request an Invitation" +msgstr "" + +#: bookwyrm/templates/landing/layout.html:50 +#, python-format +msgid "%(name)s registration is closed" +msgstr "" + +#: bookwyrm/templates/landing/layout.html:61 +msgid "Thank you! Your request has been received." +msgstr "" + +#: bookwyrm/templates/landing/layout.html:90 +msgid "Your Account" +msgstr "" + +#: bookwyrm/templates/landing/login.html:4 +msgid "Login" +msgstr "" + +#: bookwyrm/templates/landing/login.html:7 +#: bookwyrm/templates/landing/login.html:36 bookwyrm/templates/layout.html:142 +#: bookwyrm/templates/ostatus/error.html:37 +msgid "Log in" +msgstr "" + +#: bookwyrm/templates/landing/login.html:15 +msgid "Success! Email address confirmed." +msgstr "" + +#: bookwyrm/templates/landing/login.html:21 +#: bookwyrm/templates/landing/reactivate.html:17 +#: bookwyrm/templates/layout.html:128 bookwyrm/templates/ostatus/error.html:28 +#: bookwyrm/templates/snippets/register_form.html:4 +msgid "Username:" +msgstr "" + +#: bookwyrm/templates/landing/login.html:27 +#: bookwyrm/templates/landing/password_reset.html:26 +#: bookwyrm/templates/landing/reactivate.html:23 +#: bookwyrm/templates/layout.html:132 bookwyrm/templates/ostatus/error.html:32 +#: bookwyrm/templates/preferences/2fa.html:91 +#: bookwyrm/templates/snippets/register_form.html:45 +msgid "Password:" +msgstr "" + +#: bookwyrm/templates/landing/login.html:39 bookwyrm/templates/layout.html:139 +#: bookwyrm/templates/ostatus/error.html:34 +msgid "Forgot your password?" +msgstr "" + +#: bookwyrm/templates/landing/login.html:61 +#: bookwyrm/templates/landing/reactivate.html:54 +msgid "More about this site" +msgstr "Докладніше про цей сайт" + +#: bookwyrm/templates/landing/password_reset.html:43 +#: bookwyrm/templates/preferences/change_password.html:33 +#: bookwyrm/templates/preferences/delete_user.html:35 +msgid "Confirm password:" +msgstr "" + +#: bookwyrm/templates/landing/password_reset_request.html:14 +#, python-format +msgid "A password reset link will be sent to %(email)s if there is an account using that email address." +msgstr "" + +#: bookwyrm/templates/landing/password_reset_request.html:20 +msgid "A link to reset your password will be sent to your email address" +msgstr "" + +#: bookwyrm/templates/landing/password_reset_request.html:34 +msgid "Reset password" +msgstr "" + +#: bookwyrm/templates/landing/reactivate.html:4 +#: bookwyrm/templates/landing/reactivate.html:7 +msgid "Reactivate Account" +msgstr "" + +#: bookwyrm/templates/landing/reactivate.html:32 +msgid "Reactivate account" +msgstr "" + +#: bookwyrm/templates/layout.html:13 +#, python-format +msgid "%(site_name)s search" +msgstr "" + +#: bookwyrm/templates/layout.html:39 +msgid "Search for a book, user, or list" +msgstr "" + +#: bookwyrm/templates/layout.html:54 bookwyrm/templates/layout.html:55 +msgid "Scan Barcode" +msgstr "" + +#: bookwyrm/templates/layout.html:69 +msgid "Main navigation menu" +msgstr "" + +#: bookwyrm/templates/layout.html:88 +msgid "Feed" +msgstr "" + +#: bookwyrm/templates/layout.html:134 bookwyrm/templates/ostatus/error.html:33 +msgid "password" +msgstr "" + +#: bookwyrm/templates/layout.html:136 +msgid "Show/Hide password" +msgstr "Показати/Приховати пароль" + +#: bookwyrm/templates/layout.html:150 +msgid "Join" +msgstr "" + +#: bookwyrm/templates/layout.html:196 +msgid "Successfully posted status" +msgstr "" + +#: bookwyrm/templates/layout.html:197 +msgid "Error posting status" +msgstr "" + +#: bookwyrm/templates/lists/add_item_modal.html:8 +#, python-format +msgid "Add \"%(title)s\" to this list" +msgstr "" + +#: bookwyrm/templates/lists/add_item_modal.html:12 +#, python-format +msgid "Suggest \"%(title)s\" for this list" +msgstr "" + +#: bookwyrm/templates/lists/add_item_modal.html:41 +#: bookwyrm/templates/lists/list.html:257 +msgid "Suggest" +msgstr "" + +#: bookwyrm/templates/lists/bookmark_button.html:30 +msgid "Un-save" +msgstr "" + +#: bookwyrm/templates/lists/created_text.html:5 +#, python-format +msgid "Created by %(username)s and managed by %(groupname)s" +msgstr "" + +#: bookwyrm/templates/lists/created_text.html:7 +#, python-format +msgid "Created and curated by %(username)s" +msgstr "" + +#: bookwyrm/templates/lists/created_text.html:9 +#, python-format +msgid "Created by %(username)s" +msgstr "" + +#: bookwyrm/templates/lists/curate.html:12 +msgid "Curate" +msgstr "" + +#: bookwyrm/templates/lists/curate.html:21 +msgid "Pending Books" +msgstr "" + +#: bookwyrm/templates/lists/curate.html:24 +msgid "You're all set!" +msgstr "" + +#: bookwyrm/templates/lists/curate.html:45 +#: bookwyrm/templates/lists/list.html:93 +#, python-format +msgid "%(username)s says:" +msgstr "" + +#: bookwyrm/templates/lists/curate.html:55 +msgid "Suggested by" +msgstr "" + +#: bookwyrm/templates/lists/curate.html:77 +msgid "Discard" +msgstr "" + +#: bookwyrm/templates/lists/delete_list_modal.html:4 +msgid "Delete this list?" +msgstr "" + +#: bookwyrm/templates/lists/edit_form.html:5 +#: bookwyrm/templates/lists/layout.html:23 +msgid "Edit List" +msgstr "" + +#: bookwyrm/templates/lists/embed-list.html:8 +#, python-format +msgid "%(list_name)s, a list by %(owner)s" +msgstr "" + +#: bookwyrm/templates/lists/embed-list.html:20 +#, python-format +msgid "on %(site_name)s" +msgstr "" + +#: bookwyrm/templates/lists/embed-list.html:29 +msgid "This list is currently empty" +msgstr "" + +#: bookwyrm/templates/lists/form.html:19 +msgid "List curation:" +msgstr "" + +#: bookwyrm/templates/lists/form.html:31 +msgid "Closed" +msgstr "" + +#: bookwyrm/templates/lists/form.html:34 +msgid "Only you can add and remove books to this list" +msgstr "" + +#: bookwyrm/templates/lists/form.html:48 +msgid "Curated" +msgstr "" + +#: bookwyrm/templates/lists/form.html:51 +msgid "Anyone can suggest books, subject to your approval" +msgstr "" + +#: bookwyrm/templates/lists/form.html:65 +msgctxt "curation type" +msgid "Open" +msgstr "" + +#: bookwyrm/templates/lists/form.html:68 +msgid "Anyone can add books to this list" +msgstr "" + +#: bookwyrm/templates/lists/form.html:82 +msgid "Group" +msgstr "" + +#: bookwyrm/templates/lists/form.html:85 +msgid "Group members can add to and remove from this list" +msgstr "" + +#: bookwyrm/templates/lists/form.html:90 +msgid "Select Group" +msgstr "" + +#: bookwyrm/templates/lists/form.html:94 +msgid "Select a group" +msgstr "" + +#: bookwyrm/templates/lists/form.html:105 +msgid "You don't have any Groups yet!" +msgstr "" + +#: bookwyrm/templates/lists/form.html:107 +msgid "Create a Group" +msgstr "" + +#: bookwyrm/templates/lists/form.html:121 +msgid "Delete list" +msgstr "" + +#: bookwyrm/templates/lists/item_notes_field.html:7 +#: bookwyrm/templates/settings/federation/edit_instance.html:86 +msgid "Notes:" +msgstr "" + +#: bookwyrm/templates/lists/item_notes_field.html:19 +msgid "An optional note that will be displayed with the book." +msgstr "" + +#: bookwyrm/templates/lists/list.html:37 +msgid "That book is already on this list." +msgstr "" + +#: bookwyrm/templates/lists/list.html:45 +msgid "You successfully suggested a book for this list!" +msgstr "" + +#: bookwyrm/templates/lists/list.html:47 +msgid "You successfully added a book to this list!" +msgstr "" + +#: bookwyrm/templates/lists/list.html:54 +msgid "This list is currently empty." +msgstr "Цей список наразі порожній." + +#: bookwyrm/templates/lists/list.html:104 +msgid "Edit notes" +msgstr "" + +#: bookwyrm/templates/lists/list.html:119 +msgid "Add notes" +msgstr "" + +#: bookwyrm/templates/lists/list.html:131 +#, python-format +msgid "Added by %(username)s" +msgstr "" + +#: bookwyrm/templates/lists/list.html:146 +msgid "List position" +msgstr "" + +#: bookwyrm/templates/lists/list.html:152 +#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:23 +msgid "Set" +msgstr "" + +#: bookwyrm/templates/lists/list.html:167 +#: bookwyrm/templates/snippets/remove_from_group_button.html:20 +msgid "Remove" +msgstr "" + +#: bookwyrm/templates/lists/list.html:181 +#: bookwyrm/templates/lists/list.html:198 +msgid "Sort List" +msgstr "" + +#: bookwyrm/templates/lists/list.html:191 +msgid "Direction" +msgstr "Напрямок сортування" + +#: bookwyrm/templates/lists/list.html:205 +msgid "Add Books" +msgstr "" + +#: bookwyrm/templates/lists/list.html:207 +msgid "Suggest Books" +msgstr "" + +#: bookwyrm/templates/lists/list.html:218 +msgid "search" +msgstr "" + +#: bookwyrm/templates/lists/list.html:224 +msgid "Clear search" +msgstr "" + +#: bookwyrm/templates/lists/list.html:229 +#, python-format +msgid "No books found matching the query \"%(query)s\"" +msgstr "" + +#: bookwyrm/templates/lists/list.html:268 +msgid "Embed this list on a website" +msgstr "" + +#: bookwyrm/templates/lists/list.html:276 +msgid "Copy embed code" +msgstr "" + +#: bookwyrm/templates/lists/list.html:278 +#, python-format +msgid "%(list_name)s, a list by %(owner)s on %(site_name)s" +msgstr "" + +#: bookwyrm/templates/lists/list_items.html:15 +msgid "Saved" +msgstr "" + +#: bookwyrm/templates/lists/list_items.html:50 +msgid "No lists found." +msgstr "" + +#: bookwyrm/templates/lists/lists.html:14 bookwyrm/templates/user/lists.html:14 +msgid "Your Lists" +msgstr "" + +#: bookwyrm/templates/lists/lists.html:36 +msgid "All Lists" +msgstr "" + +#: bookwyrm/templates/lists/lists.html:40 +msgid "Saved Lists" +msgstr "" + +#: bookwyrm/templates/moved.html:27 +#, python-format +msgid "You have moved your account to %(username)s" +msgstr "Ви перемістили свій обліковий запис на %(username)s" + +#: bookwyrm/templates/moved.html:32 +msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "Ви можете скасувати цей крок, щоб відновити всі функції, але деякі підписані на цей обліковий запис вже відписалися." + +#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +msgid "Undo move" +msgstr "Скасувати переміщення" + +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +msgid "Log out" +msgstr "Вийти" + +#: bookwyrm/templates/notifications/items/accept.html:18 +#, python-format +msgid "%(related_user)s accepted your invitation to join group \"%(group_name)s\"" +msgstr "%(related_user)s прийняв(-ла) ваше запрошення до групи \"%(group_name)s\"" + +#: bookwyrm/templates/notifications/items/accept.html:26 +#, python-format +msgid "%(related_user)s and %(second_user)s accepted your invitation to join group \"%(group_name)s\"" +msgstr "%(related_user)s та %(second_user)s прийняли ваше запрошення до групи \"%(group_name)s\"" + +#: bookwyrm/templates/notifications/items/accept.html:36 +#, python-format +msgid "%(related_user)s and %(other_user_display_count)s others accepted your invitation to join group \"%(group_name)s\"" +msgstr "%(related_user)s та %(other_user_display_count)s інших прийняли ваше запрошення до групи \"%(group_name)s\"" + +#: bookwyrm/templates/notifications/items/add.html:33 +#, python-format +msgid "%(related_user)s added %(book_title)s to your list \"%(list_name)s\"" +msgstr "%(related_user)s додав(-ла) %(book_title)s до вашого списку \"%(list_name)s\"" + +#: bookwyrm/templates/notifications/items/add.html:39 +#, python-format +msgid "%(related_user)s suggested adding %(book_title)s to your list \"%(list_name)s\"" +msgstr "%(related_user)s пропонує додати %(book_title)s до вашого списку \"%(list_name)s\"" + +#: bookwyrm/templates/notifications/items/add.html:47 +#, python-format +msgid "%(related_user)s added %(book_title)s and %(second_book_title)s to your list \"%(list_name)s\"" +msgstr "%(related_user)s додав(-ла) %(book_title)s та %(second_book_title)s до вашого списку \"%(list_name)s\"" + +#: bookwyrm/templates/notifications/items/add.html:54 +#, python-format +msgid "%(related_user)s suggested adding %(book_title)s and %(second_book_title)s to your list \"%(list_name)s\"" +msgstr "%(related_user)s пропонує додати %(book_title)s та %(second_book_title)s до вашого списку \"%(list_name)s\"" + +#: bookwyrm/templates/notifications/items/add.html:66 +#, python-format +msgid "%(related_user)s added a book to one of your lists" +msgstr "%(related_user)s додав(-ла) книгу до одного з ваших списків" + +#: bookwyrm/templates/notifications/items/add.html:72 +#, python-format +msgid "%(related_user)s added %(book_title)s, %(second_book_title)s, and %(display_count)s other book to your list \"%(list_name)s\"" +msgid_plural "%(related_user)s added %(book_title)s, %(second_book_title)s, and %(display_count)s other books to your list \"%(list_name)s\"" +msgstr[0] "%(related_user)s додав(-ла) %(book_title)s, %(second_book_title)s, та %(display_count)s іншу книгу до вашого списку \"%(list_name)s\"" +msgstr[1] "%(related_user)s додав(-ла) %(book_title)s, %(second_book_title)s, та %(display_count)s інших книг до вашого списку \"%(list_name)s\"" +msgstr[2] "%(related_user)s додав(-ла) %(book_title)s, %(second_book_title)s, та %(display_count)s інших книг до вашого списку \"%(list_name)s\"" +msgstr[3] "%(related_user)s додав(-ла) %(book_title)s, %(second_book_title)s, та %(display_count)s інших книг до вашого списку \"%(list_name)s\"" + +#: bookwyrm/templates/notifications/items/add.html:88 +#, python-format +msgid "%(related_user)s suggested adding %(book_title)s, %(second_book_title)s, and %(display_count)s other book to your list \"%(list_name)s\"" +msgid_plural "%(related_user)s suggested adding %(book_title)s, %(second_book_title)s, and %(display_count)s other books to your list \"%(list_name)s\"" +msgstr[0] "%(related_user)s пропонує додати %(book_title)s, %(second_book_title)s, та %(display_count)s іншу книгу до вашого списку \"%(list_name)s\"" +msgstr[1] "%(related_user)s пропонує додати %(book_title)s, %(second_book_title)s, та %(display_count)s інших книг до вашого списку \"%(list_name)s\"" +msgstr[2] "%(related_user)s пропонує додати %(book_title)s, %(second_book_title)s, та %(display_count)s інших книг до вашого списку \"%(list_name)s\"" +msgstr[3] "%(related_user)s пропонує додати %(book_title)s, %(second_book_title)s, та %(display_count)s інших книг до вашого списку \"%(list_name)s\"" + +#: bookwyrm/templates/notifications/items/boost.html:21 +#, python-format +msgid "%(related_user)s boosted your review of %(book_title)s" +msgstr "%(related_user)s поширив(-ла) вау рецензію на %(book_title)s" + +#: bookwyrm/templates/notifications/items/boost.html:27 +#, python-format +msgid "%(related_user)s and %(second_user)s boosted your review of %(book_title)s" +msgstr "%(related_user)s та %(second_user)s поширили вашу рецензію на %(book_title)s" + +#: bookwyrm/templates/notifications/items/boost.html:36 +#, python-format +msgid "%(related_user)s and %(other_user_display_count)s others boosted your review of %(book_title)s" +msgstr "%(related_user)s та %(other_user_display_count)s інших поширили вашу рецензію на %(book_title)s" + +#: bookwyrm/templates/notifications/items/boost.html:44 +#, python-format +msgid "%(related_user)s boosted your comment on %(book_title)s" +msgstr "%(related_user)s поширив(-ла) ваш коментар до %(book_title)s" + +#: bookwyrm/templates/notifications/items/boost.html:50 +#, python-format +msgid "%(related_user)s and %(second_user)s boosted your comment on %(book_title)s" +msgstr "%(related_user)s та %(second_user)s поширили ваш коментар до %(book_title)s" + +#: bookwyrm/templates/notifications/items/boost.html:59 +#, python-format +msgid "%(related_user)s and %(other_user_display_count)s others boosted your comment on %(book_title)s" +msgstr "%(related_user)s та %(other_user_display_count)s інших поширили ваш коментар до %(book_title)s" + +#: bookwyrm/templates/notifications/items/boost.html:67 +#, python-format +msgid "%(related_user)s boosted your quote from %(book_title)s" +msgstr "%(related_user)s поширив(-ла) вашу цитату з %(book_title)s" + +#: bookwyrm/templates/notifications/items/boost.html:73 +#, python-format +msgid "%(related_user)s and %(second_user)s boosted your quote from %(book_title)s" +msgstr "%(related_user)s та %(second_user)s поширили вашу цитату з %(book_title)s" + +#: bookwyrm/templates/notifications/items/boost.html:82 +#, python-format +msgid "%(related_user)s and %(other_user_display_count)s others boosted your quote from %(book_title)s" +msgstr "%(related_user)s та %(other_user_display_count)s інших поширили вашу цитату з %(book_title)s" + +#: bookwyrm/templates/notifications/items/boost.html:90 +#, python-format +msgid "%(related_user)s boosted your status" +msgstr "%(related_user)s поширив(-ла) ваш статус" + +#: bookwyrm/templates/notifications/items/boost.html:96 +#, python-format +msgid "%(related_user)s and %(second_user)s boosted your status" +msgstr "%(related_user)s та %(second_user)s поширили ваш статус" + +#: bookwyrm/templates/notifications/items/boost.html:105 +#, python-format +msgid "%(related_user)s and %(other_user_display_count)s others boosted your status" +msgstr "%(related_user)s та %(other_user_display_count)s інших поширили ваш статус" + +#: bookwyrm/templates/notifications/items/fav.html:21 +#, python-format +msgid "%(related_user)s liked your review of %(book_title)s" +msgstr "%(related_user)s сподобалась ваша рецензія на %(book_title)s" + +#: bookwyrm/templates/notifications/items/fav.html:27 +#, python-format +msgid "%(related_user)s and %(second_user)s liked your review of %(book_title)s" +msgstr "%(related_user)s та %(second_user)s сподобалась ваша рецензія на %(book_title)s" + +#: bookwyrm/templates/notifications/items/fav.html:36 +#, python-format +msgid "%(related_user)s and %(other_user_display_count)s others liked your review of %(book_title)s" +msgstr "%(related_user)s та %(other_user_display_count)s іншим сподобалась ваша рецензія на %(book_title)s" + +#: bookwyrm/templates/notifications/items/fav.html:44 +#, python-format +msgid "%(related_user)s liked your comment on %(book_title)s" +msgstr "%(related_user)s сподобався ваш коментар до %(book_title)s" + +#: bookwyrm/templates/notifications/items/fav.html:50 +#, python-format +msgid "%(related_user)s and %(second_user)s liked your comment on %(book_title)s" +msgstr "%(related_user)s та %(second_user)s сподобався ваш коментар до %(book_title)s" + +#: bookwyrm/templates/notifications/items/fav.html:59 +#, python-format +msgid "%(related_user)s and %(other_user_display_count)s others liked your comment on %(book_title)s" +msgstr "%(related_user)s та %(other_user_display_count)s іншим сподобався ваш коментар до %(book_title)s" + +#: bookwyrm/templates/notifications/items/fav.html:67 +#, python-format +msgid "%(related_user)s liked your quote from %(book_title)s" +msgstr "%(related_user)s сподобалась ваша цитата з %(book_title)s" + +#: bookwyrm/templates/notifications/items/fav.html:73 +#, python-format +msgid "%(related_user)s and %(second_user)s liked your quote from %(book_title)s" +msgstr "%(related_user)s та %(second_user)s сподобалась ваша цитата з %(book_title)s" + +#: bookwyrm/templates/notifications/items/fav.html:82 +#, python-format +msgid "%(related_user)s and %(other_user_display_count)s others liked your quote from %(book_title)s" +msgstr "%(related_user)s та %(other_user_display_count)s іншим сподобалась ваша цитата з %(book_title)s" + +#: bookwyrm/templates/notifications/items/fav.html:90 +#, python-format +msgid "%(related_user)s liked your status" +msgstr "%(related_user)s сподобався ваш статус" + +#: bookwyrm/templates/notifications/items/fav.html:96 +#, python-format +msgid "%(related_user)s and %(second_user)s liked your status" +msgstr "%(related_user)s та %(second_user)s сподобався ваш статус" + +#: bookwyrm/templates/notifications/items/fav.html:105 +#, python-format +msgid "%(related_user)s and %(other_user_display_count)s others liked your status" +msgstr "%(related_user)s та %(other_user_display_count)s іншим сподобався ваш статус" + +#: bookwyrm/templates/notifications/items/follow.html:16 +#, python-format +msgid "%(related_user)s followed you" +msgstr "%(related_user)s тепер слідкує за вами" + +#: bookwyrm/templates/notifications/items/follow.html:20 +#, python-format +msgid "%(related_user)s and %(second_user)s followed you" +msgstr "%(related_user)s та %(second_user)s тепер слідкують за вами" + +#: bookwyrm/templates/notifications/items/follow.html:25 +#, python-format +msgid "%(related_user)s and %(other_user_display_count)s others followed you" +msgstr "%(related_user)s та %(other_user_display_count)s інших тепер слідкують за вами" + +#: bookwyrm/templates/notifications/items/follow_request.html:15 +#, python-format +msgid "%(related_user)s sent you a follow request" +msgstr "%(related_user)s надіслав(-ла) вам запит на підписку" + +#: bookwyrm/templates/notifications/items/import.html:14 +#, python-format +msgid "Your import completed." +msgstr "Ваш імпорт завершено." + +#: bookwyrm/templates/notifications/items/invite.html:16 +#, python-format +msgid "%(related_user)s invited you to join the group \"%(group_name)s\"" +msgstr "%(related_user)s запрошує вас приєднатися до групи \"%(group_name)s\"" + +#: bookwyrm/templates/notifications/items/join.html:16 +#, python-format +msgid "has joined your group \"%(group_name)s\"" +msgstr "" + +#: bookwyrm/templates/notifications/items/leave.html:18 +#, python-format +msgid "%(related_user)s has left your group \"%(group_name)s\"" +msgstr "" + +#: bookwyrm/templates/notifications/items/leave.html:26 +#, python-format +msgid "%(related_user)s and %(second_user)s have left your group \"%(group_name)s\"" +msgstr "" + +#: bookwyrm/templates/notifications/items/leave.html:36 +#, python-format +msgid "%(related_user)s and %(other_user_display_count)s others have left your group \"%(group_name)s\"" +msgstr "" + +#: bookwyrm/templates/notifications/items/link_domain.html:15 +#, python-format +msgid "A new link domain needs review" +msgid_plural "%(display_count)s new link domains need moderation" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: bookwyrm/templates/notifications/items/mention.html:20 +#, python-format +msgid "%(related_user)s mentioned you in a review of %(book_title)s" +msgstr "" + +#: bookwyrm/templates/notifications/items/mention.html:26 +#, python-format +msgid "%(related_user)s mentioned you in a comment on %(book_title)s" +msgstr "" + +#: bookwyrm/templates/notifications/items/mention.html:32 +#, python-format +msgid "%(related_user)s mentioned you in a quote from %(book_title)s" +msgstr "" + +#: bookwyrm/templates/notifications/items/mention.html:38 +#, python-format +msgid "%(related_user)s mentioned you in a status" +msgstr "" + +#: bookwyrm/templates/notifications/items/move_user.html:18 +#, python-format +msgid "%(related_user)s has moved to %(username)s" +msgstr "%(related_user)s переміщено на %(username)s" + +#: bookwyrm/templates/notifications/items/move_user.html:25 +#, python-format +msgid "%(related_user)s has undone their move" +msgstr "%(related_user)s скасував своє переміщення" + +#: bookwyrm/templates/notifications/items/remove.html:17 +#, python-format +msgid "has been removed from your group \"%(group_name)s\"" +msgstr "" + +#: bookwyrm/templates/notifications/items/remove.html:23 +#, python-format +msgid "You have been removed from the \"%(group_name)s\" group" +msgstr "" + +#: bookwyrm/templates/notifications/items/reply.html:21 +#, python-format +msgid "%(related_user)s replied to your review of %(book_title)s" +msgstr "" + +#: bookwyrm/templates/notifications/items/reply.html:27 +#, python-format +msgid "%(related_user)s replied to your comment on %(book_title)s" +msgstr "" + +#: bookwyrm/templates/notifications/items/reply.html:33 +#, python-format +msgid "%(related_user)s replied to your quote from %(book_title)s" +msgstr "" + +#: bookwyrm/templates/notifications/items/reply.html:39 +#, python-format +msgid "%(related_user)s replied to your status" +msgstr "" + +#: bookwyrm/templates/notifications/items/report.html:15 +#, python-format +msgid "A new report needs moderation" +msgid_plural "%(display_count)s new reports need moderation" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: bookwyrm/templates/notifications/items/status_preview.html:4 +#: bookwyrm/templates/snippets/status/content_status.html:62 +msgid "Content warning" +msgstr "" + +#: bookwyrm/templates/notifications/items/update.html:16 +#, python-format +msgid "has changed the privacy level for %(group_name)s" +msgstr "" + +#: bookwyrm/templates/notifications/items/update.html:20 +#, python-format +msgid "has changed the name of %(group_name)s" +msgstr "" + +#: bookwyrm/templates/notifications/items/update.html:24 +#, python-format +msgid "has changed the description of %(group_name)s" +msgstr "" + +#: bookwyrm/templates/notifications/notifications_page.html:19 +msgid "Delete notifications" +msgstr "" + +#: bookwyrm/templates/notifications/notifications_page.html:31 +msgid "All" +msgstr "" + +#: bookwyrm/templates/notifications/notifications_page.html:35 +msgid "Mentions" +msgstr "" + +#: bookwyrm/templates/notifications/notifications_page.html:47 +msgid "You're all caught up!" +msgstr "" + +#: bookwyrm/templates/ostatus/error.html:7 +#, python-format +msgid "%(account)s is not a valid username" +msgstr "" + +#: bookwyrm/templates/ostatus/error.html:8 +#: bookwyrm/templates/ostatus/error.html:13 +msgid "Check you have the correct username before trying again" +msgstr "" + +#: bookwyrm/templates/ostatus/error.html:12 +#, python-format +msgid "%(account)s could not be found or %(remote_domain)s does not support identity discovery" +msgstr "" + +#: bookwyrm/templates/ostatus/error.html:17 +#, python-format +msgid "%(account)s was found but %(remote_domain)s does not support 'remote follow'" +msgstr "" + +#: bookwyrm/templates/ostatus/error.html:18 +#, python-format +msgid "Try searching for %(user)s on %(remote_domain)s instead" +msgstr "" + +#: bookwyrm/templates/ostatus/error.html:46 +#, python-format +msgid "Something went wrong trying to follow %(account)s" +msgstr "" + +#: bookwyrm/templates/ostatus/error.html:47 +msgid "Check you have the correct username before trying again." +msgstr "" + +#: bookwyrm/templates/ostatus/error.html:51 +#, python-format +msgid "You have blocked %(account)s" +msgstr "" + +#: bookwyrm/templates/ostatus/error.html:55 +#, python-format +msgid "%(account)s has blocked you" +msgstr "" + +#: bookwyrm/templates/ostatus/error.html:59 +#, python-format +msgid "You are already following %(account)s" +msgstr "" + +#: bookwyrm/templates/ostatus/error.html:63 +#, python-format +msgid "You have already requested to follow %(account)s" +msgstr "" + +#: bookwyrm/templates/ostatus/remote_follow.html:6 +#, python-format +msgid "Follow %(username)s on the fediverse" +msgstr "" + +#: bookwyrm/templates/ostatus/remote_follow.html:33 +#, python-format +msgid "Follow %(username)s from another Fediverse account like BookWyrm, Mastodon, or Pleroma." +msgstr "" + +#: bookwyrm/templates/ostatus/remote_follow.html:40 +msgid "User handle to follow from:" +msgstr "" + +#: bookwyrm/templates/ostatus/remote_follow.html:42 +msgid "Follow!" +msgstr "" + +#: bookwyrm/templates/ostatus/remote_follow_button.html:15 +msgid "Follow on Fediverse" +msgstr "" + +#: bookwyrm/templates/ostatus/remote_follow_button.html:19 +msgid "This link opens in a pop-up window" +msgstr "" + +#: bookwyrm/templates/ostatus/subscribe.html:8 +#, python-format +msgid "Log in to %(sitename)s" +msgstr "" + +#: bookwyrm/templates/ostatus/subscribe.html:10 +#, python-format +msgid "Error following from %(sitename)s" +msgstr "" + +#: bookwyrm/templates/ostatus/subscribe.html:12 +#: bookwyrm/templates/ostatus/subscribe.html:22 +#, python-format +msgid "Follow from %(sitename)s" +msgstr "" + +#: bookwyrm/templates/ostatus/subscribe.html:18 +msgid "Uh oh..." +msgstr "От халепа..." + +#: bookwyrm/templates/ostatus/subscribe.html:20 +msgid "Let's log in first..." +msgstr "" + +#: bookwyrm/templates/ostatus/subscribe.html:51 +#, python-format +msgid "Follow %(username)s" +msgstr "" + +#: bookwyrm/templates/ostatus/success.html:28 +#, python-format +msgid "You are now following %(display_name)s!" +msgstr "" + +#: bookwyrm/templates/preferences/2fa.html:4 +#: bookwyrm/templates/preferences/2fa.html:7 +#: bookwyrm/templates/preferences/layout.html:24 +msgid "Two Factor Authentication" +msgstr "" + +#: bookwyrm/templates/preferences/2fa.html:16 +msgid "Successfully updated 2FA settings" +msgstr "" + +#: bookwyrm/templates/preferences/2fa.html:24 +msgid "Write down or copy and paste these codes somewhere safe." +msgstr "" + +#: bookwyrm/templates/preferences/2fa.html:25 +msgid "You must use them in order, and they will not be displayed again." +msgstr "" + +#: bookwyrm/templates/preferences/2fa.html:35 +msgid "Two Factor Authentication is active on your account." +msgstr "" + +#: bookwyrm/templates/preferences/2fa.html:36 +#: bookwyrm/templates/preferences/disable-2fa.html:4 +#: bookwyrm/templates/preferences/disable-2fa.html:7 +msgid "Disable 2FA" +msgstr "" + +#: bookwyrm/templates/preferences/2fa.html:39 +msgid "You can generate backup codes to use in case you do not have access to your authentication app. If you generate new codes, any backup codes previously generated will no longer work." +msgstr "" + +#: bookwyrm/templates/preferences/2fa.html:40 +msgid "Generate backup codes" +msgstr "" + +#: bookwyrm/templates/preferences/2fa.html:45 +msgid "Scan the QR code with your authentication app and then enter the code from your app below to confirm your app is set up." +msgstr "" + +#: bookwyrm/templates/preferences/2fa.html:52 +msgid "Use setup key" +msgstr "" + +#: bookwyrm/templates/preferences/2fa.html:58 +msgid "Account name:" +msgstr "" + +#: bookwyrm/templates/preferences/2fa.html:65 +msgid "Code:" +msgstr "" + +#: bookwyrm/templates/preferences/2fa.html:73 +msgid "Enter the code from your app:" +msgstr "" + +#: bookwyrm/templates/preferences/2fa.html:83 +msgid "You can make your account more secure by using Two Factor Authentication (2FA). This will require you to enter a one-time code using a phone app like Authy, Google Authenticator or Microsoft Authenticator each time you log in." +msgstr "" + +#: bookwyrm/templates/preferences/2fa.html:85 +msgid "Confirm your password to begin setting up 2FA." +msgstr "" + +#: bookwyrm/templates/preferences/2fa.html:95 +#: bookwyrm/templates/two_factor_auth/two_factor_prompt.html:37 +msgid "Set up 2FA" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:7 +#: bookwyrm/templates/preferences/move_user.html:39 +msgid "Move Account" +msgstr "Перемістити обліковий запис" + +#: bookwyrm/templates/preferences/alias_user.html:7 +#: bookwyrm/templates/preferences/alias_user.html:34 +msgid "Create Alias" +msgstr "Створити псевдонім" + +#: bookwyrm/templates/preferences/alias_user.html:12 +msgid "Add another account as an alias" +msgstr "Додайте інший обліковий запис як псевдонім" + +#: bookwyrm/templates/preferences/alias_user.html:16 +msgid "Marking another account as an alias is required if you want to move that account to this one." +msgstr "Позначення іншого облікового запису як псевдоніма потрібно, якщо ви хочете перемістити той обліковий запис до цього." + +#: bookwyrm/templates/preferences/alias_user.html:19 +msgid "This is a reversable action and will not change the functionality of this account." +msgstr "Це дія, яку можна повернути, тому вона не змінить функціональність цього облікового запису." + +#: bookwyrm/templates/preferences/alias_user.html:25 +msgid "Enter the username for the account you want to add as an alias e.g. user@example.com :" +msgstr "Введіть ім’я користувача для облікового запису, який ви хочете додати як псевдонім, наприклад user@example.com :" + +#: bookwyrm/templates/preferences/alias_user.html:30 +#: bookwyrm/templates/preferences/move_user.html:35 +msgid "Confirm your password:" +msgstr "Підтвердити ваш пароль:" + +#: bookwyrm/templates/preferences/alias_user.html:39 +#: bookwyrm/templates/preferences/layout.html:28 +msgid "Aliases" +msgstr "Псевдоніми" + +#: bookwyrm/templates/preferences/alias_user.html:49 +msgid "Remove alias" +msgstr "Видалити псевдонім" + +#: bookwyrm/templates/preferences/blocks.html:4 +#: bookwyrm/templates/preferences/blocks.html:7 +#: bookwyrm/templates/preferences/layout.html:54 +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:37 +#: bookwyrm/templates/preferences/layout.html:20 +msgid "Change Password" +msgstr "" + +#: bookwyrm/templates/preferences/change_password.html:15 +msgid "Successfully changed password" +msgstr "" + +#: bookwyrm/templates/preferences/change_password.html:22 +msgid "Current password:" +msgstr "" + +#: bookwyrm/templates/preferences/change_password.html:28 +msgid "New password:" +msgstr "" + +#: bookwyrm/templates/preferences/delete_user.html:4 +#: bookwyrm/templates/preferences/delete_user.html:7 +#: bookwyrm/templates/preferences/delete_user.html:40 +#: bookwyrm/templates/preferences/layout.html:36 +#: bookwyrm/templates/settings/users/delete_user_form.html:22 +msgid "Delete Account" +msgstr "" + +#: bookwyrm/templates/preferences/delete_user.html:12 +msgid "Deactivate account" +msgstr "" + +#: bookwyrm/templates/preferences/delete_user.html:15 +msgid "Your account will be hidden. You can log back in at any time to re-activate your account." +msgstr "" + +#: bookwyrm/templates/preferences/delete_user.html:20 +msgid "Deactivate Account" +msgstr "" + +#: bookwyrm/templates/preferences/delete_user.html:26 +msgid "Permanently delete account" +msgstr "" + +#: bookwyrm/templates/preferences/delete_user.html:29 +msgid "Deleting your account cannot be undone. The username will not be available to register in the future." +msgstr "" + +#: bookwyrm/templates/preferences/disable-2fa.html:12 +msgid "Disable Two Factor Authentication" +msgstr "" + +#: bookwyrm/templates/preferences/disable-2fa.html:14 +msgid "Disabling 2FA will allow anyone with your username and password to log in to your account." +msgstr "" + +#: bookwyrm/templates/preferences/disable-2fa.html:20 +msgid "Turn off 2FA" +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:4 +#: bookwyrm/templates/preferences/edit_user.html:7 +#: bookwyrm/templates/preferences/layout.html:15 +msgid "Edit Profile" +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:12 +#: bookwyrm/templates/preferences/edit_user.html:25 +#: bookwyrm/templates/settings/users/user_info.html:7 +#: bookwyrm/templates/user_menu.html:29 +msgid "Profile" +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:13 +#: bookwyrm/templates/preferences/edit_user.html:64 +#: bookwyrm/templates/settings/site.html:11 +#: bookwyrm/templates/settings/site.html:89 +#: bookwyrm/templates/setup/config.html:91 +msgid "Display" +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:14 +#: bookwyrm/templates/preferences/edit_user.html:112 +msgid "Privacy" +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:69 +msgid "Show reading goal prompt in feed" +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:75 +msgid "Show suggested users" +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:81 +msgid "Show this account in suggested users" +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:85 +#, python-format +msgid "Your account will show up in the directory, and may be recommended to other BookWyrm users." +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:89 +msgid "Preferred Timezone: " +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:101 +msgid "Theme:" +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:117 +msgid "Manually approve followers" +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:123 +msgid "Hide followers and following on profile" +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:128 +msgid "Default post privacy:" +msgstr "" + +#: bookwyrm/templates/preferences/edit_user.html:136 +#, python-format +msgid "Looking for shelf privacy? You can set a separate visibility level for each of your shelves. Go to Your Books, pick a shelf from the tab bar, and click \"Edit shelf.\"" +msgstr "" + +#: bookwyrm/templates/preferences/export.html:4 +#: bookwyrm/templates/preferences/export.html:7 +msgid "CSV Export" +msgstr "" + +#: bookwyrm/templates/preferences/export.html:13 +msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity." +msgstr "" + +#: bookwyrm/templates/preferences/export.html:20 +msgid "Download file" +msgstr "" + +#: bookwyrm/templates/preferences/layout.html:11 +msgid "Account" +msgstr "" + +#: bookwyrm/templates/preferences/layout.html:32 +msgid "Move Account" +msgstr "" + +#: bookwyrm/templates/preferences/layout.html:39 +msgid "Data" +msgstr "" + +#: bookwyrm/templates/preferences/layout.html:47 +msgid "CSV export" +msgstr "" + +#: bookwyrm/templates/preferences/layout.html:50 +msgid "Relationships" +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:12 +msgid "Migrate account to another server" +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:16 +msgid "Moving your account will notify all your followers and direct them to follow the new account." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:19 +#, python-format +msgid "\n" +" %(user)s will be marked as moved and will not be discoverable or usable unless you undo the move.\n" +" " +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:25 +msgid "Remember to add this user as an alias of the target account before you try to move." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:30 +msgid "Enter the username for the account you want to move to e.g. user@example.com :" +msgstr "" + +#: bookwyrm/templates/reading_progress/finish.html:5 +#, python-format +msgid "Finish \"%(book_title)s\"" +msgstr "" + +#: bookwyrm/templates/reading_progress/start.html:5 +#, python-format +msgid "Start \"%(book_title)s\"" +msgstr "" + +#: bookwyrm/templates/reading_progress/stop.html:5 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "" + +#: bookwyrm/templates/reading_progress/want.html:5 +#, python-format +msgid "Want to Read \"%(book_title)s\"" +msgstr "" + +#: bookwyrm/templates/readthrough/delete_readthrough_modal.html:4 +msgid "Delete these read dates?" +msgstr "" + +#: bookwyrm/templates/readthrough/delete_readthrough_modal.html:8 +#, python-format +msgid "You are deleting this readthrough and its %(count)s associated progress updates." +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough.html:6 +#: bookwyrm/templates/readthrough/readthrough_modal.html:8 +#, python-format +msgid "Update read dates for \"%(title)s\"" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_form.html:10 +#: bookwyrm/templates/readthrough/readthrough_modal.html:38 +#: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:24 +#: bookwyrm/templates/snippets/reading_modals/start_reading_modal.html:21 +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:24 +msgid "Started reading" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_form.html:18 +#: bookwyrm/templates/readthrough/readthrough_modal.html:56 +msgid "Progress" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_form.html:25 +#: bookwyrm/templates/readthrough/readthrough_modal.html:63 +#: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:32 +msgid "Finished reading" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:9 +msgid "Progress Updates:" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:14 +msgid "finished" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:16 +msgid "stopped" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:27 +msgid "Show all updates" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:43 +msgid "Delete this progress update" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:55 +msgid "started" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:62 +msgid "Edit read dates" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_list.html:70 +msgid "Delete these read dates" +msgstr "" + +#: bookwyrm/templates/readthrough/readthrough_modal.html:12 +#, python-format +msgid "Add read dates for \"%(title)s\"" +msgstr "" + +#: bookwyrm/templates/report.html:5 +#: bookwyrm/templates/snippets/report_button.html:13 +msgid "Report" +msgstr "" + +#: bookwyrm/templates/search/barcode_modal.html:5 +msgid "\n" +" Scan Barcode\n" +" " +msgstr "" + +#: bookwyrm/templates/search/barcode_modal.html:21 +msgid "Requesting camera..." +msgstr "" + +#: bookwyrm/templates/search/barcode_modal.html:22 +msgid "Grant access to the camera to scan a book's barcode." +msgstr "" + +#: bookwyrm/templates/search/barcode_modal.html:27 +msgid "Could not access camera" +msgstr "" + +#: bookwyrm/templates/search/barcode_modal.html:31 +msgctxt "barcode scanner" +msgid "Scanning..." +msgstr "" + +#: bookwyrm/templates/search/barcode_modal.html:32 +msgid "Align your book's barcode with the camera." +msgstr "" + +#: bookwyrm/templates/search/barcode_modal.html:36 +msgctxt "barcode scanner" +msgid "ISBN scanned" +msgstr "" + +#: bookwyrm/templates/search/barcode_modal.html:37 +msgctxt "followed by ISBN" +msgid "Searching for book:" +msgstr "" + +#: bookwyrm/templates/search/book.html:25 +#, python-format +msgid "%(formatted_review_count)s review" +msgid_plural "%(formatted_review_count)s reviews" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: bookwyrm/templates/search/book.html:34 +#, python-format +msgid "(published %(pub_year)s)" +msgstr "" + +#: bookwyrm/templates/search/book.html:50 +msgid "Results from" +msgstr "" + +#: bookwyrm/templates/search/book.html:89 +msgid "Import book" +msgstr "" + +#: bookwyrm/templates/search/book.html:113 +msgid "Load results from other catalogues" +msgstr "" + +#: bookwyrm/templates/search/book.html:117 +msgid "Manually add book" +msgstr "" + +#: bookwyrm/templates/search/book.html:122 +msgid "Log in to import or add books." +msgstr "" + +#: bookwyrm/templates/search/layout.html:17 +msgid "Search query" +msgstr "" + +#: bookwyrm/templates/search/layout.html:20 +msgid "Search type" +msgstr "" + +#: bookwyrm/templates/search/layout.html:24 +#: bookwyrm/templates/search/layout.html:47 +#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:27 +#: bookwyrm/templates/settings/federation/instance_list.html:52 +#: bookwyrm/templates/settings/layout.html:36 +#: bookwyrm/templates/settings/users/user.html:13 +#: bookwyrm/templates/settings/users/user_admin.html:5 +#: bookwyrm/templates/settings/users/user_admin.html:12 +msgid "Users" +msgstr "" + +#: bookwyrm/templates/search/layout.html:59 +#, python-format +msgid "No results found for \"%(query)s\"" +msgstr "" + +#: bookwyrm/templates/search/layout.html:61 +#, python-format +msgid "%(result_count)s result found" +msgid_plural "%(result_count)s results found" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: bookwyrm/templates/settings/announcements/announcement.html:5 +#: bookwyrm/templates/settings/announcements/announcement.html:8 +msgid "Announcement" +msgstr "" + +#: bookwyrm/templates/settings/announcements/announcement.html:16 +#: bookwyrm/templates/settings/federation/instance.html:93 +#: bookwyrm/templates/snippets/status/status_options.html:25 +msgid "Edit" +msgstr "" + +#: bookwyrm/templates/settings/announcements/announcement.html:32 +#: bookwyrm/templates/settings/announcements/announcements.html:3 +#: bookwyrm/templates/settings/announcements/announcements.html:5 +#: bookwyrm/templates/settings/announcements/edit_announcement.html:15 +#: bookwyrm/templates/settings/layout.html:99 +msgid "Announcements" +msgstr "" + +#: bookwyrm/templates/settings/announcements/announcement.html:45 +msgid "Visible:" +msgstr "" + +#: bookwyrm/templates/settings/announcements/announcement.html:49 +msgid "True" +msgstr "" + +#: bookwyrm/templates/settings/announcements/announcement.html:51 +msgid "False" +msgstr "" + +#: bookwyrm/templates/settings/announcements/announcement.html:57 +#: bookwyrm/templates/settings/announcements/edit_announcement.html:79 +#: bookwyrm/templates/settings/dashboard/dashboard.html:80 +msgid "Start date:" +msgstr "" + +#: bookwyrm/templates/settings/announcements/announcement.html:62 +#: bookwyrm/templates/settings/announcements/edit_announcement.html:89 +#: bookwyrm/templates/settings/dashboard/dashboard.html:86 +msgid "End date:" +msgstr "" + +#: bookwyrm/templates/settings/announcements/announcement.html:66 +#: bookwyrm/templates/settings/announcements/edit_announcement.html:109 +msgid "Active:" +msgstr "" + +#: bookwyrm/templates/settings/announcements/announcements.html:9 +#: bookwyrm/templates/settings/announcements/edit_announcement.html:8 +msgid "Create Announcement" +msgstr "" + +#: bookwyrm/templates/settings/announcements/announcements.html:21 +#: bookwyrm/templates/settings/federation/instance_list.html:40 +msgid "Date added" +msgstr "" + +#: bookwyrm/templates/settings/announcements/announcements.html:25 +msgid "Preview" +msgstr "" + +#: bookwyrm/templates/settings/announcements/announcements.html:29 +msgid "Start date" +msgstr "" + +#: bookwyrm/templates/settings/announcements/announcements.html:33 +msgid "End date" +msgstr "" + +#: bookwyrm/templates/settings/announcements/announcements.html:50 +msgid "active" +msgstr "" + +#: bookwyrm/templates/settings/announcements/announcements.html:50 +msgid "inactive" +msgstr "" + +#: bookwyrm/templates/settings/announcements/announcements.html:63 +msgid "No announcements found" +msgstr "" + +#: bookwyrm/templates/settings/announcements/edit_announcement.html:6 +msgid "Edit Announcement" +msgstr "" + +#: bookwyrm/templates/settings/announcements/edit_announcement.html:45 +msgid "Announcement content" +msgstr "" + +#: bookwyrm/templates/settings/announcements/edit_announcement.html:57 +msgid "Details:" +msgstr "" + +#: bookwyrm/templates/settings/announcements/edit_announcement.html:65 +msgid "Event date:" +msgstr "" + +#: bookwyrm/templates/settings/announcements/edit_announcement.html:73 +msgid "Display settings" +msgstr "" + +#: bookwyrm/templates/settings/announcements/edit_announcement.html:98 +msgid "Color:" +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:7 +#: bookwyrm/templates/settings/automod/rules.html:11 +#: bookwyrm/templates/settings/layout.html:61 +msgid "Auto-moderation rules" +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:18 +msgid "Auto-moderation rules will create reports for any local user or status with fields matching the provided string." +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:19 +msgid "Users or statuses that have already been reported (regardless of whether the report was resolved) will not be flagged." +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:26 +msgid "Schedule:" +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:33 +msgid "Last run:" +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:40 +msgid "Total run count:" +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:47 +msgid "Enabled:" +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:59 +msgid "Delete schedule" +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:63 +msgid "Run now" +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:64 +msgid "Last run date will not be updated" +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:69 +#: bookwyrm/templates/settings/automod/rules.html:92 +msgid "Schedule scan" +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:101 +msgid "Successfully added rule" +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:107 +msgid "Add Rule" +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:116 +#: bookwyrm/templates/settings/automod/rules.html:160 +msgid "String match" +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:126 +#: bookwyrm/templates/settings/automod/rules.html:163 +msgid "Flag users" +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:133 +#: bookwyrm/templates/settings/automod/rules.html:166 +msgid "Flag statuses" +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:140 +msgid "Add rule" +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:147 +msgid "Current Rules" +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:151 +msgid "Show rules" +msgstr "" + +#: bookwyrm/templates/settings/automod/rules.html:188 +msgid "Remove rule" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:6 +#: bookwyrm/templates/settings/celery.html:8 +msgid "Celery Status" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:14 +msgid "You can set up monitoring to check if Celery is running by querying:" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:22 +msgid "Queues" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:26 +msgid "Streams" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:32 +msgid "Broadcast" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:38 +msgid "Inbox" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:51 +msgid "Import triggered" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:57 +msgid "Connectors" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:64 +#: bookwyrm/templates/settings/site.html:91 +msgid "Images" +msgstr "Зображення" + +#: bookwyrm/templates/settings/celery.html:70 +msgid "Suggested Users" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:83 +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:43 +#: bookwyrm/templates/settings/users/email_filter.html:5 +msgid "Email" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:89 +msgid "Misc" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:96 +msgid "Low priority" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:102 +msgid "Medium priority" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:108 +msgid "High priority" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:118 +msgid "Could not connect to Redis broker" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:126 +msgid "Active Tasks" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:131 +#: bookwyrm/templates/settings/imports/imports.html:113 +msgid "ID" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:132 +msgid "Task name" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:133 +msgid "Run time" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:134 +msgid "Priority" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:139 +msgid "No active tasks" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:157 +msgid "Workers" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:162 +msgid "Uptime:" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:172 +msgid "Could not connect to Celery" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:178 +#: bookwyrm/templates/settings/celery.html:201 +msgid "Clear Queues" +msgstr "" + +#: bookwyrm/templates/settings/celery.html:182 +msgid "Clearing queues can cause serious problems including data loss! Only play with this if you really know what you're doing. You must shut down the Celery worker before you do this." +msgstr "" + +#: bookwyrm/templates/settings/celery.html:208 +msgid "Errors" +msgstr "" + +#: bookwyrm/templates/settings/dashboard/dashboard.html:6 +#: bookwyrm/templates/settings/dashboard/dashboard.html:8 +#: bookwyrm/templates/settings/layout.html:28 +msgid "Dashboard" +msgstr "" + +#: bookwyrm/templates/settings/dashboard/dashboard.html:15 +#: bookwyrm/templates/settings/dashboard/dashboard.html:109 +msgid "Total users" +msgstr "" + +#: bookwyrm/templates/settings/dashboard/dashboard.html:21 +#: bookwyrm/templates/settings/dashboard/user_chart.html:16 +msgid "Active this month" +msgstr "" + +#: bookwyrm/templates/settings/dashboard/dashboard.html:27 +msgid "Statuses" +msgstr "" + +#: bookwyrm/templates/settings/dashboard/dashboard.html:33 +#: bookwyrm/templates/settings/dashboard/works_chart.html:11 +msgid "Works" +msgstr "" + +#: bookwyrm/templates/settings/dashboard/dashboard.html:74 +msgid "Instance Activity" +msgstr "" + +#: bookwyrm/templates/settings/dashboard/dashboard.html:92 +msgid "Interval:" +msgstr "" + +#: bookwyrm/templates/settings/dashboard/dashboard.html:96 +msgid "Days" +msgstr "" + +#: bookwyrm/templates/settings/dashboard/dashboard.html:97 +msgid "Weeks" +msgstr "" + +#: bookwyrm/templates/settings/dashboard/dashboard.html:115 +msgid "User signup activity" +msgstr "" + +#: bookwyrm/templates/settings/dashboard/dashboard.html:121 +msgid "Status activity" +msgstr "" + +#: bookwyrm/templates/settings/dashboard/dashboard.html:127 +msgid "Works created" +msgstr "" + +#: bookwyrm/templates/settings/dashboard/registration_chart.html:10 +msgid "Registrations" +msgstr "" + +#: bookwyrm/templates/settings/dashboard/status_chart.html:11 +msgid "Statuses posted" +msgstr "" + +#: bookwyrm/templates/settings/dashboard/user_chart.html:11 +msgid "Total" +msgstr "" + +#: bookwyrm/templates/settings/dashboard/warnings/domain_review.html:9 +#, python-format +msgid "%(display_count)s domain needs review" +msgid_plural "%(display_count)s domains need review" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: bookwyrm/templates/settings/dashboard/warnings/email_config.html:8 +#, python-format +msgid "Your outgoing email address, %(email_sender)s, may be misconfigured." +msgstr "" + +#: bookwyrm/templates/settings/dashboard/warnings/email_config.html:11 +msgid "Check the EMAIL_SENDER_NAME and EMAIL_SENDER_DOMAIN in your .env file." +msgstr "" + +#: bookwyrm/templates/settings/dashboard/warnings/invites.html:9 +#, python-format +msgid "%(display_count)s invite request" +msgid_plural "%(display_count)s invite requests" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: bookwyrm/templates/settings/dashboard/warnings/missing_conduct.html:8 +msgid "Your instance is missing a code of conduct." +msgstr "" + +#: bookwyrm/templates/settings/dashboard/warnings/missing_privacy.html:8 +msgid "Your instance is missing a privacy policy." +msgstr "" + +#: bookwyrm/templates/settings/dashboard/warnings/reports.html:9 +#, python-format +msgid "%(display_count)s open report" +msgid_plural "%(display_count)s open reports" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: bookwyrm/templates/settings/dashboard/warnings/update_version.html:8 +#, python-format +msgid "An update is available! You're running v%(current)s and the latest release is %(available)s." +msgstr "" + +#: bookwyrm/templates/settings/email_blocklist/domain_form.html:5 +#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:10 +msgid "Add domain" +msgstr "" + +#: bookwyrm/templates/settings/email_blocklist/domain_form.html:11 +msgid "Domain:" +msgstr "" + +#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:5 +#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:7 +#: bookwyrm/templates/settings/layout.html:65 +msgid "Email Blocklist" +msgstr "" + +#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:18 +msgid "When someone tries to register with an email from this domain, no account will be created. The registration process will appear to have worked." +msgstr "" + +#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:29 +#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:27 +msgid "Options" +msgstr "" + +#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:38 +#, python-format +msgid "%(display_count)s user" +msgid_plural "%(display_count)s users" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:59 +msgid "No email domains currently blocked" +msgstr "" + +#: bookwyrm/templates/settings/email_config.html:6 +#: bookwyrm/templates/settings/email_config.html:8 +#: bookwyrm/templates/settings/layout.html:90 +msgid "Email Configuration" +msgstr "Налаштування електронної пошти" + +#: bookwyrm/templates/settings/email_config.html:16 +msgid "Error sending test email:" +msgstr "При спробі надіслати email, сталася помилка:" + +#: bookwyrm/templates/settings/email_config.html:24 +msgid "Successfully sent test email." +msgstr "Тестовий email успішно надісланий." + +#: bookwyrm/templates/settings/email_config.html:32 +#: bookwyrm/templates/setup/config.html:102 +msgid "Email sender:" +msgstr "" + +#: bookwyrm/templates/settings/email_config.html:39 +msgid "Email backend:" +msgstr "" + +#: bookwyrm/templates/settings/email_config.html:46 +msgid "Host:" +msgstr "" + +#: bookwyrm/templates/settings/email_config.html:53 +msgid "Host user:" +msgstr "" + +#: bookwyrm/templates/settings/email_config.html:60 +msgid "Port:" +msgstr "Порт:" + +#: bookwyrm/templates/settings/email_config.html:67 +msgid "Use TLS:" +msgstr "Використовувати TLS:" + +#: bookwyrm/templates/settings/email_config.html:74 +msgid "Use SSL:" +msgstr "Використовувати SSL:" + +#: bookwyrm/templates/settings/email_config.html:83 +#, python-format +msgid "Send test email to %(email)s" +msgstr "Відправити тестовий email на %(email)s" + +#: bookwyrm/templates/settings/email_config.html:90 +msgid "Send test email" +msgstr "Відправити тестовий email" + +#: bookwyrm/templates/settings/federation/edit_instance.html:3 +#: bookwyrm/templates/settings/federation/edit_instance.html:6 +#: bookwyrm/templates/settings/federation/edit_instance.html:15 +#: bookwyrm/templates/settings/federation/edit_instance.html:32 +#: bookwyrm/templates/settings/federation/instance_blocklist.html:3 +#: bookwyrm/templates/settings/federation/instance_blocklist.html:32 +#: bookwyrm/templates/settings/federation/instance_list.html:9 +#: bookwyrm/templates/settings/federation/instance_list.html:10 +msgid "Add instance" +msgstr "" + +#: bookwyrm/templates/settings/federation/edit_instance.html:12 +#: bookwyrm/templates/settings/federation/instance.html:24 +#: bookwyrm/templates/settings/federation/instance_blocklist.html:12 +#: bookwyrm/templates/settings/federation/instance_list.html:3 +#: bookwyrm/templates/settings/federation/instance_list.html:5 +#: bookwyrm/templates/settings/layout.html:47 +msgid "Federated Instances" +msgstr "" + +#: bookwyrm/templates/settings/federation/edit_instance.html:28 +#: bookwyrm/templates/settings/federation/instance_blocklist.html:28 +msgid "Import block list" +msgstr "" + +#: bookwyrm/templates/settings/federation/edit_instance.html:43 +msgid "Instance:" +msgstr "" + +#: bookwyrm/templates/settings/federation/edit_instance.html:52 +#: bookwyrm/templates/settings/federation/instance.html:46 +#: bookwyrm/templates/settings/users/user_info.html:119 +msgid "Status:" +msgstr "" + +#: bookwyrm/templates/settings/federation/edit_instance.html:66 +#: bookwyrm/templates/settings/federation/instance.html:40 +#: bookwyrm/templates/settings/users/user_info.html:113 +msgid "Software:" +msgstr "" + +#: bookwyrm/templates/settings/federation/edit_instance.html:76 +#: bookwyrm/templates/settings/federation/instance.html:43 +#: bookwyrm/templates/settings/users/user_info.html:116 +msgid "Version:" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance.html:17 +msgid "Refresh data" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance.html:37 +msgid "Details" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance.html:53 +#: bookwyrm/templates/user/layout.html:84 +msgid "Activity" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance.html:56 +msgid "Users:" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance.html:59 +#: bookwyrm/templates/settings/federation/instance.html:65 +msgid "View all" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance.html:62 +#: bookwyrm/templates/settings/users/user_info.html:66 +msgid "Reports:" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance.html:68 +msgid "Followed by us:" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance.html:73 +msgid "Followed by them:" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance.html:78 +msgid "Blocked by us:" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance.html:90 +#: bookwyrm/templates/settings/users/user_info.html:123 +msgid "Notes" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance.html:97 +msgid "No notes" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance.html:116 +#: bookwyrm/templates/settings/link_domains/link_domains.html:87 +#: bookwyrm/templates/snippets/block_button.html:5 +msgid "Block" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance.html:117 +msgid "All users from this instance will be deactivated." +msgstr "" + +#: bookwyrm/templates/settings/federation/instance.html:122 +#: bookwyrm/templates/snippets/block_button.html:10 +msgid "Un-block" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance.html:123 +msgid "All users from this instance will be re-activated." +msgstr "" + +#: bookwyrm/templates/settings/federation/instance_blocklist.html:6 +#: bookwyrm/templates/settings/federation/instance_blocklist.html:15 +msgid "Import Blocklist" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance_blocklist.html:38 +msgid "Success!" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance_blocklist.html:42 +msgid "Successfully blocked:" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance_blocklist.html:44 +msgid "Failed:" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance_blocklist.html:62 +msgid "Expects a json file in the format provided by FediBlock, with a list of entries that have instance and url fields. For example:" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance_list.html:36 +#: bookwyrm/templates/settings/users/server_filter.html:5 +msgid "Instance name" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance_list.html:44 +msgid "Last updated" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance_list.html:48 +#: bookwyrm/templates/settings/federation/software_filter.html:5 +msgid "Software" +msgstr "" + +#: bookwyrm/templates/settings/federation/instance_list.html:70 +msgid "No instances found" +msgstr "" + +#: bookwyrm/templates/settings/imports/complete_import_modal.html:4 +msgid "Stop import?" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:19 +msgid "Disable starting new imports" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:30 +msgid "This is only intended to be used when things have gone very wrong with imports and you need to pause the feature while addressing issues." +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:31 +msgid "While imports are disabled, users will not be allowed to start new imports, but existing imports will not be affected." +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:36 +msgid "Disable imports" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:50 +msgid "Users are currently unable to start new imports" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:55 +msgid "Enable imports" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:63 +msgid "Limit the amount of imports" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:74 +msgid "Some users might try to import a large number of books, which you want to limit." +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:75 +msgid "Set the value to 0 to not enforce any limit." +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:78 +msgid "Set import limit to" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:80 +msgid "books every" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:82 +msgid "days." +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:86 +msgid "Set limit" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:102 +msgid "Completed" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:116 +msgid "User" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:125 +msgid "Date Updated" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:132 +msgid "Pending items" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:135 +msgid "Successful items" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:170 +msgid "No matching imports found." +msgstr "" + +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:4 +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:11 +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:25 +#: bookwyrm/templates/settings/invites/manage_invites.html:11 +msgid "Invite Requests" +msgstr "" + +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:15 +#: bookwyrm/templates/settings/invites/manage_invites.html:3 +#: bookwyrm/templates/settings/invites/manage_invites.html:15 +#: bookwyrm/templates/settings/layout.html:42 +#: bookwyrm/templates/user_menu.html:60 +msgid "Invites" +msgstr "" + +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:23 +msgid "Ignored Invite Requests" +msgstr "" + +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:36 +msgid "Date requested" +msgstr "" + +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:40 +msgid "Date accepted" +msgstr "" + +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:45 +msgid "Answer" +msgstr "" + +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:51 +msgid "Action" +msgstr "" + +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:54 +msgid "No requests" +msgstr "" + +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:66 +#: bookwyrm/templates/settings/invites/status_filter.html:16 +msgid "Accepted" +msgstr "" + +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:68 +#: bookwyrm/templates/settings/invites/status_filter.html:12 +msgid "Sent" +msgstr "" + +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:70 +#: bookwyrm/templates/settings/invites/status_filter.html:8 +msgid "Requested" +msgstr "" + +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:80 +msgid "Send invite" +msgstr "" + +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:82 +msgid "Re-send invite" +msgstr "" + +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:102 +msgid "Ignore" +msgstr "" + +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:104 +msgid "Un-ignore" +msgstr "" + +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:116 +msgid "Back to pending requests" +msgstr "Повернутися до запитів в процесі" + +#: bookwyrm/templates/settings/invites/manage_invite_requests.html:118 +msgid "View ignored requests" +msgstr "Переглянути проігноровані запити" + +#: bookwyrm/templates/settings/invites/manage_invites.html:21 +msgid "Generate New Invite" +msgstr "Згенерувати Нове Запрошення" + +#: bookwyrm/templates/settings/invites/manage_invites.html:27 +msgid "Expiry:" +msgstr "Термін дії: " + +#: bookwyrm/templates/settings/invites/manage_invites.html:33 +msgid "Use limit:" +msgstr "Ліміт використань:" + +#: bookwyrm/templates/settings/invites/manage_invites.html:40 +msgid "Create Invite" +msgstr "Створити Запрошення" + +#: bookwyrm/templates/settings/invites/manage_invites.html:48 +msgid "Expires" +msgstr "Закінчення терміну дії" + +#: bookwyrm/templates/settings/invites/manage_invites.html:49 +msgid "Max uses" +msgstr "Макс. кількість використань" + +#: bookwyrm/templates/settings/invites/manage_invites.html:50 +msgid "Times used" +msgstr "Використань" + +#: bookwyrm/templates/settings/invites/manage_invites.html:53 +msgid "No active invites" +msgstr "Немає активних запрошень" + +#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:5 +#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:10 +msgid "Add IP address" +msgstr "Додати IP-адресу" + +#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:11 +msgid "Use IP address blocks with caution, and consider using blocks only temporarily, as IP addresses are often shared or change hands. If you block your own IP, you will not be able to access this page." +msgstr "Використовуйте блокування IP-адрес обережно. Розгляньте тимчасове блокування, оскільки IP-адреси часто бувають спільними для кількох людей або змінюють власників. Якщо ви заблокуєте власну IP адресу, ви не зможете зайти на цю сторінку." + +#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:18 +msgid "IP Address:" +msgstr "IP-адреса:" + +#: bookwyrm/templates/settings/ip_blocklist/ip_address_form.html:24 +msgid "You can block IP ranges using CIDR syntax." +msgstr "Ви можете заблокувати діапазон IP за допомогою синтаксису CIDR." + +#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:5 +#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:7 +#: bookwyrm/templates/settings/layout.html:69 +msgid "IP Address Blocklist" +msgstr "Список Заблокованих IP" + +#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:18 +msgid "Any traffic from this IP address will get a 404 response when trying to access any part of the application." +msgstr "Будь-який трафік з цієї IP-адреси отримає відповідь 404 при взаємодії з будь-якою частиною сервісу." + +#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:24 +msgid "Address" +msgstr "Адреса" + +#: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:46 +msgid "No IP addresses currently blocked" +msgstr "Наразі нема заблокованих IP адрес" + +#: bookwyrm/templates/settings/layout.html:4 +msgid "Administration" +msgstr "Адміністрування" + +#: bookwyrm/templates/settings/layout.html:31 +msgid "Manage Users" +msgstr "Керування Користувачами" + +#: bookwyrm/templates/settings/layout.html:53 +msgid "Moderation" +msgstr "Модерація" + +#: bookwyrm/templates/settings/layout.html:57 +#: bookwyrm/templates/settings/reports/reports.html:8 +#: bookwyrm/templates/settings/reports/reports.html:17 +msgid "Reports" +msgstr "Скарги" + +#: bookwyrm/templates/settings/layout.html:73 +#: bookwyrm/templates/settings/link_domains/link_domains.html:5 +#: bookwyrm/templates/settings/link_domains/link_domains.html:7 +msgid "Link Domains" +msgstr "Домени Посилань" + +#: bookwyrm/templates/settings/layout.html:78 +msgid "System" +msgstr "Система" + +#: bookwyrm/templates/settings/layout.html:86 +msgid "Celery status" +msgstr "Стан Celery" + +#: bookwyrm/templates/settings/layout.html:95 +msgid "Instance Settings" +msgstr "Налаштування Інстансу" + +#: bookwyrm/templates/settings/layout.html:103 +#: bookwyrm/templates/settings/site.html:4 +#: bookwyrm/templates/settings/site.html:6 +msgid "Site Settings" +msgstr "Налаштування Сайту" + +#: bookwyrm/templates/settings/layout.html:109 +#: bookwyrm/templates/settings/layout.html:112 +#: bookwyrm/templates/settings/registration.html:4 +#: bookwyrm/templates/settings/registration.html:6 +#: bookwyrm/templates/settings/registration_limited.html:4 +#: bookwyrm/templates/settings/registration_limited.html:6 +msgid "Registration" +msgstr "Реєстрація" + +#: bookwyrm/templates/settings/layout.html:118 +#: bookwyrm/templates/settings/site.html:107 +#: bookwyrm/templates/settings/themes.html:4 +#: bookwyrm/templates/settings/themes.html:6 +msgid "Themes" +msgstr "Теми" + +#: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:5 +#, python-format +msgid "Set display name for %(url)s" +msgstr "Встановити ім'я для %(url)s" + +#: bookwyrm/templates/settings/link_domains/link_domains.html:11 +msgid "Link domains must be approved before they are shown on book pages. Please make sure that the domains are not hosting spam, malicious code, or deceptive links before approving." +msgstr "Домени посилань треба підтвердити перед тим, як вони з'являться на сторінках книжок. Будь ласка, переконайтеся, що сайти, на які вказують домени, не розміщують спам, віруси або оманливі посилання перед підтвердженням." + +#: bookwyrm/templates/settings/link_domains/link_domains.html:45 +msgid "Set display name" +msgstr "Встановити ім'я для" + +#: bookwyrm/templates/settings/link_domains/link_domains.html:53 +msgid "View links" +msgstr "Переглянути посилання" + +#: bookwyrm/templates/settings/link_domains/link_domains.html:96 +msgid "No domains currently approved" +msgstr "Наразі немає підтверджених доменів" + +#: bookwyrm/templates/settings/link_domains/link_domains.html:98 +msgid "No domains currently pending" +msgstr "Наразі немає доменів, які очікують підтвердження" + +#: bookwyrm/templates/settings/link_domains/link_domains.html:100 +msgid "No domains currently blocked" +msgstr "Наразі немає заблокованих доменів" + +#: bookwyrm/templates/settings/link_domains/link_table.html:43 +msgid "No links available for this domain." +msgstr "Немає посилань для цього домену." + +#: bookwyrm/templates/settings/registration.html:13 +#: bookwyrm/templates/settings/registration_limited.html:13 +#: bookwyrm/templates/settings/site.html:21 +msgid "Settings saved" +msgstr "Налаштування збережено" + +#: bookwyrm/templates/settings/registration.html:22 +#: bookwyrm/templates/settings/registration_limited.html:22 +#: bookwyrm/templates/settings/site.html:30 +msgid "Unable to save settings" +msgstr "Не вдалося зберегти налаштування" + +#: bookwyrm/templates/settings/registration.html:38 +msgid "Allow registration" +msgstr "Дозволити реєстрацію" + +#: bookwyrm/templates/settings/registration.html:43 +msgid "Default access level:" +msgstr "Рівень доступу за замовчуванням:" + +#: bookwyrm/templates/settings/registration.html:61 +msgid "Require users to confirm email address" +msgstr "Вимагати від користувачів підтвердження email адреси" + +#: bookwyrm/templates/settings/registration.html:63 +msgid "(Recommended if registration is open)" +msgstr "(Рекомендується при відкритій реєстрації)" + +#: bookwyrm/templates/settings/registration.html:68 +msgid "Allow invite requests" +msgstr "Дозволити запити на запрошення" + +#: bookwyrm/templates/settings/registration.html:72 +#: bookwyrm/templates/settings/registration_limited.html:42 +msgid "Invite request text:" +msgstr "Текст запиту запрошення:" + +#: bookwyrm/templates/settings/registration.html:80 +#: bookwyrm/templates/settings/registration_limited.html:50 +msgid "Set a question for invite requests" +msgstr "Встановити питання для запиту запрошення" + +#: bookwyrm/templates/settings/registration.html:85 +#: bookwyrm/templates/settings/registration_limited.html:55 +msgid "Question:" +msgstr "Питання:" + +#: bookwyrm/templates/settings/registration.html:90 +#: bookwyrm/templates/settings/registration_limited.html:67 +msgid "Registration closed text:" +msgstr "Текст, якщо реєстрація закрита:" + +#: bookwyrm/templates/settings/registration_limited.html:29 +msgid "Registration is enabled on this instance" +msgstr "На цьому інстансі увімкнена реєстрація" + +#: bookwyrm/templates/settings/reports/report.html:13 +msgid "Back to reports" +msgstr "Назад до скарг" + +#: bookwyrm/templates/settings/reports/report.html:25 +msgid "Message reporter" +msgstr "Написати повідомлення автору скарги" + +#: bookwyrm/templates/settings/reports/report.html:29 +msgid "Update on your report:" +msgstr "Оновлення по вашій скарзі:" + +#: bookwyrm/templates/settings/reports/report.html:37 +msgid "Reported status" +msgstr "Оскаржений статус" + +#: bookwyrm/templates/settings/reports/report.html:39 +msgid "Status has been deleted" +msgstr "Статус було видалено" + +#: bookwyrm/templates/settings/reports/report.html:48 +msgid "Reported links" +msgstr "Оскаржені посилання" + +#: bookwyrm/templates/settings/reports/report.html:66 +msgid "Moderation Activity" +msgstr "" + +#: bookwyrm/templates/settings/reports/report.html:73 +#, python-format +msgid "%(user)s opened this report" +msgstr "" + +#: bookwyrm/templates/settings/reports/report.html:86 +#, python-format +msgid "%(user)s commented on this report:" +msgstr "" + +#: bookwyrm/templates/settings/reports/report.html:90 +#, python-format +msgid "%(user)s took an action on this report:" +msgstr "" + +#: bookwyrm/templates/settings/reports/report_header.html:6 +#, python-format +msgid "Report #%(report_id)s: Status posted by @%(username)s" +msgstr "Скарга #%(report_id)s: Статус від @%(username)s" + +#: bookwyrm/templates/settings/reports/report_header.html:13 +#, python-format +msgid "Report #%(report_id)s: Link added by @%(username)s" +msgstr "Скарга #%(report_id)s: Посилання додане @%(username)s" + +#: bookwyrm/templates/settings/reports/report_header.html:17 +#, python-format +msgid "Report #%(report_id)s: Link domain" +msgstr "Скарга #%(report_id)s: Домен посилання" + +#: bookwyrm/templates/settings/reports/report_header.html:24 +#, python-format +msgid "Report #%(report_id)s: User @%(username)s" +msgstr "Скарга #%(report_id)s: Користувач @%(username)s" + +#: bookwyrm/templates/settings/reports/report_links_table.html:19 +msgid "Approve domain" +msgstr "" + +#: bookwyrm/templates/settings/reports/report_links_table.html:26 +msgid "Block domain" +msgstr "Заблокувати домен" + +#: bookwyrm/templates/settings/reports/report_preview.html:17 +msgid "No notes provided" +msgstr "Нотатки відсутні" + +#: bookwyrm/templates/settings/reports/report_preview.html:24 +#, python-format +msgid "Reported by @%(username)s" +msgstr "Скарга від @%(username)s" + +#: bookwyrm/templates/settings/reports/report_preview.html:34 +msgid "Re-open" +msgstr "Відкрийте знову" + +#: bookwyrm/templates/settings/reports/report_preview.html:36 +msgid "Resolve" +msgstr "Розглянуто" + +#: bookwyrm/templates/settings/reports/reports.html:6 +#, python-format +msgid "Reports: %(instance_name)s" +msgstr "Скарги: %(instance_name)s" + +#: bookwyrm/templates/settings/reports/reports.html:14 +#, python-format +msgid "Reports: %(instance_name)s" +msgstr "Скарги: %(instance_name)s" + +#: bookwyrm/templates/settings/reports/reports.html:25 +msgid "Open" +msgstr "Очікує розгляду" + +#: bookwyrm/templates/settings/reports/reports.html:28 +msgid "Resolved" +msgstr "Розглянута" + +#: bookwyrm/templates/settings/reports/reports.html:37 +msgid "No reports found." +msgstr "Скарг не знайдено." + +#: bookwyrm/templates/settings/site.html:10 +#: bookwyrm/templates/settings/site.html:43 +msgid "Instance Info" +msgstr "Інформація про інстанс" + +#: bookwyrm/templates/settings/site.html:12 +#: bookwyrm/templates/settings/site.html:122 +msgid "Footer Content" +msgstr "Вміст футера" + +#: bookwyrm/templates/settings/site.html:46 +msgid "Instance Name:" +msgstr "Назва Інстансу:" + +#: bookwyrm/templates/settings/site.html:50 +msgid "Tagline:" +msgstr "Підзаголовок:" + +#: bookwyrm/templates/settings/site.html:54 +msgid "Instance description:" +msgstr "Опис інстансу:" + +#: bookwyrm/templates/settings/site.html:58 +msgid "Short description:" +msgstr "Короткий опис:" + +#: bookwyrm/templates/settings/site.html:59 +msgid "Used when the instance is previewed on joinbookwyrm.com. Does not support HTML or Markdown." +msgstr "Використовується при розміщенні на joinbookwyrm.com. Не підтримує HTML або Markdown." + +#: bookwyrm/templates/settings/site.html:63 +msgid "Code of conduct:" +msgstr "Правила поведінки:" + +#: bookwyrm/templates/settings/site.html:67 +msgid "Privacy Policy:" +msgstr "Політика Конфіденційності:" + +#: bookwyrm/templates/settings/site.html:72 +msgid "Impressum:" +msgstr "Імпресум:" + +#: bookwyrm/templates/settings/site.html:77 +msgid "Include impressum:" +msgstr "Включає імпресум:" + +#: bookwyrm/templates/settings/site.html:94 +msgid "Logo:" +msgstr "Логотип:" + +#: bookwyrm/templates/settings/site.html:98 +msgid "Logo small:" +msgstr "Маленький логотип:" + +#: bookwyrm/templates/settings/site.html:102 +msgid "Favicon:" +msgstr "Favicon:" + +#: bookwyrm/templates/settings/site.html:110 +msgid "Default theme:" +msgstr "Стандартна тема:" + +#: bookwyrm/templates/settings/site.html:125 +msgid "Support link:" +msgstr "Посилання для підтримки:" + +#: bookwyrm/templates/settings/site.html:129 +msgid "Support title:" +msgstr "Назва сервісу підтримки:" + +#: bookwyrm/templates/settings/site.html:133 +msgid "Admin email:" +msgstr "Email адміністратора:" + +#: bookwyrm/templates/settings/site.html:137 +msgid "Additional info:" +msgstr "Додаткова інформація:" + +#: bookwyrm/templates/settings/themes.html:10 +msgid "Set instance default theme" +msgstr "Встановити стандартну тему інстансу" + +#: bookwyrm/templates/settings/themes.html:19 +msgid "Successfully added theme" +msgstr "Тему успішно додано" + +#: bookwyrm/templates/settings/themes.html:26 +msgid "How to add a theme" +msgstr "Як додати тему" + +#: bookwyrm/templates/settings/themes.html:29 +msgid "Copy the theme file into the bookwyrm/static/css/themes directory on your server from the command line." +msgstr "Скопіюйте файл теми в директорію bookwyrm/static/css/themes на вашому сервері з командного рядка." + +#: bookwyrm/templates/settings/themes.html:32 +msgid "Run ./bw-dev compile_themes and ./bw-dev collectstatic." +msgstr "Запустіть ./bw-dev compile_themes та ./bw-dev collectstatic." + +#: bookwyrm/templates/settings/themes.html:35 +msgid "Add the file name using the form below to make it available in the application interface." +msgstr "Додайте назву файлу використовуючи форму нижче, щоб зробити її доступною в інтерфейсі BookWyrm." + +#: bookwyrm/templates/settings/themes.html:42 +#: bookwyrm/templates/settings/themes.html:82 +msgid "Add theme" +msgstr "Додати тему" + +#: bookwyrm/templates/settings/themes.html:48 +msgid "Unable to save theme" +msgstr "Не вдалося зберегти тему" + +#: bookwyrm/templates/settings/themes.html:63 +#: bookwyrm/templates/settings/themes.html:93 +msgid "Theme name" +msgstr "Назва теми" + +#: bookwyrm/templates/settings/themes.html:73 +msgid "Theme filename" +msgstr "Ім'я файлу теми" + +#: bookwyrm/templates/settings/themes.html:88 +msgid "Available Themes" +msgstr "Доступні теми" + +#: bookwyrm/templates/settings/themes.html:96 +msgid "File" +msgstr "Файл" + +#: bookwyrm/templates/settings/themes.html:111 +msgid "Remove theme" +msgstr "Видалити тему" + +#: bookwyrm/templates/settings/users/delete_user_form.html:5 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:38 +msgid "Permanently delete user" +msgstr "Видалити користувача назавжди" + +#: bookwyrm/templates/settings/users/delete_user_form.html:12 +#, python-format +msgid "Are you sure you want to delete %(username)s's account? This action cannot be undone. To proceed, please enter your password to confirm deletion." +msgstr "Ви впевнені, що хочете видалити обліковий запис %(username)s? Цю дію неможливо скасувати. Щоб продовжити, будь ласка, введіть свій пароль для підтвердження видалення." + +#: bookwyrm/templates/settings/users/delete_user_form.html:17 +msgid "Your password:" +msgstr "Ваш пароль:" + +#: bookwyrm/templates/settings/users/user_admin.html:9 +#, python-format +msgid "Users: %(instance_name)s" +msgstr "Користувачі: %(instance_name)s" + +#: bookwyrm/templates/settings/users/user_admin.html:29 +msgid "Deleted users" +msgstr "Видалені користувачі" + +#: bookwyrm/templates/settings/users/user_admin.html:44 +#: bookwyrm/templates/settings/users/username_filter.html:5 +msgid "Username" +msgstr "Ім'я користувача" + +#: bookwyrm/templates/settings/users/user_admin.html:48 +msgid "Date Added" +msgstr "Дата реєстрації / додавання" + +#: bookwyrm/templates/settings/users/user_admin.html:52 +msgid "Last Active" +msgstr "Остання активність" + +#: bookwyrm/templates/settings/users/user_admin.html:61 +msgid "Remote instance" +msgstr "Інший інстанс" + +#: bookwyrm/templates/settings/users/user_admin.html:82 +#: bookwyrm/templates/settings/users/user_info.html:29 +msgid "Moved" +msgstr "" + +#: bookwyrm/templates/settings/users/user_admin.html:93 +msgid "Deleted" +msgstr "Видалено" + +#: bookwyrm/templates/settings/users/user_admin.html:99 +#: bookwyrm/templates/settings/users/user_info.html:38 +msgid "Inactive" +msgstr "Неактивний" + +#: bookwyrm/templates/settings/users/user_admin.html:108 +#: bookwyrm/templates/settings/users/user_info.html:133 +msgid "Not set" +msgstr "Не встановлено" + +#: bookwyrm/templates/settings/users/user_info.html:16 +msgid "View user profile" +msgstr "Переглянути профіль користувача" + +#: bookwyrm/templates/settings/users/user_info.html:19 +msgid "Go to user admin" +msgstr "Перейти до адміністрування користувача" + +#: bookwyrm/templates/settings/users/user_info.html:46 +msgid "Local" +msgstr "Місцевий" + +#: bookwyrm/templates/settings/users/user_info.html:48 +msgid "Remote" +msgstr "З іншого сервера" + +#: bookwyrm/templates/settings/users/user_info.html:57 +msgid "User details" +msgstr "Подробиці користувача" + +#: bookwyrm/templates/settings/users/user_info.html:61 +msgid "Email:" +msgstr "Електронна пошта:" + +#: bookwyrm/templates/settings/users/user_info.html:71 +msgid "(View reports)" +msgstr "(Переглянути скарги)" + +#: bookwyrm/templates/settings/users/user_info.html:77 +msgid "Blocked by count:" +msgstr "Заблокували цього користувача:" + +#: bookwyrm/templates/settings/users/user_info.html:80 +msgid "Date added:" +msgstr "Зареєструвався або було додано:" + +#: bookwyrm/templates/settings/users/user_info.html:83 +msgid "Last active date:" +msgstr "Остання активність:" + +#: bookwyrm/templates/settings/users/user_info.html:86 +msgid "Manually approved followers:" +msgstr "Підтверджує підписників вручну:" + +#: bookwyrm/templates/settings/users/user_info.html:89 +msgid "Discoverable:" +msgstr "Видимий:" + +#: bookwyrm/templates/settings/users/user_info.html:93 +msgid "Deactivation reason:" +msgstr "Причина деактивації:" + +#: bookwyrm/templates/settings/users/user_info.html:108 +msgid "Instance details" +msgstr "Подробиці інстансу" + +#: bookwyrm/templates/settings/users/user_info.html:130 +msgid "View instance" +msgstr "Переглянути інстанс" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:5 +msgid "Permanently deleted" +msgstr "Видалено остаточно" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:8 +msgid "User Actions" +msgstr "Керування користувачем" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:21 +msgid "Activate user" +msgstr "Активувати користувача" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:27 +msgid "Suspend user" +msgstr "Заблокувати користувача" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:32 +msgid "Un-suspend user" +msgstr "Розблокувати користувача" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:54 +msgid "Access level:" +msgstr "Рівень доступу:" + +#: bookwyrm/templates/setup/admin.html:5 +msgid "Set up BookWyrm" +msgstr "Налаштування BookWyrm" + +#: bookwyrm/templates/setup/admin.html:7 +msgid "Your account as a user and an admin" +msgstr "Ваш обліковий запис як користувача та адміністратора" + +#: bookwyrm/templates/setup/admin.html:13 +msgid "Create your account" +msgstr "Створення свого облікового запису" + +#: bookwyrm/templates/setup/admin.html:20 +msgid "Admin key:" +msgstr "Ключ адміністратора:" + +#: bookwyrm/templates/setup/admin.html:32 +msgid "An admin key was created when you installed BookWyrm. You can get your admin key by running ./bw-dev admin_code from the command line on your server." +msgstr "Ключ адміністратора було створено при встановленні BookWyrm. Ви можете отримати його запустивши ./bw-dev admin_code в командному рядку на вашому сервері." + +#: bookwyrm/templates/setup/admin.html:45 +msgid "As an admin, you'll be able to configure the instance name and information, and moderate your instance. This means you will have access to private information about your users, and are responsible for responding to reports of bad behavior or spam." +msgstr "Як адміністратор, ви зможете налаштувати назву інстансу та інформацію про нього, а також модерувати його. Це значить, що у вас буде доступ до приватної інформації про ваших користувачів та ви будете відповідати за реагування на скарги на погану поведінку та спам." + +#: bookwyrm/templates/setup/admin.html:51 +msgid "Once the instance is set up, you can promote other users to moderator or admin roles from the admin panel." +msgstr "Після налаштування інстансу ви зможете підвищити інших користувачів до ролі модератора або адміністратора з панелі адміністратора." + +#: bookwyrm/templates/setup/admin.html:55 +msgid "Learn more about moderation" +msgstr "Дізнатися більше про модерацію" + +#: bookwyrm/templates/setup/config.html:5 +msgid "Instance Configuration" +msgstr "Параметри інстансу" + +#: bookwyrm/templates/setup/config.html:7 +msgid "Make sure everything looks right before proceeding" +msgstr "Перед продовженням переконайтеся, що все виглядає правильно" + +#: bookwyrm/templates/setup/config.html:18 +msgid "You are running BookWyrm in debug mode. This should never be used in a production environment." +msgstr "BookWyrm працює в режимі налагодження. Ніколи не використовуйте цей режим в продакшені." + +#: bookwyrm/templates/setup/config.html:30 +msgid "Your domain appears to be misconfigured. It should not include protocol or slashes." +msgstr "Ваш домен, здається, налаштований неправильно. Він не повинен містити протокол або слеш." + +#: bookwyrm/templates/setup/config.html:42 +msgid "You are running BookWyrm in production mode without https. USE_HTTPS should be enabled in production." +msgstr "Ваш інстанс BookWyrm працює в режимі продакшену без https. Вам слід увімкнути USE_HTTPS." + +#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:49 +msgid "Settings" +msgstr "Налаштування" + +#: bookwyrm/templates/setup/config.html:56 +msgid "Instance domain:" +msgstr "Домен інстансу:" + +#: bookwyrm/templates/setup/config.html:63 +msgid "Protocol:" +msgstr "Протокол:" + +#: bookwyrm/templates/setup/config.html:81 +msgid "Using S3:" +msgstr "Використовує S3:" + +#: bookwyrm/templates/setup/config.html:95 +msgid "Default interface language:" +msgstr "Стандартна мова інтерфейсу:" + +#: bookwyrm/templates/setup/config.html:109 +msgid "Enable preview images:" +msgstr "Попередній перегляд зображень увімкнено:" + +#: bookwyrm/templates/setup/config.html:116 +msgid "Enable image thumbnails:" +msgstr "Мініатюри зображень увімкнено:" + +#: bookwyrm/templates/setup/config.html:128 +msgid "Does everything look right?" +msgstr "Все виглядає правильно?" + +#: bookwyrm/templates/setup/config.html:130 +msgid "This is your last chance to set your domain and protocol." +msgstr "Це ваш останній шанс встановити домен та протокол." + +#: bookwyrm/templates/setup/config.html:144 +msgid "You can change your instance settings in the .env file on your server." +msgstr "Ви можете змінити налаштування вашого інстансу в файлі .env на вашому сервері." + +#: bookwyrm/templates/setup/config.html:148 +msgid "View installation instructions" +msgstr "Переглянути інструкції з встановлення" + +#: bookwyrm/templates/setup/layout.html:5 +msgid "Instance Setup" +msgstr "Налаштування інстансу" + +#: bookwyrm/templates/setup/layout.html:21 +msgid "Installing BookWyrm" +msgstr "Встановлення BookWyrm" + +#: bookwyrm/templates/setup/layout.html:24 +msgid "Need help?" +msgstr "Потрібна допомога?" + +#: bookwyrm/templates/shelf/create_shelf_form.html:5 +#: bookwyrm/templates/shelf/shelf.html:87 +msgid "Create shelf" +msgstr "Створити полицю" + +#: bookwyrm/templates/shelf/edit_shelf_form.html:5 +msgid "Edit Shelf" +msgstr "Редагувати полицю" + +#: bookwyrm/templates/shelf/shelf.html:25 +msgid "You have have moved to" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:28 +msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/user/relationships/followers.html:18 +#: bookwyrm/templates/user/relationships/following.html:18 +msgid "User profile" +msgstr "Профіль користувача" + +#: bookwyrm/templates/shelf/shelf.html:54 +#: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 +msgid "All books" +msgstr "Усі книги" + +#: bookwyrm/templates/shelf/shelf.html:112 +#, python-format +msgid "%(formatted_count)s book" +msgid_plural "%(formatted_count)s books" +msgstr[0] "%(formatted_count)s книга" +msgstr[1] "%(formatted_count)s книги" +msgstr[2] "%(formatted_count)s книг" +msgstr[3] "%(formatted_count)s книг" + +#: bookwyrm/templates/shelf/shelf.html:119 +#, python-format +msgid "(showing %(start)s-%(end)s)" +msgstr "(показуються %(start)s-%(end)s)" + +#: bookwyrm/templates/shelf/shelf.html:131 +msgid "Edit shelf" +msgstr "Редагувати полицю" + +#: bookwyrm/templates/shelf/shelf.html:139 +msgid "Delete shelf" +msgstr "Видалити полицю" + +#: bookwyrm/templates/shelf/shelf.html:167 +#: bookwyrm/templates/shelf/shelf.html:193 +msgid "Shelved" +msgstr "Додано до полиці" + +#: bookwyrm/templates/shelf/shelf.html:168 +#: bookwyrm/templates/shelf/shelf.html:196 +msgid "Started" +msgstr "Почато" + +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 +msgid "Finished" +msgstr "Прочитано" + +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 +msgid "Until" +msgstr "До" + +#: bookwyrm/templates/shelf/shelf.html:225 +msgid "This shelf is empty." +msgstr "Ця полиця порожня." + +#: bookwyrm/templates/snippets/add_to_group_button.html:16 +msgid "Invite" +msgstr "Запросити" + +#: bookwyrm/templates/snippets/add_to_group_button.html:25 +msgid "Uninvite" +msgstr "Скасувати запрошення" + +#: bookwyrm/templates/snippets/add_to_group_button.html:29 +#, python-format +msgid "Remove @%(username)s" +msgstr "Виключити @%(username)s" + +#: bookwyrm/templates/snippets/announcement.html:28 +#, python-format +msgid "Posted by %(username)s" +msgstr "Опубліковано %(username)s" + +#: bookwyrm/templates/snippets/authors.html:22 +#: bookwyrm/templates/snippets/trimmed_list.html:14 +#, python-format +msgid "and %(remainder_count_display)s other" +msgid_plural "and %(remainder_count_display)s others" +msgstr[0] "та %(remainder_count_display)s інший" +msgstr[1] "та %(remainder_count_display)s інших" +msgstr[2] "та %(remainder_count_display)s інших" +msgstr[3] "та %(remainder_count_display)s інших" + +#: bookwyrm/templates/snippets/book_cover.html:63 +msgid "No cover" +msgstr "Немає обкладинки" + +#: bookwyrm/templates/snippets/book_titleby.html:11 +#, python-format +msgid "%(title)s by" +msgstr "%(title)s від" + +#: bookwyrm/templates/snippets/boost_button.html:20 +#: bookwyrm/templates/snippets/boost_button.html:21 +msgid "Boost" +msgstr "Поширити" + +#: bookwyrm/templates/snippets/boost_button.html:33 +#: bookwyrm/templates/snippets/boost_button.html:34 +msgid "Un-boost" +msgstr "Скасувати поширення" + +#: bookwyrm/templates/snippets/create_status.html:36 +msgid "Quote" +msgstr "Процитувати" + +#: bookwyrm/templates/snippets/create_status/comment.html:15 +msgid "Some thoughts on the book" +msgstr "Деякі думки про книгу" + +#: bookwyrm/templates/snippets/create_status/comment.html:27 +#: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:18 +msgid "Progress:" +msgstr "Прогрес:" + +#: bookwyrm/templates/snippets/create_status/comment.html:53 +#: bookwyrm/templates/snippets/progress_field.html:18 +msgid "pages" +msgstr "сторінок" + +#: bookwyrm/templates/snippets/create_status/comment.html:59 +#: bookwyrm/templates/snippets/progress_field.html:23 +msgid "percent" +msgstr "процентів" + +#: bookwyrm/templates/snippets/create_status/comment.html:66 +#, python-format +msgid "of %(pages)s pages" +msgstr "з %(pages)s сторінок" + +#: bookwyrm/templates/snippets/create_status/content_field.html:18 +#: bookwyrm/templates/snippets/status/layout.html:34 +#: bookwyrm/templates/snippets/status/layout.html:53 +#: bookwyrm/templates/snippets/status/layout.html:54 +msgid "Reply" +msgstr "Відповісти" + +#: bookwyrm/templates/snippets/create_status/content_field.html:18 +msgid "Content" +msgstr "Зміст" + +#: bookwyrm/templates/snippets/create_status/content_warning_field.html:9 +msgid "Include spoiler alert" +msgstr "Містить спойлер!" + +#: bookwyrm/templates/snippets/create_status/content_warning_field.html:18 +msgid "Spoilers/content warnings:" +msgstr "Попередження про спойлери або зміст:" + +#: bookwyrm/templates/snippets/create_status/content_warning_field.html:27 +msgid "Spoilers ahead!" +msgstr "Увага, спойлери!" + +#: bookwyrm/templates/snippets/create_status/layout.html:45 +#: bookwyrm/templates/snippets/reading_modals/form.html:7 +msgid "Comment:" +msgstr "Коментар:" + +#: bookwyrm/templates/snippets/create_status/post_options_block.html:19 +msgid "Update" +msgstr "" + +#: bookwyrm/templates/snippets/create_status/post_options_block.html:21 +msgid "Post" +msgstr "Опублікувати" + +#: bookwyrm/templates/snippets/create_status/quotation.html:16 +msgid "Quote:" +msgstr "Цитата:" + +#: bookwyrm/templates/snippets/create_status/quotation.html:24 +#, python-format +msgid "An excerpt from '%(book_title)s'" +msgstr "Уривок з '%(book_title)s'" + +#: bookwyrm/templates/snippets/create_status/quotation.html:31 +msgid "Position:" +msgstr "Місце у книзі:" + +#: bookwyrm/templates/snippets/create_status/quotation.html:44 +msgid "On page:" +msgstr "Сторінка:" + +#: bookwyrm/templates/snippets/create_status/quotation.html:50 +msgid "At percent:" +msgstr "Відсоток:" + +#: bookwyrm/templates/snippets/create_status/quotation.html:69 +msgid "to" +msgstr "по" + +#: bookwyrm/templates/snippets/create_status/review.html:24 +#, python-format +msgid "Your review of '%(book_title)s'" +msgstr "Ваша рецензія на '%(book_title)s'" + +#: bookwyrm/templates/snippets/create_status/review.html:39 +msgid "Review:" +msgstr "Рецензія:" + +#: bookwyrm/templates/snippets/fav_button.html:16 +#: bookwyrm/templates/snippets/fav_button.html:17 +msgid "Like" +msgstr "Подобається" + +#: bookwyrm/templates/snippets/fav_button.html:30 +#: bookwyrm/templates/snippets/fav_button.html:31 +msgid "Un-like" +msgstr "Прибрати лайк" + +#: bookwyrm/templates/snippets/filters_panel/filters_panel.html:5 +msgid "Filters" +msgstr "Фільтри" + +#: bookwyrm/templates/snippets/filters_panel/filters_panel.html:10 +#: bookwyrm/templates/snippets/filters_panel/filters_panel.html:17 +msgid "Filters are applied" +msgstr "Застосовано фільтри" + +#: bookwyrm/templates/snippets/filters_panel/filters_panel.html:20 +msgid "Clear filters" +msgstr "Скинути фільтри" + +#: bookwyrm/templates/snippets/filters_panel/filters_panel.html:43 +msgid "Apply filters" +msgstr "Застосувати фільтри" + +#: bookwyrm/templates/snippets/follow_button.html:20 +#, python-format +msgid "Follow @%(username)s" +msgstr "Підписатися на @%(username)s" + +#: bookwyrm/templates/snippets/follow_button.html:22 +msgid "Follow" +msgstr "Підписатися" + +#: bookwyrm/templates/snippets/follow_button.html:31 +msgid "Undo follow request" +msgstr "Скасувати запит на підписку" + +#: bookwyrm/templates/snippets/follow_button.html:36 +#, python-format +msgid "Unfollow @%(username)s" +msgstr "Відписатися від @%(username)s" + +#: bookwyrm/templates/snippets/follow_button.html:38 +msgid "Unfollow" +msgstr "Відписатися" + +#: bookwyrm/templates/snippets/follow_request_buttons.html:7 +#: bookwyrm/templates/snippets/join_invitation_buttons.html:9 +msgid "Accept" +msgstr "Прийняти" + +#: bookwyrm/templates/snippets/footer.html:16 +msgid "Documentation" +msgstr "Документація" + +#: bookwyrm/templates/snippets/footer.html:42 +#, python-format +msgid "Support %(site_name)s on %(support_title)s" +msgstr "Підтримати %(site_name)s на %(support_title)s" + +#: bookwyrm/templates/snippets/footer.html:49 +msgid "BookWyrm's source code is freely available. You can contribute or report issues on GitHub." +msgstr "Код BookWyrm знаходиться у вільному доступі. Ви можете долучитися до розробки або повідомити про проблеми на GitHub." + +#: bookwyrm/templates/snippets/form_rate_stars.html:20 +#: bookwyrm/templates/snippets/stars.html:23 +msgid "No rating" +msgstr "Без оцінки" + +#: bookwyrm/templates/snippets/form_rate_stars.html:28 +#, python-format +msgid "%(half_rating)s star" +msgid_plural "%(half_rating)s stars" +msgstr[0] "%(half_rating)s зірка" +msgstr[1] "%(half_rating)s зірок" +msgstr[2] "%(half_rating)s зірок" +msgstr[3] "%(half_rating)s зірок" + +#: bookwyrm/templates/snippets/form_rate_stars.html:64 +#: bookwyrm/templates/snippets/stars.html:7 +#, python-format +msgid "%(rating)s star" +msgid_plural "%(rating)s stars" +msgstr[0] "%(rating)s зірка" +msgstr[1] "%(rating)s зірок" +msgstr[2] "%(rating)s зірок" +msgstr[3] "%(rating)s зірок" + +#: bookwyrm/templates/snippets/generated_status/goal.html:2 +#, 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] "поставив(-ла) ціль прочитати %(counter)s книгу в %(year)s" +msgstr[1] "поставив(-ла) ціль прочитати %(counter)s книг в %(year)s" +msgstr[2] "поставив(-ла) ціль прочитати %(counter)s книг в %(year)s" +msgstr[3] "поставив(-ла) ціль прочитати %(counter)s книг в %(year)s" + +#: bookwyrm/templates/snippets/generated_status/rating.html:3 +#, python-format +msgid "rated %(title)s: %(display_rating)s star" +msgid_plural "rated %(title)s: %(display_rating)s stars" +msgstr[0] "оцінив(-ла) %(title)s: %(display_rating)s зірка" +msgstr[1] "оцінив(-ла) %(title)s: %(display_rating)s зірки" +msgstr[2] "оцінив(-ла) %(title)s: %(display_rating)s зірок" +msgstr[3] "оцінив(-ла) %(title)s: %(display_rating)s зірок" + +#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:4 +#, python-format +msgid "Review of \"%(book_title)s\" (%(display_rating)s star): %(review_title)s" +msgid_plural "Review of \"%(book_title)s\" (%(display_rating)s stars): %(review_title)s" +msgstr[0] "Рецензія на \"%(book_title)s\" (%(display_rating)s зірка): %(review_title)s" +msgstr[1] "Рецензія на \"%(book_title)s\" (%(display_rating)s зірки): %(review_title)s" +msgstr[2] "Рецензія на \"%(book_title)s\" (%(display_rating)s зірок): %(review_title)s" +msgstr[3] "Рецензія на \"%(book_title)s\" (%(display_rating)s зірок): %(review_title)s" + +#: bookwyrm/templates/snippets/generated_status/review_pure_name.html:12 +#, python-format +msgid "Review of \"%(book_title)s\": %(review_title)s" +msgstr "Рецензія на \"%(book_title)s\": %(review_title)s" + +#: bookwyrm/templates/snippets/goal_form.html:4 +#, 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 "Встановіть мету, скільки книг ви хочете прочитати в %(year)s та відстежуйте прогрес протягом року." + +#: bookwyrm/templates/snippets/goal_form.html:16 +msgid "Reading goal:" +msgstr "Мета читання:" + +#: bookwyrm/templates/snippets/goal_form.html:21 +msgid "books" +msgstr "книг" + +#: bookwyrm/templates/snippets/goal_form.html:26 +msgid "Goal privacy:" +msgstr "Приватність мети:" + +#: bookwyrm/templates/snippets/goal_form.html:33 +#: bookwyrm/templates/snippets/reading_modals/layout.html:13 +msgid "Post to feed" +msgstr "Опублікувати у стрічці" + +#: bookwyrm/templates/snippets/goal_form.html:37 +msgid "Set goal" +msgstr "Встановити мету" + +#: bookwyrm/templates/snippets/goal_progress.html:7 +msgctxt "Goal successfully completed" +msgid "Success!" +msgstr "Успіх!" + +#: bookwyrm/templates/snippets/goal_progress.html:9 +#, python-format +msgid "%(percent)s%% complete!" +msgstr "%(percent)s%% завершено!" + +#: bookwyrm/templates/snippets/goal_progress.html:12 +#, python-format +msgid "You've read %(read_count)s of %(goal_count)s books." +msgstr "Ви прочитали %(read_count)s з %(goal_count)s книг." + +#: bookwyrm/templates/snippets/goal_progress.html:14 +#, python-format +msgid "%(username)s has read %(read_count)s of %(goal_count)s books." +msgstr "%(username)s прочитав(-ла) %(read_count)s з %(goal_count)s книг." + +#: bookwyrm/templates/snippets/move_user_buttons.html:10 +msgid "Follow at new account" +msgstr "" + +#: bookwyrm/templates/snippets/page_text.html:8 +#, python-format +msgid "page %(page)s of %(total_pages)s" +msgstr "сторінка %(page)s з %(total_pages)s" + +#: bookwyrm/templates/snippets/page_text.html:14 +#, python-format +msgid "page %(page)s" +msgstr "сторінка %(page)s" + +#: bookwyrm/templates/snippets/pagination.html:13 +msgid "Newer" +msgstr "Новіші" + +#: bookwyrm/templates/snippets/pagination.html:15 +msgid "Previous" +msgstr "Попередня" + +#: bookwyrm/templates/snippets/pagination.html:28 +msgid "Older" +msgstr "Давніші" + +#: bookwyrm/templates/snippets/privacy-icons.html:12 +msgid "Followers-only" +msgstr "Лише для підписників" + +#: bookwyrm/templates/snippets/rate_action.html:5 +msgid "Leave a rating" +msgstr "Поставити рейтинг" + +#: bookwyrm/templates/snippets/rate_action.html:20 +msgid "Rate" +msgstr "Оцінити" + +#: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:6 +#, python-format +msgid "Finish \"%(book_title)s\"" +msgstr "Відмітити \"%(book_title)s\" як прочитане" + +#: bookwyrm/templates/snippets/reading_modals/form.html:9 +msgid "(Optional)" +msgstr "(Необов'язково)" + +#: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:6 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:61 +msgid "Update progress" +msgstr "Оновити прогрес" + +#: bookwyrm/templates/snippets/reading_modals/start_reading_modal.html:6 +#, python-format +msgid "Start \"%(book_title)s\"" +msgstr "Почати читати \"%(book_title)s\"" + +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:6 +#, python-format +msgid "Stop Reading \"%(book_title)s\"" +msgstr "Припинити Читати \"%(book_title)s\"" + +#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:32 +#: bookwyrm/templates/snippets/shelf_selector.html:53 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:21 +msgid "Stopped reading" +msgstr "Читання зупинено" + +#: bookwyrm/templates/snippets/reading_modals/want_to_read_modal.html:6 +#, python-format +msgid "Want to Read \"%(book_title)s\"" +msgstr "Хочу Прочитати \"%(book_title)s\"" + +#: bookwyrm/templates/snippets/register_form.html:18 +msgid "Choose wisely! Your username cannot be changed." +msgstr "Обирайте уважно! Ім'я користувача не може бути змінено потім." + +#: bookwyrm/templates/snippets/register_form.html:66 +msgid "Sign Up" +msgstr "Реєстрація" + +#: bookwyrm/templates/snippets/report_modal.html:8 +#, python-format +msgid "Report @%(username)s's status" +msgstr "Поскаржитись на статус @%(username)s" + +#: bookwyrm/templates/snippets/report_modal.html:10 +#, python-format +msgid "Report %(domain)s link" +msgstr "Поскаржитись на %(domain)s" + +#: bookwyrm/templates/snippets/report_modal.html:12 +#, python-format +msgid "Report @%(username)s" +msgstr "Поскаржитись на @%(username)s" + +#: bookwyrm/templates/snippets/report_modal.html:34 +#, python-format +msgid "This report will be sent to %(site_name)s's moderators for review." +msgstr "Ця скарга буде надіслана модераторам %(site_name)s на перевірку." + +#: bookwyrm/templates/snippets/report_modal.html:36 +msgid "Links from this domain will be removed until your report has been reviewed." +msgstr "Посилання на цей домен будуть видалені, поки ваша скарга не буде розглянута." + +#: bookwyrm/templates/snippets/report_modal.html:41 +msgid "More info about this report:" +msgstr "Опишіть детальніше вашу скаргу:" + +#: bookwyrm/templates/snippets/shelf_selector.html:7 +msgid "Move book" +msgstr "Перемістити книгу" + +#: bookwyrm/templates/snippets/shelf_selector.html:38 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:17 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:33 +msgid "Start reading" +msgstr "Почати читати" + +#: bookwyrm/templates/snippets/shelf_selector.html:60 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:38 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:55 +msgid "Want to read" +msgstr "Хочу прочитати" + +#: bookwyrm/templates/snippets/shelf_selector.html:81 +#: bookwyrm/templates/snippets/shelf_selector.html:95 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:73 +#, python-format +msgid "Remove from %(name)s" +msgstr "Видалити з %(name)s" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown.html:5 +msgid "More shelves" +msgstr "Більше полиць" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:48 +msgid "Stop reading" +msgstr "Припинити читання" + +#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:40 +msgid "Finish reading" +msgstr "Відмітити прочитаним" + +#: bookwyrm/templates/snippets/status/content_status.html:69 +msgid "Show status" +msgstr "Переглянути статус" + +#: bookwyrm/templates/snippets/status/content_status.html:91 +#, python-format +msgid "(Page %(page)s" +msgstr "(Сторінка %(page)s" + +#: bookwyrm/templates/snippets/status/content_status.html:91 +#, python-format +msgid "%(endpage)s" +msgstr "%(endpage)s" + +#: bookwyrm/templates/snippets/status/content_status.html:93 +#, python-format +msgid "(%(percent)s%%" +msgstr "(%(percent)s%%" + +#: bookwyrm/templates/snippets/status/content_status.html:93 +#, python-format +msgid " - %(endpercent)s%%" +msgstr " - %(endpercent)s%%" + +#: bookwyrm/templates/snippets/status/content_status.html:116 +msgid "Open image in new window" +msgstr "Відкрити зображення в новому вікні" + +#: bookwyrm/templates/snippets/status/content_status.html:137 +msgid "Hide status" +msgstr "Приховати статус" + +#: bookwyrm/templates/snippets/status/header.html:45 +#, python-format +msgid "edited %(date)s" +msgstr "відредаговано %(date)s" + +#: bookwyrm/templates/snippets/status/headers/comment.html:8 +#, python-format +msgid "commented on %(book)s by %(author_name)s" +msgstr "прокоментував(-ла) %(book)s від %(author_name)s" + +#: bookwyrm/templates/snippets/status/headers/comment.html:15 +#, python-format +msgid "commented on %(book)s" +msgstr "прокоментував(-ла) %(book)s" + +#: bookwyrm/templates/snippets/status/headers/note.html:8 +#, python-format +msgid "replied to %(username)s's status" +msgstr "відповів(-ла) на статус від %(username)s" + +#: bookwyrm/templates/snippets/status/headers/quotation.html:8 +#, python-format +msgid "quoted %(book)s by %(author_name)s" +msgstr "процитував(-ла) %(book)s від %(author_name)s" + +#: bookwyrm/templates/snippets/status/headers/quotation.html:15 +#, python-format +msgid "quoted %(book)s" +msgstr "процитував(-ла) %(book)s" + +#: bookwyrm/templates/snippets/status/headers/rating.html:3 +#, python-format +msgid "rated %(book)s:" +msgstr "оцінив(-ла) %(book)s:" + +#: bookwyrm/templates/snippets/status/headers/read.html:10 +#, python-format +msgid "finished reading %(book)s by %(author_name)s" +msgstr "прочитав(-ла) %(book)s від %(author_name)s" + +#: bookwyrm/templates/snippets/status/headers/read.html:17 +#, python-format +msgid "finished reading %(book)s" +msgstr "прочитав(-ла) %(book)s" + +#: bookwyrm/templates/snippets/status/headers/reading.html:10 +#, python-format +msgid "started reading %(book)s by %(author_name)s" +msgstr "почав(-ла) читати %(book)s від %(author_name)s" + +#: bookwyrm/templates/snippets/status/headers/reading.html:17 +#, python-format +msgid "started reading %(book)s" +msgstr "почав(-ла) читати %(book)s" + +#: bookwyrm/templates/snippets/status/headers/review.html:8 +#, python-format +msgid "reviewed %(book)s by %(author_name)s" +msgstr "залишив(-ла) рецензію на %(book)s від %(author_name)s" + +#: bookwyrm/templates/snippets/status/headers/review.html:15 +#, python-format +msgid "reviewed %(book)s" +msgstr "залишив(-ла) рецензію на %(book)s" + +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:10 +#, python-format +msgid "stopped reading %(book)s by %(author_name)s" +msgstr "припинив(-ла) читати %(book)s від %(author_name)s" + +#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:17 +#, python-format +msgid "stopped reading %(book)s" +msgstr "припинив(-ла) читати %(book)s" + +#: bookwyrm/templates/snippets/status/headers/to_read.html:10 +#, python-format +msgid "wants to read %(book)s by %(author_name)s" +msgstr "хоче прочитати %(book)s від %(author_name)s" + +#: bookwyrm/templates/snippets/status/headers/to_read.html:17 +#, python-format +msgid "wants to read %(book)s" +msgstr "хоче прочитати %(book)s" + +#: bookwyrm/templates/snippets/status/layout.html:24 +#: bookwyrm/templates/snippets/status/status_options.html:17 +msgid "Delete status" +msgstr "Видалити статус" + +#: bookwyrm/templates/snippets/status/layout.html:57 +#: bookwyrm/templates/snippets/status/layout.html:58 +msgid "Boost status" +msgstr "Поширити статус" + +#: bookwyrm/templates/snippets/status/layout.html:61 +#: bookwyrm/templates/snippets/status/layout.html:62 +msgid "Like status" +msgstr "Лайкнути статус" + +#: bookwyrm/templates/snippets/status/status.html:10 +msgid "boosted" +msgstr "поширив(-ла)" + +#: bookwyrm/templates/snippets/status/status_options.html:7 +#: bookwyrm/templates/snippets/user_options.html:7 +msgid "More options" +msgstr "Інші опції" + +#: bookwyrm/templates/snippets/switch_edition_button.html:5 +msgid "Switch to this edition" +msgstr "Переключити на це видання" + +#: bookwyrm/templates/snippets/table-sort-header.html:6 +msgid "Sorted ascending" +msgstr "Відсортовано за зростанням" + +#: bookwyrm/templates/snippets/table-sort-header.html:10 +msgid "Sorted descending" +msgstr "Відсортовано за спаданням" + +#: bookwyrm/templates/snippets/trimmed_text.html:17 +msgid "Show more" +msgstr "Розгорнути" + +#: bookwyrm/templates/snippets/trimmed_text.html:35 +msgid "Show less" +msgstr "Згорнути" + +#: bookwyrm/templates/two_factor_auth/two_factor_login.html:29 +msgid "2FA check" +msgstr "Двофакторна аутентифікація" + +#: bookwyrm/templates/two_factor_auth/two_factor_login.html:37 +msgid "Enter the code from your authenticator app:" +msgstr "Введіть код з вашого додатку для аутентифікації:" + +#: bookwyrm/templates/two_factor_auth/two_factor_login.html:41 +msgid "Confirm and Log In" +msgstr "Підтвердити та увійти" + +#: bookwyrm/templates/two_factor_auth/two_factor_prompt.html:29 +msgid "2FA is available" +msgstr "Двофакторна аутентифікація доступна" + +#: bookwyrm/templates/two_factor_auth/two_factor_prompt.html:34 +msgid "You can secure your account by setting up two factor authentication in your user preferences. This will require a one-time code from your phone in addition to your password each time you log in." +msgstr "Ви можете захистити свій обліковий запис, увімкнувши двофакторну аутентифікацію в налаштуваннях. Після цього, при кожному вході в систему, треба буде вводити одноразовий код з вашого телефону разом з паролем." + +#: bookwyrm/templates/user/books_header.html:9 +#, python-format +msgid "%(username)s's books" +msgstr "книги %(username)s" + +#: bookwyrm/templates/user/goal.html:12 +#, python-format +msgid "%(year)s Reading Progress" +msgstr "Прогрес читання за %(year)s" + +#: bookwyrm/templates/user/goal.html:16 +msgid "Edit Goal" +msgstr "Змінити Мету" + +#: bookwyrm/templates/user/goal.html:32 +#, python-format +msgid "%(name)s hasn't set a reading goal for %(year)s." +msgstr "%(name)s не встановив(-ла) ціль для читання на %(year)s." + +#: bookwyrm/templates/user/goal.html:44 +#, python-format +msgid "Your %(year)s Books" +msgstr "Ваші книги за %(year)s" + +#: bookwyrm/templates/user/goal.html:46 +#, python-format +msgid "%(username)s's %(year)s Books" +msgstr "Книги користувача %(username)s за %(year)s" + +#: bookwyrm/templates/user/groups.html:14 +msgid "Your Groups" +msgstr "Ваші Групи" + +#: bookwyrm/templates/user/groups.html:16 +#, python-format +msgid "Groups: %(username)s" +msgstr "Групи: %(username)s" + +#: bookwyrm/templates/user/layout.html:50 +msgid "has moved to" +msgstr "" + +#: bookwyrm/templates/user/layout.html:64 +msgid "Follow Requests" +msgstr "Запити на підписку" + +#: bookwyrm/templates/user/layout.html:88 +#: bookwyrm/templates/user/reviews_comments.html:6 +#: bookwyrm/templates/user/reviews_comments.html:12 +msgid "Reviews and Comments" +msgstr "Відгуки та Коментарі" + +#: bookwyrm/templates/user/lists.html:16 +#, python-format +msgid "Lists: %(username)s" +msgstr "Списки: %(username)s" + +#: bookwyrm/templates/user/lists.html:22 bookwyrm/templates/user/lists.html:34 +msgid "Create list" +msgstr "Створити список" + +#: bookwyrm/templates/user/moved.html:25 +#: bookwyrm/templates/user/user_preview.html:22 +#, python-format +msgid "Joined %(date)s" +msgstr "Приєднався %(date)s" + +#: bookwyrm/templates/user/relationships/followers.html:31 +#, python-format +msgid "%(username)s has no followers" +msgstr "%(username)s не має підписників" + +#: bookwyrm/templates/user/relationships/following.html:6 +#: bookwyrm/templates/user/relationships/following.html:11 +#: bookwyrm/templates/user/relationships/following.html:21 +#: bookwyrm/templates/user/relationships/layout.html:15 +msgid "Following" +msgstr "Слідкує" + +#: bookwyrm/templates/user/relationships/following.html:30 +#, python-format +msgid "%(username)s isn't following any users" +msgstr "%(username)s не стежить за жодним користувачем" + +#: bookwyrm/templates/user/reviews_comments.html:26 +msgid "No reviews or comments yet!" +msgstr "Жодних відгуків або коментарів!" + +#: bookwyrm/templates/user/user.html:20 +msgid "Edit profile" +msgstr "Редагувати профіль" + +#: bookwyrm/templates/user/user.html:42 +#, python-format +msgid "View all %(size)s" +msgstr "Переглянути всі %(size)s" + +#: bookwyrm/templates/user/user.html:61 +msgid "View all books" +msgstr "Переглянути всі книги" + +#: bookwyrm/templates/user/user.html:69 +#, python-format +msgid "%(current_year)s Reading Goal" +msgstr "Мета читання на %(current_year)s" + +#: bookwyrm/templates/user/user.html:76 +msgid "User Activity" +msgstr "Діяльність користувача" + +#: bookwyrm/templates/user/user.html:82 +msgid "Show RSS Options" +msgstr "Показати опції RSS" + +#: bookwyrm/templates/user/user.html:88 +msgid "RSS feed" +msgstr "RSS-стрічка" + +#: bookwyrm/templates/user/user.html:104 +msgid "Complete feed" +msgstr "Повна стрічка" + +#: bookwyrm/templates/user/user.html:109 +msgid "Reviews only" +msgstr "Тільки рецензії" + +#: bookwyrm/templates/user/user.html:114 +msgid "Quotes only" +msgstr "Тільки цитати" + +#: bookwyrm/templates/user/user.html:119 +msgid "Comments only" +msgstr "Тільки коментарі" + +#: bookwyrm/templates/user/user.html:135 +msgid "No activities yet!" +msgstr "Жодної активності наразі!" + +#: bookwyrm/templates/user/user_preview.html:26 +#, python-format +msgid "%(display_count)s follower" +msgid_plural "%(display_count)s followers" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: bookwyrm/templates/user/user_preview.html:31 +#, python-format +msgid "%(counter)s following" +msgstr "слідкує за %(counter)s " + +#: bookwyrm/templates/user/user_preview.html:45 +#, python-format +msgid "%(mutuals_display)s follower you follow" +msgid_plural "%(mutuals_display)s followers you follow" +msgstr[0] "%(mutuals_display)s підписник, за яким ви слідкуєте" +msgstr[1] "%(mutuals_display)s підписників, за якими ви слідкуєте" +msgstr[2] "%(mutuals_display)s підписників, за якими ви слідкуєте" +msgstr[3] "%(mutuals_display)s підписників, за якими ви слідкуєте" + +#: bookwyrm/templates/user/user_preview.html:49 +msgid "No followers you follow" +msgstr "Немає підписників, за якими ви слідкуєте" + +#: bookwyrm/templates/user_menu.html:7 +msgid "View profile and more" +msgstr "Перегляд профілю та багато іншого" + +#: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:28 +msgid "File exceeds maximum size: 10MB" +msgstr "Файл перевищує максимальний розмір: 10 Мб" + +#: bookwyrm/templatetags/list_page_tags.py:14 +#, python-format +msgid "Book List: %(name)s" +msgstr "Список Книг: %(name)s" + +#: bookwyrm/templatetags/list_page_tags.py:22 +#, python-format +msgid "%(num)d book - by %(user)s" +msgid_plural "%(num)d books - by %(user)s" +msgstr[0] "%(num)d книга – від %(user)s" +msgstr[1] "%(num)d книги – від %(user)s" +msgstr[2] "%(num)d книг – від %(user)s" +msgstr[3] "%(num)d книг – від %(user)s" + +#: bookwyrm/templatetags/utilities.py:48 +#, python-format +msgid "%(title)s: %(subtitle)s" +msgstr "%(title)s: %(subtitle)s" + +#: bookwyrm/views/rss_feed.py:35 +#, python-brace-format +msgid "Status updates from {obj.display_name}" +msgstr "Оновлення статусу від {obj.display_name}" + +#: bookwyrm/views/rss_feed.py:80 +#, python-brace-format +msgid "Reviews from {obj.display_name}" +msgstr "Рецензії від {obj.display_name}" + +#: bookwyrm/views/rss_feed.py:122 +#, python-brace-format +msgid "Quotes from {obj.display_name}" +msgstr "Цитати додані {obj.display_name}" + +#: bookwyrm/views/rss_feed.py:164 +#, python-brace-format +msgid "Comments from {obj.display_name}" +msgstr "Коментарі від {obj.display_name}" + +#: bookwyrm/views/updates.py:45 +#, python-format +msgid "Load %(count)d unread status" +msgid_plural "Load %(count)d unread statuses" +msgstr[0] "Завантажено %(count)d непрочитаний статус" +msgstr[1] "Завантажено %(count)d непрочитаних статусів" +msgstr[2] "Завантажено %(count)d непрочитаних статусів" +msgstr[3] "Завантажено %(count)d непрочитаних статусів" + diff --git a/locale/zh_Hans/LC_MESSAGES/django.mo b/locale/zh_Hans/LC_MESSAGES/django.mo index 1d1227f8092b70c68bb692fb532759090142aa83..566e3c144ec509cf8408d2092449d3af7e01e5db 100644 GIT binary patch literal 94539 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 ByKw*j literal 44096 zcmchg2b@*axwp49YV0MkL_I(dF*Li5SP(2IC<M7qS`ptP!bO!t_JPsaueiR)7yTX%TZ}>4d z7+wbNg2Ui)*blx1kAU4Sh@y|fvtbHe3x~ie_umXp#{EM$0=@}PgM%(K|FMvwMblwd zxDG*`>}(sPaDw4}eYZ82BaUkKuv1Tj4?QO?Vjm zZ}<^-;H4IRIF$Q1cc1L;PeMJ{3({TDx$sbUq5EG655|2xRQrF%-IdNfRQ%7u!{H40 zQMd@630Fdu?{#=2{1sF^-h_JY9jNE_z0AsS6jV7*gv$36sC-X{ihluAx>rE8|9Gf= zdlnuIzXVh8M^N$KhH8&}23S5vK&5{Q>;k(&r85XB-gu~XnhcfyY^d@tgi3!Y>;hka z$HN~%#s7ozZMZ+~_n^wX&*fIWqoB&u1M0bRpu&ej<$F8Sb7P^}uNJDE9)L>!L8y2$ zpxWy(sQ9a)+Vy#;`Lqpce0>WlUe|$9G#8!;mEKpN{J#Z{g0H)O8&vt;boYBu?Yi$E ztN-y(YUQ+Oi&zlZ9F1FkS050(C>pvrMJR5>n$nkSb*r8feqT}MKdy9O%1``v%G`!9le zZWUxoM@_H~ddLQb!W3ILGoCsC#zEJIWsk?80Do+|Jy|M1T4}KK)L+(EpD&1vJ z^?n&D-)&I!_y#-#{s&Zl7NFAmGt~OI?-0u;1y!#zpz3=*RQ&!>>0RR-4%KeA!K>j& zsQNqy)ebMZ`#a7bLe>AL@KD$WRo{1^(m!yh)%#fZQQW7w`z)w*H+TyC zF;qMJ87jTML&e|c26G<I+cqv)H-9xduwUZ-h$c+wc?c zS5WEv-FeWB){e(PmE%;XdUl6upR?gn@B(-=yauX1w?oyV3igIGp~|rtYMg!r>bd`b z>Zd=r`(5Wj!>zt2!W7}BL6!3=cm});s(w?U@_8C6ov%Q}`yN#L{T8a+ZBXs|CRF*~ zg{tTNBP`xgP|u$LRnBhkZrBUP~~_WO3pq5kAYu>YM0mD-3ImC`%v?6|C=q}Q=rOmK2$yWI|swFaNi7% zh0~$hVJTEORzda8I;e7Qhuz_;Q1RY&z6TY5|68m)he4J5RH*Xwgh#`E@RM*LRDXg! zRJ>0@wbPkU@vrsp&p_p0>F!#n_Gy4B-+T{W47=fe%EP|_`{MpNRKI)_rBCHN8LA%L zq57{6>;Z?tPr-YkZ-NY+=nkm(o1psV8&L6n0#&cyLDl20P|qE3 zm&wz^VQ<_Q!fW7Y=Zmlp?)Tv!*eh-G<{qf|KLvgQE`n@@qKzK@SEzP7e5B2<6QJ7X zRH$}44Qf2~fhxz@&i+vKyaFoT^-%S_1!_EwhKhebRDB+Tioe+XS3<>K>+bC^^gC3$ zd>^V@zjSviRQtT^+^^iyI}$3N6Jb}_&Hb;0k{83E>T@&f0dI$jKiN44YFsUZ>W42v z_3tLAa=hx{zkq7TKS9Z(eJZS;AA{?U%9hkP&bQ?ir9F7`+a)j+{5j=0PRA5BGGadA0v&J1^=7 zl}{Qf-SMzHoC=lx8mRH~52*edJjUeK?NH^O0o5N1oln6W?lln65~V6F`~j$XOoeKf z`B3>Tho{0hquQ40yra)^FwTBe*N!Pl#7yJ@beqHXd`uBu-?hbhVKFm|7^==uRspmGqL*Q%f z{w36S{|oE^56#;;dk#DYcLh{^7r~R@YIr#OD(nkigGztjI+H&qL56H}0o3?g3cJCt zLCJ|$cmETH`CM<~=St^oP;x8>KM5P*DR2W+`F;e?hJS}-9rYb&eA@Z(@z#$sq1y2` z@LqTkf3AQV;HB_y@OW4@!Swdw@HE^r;TiBnsQi8j)n5lN>5hdTg-5^?RDbk?2gCEB z+G&9MU+=uxdAqX$s=vm%JMX*?>iLOKa;B$~WWgEbNVY98@`1K$ZKa9^UGF)A=q`dEbX!;NhRMe(ML7&tRzX4|DgYp~`iq^hAHE0sz;h;=oG6FNZ;Ep^RQcvPpK`8;%744Nzw7Rwxx47@ zx1suTp9d}7RN zdqCB%kGpSoRyfBxb5P}(09D^9?my4{7rXlzcp~BJ-2Xey*P)(kcK2J(e>x9+$ol^T zsC;_4`$Fds_rDXKM0gdv7*2z#*EgWj|2L@Tf9`B`|97C`?Kj!l;}EELM?;OfQ=!(Q zv*3R4VyN|N0Mv8WK*hhod58Otgd*W?K8#7eH2ta zr$Wj1)1dOZ2x@#>?Ys?Yp4EEzea@*+^_b`G)$ZN^HSfL&4}{-$|9^){zYVJ0-i2CE z_n&Ix{1~Y4^PtK(5FQAJyZctC_PN`chX>$(0A3Csgo^)lsB!u|cNd(0fGY2wq4GI! zn(-KC3M#y}yDx((=TPToJ-iaCJsyC{Zwgd;vpxKAcdv0aIll>&-jCh=JLjA5Bly1u zLwij3azUk^f?Ah*z~1misCW$?-U!uR3!uue3abBJg4e=tLZyGq4C6^q@w!2+Fa6*x zZ~*KM7kT&&cogpML6zfI?q7gv@3-9l+?keMf2jHmcHRQ@Tn1`hUf2|0&cs|FygKnPur61eMPbQ1v<)>bdSv^YdJID9l6kX9HBekGlI=sB&$C z2g9#HJ^w0{T>F*teRwGDPs}#p2E$|vRAFAHJ zfy)1n&Uc{d`@ZwYhb^6MQ1Q=pUItbEp-}722q<}XxBE|qia*Q47eSSG9Xt}g0rmXb z&c8#&-}ez8Pf+zZ87kg|P~n%kdnh~%_Xw!+k97aLq2}8?@RM*d{5X6TD*jiX#>o$$ z()~Hq^S^Wc-u>Tl{uL_U=uvBz!=Ro^LHYN9O7|RhUk=so*Sq^psQ6Xz7?^kWRH%4! z+`ZJ@E8#KtzwG|scK!fr9eEud1OE>Dz$4~axh{dq=LV?yd>Tq$x(l8T?}IAu(@^7Y zJ=FYaf*QX+gGa-+pyC}c-*_}sJDv*l+#u(59{y>ld^7M`SOxpSO;F`%_3;04{spT1 z|8V!w3oM@#oToX@c3uX16MraFKKHx-gU&{%axH;9;3}y8coi!DUqH2UGt~2M!yDn> zq3U_vLi7JDlzSvpJ7l4rd(izKaV~?B%g;ll_nQ0v3@U!n{ojSk|9yBIJm4`a-$~Aa z&aqJWKI(kZxyIQ9mF_p8=GW^``AC}zT$ihD!t!9<<|xk|6LD{9yk9Zq4GHy-Uhov^~;0Kxlqq9 zg(}x`?%ocS{&!(N_!{g1_gjn(1V06}-qk^ki&x+kumF!&_!5&FgP`1Z!As!;sD9WC zRiE!e<@0N(au(hFCn){z9jNmC)p_6(=03)mf+}}!=Vk6c9G-~(T~O_EzjLyOH$t`Z z5~%!FL$%9V=T@kEzXO&2>+b%&^Dj{8?!VOPc{o&hXF#QQE>wN`L(Tg^?yiPPw;rAV zAB0MO2~@kR^YE|3V{yOc{w?t1xZj5#gU2nibb3Lx?}bqL-3U|gR@f8X50&3asB*ms zPllVJ@_QXB|35;-i=H&Oa2OnpvkSZs*27Q3bubGLT5kP*FI4`kp!|2hGhpARjJHCC zPloF6rBL%`ExZQ420sf=e%k6a0cyO>g(}aNov%874#(i%3U7iptgv{iog18AhN{=A zup9iX`ya5<+Tm!Z_BjD6-az-i8LD4zha=!<=T_%YtLR(&M?tmc5~%o3L#+dApq~2$ zyaArM+Tu@winke_3BL+ezjvVeVc%ygz2l+$PlbbEFQ|6E$N3#+w=Y`1JODLLHbSlE z--SKlFW`ajz-Ntz!Gm!h>+VzB-5sjjecgQrJRA2Ics*R={(pe#r+1uIRA;gpNH>&J-i%u5xyCBIqnwh`W=gV zF7A(F|10K3+z(-Xf*FnZJ!Udyo+9&Gf&J^4(bzx1bJt`4Jp3~}0CP3|HMsAV9qRWL z%*Syr$2^A7?``-|!Zq)2#y%hO5!?)=s0Di+tic?Q-&*)3{Pg?2A-Wj%7YG}MxfJ_f zF>|nM{@st+i1`P8cj4Fh_d5Px#1t^oJiI&heX&0eHKr=ue`u$NUv>99;yr`WPh&3r z^}tf${_-0|It)tx5cVHp`eLs2ynjX50PK?8>oK+1ze9NE z-{bD_TW6YhuVBBz-RJVm0Do>YVUl_A?>YSc3v&nlH^E*WPvJknF8Q!O>__-Z*gpl2 z#^`)M`76iqQT*P8kHdX1L$LQE?(Nv0#9W5G9>%|Wuw06H1Czr44$Nxo{|1-C1L2ME zP0TjTcQIS=`!^_grQaWM?=WlhBwUSKKeCE`ggF~?h#dS*!@TL?a$n>Avg>yVw z-(T?emzdAH-(2_~m{0TkT+A()_dM)$=PgcQ3E^7X^}7x;9rIoMj)L#OTgm${sNdHy zKX?0L?1M4)5&jv>$?ksxe)?U7yA?B(u$SOc{APy``*Q_;=U@(ZzXxC!%nah|_f^8~ z$6VxY^R>TI@jn6o8!&fxz+n6i#XSS+_f^bv+=pX+k9`dMIh;uNvDi<=#J~T*?*}+u zg9qS$gok|_zc1i-6TAn%=i$c^&+UV~D}MS-bpMyl8P3<<;#vJ>!;cewC-#5GeyaPQ zi~9lmx5M-Bn}9hBGZgbPjDA0Ys0HEoY2q$(`v&J$!cW6&#(gDbAaNeVy$~}Jd-C@d z4(Wm4C+xF?odNs6vpU7g5+{e>A7CT=1`HDs{19^&&z*t)neg9ne*&{sX=3ynl1Q)8 z{kq_HBc_7z17S5RQ)GT=%s+$8{(Qmha}s_@>t9IoUef3RkH$Z@}$tznnN@ zv7ZO^jfH-FFd4Uhg|H($uEPGTKZ)OZ!j8dw2fwL2a}_3wS&6%dX~2A&@NP2r50oGF zYcRdBUk&xU4^ATdbC^-s7vcAR;0VmGFh2{i?9T(ZKYvs(9-(f$@oMF!_ z>vj0g@;I;K9)kT*_y+6?=Xlr=*!3HM*@C$obApGhg4bbE_(_L;0u%pwV!47mHpL$B zMdHrH+<>_g^LPBt!1Tf1haLvma?43J2h)UmJG)4u{`_V=#9T z=Uccl*!RPH8S@9+kH8Z#7ht9k=W|fM6__01eewGm_7v1_0p^@wL*B!8i1TZ>4)bHo zSmKR`Pv9T__QU?=g!@GgIGDH#@UMy^!ZY#vmb)(`>>;QFh8cu82y+SM1%Li-_;JiIObyR9!ZnzWVE??Q+12?z{GQwMu$px4fpzXz;JI&N z|36T_v$1C}Y0L|lPZEC(jDOF>7Fdq|C77o?d?9|n!<^1D`t^7JyK&!+`xwlHn5Xf7 z4C;4?A-Wm%B;IRqIIP2*k9`E}k2wm{#B;yJT!49>u+L)h`1i(~g5NoC4Ak#*cpe-M z4}?qI{{rI7!kxn;e}5wU70e?ZPhp?K{+on5j(@RRP9!b;x)A4&@KW5Ba0#Y6_D{i& z`SXk5Cvod{Az=e?UxNJ|%rCG%3!lU2Hy-y*#5oeizasXnIIfKSU;}Y(h1Ywe({O(V z`}Od@;s@bi+|!8nDyA0qD9n}kJ%pKn{WeVL*ZuVJY<*2#Cf75c8kMc8%8t+EqFs6B zci~%EGaBDf*<5wHuBRfz)?TUZr`M)OXY!;PNLW?6W^}###df@_>+9;%Rf-sApPG=Z zcgHTn^Sg|2XGLYcwkkd0gA&?ByiN($q^mQeGA5m`=~0);XX;YvR4$XQpth;e*>n|U z%Td1xnKX^ohaz^aX>BG~o~fZlx_3{NXRB+gGIg0Q#LK1YNQ0#Fb!jzn2e+CpKPH{a zRNOf-n;okL5mVV3RX3N)kI7Vx%j_mreizZ|D(kAKM_Gz=>qokaOzQKQTzeH$HQ7?b zEAdXDs&}e?IyEMj8Fg`2RkdzR&wSTQC_Eu|hOt9Qv!lpGZBz0Ib?DzWeTf<buIg-E=FZBB z-A9SbL=4a9M(^XRsK?H}!*bctxlBGEovyl%tIUiq)zzFmcN>x?=<3QkN>!DmIqR~i z`r3*#V*>vhGmMbxOie|mB2_txD5ER$bs8A-JC(}TW@>syyX*k(QMGYu<-Z?Do2gVsE1QNUP2aBzitd;Qc=U$bjg$$7ZOsV5`{FkNt=*H z@aPi_KrYsds?@rnfnJ`i$VlF%MrJZKNL(_eCUs*nsZ4dcvMQCXsL<34a-U`hQ^;mY zCTC+aT^>fbQm(438EXw8(H%x^Z91PHpUqXI##dHVkx40w5ZWP+kU$-hGc}SKn;x01 z4{6|ClNq0Eu((N?DcM|Is9a4ZQ;|(S{Gct}Gf5D!>X*i8!==aKF%%l{JjD zn(|CEpu9X&Tj$7B1Pcvbl^K_*A{A?0sP1y)1IOvvy2^1G#e$V}6QThXBv4V28c<(1 zCY#F>g5z>VP07Nucn!+r%X5{rmL_fuEDI^mjzbMmoc0pp2xD84(_%43s%R6%V@!;k zknEm4&K7$jlq-lx*7VAnQCWFZS5iOywPtm%l1z>UR8^+)8P%z(N+vEewy`zY@io4f zDWsYqD}5(KQ+ZHvB(gfRd}&BlWYTIsNn!e!$3O6iT&8!&N3!Fo20f6Wq3)^AFj|xl zzR6W38bH#R6EI*RKaM5sX}EYGki(Y6T($<@?V_8yqcG2|&IPCC10LbfK8 zDo@vFnp$(%>}6(_>MT~T6ne?snes5%!%R%q*5yAYuAroqqbft(Fy{6ks^f>Gw7Di1&kGx_(EvIjohyqjPnVAk ze^i~yYEAQeyW3}uRZ&qDE7Ui3uyhBVvD6uHfQgLuv_elumsc_XFR#oY05rt0S7lWI z{bfcvQ#S==DRwdF>lut;a_LWpwg?_0qy~lvw@k=Yr^aOSjIgj$r_nvn$Fk>gw9wn7X>!d|BVV-A}K`B8F>B?@LG$3BC4|y%rQg8KI-)QCrIy z84~V{g;BXohE7e7L!zfgR%QC6K7*dGal=|rm#Z9E&%i~qw$|Z^JVV$EYU*cPpwS4) z`jLImI{H>;$+kBskIVFx_!v*tT`#$+vhM2okt$xFP(GSkq9rw=vO0qVw&q~9nULy! zx_3SikR;)+)N|Hf9J!jZXkc2qfKin-6}FbBI+x0~JW~}79K)t2lN#phOEj>GO+jhg znk$c2`51z-`HcOohz6=nSWgFLYbxr?>q>4~LT+*mN}&Rz9J)t+jif7HwImgnk|eZ{ z;vJY$O;dxBW+k61w1$>kVYMi^;^j#>+Vi_u5jA+~CLu;Vr9zp3;%z+zirx6W8&}g(U*@M+) zOmJjUVO5hq4IEZygn+rU+?mxyi<~rfEI0;bwEfJn6S^;ij7ry6)uk9T{K>Jzlusaw zjCQ4t)M?DR-W9p@sJhrEZgY#L%@qQ+JPd(+9LE~pWB8ArD|xrsCROk=9W-}cRRZ5LFrLu%jPCv%a^Bf z^dbz?2TL^)FxDXypu>%nYDihK<@FK^p*wIPC$FPLuDG|BLPl4x?+brYY}iL44&t3y zSM%*K85P+TH4nAnYYqt$vxQA@h#Y2Wu(2f$Q!O}b(gtfh1%o3o27=oLjjY<6+Q~t( zkRiJ`DAAti?_*0l3n~`ezQybsRw9#g;cvWSD2vQl%khOaG-$e4AP*`enqmuaLc8US z%#ADQcH3lVzuw8oY9-y&;wWwvV*SeWxXSV@tHqU>p!_rKN;ZVCDcSjiA8S{&iSsMj zG(=aDVbIFL1|ofLWp#Zuvh}`9S?bJwLoX+sQjf}2qEV1aWld#%jAQ3Mw%}CP-E396 z#t*7vq)S=+Pza?<#oI%25*hU)k+||#vr)xxO6W*kmXw~c=Z&%YX>m>RGUck{r_D#2 zi^o9AE7^KyYpN!=GZZjn7eA@yN{NzOrWZDr zbf!blSg+1jXCnP+S2+d`zx+Bnvn(>p*=FJIsE~R^Wrg$%7w9IgcG|!83Q?spRgSL7 z<}$XG2rGJ@XmIdyRCqO6YJ4X!xH{}b1_wPhGNghU8P?O-LwZsi%KWw?FAp4UdXc+E zN-;H!H};XVa61D$oO>cU-G@n#V-ZfcwHZei$5Njvgu*ct2iJt1O$JMORXq)BCoq)E z-TB%qQzpmeIFqZx*JfBM=shLZbwOB`oWnD9I)7Cn9=)P{14^;leNFC{JS22W!HPIe zvKLXC8ayaCr3AG%bkJ+aC9k=uXHlF{Lu>=D)yy=6OBEw5dkQmoC~=sKDIs@hbWL_l zO$sUBD|Jnpt=8~r^j|#Dx%8)9(Fm^Vvg3m{Qw+tOLC?YbHTBiC8d6&IMrP~k*o20| zoJ{CGh2&8Ov=Ji$r}#nsm5w*5U3ES+eoSTgn3M(SiOSGdeWD?LtY22LF{_895gY@; zxq#VKzcA?uLm#f;l!WFhiT7BuZ{KQkKRvCZi;~0-E^Dqz?(D{rVisfLVj?$$Caf6oM8OR=(iUBkaR3UZ3L#CU|m& zgeK?52w4dpl%cwGRdzI6C8CtGbq;_16aqV2N2!mx;~{7?^UcxThuUFhkJ*!VyMf5=N^^`$p=z%)NEdbtD;vzn{qD zOFr~I>e_@%T^D&t^U=*0nrtU$IGaF#Aii^4YIW@#%nDZ?2C?RBh$L~7jBSbvnT+y# zy$<(W_@g9K6vXd1)~=AhPZGjVc4^kqu}AO;Cm>eXJ}QncR-taCp{c6us_ckdHr3>3 z?Q8jI6eP|(!%7zGZYdp;hL#DLDQaFjIp0HtrQY|$=PmtHAV_t+ zHB8z|8L*RlY<{{XiIT^K%2z}AXqSqxwJk}#or5YubhcMWjntq_4g0%j*q8}<_P13j zlpgMHHA$mkRq678-E>tnEL&S&#eomWbUb1oro$xtiPcJTAO=TC-B*aIz@-(?R)ErS zms}9S=4M#f!EieqG|Kzf_Lik0JarLi=57>AErwyP*g8(S zu3~vCq$4d6ws+9fz}S+yDO_KwJ3I)Rb_wN%uvsW6A0ecJmo1y|z9L+rw?_(xa=Qt$ z4M-f9*?5C40_|^EbmQ>h*1R`rd&eKG_cvyG)1NgWS1!6w&;dD4Hg@`>W(a%R*fE;T z0BM={v%%#K(@ygqre(?$oEsB&wgl>sL2^|0S~~ONwu%)&Npi)ib!tpytrF1{k(XNUOUE%OUL`aC%g`i+B8j_NmZjrSF%IZ3nRK` z2p6wPH_a96@C+vhl)~41bC$`Qqo33jxm;G&P-@aBBr!sj$8gogDm1~hItES;cDSR$ zaSh_tgiYA6*&8Rl!m^F9U>_ap&UXG;Hzt>@A3a8w&uRljSE=ekUb0BG(H%h{t$^fA z8~C}Y0`Q0rBZ8w!udW1}c3x()&8MHLQZB!pV~U5lMTI$LK-fcCtUcGUmFy<8DcLR`rAT{>QT5t_ zxq4knzjMDC$TgftAj56d^>TzlDua+Lp4=bj)l@WdxKKdWU2%h96WcZBI%Sbf8;Z#E z^3s8-yE$@og&l@B5W~p;zVvQLBUp2GV5ci)0&=NX{SS@`zY7bFuv*I&4n|{(j*)6z zbqa%~vZfp<&aq-hPjM}ud~hSR^kg_+)A7cn-HZ~Vb*^LylH)!damGP5 zd(3H#E@2v4)FZ`ur^R8AmJa+&KIomSPCDT&dHJ~^Ba2N%$c!hoNA>{oV=hQshwyqe zVy*9?Zm!H%au8M)-NJi%nr9j>JFg`jLwCER#L=`$M7LzB&|5Mwm3W6S-X*$43!$d5 z$)cc#T#9eF0r5e0OC_s1lQ$ieY(ZTvi$22~*TZ4Wk+2AIQdzr}6112~7J7eeyeG3a zpU;+8vgB2i24k$7^a%;Z=N2aG#*g8(zmhCrf+?F0m1uv86S>~fi&Q0~TOCtUs^ab> zjduW|({!djVK=QhsR;OL*p}OC93c%=OxXvmu9QRAfPGLNlJ}+LxtT@)kJ0UsQi+pw zY0S$_gvky!xZ7suMgzlHlarcvqRT-d9GB6Vn~(j4rQ8mQwVGD)5t=~30% zyI5?^v0V6&6J%w%wwIvPeSPNq%_JG^=18LgVLE ze@^mUpAYL^Ui*Oh+R&{GgG63&9c;tII|$0pHYC-&XTXAqWx$#fj?~-U0VIcb;4p-c>GJ!?XwS(BN!wphpd`TZJJ$x1g{jz_)7BQ-; zxZbrSeQ{S#L^J7X-XyI{kGzxH1c|wRocIy#65iqp0@kW?I^T>%dbbIM&pJuME1m4z z-A{!*exC8+65Y$*|8R-!-3a(_X(mQNSb(I2w10LNwxITf8cK2pmjojnlI8xGYlrYq zh@fb8$rAa8Y!R2%h~3a66^>+w?0#VBsI4LjfA{KvvN*0j8QRrXXNf(2|Gq@hndL5z zQ2%8K#I`aMAzBKP+NtQRx(LEw)^(A1A&N> zZrh9VHfhIAq^WvAmkl~2icIq3PNl5*6)PsBB-L<_@pT}Vc)*Vxs7p9Mi>=4}>O+9ugDZN+o4r)OK4rrQilw?zW0r^l(vPv z2QkRXQfKu$>&)K$&hC9yzf`||W#^vvseb$p(Tga(N958qc`je{lKZv1aFFUhy1wGR z+U$LoRdHCO_sB0HqJ5p(djx{2EHzZ`m9t6Xz4BE5Aw!7RhgZ$oqm`xZ8*}Ht>kb(@ zc<2@FMLx4nze5JvYtX$%aHL%pu73J*z+YLzVL4xS(!LkpG~&wM7qrJy;dnW*_Z4iH zweu)TUBIVDhYYLYwc)DXdY6qoa!qY;<}W_;qLf)L?sw54QL-~|NbwiC5+$wc*0es;fM@%+x@6Y8?aAiN%RHmU zA8OCL6fdDX?K!?(Q>9vWJXU;hd2z|~*0tLUYagfRt}eGc{!rUvlUvtqX<59s_~g_# z8XlxDv7l3V3u|W;r_F6{n!+1GCvx|?dqgjgcr>RhS*`V_mww>Zw_Jz5#N!>F{_F`w>)*XurO{;eC5p7}G zB1+l1?xCL1n_H(9XH9S3G_!5$?Bas;g&9w_ZrfITVr6mh2AuTvn_H(VQeoSpg{=+6 zdE1!|g(j`iXTVMS87MpWQj$E%-C3LnAkZ{O_EacC+CbJriznZYF#za#&5C}cfU5<9PU*64$%vZO!0;e zBPeB}sMAw+Sl%uxb~-$#nM`y^Dzq$L+q!l|%aapL?zBGjT%qydwuXs?Y3ps|wNHxa z4b9tj(5d9t_Tbuy#pj4P)h+!M2g>_R%PLUqnUYxVCuzpJO*2g=f8-{Z- ziKwvt;nuaAkciDqb1aqS9m|Uo*YQt*PG_!ms$pEW;*6Drhi8NqZ(Gtpi#Kn1vGwVR zDv%X|Vzq2r+qz?^%JIsJR-ODR~ObUZQedJQmGmjMijzrt!sC*EnM5uw7M|uxw5FRX>OtM zm8dX-^=3(o;)X4)uS|*zWg_8G@fGl-gV?OaEqaJbSjU$|Eo+yz z%$-tr__1~yt=+t3V;mIGNURssb9w{A#1U6F_^ErBd4GC%apSZwu7cPuu32HVqX#V& z@B7l2owx)ab-&5^4}8Fvnz`%zvBKnu4D8l*uM}T+ucNe)``uV9*^s7%QxCu+oWxU#&ykGRu<+ytb&G4 zK^k}H`kiCjVrT94Mgu8tX?yCi*0o<`9u}u>E=-*g6`JNzoz@*wi(6I{7BSk~d-l{q zQ)6Vq&4I$zx^4=?wk+DsX^s{oeNiT?BuKy69&8Av6EN_{$wm5Bp zwJIWv5u{1eu^AR_Y+JaYrD+Gcoa^v3TI<6LsQ?k9)@{!tpdGgAdRJ(QZ%1F$niSTK z<}FXN#Jst6SyX6Tz>JQh(#_j!LO&{Qn%uT%MPj%HcX95LmJLry2DdF-6S~uEt;=UM zZ)#$gqd7)N2jed2O%BA)itUA2O;PcY^@S;mynwcR`YLMG^_9y)Y=Q9b4h}0UsfGpE z>SYmZSuKTxx>A^l^IBfo((>G*mIpVt%f`Z#$%VC>SwDloE=*fo*wTbx6k@Rv9I@=N z5T7E!L7~wG;%9ux`G9EN3vBC}np$6esK`H1-bwbyOY}~vk(X`r#+Ee;3NOt6kk3WM zHBYltTOy_y_-e;eYlABCgo(x;Fe=VpU!1+RxL|5nIo!n_plL3nDl9?qM7K4#!_pQ9 zndpdv)@*5RS{?@#=4?U47IsW3%vun&Z9#CZU=)*I+v9UvR!>BJOnZ{i=qPO7Xe&hP z%dfP~o*w(gt*)4D4Ue;Cc}S^q6k_RmNb8P8%}t9tEXS79&H;tF3&T_i1z};Zy_4;N zI+TEkSbTIg4T{cIT=-=1rTM6B#Ya}O&6ASHCc_p2wuwkF?R(=mg(~ zO`JX>v})tSEpygKZ4;j^&VM>y+8^8AvZ9F+wya)HA1|0%T>f-aT)#;IWW@{YNTZgm z3tG36RKTv*UJvpaWbu4WN;;@YNW$j5JM7dUPQeu;i`HSj#7}DSc``ePcj(_zW_qNf zzMw^*F!v$bTt+2f?jOF!lQC2^`6(=FhBa~WX_rzRWs$okHWpTHi(0lkT71G6$PNxI z)l;Pz8W{Xx&rP$pZeU28BZ#Wli&ZrQ5_RsX_Ag^wUwH;e7d1CMg4lBf)cjlsqx7;X zQ|~gbTQ^Q7L$)i$B@KlYtM%XdM*kSLux<;BM`7+P72HmK9J}mzi$TzCv=>^;AGfY? z2WJMXZDCajhf8tbv?tUhA&?q|12;#f_j4@FRg@6}QfL(BMXl&t#&OUxI{NuToZvNY zncVJh8ELsC9h~qXxg(UU)`uRCSB@QsEN%5{J(8d(KDo896}79-I5YG%y3n+_CT!zn zWcuvF_J&yN565h=xGTLMW8ce>A5xg!K|Y7=te>6eSi|KKQOKt7aKoEhXGJ8_x{z&2 ztZGUd<;c!p4Ji#`ci+brRy|l;x`Y({XwdZTusMzEH%s}Mn!ICM%lwtdORb(^Ya!WH z2)>~!gN@d=T9@?4?I@*eFii~&FwHMkLxY#g1dHaURpy9Qo4tC{#v^@Uv9~r9R->VE z_Ni6SGTO8z6q}h8+)*LyS)!Jvm(Y_b23m}!9*)BF)ol%pt!q|=?L<(WU0JayW-^l@ zt=%d6dG^lkh$XoPty@)`#Idm{-$Bs2W2f(3J2ah-p5HYri5KhNH9V1$W=i419-PKD zIqPGC&e=J*@Tg7~l7}Jj3b*yi=1tRkaV9sXuz0ao+L6!?o|{>i{gSmvL^Beimuz+P z8d@o8edQ%|(blOiS%(&y=C@6HhW%e#!*tY5qIde_l`|Rdo*>FJV3u!Y8Bn*_X}Fd^ zor*J!kx+Bzpena)ZE}Z;^`<7a4NX&8S3k|lTv+k=&MGMH%g9Wut zI6jeZS1FR|?k+Bi+5ANumNHzLx4go)rky{1Ei714d>#clAXa~$f1dX6k6%-0&$?oZ zKXFZ!)cZYr6&u+p5qgM@5ZabENpUcTDRPYc5X7d5@ff?@Q`xnv3y8rvE!!UEOe(q5 z(5zeL6ee#htesStHl^hSos@78tVL|;68hkItu$)8CF_0DWCt${N{;v2=1q)R7HyHv zVbK0MOf>Cx5+^KbXT_M>6vt-~Vk2Bwyqygo<#r;tJ*mUMaG~IWq;v&jr(n9jF}bf5pS_~pRwTWW zU%g6a>JX*nd3NX1Qb9cN4yZn)m3%U}-#K!8L>8`~w4{XPmRO}$j?21Vaq`{?&k?FI&0F1?s2Oo-&OsR9*#)ERnv(_Cf;vH{=^jWPba7@2vwYL4RAb+HFV665B%A5&O2d+8c0OB^JYT(q4M{wTADt8QnTe5I zEU9!-pq^b=Xna~Ha?^F=ghY@gk^FX6|3pO69loU{b3au~z_ed?js)zgBInm$|VE8ErL zydA7v9UN*WDU7rX;*{qtrrlj@M@%y^l-pMTbi8oGncS>P@slTsaU{I8fpvWj!#&ns zIJTTVjiyO_4~v?;Qw$A?j*)cWIel7~@xfNwuml%7E;0<)c@94D2wf|!5v?KguB|v&K!`r9O}{E zg*6M+I4^NhMx$y*7MIK}%vi2dYjZnjHa{*xIVd?&9!H1AD`rQr1PQ>CwE_n6i$;#(%+lwU<@-th#x7l(iA+OlPJ z%a%2fA37W2VI2;lE`ubEYc9=D zpHFS`7PYQh7r6v8*s4rv{S6Mz7`T;X+LJI>ylMdCbT}_yv(I5DIuV+6P@kSDY~Dbq zNjT+Ck_;CY6Xrld&fxINSmhUIuLsIiFaw0$rl**%e$^=t9LIIltNJsm5qptUi2cepFn> z3rCBaH!W#hxdU-ah# z+usl>u6mHU!1zeswlS~&Cts|lG!N#jE6$qOQ8Gm4X_AI$~6Gz7;xZBu8JwsDkz7tyToh*Vhr1Y%!@mRshSXk->45Q$*J zs4#bRDItFu(2^+a2Q7)P|JTcoCZDVc+LN#w6KxSVu0^PZY3)aZo7NU)=q4Q14dpTn zk+{JqKLI?@eo~|N4CDXh#hzcgv4bs@XPeX{jhXP)1{$7DysV(508YF-Yn!~jF?(!X z%NLt?6rudQX#mMLZ8*T{I6Ac9Ep6&`jIm;NaoI{wm`0UkjgyqG#7=nOCq5wv6N=+u zpI5x(qzksk*0Jp97S^VXJN!1+L;OtDqWL+JIl^IOycj;RLYi0DN&AxM&)Zpc($VSs zT!X7|p*9h+nRaYzg6q-dV8k*lY^`7pHE(^=_VI|1P*V~pOw$`CVMXwlYs}F>IX5rv zwR8?@4jn9M*$z+YmcL|U|7OY!MdLUgY11ASXXQSzQ~!?K2YlyhvzFTMg3FSbTK^~U zW=3$>k{CK)pSz|Q9vwnr@nlcNr`)j;V!q*QHwdft6MaiPc(#A^no9U4zk5ykCq8|R zy^Ak5vTuqHBto9nU>(|-S=g#e)Z`0wyIhDmMcBh~l#Cg1pxL^Ev!wt8HA1c9oRO^3 z^k4Ffty0Zf8k#pxvo{aIt2XhmkKUGU*|MRqtf^(u_LkM$E+!nYKqe&y0Lwt>sU!Y+0-q;v`?%Kb2)BCO3qdr7E3WXK(_tRV%d(<&O18>C`!K zFxdG?mz!*A*~4$~ckp&4*pl62N?*7^M0sj!Xh5^stArC5l(E1}rfUmFoUW-|I&I|* zkH*JL<|em|YJyH{h@@y(C}=*5YIE63XRD7NUWFIJJiz7v`;8CWsPKRvA#r~6#8b*A zY>Bkm2gOyJ->?Z{>GPB0uv(aE>G_#Pl6+swJBgK*!>UjPAA+T*=y$dX_={URN3}t! z3;GwAOHJP~RcYw;u&obq)n=Nf4V;ChWbW$dEFSuZ)$rolZsK%m1$)^tOr`J=N>HS| zwoTY#dp48F42*GRAo=QtTczK&h7|RW5u;y zLnpm19@p$&*x|%u*>*jWYI;|1;jT~jtzW&(O65srWQj88EWPGU^DIf?>~*RgD#kXJ zH^en0l%JjTm?JrR!jM_Fc~=6M$4D^jhV3%L9DZ1XK=Z2Z>6=+pA>}|iXd-r|hh55z zUHaU?(skaXe#nH|dzg*tntx%!?H!%^kR@*K?464=S(lHjAIWdTTEfM) ze9)iu21=)oU*$*L7-BocBt-YAex8Xo$k|$P-8`MmapLAj=$e7nOxX5rpwV4i%O}9;dr|95he{0{yB~CKR+!gmwr4c S0TOg?KN0&d0;IH0jQ%f4%`RX7 diff --git a/locale/zh_Hans/LC_MESSAGES/django.po b/locale/zh_Hans/LC_MESSAGES/django.po index 77591afa9..7fa0b00bd 100644 --- a/locale/zh_Hans/LC_MESSAGES/django.po +++ b/locale/zh_Hans/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-02 16:40+0000\n" -"PO-Revision-Date: 2023-10-02 18:13\n" +"POT-Creation-Date: 2023-11-02 21:32+0000\n" +"PO-Revision-Date: 2023-11-02 22:29\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Chinese Simplified\n" "Language: zh\n" @@ -42,15 +42,15 @@ msgstr "{i} 次使用" msgid "Unlimited" msgstr "不受限" -#: bookwyrm/forms/edit_user.py:88 +#: bookwyrm/forms/edit_user.py:104 msgid "Incorrect password" msgstr "密码错误" -#: bookwyrm/forms/edit_user.py:95 bookwyrm/forms/landing.py:90 +#: bookwyrm/forms/edit_user.py:111 bookwyrm/forms/landing.py:90 msgid "Password does not match" msgstr "两次输入的密码不一致" -#: bookwyrm/forms/edit_user.py:118 +#: bookwyrm/forms/edit_user.py:134 msgid "Incorrect Password" msgstr "密码错误" @@ -102,8 +102,8 @@ msgstr "列表顺序" msgid "Book Title" msgstr "书名" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 +#: bookwyrm/templates/shelf/shelf.html:203 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "评价" @@ -145,7 +145,7 @@ msgstr "危险" msgid "Automatically generated report" msgstr "自动生成的举报" -#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:47 +#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:48 #: bookwyrm/models/link.py:72 bookwyrm/templates/import/import_status.html:214 #: bookwyrm/templates/settings/link_domains/link_domains.html:19 msgid "Pending" @@ -171,23 +171,23 @@ msgstr "仲裁员删除" msgid "Domain block" msgstr "域名屏蔽" -#: bookwyrm/models/book.py:283 +#: bookwyrm/models/book.py:282 msgid "Audiobook" msgstr "有声书籍" -#: bookwyrm/models/book.py:284 +#: bookwyrm/models/book.py:283 msgid "eBook" msgstr "电子书" -#: bookwyrm/models/book.py:285 +#: bookwyrm/models/book.py:284 msgid "Graphic novel" msgstr "图像小说" -#: bookwyrm/models/book.py:286 +#: bookwyrm/models/book.py:285 msgid "Hardcover" msgstr "精装" -#: bookwyrm/models/book.py:287 +#: bookwyrm/models/book.py:286 msgid "Paperback" msgstr "平装" @@ -205,26 +205,26 @@ msgstr "跨站" msgid "Blocked" msgstr "已屏蔽" -#: bookwyrm/models/fields.py:29 +#: bookwyrm/models/fields.py:30 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s 不是有效的 remote_id" -#: bookwyrm/models/fields.py:38 bookwyrm/models/fields.py:47 +#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s 不是有效的用户名" -#: bookwyrm/models/fields.py:192 bookwyrm/templates/layout.html:128 +#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "用户名" -#: bookwyrm/models/fields.py:197 +#: bookwyrm/models/fields.py:198 msgid "A user with that username already exists." msgstr "已经存在使用该用户名的用户。" -#: bookwyrm/models/fields.py:216 +#: bookwyrm/models/fields.py:217 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "已经存在使用该用户名的用户。" msgid "Public" msgstr "公开" -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:218 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "公开" msgid "Unlisted" msgstr "不公开" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:219 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "不公开" msgid "Followers" msgstr "关注者" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:220 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -258,30 +258,30 @@ msgstr "关注者" msgid "Private" msgstr "私密" -#: bookwyrm/models/import_job.py:48 bookwyrm/templates/import/import.html:174 +#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:81 -#: bookwyrm/templates/settings/users/user_info.html:28 +#: bookwyrm/templates/settings/users/user_admin.html:87 +#: bookwyrm/templates/settings/users/user_info.html:33 msgid "Active" msgstr "活跃" -#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:172 +#: bookwyrm/models/import_job.py:50 bookwyrm/templates/import/import.html:172 msgid "Complete" msgstr "已完成" -#: bookwyrm/models/import_job.py:50 +#: bookwyrm/models/import_job.py:51 msgid "Stopped" msgstr "已停止" -#: bookwyrm/models/import_job.py:83 bookwyrm/models/import_job.py:91 +#: bookwyrm/models/import_job.py:84 bookwyrm/models/import_job.py:92 msgid "Import stopped" msgstr "导入停止" -#: bookwyrm/models/import_job.py:363 bookwyrm/models/import_job.py:388 +#: bookwyrm/models/import_job.py:356 bookwyrm/models/import_job.py:381 msgid "Error loading book" msgstr "加载书籍时出错" -#: bookwyrm/models/import_job.py:372 +#: bookwyrm/models/import_job.py:365 msgid "Could not find a match for book" msgstr "找不到匹配的书" @@ -368,103 +368,103 @@ msgstr "引用" msgid "Everything else" msgstr "所有其它内容" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home Timeline" msgstr "主页时间线" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home" msgstr "主页" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 msgid "Books Timeline" msgstr "书目时间线" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:97 +#: bookwyrm/templates/user/layout.html:112 msgid "Books" msgstr "书目" -#: bookwyrm/settings.py:296 +#: bookwyrm/settings.py:303 msgid "English" msgstr "English(英语)" -#: bookwyrm/settings.py:297 +#: bookwyrm/settings.py:304 msgid "Català (Catalan)" msgstr "Català (加泰罗尼亚语)" -#: bookwyrm/settings.py:298 +#: bookwyrm/settings.py:305 msgid "Deutsch (German)" msgstr "Deutsch(德语)" -#: bookwyrm/settings.py:299 +#: bookwyrm/settings.py:306 msgid "Esperanto (Esperanto)" msgstr "" -#: bookwyrm/settings.py:300 +#: bookwyrm/settings.py:307 msgid "Español (Spanish)" msgstr "Español(西班牙语)" -#: bookwyrm/settings.py:301 +#: bookwyrm/settings.py:308 msgid "Euskara (Basque)" msgstr "" -#: bookwyrm/settings.py:302 +#: bookwyrm/settings.py:309 msgid "Galego (Galician)" msgstr "Galego(加利西亚语)" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:310 msgid "Italiano (Italian)" msgstr "Italiano(意大利语)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:311 msgid "Suomi (Finnish)" msgstr "Suomi (Finnish/芬兰语)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:312 msgid "Français (French)" msgstr "Français(法语)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:313 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių(立陶宛语)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:314 msgid "Nederlands (Dutch)" msgstr "" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:315 msgid "Norsk (Norwegian)" msgstr "Norsk(挪威语)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:316 msgid "Polski (Polish)" msgstr "Polski (波兰语)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:317 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil(巴西葡萄牙语)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:318 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu(欧洲葡萄牙语)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:319 msgid "Română (Romanian)" msgstr "Română (罗马尼亚语)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:320 msgid "Svenska (Swedish)" msgstr "Svenska(瑞典语)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:321 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:322 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文(繁体中文)" @@ -575,7 +575,7 @@ msgid "Software version:" msgstr "软件版本:" #: bookwyrm/templates/about/layout.html:30 -#: bookwyrm/templates/embed-layout.html:33 +#: bookwyrm/templates/embed-layout.html:34 #: bookwyrm/templates/snippets/footer.html:8 #, python-format msgid "About %(site_name)s" @@ -678,7 +678,7 @@ msgstr "TA 今年阅读最短的…" #: bookwyrm/templates/annual_summary/layout.html:157 #: bookwyrm/templates/annual_summary/layout.html:178 #: bookwyrm/templates/annual_summary/layout.html:247 -#: bookwyrm/templates/book/book.html:63 +#: bookwyrm/templates/book/book.html:65 #: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/landing/large-book.html:26 #: bookwyrm/templates/landing/small-book.html:18 @@ -764,24 +764,24 @@ msgid "View ISNI record" msgstr "查看 ISNI 记录" #: bookwyrm/templates/author/author.html:95 -#: bookwyrm/templates/book/book.html:173 +#: bookwyrm/templates/book/book.html:175 msgid "View on ISFDB" msgstr "在 ISFDB 查看" #: bookwyrm/templates/author/author.html:100 #: bookwyrm/templates/author/sync_modal.html:5 -#: bookwyrm/templates/book/book.html:140 +#: bookwyrm/templates/book/book.html:142 #: bookwyrm/templates/book/sync_modal.html:5 msgid "Load data" msgstr "加载数据" #: bookwyrm/templates/author/author.html:104 -#: bookwyrm/templates/book/book.html:144 +#: bookwyrm/templates/book/book.html:146 msgid "View on OpenLibrary" msgstr "在 OpenLibrary 查看" #: bookwyrm/templates/author/author.html:119 -#: bookwyrm/templates/book/book.html:158 +#: bookwyrm/templates/book/book.html:160 msgid "View on Inventaire" msgstr "在 Inventaire 查看" @@ -793,11 +793,7 @@ msgstr "在 LibraryThing 查看" msgid "View on Goodreads" msgstr "在 Goodreads 查看" -#: bookwyrm/templates/author/author.html:151 -msgid "View ISFDB entry" -msgstr "查看 ISFDB 条目" - -#: bookwyrm/templates/author/author.html:166 +#: bookwyrm/templates/author/author.html:158 #, python-format msgid "Books by %(name)s" msgstr "%(name)s 所著的书" @@ -955,19 +951,19 @@ msgstr "确认" msgid "Unable to connect to remote source." msgstr "无法联系远程资源。" -#: bookwyrm/templates/book/book.html:71 bookwyrm/templates/book/book.html:72 +#: bookwyrm/templates/book/book.html:73 bookwyrm/templates/book/book.html:74 msgid "Edit Book" msgstr "编辑书目" -#: bookwyrm/templates/book/book.html:97 bookwyrm/templates/book/book.html:100 +#: bookwyrm/templates/book/book.html:99 bookwyrm/templates/book/book.html:102 msgid "Click to add cover" msgstr "点击添加封面" -#: bookwyrm/templates/book/book.html:106 +#: bookwyrm/templates/book/book.html:108 msgid "Failed to load cover" msgstr "加载封面失败" -#: bookwyrm/templates/book/book.html:117 +#: bookwyrm/templates/book/book.html:119 msgid "Click to enlarge" msgstr "点击放大" @@ -1040,13 +1036,13 @@ msgstr "地点" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:90 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:91 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "列表" @@ -1111,8 +1107,8 @@ msgstr "上传封面:" #: bookwyrm/templates/book/cover_add_modal.html:23 #: bookwyrm/templates/book/edit/edit_book_form.html:250 -msgid "Load cover from url:" -msgstr "从网址加载封面:" +msgid "Load cover from URL:" +msgstr "" #: bookwyrm/templates/book/cover_show_modal.html:6 msgid "Book cover preview" @@ -1322,7 +1318,7 @@ msgid "Add Another Author" msgstr "添加其他作者" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:147 +#: bookwyrm/templates/shelf/shelf.html:162 msgid "Cover" msgstr "封面" @@ -1523,22 +1519,22 @@ msgstr "%(pages)s 页" msgid "%(languages)s language" msgstr "%(languages)s 语言" -#: bookwyrm/templates/book/publisher_info.html:65 +#: bookwyrm/templates/book/publisher_info.html:63 #, python-format msgid "Published %(date)s by %(publisher)s." msgstr "%(publisher)s 于 %(date)s 出版。" +#: bookwyrm/templates/book/publisher_info.html:65 +#, python-format +msgid "Published by %(publisher)s." +msgstr "%(publisher)s 出版。" + #: bookwyrm/templates/book/publisher_info.html:67 #, python-format msgid "Published %(date)s" msgstr "于 %(date)s 出版" -#: bookwyrm/templates/book/publisher_info.html:69 -#, python-format -msgid "Published by %(publisher)s." -msgstr "%(publisher)s 出版。" - -#: bookwyrm/templates/book/rating.html:13 +#: bookwyrm/templates/book/rating.html:19 msgid "rated it" msgstr "评价了" @@ -1546,12 +1542,12 @@ msgstr "评价了" msgid "Series by" msgstr "" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 #, python-format msgid "Book %(series_number)s" msgstr "" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 msgid "Unsorted Book" msgstr "" @@ -1581,7 +1577,7 @@ msgid "Sorry! We couldn't find that code." msgstr "抱歉!我们无法找到该代码。" #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:92 +#: bookwyrm/templates/settings/users/user_info.html:98 msgid "Confirmation code:" msgstr "确认代码:" @@ -1675,6 +1671,7 @@ msgstr "受推荐" #: bookwyrm/templates/ostatus/subscribe.html:42 #: bookwyrm/templates/ostatus/success.html:17 #: bookwyrm/templates/ostatus/success.html:18 +#: bookwyrm/templates/user/moved.html:19 bookwyrm/templates/user/moved.html:20 #: bookwyrm/templates/user/user_preview.html:16 #: bookwyrm/templates/user/user_preview.html:17 msgid "Locked account" @@ -1747,7 +1744,7 @@ msgstr "%(username)s 引用了 You have moved your account to %(username)s" +msgstr "" + +#: bookwyrm/templates/moved.html:32 +msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +msgid "Undo move" +msgstr "" + +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +msgid "Log out" +msgstr "登出" + #: bookwyrm/templates/notifications/items/accept.html:18 #, python-format msgid "%(related_user)s accepted your invitation to join group \"%(group_name)s\"" @@ -3728,6 +3747,16 @@ msgstr "" msgid "%(related_user)s mentioned you in a status" msgstr "" +#: bookwyrm/templates/notifications/items/move_user.html:18 +#, python-format +msgid "%(related_user)s has moved to %(username)s" +msgstr "" + +#: bookwyrm/templates/notifications/items/move_user.html:25 +#, python-format +msgid "%(related_user)s has undone their move" +msgstr "" + #: bookwyrm/templates/notifications/items/remove.html:17 #, python-format msgid "has been removed from your group \"%(group_name)s\"" @@ -3765,7 +3794,7 @@ msgid_plural "%(display_count)s new reports need modera msgstr[0] "" #: bookwyrm/templates/notifications/items/status_preview.html:4 -#: bookwyrm/templates/snippets/status/content_status.html:73 +#: bookwyrm/templates/snippets/status/content_status.html:62 msgid "Content warning" msgstr "内容警告" @@ -3983,9 +4012,51 @@ msgstr "确认密码以开始设置双重身份验证。" msgid "Set up 2FA" msgstr "设置双重身份验证" +#: bookwyrm/templates/preferences/alias_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:7 +#: bookwyrm/templates/preferences/move_user.html:39 +msgid "Move Account" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:7 +#: bookwyrm/templates/preferences/alias_user.html:34 +msgid "Create Alias" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:12 +msgid "Add another account as an alias" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:16 +msgid "Marking another account as an alias is required if you want to move that account to this one." +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:19 +msgid "This is a reversable action and will not change the functionality of this account." +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:25 +msgid "Enter the username for the account you want to add as an alias e.g. user@example.com :" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:30 +#: bookwyrm/templates/preferences/move_user.html:35 +msgid "Confirm your password:" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:39 +#: bookwyrm/templates/preferences/layout.html:28 +msgid "Aliases" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:49 +msgid "Remove alias" +msgstr "" + #: bookwyrm/templates/preferences/blocks.html:4 #: bookwyrm/templates/preferences/blocks.html:7 -#: bookwyrm/templates/preferences/layout.html:46 +#: bookwyrm/templates/preferences/layout.html:54 msgid "Blocked Users" msgstr "屏蔽的用户" @@ -4015,7 +4086,7 @@ msgstr "新密码:" #: bookwyrm/templates/preferences/delete_user.html:4 #: bookwyrm/templates/preferences/delete_user.html:7 #: bookwyrm/templates/preferences/delete_user.html:40 -#: bookwyrm/templates/preferences/layout.html:28 +#: bookwyrm/templates/preferences/layout.html:36 #: bookwyrm/templates/settings/users/delete_user_form.html:22 msgid "Delete Account" msgstr "删除帐号" @@ -4137,18 +4208,45 @@ msgstr "下载文件" msgid "Account" msgstr "帐号" -#: bookwyrm/templates/preferences/layout.html:31 +#: bookwyrm/templates/preferences/layout.html:32 +msgid "Move Account" +msgstr "" + +#: bookwyrm/templates/preferences/layout.html:39 msgid "Data" msgstr "数据" -#: bookwyrm/templates/preferences/layout.html:39 +#: bookwyrm/templates/preferences/layout.html:47 msgid "CSV export" msgstr "CSV 导出" -#: bookwyrm/templates/preferences/layout.html:42 +#: bookwyrm/templates/preferences/layout.html:50 msgid "Relationships" msgstr "关系" +#: bookwyrm/templates/preferences/move_user.html:12 +msgid "Migrate account to another server" +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:16 +msgid "Moving your account will notify all your followers and direct them to follow the new account." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:19 +#, python-format +msgid "\n" +" %(user)s will be marked as moved and will not be discoverable or usable unless you undo the move.\n" +" " +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:25 +msgid "Remember to add this user as an alias of the target account before you try to move." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:30 +msgid "Enter the username for the account you want to move to e.g. user@example.com :" +msgstr "" + #: bookwyrm/templates/reading_progress/finish.html:5 #, python-format msgid "Finish \"%(book_title)s\"" @@ -4555,7 +4653,7 @@ msgid "Streams" msgstr "" #: bookwyrm/templates/settings/celery.html:32 -msgid "Broadcasts" +msgid "Broadcast" msgstr "" #: bookwyrm/templates/settings/celery.html:38 @@ -4877,19 +4975,19 @@ msgstr "实例:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:119 msgid "Status:" msgstr "状态:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:107 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Software:" msgstr "软件:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:110 +#: bookwyrm/templates/settings/users/user_info.html:116 msgid "Version:" msgstr "版本:" @@ -4902,7 +5000,7 @@ msgid "Details" msgstr "详细" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:69 +#: bookwyrm/templates/user/layout.html:84 msgid "Activity" msgstr "活动" @@ -4916,7 +5014,7 @@ msgid "View all" msgstr "查看全部" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:60 +#: bookwyrm/templates/settings/users/user_info.html:66 msgid "Reports:" msgstr "报告:" @@ -4933,7 +5031,7 @@ msgid "Blocked by us:" msgstr "我们所屏蔽的:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:117 +#: bookwyrm/templates/settings/users/user_info.html:123 msgid "Notes" msgstr "备注" @@ -5653,17 +5751,22 @@ msgstr "最后或缺" msgid "Remote instance" msgstr "移除服务器" -#: bookwyrm/templates/settings/users/user_admin.html:86 +#: bookwyrm/templates/settings/users/user_admin.html:82 +#: bookwyrm/templates/settings/users/user_info.html:29 +msgid "Moved" +msgstr "" + +#: bookwyrm/templates/settings/users/user_admin.html:93 msgid "Deleted" msgstr "已删除" -#: bookwyrm/templates/settings/users/user_admin.html:92 -#: bookwyrm/templates/settings/users/user_info.html:32 +#: bookwyrm/templates/settings/users/user_admin.html:99 +#: bookwyrm/templates/settings/users/user_info.html:38 msgid "Inactive" msgstr "停用" -#: bookwyrm/templates/settings/users/user_admin.html:101 -#: bookwyrm/templates/settings/users/user_info.html:127 +#: bookwyrm/templates/settings/users/user_admin.html:108 +#: bookwyrm/templates/settings/users/user_info.html:133 msgid "Not set" msgstr "未设置" @@ -5675,55 +5778,55 @@ msgstr "查看用户个人资料" msgid "Go to user admin" msgstr "转到用户管理员" -#: bookwyrm/templates/settings/users/user_info.html:40 +#: bookwyrm/templates/settings/users/user_info.html:46 msgid "Local" msgstr "本站" -#: bookwyrm/templates/settings/users/user_info.html:42 +#: bookwyrm/templates/settings/users/user_info.html:48 msgid "Remote" msgstr "远端" -#: bookwyrm/templates/settings/users/user_info.html:51 +#: bookwyrm/templates/settings/users/user_info.html:57 msgid "User details" msgstr "用户详情" -#: bookwyrm/templates/settings/users/user_info.html:55 +#: bookwyrm/templates/settings/users/user_info.html:61 msgid "Email:" msgstr "邮箱:" -#: bookwyrm/templates/settings/users/user_info.html:65 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "(View reports)" msgstr "(查看报告)" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Blocked by count:" msgstr "被屏蔽次数:" -#: bookwyrm/templates/settings/users/user_info.html:74 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Date added:" msgstr "添加日期:" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Last active date:" msgstr "最后活跃日期:" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:86 msgid "Manually approved followers:" msgstr "手动通过的关注者:" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:89 msgid "Discoverable:" msgstr "可发现:" -#: bookwyrm/templates/settings/users/user_info.html:87 +#: bookwyrm/templates/settings/users/user_info.html:93 msgid "Deactivation reason:" msgstr "停用原因:" -#: bookwyrm/templates/settings/users/user_info.html:102 +#: bookwyrm/templates/settings/users/user_info.html:108 msgid "Instance details" msgstr "实例详情" -#: bookwyrm/templates/settings/users/user_info.html:124 +#: bookwyrm/templates/settings/users/user_info.html:130 msgid "View instance" msgstr "查看实例" @@ -5860,7 +5963,7 @@ msgid "Need help?" msgstr "需要帮助?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:72 +#: bookwyrm/templates/shelf/shelf.html:87 msgid "Create shelf" msgstr "创建书架" @@ -5868,57 +5971,65 @@ msgstr "创建书架" msgid "Edit Shelf" msgstr "编辑书架" -#: bookwyrm/templates/shelf/shelf.html:24 +#: bookwyrm/templates/shelf/shelf.html:25 +msgid "You have have moved to" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:28 +msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:39 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "用户个人资料" -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:54 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "所有书目" -#: bookwyrm/templates/shelf/shelf.html:97 +#: bookwyrm/templates/shelf/shelf.html:112 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s 本书籍" -#: bookwyrm/templates/shelf/shelf.html:104 +#: bookwyrm/templates/shelf/shelf.html:119 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(正在显示 %(start)s 到 %(end)s)" -#: bookwyrm/templates/shelf/shelf.html:116 +#: bookwyrm/templates/shelf/shelf.html:131 msgid "Edit shelf" msgstr "编辑书架" -#: bookwyrm/templates/shelf/shelf.html:124 +#: bookwyrm/templates/shelf/shelf.html:139 msgid "Delete shelf" msgstr "删除书架" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:178 +#: bookwyrm/templates/shelf/shelf.html:167 +#: bookwyrm/templates/shelf/shelf.html:193 msgid "Shelved" msgstr "上架时间" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:181 +#: bookwyrm/templates/shelf/shelf.html:168 +#: bookwyrm/templates/shelf/shelf.html:196 msgid "Started" msgstr "开始时间" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Finished" msgstr "完成时间" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Until" msgstr "直到" -#: bookwyrm/templates/shelf/shelf.html:210 +#: bookwyrm/templates/shelf/shelf.html:225 msgid "This shelf is empty." msgstr "此书架是空的。" @@ -6218,6 +6329,10 @@ msgstr "你已经阅读了 %(goal_count)s 本书中的 %(re 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/move_user_buttons.html:10 +msgid "Follow at new account" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6359,35 +6474,35 @@ msgstr "" msgid "Finish reading" msgstr "完成阅读" -#: bookwyrm/templates/snippets/status/content_status.html:80 +#: bookwyrm/templates/snippets/status/content_status.html:69 msgid "Show status" msgstr "显示状态" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "(Page %(page)s" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "%(endpage)s" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid "(%(percent)s%%" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid " - %(endpercent)s%%" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:127 +#: bookwyrm/templates/snippets/status/content_status.html:116 msgid "Open image in new window" msgstr "在新窗口中打开图像" -#: bookwyrm/templates/snippets/status/content_status.html:148 +#: bookwyrm/templates/snippets/status/content_status.html:137 msgid "Hide status" msgstr "隐藏状态" @@ -6579,10 +6694,14 @@ msgid "Groups: %(username)s" msgstr "群组: %(username)s" #: bookwyrm/templates/user/layout.html:50 +msgid "has moved to" +msgstr "" + +#: bookwyrm/templates/user/layout.html:64 msgid "Follow Requests" msgstr "关注请求" -#: bookwyrm/templates/user/layout.html:73 +#: bookwyrm/templates/user/layout.html:88 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6597,6 +6716,12 @@ msgstr "列表: %(username)s" msgid "Create list" msgstr "创建列表" +#: bookwyrm/templates/user/moved.html:25 +#: bookwyrm/templates/user/user_preview.html:22 +#, python-format +msgid "Joined %(date)s" +msgstr "在 %(date)s 加入" + #: bookwyrm/templates/user/relationships/followers.html:31 #, python-format msgid "%(username)s has no followers" @@ -6668,11 +6793,6 @@ msgstr "仅评论" msgid "No activities yet!" msgstr "还没有活动!" -#: bookwyrm/templates/user/user_preview.html:22 -#, python-format -msgid "Joined %(date)s" -msgstr "在 %(date)s 加入" - #: bookwyrm/templates/user/user_preview.html:26 #, python-format msgid "%(display_count)s follower" @@ -6698,10 +6818,6 @@ msgstr "没有你关注的关注者" msgid "View profile and more" msgstr "查看档案和其他" -#: bookwyrm/templates/user_menu.html:82 -msgid "Log out" -msgstr "登出" - #: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:28 msgid "File exceeds maximum size: 10MB" msgstr "文件超过了最大大小: 10MB" @@ -6717,7 +6833,7 @@ msgid "%(num)d book - by %(user)s" msgid_plural "%(num)d books - by %(user)s" msgstr[0] "%(num)d 本书 - 来自 %(user)s" -#: bookwyrm/templatetags/utilities.py:39 +#: bookwyrm/templatetags/utilities.py:48 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s:%(subtitle)s" diff --git a/locale/zh_Hant/LC_MESSAGES/django.mo b/locale/zh_Hant/LC_MESSAGES/django.mo index f9ca27be9b891b3b13c30e68d084e0cd54184a43..c2dabfbf0ffb731a3a105637765bc897dd541ca0 100644 GIT binary patch literal 38029 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�qC|0Iv&yqu6@Yo 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 e2&tN2w#Q2L2Q@c#j@9$7d5 literal 38839 zcmchg34D~*x&L4Hiu+oZssoCE5hUF_oRYHRJjnwd;md#&19+uPRv_jk_oP9^~q@9pP5A5XsLIp@4*KhJs2 zd1vs~Cm+5j;B&{JLGUT~+Q~uC?XV!2-C3bQ(5rV4Tm&zHr@?z*2bh9q!!NU*kAuD7QLwMY4>Wm*$+ww&57cwz zkYNa_;IZ(23x5b6jXWKyUl*9X(zpRC{R{AT_*Hled=*{-e+5;)6H0^NM0h$>JGwwU zR|551DO5cMLDl0{sB&+ID);kH>8qjg{Ss7vZ?^E?L$&)YsQmr~mCvz#{P>*+mA*Gr zx)@adq@l`r5UQS2;mL3|)VME)O7|7xEAVjSSK(>!b*Os13D1CkhpO+%SNU=}L8b2n z)i0MpwZ9)!zBfSCXBbqyKL?e*5~{!MhnoMB;azYJRJvw3AHD~b-}I}4;3UOE$;+YY zwc6xuQ0?0RRlmJZ<$fP3-LIgY`vX+EKSQPa8&o}x>g(%!2Glr3p!%&FRDCYB`2JA! zxXE}ARDUKceiBqUGoZ?u2Q{DTq3W|9s-Jd1)$3)b{9d*2H!S=usOSC(8S3D~Yl5H$ zycwPcCqnh_6Hw1T4b_j&L*={I^SLg|B1Q1f9TJR3d+RsLqE^bJt;`zBO>d>^X6e+;jHS*ZR!x1VQMsPw&|(v?D$ zca!l>3m*+Nf5t)0&j+FEy8x;^&p?&G87luq<2Q^yu=t-t)wkK?cc9Asz`{@Hk1j(# z3#z`CLA4_R)qfeNc{2rSzAS_)?8&J=;Kt2BsbmMM3 zae!~{1@JuLyFs;Y5Y+s-9Y)~ipvrj&D!(~U^{a>Kr?pV&cSE)FWvG68&EynkL4zBfa-_c@J#q! zsPdbQf42C)L$&+pfj+v|j{2Lw)Pr1S8a|TqsE`)l%C;TkD1}gt2q56F_RQt9-rE7#k;dh|s&DnIK>d^

    X;zjxq~@Za!Uc*G#z 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 K+Af^UV*h`HluhUW diff --git a/locale/zh_Hant/LC_MESSAGES/django.po b/locale/zh_Hant/LC_MESSAGES/django.po index c6f7dc28b..9815b9a59 100644 --- a/locale/zh_Hant/LC_MESSAGES/django.po +++ b/locale/zh_Hant/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-02 16:40+0000\n" -"PO-Revision-Date: 2023-10-29 07:42\n" +"POT-Creation-Date: 2023-11-02 21:32+0000\n" +"PO-Revision-Date: 2023-11-02 22:28\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Chinese Traditional\n" "Language: zh\n" @@ -42,15 +42,15 @@ msgstr "" msgid "Unlimited" msgstr "不受限" -#: bookwyrm/forms/edit_user.py:88 +#: bookwyrm/forms/edit_user.py:104 msgid "Incorrect password" msgstr "密碼不正確" -#: bookwyrm/forms/edit_user.py:95 bookwyrm/forms/landing.py:90 +#: bookwyrm/forms/edit_user.py:111 bookwyrm/forms/landing.py:90 msgid "Password does not match" msgstr "密碼不一致" -#: bookwyrm/forms/edit_user.py:118 +#: bookwyrm/forms/edit_user.py:134 msgid "Incorrect Password" msgstr "密碼不正確" @@ -102,8 +102,8 @@ msgstr "列表順序" msgid "Book Title" msgstr "書名" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 +#: bookwyrm/templates/shelf/shelf.html:203 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "評價" @@ -145,7 +145,7 @@ msgstr "危險" msgid "Automatically generated report" msgstr "自動生成的報告" -#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:47 +#: bookwyrm/models/base_model.py:18 bookwyrm/models/import_job.py:48 #: bookwyrm/models/link.py:72 bookwyrm/templates/import/import_status.html:214 #: bookwyrm/templates/settings/link_domains/link_domains.html:19 msgid "Pending" @@ -171,23 +171,23 @@ msgstr "" msgid "Domain block" msgstr "" -#: bookwyrm/models/book.py:283 +#: bookwyrm/models/book.py:282 msgid "Audiobook" msgstr "有聲書" -#: bookwyrm/models/book.py:284 +#: bookwyrm/models/book.py:283 msgid "eBook" msgstr "電子書" -#: bookwyrm/models/book.py:285 +#: bookwyrm/models/book.py:284 msgid "Graphic novel" msgstr "圖像小說" -#: bookwyrm/models/book.py:286 +#: bookwyrm/models/book.py:285 msgid "Hardcover" msgstr "精裝書" -#: bookwyrm/models/book.py:287 +#: bookwyrm/models/book.py:286 msgid "Paperback" msgstr "平裝書" @@ -205,26 +205,26 @@ msgstr "跨站" msgid "Blocked" msgstr "已封鎖" -#: bookwyrm/models/fields.py:29 +#: bookwyrm/models/fields.py:30 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s 不是有效的 remote_id" -#: bookwyrm/models/fields.py:38 bookwyrm/models/fields.py:47 +#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s 不是有效的使用者名稱" -#: bookwyrm/models/fields.py:192 bookwyrm/templates/layout.html:128 +#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "使用者名稱" -#: bookwyrm/models/fields.py:197 +#: bookwyrm/models/fields.py:198 msgid "A user with that username already exists." msgstr "已經存在使用該名稱的使用者。" -#: bookwyrm/models/fields.py:216 +#: bookwyrm/models/fields.py:217 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "已經存在使用該名稱的使用者。" msgid "Public" msgstr "公開" -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:218 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "公開" msgid "Unlisted" msgstr "不公開" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:219 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "不公開" msgid "Followers" msgstr "關注者" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:220 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -258,30 +258,30 @@ msgstr "關注者" msgid "Private" msgstr "私密" -#: bookwyrm/models/import_job.py:48 bookwyrm/templates/import/import.html:174 +#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:81 -#: bookwyrm/templates/settings/users/user_info.html:28 +#: bookwyrm/templates/settings/users/user_admin.html:87 +#: bookwyrm/templates/settings/users/user_info.html:33 msgid "Active" msgstr "活躍" -#: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:172 +#: bookwyrm/models/import_job.py:50 bookwyrm/templates/import/import.html:172 msgid "Complete" msgstr "已完成" -#: bookwyrm/models/import_job.py:50 +#: bookwyrm/models/import_job.py:51 msgid "Stopped" msgstr "已停止" -#: bookwyrm/models/import_job.py:83 bookwyrm/models/import_job.py:91 +#: bookwyrm/models/import_job.py:84 bookwyrm/models/import_job.py:92 msgid "Import stopped" msgstr "匯入已停止" -#: bookwyrm/models/import_job.py:363 bookwyrm/models/import_job.py:388 +#: bookwyrm/models/import_job.py:356 bookwyrm/models/import_job.py:381 msgid "Error loading book" msgstr "" -#: bookwyrm/models/import_job.py:372 +#: bookwyrm/models/import_job.py:365 msgid "Could not find a match for book" msgstr "" @@ -368,103 +368,103 @@ msgstr "引用" msgid "Everything else" msgstr "所有其他內容" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home Timeline" msgstr "主頁時間線" -#: bookwyrm/settings.py:223 +#: bookwyrm/settings.py:230 msgid "Home" msgstr "主頁" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 msgid "Books Timeline" msgstr "書目時間線" -#: bookwyrm/settings.py:224 +#: bookwyrm/settings.py:231 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:97 +#: bookwyrm/templates/user/layout.html:112 msgid "Books" msgstr "書目" -#: bookwyrm/settings.py:296 +#: bookwyrm/settings.py:303 msgid "English" msgstr "English(英語)" -#: bookwyrm/settings.py:297 +#: bookwyrm/settings.py:304 msgid "Català (Catalan)" msgstr "Català (加泰羅尼亞語)" -#: bookwyrm/settings.py:298 +#: bookwyrm/settings.py:305 msgid "Deutsch (German)" msgstr "Deutsch(德語)" -#: bookwyrm/settings.py:299 +#: bookwyrm/settings.py:306 msgid "Esperanto (Esperanto)" msgstr "Esperanto (世界語)" -#: bookwyrm/settings.py:300 +#: bookwyrm/settings.py:307 msgid "Español (Spanish)" msgstr "Español(西班牙語)" -#: bookwyrm/settings.py:301 +#: bookwyrm/settings.py:308 msgid "Euskara (Basque)" msgstr "Euskara (巴斯克語)" -#: bookwyrm/settings.py:302 +#: bookwyrm/settings.py:309 msgid "Galego (Galician)" msgstr "Galego (加利西亞語)" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:310 msgid "Italiano (Italian)" msgstr "Italiano (意大利語)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:311 msgid "Suomi (Finnish)" msgstr "Suomi (芬蘭語)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:312 msgid "Français (French)" msgstr "Français(法語)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:313 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių (立陶宛語)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:314 msgid "Nederlands (Dutch)" msgstr "Nederlands (荷蘭語)" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:315 msgid "Norsk (Norwegian)" msgstr "Norsk (挪威語)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:316 msgid "Polski (Polish)" msgstr "Polski (波蘭語)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:317 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil (巴西葡萄牙語)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:318 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (歐洲葡萄牙語)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:319 msgid "Română (Romanian)" msgstr "Română (羅馬尼亞語)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:320 msgid "Svenska (Swedish)" msgstr "Svenska (瑞典語)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:321 msgid "简体中文 (Simplified Chinese)" msgstr "簡體中文" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:322 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文" @@ -575,7 +575,7 @@ msgid "Software version:" msgstr "" #: bookwyrm/templates/about/layout.html:30 -#: bookwyrm/templates/embed-layout.html:33 +#: bookwyrm/templates/embed-layout.html:34 #: bookwyrm/templates/snippets/footer.html:8 #, python-format msgid "About %(site_name)s" @@ -678,7 +678,7 @@ msgstr "" #: bookwyrm/templates/annual_summary/layout.html:157 #: bookwyrm/templates/annual_summary/layout.html:178 #: bookwyrm/templates/annual_summary/layout.html:247 -#: bookwyrm/templates/book/book.html:63 +#: bookwyrm/templates/book/book.html:65 #: bookwyrm/templates/discover/large-book.html:22 #: bookwyrm/templates/landing/large-book.html:26 #: bookwyrm/templates/landing/small-book.html:18 @@ -764,24 +764,24 @@ msgid "View ISNI record" msgstr "查看 ISNI 記錄" #: bookwyrm/templates/author/author.html:95 -#: bookwyrm/templates/book/book.html:173 +#: bookwyrm/templates/book/book.html:175 msgid "View on ISFDB" msgstr "在 ISFDB 查看" #: bookwyrm/templates/author/author.html:100 #: bookwyrm/templates/author/sync_modal.html:5 -#: bookwyrm/templates/book/book.html:140 +#: bookwyrm/templates/book/book.html:142 #: bookwyrm/templates/book/sync_modal.html:5 msgid "Load data" msgstr "載入資料" #: bookwyrm/templates/author/author.html:104 -#: bookwyrm/templates/book/book.html:144 +#: bookwyrm/templates/book/book.html:146 msgid "View on OpenLibrary" msgstr "在 OpenLibrary 檢視" #: bookwyrm/templates/author/author.html:119 -#: bookwyrm/templates/book/book.html:158 +#: bookwyrm/templates/book/book.html:160 msgid "View on Inventaire" msgstr "在 Inventaire 檢視" @@ -793,11 +793,7 @@ msgstr "在 LibraryThing 查看" msgid "View on Goodreads" msgstr "在 Goodreads 查看" -#: bookwyrm/templates/author/author.html:151 -msgid "View ISFDB entry" -msgstr "查看 ISFDB 條目" - -#: bookwyrm/templates/author/author.html:166 +#: bookwyrm/templates/author/author.html:158 #, python-format msgid "Books by %(name)s" msgstr "%(name)s 所著的書" @@ -955,19 +951,19 @@ msgstr "確認" msgid "Unable to connect to remote source." msgstr "無法連接到遠程數據源。" -#: bookwyrm/templates/book/book.html:71 bookwyrm/templates/book/book.html:72 +#: bookwyrm/templates/book/book.html:73 bookwyrm/templates/book/book.html:74 msgid "Edit Book" msgstr "編輯書目" -#: bookwyrm/templates/book/book.html:97 bookwyrm/templates/book/book.html:100 +#: bookwyrm/templates/book/book.html:99 bookwyrm/templates/book/book.html:102 msgid "Click to add cover" msgstr "點擊添加封面" -#: bookwyrm/templates/book/book.html:106 +#: bookwyrm/templates/book/book.html:108 msgid "Failed to load cover" msgstr "載入封面失敗" -#: bookwyrm/templates/book/book.html:117 +#: bookwyrm/templates/book/book.html:119 msgid "Click to enlarge" msgstr "點擊放大" @@ -1040,13 +1036,13 @@ msgstr "地點" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:90 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:91 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "列表" @@ -1111,8 +1107,8 @@ msgstr "上載封面:" #: bookwyrm/templates/book/cover_add_modal.html:23 #: bookwyrm/templates/book/edit/edit_book_form.html:250 -msgid "Load cover from url:" -msgstr "從網址載入封面:" +msgid "Load cover from URL:" +msgstr "" #: bookwyrm/templates/book/cover_show_modal.html:6 msgid "Book cover preview" @@ -1322,7 +1318,7 @@ msgid "Add Another Author" msgstr "新增其他作者" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:147 +#: bookwyrm/templates/shelf/shelf.html:162 msgid "Cover" msgstr "封面" @@ -1523,22 +1519,22 @@ msgstr "%(pages)s 頁" msgid "%(languages)s language" msgstr "%(languages)s 語言" -#: bookwyrm/templates/book/publisher_info.html:65 +#: bookwyrm/templates/book/publisher_info.html:63 #, python-format msgid "Published %(date)s by %(publisher)s." msgstr "在 %(date)s 由 %(publisher)s 出版。" +#: bookwyrm/templates/book/publisher_info.html:65 +#, python-format +msgid "Published by %(publisher)s." +msgstr "由 %(publisher)s 出版。" + #: bookwyrm/templates/book/publisher_info.html:67 #, python-format msgid "Published %(date)s" msgstr "於 %(date)s 出版" -#: bookwyrm/templates/book/publisher_info.html:69 -#, python-format -msgid "Published by %(publisher)s." -msgstr "由 %(publisher)s 出版。" - -#: bookwyrm/templates/book/rating.html:13 +#: bookwyrm/templates/book/rating.html:19 msgid "rated it" msgstr "評價了" @@ -1546,12 +1542,12 @@ msgstr "評價了" msgid "Series by" msgstr "" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 #, python-format msgid "Book %(series_number)s" msgstr "" -#: bookwyrm/templates/book/series.html:27 +#: bookwyrm/templates/book/series.html:28 msgid "Unsorted Book" msgstr "" @@ -1581,7 +1577,7 @@ msgid "Sorry! We couldn't find that code." msgstr "" #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:92 +#: bookwyrm/templates/settings/users/user_info.html:98 msgid "Confirmation code:" msgstr "" @@ -1675,6 +1671,7 @@ msgstr "受推薦" #: bookwyrm/templates/ostatus/subscribe.html:42 #: bookwyrm/templates/ostatus/success.html:17 #: bookwyrm/templates/ostatus/success.html:18 +#: bookwyrm/templates/user/moved.html:19 bookwyrm/templates/user/moved.html:20 #: bookwyrm/templates/user/user_preview.html:16 #: bookwyrm/templates/user/user_preview.html:17 msgid "Locked account" @@ -1747,7 +1744,7 @@ msgstr "" #: bookwyrm/templates/discover/discover.html:4 #: bookwyrm/templates/discover/discover.html:10 -#: bookwyrm/templates/layout.html:93 +#: bookwyrm/templates/layout.html:94 msgid "Discover" msgstr "" @@ -1879,20 +1876,20 @@ msgstr "" msgid "Test email" msgstr "" -#: bookwyrm/templates/embed-layout.html:20 bookwyrm/templates/layout.html:31 -#: bookwyrm/templates/setup/layout.html:15 +#: bookwyrm/templates/embed-layout.html:21 bookwyrm/templates/layout.html:33 +#: bookwyrm/templates/layout.html:163 bookwyrm/templates/setup/layout.html:15 #: bookwyrm/templates/two_factor_auth/two_factor_login.html:18 #: bookwyrm/templates/two_factor_auth/two_factor_prompt.html:18 #, python-format msgid "%(site_name)s home page" msgstr "" -#: bookwyrm/templates/embed-layout.html:39 +#: bookwyrm/templates/embed-layout.html:40 #: bookwyrm/templates/snippets/footer.html:12 msgid "Contact site admin" msgstr "聯絡網站管理員" -#: bookwyrm/templates/embed-layout.html:45 +#: bookwyrm/templates/embed-layout.html:46 msgid "Join BookWyrm" msgstr "" @@ -1988,19 +1985,19 @@ msgid "Add to your books" msgstr "" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:86 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "想讀" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:87 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "在讀" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:88 +#: bookwyrm/templates/shelf/shelf.html:103 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2009,7 +2006,7 @@ msgid "Read" msgstr "讀過" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "" @@ -2019,7 +2016,7 @@ msgid "What are you reading?" msgstr "你在閱讀什麼?" #: bookwyrm/templates/get_started/books.html:9 -#: bookwyrm/templates/layout.html:39 bookwyrm/templates/lists/list.html:213 +#: bookwyrm/templates/layout.html:41 bookwyrm/templates/lists/list.html:213 msgid "Search for a book" msgstr "搜尋書目" @@ -2038,8 +2035,8 @@ msgstr "你可以在開始使用 %(site_name)s 後新增書目。" #: bookwyrm/templates/get_started/users.html:18 #: bookwyrm/templates/get_started/users.html:19 #: bookwyrm/templates/groups/members.html:15 -#: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:45 -#: bookwyrm/templates/layout.html:46 bookwyrm/templates/lists/list.html:217 +#: bookwyrm/templates/groups/members.html:16 bookwyrm/templates/layout.html:47 +#: bookwyrm/templates/layout.html:48 bookwyrm/templates/lists/list.html:217 #: bookwyrm/templates/search/layout.html:5 #: bookwyrm/templates/search/layout.html:10 #: bookwyrm/templates/search/layout.html:32 @@ -2528,8 +2525,8 @@ msgid "The bell will light up when you have a new notification. When it does, cl msgstr "" #: bookwyrm/templates/guided_tour/home.html:177 -#: bookwyrm/templates/layout.html:75 bookwyrm/templates/layout.html:106 -#: bookwyrm/templates/layout.html:107 +#: bookwyrm/templates/layout.html:77 bookwyrm/templates/layout.html:107 +#: bookwyrm/templates/layout.html:108 #: bookwyrm/templates/notifications/notifications_page.html:5 #: bookwyrm/templates/notifications/notifications_page.html:10 msgid "Notifications" @@ -2692,7 +2689,8 @@ msgstr "" #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:85 +#: bookwyrm/templates/user/groups.html:6 +#: bookwyrm/templates/user/layout.html:100 msgid "Groups" msgstr "" @@ -2737,7 +2735,7 @@ msgid "This is your user profile. All your latest activities will be listed here msgstr "" #: bookwyrm/templates/guided_tour/user_profile.html:11 -#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:14 +#: bookwyrm/templates/user/layout.html:20 bookwyrm/templates/user/user.html:14 msgid "User Profile" msgstr "使用者使用者資料" @@ -2746,7 +2744,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "" #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:79 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 msgid "Reading Goal" msgstr "閱讀目標" @@ -2785,7 +2783,7 @@ msgstr "" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:64 +#: bookwyrm/templates/shelf/shelf.html:79 msgid "Import Books" msgstr "匯入書目" @@ -2796,7 +2794,7 @@ msgstr "" #: bookwyrm/templates/import/import.html:21 #, python-format msgid "Currently, you are allowed to import %(display_size)s books every %(import_limit_reset)s day." -msgid_plural "Currently, you are allowed to import %(import_size_limit)s books every %(import_limit_reset)s days." +msgid_plural "Currently, you are allowed to import %(display_size)s books every %(import_limit_reset)s days." msgstr[0] "" #: bookwyrm/templates/import/import.html:27 @@ -2856,7 +2854,7 @@ msgstr "匯入書評的私隱設定" #: bookwyrm/templates/import/import.html:106 #: bookwyrm/templates/import/import.html:108 -#: bookwyrm/templates/preferences/layout.html:35 +#: bookwyrm/templates/preferences/layout.html:43 #: bookwyrm/templates/settings/federation/instance_blocklist.html:78 msgid "Import" msgstr "匯入" @@ -2953,8 +2951,8 @@ msgid "Row" msgstr "" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:148 -#: bookwyrm/templates/shelf/shelf.html:170 +#: bookwyrm/templates/shelf/shelf.html:163 +#: bookwyrm/templates/shelf/shelf.html:185 msgid "Title" msgstr "標題" @@ -2967,8 +2965,8 @@ msgid "Openlibrary key" msgstr "" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:149 -#: bookwyrm/templates/shelf/shelf.html:173 +#: bookwyrm/templates/shelf/shelf.html:164 +#: bookwyrm/templates/shelf/shelf.html:188 msgid "Author" msgstr "作者" @@ -3125,7 +3123,7 @@ msgid "Login" msgstr "登入" #: bookwyrm/templates/landing/login.html:7 -#: bookwyrm/templates/landing/login.html:36 bookwyrm/templates/layout.html:136 +#: bookwyrm/templates/landing/login.html:36 bookwyrm/templates/layout.html:142 #: bookwyrm/templates/ostatus/error.html:37 msgid "Log in" msgstr "登入" @@ -3136,7 +3134,7 @@ msgstr "" #: bookwyrm/templates/landing/login.html:21 #: bookwyrm/templates/landing/reactivate.html:17 -#: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:28 +#: bookwyrm/templates/layout.html:128 bookwyrm/templates/ostatus/error.html:28 #: bookwyrm/templates/snippets/register_form.html:4 msgid "Username:" msgstr "使用者名稱:" @@ -3144,13 +3142,13 @@ msgstr "使用者名稱:" #: bookwyrm/templates/landing/login.html:27 #: bookwyrm/templates/landing/password_reset.html:26 #: bookwyrm/templates/landing/reactivate.html:23 -#: bookwyrm/templates/layout.html:131 bookwyrm/templates/ostatus/error.html:32 +#: bookwyrm/templates/layout.html:132 bookwyrm/templates/ostatus/error.html:32 #: bookwyrm/templates/preferences/2fa.html:91 #: bookwyrm/templates/snippets/register_form.html:45 msgid "Password:" msgstr "密碼:" -#: bookwyrm/templates/landing/login.html:39 bookwyrm/templates/layout.html:133 +#: bookwyrm/templates/landing/login.html:39 bookwyrm/templates/layout.html:139 #: bookwyrm/templates/ostatus/error.html:34 msgid "Forgot your password?" msgstr "忘記了密碼?" @@ -3193,35 +3191,39 @@ msgstr "" msgid "%(site_name)s search" msgstr "" -#: bookwyrm/templates/layout.html:37 +#: bookwyrm/templates/layout.html:39 msgid "Search for a book, user, or list" msgstr "" -#: bookwyrm/templates/layout.html:52 bookwyrm/templates/layout.html:53 +#: bookwyrm/templates/layout.html:54 bookwyrm/templates/layout.html:55 msgid "Scan Barcode" msgstr "" -#: bookwyrm/templates/layout.html:67 +#: bookwyrm/templates/layout.html:69 msgid "Main navigation menu" msgstr "主導航選單" -#: bookwyrm/templates/layout.html:87 +#: bookwyrm/templates/layout.html:88 msgid "Feed" msgstr "動態" -#: bookwyrm/templates/layout.html:132 bookwyrm/templates/ostatus/error.html:33 +#: bookwyrm/templates/layout.html:134 bookwyrm/templates/ostatus/error.html:33 msgid "password" msgstr "密碼" -#: bookwyrm/templates/layout.html:144 +#: bookwyrm/templates/layout.html:136 +msgid "Show/Hide password" +msgstr "" + +#: bookwyrm/templates/layout.html:150 msgid "Join" msgstr "加入" -#: bookwyrm/templates/layout.html:179 +#: bookwyrm/templates/layout.html:196 msgid "Successfully posted status" msgstr "" -#: bookwyrm/templates/layout.html:180 +#: bookwyrm/templates/layout.html:197 msgid "Error posting status" msgstr "" @@ -3480,6 +3482,23 @@ msgstr "" msgid "Saved Lists" msgstr "" +#: bookwyrm/templates/moved.html:27 +#, python-format +msgid "You have moved your account to %(username)s" +msgstr "" + +#: bookwyrm/templates/moved.html:32 +msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +msgid "Undo move" +msgstr "" + +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +msgid "Log out" +msgstr "登出" + #: bookwyrm/templates/notifications/items/accept.html:18 #, python-format msgid "%(related_user)s accepted your invitation to join group \"%(group_name)s\"" @@ -3728,6 +3747,16 @@ msgstr "" msgid "%(related_user)s mentioned you in a status" msgstr "" +#: bookwyrm/templates/notifications/items/move_user.html:18 +#, python-format +msgid "%(related_user)s has moved to %(username)s" +msgstr "" + +#: bookwyrm/templates/notifications/items/move_user.html:25 +#, python-format +msgid "%(related_user)s has undone their move" +msgstr "" + #: bookwyrm/templates/notifications/items/remove.html:17 #, python-format msgid "has been removed from your group \"%(group_name)s\"" @@ -3765,7 +3794,7 @@ msgid_plural "%(display_count)s new reports need modera msgstr[0] "" #: bookwyrm/templates/notifications/items/status_preview.html:4 -#: bookwyrm/templates/snippets/status/content_status.html:73 +#: bookwyrm/templates/snippets/status/content_status.html:62 msgid "Content warning" msgstr "" @@ -3983,9 +4012,51 @@ msgstr "" msgid "Set up 2FA" msgstr "" +#: bookwyrm/templates/preferences/alias_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:4 +#: bookwyrm/templates/preferences/move_user.html:7 +#: bookwyrm/templates/preferences/move_user.html:39 +msgid "Move Account" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:7 +#: bookwyrm/templates/preferences/alias_user.html:34 +msgid "Create Alias" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:12 +msgid "Add another account as an alias" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:16 +msgid "Marking another account as an alias is required if you want to move that account to this one." +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:19 +msgid "This is a reversable action and will not change the functionality of this account." +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:25 +msgid "Enter the username for the account you want to add as an alias e.g. user@example.com :" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:30 +#: bookwyrm/templates/preferences/move_user.html:35 +msgid "Confirm your password:" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:39 +#: bookwyrm/templates/preferences/layout.html:28 +msgid "Aliases" +msgstr "" + +#: bookwyrm/templates/preferences/alias_user.html:49 +msgid "Remove alias" +msgstr "" + #: bookwyrm/templates/preferences/blocks.html:4 #: bookwyrm/templates/preferences/blocks.html:7 -#: bookwyrm/templates/preferences/layout.html:46 +#: bookwyrm/templates/preferences/layout.html:54 msgid "Blocked Users" msgstr "封鎖的使用者" @@ -4015,7 +4086,7 @@ msgstr "新密碼:" #: bookwyrm/templates/preferences/delete_user.html:4 #: bookwyrm/templates/preferences/delete_user.html:7 #: bookwyrm/templates/preferences/delete_user.html:40 -#: bookwyrm/templates/preferences/layout.html:28 +#: bookwyrm/templates/preferences/layout.html:36 #: bookwyrm/templates/settings/users/delete_user_form.html:22 msgid "Delete Account" msgstr "" @@ -4137,18 +4208,45 @@ msgstr "" msgid "Account" msgstr "帳號" -#: bookwyrm/templates/preferences/layout.html:31 -msgid "Data" +#: bookwyrm/templates/preferences/layout.html:32 +msgid "Move Account" msgstr "" #: bookwyrm/templates/preferences/layout.html:39 +msgid "Data" +msgstr "" + +#: bookwyrm/templates/preferences/layout.html:47 msgid "CSV export" msgstr "" -#: bookwyrm/templates/preferences/layout.html:42 +#: bookwyrm/templates/preferences/layout.html:50 msgid "Relationships" msgstr "關係" +#: bookwyrm/templates/preferences/move_user.html:12 +msgid "Migrate account to another server" +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:16 +msgid "Moving your account will notify all your followers and direct them to follow the new account." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:19 +#, python-format +msgid "\n" +" %(user)s will be marked as moved and will not be discoverable or usable unless you undo the move.\n" +" " +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:25 +msgid "Remember to add this user as an alias of the target account before you try to move." +msgstr "" + +#: bookwyrm/templates/preferences/move_user.html:30 +msgid "Enter the username for the account you want to move to e.g. user@example.com :" +msgstr "" + #: bookwyrm/templates/reading_progress/finish.html:5 #, python-format msgid "Finish \"%(book_title)s\"" @@ -4553,7 +4651,7 @@ msgid "Streams" msgstr "" #: bookwyrm/templates/settings/celery.html:32 -msgid "Broadcasts" +msgid "Broadcast" msgstr "" #: bookwyrm/templates/settings/celery.html:38 @@ -4875,19 +4973,19 @@ msgstr "實例:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:119 msgid "Status:" msgstr "狀態:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:107 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Software:" msgstr "軟件:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:110 +#: bookwyrm/templates/settings/users/user_info.html:116 msgid "Version:" msgstr "版本:" @@ -4900,7 +4998,7 @@ msgid "Details" msgstr "詳細" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:69 +#: bookwyrm/templates/user/layout.html:84 msgid "Activity" msgstr "活動" @@ -4914,7 +5012,7 @@ msgid "View all" msgstr "檢視全部" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:60 +#: bookwyrm/templates/settings/users/user_info.html:66 msgid "Reports:" msgstr "舉報:" @@ -4931,7 +5029,7 @@ msgid "Blocked by us:" msgstr "我們所封鎖的:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:117 +#: bookwyrm/templates/settings/users/user_info.html:123 msgid "Notes" msgstr "備註" @@ -5651,17 +5749,22 @@ msgstr "最後活躍" msgid "Remote instance" msgstr "移除伺服器" -#: bookwyrm/templates/settings/users/user_admin.html:86 +#: bookwyrm/templates/settings/users/user_admin.html:82 +#: bookwyrm/templates/settings/users/user_info.html:29 +msgid "Moved" +msgstr "" + +#: bookwyrm/templates/settings/users/user_admin.html:93 msgid "Deleted" msgstr "" -#: bookwyrm/templates/settings/users/user_admin.html:92 -#: bookwyrm/templates/settings/users/user_info.html:32 +#: bookwyrm/templates/settings/users/user_admin.html:99 +#: bookwyrm/templates/settings/users/user_info.html:38 msgid "Inactive" msgstr "停用" -#: bookwyrm/templates/settings/users/user_admin.html:101 -#: bookwyrm/templates/settings/users/user_info.html:127 +#: bookwyrm/templates/settings/users/user_admin.html:108 +#: bookwyrm/templates/settings/users/user_info.html:133 msgid "Not set" msgstr "未設定" @@ -5673,55 +5776,55 @@ msgstr "檢視使用者資料" msgid "Go to user admin" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:40 +#: bookwyrm/templates/settings/users/user_info.html:46 msgid "Local" msgstr "本站" -#: bookwyrm/templates/settings/users/user_info.html:42 +#: bookwyrm/templates/settings/users/user_info.html:48 msgid "Remote" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:51 +#: bookwyrm/templates/settings/users/user_info.html:57 msgid "User details" msgstr "使用者詳情" -#: bookwyrm/templates/settings/users/user_info.html:55 +#: bookwyrm/templates/settings/users/user_info.html:61 msgid "Email:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:65 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "(View reports)" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Blocked by count:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:74 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Date added:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Last active date:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:86 msgid "Manually approved followers:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:89 msgid "Discoverable:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:87 +#: bookwyrm/templates/settings/users/user_info.html:93 msgid "Deactivation reason:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:102 +#: bookwyrm/templates/settings/users/user_info.html:108 msgid "Instance details" msgstr "實例詳情" -#: bookwyrm/templates/settings/users/user_info.html:124 +#: bookwyrm/templates/settings/users/user_info.html:130 msgid "View instance" msgstr "檢視實例" @@ -5858,7 +5961,7 @@ msgid "Need help?" msgstr "" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:72 +#: bookwyrm/templates/shelf/shelf.html:87 msgid "Create shelf" msgstr "建立書架" @@ -5866,57 +5969,65 @@ msgstr "建立書架" msgid "Edit Shelf" msgstr "編輯書架" -#: bookwyrm/templates/shelf/shelf.html:24 +#: bookwyrm/templates/shelf/shelf.html:25 +msgid "You have have moved to" +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:28 +msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." +msgstr "" + +#: bookwyrm/templates/shelf/shelf.html:39 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "" -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:54 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "所有書目" -#: bookwyrm/templates/shelf/shelf.html:97 +#: bookwyrm/templates/shelf/shelf.html:112 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "" -#: bookwyrm/templates/shelf/shelf.html:104 +#: bookwyrm/templates/shelf/shelf.html:119 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "" -#: bookwyrm/templates/shelf/shelf.html:116 +#: bookwyrm/templates/shelf/shelf.html:131 msgid "Edit shelf" msgstr "編輯書架" -#: bookwyrm/templates/shelf/shelf.html:124 +#: bookwyrm/templates/shelf/shelf.html:139 msgid "Delete shelf" msgstr "刪除書架" -#: bookwyrm/templates/shelf/shelf.html:152 -#: bookwyrm/templates/shelf/shelf.html:178 +#: bookwyrm/templates/shelf/shelf.html:167 +#: bookwyrm/templates/shelf/shelf.html:193 msgid "Shelved" msgstr "上架時間" -#: bookwyrm/templates/shelf/shelf.html:153 -#: bookwyrm/templates/shelf/shelf.html:181 +#: bookwyrm/templates/shelf/shelf.html:168 +#: bookwyrm/templates/shelf/shelf.html:196 msgid "Started" msgstr "開始時間" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Finished" msgstr "完成時間" -#: bookwyrm/templates/shelf/shelf.html:154 -#: bookwyrm/templates/shelf/shelf.html:184 +#: bookwyrm/templates/shelf/shelf.html:169 +#: bookwyrm/templates/shelf/shelf.html:199 msgid "Until" msgstr "" -#: bookwyrm/templates/shelf/shelf.html:210 +#: bookwyrm/templates/shelf/shelf.html:225 msgid "This shelf is empty." msgstr "此書架是空的。" @@ -6216,6 +6327,10 @@ msgstr "你已經閱讀了 %(goal_count)s 本書中的 %(re 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/move_user_buttons.html:10 +msgid "Follow at new account" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6357,35 +6472,35 @@ msgstr "" msgid "Finish reading" msgstr "完成閱讀" -#: bookwyrm/templates/snippets/status/content_status.html:80 +#: bookwyrm/templates/snippets/status/content_status.html:69 msgid "Show status" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "(Page %(page)s" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:102 +#: bookwyrm/templates/snippets/status/content_status.html:91 #, python-format msgid "%(endpage)s" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid "(%(percent)s%%" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:104 +#: bookwyrm/templates/snippets/status/content_status.html:93 #, python-format msgid " - %(endpercent)s%%" msgstr "" -#: bookwyrm/templates/snippets/status/content_status.html:127 +#: bookwyrm/templates/snippets/status/content_status.html:116 msgid "Open image in new window" msgstr "在新視窗中開啟圖片" -#: bookwyrm/templates/snippets/status/content_status.html:148 +#: bookwyrm/templates/snippets/status/content_status.html:137 msgid "Hide status" msgstr "" @@ -6577,10 +6692,14 @@ msgid "Groups: %(username)s" msgstr "" #: bookwyrm/templates/user/layout.html:50 +msgid "has moved to" +msgstr "" + +#: bookwyrm/templates/user/layout.html:64 msgid "Follow Requests" msgstr "關注請求" -#: bookwyrm/templates/user/layout.html:73 +#: bookwyrm/templates/user/layout.html:88 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6595,6 +6714,12 @@ msgstr "列表: %(username)s" msgid "Create list" msgstr "建立列表" +#: bookwyrm/templates/user/moved.html:25 +#: bookwyrm/templates/user/user_preview.html:22 +#, python-format +msgid "Joined %(date)s" +msgstr "在 %(date)s 加入" + #: bookwyrm/templates/user/relationships/followers.html:31 #, python-format msgid "%(username)s has no followers" @@ -6666,11 +6791,6 @@ msgstr "" msgid "No activities yet!" msgstr "還沒有活動!" -#: bookwyrm/templates/user/user_preview.html:22 -#, python-format -msgid "Joined %(date)s" -msgstr "在 %(date)s 加入" - #: bookwyrm/templates/user/user_preview.html:26 #, python-format msgid "%(display_count)s follower" @@ -6696,10 +6816,6 @@ msgstr "" msgid "View profile and more" msgstr "" -#: bookwyrm/templates/user_menu.html:82 -msgid "Log out" -msgstr "登出" - #: bookwyrm/templates/widgets/clearable_file_input_with_warning.html:28 msgid "File exceeds maximum size: 10MB" msgstr "檔案超過了最大大小: 10MB" @@ -6715,7 +6831,7 @@ msgid "%(num)d book - by %(user)s" msgid_plural "%(num)d books - by %(user)s" msgstr[0] "" -#: bookwyrm/templatetags/utilities.py:39 +#: bookwyrm/templatetags/utilities.py:48 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "" From 7fcadb1d4d9d4c5001fc734376cbd184bb8768d7 Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Wed, 13 Dec 2023 20:55:38 +1100 Subject: [PATCH 070/184] fix upsert_statuses - remote_id is now updated on import of statuses - statuses cannot be imported unless source has target listed in alsoKnownAs or movedTo - add alert boxes to import and export screens advising of the above - update tests accordingly --- bookwyrm/models/bookwyrm_import_job.py | 86 +++++++++++++------ bookwyrm/templates/import/import_user.html | 6 +- .../templates/preferences/export-user.html | 5 ++ .../tests/models/test_bookwyrm_import_job.py | 34 +++++++- 4 files changed, 103 insertions(+), 28 deletions(-) diff --git a/bookwyrm/models/bookwyrm_import_job.py b/bookwyrm/models/bookwyrm_import_job.py index 461f2cf0f..9a11fd932 100644 --- a/bookwyrm/models/bookwyrm_import_job.py +++ b/bookwyrm/models/bookwyrm_import_job.py @@ -178,33 +178,41 @@ def upsert_statuses(user, cls, data, book_remote_id): find or create the instances in the database""" for status in data: + if is_alias( + user, status["attributedTo"] + ): # don't let l33t hax0rs steal other people's posts + # update ids and remove replies + status["attributedTo"] = user.remote_id + status["to"] = update_followers_address(user, status["to"]) + status["cc"] = update_followers_address(user, status["cc"]) + status[ + "replies" + ] = ( + {} + ) # this parses incorrectly but we can't set it without knowing the new id + status["inReplyToBook"] = book_remote_id + parsed = activitypub.parse(status) + if not status_already_exists( + user, parsed + ): # don't duplicate posts on multiple import - # update ids and remove replies - status["attributedTo"] = user.remote_id - status["to"] = update_followers_address(user, status["to"]) - status["cc"] = update_followers_address(user, status["cc"]) - status[ - "replies" - ] = {} # this parses incorrectly but we can't set it without knowing the new id - status["inReplyToBook"] = book_remote_id + instance = parsed.to_model(model=cls, save=True, overwrite=True) - # save new status or do update it if it already exists - parsed = activitypub.parse(status) - instance = parsed.to_model(model=cls, save=True, overwrite=True) + for val in [ + "progress", + "progress_mode", + "position", + "endposition", + "position_mode", + ]: + if status.get(val): + instance.val = status[val] - print(instance.id, instance.privacy) + instance.remote_id = instance.get_remote_id() # update the remote_id + instance.save() # save and broadcast - for val in [ - "progress", - "progress_mode", - "position", - "endposition", - "position_mode", - ]: - if status.get(val): - print(val, status[val]) - instance.val = status[val] - instance.save() + else: + logger.info("User does not have permission to import statuses") def upsert_lists(user, lists, book_id): @@ -369,7 +377,7 @@ def upsert_follows(user, values): if not created: # this request probably failed to connect with the remote - # that means we should save to trigger a re-broadcast + # and should save to trigger a re-broadcast follow_request.save() @@ -419,3 +427,33 @@ def update_followers_address(user, field): field[i] = user.followers_url return field + + +def is_alias(user, remote_id): + """check that the user is listed as movedTo or also_known_as + in the remote user's profile""" + + remote_user = activitypub.resolve_remote_id( + remote_id=remote_id, model=models.User, save=False + ) + + if remote_user: + + if remote_user.moved_to: + return user.remote_id == remote_user.moved_to + + if remote_user.also_known_as: + return user in remote_user.also_known_as.all() + + return False + + +def status_already_exists(user, status): + """check whether this status has already been published + by this user. We can't rely on to_model() because it + only matches on remote_id, which we have to change + *after* saving because it needs the primary key (id)""" + + return models.Status.objects.filter( + user=user, content=status.content, published_date=status.published + ).exists() diff --git a/bookwyrm/templates/import/import_user.html b/bookwyrm/templates/import/import_user.html index f94236958..70b21673c 100644 --- a/bookwyrm/templates/import/import_user.html +++ b/bookwyrm/templates/import/import_user.html @@ -13,7 +13,11 @@ {% trans "Not a valid import file" %} {% endif %} - +

    + {% spaceless %} + {% trans "If you wish to migrate any statuses (comments, reviews, or quotes) you must either set this account as an alias of the one you are migrating from, or move that account to this one, before you import your user data." %} + {% endspaceless %} +

    {% if not site.imports_enabled %}

    diff --git a/bookwyrm/templates/preferences/export-user.html b/bookwyrm/templates/preferences/export-user.html index 8ecca1863..a468c3f74 100644 --- a/bookwyrm/templates/preferences/export-user.html +++ b/bookwyrm/templates/preferences/export-user.html @@ -41,6 +41,11 @@ {% endblocktrans %}

    {% trans "In your new BookWyrm account can choose what to import: you will not have to import everything that is exported." %}

    +

    + {% spaceless %} + {% trans "If you wish to migrate any statuses (comments, reviews, or quotes) you must either set the account you are moving to as an alias of this one, or move this account to the new account, before you import your user data." %} + {% endspaceless %} +

    {% if next_available %}

    {% blocktrans trimmed %} diff --git a/bookwyrm/tests/models/test_bookwyrm_import_job.py b/bookwyrm/tests/models/test_bookwyrm_import_job.py index 3f72f7205..adc04706c 100644 --- a/bookwyrm/tests/models/test_bookwyrm_import_job.py +++ b/bookwyrm/tests/models/test_bookwyrm_import_job.py @@ -312,7 +312,10 @@ class BookwyrmImport(TestCase): # pylint: disable=too-many-public-methods self.assertEqual(models.Review.objects.filter(user=self.local_user).count(), 0) reviews = self.json_data["books"][0]["reviews"] - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.models.bookwyrm_import_job.is_alias", return_value=True): + bookwyrm_import_job.upsert_statuses( self.local_user, models.Review, reviews, self.book.remote_id ) @@ -345,7 +348,11 @@ class BookwyrmImport(TestCase): # pylint: disable=too-many-public-methods self.assertEqual(models.Comment.objects.filter(user=self.local_user).count(), 0) comments = self.json_data["books"][1]["comments"] - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.models.bookwyrm_import_job.is_alias", return_value=True): + bookwyrm_import_job.upsert_statuses( self.local_user, models.Comment, comments, self.book.remote_id ) @@ -371,7 +378,10 @@ class BookwyrmImport(TestCase): # pylint: disable=too-many-public-methods models.Quotation.objects.filter(user=self.local_user).count(), 0 ) quotes = self.json_data["books"][1]["quotations"] - with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"): + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.models.bookwyrm_import_job.is_alias", return_value=True): + bookwyrm_import_job.upsert_statuses( self.local_user, models.Quotation, quotes, self.book.remote_id ) @@ -394,6 +404,24 @@ class BookwyrmImport(TestCase): # pylint: disable=too-many-public-methods models.Quotation.objects.filter(book=self.book).first().position_mode, "PG" ) + def test_get_or_create_quote_unauthorized(self): + """Test get_or_create_review_status with a quote but not authorized""" + + self.assertEqual( + models.Quotation.objects.filter(user=self.local_user).count(), 0 + ) + quotes = self.json_data["books"][1]["quotations"] + with patch( + "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async" + ), patch("bookwyrm.models.bookwyrm_import_job.is_alias", return_value=False): + + bookwyrm_import_job.upsert_statuses( + self.local_user, models.Quotation, quotes, self.book.remote_id + ) + self.assertEqual( + models.Quotation.objects.filter(user=self.local_user).count(), 0 + ) + def test_upsert_list_existing(self): """Take a list and ListItems as JSON and create DB entries if they don't already exist""" From 4a4046a704d9d2abfa72b51f1da33e6f6d0c908a Mon Sep 17 00:00:00 2001 From: Ross Chapman Date: Thu, 14 Dec 2023 11:30:01 -0800 Subject: [PATCH 071/184] Shows message if empty and renames "search" to "filter" --- bookwyrm/templates/shelf/search_filter_field.html | 9 --------- bookwyrm/templates/shelf/shelf.html | 6 ++++-- bookwyrm/templates/shelf/shelves_filter_field.html | 9 +++++++++ .../{search_filters.html => shelves_filters.html} | 2 +- bookwyrm/views/shelf/shelf.py | 11 +++++++---- 5 files changed, 21 insertions(+), 16 deletions(-) delete mode 100644 bookwyrm/templates/shelf/search_filter_field.html create mode 100644 bookwyrm/templates/shelf/shelves_filter_field.html rename bookwyrm/templates/shelf/{search_filters.html => shelves_filters.html} (66%) diff --git a/bookwyrm/templates/shelf/search_filter_field.html b/bookwyrm/templates/shelf/search_filter_field.html deleted file mode 100644 index 5641bae85..000000000 --- a/bookwyrm/templates/shelf/search_filter_field.html +++ /dev/null @@ -1,9 +0,0 @@ -{% extends 'snippets/filters_panel/filter_field.html' %} -{% load i18n %} - -{% block filter %} -

    - - -
    -{% endblock %} diff --git a/bookwyrm/templates/shelf/shelf.html b/bookwyrm/templates/shelf/shelf.html index 91d9ee99f..60b822322 100644 --- a/bookwyrm/templates/shelf/shelf.html +++ b/bookwyrm/templates/shelf/shelf.html @@ -101,18 +101,20 @@ {% plural %} {{ formatted_count }} books {% endblocktrans %} - {% if books.has_other_pages %} {% blocktrans trimmed with start=books.start_index end=books.end_index %} (showing {{ start }}-{{ end }}) {% endblocktrans %} {% endif %} + {% if shelves_filter_msg %} + - {{ shelves_filter_msg }} "{{ shelves_filter_query }}" + {% endif %} {% endif %} {% endwith %} {% if books|length > 0 %} - {% include 'shelf/search_filters.html' with user=user query=query %} + {% include 'shelf/shelves_filters.html' with user=user query=query %} {% endif %} diff --git a/bookwyrm/templates/shelf/shelves_filter_field.html b/bookwyrm/templates/shelf/shelves_filter_field.html new file mode 100644 index 000000000..707f033ea --- /dev/null +++ b/bookwyrm/templates/shelf/shelves_filter_field.html @@ -0,0 +1,9 @@ +{% extends 'snippets/filters_panel/filter_field.html' %} +{% load i18n %} + +{% block filter %} +
    + + +
    +{% endblock %} diff --git a/bookwyrm/templates/shelf/search_filters.html b/bookwyrm/templates/shelf/shelves_filters.html similarity index 66% rename from bookwyrm/templates/shelf/search_filters.html rename to bookwyrm/templates/shelf/shelves_filters.html index 840eec57e..ad7fc3dbc 100644 --- a/bookwyrm/templates/shelf/search_filters.html +++ b/bookwyrm/templates/shelf/shelves_filters.html @@ -1,5 +1,5 @@ {% extends 'snippets/filters_panel/filters_panel.html' %} {% block filter_fields %} - {% include 'shelf/search_filter_field.html' %} + {% include 'shelf/shelves_filter_field.html' %} {% endblock %} diff --git a/bookwyrm/views/shelf/shelf.py b/bookwyrm/views/shelf/shelf.py index 0617fcc56..2b9ab176a 100644 --- a/bookwyrm/views/shelf/shelf.py +++ b/bookwyrm/views/shelf/shelf.py @@ -34,7 +34,8 @@ class Shelf(View): else: shelves = models.Shelf.privacy_filter(request.user).filter(user=user).all() - shelves_search_query = request.GET.get("shelves_q") + shelves_filter_query = request.GET.get("filter") + shelves_filter_msg = "" # get the shelf and make sure the logged in user should be able to see it if shelf_identifier: @@ -92,8 +93,9 @@ class Shelf(View): books = sort_books(books, request.GET.get("sort")) - if shelves_search_query: - books = search(shelves_search_query, books=books) + if shelves_filter_query: + books = search(shelves_filter_query, books=books) or books + shelves_filter_msg = "We couldn't find any books that matched" paginated = Paginator( books, @@ -112,7 +114,8 @@ class Shelf(View): "page_range": paginated.get_elided_page_range( page.number, on_each_side=2, on_ends=1 ), - "shelves_search_query": shelves_search_query, + "shelves_filter_query": shelves_filter_query, + "shelves_filter_msg": shelves_filter_msg, } return TemplateResponse(request, "shelf/shelf.html", data) From bd3acdbf31887801138324574726cff2e6c21a6f Mon Sep 17 00:00:00 2001 From: Ross Chapman Date: Thu, 14 Dec 2023 12:33:27 -0800 Subject: [PATCH 072/184] Puts string in template --- bookwyrm/templates/shelf/shelf.html | 4 ++-- bookwyrm/views/shelf/shelf.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bookwyrm/templates/shelf/shelf.html b/bookwyrm/templates/shelf/shelf.html index 60b822322..d224b0a4f 100644 --- a/bookwyrm/templates/shelf/shelf.html +++ b/bookwyrm/templates/shelf/shelf.html @@ -106,8 +106,8 @@ (showing {{ start }}-{{ end }}) {% endblocktrans %} {% endif %} - {% if shelves_filter_msg %} - - {{ shelves_filter_msg }} "{{ shelves_filter_query }}" + {% if show_shelves_filter_msg %} + - {% trans "We couldn't find any books that matched" %} "{{ shelves_filter_query }}" {% endif %} {% endif %} diff --git a/bookwyrm/views/shelf/shelf.py b/bookwyrm/views/shelf/shelf.py index 2b9ab176a..eae57b409 100644 --- a/bookwyrm/views/shelf/shelf.py +++ b/bookwyrm/views/shelf/shelf.py @@ -35,7 +35,7 @@ class Shelf(View): shelves = models.Shelf.privacy_filter(request.user).filter(user=user).all() shelves_filter_query = request.GET.get("filter") - shelves_filter_msg = "" + show_shelves_filter_msg = False # get the shelf and make sure the logged in user should be able to see it if shelf_identifier: @@ -95,7 +95,7 @@ class Shelf(View): if shelves_filter_query: books = search(shelves_filter_query, books=books) or books - shelves_filter_msg = "We couldn't find any books that matched" + show_shelves_filter_msg = True paginated = Paginator( books, @@ -115,7 +115,7 @@ class Shelf(View): page.number, on_each_side=2, on_ends=1 ), "shelves_filter_query": shelves_filter_query, - "shelves_filter_msg": shelves_filter_msg, + "show_shelves_filter_msg": show_shelves_filter_msg, } return TemplateResponse(request, "shelf/shelf.html", data) From 44d21d1ba474ae71b05fd0195f9a7ae7c73719cc Mon Sep 17 00:00:00 2001 From: Ross Chapman Date: Thu, 14 Dec 2023 13:04:45 -0800 Subject: [PATCH 073/184] Updates view logic --- bookwyrm/templates/shelf/shelf.html | 14 +++++++------- bookwyrm/views/shelf/shelf.py | 4 +--- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/bookwyrm/templates/shelf/shelf.html b/bookwyrm/templates/shelf/shelf.html index d224b0a4f..faadd84ab 100644 --- a/bookwyrm/templates/shelf/shelf.html +++ b/bookwyrm/templates/shelf/shelf.html @@ -106,16 +106,11 @@ (showing {{ start }}-{{ end }}) {% endblocktrans %} {% endif %} - {% if show_shelves_filter_msg %} - - {% trans "We couldn't find any books that matched" %} "{{ shelves_filter_query }}" - {% endif %} {% endif %} {% endwith %} - {% if books|length > 0 %} - {% include 'shelf/shelves_filters.html' with user=user query=query %} - {% endif %} + {% include 'shelf/shelves_filters.html' with user=user query=query %} {% if is_self and shelf.id %} @@ -215,7 +210,12 @@
  • {% else %} -

    {% trans "This shelf is empty." %}

    +

    {% if shelves_filter_query %} + {% trans "We couldn't find any books that matched" %} "{{ shelves_filter_query }}" + {% else %} + {% trans "This shelf is empty." %} + {% endif %} +

    {% endif %}
    diff --git a/bookwyrm/views/shelf/shelf.py b/bookwyrm/views/shelf/shelf.py index eae57b409..17e17433f 100644 --- a/bookwyrm/views/shelf/shelf.py +++ b/bookwyrm/views/shelf/shelf.py @@ -94,8 +94,7 @@ class Shelf(View): books = sort_books(books, request.GET.get("sort")) if shelves_filter_query: - books = search(shelves_filter_query, books=books) or books - show_shelves_filter_msg = True + books = search(shelves_filter_query, books=books) paginated = Paginator( books, @@ -115,7 +114,6 @@ class Shelf(View): page.number, on_each_side=2, on_ends=1 ), "shelves_filter_query": shelves_filter_query, - "show_shelves_filter_msg": show_shelves_filter_msg, } return TemplateResponse(request, "shelf/shelf.html", data) From fb369584442c64e70e3ec41c2f39aed240741666 Mon Sep 17 00:00:00 2001 From: Ross Chapman Date: Thu, 14 Dec 2023 13:47:51 -0800 Subject: [PATCH 074/184] Removes unused variable --- bookwyrm/views/shelf/shelf.py | 1 - 1 file changed, 1 deletion(-) diff --git a/bookwyrm/views/shelf/shelf.py b/bookwyrm/views/shelf/shelf.py index 17e17433f..aac8085d0 100644 --- a/bookwyrm/views/shelf/shelf.py +++ b/bookwyrm/views/shelf/shelf.py @@ -35,7 +35,6 @@ class Shelf(View): shelves = models.Shelf.privacy_filter(request.user).filter(user=user).all() shelves_filter_query = request.GET.get("filter") - show_shelves_filter_msg = False # get the shelf and make sure the logged in user should be able to see it if shelf_identifier: From a4172214d16f2515b72c238df47f15229b9578a4 Mon Sep 17 00:00:00 2001 From: Ross Chapman Date: Fri, 15 Dec 2023 13:17:23 -0800 Subject: [PATCH 075/184] Updates size of filters panel label --- bookwyrm/views/shelf/shelf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/bookwyrm/views/shelf/shelf.py b/bookwyrm/views/shelf/shelf.py index aac8085d0..a39512fe6 100644 --- a/bookwyrm/views/shelf/shelf.py +++ b/bookwyrm/views/shelf/shelf.py @@ -113,6 +113,7 @@ class Shelf(View): page.number, on_each_side=2, on_ends=1 ), "shelves_filter_query": shelves_filter_query, + "size": "small", } return TemplateResponse(request, "shelf/shelf.html", data) From b728bb43232651d968be7aa477c2c62570d4b427 Mon Sep 17 00:00:00 2001 From: Ross Chapman Date: Sat, 16 Dec 2023 12:05:35 -0800 Subject: [PATCH 076/184] Uses block trans --- bookwyrm/templates/shelf/shelf.html | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/bookwyrm/templates/shelf/shelf.html b/bookwyrm/templates/shelf/shelf.html index faadd84ab..71f4bc088 100644 --- a/bookwyrm/templates/shelf/shelf.html +++ b/bookwyrm/templates/shelf/shelf.html @@ -210,12 +210,17 @@ {% else %} -

    {% if shelves_filter_query %} - {% trans "We couldn't find any books that matched" %} "{{ shelves_filter_query }}" - {% else %} - {% trans "This shelf is empty." %} - {% endif %} -

    +

    + + {% if shelves_filter_query %} + {% blocktrans trimmed %} + We couldn't find any books that matched {{ shelves_filter_query }} + {% endblocktrans %} + {% else %} + {% trans "This shelf is empty." %} + {% endif %} + +

    {% endif %}
    From 430e4eb90dd108ce8cbbd1409464ddec30360e58 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 17 Dec 2023 06:52:49 -0800 Subject: [PATCH 077/184] Update bookwyrm/settings.py Co-authored-by: Demid --- bookwyrm/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bookwyrm/settings.py b/bookwyrm/settings.py index f0e3a8422..b3c918703 100644 --- a/bookwyrm/settings.py +++ b/bookwyrm/settings.py @@ -328,7 +328,7 @@ LANGUAGES = [ ("pt-pt", _("Português Europeu (European Portuguese)")), ("ro-ro", _("Română (Romanian)")), ("sv-se", _("Svenska (Swedish)")), - ("uk-ua", _("Українська (Ukranian)")), + ("uk-ua", _("Українська (Ukrainian)")), ("zh-hans", _("简体中文 (Simplified Chinese)")), ("zh-hant", _("繁體中文 (Traditional Chinese)")), ] From 47cdc14bc081b369d48511c10804f3a1daa5b35d Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 17 Dec 2023 06:54:39 -0800 Subject: [PATCH 078/184] Update bookwyrm/migrations/0189_alter_user_preferred_language.py Co-authored-by: Demid --- bookwyrm/migrations/0189_alter_user_preferred_language.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bookwyrm/migrations/0189_alter_user_preferred_language.py b/bookwyrm/migrations/0189_alter_user_preferred_language.py index 37cdeb410..d9d9777c7 100644 --- a/bookwyrm/migrations/0189_alter_user_preferred_language.py +++ b/bookwyrm/migrations/0189_alter_user_preferred_language.py @@ -34,7 +34,7 @@ class Migration(migrations.Migration): ("pt-pt", "Português Europeu (European Portuguese)"), ("ro-ro", "Română (Romanian)"), ("sv-se", "Svenska (Swedish)"), - ("uk-ua", "Українська (Ukranian)"), + ("uk-ua", "Українська (Ukrainian)"), ("zh-hans", "简体中文 (Simplified Chinese)"), ("zh-hant", "繁體中文 (Traditional Chinese)"), ], From 9b3f4933acade43f391668accbe8f791161e590f Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 17 Dec 2023 06:55:43 -0800 Subject: [PATCH 079/184] Fixes language code for Ukrainian --- bw-dev | 2 +- locale/en_US/LC_MESSAGES/django.po | 8 +- locale/eo_UY/LC_MESSAGES/django.mo | Bin 145168 -> 145168 bytes locale/eo_UY/LC_MESSAGES/django.po | 2 +- locale/es_ES/LC_MESSAGES/django.mo | Bin 149896 -> 149896 bytes locale/es_ES/LC_MESSAGES/django.po | 2 +- locale/eu_ES/LC_MESSAGES/django.mo | Bin 150964 -> 151115 bytes locale/eu_ES/LC_MESSAGES/django.po | 42 +++--- locale/fr_FR/LC_MESSAGES/django.mo | Bin 154174 -> 44850 bytes locale/gl_ES/LC_MESSAGES/django.mo | Bin 146412 -> 146412 bytes locale/gl_ES/LC_MESSAGES/django.po | 2 +- locale/it_IT/LC_MESSAGES/django.mo | Bin 146772 -> 146772 bytes locale/it_IT/LC_MESSAGES/django.po | 2 +- locale/nl_NL/LC_MESSAGES/django.mo | Bin 148744 -> 148744 bytes locale/nl_NL/LC_MESSAGES/django.po | 2 +- locale/uk_UA/LC_MESSAGES/django.mo | Bin 137627 -> 146444 bytes locale/uk_UA/LC_MESSAGES/django.po | 194 +++++++++++++-------------- locale/zh_Hans/LC_MESSAGES/django.mo | Bin 94539 -> 44096 bytes locale/zh_Hant/LC_MESSAGES/django.mo | Bin 38029 -> 38839 bytes 19 files changed, 130 insertions(+), 126 deletions(-) diff --git a/bw-dev b/bw-dev index 1fd1ea4aa..27c20fe45 100755 --- a/bw-dev +++ b/bw-dev @@ -150,7 +150,6 @@ case "$CMD" in git fetch origin l10n_main:l10n_main git checkout l10n_main locale/ca_ES git checkout l10n_main locale/de_DE - git checkout l10n_main locale/en_UK git checkout l10n_main locale/eo_UY git checkout l10n_main locale/es_ES git checkout l10n_main locale/eu_ES @@ -166,6 +165,7 @@ case "$CMD" in git checkout l10n_main locale/pt_BR git checkout l10n_main locale/ro_RO git checkout l10n_main locale/sv_SE + git checkout l10n_main locale/uk_UA git checkout l10n_main locale/zh_Hans git checkout l10n_main locale/zh_Hant runweb django-admin makemessages --no-wrap --ignore=venv -l en_US $@ diff --git a/locale/en_US/LC_MESSAGES/django.po b/locale/en_US/LC_MESSAGES/django.po index 9c0243f7e..e72c13488 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: 2023-12-12 23:38+0000\n" +"POT-Creation-Date: 2023-12-17 14:55+0000\n" "PO-Revision-Date: 2021-02-28 17:19-0800\n" "Last-Translator: Mouse Reeve \n" "Language-Team: English \n" @@ -461,10 +461,14 @@ msgid "Svenska (Swedish)" msgstr "" #: bookwyrm/settings.py:331 -msgid "简体中文 (Simplified Chinese)" +msgid "Українська (Ukranian)" msgstr "" #: bookwyrm/settings.py:332 +msgid "简体中文 (Simplified Chinese)" +msgstr "" + +#: bookwyrm/settings.py:333 msgid "繁體中文 (Traditional Chinese)" msgstr "" diff --git a/locale/eo_UY/LC_MESSAGES/django.mo b/locale/eo_UY/LC_MESSAGES/django.mo index 96e639c49bb0d2f45972499ac0ad14b22e006e6a..1502e9eed90f3a18da552f3b8bf11aafc53b9c95 100644 GIT binary patch delta 28 kcmbR6j$^_*j)pCa$^l$Px`xII1_o9J=G%1x7#}|a0FX8bp#T5? delta 28 kcmbR6j$^_*j)pCa$^l%4x(4P7hNf1=7Ta|L7#}|a0FbB&tpET3 diff --git a/locale/eo_UY/LC_MESSAGES/django.po b/locale/eo_UY/LC_MESSAGES/django.po index 83cecfab2..907921f69 100644 --- a/locale/eo_UY/LC_MESSAGES/django.po +++ b/locale/eo_UY/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-11-02 21:32+0000\n" -"PO-Revision-Date: 2023-11-07 15:38\n" +"PO-Revision-Date: 2023-12-13 00:07\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Esperanto\n" "Language: eo\n" diff --git a/locale/es_ES/LC_MESSAGES/django.mo b/locale/es_ES/LC_MESSAGES/django.mo index 7e41239ead09b4ffc5a2ccc0250b8729ffc8f8d3..7247be33430e9bc3859b7375d511bff1b7fa4eb1 100644 GIT binary patch delta 28 jcmeB}%-J!SvtbLPasZc+uA#Alfq|8Q*>>Fk#^|2_dzuJm delta 28 jcmeB}%-J!SvtbLPasZd1u7R\n" "Language-Team: Spanish\n" "Language: es\n" diff --git a/locale/eu_ES/LC_MESSAGES/django.mo b/locale/eu_ES/LC_MESSAGES/django.mo index ebdc996cb8c2c4430af07d8ce47949590658e981..89ea5b63e7b04a0b30538da10d10246e0c0f5d8b 100644 GIT binary patch delta 12308 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

    q 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 T|HoO}!-=#f6)x!E)Up2!0Ji|6 delta 12194 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 gNNDB7\n" "Language-Team: Basque\n" "Language: eu\n" @@ -602,7 +602,7 @@ msgstr "%(year)s liburuetan" #: bookwyrm/templates/annual_summary/layout.html:47 #, python-format msgid "%(display_name)s’s year of reading" -msgstr "%(display_name)s(r)en irakurketa-urtea" +msgstr "%(display_name)s erabiltzailearen irakurketa-urtea" #: bookwyrm/templates/annual_summary/layout.html:53 msgid "Share this page" @@ -619,7 +619,7 @@ msgstr "Kopiatuta!" #: bookwyrm/templates/annual_summary/layout.html:77 msgid "Sharing status: public with key" -msgstr "Egoeraren partekatzea: publikoa klabearekin" +msgstr "Egoeraren partekatzea: publikoa gakoarekin" #: bookwyrm/templates/annual_summary/layout.html:78 msgid "The page can be seen by anyone with the complete address." @@ -1723,7 +1723,7 @@ msgstr "%(username)s(e)k %(username)s finished reading %(book_title)s" -msgstr "%(username)s(e)k %(book_title)s irakurtzen bukatu du" +msgstr "%(username)s erabiltzaileak %(book_title)s irakurtzen bukatu du" #: bookwyrm/templates/discover/card-header.html:18 #, python-format @@ -3614,12 +3614,12 @@ msgstr "%(related_user)s eta beste %(other #: bookwyrm/templates/notifications/items/boost.html:90 #, python-format msgid "%(related_user)s boosted your status" -msgstr "%(related_user)s(e)k zure egoera bultzatu du" +msgstr "%(related_user)s erabiltzaileak zure egoera bultzatu du" #: bookwyrm/templates/notifications/items/boost.html:96 #, python-format msgid "%(related_user)s and %(second_user)s boosted your status" -msgstr "%(related_user)s eta %(second_user)s(e)k zure egoera bultzatu dute" +msgstr "%(related_user)s eta %(second_user)s erabiltzaileek zure egoera bultzatu dute" #: bookwyrm/templates/notifications/items/boost.html:105 #, python-format @@ -3674,17 +3674,17 @@ msgstr "%(related_user)s eta beste %(other #: bookwyrm/templates/notifications/items/fav.html:90 #, python-format msgid "%(related_user)s liked your status" -msgstr "%(related_user)s(e)k zure egoera maitatu zuen" +msgstr "%(related_user)s erabiltzaileak zure egoera atsegin du" #: bookwyrm/templates/notifications/items/fav.html:96 #, python-format msgid "%(related_user)s and %(second_user)s liked your status" -msgstr "%(related_user)s eta %(second_user)s (e)k zure egoera atsegin dute" +msgstr "%(related_user)s eta %(second_user)s erabiltzaileek zure egoera atsegin dute" #: bookwyrm/templates/notifications/items/fav.html:105 #, python-format msgid "%(related_user)s and %(other_user_display_count)s others liked your status" -msgstr "%(related_user)s eta %(other_user_display_count)s erabiltzailek zure egoera maitatu zuten" +msgstr "%(related_user)s eta %(other_user_display_count)s erabiltzailek zure egoera atsegin dute" #: bookwyrm/templates/notifications/items/follow.html:16 #, python-format @@ -3761,7 +3761,7 @@ msgstr "%(related_user)s erabiltzaileak %(related_user)s mentioned you in a status" -msgstr "%(related_user)s(e)k aipatu egin zaitu egoera batean" +msgstr "%(related_user)s erabiltzaileak aipatu zaitu egoera batean" #: bookwyrm/templates/notifications/items/move_user.html:18 #, python-format @@ -3801,7 +3801,7 @@ msgstr "%(related_user)s(e)k %(book_ti #: bookwyrm/templates/notifications/items/reply.html:39 #, python-format msgid "%(related_user)s replied to your status" -msgstr "%(related_user)s(e)k zure egoerari erantzun zion" +msgstr "%(related_user)s erabiltzaileak zure egoerari erantzun dio" #: bookwyrm/templates/notifications/items/report.html:15 #, python-format @@ -6444,7 +6444,7 @@ msgstr "Izena eman" #: bookwyrm/templates/snippets/report_modal.html:8 #, python-format msgid "Report @%(username)s's status" -msgstr "Salatu @%(username)s(r)en egoera" +msgstr "Salatu @%(username)s erabiltzailearen egoera" #: bookwyrm/templates/snippets/report_modal.html:10 #, python-format @@ -6555,7 +6555,7 @@ msgstr "(e)k %(book)s(r)i buruzko iruzkina egin du #: bookwyrm/templates/snippets/status/headers/note.html:8 #, python-format msgid "replied to %(username)s's status" -msgstr "%(username)s(r)en egoerari erantzun dio" +msgstr "%(username)s erabiltzailearen egoerari erantzun diot" #: bookwyrm/templates/snippets/status/headers/quotation.html:8 #, python-format @@ -6575,12 +6575,12 @@ msgstr "(e)k %(book)s puntuatu du:" #: bookwyrm/templates/snippets/status/headers/read.html:10 #, python-format msgid "finished reading %(book)s by %(author_name)s" -msgstr "(e)k %(author_name)s(r)en %(book)s irakurtzen bukatu du" +msgstr "%(author_name)s egilearen %(book)s irakurtzen amaitu dut" #: bookwyrm/templates/snippets/status/headers/read.html:17 #, python-format msgid "finished reading %(book)s" -msgstr "(e)k %(book)s irakurtzen bukatu du" +msgstr "%(book)s irakurtzen amaitu dut" #: bookwyrm/templates/snippets/status/headers/reading.html:10 #, python-format @@ -6605,12 +6605,12 @@ msgstr "(e)k %(book)s(r)en kritika egin du" #: bookwyrm/templates/snippets/status/headers/stopped_reading.html:10 #, python-format msgid "stopped reading %(book)s by %(author_name)s" -msgstr "%(author_name)s(r)en %(book)s irakurtzeari utzi dio" +msgstr "%(author_name)s egilearen %(book)s irakurtzeari utzi diot" #: bookwyrm/templates/snippets/status/headers/stopped_reading.html:17 #, python-format msgid "stopped reading %(book)s" -msgstr "%(book)s irakurtzeari utzi dio" +msgstr "%(book)s irakurtzeari utzi diot" #: bookwyrm/templates/snippets/status/headers/to_read.html:10 #, python-format @@ -6694,7 +6694,7 @@ msgstr "%(username)s(r)en liburuak" #: bookwyrm/templates/user/goal.html:12 #, python-format msgid "%(year)s Reading Progress" -msgstr "%(year)s(e)ko irakurketa-aurerapena" +msgstr "%(year)s urteko irakurketa-aurrerapena" #: bookwyrm/templates/user/goal.html:16 msgid "Edit Goal" @@ -6703,7 +6703,7 @@ msgstr "Editatu helburua" #: bookwyrm/templates/user/goal.html:32 #, python-format msgid "%(name)s hasn't set a reading goal for %(year)s." -msgstr "%(name)s(e)k ez du irakurketa-helburu bat ezarri %(year)s(e)rako." +msgstr "%(name)s erabiltzaileak ez du irakurketa-helburu bat ezarri %(year)s urtera begira." #: bookwyrm/templates/user/goal.html:44 #, python-format @@ -6790,7 +6790,7 @@ msgstr "Ikusi liburu guztiak" #: bookwyrm/templates/user/user.html:69 #, python-format msgid "%(current_year)s Reading Goal" -msgstr "%(current_year)s Irakurketa xedea" +msgstr "%(current_year)s urteko irakurketa-helburua" #: bookwyrm/templates/user/user.html:76 msgid "User Activity" @@ -6875,7 +6875,7 @@ msgstr "%(title)s: %(subtitle)s" #: bookwyrm/views/rss_feed.py:35 #, python-brace-format msgid "Status updates from {obj.display_name}" -msgstr "{obj.display_name}-ren egoera eguneratzeak" +msgstr "{obj.display_name} erabiltzailearen egoera-eguneratzeak" #: bookwyrm/views/rss_feed.py:80 #, python-brace-format diff --git a/locale/fr_FR/LC_MESSAGES/django.mo b/locale/fr_FR/LC_MESSAGES/django.mo index 46882a4dceaf89059a11ee6c1a3fce74cc85843c..4cdcbf8ea2a3ffdeed740317a055f435e5954b7c 100644 GIT binary patch literal 44850 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 diff --git a/locale/gl_ES/LC_MESSAGES/django.mo b/locale/gl_ES/LC_MESSAGES/django.mo index 9b2c7c2ff22a3695dde4b588ba9ed2fcccbdd6bb..1794c286a83a5e5b169b9633583d3f1aa266c9a6 100644 GIT binary patch delta 28 kcmaF!o#V}Sj)pCaAN{$EbPbIa3=FIc%(nmbXZ-jY0Jvcc7XSbN delta 28 kcmaF!o#V}Sj)pCaAN{!ubq$Oa49u*Ijko{yXZ-jY0Jwq-8vp\n" "Language-Team: Galician\n" "Language: gl\n" diff --git a/locale/it_IT/LC_MESSAGES/django.mo b/locale/it_IT/LC_MESSAGES/django.mo index db21106f4de9c7b6e8ad92b26d83b98882a96325..dd274f967840fd1a5f9cbc31c39fd82b2cb978dd 100644 GIT binary patch delta 28 kcmccei{r{Kj)pCayxv?!x`xII1_o9JX4}QR8EroS0G#OwZ~y=R delta 28 kcmccei{r{Kj)pCayxv@fx(3Dy1{PLEhTFxx8EroS0G$X4a{vGU diff --git a/locale/it_IT/LC_MESSAGES/django.po b/locale/it_IT/LC_MESSAGES/django.po index ac2ed38a1..e4220bdfe 100644 --- a/locale/it_IT/LC_MESSAGES/django.po +++ b/locale/it_IT/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-11-02 21:32+0000\n" -"PO-Revision-Date: 2023-11-03 08:21\n" +"PO-Revision-Date: 2023-12-13 00:06\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Italian\n" "Language: it\n" diff --git a/locale/nl_NL/LC_MESSAGES/django.mo b/locale/nl_NL/LC_MESSAGES/django.mo index 94ff7e1de4989a8f547f0e1df339dc48990bdc8c..dd0b3c670c611985f9123b9797a7153e87f06e20 100644 GIT binary patch delta 28 jcmeC^;_T?+Y}mr69KdCyYiO)sU|?lnwp}-X@%9%0dddjU delta 28 jcmeC^;_T?+Y}mr69KdC$YiO=uXkcY*xm`Da@%9%0dnO3l diff --git a/locale/nl_NL/LC_MESSAGES/django.po b/locale/nl_NL/LC_MESSAGES/django.po index c87aca2d2..f37532b2d 100644 --- a/locale/nl_NL/LC_MESSAGES/django.po +++ b/locale/nl_NL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-11-02 21:32+0000\n" -"PO-Revision-Date: 2023-11-17 10:39\n" +"PO-Revision-Date: 2023-12-13 00:06\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Dutch\n" "Language: nl\n" diff --git a/locale/uk_UA/LC_MESSAGES/django.mo b/locale/uk_UA/LC_MESSAGES/django.mo index 1c040fd6e830cb6e6aa48ed77ac999d13ff46f05..656ccf163afc3ad68539e92623519d8a26bf32ae 100644 GIT binary patch delta 30089 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\n" "Language-Team: Ukrainian\n" "Language: uk\n" @@ -4920,44 +4920,44 @@ msgstr[3] "" #: bookwyrm/templates/settings/dashboard/warnings/update_version.html:8 #, python-format msgid "An update is available! You're running v%(current)s and the latest release is %(available)s." -msgstr "" +msgstr "Доступне оновлення! Ви оперуєте v%(current)s, а останній реліз - v%(available)s." #: bookwyrm/templates/settings/email_blocklist/domain_form.html:5 #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:10 msgid "Add domain" -msgstr "" +msgstr "Додати домен" #: bookwyrm/templates/settings/email_blocklist/domain_form.html:11 msgid "Domain:" -msgstr "" +msgstr "Домен:" #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:5 #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:7 #: bookwyrm/templates/settings/layout.html:65 msgid "Email Blocklist" -msgstr "" +msgstr "Заблоковані Email" #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:18 msgid "When someone tries to register with an email from this domain, no account will be created. The registration process will appear to have worked." -msgstr "" +msgstr "Коли хтось спробує зареєструвати адресу електронної пошти з цього домену, обліковий запис не буде створено, хоча сама реєстрація буде виглядати робочою." #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:29 #: bookwyrm/templates/settings/ip_blocklist/ip_blocklist.html:27 msgid "Options" -msgstr "" +msgstr "Опції" #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:38 #, python-format msgid "%(display_count)s user" msgid_plural "%(display_count)s users" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%(display_count)s користувач" +msgstr[1] "%(display_count)s користувача" +msgstr[2] "%(display_count)s користувачів" +msgstr[3] "%(display_count)s користувачів" #: bookwyrm/templates/settings/email_blocklist/email_blocklist.html:59 msgid "No email domains currently blocked" -msgstr "" +msgstr "Наразі немає заблокованих доменів" #: bookwyrm/templates/settings/email_config.html:6 #: bookwyrm/templates/settings/email_config.html:8 @@ -4976,19 +4976,19 @@ msgstr "Тестовий email успішно надісланий." #: bookwyrm/templates/settings/email_config.html:32 #: bookwyrm/templates/setup/config.html:102 msgid "Email sender:" -msgstr "" +msgstr "Відправник:" #: bookwyrm/templates/settings/email_config.html:39 msgid "Email backend:" -msgstr "" +msgstr "Email-бекенд:" #: bookwyrm/templates/settings/email_config.html:46 msgid "Host:" -msgstr "" +msgstr "Хост:" #: bookwyrm/templates/settings/email_config.html:53 msgid "Host user:" -msgstr "" +msgstr "Користувач хоста:" #: bookwyrm/templates/settings/email_config.html:60 msgid "Port:" @@ -5020,7 +5020,7 @@ msgstr "Відправити тестовий email" #: bookwyrm/templates/settings/federation/instance_list.html:9 #: bookwyrm/templates/settings/federation/instance_list.html:10 msgid "Add instance" -msgstr "" +msgstr "Додати інстанс" #: bookwyrm/templates/settings/federation/edit_instance.html:12 #: bookwyrm/templates/settings/federation/instance.html:24 @@ -5029,227 +5029,227 @@ msgstr "" #: bookwyrm/templates/settings/federation/instance_list.html:5 #: bookwyrm/templates/settings/layout.html:47 msgid "Federated Instances" -msgstr "" +msgstr "Інстанси У Федерації" #: bookwyrm/templates/settings/federation/edit_instance.html:28 #: bookwyrm/templates/settings/federation/instance_blocklist.html:28 msgid "Import block list" -msgstr "" +msgstr "Імпортувати список заблокованих" #: bookwyrm/templates/settings/federation/edit_instance.html:43 msgid "Instance:" -msgstr "" +msgstr "Інстанс:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 #: bookwyrm/templates/settings/users/user_info.html:119 msgid "Status:" -msgstr "" +msgstr "Статус:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 #: bookwyrm/templates/settings/users/user_info.html:113 msgid "Software:" -msgstr "" +msgstr "ПО:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 #: bookwyrm/templates/settings/users/user_info.html:116 msgid "Version:" -msgstr "" +msgstr "Версія:" #: bookwyrm/templates/settings/federation/instance.html:17 msgid "Refresh data" -msgstr "" +msgstr "Оновити дані" #: bookwyrm/templates/settings/federation/instance.html:37 msgid "Details" -msgstr "" +msgstr "Подробиці" #: bookwyrm/templates/settings/federation/instance.html:53 #: bookwyrm/templates/user/layout.html:84 msgid "Activity" -msgstr "" +msgstr "Активність" #: bookwyrm/templates/settings/federation/instance.html:56 msgid "Users:" -msgstr "" +msgstr "Користувачів:" #: bookwyrm/templates/settings/federation/instance.html:59 #: bookwyrm/templates/settings/federation/instance.html:65 msgid "View all" -msgstr "" +msgstr "Переглянути всіх" #: bookwyrm/templates/settings/federation/instance.html:62 #: bookwyrm/templates/settings/users/user_info.html:66 msgid "Reports:" -msgstr "" +msgstr "Скарг:" #: bookwyrm/templates/settings/federation/instance.html:68 msgid "Followed by us:" -msgstr "" +msgstr "Ми підписані на:" #: bookwyrm/templates/settings/federation/instance.html:73 msgid "Followed by them:" -msgstr "" +msgstr "Вони підписані на:" #: bookwyrm/templates/settings/federation/instance.html:78 msgid "Blocked by us:" -msgstr "" +msgstr "Заблокованих нами:" #: bookwyrm/templates/settings/federation/instance.html:90 #: bookwyrm/templates/settings/users/user_info.html:123 msgid "Notes" -msgstr "" +msgstr "Нотатки" #: bookwyrm/templates/settings/federation/instance.html:97 msgid "No notes" -msgstr "" +msgstr "Нема нотаток" #: bookwyrm/templates/settings/federation/instance.html:116 #: bookwyrm/templates/settings/link_domains/link_domains.html:87 #: bookwyrm/templates/snippets/block_button.html:5 msgid "Block" -msgstr "" +msgstr "Заблокувати" #: bookwyrm/templates/settings/federation/instance.html:117 msgid "All users from this instance will be deactivated." -msgstr "" +msgstr "Усіх користувачів з цього інстансу буде деактивовано." #: bookwyrm/templates/settings/federation/instance.html:122 #: bookwyrm/templates/snippets/block_button.html:10 msgid "Un-block" -msgstr "" +msgstr "Розблокувати" #: bookwyrm/templates/settings/federation/instance.html:123 msgid "All users from this instance will be re-activated." -msgstr "" +msgstr "Усіх користувачів з цього інстансу буде реактивовано." #: bookwyrm/templates/settings/federation/instance_blocklist.html:6 #: bookwyrm/templates/settings/federation/instance_blocklist.html:15 msgid "Import Blocklist" -msgstr "" +msgstr "Імпортувати Список Заблокованих" #: bookwyrm/templates/settings/federation/instance_blocklist.html:38 msgid "Success!" -msgstr "" +msgstr "Успішно!" #: bookwyrm/templates/settings/federation/instance_blocklist.html:42 msgid "Successfully blocked:" -msgstr "" +msgstr "Успішно заблоковано:" #: bookwyrm/templates/settings/federation/instance_blocklist.html:44 msgid "Failed:" -msgstr "" +msgstr "Помилка:" #: bookwyrm/templates/settings/federation/instance_blocklist.html:62 msgid "Expects a json file in the format provided by FediBlock, with a list of entries that have instance and url fields. For example:" -msgstr "" +msgstr "Це має бути json-файл у форматі FediBlock, зі списком елементів, які мають поля instance та url. Наприклад:" #: bookwyrm/templates/settings/federation/instance_list.html:36 #: bookwyrm/templates/settings/users/server_filter.html:5 msgid "Instance name" -msgstr "" +msgstr "Назва інстансу" #: bookwyrm/templates/settings/federation/instance_list.html:44 msgid "Last updated" -msgstr "" +msgstr "Останнє оновлення" #: bookwyrm/templates/settings/federation/instance_list.html:48 #: bookwyrm/templates/settings/federation/software_filter.html:5 msgid "Software" -msgstr "" +msgstr "ПО" #: bookwyrm/templates/settings/federation/instance_list.html:70 msgid "No instances found" -msgstr "" +msgstr "Інстансів не знайдено" #: bookwyrm/templates/settings/imports/complete_import_modal.html:4 msgid "Stop import?" -msgstr "" +msgstr "Зупинити імпорт?" #: bookwyrm/templates/settings/imports/imports.html:19 msgid "Disable starting new imports" -msgstr "" +msgstr "Вимкнути створення нових імпортів" #: bookwyrm/templates/settings/imports/imports.html:30 msgid "This is only intended to be used when things have gone very wrong with imports and you need to pause the feature while addressing issues." -msgstr "" +msgstr "Це потрібно лише у тих ситуаціях, коли з імпортами виникли великі проблеми та вам треба тимчасово вимкнути їх щоб розібратися у чому справа." #: bookwyrm/templates/settings/imports/imports.html:31 msgid "While imports are disabled, users will not be allowed to start new imports, but existing imports will not be affected." -msgstr "" +msgstr "Поки імпорти вимкнені, користувачі не зможуть додавати нові, але на наявний імпорт це не вплине." #: bookwyrm/templates/settings/imports/imports.html:36 msgid "Disable imports" -msgstr "" +msgstr "Вимкнути імпорти" #: bookwyrm/templates/settings/imports/imports.html:50 msgid "Users are currently unable to start new imports" -msgstr "" +msgstr "Наразі користувачі не можуть додати новий імпорт" #: bookwyrm/templates/settings/imports/imports.html:55 msgid "Enable imports" -msgstr "" +msgstr "Увімкнути імпорти" #: bookwyrm/templates/settings/imports/imports.html:63 msgid "Limit the amount of imports" -msgstr "" +msgstr "Обмежити кількість імпортувань" #: bookwyrm/templates/settings/imports/imports.html:74 msgid "Some users might try to import a large number of books, which you want to limit." -msgstr "" +msgstr "Деякі користувачі можуть спробувати імпортувати велику кількість книг, що не завадить обмежити." #: bookwyrm/templates/settings/imports/imports.html:75 msgid "Set the value to 0 to not enforce any limit." -msgstr "" +msgstr "Встановіть значення 0, аби не встановлювати жодних обмежень." #: bookwyrm/templates/settings/imports/imports.html:78 msgid "Set import limit to" -msgstr "" +msgstr "Встановити обмеження імпорту у" #: bookwyrm/templates/settings/imports/imports.html:80 msgid "books every" -msgstr "" +msgstr "книг кожні" #: bookwyrm/templates/settings/imports/imports.html:82 msgid "days." -msgstr "" +msgstr "днів." #: bookwyrm/templates/settings/imports/imports.html:86 msgid "Set limit" -msgstr "" +msgstr "Встановити ліміт" #: bookwyrm/templates/settings/imports/imports.html:102 msgid "Completed" -msgstr "" +msgstr "Завершені" #: bookwyrm/templates/settings/imports/imports.html:116 msgid "User" -msgstr "" +msgstr "Користувач" #: bookwyrm/templates/settings/imports/imports.html:125 msgid "Date Updated" -msgstr "" +msgstr "Останнє Оновлення" #: bookwyrm/templates/settings/imports/imports.html:132 msgid "Pending items" -msgstr "" +msgstr "В очікуванні" #: bookwyrm/templates/settings/imports/imports.html:135 msgid "Successful items" -msgstr "" +msgstr "Успішно імпортовано" #: bookwyrm/templates/settings/imports/imports.html:170 msgid "No matching imports found." -msgstr "" +msgstr "Відповідних імпортів не знайдено." #: bookwyrm/templates/settings/invites/manage_invite_requests.html:4 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:11 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:25 #: bookwyrm/templates/settings/invites/manage_invites.html:11 msgid "Invite Requests" -msgstr "" +msgstr "Запити На Запрошення" #: bookwyrm/templates/settings/invites/manage_invite_requests.html:15 #: bookwyrm/templates/settings/invites/manage_invites.html:3 @@ -5257,62 +5257,62 @@ msgstr "" #: bookwyrm/templates/settings/layout.html:42 #: bookwyrm/templates/user_menu.html:60 msgid "Invites" -msgstr "" +msgstr "Запрошення" #: bookwyrm/templates/settings/invites/manage_invite_requests.html:23 msgid "Ignored Invite Requests" -msgstr "" +msgstr "Проігноровані Запити На Запрошення" #: bookwyrm/templates/settings/invites/manage_invite_requests.html:36 msgid "Date requested" -msgstr "" +msgstr "Дата звернення" #: bookwyrm/templates/settings/invites/manage_invite_requests.html:40 msgid "Date accepted" -msgstr "" +msgstr "Дата прийняття" #: bookwyrm/templates/settings/invites/manage_invite_requests.html:45 msgid "Answer" -msgstr "" +msgstr "Відповідь" #: bookwyrm/templates/settings/invites/manage_invite_requests.html:51 msgid "Action" -msgstr "" +msgstr "Дія" #: bookwyrm/templates/settings/invites/manage_invite_requests.html:54 msgid "No requests" -msgstr "" +msgstr "Немає запитів" #: bookwyrm/templates/settings/invites/manage_invite_requests.html:66 #: bookwyrm/templates/settings/invites/status_filter.html:16 msgid "Accepted" -msgstr "" +msgstr "Прийнято" #: bookwyrm/templates/settings/invites/manage_invite_requests.html:68 #: bookwyrm/templates/settings/invites/status_filter.html:12 msgid "Sent" -msgstr "" +msgstr "Відправлено" #: bookwyrm/templates/settings/invites/manage_invite_requests.html:70 #: bookwyrm/templates/settings/invites/status_filter.html:8 msgid "Requested" -msgstr "" +msgstr "Запрошено користувачем" #: bookwyrm/templates/settings/invites/manage_invite_requests.html:80 msgid "Send invite" -msgstr "" +msgstr "Надіслати запрошення" #: bookwyrm/templates/settings/invites/manage_invite_requests.html:82 msgid "Re-send invite" -msgstr "" +msgstr "Надіслати запрошення ще раз" #: bookwyrm/templates/settings/invites/manage_invite_requests.html:102 msgid "Ignore" -msgstr "" +msgstr "Ігнорувати" #: bookwyrm/templates/settings/invites/manage_invite_requests.html:104 msgid "Un-ignore" -msgstr "" +msgstr "Скасувати ігнорування" #: bookwyrm/templates/settings/invites/manage_invite_requests.html:116 msgid "Back to pending requests" @@ -5562,22 +5562,22 @@ msgstr "Оскаржені посилання" #: bookwyrm/templates/settings/reports/report.html:66 msgid "Moderation Activity" -msgstr "" +msgstr "Активність модераторів" #: bookwyrm/templates/settings/reports/report.html:73 #, python-format msgid "%(user)s opened this report" -msgstr "" +msgstr "%(user)s відкрив(-ла) цю скаргу" #: bookwyrm/templates/settings/reports/report.html:86 #, python-format msgid "%(user)s commented on this report:" -msgstr "" +msgstr "%(user)s прокоментував(-ла) цю скаргу:" #: bookwyrm/templates/settings/reports/report.html:90 #, python-format msgid "%(user)s took an action on this report:" -msgstr "" +msgstr "%(user)s вжив(-ла) заходів по цій скарзі:" #: bookwyrm/templates/settings/reports/report_header.html:6 #, python-format @@ -5601,7 +5601,7 @@ msgstr "Скарга #%(report_id)s: Користувач @%(username)s" #: bookwyrm/templates/settings/reports/report_links_table.html:19 msgid "Approve domain" -msgstr "" +msgstr "Підтвердити домен" #: bookwyrm/templates/settings/reports/report_links_table.html:26 msgid "Block domain" @@ -5821,7 +5821,7 @@ msgstr "Інший інстанс" #: bookwyrm/templates/settings/users/user_admin.html:82 #: bookwyrm/templates/settings/users/user_info.html:29 msgid "Moved" -msgstr "" +msgstr "Переміщено" #: bookwyrm/templates/settings/users/user_admin.html:93 msgid "Deleted" @@ -6040,11 +6040,11 @@ msgstr "Редагувати полицю" #: bookwyrm/templates/shelf/shelf.html:25 msgid "You have have moved to" -msgstr "" +msgstr "Ви переїхали до" #: bookwyrm/templates/shelf/shelf.html:28 msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." -msgstr "" +msgstr "Ви можете скасувати цей крок, щоб відновити всі функції, але деякі підписники вже могли відписатися." #: bookwyrm/templates/shelf/shelf.html:39 #: bookwyrm/templates/user/relationships/followers.html:18 @@ -6208,7 +6208,7 @@ msgstr "Коментар:" #: bookwyrm/templates/snippets/create_status/post_options_block.html:19 msgid "Update" -msgstr "" +msgstr "Оновити" #: bookwyrm/templates/snippets/create_status/post_options_block.html:21 msgid "Post" @@ -6419,7 +6419,7 @@ msgstr "%(username)s прочитав(-ла) %(read_count)s #: bookwyrm/templates/snippets/move_user_buttons.html:10 msgid "Follow at new account" -msgstr "" +msgstr "Підписатися на новий акаунт" #: bookwyrm/templates/snippets/page_text.html:8 #, python-format @@ -6783,7 +6783,7 @@ msgstr "Групи: %(username)s" #: bookwyrm/templates/user/layout.html:50 msgid "has moved to" -msgstr "" +msgstr "переїхав(-ла) до" #: bookwyrm/templates/user/layout.html:64 msgid "Follow Requests" @@ -6885,10 +6885,10 @@ msgstr "Жодної активності наразі!" #, python-format msgid "%(display_count)s follower" msgid_plural "%(display_count)s followers" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%(display_count)s підписник" +msgstr[1] "%(display_count)s підписників" +msgstr[2] "%(display_count)s підписників" +msgstr[3] "%(display_count)s підписників" #: bookwyrm/templates/user/user_preview.html:31 #, python-format diff --git a/locale/zh_Hans/LC_MESSAGES/django.mo b/locale/zh_Hans/LC_MESSAGES/django.mo index 566e3c144ec509cf8408d2092449d3af7e01e5db..1d1227f8092b70c68bb692fb532759090142aa83 100644 GIT binary patch literal 44096 zcmchg2b@*axwp49YV0MkL_I(dF*Li5SP(2IC<M7qS`ptP!bO!t_JPsaueiR)7yTX%TZ}>4d z7+wbNg2Ui)*blx1kAU4Sh@y|fvtbHe3x~ie_umXp#{EM$0=@}PgM%(K|FMvwMblwd zxDG*`>}(sPaDw4}eYZ82BaUkKuv1Tj4?QO?Vjm zZ}<^-;H4IRIF$Q1cc1L;PeMJ{3({TDx$sbUq5EG655|2xRQrF%-IdNfRQ%7u!{H40 zQMd@630Fdu?{#=2{1sF^-h_JY9jNE_z0AsS6jV7*gv$36sC-X{ihluAx>rE8|9Gf= zdlnuIzXVh8M^N$KhH8&}23S5vK&5{Q>;k(&r85XB-gu~XnhcfyY^d@tgi3!Y>;hka z$HN~%#s7ozZMZ+~_n^wX&*fIWqoB&u1M0bRpu&ej<$F8Sb7P^}uNJDE9)L>!L8y2$ zpxWy(sQ9a)+Vy#;`Lqpce0>WlUe|$9G#8!;mEKpN{J#Z{g0H)O8&vt;boYBu?Yi$E ztN-y(YUQ+Oi&zlZ9F1FkS050(C>pvrMJR5>n$nkSb*r8feqT}MKdy9O%1``v%G`!9le zZWUxoM@_H~ddLQb!W3ILGoCsC#zEJIWsk?80Do+|Jy|M1T4}KK)L+(EpD&1vJ z^?n&D-)&I!_y#-#{s&Zl7NFAmGt~OI?-0u;1y!#zpz3=*RQ&!>>0RR-4%KeA!K>j& zsQNqy)ebMZ`#a7bLe>AL@KD$WRo{1^(m!yh)%#fZQQW7w`z)w*H+TyC zF;qMJ87jTML&e|c26G<I+cqv)H-9xduwUZ-h$c+wc?c zS5WEv-FeWB){e(PmE%;XdUl6upR?gn@B(-=yauX1w?oyV3igIGp~|rtYMg!r>bd`b z>Zd=r`(5Wj!>zt2!W7}BL6!3=cm});s(w?U@_8C6ov%Q}`yN#L{T8a+ZBXs|CRF*~ zg{tTNBP`xgP|u$LRnBhkZrBUP~~_WO3pq5kAYu>YM0mD-3ImC`%v?6|C=q}Q=rOmK2$yWI|swFaNi7% zh0~$hVJTEORzda8I;e7Qhuz_;Q1RY&z6TY5|68m)he4J5RH*Xwgh#`E@RM*LRDXg! zRJ>0@wbPkU@vrsp&p_p0>F!#n_Gy4B-+T{W47=fe%EP|_`{MpNRKI)_rBCHN8LA%L zq57{6>;Z?tPr-YkZ-NY+=nkm(o1psV8&L6n0#&cyLDl20P|qE3 zm&wz^VQ<_Q!fW7Y=Zmlp?)Tv!*eh-G<{qf|KLvgQE`n@@qKzK@SEzP7e5B2<6QJ7X zRH$}44Qf2~fhxz@&i+vKyaFoT^-%S_1!_EwhKhebRDB+Tioe+XS3<>K>+bC^^gC3$ zd>^V@zjSviRQtT^+^^iyI}$3N6Jb}_&Hb;0k{83E>T@&f0dI$jKiN44YFsUZ>W42v z_3tLAa=hx{zkq7TKS9Z(eJZS;AA{?U%9hkP&bQ?ir9F7`+a)j+{5j=0PRA5BGGadA0v&J1^=7 zl}{Qf-SMzHoC=lx8mRH~52*edJjUeK?NH^O0o5N1oln6W?lln65~V6F`~j$XOoeKf z`B3>Tho{0hquQ40yra)^FwTBe*N!Pl#7yJ@beqHXd`uBu-?hbhVKFm|7^==uRspmGqL*Q%f z{w36S{|oE^56#;;dk#DYcLh{^7r~R@YIr#OD(nkigGztjI+H&qL56H}0o3?g3cJCt zLCJ|$cmETH`CM<~=St^oP;x8>KM5P*DR2W+`F;e?hJS}-9rYb&eA@Z(@z#$sq1y2` z@LqTkf3AQV;HB_y@OW4@!Swdw@HE^r;TiBnsQi8j)n5lN>5hdTg-5^?RDbk?2gCEB z+G&9MU+=uxdAqX$s=vm%JMX*?>iLOKa;B$~WWgEbNVY98@`1K$ZKa9^UGF)A=q`dEbX!;NhRMe(ML7&tRzX4|DgYp~`iq^hAHE0sz;h;=oG6FNZ;Ep^RQcvPpK`8;%744Nzw7Rwxx47@ zx1suTp9d}7RN zdqCB%kGpSoRyfBxb5P}(09D^9?my4{7rXlzcp~BJ-2Xey*P)(kcK2J(e>x9+$ol^T zsC;_4`$Fds_rDXKM0gdv7*2z#*EgWj|2L@Tf9`B`|97C`?Kj!l;}EELM?;OfQ=!(Q zv*3R4VyN|N0Mv8WK*hhod58Otgd*W?K8#7eH2ta zr$Wj1)1dOZ2x@#>?Ys?Yp4EEzea@*+^_b`G)$ZN^HSfL&4}{-$|9^){zYVJ0-i2CE z_n&Ix{1~Y4^PtK(5FQAJyZctC_PN`chX>$(0A3Csgo^)lsB!u|cNd(0fGY2wq4GI! zn(-KC3M#y}yDx((=TPToJ-iaCJsyC{Zwgd;vpxKAcdv0aIll>&-jCh=JLjA5Bly1u zLwij3azUk^f?Ah*z~1misCW$?-U!uR3!uue3abBJg4e=tLZyGq4C6^q@w!2+Fa6*x zZ~*KM7kT&&cogpML6zfI?q7gv@3-9l+?keMf2jHmcHRQ@Tn1`hUf2|0&cs|FygKnPur61eMPbQ1v<)>bdSv^YdJID9l6kX9HBekGlI=sB&$C z2g9#HJ^w0{T>F*teRwGDPs}#p2E$|vRAFAHJ zfy)1n&Uc{d`@ZwYhb^6MQ1Q=pUItbEp-}722q<}XxBE|qia*Q47eSSG9Xt}g0rmXb z&c8#&-}ez8Pf+zZ87kg|P~n%kdnh~%_Xw!+k97aLq2}8?@RM*d{5X6TD*jiX#>o$$ z()~Hq^S^Wc-u>Tl{uL_U=uvBz!=Ro^LHYN9O7|RhUk=so*Sq^psQ6Xz7?^kWRH%4! z+`ZJ@E8#KtzwG|scK!fr9eEud1OE>Dz$4~axh{dq=LV?yd>Tq$x(l8T?}IAu(@^7Y zJ=FYaf*QX+gGa-+pyC}c-*_}sJDv*l+#u(59{y>ld^7M`SOxpSO;F`%_3;04{spT1 z|8V!w3oM@#oToX@c3uX16MraFKKHx-gU&{%axH;9;3}y8coi!DUqH2UGt~2M!yDn> zq3U_vLi7JDlzSvpJ7l4rd(izKaV~?B%g;ll_nQ0v3@U!n{ojSk|9yBIJm4`a-$~Aa z&aqJWKI(kZxyIQ9mF_p8=GW^``AC}zT$ihD!t!9<<|xk|6LD{9yk9Zq4GHy-Uhov^~;0Kxlqq9 zg(}x`?%ocS{&!(N_!{g1_gjn(1V06}-qk^ki&x+kumF!&_!5&FgP`1Z!As!;sD9WC zRiE!e<@0N(au(hFCn){z9jNmC)p_6(=03)mf+}}!=Vk6c9G-~(T~O_EzjLyOH$t`Z z5~%!FL$%9V=T@kEzXO&2>+b%&^Dj{8?!VOPc{o&hXF#QQE>wN`L(Tg^?yiPPw;rAV zAB0MO2~@kR^YE|3V{yOc{w?t1xZj5#gU2nibb3Lx?}bqL-3U|gR@f8X50&3asB*ms zPllVJ@_QXB|35;-i=H&Oa2OnpvkSZs*27Q3bubGLT5kP*FI4`kp!|2hGhpARjJHCC zPloF6rBL%`ExZQ420sf=e%k6a0cyO>g(}aNov%874#(i%3U7iptgv{iog18AhN{=A zup9iX`ya5<+Tm!Z_BjD6-az-i8LD4zha=!<=T_%YtLR(&M?tmc5~%o3L#+dApq~2$ zyaArM+Tu@winke_3BL+ezjvVeVc%ygz2l+$PlbbEFQ|6E$N3#+w=Y`1JODLLHbSlE z--SKlFW`ajz-Ntz!Gm!h>+VzB-5sjjecgQrJRA2Ics*R={(pe#r+1uIRA;gpNH>&J-i%u5xyCBIqnwh`W=gV zF7A(F|10K3+z(-Xf*FnZJ!Udyo+9&Gf&J^4(bzx1bJt`4Jp3~}0CP3|HMsAV9qRWL z%*Syr$2^A7?``-|!Zq)2#y%hO5!?)=s0Di+tic?Q-&*)3{Pg?2A-Wj%7YG}MxfJ_f zF>|nM{@st+i1`P8cj4Fh_d5Px#1t^oJiI&heX&0eHKr=ue`u$NUv>99;yr`WPh&3r z^}tf${_-0|It)tx5cVHp`eLs2ynjX50PK?8>oK+1ze9NE z-{bD_TW6YhuVBBz-RJVm0Do>YVUl_A?>YSc3v&nlH^E*WPvJknF8Q!O>__-Z*gpl2 z#^`)M`76iqQT*P8kHdX1L$LQE?(Nv0#9W5G9>%|Wuw06H1Czr44$Nxo{|1-C1L2ME zP0TjTcQIS=`!^_grQaWM?=WlhBwUSKKeCE`ggF~?h#dS*!@TL?a$n>Avg>yVw z-(T?emzdAH-(2_~m{0TkT+A()_dM)$=PgcQ3E^7X^}7x;9rIoMj)L#OTgm${sNdHy zKX?0L?1M4)5&jv>$?ksxe)?U7yA?B(u$SOc{APy``*Q_;=U@(ZzXxC!%nah|_f^8~ z$6VxY^R>TI@jn6o8!&fxz+n6i#XSS+_f^bv+=pX+k9`dMIh;uNvDi<=#J~T*?*}+u zg9qS$gok|_zc1i-6TAn%=i$c^&+UV~D}MS-bpMyl8P3<<;#vJ>!;cewC-#5GeyaPQ zi~9lmx5M-Bn}9hBGZgbPjDA0Ys0HEoY2q$(`v&J$!cW6&#(gDbAaNeVy$~}Jd-C@d z4(Wm4C+xF?odNs6vpU7g5+{e>A7CT=1`HDs{19^&&z*t)neg9ne*&{sX=3ynl1Q)8 z{kq_HBc_7z17S5RQ)GT=%s+$8{(Qmha}s_@>t9IoUef3RkH$Z@}$tznnN@ zv7ZO^jfH-FFd4Uhg|H($uEPGTKZ)OZ!j8dw2fwL2a}_3wS&6%dX~2A&@NP2r50oGF zYcRdBUk&xU4^ATdbC^-s7vcAR;0VmGFh2{i?9T(ZKYvs(9-(f$@oMF!_ z>vj0g@;I;K9)kT*_y+6?=Xlr=*!3HM*@C$obApGhg4bbE_(_L;0u%pwV!47mHpL$B zMdHrH+<>_g^LPBt!1Tf1haLvma?43J2h)UmJG)4u{`_V=#9T z=Uccl*!RPH8S@9+kH8Z#7ht9k=W|fM6__01eewGm_7v1_0p^@wL*B!8i1TZ>4)bHo zSmKR`Pv9T__QU?=g!@GgIGDH#@UMy^!ZY#vmb)(`>>;QFh8cu82y+SM1%Li-_;JiIObyR9!ZnzWVE??Q+12?z{GQwMu$px4fpzXz;JI&N z|36T_v$1C}Y0L|lPZEC(jDOF>7Fdq|C77o?d?9|n!<^1D`t^7JyK&!+`xwlHn5Xf7 z4C;4?A-Wm%B;IRqIIP2*k9`E}k2wm{#B;yJT!49>u+L)h`1i(~g5NoC4Ak#*cpe-M z4}?qI{{rI7!kxn;e}5wU70e?ZPhp?K{+on5j(@RRP9!b;x)A4&@KW5Ba0#Y6_D{i& z`SXk5Cvod{Az=e?UxNJ|%rCG%3!lU2Hy-y*#5oeizasXnIIfKSU;}Y(h1Ywe({O(V z`}Od@;s@bi+|!8nDyA0qD9n}kJ%pKn{WeVL*ZuVJY<*2#Cf75c8kMc8%8t+EqFs6B zci~%EGaBDf*<5wHuBRfz)?TUZr`M)OXY!;PNLW?6W^}###df@_>+9;%Rf-sApPG=Z zcgHTn^Sg|2XGLYcwkkd0gA&?ByiN($q^mQeGA5m`=~0);XX;YvR4$XQpth;e*>n|U z%Td1xnKX^ohaz^aX>BG~o~fZlx_3{NXRB+gGIg0Q#LK1YNQ0#Fb!jzn2e+CpKPH{a zRNOf-n;okL5mVV3RX3N)kI7Vx%j_mreizZ|D(kAKM_Gz=>qokaOzQKQTzeH$HQ7?b zEAdXDs&}e?IyEMj8Fg`2RkdzR&wSTQC_Eu|hOt9Qv!lpGZBz0Ib?DzWeTf<buIg-E=FZBB z-A9SbL=4a9M(^XRsK?H}!*bctxlBGEovyl%tIUiq)zzFmcN>x?=<3QkN>!DmIqR~i z`r3*#V*>vhGmMbxOie|mB2_txD5ER$bs8A-JC(}TW@>syyX*k(QMGYu<-Z?Do2gVsE1QNUP2aBzitd;Qc=U$bjg$$7ZOsV5`{FkNt=*H z@aPi_KrYsds?@rnfnJ`i$VlF%MrJZKNL(_eCUs*nsZ4dcvMQCXsL<34a-U`hQ^;mY zCTC+aT^>fbQm(438EXw8(H%x^Z91PHpUqXI##dHVkx40w5ZWP+kU$-hGc}SKn;x01 z4{6|ClNq0Eu((N?DcM|Is9a4ZQ;|(S{Gct}Gf5D!>X*i8!==aKF%%l{JjD zn(|CEpu9X&Tj$7B1Pcvbl^K_*A{A?0sP1y)1IOvvy2^1G#e$V}6QThXBv4V28c<(1 zCY#F>g5z>VP07Nucn!+r%X5{rmL_fuEDI^mjzbMmoc0pp2xD84(_%43s%R6%V@!;k zknEm4&K7$jlq-lx*7VAnQCWFZS5iOywPtm%l1z>UR8^+)8P%z(N+vEewy`zY@io4f zDWsYqD}5(KQ+ZHvB(gfRd}&BlWYTIsNn!e!$3O6iT&8!&N3!Fo20f6Wq3)^AFj|xl zzR6W38bH#R6EI*RKaM5sX}EYGki(Y6T($<@?V_8yqcG2|&IPCC10LbfK8 zDo@vFnp$(%>}6(_>MT~T6ne?snes5%!%R%q*5yAYuAroqqbft(Fy{6ks^f>Gw7Di1&kGx_(EvIjohyqjPnVAk ze^i~yYEAQeyW3}uRZ&qDE7Ui3uyhBVvD6uHfQgLuv_elumsc_XFR#oY05rt0S7lWI z{bfcvQ#S==DRwdF>lut;a_LWpwg?_0qy~lvw@k=Yr^aOSjIgj$r_nvn$Fk>gw9wn7X>!d|BVV-A}K`B8F>B?@LG$3BC4|y%rQg8KI-)QCrIy z84~V{g;BXohE7e7L!zfgR%QC6K7*dGal=|rm#Z9E&%i~qw$|Z^JVV$EYU*cPpwS4) z`jLImI{H>;$+kBskIVFx_!v*tT`#$+vhM2okt$xFP(GSkq9rw=vO0qVw&q~9nULy! zx_3SikR;)+)N|Hf9J!jZXkc2qfKin-6}FbBI+x0~JW~}79K)t2lN#phOEj>GO+jhg znk$c2`51z-`HcOohz6=nSWgFLYbxr?>q>4~LT+*mN}&Rz9J)t+jif7HwImgnk|eZ{ z;vJY$O;dxBW+k61w1$>kVYMi^;^j#>+Vi_u5jA+~CLu;Vr9zp3;%z+zirx6W8&}g(U*@M+) zOmJjUVO5hq4IEZygn+rU+?mxyi<~rfEI0;bwEfJn6S^;ij7ry6)uk9T{K>Jzlusaw zjCQ4t)M?DR-W9p@sJhrEZgY#L%@qQ+JPd(+9LE~pWB8ArD|xrsCROk=9W-}cRRZ5LFrLu%jPCv%a^Bf z^dbz?2TL^)FxDXypu>%nYDihK<@FK^p*wIPC$FPLuDG|BLPl4x?+brYY}iL44&t3y zSM%*K85P+TH4nAnYYqt$vxQA@h#Y2Wu(2f$Q!O}b(gtfh1%o3o27=oLjjY<6+Q~t( zkRiJ`DAAti?_*0l3n~`ezQybsRw9#g;cvWSD2vQl%khOaG-$e4AP*`enqmuaLc8US z%#ADQcH3lVzuw8oY9-y&;wWwvV*SeWxXSV@tHqU>p!_rKN;ZVCDcSjiA8S{&iSsMj zG(=aDVbIFL1|ofLWp#Zuvh}`9S?bJwLoX+sQjf}2qEV1aWld#%jAQ3Mw%}CP-E396 z#t*7vq)S=+Pza?<#oI%25*hU)k+||#vr)xxO6W*kmXw~c=Z&%YX>m>RGUck{r_D#2 zi^o9AE7^KyYpN!=GZZjn7eA@yN{NzOrWZDr zbf!blSg+1jXCnP+S2+d`zx+Bnvn(>p*=FJIsE~R^Wrg$%7w9IgcG|!83Q?spRgSL7 z<}$XG2rGJ@XmIdyRCqO6YJ4X!xH{}b1_wPhGNghU8P?O-LwZsi%KWw?FAp4UdXc+E zN-;H!H};XVa61D$oO>cU-G@n#V-ZfcwHZei$5Njvgu*ct2iJt1O$JMORXq)BCoq)E z-TB%qQzpmeIFqZx*JfBM=shLZbwOB`oWnD9I)7Cn9=)P{14^;leNFC{JS22W!HPIe zvKLXC8ayaCr3AG%bkJ+aC9k=uXHlF{Lu>=D)yy=6OBEw5dkQmoC~=sKDIs@hbWL_l zO$sUBD|Jnpt=8~r^j|#Dx%8)9(Fm^Vvg3m{Qw+tOLC?YbHTBiC8d6&IMrP~k*o20| zoJ{CGh2&8Ov=Ji$r}#nsm5w*5U3ES+eoSTgn3M(SiOSGdeWD?LtY22LF{_895gY@; zxq#VKzcA?uLm#f;l!WFhiT7BuZ{KQkKRvCZi;~0-E^Dqz?(D{rVisfLVj?$$Caf6oM8OR=(iUBkaR3UZ3L#CU|m& zgeK?52w4dpl%cwGRdzI6C8CtGbq;_16aqV2N2!mx;~{7?^UcxThuUFhkJ*!VyMf5=N^^`$p=z%)NEdbtD;vzn{qD zOFr~I>e_@%T^D&t^U=*0nrtU$IGaF#Aii^4YIW@#%nDZ?2C?RBh$L~7jBSbvnT+y# zy$<(W_@g9K6vXd1)~=AhPZGjVc4^kqu}AO;Cm>eXJ}QncR-taCp{c6us_ckdHr3>3 z?Q8jI6eP|(!%7zGZYdp;hL#DLDQaFjIp0HtrQY|$=PmtHAV_t+ zHB8z|8L*RlY<{{XiIT^K%2z}AXqSqxwJk}#or5YubhcMWjntq_4g0%j*q8}<_P13j zlpgMHHA$mkRq678-E>tnEL&S&#eomWbUb1oro$xtiPcJTAO=TC-B*aIz@-(?R)ErS zms}9S=4M#f!EieqG|Kzf_Lik0JarLi=57>AErwyP*g8(S zu3~vCq$4d6ws+9fz}S+yDO_KwJ3I)Rb_wN%uvsW6A0ecJmo1y|z9L+rw?_(xa=Qt$ z4M-f9*?5C40_|^EbmQ>h*1R`rd&eKG_cvyG)1NgWS1!6w&;dD4Hg@`>W(a%R*fE;T z0BM={v%%#K(@ygqre(?$oEsB&wgl>sL2^|0S~~ONwu%)&Npi)ib!tpytrF1{k(XNUOUE%OUL`aC%g`i+B8j_NmZjrSF%IZ3nRK` z2p6wPH_a96@C+vhl)~41bC$`Qqo33jxm;G&P-@aBBr!sj$8gogDm1~hItES;cDSR$ zaSh_tgiYA6*&8Rl!m^F9U>_ap&UXG;Hzt>@A3a8w&uRljSE=ekUb0BG(H%h{t$^fA z8~C}Y0`Q0rBZ8w!udW1}c3x()&8MHLQZB!pV~U5lMTI$LK-fcCtUcGUmFy<8DcLR`rAT{>QT5t_ zxq4knzjMDC$TgftAj56d^>TzlDua+Lp4=bj)l@WdxKKdWU2%h96WcZBI%Sbf8;Z#E z^3s8-yE$@og&l@B5W~p;zVvQLBUp2GV5ci)0&=NX{SS@`zY7bFuv*I&4n|{(j*)6z zbqa%~vZfp<&aq-hPjM}ud~hSR^kg_+)A7cn-HZ~Vb*^LylH)!damGP5 zd(3H#E@2v4)FZ`ur^R8AmJa+&KIomSPCDT&dHJ~^Ba2N%$c!hoNA>{oV=hQshwyqe zVy*9?Zm!H%au8M)-NJi%nr9j>JFg`jLwCER#L=`$M7LzB&|5Mwm3W6S-X*$43!$d5 z$)cc#T#9eF0r5e0OC_s1lQ$ieY(ZTvi$22~*TZ4Wk+2AIQdzr}6112~7J7eeyeG3a zpU;+8vgB2i24k$7^a%;Z=N2aG#*g8(zmhCrf+?F0m1uv86S>~fi&Q0~TOCtUs^ab> zjduW|({!djVK=QhsR;OL*p}OC93c%=OxXvmu9QRAfPGLNlJ}+LxtT@)kJ0UsQi+pw zY0S$_gvky!xZ7suMgzlHlarcvqRT-d9GB6Vn~(j4rQ8mQwVGD)5t=~30% zyI5?^v0V6&6J%w%wwIvPeSPNq%_JG^=18LgVLE ze@^mUpAYL^Ui*Oh+R&{GgG63&9c;tII|$0pHYC-&XTXAqWx$#fj?~-U0VIcb;4p-c>GJ!?XwS(BN!wphpd`TZJJ$x1g{jz_)7BQ-; zxZbrSeQ{S#L^J7X-XyI{kGzxH1c|wRocIy#65iqp0@kW?I^T>%dbbIM&pJuME1m4z z-A{!*exC8+65Y$*|8R-!-3a(_X(mQNSb(I2w10LNwxITf8cK2pmjojnlI8xGYlrYq zh@fb8$rAa8Y!R2%h~3a66^>+w?0#VBsI4LjfA{KvvN*0j8QRrXXNf(2|Gq@hndL5z zQ2%8K#I`aMAzBKP+NtQRx(LEw)^(A1A&N> zZrh9VHfhIAq^WvAmkl~2icIq3PNl5*6)PsBB-L<_@pT}Vc)*Vxs7p9Mi>=4}>O+9ugDZN+o4r)OK4rrQilw?zW0r^l(vPv z2QkRXQfKu$>&)K$&hC9yzf`||W#^vvseb$p(Tga(N958qc`je{lKZv1aFFUhy1wGR z+U$LoRdHCO_sB0HqJ5p(djx{2EHzZ`m9t6Xz4BE5Aw!7RhgZ$oqm`xZ8*}Ht>kb(@ zc<2@FMLx4nze5JvYtX$%aHL%pu73J*z+YLzVL4xS(!LkpG~&wM7qrJy;dnW*_Z4iH zweu)TUBIVDhYYLYwc)DXdY6qoa!qY;<}W_;qLf)L?sw54QL-~|NbwiC5+$wc*0es;fM@%+x@6Y8?aAiN%RHmU zA8OCL6fdDX?K!?(Q>9vWJXU;hd2z|~*0tLUYagfRt}eGc{!rUvlUvtqX<59s_~g_# z8XlxDv7l3V3u|W;r_F6{n!+1GCvx|?dqgjgcr>RhS*`V_mww>Zw_Jz5#N!>F{_F`w>)*XurO{;eC5p7}G zB1+l1?xCL1n_H(9XH9S3G_!5$?Bas;g&9w_ZrfITVr6mh2AuTvn_H(VQeoSpg{=+6 zdE1!|g(j`iXTVMS87MpWQj$E%-C3LnAkZ{O_EacC+CbJriznZYF#za#&5C}cfU5<9PU*64$%vZO!0;e zBPeB}sMAw+Sl%uxb~-$#nM`y^Dzq$L+q!l|%aapL?zBGjT%qydwuXs?Y3ps|wNHxa z4b9tj(5d9t_Tbuy#pj4P)h+!M2g>_R%PLUqnUYxVCuzpJO*2g=f8-{Z- ziKwvt;nuaAkciDqb1aqS9m|Uo*YQt*PG_!ms$pEW;*6Drhi8NqZ(Gtpi#Kn1vGwVR zDv%X|Vzq2r+qz?^%JIsJR-ODR~ObUZQedJQmGmjMijzrt!sC*EnM5uw7M|uxw5FRX>OtM zm8dX-^=3(o;)X4)uS|*zWg_8G@fGl-gV?OaEqaJbSjU$|Eo+yz z%$-tr__1~yt=+t3V;mIGNURssb9w{A#1U6F_^ErBd4GC%apSZwu7cPuu32HVqX#V& z@B7l2owx)ab-&5^4}8Fvnz`%zvBKnu4D8l*uM}T+ucNe)``uV9*^s7%QxCu+oWxU#&ykGRu<+ytb&G4 zK^k}H`kiCjVrT94Mgu8tX?yCi*0o<`9u}u>E=-*g6`JNzoz@*wi(6I{7BSk~d-l{q zQ)6Vq&4I$zx^4=?wk+DsX^s{oeNiT?BuKy69&8Av6EN_{$wm5Bp zwJIWv5u{1eu^AR_Y+JaYrD+Gcoa^v3TI<6LsQ?k9)@{!tpdGgAdRJ(QZ%1F$niSTK z<}FXN#Jst6SyX6Tz>JQh(#_j!LO&{Qn%uT%MPj%HcX95LmJLry2DdF-6S~uEt;=UM zZ)#$gqd7)N2jed2O%BA)itUA2O;PcY^@S;mynwcR`YLMG^_9y)Y=Q9b4h}0UsfGpE z>SYmZSuKTxx>A^l^IBfo((>G*mIpVt%f`Z#$%VC>SwDloE=*fo*wTbx6k@Rv9I@=N z5T7E!L7~wG;%9ux`G9EN3vBC}np$6esK`H1-bwbyOY}~vk(X`r#+Ee;3NOt6kk3WM zHBYltTOy_y_-e;eYlABCgo(x;Fe=VpU!1+RxL|5nIo!n_plL3nDl9?qM7K4#!_pQ9 zndpdv)@*5RS{?@#=4?U47IsW3%vun&Z9#CZU=)*I+v9UvR!>BJOnZ{i=qPO7Xe&hP z%dfP~o*w(gt*)4D4Ue;Cc}S^q6k_RmNb8P8%}t9tEXS79&H;tF3&T_i1z};Zy_4;N zI+TEkSbTIg4T{cIT=-=1rTM6B#Ya}O&6ASHCc_p2wuwkF?R(=mg(~ zO`JX>v})tSEpygKZ4;j^&VM>y+8^8AvZ9F+wya)HA1|0%T>f-aT)#;IWW@{YNTZgm z3tG36RKTv*UJvpaWbu4WN;;@YNW$j5JM7dUPQeu;i`HSj#7}DSc``ePcj(_zW_qNf zzMw^*F!v$bTt+2f?jOF!lQC2^`6(=FhBa~WX_rzRWs$okHWpTHi(0lkT71G6$PNxI z)l;Pz8W{Xx&rP$pZeU28BZ#Wli&ZrQ5_RsX_Ag^wUwH;e7d1CMg4lBf)cjlsqx7;X zQ|~gbTQ^Q7L$)i$B@KlYtM%XdM*kSLux<;BM`7+P72HmK9J}mzi$TzCv=>^;AGfY? z2WJMXZDCajhf8tbv?tUhA&?q|12;#f_j4@FRg@6}QfL(BMXl&t#&OUxI{NuToZvNY zncVJh8ELsC9h~qXxg(UU)`uRCSB@QsEN%5{J(8d(KDo896}79-I5YG%y3n+_CT!zn zWcuvF_J&yN565h=xGTLMW8ce>A5xg!K|Y7=te>6eSi|KKQOKt7aKoEhXGJ8_x{z&2 ztZGUd<;c!p4Ji#`ci+brRy|l;x`Y({XwdZTusMzEH%s}Mn!ICM%lwtdORb(^Ya!WH z2)>~!gN@d=T9@?4?I@*eFii~&FwHMkLxY#g1dHaURpy9Qo4tC{#v^@Uv9~r9R->VE z_Ni6SGTO8z6q}h8+)*LyS)!Jvm(Y_b23m}!9*)BF)ol%pt!q|=?L<(WU0JayW-^l@ zt=%d6dG^lkh$XoPty@)`#Idm{-$Bs2W2f(3J2ah-p5HYri5KhNH9V1$W=i419-PKD zIqPGC&e=J*@Tg7~l7}Jj3b*yi=1tRkaV9sXuz0ao+L6!?o|{>i{gSmvL^Beimuz+P z8d@o8edQ%|(blOiS%(&y=C@6HhW%e#!*tY5qIde_l`|Rdo*>FJV3u!Y8Bn*_X}Fd^ zor*J!kx+Bzpena)ZE}Z;^`<7a4NX&8S3k|lTv+k=&MGMH%g9Wut zI6jeZS1FR|?k+Bi+5ANumNHzLx4go)rky{1Ei714d>#clAXa~$f1dX6k6%-0&$?oZ zKXFZ!)cZYr6&u+p5qgM@5ZabENpUcTDRPYc5X7d5@ff?@Q`xnv3y8rvE!!UEOe(q5 z(5zeL6ee#htesStHl^hSos@78tVL|;68hkItu$)8CF_0DWCt${N{;v2=1q)R7HyHv zVbK0MOf>Cx5+^KbXT_M>6vt-~Vk2Bwyqygo<#r;tJ*mUMaG~IWq;v&jr(n9jF}bf5pS_~pRwTWW zU%g6a>JX*nd3NX1Qb9cN4yZn)m3%U}-#K!8L>8`~w4{XPmRO}$j?21Vaq`{?&k?FI&0F1?s2Oo-&OsR9*#)ERnv(_Cf;vH{=^jWPba7@2vwYL4RAb+HFV665B%A5&O2d+8c0OB^JYT(q4M{wTADt8QnTe5I zEU9!-pq^b=Xna~Ha?^F=ghY@gk^FX6|3pO69loU{b3au~z_ed?js)zgBInm$|VE8ErL zydA7v9UN*WDU7rX;*{qtrrlj@M@%y^l-pMTbi8oGncS>P@slTsaU{I8fpvWj!#&ns zIJTTVjiyO_4~v?;Qw$A?j*)cWIel7~@xfNwuml%7E;0<)c@94D2wf|!5v?KguB|v&K!`r9O}{E zg*6M+I4^NhMx$y*7MIK}%vi2dYjZnjHa{*xIVd?&9!H1AD`rQr1PQ>CwE_n6i$;#(%+lwU<@-th#x7l(iA+OlPJ z%a%2fA37W2VI2;lE`ubEYc9=D zpHFS`7PYQh7r6v8*s4rv{S6Mz7`T;X+LJI>ylMdCbT}_yv(I5DIuV+6P@kSDY~Dbq zNjT+Ck_;CY6Xrld&fxINSmhUIuLsIiFaw0$rl**%e$^=t9LIIltNJsm5qptUi2cepFn> z3rCBaH!W#hxdU-ah# z+usl>u6mHU!1zeswlS~&Cts|lG!N#jE6$qOQ8Gm4X_AI$~6Gz7;xZBu8JwsDkz7tyToh*Vhr1Y%!@mRshSXk->45Q$*J zs4#bRDItFu(2^+a2Q7)P|JTcoCZDVc+LN#w6KxSVu0^PZY3)aZo7NU)=q4Q14dpTn zk+{JqKLI?@eo~|N4CDXh#hzcgv4bs@XPeX{jhXP)1{$7DysV(508YF-Yn!~jF?(!X z%NLt?6rudQX#mMLZ8*T{I6Ac9Ep6&`jIm;NaoI{wm`0UkjgyqG#7=nOCq5wv6N=+u zpI5x(qzksk*0Jp97S^VXJN!1+L;OtDqWL+JIl^IOycj;RLYi0DN&AxM&)Zpc($VSs zT!X7|p*9h+nRaYzg6q-dV8k*lY^`7pHE(^=_VI|1P*V~pOw$`CVMXwlYs}F>IX5rv zwR8?@4jn9M*$z+YmcL|U|7OY!MdLUgY11ASXXQSzQ~!?K2YlyhvzFTMg3FSbTK^~U zW=3$>k{CK)pSz|Q9vwnr@nlcNr`)j;V!q*QHwdft6MaiPc(#A^no9U4zk5ykCq8|R zy^Ak5vTuqHBto9nU>(|-S=g#e)Z`0wyIhDmMcBh~l#Cg1pxL^Ev!wt8HA1c9oRO^3 z^k4Ffty0Zf8k#pxvo{aIt2XhmkKUGU*|MRqtf^(u_LkM$E+!nYKqe&y0Lwt>sU!Y+0-q;v`?%Kb2)BCO3qdr7E3WXK(_tRV%d(<&O18>C`!K zFxdG?mz!*A*~4$~ckp&4*pl62N?*7^M0sj!Xh5^stArC5l(E1}rfUmFoUW-|I&I|* zkH*JL<|em|YJyH{h@@y(C}=*5YIE63XRD7NUWFIJJiz7v`;8CWsPKRvA#r~6#8b*A zY>Bkm2gOyJ->?Z{>GPB0uv(aE>G_#Pl6+swJBgK*!>UjPAA+T*=y$dX_={URN3}t! z3;GwAOHJP~RcYw;u&obq)n=Nf4V;ChWbW$dEFSuZ)$rolZsK%m1$)^tOr`J=N>HS| zwoTY#dp48F42*GRAo=QtTczK&h7|RW5u;y zLnpm19@p$&*x|%u*>*jWYI;|1;jT~jtzW&(O65srWQj88EWPGU^DIf?>~*RgD#kXJ zH^en0l%JjTm?JrR!jM_Fc~=6M$4D^jhV3%L9DZ1XK=Z2Z>6=+pA>}|iXd-r|hh55z zUHaU?(skaXe#nH|dzg*tntx%!?H!%^kR@*K?464=S(lHjAIWdTTEfM) ze9)iu21=)oU*$*L7-BocBt-YAex8Xo$k|$P-8`MmapLAj=$e7nOxX5rpwV4i%O}9;dr|95he{0{yB~CKR+!gmwr4c S0TOg?KN0&d0;IH0jQ%f4%`RX7 literal 94539 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 ByKw*j diff --git a/locale/zh_Hant/LC_MESSAGES/django.mo b/locale/zh_Hant/LC_MESSAGES/django.mo index c2dabfbf0ffb731a3a105637765bc897dd541ca0..f9ca27be9b891b3b13c30e68d084e0cd54184a43 100644 GIT binary patch literal 38839 zcmchg34D~*x&L4Hiu+oZssoCE5hUF_oRYHRJjnwd;md#&19+uPRv_jk_oP9^~q@9pP5A5XsLIp@4*KhJs2 zd1vs~Cm+5j;B&{JLGUT~+Q~uC?XV!2-C3bQ(5rV4Tm&zHr@?z*2bh9q!!NU*kAuD7QLwMY4>Wm*$+ww&57cwz zkYNa_;IZ(23x5b6jXWKyUl*9X(zpRC{R{AT_*Hled=*{-e+5;)6H0^NM0h$>JGwwU zR|551DO5cMLDl0{sB&+ID);kH>8qjg{Ss7vZ?^E?L$&)YsQmr~mCvz#{P>*+mA*Gr zx)@adq@l`r5UQS2;mL3|)VME)O7|7xEAVjSSK(>!b*Os13D1CkhpO+%SNU=}L8b2n z)i0MpwZ9)!zBfSCXBbqyKL?e*5~{!MhnoMB;azYJRJvw3AHD~b-}I}4;3UOE$;+YY zwc6xuQ0?0RRlmJZ<$fP3-LIgY`vX+EKSQPa8&o}x>g(%!2Glr3p!%&FRDCYB`2JA! zxXE}ARDUKceiBqUGoZ?u2Q{DTq3W|9s-Jd1)$3)b{9d*2H!S=usOSC(8S3D~Yl5H$ zycwPcCqnh_6Hw1T4b_j&L*={I^SLg|B1Q1f9TJR3d+RsLqE^bJt;`zBO>d>^X6e+;jHS*ZR!x1VQMsPw&|(v?D$ zca!l>3m*+Nf5t)0&j+FEy8x;^&p?&G87luq<2Q^yu=t-t)wkK?cc9Asz`{@Hk1j(# z3#z`CLA4_R)qfeNc{2rSzAS_)?8&J=;Kt2BsbmMM3 zae!~{1@JuLyFs;Y5Y+s-9Y)~ipvrj&D!(~U^{a>Kr?pV&cSE)FWvG68&EynkL4zBfa-_c@J#q! zsPdbQf42C)L$&+pfj+v|j{2Lw)Pr1S8a|TqsE`)l%C;TkD1}gt2q56F_RQt9-rE7#k;dh|s&DnIK>d^

    X;zjxq~@Za!Uc*G#z z?hByu=?;~yx5<5>^1BXVG6Z))jpG8S`YwagGh5&%;CGBaHvSq)4>v>Q^AGqbc*0FS zpYFyh;n9Q-gsR7IsP^3s)gR?h<;9`$dl0H0=0dgODOdsk)N?zb#_y|8`Mm;F-jAT#`#Y$4@Gexk zqlWnWj)%&>3p^HfH(m*QBM*dX*955g&V?$k9;%<0L)GUw*ctADO4nq36Ds{*pz852 zsQR5S)Ys!osBw$H3*eW1x>KR_Oh>5nec%aj5LEehK{qd;>Q!Um55n`2CtLg) z*b{jdRQvx3Rlk2h)&Gd$e&0GCc0=w4rJqJX^-~Gw?ox429-}0JPb~RRq!FG`oC%XD^&V_!xQ0=Bm8rpgzAqAj6I;rxdJNv zy-?#c8min3RK8Q7o|_H3z21#czPB&vuJ%gsRuqEd0Ard)R#`CbEMkKYJYucx859laZ^T^!5~p2^6fb_&1>X>wT#8aoC-{Uyg=q*NIT`cBp*54ljh?gR0kG zq3VC=-ChrMfXeRzsQgNy>U$$pyKjXo^id5TRJv-|6@JOW*Fe>8Gh|5yyNoA}^7kh(cm?4*p~m+esCFGu z=Iw`5pz8f;sBtcZs{a5BzZt5Xx0rkmJIeZP!=YDXPB8`eY3>upf!z5+i5 z--bLI96!eQTLzww{1iN0=}i8q#s3p(oI6)|_JPXh7I*=XC$W~gyE z{|iCz0DJ&m1K);f?i4N8KM9rZI(Q}gCDik$Cp^!A%KrkBdqDN$ zWw1Z|JXHOjvH0!A2IE(t>h&$y5&q1={|BmmhbDbF9iZBK5>!1efNmU3z6qW{_#IHs zje*C(BvgIB1Xa&Rpz@guPk}2f{snjfa-+%Lfm&BTf=b_`nmk}XsQmUq_0u;@{v}ks z-he9q&ldi^g?|8*|FQS`bf1FCryEqgdRcfWRK0Jo_}ifJyT{~msB*@d`~Xz_9)^1E zQK)*Yu=p2^yNxeHJ^yXvPmNjQJH`);$EJMxGojY^h43@5KkNY~LapOxq1y9Z<7-g$ z`Gv8?_&2EXk6_U%{$waQVseSeeW3EY5vo1IEIejR86Sq42eaY1a5Yr=m!Y2jIaL4s z&g2%8|7`O6Q0@4@i<%xb$B~ex$~j&UksIQwQ-w;?}bYDU8s7$X7Rs- zCnL8&>5G5D!{AZl{QhtZ)N`jo<$JcVtA$?%wO+5X@Ov$MEQ}DIvhc@@E1>58CaC)E zhRXlj7XL$d3i5A^??SDMqsII4PcoisycnwfS3tGvW~lr|Soqyg^{#>{Zz4P%*1=A2 zvBft))$5y3&;P{aU&Buz|F`jPQ2T*46X~@hq0$e6nt#JhjvK3?>Ng&$9y5)LEqs;9 zFG1DsW#bPm{Fo8bVc{O1`LL#0~|PlOxc9dI}73{QK| z$M=CJA>Rm9kGm~AYI4Hl8mM+nHqN*BWl;584Nr#+@ND=hRDOSgs`p<^KKzS*-W~%L zUt;_;RQ`RS+A#>~xm(}>7&Un{)VRI?Ro=Hu{tZ-q??8>)-=UsAj7{SVcnXw$>JHT} zHyiIX#-PegL9NG$Q29-TDsQ%Nxp5oRJpMZD3iD9;p7fAUe=d}KiOGG9w^(>N)N}Vk z)$a+YeS15Uef4XoaXRc_-=1#pEaXc~9tu^zJE7`*pUGn^K4J0$CO>TQ40tK&=Ue#8 z7XCe`ar-e;zr77LZw{&T?Kl~#ob!xbp!%gJR6F|{he6fr9;o`3nfwq`x~cFq_$X98 z)$^KV%AA1(Yna29>@V zs$Szwo&}ZeQInsx_-9StZG0JOzyG$yzXi2_9yZ0-r#Dpo*F&{qFgz2Eglc~Rs-BCX z*2yZ9pEK@)nt$K2_&*u{X7PtS;`2Wq-blLBV0U;gRC%*3{xRbdQ0-i4@(WPqH$t`d z6_bBv%t6)vU6cP|JZh@1@2RjO@#jMI^R-ar4u#6^cBtn^!&_k$RC!;v@b8-Z8r1y# z9n^DwvGBvE`Sd42_1C#j`Q2dQL!r`t*22d^m7jvD*F@L_E`=)hW#g;HUmO1jmCySy z0zWa`r|$;UuFFln&Ugz{`g`G#FacHn8h8|}v+()G#ZdEl8PqsG3-$bVQ_6h(8^were+*sC?%^)n_?We%qk(-wU;$eFJuZe}gx|^JaKf zz!K!G@OtXkZZ!GF#;ozLQ2OTF6 zxY76%sD3$gzVD~A;rYlH!<*nRsC=J*YR7x97d&o(uTNj&&Bi<7SmI;wPWY;YU-YO? z{~6DIzS;0*qx;jM@AhmX=~ob)-I zxM!4z&v*~_cLiY@V}>Yr7XMV-5%&Cvu!iur3G0i~NBuP(|9S9n_-ClKQDV>FbsxFqW_T{E)vZaKkMh1vXoH z`9~0b9Wv_DeTG|Ht;t=8Kf%II#XrIP1Bw3zZVU2-miK7n0mw^mvvC6n|0Q9k<4!@= zKKNPqFBrwWieGz{KKJ6k6!wE1EWay|uf+cWOc5S_{($G#xZ0wyi}Alp*w>1}eu;k& zVL!&{leM_V@E=LOFCmY_p~~IoZ~UExJly2-@V|xoH}Vb(dly-sN$}UW({LkjN2|`b zlktb2(~JBO0+SX|M|ee1-18RxB4MStOL4~$c2`lFW6Xa&WgLt90&+8HzHHBa)hJwm zI}*1Ox0`gIBK`ev2(muIaNR6F$=h&O%fsg)!hdCP!{8>uj)&`D7hE^o>&RD-=PvjZ zZX>P?cQaunuoK)vx-(!5cE!Cw_+Mf8`7ZLZP=G6udy@V-+>QA4SqvY*y@&sD+%5Re zAwK-vji(&frzlKuOYQl;ugAp9EKCR`_6FT(x@o(>;^U&3|8ej}REr_XYu{MX`NgZo}l*tZCO4f*HrC%6t4_eppXvOb@otY08k z;qQ$5EpDx)!y8_+THA3=S-5AX5b;3WKC!5@KTuou)P!gJ;Lf9J*E26zeXe{eStcQ|e^ z?)%6;!u<@_Ncu-`Q*dK&AK)&>y+Yi4*co>#{=?vnJgd+3_S3$ra^66-0oCKqU zf6fwafpd}j!P|-JZQ)lE_D@{+860}xtL9%s{98rgP3He^m^c4*#!;lbh5V1f9fxzD z&RxrrHHl0t)h!(vovf@(j*q2+{RO7?6Brb#zQDO|Fi_ zRYntIYAh`D6I@l3sfku9VOV@*LbAq${l=&Fo8Z3kc)GeWI^m--+E2Q68787tF>sHkeM_rjsj^st9_idUQkJZ$u8d`3 z9Z8ppX2^rA)0wC`xs9yuOIJiwvGV&yC6i;-Az~z%P;*m}bVaOk9IqAkn<~AZWHsqn zspVZC>bPiPLPXJR%kGjUKi`p&{%UobOo(;a6F4qfS))OTr)h`=gn)QC z!%~&Z#O{liA2>-^CsJ5Jx7t|VKs)vg9iB>#NyXCXpsU(GE*=|SXsZ{y9WW+M)Q#~B zwW>_gotb2$rn)@J*mn!|>Dr#L@^~hmOt?M{yEhC|e-=MNhGbKIUpOkMSaoGQR<2|! z#m$d4C8U^sh15*JDr8NOt726QsXFz(OgvLbk6zW2p#N-n_t!8ck3N)P;_NHF;=6`WJN`}IZz!o6^&O$qUGgo zdMkqrQy?;m85&=(iYG=V6;KtYefsOW)q*I+ z4{6Y^G9FFG)TYWxxvE6Q;}+Q-!wFzV4E#0&L}4{B3%^FeS@lQT3nn8Dq@j zANfQoR#N;(B7wnD7L!T~`V|S3pUA{Z1|(BVRI*28h!PW$iCCm8n$X1ejnIN{b@QFt znj&2@hGt}Zs_v0=&8RQL%39Y?w7NQ#WZ&V-Rn?UfBBSG#m`#-Gf+;S|rY|EQ@bkeC z8B|V9}x%)O^EVnN)%L%knTrZgV?#C@}+Tm>F)S>ra~|x`2_|TwH=X zCZwt&70EQi?KYq&#?OSx*wvlNl9kC+Y2^G%dw=HA^0Gdi%=D+{6^k)e(Q&B0=%~tAkH}pZmzoY`$wVd< zA63Ivg*oSYhbPkXnpM=>LSco*ps{L3^p6;|$J546eQ$_oZmb!l z>h*9fr>luW*-wac?rJKD5Z1B#D3`i!*YsxYOnMO(`e{TbX^Z_*qX)&Uz$ttW5S&WXSst9(B zs1cDtXpKThsOptTBE!;*Xn0s((kTkk${gS{+W<5fE72oTyjsJsK?zi8A;n;+IZHi4 zJ6|X;V4-rhXgBN4@Akwnsox1xN!DkWZ#m{?d8DjHYN5RX4fnTV>($LMpZCX0?krum zgGSv-FKr$A0lxGA$}V71njIQk$4b{2v-+IZPhls-B2I%VoDOz-7pu}sQtjSrYh5DU z9j@f-VmgGRu#+dc7@a~$AVe-?!k3h%qI@mTLa?gQQDtsFPltiNUoC~rSCcXom>tC% z)d9k<3G;Fq7X|8!Ycq_AD=5vPO_HX^GAvl?ft8CCPe~6C3HOmR75Zo&1~^6pQB zqthrBOlVzq@}X@ez7m_sV6lFxctOj}``q!wC3dUA`8b@oY3&5RK%AF;Z4EE79$cg! zMR|4J@MpN(c8eM%W6E1; zVTcyF`I(pQf(SilAA8>a}zsK)SLJt%T#GGSQHc zLDxA^c0yrZ`}ssEX{k+bA$4M>_9sBMl{(FMjZ(PnLvdb>NsASyly15vxG7nYh@hOi zM{bH@^^d5+W+M=@M1NZMVkZqvj(5Qvb-B-}cp*7lS9(V2<)!Db8sGa1yD{cejZPKFb_LIgH$AaamlRXaQH8?&h z6-`Z`-?_bW3wm&TY>eQs1ygY_HxLBSf?+9?u=hGEi`|3_6@zK%_8ljs{a;x{GTi-; z2ZME4=5)M2H`b&$in~Boa!qB%j+0603rzP+v@$scE1e`|9LC&VJBom6ashMI*-^{RM8gVPm!&6w5rDgYF9cK!Yb1Kj3*OirbdGy{_cf# znPE?y=1I}O$|m=LI`S9C__GfA>xrbhmaxZVDd>)Q2pg_D1qWU;Nc*>1{X=69WP+h& z>833`Eek$f2w}LfjwZx19Tg-)Ls$DXiSl-$yGCc>v&*HpweQqEnw_Z3O+KwPmq==& zIJLJ6CUvc(zFgEb_{UagDyj;h>vq=_fvExGSK?5^#;5wJG+K?hjq98Lu_Ov>A^bg`!n#rPnBKFDRCsa&a1jvvM$8 zyKO1(SDEZoNON$hj9?t|=0&qF7+x7I6Oz?6l^mc+ z-1cg4xQ^la6Iw4`pjo4394f|JR|UoEHC92(7Ar7k3J-VoE^lv~;WCj+r_xA3pk5$& za%q6a*-DY&$;x;cZEYjcRFk>Tl@4}Oz;7SqYdgE8VsX=6XY@n=#v=4YZga04)Qc8{ zPqt>6hch_~d!CDF6XdTfLhIDMaPq$kI4CY zd!ztfPIXJS+wm;TwZ*f@9^7Zz9q=&gGa-GbkSqt)T?I4zp@-QYHYB_pFGOAC_CDSU zwM%hTPai=h?i?a>%UNu$lfqCI%dPJHL%3c|40j6?-NxBw2^RJfrAV^tgj9x^)P#sL zrtrH3TERvykg#mK#P;%8Op_1tXyJn)#6%d{=olvP)yv`>B+xz?( z!@mR4{$=k2SYmEproo&ZQLd04Yb|wboI``&>#=JPnH-%NA61^_;W-Yp-jE(ITV#AH znHbYCG9sB`o`)t|G((FN(lIhpdHGRdcKD0zgsw)o8&3H*-!5$?(tm=U$wXvoJ0Eq8 z7OvD3MSu=(eh&>s_|srI60M;7I|d_k)clYO4IeMHZb`j{_rW%TJ_beLLMg8(To>E~ z1AU!>HoS9Rdx@Djk_Du1tT+qL(rK1(r|G}%664if z(jUS*Dz(lPIA)+<$1WrlA5)PbY&_GIS?pg*gf@%UTgrtF(f*`)*qW7!ky>#3vp+7h z%Wky02~&1axAyjv6}Qi-Ra$pNys*HO)9Q1ksR~7Zgaxa~EU5720PlX@ySHw$It1HSlynIEgF=4Fe^B<1#JR4f{*=p}ud{gGE$_JW-^ z%TAm6z04ZpDyafowghrpmR48M&F$+@Y^sXzgf?n6kcxP34GKQSNg50F;vRNtTq`uA#ieX)lXjbUoLd|F7GXD5M>?G>i?fTA7bZryHTQ5C zh6hcrV8&OlO%xU|vs%TpX+-N&++UQ)EKrkBDH+y*wr-wIwceVwexJ>{7=7hUh92(l zrZ%YxgzB!S%)f8XO9-6Jx910Y`*K>ceZ(L7qyJgQcE{Z(y;Za0LL zgAmEW-+j>I^Q)z>Y(GkXgx%F|rD@iA& zn9^;&`sl)nFC0>p`u2mjY&4ND2JKye8wF`g|9vI*WPf)*;=F_D{IoisdrvcG-DZ=P z8C+AX1)^zCR93kC`SSwrMOB`+$E$b=$}WWg;l4wlv1Zcj|F-iZi!9{-zs%cfUssH; zPS{TOr9*3T`^DvZ!tbByz-|SUQ^63>cB+d{m;L@j73X$1<31{;{g*VYe&lw5_k~V3 z9Bgg}`K8K(&CYj*PQw3*%3hQ-|R+of+^D5TupWgDp_z=oTE-n77Y_|~p6ikWB=QeQ8?3h{YqiAIYT=z(X~ zhmPRK%k&_J;NxX_aKrHN@+=w(rf~aj;Jed}55#h7BWcEW?wU#R5{bK9_X7o&K*{`t zb70@z4|sEha&cW!9_Wt5{&F)FV8QDP*iwW=N>oPN0dI&g=!=s21{4w(wa0fCh4~{D zzy{RZ;X6WY&2YbOyW19L0I(|+|8N6Uz?Y15^X+#Ta?(Ekq3Lz)Q1pNu+|({-XJe1+ z8<8c0%1c61{Ky#_5AnTjUT+`;N=fj4jo6pIYN5F8V^s!UKo+4u?9 zj?s5c^fkP`Jmr5;QZh0Yt)jG0E{#mAxbH@6=MF;#4Y|Ixs+aWW)xo|1Q8JR-vQl^R z+mpM)c!GO4etba}U47fgfhAY8rcPn-?v$Y2)iSBFL9^XbE?Cxc0W7Cc~xyLut0l7tWs@ML00@E%{p$6IcbDGy} zr3@>!c+}d5w$yIRHmuptZ(Xu8rc>Aavx~X~Z#CBCX3uEaF{@?zoLv2ueB+Gl)YVOU zrsbY|9+A;~t8qrKPe1SXr!UOF<{5R?tHsZ>-}tgmF3Yc(roN9bip&djLYp%5UbUcE zvs>mIXoHOKB+bZgsCSl2Q63*z=Kr!lKb5kLi)V3Msh+o+4p7Qr^txIyB`#9R-6@eBXGY@s-r$Kh}wC1N9$*!gL zndTSfXSYnxEuE5odPDP)#+KSi*}5%0S<93cnxEU6UAiUvRBe#mvLL^1t5imPqmRyS zpPpYgGtdgF-_ovbVXg9YGqNkTs^yWErM3ArlbUvI%Re(o74ns!TFtwkvwFO=EjxKT zHE4ceO(gssjMqllO^>@ia2n#-ZGL@HW?{v;9G&87m((|+ebRpJ$1uJ%XqTenu-kI# z8yTnU<~2=wW(B#qtF!YK2h_uS`E~2Fi{|Av&TLsSzck41*q&dqJjl*Me=QA>dwy5G zVNT#tDiR;iP1&cH8A#0rN1O{ZrM5p|-n{(YE&EHB-7=}=si!R_tgOq;tE=4N)w!k1 z!}z)_*}BE~mFt4$gi3_{GC)6_UAw|Y}pdE2KN8d|38&d%H1 zw2P)KP~BY5wi&#Alji2G%h#{*Eq|kSQqzuIEh}fg)i}Fp_q3K3b?mr)Rpn;v%ub)? zn&I}tmPvDSd-r6QtfLZ&39@shXB*}Pe*PFRCi0seXC9UY2RNomhqrkoXj!o-J7r#J zkl(wIts=m&@O>}aOtBz8ZA{oRHNRvLLr!-24YP7vS;y`{ztBx63{KFzWo6T@S*()j z4b2Oe`x%ME%$-}WB^CNyK=C3Ca&-%`wF?+*pM*H(kl*?}3T;*}Q;e=)Z*A1v{tx_e zM*ZbpeCa!CL4Opq`?6YV%L+jl87=j*at-tIyOy_XSjfmRkTyFoT?)Hp_>IJm@%xxa ze%sT{b9UwG>QSOhOw@38@(>*v+yUaaH! z=W`2pdKDbxc1&$qvZ`pJIXO3fX?Dvjsl%4~85%3|quiUp>UGZGAF zfK_{%_pAzXk20+`SUsAbZpia*zIpgopi6S~ODxD&iL54VZhm29^NZV>H!NvYGTEtX zv(N2x^9RkB-PO>%VU{6Wvol^GxMgxJvonmb3G7l+Bzs~QW4hbLgp+>XWPV{5hCZxs zTRj@?c>AbOU(2Q)YkV`>>)(%fF34?qhMmu6f`)Nx#O)jr_AP(lFx?xFjz7-< zFt@Ufj&!{%TeE@P%5;?58Iau8)@Gjwm#AOdVbrEwO${ruN}L>dF_(48HYlV zdaCXBilisA^B?g?lAxgM>_;$Rzw%|IeSQ?v_DOH11;r*OwuU!AC(X;Q-W_15=AN=G zq>Vs2_DC!p4~E61#h^HIGxlWX&sN3#q2BNzZzp{^-|?0@w`6il z{bO#UbT3A7K zVN!O>o>2AfeLTPJakBJ^TFWrEqA}ZuA(5Ro%Z(HJeBFGnszN4^jWG$y-da&FmDaRXF?c6)9Llgj1bwW108{Mw~WZ`p)FU-+%9Qv~x$>(!nA3Y(uz1;%3E=@wbvR2V4duE5nNGEtD?9PnM%QofLKEr;O zUG+rkHWnI~2mZ+m2QaPa@Mud7{NQSH?3vmG9RfuW7$%AbE6cy8ordfjqsYWdC4xVNzk%nhYoXYbzp55pX6M> zkZ^i~61p|KWgaK3EbDqz1LYb~IoU09^Oz(IfBkcuM)vO4ZuBPuE?azU3ulZ-pmbRcaHwHe)9SsZm+s~g>YyFeCjVp7Dc3=?A&(71?c1pO>Klw~{ z^K#DaX142bcky9Xw+<7UVQyz}5&n?JwDA$98N5KVna(;`@Q7J?&1-e<5vn$)I%FGh z9MJuf#!Rz3Xntg+E|J_dtto)Q6}rDV(fzkq(b`t)wpfop55k6B=RWC5;t)cy_lUb$I54_(W<%i?GqK}*SiGqSa)J-y**Gqe0Pp!PP-{<+$< z`R(he#+H^{%Yru7iV@z&@NDz6tu6JnT*l7w3Z;>gf;WZGF5Iiu=?-Sjb}SdOH9yvE zon@PK2D9>*Q_B#nn4e#R70O!UA7A%{J;qW8yNUK0Y9h7ufveus+$RIS_Xes^|M6xn3I z1gB;EQ;*3nSlqImOB-OKD&uC2vXBtHeWZjn;IK(OXuji&&%4^ z=pB2r7>2o5I~-zlxo-IIAJX`wWYl`TJ?M*wu$X-{QW)dvf$`!=DdAT;!ynOvF(3I2 zQ{VHp31IixNEDmo_9nxxObJ*F(i?6{6Da&WqcneI|Y0QaW zpWn>*)lL*I@b>fb8Q#P4;%+}bWjSz0`$_BzXEK=~{)nvIAnRa1eQDm=*xWEXuq!!_ zaMroKqp&b7O}Oc}NX#K_;aQLC*rcUr^oqsbgZTF?mRfeUd;by;z&dZKU5w7|+P#}h zswWn*ugiq3ZFCEB`!2MlY*Jl1H#?~`D9qlL*_-q0S25l70^HzrKC{DKs&b;_g%FEO z8EbmUC=cSXJYEk(wV9&(36-VE{Ux zw`J(EQ1(Y$$!^39wmNuo*CyC6Xr_%N^RJ46+?vTuMRtzj3w!qO|IH6qwA1GnZqChn zo~d4>kGM8epg#)HE+>Vp^e6JdRO93`JvZ-3S-P86+1(m%l(Msy*cFyueym>>swO>*$Y}sD`e|7H8wWwoXcv{>~g1U^)&|&`hxRy z{+X2pTin0X@;ytU?Bk2kpuBcqi!zn8d_HF^68OQ-&R-j56n-PdvT*N1+hyTTFJ4I$ zI-)fr>Y`<{v^LA-7e<&{TV^co+>o95tkV;#v98?G2)m6|_&#VoCl_D$e#AR-cfUZD z+^eP5yLU_+T|D@@%4%@$*0^}EqWvmt_D1;Qo133)Acc;fejhA;+0OMr+i9Y0t2sQG zaVX8Nnx0#}+A^kVrQyOX6)L^ptg`T!=hjUSPORLN?RqD`BbeBF_2bu%3HGMQV(cc% zC$m$$7u>7W!l3X*XBBV#{D6gfhfC;#Sj=;nfxI4fJ~IQI4mN|)D`e)Uc0H$?Su{Gb z+hN`pMF!bA-Xs?aw)f}-x!^H#v{m-kPX*a_z=CWyQtjlTl3L3w3OtBk$oRENtJXiw zF+@A=6kgmq!EZ%wu=PWk2-BfWjA<-;GQ3N)?zK?=jRa|_*5Ar-22)v1cNP6yCJgqm zg_c@Rv2gNhxF*!}STo71@DJGpij(n1YGr=!TmuReP1AM?OMz%LqClMK+_bBQi zv2lkxKTEV|_#R*Li<`2`8=9BwXL`i%z%T+yXf^w_-3VD)?TNFS^I)?p|x;l{<)dHg4T7;&QeE6 zy)RwwL#5Z80=Me;ZNTmk+!rz|!cWVCF}`_#!!U-YzWw&p(+rItSna&dI#drkGhMGp z-3^zJlp$=ZUy|nXp7rX>+5XOu3#|m#xBoSh1|uWHv)=NtLc7X>T8nQ9>or0 zE-4RvxufwB-Z79ooXTi3XNdW$-?r1_Ak!SE7yPT;Hm&uWxGkRl|aP#F~pZljxeR;vmP!n7-Ha%}WOMC5SB4d+b?1wYg z9{{AK^i7+^2fQowh znijRTuo~^PuWzPP=iK6NUne!|JiIRoU-z|nr_^p0w(pdWsK4)Jw^%tK=*>cS+Gu}- z`j{EFb~VSSP5;4+TYEh6F>Bn~>-$z|>N@g8qZWUMzj@1kI`>joD!>Q2* zGWLDQmvh65D0WyDm%lS2-e#QtTA<(D3Drz1>^X%yAA+2H=Kg;wUIVH}yj8;N_Es4a K+Af^UV*h`HluhUW literal 38029 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�qC|0Iv&yqu6@Yo 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 e2&tN2w#Q2L2Q@c#j@9$7d5 From 37547189163837ae1b81dd805d59931b6c48aedb Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 30 Dec 2023 15:54:06 -0800 Subject: [PATCH 080/184] Updates locales again --- locale/ca_ES/LC_MESSAGES/django.mo | Bin 145991 -> 150169 bytes locale/ca_ES/LC_MESSAGES/django.po | 78 ++--- locale/de_DE/LC_MESSAGES/django.mo | Bin 30883 -> 151036 bytes locale/en_US/LC_MESSAGES/django.po | 4 +- locale/fr_FR/LC_MESSAGES/django.mo | Bin 44850 -> 154174 bytes locale/gl_ES/LC_MESSAGES/django.mo | Bin 146412 -> 146416 bytes locale/gl_ES/LC_MESSAGES/django.po | 6 +- locale/uk_UA/LC_MESSAGES/django.mo | Bin 146444 -> 169840 bytes locale/uk_UA/LC_MESSAGES/django.po | 450 ++++++++++++++------------- locale/zh_Hans/LC_MESSAGES/django.mo | Bin 44096 -> 94539 bytes locale/zh_Hant/LC_MESSAGES/django.mo | Bin 38839 -> 38029 bytes 11 files changed, 271 insertions(+), 267 deletions(-) diff --git a/locale/ca_ES/LC_MESSAGES/django.mo b/locale/ca_ES/LC_MESSAGES/django.mo index 1f5e30a2e788b527450e5805aead3e802f9309ab..c98411bd01bbc131161205cd091df5cc089ad268 100644 GIT binary patch delta 35015 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 delta 31153 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\n" "Language-Team: Catalan\n" "Language: ca\n" @@ -72,7 +72,7 @@ msgstr "La data de finalització de la lectura no pot ser en el futur." #: bookwyrm/forms/landing.py:38 msgid "Username or password are incorrect" -msgstr "Nom d'usuari o contrasenya incorrectes" +msgstr "El nom d'usuari o la contrasenya són incorrectes" #: bookwyrm/forms/landing.py:57 msgid "User with this username already exists" @@ -84,7 +84,7 @@ msgstr "Ja existeix un usuari amb aquesta adreça electrònica." #: bookwyrm/forms/landing.py:124 bookwyrm/forms/landing.py:132 msgid "Incorrect code" -msgstr "Codi incorrecte" +msgstr "El codi no és correcte" #: bookwyrm/forms/links.py:36 msgid "This domain is blocked. Please contact your administrator if you think this is an error." @@ -701,8 +701,8 @@ msgstr "… i la més llarga" #, python-format msgid "%(display_name)s set a goal of reading %(goal)s book in %(year)s,
    and achieved %(goal_percent)s%% of that goal" msgid_plural "%(display_name)s set a goal of reading %(goal)s books in %(year)s,
    and achieved %(goal_percent)s%% of that goal" -msgstr[0] "%(display_name)s havia fixat com a objectiu llegir %(goal)s llibre l'any %(year)s,
    i ha assolit llegir %(goal_percent)s%% d'aquell objectiu" -msgstr[1] "%(display_name)s havia fixat com a objectiu llegir %(goal)s llibres l'any %(year)s,
    i ha assolit llegir %(goal_percent)s d'aquell objectiu" +msgstr[0] "%(display_name)s havia fixat com a objectiu llegir %(goal)s llibres l'any %(year)s,
    i ha assolit llegir %(goal_percent)s%% d'aquell objectiu" +msgstr[1] "%(display_name)s s'havia fixat com a objectiu llegir %(goal)s llibres l'any %(year)s,
    i ha assolit llegir un %(goal_percent)s%% d'aquell objectiu" #: bookwyrm/templates/annual_summary/layout.html:211 msgid "Way to go!" @@ -1114,7 +1114,7 @@ msgstr "Carregueu una portada:" #: bookwyrm/templates/book/cover_add_modal.html:23 #: bookwyrm/templates/book/edit/edit_book_form.html:250 msgid "Load cover from URL:" -msgstr "" +msgstr "Carregueu portada desde una url:" #: bookwyrm/templates/book/cover_show_modal.html:6 msgid "Book cover preview" @@ -1490,7 +1490,7 @@ msgstr "Enllaços a fitxers" #: bookwyrm/templates/book/file_links/links.html:9 msgid "Get a copy" -msgstr "Obtingeu una còpia" +msgstr "Obtingueu-ne una còpia" #: bookwyrm/templates/book/file_links/links.html:47 msgid "No links available" @@ -2805,8 +2805,8 @@ msgstr "Fitxer CSV no vàlid" #, python-format msgid "Currently, you are allowed to import %(display_size)s books every %(import_limit_reset)s day." msgid_plural "Currently, you are allowed to import %(display_size)s books every %(import_limit_reset)s days." -msgstr[0] "" -msgstr[1] "Actualment, se't permet la importació de %(import_size_limit)s llibres cada %(import_limit_reset)s dies." +msgstr[0] "Actualment se us permet la importació de %(display_size)s llibres cada %(import_limit_reset)s dia." +msgstr[1] "Actualment se us permet la importació de %(display_size)s llibres cada %(import_limit_reset)s dies." #: bookwyrm/templates/import/import.html:27 #, python-format @@ -3226,7 +3226,7 @@ msgstr "contrasenya" #: bookwyrm/templates/layout.html:136 msgid "Show/Hide password" -msgstr "" +msgstr "Mostra/Oculta la contrasenya" #: bookwyrm/templates/layout.html:150 msgid "Join" @@ -3498,15 +3498,15 @@ msgstr "Llistes desades" #: bookwyrm/templates/moved.html:27 #, python-format msgid "You have moved your account to
    %(username)s" -msgstr "" +msgstr "Has mogut el teu compte a %(username)s" #: bookwyrm/templates/moved.html:32 msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." -msgstr "" +msgstr "Pots desfer el trasllat per restaurar totes les funcionalitats, però alguns seguidors potser ja han deixat de seguir aquest compte." #: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 msgid "Undo move" -msgstr "" +msgstr "Desfés el trasllat" #: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 msgid "Log out" @@ -3766,12 +3766,12 @@ msgstr "%(related_user)s us ha mencionat e #: bookwyrm/templates/notifications/items/move_user.html:18 #, python-format msgid "%(related_user)s has moved to %(username)s" -msgstr "" +msgstr "%(related_user)s s'ha mogut a %(username)s" #: bookwyrm/templates/notifications/items/move_user.html:25 #, python-format msgid "%(related_user)s has undone their move" -msgstr "" +msgstr "%(related_user)s ha desfet el seu canvi" #: bookwyrm/templates/notifications/items/remove.html:17 #, python-format @@ -4034,42 +4034,42 @@ msgstr "Configura 2FA" #: bookwyrm/templates/preferences/move_user.html:7 #: bookwyrm/templates/preferences/move_user.html:39 msgid "Move Account" -msgstr "" +msgstr "Moure al compte" #: bookwyrm/templates/preferences/alias_user.html:7 #: bookwyrm/templates/preferences/alias_user.html:34 msgid "Create Alias" -msgstr "" +msgstr "Crea un àlies" #: bookwyrm/templates/preferences/alias_user.html:12 msgid "Add another account as an alias" -msgstr "" +msgstr "Afegeix un altre compte com a àlies" #: bookwyrm/templates/preferences/alias_user.html:16 msgid "Marking another account as an alias is required if you want to move that account to this one." -msgstr "" +msgstr "Per a moure un altre compte sobre aquest, heu de marcar abans el primer com a àlies." #: bookwyrm/templates/preferences/alias_user.html:19 msgid "This is a reversable action and will not change the functionality of this account." -msgstr "" +msgstr "Aquesta acció és reversible i no alterarà la funcionalitat d'aquest compte." #: bookwyrm/templates/preferences/alias_user.html:25 msgid "Enter the username for the account you want to add as an alias e.g. user@example.com :" -msgstr "" +msgstr "Entreu el nom d'usuari del compte que voleu afegir com a àlies. Per exemple, usuari@exemple.com:" #: bookwyrm/templates/preferences/alias_user.html:30 #: bookwyrm/templates/preferences/move_user.html:35 msgid "Confirm your password:" -msgstr "" +msgstr "Confirmeu contrasenya:" #: bookwyrm/templates/preferences/alias_user.html:39 #: bookwyrm/templates/preferences/layout.html:28 msgid "Aliases" -msgstr "" +msgstr "Àlies" #: bookwyrm/templates/preferences/alias_user.html:49 msgid "Remove alias" -msgstr "" +msgstr "Esborra l'àlies" #: bookwyrm/templates/preferences/blocks.html:4 #: bookwyrm/templates/preferences/blocks.html:7 @@ -4227,7 +4227,7 @@ msgstr "Compte" #: bookwyrm/templates/preferences/layout.html:32 msgid "Move Account" -msgstr "" +msgstr "Moure al compte" #: bookwyrm/templates/preferences/layout.html:39 msgid "Data" @@ -4243,26 +4243,28 @@ msgstr "Relacions" #: bookwyrm/templates/preferences/move_user.html:12 msgid "Migrate account to another server" -msgstr "" +msgstr "Trasllada el compte a un altre servidor" #: bookwyrm/templates/preferences/move_user.html:16 msgid "Moving your account will notify all your followers and direct them to follow the new account." -msgstr "" +msgstr "El trasllat del compte es notificarà a tots els vostres seguidors i els convidarà a seguir-vos al compte nou." #: bookwyrm/templates/preferences/move_user.html:19 #, python-format msgid "\n" " %(user)s will be marked as moved and will not be discoverable or usable unless you undo the move.\n" " " -msgstr "" +msgstr "\n" +" %(user)s es marcarà com a traslladat i no es podrà localitzar o utilitzar si no en desfeu el trasllat.\n" +" " #: bookwyrm/templates/preferences/move_user.html:25 msgid "Remember to add this user as an alias of the target account before you try to move." -msgstr "" +msgstr "Recordeu afegir aquest usuari com a àlies del compte destí abans de fer el trasllat." #: bookwyrm/templates/preferences/move_user.html:30 msgid "Enter the username for the account you want to move to e.g. user@example.com :" -msgstr "" +msgstr "Entreu el nom d'usuari del compte que voleu afegir com a àlies. Per exemple, usuari@exemple.com:" #: bookwyrm/templates/reading_progress/finish.html:5 #, python-format @@ -4661,7 +4663,7 @@ msgstr "Estat del Celery" #: bookwyrm/templates/settings/celery.html:14 msgid "You can set up monitoring to check if Celery is running by querying:" -msgstr "" +msgstr "Podeu configurar la supervisió per revisar si el Celery s'està executant:" #: bookwyrm/templates/settings/celery.html:22 msgid "Queues" @@ -4673,7 +4675,7 @@ msgstr "Reproduccions" #: bookwyrm/templates/settings/celery.html:32 msgid "Broadcast" -msgstr "" +msgstr "Difondre" #: bookwyrm/templates/settings/celery.html:38 msgid "Inbox" @@ -5777,7 +5779,7 @@ msgstr "Instància remota" #: bookwyrm/templates/settings/users/user_admin.html:82 #: bookwyrm/templates/settings/users/user_info.html:29 msgid "Moved" -msgstr "" +msgstr "Mogut" #: bookwyrm/templates/settings/users/user_admin.html:93 msgid "Deleted" @@ -5996,11 +5998,11 @@ msgstr "Edita el prestatge" #: bookwyrm/templates/shelf/shelf.html:25 msgid "You have have moved to" -msgstr "" +msgstr "Us heu traslladat a" #: bookwyrm/templates/shelf/shelf.html:28 msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." -msgstr "" +msgstr "Podeu desfer aquest trasllat per recuperar totes les funcionalitats, però alguns seguidors poden haver deixat de seguir aquest compte." #: bookwyrm/templates/shelf/shelf.html:39 #: bookwyrm/templates/user/relationships/followers.html:18 @@ -6361,7 +6363,7 @@ msgstr "%(username)s ha llegit %(read_count)s de %(goal_cou #: bookwyrm/templates/snippets/move_user_buttons.html:10 msgid "Follow at new account" -msgstr "" +msgstr "Seguiu al compte nou" #: bookwyrm/templates/snippets/page_text.html:8 #, python-format @@ -6725,7 +6727,7 @@ msgstr "Grups: %(username)s" #: bookwyrm/templates/user/layout.html:50 msgid "has moved to" -msgstr "" +msgstr "s'ha traslladat a" #: bookwyrm/templates/user/layout.html:64 msgid "Follow Requests" @@ -6828,7 +6830,7 @@ msgstr "Encara no hi ha activitats." msgid "%(display_count)s follower" msgid_plural "%(display_count)s followers" msgstr[0] "%(display_count)s seguidor" -msgstr[1] "" +msgstr[1] "%(display_count)s seguidors" #: bookwyrm/templates/user/user_preview.html:31 #, python-format diff --git a/locale/de_DE/LC_MESSAGES/django.mo b/locale/de_DE/LC_MESSAGES/django.mo index 4ce83f72b3f3850c58528f13afcd23442a75a515..47ebdd534f608e4ad92d3633c8fcfdb929ac0eed 100644 GIT binary patch literal 151036 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 YpMR+9`Y)HK^v2)!8LIOK4=zpq1-SJHivR!s literal 30883 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\n" "Language-Team: English \n" @@ -461,7 +461,7 @@ msgid "Svenska (Swedish)" msgstr "" #: bookwyrm/settings.py:331 -msgid "Українська (Ukranian)" +msgid "Українська (Ukrainian)" msgstr "" #: bookwyrm/settings.py:332 diff --git a/locale/fr_FR/LC_MESSAGES/django.mo b/locale/fr_FR/LC_MESSAGES/django.mo index 4cdcbf8ea2a3ffdeed740317a055f435e5954b7c..46882a4dceaf89059a11ee6c1a3fce74cc85843c 100644 GIT binary patch literal 154174 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 literal 44850 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 M-|>ArH~iNB0iQBnO#lD@ diff --git a/locale/gl_ES/LC_MESSAGES/django.po b/locale/gl_ES/LC_MESSAGES/django.po index db5095ef6..3dcef726d 100644 --- a/locale/gl_ES/LC_MESSAGES/django.po +++ b/locale/gl_ES/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-11-02 21:32+0000\n" -"PO-Revision-Date: 2023-12-13 00:06\n" +"PO-Revision-Date: 2023-12-21 05:43\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Galician\n" "Language: gl\n" @@ -701,8 +701,8 @@ msgstr "…e a máis longa" #, python-format msgid "%(display_name)s set a goal of reading %(goal)s book in %(year)s,
    and achieved %(goal_percent)s%% of that goal" msgid_plural "%(display_name)s set a goal of reading %(goal)s books in %(year)s,
    and achieved %(goal_percent)s%% of that goal" -msgstr[0] "%(display_name)s ten como obxectivo ler %(goal)s libro en %(year)s,
    e vai polo %(goal_percent)s dese obxectivo" -msgstr[1] "%(display_name)s ten como obxectivo ler %(goal)s libros en %(year)s,
    e vai polo %(goal_percent)s dese obxectivo" +msgstr[0] "%(display_name)s ten como obxectivo ler %(goal)s libro en %(year)s,
    e vai polo %(goal_percent)s%% dese obxectivo" +msgstr[1] "%(display_name)s ten como obxectivo ler %(goal)s libros en %(year)s,
    e vai polo %(goal_percent)s%% dese obxectivo" #: bookwyrm/templates/annual_summary/layout.html:211 msgid "Way to go!" diff --git a/locale/uk_UA/LC_MESSAGES/django.mo b/locale/uk_UA/LC_MESSAGES/django.mo index 656ccf163afc3ad68539e92623519d8a26bf32ae..5d96992b62c914befd45413716c01186cf4b4e37 100644 GIT binary patch delta 42760 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 diff --git a/locale/uk_UA/LC_MESSAGES/django.po b/locale/uk_UA/LC_MESSAGES/django.po index 4637fbfa6..3496d7dce 100644 --- a/locale/uk_UA/LC_MESSAGES/django.po +++ b/locale/uk_UA/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-11-02 21:32+0000\n" -"PO-Revision-Date: 2023-12-17 09:02\n" +"PO-Revision-Date: 2023-12-24 09:07\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Ukrainian\n" "Language: uk\n" @@ -310,47 +310,47 @@ msgstr "Прокоментувати" #: bookwyrm/models/report.py:85 msgid "Resolved report" -msgstr "" +msgstr "Скаргу розглянуто" #: bookwyrm/models/report.py:86 msgid "Re-opened report" -msgstr "" +msgstr "Скаргу відкрито знов" #: bookwyrm/models/report.py:87 msgid "Messaged reporter" -msgstr "" +msgstr "Написано автору скарги" #: bookwyrm/models/report.py:88 msgid "Messaged reported user" -msgstr "" +msgstr "Написано тому, на кого поскаржилися" #: bookwyrm/models/report.py:89 msgid "Suspended user" -msgstr "" +msgstr "Користувача заблоковано" #: bookwyrm/models/report.py:90 msgid "Un-suspended user" -msgstr "" +msgstr "Користувача разблоковано" #: bookwyrm/models/report.py:91 msgid "Changed user permission level" -msgstr "" +msgstr "Рівень доступу користувача змінено" #: bookwyrm/models/report.py:92 msgid "Deleted user account" -msgstr "" +msgstr "Акаунт користувача видалено" #: bookwyrm/models/report.py:93 msgid "Blocked domain" -msgstr "" +msgstr "Домен заблоковано" #: bookwyrm/models/report.py:94 msgid "Approved domain" -msgstr "" +msgstr "Домен підтверджено" #: bookwyrm/models/report.py:95 msgid "Deleted item" -msgstr "" +msgstr "Запис видалено" #: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:307 msgid "Reviews" @@ -434,7 +434,7 @@ msgstr "Lietuvių (Литовська)" #: bookwyrm/settings.py:314 msgid "Nederlands (Dutch)" -msgstr "" +msgstr "Nederlands (Нідерландська)" #: bookwyrm/settings.py:315 msgid "Norsk (Norwegian)" @@ -1084,11 +1084,11 @@ msgstr "ISBN:" #: bookwyrm/templates/book/book_identifiers.html:12 #: bookwyrm/templates/book/book_identifiers.html:13 msgid "Copy ISBN" -msgstr "" +msgstr "Скопіювати ISBN" #: bookwyrm/templates/book/book_identifiers.html:16 msgid "Copied ISBN!" -msgstr "" +msgstr "ISBN скопійовано!" #: bookwyrm/templates/book/book_identifiers.html:23 #: bookwyrm/templates/book/edit/edit_book_form.html:352 @@ -1253,7 +1253,7 @@ msgstr "Назва:" #: bookwyrm/templates/book/edit/edit_book_form.html:35 msgid "Sort Title:" -msgstr "" +msgstr "Назва Для Сортування:" #: bookwyrm/templates/book/edit/edit_book_form.html:44 msgid "Subtitle:" @@ -1381,7 +1381,7 @@ msgstr "Видання %(book_title)s" #: bookwyrm/templates/book/editions/editions.html:8 #, python-format msgid "Editions of
    %(work_title)s" -msgstr "" +msgstr "Видання %(work_title)s" #: bookwyrm/templates/book/editions/editions.html:55 msgid "Can't find the edition you're looking for?" @@ -1693,7 +1693,7 @@ msgstr "Рекомендовані" #: bookwyrm/templates/user/user_preview.html:16 #: bookwyrm/templates/user/user_preview.html:17 msgid "Locked account" -msgstr "Заблокований обліковий запис" +msgstr "Акаунт заблоковано" #: bookwyrm/templates/directory/user_card.html:40 msgid "follower you follow" @@ -1838,7 +1838,7 @@ msgstr "Дізнайтеся більше open an issue if you are seeing unexpected failed items." -msgstr "" +msgstr "Зв'яжіться з вашим адміністратором або сповістіть про проблему, якщо ви бачите неочікувані помилки." #: bookwyrm/templates/landing/invite.html:4 #: bookwyrm/templates/landing/invite.html:8 #: bookwyrm/templates/landing/login.html:48 #: bookwyrm/templates/landing/reactivate.html:41 msgid "Create an Account" -msgstr "" +msgstr "Зареєструватися" #: bookwyrm/templates/landing/invite.html:21 msgid "Permission Denied" -msgstr "" +msgstr "Немає Дозволу" #: bookwyrm/templates/landing/invite.html:22 msgid "Sorry! This invite code is no longer valid." -msgstr "" +msgstr "Вибачте! Цей код запрошення більше не дійсний." #: bookwyrm/templates/landing/landing.html:9 msgid "Recent Books" -msgstr "" +msgstr "Недавні Книги" #: bookwyrm/templates/landing/layout.html:17 msgid "Decentralized" -msgstr "" +msgstr "Децентралізовано" #: bookwyrm/templates/landing/layout.html:23 msgid "Friendly" -msgstr "" +msgstr "Дружньо" #: bookwyrm/templates/landing/layout.html:29 msgid "Anti-Corporate" -msgstr "" +msgstr "Антикорпоративно" #: bookwyrm/templates/landing/layout.html:46 #, python-format msgid "Join %(name)s" -msgstr "" +msgstr "Приєднуйся до %(name)s" #: bookwyrm/templates/landing/layout.html:48 msgid "Request an Invitation" -msgstr "" +msgstr "Подати Заявку на Запрошення" #: bookwyrm/templates/landing/layout.html:50 #, python-format msgid "%(name)s registration is closed" -msgstr "" +msgstr "реєстрація на %(name)s закрита" #: bookwyrm/templates/landing/layout.html:61 msgid "Thank you! Your request has been received." -msgstr "" +msgstr "Дякуємо, ваш запит отримано." #: bookwyrm/templates/landing/layout.html:90 msgid "Your Account" -msgstr "" +msgstr "Ваш Акаунт" #: bookwyrm/templates/landing/login.html:4 msgid "Login" -msgstr "" +msgstr "Авторизація" #: bookwyrm/templates/landing/login.html:7 #: bookwyrm/templates/landing/login.html:36 bookwyrm/templates/layout.html:142 #: bookwyrm/templates/ostatus/error.html:37 msgid "Log in" -msgstr "" +msgstr "Увійти" #: bookwyrm/templates/landing/login.html:15 msgid "Success! Email address confirmed." -msgstr "" +msgstr "Адресу електронної пошти успішно підтверджено." #: bookwyrm/templates/landing/login.html:21 #: bookwyrm/templates/landing/reactivate.html:17 #: bookwyrm/templates/layout.html:128 bookwyrm/templates/ostatus/error.html:28 #: bookwyrm/templates/snippets/register_form.html:4 msgid "Username:" -msgstr "" +msgstr "Ім'я користувача (username):" #: bookwyrm/templates/landing/login.html:27 #: bookwyrm/templates/landing/password_reset.html:26 @@ -3185,12 +3185,12 @@ msgstr "" #: bookwyrm/templates/preferences/2fa.html:91 #: bookwyrm/templates/snippets/register_form.html:45 msgid "Password:" -msgstr "" +msgstr "Пароль:" #: bookwyrm/templates/landing/login.html:39 bookwyrm/templates/layout.html:139 #: bookwyrm/templates/ostatus/error.html:34 msgid "Forgot your password?" -msgstr "" +msgstr "Забули пароль?" #: bookwyrm/templates/landing/login.html:61 #: bookwyrm/templates/landing/reactivate.html:54 @@ -3201,54 +3201,54 @@ msgstr "Докладніше про цей сайт" #: bookwyrm/templates/preferences/change_password.html:33 #: bookwyrm/templates/preferences/delete_user.html:35 msgid "Confirm password:" -msgstr "" +msgstr "Підтвердження паролю:" #: bookwyrm/templates/landing/password_reset_request.html:14 #, python-format msgid "A password reset link will be sent to %(email)s if there is an account using that email address." -msgstr "" +msgstr "Посилання для відновлення паролю буде надіслано на %(email)s якщо існує обліковий запас з цим email." #: bookwyrm/templates/landing/password_reset_request.html:20 msgid "A link to reset your password will be sent to your email address" -msgstr "" +msgstr "Посилання для відновлення пароля було надіслано на вашу електронну адресу" #: bookwyrm/templates/landing/password_reset_request.html:34 msgid "Reset password" -msgstr "" +msgstr "Скинути пароль" #: bookwyrm/templates/landing/reactivate.html:4 #: bookwyrm/templates/landing/reactivate.html:7 msgid "Reactivate Account" -msgstr "" +msgstr "Повторна Активація Облікового Запису" #: bookwyrm/templates/landing/reactivate.html:32 msgid "Reactivate account" -msgstr "" +msgstr "Реактивувати акаунт" #: bookwyrm/templates/layout.html:13 #, python-format msgid "%(site_name)s search" -msgstr "" +msgstr "Пошук по %(site_name)s" #: bookwyrm/templates/layout.html:39 msgid "Search for a book, user, or list" -msgstr "" +msgstr "Шукати книгу, користувача або список" #: bookwyrm/templates/layout.html:54 bookwyrm/templates/layout.html:55 msgid "Scan Barcode" -msgstr "" +msgstr "Сканувати Штрих-код" #: bookwyrm/templates/layout.html:69 msgid "Main navigation menu" -msgstr "" +msgstr "Головне меню навігації" #: bookwyrm/templates/layout.html:88 msgid "Feed" -msgstr "" +msgstr "Стрічка подій" #: bookwyrm/templates/layout.html:134 bookwyrm/templates/ostatus/error.html:33 msgid "password" -msgstr "" +msgstr "пароль" #: bookwyrm/templates/layout.html:136 msgid "Show/Hide password" @@ -3256,176 +3256,176 @@ msgstr "Показати/Приховати пароль" #: bookwyrm/templates/layout.html:150 msgid "Join" -msgstr "" +msgstr "Приєднатися" #: bookwyrm/templates/layout.html:196 msgid "Successfully posted status" -msgstr "" +msgstr "Статус успішно опубліковано" #: bookwyrm/templates/layout.html:197 msgid "Error posting status" -msgstr "" +msgstr "Помилка публікації статусу" #: bookwyrm/templates/lists/add_item_modal.html:8 #, python-format msgid "Add \"%(title)s\" to this list" -msgstr "" +msgstr "Додати \"%(title)s\" до цього списку" #: bookwyrm/templates/lists/add_item_modal.html:12 #, python-format msgid "Suggest \"%(title)s\" for this list" -msgstr "" +msgstr "Запропонувати додати \"%(title)s\" у цей список" #: bookwyrm/templates/lists/add_item_modal.html:41 #: bookwyrm/templates/lists/list.html:257 msgid "Suggest" -msgstr "" +msgstr "Запропонувати" #: bookwyrm/templates/lists/bookmark_button.html:30 msgid "Un-save" -msgstr "" +msgstr "Видалити" #: bookwyrm/templates/lists/created_text.html:5 #, python-format msgid "Created by %(username)s and managed by %(groupname)s" -msgstr "" +msgstr "Створено %(username)s і керується %(groupname)s" #: bookwyrm/templates/lists/created_text.html:7 #, python-format msgid "Created and curated by %(username)s" -msgstr "" +msgstr "Створено та курується %(username)s" #: bookwyrm/templates/lists/created_text.html:9 #, python-format msgid "Created by %(username)s" -msgstr "" +msgstr "Створено %(username)s" #: bookwyrm/templates/lists/curate.html:12 msgid "Curate" -msgstr "" +msgstr "Курувати" #: bookwyrm/templates/lists/curate.html:21 msgid "Pending Books" -msgstr "" +msgstr "Книги в Очікуванні" #: bookwyrm/templates/lists/curate.html:24 msgid "You're all set!" -msgstr "" +msgstr "Все готово!" #: bookwyrm/templates/lists/curate.html:45 #: bookwyrm/templates/lists/list.html:93 #, python-format msgid "%(username)s says:" -msgstr "" +msgstr "%(username)s пише:" #: bookwyrm/templates/lists/curate.html:55 msgid "Suggested by" -msgstr "" +msgstr "Запропоновано" #: bookwyrm/templates/lists/curate.html:77 msgid "Discard" -msgstr "" +msgstr "Скасувати" #: bookwyrm/templates/lists/delete_list_modal.html:4 msgid "Delete this list?" -msgstr "" +msgstr "Видалити цей список?" #: bookwyrm/templates/lists/edit_form.html:5 #: bookwyrm/templates/lists/layout.html:23 msgid "Edit List" -msgstr "" +msgstr "Редагувати Список" #: bookwyrm/templates/lists/embed-list.html:8 #, python-format msgid "%(list_name)s, a list by %(owner)s" -msgstr "" +msgstr "%(list_name)s, список від %(owner)s" #: bookwyrm/templates/lists/embed-list.html:20 #, python-format msgid "on %(site_name)s" -msgstr "" +msgstr "на %(site_name)s" #: bookwyrm/templates/lists/embed-list.html:29 msgid "This list is currently empty" -msgstr "" +msgstr "Цей список наразі порожній" #: bookwyrm/templates/lists/form.html:19 msgid "List curation:" -msgstr "" +msgstr "Як буде куруватися список:" #: bookwyrm/templates/lists/form.html:31 msgid "Closed" -msgstr "" +msgstr "Закритий" #: bookwyrm/templates/lists/form.html:34 msgid "Only you can add and remove books to this list" -msgstr "" +msgstr "Тільки ви можете додавати та видаляти книги з цього списку" #: bookwyrm/templates/lists/form.html:48 msgid "Curated" -msgstr "" +msgstr "Курований" #: bookwyrm/templates/lists/form.html:51 msgid "Anyone can suggest books, subject to your approval" -msgstr "" +msgstr "Будь-хто може пропонувати книги, ви їх схвалюєте" #: bookwyrm/templates/lists/form.html:65 msgctxt "curation type" msgid "Open" -msgstr "" +msgstr "Відкритий" #: bookwyrm/templates/lists/form.html:68 msgid "Anyone can add books to this list" -msgstr "" +msgstr "Будь-хто може додати книги до цього списку" #: bookwyrm/templates/lists/form.html:82 msgid "Group" -msgstr "" +msgstr "Груповий" #: bookwyrm/templates/lists/form.html:85 msgid "Group members can add to and remove from this list" -msgstr "" +msgstr "Учасники групи можуть додавати та видаляти книги з цього списку" #: bookwyrm/templates/lists/form.html:90 msgid "Select Group" -msgstr "" +msgstr "Вибрати Групу" #: bookwyrm/templates/lists/form.html:94 msgid "Select a group" -msgstr "" +msgstr "Виберіть групу" #: bookwyrm/templates/lists/form.html:105 msgid "You don't have any Groups yet!" -msgstr "" +msgstr "У вас немає жодної групи!" #: bookwyrm/templates/lists/form.html:107 msgid "Create a Group" -msgstr "" +msgstr "Створити Групу" #: bookwyrm/templates/lists/form.html:121 msgid "Delete list" -msgstr "" +msgstr "Видалити список" #: bookwyrm/templates/lists/item_notes_field.html:7 #: bookwyrm/templates/settings/federation/edit_instance.html:86 msgid "Notes:" -msgstr "" +msgstr "Нотатки:" #: bookwyrm/templates/lists/item_notes_field.html:19 msgid "An optional note that will be displayed with the book." -msgstr "" +msgstr "Додаткові примітки, що показуватимуться з книгою." #: bookwyrm/templates/lists/list.html:37 msgid "That book is already on this list." -msgstr "" +msgstr "Ця книга вже є в цьому списку." #: bookwyrm/templates/lists/list.html:45 msgid "You successfully suggested a book for this list!" -msgstr "" +msgstr "Ви успішно запропонували книгу для цього списку!" #: bookwyrm/templates/lists/list.html:47 msgid "You successfully added a book to this list!" -msgstr "" +msgstr "Ви успішно додали книгу до цього списку!" #: bookwyrm/templates/lists/list.html:54 msgid "This list is currently empty." @@ -3433,35 +3433,35 @@ msgstr "Цей список наразі порожній." #: bookwyrm/templates/lists/list.html:104 msgid "Edit notes" -msgstr "" +msgstr "Редагувати нотатки" #: bookwyrm/templates/lists/list.html:119 msgid "Add notes" -msgstr "" +msgstr "Додати нотатки" #: bookwyrm/templates/lists/list.html:131 #, python-format msgid "Added by %(username)s" -msgstr "" +msgstr "Додано %(username)s" #: bookwyrm/templates/lists/list.html:146 msgid "List position" -msgstr "" +msgstr "Позиція в списку" #: bookwyrm/templates/lists/list.html:152 #: bookwyrm/templates/settings/link_domains/edit_domain_modal.html:23 msgid "Set" -msgstr "" +msgstr "Встановити" #: bookwyrm/templates/lists/list.html:167 #: bookwyrm/templates/snippets/remove_from_group_button.html:20 msgid "Remove" -msgstr "" +msgstr "Видалити" #: bookwyrm/templates/lists/list.html:181 #: bookwyrm/templates/lists/list.html:198 msgid "Sort List" -msgstr "" +msgstr "Відсортувати Список" #: bookwyrm/templates/lists/list.html:191 msgid "Direction" @@ -3469,62 +3469,62 @@ msgstr "Напрямок сортування" #: bookwyrm/templates/lists/list.html:205 msgid "Add Books" -msgstr "" +msgstr "Додати Книги" #: bookwyrm/templates/lists/list.html:207 msgid "Suggest Books" -msgstr "" +msgstr "Запропонувати Книги" #: bookwyrm/templates/lists/list.html:218 msgid "search" -msgstr "" +msgstr "пошук" #: bookwyrm/templates/lists/list.html:224 msgid "Clear search" -msgstr "" +msgstr "Очистити пошук" #: bookwyrm/templates/lists/list.html:229 #, python-format msgid "No books found matching the query \"%(query)s\"" -msgstr "" +msgstr "По запиту \"%(query)s\" не знайдено жодної книги" #: bookwyrm/templates/lists/list.html:268 msgid "Embed this list on a website" -msgstr "" +msgstr "Вставити цей список на сайт" #: bookwyrm/templates/lists/list.html:276 msgid "Copy embed code" -msgstr "" +msgstr "Скопіювати код вставки" #: bookwyrm/templates/lists/list.html:278 #, python-format msgid "%(list_name)s, a list by %(owner)s on %(site_name)s" -msgstr "" +msgstr "%(list_name)s, список %(owner)s на %(site_name)s" #: bookwyrm/templates/lists/list_items.html:15 msgid "Saved" -msgstr "" +msgstr "Збережено" #: bookwyrm/templates/lists/list_items.html:50 msgid "No lists found." -msgstr "" +msgstr "Не знайдено жодного списку." #: bookwyrm/templates/lists/lists.html:14 bookwyrm/templates/user/lists.html:14 msgid "Your Lists" -msgstr "" +msgstr "Ваші Списки" #: bookwyrm/templates/lists/lists.html:36 msgid "All Lists" -msgstr "" +msgstr "Всі Списки" #: bookwyrm/templates/lists/lists.html:40 msgid "Saved Lists" -msgstr "" +msgstr "Збережені Списки" #: bookwyrm/templates/moved.html:27 #, python-format msgid "You have moved your account to %(username)s" -msgstr "Ви перемістили свій обліковий запис на %(username)s" +msgstr "Ви перемістили свій акаунт на %(username)s" #: bookwyrm/templates/moved.html:32 msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." @@ -3749,51 +3749,51 @@ msgstr "%(related_user)s запрошує #: bookwyrm/templates/notifications/items/join.html:16 #, python-format msgid "has joined your group \"%(group_name)s\"" -msgstr "" +msgstr "приєднався до вашої групи \"%(group_name)s\"" #: bookwyrm/templates/notifications/items/leave.html:18 #, python-format msgid "%(related_user)s has left your group \"%(group_name)s\"" -msgstr "" +msgstr "%(related_user)s вийшов(-ла) з вашої групи \"%(group_name)s\"" #: bookwyrm/templates/notifications/items/leave.html:26 #, python-format msgid "%(related_user)s and %(second_user)s have left your group \"%(group_name)s\"" -msgstr "" +msgstr "%(related_user)s та %(second_user)s вийшли з вашої групи \"%(group_name)s\"" #: bookwyrm/templates/notifications/items/leave.html:36 #, python-format msgid "%(related_user)s and %(other_user_display_count)s others have left your group \"%(group_name)s\"" -msgstr "" +msgstr "%(related_user)s та %(other_user_display_count)s інших вийшли з вашої групи \"%(group_name)s\"" #: bookwyrm/templates/notifications/items/link_domain.html:15 #, python-format msgid "A new link domain needs review" msgid_plural "%(display_count)s new link domains need moderation" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Новий домен посилання потребує перевірки" +msgstr[1] "%(display_count)s нових доменів посилань потребують модерації" +msgstr[2] "%(display_count)s нових доменів посилань потребують модерації" +msgstr[3] "%(display_count)s нових доменів посилань потребують модерації" #: bookwyrm/templates/notifications/items/mention.html:20 #, python-format msgid "%(related_user)s mentioned you in a review of %(book_title)s" -msgstr "" +msgstr "%(related_user)s згадав(-ла) вас в рецензії на %(book_title)s" #: bookwyrm/templates/notifications/items/mention.html:26 #, python-format msgid "%(related_user)s mentioned you in a comment on %(book_title)s" -msgstr "" +msgstr "%(related_user)s згадав(-ла) вас в коментарі до %(book_title)s" #: bookwyrm/templates/notifications/items/mention.html:32 #, python-format msgid "%(related_user)s mentioned you in a quote from %(book_title)s" -msgstr "" +msgstr "%(related_user)s згадав(-ла) вас в цитаті з %(book_title)s" #: bookwyrm/templates/notifications/items/mention.html:38 #, python-format msgid "%(related_user)s mentioned you in a status" -msgstr "" +msgstr "%(related_user)s згадав(-ла) вас в статусі" #: bookwyrm/templates/notifications/items/move_user.html:18 #, python-format @@ -3808,46 +3808,46 @@ msgstr "%(related_user)s скасував своє переміщення" #: bookwyrm/templates/notifications/items/remove.html:17 #, python-format msgid "has been removed from your group \"%(group_name)s\"" -msgstr "" +msgstr "видалено з вашої групи \"%(group_name)s\"" #: bookwyrm/templates/notifications/items/remove.html:23 #, python-format msgid "You have been removed from the \"%(group_name)s\" group" -msgstr "" +msgstr "Ви були виключені з групи \"%(group_name)s\"" #: bookwyrm/templates/notifications/items/reply.html:21 #, python-format msgid "%(related_user)s replied to your review of %(book_title)s" -msgstr "" +msgstr "%(related_user)s відповів(-ла) на вашу рецензію на %(book_title)s" #: bookwyrm/templates/notifications/items/reply.html:27 #, python-format msgid "%(related_user)s replied to your comment on %(book_title)s" -msgstr "" +msgstr "%(related_user)s відповів(-ла) на ваш коментар до %(book_title)s" #: bookwyrm/templates/notifications/items/reply.html:33 #, python-format msgid "%(related_user)s replied to your quote from %(book_title)s" -msgstr "" +msgstr "%(related_user)s відповів(-ла) на вашу цитату з %(book_title)s" #: bookwyrm/templates/notifications/items/reply.html:39 #, python-format msgid "%(related_user)s replied to your status" -msgstr "" +msgstr "%(related_user)s відповів(-ла) на ваш статус" #: bookwyrm/templates/notifications/items/report.html:15 #, python-format msgid "A new report needs moderation" msgid_plural "%(display_count)s new reports need moderation" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Нова скарга потребує модерації" +msgstr[1] "%(display_count)s нові скарги потребують модерації" +msgstr[2] "%(display_count)s нових скарг потребують модерації" +msgstr[3] "%(display_count)s нових скарг потребують модерації" #: bookwyrm/templates/notifications/items/status_preview.html:4 #: bookwyrm/templates/snippets/status/content_status.html:62 msgid "Content warning" -msgstr "" +msgstr "Попередження про вміст" #: bookwyrm/templates/notifications/items/update.html:16 #, python-format @@ -4178,14 +4178,14 @@ msgstr "" #: bookwyrm/templates/preferences/edit_user.html:7 #: bookwyrm/templates/preferences/layout.html:15 msgid "Edit Profile" -msgstr "" +msgstr "Редагувати Профіль" #: bookwyrm/templates/preferences/edit_user.html:12 #: bookwyrm/templates/preferences/edit_user.html:25 #: bookwyrm/templates/settings/users/user_info.html:7 #: bookwyrm/templates/user_menu.html:29 msgid "Profile" -msgstr "" +msgstr "Профіль" #: bookwyrm/templates/preferences/edit_user.html:13 #: bookwyrm/templates/preferences/edit_user.html:64 @@ -4231,7 +4231,7 @@ msgstr "" #: bookwyrm/templates/preferences/edit_user.html:123 msgid "Hide followers and following on profile" -msgstr "" +msgstr "Приховати підписників і підписки в профілі" #: bookwyrm/templates/preferences/edit_user.html:128 msgid "Default post privacy:" @@ -4245,7 +4245,7 @@ msgstr "" #: bookwyrm/templates/preferences/export.html:4 #: bookwyrm/templates/preferences/export.html:7 msgid "CSV Export" -msgstr "" +msgstr "Експорт CSV" #: bookwyrm/templates/preferences/export.html:13 msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity." @@ -4301,26 +4301,26 @@ msgstr "" #: bookwyrm/templates/reading_progress/finish.html:5 #, python-format msgid "Finish \"%(book_title)s\"" -msgstr "" +msgstr "Завершити Читати \"%(book_title)s\"" #: bookwyrm/templates/reading_progress/start.html:5 #, python-format msgid "Start \"%(book_title)s\"" -msgstr "" +msgstr "Почати Читати \"%(book_title)s\"" #: bookwyrm/templates/reading_progress/stop.html:5 #, python-format msgid "Stop Reading \"%(book_title)s\"" -msgstr "" +msgstr "Припинити Читати \"%(book_title)s\"" #: bookwyrm/templates/reading_progress/want.html:5 #, python-format msgid "Want to Read \"%(book_title)s\"" -msgstr "" +msgstr "Хочу Прочитати \"%(book_title)s\"" #: bookwyrm/templates/readthrough/delete_readthrough_modal.html:4 msgid "Delete these read dates?" -msgstr "" +msgstr "Видалити ці дати читання?" #: bookwyrm/templates/readthrough/delete_readthrough_modal.html:8 #, python-format @@ -4398,11 +4398,13 @@ msgstr "" msgid "\n" " Scan Barcode\n" " " -msgstr "" +msgstr "\n" +" Сканувати Штрих-код\n" +" " #: bookwyrm/templates/search/barcode_modal.html:21 msgid "Requesting camera..." -msgstr "" +msgstr "Запитуємо камеру..." #: bookwyrm/templates/search/barcode_modal.html:22 msgid "Grant access to the camera to scan a book's barcode." @@ -4415,7 +4417,7 @@ msgstr "" #: bookwyrm/templates/search/barcode_modal.html:31 msgctxt "barcode scanner" msgid "Scanning..." -msgstr "" +msgstr "Сканування..." #: bookwyrm/templates/search/barcode_modal.html:32 msgid "Align your book's barcode with the camera." @@ -4424,7 +4426,7 @@ msgstr "" #: bookwyrm/templates/search/barcode_modal.html:36 msgctxt "barcode scanner" msgid "ISBN scanned" -msgstr "" +msgstr "ISBN відскановано" #: bookwyrm/templates/search/barcode_modal.html:37 msgctxt "followed by ISBN" @@ -4459,7 +4461,7 @@ msgstr "" #: bookwyrm/templates/search/book.html:117 msgid "Manually add book" -msgstr "" +msgstr "Додати книгу вручну" #: bookwyrm/templates/search/book.html:122 msgid "Log in to import or add books." @@ -4507,7 +4509,7 @@ msgstr "" #: bookwyrm/templates/settings/federation/instance.html:93 #: bookwyrm/templates/snippets/status/status_options.html:25 msgid "Edit" -msgstr "" +msgstr "Редагувати" #: bookwyrm/templates/settings/announcements/announcement.html:32 #: bookwyrm/templates/settings/announcements/announcements.html:3 @@ -4602,7 +4604,7 @@ msgstr "" #: bookwyrm/templates/settings/announcements/edit_announcement.html:98 msgid "Color:" -msgstr "" +msgstr "Колір:" #: bookwyrm/templates/settings/automod/rules.html:7 #: bookwyrm/templates/settings/automod/rules.html:11 @@ -4632,7 +4634,7 @@ msgstr "" #: bookwyrm/templates/settings/automod/rules.html:47 msgid "Enabled:" -msgstr "" +msgstr "Увімкнено:" #: bookwyrm/templates/settings/automod/rules.html:59 msgid "Delete schedule" @@ -4676,52 +4678,52 @@ msgstr "" #: bookwyrm/templates/settings/automod/rules.html:140 msgid "Add rule" -msgstr "" +msgstr "Додати правило" #: bookwyrm/templates/settings/automod/rules.html:147 msgid "Current Rules" -msgstr "" +msgstr "Поточні Правила" #: bookwyrm/templates/settings/automod/rules.html:151 msgid "Show rules" -msgstr "" +msgstr "Показати правила" #: bookwyrm/templates/settings/automod/rules.html:188 msgid "Remove rule" -msgstr "" +msgstr "Видалити правило" #: bookwyrm/templates/settings/celery.html:6 #: bookwyrm/templates/settings/celery.html:8 msgid "Celery Status" -msgstr "" +msgstr "Стан Celery" #: bookwyrm/templates/settings/celery.html:14 msgid "You can set up monitoring to check if Celery is running by querying:" -msgstr "" +msgstr "Ви можете налаштувати моніторинг стану Celery використав цей URL:" #: bookwyrm/templates/settings/celery.html:22 msgid "Queues" -msgstr "" +msgstr "Черги" #: bookwyrm/templates/settings/celery.html:26 msgid "Streams" -msgstr "" +msgstr "Стріми" #: bookwyrm/templates/settings/celery.html:32 msgid "Broadcast" -msgstr "" +msgstr "Широкомовлення" #: bookwyrm/templates/settings/celery.html:38 msgid "Inbox" -msgstr "" +msgstr "Вхідні" #: bookwyrm/templates/settings/celery.html:51 msgid "Import triggered" -msgstr "" +msgstr "Розпочаті імпорти" #: bookwyrm/templates/settings/celery.html:57 msgid "Connectors" -msgstr "" +msgstr "Конектори" #: bookwyrm/templates/settings/celery.html:64 #: bookwyrm/templates/settings/site.html:91 @@ -4730,192 +4732,192 @@ msgstr "Зображення" #: bookwyrm/templates/settings/celery.html:70 msgid "Suggested Users" -msgstr "" +msgstr "Рекомендовані Користувачі" #: bookwyrm/templates/settings/celery.html:83 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:43 #: bookwyrm/templates/settings/users/email_filter.html:5 msgid "Email" -msgstr "" +msgstr "Пошта" #: bookwyrm/templates/settings/celery.html:89 msgid "Misc" -msgstr "" +msgstr "Різне" #: bookwyrm/templates/settings/celery.html:96 msgid "Low priority" -msgstr "" +msgstr "Низький пріоритет" #: bookwyrm/templates/settings/celery.html:102 msgid "Medium priority" -msgstr "" +msgstr "Середній пріоритет" #: bookwyrm/templates/settings/celery.html:108 msgid "High priority" -msgstr "" +msgstr "Високий пріоритет" #: bookwyrm/templates/settings/celery.html:118 msgid "Could not connect to Redis broker" -msgstr "" +msgstr "Не вдалося підключитися до Redis" #: bookwyrm/templates/settings/celery.html:126 msgid "Active Tasks" -msgstr "" +msgstr "Активні завдання" #: bookwyrm/templates/settings/celery.html:131 #: bookwyrm/templates/settings/imports/imports.html:113 msgid "ID" -msgstr "" +msgstr "ID" #: bookwyrm/templates/settings/celery.html:132 msgid "Task name" -msgstr "" +msgstr "Назва завдання" #: bookwyrm/templates/settings/celery.html:133 msgid "Run time" -msgstr "" +msgstr "Час виконання" #: bookwyrm/templates/settings/celery.html:134 msgid "Priority" -msgstr "" +msgstr "Пріоритет" #: bookwyrm/templates/settings/celery.html:139 msgid "No active tasks" -msgstr "" +msgstr "Немає активних завдань" #: bookwyrm/templates/settings/celery.html:157 msgid "Workers" -msgstr "" +msgstr "Воркери" #: bookwyrm/templates/settings/celery.html:162 msgid "Uptime:" -msgstr "" +msgstr "Працює безперебійно:" #: bookwyrm/templates/settings/celery.html:172 msgid "Could not connect to Celery" -msgstr "" +msgstr "Не вдалося підключитися до Сelery" #: bookwyrm/templates/settings/celery.html:178 #: bookwyrm/templates/settings/celery.html:201 msgid "Clear Queues" -msgstr "" +msgstr "Очистити Черги" #: bookwyrm/templates/settings/celery.html:182 msgid "Clearing queues can cause serious problems including data loss! Only play with this if you really know what you're doing. You must shut down the Celery worker before you do this." -msgstr "" +msgstr "Очищення черг може спричинити серйозні проблеми, включаючи втрату даних! Ця опція для тих, хто дійсно знає що робить. Перш ніж очистити черги, ви мусите зупинити Celery." #: bookwyrm/templates/settings/celery.html:208 msgid "Errors" -msgstr "" +msgstr "Помилки" #: bookwyrm/templates/settings/dashboard/dashboard.html:6 #: bookwyrm/templates/settings/dashboard/dashboard.html:8 #: bookwyrm/templates/settings/layout.html:28 msgid "Dashboard" -msgstr "" +msgstr "Панель керування" #: bookwyrm/templates/settings/dashboard/dashboard.html:15 #: bookwyrm/templates/settings/dashboard/dashboard.html:109 msgid "Total users" -msgstr "" +msgstr "Всього користувачів" #: bookwyrm/templates/settings/dashboard/dashboard.html:21 #: bookwyrm/templates/settings/dashboard/user_chart.html:16 msgid "Active this month" -msgstr "" +msgstr "Активних у цьому місяці" #: bookwyrm/templates/settings/dashboard/dashboard.html:27 msgid "Statuses" -msgstr "" +msgstr "Статусів" #: bookwyrm/templates/settings/dashboard/dashboard.html:33 #: bookwyrm/templates/settings/dashboard/works_chart.html:11 msgid "Works" -msgstr "" +msgstr "Творів" #: bookwyrm/templates/settings/dashboard/dashboard.html:74 msgid "Instance Activity" -msgstr "" +msgstr "Активність Інстансу" #: bookwyrm/templates/settings/dashboard/dashboard.html:92 msgid "Interval:" -msgstr "" +msgstr "Інтервал:" #: bookwyrm/templates/settings/dashboard/dashboard.html:96 msgid "Days" -msgstr "" +msgstr "Дні" #: bookwyrm/templates/settings/dashboard/dashboard.html:97 msgid "Weeks" -msgstr "" +msgstr "Тижні" #: bookwyrm/templates/settings/dashboard/dashboard.html:115 msgid "User signup activity" -msgstr "" +msgstr "Активність по реєстраціях" #: bookwyrm/templates/settings/dashboard/dashboard.html:121 msgid "Status activity" -msgstr "" +msgstr "Активність по статусах" #: bookwyrm/templates/settings/dashboard/dashboard.html:127 msgid "Works created" -msgstr "" +msgstr "Творів створено" #: bookwyrm/templates/settings/dashboard/registration_chart.html:10 msgid "Registrations" -msgstr "" +msgstr "Реєстрації" #: bookwyrm/templates/settings/dashboard/status_chart.html:11 msgid "Statuses posted" -msgstr "" +msgstr "Опубліковані статуси" #: bookwyrm/templates/settings/dashboard/user_chart.html:11 msgid "Total" -msgstr "" +msgstr "Загалом" #: bookwyrm/templates/settings/dashboard/warnings/domain_review.html:9 #, python-format msgid "%(display_count)s domain needs review" msgid_plural "%(display_count)s domains need review" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%(display_count)s домен потребує перевірки" +msgstr[1] "%(display_count)s домена потребують перевірки" +msgstr[2] "%(display_count)s доменів потребують перевірки" +msgstr[3] "%(display_count)s доменів потребують перевірки" #: bookwyrm/templates/settings/dashboard/warnings/email_config.html:8 #, python-format msgid "Your outgoing email address, %(email_sender)s, may be misconfigured." -msgstr "" +msgstr "Ваша вихідна електронна адреса, %(email_sender)s, може бути невірною." #: bookwyrm/templates/settings/dashboard/warnings/email_config.html:11 msgid "Check the EMAIL_SENDER_NAME and EMAIL_SENDER_DOMAIN in your .env file." -msgstr "" +msgstr "Перевірте EMAIL_SENDER_NAME та EMAIL_SENDER_DOMAIN у вашому .env файлі." #: bookwyrm/templates/settings/dashboard/warnings/invites.html:9 #, python-format msgid "%(display_count)s invite request" msgid_plural "%(display_count)s invite requests" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%(display_count)s запит на запрошення" +msgstr[1] "%(display_count)s запита на запрошення" +msgstr[2] "%(display_count)s запитів на запрошення" +msgstr[3] "%(display_count)s запитів на запрошення" #: bookwyrm/templates/settings/dashboard/warnings/missing_conduct.html:8 msgid "Your instance is missing a code of conduct." -msgstr "" +msgstr "Вашому інстансу бракує кодексу поведінки." #: bookwyrm/templates/settings/dashboard/warnings/missing_privacy.html:8 msgid "Your instance is missing a privacy policy." -msgstr "" +msgstr "Вашому інстансу бракує політики конфіденційності." #: bookwyrm/templates/settings/dashboard/warnings/reports.html:9 #, python-format msgid "%(display_count)s open report" msgid_plural "%(display_count)s open reports" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%(display_count)s відкрита скарга" +msgstr[1] "%(display_count)s відкриті скарги" +msgstr[2] "%(display_count)s відкритих скарг" +msgstr[3] "%(display_count)s відкритих скарг" #: bookwyrm/templates/settings/dashboard/warnings/update_version.html:8 #, python-format diff --git a/locale/zh_Hans/LC_MESSAGES/django.mo b/locale/zh_Hans/LC_MESSAGES/django.mo index 1d1227f8092b70c68bb692fb532759090142aa83..566e3c144ec509cf8408d2092449d3af7e01e5db 100644 GIT binary patch literal 94539 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 ByKw*j literal 44096 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 S0TOg?KN0&d0;IH0jQ%f4%`RX7 diff --git a/locale/zh_Hant/LC_MESSAGES/django.mo b/locale/zh_Hant/LC_MESSAGES/django.mo index f9ca27be9b891b3b13c30e68d084e0cd54184a43..c2dabfbf0ffb731a3a105637765bc897dd541ca0 100644 GIT binary patch literal 38029 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�qC|0Iv&yqu6@Yo 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 e2&tN2w#Q2L2Q@c#j@9$7d5 literal 38839 zcmchg34D~*x&L4Hiu+oZssoCE5hUF_oRYHRJjnwd;md#&19+uPRv_jk_oP9^~q@9pP5A5XsLIp@4*KhJs2 zd1vs~Cm+5j;B&{JLGUT~+Q~uC?XV!2-C3bQ(5rV4Tm&zHr@?z*2bh9q!!NU*kAuD7QLwMY4>Wm*$+ww&57cwz zkYNa_;IZ(23x5b6jXWKyUl*9X(zpRC{R{AT_*Hled=*{-e+5;)6H0^NM0h$>JGwwU zR|551DO5cMLDl0{sB&+ID);kH>8qjg{Ss7vZ?^E?L$&)YsQmr~mCvz#{P>*+mA*Gr zx)@adq@l`r5UQS2;mL3|)VME)O7|7xEAVjSSK(>!b*Os13D1CkhpO+%SNU=}L8b2n z)i0MpwZ9)!zBfSCXBbqyKL?e*5~{!MhnoMB;azYJRJvw3AHD~b-}I}4;3UOE$;+YY zwc6xuQ0?0RRlmJZ<$fP3-LIgY`vX+EKSQPa8&o}x>g(%!2Glr3p!%&FRDCYB`2JA! zxXE}ARDUKceiBqUGoZ?u2Q{DTq3W|9s-Jd1)$3)b{9d*2H!S=usOSC(8S3D~Yl5H$ zycwPcCqnh_6Hw1T4b_j&L*={I^SLg|B1Q1f9TJR3d+RsLqE^bJt;`zBO>d>^X6e+;jHS*ZR!x1VQMsPw&|(v?D$ zca!l>3m*+Nf5t)0&j+FEy8x;^&p?&G87luq<2Q^yu=t-t)wkK?cc9Asz`{@Hk1j(# z3#z`CLA4_R)qfeNc{2rSzAS_)?8&J=;Kt2BsbmMM3 zae!~{1@JuLyFs;Y5Y+s-9Y)~ipvrj&D!(~U^{a>Kr?pV&cSE)FWvG68&EynkL4zBfa-_c@J#q! zsPdbQf42C)L$&+pfj+v|j{2Lw)Pr1S8a|TqsE`)l%C;TkD1}gt2q56F_RQt9-rE7#k;dh|s&DnIK>d^

    X;zjxq~@Za!Uc*G#z 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 K+Af^UV*h`HluhUW From 09b2dea9955010bd7ad7e9c1ae1c35e4cf74770e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dato=20Sim=C3=B3?= Date: Mon, 1 Jan 2024 09:01:21 -0300 Subject: [PATCH 081/184] dev-tools: ensure we install Node from upstream Fixes: #3173 ("`bw-dev build` fails") --- dev-tools/Dockerfile | 1 + dev-tools/nodejs.pref | 4 ++++ 2 files changed, 5 insertions(+) create mode 100644 dev-tools/nodejs.pref diff --git a/dev-tools/Dockerfile b/dev-tools/Dockerfile index f6a7bb793..3b7740a78 100644 --- a/dev-tools/Dockerfile +++ b/dev-tools/Dockerfile @@ -6,6 +6,7 @@ ENV PYTHONUNBUFFERED=1 ENV NPM_CONFIG_UPDATE_NOTIFIER=false ENV PIP_ROOT_USER_ACTION=ignore PIP_DISABLE_PIP_VERSION_CHECK=1 +COPY nodejs.pref /etc/apt/preferences.d/ COPY nodejs.sources /etc/apt/sources.list.d/ COPY package.json requirements.txt .stylelintrc.js .stylelintignore /app/dev-tools/ diff --git a/dev-tools/nodejs.pref b/dev-tools/nodejs.pref new file mode 100644 index 000000000..69e01c2c5 --- /dev/null +++ b/dev-tools/nodejs.pref @@ -0,0 +1,4 @@ +Package: nodejs +Pin: origin deb.nodesource.com +Pin-Priority: 995 +Explanation: prefer upstream packaging over Debian's From 0e3936cb613430f128a2fdc9109f515bddf43118 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adeodato=20Sim=C3=B3?= Date: Mon, 1 Jan 2024 18:16:28 +0100 Subject: [PATCH 082/184] naturalday_partial: do naturalize date and datetime objects --- bookwyrm/templatetags/date_ext.py | 2 +- bookwyrm/tests/templatetags/test_date_ext.py | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/bookwyrm/templatetags/date_ext.py b/bookwyrm/templatetags/date_ext.py index 6dc320bed..ae2690321 100644 --- a/bookwyrm/templatetags/date_ext.py +++ b/bookwyrm/templatetags/date_ext.py @@ -17,7 +17,7 @@ def naturalday_partial(date, arg=None): """ django_formats = ("DATE_FORMAT", "SHORT_DATE_FORMAT", "YEAR_MONTH_FORMAT") if not isinstance(date, PartialDate): - return defaultfilters.date(date, arg) + return naturalday(date, arg) if arg is None: arg = "DATE_FORMAT" if date.has_day: diff --git a/bookwyrm/tests/templatetags/test_date_ext.py b/bookwyrm/tests/templatetags/test_date_ext.py index f7ea73891..ebeb82907 100644 --- a/bookwyrm/tests/templatetags/test_date_ext.py +++ b/bookwyrm/tests/templatetags/test_date_ext.py @@ -2,9 +2,15 @@ from dateutil.parser import isoparse from django.test import TestCase, override_settings +from django.utils import timezone from bookwyrm.templatetags import date_ext -from bookwyrm.utils.partial_date import MonthParts, YearParts, from_partial_isoformat +from bookwyrm.utils.partial_date import ( + MonthParts, + PartialDate, + YearParts, + from_partial_isoformat, +) @override_settings(LANGUAGE_CODE="en-AU") @@ -60,3 +66,14 @@ class PartialDateTags(TestCase): self.assertEqual( "December.31", date_ext.naturalday_partial(self._partial_year, "F.j") ) + + def test_natural_format(self): + """today and yesterday are handled correctly""" + today = timezone.now() + today_date = today.date() + today_exact = PartialDate.from_datetime(today) + + # exact dates can be naturalized + self.assertEqual("today", date_ext.naturalday_partial(today)) + self.assertEqual("today", date_ext.naturalday_partial(today_date)) + self.assertEqual("today", date_ext.naturalday_partial(today_exact)) From 0d908b594cd858b74b32541e23a090fa7f321617 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adeodato=20Sim=C3=B3?= Date: Mon, 1 Jan 2024 18:23:51 +0100 Subject: [PATCH 083/184] naturalday_partial: do not naturalize dates with missing parts --- bookwyrm/templatetags/date_ext.py | 4 +++- bookwyrm/tests/templatetags/test_date_ext.py | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/bookwyrm/templatetags/date_ext.py b/bookwyrm/templatetags/date_ext.py index ae2690321..bdad92f4c 100644 --- a/bookwyrm/templatetags/date_ext.py +++ b/bookwyrm/templatetags/date_ext.py @@ -27,4 +27,6 @@ def naturalday_partial(date, arg=None): fmt = "YEAR_MONTH_FORMAT" if arg == "DATE_FORMAT" else arg else: fmt = "Y" if arg in django_formats else arg - return naturalday(date, fmt) + if date.has_day: + return naturalday(date, fmt) + return defaultfilters.date(date, fmt) diff --git a/bookwyrm/tests/templatetags/test_date_ext.py b/bookwyrm/tests/templatetags/test_date_ext.py index ebeb82907..bd31a95c9 100644 --- a/bookwyrm/tests/templatetags/test_date_ext.py +++ b/bookwyrm/tests/templatetags/test_date_ext.py @@ -77,3 +77,9 @@ class PartialDateTags(TestCase): self.assertEqual("today", date_ext.naturalday_partial(today)) self.assertEqual("today", date_ext.naturalday_partial(today_date)) self.assertEqual("today", date_ext.naturalday_partial(today_exact)) + + # dates with missing parts can't + today_year = YearParts.from_datetime(today) + today_month = MonthParts.from_datetime(today) + self.assertEqual(str(today.year), date_ext.naturalday_partial(today_year)) + self.assertEqual(str(today.year), date_ext.naturalday_partial(today_month, "Y")) From 4711b3bc1931e38fae814738b2ac72ef6970ab35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adeodato=20Sim=C3=B3?= Date: Mon, 1 Jan 2024 18:29:00 +0100 Subject: [PATCH 084/184] naturalday_partial: simplify/refactor --- bookwyrm/templatetags/date_ext.py | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/bookwyrm/templatetags/date_ext.py b/bookwyrm/templatetags/date_ext.py index bdad92f4c..efe55f2d9 100644 --- a/bookwyrm/templatetags/date_ext.py +++ b/bookwyrm/templatetags/date_ext.py @@ -15,18 +15,10 @@ def naturalday_partial(date, arg=None): If arg is a Django-defined format such as "DATE_FORMAT", it will be adjusted so that the precision of the PartialDate object is honored. """ - django_formats = ("DATE_FORMAT", "SHORT_DATE_FORMAT", "YEAR_MONTH_FORMAT") - if not isinstance(date, PartialDate): + if not isinstance(date, PartialDate) or date.has_day: return naturalday(date, arg) - if arg is None: - arg = "DATE_FORMAT" - if date.has_day: - fmt = arg - elif date.has_month: - # there is no SHORT_YEAR_MONTH_FORMAT, so we ignore SHORT_DATE_FORMAT :( - fmt = "YEAR_MONTH_FORMAT" if arg == "DATE_FORMAT" else arg - else: - fmt = "Y" if arg in django_formats else arg - if date.has_day: - return naturalday(date, fmt) - return defaultfilters.date(date, fmt) + if not arg or arg == "DATE_FORMAT": + arg = "YEAR_MONTH_FORMAT" if date.has_month else "Y" + elif not date.has_month and arg in ("SHORT_DATE_FORMAT", "YEAR_MONTH_FORMAT"): + arg = "Y" + return defaultfilters.date(date, arg) From 86d79f537ad7fa56ced93862b4a7b0afc8e5de41 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Mon, 1 Jan 2024 19:29:24 -0800 Subject: [PATCH 085/184] Adds merge migration --- bookwyrm/migrations/0191_merge_20240102_0326.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 bookwyrm/migrations/0191_merge_20240102_0326.py diff --git a/bookwyrm/migrations/0191_merge_20240102_0326.py b/bookwyrm/migrations/0191_merge_20240102_0326.py new file mode 100644 index 000000000..5f1fd88d2 --- /dev/null +++ b/bookwyrm/migrations/0191_merge_20240102_0326.py @@ -0,0 +1,14 @@ +# Generated by Django 3.2.23 on 2024-01-02 03:26 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('bookwyrm', '0189_alter_user_preferred_language'), + ('bookwyrm', '0190_alter_notification_notification_type'), + ] + + operations = [ + ] From f72ada4780d203a4cbe2469e0bedb4fb3d7b0fd9 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Mon, 1 Jan 2024 19:29:43 -0800 Subject: [PATCH 086/184] Updates javascript cache buster just in case --- bookwyrm/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bookwyrm/settings.py b/bookwyrm/settings.py index b3c918703..fcc91857a 100644 --- a/bookwyrm/settings.py +++ b/bookwyrm/settings.py @@ -31,7 +31,7 @@ RELEASE_API = env( PAGE_LENGTH = env.int("PAGE_LENGTH", 15) DEFAULT_LANGUAGE = env("DEFAULT_LANGUAGE", "English") -JS_CACHE = "ac315a3b" +JS_CACHE = "8a89cad7" # email EMAIL_BACKEND = env("EMAIL_BACKEND", "django.core.mail.backends.smtp.EmailBackend") From e2249f25154af85d190be23cde2401d77327b7ad Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Mon, 1 Jan 2024 19:30:03 -0800 Subject: [PATCH 087/184] Updates locales --- locale/ca_ES/LC_MESSAGES/django.mo | Bin 150169 -> 149032 bytes locale/ca_ES/LC_MESSAGES/django.po | 405 +++++++++++++++----------- locale/de_DE/LC_MESSAGES/django.mo | Bin 151036 -> 149930 bytes locale/de_DE/LC_MESSAGES/django.po | 405 +++++++++++++++----------- locale/en_US/LC_MESSAGES/django.po | 415 +++++++++++++++++++++------ locale/eo_UY/LC_MESSAGES/django.mo | Bin 145168 -> 144089 bytes locale/eo_UY/LC_MESSAGES/django.po | 405 +++++++++++++++----------- locale/es_ES/LC_MESSAGES/django.mo | Bin 149896 -> 148786 bytes locale/es_ES/LC_MESSAGES/django.po | 405 +++++++++++++++----------- locale/eu_ES/LC_MESSAGES/django.mo | Bin 151115 -> 150037 bytes locale/eu_ES/LC_MESSAGES/django.po | 405 +++++++++++++++----------- locale/fi_FI/LC_MESSAGES/django.mo | Bin 143879 -> 143133 bytes locale/fi_FI/LC_MESSAGES/django.po | 405 +++++++++++++++----------- locale/fr_FR/LC_MESSAGES/django.mo | Bin 154174 -> 153012 bytes locale/fr_FR/LC_MESSAGES/django.po | 405 +++++++++++++++----------- locale/gl_ES/LC_MESSAGES/django.mo | Bin 146416 -> 145356 bytes locale/gl_ES/LC_MESSAGES/django.po | 405 +++++++++++++++----------- locale/it_IT/LC_MESSAGES/django.mo | Bin 146772 -> 145641 bytes locale/it_IT/LC_MESSAGES/django.po | 405 +++++++++++++++----------- locale/lt_LT/LC_MESSAGES/django.mo | Bin 145743 -> 145033 bytes locale/lt_LT/LC_MESSAGES/django.po | 407 +++++++++++++++----------- locale/nl_NL/LC_MESSAGES/django.mo | Bin 148744 -> 147633 bytes locale/nl_NL/LC_MESSAGES/django.po | 405 +++++++++++++++----------- locale/no_NO/LC_MESSAGES/django.mo | Bin 96773 -> 96055 bytes locale/no_NO/LC_MESSAGES/django.po | 405 +++++++++++++++----------- locale/pl_PL/LC_MESSAGES/django.mo | Bin 130667 -> 130388 bytes locale/pl_PL/LC_MESSAGES/django.po | 405 +++++++++++++++----------- locale/pt_BR/LC_MESSAGES/django.mo | Bin 92338 -> 92307 bytes locale/pt_BR/LC_MESSAGES/django.po | 401 +++++++++++++++----------- locale/pt_PT/LC_MESSAGES/django.mo | Bin 139503 -> 138784 bytes locale/pt_PT/LC_MESSAGES/django.po | 405 +++++++++++++++----------- locale/ro_RO/LC_MESSAGES/django.mo | Bin 124127 -> 123365 bytes locale/ro_RO/LC_MESSAGES/django.po | 406 +++++++++++++++----------- locale/sv_SE/LC_MESSAGES/django.mo | Bin 138546 -> 137804 bytes locale/sv_SE/LC_MESSAGES/django.po | 405 +++++++++++++++----------- locale/uk_UA/LC_MESSAGES/django.mo | Bin 169840 -> 168423 bytes locale/uk_UA/LC_MESSAGES/django.po | 407 +++++++++++++++----------- locale/zh_Hans/LC_MESSAGES/django.mo | Bin 94539 -> 94511 bytes locale/zh_Hans/LC_MESSAGES/django.po | 400 +++++++++++++++----------- locale/zh_Hant/LC_MESSAGES/django.mo | Bin 38029 -> 38001 bytes locale/zh_Hant/LC_MESSAGES/django.po | 400 +++++++++++++++----------- 41 files changed, 4953 insertions(+), 3553 deletions(-) diff --git a/locale/ca_ES/LC_MESSAGES/django.mo b/locale/ca_ES/LC_MESSAGES/django.mo index c98411bd01bbc131161205cd091df5cc089ad268..ff27fe43358cc89955063433521227cd82b93e5d 100644 GIT binary patch delta 30917 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 diff --git a/locale/ca_ES/LC_MESSAGES/django.po b/locale/ca_ES/LC_MESSAGES/django.po index 4d59cdbfc..f73aa49bf 100644 --- a/locale/ca_ES/LC_MESSAGES/django.po +++ b/locale/ca_ES/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-02 21:32+0000\n" -"PO-Revision-Date: 2023-12-30 22:25\n" +"POT-Creation-Date: 2023-12-30 23:52+0000\n" +"PO-Revision-Date: 2024-01-02 03:11\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Catalan\n" "Language: ca\n" @@ -102,8 +102,8 @@ msgstr "Ordre del llistat" msgid "Book Title" msgstr "Títol del llibre" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 -#: bookwyrm/templates/shelf/shelf.html:203 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:158 +#: bookwyrm/templates/shelf/shelf.html:190 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Valoració" @@ -141,7 +141,7 @@ msgstr "Advertència" msgid "Danger" msgstr "Alerta" -#: bookwyrm/models/antispam.py:112 bookwyrm/models/antispam.py:146 +#: bookwyrm/models/antispam.py:113 bookwyrm/models/antispam.py:147 msgid "Automatically generated report" msgstr "Informe generat automàticament" @@ -205,26 +205,26 @@ msgstr "Federat" msgid "Blocked" msgstr "Blocat" -#: bookwyrm/models/fields.py:30 +#: bookwyrm/models/fields.py:35 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s no és una remote_id vàlida" -#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 +#: bookwyrm/models/fields.py:44 bookwyrm/models/fields.py:53 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s no és un nom d'usuari vàlid" -#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 +#: bookwyrm/models/fields.py:198 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "nom d'usuari" -#: bookwyrm/models/fields.py:198 +#: bookwyrm/models/fields.py:203 msgid "A user with that username already exists." msgstr "Ja existeix un usuari amb aquest nom." -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:222 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "Ja existeix un usuari amb aquest nom." msgid "Public" msgstr "Públic" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:223 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Públic" msgid "Unlisted" msgstr "No llistat" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:224 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "No llistat" msgid "Followers" msgstr "Seguidors" -#: bookwyrm/models/fields.py:220 +#: bookwyrm/models/fields.py:225 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -260,8 +260,7 @@ msgstr "Privat" #: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:87 -#: bookwyrm/templates/settings/users/user_info.html:33 +#: bookwyrm/templates/snippets/user_active_tag.html:8 msgid "Active" msgstr "Actiu" @@ -352,122 +351,143 @@ msgstr "Domini aprovat" msgid "Deleted item" msgstr "Element suprimit" -#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:307 +#: bookwyrm/models/user.py:33 bookwyrm/templates/book/book.html:307 msgid "Reviews" msgstr "Ressenya" -#: bookwyrm/models/user.py:33 +#: bookwyrm/models/user.py:34 msgid "Comments" msgstr "Comentaris" -#: bookwyrm/models/user.py:34 +#: bookwyrm/models/user.py:35 msgid "Quotations" msgstr "Citacions" -#: bookwyrm/models/user.py:35 +#: bookwyrm/models/user.py:36 msgid "Everything else" msgstr "Tota la resta" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home Timeline" msgstr "Línia de temps Inici" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home" msgstr "Inici" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 msgid "Books Timeline" msgstr "Cronologia dels llibres" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:112 +#: bookwyrm/templates/user/layout.html:107 msgid "Books" msgstr "Llibres" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:313 msgid "English" msgstr "English (Anglès)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:314 msgid "Català (Catalan)" msgstr "Català" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:315 msgid "Deutsch (German)" msgstr "Deutsch (Alemany)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:316 msgid "Esperanto (Esperanto)" msgstr "Esperanto (Esperanto)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:317 msgid "Español (Spanish)" msgstr "Español (espanyol)" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:318 msgid "Euskara (Basque)" msgstr "Euskera (Basc)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:319 msgid "Galego (Galician)" msgstr "Galego (gallec)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:320 msgid "Italiano (Italian)" msgstr "Italiano (italià)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:321 msgid "Suomi (Finnish)" msgstr "Suomi (finès)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:322 msgid "Français (French)" msgstr "Français (francès)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:323 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių (Lituà)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:324 msgid "Nederlands (Dutch)" msgstr "Països Baixos (Holandès)" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:325 msgid "Norsk (Norwegian)" msgstr "Norsk (noruec)" -#: bookwyrm/settings.py:316 +#: bookwyrm/settings.py:326 msgid "Polski (Polish)" msgstr "Polski (polonès)" -#: bookwyrm/settings.py:317 +#: bookwyrm/settings.py:327 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil (portuguès del Brasil)" -#: bookwyrm/settings.py:318 +#: bookwyrm/settings.py:328 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (Portuguès europeu)" -#: bookwyrm/settings.py:319 +#: bookwyrm/settings.py:329 msgid "Română (Romanian)" msgstr "Română (romanès)" -#: bookwyrm/settings.py:320 +#: bookwyrm/settings.py:330 msgid "Svenska (Swedish)" msgstr "Svenska (suec)" -#: bookwyrm/settings.py:321 +#: bookwyrm/settings.py:331 +msgid "Українська (Ukrainian)" +msgstr "" + +#: bookwyrm/settings.py:332 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文 (xinès simplificat)" -#: bookwyrm/settings.py:322 +#: bookwyrm/settings.py:333 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (xinès tradicional)" +#: bookwyrm/templates/403.html:5 +msgid "Oh no!" +msgstr "" + +#: bookwyrm/templates/403.html:9 bookwyrm/templates/landing/invite.html:21 +msgid "Permission Denied" +msgstr "Permís denegat" + +#: bookwyrm/templates/403.html:11 +#, python-format +msgid "You do not have permission to view this page or perform this action. Your user permission level is %(level)s." +msgstr "" + +#: bookwyrm/templates/403.html:15 +msgid "If you think you should have access, please speak to your BookWyrm server administrator." +msgstr "" + #: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8 msgid "Not Found" msgstr "No trobat" @@ -476,6 +496,20 @@ msgstr "No trobat" msgid "The page you requested doesn't seem to exist!" msgstr "La pàgina que heu sol·licitat no existeix" +#: bookwyrm/templates/413.html:4 bookwyrm/templates/413.html:8 +msgid "File too large" +msgstr "" + +#: bookwyrm/templates/413.html:9 +msgid "The file you are uploading is too large." +msgstr "" + +#: bookwyrm/templates/413.html:11 +msgid "\n" +" You you can try using a smaller file, or ask your BookWyrm server administrator to increase the DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "Vaja!" @@ -536,12 +570,12 @@ msgstr "Les persones moderadores i administradores de %(site_name)s mantenen en msgid "Moderator" msgstr "Moderació" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "Administració" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -906,7 +940,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1042,13 +1076,13 @@ msgstr "Llocs" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Llistes" @@ -1324,7 +1358,7 @@ msgid "Add Another Author" msgstr "Afegiu un altre autor" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "Coberta" @@ -1451,8 +1485,9 @@ msgstr "Domini" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "Estat" @@ -1461,7 +1496,7 @@ msgstr "Estat" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "Accions" @@ -1583,7 +1618,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Perdona'ns! No hem pogut trobar aquest codi." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "Codi de confirmació:" @@ -1752,7 +1787,7 @@ msgstr "%(username)s ha citat %(username)s" msgstr "Missatges Directes amb %(username)s" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "Missatges directes" @@ -1945,7 +1980,7 @@ msgstr "Actualitzacions" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "Els teus llibres" @@ -1993,19 +2028,19 @@ msgid "Add to your books" msgstr "Afegir als vostres llibres" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "Pendent de llegir" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "Lectures actuals" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2014,7 +2049,7 @@ msgid "Read" msgstr "Llegits" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "Deixat de llegir" @@ -2511,8 +2546,8 @@ msgid "Barcode reader" msgstr "Lector de codi de barres" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" -msgstr "Utilitzeu els enllaços Activitat, Llistes i Descobriu per descobrir les últimes novetats de les vostres activitats, llistes de llibres per temes, i els últims esdeveniments d'aquest servidor Bookwyrm." +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" +msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 msgid "Navigation Bar" @@ -2543,8 +2578,8 @@ msgid "Notifications" msgstr "Notificacions" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." -msgstr "Es pot accedir all vostre perfil, llibres, missatges directes i configuració clicant a sobre del vostre nom en aquest menú." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 msgid "Try selecting Profile from the drop down menu to continue the tour." @@ -2699,8 +2734,7 @@ msgstr "Podeu crear o unir-vos a un grup amb altres usuàries. Els grups poden c #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "Grups" @@ -2754,7 +2788,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "Aquesta pestanya mostra tot el que heu llegit de cara al vostre objectiu de lectura anual, o us permet establir-ne un si no en teniu." #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "Objectiu de lectura" @@ -2793,7 +2827,7 @@ msgstr "Cap activitat per a aquesta etiqueta!" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "Importa Llibres" @@ -2964,8 +2998,8 @@ msgid "Row" msgstr "Fila" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "Títol" @@ -2978,8 +3012,8 @@ msgid "Openlibrary key" msgstr "Clau d'OpenLibrary" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "Autor/a" @@ -3085,10 +3119,6 @@ msgstr "Contacteu amb l'administrador o Has mogut el teu compte a %(us msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." msgstr "Pots desfer el trasllat per restaurar totes les funcionalitats, però alguns seguidors potser ja han deixat de seguir aquest compte." -#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +#: bookwyrm/templates/moved.html:42 msgid "Undo move" msgstr "Desfés el trasllat" -#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:77 msgid "Log out" msgstr "Desconnecta" @@ -3716,6 +3743,13 @@ msgstr "S'ha completat el vostre import." msgid "%(related_user)s invited you to join the group \"%(group_name)s\"" msgstr "%(related_user)s us ha convidat a unir-vos al grup \"%(group_name)s\"" +#: bookwyrm/templates/notifications/items/invite_request.html:15 +#, python-format +msgid "New invite request awaiting response" +msgid_plural "%(display_count)s new invite requests awaiting response" +msgstr[0] "" +msgstr[1] "" + #: bookwyrm/templates/notifications/items/join.html:16 #, python-format msgid "has joined your group \"%(group_name)s\"" @@ -4148,7 +4182,7 @@ msgstr "Edita el perfil" #: bookwyrm/templates/preferences/edit_user.html:12 #: bookwyrm/templates/preferences/edit_user.html:25 -#: bookwyrm/templates/settings/users/user_info.html:7 +#: bookwyrm/templates/settings/users/user_info.html:8 #: bookwyrm/templates/user_menu.html:29 msgid "Profile" msgstr "Perfil" @@ -5000,19 +5034,19 @@ msgstr "Instància:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:119 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Status:" msgstr "Estat:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:107 msgid "Software:" msgstr "Programari:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:116 +#: bookwyrm/templates/settings/users/user_info.html:110 msgid "Version:" msgstr "Versió:" @@ -5025,7 +5059,7 @@ msgid "Details" msgstr "Detalls" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:84 +#: bookwyrm/templates/user/layout.html:79 msgid "Activity" msgstr "Activitat" @@ -5039,7 +5073,7 @@ msgid "View all" msgstr "Mostra tots" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:66 +#: bookwyrm/templates/settings/users/user_info.html:60 msgid "Reports:" msgstr "Informes:" @@ -5056,7 +5090,7 @@ msgid "Blocked by us:" msgstr "Bloquejat per nosaltres:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:123 +#: bookwyrm/templates/settings/users/user_info.html:117 msgid "Notes" msgstr "Notes" @@ -5213,7 +5247,7 @@ msgstr "Peticions d'invitació" #: bookwyrm/templates/settings/invites/manage_invites.html:3 #: bookwyrm/templates/settings/invites/manage_invites.html:15 #: bookwyrm/templates/settings/layout.html:42 -#: bookwyrm/templates/user_menu.html:60 +#: bookwyrm/templates/user_menu.html:55 msgid "Invites" msgstr "Invitacions" @@ -5687,57 +5721,73 @@ msgid "Set instance default theme" msgstr "Estableix el tema per defecte de la instància" #: bookwyrm/templates/settings/themes.html:19 +msgid "One of your themes appears to be broken. Selecting this theme will make the application unusable." +msgstr "" + +#: bookwyrm/templates/settings/themes.html:28 msgid "Successfully added theme" msgstr "Tema afegit correctament" -#: bookwyrm/templates/settings/themes.html:26 +#: bookwyrm/templates/settings/themes.html:35 msgid "How to add a theme" msgstr "Com afegir un tema" -#: bookwyrm/templates/settings/themes.html:29 +#: bookwyrm/templates/settings/themes.html:38 msgid "Copy the theme file into the bookwyrm/static/css/themes directory on your server from the command line." msgstr "Copia el fitxer del tema a la carpeta bookwyrm/static/css/themes del teu servidor des de la línia d'ordres." -#: bookwyrm/templates/settings/themes.html:32 +#: bookwyrm/templates/settings/themes.html:41 msgid "Run ./bw-dev compile_themes and ./bw-dev collectstatic." msgstr "Executa ./bw-dev compile_themes i ./bw-dev collectstatic." -#: bookwyrm/templates/settings/themes.html:35 +#: bookwyrm/templates/settings/themes.html:44 msgid "Add the file name using the form below to make it available in the application interface." msgstr "Afegeix el nom del fitxer a partir del formulari de sota per fer-lo disponible a la interfície de l'aplicació." -#: bookwyrm/templates/settings/themes.html:42 -#: bookwyrm/templates/settings/themes.html:82 +#: bookwyrm/templates/settings/themes.html:51 +#: bookwyrm/templates/settings/themes.html:91 msgid "Add theme" msgstr "Afegeix tema" -#: bookwyrm/templates/settings/themes.html:48 +#: bookwyrm/templates/settings/themes.html:57 msgid "Unable to save theme" msgstr "No s'ha pogut desar el tema" -#: bookwyrm/templates/settings/themes.html:63 -#: bookwyrm/templates/settings/themes.html:93 +#: bookwyrm/templates/settings/themes.html:72 +#: bookwyrm/templates/settings/themes.html:102 msgid "Theme name" msgstr "Nom del tema" -#: bookwyrm/templates/settings/themes.html:73 +#: bookwyrm/templates/settings/themes.html:82 msgid "Theme filename" msgstr "Nom del fitxer del tema" -#: bookwyrm/templates/settings/themes.html:88 +#: bookwyrm/templates/settings/themes.html:97 msgid "Available Themes" msgstr "Temes disponibles" -#: bookwyrm/templates/settings/themes.html:96 +#: bookwyrm/templates/settings/themes.html:105 msgid "File" msgstr "Fitxer" -#: bookwyrm/templates/settings/themes.html:111 +#: bookwyrm/templates/settings/themes.html:123 msgid "Remove theme" msgstr "Elimina el tema" +#: bookwyrm/templates/settings/themes.html:134 +msgid "Test theme" +msgstr "" + +#: bookwyrm/templates/settings/themes.html:143 +msgid "Broken theme" +msgstr "" + +#: bookwyrm/templates/settings/themes.html:152 +msgid "Loaded successfully" +msgstr "" + #: bookwyrm/templates/settings/users/delete_user_form.html:5 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:38 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:52 msgid "Permanently delete user" msgstr "Suprimeix l'usuari de manera permanent" @@ -5776,106 +5826,108 @@ msgstr "Actiu per última vegada" msgid "Remote instance" msgstr "Instància remota" -#: bookwyrm/templates/settings/users/user_admin.html:82 -#: bookwyrm/templates/settings/users/user_info.html:29 -msgid "Moved" -msgstr "Mogut" - -#: bookwyrm/templates/settings/users/user_admin.html:93 -msgid "Deleted" -msgstr "Eliminat" - -#: bookwyrm/templates/settings/users/user_admin.html:99 -#: bookwyrm/templates/settings/users/user_info.html:38 -msgid "Inactive" -msgstr "Inactiu" - -#: bookwyrm/templates/settings/users/user_admin.html:108 -#: bookwyrm/templates/settings/users/user_info.html:133 +#: bookwyrm/templates/settings/users/user_admin.html:84 +#: bookwyrm/templates/settings/users/user_info.html:127 msgid "Not set" msgstr "No s'ha configurat" -#: bookwyrm/templates/settings/users/user_info.html:16 +#: bookwyrm/templates/settings/users/user_info.html:20 +msgid "This account is the instance actor for signing HTTP requests." +msgstr "" + +#: bookwyrm/templates/settings/users/user_info.html:24 msgid "View user profile" msgstr "Veure perfil d'Usuari" -#: bookwyrm/templates/settings/users/user_info.html:19 +#: bookwyrm/templates/settings/users/user_info.html:30 msgid "Go to user admin" msgstr "Ves a administració d'usuàries" -#: bookwyrm/templates/settings/users/user_info.html:46 +#: bookwyrm/templates/settings/users/user_info.html:40 msgid "Local" msgstr "Local" -#: bookwyrm/templates/settings/users/user_info.html:48 +#: bookwyrm/templates/settings/users/user_info.html:42 msgid "Remote" msgstr "Remot" -#: bookwyrm/templates/settings/users/user_info.html:57 +#: bookwyrm/templates/settings/users/user_info.html:51 msgid "User details" msgstr "Detalls de l'usuari" -#: bookwyrm/templates/settings/users/user_info.html:61 +#: bookwyrm/templates/settings/users/user_info.html:55 msgid "Email:" msgstr "Correu electrònic:" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:65 msgid "(View reports)" msgstr "(Mostra informes)" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "Blocked by count:" msgstr "Bloquejat pel compte:" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:74 msgid "Date added:" msgstr "Data en què es va afegir:" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Last active date:" msgstr "Data d'última activitat:" -#: bookwyrm/templates/settings/users/user_info.html:86 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Manually approved followers:" msgstr "Seguidors aprovats manualment:" -#: bookwyrm/templates/settings/users/user_info.html:89 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Discoverable:" msgstr "Visible:" -#: bookwyrm/templates/settings/users/user_info.html:93 +#: bookwyrm/templates/settings/users/user_info.html:87 msgid "Deactivation reason:" msgstr "Raó de desactivació:" -#: bookwyrm/templates/settings/users/user_info.html:108 +#: bookwyrm/templates/settings/users/user_info.html:102 msgid "Instance details" msgstr "Detalls de la instància" -#: bookwyrm/templates/settings/users/user_info.html:130 +#: bookwyrm/templates/settings/users/user_info.html:124 msgid "View instance" msgstr "Mostra la instància" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:5 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:6 msgid "Permanently deleted" msgstr "Eliminat permanentment" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:8 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:9 msgid "User Actions" msgstr "Accions d'usuari" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:21 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:15 +msgid "This is the instance admin actor" +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:18 +msgid "You must not delete or disable this account as it is critical to the functioning of your server. This actor signs outgoing GET requests to smooth interaction with secure ActivityPub servers." +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:19 +msgid "This account is not discoverable by ordinary users and does not have a profile page." +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:35 msgid "Activate user" msgstr "Activa l'usuari/a" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:27 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:41 msgid "Suspend user" msgstr "Suspèn usuari" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:32 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:46 msgid "Un-suspend user" msgstr "Deixa de suspendre l'usuari" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:54 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:68 msgid "Access level:" msgstr "Nivell d'accés:" @@ -5931,7 +5983,7 @@ msgstr "El vostre domini sembla que no està ben configurat. No hauria d'inclour msgid "You are running BookWyrm in production mode without https. USE_HTTPS should be enabled in production." msgstr "Esteu executant BookWyrm en mode producció sense https. USE_HTTPS hauria d'estar activat a producció." -#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:49 +#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:44 msgid "Settings" msgstr "Configuració" @@ -5988,7 +6040,7 @@ msgid "Need help?" msgstr "Necessiteu ajuda?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:87 +#: bookwyrm/templates/shelf/shelf.html:74 msgid "Create shelf" msgstr "Crea un prestatge" @@ -5996,66 +6048,58 @@ msgstr "Crea un prestatge" msgid "Edit Shelf" msgstr "Edita el prestatge" -#: bookwyrm/templates/shelf/shelf.html:25 -msgid "You have have moved to" -msgstr "Us heu traslladat a" - -#: bookwyrm/templates/shelf/shelf.html:28 -msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." -msgstr "Podeu desfer aquest trasllat per recuperar totes les funcionalitats, però alguns seguidors poden haver deixat de seguir aquest compte." - -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:26 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Perfil d'usuari" -#: bookwyrm/templates/shelf/shelf.html:54 +#: bookwyrm/templates/shelf/shelf.html:41 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Tots els llibres" -#: bookwyrm/templates/shelf/shelf.html:112 +#: bookwyrm/templates/shelf/shelf.html:99 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s llibre" msgstr[1] "%(formatted_count)s llibres" -#: bookwyrm/templates/shelf/shelf.html:119 +#: bookwyrm/templates/shelf/shelf.html:106 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(mostrant %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:131 +#: bookwyrm/templates/shelf/shelf.html:118 msgid "Edit shelf" msgstr "Edita el prestatge" -#: bookwyrm/templates/shelf/shelf.html:139 +#: bookwyrm/templates/shelf/shelf.html:126 msgid "Delete shelf" msgstr "Elimina el prestatge" -#: bookwyrm/templates/shelf/shelf.html:167 -#: bookwyrm/templates/shelf/shelf.html:193 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:180 msgid "Shelved" msgstr "Arxivat" -#: bookwyrm/templates/shelf/shelf.html:168 -#: bookwyrm/templates/shelf/shelf.html:196 +#: bookwyrm/templates/shelf/shelf.html:155 +#: bookwyrm/templates/shelf/shelf.html:183 msgid "Started" msgstr "Començat" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Finished" msgstr "Finalitzat" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Until" msgstr "Fins" -#: bookwyrm/templates/shelf/shelf.html:225 +#: bookwyrm/templates/shelf/shelf.html:212 msgid "This shelf is empty." msgstr "Aquest prestatge és buit." @@ -6365,6 +6409,11 @@ msgstr "%(username)s ha llegit %(read_count)s de %(goal_cou msgid "Follow at new account" msgstr "Seguiu al compte nou" +#: bookwyrm/templates/snippets/moved_user_notice.html:7 +#, python-format +msgid "%(user)s has moved to %(moved_to_name)s" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6667,6 +6716,18 @@ msgstr "Mostra'n més" msgid "Show less" msgstr "Mostra'n menys" +#: bookwyrm/templates/snippets/user_active_tag.html:5 +msgid "Moved" +msgstr "Mogut" + +#: bookwyrm/templates/snippets/user_active_tag.html:12 +msgid "Deleted" +msgstr "Eliminat" + +#: bookwyrm/templates/snippets/user_active_tag.html:15 +msgid "Inactive" +msgstr "Inactiu" + #: bookwyrm/templates/two_factor_auth/two_factor_login.html:29 msgid "2FA check" msgstr "Comprovació 2FA" @@ -6725,15 +6786,11 @@ msgstr "Els teus grups" msgid "Groups: %(username)s" msgstr "Grups: %(username)s" -#: bookwyrm/templates/user/layout.html:50 -msgid "has moved to" -msgstr "s'ha traslladat a" - -#: bookwyrm/templates/user/layout.html:64 +#: bookwyrm/templates/user/layout.html:59 msgid "Follow Requests" msgstr "Peticions de seguiment" -#: bookwyrm/templates/user/layout.html:88 +#: bookwyrm/templates/user/layout.html:83 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6754,7 +6811,7 @@ msgstr "Crea una llista" msgid "Joined %(date)s" msgstr "Unit el %(date)s" -#: bookwyrm/templates/user/relationships/followers.html:31 +#: bookwyrm/templates/user/relationships/followers.html:36 #, python-format msgid "%(username)s has no followers" msgstr "%(username)s no té seguidors" @@ -6868,7 +6925,7 @@ msgid_plural "%(num)d books - by %(user)s" msgstr[0] "%(num)d llibre - per %(user)s" msgstr[1] "%(num)d llibres - per %(user)s" -#: bookwyrm/templatetags/utilities.py:48 +#: bookwyrm/templatetags/utilities.py:49 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s" diff --git a/locale/de_DE/LC_MESSAGES/django.mo b/locale/de_DE/LC_MESSAGES/django.mo index 47ebdd534f608e4ad92d3633c8fcfdb929ac0eed..57ec9f361d52e047f1f0a2fa25d36fb1bb0ed8e2 100644 GIT binary patch delta 30917 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 PL;pV`>{KJ5e&YWFY)ljG diff --git a/locale/de_DE/LC_MESSAGES/django.po b/locale/de_DE/LC_MESSAGES/django.po index afdfc2f3b..c88645d94 100644 --- a/locale/de_DE/LC_MESSAGES/django.po +++ b/locale/de_DE/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-02 21:32+0000\n" -"PO-Revision-Date: 2023-11-06 12:24\n" +"POT-Creation-Date: 2023-12-30 23:52+0000\n" +"PO-Revision-Date: 2024-01-02 03:12\n" "Last-Translator: Mouse Reeve \n" "Language-Team: German\n" "Language: de\n" @@ -102,8 +102,8 @@ msgstr "Reihenfolge der Liste" msgid "Book Title" msgstr "Buchtitel" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 -#: bookwyrm/templates/shelf/shelf.html:203 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:158 +#: bookwyrm/templates/shelf/shelf.html:190 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Bewertung" @@ -141,7 +141,7 @@ msgstr "Warnung" msgid "Danger" msgstr "Gefahr" -#: bookwyrm/models/antispam.py:112 bookwyrm/models/antispam.py:146 +#: bookwyrm/models/antispam.py:113 bookwyrm/models/antispam.py:147 msgid "Automatically generated report" msgstr "Automatisch generierter Bericht" @@ -205,26 +205,26 @@ msgstr "Föderiert" msgid "Blocked" msgstr "Blockiert" -#: bookwyrm/models/fields.py:30 +#: bookwyrm/models/fields.py:35 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s ist keine gültige remote_id" -#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 +#: bookwyrm/models/fields.py:44 bookwyrm/models/fields.py:53 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s ist kein gültiger Benutzer*inname" -#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 +#: bookwyrm/models/fields.py:198 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "Benutzer*inname" -#: bookwyrm/models/fields.py:198 +#: bookwyrm/models/fields.py:203 msgid "A user with that username already exists." msgstr "Dieser Benutzer*inname ist bereits vergeben." -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:222 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "Dieser Benutzer*inname ist bereits vergeben." msgid "Public" msgstr "Öffentlich" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:223 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Öffentlich" msgid "Unlisted" msgstr "Ungelistet" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:224 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Ungelistet" msgid "Followers" msgstr "Follower*innen" -#: bookwyrm/models/fields.py:220 +#: bookwyrm/models/fields.py:225 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -260,8 +260,7 @@ msgstr "Privat" #: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:87 -#: bookwyrm/templates/settings/users/user_info.html:33 +#: bookwyrm/templates/snippets/user_active_tag.html:8 msgid "Active" msgstr "Aktiv" @@ -352,122 +351,143 @@ msgstr "Zugelassene Domain" msgid "Deleted item" msgstr "Gelöschter Eintrag" -#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:307 +#: bookwyrm/models/user.py:33 bookwyrm/templates/book/book.html:307 msgid "Reviews" msgstr "Rezensionen" -#: bookwyrm/models/user.py:33 +#: bookwyrm/models/user.py:34 msgid "Comments" msgstr "Kommentare" -#: bookwyrm/models/user.py:34 +#: bookwyrm/models/user.py:35 msgid "Quotations" msgstr "Zitate" -#: bookwyrm/models/user.py:35 +#: bookwyrm/models/user.py:36 msgid "Everything else" msgstr "Alles andere" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home Timeline" msgstr "Start-Zeitleiste" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home" msgstr "Startseite" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 msgid "Books Timeline" msgstr "Bücher-Timeline" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:112 +#: bookwyrm/templates/user/layout.html:107 msgid "Books" msgstr "Bücher" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:313 msgid "English" msgstr "English (Englisch)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:314 msgid "Català (Catalan)" msgstr "Català (Katalanisch)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:315 msgid "Deutsch (German)" msgstr "Deutsch" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:316 msgid "Esperanto (Esperanto)" msgstr "Esperanto (Esperanto)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:317 msgid "Español (Spanish)" msgstr "Español (Spanisch)" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:318 msgid "Euskara (Basque)" msgstr "Euskara (Baskisch)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:319 msgid "Galego (Galician)" msgstr "Galego (Galizisch)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:320 msgid "Italiano (Italian)" msgstr "Italiano (Italienisch)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:321 msgid "Suomi (Finnish)" msgstr "Suomi (Finnisch)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:322 msgid "Français (French)" msgstr "Français (Französisch)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:323 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių (Litauisch)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:324 msgid "Nederlands (Dutch)" msgstr "Nederlands (Niederländisch)" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:325 msgid "Norsk (Norwegian)" msgstr "Norsk (Norwegisch)" -#: bookwyrm/settings.py:316 +#: bookwyrm/settings.py:326 msgid "Polski (Polish)" msgstr "Polski (Polnisch)" -#: bookwyrm/settings.py:317 +#: bookwyrm/settings.py:327 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil (brasilianisches Portugiesisch)" -#: bookwyrm/settings.py:318 +#: bookwyrm/settings.py:328 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (Portugiesisch)" -#: bookwyrm/settings.py:319 +#: bookwyrm/settings.py:329 msgid "Română (Romanian)" msgstr "Română (Rumänisch)" -#: bookwyrm/settings.py:320 +#: bookwyrm/settings.py:330 msgid "Svenska (Swedish)" msgstr "Svenska (Schwedisch)" -#: bookwyrm/settings.py:321 +#: bookwyrm/settings.py:331 +msgid "Українська (Ukrainian)" +msgstr "" + +#: bookwyrm/settings.py:332 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文 (vereinfachtes Chinesisch)" -#: bookwyrm/settings.py:322 +#: bookwyrm/settings.py:333 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (Chinesisch, traditionell)" +#: bookwyrm/templates/403.html:5 +msgid "Oh no!" +msgstr "" + +#: bookwyrm/templates/403.html:9 bookwyrm/templates/landing/invite.html:21 +msgid "Permission Denied" +msgstr "Zugiff verweigert" + +#: bookwyrm/templates/403.html:11 +#, python-format +msgid "You do not have permission to view this page or perform this action. Your user permission level is %(level)s." +msgstr "" + +#: bookwyrm/templates/403.html:15 +msgid "If you think you should have access, please speak to your BookWyrm server administrator." +msgstr "" + #: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8 msgid "Not Found" msgstr "Nicht gefunden" @@ -476,6 +496,20 @@ msgstr "Nicht gefunden" msgid "The page you requested doesn't seem to exist!" msgstr "Die Seite, die du angefordert hast, scheint nicht zu existieren!" +#: bookwyrm/templates/413.html:4 bookwyrm/templates/413.html:8 +msgid "File too large" +msgstr "" + +#: bookwyrm/templates/413.html:9 +msgid "The file you are uploading is too large." +msgstr "" + +#: bookwyrm/templates/413.html:11 +msgid "\n" +" You you can try using a smaller file, or ask your BookWyrm server administrator to increase the DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "Ups!" @@ -536,12 +570,12 @@ msgstr "Die Moderator*innen und Administrator*innen von %(site_name)s halten die msgid "Moderator" msgstr "Moderator*in" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "Administration" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -906,7 +940,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1042,13 +1076,13 @@ msgstr "Orte" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Listen" @@ -1324,7 +1358,7 @@ msgid "Add Another Author" msgstr "Weitere*n Autor*in hinzufügen" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "Cover" @@ -1451,8 +1485,9 @@ msgstr "Domain" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "Status" @@ -1461,7 +1496,7 @@ msgstr "Status" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "Aktionen" @@ -1583,7 +1618,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Tut uns leid! Dieser Code ist uns nicht bekannt." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "Bestätigungscode:" @@ -1752,7 +1787,7 @@ msgstr "%(username)s hat %(username)s" msgstr "Direktnachrichten mit %(username)s" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "Direktnachrichten" @@ -1945,7 +1980,7 @@ msgstr "Updates" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "Deine Bücher" @@ -1993,19 +2028,19 @@ msgid "Add to your books" msgstr "Zu deinen Büchern hinzufügen" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "Leseliste" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "Liest gerade" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2014,7 +2049,7 @@ msgid "Read" msgstr "Gelesen" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "Aufgehört zu lesen" @@ -2511,8 +2546,8 @@ msgid "Barcode reader" msgstr "Barcode-Leser" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" -msgstr "Verwende die Feed-, Listen- und Entdecken-Links, um die neuesten Nachrichten aus deinem Feed zu finden, themenbezogene Bücherlisten und die neuesten Ereignisse auf diesem Bookwyrm-Server!" +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" +msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 msgid "Navigation Bar" @@ -2543,8 +2578,8 @@ msgid "Notifications" msgstr "Benachrichtigungen" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." -msgstr "Dein Profil, deine Bücher, Direktnachrichten und Einstellungen können durch Klicken auf deinen Namen in diesem Menü abgerufen werden." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 msgid "Try selecting Profile from the drop down menu to continue the tour." @@ -2699,8 +2734,7 @@ msgstr "Du kannst eine Gruppe mit anderen Personen erstellen oder beitreten. Gru #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "Gruppen" @@ -2754,7 +2788,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "Diese Registerkarte zeigt alles, was du gelesen hast, um dein jährliches Leseziel zu erreichen oder lässt dich eines setzen. Du musst kein Leseziel setzen, wenn du das nicht möchtest!" #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "Leseziel" @@ -2793,7 +2827,7 @@ msgstr "Keine Aktivitäten für diesen Hashtag bisher!" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "Bücher importieren" @@ -2964,8 +2998,8 @@ msgid "Row" msgstr "Zeile" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "Titel" @@ -2978,8 +3012,8 @@ msgid "Openlibrary key" msgstr "Openlibrary-Schlüssel" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "Autor*in" @@ -3085,10 +3119,6 @@ msgstr "Kontaktiere deine*n Administrator*in oder alias of the one you are migrating from, or move that account to this one, before you import your user data." +msgstr "" + +#: bookwyrm/templates/import/import_user.html:32 +#, python-format +msgid "Currently you are allowed to import one user every %(user_import_hours)s hours." +msgstr "" + +#: bookwyrm/templates/import/import_user.html:33 +#, python-format +msgid "You will next be able to import a user file at %(next_available)s" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:41 +msgid "Step 1:" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:43 +msgid "Select an export file generated from another BookWyrm account. The file format should be .tar.gz." +msgstr "" + +#: bookwyrm/templates/import/import_user.html:58 +msgid "Step 2:" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:60 +msgid "Deselect any checkboxes for data you do not wish to include in your import." +msgstr "" + +#: bookwyrm/templates/import/import_user.html:71 +#: bookwyrm/templates/shelf/shelf.html:26 +#: bookwyrm/templates/user/relationships/followers.html:18 +#: bookwyrm/templates/user/relationships/following.html:18 +msgid "User profile" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:74 +msgid "Overwrites display name, summary, and avatar" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:80 +msgid "User settings" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:83 +msgid "Overwrites:" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:86 +msgid "Whether manual approval is required for other users to follow your account" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:89 +msgid "Whether following/followers are shown on your profile" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:92 +msgid "Whether your reading goal is shown on your profile" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:95 +msgid "Whether you see user follow suggestions" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:98 +msgid "Whether your account is suggested to others" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:101 +msgid "Your timezone" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:104 +msgid "Your default post privacy setting" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:112 +msgid "Followers and following" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:116 +msgid "User blocks" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:123 +msgid "Reading goals" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:126 +msgid "Overwrites reading goals for all years listed in the import file" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:130 +msgid "Shelves" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:133 +msgid "Reading history" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:136 +msgid "Book reviews" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:142 +msgid "Comments about books" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:145 +msgid "Book lists" +msgstr "" + +#: bookwyrm/templates/import/import_user.html:148 +msgid "Saved lists" +msgstr "" + #: bookwyrm/templates/import/manual_review.html:5 #: bookwyrm/templates/import/troubleshoot.html:4 msgid "Import Troubleshooting" @@ -3086,7 +3242,7 @@ msgid "Reject" msgstr "" #: bookwyrm/templates/import/troubleshoot.html:7 -#: bookwyrm/templates/settings/imports/imports.html:138 +#: bookwyrm/templates/settings/imports/imports.html:171 msgid "Failed items" msgstr "" @@ -3866,6 +4022,16 @@ msgstr "" msgid "has changed the description of %(group_name)s" msgstr "" +#: bookwyrm/templates/notifications/items/user_export.html:14 +#, python-format +msgid "Your user export is ready." +msgstr "" + +#: bookwyrm/templates/notifications/items/user_import.html:14 +#, python-format +msgid "Your user import is complete." +msgstr "" + #: bookwyrm/templates/notifications/notifications_page.html:19 msgid "Delete notifications" msgstr "" @@ -4109,7 +4275,7 @@ msgstr "" #: bookwyrm/templates/preferences/blocks.html:4 #: bookwyrm/templates/preferences/blocks.html:7 -#: bookwyrm/templates/preferences/layout.html:54 +#: bookwyrm/templates/preferences/layout.html:62 msgid "Blocked Users" msgstr "" @@ -4244,13 +4410,65 @@ msgstr "" msgid "Looking for shelf privacy? You can set a separate visibility level for each of your shelves. Go to Your Books, pick a shelf from the tab bar, and click \"Edit shelf.\"" msgstr "" +#: bookwyrm/templates/preferences/export-user.html:5 +#: bookwyrm/templates/preferences/export-user.html:8 +#: bookwyrm/templates/preferences/layout.html:55 +msgid "Export BookWyrm Account" +msgstr "" + +#: bookwyrm/templates/preferences/export-user.html:14 +msgid "You can create an export file here. This will allow you to migrate your data to another BookWyrm account." +msgstr "" + +#: bookwyrm/templates/preferences/export-user.html:17 +msgid "

    Your file will include:

    • User profile
    • Most user settings
    • Reading goals
    • Shelves
    • Reading history
    • Book reviews
    • Statuses
    • Your own lists and saved lists
    • Which users you follow and block

    Your file will not include:

    • Direct messages
    • Replies to your statuses
    • Groups
    • Favorites
    " +msgstr "" + +#: bookwyrm/templates/preferences/export-user.html:43 +msgid "In your new BookWyrm account can choose what to import: you will not have to import everything that is exported." +msgstr "" + +#: bookwyrm/templates/preferences/export-user.html:46 +msgid "If you wish to migrate any statuses (comments, reviews, or quotes) you must either set the account you are moving to as an alias of this one, or move this account to the new account, before you import your user data." +msgstr "" + +#: bookwyrm/templates/preferences/export-user.html:51 +#, python-format +msgid "You will be able to create a new export file at %(next_available)s" +msgstr "" + +#: bookwyrm/templates/preferences/export-user.html:60 +msgid "Create user export file" +msgstr "" + +#: bookwyrm/templates/preferences/export-user.html:67 +msgid "Recent Exports" +msgstr "" + +#: bookwyrm/templates/preferences/export-user.html:69 +msgid "User export files will show 'complete' once ready. This may take a little while. Click the link to download your file." +msgstr "" + +#: bookwyrm/templates/preferences/export-user.html:75 +msgid "Date" +msgstr "" + +#: bookwyrm/templates/preferences/export-user.html:81 +msgid "Size" +msgstr "" + +#: bookwyrm/templates/preferences/export-user.html:125 +msgid "Download your export" +msgstr "" + #: bookwyrm/templates/preferences/export.html:4 #: bookwyrm/templates/preferences/export.html:7 -msgid "CSV Export" +#: bookwyrm/templates/preferences/layout.html:47 +msgid "Export Book List" msgstr "" #: bookwyrm/templates/preferences/export.html:13 -msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity." +msgid "Your CSV export file will include all the books on your shelves, books you have reviewed, and books with reading activity.
    Use this to import into a service like Goodreads." msgstr "" #: bookwyrm/templates/preferences/export.html:20 @@ -4269,11 +4487,7 @@ msgstr "" msgid "Data" msgstr "" -#: bookwyrm/templates/preferences/layout.html:47 -msgid "CSV export" -msgstr "" - -#: bookwyrm/templates/preferences/layout.html:50 +#: bookwyrm/templates/preferences/layout.html:58 msgid "Relationships" msgstr "" @@ -4763,7 +4977,8 @@ msgid "Active Tasks" msgstr "" #: bookwyrm/templates/settings/celery.html:131 -#: bookwyrm/templates/settings/imports/imports.html:113 +#: bookwyrm/templates/settings/imports/imports.html:146 +#: bookwyrm/templates/settings/imports/imports.html:236 msgid "ID" msgstr "" @@ -5157,9 +5372,14 @@ msgid "No instances found" msgstr "" #: bookwyrm/templates/settings/imports/complete_import_modal.html:4 +#: bookwyrm/templates/settings/imports/complete_user_import_modal.html:4 msgid "Stop import?" msgstr "" +#: bookwyrm/templates/settings/imports/complete_user_import_modal.html:7 +msgid "This action will stop the user import before it is complete and cannot be un-done" +msgstr "" + #: bookwyrm/templates/settings/imports/imports.html:19 msgid "Disable starting new imports" msgstr "" @@ -5172,70 +5392,107 @@ msgstr "" msgid "While imports are disabled, users will not be allowed to start new imports, but existing imports will not be affected." msgstr "" -#: bookwyrm/templates/settings/imports/imports.html:36 +#: bookwyrm/templates/settings/imports/imports.html:32 +msgid "This setting prevents both book imports and user imports." +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:37 msgid "Disable imports" msgstr "" -#: bookwyrm/templates/settings/imports/imports.html:50 +#: bookwyrm/templates/settings/imports/imports.html:51 msgid "Users are currently unable to start new imports" msgstr "" -#: bookwyrm/templates/settings/imports/imports.html:55 +#: bookwyrm/templates/settings/imports/imports.html:56 msgid "Enable imports" msgstr "" -#: bookwyrm/templates/settings/imports/imports.html:63 +#: bookwyrm/templates/settings/imports/imports.html:64 msgid "Limit the amount of imports" msgstr "" -#: bookwyrm/templates/settings/imports/imports.html:74 +#: bookwyrm/templates/settings/imports/imports.html:75 msgid "Some users might try to import a large number of books, which you want to limit." msgstr "" -#: bookwyrm/templates/settings/imports/imports.html:75 +#: bookwyrm/templates/settings/imports/imports.html:76 +#: bookwyrm/templates/settings/imports/imports.html:108 msgid "Set the value to 0 to not enforce any limit." msgstr "" -#: bookwyrm/templates/settings/imports/imports.html:78 +#: bookwyrm/templates/settings/imports/imports.html:79 msgid "Set import limit to" msgstr "" -#: bookwyrm/templates/settings/imports/imports.html:80 +#: bookwyrm/templates/settings/imports/imports.html:81 msgid "books every" msgstr "" -#: bookwyrm/templates/settings/imports/imports.html:82 +#: bookwyrm/templates/settings/imports/imports.html:83 msgid "days." msgstr "" -#: bookwyrm/templates/settings/imports/imports.html:86 +#: bookwyrm/templates/settings/imports/imports.html:87 msgid "Set limit" msgstr "" -#: bookwyrm/templates/settings/imports/imports.html:102 -msgid "Completed" +#: bookwyrm/templates/settings/imports/imports.html:96 +msgid "Limit how often users can import and export" msgstr "" -#: bookwyrm/templates/settings/imports/imports.html:116 -msgid "User" +#: bookwyrm/templates/settings/imports/imports.html:107 +msgid "Some users might try to run user imports or exports very frequently, which you want to limit." +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:111 +msgid "Restrict user imports and exports to once every " +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:113 +msgid "hours" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:117 +msgid "Change limit" msgstr "" #: bookwyrm/templates/settings/imports/imports.html:125 -msgid "Date Updated" -msgstr "" - -#: bookwyrm/templates/settings/imports/imports.html:132 -msgid "Pending items" +msgid "Book Imports" msgstr "" #: bookwyrm/templates/settings/imports/imports.html:135 +#: bookwyrm/templates/settings/imports/imports.html:225 +msgid "Completed" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:149 +#: bookwyrm/templates/settings/imports/imports.html:239 +msgid "User" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:158 +#: bookwyrm/templates/settings/imports/imports.html:248 +msgid "Date Updated" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:165 +msgid "Pending items" +msgstr "" + +#: bookwyrm/templates/settings/imports/imports.html:168 msgid "Successful items" msgstr "" -#: bookwyrm/templates/settings/imports/imports.html:170 +#: bookwyrm/templates/settings/imports/imports.html:203 +#: bookwyrm/templates/settings/imports/imports.html:295 msgid "No matching imports found." msgstr "" +#: bookwyrm/templates/settings/imports/imports.html:215 +msgid "User Imports" +msgstr "" + #: bookwyrm/templates/settings/invites/manage_invite_requests.html:4 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:11 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:25 @@ -6048,17 +6305,15 @@ msgstr "" msgid "Edit Shelf" msgstr "" -#: bookwyrm/templates/shelf/shelf.html:26 -#: bookwyrm/templates/user/relationships/followers.html:18 -#: bookwyrm/templates/user/relationships/following.html:18 -msgid "User profile" -msgstr "" - #: bookwyrm/templates/shelf/shelf.html:41 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "" +#: bookwyrm/templates/shelf/shelf.html:66 +msgid "Import Books" +msgstr "" + #: bookwyrm/templates/shelf/shelf.html:99 #, python-format msgid "%(formatted_count)s book" diff --git a/locale/eo_UY/LC_MESSAGES/django.mo b/locale/eo_UY/LC_MESSAGES/django.mo index 1502e9eed90f3a18da552f3b8bf11aafc53b9c95..5f0b83ecbc7c750295ef2399ac1b273f37ecb9f1 100644 GIT binary patch delta 30917 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 uo3pU}i71)XCu8J@K_NcjzW)a@*J!i= delta 31768 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 Pr2qfH)h+HfE7|`8i+M`E diff --git a/locale/eo_UY/LC_MESSAGES/django.po b/locale/eo_UY/LC_MESSAGES/django.po index 907921f69..2b04f98b6 100644 --- a/locale/eo_UY/LC_MESSAGES/django.po +++ b/locale/eo_UY/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-02 21:32+0000\n" -"PO-Revision-Date: 2023-12-13 00:07\n" +"POT-Creation-Date: 2023-12-30 23:52+0000\n" +"PO-Revision-Date: 2024-01-02 03:12\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Esperanto\n" "Language: eo\n" @@ -102,8 +102,8 @@ msgstr "Ordo de listo" msgid "Book Title" msgstr "Titolo de la libro" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 -#: bookwyrm/templates/shelf/shelf.html:203 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:158 +#: bookwyrm/templates/shelf/shelf.html:190 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Takso" @@ -141,7 +141,7 @@ msgstr "Averto" msgid "Danger" msgstr "Danĝero" -#: bookwyrm/models/antispam.py:112 bookwyrm/models/antispam.py:146 +#: bookwyrm/models/antispam.py:113 bookwyrm/models/antispam.py:147 msgid "Automatically generated report" msgstr "Aŭtomate generita raporto" @@ -205,26 +205,26 @@ msgstr "Federaciita" msgid "Blocked" msgstr "Blokita" -#: bookwyrm/models/fields.py:30 +#: bookwyrm/models/fields.py:35 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s ne estas valida remote_id" -#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 +#: bookwyrm/models/fields.py:44 bookwyrm/models/fields.py:53 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s ne estas valida uzantnomo" -#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 +#: bookwyrm/models/fields.py:198 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "uzantnomo" -#: bookwyrm/models/fields.py:198 +#: bookwyrm/models/fields.py:203 msgid "A user with that username already exists." msgstr "Uzanto kun tiu uzantnomo jam ekzistas." -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:222 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "Uzanto kun tiu uzantnomo jam ekzistas." msgid "Public" msgstr "Publika" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:223 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Publika" msgid "Unlisted" msgstr "Nelistigita" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:224 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Nelistigita" msgid "Followers" msgstr "Sekvantoj" -#: bookwyrm/models/fields.py:220 +#: bookwyrm/models/fields.py:225 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -260,8 +260,7 @@ msgstr "Privata" #: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:87 -#: bookwyrm/templates/settings/users/user_info.html:33 +#: bookwyrm/templates/snippets/user_active_tag.html:8 msgid "Active" msgstr "Aktiva" @@ -352,122 +351,143 @@ msgstr "Aprobis la domajnon" msgid "Deleted item" msgstr "Forigis la eron" -#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:307 +#: bookwyrm/models/user.py:33 bookwyrm/templates/book/book.html:307 msgid "Reviews" msgstr "Recenzoj" -#: bookwyrm/models/user.py:33 +#: bookwyrm/models/user.py:34 msgid "Comments" msgstr "Komentoj" -#: bookwyrm/models/user.py:34 +#: bookwyrm/models/user.py:35 msgid "Quotations" msgstr "Citaĵoj" -#: bookwyrm/models/user.py:35 +#: bookwyrm/models/user.py:36 msgid "Everything else" msgstr "Ĉio alia" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home Timeline" msgstr "Hejma novaĵfluo" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home" msgstr "Hejmo" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 msgid "Books Timeline" msgstr "Libra novaĵfluo" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:112 +#: bookwyrm/templates/user/layout.html:107 msgid "Books" msgstr "Libroj" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:313 msgid "English" msgstr "English (Angla)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:314 msgid "Català (Catalan)" msgstr "Català (Kataluna)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:315 msgid "Deutsch (German)" msgstr "Deutsch (Germana)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:316 msgid "Esperanto (Esperanto)" msgstr "Esperanto (Esperanto)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:317 msgid "Español (Spanish)" msgstr "Español (Hispana)" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:318 msgid "Euskara (Basque)" msgstr "Euskara (Eŭska)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:319 msgid "Galego (Galician)" msgstr "Galego (Galega)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:320 msgid "Italiano (Italian)" msgstr "Italiano (Itala)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:321 msgid "Suomi (Finnish)" msgstr "Suomi (Finna)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:322 msgid "Français (French)" msgstr "Français (Franca)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:323 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių (Litova)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:324 msgid "Nederlands (Dutch)" msgstr "Nederlands (Nederlanda)" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:325 msgid "Norsk (Norwegian)" msgstr "Norsk (Norvega)" -#: bookwyrm/settings.py:316 +#: bookwyrm/settings.py:326 msgid "Polski (Polish)" msgstr "Polski (Pola)" -#: bookwyrm/settings.py:317 +#: bookwyrm/settings.py:327 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil (Brazila portugala)" -#: bookwyrm/settings.py:318 +#: bookwyrm/settings.py:328 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (Eŭropa portugala)" -#: bookwyrm/settings.py:319 +#: bookwyrm/settings.py:329 msgid "Română (Romanian)" msgstr "Română (Rumana)" -#: bookwyrm/settings.py:320 +#: bookwyrm/settings.py:330 msgid "Svenska (Swedish)" msgstr "Svenska (Sveda)" -#: bookwyrm/settings.py:321 +#: bookwyrm/settings.py:331 +msgid "Українська (Ukrainian)" +msgstr "" + +#: bookwyrm/settings.py:332 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文 (Simpligita ĉina)" -#: bookwyrm/settings.py:322 +#: bookwyrm/settings.py:333 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (Tradicia ĉina)" +#: bookwyrm/templates/403.html:5 +msgid "Oh no!" +msgstr "" + +#: bookwyrm/templates/403.html:9 bookwyrm/templates/landing/invite.html:21 +msgid "Permission Denied" +msgstr "Mankas permeso" + +#: bookwyrm/templates/403.html:11 +#, python-format +msgid "You do not have permission to view this page or perform this action. Your user permission level is %(level)s." +msgstr "" + +#: bookwyrm/templates/403.html:15 +msgid "If you think you should have access, please speak to your BookWyrm server administrator." +msgstr "" + #: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8 msgid "Not Found" msgstr "Ne trovita" @@ -476,6 +496,20 @@ msgstr "Ne trovita" msgid "The page you requested doesn't seem to exist!" msgstr "La paĝo kiun vi petis ŝajne ne ekzistas!" +#: bookwyrm/templates/413.html:4 bookwyrm/templates/413.html:8 +msgid "File too large" +msgstr "" + +#: bookwyrm/templates/413.html:9 +msgid "The file you are uploading is too large." +msgstr "" + +#: bookwyrm/templates/413.html:11 +msgid "\n" +" You you can try using a smaller file, or ask your BookWyrm server administrator to increase the DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "Ups!" @@ -536,12 +570,12 @@ msgstr "La kontrolantoj de %(site_name)s kaj la administrantoj certigas la daŭr msgid "Moderator" msgstr "Kontrolanto" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "Administranto" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -906,7 +940,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1042,13 +1076,13 @@ msgstr "Lokoj" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Listoj" @@ -1324,7 +1358,7 @@ msgid "Add Another Author" msgstr "Aldoni alian aŭtoron" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "Kovrilo" @@ -1451,8 +1485,9 @@ msgstr "Domajno" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "Stato" @@ -1461,7 +1496,7 @@ msgstr "Stato" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "Agoj" @@ -1583,7 +1618,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Pardonu! Ni ne sukcesis trovi tiun kodon." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "Konfirmkodo:" @@ -1752,7 +1787,7 @@ msgstr "%(username)s citis %(username)s" msgstr "Rektaj mesaĝoj kun %(username)s" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "Rektaj mesaĝoj" @@ -1945,7 +1980,7 @@ msgstr "Ĝisdatigoj" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "Viaj libroj" @@ -1993,19 +2028,19 @@ msgid "Add to your books" msgstr "Aldoni al viaj libroj" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "Legota" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "Legata" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2014,7 +2049,7 @@ msgid "Read" msgstr "Legita" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "Haltigita legado" @@ -2511,8 +2546,8 @@ msgid "Barcode reader" msgstr "Strikodolegilo" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" -msgstr "Uzu la ligilojn Fluo, Listoj kaj Malkovri por malkovri la plej lastajn novaĵojn de via fluo, listojn de libroj laŭ temo, kaj la lastajn okazaĵojn ĉe ĉi tiu servilo de Bookwyrm!" +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" +msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 msgid "Navigation Bar" @@ -2543,8 +2578,8 @@ msgid "Notifications" msgstr "Atentigoj" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." -msgstr "Viaj profilo, libroj, rektaj mesaĝoj kaj agordoj estas alireblaj per alklako de via nomo en ĉi tiu menuo." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 msgid "Try selecting Profile from the drop down menu to continue the tour." @@ -2699,8 +2734,7 @@ msgstr "Vi povas krei grupon aŭ aliĝi al grupo kun aliaj uzantoj. Grupoj povas #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "Grupoj" @@ -2754,7 +2788,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "Ĉi tiu langeto montras ĉion kion vi legis por atingi vian jaran legocelon, aŭ ĝi permesas al vi agordi celon. Agordi legocelon ne estas devige se tio ne interesas vin!" #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "Legocelo" @@ -2793,7 +2827,7 @@ msgstr "Ankoraŭ neniu agado por ĉi tiu kradvorto!" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "Importi librojn" @@ -2964,8 +2998,8 @@ msgid "Row" msgstr "Linio" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "Titolo" @@ -2978,8 +3012,8 @@ msgid "Openlibrary key" msgstr "Ŝlosilo de Openlibrary" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "Aŭtoro" @@ -3085,10 +3119,6 @@ msgstr "Kontaktu vian administranton aŭ DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "¡Ups!" @@ -536,12 +570,12 @@ msgstr "Los moderadores y administradores de %(site_name)s mantienen el sitio en msgid "Moderator" msgstr "Moderador" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "Admin" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -906,7 +940,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1042,13 +1076,13 @@ msgstr "Lugares" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Listas" @@ -1324,7 +1358,7 @@ msgid "Add Another Author" msgstr "Añadir Otro Autor" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "Portada" @@ -1451,8 +1485,9 @@ msgstr "Dominio" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "Estado" @@ -1461,7 +1496,7 @@ msgstr "Estado" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "Acciones" @@ -1583,7 +1618,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Sentimos que no pudimos encontrar ese código." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "Código de confirmación:" @@ -1752,7 +1787,7 @@ msgstr "%(username)s ha citado %(username)s" msgstr "Mensajes directos con %(username)s" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "Mensajes directos" @@ -1945,7 +1980,7 @@ msgstr "Actualizaciones" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "Tus libros" @@ -1993,19 +2028,19 @@ msgid "Add to your books" msgstr "Añadir a tus libros" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "Para leer" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "Leyendo actualmente" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2014,7 +2049,7 @@ msgid "Read" msgstr "Leído" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "Lectura interrumpida" @@ -2511,8 +2546,8 @@ msgid "Barcode reader" msgstr "Escáner de código de barras" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" -msgstr "¡Usa los enlaces Feed, Listas y Descubre para descubrir las últimas noticias de tu feed, listas de libros por temática, y los últimos acontecimientos en este servidor de Bookwyrm!" +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" +msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 msgid "Navigation Bar" @@ -2543,8 +2578,8 @@ msgid "Notifications" msgstr "Notificaciones" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." -msgstr "Puedes acceder a tu perfil, tus libros, tus mensajes directos y tu configuración haciendo clic en tu nombre en este menú." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 msgid "Try selecting Profile from the drop down menu to continue the tour." @@ -2699,8 +2734,7 @@ msgstr "Puedes crear o unirte a un grupo con otros usuarios. Los grupos pueden c #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "Grupos" @@ -2754,7 +2788,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "Esta pestaña muestra todo lo que has leído hacia tu objetivo anual de lectura, o te permite establecer uno. ¡No tienes por qué establecer un objetivo de lectura si eso no es lo tuyo!" #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "Objetivo de lectura" @@ -2793,7 +2827,7 @@ msgstr "¡Esta etiqueta no tiene aún ninguna actividad!" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "Importar libros" @@ -2964,8 +2998,8 @@ msgid "Row" msgstr "Fila" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "Título" @@ -2978,8 +3012,8 @@ msgid "Openlibrary key" msgstr "Clave de OpenLibrary" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "Autor/Autora" @@ -3085,10 +3119,6 @@ msgstr "Póngase en contacto con su administrador o DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "Hara!" @@ -536,12 +570,12 @@ msgstr "%(site_name)s(e)ko moderatzaileek eta administratzaileek webgunea martxa msgid "Moderator" msgstr "Moderatzailea" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "Administratzailea" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -906,7 +940,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1042,13 +1076,13 @@ msgstr "Lekuak" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Zerrendak" @@ -1324,7 +1358,7 @@ msgid "Add Another Author" msgstr "Gehitu beste egile bat" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "Azala" @@ -1451,8 +1485,9 @@ msgstr "Domeinua" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "Egoera" @@ -1461,7 +1496,7 @@ msgstr "Egoera" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "Ekintzak" @@ -1583,7 +1618,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Barkatu! Ezin izan dugu kode hori aurkitu." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "Berrespen kodea:" @@ -1752,7 +1787,7 @@ msgstr "%(username)s(e)k %(username)s" msgstr "%(username)s-rekin mezu zuzenak" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "Mezu zuzenak" @@ -1945,7 +1980,7 @@ msgstr "Eguneratzeak" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "Zure liburuak" @@ -1993,19 +2028,19 @@ msgid "Add to your books" msgstr "Gehitu zure liburuetara" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "Irakurtzeko" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "Orain irakurtzen" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2014,7 +2049,7 @@ msgid "Read" msgstr "Irakurrita" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "Irakurtzeari utzita" @@ -2511,8 +2546,8 @@ msgid "Barcode reader" msgstr "Bara-kode irakurgailua" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" -msgstr "Erabili Jarioa, Zerrendak eta Deskubritu atalak zure jarioko azken berriak, gaikako liburu zerrendak eta Bookwyrm zerbitzari honetako azken jarduerak ezagutzeko!" +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" +msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 msgid "Navigation Bar" @@ -2543,8 +2578,8 @@ msgid "Notifications" msgstr "Jakinarazpenak" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." -msgstr "Zure profila, liburuak, mezu zuzenak eta ezarpenak hemengo menuan zure izenean klik eginda dituzu eskuragarri." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 msgid "Try selecting Profile from the drop down menu to continue the tour." @@ -2699,8 +2734,7 @@ msgstr "Talde berri bat sor dezakezu edo existitzen den batean sar zaitezke. Tal #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "Taldeak" @@ -2754,7 +2788,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "Fitxa honetan erakusten da irakurri duzun guztia urteko irakurketa-helburuari begira, edo irakurketa-helburu bat ezartzeko aukera ematen dizu. Ez duzu irakurketa-helbururik ezarri behar hori ez bada zure asmoetan!" #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "Irakurketa-helburua" @@ -2793,7 +2827,7 @@ msgstr "Ez dago aktibitaterik oraindik traola honentzat!" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "Inportatu liburuak" @@ -2964,8 +2998,8 @@ msgid "Row" msgstr "Errenkada" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "Izenburua" @@ -2978,8 +3012,8 @@ msgid "Openlibrary key" msgstr "Openlibrary-ren giltza" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "Egilea" @@ -3085,10 +3119,6 @@ msgstr "Jar zaitez harremanetan zure administratzailearekin edo DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "Hupsista!" @@ -536,12 +570,12 @@ msgstr "%(site_name)s pyörii moderaattorien ja ylläpitäjien työllä. He myö msgid "Moderator" msgstr "Moderaattori" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "Ylläpitäjä" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -906,7 +940,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1042,13 +1076,13 @@ msgstr "Paikat" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Listat" @@ -1324,7 +1358,7 @@ msgid "Add Another Author" msgstr "Yksi tekijä lisää" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "Kansikuva" @@ -1451,8 +1485,9 @@ msgstr "Verkkotunnus" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "Tila" @@ -1461,7 +1496,7 @@ msgstr "Tila" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "Toiminnot" @@ -1583,7 +1618,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Koodia ei löytynyt." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "Vahvistuskoodi:" @@ -1752,7 +1787,7 @@ msgstr "%(username)s lainasi teosta %(username)s" msgstr "Yksityisviestit käyttäjän %(username)s kanssa" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "Yksityisviestit" @@ -1945,7 +1980,7 @@ msgstr "Päivitykset" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "Omat kirjat" @@ -1993,19 +2028,19 @@ msgid "Add to your books" msgstr "Lisää omiin kirjoihin" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "Lukujono" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "Luettavana" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2014,7 +2049,7 @@ msgid "Read" msgstr "Luettu" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "Jäi kesken" @@ -2511,8 +2546,8 @@ msgid "Barcode reader" msgstr "Viivakoodinlukija" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" -msgstr "Syöte, Listat ja Tutustu auttavat löytämään uusimmat kirjapäivitykset, aiheenmukaisia kirjalistoja sekä tämän BookWyrm-palvelimen uusimpia tapahtumia." +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" +msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 msgid "Navigation Bar" @@ -2543,8 +2578,8 @@ msgid "Notifications" msgstr "Ilmoitukset" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." -msgstr "Omaa profiilia, kirjoja, yksityisviestejä ja asetuksia voi tarkastella tämän valikon kautta. Valikko avautuu nimeä painamalla." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 msgid "Try selecting Profile from the drop down menu to continue the tour." @@ -2699,8 +2734,7 @@ msgstr "Voit luoda ryhmän tai liittyä muiden käyttäjien ryhmiin. Ryhmissä v #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "Ryhmät" @@ -2754,7 +2788,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "Tällä välilehdellä asetetaan vuoden lukutavoite ja näytetään sen eteneminen. Lukutavoitetta ei tietenkään ole mikään pakko asettaa." #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "Lukutavoite" @@ -2793,7 +2827,7 @@ msgstr "Tätä aihetunnistetta ei ole vielä käytetty!" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "Tuo kirjoja" @@ -2964,8 +2998,8 @@ msgid "Row" msgstr "Rivi" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "Nimi" @@ -2978,8 +3012,8 @@ msgid "Openlibrary key" msgstr "Openlibrary-avain" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "Tekijä" @@ -3085,10 +3119,6 @@ msgstr "Jos nimikkeiden tuonti epäonnistuu odottamattomalla tavalla, ota yhteyt msgid "Create an Account" msgstr "Avaa käyttäjätili" -#: bookwyrm/templates/landing/invite.html:21 -msgid "Permission Denied" -msgstr "Pääsy kielletty" - #: bookwyrm/templates/landing/invite.html:22 msgid "Sorry! This invite code is no longer valid." msgstr "Kutsukoodi ei ole enää voimassa." @@ -3216,10 +3246,6 @@ msgstr "Skannaa viivakoodi" msgid "Main navigation menu" msgstr "Päävalikko" -#: bookwyrm/templates/layout.html:88 -msgid "Feed" -msgstr "Syöte" - #: bookwyrm/templates/layout.html:134 bookwyrm/templates/ostatus/error.html:33 msgid "password" msgstr "salasana" @@ -3428,6 +3454,7 @@ msgid "Set" msgstr "Aseta" #: bookwyrm/templates/lists/list.html:167 +#: bookwyrm/templates/snippets/remove_follower_button.html:4 #: bookwyrm/templates/snippets/remove_from_group_button.html:20 msgid "Remove" msgstr "Poista" @@ -3504,11 +3531,11 @@ msgstr "" msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." msgstr "" -#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +#: bookwyrm/templates/moved.html:42 msgid "Undo move" msgstr "" -#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:77 msgid "Log out" msgstr "Kirjaudu ulos" @@ -3716,6 +3743,13 @@ msgstr "Tuonti valmis." msgid "%(related_user)s invited you to join the group \"%(group_name)s\"" msgstr "%(related_user)s kutsui sinut liittymään ryhmään ”%(group_name)s”" +#: bookwyrm/templates/notifications/items/invite_request.html:15 +#, python-format +msgid "New invite request awaiting response" +msgid_plural "%(display_count)s new invite requests awaiting response" +msgstr[0] "" +msgstr[1] "" + #: bookwyrm/templates/notifications/items/join.html:16 #, python-format msgid "has joined your group \"%(group_name)s\"" @@ -4148,7 +4182,7 @@ msgstr "Muokkaa profiilia" #: bookwyrm/templates/preferences/edit_user.html:12 #: bookwyrm/templates/preferences/edit_user.html:25 -#: bookwyrm/templates/settings/users/user_info.html:7 +#: bookwyrm/templates/settings/users/user_info.html:8 #: bookwyrm/templates/user_menu.html:29 msgid "Profile" msgstr "Profiili" @@ -4998,19 +5032,19 @@ msgstr "Palvelin:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:119 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Status:" msgstr "Tila:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:107 msgid "Software:" msgstr "Ohjelmisto:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:116 +#: bookwyrm/templates/settings/users/user_info.html:110 msgid "Version:" msgstr "Versio:" @@ -5023,7 +5057,7 @@ msgid "Details" msgstr "Lisätiedot" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:84 +#: bookwyrm/templates/user/layout.html:79 msgid "Activity" msgstr "Aktiivisuus" @@ -5037,7 +5071,7 @@ msgid "View all" msgstr "Näytä kaikki" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:66 +#: bookwyrm/templates/settings/users/user_info.html:60 msgid "Reports:" msgstr "Raportteja:" @@ -5054,7 +5088,7 @@ msgid "Blocked by us:" msgstr "Täältä estettyjä:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:123 +#: bookwyrm/templates/settings/users/user_info.html:117 msgid "Notes" msgstr "Merkintöjä" @@ -5211,7 +5245,7 @@ msgstr "Kutsupyynnöt" #: bookwyrm/templates/settings/invites/manage_invites.html:3 #: bookwyrm/templates/settings/invites/manage_invites.html:15 #: bookwyrm/templates/settings/layout.html:42 -#: bookwyrm/templates/user_menu.html:60 +#: bookwyrm/templates/user_menu.html:55 msgid "Invites" msgstr "Kutsut" @@ -5685,57 +5719,73 @@ msgid "Set instance default theme" msgstr "Aseta palvelimen oletusteema" #: bookwyrm/templates/settings/themes.html:19 +msgid "One of your themes appears to be broken. Selecting this theme will make the application unusable." +msgstr "" + +#: bookwyrm/templates/settings/themes.html:28 msgid "Successfully added theme" msgstr "Teeman lisääminen onnistui" -#: bookwyrm/templates/settings/themes.html:26 +#: bookwyrm/templates/settings/themes.html:35 msgid "How to add a theme" msgstr "Teeman lisääminen — ohje" -#: bookwyrm/templates/settings/themes.html:29 +#: bookwyrm/templates/settings/themes.html:38 msgid "Copy the theme file into the bookwyrm/static/css/themes directory on your server from the command line." msgstr "Kopioi teematiedosto komentorivillä palvelimen hakemistoon bookwyrm/static/css/themes." -#: bookwyrm/templates/settings/themes.html:32 +#: bookwyrm/templates/settings/themes.html:41 msgid "Run ./bw-dev compile_themes and ./bw-dev collectstatic." msgstr "Suorita ./bw-dev compile_themes ja ./bw-dev collectstatic." -#: bookwyrm/templates/settings/themes.html:35 +#: bookwyrm/templates/settings/themes.html:44 msgid "Add the file name using the form below to make it available in the application interface." msgstr "Lisää tiedostonimi alla olevalla lomakkeella, niin se on käytettävissä sovelluksen käyttöliittymän kautta." -#: bookwyrm/templates/settings/themes.html:42 -#: bookwyrm/templates/settings/themes.html:82 +#: bookwyrm/templates/settings/themes.html:51 +#: bookwyrm/templates/settings/themes.html:91 msgid "Add theme" msgstr "Lisää teema" -#: bookwyrm/templates/settings/themes.html:48 +#: bookwyrm/templates/settings/themes.html:57 msgid "Unable to save theme" msgstr "Teemaa ei voi tallentaa" -#: bookwyrm/templates/settings/themes.html:63 -#: bookwyrm/templates/settings/themes.html:93 +#: bookwyrm/templates/settings/themes.html:72 +#: bookwyrm/templates/settings/themes.html:102 msgid "Theme name" msgstr "Teeman nimi" -#: bookwyrm/templates/settings/themes.html:73 +#: bookwyrm/templates/settings/themes.html:82 msgid "Theme filename" msgstr "Teeman tiedostonimi" -#: bookwyrm/templates/settings/themes.html:88 +#: bookwyrm/templates/settings/themes.html:97 msgid "Available Themes" msgstr "Saatavilla olevat teemat" -#: bookwyrm/templates/settings/themes.html:96 +#: bookwyrm/templates/settings/themes.html:105 msgid "File" msgstr "Tiedosto" -#: bookwyrm/templates/settings/themes.html:111 +#: bookwyrm/templates/settings/themes.html:123 msgid "Remove theme" msgstr "Poista teema" +#: bookwyrm/templates/settings/themes.html:134 +msgid "Test theme" +msgstr "" + +#: bookwyrm/templates/settings/themes.html:143 +msgid "Broken theme" +msgstr "" + +#: bookwyrm/templates/settings/themes.html:152 +msgid "Loaded successfully" +msgstr "" + #: bookwyrm/templates/settings/users/delete_user_form.html:5 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:38 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:52 msgid "Permanently delete user" msgstr "Poista käyttäjä pysyvästi" @@ -5774,106 +5824,108 @@ msgstr "Viimeksi paikalla" msgid "Remote instance" msgstr "Etäpalvelin" -#: bookwyrm/templates/settings/users/user_admin.html:82 -#: bookwyrm/templates/settings/users/user_info.html:29 -msgid "Moved" -msgstr "" - -#: bookwyrm/templates/settings/users/user_admin.html:93 -msgid "Deleted" -msgstr "Poistettu" - -#: bookwyrm/templates/settings/users/user_admin.html:99 -#: bookwyrm/templates/settings/users/user_info.html:38 -msgid "Inactive" -msgstr "Ei aktiivinen" - -#: bookwyrm/templates/settings/users/user_admin.html:108 -#: bookwyrm/templates/settings/users/user_info.html:133 +#: bookwyrm/templates/settings/users/user_admin.html:84 +#: bookwyrm/templates/settings/users/user_info.html:127 msgid "Not set" msgstr "Ei asetettu" -#: bookwyrm/templates/settings/users/user_info.html:16 +#: bookwyrm/templates/settings/users/user_info.html:20 +msgid "This account is the instance actor for signing HTTP requests." +msgstr "" + +#: bookwyrm/templates/settings/users/user_info.html:24 msgid "View user profile" msgstr "Näytä käyttäjäprofiili" -#: bookwyrm/templates/settings/users/user_info.html:19 +#: bookwyrm/templates/settings/users/user_info.html:30 msgid "Go to user admin" msgstr "Siirry käyttäjien hallintaan" -#: bookwyrm/templates/settings/users/user_info.html:46 +#: bookwyrm/templates/settings/users/user_info.html:40 msgid "Local" msgstr "Paikallinen" -#: bookwyrm/templates/settings/users/user_info.html:48 +#: bookwyrm/templates/settings/users/user_info.html:42 msgid "Remote" msgstr "Etä" -#: bookwyrm/templates/settings/users/user_info.html:57 +#: bookwyrm/templates/settings/users/user_info.html:51 msgid "User details" msgstr "Käyttäjän tiedot" -#: bookwyrm/templates/settings/users/user_info.html:61 +#: bookwyrm/templates/settings/users/user_info.html:55 msgid "Email:" msgstr "Sähköpostiosoite:" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:65 msgid "(View reports)" msgstr "(Näytä raportit)" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "Blocked by count:" msgstr "Estäneiden määrä:" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:74 msgid "Date added:" msgstr "Lisätty:" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Last active date:" msgstr "Viimeksi paikalla:" -#: bookwyrm/templates/settings/users/user_info.html:86 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Manually approved followers:" msgstr "Käsin hyväksytyt seuraajat:" -#: bookwyrm/templates/settings/users/user_info.html:89 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Discoverable:" msgstr "Löydettävissä:" -#: bookwyrm/templates/settings/users/user_info.html:93 +#: bookwyrm/templates/settings/users/user_info.html:87 msgid "Deactivation reason:" msgstr "Poistumisen syy:" -#: bookwyrm/templates/settings/users/user_info.html:108 +#: bookwyrm/templates/settings/users/user_info.html:102 msgid "Instance details" msgstr "Palvelimen tiedot" -#: bookwyrm/templates/settings/users/user_info.html:130 +#: bookwyrm/templates/settings/users/user_info.html:124 msgid "View instance" msgstr "Näytä palvelin" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:5 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:6 msgid "Permanently deleted" msgstr "Poistettu pysyvästi" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:8 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:9 msgid "User Actions" msgstr "Toiminnot" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:21 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:15 +msgid "This is the instance admin actor" +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:18 +msgid "You must not delete or disable this account as it is critical to the functioning of your server. This actor signs outgoing GET requests to smooth interaction with secure ActivityPub servers." +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:19 +msgid "This account is not discoverable by ordinary users and does not have a profile page." +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:35 msgid "Activate user" msgstr "Aktivoi käyttäjä" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:27 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:41 msgid "Suspend user" msgstr "Hyllytä käyttäjä" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:32 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:46 msgid "Un-suspend user" msgstr "Peru hyllytys" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:54 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:68 msgid "Access level:" msgstr "Käyttöoikeustaso:" @@ -5929,7 +5981,7 @@ msgstr "Verkkotunnus näyttää väärin muotoillulta. Siinä ei saa olla protok msgid "You are running BookWyrm in production mode without https. USE_HTTPS should be enabled in production." msgstr "BookWyrm on tuotantokäytössä ilman https-protokollaa. Tuotantokäytössä tulee ottaa käyttöön USE_HTTPS-valinta." -#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:49 +#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:44 msgid "Settings" msgstr "Asetukset" @@ -5986,7 +6038,7 @@ msgid "Need help?" msgstr "Tarvitsetko apua?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:87 +#: bookwyrm/templates/shelf/shelf.html:74 msgid "Create shelf" msgstr "Luo hylly" @@ -5994,66 +6046,58 @@ msgstr "Luo hylly" msgid "Edit Shelf" msgstr "Muokkaa hyllyä" -#: bookwyrm/templates/shelf/shelf.html:25 -msgid "You have have moved to" -msgstr "" - -#: bookwyrm/templates/shelf/shelf.html:28 -msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." -msgstr "" - -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:26 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Käyttäjäprofiili" -#: bookwyrm/templates/shelf/shelf.html:54 +#: bookwyrm/templates/shelf/shelf.html:41 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Kaikki kirjat" -#: bookwyrm/templates/shelf/shelf.html:112 +#: bookwyrm/templates/shelf/shelf.html:99 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s kirja" msgstr[1] "%(formatted_count)s kirjaa" -#: bookwyrm/templates/shelf/shelf.html:119 +#: bookwyrm/templates/shelf/shelf.html:106 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(näytetään %(start)s–%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:131 +#: bookwyrm/templates/shelf/shelf.html:118 msgid "Edit shelf" msgstr "Muokkaa hyllyä" -#: bookwyrm/templates/shelf/shelf.html:139 +#: bookwyrm/templates/shelf/shelf.html:126 msgid "Delete shelf" msgstr "Poista hylly" -#: bookwyrm/templates/shelf/shelf.html:167 -#: bookwyrm/templates/shelf/shelf.html:193 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:180 msgid "Shelved" msgstr "Hyllytetty" -#: bookwyrm/templates/shelf/shelf.html:168 -#: bookwyrm/templates/shelf/shelf.html:196 +#: bookwyrm/templates/shelf/shelf.html:155 +#: bookwyrm/templates/shelf/shelf.html:183 msgid "Started" msgstr "Aloitettu" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Finished" msgstr "Luettu" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Until" msgstr "Lopetettu" -#: bookwyrm/templates/shelf/shelf.html:225 +#: bookwyrm/templates/shelf/shelf.html:212 msgid "This shelf is empty." msgstr "Hylly on tyhjä." @@ -6363,6 +6407,11 @@ msgstr "%(username)s on lukenut %(read_count)s/%(goal_count msgid "Follow at new account" msgstr "" +#: bookwyrm/templates/snippets/moved_user_notice.html:7 +#, python-format +msgid "%(user)s has moved to %(moved_to_name)s" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6665,6 +6714,18 @@ msgstr "Näytä lisää" msgid "Show less" msgstr "Näytä vähemmän" +#: bookwyrm/templates/snippets/user_active_tag.html:5 +msgid "Moved" +msgstr "" + +#: bookwyrm/templates/snippets/user_active_tag.html:12 +msgid "Deleted" +msgstr "Poistettu" + +#: bookwyrm/templates/snippets/user_active_tag.html:15 +msgid "Inactive" +msgstr "Ei aktiivinen" + #: bookwyrm/templates/two_factor_auth/two_factor_login.html:29 msgid "2FA check" msgstr "Kaksivaiheisen tunnistautumisen tarkistus" @@ -6723,15 +6784,11 @@ msgstr "Omat ryhmät" msgid "Groups: %(username)s" msgstr "Ryhmät: %(username)s" -#: bookwyrm/templates/user/layout.html:50 -msgid "has moved to" -msgstr "" - -#: bookwyrm/templates/user/layout.html:64 +#: bookwyrm/templates/user/layout.html:59 msgid "Follow Requests" msgstr "Seuraamispyynnöt" -#: bookwyrm/templates/user/layout.html:88 +#: bookwyrm/templates/user/layout.html:83 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6752,7 +6809,7 @@ msgstr "Luo lista" msgid "Joined %(date)s" msgstr "Liittynyt %(date)s" -#: bookwyrm/templates/user/relationships/followers.html:31 +#: bookwyrm/templates/user/relationships/followers.html:36 #, python-format msgid "%(username)s has no followers" msgstr "Käyttäjällä %(username)s ei ole seuraajia" @@ -6866,7 +6923,7 @@ msgid_plural "%(num)d books - by %(user)s" msgstr[0] "%(num)d kirja — %(user)s" msgstr[1] "%(num)d kirjaa — %(user)s" -#: bookwyrm/templatetags/utilities.py:48 +#: bookwyrm/templatetags/utilities.py:49 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s" diff --git a/locale/fr_FR/LC_MESSAGES/django.mo b/locale/fr_FR/LC_MESSAGES/django.mo index 46882a4dceaf89059a11ee6c1a3fce74cc85843c..1b3148f925749c58c5c0af8d9a502d676311710c 100644 GIT binary patch delta 30917 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
    +_%xfo6Y~*2j9R(3Ha$U7 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⋘lAYKsTXY&FCeryVJAkIP?_@SUgM3}nxpUIeeez3CKb|`o@%Hg8;{4t32vt@q z_!%|wa#tmuhg#nd4kA4{H4<^(C2cNw*GT(;yFD$ArOYpcOOw8lGV_UdApDS9S2gY! z%FQA#ko%oYSKgEazMo(y$P-S*I~1IVx?DVD!?AQQl5i&)_;{`V7{Jw}pQGWj+>I$4 zOFU(KjR6_lP-?9pWgabW<<_;2xUL9FEheoBWlGs$6}P^jOn1ULY}sanBkX9-kam@N zBZ%j;ZQh~1bar$ptt7clep~69Ets8#qR7#e#ispCIFv>^5?@6A9A7TwXlMraaa&Hw z5#-k=-UL5h1Bs6%zL12nwroRRzbV)x8cxc6JHGS4yzbv5x3yKr6COp*BdR2{W6nw5 zUD7)f{}$_f(#;s+U(rPuo0f^X$GFdN$C1_ulafCXA7fG4ePf5Sm%1(V)26yM;TWFh zZc4>R+-V8V$K7~>dpV6Ja<)ug(!L?>KjO`3 zN7rKRCd6Co>r*5J8ri}F3F}H=olAN`8e5EoxHp+>r$1>QugL`d)lK8)srLnWt#Lf@ zC8S4iPvP!G{o$lFWw0*!ODPwoALtDuVFr;T+`rn6^ANtut!o%}UefQ-fUXIYPfK0^ z&L%CdNp>dF_)X$BiT{jEwzVHzAtXU~c=v77uI+4=I^0`1CN{cnRL`n)Nt;t+yeDJ) z#AB)5(5UYJ%c&g^6V`V?cy#3wwx~BUBI@%PZ){(0cbnyn?G^5g42=zsiS4~+5l zi0<3RJGgILw6_QC22vv?HpbhxhqqhbzEtftnA-g!!UDbO=#$F5Li_a#kBZ0<)sxau z|@hnQ*t6y~A9ubk@fu`#~#vC0U7VGU39upJVGd#u&AtpRFHbR}M)o$V5(6BJ_ zX@-%8MMi{uPNoLrn^IJ0pKx!4Mn`AiQE}d0;nCs6cb=`~X_7Eyuh5wP8$q`Eo|B1E zl`dAYWU1)IcV5sxMoWO?P$#yHS&*pYWFxs z16O*#(CE-Uhu1JulA^Ss{o_KTVtpewEk\n" "Language-Team: French\n" "Language: fr\n" @@ -102,8 +102,8 @@ msgstr "Ordre de la liste" msgid "Book Title" msgstr "Titre du livre" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 -#: bookwyrm/templates/shelf/shelf.html:203 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:158 +#: bookwyrm/templates/shelf/shelf.html:190 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Note" @@ -141,7 +141,7 @@ msgstr "Avertissement" msgid "Danger" msgstr "Danger" -#: bookwyrm/models/antispam.py:112 bookwyrm/models/antispam.py:146 +#: bookwyrm/models/antispam.py:113 bookwyrm/models/antispam.py:147 msgid "Automatically generated report" msgstr "Rapport généré automatiquement" @@ -205,26 +205,26 @@ msgstr "Fédéré" msgid "Blocked" msgstr "Bloqué" -#: bookwyrm/models/fields.py:30 +#: bookwyrm/models/fields.py:35 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s n’est pas une remote_id valide." -#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 +#: bookwyrm/models/fields.py:44 bookwyrm/models/fields.py:53 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s n’est pas un nom de compte valide." -#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 +#: bookwyrm/models/fields.py:198 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "nom du compte :" -#: bookwyrm/models/fields.py:198 +#: bookwyrm/models/fields.py:203 msgid "A user with that username already exists." msgstr "Ce nom est déjà associé à un compte." -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:222 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "Ce nom est déjà associé à un compte." msgid "Public" msgstr "Public" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:223 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Public" msgid "Unlisted" msgstr "Non listé" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:224 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Non listé" msgid "Followers" msgstr "Abonné(e)s" -#: bookwyrm/models/fields.py:220 +#: bookwyrm/models/fields.py:225 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -260,8 +260,7 @@ msgstr "Privé" #: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:87 -#: bookwyrm/templates/settings/users/user_info.html:33 +#: bookwyrm/templates/snippets/user_active_tag.html:8 msgid "Active" msgstr "Actif" @@ -352,122 +351,143 @@ msgstr "Domaine approuvé" msgid "Deleted item" msgstr "Item supprimé" -#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:307 +#: bookwyrm/models/user.py:33 bookwyrm/templates/book/book.html:307 msgid "Reviews" msgstr "Critiques" -#: bookwyrm/models/user.py:33 +#: bookwyrm/models/user.py:34 msgid "Comments" msgstr "Commentaires" -#: bookwyrm/models/user.py:34 +#: bookwyrm/models/user.py:35 msgid "Quotations" msgstr "Citations" -#: bookwyrm/models/user.py:35 +#: bookwyrm/models/user.py:36 msgid "Everything else" msgstr "Tout le reste" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home Timeline" msgstr "Mon fil d’actualité" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home" msgstr "Accueil" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 msgid "Books Timeline" msgstr "Mon fil d’actualité littéraire" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:112 +#: bookwyrm/templates/user/layout.html:107 msgid "Books" msgstr "Livres" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:313 msgid "English" msgstr "English" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:314 msgid "Català (Catalan)" msgstr "Català (Catalan)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:315 msgid "Deutsch (German)" msgstr "Deutsch" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:316 msgid "Esperanto (Esperanto)" msgstr "Esperanto (Espéranto)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:317 msgid "Español (Spanish)" msgstr "Español" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:318 msgid "Euskara (Basque)" msgstr "Euskara (Basque)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:319 msgid "Galego (Galician)" msgstr "Galego (Galicien)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:320 msgid "Italiano (Italian)" msgstr "Italiano (Italien)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:321 msgid "Suomi (Finnish)" msgstr "Suomi (Finnois)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:322 msgid "Français (French)" msgstr "Français" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:323 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių (Lituanien)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:324 msgid "Nederlands (Dutch)" msgstr "Pays‑Bas (Néerlandais)" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:325 msgid "Norsk (Norwegian)" msgstr "Norsk (Norvégien)" -#: bookwyrm/settings.py:316 +#: bookwyrm/settings.py:326 msgid "Polski (Polish)" msgstr "Polski (Polonais)" -#: bookwyrm/settings.py:317 +#: bookwyrm/settings.py:327 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil (Portugais brésilien)" -#: bookwyrm/settings.py:318 +#: bookwyrm/settings.py:328 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (Portugais européen)" -#: bookwyrm/settings.py:319 +#: bookwyrm/settings.py:329 msgid "Română (Romanian)" msgstr "Română (Roumain)" -#: bookwyrm/settings.py:320 +#: bookwyrm/settings.py:330 msgid "Svenska (Swedish)" msgstr "Svenska (Suédois)" -#: bookwyrm/settings.py:321 +#: bookwyrm/settings.py:331 +msgid "Українська (Ukrainian)" +msgstr "" + +#: bookwyrm/settings.py:332 msgid "简体中文 (Simplified Chinese)" msgstr "简化字" -#: bookwyrm/settings.py:322 +#: bookwyrm/settings.py:333 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (chinois traditionnel)" +#: bookwyrm/templates/403.html:5 +msgid "Oh no!" +msgstr "" + +#: bookwyrm/templates/403.html:9 bookwyrm/templates/landing/invite.html:21 +msgid "Permission Denied" +msgstr "Autorisation refusée" + +#: bookwyrm/templates/403.html:11 +#, python-format +msgid "You do not have permission to view this page or perform this action. Your user permission level is %(level)s." +msgstr "" + +#: bookwyrm/templates/403.html:15 +msgid "If you think you should have access, please speak to your BookWyrm server administrator." +msgstr "" + #: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8 msgid "Not Found" msgstr "Introuvable" @@ -476,6 +496,20 @@ msgstr "Introuvable" msgid "The page you requested doesn't seem to exist!" msgstr "Il semblerait que la page que vous avez demandée n’existe pas !" +#: bookwyrm/templates/413.html:4 bookwyrm/templates/413.html:8 +msgid "File too large" +msgstr "" + +#: bookwyrm/templates/413.html:9 +msgid "The file you are uploading is too large." +msgstr "" + +#: bookwyrm/templates/413.html:11 +msgid "\n" +" You you can try using a smaller file, or ask your BookWyrm server administrator to increase the DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "Oups !" @@ -536,12 +570,12 @@ msgstr "L’administration et la modération de %(site_name)s maintiennent le si msgid "Moderator" msgstr "Modérateur/modératrice" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "Admin" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -906,7 +940,7 @@ msgstr "ISNI :" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1042,13 +1076,13 @@ msgstr "Lieux" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Listes" @@ -1324,7 +1358,7 @@ msgid "Add Another Author" msgstr "Ajouter un autre auteur ou autrice" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "Couverture" @@ -1451,8 +1485,9 @@ msgstr "Domaine" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "Statut" @@ -1461,7 +1496,7 @@ msgstr "Statut" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "Actions" @@ -1583,7 +1618,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Pardon ! Nous ne reconnaissons pas ce code." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "Code de confirmation :" @@ -1752,7 +1787,7 @@ msgstr "%(username)s a cité un passage de %(username)s" msgstr "Messages directs avec %(username)s" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "Messages directs" @@ -1945,7 +1980,7 @@ msgstr "Mises à jour" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "Vos Livres" @@ -1993,19 +2028,19 @@ msgid "Add to your books" msgstr "Ajouter à vos livres" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "À lire" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "Lectures en cours" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2014,7 +2049,7 @@ msgid "Read" msgstr "Lu" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "Lecture interrompue" @@ -2511,8 +2546,8 @@ msgid "Barcode reader" msgstr "Lecteur de code-barres" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" -msgstr "Utilisez les liens Flux, Listes et Découverte pour découvrir les dernières mises à jour de votre flux, de vos listes de livres, et les derniers événements sur ce serveur Bookwyrm !" +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" +msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 msgid "Navigation Bar" @@ -2543,8 +2578,8 @@ msgid "Notifications" msgstr "Notifications" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." -msgstr "Vous pouvez accéder à votre profil, vos livres, vos messages directs et vos paramètres en cliquant sur votre nom dans ce menu-ci." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 msgid "Try selecting Profile from the drop down menu to continue the tour." @@ -2699,8 +2734,7 @@ msgstr "Vous pouvez créer ou rejoindre un groupe avec d'autres utilisateurs. Le #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "Groupes" @@ -2754,7 +2788,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "Cet onglet montre tout ce que vous avez lu pour atteindre votre objectif de lecture annuel, ou vous permet d’en définir un. Vous n’avez pas à définir un objectif de lecture si ce n’est pas votre truc !" #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "Défi lecture" @@ -2793,7 +2827,7 @@ msgstr "Pas encore d’activité pour ce hashtag !" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "Importer des livres" @@ -2964,8 +2998,8 @@ msgid "Row" msgstr "Ligne" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "Titre" @@ -2978,8 +3012,8 @@ msgid "Openlibrary key" msgstr "Clé Openlibrary" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "Auteur/autrice" @@ -3085,10 +3119,6 @@ msgstr "Contactez votre administrateur·ice ou bookwyrm/static/css/themes directory on your server from the command line." msgstr "Copiez le fichier de thème dans le répertoire bookwyrm/static/css/themes de votre serveur depuis la ligne de commande." -#: bookwyrm/templates/settings/themes.html:32 +#: bookwyrm/templates/settings/themes.html:41 msgid "Run ./bw-dev compile_themes and ./bw-dev collectstatic." msgstr "Exécutez ./bw-dev compile_themes et ./bw-dev collectstatic." -#: bookwyrm/templates/settings/themes.html:35 +#: bookwyrm/templates/settings/themes.html:44 msgid "Add the file name using the form below to make it available in the application interface." msgstr "Ajoutez le nom du fichier à l'aide du formulaire ci-dessous pour le rendre disponible dans l'interface de l'application." -#: bookwyrm/templates/settings/themes.html:42 -#: bookwyrm/templates/settings/themes.html:82 +#: bookwyrm/templates/settings/themes.html:51 +#: bookwyrm/templates/settings/themes.html:91 msgid "Add theme" msgstr "Ajouter un thème" -#: bookwyrm/templates/settings/themes.html:48 +#: bookwyrm/templates/settings/themes.html:57 msgid "Unable to save theme" msgstr "Impossible d’enregistrer le thème" -#: bookwyrm/templates/settings/themes.html:63 -#: bookwyrm/templates/settings/themes.html:93 +#: bookwyrm/templates/settings/themes.html:72 +#: bookwyrm/templates/settings/themes.html:102 msgid "Theme name" msgstr "Nom du thème" -#: bookwyrm/templates/settings/themes.html:73 +#: bookwyrm/templates/settings/themes.html:82 msgid "Theme filename" msgstr "Nom de fichier du thème" -#: bookwyrm/templates/settings/themes.html:88 +#: bookwyrm/templates/settings/themes.html:97 msgid "Available Themes" msgstr "Thèmes disponibles" -#: bookwyrm/templates/settings/themes.html:96 +#: bookwyrm/templates/settings/themes.html:105 msgid "File" msgstr "Fichier" -#: bookwyrm/templates/settings/themes.html:111 +#: bookwyrm/templates/settings/themes.html:123 msgid "Remove theme" msgstr "Supprimer le thème" +#: bookwyrm/templates/settings/themes.html:134 +msgid "Test theme" +msgstr "" + +#: bookwyrm/templates/settings/themes.html:143 +msgid "Broken theme" +msgstr "" + +#: bookwyrm/templates/settings/themes.html:152 +msgid "Loaded successfully" +msgstr "" + #: bookwyrm/templates/settings/users/delete_user_form.html:5 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:38 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:52 msgid "Permanently delete user" msgstr "Supprimer définitivement l'utilisateur" @@ -5775,106 +5825,108 @@ msgstr "Dernière activité" msgid "Remote instance" msgstr "Instance distante" -#: bookwyrm/templates/settings/users/user_admin.html:82 -#: bookwyrm/templates/settings/users/user_info.html:29 -msgid "Moved" -msgstr "Déménagé" - -#: bookwyrm/templates/settings/users/user_admin.html:93 -msgid "Deleted" -msgstr "Supprimé" - -#: bookwyrm/templates/settings/users/user_admin.html:99 -#: bookwyrm/templates/settings/users/user_info.html:38 -msgid "Inactive" -msgstr "Inactif" - -#: bookwyrm/templates/settings/users/user_admin.html:108 -#: bookwyrm/templates/settings/users/user_info.html:133 +#: bookwyrm/templates/settings/users/user_admin.html:84 +#: bookwyrm/templates/settings/users/user_info.html:127 msgid "Not set" msgstr "Non défini" -#: bookwyrm/templates/settings/users/user_info.html:16 +#: bookwyrm/templates/settings/users/user_info.html:20 +msgid "This account is the instance actor for signing HTTP requests." +msgstr "" + +#: bookwyrm/templates/settings/users/user_info.html:24 msgid "View user profile" msgstr "Voir le profil" -#: bookwyrm/templates/settings/users/user_info.html:19 +#: bookwyrm/templates/settings/users/user_info.html:30 msgid "Go to user admin" msgstr "Accéder à l’admininstration des comptes" -#: bookwyrm/templates/settings/users/user_info.html:46 +#: bookwyrm/templates/settings/users/user_info.html:40 msgid "Local" msgstr "Local" -#: bookwyrm/templates/settings/users/user_info.html:48 +#: bookwyrm/templates/settings/users/user_info.html:42 msgid "Remote" msgstr "Distant·e" -#: bookwyrm/templates/settings/users/user_info.html:57 +#: bookwyrm/templates/settings/users/user_info.html:51 msgid "User details" msgstr "Détails du compte" -#: bookwyrm/templates/settings/users/user_info.html:61 +#: bookwyrm/templates/settings/users/user_info.html:55 msgid "Email:" msgstr "Email :" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:65 msgid "(View reports)" msgstr "(Voir les rapports)" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "Blocked by count:" msgstr "Bloqué par compte:" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:74 msgid "Date added:" msgstr "Date d’ajout :" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Last active date:" msgstr "Dernière date d'activité :" -#: bookwyrm/templates/settings/users/user_info.html:86 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Manually approved followers:" msgstr "Abonné(e)s approuvés manuellement :" -#: bookwyrm/templates/settings/users/user_info.html:89 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Discoverable:" msgstr "Visible publiquement :" -#: bookwyrm/templates/settings/users/user_info.html:93 +#: bookwyrm/templates/settings/users/user_info.html:87 msgid "Deactivation reason:" msgstr "Raison de la désactivation :" -#: bookwyrm/templates/settings/users/user_info.html:108 +#: bookwyrm/templates/settings/users/user_info.html:102 msgid "Instance details" msgstr "Détails de l’instance" -#: bookwyrm/templates/settings/users/user_info.html:130 +#: bookwyrm/templates/settings/users/user_info.html:124 msgid "View instance" msgstr "Voir l’instance" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:5 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:6 msgid "Permanently deleted" msgstr "Supprimé définitivement" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:8 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:9 msgid "User Actions" msgstr "Actions de l'utilisateur" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:21 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:15 +msgid "This is the instance admin actor" +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:18 +msgid "You must not delete or disable this account as it is critical to the functioning of your server. This actor signs outgoing GET requests to smooth interaction with secure ActivityPub servers." +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:19 +msgid "This account is not discoverable by ordinary users and does not have a profile page." +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:35 msgid "Activate user" msgstr "Activer le compte" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:27 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:41 msgid "Suspend user" msgstr "Suspendre le compte" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:32 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:46 msgid "Un-suspend user" msgstr "Rétablir le compte" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:54 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:68 msgid "Access level:" msgstr "Niveau d’accès :" @@ -5930,7 +5982,7 @@ msgstr "Votre domaine semble être mal configuré. Il ne doit pas inclure de pro msgid "You are running BookWyrm in production mode without https. USE_HTTPS should be enabled in production." msgstr "Vous utilisez BookWyrm en mode production sans https. USE_HTTPS doit être activé en production." -#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:49 +#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:44 msgid "Settings" msgstr "Paramètres" @@ -5987,7 +6039,7 @@ msgid "Need help?" msgstr "Besoin d’aide ?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:87 +#: bookwyrm/templates/shelf/shelf.html:74 msgid "Create shelf" msgstr "Créer une étagère" @@ -5995,66 +6047,58 @@ msgstr "Créer une étagère" msgid "Edit Shelf" msgstr "Modifier l’étagère" -#: bookwyrm/templates/shelf/shelf.html:25 -msgid "You have have moved to" -msgstr "Vous avez déménagé vers" - -#: bookwyrm/templates/shelf/shelf.html:28 -msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." -msgstr "Vous pouvez annuler cette migration pour restaurer toutes les fonctionnalités, mais certain·e·s abonné·e·s peuvent déjà ne plus suivre ce compte." - -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:26 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Profil utilisateur·rice" -#: bookwyrm/templates/shelf/shelf.html:54 +#: bookwyrm/templates/shelf/shelf.html:41 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Tous les livres" -#: bookwyrm/templates/shelf/shelf.html:112 +#: bookwyrm/templates/shelf/shelf.html:99 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s livre" msgstr[1] "%(formatted_count)s livres" -#: bookwyrm/templates/shelf/shelf.html:119 +#: bookwyrm/templates/shelf/shelf.html:106 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(affichage de %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:131 +#: bookwyrm/templates/shelf/shelf.html:118 msgid "Edit shelf" msgstr "Modifier l’étagère" -#: bookwyrm/templates/shelf/shelf.html:139 +#: bookwyrm/templates/shelf/shelf.html:126 msgid "Delete shelf" msgstr "Supprimer l’étagère" -#: bookwyrm/templates/shelf/shelf.html:167 -#: bookwyrm/templates/shelf/shelf.html:193 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:180 msgid "Shelved" msgstr "Date d’ajout" -#: bookwyrm/templates/shelf/shelf.html:168 -#: bookwyrm/templates/shelf/shelf.html:196 +#: bookwyrm/templates/shelf/shelf.html:155 +#: bookwyrm/templates/shelf/shelf.html:183 msgid "Started" msgstr "Commencé" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Finished" msgstr "Terminé" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Until" msgstr "Jusqu’à" -#: bookwyrm/templates/shelf/shelf.html:225 +#: bookwyrm/templates/shelf/shelf.html:212 msgid "This shelf is empty." msgstr "Cette étagère est vide" @@ -6364,6 +6408,11 @@ msgstr "%(username)s a lu %(read_count)s sur %(goal_count)s msgid "Follow at new account" msgstr "Suivre le nouveau compte" +#: bookwyrm/templates/snippets/moved_user_notice.html:7 +#, python-format +msgid "%(user)s has moved to %(moved_to_name)s" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6666,6 +6715,18 @@ msgstr "Déplier" msgid "Show less" msgstr "Replier" +#: bookwyrm/templates/snippets/user_active_tag.html:5 +msgid "Moved" +msgstr "Déménagé" + +#: bookwyrm/templates/snippets/user_active_tag.html:12 +msgid "Deleted" +msgstr "Supprimé" + +#: bookwyrm/templates/snippets/user_active_tag.html:15 +msgid "Inactive" +msgstr "Inactif" + #: bookwyrm/templates/two_factor_auth/two_factor_login.html:29 msgid "2FA check" msgstr "Vérification 2FA" @@ -6724,15 +6785,11 @@ msgstr "Vos Groupes" msgid "Groups: %(username)s" msgstr "Groupes : %(username)s" -#: bookwyrm/templates/user/layout.html:50 -msgid "has moved to" -msgstr "a déménagé vers" - -#: bookwyrm/templates/user/layout.html:64 +#: bookwyrm/templates/user/layout.html:59 msgid "Follow Requests" msgstr "Demandes d’abonnement" -#: bookwyrm/templates/user/layout.html:88 +#: bookwyrm/templates/user/layout.html:83 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6753,7 +6810,7 @@ msgstr "Créer une liste" msgid "Joined %(date)s" msgstr "A rejoint ce serveur %(date)s" -#: bookwyrm/templates/user/relationships/followers.html:31 +#: bookwyrm/templates/user/relationships/followers.html:36 #, python-format msgid "%(username)s has no followers" msgstr "%(username)s n’a pas d’abonné(e)" @@ -6867,7 +6924,7 @@ msgid_plural "%(num)d books - by %(user)s" msgstr[0] "%(num)d livre - par %(user)s" msgstr[1] "%(num)d livres - par %(user)s" -#: bookwyrm/templatetags/utilities.py:48 +#: bookwyrm/templatetags/utilities.py:49 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s (%(subtitle)s)" diff --git a/locale/gl_ES/LC_MESSAGES/django.mo b/locale/gl_ES/LC_MESSAGES/django.mo index ff8156a3ac9139b285baa84bf11e8063f369c702..132cd95847f5dd8137eccc9e0ed3bd1f5f67dd33 100644 GIT binary patch delta 30885 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 JpwA-T{{bDTL?r+K delta 31769 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 Bgu4I$ diff --git a/locale/gl_ES/LC_MESSAGES/django.po b/locale/gl_ES/LC_MESSAGES/django.po index 3dcef726d..0212c0acd 100644 --- a/locale/gl_ES/LC_MESSAGES/django.po +++ b/locale/gl_ES/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-02 21:32+0000\n" -"PO-Revision-Date: 2023-12-21 05:43\n" +"POT-Creation-Date: 2023-12-30 23:52+0000\n" +"PO-Revision-Date: 2024-01-02 03:11\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Galician\n" "Language: gl\n" @@ -102,8 +102,8 @@ msgstr "Orde da lista" msgid "Book Title" msgstr "Título do libro" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 -#: bookwyrm/templates/shelf/shelf.html:203 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:158 +#: bookwyrm/templates/shelf/shelf.html:190 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Valoración" @@ -141,7 +141,7 @@ msgstr "Advertencia" msgid "Danger" msgstr "Perigo" -#: bookwyrm/models/antispam.py:112 bookwyrm/models/antispam.py:146 +#: bookwyrm/models/antispam.py:113 bookwyrm/models/antispam.py:147 msgid "Automatically generated report" msgstr "Denuncia creada automáticamente" @@ -205,26 +205,26 @@ msgstr "Federado" msgid "Blocked" msgstr "Bloqueado" -#: bookwyrm/models/fields.py:30 +#: bookwyrm/models/fields.py:35 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s non é un remote_id válido" -#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 +#: bookwyrm/models/fields.py:44 bookwyrm/models/fields.py:53 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s non é un nome de usuaria válido" -#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 +#: bookwyrm/models/fields.py:198 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "identificador" -#: bookwyrm/models/fields.py:198 +#: bookwyrm/models/fields.py:203 msgid "A user with that username already exists." msgstr "Xa existe unha usuaria con ese identificador." -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:222 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "Xa existe unha usuaria con ese identificador." msgid "Public" msgstr "Público" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:223 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Público" msgid "Unlisted" msgstr "Non listado" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:224 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Non listado" msgid "Followers" msgstr "Seguidoras" -#: bookwyrm/models/fields.py:220 +#: bookwyrm/models/fields.py:225 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -260,8 +260,7 @@ msgstr "Privado" #: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:87 -#: bookwyrm/templates/settings/users/user_info.html:33 +#: bookwyrm/templates/snippets/user_active_tag.html:8 msgid "Active" msgstr "Activa" @@ -352,122 +351,143 @@ msgstr "Dominio aprobado" msgid "Deleted item" msgstr "Elemento eliminado" -#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:307 +#: bookwyrm/models/user.py:33 bookwyrm/templates/book/book.html:307 msgid "Reviews" msgstr "Recensións" -#: bookwyrm/models/user.py:33 +#: bookwyrm/models/user.py:34 msgid "Comments" msgstr "Comentarios" -#: bookwyrm/models/user.py:34 +#: bookwyrm/models/user.py:35 msgid "Quotations" msgstr "Citas" -#: bookwyrm/models/user.py:35 +#: bookwyrm/models/user.py:36 msgid "Everything else" msgstr "As outras cousas" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home Timeline" msgstr "Cronoloxía de Inicio" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home" msgstr "Inicio" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 msgid "Books Timeline" msgstr "Cronoloxía de libros" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:112 +#: bookwyrm/templates/user/layout.html:107 msgid "Books" msgstr "Libros" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:313 msgid "English" msgstr "English (Inglés)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:314 msgid "Català (Catalan)" msgstr "Català (Catalan)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:315 msgid "Deutsch (German)" msgstr "Deutsch (Alemán)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:316 msgid "Esperanto (Esperanto)" msgstr "Esperanto (Esperanto)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:317 msgid "Español (Spanish)" msgstr "Español (Español)" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:318 msgid "Euskara (Basque)" msgstr "Euskara (Éuscaro)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:319 msgid "Galego (Galician)" msgstr "Galego (Galego)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:320 msgid "Italiano (Italian)" msgstr "Italiano (Italiano)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:321 msgid "Suomi (Finnish)" msgstr "Suomi (Finés)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:322 msgid "Français (French)" msgstr "Français (Francés)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:323 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių (Lituano)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:324 msgid "Nederlands (Dutch)" msgstr "Paises Baixos (Dutch)" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:325 msgid "Norsk (Norwegian)" msgstr "Norsk (Noruegués)" -#: bookwyrm/settings.py:316 +#: bookwyrm/settings.py:326 msgid "Polski (Polish)" msgstr "Polski (Polaco)" -#: bookwyrm/settings.py:317 +#: bookwyrm/settings.py:327 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil (Portugués brasileiro)" -#: bookwyrm/settings.py:318 +#: bookwyrm/settings.py:328 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (Portugués europeo)" -#: bookwyrm/settings.py:319 +#: bookwyrm/settings.py:329 msgid "Română (Romanian)" msgstr "Română (Rumanés)" -#: bookwyrm/settings.py:320 +#: bookwyrm/settings.py:330 msgid "Svenska (Swedish)" msgstr "Svenska (Sueco)" -#: bookwyrm/settings.py:321 +#: bookwyrm/settings.py:331 +msgid "Українська (Ukrainian)" +msgstr "" + +#: bookwyrm/settings.py:332 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文 (Chinés simplificado)" -#: bookwyrm/settings.py:322 +#: bookwyrm/settings.py:333 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (Chinés tradicional)" +#: bookwyrm/templates/403.html:5 +msgid "Oh no!" +msgstr "" + +#: bookwyrm/templates/403.html:9 bookwyrm/templates/landing/invite.html:21 +msgid "Permission Denied" +msgstr "Permiso denegado" + +#: bookwyrm/templates/403.html:11 +#, python-format +msgid "You do not have permission to view this page or perform this action. Your user permission level is %(level)s." +msgstr "" + +#: bookwyrm/templates/403.html:15 +msgid "If you think you should have access, please speak to your BookWyrm server administrator." +msgstr "" + #: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8 msgid "Not Found" msgstr "Non se atopa" @@ -476,6 +496,20 @@ msgstr "Non se atopa" msgid "The page you requested doesn't seem to exist!" msgstr "Parece que non existe a páxina solicitada!" +#: bookwyrm/templates/413.html:4 bookwyrm/templates/413.html:8 +msgid "File too large" +msgstr "" + +#: bookwyrm/templates/413.html:9 +msgid "The file you are uploading is too large." +msgstr "" + +#: bookwyrm/templates/413.html:11 +msgid "\n" +" You you can try using a smaller file, or ask your BookWyrm server administrator to increase the DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "Vaite!" @@ -536,12 +570,12 @@ msgstr "A moderación e administración de %(site_name)s coidan e xestionan o si msgid "Moderator" msgstr "Moderación" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "Admin" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -906,7 +940,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1042,13 +1076,13 @@ msgstr "Lugares" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Listas" @@ -1324,7 +1358,7 @@ msgid "Add Another Author" msgstr "Engade outra Autora" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "Portada" @@ -1451,8 +1485,9 @@ msgstr "Dominio" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "Estado" @@ -1461,7 +1496,7 @@ msgstr "Estado" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "Accións" @@ -1583,7 +1618,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Lamentámolo! Non puidemos atopar ese código." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "Código de confirmación:" @@ -1752,7 +1787,7 @@ msgstr "%(username)s citou %(username)s" msgstr "Mensaxes Directas con %(username)s" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "Mensaxes Directas" @@ -1945,7 +1980,7 @@ msgstr "Actualizacións" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "Os teus libros" @@ -1993,19 +2028,19 @@ msgid "Add to your books" msgstr "Engadir aos teus libros" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "Pendentes" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "Lectura actual" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2014,7 +2049,7 @@ msgid "Read" msgstr "Lidos" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "Abandonados" @@ -2511,8 +2546,8 @@ msgid "Barcode reader" msgstr "Lector de códigos de barras" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" -msgstr "Usa as ligazóns a Cronoloxía, Listas e Descubrir para ver as últimas novas na túa cronoloxía, listas de libros por tema, e as últimas actualizacións neste servidor Bookwyrm!" +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" +msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 msgid "Navigation Bar" @@ -2543,8 +2578,8 @@ msgid "Notifications" msgstr "Notificacións" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." -msgstr "O teu perfil, libros, mensaxes directas e axustes son accesibles premendo no teu nome neste menú." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 msgid "Try selecting Profile from the drop down menu to continue the tour." @@ -2699,8 +2734,7 @@ msgstr "Podes crear ou unirte a un grupo con outras persoas. Os grupos poden cre #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "Grupos" @@ -2754,7 +2788,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "Este apartado mostra todo o que leches este ano e permiteche establecer un obxectivo de lectura. Non tes que establecer un obxectivo se non queres!" #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "Obxectivo de lectura" @@ -2793,7 +2827,7 @@ msgstr "Aínda non hai actividade para este cancelo!" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "Importar libros" @@ -2964,8 +2998,8 @@ msgid "Row" msgstr "Fila" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "Título" @@ -2978,8 +3012,8 @@ msgid "Openlibrary key" msgstr "Chave en Openlibrary" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "Autoría" @@ -3085,10 +3119,6 @@ msgstr "Contacta coa administración ou DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "Ops!" @@ -536,12 +570,12 @@ msgstr "I moderatori e gli amministratori di %(site_name)s mantengono il sito at msgid "Moderator" msgstr "Moderatori" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "Admin" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -906,7 +940,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1042,13 +1076,13 @@ msgstr "Luoghi" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Liste" @@ -1324,7 +1358,7 @@ msgid "Add Another Author" msgstr "Aggiungi un altro autore" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "Copertina" @@ -1451,8 +1485,9 @@ msgstr "Dominio" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "Stato" @@ -1461,7 +1496,7 @@ msgstr "Stato" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "Azioni" @@ -1583,7 +1618,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Ci dispiace! Non siamo riusciti a trovare quel codice." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "Codice di conferma:" @@ -1752,7 +1787,7 @@ msgstr "%(username)s ha citato %(username)s" msgstr "Messaggi diretti con %(username)s" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "Messaggi diretti" @@ -1945,7 +1980,7 @@ msgstr "Aggiornamenti" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "I tuoi libri" @@ -1993,19 +2028,19 @@ msgid "Add to your books" msgstr "Aggiungi ai tuoi libri" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "Da leggere" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "Letture correnti" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2014,7 +2049,7 @@ msgid "Read" msgstr "Letti" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "Lettura in pausa" @@ -2511,8 +2546,8 @@ msgid "Barcode reader" msgstr "Lettore di codici a barre" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" -msgstr "Usa i link Feed, Liste e Scopri per scoprire le ultime novità del tuo feed, elenchi di libri per argomento, e gli ultimi avvenimenti su questo server Bookwyrm!" +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" +msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 msgid "Navigation Bar" @@ -2543,8 +2578,8 @@ msgid "Notifications" msgstr "Notifiche" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." -msgstr "Il tuo profilo, i libri, i messaggi diretti e le impostazioni possono essere consultati cliccando sul tuo nome nel menu." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 msgid "Try selecting Profile from the drop down menu to continue the tour." @@ -2699,8 +2734,7 @@ msgstr "Puoi creare o unirti a un gruppo con altri utenti. I gruppi possono cond #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "Gruppi" @@ -2754,7 +2788,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "Questa scheda mostra tutto quello che hai letto per raggiungere il tuo obiettivo di lettura annuale, o ti permette di impostarne uno. Non devi impostare un obiettivo di lettura se non vuoi!" #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "Obiettivo di lettura" @@ -2793,7 +2827,7 @@ msgstr "Non c'è ancora nessuna attività per questo hashtag!" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "Importa libri" @@ -2964,8 +2998,8 @@ msgid "Row" msgstr "Riga" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "Titolo" @@ -2978,8 +3012,8 @@ msgid "Openlibrary key" msgstr "Chiave OpenLibrary" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "Autore" @@ -3085,10 +3119,6 @@ msgstr "Contatta il tuo amministratore o bookwyrm/static/css/themes directory on your server from the command line." msgstr "Copia il file del tema nella directory bookwyrm/static/css/themes sul tuo server dalla riga di comando." -#: bookwyrm/templates/settings/themes.html:32 +#: bookwyrm/templates/settings/themes.html:41 msgid "Run ./bw-dev compile_themes and ./bw-dev collectstatic." msgstr "Esegui ./bw-dev compile_themes e ./bw-dev collectstatic." -#: bookwyrm/templates/settings/themes.html:35 +#: bookwyrm/templates/settings/themes.html:44 msgid "Add the file name using the form below to make it available in the application interface." msgstr "Aggiungere il nome del file utilizzando il modulo sottostante per renderlo disponibile nell'interfaccia dell'applicazione." -#: bookwyrm/templates/settings/themes.html:42 -#: bookwyrm/templates/settings/themes.html:82 +#: bookwyrm/templates/settings/themes.html:51 +#: bookwyrm/templates/settings/themes.html:91 msgid "Add theme" msgstr "Aggiungi tema" -#: bookwyrm/templates/settings/themes.html:48 +#: bookwyrm/templates/settings/themes.html:57 msgid "Unable to save theme" msgstr "Impossibile salvare il tema" -#: bookwyrm/templates/settings/themes.html:63 -#: bookwyrm/templates/settings/themes.html:93 +#: bookwyrm/templates/settings/themes.html:72 +#: bookwyrm/templates/settings/themes.html:102 msgid "Theme name" msgstr "Nome tema" -#: bookwyrm/templates/settings/themes.html:73 +#: bookwyrm/templates/settings/themes.html:82 msgid "Theme filename" msgstr "Nome file del tema" -#: bookwyrm/templates/settings/themes.html:88 +#: bookwyrm/templates/settings/themes.html:97 msgid "Available Themes" msgstr "Temi disponibili" -#: bookwyrm/templates/settings/themes.html:96 +#: bookwyrm/templates/settings/themes.html:105 msgid "File" msgstr "File" -#: bookwyrm/templates/settings/themes.html:111 +#: bookwyrm/templates/settings/themes.html:123 msgid "Remove theme" msgstr "Rimuovi tema" +#: bookwyrm/templates/settings/themes.html:134 +msgid "Test theme" +msgstr "" + +#: bookwyrm/templates/settings/themes.html:143 +msgid "Broken theme" +msgstr "" + +#: bookwyrm/templates/settings/themes.html:152 +msgid "Loaded successfully" +msgstr "" + #: bookwyrm/templates/settings/users/delete_user_form.html:5 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:38 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:52 msgid "Permanently delete user" msgstr "Elimina definitivamente utente" @@ -5776,106 +5826,108 @@ msgstr "Attivo l'ultima volta" msgid "Remote instance" msgstr "Istanza remota" -#: bookwyrm/templates/settings/users/user_admin.html:82 -#: bookwyrm/templates/settings/users/user_info.html:29 -msgid "Moved" -msgstr "Trasferito" - -#: bookwyrm/templates/settings/users/user_admin.html:93 -msgid "Deleted" -msgstr "Elimina" - -#: bookwyrm/templates/settings/users/user_admin.html:99 -#: bookwyrm/templates/settings/users/user_info.html:38 -msgid "Inactive" -msgstr "Inattivo" - -#: bookwyrm/templates/settings/users/user_admin.html:108 -#: bookwyrm/templates/settings/users/user_info.html:133 +#: bookwyrm/templates/settings/users/user_admin.html:84 +#: bookwyrm/templates/settings/users/user_info.html:127 msgid "Not set" msgstr "Non impostato" -#: bookwyrm/templates/settings/users/user_info.html:16 +#: bookwyrm/templates/settings/users/user_info.html:20 +msgid "This account is the instance actor for signing HTTP requests." +msgstr "" + +#: bookwyrm/templates/settings/users/user_info.html:24 msgid "View user profile" msgstr "Visualizza il profilo dell'utente" -#: bookwyrm/templates/settings/users/user_info.html:19 +#: bookwyrm/templates/settings/users/user_info.html:30 msgid "Go to user admin" msgstr "Vai ad amministratore utente" -#: bookwyrm/templates/settings/users/user_info.html:46 +#: bookwyrm/templates/settings/users/user_info.html:40 msgid "Local" msgstr "Locale" -#: bookwyrm/templates/settings/users/user_info.html:48 +#: bookwyrm/templates/settings/users/user_info.html:42 msgid "Remote" msgstr "Remoto" -#: bookwyrm/templates/settings/users/user_info.html:57 +#: bookwyrm/templates/settings/users/user_info.html:51 msgid "User details" msgstr "Dettagli utente" -#: bookwyrm/templates/settings/users/user_info.html:61 +#: bookwyrm/templates/settings/users/user_info.html:55 msgid "Email:" msgstr "Email:" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:65 msgid "(View reports)" msgstr "(Visualizza reports)" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "Blocked by count:" msgstr "Bloccato per conteggio:" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:74 msgid "Date added:" msgstr "Data di inserimento:" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Last active date:" msgstr "Attivo l'ultima volta:" -#: bookwyrm/templates/settings/users/user_info.html:86 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Manually approved followers:" msgstr "Approvare manualmente i follower:" -#: bookwyrm/templates/settings/users/user_info.html:89 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Discoverable:" msgstr "Scopribile:" -#: bookwyrm/templates/settings/users/user_info.html:93 +#: bookwyrm/templates/settings/users/user_info.html:87 msgid "Deactivation reason:" msgstr "Motivo della disattivazione:" -#: bookwyrm/templates/settings/users/user_info.html:108 +#: bookwyrm/templates/settings/users/user_info.html:102 msgid "Instance details" msgstr "Dettagli dell'istanza" -#: bookwyrm/templates/settings/users/user_info.html:130 +#: bookwyrm/templates/settings/users/user_info.html:124 msgid "View instance" msgstr "Visualizza istanza" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:5 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:6 msgid "Permanently deleted" msgstr "Elimina definitivamente" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:8 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:9 msgid "User Actions" msgstr "Azioni dell'utente" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:21 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:15 +msgid "This is the instance admin actor" +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:18 +msgid "You must not delete or disable this account as it is critical to the functioning of your server. This actor signs outgoing GET requests to smooth interaction with secure ActivityPub servers." +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:19 +msgid "This account is not discoverable by ordinary users and does not have a profile page." +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:35 msgid "Activate user" msgstr "Attiva utente" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:27 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:41 msgid "Suspend user" msgstr "Sospendere utente" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:32 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:46 msgid "Un-suspend user" msgstr "Annulla sospensione utente" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:54 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:68 msgid "Access level:" msgstr "Livello di accesso:" @@ -5931,7 +5983,7 @@ msgstr "Il tuo dominio sembra essere mal configurato. Non dovrebbe includere pro msgid "You are running BookWyrm in production mode without https. USE_HTTPS should be enabled in production." msgstr "Stai eseguendo BookWyrm in modalità di produzione senza https. USE_HTTPS dovrebbe essere abilitato in produzione." -#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:49 +#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:44 msgid "Settings" msgstr "Impostazioni" @@ -5988,7 +6040,7 @@ msgid "Need help?" msgstr "Hai bisogno di aiuto?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:87 +#: bookwyrm/templates/shelf/shelf.html:74 msgid "Create shelf" msgstr "Crea scaffale" @@ -5996,66 +6048,58 @@ msgstr "Crea scaffale" msgid "Edit Shelf" msgstr "Modifica Scaffale" -#: bookwyrm/templates/shelf/shelf.html:25 -msgid "You have have moved to" -msgstr "Ti sei spostato in" - -#: bookwyrm/templates/shelf/shelf.html:28 -msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." -msgstr "È possibile annullare questo spostamento per ripristinare la funzionalità completa, ma alcuni follower potrebbero aver già smesso di seguire questo account." - -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:26 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Profilo utente" -#: bookwyrm/templates/shelf/shelf.html:54 +#: bookwyrm/templates/shelf/shelf.html:41 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Tutti i libri" -#: bookwyrm/templates/shelf/shelf.html:112 +#: bookwyrm/templates/shelf/shelf.html:99 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s libro" msgstr[1] "%(formatted_count)s libri" -#: bookwyrm/templates/shelf/shelf.html:119 +#: bookwyrm/templates/shelf/shelf.html:106 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(mostra %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:131 +#: bookwyrm/templates/shelf/shelf.html:118 msgid "Edit shelf" msgstr "Modifica scaffale" -#: bookwyrm/templates/shelf/shelf.html:139 +#: bookwyrm/templates/shelf/shelf.html:126 msgid "Delete shelf" msgstr "Elimina scaffale" -#: bookwyrm/templates/shelf/shelf.html:167 -#: bookwyrm/templates/shelf/shelf.html:193 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:180 msgid "Shelved" msgstr "Scaffali" -#: bookwyrm/templates/shelf/shelf.html:168 -#: bookwyrm/templates/shelf/shelf.html:196 +#: bookwyrm/templates/shelf/shelf.html:155 +#: bookwyrm/templates/shelf/shelf.html:183 msgid "Started" msgstr "Iniziato" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Finished" msgstr "Completato" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Until" msgstr "Finito" -#: bookwyrm/templates/shelf/shelf.html:225 +#: bookwyrm/templates/shelf/shelf.html:212 msgid "This shelf is empty." msgstr "Questo scaffale è vuoto." @@ -6365,6 +6409,11 @@ msgstr "%(username)s ha letto %(read_count)s di %(goal_coun msgid "Follow at new account" msgstr "Segui sul nuovo account" +#: bookwyrm/templates/snippets/moved_user_notice.html:7 +#, python-format +msgid "%(user)s has moved to %(moved_to_name)s" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6667,6 +6716,18 @@ msgstr "Mostra di più" msgid "Show less" msgstr "Mostra meno" +#: bookwyrm/templates/snippets/user_active_tag.html:5 +msgid "Moved" +msgstr "Trasferito" + +#: bookwyrm/templates/snippets/user_active_tag.html:12 +msgid "Deleted" +msgstr "Elimina" + +#: bookwyrm/templates/snippets/user_active_tag.html:15 +msgid "Inactive" +msgstr "Inattivo" + #: bookwyrm/templates/two_factor_auth/two_factor_login.html:29 msgid "2FA check" msgstr "Verifica 2FA" @@ -6725,15 +6786,11 @@ msgstr "I tuoi gruppi" msgid "Groups: %(username)s" msgstr "Gruppi: %(username)s" -#: bookwyrm/templates/user/layout.html:50 -msgid "has moved to" -msgstr "si è spostato in" - -#: bookwyrm/templates/user/layout.html:64 +#: bookwyrm/templates/user/layout.html:59 msgid "Follow Requests" msgstr "Richieste di seguirti" -#: bookwyrm/templates/user/layout.html:88 +#: bookwyrm/templates/user/layout.html:83 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6754,7 +6811,7 @@ msgstr "Crea lista" msgid "Joined %(date)s" msgstr "Registrato %(date)s" -#: bookwyrm/templates/user/relationships/followers.html:31 +#: bookwyrm/templates/user/relationships/followers.html:36 #, python-format msgid "%(username)s has no followers" msgstr "%(username)s non ha followers" @@ -6868,7 +6925,7 @@ msgid_plural "%(num)d books - by %(user)s" msgstr[0] "" msgstr[1] "%(num)d libri - di %(user)s" -#: bookwyrm/templatetags/utilities.py:48 +#: bookwyrm/templatetags/utilities.py:49 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s" diff --git a/locale/lt_LT/LC_MESSAGES/django.mo b/locale/lt_LT/LC_MESSAGES/django.mo index 692025f6cd100343dfcc44f5429bd67c521d3a15..1a92d92fe106735d258001fd68ee43e4740efeff 100644 GIT binary patch delta 30077 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 K65^9T_WuE@CfG~> delta 30751 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 bH@9m@A10vY`-enzjT>8ZN7F)n<^2C2?yswR diff --git a/locale/lt_LT/LC_MESSAGES/django.po b/locale/lt_LT/LC_MESSAGES/django.po index 9abce3d3f..2b37a592e 100644 --- a/locale/lt_LT/LC_MESSAGES/django.po +++ b/locale/lt_LT/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-02 21:32+0000\n" -"PO-Revision-Date: 2023-11-02 22:29\n" +"POT-Creation-Date: 2023-12-30 23:52+0000\n" +"PO-Revision-Date: 2024-01-02 03:12\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Lithuanian\n" "Language: lt\n" @@ -102,8 +102,8 @@ msgstr "Kaip pridėta į sąrašą" msgid "Book Title" msgstr "Knygos antraštė" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 -#: bookwyrm/templates/shelf/shelf.html:203 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:158 +#: bookwyrm/templates/shelf/shelf.html:190 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Įvertinimas" @@ -141,7 +141,7 @@ msgstr "Įspėjimas" msgid "Danger" msgstr "Pavojus" -#: bookwyrm/models/antispam.py:112 bookwyrm/models/antispam.py:146 +#: bookwyrm/models/antispam.py:113 bookwyrm/models/antispam.py:147 msgid "Automatically generated report" msgstr "Automatiškai sugeneruota ataskaita" @@ -205,26 +205,26 @@ msgstr "Susijungę" msgid "Blocked" msgstr "Užblokuoti" -#: bookwyrm/models/fields.py:30 +#: bookwyrm/models/fields.py:35 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s yra negaliojantis remote_id" -#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 +#: bookwyrm/models/fields.py:44 bookwyrm/models/fields.py:53 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s yra negaliojantis naudotojo vardas" -#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 +#: bookwyrm/models/fields.py:198 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "naudotojo vardas" -#: bookwyrm/models/fields.py:198 +#: bookwyrm/models/fields.py:203 msgid "A user with that username already exists." msgstr "Toks naudotojo vardas jau egzistuoja." -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:222 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "Toks naudotojo vardas jau egzistuoja." msgid "Public" msgstr "Viešas" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:223 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Viešas" msgid "Unlisted" msgstr "Slaptas" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:224 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Slaptas" msgid "Followers" msgstr "Sekėjai" -#: bookwyrm/models/fields.py:220 +#: bookwyrm/models/fields.py:225 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -260,8 +260,7 @@ msgstr "Privatu" #: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:87 -#: bookwyrm/templates/settings/users/user_info.html:33 +#: bookwyrm/templates/snippets/user_active_tag.html:8 msgid "Active" msgstr "Aktyvus" @@ -352,122 +351,143 @@ msgstr "" msgid "Deleted item" msgstr "" -#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:307 +#: bookwyrm/models/user.py:33 bookwyrm/templates/book/book.html:307 msgid "Reviews" msgstr "Apžvalgos" -#: bookwyrm/models/user.py:33 +#: bookwyrm/models/user.py:34 msgid "Comments" msgstr "Komentarai" -#: bookwyrm/models/user.py:34 +#: bookwyrm/models/user.py:35 msgid "Quotations" msgstr "Citatos" -#: bookwyrm/models/user.py:35 +#: bookwyrm/models/user.py:36 msgid "Everything else" msgstr "Visa kita" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home Timeline" msgstr "Pagrindinė siena" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home" msgstr "Pagrindinis" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 msgid "Books Timeline" msgstr "Knygų siena" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:112 +#: bookwyrm/templates/user/layout.html:107 msgid "Books" msgstr "Knygos" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:313 msgid "English" msgstr "English (Anglų)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:314 msgid "Català (Catalan)" msgstr "Català (kataloniečių)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:315 msgid "Deutsch (German)" msgstr "Deutsch (Vokiečių)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:316 msgid "Esperanto (Esperanto)" msgstr "Esperanto (Esperanto)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:317 msgid "Español (Spanish)" msgstr "Español (Ispanų)" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:318 msgid "Euskara (Basque)" msgstr "Euskara (Baskų kalba)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:319 msgid "Galego (Galician)" msgstr "Galego (galisų)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:320 msgid "Italiano (Italian)" msgstr "Italų (Italian)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:321 msgid "Suomi (Finnish)" msgstr "Suomi (suomių)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:322 msgid "Français (French)" msgstr "Français (Prancūzų)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:323 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:324 msgid "Nederlands (Dutch)" msgstr "" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:325 msgid "Norsk (Norwegian)" msgstr "Norvegų (Norwegian)" -#: bookwyrm/settings.py:316 +#: bookwyrm/settings.py:326 msgid "Polski (Polish)" msgstr "Polski (lenkų)" -#: bookwyrm/settings.py:317 +#: bookwyrm/settings.py:327 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português brasileiro (Brazilijos portugalų)" -#: bookwyrm/settings.py:318 +#: bookwyrm/settings.py:328 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (Europos portugalų)" -#: bookwyrm/settings.py:319 +#: bookwyrm/settings.py:329 msgid "Română (Romanian)" msgstr "Română (rumunų)" -#: bookwyrm/settings.py:320 +#: bookwyrm/settings.py:330 msgid "Svenska (Swedish)" msgstr "Svenska (Švedų)" -#: bookwyrm/settings.py:321 +#: bookwyrm/settings.py:331 +msgid "Українська (Ukrainian)" +msgstr "" + +#: bookwyrm/settings.py:332 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文 (Supaprastinta kinų)" -#: bookwyrm/settings.py:322 +#: bookwyrm/settings.py:333 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (Tradicinė kinų)" +#: bookwyrm/templates/403.html:5 +msgid "Oh no!" +msgstr "" + +#: bookwyrm/templates/403.html:9 bookwyrm/templates/landing/invite.html:21 +msgid "Permission Denied" +msgstr "Prieiga draudžiama" + +#: bookwyrm/templates/403.html:11 +#, python-format +msgid "You do not have permission to view this page or perform this action. Your user permission level is %(level)s." +msgstr "" + +#: bookwyrm/templates/403.html:15 +msgid "If you think you should have access, please speak to your BookWyrm server administrator." +msgstr "" + #: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8 msgid "Not Found" msgstr "Nerasta" @@ -476,6 +496,20 @@ msgstr "Nerasta" msgid "The page you requested doesn't seem to exist!" msgstr "Jūsų ieškomas puslapis neegzistuoja." +#: bookwyrm/templates/413.html:4 bookwyrm/templates/413.html:8 +msgid "File too large" +msgstr "" + +#: bookwyrm/templates/413.html:9 +msgid "The file you are uploading is too large." +msgstr "" + +#: bookwyrm/templates/413.html:11 +msgid "\n" +" You you can try using a smaller file, or ask your BookWyrm server administrator to increase the DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "Oi!" @@ -536,12 +570,12 @@ msgstr "Svetainės %(site_name)s moderatoriai ir administratoriai nuolat atnauji msgid "Moderator" msgstr "Moderatorius" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "Administravimas" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -914,7 +948,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1054,13 +1088,13 @@ msgstr "Vietos" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Sąrašai" @@ -1336,7 +1370,7 @@ msgid "Add Another Author" msgstr "Pridėti dar vieną autorių" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "Viršelis" @@ -1463,8 +1497,9 @@ msgstr "Domenas" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "Būsena" @@ -1473,7 +1508,7 @@ msgstr "Būsena" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "Veiksmai" @@ -1595,7 +1630,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Deja, šio kodo neradome." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "Patvirtinimo kodas:" @@ -1768,7 +1803,7 @@ msgstr "%(username)s citavo %(username)s" msgstr "Asmeninis susirašinėjimas su %(username)s" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "Asmeninės žinutės" @@ -1961,7 +1996,7 @@ msgstr "Atnaujinimai" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "Mano knygos" @@ -2009,19 +2044,19 @@ msgid "Add to your books" msgstr "Pridėti prie savo knygų" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "Norimos perskaityti" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "Šiuo metu skaitomos" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2030,7 +2065,7 @@ msgid "Read" msgstr "Perskaitytos" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "Nustota skaityti" @@ -2531,8 +2566,8 @@ msgid "Barcode reader" msgstr "Brūkšninio kodo skaitytuvas" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" -msgstr "Naudokite Srautą, Sąrašus ir Atraskite nuorodas bei skaitykite naujienas iš savo srauto, knygų sąrašų pagal temą bei kitą informaciją!" +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" +msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 msgid "Navigation Bar" @@ -2563,8 +2598,8 @@ msgid "Notifications" msgstr "Pranešimai" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." -msgstr "Savo paskyrą, knygas, tiesiogines žinutes ir nustatymus galite pasiekti, meniu spustelėdami savo vardą." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 msgid "Try selecting Profile from the drop down menu to continue the tour." @@ -2719,8 +2754,7 @@ msgstr "Galite sukurti arba prisijungti prie grupės. Grupės prižiūri savo kn #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "Grupės" @@ -2774,7 +2808,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "Šiame skirtuke rodoma viskas, ką perskaitėte, siekdami savo nusistatyto metinio tikslo. Taip pat galite jį čia nustatyti. To daryti nebūtina, jei manote, kad tai ne jums." #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "Skaitymo tikslas" @@ -2813,7 +2847,7 @@ msgstr "Šioje grotžymėje nėra aktyvumo!" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "Importuoti knygas" @@ -2990,8 +3024,8 @@ msgid "Row" msgstr "Eilutė" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "Pavadinimas" @@ -3004,8 +3038,8 @@ msgid "Openlibrary key" msgstr "„Openlibrary“ raktas" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "Autorius" @@ -3111,10 +3145,6 @@ msgstr "Jei matote netikėtų nesklandumų, susisiekite su administratoriumi arb msgid "Create an Account" msgstr "Kurti paskyrą" -#: bookwyrm/templates/landing/invite.html:21 -msgid "Permission Denied" -msgstr "Prieiga draudžiama" - #: bookwyrm/templates/landing/invite.html:22 msgid "Sorry! This invite code is no longer valid." msgstr "Deja, šis pakvietimo kodas nebegalioja." @@ -3242,10 +3272,6 @@ msgstr "Skenuoti brūkšninį kodą" msgid "Main navigation menu" msgstr "Pagrindinis navigacijos meniu" -#: bookwyrm/templates/layout.html:88 -msgid "Feed" -msgstr "Srautas" - #: bookwyrm/templates/layout.html:134 bookwyrm/templates/ostatus/error.html:33 msgid "password" msgstr "slaptažodis" @@ -3454,6 +3480,7 @@ msgid "Set" msgstr "Nustatyti" #: bookwyrm/templates/lists/list.html:167 +#: bookwyrm/templates/snippets/remove_follower_button.html:4 #: bookwyrm/templates/snippets/remove_from_group_button.html:20 msgid "Remove" msgstr "Pašalinti" @@ -3530,11 +3557,11 @@ msgstr "" msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." msgstr "" -#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +#: bookwyrm/templates/moved.html:42 msgid "Undo move" msgstr "" -#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:77 msgid "Log out" msgstr "Atsijungti" @@ -3746,6 +3773,15 @@ msgstr "Jūsų importas baigtas." msgid "%(related_user)s invited you to join the group \"%(group_name)s\"" msgstr "%(related_user)s pakvietė jus prisijungti prie grupės „%(group_name)s“" +#: bookwyrm/templates/notifications/items/invite_request.html:15 +#, python-format +msgid "New invite request awaiting response" +msgid_plural "%(display_count)s new invite requests awaiting response" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #: bookwyrm/templates/notifications/items/join.html:16 #, python-format msgid "has joined your group \"%(group_name)s\"" @@ -4182,7 +4218,7 @@ msgstr "Redaguoti paskyrą" #: bookwyrm/templates/preferences/edit_user.html:12 #: bookwyrm/templates/preferences/edit_user.html:25 -#: bookwyrm/templates/settings/users/user_info.html:7 +#: bookwyrm/templates/settings/users/user_info.html:8 #: bookwyrm/templates/user_menu.html:29 msgid "Profile" msgstr "Paskyra" @@ -5044,19 +5080,19 @@ msgstr "Serveris:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:119 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Status:" msgstr "Būsena:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:107 msgid "Software:" msgstr "Programinė įranga:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:116 +#: bookwyrm/templates/settings/users/user_info.html:110 msgid "Version:" msgstr "Versija:" @@ -5069,7 +5105,7 @@ msgid "Details" msgstr "Išsami informacija" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:84 +#: bookwyrm/templates/user/layout.html:79 msgid "Activity" msgstr "Veikla" @@ -5083,7 +5119,7 @@ msgid "View all" msgstr "Žiūrėti viską" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:66 +#: bookwyrm/templates/settings/users/user_info.html:60 msgid "Reports:" msgstr "Pranešimai:" @@ -5100,7 +5136,7 @@ msgid "Blocked by us:" msgstr "Blokuojame:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:123 +#: bookwyrm/templates/settings/users/user_info.html:117 msgid "Notes" msgstr "Užrašai" @@ -5257,7 +5293,7 @@ msgstr "Kvietimo prašymai" #: bookwyrm/templates/settings/invites/manage_invites.html:3 #: bookwyrm/templates/settings/invites/manage_invites.html:15 #: bookwyrm/templates/settings/layout.html:42 -#: bookwyrm/templates/user_menu.html:60 +#: bookwyrm/templates/user_menu.html:55 msgid "Invites" msgstr "Pakvietimai" @@ -5731,57 +5767,73 @@ msgid "Set instance default theme" msgstr "Nustatyti numatytąją serverio temą" #: bookwyrm/templates/settings/themes.html:19 +msgid "One of your themes appears to be broken. Selecting this theme will make the application unusable." +msgstr "" + +#: bookwyrm/templates/settings/themes.html:28 msgid "Successfully added theme" msgstr "Tema pridėta sėkmingai" -#: bookwyrm/templates/settings/themes.html:26 +#: bookwyrm/templates/settings/themes.html:35 msgid "How to add a theme" msgstr "Kaip pridėti temą" -#: bookwyrm/templates/settings/themes.html:29 +#: bookwyrm/templates/settings/themes.html:38 msgid "Copy the theme file into the bookwyrm/static/css/themes directory on your server from the command line." msgstr "Nukopijuokite fialus į serverio katalogą bookwyrm/static/css/themes iš komandinės eilutės." -#: bookwyrm/templates/settings/themes.html:32 +#: bookwyrm/templates/settings/themes.html:41 msgid "Run ./bw-dev compile_themes and ./bw-dev collectstatic." msgstr "Paleisti ./bw-dev compile_themes ir ./bw-dev collectstatic." -#: bookwyrm/templates/settings/themes.html:35 +#: bookwyrm/templates/settings/themes.html:44 msgid "Add the file name using the form below to make it available in the application interface." msgstr "Pridėkite failo pavadinimą, naudodamiesi žemiau esančia forma, kad jis atsirastų programėlėje." -#: bookwyrm/templates/settings/themes.html:42 -#: bookwyrm/templates/settings/themes.html:82 +#: bookwyrm/templates/settings/themes.html:51 +#: bookwyrm/templates/settings/themes.html:91 msgid "Add theme" msgstr "Pridėti temą" -#: bookwyrm/templates/settings/themes.html:48 +#: bookwyrm/templates/settings/themes.html:57 msgid "Unable to save theme" msgstr "Nepavyko išsaugoti temos" -#: bookwyrm/templates/settings/themes.html:63 -#: bookwyrm/templates/settings/themes.html:93 +#: bookwyrm/templates/settings/themes.html:72 +#: bookwyrm/templates/settings/themes.html:102 msgid "Theme name" msgstr "Temos pavadinimas" -#: bookwyrm/templates/settings/themes.html:73 +#: bookwyrm/templates/settings/themes.html:82 msgid "Theme filename" msgstr "Temos failo vardas" -#: bookwyrm/templates/settings/themes.html:88 +#: bookwyrm/templates/settings/themes.html:97 msgid "Available Themes" msgstr "Galimos temos" -#: bookwyrm/templates/settings/themes.html:96 +#: bookwyrm/templates/settings/themes.html:105 msgid "File" msgstr "Failas" -#: bookwyrm/templates/settings/themes.html:111 +#: bookwyrm/templates/settings/themes.html:123 msgid "Remove theme" msgstr "Pašalinti temą" +#: bookwyrm/templates/settings/themes.html:134 +msgid "Test theme" +msgstr "" + +#: bookwyrm/templates/settings/themes.html:143 +msgid "Broken theme" +msgstr "" + +#: bookwyrm/templates/settings/themes.html:152 +msgid "Loaded successfully" +msgstr "" + #: bookwyrm/templates/settings/users/delete_user_form.html:5 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:38 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:52 msgid "Permanently delete user" msgstr "Visam laikui ištrinti vartotoją" @@ -5820,106 +5872,108 @@ msgstr "Paskutinį kartą aktyvus" msgid "Remote instance" msgstr "Nutolęs serveris" -#: bookwyrm/templates/settings/users/user_admin.html:82 -#: bookwyrm/templates/settings/users/user_info.html:29 -msgid "Moved" -msgstr "" - -#: bookwyrm/templates/settings/users/user_admin.html:93 -msgid "Deleted" -msgstr "Ištrinta" - -#: bookwyrm/templates/settings/users/user_admin.html:99 -#: bookwyrm/templates/settings/users/user_info.html:38 -msgid "Inactive" -msgstr "Neaktyvus" - -#: bookwyrm/templates/settings/users/user_admin.html:108 -#: bookwyrm/templates/settings/users/user_info.html:133 +#: bookwyrm/templates/settings/users/user_admin.html:84 +#: bookwyrm/templates/settings/users/user_info.html:127 msgid "Not set" msgstr "Nenustatytas" -#: bookwyrm/templates/settings/users/user_info.html:16 +#: bookwyrm/templates/settings/users/user_info.html:20 +msgid "This account is the instance actor for signing HTTP requests." +msgstr "" + +#: bookwyrm/templates/settings/users/user_info.html:24 msgid "View user profile" msgstr "Peržiūrėti nario paskyrą" -#: bookwyrm/templates/settings/users/user_info.html:19 +#: bookwyrm/templates/settings/users/user_info.html:30 msgid "Go to user admin" msgstr "Eiti į administratoriaus naudotoją" -#: bookwyrm/templates/settings/users/user_info.html:46 +#: bookwyrm/templates/settings/users/user_info.html:40 msgid "Local" msgstr "Vietinis" -#: bookwyrm/templates/settings/users/user_info.html:48 +#: bookwyrm/templates/settings/users/user_info.html:42 msgid "Remote" msgstr "Nutolęs" -#: bookwyrm/templates/settings/users/user_info.html:57 +#: bookwyrm/templates/settings/users/user_info.html:51 msgid "User details" msgstr "Vartotojo duomenys" -#: bookwyrm/templates/settings/users/user_info.html:61 +#: bookwyrm/templates/settings/users/user_info.html:55 msgid "Email:" msgstr "El. paštas:" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:65 msgid "(View reports)" msgstr "(Peržiūrėti ataskaitas)" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "Blocked by count:" msgstr "Užblokavę:" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:74 msgid "Date added:" msgstr "Pridėjimo data:" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Last active date:" msgstr "Paskutinį kartą aktyvus:" -#: bookwyrm/templates/settings/users/user_info.html:86 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Manually approved followers:" msgstr "Patvirtinti sekėjai:" -#: bookwyrm/templates/settings/users/user_info.html:89 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Discoverable:" msgstr "Aptinkama:" -#: bookwyrm/templates/settings/users/user_info.html:93 +#: bookwyrm/templates/settings/users/user_info.html:87 msgid "Deactivation reason:" msgstr "Išjungimo priežastis:" -#: bookwyrm/templates/settings/users/user_info.html:108 +#: bookwyrm/templates/settings/users/user_info.html:102 msgid "Instance details" msgstr "Serverio informacija" -#: bookwyrm/templates/settings/users/user_info.html:130 +#: bookwyrm/templates/settings/users/user_info.html:124 msgid "View instance" msgstr "Peržiūrėti serverį" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:5 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:6 msgid "Permanently deleted" msgstr "Visam laikui ištrintas" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:8 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:9 msgid "User Actions" msgstr "Nario veiksmai" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:21 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:15 +msgid "This is the instance admin actor" +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:18 +msgid "You must not delete or disable this account as it is critical to the functioning of your server. This actor signs outgoing GET requests to smooth interaction with secure ActivityPub servers." +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:19 +msgid "This account is not discoverable by ordinary users and does not have a profile page." +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:35 msgid "Activate user" msgstr "Įjungti vartotoją" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:27 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:41 msgid "Suspend user" msgstr "Laikinai išjungti vartotoją" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:32 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:46 msgid "Un-suspend user" msgstr "Atblokuoti narį" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:54 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:68 msgid "Access level:" msgstr "Priėjimo lygis:" @@ -5975,7 +6029,7 @@ msgstr "Atrodo, kad jūsų domenas nesukonfigūruotas. Į jį neturėtų įeiti msgid "You are running BookWyrm in production mode without https. USE_HTTPS should be enabled in production." msgstr "„BookWyrm“ leidžiate produkcinėje būsenoje be https. Produkcinėje aplinkoje turi būti įjungtasUSE_HTTPS." -#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:49 +#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:44 msgid "Settings" msgstr "Nustatymai" @@ -6032,7 +6086,7 @@ msgid "Need help?" msgstr "Reikia pagalbos?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:87 +#: bookwyrm/templates/shelf/shelf.html:74 msgid "Create shelf" msgstr "Sukurti lentyną" @@ -6040,26 +6094,18 @@ msgstr "Sukurti lentyną" msgid "Edit Shelf" msgstr "Redaguoti lentyną" -#: bookwyrm/templates/shelf/shelf.html:25 -msgid "You have have moved to" -msgstr "" - -#: bookwyrm/templates/shelf/shelf.html:28 -msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." -msgstr "" - -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:26 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Nario paskyra" -#: bookwyrm/templates/shelf/shelf.html:54 +#: bookwyrm/templates/shelf/shelf.html:41 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Visos knygos" -#: bookwyrm/templates/shelf/shelf.html:112 +#: bookwyrm/templates/shelf/shelf.html:99 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" @@ -6068,40 +6114,40 @@ msgstr[1] "%(formatted_count)s knygos" msgstr[2] "%(formatted_count)s knygų" msgstr[3] "%(formatted_count)s knygos" -#: bookwyrm/templates/shelf/shelf.html:119 +#: bookwyrm/templates/shelf/shelf.html:106 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(rodoma %(start)s–%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:131 +#: bookwyrm/templates/shelf/shelf.html:118 msgid "Edit shelf" msgstr "Redaguoti lentyną" -#: bookwyrm/templates/shelf/shelf.html:139 +#: bookwyrm/templates/shelf/shelf.html:126 msgid "Delete shelf" msgstr "Ištrinti lentyną" -#: bookwyrm/templates/shelf/shelf.html:167 -#: bookwyrm/templates/shelf/shelf.html:193 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:180 msgid "Shelved" msgstr "Sudėta į lentynas" -#: bookwyrm/templates/shelf/shelf.html:168 -#: bookwyrm/templates/shelf/shelf.html:196 +#: bookwyrm/templates/shelf/shelf.html:155 +#: bookwyrm/templates/shelf/shelf.html:183 msgid "Started" msgstr "Pradėta" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Finished" msgstr "Baigta" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Until" msgstr "Iki" -#: bookwyrm/templates/shelf/shelf.html:225 +#: bookwyrm/templates/shelf/shelf.html:212 msgid "This shelf is empty." msgstr "Ši lentyna tuščia." @@ -6423,6 +6469,11 @@ msgstr "%(username)s perskaitė %(read_count)s iš %(goal_c msgid "Follow at new account" msgstr "" +#: bookwyrm/templates/snippets/moved_user_notice.html:7 +#, python-format +msgid "%(user)s has moved to %(moved_to_name)s" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6725,6 +6776,18 @@ msgstr "Rodyti daugiau" msgid "Show less" msgstr "Rodyti mažiau" +#: bookwyrm/templates/snippets/user_active_tag.html:5 +msgid "Moved" +msgstr "" + +#: bookwyrm/templates/snippets/user_active_tag.html:12 +msgid "Deleted" +msgstr "Ištrinta" + +#: bookwyrm/templates/snippets/user_active_tag.html:15 +msgid "Inactive" +msgstr "Neaktyvus" + #: bookwyrm/templates/two_factor_auth/two_factor_login.html:29 msgid "2FA check" msgstr "2FA patikra" @@ -6783,15 +6846,11 @@ msgstr "Jūsų grupės" msgid "Groups: %(username)s" msgstr "Grupės: %(username)s" -#: bookwyrm/templates/user/layout.html:50 -msgid "has moved to" -msgstr "" - -#: bookwyrm/templates/user/layout.html:64 +#: bookwyrm/templates/user/layout.html:59 msgid "Follow Requests" msgstr "Sekti prašymus" -#: bookwyrm/templates/user/layout.html:88 +#: bookwyrm/templates/user/layout.html:83 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6812,7 +6871,7 @@ msgstr "Sukurti sąrašą" msgid "Joined %(date)s" msgstr "Prisijungė %(date)s" -#: bookwyrm/templates/user/relationships/followers.html:31 +#: bookwyrm/templates/user/relationships/followers.html:36 #, python-format msgid "%(username)s has no followers" msgstr "%(username)s neturi sekėjų" @@ -6932,7 +6991,7 @@ msgstr[1] "%(num)d knygos %(user)s" msgstr[2] "%(num)d knygos %(user)s" msgstr[3] "%(num)d knygos %(user)s" -#: bookwyrm/templatetags/utilities.py:48 +#: bookwyrm/templatetags/utilities.py:49 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s" diff --git a/locale/nl_NL/LC_MESSAGES/django.mo b/locale/nl_NL/LC_MESSAGES/django.mo index dd0b3c670c611985f9123b9797a7153e87f06e20..2c66d828b451b562d2bec7d4c340e9fb642c38dd 100644 GIT binary patch delta 30917 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 IeuYy0AJj4w=Kufz diff --git a/locale/nl_NL/LC_MESSAGES/django.po b/locale/nl_NL/LC_MESSAGES/django.po index f37532b2d..06ff309e1 100644 --- a/locale/nl_NL/LC_MESSAGES/django.po +++ b/locale/nl_NL/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-02 21:32+0000\n" -"PO-Revision-Date: 2023-12-13 00:06\n" +"POT-Creation-Date: 2023-12-30 23:52+0000\n" +"PO-Revision-Date: 2024-01-02 03:12\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Dutch\n" "Language: nl\n" @@ -102,8 +102,8 @@ msgstr "Lijst volgorde" msgid "Book Title" msgstr "Boektitel" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 -#: bookwyrm/templates/shelf/shelf.html:203 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:158 +#: bookwyrm/templates/shelf/shelf.html:190 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Beoordeling" @@ -141,7 +141,7 @@ msgstr "Waarschuwing" msgid "Danger" msgstr "Gevaar" -#: bookwyrm/models/antispam.py:112 bookwyrm/models/antispam.py:146 +#: bookwyrm/models/antispam.py:113 bookwyrm/models/antispam.py:147 msgid "Automatically generated report" msgstr "Automatisch gegenereerd rapport" @@ -205,26 +205,26 @@ msgstr "Gefedereerd" msgid "Blocked" msgstr "Geblokkeerd" -#: bookwyrm/models/fields.py:30 +#: bookwyrm/models/fields.py:35 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s is geen geldige remote_id" -#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 +#: bookwyrm/models/fields.py:44 bookwyrm/models/fields.py:53 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s is geen geldige gebruikersnaam" -#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 +#: bookwyrm/models/fields.py:198 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "gebruikersnaam" -#: bookwyrm/models/fields.py:198 +#: bookwyrm/models/fields.py:203 msgid "A user with that username already exists." msgstr "Er bestaat al een gebruiker met deze gebruikersnaam." -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:222 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "Er bestaat al een gebruiker met deze gebruikersnaam." msgid "Public" msgstr "Openbaar" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:223 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Openbaar" msgid "Unlisted" msgstr "Niet vermeld" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:224 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Niet vermeld" msgid "Followers" msgstr "Volgers" -#: bookwyrm/models/fields.py:220 +#: bookwyrm/models/fields.py:225 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -260,8 +260,7 @@ msgstr "Privé" #: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:87 -#: bookwyrm/templates/settings/users/user_info.html:33 +#: bookwyrm/templates/snippets/user_active_tag.html:8 msgid "Active" msgstr "Actief" @@ -352,122 +351,143 @@ msgstr "Domein goedgekeurd" msgid "Deleted item" msgstr "Item verwijderd" -#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:307 +#: bookwyrm/models/user.py:33 bookwyrm/templates/book/book.html:307 msgid "Reviews" msgstr "Recensies" -#: bookwyrm/models/user.py:33 +#: bookwyrm/models/user.py:34 msgid "Comments" msgstr "Opmerkingen" -#: bookwyrm/models/user.py:34 +#: bookwyrm/models/user.py:35 msgid "Quotations" msgstr "Quotes" -#: bookwyrm/models/user.py:35 +#: bookwyrm/models/user.py:36 msgid "Everything else" msgstr "Overig" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home Timeline" msgstr "Tijdlijnen" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home" msgstr "Start" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 msgid "Books Timeline" msgstr "Boeken tijdlijn" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:112 +#: bookwyrm/templates/user/layout.html:107 msgid "Books" msgstr "Boeken" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:313 msgid "English" msgstr "Engels (English)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:314 msgid "Català (Catalan)" msgstr "Català (Catalaans)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:315 msgid "Deutsch (German)" msgstr "Duits (Deutsch)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:316 msgid "Esperanto (Esperanto)" msgstr "Esperanto (Esperanto)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:317 msgid "Español (Spanish)" msgstr "Spaans (Español)" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:318 msgid "Euskara (Basque)" msgstr "Euskara (Baskisch)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:319 msgid "Galego (Galician)" msgstr "Galego (Galicisch)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:320 msgid "Italiano (Italian)" msgstr "Italiano (Italiaans)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:321 msgid "Suomi (Finnish)" msgstr "Suomi (Fins)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:322 msgid "Français (French)" msgstr "Frans (Français)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:323 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių (Litouws)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:324 msgid "Nederlands (Dutch)" msgstr "Nederlands" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:325 msgid "Norsk (Norwegian)" msgstr "Norsk (Noors)" -#: bookwyrm/settings.py:316 +#: bookwyrm/settings.py:326 msgid "Polski (Polish)" msgstr "Polski (Pools)" -#: bookwyrm/settings.py:317 +#: bookwyrm/settings.py:327 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil (Braziliaans-Portugees)" -#: bookwyrm/settings.py:318 +#: bookwyrm/settings.py:328 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (Europeaans Portugees)" -#: bookwyrm/settings.py:319 +#: bookwyrm/settings.py:329 msgid "Română (Romanian)" msgstr "Română (Roemeens)" -#: bookwyrm/settings.py:320 +#: bookwyrm/settings.py:330 msgid "Svenska (Swedish)" msgstr "Svenska (Zweeds)" -#: bookwyrm/settings.py:321 +#: bookwyrm/settings.py:331 +msgid "Українська (Ukrainian)" +msgstr "" + +#: bookwyrm/settings.py:332 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文 (Vereenvoudigd Chinees)" -#: bookwyrm/settings.py:322 +#: bookwyrm/settings.py:333 msgid "繁體中文 (Traditional Chinese)" msgstr "简体中文 (Traditioneel Chinees)" +#: bookwyrm/templates/403.html:5 +msgid "Oh no!" +msgstr "" + +#: bookwyrm/templates/403.html:9 bookwyrm/templates/landing/invite.html:21 +msgid "Permission Denied" +msgstr "Toestemming geweigerd" + +#: bookwyrm/templates/403.html:11 +#, python-format +msgid "You do not have permission to view this page or perform this action. Your user permission level is %(level)s." +msgstr "" + +#: bookwyrm/templates/403.html:15 +msgid "If you think you should have access, please speak to your BookWyrm server administrator." +msgstr "" + #: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8 msgid "Not Found" msgstr "Niet gevonden" @@ -476,6 +496,20 @@ msgstr "Niet gevonden" msgid "The page you requested doesn't seem to exist!" msgstr "De pagina die u probeert te bezoeken lijkt niet te bestaan!" +#: bookwyrm/templates/413.html:4 bookwyrm/templates/413.html:8 +msgid "File too large" +msgstr "" + +#: bookwyrm/templates/413.html:9 +msgid "The file you are uploading is too large." +msgstr "" + +#: bookwyrm/templates/413.html:11 +msgid "\n" +" You you can try using a smaller file, or ask your BookWyrm server administrator to increase the DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "Oeps!" @@ -536,12 +570,12 @@ msgstr "De moderators en beheerders van %(site_name)s houden de site online, bew msgid "Moderator" msgstr "Moderator" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "Beheerder" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -906,7 +940,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1042,13 +1076,13 @@ msgstr "Plaatsen" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Lijsten" @@ -1324,7 +1358,7 @@ msgid "Add Another Author" msgstr "Nog een auteur toevoegen" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "Omslag" @@ -1451,8 +1485,9 @@ msgstr "Domein" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "Status" @@ -1461,7 +1496,7 @@ msgstr "Status" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "Handelingen" @@ -1583,7 +1618,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Sorry! We konden die code niet vinden." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "Bevestigingscode:" @@ -1752,7 +1787,7 @@ msgstr "%(username)s heeft %(username)s" msgstr "Privéberichten met %(username)s" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "Privéberichten" @@ -1945,7 +1980,7 @@ msgstr "Updates" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "Jouw boeken" @@ -1993,19 +2028,19 @@ msgid "Add to your books" msgstr "Voeg toe aan je boeken" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "Te lezen" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "Aan het lezen" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2014,7 +2049,7 @@ msgid "Read" msgstr "Gelezen" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "Gestopt met lezen" @@ -2511,8 +2546,8 @@ msgid "Barcode reader" msgstr "Streepjescodelezer" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" -msgstr "Gebruik de Feed, Lijsten en Ontdek links om het laatste nieuws van je feed, lijsten van boeken per onderwerp, en de laatste gebeurtenissen op deze BookWyrm server te ontdekken!" +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" +msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 msgid "Navigation Bar" @@ -2543,8 +2578,8 @@ msgid "Notifications" msgstr "Meldingen" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." -msgstr "Je profiel, boeken, privéberichten en instellingen kunnen worden geopend door op je naam te klikken in het menu hier." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 msgid "Try selecting Profile from the drop down menu to continue the tour." @@ -2699,8 +2734,7 @@ msgstr "Je kunt een groep aanmaken of lid worden van een groep met andere gebrui #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "Groepen" @@ -2754,7 +2788,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "Dit tabblad toont alles wat je hebt gelezen voor je jaarlijkse leesdoel, of stelt je in staat om er een in te stellen. Je hoeft geen leesdoel in te stellen als dat niet je ding is!" #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "Leesdoel" @@ -2793,7 +2827,7 @@ msgstr "Er zijn nog geen activiteiten voor deze hashtag!" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "Importeer boeken" @@ -2964,8 +2998,8 @@ msgid "Row" msgstr "Rij" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "Titel" @@ -2978,8 +3012,8 @@ msgid "Openlibrary key" msgstr "Openlibrary sleutel" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "Auteur" @@ -3085,10 +3119,6 @@ msgstr "Neem contact op met je beheerder of USE_HTTPS should be enabled in production." msgstr "Je draait BookWyrm in productie modus zonder https. USE_HTTPS zou moeten zijn ingeschakeld bij gebruik in productie." -#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:49 +#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:44 msgid "Settings" msgstr "Instellingen" @@ -5988,7 +6040,7 @@ msgid "Need help?" msgstr "Hulp nodig?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:87 +#: bookwyrm/templates/shelf/shelf.html:74 msgid "Create shelf" msgstr "Nieuwe boekenplank maken" @@ -5996,66 +6048,58 @@ msgstr "Nieuwe boekenplank maken" msgid "Edit Shelf" msgstr "Bewerk boekenplank" -#: bookwyrm/templates/shelf/shelf.html:25 -msgid "You have have moved to" -msgstr "Je bent verhuisd naar" - -#: bookwyrm/templates/shelf/shelf.html:28 -msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." -msgstr "Je kan deze verhuizing ongedaan maken om de volledige functionaliteit te herstellen, maar sommige volgers volgen dit account mogelijk al niet meer." - -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:26 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Gebruikersprofiel" -#: bookwyrm/templates/shelf/shelf.html:54 +#: bookwyrm/templates/shelf/shelf.html:41 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Alle boeken" -#: bookwyrm/templates/shelf/shelf.html:112 +#: bookwyrm/templates/shelf/shelf.html:99 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s boek" msgstr[1] "%(formatted_count)s boeken" -#: bookwyrm/templates/shelf/shelf.html:119 +#: bookwyrm/templates/shelf/shelf.html:106 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(%(start)s-%(end)s getoond)" -#: bookwyrm/templates/shelf/shelf.html:131 +#: bookwyrm/templates/shelf/shelf.html:118 msgid "Edit shelf" msgstr "Bewerk boekenplank" -#: bookwyrm/templates/shelf/shelf.html:139 +#: bookwyrm/templates/shelf/shelf.html:126 msgid "Delete shelf" msgstr "Verwijder boekenplank" -#: bookwyrm/templates/shelf/shelf.html:167 -#: bookwyrm/templates/shelf/shelf.html:193 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:180 msgid "Shelved" msgstr "Op boekenplank gezet" -#: bookwyrm/templates/shelf/shelf.html:168 -#: bookwyrm/templates/shelf/shelf.html:196 +#: bookwyrm/templates/shelf/shelf.html:155 +#: bookwyrm/templates/shelf/shelf.html:183 msgid "Started" msgstr "Begonnen" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Finished" msgstr "Uitgelezen" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Until" msgstr "Tot" -#: bookwyrm/templates/shelf/shelf.html:225 +#: bookwyrm/templates/shelf/shelf.html:212 msgid "This shelf is empty." msgstr "Deze boekenplank is leeg." @@ -6365,6 +6409,11 @@ msgstr "%(username)s heeft %(read_count)s van %(goal_count) msgid "Follow at new account" msgstr "Volg op nieuwe account" +#: bookwyrm/templates/snippets/moved_user_notice.html:7 +#, python-format +msgid "%(user)s has moved to %(moved_to_name)s" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6667,6 +6716,18 @@ msgstr "Meer weergeven" msgid "Show less" msgstr "Minder weergeven" +#: bookwyrm/templates/snippets/user_active_tag.html:5 +msgid "Moved" +msgstr "Verhuisd" + +#: bookwyrm/templates/snippets/user_active_tag.html:12 +msgid "Deleted" +msgstr "Verwijderd" + +#: bookwyrm/templates/snippets/user_active_tag.html:15 +msgid "Inactive" +msgstr "Inactief" + #: bookwyrm/templates/two_factor_auth/two_factor_login.html:29 msgid "2FA check" msgstr "2FA controle" @@ -6725,15 +6786,11 @@ msgstr "Jouw groepen" msgid "Groups: %(username)s" msgstr "Groepen: %(username)s" -#: bookwyrm/templates/user/layout.html:50 -msgid "has moved to" -msgstr "is verhuisd naar" - -#: bookwyrm/templates/user/layout.html:64 +#: bookwyrm/templates/user/layout.html:59 msgid "Follow Requests" msgstr "Volgverzoeken" -#: bookwyrm/templates/user/layout.html:88 +#: bookwyrm/templates/user/layout.html:83 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6754,7 +6811,7 @@ msgstr "Lijst aanmaken" msgid "Joined %(date)s" msgstr "Lid geworden %(date)s" -#: bookwyrm/templates/user/relationships/followers.html:31 +#: bookwyrm/templates/user/relationships/followers.html:36 #, python-format msgid "%(username)s has no followers" msgstr "%(username)s heeft geen volgers" @@ -6868,7 +6925,7 @@ msgid_plural "%(num)d books - by %(user)s" msgstr[0] "%(num)d boek - van %(user)s" msgstr[1] "%(num)d boeken - van %(user)s" -#: bookwyrm/templatetags/utilities.py:48 +#: bookwyrm/templatetags/utilities.py:49 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s" diff --git a/locale/no_NO/LC_MESSAGES/django.mo b/locale/no_NO/LC_MESSAGES/django.mo index ed03ba8c043a6f944b437ff285212d5c51d40754..9fad84bd2222cd9495f1343c1ba14f7787d1aec3 100644 GIT binary patch delta 25298 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 delta 26027 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%0D(|Suh;<% zwKeA{V$tODQ2ycSNInU76Y9Pv-q)4|kgr7j#`xjdL&CF}%EL%R zb3Y=j>pl-v;?8aJm5IIK-a`YC+#g>#Y@I^XKSEhs@+(M3+j^hUVLk2+#Mf~z<32-q zM#>j!|8+Ga&=QjqtVe}-@`;M^U|u`oUgS4XHibHIn3Ovw&*a0&wzFB}6Uh%oT}6m5 zC7+3OZ=N5=y^Z_Bl~en#t0|SfQ|A;8Bz=zb7j%5-qsprHJ9ismew6)z*-={+U|HA#@+D)C0uhAdn?@_NQg?+i_kdDJHwB1zuKhHLDfJWPr{)YQI zDm>^Jt201^a9fNNl!8HEc}l!`J*&c!i)bO|x zd%IoL5)$L%Vk2tQBV4Vt&G`QpZW5W0nDAfR6&l;?zoI&k31M;l-SPh`jgE|sN^m8{ zxq8_mZx7L-iSC3%SFC$Lf-5{eF2*$|u3x+>+}+&W%ik5P_FZw|uAXsmJlk^+kN1rX z^Y`|o@!6+)hxYC3j*X0spmHqDMkcsIcw)ey_!w7$JDy<_*gD~d_)MO@@p0ji(Qbd! zpg%*2cZVgqV%!M{p%Lx`({O@2G11#rSZJ)Pr`r`87Dlfr#uXkH z?>e~B70%tu&5FdbSAvhL`+L}EQ=Crmfjuj(iXaU9^4rPEQ|gb z6U+M1Spu7*MiLWUeZ39G(v+6HJlmAm7#Yn;Q6P%tk3G0D!PTF&r-!KM$fzi{x3k#L{;}>vMoQ9d`h(oD bfli%BG6|819ISX{SkVOcj*T%s6H@;l>qUmk diff --git a/locale/no_NO/LC_MESSAGES/django.po b/locale/no_NO/LC_MESSAGES/django.po index 7fb235df5..3c3cc66c5 100644 --- a/locale/no_NO/LC_MESSAGES/django.po +++ b/locale/no_NO/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-02 21:32+0000\n" -"PO-Revision-Date: 2023-11-04 20:12\n" +"POT-Creation-Date: 2023-12-30 23:52+0000\n" +"PO-Revision-Date: 2024-01-02 03:12\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Norwegian\n" "Language: no\n" @@ -102,8 +102,8 @@ msgstr "Liste rekkefølge" msgid "Book Title" msgstr "Boktittel" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 -#: bookwyrm/templates/shelf/shelf.html:203 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:158 +#: bookwyrm/templates/shelf/shelf.html:190 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Vurdering" @@ -141,7 +141,7 @@ msgstr "Advarsel" msgid "Danger" msgstr "Fare" -#: bookwyrm/models/antispam.py:112 bookwyrm/models/antispam.py:146 +#: bookwyrm/models/antispam.py:113 bookwyrm/models/antispam.py:147 msgid "Automatically generated report" msgstr "Automatisk generert rapport" @@ -205,26 +205,26 @@ msgstr "Føderert" msgid "Blocked" msgstr "Blokkert" -#: bookwyrm/models/fields.py:30 +#: bookwyrm/models/fields.py:35 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s er en ugyldig remote_id" -#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 +#: bookwyrm/models/fields.py:44 bookwyrm/models/fields.py:53 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s er et ugyldig brukernavn" -#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 +#: bookwyrm/models/fields.py:198 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "brukernavn" -#: bookwyrm/models/fields.py:198 +#: bookwyrm/models/fields.py:203 msgid "A user with that username already exists." msgstr "En bruker med det brukernavnet eksisterer allerede." -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:222 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "En bruker med det brukernavnet eksisterer allerede." msgid "Public" msgstr "Offentlig" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:223 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Offentlig" msgid "Unlisted" msgstr "Uoppført" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:224 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Uoppført" msgid "Followers" msgstr "Følgere" -#: bookwyrm/models/fields.py:220 +#: bookwyrm/models/fields.py:225 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -260,8 +260,7 @@ msgstr "Privat" #: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:87 -#: bookwyrm/templates/settings/users/user_info.html:33 +#: bookwyrm/templates/snippets/user_active_tag.html:8 msgid "Active" msgstr "Aktiv" @@ -352,122 +351,143 @@ msgstr "" msgid "Deleted item" msgstr "" -#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:307 +#: bookwyrm/models/user.py:33 bookwyrm/templates/book/book.html:307 msgid "Reviews" msgstr "Anmeldelser" -#: bookwyrm/models/user.py:33 +#: bookwyrm/models/user.py:34 msgid "Comments" msgstr "Kommentarer" -#: bookwyrm/models/user.py:34 +#: bookwyrm/models/user.py:35 msgid "Quotations" msgstr "Sitater" -#: bookwyrm/models/user.py:35 +#: bookwyrm/models/user.py:36 msgid "Everything else" msgstr "Andre ting" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home Timeline" msgstr "Lokal tidslinje" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home" msgstr "Hjem" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 msgid "Books Timeline" msgstr "Boktidslinja" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:112 +#: bookwyrm/templates/user/layout.html:107 msgid "Books" msgstr "Bøker" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:313 msgid "English" msgstr "English (Engelsk)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:314 msgid "Català (Catalan)" msgstr "Català (katalansk)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:315 msgid "Deutsch (German)" msgstr "Deutsch (Tysk)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:316 msgid "Esperanto (Esperanto)" msgstr "Esperanto (Esperanto)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:317 msgid "Español (Spanish)" msgstr "Español (Spansk)" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:318 msgid "Euskara (Basque)" msgstr "Euskara (Baskisk)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:319 msgid "Galego (Galician)" msgstr "Galego (Gallisk)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:320 msgid "Italiano (Italian)" msgstr "Italiano (Italiensk)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:321 msgid "Suomi (Finnish)" msgstr "Suomi (finsk)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:322 msgid "Français (French)" msgstr "Français (Fransk)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:323 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių (Litauisk)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:324 msgid "Nederlands (Dutch)" msgstr "" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:325 msgid "Norsk (Norwegian)" msgstr "Norsk (Norsk)" -#: bookwyrm/settings.py:316 +#: bookwyrm/settings.py:326 msgid "Polski (Polish)" msgstr "Polski (Polsk)" -#: bookwyrm/settings.py:317 +#: bookwyrm/settings.py:327 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português - Brasil (Brasiliansk portugisisk)" -#: bookwyrm/settings.py:318 +#: bookwyrm/settings.py:328 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (Europeisk Portugisisk)" -#: bookwyrm/settings.py:319 +#: bookwyrm/settings.py:329 msgid "Română (Romanian)" msgstr "Română (romansk)" -#: bookwyrm/settings.py:320 +#: bookwyrm/settings.py:330 msgid "Svenska (Swedish)" msgstr "Svenska (Svensk)" -#: bookwyrm/settings.py:321 +#: bookwyrm/settings.py:331 +msgid "Українська (Ukrainian)" +msgstr "" + +#: bookwyrm/settings.py:332 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文 (Forenklet kinesisk)" -#: bookwyrm/settings.py:322 +#: bookwyrm/settings.py:333 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (Tradisjonelt kinesisk)" +#: bookwyrm/templates/403.html:5 +msgid "Oh no!" +msgstr "" + +#: bookwyrm/templates/403.html:9 bookwyrm/templates/landing/invite.html:21 +msgid "Permission Denied" +msgstr "Tilgang nektet" + +#: bookwyrm/templates/403.html:11 +#, python-format +msgid "You do not have permission to view this page or perform this action. Your user permission level is %(level)s." +msgstr "" + +#: bookwyrm/templates/403.html:15 +msgid "If you think you should have access, please speak to your BookWyrm server administrator." +msgstr "" + #: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8 msgid "Not Found" msgstr "Fant ikke" @@ -476,6 +496,20 @@ msgstr "Fant ikke" msgid "The page you requested doesn't seem to exist!" msgstr "Den siden synes ikke å eksistere!" +#: bookwyrm/templates/413.html:4 bookwyrm/templates/413.html:8 +msgid "File too large" +msgstr "" + +#: bookwyrm/templates/413.html:9 +msgid "The file you are uploading is too large." +msgstr "" + +#: bookwyrm/templates/413.html:11 +msgid "\n" +" You you can try using a smaller file, or ask your BookWyrm server administrator to increase the DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "Oops!" @@ -536,12 +570,12 @@ msgstr "%(site_name)s sine moderatorer og administratorer holder nettsida oppe o msgid "Moderator" msgstr "Moderator" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "Admin" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -906,7 +940,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1042,13 +1076,13 @@ msgstr "Steder" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Lister" @@ -1324,7 +1358,7 @@ msgid "Add Another Author" msgstr "Legg til enda en forfatter" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "Omslag" @@ -1451,8 +1485,9 @@ msgstr "Domene" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "Status" @@ -1461,7 +1496,7 @@ msgstr "Status" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "Handlinger" @@ -1583,7 +1618,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Beklager, vi fant ikke den koden." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "Bekreftelseskode:" @@ -1752,7 +1787,7 @@ msgstr "%(username)s siterte %(username)s" msgstr "Direktemeldinger med %(username)s" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "Direktemeldinger" @@ -1945,7 +1980,7 @@ msgstr "Oppdateringer" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "Bøkene dine" @@ -1993,19 +2028,19 @@ msgid "Add to your books" msgstr "Legg til i bøkene dine" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "Å lese" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "Leser nå" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2014,7 +2049,7 @@ msgid "Read" msgstr "Lest" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "Stoppet lesing" @@ -2511,8 +2546,8 @@ msgid "Barcode reader" msgstr "Strekkodeleser" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" -msgstr "Bruk lenkene Strøm, Lister og Oppdag for å få de seneste nyhetene fra strømmen din, lister over bøker etter emne, og siste nytt på denne BookWyrm-serveren!" +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" +msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 msgid "Navigation Bar" @@ -2543,8 +2578,8 @@ msgid "Notifications" msgstr "Varsler" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." -msgstr "Din profil, bøker, direktemeldinger og innstillinger kan nås ved å klikke på navnet ditt i denne menyen." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 msgid "Try selecting Profile from the drop down menu to continue the tour." @@ -2699,8 +2734,7 @@ msgstr "Du kan opprette eller bli med i en gruppe med andre brukere. Grupper kan #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "Grupper" @@ -2754,7 +2788,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "" #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "Lesemål" @@ -2793,7 +2827,7 @@ msgstr "Ingen aktiviteter for denne emneknaggen ennå!" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "Importer bøker" @@ -2964,8 +2998,8 @@ msgid "Row" msgstr "Rad" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "Tittel" @@ -2978,8 +3012,8 @@ msgid "Openlibrary key" msgstr "Openlibrary nøkkel" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "Forfatter" @@ -3085,10 +3119,6 @@ msgstr "Kontakt systemansvarlig eller DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "Ups!" @@ -536,12 +570,12 @@ msgstr "Moderatorzy oraz administratorzy %(site_name)s odpowiadają za prawidło msgid "Moderator" msgstr "Moderator" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "Administrator" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -914,7 +948,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1054,13 +1088,13 @@ msgstr "Miejsca" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Listy" @@ -1336,7 +1370,7 @@ msgid "Add Another Author" msgstr "Dodaj kolejnego autora" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "Okładka" @@ -1463,8 +1497,9 @@ msgstr "Domena" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "Status" @@ -1473,7 +1508,7 @@ msgstr "Status" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "Czynności" @@ -1595,7 +1630,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Nie udało nam się znaleźć tego kodu." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "Kod potwierdzający:" @@ -1768,7 +1803,7 @@ msgstr "%(username)s cytuje %(username)s" msgstr "Wiadomości bezpośrednie z %(username)s" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "Wiadomości bezpośrednie" @@ -1961,7 +1996,7 @@ msgstr "Aktualizacje" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "Twoje książki" @@ -2009,19 +2044,19 @@ msgid "Add to your books" msgstr "Dodaj do swoich książek" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "Do przeczytania" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "Obecnie czytane" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2030,7 +2065,7 @@ msgid "Read" msgstr "Przeczytane" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "Zaprzestano czytania" @@ -2531,7 +2566,7 @@ msgid "Barcode reader" msgstr "Czytnik kodów kreskowych" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 @@ -2563,8 +2598,8 @@ msgid "Notifications" msgstr "Powiadomienia" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." -msgstr "Dostęp do swojego profilu, książek, wiadomości oraz ustawień możesz uzyskać po naciśnięciu na swoją nazwę w menu." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 msgid "Try selecting Profile from the drop down menu to continue the tour." @@ -2719,8 +2754,7 @@ msgstr "Możesz utworzyć lub dołączyć do grupy z pozostałymi użytkownikami #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "Grupy" @@ -2774,7 +2808,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "Ta karta zawiera wszystko, co zostało przez Ciebie przeczytane w dążeniu do rocznego celu oraz umożliwia jego ustawienie. Nie musisz tego robić, jeśli to nie w Twoim stylu!" #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "Cel czytania" @@ -2813,7 +2847,7 @@ msgstr "Brak aktywności dla tej etykiety!" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "Importuj książki" @@ -2990,8 +3024,8 @@ msgid "Row" msgstr "Wiersz" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "Tytuł" @@ -3004,8 +3038,8 @@ msgid "Openlibrary key" msgstr "Klucz Openlibrary" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "Autor" @@ -3111,10 +3145,6 @@ msgstr "" msgid "Create an Account" msgstr "Utwórz konto" -#: bookwyrm/templates/landing/invite.html:21 -msgid "Permission Denied" -msgstr "Odmowa dostępu" - #: bookwyrm/templates/landing/invite.html:22 msgid "Sorry! This invite code is no longer valid." msgstr "Niestety, ale ten kod zaproszenia jest już nieważny." @@ -3242,10 +3272,6 @@ msgstr "Skanuj kod kreskowy" msgid "Main navigation menu" msgstr "Główne menu nawigacji" -#: bookwyrm/templates/layout.html:88 -msgid "Feed" -msgstr "Kanał" - #: bookwyrm/templates/layout.html:134 bookwyrm/templates/ostatus/error.html:33 msgid "password" msgstr "hasło" @@ -3454,6 +3480,7 @@ msgid "Set" msgstr "" #: bookwyrm/templates/lists/list.html:167 +#: bookwyrm/templates/snippets/remove_follower_button.html:4 #: bookwyrm/templates/snippets/remove_from_group_button.html:20 msgid "Remove" msgstr "Usuń" @@ -3530,11 +3557,11 @@ msgstr "" msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." msgstr "" -#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +#: bookwyrm/templates/moved.html:42 msgid "Undo move" msgstr "" -#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:77 msgid "Log out" msgstr "Wyloguj się" @@ -3746,6 +3773,15 @@ msgstr "Twój import został zakończony." msgid "%(related_user)s invited you to join the group \"%(group_name)s\"" msgstr "%(related_user)s zaprasza Cię do grupy \"%(group_name)s\"" +#: bookwyrm/templates/notifications/items/invite_request.html:15 +#, python-format +msgid "New invite request awaiting response" +msgid_plural "%(display_count)s new invite requests awaiting response" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #: bookwyrm/templates/notifications/items/join.html:16 #, python-format msgid "has joined your group \"%(group_name)s\"" @@ -4182,7 +4218,7 @@ msgstr "Edytuj profil" #: bookwyrm/templates/preferences/edit_user.html:12 #: bookwyrm/templates/preferences/edit_user.html:25 -#: bookwyrm/templates/settings/users/user_info.html:7 +#: bookwyrm/templates/settings/users/user_info.html:8 #: bookwyrm/templates/user_menu.html:29 msgid "Profile" msgstr "Profil" @@ -5044,19 +5080,19 @@ msgstr "Instancja:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:119 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Status:" msgstr "Status:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:107 msgid "Software:" msgstr "Oprogramowanie:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:116 +#: bookwyrm/templates/settings/users/user_info.html:110 msgid "Version:" msgstr "Wersja:" @@ -5069,7 +5105,7 @@ msgid "Details" msgstr "Szczegóły" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:84 +#: bookwyrm/templates/user/layout.html:79 msgid "Activity" msgstr "Aktywność" @@ -5083,7 +5119,7 @@ msgid "View all" msgstr "Pokaż wszystko" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:66 +#: bookwyrm/templates/settings/users/user_info.html:60 msgid "Reports:" msgstr "" @@ -5100,7 +5136,7 @@ msgid "Blocked by us:" msgstr "Zablokowane przez nas:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:123 +#: bookwyrm/templates/settings/users/user_info.html:117 msgid "Notes" msgstr "Notatki" @@ -5257,7 +5293,7 @@ msgstr "" #: bookwyrm/templates/settings/invites/manage_invites.html:3 #: bookwyrm/templates/settings/invites/manage_invites.html:15 #: bookwyrm/templates/settings/layout.html:42 -#: bookwyrm/templates/user_menu.html:60 +#: bookwyrm/templates/user_menu.html:55 msgid "Invites" msgstr "Zaproszenia" @@ -5731,57 +5767,73 @@ msgid "Set instance default theme" msgstr "Ustaw domyślny motyw instancji" #: bookwyrm/templates/settings/themes.html:19 +msgid "One of your themes appears to be broken. Selecting this theme will make the application unusable." +msgstr "" + +#: bookwyrm/templates/settings/themes.html:28 msgid "Successfully added theme" msgstr "Motyw został dodany" -#: bookwyrm/templates/settings/themes.html:26 +#: bookwyrm/templates/settings/themes.html:35 msgid "How to add a theme" msgstr "Jak dodać motyw" -#: bookwyrm/templates/settings/themes.html:29 +#: bookwyrm/templates/settings/themes.html:38 msgid "Copy the theme file into the bookwyrm/static/css/themes directory on your server from the command line." msgstr "Skopiuj przez wiersz polecenia plik motywu do katalogu bookwyrm/static/css/themes na swoim serwerze." -#: bookwyrm/templates/settings/themes.html:32 +#: bookwyrm/templates/settings/themes.html:41 msgid "Run ./bw-dev compile_themes and ./bw-dev collectstatic." msgstr "" -#: bookwyrm/templates/settings/themes.html:35 +#: bookwyrm/templates/settings/themes.html:44 msgid "Add the file name using the form below to make it available in the application interface." msgstr "Dodaj nazwę plik używając formularza poniżej, aby udostępnić plik w interfejsie aplikacji." -#: bookwyrm/templates/settings/themes.html:42 -#: bookwyrm/templates/settings/themes.html:82 +#: bookwyrm/templates/settings/themes.html:51 +#: bookwyrm/templates/settings/themes.html:91 msgid "Add theme" msgstr "Dodaj motyw" -#: bookwyrm/templates/settings/themes.html:48 +#: bookwyrm/templates/settings/themes.html:57 msgid "Unable to save theme" msgstr "Nie można zapisać motywu" -#: bookwyrm/templates/settings/themes.html:63 -#: bookwyrm/templates/settings/themes.html:93 +#: bookwyrm/templates/settings/themes.html:72 +#: bookwyrm/templates/settings/themes.html:102 msgid "Theme name" msgstr "Nazwa motywu" -#: bookwyrm/templates/settings/themes.html:73 +#: bookwyrm/templates/settings/themes.html:82 msgid "Theme filename" msgstr "Nazwa pliku motywu" -#: bookwyrm/templates/settings/themes.html:88 +#: bookwyrm/templates/settings/themes.html:97 msgid "Available Themes" msgstr "Dostępne motywy" -#: bookwyrm/templates/settings/themes.html:96 +#: bookwyrm/templates/settings/themes.html:105 msgid "File" msgstr "Plik" -#: bookwyrm/templates/settings/themes.html:111 +#: bookwyrm/templates/settings/themes.html:123 msgid "Remove theme" msgstr "Usuń motyw" +#: bookwyrm/templates/settings/themes.html:134 +msgid "Test theme" +msgstr "" + +#: bookwyrm/templates/settings/themes.html:143 +msgid "Broken theme" +msgstr "" + +#: bookwyrm/templates/settings/themes.html:152 +msgid "Loaded successfully" +msgstr "" + #: bookwyrm/templates/settings/users/delete_user_form.html:5 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:38 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:52 msgid "Permanently delete user" msgstr "Trwale usuń użytkownika" @@ -5820,106 +5872,108 @@ msgstr "Ostatnia aktywność" msgid "Remote instance" msgstr "Zdalna instancja" -#: bookwyrm/templates/settings/users/user_admin.html:82 -#: bookwyrm/templates/settings/users/user_info.html:29 -msgid "Moved" -msgstr "" - -#: bookwyrm/templates/settings/users/user_admin.html:93 -msgid "Deleted" -msgstr "Usunięte" - -#: bookwyrm/templates/settings/users/user_admin.html:99 -#: bookwyrm/templates/settings/users/user_info.html:38 -msgid "Inactive" -msgstr "Nieaktywne" - -#: bookwyrm/templates/settings/users/user_admin.html:108 -#: bookwyrm/templates/settings/users/user_info.html:133 +#: bookwyrm/templates/settings/users/user_admin.html:84 +#: bookwyrm/templates/settings/users/user_info.html:127 msgid "Not set" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:16 +#: bookwyrm/templates/settings/users/user_info.html:20 +msgid "This account is the instance actor for signing HTTP requests." +msgstr "" + +#: bookwyrm/templates/settings/users/user_info.html:24 msgid "View user profile" msgstr "Wyświetl profil użytkownika" -#: bookwyrm/templates/settings/users/user_info.html:19 +#: bookwyrm/templates/settings/users/user_info.html:30 msgid "Go to user admin" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:46 +#: bookwyrm/templates/settings/users/user_info.html:40 msgid "Local" msgstr "Lokalne" -#: bookwyrm/templates/settings/users/user_info.html:48 +#: bookwyrm/templates/settings/users/user_info.html:42 msgid "Remote" msgstr "Zdalne" -#: bookwyrm/templates/settings/users/user_info.html:57 +#: bookwyrm/templates/settings/users/user_info.html:51 msgid "User details" msgstr "Szczegóły użytkownika" -#: bookwyrm/templates/settings/users/user_info.html:61 +#: bookwyrm/templates/settings/users/user_info.html:55 msgid "Email:" msgstr "E-mail:" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:65 msgid "(View reports)" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "Blocked by count:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:74 msgid "Date added:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Last active date:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:86 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Manually approved followers:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:89 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Discoverable:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:93 +#: bookwyrm/templates/settings/users/user_info.html:87 msgid "Deactivation reason:" msgstr "Powód dezaktywacji:" -#: bookwyrm/templates/settings/users/user_info.html:108 +#: bookwyrm/templates/settings/users/user_info.html:102 msgid "Instance details" msgstr "Szczegóły instancji" -#: bookwyrm/templates/settings/users/user_info.html:130 +#: bookwyrm/templates/settings/users/user_info.html:124 msgid "View instance" msgstr "Zobacz instancję" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:5 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:6 msgid "Permanently deleted" msgstr "Usunięte na zawsze" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:8 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:9 msgid "User Actions" msgstr "" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:21 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:15 +msgid "This is the instance admin actor" +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:18 +msgid "You must not delete or disable this account as it is critical to the functioning of your server. This actor signs outgoing GET requests to smooth interaction with secure ActivityPub servers." +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:19 +msgid "This account is not discoverable by ordinary users and does not have a profile page." +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:35 msgid "Activate user" msgstr "" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:27 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:41 msgid "Suspend user" msgstr "Zawieś użytkownika" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:32 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:46 msgid "Un-suspend user" msgstr "Przywróć użytkownika" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:54 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:68 msgid "Access level:" msgstr "Poziom dostępu:" @@ -5975,7 +6029,7 @@ msgstr "Wygląda na to, że Twoja domena jest niepoprawnie skonfigurowana. Nie p msgid "You are running BookWyrm in production mode without https. USE_HTTPS should be enabled in production." msgstr "" -#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:49 +#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:44 msgid "Settings" msgstr "Ustawienia" @@ -6032,7 +6086,7 @@ msgid "Need help?" msgstr "Potrzebujesz pomocy?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:87 +#: bookwyrm/templates/shelf/shelf.html:74 msgid "Create shelf" msgstr "Utwórz półkę" @@ -6040,26 +6094,18 @@ msgstr "Utwórz półkę" msgid "Edit Shelf" msgstr "Edytuj półkę" -#: bookwyrm/templates/shelf/shelf.html:25 -msgid "You have have moved to" -msgstr "" - -#: bookwyrm/templates/shelf/shelf.html:28 -msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." -msgstr "" - -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:26 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Profil użytkownika" -#: bookwyrm/templates/shelf/shelf.html:54 +#: bookwyrm/templates/shelf/shelf.html:41 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Wszystkie książki" -#: bookwyrm/templates/shelf/shelf.html:112 +#: bookwyrm/templates/shelf/shelf.html:99 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" @@ -6068,40 +6114,40 @@ msgstr[1] "%(formatted_count)s książki" msgstr[2] "%(formatted_count)s książek" msgstr[3] "%(formatted_count)s książek" -#: bookwyrm/templates/shelf/shelf.html:119 +#: bookwyrm/templates/shelf/shelf.html:106 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(wyświetlanie %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:131 +#: bookwyrm/templates/shelf/shelf.html:118 msgid "Edit shelf" msgstr "Edytuj półkę" -#: bookwyrm/templates/shelf/shelf.html:139 +#: bookwyrm/templates/shelf/shelf.html:126 msgid "Delete shelf" msgstr "Usuń półkę" -#: bookwyrm/templates/shelf/shelf.html:167 -#: bookwyrm/templates/shelf/shelf.html:193 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:180 msgid "Shelved" msgstr "Na półce" -#: bookwyrm/templates/shelf/shelf.html:168 -#: bookwyrm/templates/shelf/shelf.html:196 +#: bookwyrm/templates/shelf/shelf.html:155 +#: bookwyrm/templates/shelf/shelf.html:183 msgid "Started" msgstr "Rozpoczęte" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Finished" msgstr "Ukończone" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Until" msgstr "Do" -#: bookwyrm/templates/shelf/shelf.html:225 +#: bookwyrm/templates/shelf/shelf.html:212 msgid "This shelf is empty." msgstr "Półka jest pusta." @@ -6423,6 +6469,11 @@ msgstr "%(username)s ma przeczytane %(read_count)s z %(goal msgid "Follow at new account" msgstr "" +#: bookwyrm/templates/snippets/moved_user_notice.html:7 +#, python-format +msgid "%(user)s has moved to %(moved_to_name)s" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6725,6 +6776,18 @@ msgstr "Pokaż więcej" msgid "Show less" msgstr "Pokaż mniej" +#: bookwyrm/templates/snippets/user_active_tag.html:5 +msgid "Moved" +msgstr "" + +#: bookwyrm/templates/snippets/user_active_tag.html:12 +msgid "Deleted" +msgstr "Usunięte" + +#: bookwyrm/templates/snippets/user_active_tag.html:15 +msgid "Inactive" +msgstr "Nieaktywne" + #: bookwyrm/templates/two_factor_auth/two_factor_login.html:29 msgid "2FA check" msgstr "Sprawdzanie 2FA" @@ -6783,15 +6846,11 @@ msgstr "Twoje grupy" msgid "Groups: %(username)s" msgstr "Grupy: %(username)s" -#: bookwyrm/templates/user/layout.html:50 -msgid "has moved to" -msgstr "" - -#: bookwyrm/templates/user/layout.html:64 +#: bookwyrm/templates/user/layout.html:59 msgid "Follow Requests" msgstr "Prośby o obserwowanie" -#: bookwyrm/templates/user/layout.html:88 +#: bookwyrm/templates/user/layout.html:83 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6812,7 +6871,7 @@ msgstr "Utwórz listę" msgid "Joined %(date)s" msgstr "Dołączono %(date)s" -#: bookwyrm/templates/user/relationships/followers.html:31 +#: bookwyrm/templates/user/relationships/followers.html:36 #, python-format msgid "%(username)s has no followers" msgstr "%(username)s nie ma obserwujących" @@ -6932,7 +6991,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: bookwyrm/templatetags/utilities.py:48 +#: bookwyrm/templatetags/utilities.py:49 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s" diff --git a/locale/pt_BR/LC_MESSAGES/django.mo b/locale/pt_BR/LC_MESSAGES/django.mo index f5cceed233a1e171e866363d4cb8ac7c106e90e2..565cb0e0d06b992397c7537a90d526cc88d2b992 100644 GIT binary patch delta 23601 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 RHc$MmS&8j;GkT7+`X5t>^;rM_ delta 23617 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 diff --git a/locale/pt_BR/LC_MESSAGES/django.po b/locale/pt_BR/LC_MESSAGES/django.po index cf9eee066..a8965b165 100644 --- a/locale/pt_BR/LC_MESSAGES/django.po +++ b/locale/pt_BR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-02 21:32+0000\n" -"PO-Revision-Date: 2023-11-02 22:29\n" +"POT-Creation-Date: 2023-12-30 23:52+0000\n" +"PO-Revision-Date: 2024-01-02 03:12\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt\n" @@ -102,8 +102,8 @@ msgstr "Ordem de inserção" msgid "Book Title" msgstr "Título do livro" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 -#: bookwyrm/templates/shelf/shelf.html:203 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:158 +#: bookwyrm/templates/shelf/shelf.html:190 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "Avaliação" @@ -141,7 +141,7 @@ msgstr "Atenção" msgid "Danger" msgstr "Perigo" -#: bookwyrm/models/antispam.py:112 bookwyrm/models/antispam.py:146 +#: bookwyrm/models/antispam.py:113 bookwyrm/models/antispam.py:147 msgid "Automatically generated report" msgstr "Relatório gerado automaticamente" @@ -205,26 +205,26 @@ msgstr "Federado" msgid "Blocked" msgstr "Bloqueado" -#: bookwyrm/models/fields.py:30 +#: bookwyrm/models/fields.py:35 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s não é um remote_id válido" -#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 +#: bookwyrm/models/fields.py:44 bookwyrm/models/fields.py:53 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s não é um nome de usuário válido" -#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 +#: bookwyrm/models/fields.py:198 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "nome de usuário" -#: bookwyrm/models/fields.py:198 +#: bookwyrm/models/fields.py:203 msgid "A user with that username already exists." msgstr "Já existe um usuário com este nome." -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:222 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "Já existe um usuário com este nome." msgid "Public" msgstr "Público" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:223 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "Público" msgid "Unlisted" msgstr "Não listado" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:224 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "Não listado" msgid "Followers" msgstr "Seguidores" -#: bookwyrm/models/fields.py:220 +#: bookwyrm/models/fields.py:225 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -260,8 +260,7 @@ msgstr "Particular" #: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:87 -#: bookwyrm/templates/settings/users/user_info.html:33 +#: bookwyrm/templates/snippets/user_active_tag.html:8 msgid "Active" msgstr "Ativo" @@ -352,122 +351,143 @@ msgstr "" msgid "Deleted item" msgstr "" -#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:307 +#: bookwyrm/models/user.py:33 bookwyrm/templates/book/book.html:307 msgid "Reviews" msgstr "Resenhas" -#: bookwyrm/models/user.py:33 +#: bookwyrm/models/user.py:34 msgid "Comments" msgstr "Comentários" -#: bookwyrm/models/user.py:34 +#: bookwyrm/models/user.py:35 msgid "Quotations" msgstr "Citações" -#: bookwyrm/models/user.py:35 +#: bookwyrm/models/user.py:36 msgid "Everything else" msgstr "Todo o resto" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home Timeline" msgstr "Linha do tempo" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home" msgstr "Página inicial" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 msgid "Books Timeline" msgstr "Linha do tempo dos livros" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:112 +#: bookwyrm/templates/user/layout.html:107 msgid "Books" msgstr "Livros" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:313 msgid "English" msgstr "English (Inglês)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:314 msgid "Català (Catalan)" msgstr "Català (Catalão)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:315 msgid "Deutsch (German)" msgstr "Deutsch (Alemão)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:316 msgid "Esperanto (Esperanto)" msgstr "Esperanto (Esperanto)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:317 msgid "Español (Spanish)" msgstr "Español (Espanhol)" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:318 msgid "Euskara (Basque)" msgstr "Euskara (Basco)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:319 msgid "Galego (Galician)" msgstr "Galego (Galego)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:320 msgid "Italiano (Italian)" msgstr "Italiano (Italiano)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:321 msgid "Suomi (Finnish)" msgstr "Suomi (Finlandês)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:322 msgid "Français (French)" msgstr "Français (Francês)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:323 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių (Lituano)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:324 msgid "Nederlands (Dutch)" msgstr "" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:325 msgid "Norsk (Norwegian)" msgstr "Norsk (Norueguês)" -#: bookwyrm/settings.py:316 +#: bookwyrm/settings.py:326 msgid "Polski (Polish)" msgstr "Polski (Polonês)" -#: bookwyrm/settings.py:317 +#: bookwyrm/settings.py:327 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil (Português do Brasil)" -#: bookwyrm/settings.py:318 +#: bookwyrm/settings.py:328 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (Português Europeu)" -#: bookwyrm/settings.py:319 +#: bookwyrm/settings.py:329 msgid "Română (Romanian)" msgstr "Română (Romeno)" -#: bookwyrm/settings.py:320 +#: bookwyrm/settings.py:330 msgid "Svenska (Swedish)" msgstr "Svenska (Sueco)" -#: bookwyrm/settings.py:321 +#: bookwyrm/settings.py:331 +msgid "Українська (Ukrainian)" +msgstr "" + +#: bookwyrm/settings.py:332 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文 (Chinês simplificado)" -#: bookwyrm/settings.py:322 +#: bookwyrm/settings.py:333 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文 (Chinês tradicional)" +#: bookwyrm/templates/403.html:5 +msgid "Oh no!" +msgstr "" + +#: bookwyrm/templates/403.html:9 bookwyrm/templates/landing/invite.html:21 +msgid "Permission Denied" +msgstr "Permissão negada" + +#: bookwyrm/templates/403.html:11 +#, python-format +msgid "You do not have permission to view this page or perform this action. Your user permission level is %(level)s." +msgstr "" + +#: bookwyrm/templates/403.html:15 +msgid "If you think you should have access, please speak to your BookWyrm server administrator." +msgstr "" + #: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8 msgid "Not Found" msgstr "Não encontrado" @@ -476,6 +496,20 @@ msgstr "Não encontrado" msgid "The page you requested doesn't seem to exist!" msgstr "A página que você procura não existe!" +#: bookwyrm/templates/413.html:4 bookwyrm/templates/413.html:8 +msgid "File too large" +msgstr "" + +#: bookwyrm/templates/413.html:9 +msgid "The file you are uploading is too large." +msgstr "" + +#: bookwyrm/templates/413.html:11 +msgid "\n" +" You you can try using a smaller file, or ask your BookWyrm server administrator to increase the DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "Opa!" @@ -536,12 +570,12 @@ msgstr "Moderadores e administradores de %(site_name)s's mantêm o site funciona msgid "Moderator" msgstr "Moderador/a" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "Admin" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -906,7 +940,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1042,13 +1076,13 @@ msgstr "Lugares" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Listas" @@ -1324,7 +1358,7 @@ msgid "Add Another Author" msgstr "Adicionar outro/a autor/a" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "Capa" @@ -1451,8 +1485,9 @@ msgstr "Domínio" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "Publicação" @@ -1461,7 +1496,7 @@ msgstr "Publicação" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "Ações" @@ -1583,7 +1618,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Desculpe! Não encontramos o código." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "Código de confirmação:" @@ -1752,7 +1787,7 @@ msgstr "%(username)s citou %(username)s" msgstr "Mensagens diretas com %(username)s" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "Mensagens diretas" @@ -1945,7 +1980,7 @@ msgstr "Atualizações" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "Seus livros" @@ -1993,19 +2028,19 @@ msgid "Add to your books" msgstr "Adicionar aos seus livros" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "Quero ler" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "Lendo atualmente" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2014,7 +2049,7 @@ msgid "Read" msgstr "Lido" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "Finalizar leitura" @@ -2511,7 +2546,7 @@ msgid "Barcode reader" msgstr "Leitor de código de barras" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 @@ -2543,7 +2578,7 @@ msgid "Notifications" msgstr "Notificações" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 @@ -2699,8 +2734,7 @@ msgstr "" #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "Grupos" @@ -2754,7 +2788,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "" #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "Meta de leitura" @@ -2793,7 +2827,7 @@ msgstr "" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "Importar livros" @@ -2964,8 +2998,8 @@ msgid "Row" msgstr "Linha" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "Título" @@ -2978,8 +3012,8 @@ msgid "Openlibrary key" msgstr "Chave Openlibrary" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "Autor/a" @@ -3085,10 +3119,6 @@ msgstr "Fale com a administração ou DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "Ups!" @@ -536,12 +570,12 @@ msgstr "Os moderadores e administradores do %(site_name)s mantêm o site atualiz msgid "Moderator" msgstr "Moderador" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "Admin" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -906,7 +940,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1042,13 +1076,13 @@ msgstr "Lugares" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Listas" @@ -1324,7 +1358,7 @@ msgid "Add Another Author" msgstr "Adicionar outro autor(a)" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "Capa" @@ -1451,8 +1485,9 @@ msgstr "Domínio" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "Estado" @@ -1461,7 +1496,7 @@ msgstr "Estado" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "Acções" @@ -1583,7 +1618,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Pedimos desculpa, não conseguimos encontrar esse código." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "Código de confirmação:" @@ -1752,7 +1787,7 @@ msgstr "%(username)s citou %(username)s" msgstr "Mensagens Diretas com %(username)s" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "Mensagens Diretas" @@ -1945,7 +1980,7 @@ msgstr "Atualizações" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "Os teus Livros" @@ -1993,19 +2028,19 @@ msgid "Add to your books" msgstr "Adicionar aos teus livros" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "Para Ler" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "Leituras atuais" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2014,7 +2049,7 @@ msgid "Read" msgstr "Lido" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "Leitura Parada" @@ -2511,8 +2546,8 @@ msgid "Barcode reader" msgstr "Leitor de códigos de barras" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" -msgstr "Usar o Feed, Listas e Descubra links para descobrir as últimas notícias do teu feed, listas de livros por tópico, e os últimos acontecimentos nesta instância de Bookwyrm!" +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" +msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 msgid "Navigation Bar" @@ -2543,8 +2578,8 @@ msgid "Notifications" msgstr "Notificações" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." -msgstr "O teu perfil, livros, mensagens diretas e configurações podem ser acedidos carregando no teu nome no menu aqui." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 msgid "Try selecting Profile from the drop down menu to continue the tour." @@ -2699,8 +2734,7 @@ msgstr "Podes criar ou entrar num grupo com outros utilizadores. Grupos podem pa #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "Grupos" @@ -2754,7 +2788,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "Este divisor mostra tudo o que leste e que conta para a tua meta de leitura anual, ou permite que definas uma meta. Não é preciso definir uma meta de leitura se não é a tua coisa!" #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "Meta de leitura" @@ -2793,7 +2827,7 @@ msgstr "Ainda não há atividades para esta hashtag!" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "Importar livros" @@ -2964,8 +2998,8 @@ msgid "Row" msgstr "Linha" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "Título" @@ -2978,8 +3012,8 @@ msgid "Openlibrary key" msgstr "Id da Openlibrary" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "Autor(a)" @@ -3085,10 +3119,6 @@ msgstr "Entra em contato com o administrador do domínio ou DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "Ups!" @@ -536,12 +570,12 @@ msgstr "Moderatorii și administratorii %(site_name)s mențin site-ul în picioa msgid "Moderator" msgstr "Moderator" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "Admin" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -910,7 +944,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1048,13 +1082,13 @@ msgstr "Locuri" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Liste" @@ -1330,7 +1364,7 @@ msgid "Add Another Author" msgstr "Adăugați un alt autor" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "Copertă" @@ -1457,8 +1491,9 @@ msgstr "Domeniu" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "Status" @@ -1467,7 +1502,7 @@ msgstr "Status" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "Acțiuni" @@ -1589,7 +1624,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Ne pare rău! Nu am putut găsi acel cod." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "Cod de confirmare:" @@ -1760,7 +1795,7 @@ msgstr "%(username)s a citat %(username)s" msgstr "Mesajele directe cu %(username)s" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "Mesaje directe" @@ -1953,7 +1988,7 @@ msgstr "Actualizări" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "Cărțile dvs." @@ -2001,19 +2036,19 @@ msgid "Add to your books" msgstr "Adăugați la cărțile dvs." #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "De citit" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "Lectură în curs" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2022,7 +2057,7 @@ msgid "Read" msgstr "Citite" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "Lectură oprită" @@ -2521,8 +2556,8 @@ msgid "Barcode reader" msgstr "Cititor de cod de bare" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" -msgstr "Folosiți legăturile Flux, Liste și Descoperiți pentru a descoperi ultimele știri de pe fluxul dvs., listele de cărți după subiect și ultimele întâmplări de pe acest server de Bookwyrm!" +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" +msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 msgid "Navigation Bar" @@ -2553,8 +2588,8 @@ msgid "Notifications" msgstr "Notificări" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." -msgstr "Profilul dvs., cărțile, mesajele directe și setările pot fi accesate făcând clic pe numele dvs. în meniul de aici." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 msgid "Try selecting Profile from the drop down menu to continue the tour." @@ -2709,8 +2744,7 @@ msgstr "Puteți crea sau vă alătura unui grup cu alți utilizatori. Grupurile #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "Grupuri" @@ -2764,7 +2798,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "Această fereastră arată tot ce ați citit pentru a vă atinge obiectivul dvs. anual de lectură sau vă permite să stabiliți unul. Nu trebuie să vă fixați un obiectiv de lectură dacă nu este genul vostru!" #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "Obiectiv de lectură" @@ -2803,7 +2837,7 @@ msgstr "" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "Importați cărți" @@ -2977,8 +3011,8 @@ msgid "Row" msgstr "Linie" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "Titlu" @@ -2991,8 +3025,8 @@ msgid "Openlibrary key" msgstr "Cheie OpenLibrary" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "Autor" @@ -3098,10 +3132,6 @@ msgstr "Contactați-vă adminul sau DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "Hoppsan!" @@ -536,12 +570,12 @@ msgstr "%(site_name)s's moderatorer och administratörer håller hemsidan uppe o msgid "Moderator" msgstr "Moderator" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "Administratör" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -906,7 +940,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1042,13 +1076,13 @@ msgstr "Platser" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Listor" @@ -1324,7 +1358,7 @@ msgid "Add Another Author" msgstr "Lägg till en annan författare" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "Omslag" @@ -1451,8 +1485,9 @@ msgstr "Domän" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "Status" @@ -1461,7 +1496,7 @@ msgstr "Status" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "Åtgärder" @@ -1583,7 +1618,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Tyvärr! Vi kunde inte hitta den där koden." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "Bekräftelsekod:" @@ -1752,7 +1787,7 @@ msgstr "%(username)s citerade %(username)s" msgstr "Direktmeddelanden med %(username)s" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "Direktmeddelanden" @@ -1945,7 +1980,7 @@ msgstr "Uppdateringar" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "Dina böcker" @@ -1993,19 +2028,19 @@ msgid "Add to your books" msgstr "Lägg till i dina böcker" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "Att läsa" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "Läser just nu" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2014,7 +2049,7 @@ msgid "Read" msgstr "Lästa" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "Slutade läsa" @@ -2511,8 +2546,8 @@ msgid "Barcode reader" msgstr "Streckkodsläsare" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" -msgstr "Använd länkarna Flöde, Listor och Upptäck för att upptäcka de senaste nyheterna från ditt flöde, listor över böcker efter ämne, och de senaste händelserna på denna BookWyrm-server!" +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" +msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 msgid "Navigation Bar" @@ -2543,8 +2578,8 @@ msgid "Notifications" msgstr "Aviseringar" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." -msgstr "Din profil, dina böcker, direktmeddelanden och inställningar kan nås genom att klicka på ditt namn i menyn här." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 msgid "Try selecting Profile from the drop down menu to continue the tour." @@ -2699,8 +2734,7 @@ msgstr "Du kan skapa eller gå med i en grupp med andra användare. Grupper kan #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "Grupper" @@ -2754,7 +2788,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "Denna flik visar allt du har läst gentemot ditt årliga läsmål eller låter dig ställa in ett. Du behöver inte sätta upp ett läsmål om det inte är din grej!" #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "Läs-mål" @@ -2793,7 +2827,7 @@ msgstr "Inga aktiviteter för den här hash-taggen än!" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "Importera böcker" @@ -2964,8 +2998,8 @@ msgid "Row" msgstr "Rad" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "Titel" @@ -2978,8 +3012,8 @@ msgid "Openlibrary key" msgstr "Openlibrary-nyckel" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "Författare" @@ -3085,10 +3119,6 @@ msgstr "Kontakta din administratör eller %(level)s." +msgstr "" + +#: bookwyrm/templates/403.html:15 +msgid "If you think you should have access, please speak to your BookWyrm server administrator." +msgstr "" + #: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8 msgid "Not Found" msgstr "Не Знайдено" @@ -476,6 +496,20 @@ msgstr "Не Знайдено" msgid "The page you requested doesn't seem to exist!" msgstr "Вказана сторінка не існує!" +#: bookwyrm/templates/413.html:4 bookwyrm/templates/413.html:8 +msgid "File too large" +msgstr "" + +#: bookwyrm/templates/413.html:9 +msgid "The file you are uploading is too large." +msgstr "" + +#: bookwyrm/templates/413.html:11 +msgid "\n" +" You you can try using a smaller file, or ask your BookWyrm server administrator to increase the DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "От халепа!" @@ -536,12 +570,12 @@ msgstr "Модератори та адміністратори %(site_name)s п msgid "Moderator" msgstr "Модератор" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "Адміністратор" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -914,7 +948,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1054,13 +1088,13 @@ msgstr "Місця" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "Списки" @@ -1336,7 +1370,7 @@ msgid "Add Another Author" msgstr "Додати іншого автора" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "Обкладинка" @@ -1463,8 +1497,9 @@ msgstr "Домен" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "Статус" @@ -1473,7 +1508,7 @@ msgstr "Статус" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "Дії" @@ -1595,7 +1630,7 @@ msgid "Sorry! We couldn't find that code." msgstr "Вибачте! Ми не змогли знайти цей код." #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "Код підтвердження:" @@ -1768,7 +1803,7 @@ msgstr "%(username)s процитував(-ла) < #: bookwyrm/templates/discover/discover.html:4 #: bookwyrm/templates/discover/discover.html:10 -#: bookwyrm/templates/layout.html:94 +#: bookwyrm/templates/layout.html:91 msgid "Discover" msgstr "Огляд" @@ -1923,7 +1958,7 @@ msgid "Direct Messages with %(username)s" msgstr "Особисті Повідомлення з %(username)s" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "Особисті Повідомлення" @@ -1961,7 +1996,7 @@ msgstr "Оновлення" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "Ваші книги" @@ -2009,19 +2044,19 @@ msgid "Add to your books" msgstr "Додати до ваших книг" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "В \"Прочитати\"" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "Зараз Читаю" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2030,7 +2065,7 @@ msgid "Read" msgstr "Прочитано" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "Читання Зупинено" @@ -2531,8 +2566,8 @@ msgid "Barcode reader" msgstr "Сканер штрих-кодів" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" -msgstr "Використовуйте посилання на Стрічку, Списки та Огляд, щоб побачити останні новини з вашої стрічки, тематичні списки книг та останні події на цьому інстансі BookWyrm!" +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" +msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 msgid "Navigation Bar" @@ -2563,8 +2598,8 @@ msgid "Notifications" msgstr "Сповіщення" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." -msgstr "Ваш профіль, книги, особисті повідомлення та налаштування можна подивитись натиснувши на ваше ім'я в цьому меню." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 msgid "Try selecting Profile from the drop down menu to continue the tour." @@ -2719,8 +2754,7 @@ msgstr "Ви можете створити або приєднатися до г #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "Групи" @@ -2774,7 +2808,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "Ця вкладка показує все, що ви прочитали у рамках річної мети читання, або дозволяє її встановити. Це не обов'язково. Тільки якщо вам таке подобається." #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "Мета Читання" @@ -2813,7 +2847,7 @@ msgstr "Поки що ніхто не використовував цей хеш #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "Імпортувати Книги" @@ -2990,8 +3024,8 @@ msgid "Row" msgstr "Рядок" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "Назва" @@ -3004,8 +3038,8 @@ msgid "Openlibrary key" msgstr "Ключ Openlibrary" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "Автор" @@ -3111,10 +3145,6 @@ msgstr "Зв'яжіться з вашим адміністратором або msgid "Create an Account" msgstr "Зареєструватися" -#: bookwyrm/templates/landing/invite.html:21 -msgid "Permission Denied" -msgstr "Немає Дозволу" - #: bookwyrm/templates/landing/invite.html:22 msgid "Sorry! This invite code is no longer valid." msgstr "Вибачте! Цей код запрошення більше не дійсний." @@ -3242,10 +3272,6 @@ msgstr "Сканувати Штрих-код" msgid "Main navigation menu" msgstr "Головне меню навігації" -#: bookwyrm/templates/layout.html:88 -msgid "Feed" -msgstr "Стрічка подій" - #: bookwyrm/templates/layout.html:134 bookwyrm/templates/ostatus/error.html:33 msgid "password" msgstr "пароль" @@ -3454,6 +3480,7 @@ msgid "Set" msgstr "Встановити" #: bookwyrm/templates/lists/list.html:167 +#: bookwyrm/templates/snippets/remove_follower_button.html:4 #: bookwyrm/templates/snippets/remove_from_group_button.html:20 msgid "Remove" msgstr "Видалити" @@ -3530,11 +3557,11 @@ msgstr "Ви перемістили свій акаунт на msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." msgstr "Ви можете скасувати цей крок, щоб відновити всі функції, але деякі підписані на цей обліковий запис вже відписалися." -#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +#: bookwyrm/templates/moved.html:42 msgid "Undo move" msgstr "Скасувати переміщення" -#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:77 msgid "Log out" msgstr "Вийти" @@ -3746,6 +3773,15 @@ msgstr "Ваш імпорт завершено." msgid "%(related_user)s invited you to join the group \"%(group_name)s\"" msgstr "%(related_user)s запрошує вас приєднатися до групи \"%(group_name)s\"" +#: bookwyrm/templates/notifications/items/invite_request.html:15 +#, python-format +msgid "New invite request awaiting response" +msgid_plural "%(display_count)s new invite requests awaiting response" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #: bookwyrm/templates/notifications/items/join.html:16 #, python-format msgid "has joined your group \"%(group_name)s\"" @@ -4182,7 +4218,7 @@ msgstr "Редагувати Профіль" #: bookwyrm/templates/preferences/edit_user.html:12 #: bookwyrm/templates/preferences/edit_user.html:25 -#: bookwyrm/templates/settings/users/user_info.html:7 +#: bookwyrm/templates/settings/users/user_info.html:8 #: bookwyrm/templates/user_menu.html:29 msgid "Profile" msgstr "Профіль" @@ -5044,19 +5080,19 @@ msgstr "Інстанс:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:119 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Status:" msgstr "Статус:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:107 msgid "Software:" msgstr "ПО:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:116 +#: bookwyrm/templates/settings/users/user_info.html:110 msgid "Version:" msgstr "Версія:" @@ -5069,7 +5105,7 @@ msgid "Details" msgstr "Подробиці" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:84 +#: bookwyrm/templates/user/layout.html:79 msgid "Activity" msgstr "Активність" @@ -5083,7 +5119,7 @@ msgid "View all" msgstr "Переглянути всіх" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:66 +#: bookwyrm/templates/settings/users/user_info.html:60 msgid "Reports:" msgstr "Скарг:" @@ -5100,7 +5136,7 @@ msgid "Blocked by us:" msgstr "Заблокованих нами:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:123 +#: bookwyrm/templates/settings/users/user_info.html:117 msgid "Notes" msgstr "Нотатки" @@ -5257,7 +5293,7 @@ msgstr "Запити На Запрошення" #: bookwyrm/templates/settings/invites/manage_invites.html:3 #: bookwyrm/templates/settings/invites/manage_invites.html:15 #: bookwyrm/templates/settings/layout.html:42 -#: bookwyrm/templates/user_menu.html:60 +#: bookwyrm/templates/user_menu.html:55 msgid "Invites" msgstr "Запрошення" @@ -5731,57 +5767,73 @@ msgid "Set instance default theme" msgstr "Встановити стандартну тему інстансу" #: bookwyrm/templates/settings/themes.html:19 +msgid "One of your themes appears to be broken. Selecting this theme will make the application unusable." +msgstr "" + +#: bookwyrm/templates/settings/themes.html:28 msgid "Successfully added theme" msgstr "Тему успішно додано" -#: bookwyrm/templates/settings/themes.html:26 +#: bookwyrm/templates/settings/themes.html:35 msgid "How to add a theme" msgstr "Як додати тему" -#: bookwyrm/templates/settings/themes.html:29 +#: bookwyrm/templates/settings/themes.html:38 msgid "Copy the theme file into the bookwyrm/static/css/themes directory on your server from the command line." msgstr "Скопіюйте файл теми в директорію bookwyrm/static/css/themes на вашому сервері з командного рядка." -#: bookwyrm/templates/settings/themes.html:32 +#: bookwyrm/templates/settings/themes.html:41 msgid "Run ./bw-dev compile_themes and ./bw-dev collectstatic." msgstr "Запустіть ./bw-dev compile_themes та ./bw-dev collectstatic." -#: bookwyrm/templates/settings/themes.html:35 +#: bookwyrm/templates/settings/themes.html:44 msgid "Add the file name using the form below to make it available in the application interface." msgstr "Додайте назву файлу використовуючи форму нижче, щоб зробити її доступною в інтерфейсі BookWyrm." -#: bookwyrm/templates/settings/themes.html:42 -#: bookwyrm/templates/settings/themes.html:82 +#: bookwyrm/templates/settings/themes.html:51 +#: bookwyrm/templates/settings/themes.html:91 msgid "Add theme" msgstr "Додати тему" -#: bookwyrm/templates/settings/themes.html:48 +#: bookwyrm/templates/settings/themes.html:57 msgid "Unable to save theme" msgstr "Не вдалося зберегти тему" -#: bookwyrm/templates/settings/themes.html:63 -#: bookwyrm/templates/settings/themes.html:93 +#: bookwyrm/templates/settings/themes.html:72 +#: bookwyrm/templates/settings/themes.html:102 msgid "Theme name" msgstr "Назва теми" -#: bookwyrm/templates/settings/themes.html:73 +#: bookwyrm/templates/settings/themes.html:82 msgid "Theme filename" msgstr "Ім'я файлу теми" -#: bookwyrm/templates/settings/themes.html:88 +#: bookwyrm/templates/settings/themes.html:97 msgid "Available Themes" msgstr "Доступні теми" -#: bookwyrm/templates/settings/themes.html:96 +#: bookwyrm/templates/settings/themes.html:105 msgid "File" msgstr "Файл" -#: bookwyrm/templates/settings/themes.html:111 +#: bookwyrm/templates/settings/themes.html:123 msgid "Remove theme" msgstr "Видалити тему" +#: bookwyrm/templates/settings/themes.html:134 +msgid "Test theme" +msgstr "" + +#: bookwyrm/templates/settings/themes.html:143 +msgid "Broken theme" +msgstr "" + +#: bookwyrm/templates/settings/themes.html:152 +msgid "Loaded successfully" +msgstr "" + #: bookwyrm/templates/settings/users/delete_user_form.html:5 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:38 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:52 msgid "Permanently delete user" msgstr "Видалити користувача назавжди" @@ -5820,106 +5872,108 @@ msgstr "Остання активність" msgid "Remote instance" msgstr "Інший інстанс" -#: bookwyrm/templates/settings/users/user_admin.html:82 -#: bookwyrm/templates/settings/users/user_info.html:29 -msgid "Moved" -msgstr "Переміщено" - -#: bookwyrm/templates/settings/users/user_admin.html:93 -msgid "Deleted" -msgstr "Видалено" - -#: bookwyrm/templates/settings/users/user_admin.html:99 -#: bookwyrm/templates/settings/users/user_info.html:38 -msgid "Inactive" -msgstr "Неактивний" - -#: bookwyrm/templates/settings/users/user_admin.html:108 -#: bookwyrm/templates/settings/users/user_info.html:133 +#: bookwyrm/templates/settings/users/user_admin.html:84 +#: bookwyrm/templates/settings/users/user_info.html:127 msgid "Not set" msgstr "Не встановлено" -#: bookwyrm/templates/settings/users/user_info.html:16 +#: bookwyrm/templates/settings/users/user_info.html:20 +msgid "This account is the instance actor for signing HTTP requests." +msgstr "" + +#: bookwyrm/templates/settings/users/user_info.html:24 msgid "View user profile" msgstr "Переглянути профіль користувача" -#: bookwyrm/templates/settings/users/user_info.html:19 +#: bookwyrm/templates/settings/users/user_info.html:30 msgid "Go to user admin" msgstr "Перейти до адміністрування користувача" -#: bookwyrm/templates/settings/users/user_info.html:46 +#: bookwyrm/templates/settings/users/user_info.html:40 msgid "Local" msgstr "Місцевий" -#: bookwyrm/templates/settings/users/user_info.html:48 +#: bookwyrm/templates/settings/users/user_info.html:42 msgid "Remote" msgstr "З іншого сервера" -#: bookwyrm/templates/settings/users/user_info.html:57 +#: bookwyrm/templates/settings/users/user_info.html:51 msgid "User details" msgstr "Подробиці користувача" -#: bookwyrm/templates/settings/users/user_info.html:61 +#: bookwyrm/templates/settings/users/user_info.html:55 msgid "Email:" msgstr "Електронна пошта:" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:65 msgid "(View reports)" msgstr "(Переглянути скарги)" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "Blocked by count:" msgstr "Заблокували цього користувача:" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:74 msgid "Date added:" msgstr "Зареєструвався або було додано:" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Last active date:" msgstr "Остання активність:" -#: bookwyrm/templates/settings/users/user_info.html:86 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Manually approved followers:" msgstr "Підтверджує підписників вручну:" -#: bookwyrm/templates/settings/users/user_info.html:89 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Discoverable:" msgstr "Видимий:" -#: bookwyrm/templates/settings/users/user_info.html:93 +#: bookwyrm/templates/settings/users/user_info.html:87 msgid "Deactivation reason:" msgstr "Причина деактивації:" -#: bookwyrm/templates/settings/users/user_info.html:108 +#: bookwyrm/templates/settings/users/user_info.html:102 msgid "Instance details" msgstr "Подробиці інстансу" -#: bookwyrm/templates/settings/users/user_info.html:130 +#: bookwyrm/templates/settings/users/user_info.html:124 msgid "View instance" msgstr "Переглянути інстанс" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:5 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:6 msgid "Permanently deleted" msgstr "Видалено остаточно" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:8 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:9 msgid "User Actions" msgstr "Керування користувачем" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:21 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:15 +msgid "This is the instance admin actor" +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:18 +msgid "You must not delete or disable this account as it is critical to the functioning of your server. This actor signs outgoing GET requests to smooth interaction with secure ActivityPub servers." +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:19 +msgid "This account is not discoverable by ordinary users and does not have a profile page." +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:35 msgid "Activate user" msgstr "Активувати користувача" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:27 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:41 msgid "Suspend user" msgstr "Заблокувати користувача" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:32 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:46 msgid "Un-suspend user" msgstr "Розблокувати користувача" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:54 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:68 msgid "Access level:" msgstr "Рівень доступу:" @@ -5975,7 +6029,7 @@ msgstr "Ваш домен, здається, налаштований непра msgid "You are running BookWyrm in production mode without https. USE_HTTPS should be enabled in production." msgstr "Ваш інстанс BookWyrm працює в режимі продакшену без https. Вам слід увімкнути USE_HTTPS." -#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:49 +#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:44 msgid "Settings" msgstr "Налаштування" @@ -6032,7 +6086,7 @@ msgid "Need help?" msgstr "Потрібна допомога?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:87 +#: bookwyrm/templates/shelf/shelf.html:74 msgid "Create shelf" msgstr "Створити полицю" @@ -6040,26 +6094,18 @@ msgstr "Створити полицю" msgid "Edit Shelf" msgstr "Редагувати полицю" -#: bookwyrm/templates/shelf/shelf.html:25 -msgid "You have have moved to" -msgstr "Ви переїхали до" - -#: bookwyrm/templates/shelf/shelf.html:28 -msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." -msgstr "Ви можете скасувати цей крок, щоб відновити всі функції, але деякі підписники вже могли відписатися." - -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:26 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "Профіль користувача" -#: bookwyrm/templates/shelf/shelf.html:54 +#: bookwyrm/templates/shelf/shelf.html:41 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "Усі книги" -#: bookwyrm/templates/shelf/shelf.html:112 +#: bookwyrm/templates/shelf/shelf.html:99 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" @@ -6068,40 +6114,40 @@ msgstr[1] "%(formatted_count)s книги" msgstr[2] "%(formatted_count)s книг" msgstr[3] "%(formatted_count)s книг" -#: bookwyrm/templates/shelf/shelf.html:119 +#: bookwyrm/templates/shelf/shelf.html:106 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(показуються %(start)s-%(end)s)" -#: bookwyrm/templates/shelf/shelf.html:131 +#: bookwyrm/templates/shelf/shelf.html:118 msgid "Edit shelf" msgstr "Редагувати полицю" -#: bookwyrm/templates/shelf/shelf.html:139 +#: bookwyrm/templates/shelf/shelf.html:126 msgid "Delete shelf" msgstr "Видалити полицю" -#: bookwyrm/templates/shelf/shelf.html:167 -#: bookwyrm/templates/shelf/shelf.html:193 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:180 msgid "Shelved" msgstr "Додано до полиці" -#: bookwyrm/templates/shelf/shelf.html:168 -#: bookwyrm/templates/shelf/shelf.html:196 +#: bookwyrm/templates/shelf/shelf.html:155 +#: bookwyrm/templates/shelf/shelf.html:183 msgid "Started" msgstr "Почато" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Finished" msgstr "Прочитано" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Until" msgstr "До" -#: bookwyrm/templates/shelf/shelf.html:225 +#: bookwyrm/templates/shelf/shelf.html:212 msgid "This shelf is empty." msgstr "Ця полиця порожня." @@ -6423,6 +6469,11 @@ msgstr "%(username)s прочитав(-ла) %(read_count)s msgid "Follow at new account" msgstr "Підписатися на новий акаунт" +#: bookwyrm/templates/snippets/moved_user_notice.html:7 +#, python-format +msgid "%(user)s has moved to %(moved_to_name)s" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6725,6 +6776,18 @@ msgstr "Розгорнути" msgid "Show less" msgstr "Згорнути" +#: bookwyrm/templates/snippets/user_active_tag.html:5 +msgid "Moved" +msgstr "Переміщено" + +#: bookwyrm/templates/snippets/user_active_tag.html:12 +msgid "Deleted" +msgstr "Видалено" + +#: bookwyrm/templates/snippets/user_active_tag.html:15 +msgid "Inactive" +msgstr "Неактивний" + #: bookwyrm/templates/two_factor_auth/two_factor_login.html:29 msgid "2FA check" msgstr "Двофакторна аутентифікація" @@ -6783,15 +6846,11 @@ msgstr "Ваші Групи" msgid "Groups: %(username)s" msgstr "Групи: %(username)s" -#: bookwyrm/templates/user/layout.html:50 -msgid "has moved to" -msgstr "переїхав(-ла) до" - -#: bookwyrm/templates/user/layout.html:64 +#: bookwyrm/templates/user/layout.html:59 msgid "Follow Requests" msgstr "Запити на підписку" -#: bookwyrm/templates/user/layout.html:88 +#: bookwyrm/templates/user/layout.html:83 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6812,7 +6871,7 @@ msgstr "Створити список" msgid "Joined %(date)s" msgstr "Приєднався %(date)s" -#: bookwyrm/templates/user/relationships/followers.html:31 +#: bookwyrm/templates/user/relationships/followers.html:36 #, python-format msgid "%(username)s has no followers" msgstr "%(username)s не має підписників" @@ -6932,7 +6991,7 @@ msgstr[1] "%(num)d книги – від %(user)s" msgstr[2] "%(num)d книг – від %(user)s" msgstr[3] "%(num)d книг – від %(user)s" -#: bookwyrm/templatetags/utilities.py:48 +#: bookwyrm/templatetags/utilities.py:49 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s" diff --git a/locale/zh_Hans/LC_MESSAGES/django.mo b/locale/zh_Hans/LC_MESSAGES/django.mo index 566e3c144ec509cf8408d2092449d3af7e01e5db..b365646885b2efc9452a0b57d440a887bf3bca74 100644 GIT binary patch delta 25520 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 W`!s*N>l2pV7(QZiNJLPchW`WJdgHqQ diff --git a/locale/zh_Hans/LC_MESSAGES/django.po b/locale/zh_Hans/LC_MESSAGES/django.po index 7fa0b00bd..3f8bd34d5 100644 --- a/locale/zh_Hans/LC_MESSAGES/django.po +++ b/locale/zh_Hans/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-02 21:32+0000\n" -"PO-Revision-Date: 2023-11-02 22:29\n" +"POT-Creation-Date: 2023-12-30 23:52+0000\n" +"PO-Revision-Date: 2024-01-02 03:12\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Chinese Simplified\n" "Language: zh\n" @@ -102,8 +102,8 @@ msgstr "列表顺序" msgid "Book Title" msgstr "书名" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 -#: bookwyrm/templates/shelf/shelf.html:203 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:158 +#: bookwyrm/templates/shelf/shelf.html:190 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "评价" @@ -141,7 +141,7 @@ msgstr "警告" msgid "Danger" msgstr "危险" -#: bookwyrm/models/antispam.py:112 bookwyrm/models/antispam.py:146 +#: bookwyrm/models/antispam.py:113 bookwyrm/models/antispam.py:147 msgid "Automatically generated report" msgstr "自动生成的举报" @@ -205,26 +205,26 @@ msgstr "跨站" msgid "Blocked" msgstr "已屏蔽" -#: bookwyrm/models/fields.py:30 +#: bookwyrm/models/fields.py:35 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s 不是有效的 remote_id" -#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 +#: bookwyrm/models/fields.py:44 bookwyrm/models/fields.py:53 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s 不是有效的用户名" -#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 +#: bookwyrm/models/fields.py:198 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "用户名" -#: bookwyrm/models/fields.py:198 +#: bookwyrm/models/fields.py:203 msgid "A user with that username already exists." msgstr "已经存在使用该用户名的用户。" -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:222 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "已经存在使用该用户名的用户。" msgid "Public" msgstr "公开" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:223 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "公开" msgid "Unlisted" msgstr "不公开" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:224 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "不公开" msgid "Followers" msgstr "关注者" -#: bookwyrm/models/fields.py:220 +#: bookwyrm/models/fields.py:225 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -260,8 +260,7 @@ msgstr "私密" #: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:87 -#: bookwyrm/templates/settings/users/user_info.html:33 +#: bookwyrm/templates/snippets/user_active_tag.html:8 msgid "Active" msgstr "活跃" @@ -352,122 +351,143 @@ msgstr "" msgid "Deleted item" msgstr "" -#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:307 +#: bookwyrm/models/user.py:33 bookwyrm/templates/book/book.html:307 msgid "Reviews" msgstr "书评" -#: bookwyrm/models/user.py:33 +#: bookwyrm/models/user.py:34 msgid "Comments" msgstr "评论" -#: bookwyrm/models/user.py:34 +#: bookwyrm/models/user.py:35 msgid "Quotations" msgstr "引用" -#: bookwyrm/models/user.py:35 +#: bookwyrm/models/user.py:36 msgid "Everything else" msgstr "所有其它内容" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home Timeline" msgstr "主页时间线" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home" msgstr "主页" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 msgid "Books Timeline" msgstr "书目时间线" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:112 +#: bookwyrm/templates/user/layout.html:107 msgid "Books" msgstr "书目" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:313 msgid "English" msgstr "English(英语)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:314 msgid "Català (Catalan)" msgstr "Català (加泰罗尼亚语)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:315 msgid "Deutsch (German)" msgstr "Deutsch(德语)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:316 msgid "Esperanto (Esperanto)" msgstr "" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:317 msgid "Español (Spanish)" msgstr "Español(西班牙语)" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:318 msgid "Euskara (Basque)" msgstr "" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:319 msgid "Galego (Galician)" msgstr "Galego(加利西亚语)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:320 msgid "Italiano (Italian)" msgstr "Italiano(意大利语)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:321 msgid "Suomi (Finnish)" msgstr "Suomi (Finnish/芬兰语)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:322 msgid "Français (French)" msgstr "Français(法语)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:323 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių(立陶宛语)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:324 msgid "Nederlands (Dutch)" msgstr "" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:325 msgid "Norsk (Norwegian)" msgstr "Norsk(挪威语)" -#: bookwyrm/settings.py:316 +#: bookwyrm/settings.py:326 msgid "Polski (Polish)" msgstr "Polski (波兰语)" -#: bookwyrm/settings.py:317 +#: bookwyrm/settings.py:327 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil(巴西葡萄牙语)" -#: bookwyrm/settings.py:318 +#: bookwyrm/settings.py:328 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu(欧洲葡萄牙语)" -#: bookwyrm/settings.py:319 +#: bookwyrm/settings.py:329 msgid "Română (Romanian)" msgstr "Română (罗马尼亚语)" -#: bookwyrm/settings.py:320 +#: bookwyrm/settings.py:330 msgid "Svenska (Swedish)" msgstr "Svenska(瑞典语)" -#: bookwyrm/settings.py:321 +#: bookwyrm/settings.py:331 +msgid "Українська (Ukrainian)" +msgstr "" + +#: bookwyrm/settings.py:332 msgid "简体中文 (Simplified Chinese)" msgstr "简体中文" -#: bookwyrm/settings.py:322 +#: bookwyrm/settings.py:333 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文(繁体中文)" +#: bookwyrm/templates/403.html:5 +msgid "Oh no!" +msgstr "" + +#: bookwyrm/templates/403.html:9 bookwyrm/templates/landing/invite.html:21 +msgid "Permission Denied" +msgstr "没有权限" + +#: bookwyrm/templates/403.html:11 +#, python-format +msgid "You do not have permission to view this page or perform this action. Your user permission level is %(level)s." +msgstr "" + +#: bookwyrm/templates/403.html:15 +msgid "If you think you should have access, please speak to your BookWyrm server administrator." +msgstr "" + #: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8 msgid "Not Found" msgstr "未找到" @@ -476,6 +496,20 @@ msgstr "未找到" msgid "The page you requested doesn't seem to exist!" msgstr "你请求的页面似乎并不存在!" +#: bookwyrm/templates/413.html:4 bookwyrm/templates/413.html:8 +msgid "File too large" +msgstr "" + +#: bookwyrm/templates/413.html:9 +msgid "The file you are uploading is too large." +msgstr "" + +#: bookwyrm/templates/413.html:11 +msgid "\n" +" You you can try using a smaller file, or ask your BookWyrm server administrator to increase the DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "哎呀!" @@ -536,12 +570,12 @@ msgstr "%(site_name)s 的仲裁员和管理员负责维持站点运行, 执行 msgid "Moderator" msgstr "仲裁员" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "管理员" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -902,7 +936,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1036,13 +1070,13 @@ msgstr "地点" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "列表" @@ -1318,7 +1352,7 @@ msgid "Add Another Author" msgstr "添加其他作者" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "封面" @@ -1445,8 +1479,9 @@ msgstr "域名" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "状态" @@ -1455,7 +1490,7 @@ msgstr "状态" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "动作" @@ -1577,7 +1612,7 @@ msgid "Sorry! We couldn't find that code." msgstr "抱歉!我们无法找到该代码。" #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "确认代码:" @@ -1744,7 +1779,7 @@ msgstr "%(username)s 引用了 %(username)s" msgstr "与 %(username)s 私信" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "私信" @@ -1937,7 +1972,7 @@ msgstr "更新" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "你的书目" @@ -1985,19 +2020,19 @@ msgid "Add to your books" msgstr "添加到您的书籍中" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "想读" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "在读" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2006,7 +2041,7 @@ msgid "Read" msgstr "读过" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "已停止阅读" @@ -2501,7 +2536,7 @@ msgid "Barcode reader" msgstr "条形码读取器" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 @@ -2533,7 +2568,7 @@ msgid "Notifications" msgstr "通知" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 @@ -2689,8 +2724,7 @@ msgstr "您可以与其他用户创建或加入一个群组。 群组可以共 #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "群组" @@ -2744,7 +2778,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "" #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "阅读目标" @@ -2783,7 +2817,7 @@ msgstr "" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "导入书目" @@ -2951,8 +2985,8 @@ msgid "Row" msgstr "行" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "标题" @@ -2965,8 +2999,8 @@ msgid "Openlibrary key" msgstr "Openlibrary key" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "作者" @@ -3072,10 +3106,6 @@ msgstr "如果您看到意外失败的项目,请联系您的管理员或 导入 已完成。" msgid "%(related_user)s invited you to join the group \"%(group_name)s\"" msgstr "" +#: bookwyrm/templates/notifications/items/invite_request.html:15 +#, python-format +msgid "New invite request awaiting response" +msgid_plural "%(display_count)s new invite requests awaiting response" +msgstr[0] "" + #: bookwyrm/templates/notifications/items/join.html:16 #, python-format msgid "has joined your group \"%(group_name)s\"" @@ -4131,7 +4164,7 @@ msgstr "编辑个人资料" #: bookwyrm/templates/preferences/edit_user.html:12 #: bookwyrm/templates/preferences/edit_user.html:25 -#: bookwyrm/templates/settings/users/user_info.html:7 +#: bookwyrm/templates/settings/users/user_info.html:8 #: bookwyrm/templates/user_menu.html:29 msgid "Profile" msgstr "个人资料" @@ -4975,19 +5008,19 @@ msgstr "实例:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:119 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Status:" msgstr "状态:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:107 msgid "Software:" msgstr "软件:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:116 +#: bookwyrm/templates/settings/users/user_info.html:110 msgid "Version:" msgstr "版本:" @@ -5000,7 +5033,7 @@ msgid "Details" msgstr "详细" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:84 +#: bookwyrm/templates/user/layout.html:79 msgid "Activity" msgstr "活动" @@ -5014,7 +5047,7 @@ msgid "View all" msgstr "查看全部" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:66 +#: bookwyrm/templates/settings/users/user_info.html:60 msgid "Reports:" msgstr "报告:" @@ -5031,7 +5064,7 @@ msgid "Blocked by us:" msgstr "我们所屏蔽的:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:123 +#: bookwyrm/templates/settings/users/user_info.html:117 msgid "Notes" msgstr "备注" @@ -5188,7 +5221,7 @@ msgstr "邀请请求" #: bookwyrm/templates/settings/invites/manage_invites.html:3 #: bookwyrm/templates/settings/invites/manage_invites.html:15 #: bookwyrm/templates/settings/layout.html:42 -#: bookwyrm/templates/user_menu.html:60 +#: bookwyrm/templates/user_menu.html:55 msgid "Invites" msgstr "邀请" @@ -5662,57 +5695,73 @@ msgid "Set instance default theme" msgstr "设置实例默认主题" #: bookwyrm/templates/settings/themes.html:19 +msgid "One of your themes appears to be broken. Selecting this theme will make the application unusable." +msgstr "" + +#: bookwyrm/templates/settings/themes.html:28 msgid "Successfully added theme" msgstr "主题添加成功" -#: bookwyrm/templates/settings/themes.html:26 +#: bookwyrm/templates/settings/themes.html:35 msgid "How to add a theme" msgstr "如何添加一个主题" -#: bookwyrm/templates/settings/themes.html:29 +#: bookwyrm/templates/settings/themes.html:38 msgid "Copy the theme file into the bookwyrm/static/css/themes directory on your server from the command line." msgstr "从命令行将主题文件复制到您服务器上的 bookwym/static/css/themes 目录。" -#: bookwyrm/templates/settings/themes.html:32 +#: bookwyrm/templates/settings/themes.html:41 msgid "Run ./bw-dev compile_themes and ./bw-dev collectstatic." msgstr "" -#: bookwyrm/templates/settings/themes.html:35 +#: bookwyrm/templates/settings/themes.html:44 msgid "Add the file name using the form below to make it available in the application interface." msgstr "使用下面的表格添加文件名以便在应用程序接口中可用。" -#: bookwyrm/templates/settings/themes.html:42 -#: bookwyrm/templates/settings/themes.html:82 +#: bookwyrm/templates/settings/themes.html:51 +#: bookwyrm/templates/settings/themes.html:91 msgid "Add theme" msgstr "添加主题" -#: bookwyrm/templates/settings/themes.html:48 +#: bookwyrm/templates/settings/themes.html:57 msgid "Unable to save theme" msgstr "无法保存主题" -#: bookwyrm/templates/settings/themes.html:63 -#: bookwyrm/templates/settings/themes.html:93 +#: bookwyrm/templates/settings/themes.html:72 +#: bookwyrm/templates/settings/themes.html:102 msgid "Theme name" msgstr "主题名称" -#: bookwyrm/templates/settings/themes.html:73 +#: bookwyrm/templates/settings/themes.html:82 msgid "Theme filename" msgstr "主题文件名" -#: bookwyrm/templates/settings/themes.html:88 +#: bookwyrm/templates/settings/themes.html:97 msgid "Available Themes" msgstr "可用的主题" -#: bookwyrm/templates/settings/themes.html:96 +#: bookwyrm/templates/settings/themes.html:105 msgid "File" msgstr "文件" -#: bookwyrm/templates/settings/themes.html:111 +#: bookwyrm/templates/settings/themes.html:123 msgid "Remove theme" msgstr "删除主题" +#: bookwyrm/templates/settings/themes.html:134 +msgid "Test theme" +msgstr "" + +#: bookwyrm/templates/settings/themes.html:143 +msgid "Broken theme" +msgstr "" + +#: bookwyrm/templates/settings/themes.html:152 +msgid "Loaded successfully" +msgstr "" + #: bookwyrm/templates/settings/users/delete_user_form.html:5 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:38 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:52 msgid "Permanently delete user" msgstr "永久删除用户" @@ -5751,106 +5800,108 @@ msgstr "最后或缺" msgid "Remote instance" msgstr "移除服务器" -#: bookwyrm/templates/settings/users/user_admin.html:82 -#: bookwyrm/templates/settings/users/user_info.html:29 -msgid "Moved" -msgstr "" - -#: bookwyrm/templates/settings/users/user_admin.html:93 -msgid "Deleted" -msgstr "已删除" - -#: bookwyrm/templates/settings/users/user_admin.html:99 -#: bookwyrm/templates/settings/users/user_info.html:38 -msgid "Inactive" -msgstr "停用" - -#: bookwyrm/templates/settings/users/user_admin.html:108 -#: bookwyrm/templates/settings/users/user_info.html:133 +#: bookwyrm/templates/settings/users/user_admin.html:84 +#: bookwyrm/templates/settings/users/user_info.html:127 msgid "Not set" msgstr "未设置" -#: bookwyrm/templates/settings/users/user_info.html:16 +#: bookwyrm/templates/settings/users/user_info.html:20 +msgid "This account is the instance actor for signing HTTP requests." +msgstr "" + +#: bookwyrm/templates/settings/users/user_info.html:24 msgid "View user profile" msgstr "查看用户个人资料" -#: bookwyrm/templates/settings/users/user_info.html:19 +#: bookwyrm/templates/settings/users/user_info.html:30 msgid "Go to user admin" msgstr "转到用户管理员" -#: bookwyrm/templates/settings/users/user_info.html:46 +#: bookwyrm/templates/settings/users/user_info.html:40 msgid "Local" msgstr "本站" -#: bookwyrm/templates/settings/users/user_info.html:48 +#: bookwyrm/templates/settings/users/user_info.html:42 msgid "Remote" msgstr "远端" -#: bookwyrm/templates/settings/users/user_info.html:57 +#: bookwyrm/templates/settings/users/user_info.html:51 msgid "User details" msgstr "用户详情" -#: bookwyrm/templates/settings/users/user_info.html:61 +#: bookwyrm/templates/settings/users/user_info.html:55 msgid "Email:" msgstr "邮箱:" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:65 msgid "(View reports)" msgstr "(查看报告)" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "Blocked by count:" msgstr "被屏蔽次数:" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:74 msgid "Date added:" msgstr "添加日期:" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Last active date:" msgstr "最后活跃日期:" -#: bookwyrm/templates/settings/users/user_info.html:86 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Manually approved followers:" msgstr "手动通过的关注者:" -#: bookwyrm/templates/settings/users/user_info.html:89 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Discoverable:" msgstr "可发现:" -#: bookwyrm/templates/settings/users/user_info.html:93 +#: bookwyrm/templates/settings/users/user_info.html:87 msgid "Deactivation reason:" msgstr "停用原因:" -#: bookwyrm/templates/settings/users/user_info.html:108 +#: bookwyrm/templates/settings/users/user_info.html:102 msgid "Instance details" msgstr "实例详情" -#: bookwyrm/templates/settings/users/user_info.html:130 +#: bookwyrm/templates/settings/users/user_info.html:124 msgid "View instance" msgstr "查看实例" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:5 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:6 msgid "Permanently deleted" msgstr "已永久删除" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:8 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:9 msgid "User Actions" msgstr "用户操作" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:21 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:15 +msgid "This is the instance admin actor" +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:18 +msgid "You must not delete or disable this account as it is critical to the functioning of your server. This actor signs outgoing GET requests to smooth interaction with secure ActivityPub servers." +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:19 +msgid "This account is not discoverable by ordinary users and does not have a profile page." +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:35 msgid "Activate user" msgstr "" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:27 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:41 msgid "Suspend user" msgstr "停用用户" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:32 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:46 msgid "Un-suspend user" msgstr "取消停用用户" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:54 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:68 msgid "Access level:" msgstr "访问级别:" @@ -5906,7 +5957,7 @@ msgstr "你的域名似乎配置出错了。它不应该包括协议或斜杠。 msgid "You are running BookWyrm in production mode without https. USE_HTTPS should be enabled in production." msgstr "您正在没有https的实际使用模式下运行BookWyrm,USE_HTTPS应该在实际使用中启用。" -#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:49 +#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:44 msgid "Settings" msgstr "设置" @@ -5963,7 +6014,7 @@ msgid "Need help?" msgstr "需要帮助?" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:87 +#: bookwyrm/templates/shelf/shelf.html:74 msgid "Create shelf" msgstr "创建书架" @@ -5971,65 +6022,57 @@ msgstr "创建书架" msgid "Edit Shelf" msgstr "编辑书架" -#: bookwyrm/templates/shelf/shelf.html:25 -msgid "You have have moved to" -msgstr "" - -#: bookwyrm/templates/shelf/shelf.html:28 -msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." -msgstr "" - -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:26 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "用户个人资料" -#: bookwyrm/templates/shelf/shelf.html:54 +#: bookwyrm/templates/shelf/shelf.html:41 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "所有书目" -#: bookwyrm/templates/shelf/shelf.html:112 +#: bookwyrm/templates/shelf/shelf.html:99 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "%(formatted_count)s 本书籍" -#: bookwyrm/templates/shelf/shelf.html:119 +#: bookwyrm/templates/shelf/shelf.html:106 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "(正在显示 %(start)s 到 %(end)s)" -#: bookwyrm/templates/shelf/shelf.html:131 +#: bookwyrm/templates/shelf/shelf.html:118 msgid "Edit shelf" msgstr "编辑书架" -#: bookwyrm/templates/shelf/shelf.html:139 +#: bookwyrm/templates/shelf/shelf.html:126 msgid "Delete shelf" msgstr "删除书架" -#: bookwyrm/templates/shelf/shelf.html:167 -#: bookwyrm/templates/shelf/shelf.html:193 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:180 msgid "Shelved" msgstr "上架时间" -#: bookwyrm/templates/shelf/shelf.html:168 -#: bookwyrm/templates/shelf/shelf.html:196 +#: bookwyrm/templates/shelf/shelf.html:155 +#: bookwyrm/templates/shelf/shelf.html:183 msgid "Started" msgstr "开始时间" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Finished" msgstr "完成时间" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Until" msgstr "直到" -#: bookwyrm/templates/shelf/shelf.html:225 +#: bookwyrm/templates/shelf/shelf.html:212 msgid "This shelf is empty." msgstr "此书架是空的。" @@ -6333,6 +6376,11 @@ msgstr "%(username)s 已经阅读了 %(goal_count)s 本书 msgid "Follow at new account" msgstr "" +#: bookwyrm/templates/snippets/moved_user_notice.html:7 +#, python-format +msgid "%(user)s has moved to %(moved_to_name)s" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6635,6 +6683,18 @@ msgstr "显示更多" msgid "Show less" msgstr "显示更少" +#: bookwyrm/templates/snippets/user_active_tag.html:5 +msgid "Moved" +msgstr "" + +#: bookwyrm/templates/snippets/user_active_tag.html:12 +msgid "Deleted" +msgstr "已删除" + +#: bookwyrm/templates/snippets/user_active_tag.html:15 +msgid "Inactive" +msgstr "停用" + #: bookwyrm/templates/two_factor_auth/two_factor_login.html:29 msgid "2FA check" msgstr "双重身份验证检查" @@ -6693,15 +6753,11 @@ msgstr "您的群组" msgid "Groups: %(username)s" msgstr "群组: %(username)s" -#: bookwyrm/templates/user/layout.html:50 -msgid "has moved to" -msgstr "" - -#: bookwyrm/templates/user/layout.html:64 +#: bookwyrm/templates/user/layout.html:59 msgid "Follow Requests" msgstr "关注请求" -#: bookwyrm/templates/user/layout.html:88 +#: bookwyrm/templates/user/layout.html:83 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6722,7 +6778,7 @@ msgstr "创建列表" msgid "Joined %(date)s" msgstr "在 %(date)s 加入" -#: bookwyrm/templates/user/relationships/followers.html:31 +#: bookwyrm/templates/user/relationships/followers.html:36 #, python-format msgid "%(username)s has no followers" msgstr "%(username)s 没有关注者" @@ -6833,7 +6889,7 @@ msgid "%(num)d book - by %(user)s" msgid_plural "%(num)d books - by %(user)s" msgstr[0] "%(num)d 本书 - 来自 %(user)s" -#: bookwyrm/templatetags/utilities.py:48 +#: bookwyrm/templatetags/utilities.py:49 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "%(title)s:%(subtitle)s" diff --git a/locale/zh_Hant/LC_MESSAGES/django.mo b/locale/zh_Hant/LC_MESSAGES/django.mo index c2dabfbf0ffb731a3a105637765bc897dd541ca0..e9e223f74ebeacd4c6d2ef24a7a0324cf2e268a7 100644 GIT binary patch delta 13084 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 delta 13105 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 D0M!dd diff --git a/locale/zh_Hant/LC_MESSAGES/django.po b/locale/zh_Hant/LC_MESSAGES/django.po index 9815b9a59..6b9e9a19b 100644 --- a/locale/zh_Hant/LC_MESSAGES/django.po +++ b/locale/zh_Hant/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: bookwyrm\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-02 21:32+0000\n" -"PO-Revision-Date: 2023-11-02 22:28\n" +"POT-Creation-Date: 2023-12-30 23:52+0000\n" +"PO-Revision-Date: 2024-01-02 03:12\n" "Last-Translator: Mouse Reeve \n" "Language-Team: Chinese Traditional\n" "Language: zh\n" @@ -102,8 +102,8 @@ msgstr "列表順序" msgid "Book Title" msgstr "書名" -#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:171 -#: bookwyrm/templates/shelf/shelf.html:203 +#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:158 +#: bookwyrm/templates/shelf/shelf.html:190 #: bookwyrm/templates/snippets/create_status/review.html:32 msgid "Rating" msgstr "評價" @@ -141,7 +141,7 @@ msgstr "警告" msgid "Danger" msgstr "危險" -#: bookwyrm/models/antispam.py:112 bookwyrm/models/antispam.py:146 +#: bookwyrm/models/antispam.py:113 bookwyrm/models/antispam.py:147 msgid "Automatically generated report" msgstr "自動生成的報告" @@ -205,26 +205,26 @@ msgstr "跨站" msgid "Blocked" msgstr "已封鎖" -#: bookwyrm/models/fields.py:30 +#: bookwyrm/models/fields.py:35 #, python-format msgid "%(value)s is not a valid remote_id" msgstr "%(value)s 不是有效的 remote_id" -#: bookwyrm/models/fields.py:39 bookwyrm/models/fields.py:48 +#: bookwyrm/models/fields.py:44 bookwyrm/models/fields.py:53 #, python-format msgid "%(value)s is not a valid username" msgstr "%(value)s 不是有效的使用者名稱" -#: bookwyrm/models/fields.py:193 bookwyrm/templates/layout.html:129 +#: bookwyrm/models/fields.py:198 bookwyrm/templates/layout.html:129 #: bookwyrm/templates/ostatus/error.html:29 msgid "username" msgstr "使用者名稱" -#: bookwyrm/models/fields.py:198 +#: bookwyrm/models/fields.py:203 msgid "A user with that username already exists." msgstr "已經存在使用該名稱的使用者。" -#: bookwyrm/models/fields.py:217 +#: bookwyrm/models/fields.py:222 #: bookwyrm/templates/snippets/privacy-icons.html:3 #: bookwyrm/templates/snippets/privacy-icons.html:4 #: bookwyrm/templates/snippets/privacy_select.html:11 @@ -232,7 +232,7 @@ msgstr "已經存在使用該名稱的使用者。" msgid "Public" msgstr "公開" -#: bookwyrm/models/fields.py:218 +#: bookwyrm/models/fields.py:223 #: bookwyrm/templates/snippets/privacy-icons.html:7 #: bookwyrm/templates/snippets/privacy-icons.html:8 #: bookwyrm/templates/snippets/privacy_select.html:14 @@ -240,7 +240,7 @@ msgstr "公開" msgid "Unlisted" msgstr "不公開" -#: bookwyrm/models/fields.py:219 +#: bookwyrm/models/fields.py:224 #: bookwyrm/templates/snippets/privacy_select.html:17 #: bookwyrm/templates/user/relationships/followers.html:6 #: bookwyrm/templates/user/relationships/followers.html:11 @@ -249,7 +249,7 @@ msgstr "不公開" msgid "Followers" msgstr "關注者" -#: bookwyrm/models/fields.py:220 +#: bookwyrm/models/fields.py:225 #: bookwyrm/templates/snippets/create_status/post_options_block.html:6 #: bookwyrm/templates/snippets/privacy-icons.html:15 #: bookwyrm/templates/snippets/privacy-icons.html:16 @@ -260,8 +260,7 @@ msgstr "私密" #: bookwyrm/models/import_job.py:49 bookwyrm/templates/import/import.html:174 #: bookwyrm/templates/settings/imports/imports.html:98 -#: bookwyrm/templates/settings/users/user_admin.html:87 -#: bookwyrm/templates/settings/users/user_info.html:33 +#: bookwyrm/templates/snippets/user_active_tag.html:8 msgid "Active" msgstr "活躍" @@ -352,122 +351,143 @@ msgstr "" msgid "Deleted item" msgstr "" -#: bookwyrm/models/user.py:32 bookwyrm/templates/book/book.html:307 +#: bookwyrm/models/user.py:33 bookwyrm/templates/book/book.html:307 msgid "Reviews" msgstr "書評" -#: bookwyrm/models/user.py:33 +#: bookwyrm/models/user.py:34 msgid "Comments" msgstr "評論" -#: bookwyrm/models/user.py:34 +#: bookwyrm/models/user.py:35 msgid "Quotations" msgstr "引用" -#: bookwyrm/models/user.py:35 +#: bookwyrm/models/user.py:36 msgid "Everything else" msgstr "所有其他內容" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home Timeline" msgstr "主頁時間線" -#: bookwyrm/settings.py:230 +#: bookwyrm/settings.py:232 msgid "Home" msgstr "主頁" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 msgid "Books Timeline" msgstr "書目時間線" -#: bookwyrm/settings.py:231 +#: bookwyrm/settings.py:233 #: bookwyrm/templates/guided_tour/user_profile.html:101 #: bookwyrm/templates/search/layout.html:22 #: bookwyrm/templates/search/layout.html:43 -#: bookwyrm/templates/user/layout.html:112 +#: bookwyrm/templates/user/layout.html:107 msgid "Books" msgstr "書目" -#: bookwyrm/settings.py:303 +#: bookwyrm/settings.py:313 msgid "English" msgstr "English(英語)" -#: bookwyrm/settings.py:304 +#: bookwyrm/settings.py:314 msgid "Català (Catalan)" msgstr "Català (加泰羅尼亞語)" -#: bookwyrm/settings.py:305 +#: bookwyrm/settings.py:315 msgid "Deutsch (German)" msgstr "Deutsch(德語)" -#: bookwyrm/settings.py:306 +#: bookwyrm/settings.py:316 msgid "Esperanto (Esperanto)" msgstr "Esperanto (世界語)" -#: bookwyrm/settings.py:307 +#: bookwyrm/settings.py:317 msgid "Español (Spanish)" msgstr "Español(西班牙語)" -#: bookwyrm/settings.py:308 +#: bookwyrm/settings.py:318 msgid "Euskara (Basque)" msgstr "Euskara (巴斯克語)" -#: bookwyrm/settings.py:309 +#: bookwyrm/settings.py:319 msgid "Galego (Galician)" msgstr "Galego (加利西亞語)" -#: bookwyrm/settings.py:310 +#: bookwyrm/settings.py:320 msgid "Italiano (Italian)" msgstr "Italiano (意大利語)" -#: bookwyrm/settings.py:311 +#: bookwyrm/settings.py:321 msgid "Suomi (Finnish)" msgstr "Suomi (芬蘭語)" -#: bookwyrm/settings.py:312 +#: bookwyrm/settings.py:322 msgid "Français (French)" msgstr "Français(法語)" -#: bookwyrm/settings.py:313 +#: bookwyrm/settings.py:323 msgid "Lietuvių (Lithuanian)" msgstr "Lietuvių (立陶宛語)" -#: bookwyrm/settings.py:314 +#: bookwyrm/settings.py:324 msgid "Nederlands (Dutch)" msgstr "Nederlands (荷蘭語)" -#: bookwyrm/settings.py:315 +#: bookwyrm/settings.py:325 msgid "Norsk (Norwegian)" msgstr "Norsk (挪威語)" -#: bookwyrm/settings.py:316 +#: bookwyrm/settings.py:326 msgid "Polski (Polish)" msgstr "Polski (波蘭語)" -#: bookwyrm/settings.py:317 +#: bookwyrm/settings.py:327 msgid "Português do Brasil (Brazilian Portuguese)" msgstr "Português do Brasil (巴西葡萄牙語)" -#: bookwyrm/settings.py:318 +#: bookwyrm/settings.py:328 msgid "Português Europeu (European Portuguese)" msgstr "Português Europeu (歐洲葡萄牙語)" -#: bookwyrm/settings.py:319 +#: bookwyrm/settings.py:329 msgid "Română (Romanian)" msgstr "Română (羅馬尼亞語)" -#: bookwyrm/settings.py:320 +#: bookwyrm/settings.py:330 msgid "Svenska (Swedish)" msgstr "Svenska (瑞典語)" -#: bookwyrm/settings.py:321 +#: bookwyrm/settings.py:331 +msgid "Українська (Ukrainian)" +msgstr "" + +#: bookwyrm/settings.py:332 msgid "简体中文 (Simplified Chinese)" msgstr "簡體中文" -#: bookwyrm/settings.py:322 +#: bookwyrm/settings.py:333 msgid "繁體中文 (Traditional Chinese)" msgstr "繁體中文" +#: bookwyrm/templates/403.html:5 +msgid "Oh no!" +msgstr "" + +#: bookwyrm/templates/403.html:9 bookwyrm/templates/landing/invite.html:21 +msgid "Permission Denied" +msgstr "沒有權限" + +#: bookwyrm/templates/403.html:11 +#, python-format +msgid "You do not have permission to view this page or perform this action. Your user permission level is %(level)s." +msgstr "" + +#: bookwyrm/templates/403.html:15 +msgid "If you think you should have access, please speak to your BookWyrm server administrator." +msgstr "" + #: bookwyrm/templates/404.html:4 bookwyrm/templates/404.html:8 msgid "Not Found" msgstr "未找到" @@ -476,6 +496,20 @@ msgstr "未找到" msgid "The page you requested doesn't seem to exist!" msgstr "你請求的頁面似乎並不存在!" +#: bookwyrm/templates/413.html:4 bookwyrm/templates/413.html:8 +msgid "File too large" +msgstr "" + +#: bookwyrm/templates/413.html:9 +msgid "The file you are uploading is too large." +msgstr "" + +#: bookwyrm/templates/413.html:11 +msgid "\n" +" You you can try using a smaller file, or ask your BookWyrm server administrator to increase the DATA_UPLOAD_MAX_MEMORY_SIZE setting.\n" +" " +msgstr "" + #: bookwyrm/templates/500.html:4 msgid "Oops!" msgstr "哎呀!" @@ -536,12 +570,12 @@ msgstr "" msgid "Moderator" msgstr "" -#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:67 +#: bookwyrm/templates/about/about.html:124 bookwyrm/templates/user_menu.html:62 msgid "Admin" msgstr "管理員" #: bookwyrm/templates/about/about.html:140 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:14 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:28 #: bookwyrm/templates/snippets/status/status_options.html:35 #: bookwyrm/templates/snippets/user_options.html:14 msgid "Send direct message" @@ -902,7 +936,7 @@ msgstr "ISNI:" #: bookwyrm/templates/settings/registration.html:96 #: bookwyrm/templates/settings/registration_limited.html:76 #: bookwyrm/templates/settings/site.html:144 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:75 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:89 #: bookwyrm/templates/shelf/form.html:25 #: bookwyrm/templates/snippets/reading_modals/layout.html:18 msgid "Save" @@ -1036,13 +1070,13 @@ msgstr "地點" #: bookwyrm/templates/guided_tour/lists.html:14 #: bookwyrm/templates/guided_tour/user_books.html:102 #: bookwyrm/templates/guided_tour/user_profile.html:78 -#: bookwyrm/templates/layout.html:91 bookwyrm/templates/lists/curate.html:8 +#: bookwyrm/templates/layout.html:88 bookwyrm/templates/lists/curate.html:8 #: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5 #: bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/search/layout.html:26 #: bookwyrm/templates/search/layout.html:51 #: bookwyrm/templates/settings/celery.html:77 -#: bookwyrm/templates/user/layout.html:106 bookwyrm/templates/user/lists.html:6 +#: bookwyrm/templates/user/layout.html:101 bookwyrm/templates/user/lists.html:6 msgid "Lists" msgstr "列表" @@ -1318,7 +1352,7 @@ msgid "Add Another Author" msgstr "新增其他作者" #: bookwyrm/templates/book/edit/edit_book_form.html:231 -#: bookwyrm/templates/shelf/shelf.html:162 +#: bookwyrm/templates/shelf/shelf.html:149 msgid "Cover" msgstr "封面" @@ -1445,8 +1479,9 @@ msgstr "" #: bookwyrm/templates/settings/announcements/announcements.html:37 #: bookwyrm/templates/settings/invites/manage_invite_requests.html:48 #: bookwyrm/templates/settings/invites/status_filter.html:5 +#: bookwyrm/templates/settings/themes.html:111 #: bookwyrm/templates/settings/users/user_admin.html:56 -#: bookwyrm/templates/settings/users/user_info.html:24 +#: bookwyrm/templates/settings/users/user_info.html:35 msgid "Status" msgstr "狀態" @@ -1455,7 +1490,7 @@ msgstr "狀態" #: bookwyrm/templates/settings/federation/instance.html:112 #: bookwyrm/templates/settings/imports/imports.html:141 #: bookwyrm/templates/settings/reports/report_links_table.html:6 -#: bookwyrm/templates/settings/themes.html:99 +#: bookwyrm/templates/settings/themes.html:108 msgid "Actions" msgstr "動作" @@ -1577,7 +1612,7 @@ msgid "Sorry! We couldn't find that code." msgstr "" #: bookwyrm/templates/confirm_email/confirm_email.html:19 -#: bookwyrm/templates/settings/users/user_info.html:98 +#: bookwyrm/templates/settings/users/user_info.html:92 msgid "Confirmation code:" msgstr "" @@ -1744,7 +1779,7 @@ msgstr "" #: bookwyrm/templates/discover/discover.html:4 #: bookwyrm/templates/discover/discover.html:10 -#: bookwyrm/templates/layout.html:94 +#: bookwyrm/templates/layout.html:91 msgid "Discover" msgstr "" @@ -1899,7 +1934,7 @@ msgid "Direct Messages with %(username)s" msgstr "與 %(username)s 私信" #: bookwyrm/templates/feed/direct_messages.html:10 -#: bookwyrm/templates/user_menu.html:44 +#: bookwyrm/templates/user_menu.html:39 msgid "Direct Messages" msgstr "私信" @@ -1937,7 +1972,7 @@ msgstr "更新" #: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/guided_tour/home.html:127 -#: bookwyrm/templates/user_menu.html:39 +#: bookwyrm/templates/layout.html:94 msgid "Your Books" msgstr "你的書目" @@ -1985,19 +2020,19 @@ msgid "Add to your books" msgstr "" #: bookwyrm/templates/get_started/book_preview.html:10 -#: bookwyrm/templates/shelf/shelf.html:101 bookwyrm/templates/user/user.html:37 +#: bookwyrm/templates/shelf/shelf.html:88 bookwyrm/templates/user/user.html:37 #: bookwyrm/templatetags/shelf_tags.py:14 msgid "To Read" msgstr "想讀" #: bookwyrm/templates/get_started/book_preview.html:11 -#: bookwyrm/templates/shelf/shelf.html:102 bookwyrm/templates/user/user.html:38 +#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:38 #: bookwyrm/templatetags/shelf_tags.py:15 msgid "Currently Reading" msgstr "在讀" #: bookwyrm/templates/get_started/book_preview.html:12 -#: bookwyrm/templates/shelf/shelf.html:103 +#: bookwyrm/templates/shelf/shelf.html:90 #: bookwyrm/templates/snippets/shelf_selector.html:46 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 @@ -2006,7 +2041,7 @@ msgid "Read" msgstr "讀過" #: bookwyrm/templates/get_started/book_preview.html:13 -#: bookwyrm/templates/shelf/shelf.html:104 bookwyrm/templates/user/user.html:40 +#: bookwyrm/templates/shelf/shelf.html:91 bookwyrm/templates/user/user.html:40 #: bookwyrm/templatetags/shelf_tags.py:17 msgid "Stopped Reading" msgstr "" @@ -2501,7 +2536,7 @@ msgid "Barcode reader" msgstr "" #: bookwyrm/templates/guided_tour/home.html:102 -msgid "Use the Feed, Lists and Discover links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!" +msgid "Use the Lists, Discover, and Your Books links to discover reading suggestions and the latest happenings on this server, or to see your catalogued books!" msgstr "" #: bookwyrm/templates/guided_tour/home.html:103 @@ -2533,7 +2568,7 @@ msgid "Notifications" msgstr "通知" #: bookwyrm/templates/guided_tour/home.html:200 -msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." +msgid "Your profile, user directory, direct messages, and settings can be accessed by clicking on your name in the menu here." msgstr "" #: bookwyrm/templates/guided_tour/home.html:200 @@ -2689,8 +2724,7 @@ msgstr "" #: bookwyrm/templates/guided_tour/user_groups.html:11 #: bookwyrm/templates/guided_tour/user_profile.html:55 -#: bookwyrm/templates/user/groups.html:6 -#: bookwyrm/templates/user/layout.html:100 +#: bookwyrm/templates/user/groups.html:6 bookwyrm/templates/user/layout.html:95 msgid "Groups" msgstr "" @@ -2744,7 +2778,7 @@ msgid "This tab shows everything you have read towards your annual reading goal, msgstr "" #: bookwyrm/templates/guided_tour/user_profile.html:32 -#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:94 +#: bookwyrm/templates/user/goal.html:6 bookwyrm/templates/user/layout.html:89 msgid "Reading Goal" msgstr "閱讀目標" @@ -2783,7 +2817,7 @@ msgstr "" #: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:9 -#: bookwyrm/templates/shelf/shelf.html:79 +#: bookwyrm/templates/shelf/shelf.html:66 msgid "Import Books" msgstr "匯入書目" @@ -2951,8 +2985,8 @@ msgid "Row" msgstr "" #: bookwyrm/templates/import/import_status.html:110 -#: bookwyrm/templates/shelf/shelf.html:163 -#: bookwyrm/templates/shelf/shelf.html:185 +#: bookwyrm/templates/shelf/shelf.html:150 +#: bookwyrm/templates/shelf/shelf.html:172 msgid "Title" msgstr "標題" @@ -2965,8 +2999,8 @@ msgid "Openlibrary key" msgstr "" #: bookwyrm/templates/import/import_status.html:121 -#: bookwyrm/templates/shelf/shelf.html:164 -#: bookwyrm/templates/shelf/shelf.html:188 +#: bookwyrm/templates/shelf/shelf.html:151 +#: bookwyrm/templates/shelf/shelf.html:175 msgid "Author" msgstr "作者" @@ -3072,10 +3106,6 @@ msgstr "" msgid "Create an Account" msgstr "建立帳號" -#: bookwyrm/templates/landing/invite.html:21 -msgid "Permission Denied" -msgstr "沒有權限" - #: bookwyrm/templates/landing/invite.html:22 msgid "Sorry! This invite code is no longer valid." msgstr "抱歉!此邀請碼已不再有效。" @@ -3203,10 +3233,6 @@ msgstr "" msgid "Main navigation menu" msgstr "主導航選單" -#: bookwyrm/templates/layout.html:88 -msgid "Feed" -msgstr "動態" - #: bookwyrm/templates/layout.html:134 bookwyrm/templates/ostatus/error.html:33 msgid "password" msgstr "密碼" @@ -3415,6 +3441,7 @@ msgid "Set" msgstr "設定" #: bookwyrm/templates/lists/list.html:167 +#: bookwyrm/templates/snippets/remove_follower_button.html:4 #: bookwyrm/templates/snippets/remove_from_group_button.html:20 msgid "Remove" msgstr "移除" @@ -3491,11 +3518,11 @@ msgstr "" msgid "You can undo the move to restore full functionality, but some followers may have already unfollowed this account." msgstr "" -#: bookwyrm/templates/moved.html:42 bookwyrm/templates/shelf/shelf.html:32 +#: bookwyrm/templates/moved.html:42 msgid "Undo move" msgstr "" -#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:82 +#: bookwyrm/templates/moved.html:46 bookwyrm/templates/user_menu.html:77 msgid "Log out" msgstr "登出" @@ -3701,6 +3728,12 @@ msgstr "你的 匯入 已完成。" msgid "%(related_user)s invited you to join the group \"%(group_name)s\"" msgstr "" +#: bookwyrm/templates/notifications/items/invite_request.html:15 +#, python-format +msgid "New invite request awaiting response" +msgid_plural "%(display_count)s new invite requests awaiting response" +msgstr[0] "" + #: bookwyrm/templates/notifications/items/join.html:16 #, python-format msgid "has joined your group \"%(group_name)s\"" @@ -4131,7 +4164,7 @@ msgstr "編輯使用者資料" #: bookwyrm/templates/preferences/edit_user.html:12 #: bookwyrm/templates/preferences/edit_user.html:25 -#: bookwyrm/templates/settings/users/user_info.html:7 +#: bookwyrm/templates/settings/users/user_info.html:8 #: bookwyrm/templates/user_menu.html:29 msgid "Profile" msgstr "使用者資料" @@ -4973,19 +5006,19 @@ msgstr "實例:" #: bookwyrm/templates/settings/federation/edit_instance.html:52 #: bookwyrm/templates/settings/federation/instance.html:46 -#: bookwyrm/templates/settings/users/user_info.html:119 +#: bookwyrm/templates/settings/users/user_info.html:113 msgid "Status:" msgstr "狀態:" #: bookwyrm/templates/settings/federation/edit_instance.html:66 #: bookwyrm/templates/settings/federation/instance.html:40 -#: bookwyrm/templates/settings/users/user_info.html:113 +#: bookwyrm/templates/settings/users/user_info.html:107 msgid "Software:" msgstr "軟件:" #: bookwyrm/templates/settings/federation/edit_instance.html:76 #: bookwyrm/templates/settings/federation/instance.html:43 -#: bookwyrm/templates/settings/users/user_info.html:116 +#: bookwyrm/templates/settings/users/user_info.html:110 msgid "Version:" msgstr "版本:" @@ -4998,7 +5031,7 @@ msgid "Details" msgstr "詳細" #: bookwyrm/templates/settings/federation/instance.html:53 -#: bookwyrm/templates/user/layout.html:84 +#: bookwyrm/templates/user/layout.html:79 msgid "Activity" msgstr "活動" @@ -5012,7 +5045,7 @@ msgid "View all" msgstr "檢視全部" #: bookwyrm/templates/settings/federation/instance.html:62 -#: bookwyrm/templates/settings/users/user_info.html:66 +#: bookwyrm/templates/settings/users/user_info.html:60 msgid "Reports:" msgstr "舉報:" @@ -5029,7 +5062,7 @@ msgid "Blocked by us:" msgstr "我們所封鎖的:" #: bookwyrm/templates/settings/federation/instance.html:90 -#: bookwyrm/templates/settings/users/user_info.html:123 +#: bookwyrm/templates/settings/users/user_info.html:117 msgid "Notes" msgstr "備註" @@ -5186,7 +5219,7 @@ msgstr "邀請請求" #: bookwyrm/templates/settings/invites/manage_invites.html:3 #: bookwyrm/templates/settings/invites/manage_invites.html:15 #: bookwyrm/templates/settings/layout.html:42 -#: bookwyrm/templates/user_menu.html:60 +#: bookwyrm/templates/user_menu.html:55 msgid "Invites" msgstr "邀請" @@ -5660,57 +5693,73 @@ msgid "Set instance default theme" msgstr "" #: bookwyrm/templates/settings/themes.html:19 +msgid "One of your themes appears to be broken. Selecting this theme will make the application unusable." +msgstr "" + +#: bookwyrm/templates/settings/themes.html:28 msgid "Successfully added theme" msgstr "" -#: bookwyrm/templates/settings/themes.html:26 +#: bookwyrm/templates/settings/themes.html:35 msgid "How to add a theme" msgstr "" -#: bookwyrm/templates/settings/themes.html:29 +#: bookwyrm/templates/settings/themes.html:38 msgid "Copy the theme file into the bookwyrm/static/css/themes directory on your server from the command line." msgstr "" -#: bookwyrm/templates/settings/themes.html:32 +#: bookwyrm/templates/settings/themes.html:41 msgid "Run ./bw-dev compile_themes and ./bw-dev collectstatic." msgstr "" -#: bookwyrm/templates/settings/themes.html:35 +#: bookwyrm/templates/settings/themes.html:44 msgid "Add the file name using the form below to make it available in the application interface." msgstr "" -#: bookwyrm/templates/settings/themes.html:42 -#: bookwyrm/templates/settings/themes.html:82 +#: bookwyrm/templates/settings/themes.html:51 +#: bookwyrm/templates/settings/themes.html:91 msgid "Add theme" msgstr "" -#: bookwyrm/templates/settings/themes.html:48 +#: bookwyrm/templates/settings/themes.html:57 msgid "Unable to save theme" msgstr "" -#: bookwyrm/templates/settings/themes.html:63 -#: bookwyrm/templates/settings/themes.html:93 +#: bookwyrm/templates/settings/themes.html:72 +#: bookwyrm/templates/settings/themes.html:102 msgid "Theme name" msgstr "" -#: bookwyrm/templates/settings/themes.html:73 +#: bookwyrm/templates/settings/themes.html:82 msgid "Theme filename" msgstr "" -#: bookwyrm/templates/settings/themes.html:88 +#: bookwyrm/templates/settings/themes.html:97 msgid "Available Themes" msgstr "" -#: bookwyrm/templates/settings/themes.html:96 +#: bookwyrm/templates/settings/themes.html:105 msgid "File" msgstr "" -#: bookwyrm/templates/settings/themes.html:111 +#: bookwyrm/templates/settings/themes.html:123 msgid "Remove theme" msgstr "" +#: bookwyrm/templates/settings/themes.html:134 +msgid "Test theme" +msgstr "" + +#: bookwyrm/templates/settings/themes.html:143 +msgid "Broken theme" +msgstr "" + +#: bookwyrm/templates/settings/themes.html:152 +msgid "Loaded successfully" +msgstr "" + #: bookwyrm/templates/settings/users/delete_user_form.html:5 -#: bookwyrm/templates/settings/users/user_moderation_actions.html:38 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:52 msgid "Permanently delete user" msgstr "" @@ -5749,106 +5798,108 @@ msgstr "最後活躍" msgid "Remote instance" msgstr "移除伺服器" -#: bookwyrm/templates/settings/users/user_admin.html:82 -#: bookwyrm/templates/settings/users/user_info.html:29 -msgid "Moved" -msgstr "" - -#: bookwyrm/templates/settings/users/user_admin.html:93 -msgid "Deleted" -msgstr "" - -#: bookwyrm/templates/settings/users/user_admin.html:99 -#: bookwyrm/templates/settings/users/user_info.html:38 -msgid "Inactive" -msgstr "停用" - -#: bookwyrm/templates/settings/users/user_admin.html:108 -#: bookwyrm/templates/settings/users/user_info.html:133 +#: bookwyrm/templates/settings/users/user_admin.html:84 +#: bookwyrm/templates/settings/users/user_info.html:127 msgid "Not set" msgstr "未設定" -#: bookwyrm/templates/settings/users/user_info.html:16 +#: bookwyrm/templates/settings/users/user_info.html:20 +msgid "This account is the instance actor for signing HTTP requests." +msgstr "" + +#: bookwyrm/templates/settings/users/user_info.html:24 msgid "View user profile" msgstr "檢視使用者資料" -#: bookwyrm/templates/settings/users/user_info.html:19 +#: bookwyrm/templates/settings/users/user_info.html:30 msgid "Go to user admin" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:46 +#: bookwyrm/templates/settings/users/user_info.html:40 msgid "Local" msgstr "本站" -#: bookwyrm/templates/settings/users/user_info.html:48 +#: bookwyrm/templates/settings/users/user_info.html:42 msgid "Remote" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:57 +#: bookwyrm/templates/settings/users/user_info.html:51 msgid "User details" msgstr "使用者詳情" -#: bookwyrm/templates/settings/users/user_info.html:61 +#: bookwyrm/templates/settings/users/user_info.html:55 msgid "Email:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:71 +#: bookwyrm/templates/settings/users/user_info.html:65 msgid "(View reports)" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:77 +#: bookwyrm/templates/settings/users/user_info.html:71 msgid "Blocked by count:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:80 +#: bookwyrm/templates/settings/users/user_info.html:74 msgid "Date added:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:83 +#: bookwyrm/templates/settings/users/user_info.html:77 msgid "Last active date:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:86 +#: bookwyrm/templates/settings/users/user_info.html:80 msgid "Manually approved followers:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:89 +#: bookwyrm/templates/settings/users/user_info.html:83 msgid "Discoverable:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:93 +#: bookwyrm/templates/settings/users/user_info.html:87 msgid "Deactivation reason:" msgstr "" -#: bookwyrm/templates/settings/users/user_info.html:108 +#: bookwyrm/templates/settings/users/user_info.html:102 msgid "Instance details" msgstr "實例詳情" -#: bookwyrm/templates/settings/users/user_info.html:130 +#: bookwyrm/templates/settings/users/user_info.html:124 msgid "View instance" msgstr "檢視實例" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:5 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:6 msgid "Permanently deleted" msgstr "" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:8 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:9 msgid "User Actions" msgstr "" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:21 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:15 +msgid "This is the instance admin actor" +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:18 +msgid "You must not delete or disable this account as it is critical to the functioning of your server. This actor signs outgoing GET requests to smooth interaction with secure ActivityPub servers." +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:19 +msgid "This account is not discoverable by ordinary users and does not have a profile page." +msgstr "" + +#: bookwyrm/templates/settings/users/user_moderation_actions.html:35 msgid "Activate user" msgstr "" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:27 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:41 msgid "Suspend user" msgstr "停用使用者" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:32 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:46 msgid "Un-suspend user" msgstr "取消停用使用者" -#: bookwyrm/templates/settings/users/user_moderation_actions.html:54 +#: bookwyrm/templates/settings/users/user_moderation_actions.html:68 msgid "Access level:" msgstr "訪問權限:" @@ -5904,7 +5955,7 @@ msgstr "" msgid "You are running BookWyrm in production mode without https. USE_HTTPS should be enabled in production." msgstr "" -#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:49 +#: bookwyrm/templates/setup/config.html:52 bookwyrm/templates/user_menu.html:44 msgid "Settings" msgstr "設定" @@ -5961,7 +6012,7 @@ msgid "Need help?" msgstr "" #: bookwyrm/templates/shelf/create_shelf_form.html:5 -#: bookwyrm/templates/shelf/shelf.html:87 +#: bookwyrm/templates/shelf/shelf.html:74 msgid "Create shelf" msgstr "建立書架" @@ -5969,65 +6020,57 @@ msgstr "建立書架" msgid "Edit Shelf" msgstr "編輯書架" -#: bookwyrm/templates/shelf/shelf.html:25 -msgid "You have have moved to" -msgstr "" - -#: bookwyrm/templates/shelf/shelf.html:28 -msgid "You can undo this move to restore full functionality, but some followers may have already unfollowed this account." -msgstr "" - -#: bookwyrm/templates/shelf/shelf.html:39 +#: bookwyrm/templates/shelf/shelf.html:26 #: bookwyrm/templates/user/relationships/followers.html:18 #: bookwyrm/templates/user/relationships/following.html:18 msgid "User profile" msgstr "" -#: bookwyrm/templates/shelf/shelf.html:54 +#: bookwyrm/templates/shelf/shelf.html:41 #: bookwyrm/templatetags/shelf_tags.py:13 bookwyrm/views/shelf/shelf.py:53 msgid "All books" msgstr "所有書目" -#: bookwyrm/templates/shelf/shelf.html:112 +#: bookwyrm/templates/shelf/shelf.html:99 #, python-format msgid "%(formatted_count)s book" msgid_plural "%(formatted_count)s books" msgstr[0] "" -#: bookwyrm/templates/shelf/shelf.html:119 +#: bookwyrm/templates/shelf/shelf.html:106 #, python-format msgid "(showing %(start)s-%(end)s)" msgstr "" -#: bookwyrm/templates/shelf/shelf.html:131 +#: bookwyrm/templates/shelf/shelf.html:118 msgid "Edit shelf" msgstr "編輯書架" -#: bookwyrm/templates/shelf/shelf.html:139 +#: bookwyrm/templates/shelf/shelf.html:126 msgid "Delete shelf" msgstr "刪除書架" -#: bookwyrm/templates/shelf/shelf.html:167 -#: bookwyrm/templates/shelf/shelf.html:193 +#: bookwyrm/templates/shelf/shelf.html:154 +#: bookwyrm/templates/shelf/shelf.html:180 msgid "Shelved" msgstr "上架時間" -#: bookwyrm/templates/shelf/shelf.html:168 -#: bookwyrm/templates/shelf/shelf.html:196 +#: bookwyrm/templates/shelf/shelf.html:155 +#: bookwyrm/templates/shelf/shelf.html:183 msgid "Started" msgstr "開始時間" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Finished" msgstr "完成時間" -#: bookwyrm/templates/shelf/shelf.html:169 -#: bookwyrm/templates/shelf/shelf.html:199 +#: bookwyrm/templates/shelf/shelf.html:156 +#: bookwyrm/templates/shelf/shelf.html:186 msgid "Until" msgstr "" -#: bookwyrm/templates/shelf/shelf.html:225 +#: bookwyrm/templates/shelf/shelf.html:212 msgid "This shelf is empty." msgstr "此書架是空的。" @@ -6331,6 +6374,11 @@ msgstr "%(username)s 已經閱讀了 %(goal_count)s 本書 msgid "Follow at new account" msgstr "" +#: bookwyrm/templates/snippets/moved_user_notice.html:7 +#, python-format +msgid "%(user)s has moved to %(moved_to_name)s" +msgstr "" + #: bookwyrm/templates/snippets/page_text.html:8 #, python-format msgid "page %(page)s of %(total_pages)s" @@ -6633,6 +6681,18 @@ msgstr "顯示更多" msgid "Show less" msgstr "顯示更少" +#: bookwyrm/templates/snippets/user_active_tag.html:5 +msgid "Moved" +msgstr "" + +#: bookwyrm/templates/snippets/user_active_tag.html:12 +msgid "Deleted" +msgstr "" + +#: bookwyrm/templates/snippets/user_active_tag.html:15 +msgid "Inactive" +msgstr "停用" + #: bookwyrm/templates/two_factor_auth/two_factor_login.html:29 msgid "2FA check" msgstr "" @@ -6691,15 +6751,11 @@ msgstr "" msgid "Groups: %(username)s" msgstr "" -#: bookwyrm/templates/user/layout.html:50 -msgid "has moved to" -msgstr "" - -#: bookwyrm/templates/user/layout.html:64 +#: bookwyrm/templates/user/layout.html:59 msgid "Follow Requests" msgstr "關注請求" -#: bookwyrm/templates/user/layout.html:88 +#: bookwyrm/templates/user/layout.html:83 #: bookwyrm/templates/user/reviews_comments.html:6 #: bookwyrm/templates/user/reviews_comments.html:12 msgid "Reviews and Comments" @@ -6720,7 +6776,7 @@ msgstr "建立列表" msgid "Joined %(date)s" msgstr "在 %(date)s 加入" -#: bookwyrm/templates/user/relationships/followers.html:31 +#: bookwyrm/templates/user/relationships/followers.html:36 #, python-format msgid "%(username)s has no followers" msgstr "%(username)s 沒有關注者" @@ -6831,7 +6887,7 @@ msgid "%(num)d book - by %(user)s" msgid_plural "%(num)d books - by %(user)s" msgstr[0] "" -#: bookwyrm/templatetags/utilities.py:48 +#: bookwyrm/templatetags/utilities.py:49 #, python-format msgid "%(title)s: %(subtitle)s" msgstr "" From 913a19c8f0bdc8f5693d266f4b41808493d0a27d Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Mon, 1 Jan 2024 19:33:49 -0800 Subject: [PATCH 088/184] Formats migration file --- bookwyrm/migrations/0191_merge_20240102_0326.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/bookwyrm/migrations/0191_merge_20240102_0326.py b/bookwyrm/migrations/0191_merge_20240102_0326.py index 5f1fd88d2..485c14af8 100644 --- a/bookwyrm/migrations/0191_merge_20240102_0326.py +++ b/bookwyrm/migrations/0191_merge_20240102_0326.py @@ -6,9 +6,8 @@ from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('bookwyrm', '0189_alter_user_preferred_language'), - ('bookwyrm', '0190_alter_notification_notification_type'), + ("bookwyrm", "0189_alter_user_preferred_language"), + ("bookwyrm", "0190_alter_notification_notification_type"), ] - operations = [ - ] + operations = [] From d9a640c809dafd17b53654b5ad0f7afbafb6e8d5 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Jan 2024 08:36:42 -0800 Subject: [PATCH 089/184] Fixes version number --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index faef31a43..39e898a4f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.7.0 +0.7.1 From 2a85378456ef26d50702fc35417928a2c99bd7d3 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Jan 2024 09:57:41 -0800 Subject: [PATCH 090/184] Removes part of migration causing upgrade issues --- bookwyrm/migrations/0184_auto_20231106_0421.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/bookwyrm/migrations/0184_auto_20231106_0421.py b/bookwyrm/migrations/0184_auto_20231106_0421.py index e8197dea1..23bacc502 100644 --- a/bookwyrm/migrations/0184_auto_20231106_0421.py +++ b/bookwyrm/migrations/0184_auto_20231106_0421.py @@ -22,17 +22,6 @@ def update_deleted_users(apps, schema_editor): ).update(is_deleted=True) -def erase_deleted_user_data(apps, schema_editor): - """Retroactively clear user data""" - for user in User.objects.filter(is_deleted=True): - user.erase_user_data() - user.save( - broadcast=False, - update_fields=["email", "avatar", "preview_image", "summary", "name"], - ) - user.erase_user_statuses(broadcast=False) - - class Migration(migrations.Migration): dependencies = [ @@ -43,7 +32,4 @@ class Migration(migrations.Migration): migrations.RunPython( update_deleted_users, reverse_code=migrations.RunPython.noop ), - migrations.RunPython( - erase_deleted_user_data, reverse_code=migrations.RunPython.noop - ), ] From 381490e31d80670e8bb790a97b46b30611e32b9e Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Jan 2024 10:35:30 -0800 Subject: [PATCH 091/184] Adds management command to clear all deleted user data --- .../commands/erase_deleted_user_data.py | 40 +++++++++++++++++++ bookwyrm/models/user.py | 14 +++++++ bw-dev | 5 ++- 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 bookwyrm/management/commands/erase_deleted_user_data.py diff --git a/bookwyrm/management/commands/erase_deleted_user_data.py b/bookwyrm/management/commands/erase_deleted_user_data.py new file mode 100644 index 000000000..fd3c790ce --- /dev/null +++ b/bookwyrm/management/commands/erase_deleted_user_data.py @@ -0,0 +1,40 @@ +""" Erase any data stored about deleted users """ +import sys +from django.core.management.base import BaseCommand, CommandError +from bookwyrm import models +from bookwyrm.models.user import erase_user_data + +# pylint: disable=missing-function-docstring +class Command(BaseCommand): + """command-line options""" + + help = "Remove Two Factor Authorisation from user" + + def add_arguments(self, parser): # pylint: disable=no-self-use + parser.add_argument( + "--dryrun", + action="store_true", + help="Preview users to be cleared without altering the database", + ) + + def handle(self, *args, **options): # pylint: disable=unused-argument + + # Check for anything fishy + bad_state = models.User.objects.filter(is_deleted=True, is_active=True) + if bad_state.exists(): + raise CommandError( + f"{bad_state.count()} user(s) marked as both active and deleted" + ) + + deleted_users = models.User.objects.filter(is_deleted=True) + self.stdout.write(f"Found {deleted_users.count()} deleted users") + if options["dryrun"]: + self.stdout.write("\n".join(u.username for u in deleted_users[:5])) + if deleted_users.count() > 5: + self.stdout.write("... and more") + sys.exit() + + self.stdout.write("Erasing user data:") + for user_id in deleted_users.values_list("id", flat=True): + erase_user_data.delay(user_id) + self.stdout.write(".", ending="") diff --git a/bookwyrm/models/user.py b/bookwyrm/models/user.py index 75ca1d527..89fd39b73 100644 --- a/bookwyrm/models/user.py +++ b/bookwyrm/models/user.py @@ -523,6 +523,20 @@ class KeyPair(ActivitypubMixin, BookWyrmModel): return super().save(*args, **kwargs) +@app.task(queue=MISC) +def erase_user_data(user_id): + """Erase any custom data about this user asynchronously + This is for deleted historical user data that pre-dates data + being cleared automatically""" + user = User.objects.get(id=user_id) + user.erase_user_data() + user.save( + broadcast=False, + update_fields=["email", "avatar", "preview_image", "summary", "name"], + ) + user.erase_user_statuses(broadcast=False) + + @app.task(queue=MISC) def set_remote_server(user_id, allow_external_connections=False): """figure out the user's remote server in the background""" diff --git a/bw-dev b/bw-dev index 27c20fe45..5a36f78e0 100755 --- a/bw-dev +++ b/bw-dev @@ -246,6 +246,9 @@ case "$CMD" in remove_remote_user_preview_images) runweb python manage.py remove_remote_user_preview_images ;; + erase_deleted_user_data) + runweb python manage.py erase_deleted_user_data "$@" + ;; copy_media_to_s3) awscommand "bookwyrm_media_volume:/images"\ "s3 cp /images s3://${AWS_STORAGE_BUCKET_NAME}/images\ @@ -297,7 +300,7 @@ case "$CMD" in echo "Unrecognised command. Try:" echo " setup" echo " up [container]" - echo " down" + echo " down" echo " service_ports_web" echo " initdb" echo " resetdb" From d6f7f76c4d8c35ebafb994f6f4ee01b932ae2bf0 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Jan 2024 11:37:01 -0800 Subject: [PATCH 092/184] Removes outdated/unused version and updating code I had the bright idea of creating this update script but it doesn't work and hasn't been maintained, so it's just sitting there causing confusing and requiring weird things to exist in other places. Now, the unused `version` field can be removed and I can scrap the management command for getting versions. --- .../management/commands/instance_version.py | 54 ------------------- ..._version_sitesettings_available_version.py | 18 +++++++ bookwyrm/models/site.py | 2 +- bookwyrm/views/admin/dashboard.py | 18 ++----- update.sh | 37 ------------- 5 files changed, 24 insertions(+), 105 deletions(-) delete mode 100644 bookwyrm/management/commands/instance_version.py create mode 100644 bookwyrm/migrations/0192_rename_version_sitesettings_available_version.py delete mode 100755 update.sh diff --git a/bookwyrm/management/commands/instance_version.py b/bookwyrm/management/commands/instance_version.py deleted file mode 100644 index ca150d640..000000000 --- a/bookwyrm/management/commands/instance_version.py +++ /dev/null @@ -1,54 +0,0 @@ -""" Get your admin code to allow install """ -from django.core.management.base import BaseCommand - -from bookwyrm import models -from bookwyrm.settings import VERSION - - -# pylint: disable=no-self-use -class Command(BaseCommand): - """command-line options""" - - help = "What version is this?" - - def add_arguments(self, parser): - """specify which function to run""" - parser.add_argument( - "--current", - action="store_true", - help="Version stored in database", - ) - parser.add_argument( - "--target", - action="store_true", - help="Version stored in settings", - ) - parser.add_argument( - "--update", - action="store_true", - help="Update database version", - ) - - # pylint: disable=unused-argument - def handle(self, *args, **options): - """execute init""" - site = models.SiteSettings.objects.get() - current = site.version or "0.0.1" - target = VERSION - if options.get("current"): - print(current) - return - - if options.get("target"): - print(target) - return - - if options.get("update"): - site.version = target - site.save() - return - - if current != target: - print(f"{current}/{target}") - else: - print(current) diff --git a/bookwyrm/migrations/0192_rename_version_sitesettings_available_version.py b/bookwyrm/migrations/0192_rename_version_sitesettings_available_version.py new file mode 100644 index 000000000..219ae32f6 --- /dev/null +++ b/bookwyrm/migrations/0192_rename_version_sitesettings_available_version.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.23 on 2024-01-02 19:36 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('bookwyrm', '0191_merge_20240102_0326'), + ] + + operations = [ + migrations.RenameField( + model_name='sitesettings', + old_name='version', + new_name='available_version', + ), + ] diff --git a/bookwyrm/models/site.py b/bookwyrm/models/site.py index bd53f1f07..7ca7e0015 100644 --- a/bookwyrm/models/site.py +++ b/bookwyrm/models/site.py @@ -45,7 +45,7 @@ class SiteSettings(SiteModel): default_theme = models.ForeignKey( "Theme", null=True, blank=True, on_delete=models.SET_NULL ) - version = models.CharField(null=True, blank=True, max_length=10) + available_version = models.CharField(null=True, blank=True, max_length=10) # admin setup options install_mode = models.BooleanField(default=False) diff --git a/bookwyrm/views/admin/dashboard.py b/bookwyrm/views/admin/dashboard.py index 9d256fc6c..c5648ff11 100644 --- a/bookwyrm/views/admin/dashboard.py +++ b/bookwyrm/views/admin/dashboard.py @@ -15,7 +15,6 @@ from django.views import View from csp.decorators import csp_update from bookwyrm import models, settings -from bookwyrm.connectors.abstract_connector import get_data from bookwyrm.utils import regex @@ -59,18 +58,11 @@ class Dashboard(View): == site._meta.get_field("privacy_policy").get_default() ) - # check version - - try: - release = get_data(settings.RELEASE_API, timeout=3) - available_version = release.get("tag_name", None) - if available_version and version.parse(available_version) > version.parse( - settings.VERSION - ): - data["current_version"] = settings.VERSION - data["available_version"] = available_version - except: # pylint: disable= bare-except - pass + if site.available_version and version.parse(site.available_version) > version.parse( + settings.VERSION + ): + data["current_version"] = settings.VERSION + data["available_version"] = site.available_version return TemplateResponse(request, "settings/dashboard/dashboard.html", data) diff --git a/update.sh b/update.sh deleted file mode 100755 index 727ce1b24..000000000 --- a/update.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env bash -set -e - -# determine inital and target versions -initial_version="`./bw-dev runweb python manage.py instance_version --current`" -target_version="`./bw-dev runweb python manage.py instance_version --target`" - -initial_version="`echo $initial_version | tail -n 1 | xargs`" -target_version="`echo $target_version | tail -n 1 | xargs`" -if [[ "$initial_version" = "$target_version" ]]; then - echo "Already up to date; version $initial_version" - exit -fi - -echo "---------------------------------------" -echo "Updating from version: $initial_version" -echo ".......... to version: $target_version" -echo "---------------------------------------" - -function version_gt() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"; } - -# execute scripts between initial and target -for version in `ls -A updates/ | sort -V `; do - if version_gt $initial_version $version; then - # too early - continue - fi - if version_gt $version $target_version; then - # too late - continue - fi - echo "Running tasks for version $version" - ./updates/$version -done - -./bw-dev runweb python manage.py instance_version --update -echo "✨ ----------- Done! --------------- ✨" From 5509941aa4d14fc5422644cac5e8ff658e1fbd5b Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Jan 2024 12:23:32 -0800 Subject: [PATCH 093/184] Adds schedule-able task to check for version updates --- ..._version_sitesettings_available_version.py | 8 +++---- bookwyrm/models/site.py | 14 ++++++++++++ .../settings/dashboard/dashboard.html | 4 ++++ .../dashboard/warnings/check_for_updates.html | 22 +++++++++++++++++++ bookwyrm/views/admin/dashboard.py | 21 +++++++++++++++++- 5 files changed, 64 insertions(+), 5 deletions(-) create mode 100644 bookwyrm/templates/settings/dashboard/warnings/check_for_updates.html diff --git a/bookwyrm/migrations/0192_rename_version_sitesettings_available_version.py b/bookwyrm/migrations/0192_rename_version_sitesettings_available_version.py index 219ae32f6..db67b4e92 100644 --- a/bookwyrm/migrations/0192_rename_version_sitesettings_available_version.py +++ b/bookwyrm/migrations/0192_rename_version_sitesettings_available_version.py @@ -6,13 +6,13 @@ from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('bookwyrm', '0191_merge_20240102_0326'), + ("bookwyrm", "0191_merge_20240102_0326"), ] operations = [ migrations.RenameField( - model_name='sitesettings', - old_name='version', - new_name='available_version', + model_name="sitesettings", + old_name="version", + new_name="available_version", ), ] diff --git a/bookwyrm/models/site.py b/bookwyrm/models/site.py index 7ca7e0015..f82a4d94b 100644 --- a/bookwyrm/models/site.py +++ b/bookwyrm/models/site.py @@ -10,8 +10,11 @@ from django.dispatch import receiver from django.utils import timezone from model_utils import FieldTracker +from bookwyrm.connectors.abstract_connector import get_data from bookwyrm.preview_images import generate_site_preview_image_task from bookwyrm.settings import DOMAIN, ENABLE_PREVIEW_IMAGES, STATIC_FULL_URL +from bookwyrm.settings import RELEASE_API +from bookwyrm.tasks import app, MISC from .base_model import BookWyrmModel, new_access_code from .user import User from .fields import get_absolute_url @@ -244,3 +247,14 @@ def preview_image(instance, *args, **kwargs): if len(changed_fields) > 0: generate_site_preview_image_task.delay() + + +@app.task(queue=MISC) +def check_for_updates_task(): + """ See if git remote knows about a new version """ + site = SiteSettings.objects.get() + release = get_data(RELEASE_API, timeout=3) + available_version = release.get("tag_name", None) + if available_version: + site.available_version = available_version + site.save(update_fields=["available_version"]) diff --git a/bookwyrm/templates/settings/dashboard/dashboard.html b/bookwyrm/templates/settings/dashboard/dashboard.html index 4c109c7e1..d43b3bade 100644 --- a/bookwyrm/templates/settings/dashboard/dashboard.html +++ b/bookwyrm/templates/settings/dashboard/dashboard.html @@ -45,6 +45,10 @@ {% include 'settings/dashboard/warnings/update_version.html' with warning_level="warning" fullwidth=True %} {% endif %} + {% if schedule_form %} + {% include 'settings/dashboard/warnings/check_for_updates.html' with warning_level="success" fullwidth=True %} + {% endif %} + {% if missing_privacy or missing_conduct %}

    {% if missing_privacy %} diff --git a/bookwyrm/templates/settings/dashboard/warnings/check_for_updates.html b/bookwyrm/templates/settings/dashboard/warnings/check_for_updates.html new file mode 100644 index 000000000..07f11a62d --- /dev/null +++ b/bookwyrm/templates/settings/dashboard/warnings/check_for_updates.html @@ -0,0 +1,22 @@ +{% extends 'settings/dashboard/warnings/layout.html' %} +{% load i18n %} + +{% block warning_text %} + +
    + {% csrf_token %} + +

    + {% blocktrans trimmed with current=current_version available=available_version %} + Check for available version updates? (Recommended) + {% endblocktrans %} +

    + + {{ schedule_form.every.as_hidden }} + {{ schedule_form.period.as_hidden }} + + +
    + +{% endblock %} + diff --git a/bookwyrm/views/admin/dashboard.py b/bookwyrm/views/admin/dashboard.py index c5648ff11..ea0675f59 100644 --- a/bookwyrm/views/admin/dashboard.py +++ b/bookwyrm/views/admin/dashboard.py @@ -6,15 +6,18 @@ from dateutil.parser import parse from packaging import version from django.contrib.auth.decorators import login_required, permission_required +from django.db import transaction from django.db.models import Q +from django.shortcuts import redirect from django.template.response import TemplateResponse from django.utils import timezone from django.utils.decorators import method_decorator from django.views import View +from django_celery_beat.models import PeriodicTask from csp.decorators import csp_update -from bookwyrm import models, settings +from bookwyrm import forms, models, settings from bookwyrm.utils import regex @@ -64,8 +67,24 @@ class Dashboard(View): data["current_version"] = settings.VERSION data["available_version"] = site.available_version + if not PeriodicTask.objects.filter(name="check-for-updates").exists(): + data["schedule_form"] = forms.IntervalScheduleForm({"every": 1, "period": "days"}) + return TemplateResponse(request, "settings/dashboard/dashboard.html", data) + def post(self, request): + """ Create a schedule task to check for updates """ + schedule_form = forms.IntervalScheduleForm(request.POST) + + with transaction.atomic(): + schedule = schedule_form.save(request) + PeriodicTask.objects.get_or_create( + interval=schedule, + name="check-for-updates", + task="bookwyrm.models.site.check_for_updates_task" + ) + return redirect("settings-dashboard") + def get_charts_and_stats(request): """Defines the dashboard charts""" From f36af42f414196f3e12d30a843470979cbcb9713 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Jan 2024 13:05:44 -0800 Subject: [PATCH 094/184] Adds view to see scheduled tasks --- bookwyrm/models/site.py | 2 +- bookwyrm/templates/settings/layout.html | 4 + bookwyrm/templates/settings/schedules.html | 116 +++++++++++++++++++++ bookwyrm/urls.py | 5 + bookwyrm/views/__init__.py | 1 + bookwyrm/views/admin/dashboard.py | 14 +-- bookwyrm/views/admin/schedule.py | 23 ++++ 7 files changed, 158 insertions(+), 7 deletions(-) create mode 100644 bookwyrm/templates/settings/schedules.html create mode 100644 bookwyrm/views/admin/schedule.py diff --git a/bookwyrm/models/site.py b/bookwyrm/models/site.py index f82a4d94b..ad0dbff64 100644 --- a/bookwyrm/models/site.py +++ b/bookwyrm/models/site.py @@ -251,7 +251,7 @@ def preview_image(instance, *args, **kwargs): @app.task(queue=MISC) def check_for_updates_task(): - """ See if git remote knows about a new version """ + """See if git remote knows about a new version""" site = SiteSettings.objects.get() release = get_data(RELEASE_API, timeout=3) available_version = release.get("tag_name", None) diff --git a/bookwyrm/templates/settings/layout.html b/bookwyrm/templates/settings/layout.html index dcaaaeb38..70c7ef0f4 100644 --- a/bookwyrm/templates/settings/layout.html +++ b/bookwyrm/templates/settings/layout.html @@ -85,6 +85,10 @@ {% url 'settings-celery' as url %} {% trans "Celery status" %} +
  • + {% url 'settings-schedules' as url %} + {% trans "Scheduled tasks" %} +
  • {% url 'settings-email-config' as url %} {% trans "Email Configuration" %} diff --git a/bookwyrm/templates/settings/schedules.html b/bookwyrm/templates/settings/schedules.html new file mode 100644 index 000000000..fe096092d --- /dev/null +++ b/bookwyrm/templates/settings/schedules.html @@ -0,0 +1,116 @@ +{% extends 'settings/layout.html' %} +{% load i18n %} +{% load humanize %} +{% load utilities %} + +{% block title %} +{% trans "Scheduled tasks" %} +{% endblock %} + +{% block header %} +{% trans "Scheduled tasks" %} +{% endblock %} + +{% block panel %} + +
    +

    {% trans "Tasks" %}

    +
    + + + + + + + + + + + {% for task in tasks %} + + + + + + + + + + {% empty %} + + + + {% endfor %} +
    + {% trans "Name" %} + + {% trans "Celery task" %} + + {% trans "Date changed" %} + + {% trans "Last run at" %} + + {% trans "Schedule" %} + + {% trans "Schedule ID" %} + + {% trans "Enabled" %} +
    + {{ task.name }} + + {{ task.task }} + + {{ task.date_changed }} + + {{ task.last_run_at }} + + {% firstof task.interval task.crontab "None" %} + + {{ task.interval.id }} + + {{ task.enabled|yesno }} +
    + {% trans "No scheduled tasks" %} +
    +
    +
    + +
    +

    {% trans "Schedules" %}

    +
    + + + + + + + {% for schedule in schedules %} + + + + + + {% empty %} + + + + {% endfor %} +
    + {% trans "ID" %} + + {% trans "Schedule" %} + + {% trans "Tasks" %} +
    + {{ schedule.id }} + + {{ schedule }} + + {{ schedule.periodictask_set.count }} +
    + {% trans "No schedules found" %} +
    +
    +
    + +{% endblock %} diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py index 76e60245b..64742347a 100644 --- a/bookwyrm/urls.py +++ b/bookwyrm/urls.py @@ -359,6 +359,11 @@ urlpatterns = [ re_path( r"^settings/celery/ping/?$", views.celery_ping, name="settings-celery-ping" ), + re_path( + r"^settings/schedules/?$", + views.ScheduledTasks.as_view(), + name="settings-schedules", + ), re_path( r"^settings/email-config/?$", views.EmailConfig.as_view(), diff --git a/bookwyrm/views/__init__.py b/bookwyrm/views/__init__.py index 3be813208..d77f2675f 100644 --- a/bookwyrm/views/__init__.py +++ b/bookwyrm/views/__init__.py @@ -5,6 +5,7 @@ from .admin.announcements import EditAnnouncement, delete_announcement from .admin.automod import AutoMod, automod_delete, run_automod from .admin.automod import schedule_automod_task, unschedule_automod_task from .admin.celery_status import CeleryStatus, celery_ping +from .admin.schedule import ScheduledTasks from .admin.dashboard import Dashboard from .admin.federation import Federation, FederatedServer from .admin.federation import AddFederatedServer, ImportServerBlocklist diff --git a/bookwyrm/views/admin/dashboard.py b/bookwyrm/views/admin/dashboard.py index ea0675f59..4b2575fa6 100644 --- a/bookwyrm/views/admin/dashboard.py +++ b/bookwyrm/views/admin/dashboard.py @@ -61,19 +61,21 @@ class Dashboard(View): == site._meta.get_field("privacy_policy").get_default() ) - if site.available_version and version.parse(site.available_version) > version.parse( - settings.VERSION - ): + if site.available_version and version.parse( + site.available_version + ) > version.parse(settings.VERSION): data["current_version"] = settings.VERSION data["available_version"] = site.available_version if not PeriodicTask.objects.filter(name="check-for-updates").exists(): - data["schedule_form"] = forms.IntervalScheduleForm({"every": 1, "period": "days"}) + data["schedule_form"] = forms.IntervalScheduleForm( + {"every": 1, "period": "days"} + ) return TemplateResponse(request, "settings/dashboard/dashboard.html", data) def post(self, request): - """ Create a schedule task to check for updates """ + """Create a schedule task to check for updates""" schedule_form = forms.IntervalScheduleForm(request.POST) with transaction.atomic(): @@ -81,7 +83,7 @@ class Dashboard(View): PeriodicTask.objects.get_or_create( interval=schedule, name="check-for-updates", - task="bookwyrm.models.site.check_for_updates_task" + task="bookwyrm.models.site.check_for_updates_task", ) return redirect("settings-dashboard") diff --git a/bookwyrm/views/admin/schedule.py b/bookwyrm/views/admin/schedule.py new file mode 100644 index 000000000..ce5944ee5 --- /dev/null +++ b/bookwyrm/views/admin/schedule.py @@ -0,0 +1,23 @@ +""" Scheduled celery tasks """ +from django.contrib.auth.decorators import login_required, permission_required +from django.template.response import TemplateResponse +from django.utils.decorators import method_decorator +from django.views import View +from django_celery_beat.models import PeriodicTask, IntervalSchedule + + +@method_decorator(login_required, name="dispatch") +@method_decorator( + permission_required("bookwyrm.edit_instance_settings", raise_exception=True), + name="dispatch", +) +# pylint: disable=no-self-use +class ScheduledTasks(View): + """Manage automated flagging""" + + def get(self, request): + """view schedules""" + data = {} + data["tasks"] = PeriodicTask.objects.all() + data["schedules"] = IntervalSchedule.objects.all() + return TemplateResponse(request, "settings/schedules.html", data) From 8be9e91d2162871faae0aaabbecdf8da449b6c2d Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Jan 2024 13:16:53 -0800 Subject: [PATCH 095/184] Re-use schedules rather than creating new ones --- bookwyrm/views/admin/automod.py | 4 ++-- bookwyrm/views/admin/dashboard.py | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/bookwyrm/views/admin/automod.py b/bookwyrm/views/admin/automod.py index 9a32dd9ee..58818ad9b 100644 --- a/bookwyrm/views/admin/automod.py +++ b/bookwyrm/views/admin/automod.py @@ -6,7 +6,7 @@ from django.template.response import TemplateResponse from django.utils.decorators import method_decorator from django.views import View from django.views.decorators.http import require_POST -from django_celery_beat.models import PeriodicTask +from django_celery_beat.models import PeriodicTask, IntervalSchedule from bookwyrm import forms, models @@ -54,7 +54,7 @@ def schedule_automod_task(request): return TemplateResponse(request, "settings/automod/rules.html", data) with transaction.atomic(): - schedule = form.save(request) + schedule, _ = IntervalSchedule.objects.get_or_create(**form.cleaned_data) PeriodicTask.objects.get_or_create( interval=schedule, name="automod-task", diff --git a/bookwyrm/views/admin/dashboard.py b/bookwyrm/views/admin/dashboard.py index 4b2575fa6..a4c630067 100644 --- a/bookwyrm/views/admin/dashboard.py +++ b/bookwyrm/views/admin/dashboard.py @@ -13,7 +13,7 @@ from django.template.response import TemplateResponse from django.utils import timezone from django.utils.decorators import method_decorator from django.views import View -from django_celery_beat.models import PeriodicTask +from django_celery_beat.models import PeriodicTask, IntervalSchedule from csp.decorators import csp_update @@ -79,7 +79,9 @@ class Dashboard(View): schedule_form = forms.IntervalScheduleForm(request.POST) with transaction.atomic(): - schedule = schedule_form.save(request) + schedule, _ = IntervalSchedule.objects.get_or_create( + **schedule_form.cleaned_data + ) PeriodicTask.objects.get_or_create( interval=schedule, name="check-for-updates", From 193a1c7d54564c3ab35be20e27681566c2305581 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Jan 2024 13:28:25 -0800 Subject: [PATCH 096/184] updates wording and fixes get or create logic --- VERSION | 2 +- .../settings/dashboard/warnings/check_for_updates.html | 4 ++-- bookwyrm/views/admin/dashboard.py | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/VERSION b/VERSION index 39e898a4f..ee6cdce3c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.7.1 +0.6.1 diff --git a/bookwyrm/templates/settings/dashboard/warnings/check_for_updates.html b/bookwyrm/templates/settings/dashboard/warnings/check_for_updates.html index 07f11a62d..f0a2a8013 100644 --- a/bookwyrm/templates/settings/dashboard/warnings/check_for_updates.html +++ b/bookwyrm/templates/settings/dashboard/warnings/check_for_updates.html @@ -8,14 +8,14 @@

    {% blocktrans trimmed with current=current_version available=available_version %} - Check for available version updates? (Recommended) + Would you like to automatically check for new BookWyrm releases? (recommended) {% endblocktrans %}

    {{ schedule_form.every.as_hidden }} {{ schedule_form.period.as_hidden }} - + {% endblock %} diff --git a/bookwyrm/views/admin/dashboard.py b/bookwyrm/views/admin/dashboard.py index a4c630067..21b19bf16 100644 --- a/bookwyrm/views/admin/dashboard.py +++ b/bookwyrm/views/admin/dashboard.py @@ -77,6 +77,8 @@ class Dashboard(View): def post(self, request): """Create a schedule task to check for updates""" schedule_form = forms.IntervalScheduleForm(request.POST) + if not schedule_form.is_valid(): + raise schedule_form.ValidationError(schedule_form.errors) with transaction.atomic(): schedule, _ = IntervalSchedule.objects.get_or_create( From d287581620a5d1238988803d05ce2ce9c6cbf52b Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Jan 2024 13:31:18 -0800 Subject: [PATCH 097/184] Fixes html validation error --- .../settings/dashboard/warnings/check_for_updates.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bookwyrm/templates/settings/dashboard/warnings/check_for_updates.html b/bookwyrm/templates/settings/dashboard/warnings/check_for_updates.html index f0a2a8013..00f320824 100644 --- a/bookwyrm/templates/settings/dashboard/warnings/check_for_updates.html +++ b/bookwyrm/templates/settings/dashboard/warnings/check_for_updates.html @@ -1,6 +1,8 @@ {% extends 'settings/dashboard/warnings/layout.html' %} {% load i18n %} +{% block warning_link %}#{% endblock %} + {% block warning_text %}
    From 01db77a74584c6df18bc8dc624cacf8dbebb30f6 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 2 Jan 2024 18:29:55 -0800 Subject: [PATCH 098/184] Adds success message --- bookwyrm/management/commands/erase_deleted_user_data.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bookwyrm/management/commands/erase_deleted_user_data.py b/bookwyrm/management/commands/erase_deleted_user_data.py index fd3c790ce..40c3f042b 100644 --- a/bookwyrm/management/commands/erase_deleted_user_data.py +++ b/bookwyrm/management/commands/erase_deleted_user_data.py @@ -38,3 +38,6 @@ class Command(BaseCommand): for user_id in deleted_users.values_list("id", flat=True): erase_user_data.delay(user_id) self.stdout.write(".", ending="") + + self.stdout.write("") + self.stdout.write("Tasks created successfully") From db8c686dd35df0126ee770455651d99d15458c82 Mon Sep 17 00:00:00 2001 From: Carlos Camara Date: Wed, 3 Jan 2024 15:43:15 +0100 Subject: [PATCH 099/184] Include book Readtrhough in the csv export --- bookwyrm/views/preferences/export.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/bookwyrm/views/preferences/export.py b/bookwyrm/views/preferences/export.py index f54d97ccb..c691e2f50 100644 --- a/bookwyrm/views/preferences/export.py +++ b/bookwyrm/views/preferences/export.py @@ -54,6 +54,7 @@ class Export(View): fields = ( ["title", "author_text"] + deduplication_fields + + ["start_date", "finish_date", "stopped_date"] + ["rating", "review_name", "review_cw", "review_content"] ) writer.writerow(fields) @@ -70,6 +71,18 @@ class Export(View): book.rating = review_rating.rating if review_rating else None + readthrough = ( + models.ReadThrough.objects.filter( + user=request.user, book=book + ) + .order_by("-finish_date") + .first() + ) + if readthrough: + book.start_date = readthrough.start_date + book.finish_date = readthrough.finish_date + book.stopped_date = readthrough.stopped_date + review = ( models.Review.objects.filter( user=request.user, book=book, content__isnull=False From 766a2163ddc745afe0ecc4871f38d37235cb2cb9 Mon Sep 17 00:00:00 2001 From: Carlos Camara Date: Wed, 3 Jan 2024 20:41:31 +0100 Subject: [PATCH 100/184] Code formatting --- bookwyrm/views/preferences/export.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/bookwyrm/views/preferences/export.py b/bookwyrm/views/preferences/export.py index c691e2f50..5a3b0fd8e 100644 --- a/bookwyrm/views/preferences/export.py +++ b/bookwyrm/views/preferences/export.py @@ -72,9 +72,7 @@ class Export(View): book.rating = review_rating.rating if review_rating else None readthrough = ( - models.ReadThrough.objects.filter( - user=request.user, book=book - ) + models.ReadThrough.objects.filter(user=request.user, book=book) .order_by("-finish_date") .first() ) From ae5950f1871f2ac168c810a0a6bc98c7b5e37474 Mon Sep 17 00:00:00 2001 From: Carlos Camara Date: Thu, 4 Jan 2024 11:03:07 +0100 Subject: [PATCH 101/184] Add readthrough fields to text_export.py --- bookwyrm/tests/views/preferences/test_export.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bookwyrm/tests/views/preferences/test_export.py b/bookwyrm/tests/views/preferences/test_export.py index 4f498f589..d633ae952 100644 --- a/bookwyrm/tests/views/preferences/test_export.py +++ b/bookwyrm/tests/views/preferences/test_export.py @@ -66,7 +66,7 @@ class ExportViews(TestCase): # pylint: disable=line-too-long self.assertEqual( export.content, - b"title,author_text,remote_id,openlibrary_key,inventaire_id,librarything_key,goodreads_key,bnf_id,viaf,wikidata,asin,aasin,isfdb,isbn_10,isbn_13,oclc_number,rating,review_name,review_cw,review_content\r\nTest Book,," + b"title,author_text,remote_id,openlibrary_key,inventaire_id,librarything_key,goodreads_key,bnf_id,viaf,wikidata,asin,aasin,isfdb,isbn_10,isbn_13,oclc_number,start_date,finish_date,stopped_date,rating,review_name,review_cw,review_content\r\nTest Book,," + self.book.remote_id.encode("utf-8") - + b",,,,,beep,,,,,,123456789X,9781234567890,,,,,\r\n", + + b",,,,,beep,,,,,,123456789X,9781234567890,,,,,,,,\r\n", ) From 9acb5f66fee9e64f43c703f1dd631146f35a7724 Mon Sep 17 00:00:00 2001 From: Carlos Camara Date: Thu, 4 Jan 2024 11:26:44 +0100 Subject: [PATCH 102/184] Convert DateTime to date --- bookwyrm/views/preferences/export.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bookwyrm/views/preferences/export.py b/bookwyrm/views/preferences/export.py index 5a3b0fd8e..4353cf259 100644 --- a/bookwyrm/views/preferences/export.py +++ b/bookwyrm/views/preferences/export.py @@ -77,9 +77,9 @@ class Export(View): .first() ) if readthrough: - book.start_date = readthrough.start_date - book.finish_date = readthrough.finish_date - book.stopped_date = readthrough.stopped_date + book.start_date = readthrough.start_date.date() if readthrough.start_date else "" + book.finish_date = readthrough.finish_date.date() if readthrough.finish_date else "" + book.stopped_date = readthrough.stopped_date.date() if readthrough.stopped_date else "" review = ( models.Review.objects.filter( From 51cb70d34423afb65653947bff15a90a8fc3278e Mon Sep 17 00:00:00 2001 From: Carlos Camara Date: Thu, 4 Jan 2024 11:27:17 +0100 Subject: [PATCH 103/184] Change readhtrough order --- bookwyrm/views/preferences/export.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bookwyrm/views/preferences/export.py b/bookwyrm/views/preferences/export.py index 4353cf259..c8badbc8c 100644 --- a/bookwyrm/views/preferences/export.py +++ b/bookwyrm/views/preferences/export.py @@ -73,7 +73,7 @@ class Export(View): readthrough = ( models.ReadThrough.objects.filter(user=request.user, book=book) - .order_by("-finish_date") + .order_by("-start_date","-finish_date") .first() ) if readthrough: From 30c9ec9611530ee8d98eaef8fc046c5e514d9f28 Mon Sep 17 00:00:00 2001 From: Carlos Camara Date: Thu, 4 Jan 2024 11:28:17 +0100 Subject: [PATCH 104/184] Prevent lint error See @hughrun 's explanation https://github.com/bookwyrm-social/bookwyrm/pull/3189#issuecomment-1876145423 --- bookwyrm/tests/views/preferences/test_export.py | 4 +++- bookwyrm/views/preferences/export.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/bookwyrm/tests/views/preferences/test_export.py b/bookwyrm/tests/views/preferences/test_export.py index d633ae952..2ef0f96fb 100644 --- a/bookwyrm/tests/views/preferences/test_export.py +++ b/bookwyrm/tests/views/preferences/test_export.py @@ -38,6 +38,8 @@ class ExportViews(TestCase): parent_work=self.work, isbn_13="9781234567890", bnf_id="beep", + start_date="2023-01-04", + finish_date="2024-01-04" ) def setUp(self): @@ -68,5 +70,5 @@ class ExportViews(TestCase): export.content, b"title,author_text,remote_id,openlibrary_key,inventaire_id,librarything_key,goodreads_key,bnf_id,viaf,wikidata,asin,aasin,isfdb,isbn_10,isbn_13,oclc_number,start_date,finish_date,stopped_date,rating,review_name,review_cw,review_content\r\nTest Book,," + self.book.remote_id.encode("utf-8") - + b",,,,,beep,,,,,,123456789X,9781234567890,,,,,,,,\r\n", + + b",,,,,beep,,,,,,123456789X,9781234567890,,,2023-01-04,2024-01-04,,,,\r\n", ) diff --git a/bookwyrm/views/preferences/export.py b/bookwyrm/views/preferences/export.py index c8badbc8c..2450a427d 100644 --- a/bookwyrm/views/preferences/export.py +++ b/bookwyrm/views/preferences/export.py @@ -103,7 +103,7 @@ class Export(View): ) -# pylint: disable=no-self-use +# pylint: disable=no-self-use,too-many-locals @method_decorator(login_required, name="dispatch") class ExportUser(View): """Let users export user data to import into another Bookwyrm instance""" From ebcc81dd73b295141a16407fded008d3c0abb85d Mon Sep 17 00:00:00 2001 From: Carlos Camara Date: Thu, 4 Jan 2024 11:33:26 +0100 Subject: [PATCH 105/184] Revert changes to default book These changes were introduced by mistake in my previous commit. --- bookwyrm/tests/views/preferences/test_export.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/bookwyrm/tests/views/preferences/test_export.py b/bookwyrm/tests/views/preferences/test_export.py index 2ef0f96fb..74201ddad 100644 --- a/bookwyrm/tests/views/preferences/test_export.py +++ b/bookwyrm/tests/views/preferences/test_export.py @@ -37,9 +37,7 @@ class ExportViews(TestCase): remote_id="https://example.com/book/1", parent_work=self.work, isbn_13="9781234567890", - bnf_id="beep", - start_date="2023-01-04", - finish_date="2024-01-04" + bnf_id="beep" ) def setUp(self): @@ -70,5 +68,5 @@ class ExportViews(TestCase): export.content, b"title,author_text,remote_id,openlibrary_key,inventaire_id,librarything_key,goodreads_key,bnf_id,viaf,wikidata,asin,aasin,isfdb,isbn_10,isbn_13,oclc_number,start_date,finish_date,stopped_date,rating,review_name,review_cw,review_content\r\nTest Book,," + self.book.remote_id.encode("utf-8") - + b",,,,,beep,,,,,,123456789X,9781234567890,,,2023-01-04,2024-01-04,,,,\r\n", + + b",,,,,beep,,,,,,123456789X,9781234567890,,,,,,,,\r\n", ) From c2622a510cd40eb3883eae4d01ccf2095754aa3b Mon Sep 17 00:00:00 2001 From: Carlos Camara Date: Thu, 4 Jan 2024 11:40:40 +0100 Subject: [PATCH 106/184] Change else statement to None vs "" --- bookwyrm/views/preferences/export.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bookwyrm/views/preferences/export.py b/bookwyrm/views/preferences/export.py index 2450a427d..a6d51e24a 100644 --- a/bookwyrm/views/preferences/export.py +++ b/bookwyrm/views/preferences/export.py @@ -77,9 +77,9 @@ class Export(View): .first() ) if readthrough: - book.start_date = readthrough.start_date.date() if readthrough.start_date else "" - book.finish_date = readthrough.finish_date.date() if readthrough.finish_date else "" - book.stopped_date = readthrough.stopped_date.date() if readthrough.stopped_date else "" + book.start_date = readthrough.start_date.date() if readthrough.start_date else None + book.finish_date = readthrough.finish_date.date() if readthrough.finish_date else None + book.stopped_date = readthrough.stopped_date.date() if readthrough.stopped_date else None review = ( models.Review.objects.filter( From 6cd2c9113506cf71756fc1bb5f025297fbcc4f53 Mon Sep 17 00:00:00 2001 From: Wesley Aptekar-Cassels Date: Thu, 4 Jan 2024 18:58:12 -0500 Subject: [PATCH 107/184] Allow page numbers to be text, instead of integers. Fixes: #2640 --- .../0192_make_page_positions_text.py | 23 +++++++++++++++++++ bookwyrm/models/status.py | 10 ++++---- .../snippets/create_status/quotation.html | 6 ++--- bookwyrm/tests/views/books/test_book.py | 8 ++++--- 4 files changed, 36 insertions(+), 11 deletions(-) create mode 100644 bookwyrm/migrations/0192_make_page_positions_text.py diff --git a/bookwyrm/migrations/0192_make_page_positions_text.py b/bookwyrm/migrations/0192_make_page_positions_text.py new file mode 100644 index 000000000..940a9e941 --- /dev/null +++ b/bookwyrm/migrations/0192_make_page_positions_text.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.23 on 2024-01-04 23:56 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("bookwyrm", "0191_merge_20240102_0326"), + ] + + operations = [ + migrations.AlterField( + model_name="quotation", + name="endposition", + field=models.TextField(blank=True, null=True), + ), + migrations.AlterField( + model_name="quotation", + name="position", + field=models.TextField(blank=True, null=True), + ), + ] diff --git a/bookwyrm/models/status.py b/bookwyrm/models/status.py index cc44fe2bf..f33c32824 100644 --- a/bookwyrm/models/status.py +++ b/bookwyrm/models/status.py @@ -338,11 +338,13 @@ class Quotation(BookStatus): quote = fields.HtmlField() raw_quote = models.TextField(blank=True, null=True) - position = models.IntegerField( - validators=[MinValueValidator(0)], null=True, blank=True + position = models.TextField( + null=True, + blank=True, ) - endposition = models.IntegerField( - validators=[MinValueValidator(0)], null=True, blank=True + endposition = models.TextField( + null=True, + blank=True, ) position_mode = models.CharField( max_length=3, diff --git a/bookwyrm/templates/snippets/create_status/quotation.html b/bookwyrm/templates/snippets/create_status/quotation.html index bd1d817ad..dc17585a9 100644 --- a/bookwyrm/templates/snippets/create_status/quotation.html +++ b/bookwyrm/templates/snippets/create_status/quotation.html @@ -56,8 +56,7 @@ uuid: a unique identifier used to make html "id" attributes unique and clarify j Date: Fri, 5 Jan 2024 17:42:04 +0000 Subject: [PATCH 108/184] Bump pycryptodome from 3.16.0 to 3.19.1 Bumps [pycryptodome](https://github.com/Legrandin/pycryptodome) from 3.16.0 to 3.19.1. - [Release notes](https://github.com/Legrandin/pycryptodome/releases) - [Changelog](https://github.com/Legrandin/pycryptodome/blob/master/Changelog.rst) - [Commits](https://github.com/Legrandin/pycryptodome/compare/v3.16.0...v3.19.1) --- updated-dependencies: - dependency-name: pycryptodome dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 0b09f3c19..6509effc7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -16,7 +16,7 @@ libsass==0.22.0 Markdown==3.4.1 Pillow==10.0.1 psycopg2==2.9.5 -pycryptodome==3.16.0 +pycryptodome==3.19.1 python-dateutil==2.8.2 redis==4.5.4 requests==2.31.0 From 93cab480d6a7cc1d8897d8a0a765c6ce9f5301a4 Mon Sep 17 00:00:00 2001 From: Carlos Camara Date: Sat, 6 Jan 2024 09:50:14 +0100 Subject: [PATCH 109/184] Code format --- bookwyrm/tests/views/preferences/test_export.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bookwyrm/tests/views/preferences/test_export.py b/bookwyrm/tests/views/preferences/test_export.py index 74201ddad..d633ae952 100644 --- a/bookwyrm/tests/views/preferences/test_export.py +++ b/bookwyrm/tests/views/preferences/test_export.py @@ -37,7 +37,7 @@ class ExportViews(TestCase): remote_id="https://example.com/book/1", parent_work=self.work, isbn_13="9781234567890", - bnf_id="beep" + bnf_id="beep", ) def setUp(self): From ce18d343e8de7a40b2da17fae0ebff1c065eda9f Mon Sep 17 00:00:00 2001 From: Carlos Camara Date: Sat, 6 Jan 2024 09:53:22 +0100 Subject: [PATCH 110/184] Fix pylint error and code format --- bookwyrm/views/preferences/export.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/bookwyrm/views/preferences/export.py b/bookwyrm/views/preferences/export.py index a6d51e24a..3443be461 100644 --- a/bookwyrm/views/preferences/export.py +++ b/bookwyrm/views/preferences/export.py @@ -17,7 +17,7 @@ from bookwyrm import models from bookwyrm.models.bookwyrm_export_job import BookwyrmExportJob from bookwyrm.settings import PAGE_LENGTH -# pylint: disable=no-self-use +# pylint: disable=no-self-use,too-many-locals @method_decorator(login_required, name="dispatch") class Export(View): """Let users export data""" @@ -73,13 +73,21 @@ class Export(View): readthrough = ( models.ReadThrough.objects.filter(user=request.user, book=book) - .order_by("-start_date","-finish_date") + .order_by("-start_date", "-finish_date") .first() ) if readthrough: - book.start_date = readthrough.start_date.date() if readthrough.start_date else None - book.finish_date = readthrough.finish_date.date() if readthrough.finish_date else None - book.stopped_date = readthrough.stopped_date.date() if readthrough.stopped_date else None + book.start_date = ( + readthrough.start_date.date() if readthrough.start_date else None + ) + book.finish_date = ( + readthrough.finish_date.date() if readthrough.finish_date else None + ) + book.stopped_date = ( + readthrough.stopped_date.date() + if readthrough.stopped_date + else None + ) review = ( models.Review.objects.filter( @@ -103,7 +111,7 @@ class Export(View): ) -# pylint: disable=no-self-use,too-many-locals +# pylint: disable=no-self-use @method_decorator(login_required, name="dispatch") class ExportUser(View): """Let users export user data to import into another Bookwyrm instance""" From 83ff880603745adf2ef92b8ca489f9d2a7ea1d88 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sun, 7 Jan 2024 08:31:48 -0800 Subject: [PATCH 111/184] Revert "Don't show notification for user follow request if the user is inactive" --- bookwyrm/templates/notifications/item.html | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/bookwyrm/templates/notifications/item.html b/bookwyrm/templates/notifications/item.html index a1329d31e..ac60ad46f 100644 --- a/bookwyrm/templates/notifications/item.html +++ b/bookwyrm/templates/notifications/item.html @@ -10,9 +10,7 @@ {% elif notification.notification_type == 'FOLLOW' %} {% include 'notifications/items/follow.html' %} {% elif notification.notification_type == 'FOLLOW_REQUEST' %} - {% if notification.related_users.0.is_active %} - {% include 'notifications/items/follow_request.html' %} - {% endif %} + {% include 'notifications/items/follow_request.html' %} {% elif notification.notification_type == 'IMPORT' %} {% include 'notifications/items/import.html' %} {% elif notification.notification_type == 'USER_IMPORT' %} From 1a682753c0f126a8319389397d7558d88183b989 Mon Sep 17 00:00:00 2001 From: Rohan Sureshkumar Date: Tue, 9 Jan 2024 15:31:05 +0530 Subject: [PATCH 112/184] Issue-3187: changes --- bookwyrm/templates/feed/feed.html | 2 +- bookwyrm/views/feed.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/bookwyrm/templates/feed/feed.html b/bookwyrm/templates/feed/feed.html index 7ecf10b70..820314b7a 100644 --- a/bookwyrm/templates/feed/feed.html +++ b/bookwyrm/templates/feed/feed.html @@ -33,7 +33,7 @@ - {% if request.user.show_goal and not goal and tab.key == 'home' %} + {% if request.user.show_goal and not goal and tab.key == 'home' and has_read_throughs %} {% now 'Y' as year %}
    {% include 'feed/goal_card.html' with year=year %} diff --git a/bookwyrm/views/feed.py b/bookwyrm/views/feed.py index 17218b93e..381d233e9 100644 --- a/bookwyrm/views/feed.py +++ b/bookwyrm/views/feed.py @@ -52,6 +52,8 @@ class Feed(View): suggestions = suggested_users.get_suggestions(request.user) + readthroughs = models.ReadThrough.objects.filter(user=request.user) + data = { **feed_page_data(request.user), **{ @@ -66,6 +68,7 @@ class Feed(View): "path": f"/{tab['key']}", "annual_summary_year": get_annual_summary_year(), "has_tour": True, + "has_read_throughs": True if len(readthroughs) else False, }, } return TemplateResponse(request, "feed/feed.html", data) From 854eb36618fe4371b37b4da3a86c68d6778d195b Mon Sep 17 00:00:00 2001 From: Carlos Camara Date: Sat, 13 Jan 2024 16:43:41 +0000 Subject: [PATCH 113/184] Export bookshelves and review date --- .../tests/views/preferences/test_export.py | 9 +++-- bookwyrm/views/preferences/export.py | 36 +++++++++++++++++-- 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/bookwyrm/tests/views/preferences/test_export.py b/bookwyrm/tests/views/preferences/test_export.py index d633ae952..7a1bcd6db 100644 --- a/bookwyrm/tests/views/preferences/test_export.py +++ b/bookwyrm/tests/views/preferences/test_export.py @@ -18,7 +18,9 @@ class ExportViews(TestCase): """viewing and creating statuses""" @classmethod - def setUpTestData(self): # pylint: disable=bad-classmethod-argument + def setUpTestData( + self, + ): # pylint: disable=bad-classmethod-argument, disable=invalid-name """we need basic test data and mocks""" with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch( "bookwyrm.activitystreams.populate_stream_task.delay" @@ -40,6 +42,7 @@ class ExportViews(TestCase): bnf_id="beep", ) + # pylint: disable=invalid-name def setUp(self): """individual test setup""" self.factory = RequestFactory() @@ -66,7 +69,7 @@ class ExportViews(TestCase): # pylint: disable=line-too-long self.assertEqual( export.content, - b"title,author_text,remote_id,openlibrary_key,inventaire_id,librarything_key,goodreads_key,bnf_id,viaf,wikidata,asin,aasin,isfdb,isbn_10,isbn_13,oclc_number,start_date,finish_date,stopped_date,rating,review_name,review_cw,review_content\r\nTest Book,," + b"title,author_text,remote_id,openlibrary_key,inventaire_id,librarything_key,goodreads_key,bnf_id,viaf,wikidata,asin,aasin,isfdb,isbn_10,isbn_13,oclc_number,start_date,finish_date,stopped_date,rating,review_name,review_cw,review_content,review_published,shelf,shelf_name,shelf_date\r\nTest Book,," + self.book.remote_id.encode("utf-8") - + b",,,,,beep,,,,,,123456789X,9781234567890,,,,,,,,\r\n", + + b",,,,,beep,,,,,,123456789X,9781234567890,,,,,,,,,,,,\r\n", ) diff --git a/bookwyrm/views/preferences/export.py b/bookwyrm/views/preferences/export.py index 3443be461..d16f3aaa3 100644 --- a/bookwyrm/views/preferences/export.py +++ b/bookwyrm/views/preferences/export.py @@ -17,6 +17,7 @@ from bookwyrm import models from bookwyrm.models.bookwyrm_export_job import BookwyrmExportJob from bookwyrm.settings import PAGE_LENGTH + # pylint: disable=no-self-use,too-many-locals @method_decorator(login_required, name="dispatch") class Export(View): @@ -54,8 +55,19 @@ class Export(View): fields = ( ["title", "author_text"] + deduplication_fields - + ["start_date", "finish_date", "stopped_date"] - + ["rating", "review_name", "review_cw", "review_content"] + + [ + "start_date", + "finish_date", + "stopped_date", + "rating", + "review_name", + "review_cw", + "review_content", + "review_published", + "shelf", + "shelf_name", + "shelf_date", + ] ) writer.writerow(fields) @@ -97,9 +109,27 @@ class Export(View): .first() ) if review: + book.review_published = ( + review.published_date.date() if review.published_date else None + ) book.review_name = review.name book.review_cw = review.content_warning - book.review_content = review.raw_content + book.review_content = ( + review.raw_content if review.raw_content else review.content + ) # GoodReads imported reviews do not have raw_content, but content. + + shelfbook = ( + models.ShelfBook.objects.filter(user=request.user, book=book) + .order_by("-shelved_date", "-created_date", "-updated_date") + .last() + ) + if shelfbook: + book.shelf = shelfbook.shelf.identifier + book.shelf_name = shelfbook.shelf.name + book.shelf_date = ( + shelfbook.shelved_date.date() if shelfbook.shelved_date else None + ) + writer.writerow([getattr(book, field, "") or "" for field in fields]) return HttpResponse( From 9a487b0442c0d9e94b511491bf61bd00b3cfebfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adeodato=20Sim=C3=B3?= Date: Sat, 13 Jan 2024 17:51:14 +0100 Subject: [PATCH 114/184] Ensure dev-tools uses bookworm MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In 1937177e1 ("dev-tools: use apt source for Node instead of setup script"), I introduced the use of `Signed-By` with a public key block, which is only supported in bookworm (bullseye only supports fingerprints, TTBOMK). Python's Docker images already use bookworm by default, but we explicitly require it now to avoid build errors if someone has a very old image laying around (see, e.g., #3190). (This can be dropped after Debian 13 ‘trixie’ is released.) --- dev-tools/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-tools/Dockerfile b/dev-tools/Dockerfile index 3b7740a78..6c132944f 100644 --- a/dev-tools/Dockerfile +++ b/dev-tools/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.9 +FROM python:3.9-bookworm WORKDIR /app/dev-tools ENV PATH="/app/dev-tools/node_modules/.bin:$PATH" From 5ef104b802dce740835f4a34bb4403459e2791bc Mon Sep 17 00:00:00 2001 From: Rohan Sureshkumar Date: Mon, 15 Jan 2024 17:22:33 +0530 Subject: [PATCH 115/184] Issue-3187: addressing review comments --- bookwyrm/templates/feed/feed.html | 4 ++-- bookwyrm/views/feed.py | 10 +++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/bookwyrm/templates/feed/feed.html b/bookwyrm/templates/feed/feed.html index 820314b7a..56c380202 100644 --- a/bookwyrm/templates/feed/feed.html +++ b/bookwyrm/templates/feed/feed.html @@ -33,7 +33,7 @@ - {% if request.user.show_goal and not goal and tab.key == 'home' and has_read_throughs %} + {% if request.user.show_goal and not goal and tab.key == 'home' %} {% now 'Y' as year %}
    {% include 'feed/goal_card.html' with year=year %} @@ -41,7 +41,7 @@
    {% endif %} - {% if annual_summary_year and tab.key == 'home' %} + {% if annual_summary_year and tab.key == 'home' and has_read_throughs %}
  • -
    +
    {% if superlatives.top_rated %} {% with book=superlatives.top_rated.default_edition rating=superlatives.top_rated.rating %} -
    +
    @@ -53,7 +53,7 @@ {% if superlatives.wanted %} {% with book=superlatives.wanted.default_edition %} -
    +
    @@ -72,7 +72,7 @@ {% if superlatives.controversial %} {% with book=superlatives.controversial.default_edition %} -
    +
    From ddbda3ab9ca1f1e4658e711d3a5e5fbd971369c4 Mon Sep 17 00:00:00 2001 From: Carlos Camara Date: Tue, 16 Jan 2024 08:12:24 +0000 Subject: [PATCH 117/184] Fix test_export --- bookwyrm/tests/views/preferences/test_export.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/bookwyrm/tests/views/preferences/test_export.py b/bookwyrm/tests/views/preferences/test_export.py index 7a1bcd6db..3f758b2f7 100644 --- a/bookwyrm/tests/views/preferences/test_export.py +++ b/bookwyrm/tests/views/preferences/test_export.py @@ -56,11 +56,12 @@ class ExportViews(TestCase): def test_export_file(self, *_): """simple export""" - models.ShelfBook.objects.create( + shelfbook = models.ShelfBook.objects.create( shelf=self.local_user.shelf_set.first(), user=self.local_user, book=self.book, ) + book_date = str.encode(f"{shelfbook.shelved_date.date()}") request = self.factory.post("") request.user = self.local_user export = views.Export.as_view()(request) @@ -69,7 +70,7 @@ class ExportViews(TestCase): # pylint: disable=line-too-long self.assertEqual( export.content, - b"title,author_text,remote_id,openlibrary_key,inventaire_id,librarything_key,goodreads_key,bnf_id,viaf,wikidata,asin,aasin,isfdb,isbn_10,isbn_13,oclc_number,start_date,finish_date,stopped_date,rating,review_name,review_cw,review_content,review_published,shelf,shelf_name,shelf_date\r\nTest Book,," - + self.book.remote_id.encode("utf-8") - + b",,,,,beep,,,,,,123456789X,9781234567890,,,,,,,,,,,,\r\n", + b"title,author_text,remote_id,openlibrary_key,inventaire_id,librarything_key,goodreads_key,bnf_id,viaf,wikidata,asin,aasin,isfdb,isbn_10,isbn_13,oclc_number,start_date,finish_date,stopped_date,rating,review_name,review_cw,review_content,review_published,shelf,shelf_name,shelf_date\r\n" + + b"Test Book,,%b,,,,,beep,,,,,,123456789X,9781234567890,,,,,,,,,,to-read,To Read,%b\r\n" + % (self.book.remote_id.encode("utf-8"), book_date), ) From d640e4ac96005cdc2b21b6a08f97a8805c26d00b Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Tue, 16 Jan 2024 21:32:13 +1100 Subject: [PATCH 118/184] disable user exports by default - new setting to enable user exports defaults to False - add setting to enable and disable user exports - do not allow user exports when using s3 storage - do not serve non-image files from /images/ (requires update to nginx settings) - increase default file upload limit to 100MB to enable user exports to be imported (can be changed in .env) --- .env.example | 3 ++ .../0192_sitesettings_user_exports_enabled.py | 18 +++++++ bookwyrm/models/site.py | 1 + bookwyrm/settings.py | 2 + .../templates/preferences/export-user.html | 6 ++- .../templates/settings/imports/imports.html | 51 ++++++++++++++++++- bookwyrm/urls.py | 10 ++++ bookwyrm/views/__init__.py | 2 + bookwyrm/views/admin/imports.py | 25 ++++++++- nginx/development | 7 ++- nginx/production | 7 ++- 11 files changed, 127 insertions(+), 5 deletions(-) create mode 100644 bookwyrm/migrations/0192_sitesettings_user_exports_enabled.py diff --git a/.env.example b/.env.example index fb0f7308d..20ce8240b 100644 --- a/.env.example +++ b/.env.example @@ -137,3 +137,6 @@ TWO_FACTOR_LOGIN_MAX_SECONDS=60 # and AWS_S3_CUSTOM_DOMAIN (if used) are added by default. # Value should be a comma-separated list of host names. CSP_ADDITIONAL_HOSTS= +# The last number here means "megabytes" +# Increase if users are having trouble uploading BookWyrm export files. +DATA_UPLOAD_MAX_MEMORY_SIZE = (1024**2 * 100) \ No newline at end of file diff --git a/bookwyrm/migrations/0192_sitesettings_user_exports_enabled.py b/bookwyrm/migrations/0192_sitesettings_user_exports_enabled.py new file mode 100644 index 000000000..ec5b411e2 --- /dev/null +++ b/bookwyrm/migrations/0192_sitesettings_user_exports_enabled.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.23 on 2024-01-16 10:28 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("bookwyrm", "0191_merge_20240102_0326"), + ] + + operations = [ + migrations.AddField( + model_name="sitesettings", + name="user_exports_enabled", + field=models.BooleanField(default=False), + ), + ] diff --git a/bookwyrm/models/site.py b/bookwyrm/models/site.py index bd53f1f07..8075b6434 100644 --- a/bookwyrm/models/site.py +++ b/bookwyrm/models/site.py @@ -96,6 +96,7 @@ class SiteSettings(SiteModel): imports_enabled = models.BooleanField(default=True) import_size_limit = models.IntegerField(default=0) import_limit_reset = models.IntegerField(default=0) + user_exports_enabled = models.BooleanField(default=False) user_import_time_limit = models.IntegerField(default=48) field_tracker = FieldTracker(fields=["name", "instance_tagline", "logo"]) diff --git a/bookwyrm/settings.py b/bookwyrm/settings.py index fcc91857a..cc941da84 100644 --- a/bookwyrm/settings.py +++ b/bookwyrm/settings.py @@ -442,3 +442,5 @@ if HTTP_X_FORWARDED_PROTO: # Do not change this setting unless you already have an existing # user with the same username - in which case you should change it! INSTANCE_ACTOR_USERNAME = "bookwyrm.instance.actor" + +DATA_UPLOAD_MAX_MEMORY_SIZE = env.int("DATA_UPLOAD_MAX_MEMORY_SIZE", (1024**2 * 100)) diff --git a/bookwyrm/templates/preferences/export-user.html b/bookwyrm/templates/preferences/export-user.html index a468c3f74..cd3119e3e 100644 --- a/bookwyrm/templates/preferences/export-user.html +++ b/bookwyrm/templates/preferences/export-user.html @@ -46,7 +46,11 @@ {% trans "If you wish to migrate any statuses (comments, reviews, or quotes) you must either set the account you are moving to as an alias of this one, or move this account to the new account, before you import your user data." %} {% endspaceless %}

    - {% if next_available %} + {% if not site.user_exports_enabled %} +

    + {% trans "New user exports are currently disabled." %} +

    + {% elif next_available %}

    {% blocktrans trimmed %} You will be able to create a new export file at {{ next_available }} diff --git a/bookwyrm/templates/settings/imports/imports.html b/bookwyrm/templates/settings/imports/imports.html index 8898aab71..11b3c7e03 100644 --- a/bookwyrm/templates/settings/imports/imports.html +++ b/bookwyrm/templates/settings/imports/imports.html @@ -90,6 +90,33 @@

    + + {% if site.user_exports_enabled %} +
    + + + {% trans "Disable starting new user exports" %} + + + +
    +
    + {% trans "This is only intended to be used when things have gone very wrong with exports and you need to pause the feature while addressing issues." %} + {% trans "While exports are disabled, users will not be allowed to start new user exports, but existing exports will not be affected." %} +
    + {% csrf_token %} +
    + +
    +
    +
    @@ -108,7 +135,7 @@ {% trans "Set the value to 0 to not enforce any limit." %}
    - + {% csrf_token %} @@ -120,6 +147,28 @@
    + {% else %} +
    +
    +

    {% trans "Users are currently unable to start new user exports. This is the default setting." %}

    + {% if use_s3 %} +

    {% trans "It is not currently possible to provide user exports when using s3 storage. The BookWyrm development team are working on a fix for this." %}

    + {% endif %} +
    + {% csrf_token %} +
    + +
    +
    + {% endif %}

    {% trans "Book Imports" %}

    diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py index 76e60245b..1a577c84b 100644 --- a/bookwyrm/urls.py +++ b/bookwyrm/urls.py @@ -338,6 +338,16 @@ urlpatterns = [ views.disable_imports, name="settings-imports-disable", ), + re_path( + r"^settings/user-exports/enable/?$", + views.enable_user_exports, + name="settings-user-exports-enable", + ), + re_path( + r"^settings/user-exports/disable/?$", + views.disable_user_exports, + name="settings-user-exports-disable", + ), re_path( r"^settings/imports/enable/?$", views.enable_imports, diff --git a/bookwyrm/views/__init__.py b/bookwyrm/views/__init__.py index 3be813208..f11c11dd6 100644 --- a/bookwyrm/views/__init__.py +++ b/bookwyrm/views/__init__.py @@ -18,6 +18,8 @@ from .admin.imports import ( set_import_size_limit, set_user_import_completed, set_user_import_limit, + enable_user_exports, + disable_user_exports, ) from .admin.ip_blocklist import IPBlocklist from .admin.invite import ManageInvites, Invite, InviteRequest diff --git a/bookwyrm/views/admin/imports.py b/bookwyrm/views/admin/imports.py index a85d6c79e..0924536bf 100644 --- a/bookwyrm/views/admin/imports.py +++ b/bookwyrm/views/admin/imports.py @@ -9,7 +9,7 @@ from django.views.decorators.http import require_POST from bookwyrm import models from bookwyrm.views.helpers import redirect_to_referer -from bookwyrm.settings import PAGE_LENGTH +from bookwyrm.settings import PAGE_LENGTH, USE_S3 # pylint: disable=no-self-use @@ -59,6 +59,7 @@ class ImportList(View): "import_size_limit": site_settings.import_size_limit, "import_limit_reset": site_settings.import_limit_reset, "user_import_time_limit": site_settings.user_import_time_limit, + "use_s3": USE_S3, } return TemplateResponse(request, "settings/imports/imports.html", data) @@ -126,3 +127,25 @@ def set_user_import_limit(request): site.user_import_time_limit = int(request.POST.get("limit")) site.save(update_fields=["user_import_time_limit"]) return redirect("settings-imports") + + +@require_POST +@permission_required("bookwyrm.edit_instance_settings", raise_exception=True) +# pylint: disable=unused-argument +def enable_user_exports(request): + """Allow users to export account data""" + site = models.SiteSettings.objects.get() + site.user_exports_enabled = True + site.save(update_fields=["user_exports_enabled"]) + return redirect("settings-imports") + + +@require_POST +@permission_required("bookwyrm.edit_instance_settings", raise_exception=True) +# pylint: disable=unused-argument +def disable_user_exports(request): + """Don't allow users to export account data""" + site = models.SiteSettings.objects.get() + site.user_exports_enabled = False + site.save(update_fields=["user_exports_enabled"]) + return redirect("settings-imports") diff --git a/nginx/development b/nginx/development index 841db0124..ac663053c 100644 --- a/nginx/development +++ b/nginx/development @@ -64,13 +64,18 @@ server { # directly serve images and static files from the # bookwyrm filesystem using sendfile. # make the logs quieter by not reporting these requests - location ~ ^/(images|static)/ { + location ~ \.(bmp|ico|jpg|jpeg|png|tif|tiff|webp)$ { root /app; try_files $uri =404; add_header X-Cache-Status STATIC; access_log off; } + # block access to any non-image files from images or static + location ~ ^/(images|static)/ { + return 403; + } + # monitor the celery queues with flower, no caching enabled location /flower/ { proxy_pass http://flower:8888; diff --git a/nginx/production b/nginx/production index 9018ab9de..4e40f32a0 100644 --- a/nginx/production +++ b/nginx/production @@ -96,12 +96,17 @@ server { # # directly serve images and static files from the # # bookwyrm filesystem using sendfile. # # make the logs quieter by not reporting these requests -# location ~ ^/(images|static)/ { +# location ~ \.(bmp|ico|jpg|jpeg|png|tif|tiff|webp)$ { # root /app; # try_files $uri =404; # add_header X-Cache-Status STATIC; # access_log off; # } + +# # block access to any non-image files from images or static +# location ~ ^/(images|static)/ { +# return 403; +# } # # # monitor the celery queues with flower, no caching enabled # location /flower/ { From ea7f3c297e6f92ca82c06b6fb3ace0d37ebdd53f Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Wed, 17 Jan 2024 20:12:06 +1100 Subject: [PATCH 119/184] allow js and css --- nginx/development | 4 ++-- nginx/production | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nginx/development b/nginx/development index ac663053c..64cd1b911 100644 --- a/nginx/development +++ b/nginx/development @@ -64,7 +64,7 @@ server { # directly serve images and static files from the # bookwyrm filesystem using sendfile. # make the logs quieter by not reporting these requests - location ~ \.(bmp|ico|jpg|jpeg|png|tif|tiff|webp)$ { + location ~ \.(bmp|ico|jpg|jpeg|png|tif|tiff|webp|css|js)$ { root /app; try_files $uri =404; add_header X-Cache-Status STATIC; @@ -72,7 +72,7 @@ server { } # block access to any non-image files from images or static - location ~ ^/(images|static)/ { + location ~ ^/images/ { return 403; } diff --git a/nginx/production b/nginx/production index 4e40f32a0..76ed19449 100644 --- a/nginx/production +++ b/nginx/production @@ -96,7 +96,7 @@ server { # # directly serve images and static files from the # # bookwyrm filesystem using sendfile. # # make the logs quieter by not reporting these requests -# location ~ \.(bmp|ico|jpg|jpeg|png|tif|tiff|webp)$ { +# location ~ \.(bmp|ico|jpg|jpeg|png|tif|tiff|webp|css|js)$ { # root /app; # try_files $uri =404; # add_header X-Cache-Status STATIC; @@ -104,7 +104,7 @@ server { # } # # block access to any non-image files from images or static -# location ~ ^/(images|static)/ { +# location ~ ^/images/ { # return 403; # } # From b990d9ccd8f2bff4990b79f7dc7cd494190d0536 Mon Sep 17 00:00:00 2001 From: Hugh Rundle Date: Wed, 17 Jan 2024 21:06:04 +1100 Subject: [PATCH 120/184] Pass correct user id in Move notification We were passing the *requesting* user's moved_to value to the Move notification template, instead of the id of the user that they are being notified about. Additionally, the id_to_username template tag had no fallback for if the user_id is None. This resolves both problems and removes an unnecessary space in a template for when the logged in user made the move. Fixes #3196 --- bookwyrm/templates/moved.html | 2 +- bookwyrm/templates/notifications/items/move_user.html | 2 +- bookwyrm/templatetags/utilities.py | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/bookwyrm/templates/moved.html b/bookwyrm/templates/moved.html index 545fc3d87..382b752be 100644 --- a/bookwyrm/templates/moved.html +++ b/bookwyrm/templates/moved.html @@ -23,7 +23,7 @@

    - {% id_to_username request.user.moved_to as username %} + {% id_to_username request.user.moved_to as username %} {% blocktrans trimmed with moved_to=user.moved_to %} You have moved your account to {{ username }} {% endblocktrans %} diff --git a/bookwyrm/templates/notifications/items/move_user.html b/bookwyrm/templates/notifications/items/move_user.html index b94d96dc4..3121d3f45 100644 --- a/bookwyrm/templates/notifications/items/move_user.html +++ b/bookwyrm/templates/notifications/items/move_user.html @@ -14,7 +14,7 @@ {% block description %} {% if related_user_moved_to %} - {% id_to_username request.user.moved_to as username %} + {% id_to_username related_user_moved_to as username %} {% blocktrans trimmed %} {{ related_user }} has moved to {{ username }} {% endblocktrans %} diff --git a/bookwyrm/templatetags/utilities.py b/bookwyrm/templatetags/utilities.py index fca66688a..230db366e 100644 --- a/bookwyrm/templatetags/utilities.py +++ b/bookwyrm/templatetags/utilities.py @@ -125,7 +125,8 @@ def id_to_username(user_id): name = parts[-1] value = f"{name}@{domain}" - return value + return value + return "a new user account" @register.filter(name="get_file_size") From 8e2649ba3b26bc03ff90d8a5790f7b19301ebd34 Mon Sep 17 00:00:00 2001 From: Rohan Sureshkumar Date: Thu, 18 Jan 2024 21:23:25 +0530 Subject: [PATCH 121/184] Issue-3187: change variable name and code formatting --- bookwyrm/templates/feed/feed.html | 2 +- bookwyrm/views/feed.py | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/bookwyrm/templates/feed/feed.html b/bookwyrm/templates/feed/feed.html index 56c380202..1b6cf29ff 100644 --- a/bookwyrm/templates/feed/feed.html +++ b/bookwyrm/templates/feed/feed.html @@ -41,7 +41,7 @@ {% endif %} - {% if annual_summary_year and tab.key == 'home' and has_read_throughs %} + {% if annual_summary_year and tab.key == 'home' and has_summary_read_throughs %}

    -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/bookwyrm/views/feed.py b/bookwyrm/views/feed.py index 17218b93e..2d91990d0 100644 --- a/bookwyrm/views/feed.py +++ b/bookwyrm/views/feed.py @@ -197,6 +197,8 @@ class Status(View): "status": status, "children": children, "ancestors": ancestors, + "title": status.page_title, + "description": status.page_description, "preview": preview, }, } From ad56024ffe8adac7a8cab916b160b2f18edd2f1d Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Sat, 20 Jan 2024 17:18:50 +0100 Subject: [PATCH 128/184] Add Status.page_image property --- bookwyrm/models/status.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/bookwyrm/models/status.py b/bookwyrm/models/status.py index 04fb8daa3..236826a2b 100644 --- a/bookwyrm/models/status.py +++ b/bookwyrm/models/status.py @@ -190,6 +190,15 @@ class Status(OrderedCollectionPageMixin, BookWyrmModel): """description of the page in meta tags when only this status is shown""" return None + @property + def page_image(self): + """image to use as preview in meta tags when only this status is shown""" + if self.mention_books.exists(): + book = self.mention_books.first() + return book.preview_image + else: + return self.user.preview_image + def to_replies(self, **kwargs): """helper function for loading AP serialized replies to a status""" return self.to_ordered_collection( @@ -313,6 +322,10 @@ class BookStatus(Status): abstract = True + @property + def page_image(self): + return self.book.preview_image or super().page_image + class Comment(BookStatus): """like a review but without a rating and transient""" From 290ee997b3c935297811f033d8da0a564ba48f52 Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Sat, 20 Jan 2024 17:24:20 +0100 Subject: [PATCH 129/184] Refactor OpenGraph tags logic --- bookwyrm/templates/snippets/opengraph.html | 29 +++++++++++----------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/bookwyrm/templates/snippets/opengraph.html b/bookwyrm/templates/snippets/opengraph.html index 1e87a464f..78a6b1b3f 100644 --- a/bookwyrm/templates/snippets/opengraph.html +++ b/bookwyrm/templates/snippets/opengraph.html @@ -1,24 +1,25 @@ {% load static %} -{% if preview_images_enabled is True %} +{% firstof image site.preview_image as page_image %} +{% if page_image %} - {% if image %} - - - {% else %} - - - {% endif %} + + +{% elif site.logo %} + + + + {% else %} - - + + + {% endif %} - - - - +{% firstof description site.instance_tagline as description %} + + From ea9d3f8ba1ac3db3a050b0355bd3de3d20cd061e Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Sat, 20 Jan 2024 17:25:20 +0100 Subject: [PATCH 130/184] Use Status.page_image for OpenGraph tags --- bookwyrm/templates/feed/status.html | 4 ++-- bookwyrm/views/feed.py | 8 +------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/bookwyrm/templates/feed/status.html b/bookwyrm/templates/feed/status.html index b381c3714..64e992a01 100644 --- a/bookwyrm/templates/feed/status.html +++ b/bookwyrm/templates/feed/status.html @@ -6,7 +6,7 @@ {% block opengraph %} - {% include 'snippets/opengraph.html' with image=preview %} + {% include 'snippets/opengraph.html' with image=page_image %} {% endblock %} @@ -39,4 +39,4 @@
    -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/bookwyrm/views/feed.py b/bookwyrm/views/feed.py index 2d91990d0..d1feb278e 100644 --- a/bookwyrm/views/feed.py +++ b/bookwyrm/views/feed.py @@ -185,12 +185,6 @@ class Status(View): params=[status.id, visible_thread, visible_thread], ) - preview = None - if hasattr(status, "book"): - preview = status.book.preview_image - elif status.mention_books.exists(): - preview = status.mention_books.first().preview_image - data = { **feed_page_data(request.user), **{ @@ -199,7 +193,7 @@ class Status(View): "ancestors": ancestors, "title": status.page_title, "description": status.page_description, - "preview": preview, + "page_image": status.page_image, }, } return TemplateResponse(request, "feed/status.html", data) From 646b27b7a7e1099e81d5c3fa4c2b0008f54c889e Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Sat, 20 Jan 2024 17:28:51 +0100 Subject: [PATCH 131/184] OpenGraph: fall back on book cover when preview images are disabled --- bookwyrm/models/status.py | 4 ++-- bookwyrm/templates/book/book.html | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/bookwyrm/models/status.py b/bookwyrm/models/status.py index 236826a2b..94893d6ae 100644 --- a/bookwyrm/models/status.py +++ b/bookwyrm/models/status.py @@ -195,7 +195,7 @@ class Status(OrderedCollectionPageMixin, BookWyrmModel): """image to use as preview in meta tags when only this status is shown""" if self.mention_books.exists(): book = self.mention_books.first() - return book.preview_image + return book.preview_image or book.cover else: return self.user.preview_image @@ -324,7 +324,7 @@ class BookStatus(Status): @property def page_image(self): - return self.book.preview_image or super().page_image + return self.book.preview_image or self.book.cover or super().page_image class Comment(BookStatus): diff --git a/bookwyrm/templates/book/book.html b/bookwyrm/templates/book/book.html index 8e76fb014..4c345832e 100644 --- a/bookwyrm/templates/book/book.html +++ b/bookwyrm/templates/book/book.html @@ -9,7 +9,8 @@ {% block title %}{{ book|book_title }}{% endblock %} {% block opengraph %} - {% include 'snippets/opengraph.html' with title=book.title description=book|book_description image=book.preview_image %} + {% firstof book.preview_image book.cover as book_image %} + {% include 'snippets/opengraph.html' with title=book.title description=book|book_description image=book_image %} {% endblock %} {% block content %} From eb6bea013fd1634f178da689e4843adcd05a6296 Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Sun, 21 Jan 2024 11:04:08 +0100 Subject: [PATCH 132/184] Fix pylint warning --- bookwyrm/models/status.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bookwyrm/models/status.py b/bookwyrm/models/status.py index 94893d6ae..0c9b18cc9 100644 --- a/bookwyrm/models/status.py +++ b/bookwyrm/models/status.py @@ -196,8 +196,7 @@ class Status(OrderedCollectionPageMixin, BookWyrmModel): if self.mention_books.exists(): book = self.mention_books.first() return book.preview_image or book.cover - else: - return self.user.preview_image + return self.user.preview_image def to_replies(self, **kwargs): """helper function for loading AP serialized replies to a status""" From 30ba8d37dc130ac547c59a5b7c2b7fae3d529214 Mon Sep 17 00:00:00 2001 From: Wesley Aptekar-Cassels Date: Tue, 23 Jan 2024 18:19:31 -0500 Subject: [PATCH 133/184] Add redis automatic rewrite configuration. This should hopefully prevent the AOF file from growing too large. --- redis.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/redis.conf b/redis.conf index 2a417579f..79d6804f5 100644 --- a/redis.conf +++ b/redis.conf @@ -2,6 +2,9 @@ bind 127.0.0.1 ::1 protected-mode yes port 6379 +auto-aof-rewrite-percentage 50 +auto-aof-rewrite-min-size 128mb + rename-command FLUSHDB "" rename-command FLUSHALL "" rename-command DEBUG "" From c4596544a341a5030fe02fe7b1df704f343a35ee Mon Sep 17 00:00:00 2001 From: Rohan Sureshkumar Date: Wed, 24 Jan 2024 19:18:46 +0530 Subject: [PATCH 134/184] Issue-3187: fix failing tests --- bookwyrm/views/feed.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/bookwyrm/views/feed.py b/bookwyrm/views/feed.py index 79e2f24d2..6e8f820e4 100644 --- a/bookwyrm/views/feed.py +++ b/bookwyrm/views/feed.py @@ -52,9 +52,18 @@ class Feed(View): paginated = Paginator(filtered_activities, PAGE_LENGTH) suggestions = suggested_users.get_suggestions(request.user) - cutoff = date(get_annual_summary_year(), 12, 31) - readthroughs = models.ReadThrough.objects.filter( - user=request.user, finish_date__lte=cutoff + + cutoff = ( + date(get_annual_summary_year(), 12, 31) + if get_annual_summary_year() + else None + ) + readthroughs = ( + models.ReadThrough.objects.filter( + user=request.user, finish_date__lte=cutoff + ) + if get_annual_summary_year() + else [] ) data = { From 2d4b11aaeedd9530ad4ddcfcea6f8aeb2b55dda9 Mon Sep 17 00:00:00 2001 From: Alexey Skobkin Date: Thu, 25 Jan 2024 01:50:10 +0300 Subject: [PATCH 135/184] Adding FictionBook format ("FB2", "FB3") to autocomplete options in "Get a copy" block. --- bookwyrm/static/js/autocomplete.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bookwyrm/static/js/autocomplete.js b/bookwyrm/static/js/autocomplete.js index a98cd9634..6836d356d 100644 --- a/bookwyrm/static/js/autocomplete.js +++ b/bookwyrm/static/js/autocomplete.js @@ -111,6 +111,10 @@ const tries = { }, }, f: { + b: { + 2: "FB2", + 3: "FB3", + }, l: { a: { c: "FLAC", From 82f9aa9da4ae68c2e042bbb981c89d8089cd39dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adeodato=20Sim=C3=B3?= Date: Wed, 24 Jan 2024 19:30:45 +0100 Subject: [PATCH 136/184] Set SESSION_COOKIE_AGE from environment, default to one month While we do wish for a longer maximum age (up to one year, see #3082), we only want to do that after termination of active sessions is implemented (see #2278). In the meantime, by reading and setting the variable from settings, we allow site admins to alter the default. --- bookwyrm/settings.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bookwyrm/settings.py b/bookwyrm/settings.py index 16241f9df..4af7afb14 100644 --- a/bookwyrm/settings.py +++ b/bookwyrm/settings.py @@ -30,6 +30,9 @@ RELEASE_API = env( PAGE_LENGTH = env.int("PAGE_LENGTH", 15) DEFAULT_LANGUAGE = env("DEFAULT_LANGUAGE", "English") +# TODO: extend maximum age to 1 year once termination of active sessions +# is implemented (see bookwyrm-social#2278, bookwyrm-social#3082). +SESSION_COOKIE_AGE = env.int("SESSION_COOKIE_AGE", 3600 * 24 * 30) # 1 month JS_CACHE = "ac315a3b" From 80ad36e75b20213939852470506f12593353216c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adeodato=20Sim=C3=B3?= Date: Wed, 24 Jan 2024 19:54:55 +0100 Subject: [PATCH 137/184] Include SESSION_COOKIE_AGE in .env.example Suggested-by: Alexey Skobkin --- .env.example | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 20ce8240b..d0971660e 100644 --- a/.env.example +++ b/.env.example @@ -137,6 +137,10 @@ TWO_FACTOR_LOGIN_MAX_SECONDS=60 # and AWS_S3_CUSTOM_DOMAIN (if used) are added by default. # Value should be a comma-separated list of host names. CSP_ADDITIONAL_HOSTS= + # The last number here means "megabytes" # Increase if users are having trouble uploading BookWyrm export files. -DATA_UPLOAD_MAX_MEMORY_SIZE = (1024**2 * 100) \ No newline at end of file +DATA_UPLOAD_MAX_MEMORY_SIZE = (1024**2 * 100) + +# Time before being logged out (in seconds) +# SESSION_COOKIE_AGE=2592000 # current default: 30 days From 31babdfa510d88f89d08cbfb56de94cd8c0ac028 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adeodato=20Sim=C3=B3?= Date: Fri, 26 Jan 2024 06:01:34 -0300 Subject: [PATCH 138/184] Always prefer shared inboxes when computing receipent lists This avoids duplicate submissions to remote instances when mentioning followers (i.e., `POST /user/foo/inbox` followed by `POST /inbox`, which results in two separate `add_status` tasks, and might generate duplicates in the target instance). --- bookwyrm/models/activitypub_mixin.py | 2 +- bookwyrm/tests/models/test_activitypub_mixin.py | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/bookwyrm/models/activitypub_mixin.py b/bookwyrm/models/activitypub_mixin.py index d0a941f43..41772a162 100644 --- a/bookwyrm/models/activitypub_mixin.py +++ b/bookwyrm/models/activitypub_mixin.py @@ -153,7 +153,7 @@ class ActivitypubMixin: mentions = self.recipients if hasattr(self, "recipients") else [] # we always send activities to explicitly mentioned users' inboxes - recipients = [u.inbox for u in mentions or [] if not u.local] + recipients = [u.shared_inbox or u.inbox for u in mentions if not u.local] # unless it's a dm, all the followers should receive the activity if privacy != "direct": diff --git a/bookwyrm/tests/models/test_activitypub_mixin.py b/bookwyrm/tests/models/test_activitypub_mixin.py index cad970412..2f6fad76d 100644 --- a/bookwyrm/tests/models/test_activitypub_mixin.py +++ b/bookwyrm/tests/models/test_activitypub_mixin.py @@ -227,14 +227,18 @@ class ActivitypubMixins(TestCase): shared_inbox="http://example.com/inbox", outbox="https://example.com/users/nutria/outbox", ) - MockSelf = namedtuple("Self", ("privacy", "user")) - mock_self = MockSelf("public", self.local_user) + MockSelf = namedtuple("Self", ("privacy", "user", "recipients")) self.local_user.followers.add(self.remote_user) self.local_user.followers.add(another_remote_user) + mock_self = MockSelf("public", self.local_user, []) recipients = ActivitypubMixin.get_recipients(mock_self) - self.assertEqual(len(recipients), 1) - self.assertEqual(recipients[0], "http://example.com/inbox") + self.assertCountEqual(recipients, ["http://example.com/inbox"]) + + # should also work with recipient that is a follower + mock_self.recipients.append(another_remote_user) + recipients = ActivitypubMixin.get_recipients(mock_self) + self.assertCountEqual(recipients, ["http://example.com/inbox"]) def test_get_recipients_software(self, *_): """should differentiate between bookwyrm and other remote users""" From 8ac873419fe66de65cdddf6a25560ed24c4e4a63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adeodato=20Sim=C3=B3?= Date: Fri, 26 Jan 2024 06:29:59 -0300 Subject: [PATCH 139/184] refactor: eagerly use a set in recipients, get_recipients --- bookwyrm/models/activitypub_mixin.py | 25 +++++++++++++------------ bookwyrm/models/status.py | 6 +++--- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/bookwyrm/models/activitypub_mixin.py b/bookwyrm/models/activitypub_mixin.py index 41772a162..db737b8bc 100644 --- a/bookwyrm/models/activitypub_mixin.py +++ b/bookwyrm/models/activitypub_mixin.py @@ -152,8 +152,9 @@ class ActivitypubMixin: # find anyone who's tagged in a status, for example mentions = self.recipients if hasattr(self, "recipients") else [] - # we always send activities to explicitly mentioned users' inboxes - recipients = [u.shared_inbox or u.inbox for u in mentions if not u.local] + # we always send activities to explicitly mentioned users (using shared inboxes + # where available to avoid duplicate submissions to a given instance) + recipients = {u.shared_inbox or u.inbox for u in mentions if not u.local} # unless it's a dm, all the followers should receive the activity if privacy != "direct": @@ -173,18 +174,18 @@ class ActivitypubMixin: if user: queryset = queryset.filter(following=user) - # ideally, we will send to shared inboxes for efficiency - shared_inboxes = ( - queryset.filter(shared_inbox__isnull=False) - .values_list("shared_inbox", flat=True) - .distinct() + # as above, we prefer shared inboxes if available + recipients.update( + queryset.filter(shared_inbox__isnull=False).values_list( + "shared_inbox", flat=True + ) ) - # but not everyone has a shared inbox - inboxes = queryset.filter(shared_inbox__isnull=True).values_list( - "inbox", flat=True + recipients.update( + queryset.filter(shared_inbox__isnull=True).values_list( + "inbox", flat=True + ) ) - recipients += list(shared_inboxes) + list(inboxes) - return list(set(recipients)) + return list(recipients) def to_activity_dataclass(self): """convert from a model to an activity""" diff --git a/bookwyrm/models/status.py b/bookwyrm/models/status.py index cc44fe2bf..0d1d0d839 100644 --- a/bookwyrm/models/status.py +++ b/bookwyrm/models/status.py @@ -107,14 +107,14 @@ class Status(OrderedCollectionPageMixin, BookWyrmModel): @property def recipients(self): """tagged users who definitely need to get this status in broadcast""" - mentions = [u for u in self.mention_users.all() if not u.local] + mentions = {u for u in self.mention_users.all() if not u.local} if ( hasattr(self, "reply_parent") and self.reply_parent and not self.reply_parent.user.local ): - mentions.append(self.reply_parent.user) - return list(set(mentions)) + mentions.add(self.reply_parent.user) + return list(mentions) @classmethod def ignore_activity( From 940274b1c22e08fc870e92cc95e5ae6a95f5297e Mon Sep 17 00:00:00 2001 From: Braden Solt Date: Fri, 26 Jan 2024 15:47:55 -0700 Subject: [PATCH 140/184] classes that fix widths --- bookwyrm/templates/confirm_email/confirm_email.html | 4 ++-- bookwyrm/templates/landing/invite.html | 4 ++-- bookwyrm/templates/landing/login.html | 12 +++++++----- bookwyrm/templates/landing/password_reset.html | 4 ++-- bookwyrm/templates/landing/reactivate.html | 12 +++++++----- 5 files changed, 20 insertions(+), 16 deletions(-) diff --git a/bookwyrm/templates/confirm_email/confirm_email.html b/bookwyrm/templates/confirm_email/confirm_email.html index abdd3a734..49a1ebd2d 100644 --- a/bookwyrm/templates/confirm_email/confirm_email.html +++ b/bookwyrm/templates/confirm_email/confirm_email.html @@ -6,8 +6,8 @@ {% block content %}

    {% trans "Confirm your email address" %}

    -
    -
    +
    +

    {% trans "A confirmation code has been sent to the email address you used to register your account." %}

    diff --git a/bookwyrm/templates/landing/invite.html b/bookwyrm/templates/landing/invite.html index d56cad38c..3e3ddab85 100644 --- a/bookwyrm/templates/landing/invite.html +++ b/bookwyrm/templates/landing/invite.html @@ -6,8 +6,8 @@ {% block content %}

    {% trans "Create an Account" %}

    -
    -
    +
    +
    {% if valid %}
    diff --git a/bookwyrm/templates/landing/login.html b/bookwyrm/templates/landing/login.html index 369a72bd2..8ea828b74 100644 --- a/bookwyrm/templates/landing/login.html +++ b/bookwyrm/templates/landing/login.html @@ -6,7 +6,7 @@ {% block content %}

    {% trans "Log in" %}

    -
    +
    {% if login_form.non_field_errors %}

    {{ login_form.non_field_errors }}

    {% endif %} @@ -20,13 +20,15 @@
    - +
    - +
    {% include 'snippets/form_errors.html' with errors_list=login_form.password.errors id="desc_password" %} @@ -58,10 +60,10 @@ {% include 'snippets/about.html' %}

    - {% trans "More about this site" %} + {% trans "More about this site" %}

    -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/bookwyrm/templates/landing/password_reset.html b/bookwyrm/templates/landing/password_reset.html index 786eaa0ab..2f41c5505 100644 --- a/bookwyrm/templates/landing/password_reset.html +++ b/bookwyrm/templates/landing/password_reset.html @@ -4,8 +4,8 @@ {% block title %}{% trans "Reset Password" %}{% endblock %} {% block content %} -
    -
    +
    +

    {% trans "Reset Password" %}

    diff --git a/bookwyrm/templates/landing/reactivate.html b/bookwyrm/templates/landing/reactivate.html index da9e0b050..adb41238f 100644 --- a/bookwyrm/templates/landing/reactivate.html +++ b/bookwyrm/templates/landing/reactivate.html @@ -6,7 +6,7 @@ {% block content %}

    {% trans "Reactivate Account" %}

    -
    +
    {% if login_form.non_field_errors %}

    {{ login_form.non_field_errors }}

    {% endif %} @@ -16,13 +16,15 @@
    - +
    - +
    {% include 'snippets/form_errors.html' with errors_list=login_form.password.errors id="desc_password" %} @@ -51,10 +53,10 @@ {% include 'snippets/about.html' %}

    - {% trans "More about this site" %} + {% trans "More about this site" %}

    -{% endblock %} +{% endblock %} \ No newline at end of file From b05621005e14818fd4d529c06b38b4c433a7832d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 00:10:13 +0000 Subject: [PATCH 141/184] Bump aiohttp from 3.9.0 to 3.9.2 Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.9.0 to 3.9.2. - [Release notes](https://github.com/aio-libs/aiohttp/releases) - [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst) - [Commits](https://github.com/aio-libs/aiohttp/compare/v3.9.0...v3.9.2) --- updated-dependencies: - dependency-name: aiohttp dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 6509effc7..41b6bd16d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -aiohttp==3.9.0 +aiohttp==3.9.2 bleach==5.0.1 celery==5.2.7 colorthief==0.2.1 From 2ba7dff845e7211a22c390e32e590f84b16311fd Mon Sep 17 00:00:00 2001 From: Jacob Kerr Date: Wed, 3 Jan 2024 21:54:25 -0500 Subject: [PATCH 142/184] Fixed shelving date changing when changing editions --- bookwyrm/views/books/editions.py | 1 + 1 file changed, 1 insertion(+) diff --git a/bookwyrm/views/books/editions.py b/bookwyrm/views/books/editions.py index 54d1bd84c..5202531f5 100644 --- a/bookwyrm/views/books/editions.py +++ b/bookwyrm/views/books/editions.py @@ -93,6 +93,7 @@ def switch_edition(request): user=shelfbook.user, shelf=shelfbook.shelf, book=new_edition, + shelved_date=shelfbook.shelved_date, ) shelfbook.delete() From 9c5f6c527bd9ae1954a22d695f43f1c8f2c82907 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 3 Feb 2024 06:51:23 -0800 Subject: [PATCH 143/184] Fixes translation tags --- .../templates/preferences/export-user.html | 40 +++++++++---------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/bookwyrm/templates/preferences/export-user.html b/bookwyrm/templates/preferences/export-user.html index 58b27f3c1..955cff656 100644 --- a/bookwyrm/templates/preferences/export-user.html +++ b/bookwyrm/templates/preferences/export-user.html @@ -14,31 +14,29 @@

    {% trans "You can create an export file here. This will allow you to migrate your data to another BookWyrm account." %}

    - {% blocktrans trimmed %}
    -

    Your file will include:

    +

    {% trans "Your file will include:" %}

      -
    • User profile
    • -
    • Most user settings
    • -
    • Reading goals
    • -
    • Shelves
    • -
    • Reading history
    • -
    • Book reviews
    • -
    • Statuses
    • -
    • Your own lists and saved lists
    • -
    • Which users you follow and block
    • +
    • {% trans "User profile" %}
    • +
    • {% trans "Most user settings" %}
    • +
    • {% trans "Reading goals" %}
    • +
    • {% trans "Shelves" %}
    • +
    • {% trans "Reading history" %}
    • +
    • {% trans "Book reviews" %}
    • +
    • {% trans "Statuses" %}
    • +
    • {% trans "Your own lists and saved lists" %}
    • +
    • {% trans "Which users you follow and block" %}
    -

    Your file will not include:

    +

    {% trans "Your file will not include:" %}

      -
    • Direct messages
    • -
    • Replies to your statuses
    • -
    • Groups
    • -
    • Favorites
    • +
    • {% trans "Direct messages" %}
    • +
    • {% trans "Replies to your statuses" %}
    • +
    • {% trans "Groups" %}
    • +
    • {% trans "Favorites" %}
    - {% endblocktrans %}

    {% trans "In your new BookWyrm account can choose what to import: you will not have to import everything that is exported." %}

    @@ -50,11 +48,11 @@

    {% trans "New user exports are currently disabled." %} {% if perms.bookwyrm.edit_instance_settings %} - {% spaceless %} - {% blocktrans%} -
    User exports settings can be changed from the Imports page in the Admin dashboard. +
    + {% url 'settings-imports' as url %} + {% blocktrans trimmed %} + User exports settings can be changed from the Imports page in the Admin dashboard. {% endblocktrans %} - {% endspaceless %} {% endif%}

    {% elif next_available %} From 6d5752fb4ee72287ed15b84726872a4608842159 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 3 Feb 2024 07:40:23 -0800 Subject: [PATCH 144/184] Adds merge migration for page numbering fix --- bookwyrm/migrations/0193_merge_20240203_1539.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 bookwyrm/migrations/0193_merge_20240203_1539.py diff --git a/bookwyrm/migrations/0193_merge_20240203_1539.py b/bookwyrm/migrations/0193_merge_20240203_1539.py new file mode 100644 index 000000000..a88568ba1 --- /dev/null +++ b/bookwyrm/migrations/0193_merge_20240203_1539.py @@ -0,0 +1,13 @@ +# Generated by Django 3.2.23 on 2024-02-03 15:39 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("bookwyrm", "0192_make_page_positions_text"), + ("bookwyrm", "0192_sitesettings_user_exports_enabled"), + ] + + operations = [] From a1ac9494b28ecd1a1674926d7aad8e82d2502dcf Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 3 Feb 2024 08:00:07 -0800 Subject: [PATCH 145/184] Allow admins to un-schedule tasks --- bookwyrm/templates/settings/schedules.html | 11 +++++++++++ bookwyrm/urls.py | 2 +- bookwyrm/views/admin/schedule.py | 8 ++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/bookwyrm/templates/settings/schedules.html b/bookwyrm/templates/settings/schedules.html index fe096092d..20ced4b30 100644 --- a/bookwyrm/templates/settings/schedules.html +++ b/bookwyrm/templates/settings/schedules.html @@ -61,7 +61,18 @@ {{ task.interval.id }} + + {% if task.enabled %} + + {% endif %} {{ task.enabled|yesno }} + + {% if task.name != "celery.backend_cleanup" %} +
    + {% csrf_token %} + +
    + {% endif %} {% empty %} diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py index 64742347a..a40dcebea 100644 --- a/bookwyrm/urls.py +++ b/bookwyrm/urls.py @@ -360,7 +360,7 @@ urlpatterns = [ r"^settings/celery/ping/?$", views.celery_ping, name="settings-celery-ping" ), re_path( - r"^settings/schedules/?$", + r"^settings/schedules/(?P\d+)?$", views.ScheduledTasks.as_view(), name="settings-schedules", ), diff --git a/bookwyrm/views/admin/schedule.py b/bookwyrm/views/admin/schedule.py index ce5944ee5..c654dca9a 100644 --- a/bookwyrm/views/admin/schedule.py +++ b/bookwyrm/views/admin/schedule.py @@ -1,5 +1,6 @@ """ Scheduled celery tasks """ from django.contrib.auth.decorators import login_required, permission_required +from django.shortcuts import redirect from django.template.response import TemplateResponse from django.utils.decorators import method_decorator from django.views import View @@ -21,3 +22,10 @@ class ScheduledTasks(View): data["tasks"] = PeriodicTask.objects.all() data["schedules"] = IntervalSchedule.objects.all() return TemplateResponse(request, "settings/schedules.html", data) + + # pylint: disable=unused-argument + def post(self, request, task_id): + """un-schedule a task""" + task = PeriodicTask.objects.get(id=task_id) + task.delete() + return redirect("settings-schedules") From 4e2b8af1479bd35bf2b5c5973ff0ae2b4bb1a4fc Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 3 Feb 2024 08:02:51 -0800 Subject: [PATCH 146/184] Adds merge migration --- bookwyrm/migrations/0193_merge_20240203_1602.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 bookwyrm/migrations/0193_merge_20240203_1602.py diff --git a/bookwyrm/migrations/0193_merge_20240203_1602.py b/bookwyrm/migrations/0193_merge_20240203_1602.py new file mode 100644 index 000000000..e5f760539 --- /dev/null +++ b/bookwyrm/migrations/0193_merge_20240203_1602.py @@ -0,0 +1,13 @@ +# Generated by Django 3.2.23 on 2024-02-03 16:02 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("bookwyrm", "0192_rename_version_sitesettings_available_version"), + ("bookwyrm", "0192_sitesettings_user_exports_enabled"), + ] + + operations = [] From 748c9349865f063689adcaa61e46a26fa3e3bcae Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Sat, 3 Feb 2024 08:20:12 -0800 Subject: [PATCH 147/184] Merge migrations upon merge migrations --- ...193_merge_20240203_1602.py => 0194_merge_20240203_1619.py} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename bookwyrm/migrations/{0193_merge_20240203_1602.py => 0194_merge_20240203_1619.py} (63%) diff --git a/bookwyrm/migrations/0193_merge_20240203_1602.py b/bookwyrm/migrations/0194_merge_20240203_1619.py similarity index 63% rename from bookwyrm/migrations/0193_merge_20240203_1602.py rename to bookwyrm/migrations/0194_merge_20240203_1619.py index e5f760539..a5c18e300 100644 --- a/bookwyrm/migrations/0193_merge_20240203_1602.py +++ b/bookwyrm/migrations/0194_merge_20240203_1619.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.23 on 2024-02-03 16:02 +# Generated by Django 3.2.23 on 2024-02-03 16:19 from django.db import migrations @@ -7,7 +7,7 @@ class Migration(migrations.Migration): dependencies = [ ("bookwyrm", "0192_rename_version_sitesettings_available_version"), - ("bookwyrm", "0192_sitesettings_user_exports_enabled"), + ("bookwyrm", "0193_merge_20240203_1539"), ] operations = [] From 6c9ca0bf190552597890c2aaefca614c0058f914 Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Sat, 3 Feb 2024 21:55:46 +0100 Subject: [PATCH 148/184] Add search for author --- bookwyrm/templates/layout.html | 2 +- bookwyrm/templates/search/author.html | 17 +++++++++++++++++ bookwyrm/templates/search/layout.html | 4 ++++ bookwyrm/views/search.py | 27 +++++++++++++++++++++++++++ 4 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 bookwyrm/templates/search/author.html diff --git a/bookwyrm/templates/layout.html b/bookwyrm/templates/layout.html index 6283e61c4..ced4e8006 100644 --- a/bookwyrm/templates/layout.html +++ b/bookwyrm/templates/layout.html @@ -36,7 +36,7 @@
    {% if request.user.is_authenticated %} - {% trans "Search for a book, user, or list" as search_placeholder %} + {% trans "Search for a book, author, user, or list" as search_placeholder %} {% else %} {% trans "Search for a book" as search_placeholder %} {% endif %} diff --git a/bookwyrm/templates/search/author.html b/bookwyrm/templates/search/author.html new file mode 100644 index 000000000..d42c3b54f --- /dev/null +++ b/bookwyrm/templates/search/author.html @@ -0,0 +1,17 @@ +{% extends 'search/layout.html' %} + +{% block panel %} + +{% if results %} + +{% endif %} + +{% endblock %} diff --git a/bookwyrm/templates/search/layout.html b/bookwyrm/templates/search/layout.html index 8cf47b371..725a4f43f 100644 --- a/bookwyrm/templates/search/layout.html +++ b/bookwyrm/templates/search/layout.html @@ -20,6 +20,7 @@
    + +
    {% endblock %} From dd1999eb8e75c17b525d301f46242b279ffb93df Mon Sep 17 00:00:00 2001 From: Ross Chapman Date: Tue, 20 Feb 2024 16:25:01 -0800 Subject: [PATCH 155/184] Adds view tests for shelf filters (#3162) * Adds test file * Adds success assertion * Updates tests * Updates shelf books creation * Updates assertion to use isbn for Edition model * Updates query * trigger workflow test * Updates validate_html * Updates comment and test * Fixes none test * Adds management command to clear all deleted user data * Adds success message --------- Co-authored-by: Mouse Reeve Co-authored-by: Mouse Reeve --- bookwyrm/tests/validate_html.py | 28 ++++++++++----- bookwyrm/tests/views/shelf/test_shelf.py | 45 ++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 9 deletions(-) diff --git a/bookwyrm/tests/validate_html.py b/bookwyrm/tests/validate_html.py index 85e5c6277..748b94d5f 100644 --- a/bookwyrm/tests/validate_html.py +++ b/bookwyrm/tests/validate_html.py @@ -13,16 +13,26 @@ def validate_html(html): "warn-proprietary-attributes": False, }, ) - # idk how else to filter out these unescape amp errs + # Tidy's parser is strict when validating unescaped/encoded ampersands found within + # the html document that are notpart of a character or entity reference + # (eg: `&` or `&`). Despite the fact the HTML5 spec no longer recommends + # escaping ampersands in URLs, Tidy will still complain if they are used as query + # param keys. Unfortunately, there is no way currently to configure tidy to ignore + # this so we must explictly redlist related strings that will appear in Tidy's + # errors output. + # + # See further discussion: https://github.com/htacg/tidy-html5/issues/1017 + excluded = [ + "&book", + "&type", + "&resolved", + "id and name attribute", + "illegal characters found in URI", + "escaping malformed URI reference", + "&filter", + ] errors = "\n".join( - e - for e in errors.split("\n") - if "&book" not in e - and "&type" not in e - and "&resolved" not in e - and "id and name attribute" not in e - and "illegal characters found in URI" not in e - and "escaping malformed URI reference" not in e + e for e in errors.split("\n") if not any(exclude in e for exclude in excluded) ) if errors: raise Exception(errors) diff --git a/bookwyrm/tests/views/shelf/test_shelf.py b/bookwyrm/tests/views/shelf/test_shelf.py index 492f214e3..b96d0a9ed 100644 --- a/bookwyrm/tests/views/shelf/test_shelf.py +++ b/bookwyrm/tests/views/shelf/test_shelf.py @@ -219,3 +219,48 @@ class ShelfViews(TestCase): view(request, request.user.username, shelf.identifier) self.assertEqual(shelf.name, "To Read") + + def test_filter_shelf_found(self, *_): + """display books that match a filter keyword""" + models.ShelfBook.objects.create( + book=self.book, + shelf=self.shelf, + user=self.local_user, + ) + shelf_book = models.ShelfBook.objects.create( + book=self.book, + shelf=self.local_user.shelf_set.first(), + user=self.local_user, + ) + view = views.Shelf.as_view() + request = self.factory.get("", {"filter": shelf_book.book.title}) + request.user = self.local_user + with patch("bookwyrm.views.shelf.shelf.is_api_request") as is_api: + is_api.return_value = False + result = view(request, self.local_user.username) + self.assertIsInstance(result, TemplateResponse) + validate_html(result.render()) + self.assertEqual(result.status_code, 200) + self.assertEqual(len(result.context_data["books"].object_list), 1) + self.assertEqual( + result.context_data["books"].object_list[0].title, + shelf_book.book.title, + ) + + def test_filter_shelf_none(self, *_): + """display a message when no books match a filter keyword""" + models.ShelfBook.objects.create( + book=self.book, + shelf=self.shelf, + user=self.local_user, + ) + view = views.Shelf.as_view() + request = self.factory.get("", {"filter": "NOPE"}) + request.user = self.local_user + with patch("bookwyrm.views.shelf.shelf.is_api_request") as is_api: + is_api.return_value = False + result = view(request, self.local_user.username) + self.assertIsInstance(result, TemplateResponse) + validate_html(result.render()) + self.assertEqual(result.status_code, 200) + self.assertEqual(len(result.context_data["books"].object_list), 0) From 8f537ef56a11fee392dd6e55688187ad95e6e91f Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 20 Feb 2024 16:45:16 -0800 Subject: [PATCH 156/184] Adds missing migration for Korean locale --- .../0195_alter_user_preferred_language.py | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 bookwyrm/migrations/0195_alter_user_preferred_language.py diff --git a/bookwyrm/migrations/0195_alter_user_preferred_language.py b/bookwyrm/migrations/0195_alter_user_preferred_language.py new file mode 100644 index 000000000..1fbfa7304 --- /dev/null +++ b/bookwyrm/migrations/0195_alter_user_preferred_language.py @@ -0,0 +1,46 @@ +# Generated by Django 3.2.23 on 2024-02-21 00:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("bookwyrm", "0194_merge_20240203_1619"), + ] + + operations = [ + migrations.AlterField( + model_name="user", + name="preferred_language", + field=models.CharField( + blank=True, + choices=[ + ("en-us", "English"), + ("ca-es", "Català (Catalan)"), + ("de-de", "Deutsch (German)"), + ("eo-uy", "Esperanto (Esperanto)"), + ("es-es", "Español (Spanish)"), + ("eu-es", "Euskara (Basque)"), + ("gl-es", "Galego (Galician)"), + ("it-it", "Italiano (Italian)"), + ("ko-kr", "한국어 (Korean)"), + ("fi-fi", "Suomi (Finnish)"), + ("fr-fr", "Français (French)"), + ("lt-lt", "Lietuvių (Lithuanian)"), + ("nl-nl", "Nederlands (Dutch)"), + ("no-no", "Norsk (Norwegian)"), + ("pl-pl", "Polski (Polish)"), + ("pt-br", "Português do Brasil (Brazilian Portuguese)"), + ("pt-pt", "Português Europeu (European Portuguese)"), + ("ro-ro", "Română (Romanian)"), + ("sv-se", "Svenska (Swedish)"), + ("uk-ua", "Українська (Ukrainian)"), + ("zh-hans", "简体中文 (Simplified Chinese)"), + ("zh-hant", "繁體中文 (Traditional Chinese)"), + ], + max_length=255, + null=True, + ), + ), + ] From db97d76a240919f31e48b8d97c1c51ca06aadbb4 Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Fri, 1 Mar 2024 19:58:11 -0800 Subject: [PATCH 157/184] Add timeout to isbn.py An instance of requests.get in isbn.py lacks a timeout, and this commit adds one with a default of 15 as used other places in the code, where requests.get does already have a timeout. --- bookwyrm/isbn/isbn.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bookwyrm/isbn/isbn.py b/bookwyrm/isbn/isbn.py index 56062ff7b..d14dc2619 100644 --- a/bookwyrm/isbn/isbn.py +++ b/bookwyrm/isbn/isbn.py @@ -26,7 +26,7 @@ class IsbnHyphenator: def update_range_message(self) -> None: """Download the range message xml file and save it locally""" - response = requests.get(self.__range_message_url) + response = requests.get(self.__range_message_url, timeout=15) with open(self.__range_file_path, "w", encoding="utf-8") as file: file.write(response.text) self.__element_tree = None From 1ae9870862626134f90b4f1fb86d06fdd870e6c4 Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Fri, 1 Mar 2024 20:02:40 -0800 Subject: [PATCH 158/184] Add timeout to base_activity.py An instance of requests.get was missing a timeout; this commit adds a timeout of 15 as used in other places in this codebase which already have timeouts. --- bookwyrm/activitypub/base_activity.py | 1 + 1 file changed, 1 insertion(+) diff --git a/bookwyrm/activitypub/base_activity.py b/bookwyrm/activitypub/base_activity.py index fbbc18f73..9f1cfdbfb 100644 --- a/bookwyrm/activitypub/base_activity.py +++ b/bookwyrm/activitypub/base_activity.py @@ -423,6 +423,7 @@ def get_activitypub_data(url): "Date": now, "Signature": make_signature("get", sender, url, now), }, + timeout=15 ) except requests.RequestException: raise ConnectorException() From 50b811d9aa0e117f20851507b385b2020cfcd618 Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Fri, 1 Mar 2024 20:11:14 -0800 Subject: [PATCH 159/184] Typo fix Add a comma --- bookwyrm/activitypub/base_activity.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bookwyrm/activitypub/base_activity.py b/bookwyrm/activitypub/base_activity.py index 9f1cfdbfb..890d4d24a 100644 --- a/bookwyrm/activitypub/base_activity.py +++ b/bookwyrm/activitypub/base_activity.py @@ -423,7 +423,7 @@ def get_activitypub_data(url): "Date": now, "Signature": make_signature("get", sender, url, now), }, - timeout=15 + timeout=15, ) except requests.RequestException: raise ConnectorException() From f8fd76cff05450249d59d76f02bc05e2138062dd Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Sat, 2 Mar 2024 13:57:09 -0800 Subject: [PATCH 160/184] Remove duplicate types-requests==2.31.0.2 The types-requests==2.31.0.2 dependency was double-listed right next to each other; this commit removes one. --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 6dc737aab..931bc155b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -54,4 +54,3 @@ types-Pillow==10.0.0.3 types-psycopg2==2.9.21.11 types-python-dateutil==2.8.19.14 types-requests==2.31.0.2 -types-requests==2.31.0.2 From 3652ac81008fd2d0f8d640160de3178913237454 Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Sat, 2 Mar 2024 15:41:06 -0800 Subject: [PATCH 161/184] Alphabetize requirements.txt Alphabetize requirements.txt for developer convenience; this helps to find duplicates and unnecessarily-pinned subdependencies, as well as making the file easier to read and use. --- requirements.txt | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/requirements.txt b/requirements.txt index 931bc155b..f41210aea 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,52 +1,52 @@ aiohttp==3.9.2 bleach==5.0.1 +boto3==1.26.57 +bw-file-resubmit==0.6.0rc2 celery==5.2.7 colorthief==0.2.1 Django==3.2.24 django-celery-beat==2.4.0 -bw-file-resubmit==0.6.0rc2 django-compressor==4.3.1 +django-csp==3.7 django-imagekit==4.1.0 django-model-utils==4.3.1 +django-redis==5.2.0 django-sass-processor==1.2.2 -django-csp==3.7 +django-storages==1.13.2 +django-storages[azure] environs==9.5.0 flower==1.2.0 libsass==0.22.0 Markdown==3.4.1 -Pillow==10.0.1 -psycopg2==2.9.5 -pycryptodome==3.19.1 -python-dateutil==2.8.2 -redis==4.5.4 -requests==2.31.0 -responses==0.22.0 -pytz>=2022.7 -boto3==1.26.57 -django-storages==1.13.2 -django-storages[azure] -django-redis==5.2.0 opentelemetry-api==1.16.0 opentelemetry-exporter-otlp-proto-grpc==1.16.0 opentelemetry-instrumentation-celery==0.37b0 opentelemetry-instrumentation-django==0.37b0 opentelemetry-instrumentation-psycopg2==0.37b0 opentelemetry-sdk==1.16.0 +Pillow==10.0.1 protobuf==3.20.* +psycopg2==2.9.5 +pycryptodome==3.19.1 pyotp==2.8.0 +python-dateutil==2.8.2 +pytz>=2022.7 qrcode==7.3.1 +redis==4.5.4 +requests==2.31.0 +responses==0.22.0 # Dev -pytest-django==4.1.0 +celery-types==0.18.0 +django-stubs[compatible-mypy]==4.2.4 +mypy==1.5.1 +pylint==2.14.0 pytest==6.1.2 pytest-cov==2.10.1 +pytest-django==4.1.0 pytest-env==0.6.2 pytest-xdist==2.3.0 pytidylib==0.3.2 -pylint==2.14.0 -mypy==1.5.1 -celery-types==0.18.0 -django-stubs[compatible-mypy]==4.2.4 types-bleach==6.0.0.4 types-dataclasses==0.6.6 types-Markdown==3.4.2.10 From 570017d3b08a700a7cd12c656a5eeeff059b466b Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Sat, 2 Mar 2024 15:57:06 -0800 Subject: [PATCH 162/184] Upgrade Python Version from 3.9 to 3.11 --- .github/workflows/django-tests.yml | 2 +- .github/workflows/mypy.yml | 4 ++-- .github/workflows/pylint.yml | 4 ++-- Dockerfile | 2 +- dev-tools/Dockerfile | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/django-tests.yml b/.github/workflows/django-tests.yml index 78b6e142e..de71d9bcf 100644 --- a/.github/workflows/django-tests.yml +++ b/.github/workflows/django-tests.yml @@ -27,7 +27,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v4 with: - python-version: 3.9 + python-version: 3.11 - name: Install Dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/mypy.yml b/.github/workflows/mypy.yml index 1a641edd2..6df987aa4 100644 --- a/.github/workflows/mypy.yml +++ b/.github/workflows/mypy.yml @@ -13,10 +13,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.9 + - name: Set up Python 3.11 uses: actions/setup-python@v4 with: - python-version: 3.9 + python-version: 3.11 - name: Install Dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml index 3811c97d3..ab8633b48 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/pylint.yml @@ -13,10 +13,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up Python 3.9 + - name: Set up Python 3.11 uses: actions/setup-python@v4 with: - python-version: 3.9 + python-version: 3.11 - name: Install Dependencies run: | python -m pip install --upgrade pip diff --git a/Dockerfile b/Dockerfile index b3cd26e88..82b0c92c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.9 +FROM python:3.11 ENV PYTHONUNBUFFERED 1 diff --git a/dev-tools/Dockerfile b/dev-tools/Dockerfile index 6c132944f..563467f09 100644 --- a/dev-tools/Dockerfile +++ b/dev-tools/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.9-bookworm +FROM python:3.11-bookworm WORKDIR /app/dev-tools ENV PATH="/app/dev-tools/node_modules/.bin:$PATH" From 39da471f795fd99e40f68e0f48c831f56864208a Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Sat, 2 Mar 2024 15:59:17 -0800 Subject: [PATCH 163/184] Disable Pylint Failure for imghdr deprecation for now --- bookwyrm/connectors/abstract_connector.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bookwyrm/connectors/abstract_connector.py b/bookwyrm/connectors/abstract_connector.py index 8b6dcb885..b61bc2b04 100644 --- a/bookwyrm/connectors/abstract_connector.py +++ b/bookwyrm/connectors/abstract_connector.py @@ -3,7 +3,9 @@ from __future__ import annotations from abc import ABC, abstractmethod from typing import Optional, TypedDict, Any, Callable, Union, Iterator from urllib.parse import quote_plus -import imghdr + +# pylint: disable-next=deprecated-module +import imghdr # Deprecated in 3.11 for removal in 3.13; no good alternative yet import logging import re import asyncio From 4312e9bba02df710ca0f11f40fffe00ef7af95b8 Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Sat, 2 Mar 2024 16:03:19 -0800 Subject: [PATCH 164/184] Upgrade Celery to 5.3.1 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index f41210aea..0cfa9db9c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ aiohttp==3.9.2 bleach==5.0.1 boto3==1.26.57 bw-file-resubmit==0.6.0rc2 -celery==5.2.7 +celery==5.3.1 colorthief==0.2.1 Django==3.2.24 django-celery-beat==2.4.0 From c944824ac7abb6233b43a0f4cc573343635d287e Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Sat, 2 Mar 2024 16:04:06 -0800 Subject: [PATCH 165/184] Upgrade django-celery-beat to 2.5.0 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 0cfa9db9c..19f13307f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,7 +5,7 @@ bw-file-resubmit==0.6.0rc2 celery==5.3.1 colorthief==0.2.1 Django==3.2.24 -django-celery-beat==2.4.0 +django-celery-beat==2.5.0 django-compressor==4.3.1 django-csp==3.7 django-imagekit==4.1.0 From fee3fdd5a804a7cb3b234763649034b01b4f5d87 Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Sat, 2 Mar 2024 16:04:37 -0800 Subject: [PATCH 166/184] Upgrade django-compressor to 4.4 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 19f13307f..5882607ee 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ celery==5.3.1 colorthief==0.2.1 Django==3.2.24 django-celery-beat==2.5.0 -django-compressor==4.3.1 +django-compressor==4.4 django-csp==3.7 django-imagekit==4.1.0 django-model-utils==4.3.1 From c1520da56d0959a5b56f272c2803120aae696425 Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Sat, 2 Mar 2024 16:05:11 -0800 Subject: [PATCH 167/184] Upgrade flower to 2.0.0 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 5882607ee..574c7811c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15,7 +15,7 @@ django-sass-processor==1.2.2 django-storages==1.13.2 django-storages[azure] environs==9.5.0 -flower==1.2.0 +flower==2.0.0 libsass==0.22.0 Markdown==3.4.1 opentelemetry-api==1.16.0 From da2636fa294eec47502666e21dc41e4f71c66b4c Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Sat, 2 Mar 2024 16:07:50 -0800 Subject: [PATCH 168/184] Add grpcio pin @ 1.57.0 --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 574c7811c..076456b0d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -16,6 +16,7 @@ django-storages==1.13.2 django-storages[azure] environs==9.5.0 flower==2.0.0 +grpcio=1.57.0 # Not a direct dependency, pinned to get a security fix libsass==0.22.0 Markdown==3.4.1 opentelemetry-api==1.16.0 From 0f5a3e9163a3f52843b222668dd7a273014db500 Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Sat, 2 Mar 2024 16:08:41 -0800 Subject: [PATCH 169/184] Pin Tornado at 6.3.3 --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 076456b0d..05c606a83 100644 --- a/requirements.txt +++ b/requirements.txt @@ -36,6 +36,7 @@ qrcode==7.3.1 redis==4.5.4 requests==2.31.0 responses==0.22.0 +tornado==6.3.3 # Not a direct dependency, pinned to get a security fix # Dev celery-types==0.18.0 From 498dc35d995793a73b3ae358a3d1f2d969240684 Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Sat, 2 Mar 2024 16:09:06 -0800 Subject: [PATCH 170/184] Upgrade Pylint to 2.15.0 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 05c606a83..a2f95c6bc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -42,7 +42,7 @@ tornado==6.3.3 # Not a direct dependency, pinned to get a security fix celery-types==0.18.0 django-stubs[compatible-mypy]==4.2.4 mypy==1.5.1 -pylint==2.14.0 +pylint==2.15.0 pytest==6.1.2 pytest-cov==2.10.1 pytest-django==4.1.0 From 22c4155c7c4b850c538ce26a5590d02acc4d706b Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Sat, 2 Mar 2024 16:09:34 -0800 Subject: [PATCH 171/184] Upgrade pytest to 6.2.5 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index a2f95c6bc..ae73b1d61 100644 --- a/requirements.txt +++ b/requirements.txt @@ -43,7 +43,7 @@ celery-types==0.18.0 django-stubs[compatible-mypy]==4.2.4 mypy==1.5.1 pylint==2.15.0 -pytest==6.1.2 +pytest==6.2.5 pytest-cov==2.10.1 pytest-django==4.1.0 pytest-env==0.6.2 From be140d5e5a5818b73c40c7259a54a510681789db Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Sat, 2 Mar 2024 17:20:48 -0800 Subject: [PATCH 172/184] Pin setuptools at 65.5.1 --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index ae73b1d61..bdf84f7e7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -36,6 +36,7 @@ qrcode==7.3.1 redis==4.5.4 requests==2.31.0 responses==0.22.0 +setuptools>=65.5.1 # Not a direct dependency, pinned to get a security fix tornado==6.3.3 # Not a direct dependency, pinned to get a security fix # Dev From eadb0e640f84f9a69c39638ce425e78fadffb594 Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Sat, 2 Mar 2024 17:29:42 -0800 Subject: [PATCH 173/184] Fix typo in operator --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index bdf84f7e7..c769916a2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -16,7 +16,7 @@ django-storages==1.13.2 django-storages[azure] environs==9.5.0 flower==2.0.0 -grpcio=1.57.0 # Not a direct dependency, pinned to get a security fix +grpcio==1.57.0 # Not a direct dependency, pinned to get a security fix libsass==0.22.0 Markdown==3.4.1 opentelemetry-api==1.16.0 From 9fa09d5ebeb96a379f1ba6765aaf22324b8f631d Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Sat, 2 Mar 2024 17:30:37 -0800 Subject: [PATCH 174/184] Add extra space required by linter --- bookwyrm/connectors/abstract_connector.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bookwyrm/connectors/abstract_connector.py b/bookwyrm/connectors/abstract_connector.py index b61bc2b04..fbf0fb31b 100644 --- a/bookwyrm/connectors/abstract_connector.py +++ b/bookwyrm/connectors/abstract_connector.py @@ -5,7 +5,7 @@ from typing import Optional, TypedDict, Any, Callable, Union, Iterator from urllib.parse import quote_plus # pylint: disable-next=deprecated-module -import imghdr # Deprecated in 3.11 for removal in 3.13; no good alternative yet +import imghdr # Deprecated in 3.11 for removal in 3.13; no good alternative yet import logging import re import asyncio From 91fe4ad535fbe4717042c3189d38d7b4c1336f4a Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Sat, 2 Mar 2024 17:31:16 -0800 Subject: [PATCH 175/184] Fix spacing for linter --- bookwyrm/connectors/abstract_connector.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bookwyrm/connectors/abstract_connector.py b/bookwyrm/connectors/abstract_connector.py index fbf0fb31b..aa8edbeae 100644 --- a/bookwyrm/connectors/abstract_connector.py +++ b/bookwyrm/connectors/abstract_connector.py @@ -5,7 +5,7 @@ from typing import Optional, TypedDict, Any, Callable, Union, Iterator from urllib.parse import quote_plus # pylint: disable-next=deprecated-module -import imghdr # Deprecated in 3.11 for removal in 3.13; no good alternative yet +import imghdr # Deprecated in 3.11 for removal in 3.13; no good alternative yet import logging import re import asyncio From d138395c75a6790f6ad81a727ad8a3f2c8b1169d Mon Sep 17 00:00:00 2001 From: Margaret Fero Date: Sat, 2 Mar 2024 17:43:49 -0800 Subject: [PATCH 176/184] Add linter exclusion for TBookWyrmModel --- bookwyrm/activitypub/base_activity.py | 1 + 1 file changed, 1 insertion(+) diff --git a/bookwyrm/activitypub/base_activity.py b/bookwyrm/activitypub/base_activity.py index 890d4d24a..efc9d8da2 100644 --- a/bookwyrm/activitypub/base_activity.py +++ b/bookwyrm/activitypub/base_activity.py @@ -20,6 +20,7 @@ from bookwyrm.tasks import app, MISC logger = logging.getLogger(__name__) +# pylint: disable=invalid-name TBookWyrmModel = TypeVar("TBookWyrmModel", bound=base_model.BookWyrmModel) From 09c3d9c0dcdb821de612ac9f47819599bf349dcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adeodato=20Sim=C3=B3?= Date: Sun, 3 Mar 2024 18:42:27 -0300 Subject: [PATCH 177/184] json_export: also detect absent "icon" key --- bookwyrm/models/bookwyrm_export_job.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/bookwyrm/models/bookwyrm_export_job.py b/bookwyrm/models/bookwyrm_export_job.py index 1f6085e0c..2f32cbd29 100644 --- a/bookwyrm/models/bookwyrm_export_job.py +++ b/bookwyrm/models/bookwyrm_export_job.py @@ -80,10 +80,7 @@ def json_export( exported_user = user.to_activity() # I don't love this but it prevents a JSON encoding error # when there is no user image - if isinstance( - exported_user["icon"], - dataclasses._MISSING_TYPE, # pylint: disable=protected-access - ): + if exported_user.get("icon") in (None, dataclasses.MISSING): exported_user["icon"] = {} else: # change the URL to be relative to the JSON file From 8d018b872fe33ccdd729a7fb953f65885a45cd47 Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Sat, 9 Mar 2024 15:39:52 +0100 Subject: [PATCH 178/184] FileLinkForm: fix duplicate check --- bookwyrm/forms/links.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bookwyrm/forms/links.py b/bookwyrm/forms/links.py index d2fd5f116..345c5c1d4 100644 --- a/bookwyrm/forms/links.py +++ b/bookwyrm/forms/links.py @@ -1,4 +1,5 @@ """ using django model forms """ + from urllib.parse import urlparse from django.utils.translation import gettext_lazy as _ @@ -37,10 +38,9 @@ class FileLinkForm(CustomForm): ), ) if ( - not self.instance - and models.FileLink.objects.filter( - url=url, book=book, filetype=filetype - ).exists() + models.FileLink.objects.filter(url=url, book=book, filetype=filetype) + .exclude(pk=self.instance) + .exists() ): # pylint: disable=line-too-long self.add_error( From 3ba528ecddc08bf5f18c8596da2b4fd9f0758291 Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Mon, 11 Mar 2024 12:46:55 +0100 Subject: [PATCH 179/184] pytest.ini: define ALLOWED_HOSTS This fixes running `./bw-dev pytest` locally when having a different value defined for `ALLOWED_HOSTS` in `.env`. --- pytest.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/pytest.ini b/pytest.ini index b50efd602..18c955032 100644 --- a/pytest.ini +++ b/pytest.ini @@ -11,6 +11,7 @@ env = DEBUG = false USE_HTTPS = true DOMAIN = your.domain.here + ALLOWED_HOSTS = your.domain.here BOOKWYRM_DATABASE_BACKEND = postgres MEDIA_ROOT = images/ CELERY_BROKER = "" From 12b469a0d6a2c554715f53bcf2a333d16dbed8f2 Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Wed, 13 Mar 2024 12:30:52 +0100 Subject: [PATCH 180/184] CI: use actions/checkout@v4 --- .github/workflows/black.yml | 2 +- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/curlylint.yaml | 2 +- .github/workflows/django-tests.yml | 2 +- .github/workflows/lint-frontend.yaml | 2 +- .github/workflows/mypy.yml | 2 +- .github/workflows/prettier.yaml | 2 +- .github/workflows/pylint.yml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/black.yml b/.github/workflows/black.yml index 4e7be4af3..7ac208c94 100644 --- a/.github/workflows/black.yml +++ b/.github/workflows/black.yml @@ -10,7 +10,7 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-python@v4 - uses: psf/black@22.12.0 with: diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 68bb05d7e..51316ef62 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -36,7 +36,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/curlylint.yaml b/.github/workflows/curlylint.yaml index 8d5c6b4f7..10ad04ce1 100644 --- a/.github/workflows/curlylint.yaml +++ b/.github/workflows/curlylint.yaml @@ -10,7 +10,7 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install curlylint run: pip install curlylint diff --git a/.github/workflows/django-tests.yml b/.github/workflows/django-tests.yml index de71d9bcf..9a2c615a4 100644 --- a/.github/workflows/django-tests.yml +++ b/.github/workflows/django-tests.yml @@ -23,7 +23,7 @@ jobs: ports: - 5432:5432 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: diff --git a/.github/workflows/lint-frontend.yaml b/.github/workflows/lint-frontend.yaml index 0d0559e40..21f11ebf3 100644 --- a/.github/workflows/lint-frontend.yaml +++ b/.github/workflows/lint-frontend.yaml @@ -19,7 +19,7 @@ jobs: steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it. - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install modules run: npm install stylelint stylelint-config-recommended stylelint-config-standard stylelint-order eslint diff --git a/.github/workflows/mypy.yml b/.github/workflows/mypy.yml index 6df987aa4..a198efc21 100644 --- a/.github/workflows/mypy.yml +++ b/.github/workflows/mypy.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python 3.11 uses: actions/setup-python@v4 with: diff --git a/.github/workflows/prettier.yaml b/.github/workflows/prettier.yaml index 501516ae1..9c05c7476 100644 --- a/.github/workflows/prettier.yaml +++ b/.github/workflows/prettier.yaml @@ -14,7 +14,7 @@ jobs: steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it. - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install modules run: npm install prettier@2.5.1 diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml index ab8633b48..85f275020 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/pylint.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python 3.11 uses: actions/setup-python@v4 with: From 6af0a0883827b65e5776c2d1e2f7264600ae7d9f Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Wed, 13 Mar 2024 12:35:23 +0100 Subject: [PATCH 181/184] CI: use actions/setup-python@v5 and cache pip --- .github/workflows/black.yml | 2 +- .github/workflows/django-tests.yml | 3 ++- .github/workflows/mypy.yml | 3 ++- .github/workflows/pylint.yml | 3 ++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/black.yml b/.github/workflows/black.yml index 7ac208c94..0633dedb7 100644 --- a/.github/workflows/black.yml +++ b/.github/workflows/black.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 - uses: psf/black@22.12.0 with: version: 22.12.0 diff --git a/.github/workflows/django-tests.yml b/.github/workflows/django-tests.yml index 9a2c615a4..7d9cb3cba 100644 --- a/.github/workflows/django-tests.yml +++ b/.github/workflows/django-tests.yml @@ -25,9 +25,10 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: 3.11 + cache: pip - name: Install Dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/mypy.yml b/.github/workflows/mypy.yml index a198efc21..d1e3f9fc9 100644 --- a/.github/workflows/mypy.yml +++ b/.github/workflows/mypy.yml @@ -14,9 +14,10 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Python 3.11 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: 3.11 + cache: pip - name: Install Dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml index 85f275020..915e3154c 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/pylint.yml @@ -14,9 +14,10 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Python 3.11 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: 3.11 + cache: pip - name: Install Dependencies run: | python -m pip install --upgrade pip From 74fdd9a85a8741ea5ac71432ebaffd6b800f8d23 Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Wed, 13 Mar 2024 10:31:09 +0100 Subject: [PATCH 182/184] CI: simplify pytest setup --- .github/workflows/django-tests.yml | 52 +++++++++--------------------- 1 file changed, 15 insertions(+), 37 deletions(-) diff --git a/.github/workflows/django-tests.yml b/.github/workflows/django-tests.yml index 7d9cb3cba..da237592f 100644 --- a/.github/workflows/django-tests.yml +++ b/.github/workflows/django-tests.yml @@ -7,12 +7,20 @@ on: jobs: build: - - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest + env: # overrides for .env.example + POSTGRES_HOST: 127.0.0.1 + PGPORT: 5432 + POSTGRES_USER: postgres + POSTGRES_PASSWORD: hunter2 + POSTGRES_DB: github_actions + SECRET_KEY: beepbeep + EMAIL_HOST_USER: "" + EMAIL_HOST_PASSWORD: "" services: postgres: image: postgres:13 - env: + env: # does not inherit from jobs.build.env POSTGRES_USER: postgres POSTGRES_PASSWORD: hunter2 options: >- @@ -33,39 +41,9 @@ jobs: run: | python -m pip install --upgrade pip pip install -r requirements.txt + - name: Set up .env + run: cp .env.example .env - name: Check migrations up-to-date - run: | - python ./manage.py makemigrations --check - env: - SECRET_KEY: beepbeep - DOMAIN: your.domain.here - EMAIL_HOST: "" - EMAIL_HOST_USER: "" - EMAIL_HOST_PASSWORD: "" + run: python ./manage.py makemigrations --check - name: Run Tests - env: - SECRET_KEY: beepbeep - DEBUG: false - USE_HTTPS: true - DOMAIN: your.domain.here - BOOKWYRM_DATABASE_BACKEND: postgres - MEDIA_ROOT: images/ - POSTGRES_PASSWORD: hunter2 - POSTGRES_USER: postgres - POSTGRES_DB: github_actions - POSTGRES_HOST: 127.0.0.1 - CELERY_BROKER: "" - REDIS_BROKER_PORT: 6379 - REDIS_BROKER_PASSWORD: beep - USE_DUMMY_CACHE: true - FLOWER_PORT: 8888 - EMAIL_HOST: "smtp.mailgun.org" - EMAIL_PORT: 587 - EMAIL_HOST_USER: "" - EMAIL_HOST_PASSWORD: "" - EMAIL_USE_TLS: true - ENABLE_PREVIEW_IMAGES: false - ENABLE_THUMBNAIL_GENERATION: true - HTTP_X_FORWARDED_PROTO: false - run: | - pytest -n 3 + run: pytest -n 3 From 383e6533e11da5c88ceebb9cfad89d6980f7d430 Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Wed, 13 Mar 2024 11:56:16 +0100 Subject: [PATCH 183/184] CI: use pytest-github-actions-annotate-failures --- .github/workflows/django-tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/django-tests.yml b/.github/workflows/django-tests.yml index da237592f..ce9b2b7b1 100644 --- a/.github/workflows/django-tests.yml +++ b/.github/workflows/django-tests.yml @@ -41,6 +41,7 @@ jobs: run: | python -m pip install --upgrade pip pip install -r requirements.txt + pip install pytest-github-actions-annotate-failures - name: Set up .env run: cp .env.example .env - name: Check migrations up-to-date From 4e20e430379a820c1e4f88590bf6afe08cba8249 Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Wed, 13 Mar 2024 12:48:02 +0100 Subject: [PATCH 184/184] CI: merge all Python actions into one file --- .github/workflows/black.yml | 17 ----- .github/workflows/django-tests.yml | 50 --------------- .github/workflows/mypy.yml | 51 --------------- .github/workflows/pylint.yml | 28 --------- .github/workflows/python.yml | 99 ++++++++++++++++++++++++++++++ 5 files changed, 99 insertions(+), 146 deletions(-) delete mode 100644 .github/workflows/black.yml delete mode 100644 .github/workflows/django-tests.yml delete mode 100644 .github/workflows/mypy.yml delete mode 100644 .github/workflows/pylint.yml create mode 100644 .github/workflows/python.yml diff --git a/.github/workflows/black.yml b/.github/workflows/black.yml deleted file mode 100644 index 0633dedb7..000000000 --- a/.github/workflows/black.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: Python Formatting (run ./bw-dev black to fix) - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - lint: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - - uses: psf/black@22.12.0 - with: - version: 22.12.0 diff --git a/.github/workflows/django-tests.yml b/.github/workflows/django-tests.yml deleted file mode 100644 index ce9b2b7b1..000000000 --- a/.github/workflows/django-tests.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: Run Python Tests -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - build: - runs-on: ubuntu-latest - env: # overrides for .env.example - POSTGRES_HOST: 127.0.0.1 - PGPORT: 5432 - POSTGRES_USER: postgres - POSTGRES_PASSWORD: hunter2 - POSTGRES_DB: github_actions - SECRET_KEY: beepbeep - EMAIL_HOST_USER: "" - EMAIL_HOST_PASSWORD: "" - services: - postgres: - image: postgres:13 - env: # does not inherit from jobs.build.env - POSTGRES_USER: postgres - POSTGRES_PASSWORD: hunter2 - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - ports: - - 5432:5432 - steps: - - uses: actions/checkout@v4 - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: 3.11 - cache: pip - - name: Install Dependencies - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - pip install pytest-github-actions-annotate-failures - - name: Set up .env - run: cp .env.example .env - - name: Check migrations up-to-date - run: python ./manage.py makemigrations --check - - name: Run Tests - run: pytest -n 3 diff --git a/.github/workflows/mypy.yml b/.github/workflows/mypy.yml deleted file mode 100644 index d1e3f9fc9..000000000 --- a/.github/workflows/mypy.yml +++ /dev/null @@ -1,51 +0,0 @@ -name: Mypy - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - name: Set up Python 3.11 - uses: actions/setup-python@v5 - with: - python-version: 3.11 - cache: pip - - name: Install Dependencies - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - - name: Analysing the code with mypy - env: - SECRET_KEY: beepbeep - DEBUG: false - USE_HTTPS: true - DOMAIN: your.domain.here - BOOKWYRM_DATABASE_BACKEND: postgres - MEDIA_ROOT: images/ - POSTGRES_PASSWORD: hunter2 - POSTGRES_USER: postgres - POSTGRES_DB: github_actions - POSTGRES_HOST: 127.0.0.1 - CELERY_BROKER: "" - REDIS_BROKER_PORT: 6379 - REDIS_BROKER_PASSWORD: beep - USE_DUMMY_CACHE: true - FLOWER_PORT: 8888 - EMAIL_HOST: "smtp.mailgun.org" - EMAIL_PORT: 587 - EMAIL_HOST_USER: "" - EMAIL_HOST_PASSWORD: "" - EMAIL_USE_TLS: true - ENABLE_PREVIEW_IMAGES: false - ENABLE_THUMBNAIL_GENERATION: true - HTTP_X_FORWARDED_PROTO: false - run: | - mypy bookwyrm celerywyrm diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml deleted file mode 100644 index 915e3154c..000000000 --- a/.github/workflows/pylint.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Pylint - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - name: Set up Python 3.11 - uses: actions/setup-python@v5 - with: - python-version: 3.11 - cache: pip - - name: Install Dependencies - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - - name: Analysing the code with pylint - run: | - pylint bookwyrm/ - diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml new file mode 100644 index 000000000..dcbe05aee --- /dev/null +++ b/.github/workflows/python.yml @@ -0,0 +1,99 @@ +name: Python +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +# overrides for .env.example +env: + POSTGRES_HOST: 127.0.0.1 + PGPORT: 5432 + POSTGRES_USER: postgres + POSTGRES_PASSWORD: hunter2 + POSTGRES_DB: github_actions + SECRET_KEY: beepbeep + EMAIL_HOST_USER: "" + EMAIL_HOST_PASSWORD: "" + +jobs: + pytest: + name: Tests (pytest) + runs-on: ubuntu-latest + services: + postgres: + image: postgres:13 + env: # does not inherit from jobs.build.env + POSTGRES_USER: postgres + POSTGRES_PASSWORD: hunter2 + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 5432:5432 + steps: + - uses: actions/checkout@v4 + - name: Set up Python 3.11 + uses: actions/setup-python@v5 + with: + python-version: 3.11 + cache: pip + - name: Install Dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + pip install pytest-github-actions-annotate-failures + - name: Set up .env + run: cp .env.example .env + - name: Check migrations up-to-date + run: python ./manage.py makemigrations --check + - name: Run Tests + run: pytest -n 3 + + pylint: + name: Linting (pylint) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Set up Python 3.11 + uses: actions/setup-python@v5 + with: + python-version: 3.11 + cache: pip + - name: Install Dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + - name: Analyse code with pylint + run: pylint bookwyrm/ + + mypy: + name: Typing (mypy) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Set up Python 3.11 + uses: actions/setup-python@v5 + with: + python-version: 3.11 + cache: pip + - name: Install Dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + - name: Set up .env + run: cp .env.example .env + - name: Analyse code with mypy + run: mypy bookwyrm celerywyrm + + black: + name: Formatting (black; run ./bw-dev black to fix) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + - uses: psf/black@22.12.0 + with: + version: 22.12.0