Merge branch 'main' into preview-generation-memory

This commit is contained in:
Mouse Reeve 2022-06-05 18:39:59 -07:00 committed by GitHub
commit 3aa159bc89
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
54 changed files with 739 additions and 824 deletions

View file

@ -21,8 +21,7 @@ jobs:
run: | run: |
python -m pip install --upgrade pip python -m pip install --upgrade pip
pip install -r requirements.txt pip install -r requirements.txt
pip install pylint
- name: Analysing the code with pylint - name: Analysing the code with pylint
run: | run: |
pylint bookwyrm/ --ignore=migrations --disable=E1101,E1135,E1136,R0903,R0901,R0902,W0707,W0511,W0406,R0401,R0801 pylint bookwyrm/

6
.pylintrc Normal file
View file

@ -0,0 +1,6 @@
[MAIN]
ignore=migrations
load-plugins=pylint.extensions.no_self_use
[MESSAGES CONTROL]
disable=E1101,E1135,E1136,R0903,R0901,R0902,W0707,W0511,W0406,R0401,R0801,C3001

View file

@ -6,6 +6,7 @@ RUN mkdir /app /app/static /app/images
WORKDIR /app WORKDIR /app
RUN apt-get update && apt-get install -y gettext libgettextpo-dev tidy && apt-get clean
COPY requirements.txt /app/ COPY requirements.txt /app/
RUN pip install -r requirements.txt --no-cache-dir RUN pip install -r requirements.txt --no-cache-dir
RUN apt-get update && apt-get install -y gettext libgettextpo-dev tidy && apt-get clean

View file

@ -148,8 +148,8 @@ class SearchResult:
def __repr__(self): def __repr__(self):
# pylint: disable=consider-using-f-string # pylint: disable=consider-using-f-string
return "<SearchResult key={!r} title={!r} author={!r}>".format( return "<SearchResult key={!r} title={!r} author={!r} confidence={!r}>".format(
self.key, self.title, self.author self.key, self.title, self.author, self.confidence
) )
def json(self): def json(self):

View file

@ -1,9 +1,8 @@
""" functionality outline for a book data connector """ """ functionality outline for a book data connector """
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
import imghdr import imghdr
import ipaddress
import logging import logging
from urllib.parse import urlparse import re
from django.core.files.base import ContentFile from django.core.files.base import ContentFile
from django.db import transaction from django.db import transaction
@ -11,7 +10,7 @@ import requests
from requests.exceptions import RequestException from requests.exceptions import RequestException
from bookwyrm import activitypub, models, settings from bookwyrm import activitypub, models, settings
from .connector_manager import load_more_data, ConnectorException from .connector_manager import load_more_data, ConnectorException, raise_not_valid_url
from .format_mappings import format_mappings from .format_mappings import format_mappings
@ -39,62 +38,34 @@ class AbstractMinimalConnector(ABC):
for field in self_fields: for field in self_fields:
setattr(self, field, getattr(info, field)) setattr(self, field, getattr(info, field))
def search(self, query, min_confidence=None, timeout=settings.QUERY_TIMEOUT): def get_search_url(self, query):
"""free text search""" """format the query url"""
params = {} # Check if the query resembles an ISBN
if min_confidence: if maybe_isbn(query) and self.isbn_search_url and self.isbn_search_url != "":
params["min_confidence"] = min_confidence return f"{self.isbn_search_url}{query}"
data = self.get_search_data( # NOTE: previously, we tried searching isbn and if that produces no results,
f"{self.search_url}{query}", # searched as free text. This, instead, only searches isbn if it's isbn-y
params=params, return f"{self.search_url}{query}"
timeout=timeout,
)
results = []
for doc in self.parse_search_data(data)[:10]: def process_search_response(self, query, data, min_confidence):
results.append(self.format_search_result(doc)) """Format the search results based on the formt of the query"""
return results if maybe_isbn(query):
return list(self.parse_isbn_search_data(data))[:10]
def isbn_search(self, query, timeout=settings.QUERY_TIMEOUT): return list(self.parse_search_data(data, min_confidence))[:10]
"""isbn search"""
params = {}
data = self.get_search_data(
f"{self.isbn_search_url}{query}",
params=params,
timeout=timeout,
)
results = []
# this shouldn't be returning mutliple results, but just in case
for doc in self.parse_isbn_search_data(data)[:10]:
results.append(self.format_isbn_search_result(doc))
return results
def get_search_data(self, remote_id, **kwargs): # pylint: disable=no-self-use
"""this allows connectors to override the default behavior"""
return get_data(remote_id, **kwargs)
@abstractmethod @abstractmethod
def get_or_create_book(self, remote_id): def get_or_create_book(self, remote_id):
"""pull up a book record by whatever means possible""" """pull up a book record by whatever means possible"""
@abstractmethod @abstractmethod
def parse_search_data(self, data): def parse_search_data(self, data, min_confidence):
"""turn the result json from a search into a list""" """turn the result json from a search into a list"""
@abstractmethod
def format_search_result(self, search_result):
"""create a SearchResult obj from json"""
@abstractmethod @abstractmethod
def parse_isbn_search_data(self, data): def parse_isbn_search_data(self, data):
"""turn the result json from a search into a list""" """turn the result json from a search into a list"""
@abstractmethod
def format_isbn_search_result(self, search_result):
"""create a SearchResult obj from json"""
class AbstractConnector(AbstractMinimalConnector): class AbstractConnector(AbstractMinimalConnector):
"""generic book data connector""" """generic book data connector"""
@ -254,9 +225,6 @@ def get_data(url, params=None, timeout=10):
# check if the url is blocked # check if the url is blocked
raise_not_valid_url(url) raise_not_valid_url(url)
if models.FederatedServer.is_blocked(url):
raise ConnectorException(f"Attempting to load data from blocked url: {url}")
try: try:
resp = requests.get( resp = requests.get(
url, url,
@ -311,20 +279,6 @@ def get_image(url, timeout=10):
return image_content, extension return image_content, extension
def raise_not_valid_url(url):
"""do some basic reality checks on the url"""
parsed = urlparse(url)
if not parsed.scheme in ["http", "https"]:
raise ConnectorException("Invalid scheme: ", url)
try:
ipaddress.ip_address(parsed.netloc)
raise ConnectorException("Provided url is an IP address: ", url)
except ValueError:
# it's not an IP address, which is good
pass
class Mapping: class Mapping:
"""associate a local database field with a field in an external dataset""" """associate a local database field with a field in an external dataset"""
@ -366,3 +320,9 @@ def unique_physical_format(format_text):
# try a direct match, so saving this would be redundant # try a direct match, so saving this would be redundant
return None return None
return format_text return format_text
def maybe_isbn(query):
"""check if a query looks like an isbn"""
isbn = re.sub(r"[\W_]", "", query) # removes filler characters
return len(isbn) in [10, 13] # ISBN10 or ISBN13

View file

@ -10,15 +10,12 @@ class Connector(AbstractMinimalConnector):
def get_or_create_book(self, remote_id): def get_or_create_book(self, remote_id):
return activitypub.resolve_remote_id(remote_id, model=models.Edition) return activitypub.resolve_remote_id(remote_id, model=models.Edition)
def parse_search_data(self, data): def parse_search_data(self, data, min_confidence):
return data for search_result in data:
search_result["connector"] = self
def format_search_result(self, search_result): yield SearchResult(**search_result)
search_result["connector"] = self
return SearchResult(**search_result)
def parse_isbn_search_data(self, data): def parse_isbn_search_data(self, data):
return data for search_result in data:
search_result["connector"] = self
def format_isbn_search_result(self, search_result): yield SearchResult(**search_result)
return self.format_search_result(search_result)

View file

@ -1,17 +1,18 @@
""" interface with whatever connectors the app has """ """ interface with whatever connectors the app has """
from datetime import datetime import asyncio
import importlib import importlib
import ipaddress
import logging import logging
import re
from urllib.parse import urlparse from urllib.parse import urlparse
import aiohttp
from django.dispatch import receiver from django.dispatch import receiver
from django.db.models import signals from django.db.models import signals
from requests import HTTPError from requests import HTTPError
from bookwyrm import book_search, models from bookwyrm import book_search, models
from bookwyrm.settings import SEARCH_TIMEOUT from bookwyrm.settings import SEARCH_TIMEOUT, USER_AGENT
from bookwyrm.tasks import app from bookwyrm.tasks import app
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -21,53 +22,85 @@ class ConnectorException(HTTPError):
"""when the connector can't do what was asked""" """when the connector can't do what was asked"""
async def get_results(session, url, min_confidence, query, connector):
"""try this specific connector"""
# pylint: disable=line-too-long
headers = {
"Accept": (
'application/json, application/activity+json, application/ld+json; profile="https://www.w3.org/ns/activitystreams"; charset=utf-8'
),
"User-Agent": USER_AGENT,
}
params = {"min_confidence": min_confidence}
try:
async with session.get(url, headers=headers, params=params) as response:
if not response.ok:
logger.info("Unable to connect to %s: %s", url, response.reason)
return
try:
raw_data = await response.json()
except aiohttp.client_exceptions.ContentTypeError as err:
logger.exception(err)
return
return {
"connector": connector,
"results": connector.process_search_response(
query, raw_data, min_confidence
),
}
except asyncio.TimeoutError:
logger.info("Connection timed out for url: %s", url)
except aiohttp.ClientError as err:
logger.exception(err)
async def async_connector_search(query, items, min_confidence):
"""Try a number of requests simultaneously"""
timeout = aiohttp.ClientTimeout(total=SEARCH_TIMEOUT)
async with aiohttp.ClientSession(timeout=timeout) as session:
tasks = []
for url, connector in items:
tasks.append(
asyncio.ensure_future(
get_results(session, url, min_confidence, query, connector)
)
)
results = await asyncio.gather(*tasks)
return results
def search(query, min_confidence=0.1, return_first=False): def search(query, min_confidence=0.1, return_first=False):
"""find books based on arbitary keywords""" """find books based on arbitary keywords"""
if not query: if not query:
return [] return []
results = [] results = []
# Have we got a ISBN ? items = []
isbn = re.sub(r"[\W_]", "", query)
maybe_isbn = len(isbn) in [10, 13] # ISBN10 or ISBN13
start_time = datetime.now()
for connector in get_connectors(): for connector in get_connectors():
result_set = None # get the search url from the connector before sending
if maybe_isbn and connector.isbn_search_url and connector.isbn_search_url != "": url = connector.get_search_url(query)
# Search on ISBN try:
try: raise_not_valid_url(url)
result_set = connector.isbn_search(isbn) except ConnectorException:
except Exception as err: # pylint: disable=broad-except # if this URL is invalid we should skip it and move on
logger.info(err) logger.info("Request denied to blocked domain: %s", url)
# if this fails, we can still try regular search continue
items.append((url, connector))
# if no isbn search results, we fallback to generic search # load as many results as we can
if not result_set: results = asyncio.run(async_connector_search(query, items, min_confidence))
try: results = [r for r in results if r]
result_set = connector.search(query, min_confidence=min_confidence)
except Exception as err: # pylint: disable=broad-except
# we don't want *any* error to crash the whole search page
logger.info(err)
continue
if return_first and result_set:
# if we found anything, return it
return result_set[0]
if result_set:
results.append(
{
"connector": connector,
"results": result_set,
}
)
if (datetime.now() - start_time).seconds >= SEARCH_TIMEOUT:
break
if return_first: if return_first:
return None # find the best result from all the responses and return that
all_results = [r for con in results for r in con["results"]]
all_results = sorted(all_results, key=lambda r: r.confidence, reverse=True)
return all_results[0] if all_results else None
# failed requests will return None, so filter those out
return results return results
@ -133,3 +166,20 @@ def create_connector(sender, instance, created, *args, **kwargs):
"""create a connector to an external bookwyrm server""" """create a connector to an external bookwyrm server"""
if instance.application_type == "bookwyrm": if instance.application_type == "bookwyrm":
get_or_create_connector(f"https://{instance.server_name}") get_or_create_connector(f"https://{instance.server_name}")
def raise_not_valid_url(url):
"""do some basic reality checks on the url"""
parsed = urlparse(url)
if not parsed.scheme in ["http", "https"]:
raise ConnectorException("Invalid scheme: ", url)
try:
ipaddress.ip_address(parsed.netloc)
raise ConnectorException("Provided url is an IP address: ", url)
except ValueError:
# it's not an IP address, which is good
pass
if models.FederatedServer.is_blocked(url):
raise ConnectorException(f"Attempting to load data from blocked url: {url}")

View file

@ -77,53 +77,42 @@ class Connector(AbstractConnector):
**{k: data.get(k) for k in ["uri", "image", "labels", "sitelinks", "type"]}, **{k: data.get(k) for k in ["uri", "image", "labels", "sitelinks", "type"]},
} }
def search(self, query, min_confidence=None): # pylint: disable=arguments-differ def parse_search_data(self, data, min_confidence):
"""overrides default search function with confidence ranking""" for search_result in data.get("results", []):
results = super().search(query) images = search_result.get("image")
if min_confidence: cover = f"{self.covers_url}/img/entities/{images[0]}" if images else None
# filter the search results after the fact # a deeply messy translation of inventaire's scores
return [r for r in results if r.confidence >= min_confidence] confidence = float(search_result.get("_score", 0.1))
return results confidence = 0.1 if confidence < 150 else 0.999
if confidence < min_confidence:
def parse_search_data(self, data): continue
return data.get("results") yield SearchResult(
title=search_result.get("label"),
def format_search_result(self, search_result): key=self.get_remote_id(search_result.get("uri")),
images = search_result.get("image") author=search_result.get("description"),
cover = f"{self.covers_url}/img/entities/{images[0]}" if images else None view_link=f"{self.base_url}/entity/{search_result.get('uri')}",
# a deeply messy translation of inventaire's scores cover=cover,
confidence = float(search_result.get("_score", 0.1)) confidence=confidence,
confidence = 0.1 if confidence < 150 else 0.999 connector=self,
return SearchResult( )
title=search_result.get("label"),
key=self.get_remote_id(search_result.get("uri")),
author=search_result.get("description"),
view_link=f"{self.base_url}/entity/{search_result.get('uri')}",
cover=cover,
confidence=confidence,
connector=self,
)
def parse_isbn_search_data(self, data): def parse_isbn_search_data(self, data):
"""got some daaaata""" """got some daaaata"""
results = data.get("entities") results = data.get("entities")
if not results: if not results:
return [] return
return list(results.values()) for search_result in list(results.values()):
title = search_result.get("claims", {}).get("wdt:P1476", [])
def format_isbn_search_result(self, search_result): if not title:
"""totally different format than a regular search result""" continue
title = search_result.get("claims", {}).get("wdt:P1476", []) yield SearchResult(
if not title: title=title[0],
return None key=self.get_remote_id(search_result.get("uri")),
return SearchResult( author=search_result.get("description"),
title=title[0], view_link=f"{self.base_url}/entity/{search_result.get('uri')}",
key=self.get_remote_id(search_result.get("uri")), cover=self.get_cover_url(search_result.get("image")),
author=search_result.get("description"), connector=self,
view_link=f"{self.base_url}/entity/{search_result.get('uri')}", )
cover=self.get_cover_url(search_result.get("image")),
connector=self,
)
def is_work_data(self, data): def is_work_data(self, data):
return data.get("type") == "work" return data.get("type") == "work"

View file

@ -152,39 +152,41 @@ class Connector(AbstractConnector):
image_name = f"{cover_id}-{size}.jpg" image_name = f"{cover_id}-{size}.jpg"
return f"{self.covers_url}/b/id/{image_name}" return f"{self.covers_url}/b/id/{image_name}"
def parse_search_data(self, data): def parse_search_data(self, data, min_confidence):
return data.get("docs") for idx, search_result in enumerate(data.get("docs")):
# build the remote id from the openlibrary key
key = self.books_url + search_result["key"]
author = search_result.get("author_name") or ["Unknown"]
cover_blob = search_result.get("cover_i")
cover = self.get_cover_url([cover_blob], size="M") if cover_blob else None
def format_search_result(self, search_result): # OL doesn't provide confidence, but it does sort by an internal ranking, so
# build the remote id from the openlibrary key # this confidence value is relative to the list position
key = self.books_url + search_result["key"] confidence = 1 / (idx + 1)
author = search_result.get("author_name") or ["Unknown"]
cover_blob = search_result.get("cover_i") yield SearchResult(
cover = self.get_cover_url([cover_blob], size="M") if cover_blob else None title=search_result.get("title"),
return SearchResult( key=key,
title=search_result.get("title"), author=", ".join(author),
key=key, connector=self,
author=", ".join(author), year=search_result.get("first_publish_year"),
connector=self, cover=cover,
year=search_result.get("first_publish_year"), confidence=confidence,
cover=cover, )
)
def parse_isbn_search_data(self, data): def parse_isbn_search_data(self, data):
return list(data.values()) for search_result in list(data.values()):
# build the remote id from the openlibrary key
def format_isbn_search_result(self, search_result): key = self.books_url + search_result["key"]
# build the remote id from the openlibrary key authors = search_result.get("authors") or [{"name": "Unknown"}]
key = self.books_url + search_result["key"] author_names = [author.get("name") for author in authors]
authors = search_result.get("authors") or [{"name": "Unknown"}] yield SearchResult(
author_names = [author.get("name") for author in authors] title=search_result.get("title"),
return SearchResult( key=key,
title=search_result.get("title"), author=", ".join(author_names),
key=key, connector=self,
author=", ".join(author_names), year=search_result.get("publish_date"),
connector=self, )
year=search_result.get("publish_date"),
)
def load_edition_data(self, olkey): def load_edition_data(self, olkey):
"""query openlibrary for editions of a work""" """query openlibrary for editions of a work"""

View file

@ -89,7 +89,7 @@ def init_connectors():
covers_url="https://inventaire.io", covers_url="https://inventaire.io",
search_url="https://inventaire.io/api/search?types=works&types=works&search=", search_url="https://inventaire.io/api/search?types=works&types=works&search=",
isbn_search_url="https://inventaire.io/api/entities?action=by-uris&uris=isbn%3A", isbn_search_url="https://inventaire.io/api/entities?action=by-uris&uris=isbn%3A",
priority=3, priority=1,
) )
models.Connector.objects.create( models.Connector.objects.create(
@ -101,7 +101,7 @@ def init_connectors():
covers_url="https://covers.openlibrary.org", covers_url="https://covers.openlibrary.org",
search_url="https://openlibrary.org/search?q=", search_url="https://openlibrary.org/search?q=",
isbn_search_url="https://openlibrary.org/api/books?jscmd=data&format=json&bibkeys=ISBN:", isbn_search_url="https://openlibrary.org/api/books?jscmd=data&format=json&bibkeys=ISBN:",
priority=3, priority=1,
) )

View file

@ -212,7 +212,7 @@ STREAMS = [
# Search configuration # Search configuration
# total time in seconds that the instance will spend searching connectors # total time in seconds that the instance will spend searching connectors
SEARCH_TIMEOUT = int(env("SEARCH_TIMEOUT", 15)) SEARCH_TIMEOUT = int(env("SEARCH_TIMEOUT", 8))
# timeout for a query to an individual connector # timeout for a query to an individual connector
QUERY_TIMEOUT = int(env("QUERY_TIMEOUT", 5)) QUERY_TIMEOUT = int(env("QUERY_TIMEOUT", 5))

View file

@ -50,7 +50,7 @@
</ul> </ul>
</nav> </nav>
<div class="column"> <div class="column is-clipped">
{% block about_content %}{% endblock %} {% block about_content %}{% endblock %}
</div> </div>
</div> </div>

View file

@ -36,7 +36,7 @@
{% if result_set.results %} {% if result_set.results %}
<section class="mb-5"> <section class="mb-5">
{% if not result_set.connector.local %} {% if not result_set.connector.local %}
<details class="details-panel box" {% if forloop.first %}open{% endif %}> <details class="details-panel box" open>
{% endif %} {% endif %}
{% if not result_set.connector.local %} {% if not result_set.connector.local %}
<summary class="is-flex is-align-items-center is-flex-wrap-wrap is-gap-2"> <summary class="is-flex is-align-items-center is-flex-wrap-wrap is-gap-2">

View file

@ -42,15 +42,9 @@ class AbstractConnector(TestCase):
generated_remote_link_field = "openlibrary_link" generated_remote_link_field = "openlibrary_link"
def format_search_result(self, search_result): def parse_search_data(self, data, min_confidence):
return search_result
def parse_search_data(self, data):
return data return data
def format_isbn_search_result(self, search_result):
return search_result
def parse_isbn_search_data(self, data): def parse_isbn_search_data(self, data):
return data return data

View file

@ -1,6 +1,5 @@
""" testing book data connectors """ """ testing book data connectors """
from django.test import TestCase from django.test import TestCase
import responses
from bookwyrm import models from bookwyrm import models
from bookwyrm.connectors import abstract_connector from bookwyrm.connectors import abstract_connector
@ -25,18 +24,12 @@ class AbstractConnector(TestCase):
class TestConnector(abstract_connector.AbstractMinimalConnector): class TestConnector(abstract_connector.AbstractMinimalConnector):
"""nothing added here""" """nothing added here"""
def format_search_result(self, search_result):
return search_result
def get_or_create_book(self, remote_id): def get_or_create_book(self, remote_id):
pass pass
def parse_search_data(self, data): def parse_search_data(self, data, min_confidence):
return data return data
def format_isbn_search_result(self, search_result):
return search_result
def parse_isbn_search_data(self, data): def parse_isbn_search_data(self, data):
return data return data
@ -54,45 +47,6 @@ class AbstractConnector(TestCase):
self.assertIsNone(connector.name) self.assertIsNone(connector.name)
self.assertEqual(connector.identifier, "example.com") self.assertEqual(connector.identifier, "example.com")
@responses.activate
def test_search(self):
"""makes an http request to the outside service"""
responses.add(
responses.GET,
"https://example.com/search?q=a%20book%20title",
json=["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l"],
status=200,
)
results = self.test_connector.search("a book title")
self.assertEqual(len(results), 10)
self.assertEqual(results[0], "a")
self.assertEqual(results[1], "b")
self.assertEqual(results[2], "c")
@responses.activate
def test_search_min_confidence(self):
"""makes an http request to the outside service"""
responses.add(
responses.GET,
"https://example.com/search?q=a%20book%20title&min_confidence=1",
json=["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l"],
status=200,
)
results = self.test_connector.search("a book title", min_confidence=1)
self.assertEqual(len(results), 10)
@responses.activate
def test_isbn_search(self):
"""makes an http request to the outside service"""
responses.add(
responses.GET,
"https://example.com/isbn?q=123456",
json=["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l"],
status=200,
)
results = self.test_connector.isbn_search("123456")
self.assertEqual(len(results), 10)
def test_create_mapping(self): def test_create_mapping(self):
"""maps remote fields for book data to bookwyrm activitypub fields""" """maps remote fields for book data to bookwyrm activitypub fields"""
mapping = Mapping("isbn") mapping = Mapping("isbn")

View file

@ -30,14 +30,11 @@ class BookWyrmConnector(TestCase):
result = self.connector.get_or_create_book(book.remote_id) result = self.connector.get_or_create_book(book.remote_id)
self.assertEqual(book, result) self.assertEqual(book, result)
def test_format_search_result(self): def test_parse_search_data(self):
"""create a SearchResult object from search response json""" """create a SearchResult object from search response json"""
datafile = pathlib.Path(__file__).parent.joinpath("../data/bw_search.json") datafile = pathlib.Path(__file__).parent.joinpath("../data/bw_search.json")
search_data = json.loads(datafile.read_bytes()) search_data = json.loads(datafile.read_bytes())
results = self.connector.parse_search_data(search_data) result = list(self.connector.parse_search_data(search_data, 0))[0]
self.assertIsInstance(results, list)
result = self.connector.format_search_result(results[0])
self.assertIsInstance(result, SearchResult) self.assertIsInstance(result, SearchResult)
self.assertEqual(result.title, "Jonathan Strange and Mr Norrell") self.assertEqual(result.title, "Jonathan Strange and Mr Norrell")
self.assertEqual(result.key, "https://example.com/book/122") self.assertEqual(result.key, "https://example.com/book/122")
@ -45,10 +42,9 @@ class BookWyrmConnector(TestCase):
self.assertEqual(result.year, 2017) self.assertEqual(result.year, 2017)
self.assertEqual(result.connector, self.connector) self.assertEqual(result.connector, self.connector)
def test_format_isbn_search_result(self): def test_parse_isbn_search_data(self):
"""just gotta attach the connector""" """just gotta attach the connector"""
datafile = pathlib.Path(__file__).parent.joinpath("../data/bw_search.json") datafile = pathlib.Path(__file__).parent.joinpath("../data/bw_search.json")
search_data = json.loads(datafile.read_bytes()) search_data = json.loads(datafile.read_bytes())
results = self.connector.parse_isbn_search_data(search_data) result = list(self.connector.parse_isbn_search_data(search_data))[0]
result = self.connector.format_isbn_search_result(results[0])
self.assertEqual(result.connector, self.connector) self.assertEqual(result.connector, self.connector)

View file

@ -49,39 +49,11 @@ class ConnectorManager(TestCase):
self.assertEqual(len(connectors), 1) self.assertEqual(len(connectors), 1)
self.assertIsInstance(connectors[0], BookWyrmConnector) self.assertIsInstance(connectors[0], BookWyrmConnector)
@responses.activate
def test_search_plaintext(self):
"""search all connectors"""
responses.add(
responses.GET,
"http://fake.ciom/search/Example?min_confidence=0.1",
json=[{"title": "Hello", "key": "https://www.example.com/search/1"}],
)
results = connector_manager.search("Example")
self.assertEqual(len(results), 1)
self.assertEqual(len(results[0]["results"]), 1)
self.assertEqual(results[0]["connector"].identifier, "test_connector_remote")
self.assertEqual(results[0]["results"][0].title, "Hello")
def test_search_empty_query(self): def test_search_empty_query(self):
"""don't panic on empty queries""" """don't panic on empty queries"""
results = connector_manager.search("") results = connector_manager.search("")
self.assertEqual(results, []) self.assertEqual(results, [])
@responses.activate
def test_search_isbn(self):
"""special handling if a query resembles an isbn"""
responses.add(
responses.GET,
"http://fake.ciom/isbn/0000000000",
json=[{"title": "Hello", "key": "https://www.example.com/search/1"}],
)
results = connector_manager.search("0000000000")
self.assertEqual(len(results), 1)
self.assertEqual(len(results[0]["results"]), 1)
self.assertEqual(results[0]["connector"].identifier, "test_connector_remote")
self.assertEqual(results[0]["results"][0].title, "Hello")
def test_first_search_result(self): def test_first_search_result(self):
"""only get one search result""" """only get one search result"""
result = connector_manager.first_search_result("Example") result = connector_manager.first_search_result("Example")

View file

@ -66,38 +66,14 @@ class Inventaire(TestCase):
with self.assertRaises(ConnectorException): with self.assertRaises(ConnectorException):
self.connector.get_book_data("https://test.url/ok") self.connector.get_book_data("https://test.url/ok")
@responses.activate def test_parse_search_data(self):
def test_search(self):
"""min confidence filtering"""
responses.add(
responses.GET,
"https://inventaire.io/search?q=hi",
json={
"results": [
{
"_score": 200,
"label": "hello",
},
{
"_score": 100,
"label": "hi",
},
],
},
)
results = self.connector.search("hi", min_confidence=0.5)
self.assertEqual(len(results), 1)
self.assertEqual(results[0].title, "hello")
def test_format_search_result(self):
"""json to search result objs""" """json to search result objs"""
search_file = pathlib.Path(__file__).parent.joinpath( search_file = pathlib.Path(__file__).parent.joinpath(
"../data/inventaire_search.json" "../data/inventaire_search.json"
) )
search_results = json.loads(search_file.read_bytes()) search_results = json.loads(search_file.read_bytes())
results = self.connector.parse_search_data(search_results) formatted = list(self.connector.parse_search_data(search_results, 0))[0]
formatted = self.connector.format_search_result(results[0])
self.assertEqual(formatted.title, "The Stories of Vladimir Nabokov") self.assertEqual(formatted.title, "The Stories of Vladimir Nabokov")
self.assertEqual( self.assertEqual(
@ -178,15 +154,14 @@ class Inventaire(TestCase):
result = self.connector.resolve_keys(keys) result = self.connector.resolve_keys(keys)
self.assertEqual(result, ["epistolary novel", "crime novel"]) self.assertEqual(result, ["epistolary novel", "crime novel"])
def test_isbn_search(self): def test_pase_isbn_search_data(self):
"""another search type""" """another search type"""
search_file = pathlib.Path(__file__).parent.joinpath( search_file = pathlib.Path(__file__).parent.joinpath(
"../data/inventaire_isbn_search.json" "../data/inventaire_isbn_search.json"
) )
search_results = json.loads(search_file.read_bytes()) search_results = json.loads(search_file.read_bytes())
results = self.connector.parse_isbn_search_data(search_results) formatted = list(self.connector.parse_isbn_search_data(search_results))[0]
formatted = self.connector.format_isbn_search_result(results[0])
self.assertEqual(formatted.title, "L'homme aux cercles bleus") self.assertEqual(formatted.title, "L'homme aux cercles bleus")
self.assertEqual( self.assertEqual(
@ -198,25 +173,12 @@ class Inventaire(TestCase):
"https://covers.inventaire.io/img/entities/12345", "https://covers.inventaire.io/img/entities/12345",
) )
def test_isbn_search_empty(self): def test_parse_isbn_search_data_empty(self):
"""another search type""" """another search type"""
search_results = {} search_results = {}
results = self.connector.parse_isbn_search_data(search_results) results = list(self.connector.parse_isbn_search_data(search_results))
self.assertEqual(results, []) self.assertEqual(results, [])
def test_isbn_search_no_title(self):
"""another search type"""
search_file = pathlib.Path(__file__).parent.joinpath(
"../data/inventaire_isbn_search.json"
)
search_results = json.loads(search_file.read_bytes())
search_results["entities"]["isbn:9782290349229"]["claims"]["wdt:P1476"] = None
result = self.connector.format_isbn_search_result(
search_results.get("entities")
)
self.assertIsNone(result)
def test_is_work_data(self): def test_is_work_data(self):
"""is it a work""" """is it a work"""
work_file = pathlib.Path(__file__).parent.joinpath( work_file = pathlib.Path(__file__).parent.joinpath(

View file

@ -122,21 +122,11 @@ class Openlibrary(TestCase):
self.assertEqual(result, "https://covers.openlibrary.org/b/id/image-L.jpg") self.assertEqual(result, "https://covers.openlibrary.org/b/id/image-L.jpg")
def test_parse_search_result(self): def test_parse_search_result(self):
"""extract the results from the search json response"""
datafile = pathlib.Path(__file__).parent.joinpath("../data/ol_search.json")
search_data = json.loads(datafile.read_bytes())
result = self.connector.parse_search_data(search_data)
self.assertIsInstance(result, list)
self.assertEqual(len(result), 2)
def test_format_search_result(self):
"""translate json from openlibrary into SearchResult""" """translate json from openlibrary into SearchResult"""
datafile = pathlib.Path(__file__).parent.joinpath("../data/ol_search.json") datafile = pathlib.Path(__file__).parent.joinpath("../data/ol_search.json")
search_data = json.loads(datafile.read_bytes()) search_data = json.loads(datafile.read_bytes())
results = self.connector.parse_search_data(search_data) result = list(self.connector.parse_search_data(search_data, 0))[0]
self.assertIsInstance(results, list)
result = self.connector.format_search_result(results[0])
self.assertIsInstance(result, SearchResult) self.assertIsInstance(result, SearchResult)
self.assertEqual(result.title, "This Is How You Lose the Time War") self.assertEqual(result.title, "This Is How You Lose the Time War")
self.assertEqual(result.key, "https://openlibrary.org/works/OL20639540W") self.assertEqual(result.key, "https://openlibrary.org/works/OL20639540W")
@ -148,18 +138,10 @@ class Openlibrary(TestCase):
"""extract the results from the search json response""" """extract the results from the search json response"""
datafile = pathlib.Path(__file__).parent.joinpath("../data/ol_isbn_search.json") datafile = pathlib.Path(__file__).parent.joinpath("../data/ol_isbn_search.json")
search_data = json.loads(datafile.read_bytes()) search_data = json.loads(datafile.read_bytes())
result = self.connector.parse_isbn_search_data(search_data) result = list(self.connector.parse_isbn_search_data(search_data))
self.assertIsInstance(result, list)
self.assertEqual(len(result), 1) self.assertEqual(len(result), 1)
def test_format_isbn_search_result(self): result = result[0]
"""translate json from openlibrary into SearchResult"""
datafile = pathlib.Path(__file__).parent.joinpath("../data/ol_isbn_search.json")
search_data = json.loads(datafile.read_bytes())
results = self.connector.parse_isbn_search_data(search_data)
self.assertIsInstance(results, list)
result = self.connector.format_isbn_search_result(results[0])
self.assertIsInstance(result, SearchResult) self.assertIsInstance(result, SearchResult)
self.assertEqual(result.title, "Les ombres errantes") self.assertEqual(result.title, "Les ombres errantes")
self.assertEqual(result.key, "https://openlibrary.org/books/OL16262504M") self.assertEqual(result.key, "https://openlibrary.org/books/OL16262504M")
@ -229,7 +211,7 @@ class Openlibrary(TestCase):
status=200, status=200,
) )
with patch( with patch(
"bookwyrm.connectors.openlibrary.Connector." "get_authors_from_data" "bookwyrm.connectors.openlibrary.Connector.get_authors_from_data"
) as mock: ) as mock:
mock.return_value = [] mock.return_value = []
result = self.connector.create_edition_from_data(work, self.edition_data) result = self.connector.create_edition_from_data(work, self.edition_data)

View file

@ -195,7 +195,7 @@ class ImportJob(TestCase):
) as search: ) as search:
search.return_value = result search.return_value = result
with patch( with patch(
"bookwyrm.connectors.openlibrary.Connector." "get_authors_from_data" "bookwyrm.connectors.openlibrary.Connector.get_authors_from_data"
): ):
book = item.get_book_from_identifier() book = item.get_book_from_identifier()

View file

@ -102,18 +102,12 @@ class BookSearch(TestCase):
class TestConnector(AbstractMinimalConnector): class TestConnector(AbstractMinimalConnector):
"""nothing added here""" """nothing added here"""
def format_search_result(self, search_result):
return search_result
def get_or_create_book(self, remote_id): def get_or_create_book(self, remote_id):
pass pass
def parse_search_data(self, data): def parse_search_data(self, data, min_confidence):
return data return data
def format_isbn_search_result(self, search_result):
return search_result
def parse_isbn_search_data(self, data): def parse_isbn_search_data(self, data):
return data return data

View file

@ -1,6 +1,5 @@
""" test for app action functionality """ """ test for app action functionality """
import json import json
import pathlib
from unittest.mock import patch from unittest.mock import patch
from django.contrib.auth.models import AnonymousUser from django.contrib.auth.models import AnonymousUser
@ -8,9 +7,9 @@ from django.http import JsonResponse
from django.template.response import TemplateResponse from django.template.response import TemplateResponse
from django.test import TestCase from django.test import TestCase
from django.test.client import RequestFactory from django.test.client import RequestFactory
import responses
from bookwyrm import models, views from bookwyrm import models, views
from bookwyrm.book_search import SearchResult
from bookwyrm.settings import DOMAIN from bookwyrm.settings import DOMAIN
from bookwyrm.tests.validate_html import validate_html from bookwyrm.tests.validate_html import validate_html
@ -65,12 +64,11 @@ class Views(TestCase):
self.assertIsInstance(response, TemplateResponse) self.assertIsInstance(response, TemplateResponse)
validate_html(response.render()) validate_html(response.render())
@responses.activate
def test_search_books(self): def test_search_books(self):
"""searches remote connectors""" """searches remote connectors"""
view = views.Search.as_view() view = views.Search.as_view()
models.Connector.objects.create( connector = models.Connector.objects.create(
identifier="example.com", identifier="example.com",
connector_file="openlibrary", connector_file="openlibrary",
base_url="https://example.com", base_url="https://example.com",
@ -78,26 +76,24 @@ class Views(TestCase):
covers_url="https://example.com/covers", covers_url="https://example.com/covers",
search_url="https://example.com/search?q=", search_url="https://example.com/search?q=",
) )
datafile = pathlib.Path(__file__).parent.joinpath("../data/ol_search.json") mock_result = SearchResult(title="Mock Book", connector=connector, key="hello")
search_data = json.loads(datafile.read_bytes())
responses.add(
responses.GET, "https://example.com/search?q=Test%20Book", json=search_data
)
request = self.factory.get("", {"q": "Test Book", "remote": True}) request = self.factory.get("", {"q": "Test Book", "remote": True})
request.user = self.local_user request.user = self.local_user
with patch("bookwyrm.views.search.is_api_request") as is_api: with patch("bookwyrm.views.search.is_api_request") as is_api:
is_api.return_value = False is_api.return_value = False
response = view(request) with patch("bookwyrm.connectors.connector_manager.search") as remote_search:
remote_search.return_value = [
{"results": [mock_result], "connector": connector}
]
response = view(request)
self.assertIsInstance(response, TemplateResponse) self.assertIsInstance(response, TemplateResponse)
validate_html(response.render()) validate_html(response.render())
connector_results = response.context_data["results"] connector_results = response.context_data["results"]
self.assertEqual(len(connector_results), 2) self.assertEqual(len(connector_results), 2)
self.assertEqual(connector_results[0]["results"][0].title, "Test Book") self.assertEqual(connector_results[0]["results"][0].title, "Test Book")
self.assertEqual( self.assertEqual(connector_results[1]["results"][0].title, "Mock Book")
connector_results[1]["results"][0].title,
"This Is How You Lose the Time War",
)
# don't search remote # don't search remote
request = self.factory.get("", {"q": "Test Book", "remote": True}) request = self.factory.get("", {"q": "Test Book", "remote": True})
@ -106,7 +102,11 @@ class Views(TestCase):
request.user = anonymous_user request.user = anonymous_user
with patch("bookwyrm.views.search.is_api_request") as is_api: with patch("bookwyrm.views.search.is_api_request") as is_api:
is_api.return_value = False is_api.return_value = False
response = view(request) with patch("bookwyrm.connectors.connector_manager.search") as remote_search:
remote_search.return_value = [
{"results": [mock_result], "connector": connector}
]
response = view(request)
self.assertIsInstance(response, TemplateResponse) self.assertIsInstance(response, TemplateResponse)
validate_html(response.render()) validate_html(response.render())
connector_results = response.context_data["results"] connector_results = response.context_data["results"]

View file

@ -281,7 +281,7 @@ http://www.fish.com/"""
result = views.status.to_markdown(text) result = views.status.to_markdown(text)
self.assertEqual( self.assertEqual(
result, result,
'<p><em>hi</em> and <a href="http://fish.com">fish.com</a> ' "is rad</p>", '<p><em>hi</em> and <a href="http://fish.com">fish.com</a> is rad</p>',
) )
def test_to_markdown_detect_url(self, *_): def test_to_markdown_detect_url(self, *_):
@ -297,7 +297,7 @@ http://www.fish.com/"""
"""this is mostly handled in other places, but nonetheless""" """this is mostly handled in other places, but nonetheless"""
text = "[hi](http://fish.com) is <marquee>rad</marquee>" text = "[hi](http://fish.com) is <marquee>rad</marquee>"
result = views.status.to_markdown(text) result = views.status.to_markdown(text)
self.assertEqual(result, '<p><a href="http://fish.com">hi</a> ' "is rad</p>") self.assertEqual(result, '<p><a href="http://fish.com">hi</a> is rad</p>')
def test_delete_status(self, mock, *_): def test_delete_status(self, mock, *_):
"""marks a status as deleted""" """marks a status as deleted"""

5
bw-dev
View file

@ -140,6 +140,10 @@ case "$CMD" in
black) black)
docker-compose run --rm dev-tools black celerywyrm bookwyrm docker-compose run --rm dev-tools black celerywyrm bookwyrm
;; ;;
pylint)
# pylint depends on having the app dependencies in place, so we run it in the web container
runweb pylint bookwyrm/
;;
prettier) prettier)
docker-compose run --rm dev-tools npx prettier --write bookwyrm/static/js/*.js docker-compose run --rm dev-tools npx prettier --write bookwyrm/static/js/*.js
;; ;;
@ -149,6 +153,7 @@ case "$CMD" in
--config dev-tools/.stylelintrc.js --config dev-tools/.stylelintrc.js
;; ;;
formatters) formatters)
runweb pylint bookwyrm/
docker-compose run --rm dev-tools black celerywyrm bookwyrm docker-compose run --rm dev-tools black celerywyrm bookwyrm
docker-compose run --rm dev-tools npx prettier --write bookwyrm/static/js/*.js docker-compose run --rm dev-tools npx prettier --write bookwyrm/static/js/*.js
docker-compose run --rm dev-tools npx stylelint \ docker-compose run --rm dev-tools npx stylelint \

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n" "POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-04-30 13:02\n" "PO-Revision-Date: 2022-05-24 01:06\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: German\n" "Language-Team: German\n"
"Language: de\n" "Language: de\n"
@ -121,25 +121,25 @@ msgstr "Gefahr"
msgid "Automatically generated report" msgid "Automatically generated report"
msgstr "Automatisch generierter Report" msgstr "Automatisch generierter Report"
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72 #: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200 #: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19 #: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending" msgid "Pending"
msgstr "Ausstehend" msgstr "Ausstehend"
#: bookwyrm/models/base_model.py:18 #: bookwyrm/models/base_model.py:19
msgid "Self deletion" msgid "Self deletion"
msgstr "Selbstlöschung" msgstr "Selbstlöschung"
#: bookwyrm/models/base_model.py:19 #: bookwyrm/models/base_model.py:20
msgid "Moderator suspension" msgid "Moderator suspension"
msgstr "Moderator*in suspendieren" msgstr "Moderator*in suspendieren"
#: bookwyrm/models/base_model.py:20 #: bookwyrm/models/base_model.py:21
msgid "Moderator deletion" msgid "Moderator deletion"
msgstr "Moderator*in löschen" msgstr "Moderator*in löschen"
#: bookwyrm/models/base_model.py:21 #: bookwyrm/models/base_model.py:22
msgid "Domain block" msgid "Domain block"
msgstr "Domainsperrung" msgstr "Domainsperrung"
@ -734,7 +734,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115 #: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202 #: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:127 #: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/file_links/add_link_modal.html:60 #: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82 #: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32 #: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Speichern"
#: bookwyrm/templates/author/sync_modal.html:23 #: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203 #: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33 #: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:129 #: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:132 #: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/file_links/add_link_modal.html:59 #: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25 #: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23 #: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Das Laden von Daten wird eine Verbindung zu <strong>%(source_name)s</strong> aufbauen und überprüfen, ob Autor*in-Informationen vorliegen, die hier noch nicht bekannt sind. Bestehende Informationen werden nicht überschrieben." msgstr "Das Laden von Daten wird eine Verbindung zu <strong>%(source_name)s</strong> aufbauen und überprüfen, ob Autor*in-Informationen vorliegen, die hier noch nicht bekannt sind. Bestehende Informationen werden nicht überschrieben."
#: bookwyrm/templates/author/sync_modal.html:24 #: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:114 #: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/sync_modal.html:24 #: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "„%(book_title)s“ bearbeiten"
msgid "Add Book" msgid "Add Book"
msgstr "Buch hinzufügen" msgstr "Buch hinzufügen"
#: bookwyrm/templates/book/edit/edit_book.html:54 #: bookwyrm/templates/book/edit/edit_book.html:62
msgid "Confirm Book Info" msgid "Confirm Book Info"
msgstr "Buchinfo bestätigen" msgstr "Buchinfo bestätigen"
#: bookwyrm/templates/book/edit/edit_book.html:62 #: bookwyrm/templates/book/edit/edit_book.html:70
#, python-format #, python-format
msgid "Is \"%(name)s\" one of these authors?" msgid "Is \"%(name)s\" one of these authors?"
msgstr "Ist „%(name)s“ einer dieser Autor*innen?" msgstr "Ist „%(name)s“ einer dieser Autor*innen?"
#: bookwyrm/templates/book/edit/edit_book.html:73 #: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Author of " msgid "Author of "
msgstr "Autor*in von " msgstr "Autor*in von "
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Find more information at isni.org" msgid "Find more information at isni.org"
msgstr "Weitere Informationen auf isni.org finden" msgstr "Weitere Informationen auf isni.org finden"
#: bookwyrm/templates/book/edit/edit_book.html:85 #: bookwyrm/templates/book/edit/edit_book.html:93
msgid "This is a new author" msgid "This is a new author"
msgstr "Neue*r Autor*in" msgstr "Neue*r Autor*in"
#: bookwyrm/templates/book/edit/edit_book.html:92 #: bookwyrm/templates/book/edit/edit_book.html:100
#, python-format #, python-format
msgid "Creating a new author: %(name)s" msgid "Creating a new author: %(name)s"
msgstr "Als neue*r Autor*in erstellen: %(name)s" msgstr "Als neue*r Autor*in erstellen: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:99 #: bookwyrm/templates/book/edit/edit_book.html:107
msgid "Is this an edition of an existing work?" msgid "Is this an edition of an existing work?"
msgstr "Ist das eine Ausgabe eines vorhandenen Werkes?" msgstr "Ist das eine Ausgabe eines vorhandenen Werkes?"
#: bookwyrm/templates/book/edit/edit_book.html:107 #: bookwyrm/templates/book/edit/edit_book.html:115
msgid "This is a new work" msgid "This is a new work"
msgstr "Dies ist ein neues Werk." msgstr "Dies ist ein neues Werk."
#: bookwyrm/templates/book/edit/edit_book.html:116 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
msgid "Back" msgid "Back"
msgstr "Zurück" msgstr "Zurück"
@ -1970,33 +1970,33 @@ msgstr "Bücher importieren"
msgid "Data source:" msgid "Data source:"
msgstr "Datenquelle:" msgstr "Datenquelle:"
#: bookwyrm/templates/import/import.html:39 #: bookwyrm/templates/import/import.html:42
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account." msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Du kannst deine Goodreads-Daten von der <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import&nbsp;/&nbsp;Export-Seite</a> deines Goodreads-Kontos downloaden." msgstr "Du kannst deine Goodreads-Daten von der <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import&nbsp;/&nbsp;Export-Seite</a> deines Goodreads-Kontos downloaden."
#: bookwyrm/templates/import/import.html:44 #: bookwyrm/templates/import/import.html:47
msgid "Data file:" msgid "Data file:"
msgstr "Datei:" msgstr "Datei:"
#: bookwyrm/templates/import/import.html:52 #: bookwyrm/templates/import/import.html:55
msgid "Include reviews" msgid "Include reviews"
msgstr "Besprechungen einschließen" msgstr "Besprechungen einschließen"
#: bookwyrm/templates/import/import.html:57 #: bookwyrm/templates/import/import.html:60
msgid "Privacy setting for imported reviews:" msgid "Privacy setting for imported reviews:"
msgstr "Datenschutzeinstellung für importierte Besprechungen:" msgstr "Datenschutzeinstellung für importierte Besprechungen:"
#: bookwyrm/templates/import/import.html:63 #: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/preferences/layout.html:31 #: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76 #: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import" msgid "Import"
msgstr "Importieren" msgstr "Importieren"
#: bookwyrm/templates/import/import.html:68 #: bookwyrm/templates/import/import.html:71
msgid "Recent Imports" msgid "Recent Imports"
msgstr "Zuletzt importiert" msgstr "Zuletzt importiert"
#: bookwyrm/templates/import/import.html:70 #: bookwyrm/templates/import/import.html:73
msgid "No recent imports" msgid "No recent imports"
msgstr "Keine aktuellen Importe" msgstr "Keine aktuellen Importe"
@ -5114,7 +5114,7 @@ msgstr "Datei überschreitet die maximale Größe von 10MB"
msgid "%(title)s: %(subtitle)s" msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:67 #: bookwyrm/views/imports/import_data.py:70
msgid "Not a valid csv file" msgid "Not a valid csv file"
msgstr "Keine gültige CSV-Datei" msgstr "Keine gültige CSV-Datei"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 0.0.1\n" "Project-Id-Version: 0.0.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-23 21:04+0000\n" "POT-Creation-Date: 2022-05-31 23:50+0000\n"
"PO-Revision-Date: 2021-02-28 17:19-0800\n" "PO-Revision-Date: 2021-02-28 17:19-0800\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: English <LL@li.org>\n" "Language-Team: English <LL@li.org>\n"
@ -47,6 +47,10 @@ msgstr ""
msgid "Reading finish date cannot be before start date." msgid "Reading finish date cannot be before start date."
msgstr "" msgstr ""
#: bookwyrm/forms/forms.py:59
msgid "Reading stopped date cannot be before start date."
msgstr ""
#: bookwyrm/forms/landing.py:32 #: bookwyrm/forms/landing.py:32
msgid "User with this username already exists" msgid "User with this username already exists"
msgstr "" msgstr ""
@ -71,8 +75,8 @@ msgstr ""
msgid "Book Title" msgid "Book Title"
msgstr "" msgstr ""
#: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:155 #: bookwyrm/forms/lists.py:28 bookwyrm/templates/shelf/shelf.html:156
#: bookwyrm/templates/shelf/shelf.html:187 #: bookwyrm/templates/shelf/shelf.html:188
#: bookwyrm/templates/snippets/create_status/review.html:32 #: bookwyrm/templates/snippets/create_status/review.html:32
msgid "Rating" msgid "Rating"
msgstr "" msgstr ""
@ -1076,7 +1080,7 @@ msgid "Add Another Author"
msgstr "" msgstr ""
#: bookwyrm/templates/book/edit/edit_book_form.html:220 #: bookwyrm/templates/book/edit/edit_book_form.html:220
#: bookwyrm/templates/shelf/shelf.html:146 #: bookwyrm/templates/shelf/shelf.html:147
msgid "Cover" msgid "Cover"
msgstr "" msgstr ""
@ -1710,13 +1714,13 @@ msgstr ""
#: bookwyrm/templates/get_started/book_preview.html:10 #: bookwyrm/templates/get_started/book_preview.html:10
#: bookwyrm/templates/shelf/shelf.html:86 bookwyrm/templates/user/user.html:33 #: bookwyrm/templates/shelf/shelf.html:86 bookwyrm/templates/user/user.html:33
#: bookwyrm/templatetags/shelf_tags.py:46 #: bookwyrm/templatetags/shelf_tags.py:48
msgid "To Read" msgid "To Read"
msgstr "" msgstr ""
#: bookwyrm/templates/get_started/book_preview.html:11 #: bookwyrm/templates/get_started/book_preview.html:11
#: bookwyrm/templates/shelf/shelf.html:87 bookwyrm/templates/user/user.html:34 #: bookwyrm/templates/shelf/shelf.html:87 bookwyrm/templates/user/user.html:34
#: bookwyrm/templatetags/shelf_tags.py:48 #: bookwyrm/templatetags/shelf_tags.py:50
msgid "Currently Reading" msgid "Currently Reading"
msgstr "" msgstr ""
@ -1725,10 +1729,15 @@ msgstr ""
#: bookwyrm/templates/snippets/shelf_selector.html:47 #: bookwyrm/templates/snippets/shelf_selector.html:47
#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:24
#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:12
#: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:50 #: bookwyrm/templates/user/user.html:35 bookwyrm/templatetags/shelf_tags.py:52
msgid "Read" msgid "Read"
msgstr "" msgstr ""
#: bookwyrm/templates/get_started/book_preview.html:13
#: bookwyrm/templates/shelf/shelf.html:89 bookwyrm/templates/user/user.html:36
msgid "Stopped Reading"
msgstr ""
#: bookwyrm/templates/get_started/books.html:6 #: bookwyrm/templates/get_started/books.html:6
msgid "What are you reading?" msgid "What are you reading?"
msgstr "" msgstr ""
@ -2056,8 +2065,8 @@ msgid "Row"
msgstr "" msgstr ""
#: bookwyrm/templates/import/import_status.html:103 #: bookwyrm/templates/import/import_status.html:103
#: bookwyrm/templates/shelf/shelf.html:147 #: bookwyrm/templates/shelf/shelf.html:148
#: bookwyrm/templates/shelf/shelf.html:169 #: bookwyrm/templates/shelf/shelf.html:170
msgid "Title" msgid "Title"
msgstr "" msgstr ""
@ -2070,8 +2079,8 @@ msgid "Openlibrary key"
msgstr "" msgstr ""
#: bookwyrm/templates/import/import_status.html:114 #: bookwyrm/templates/import/import_status.html:114
#: bookwyrm/templates/shelf/shelf.html:148 #: bookwyrm/templates/shelf/shelf.html:149
#: bookwyrm/templates/shelf/shelf.html:172 #: bookwyrm/templates/shelf/shelf.html:173
msgid "Author" msgid "Author"
msgstr "" msgstr ""
@ -2989,6 +2998,11 @@ msgstr ""
msgid "Start \"%(book_title)s\"" msgid "Start \"%(book_title)s\""
msgstr "" msgstr ""
#: bookwyrm/templates/reading_progress/stop.html:5
#, python-format
msgid "Stop Reading \"%(book_title)s\""
msgstr ""
#: bookwyrm/templates/reading_progress/want.html:5 #: bookwyrm/templates/reading_progress/want.html:5
#, python-format #, python-format
msgid "Want to Read \"%(book_title)s\"" msgid "Want to Read \"%(book_title)s\""
@ -3013,6 +3027,7 @@ msgstr ""
#: bookwyrm/templates/readthrough/readthrough_modal.html:38 #: bookwyrm/templates/readthrough/readthrough_modal.html:38
#: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:24 #: 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/start_reading_modal.html:21
#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:24
msgid "Started reading" msgid "Started reading"
msgstr "" msgstr ""
@ -3021,7 +3036,7 @@ msgstr ""
msgid "Progress" msgid "Progress"
msgstr "" msgstr ""
#: bookwyrm/templates/readthrough/readthrough_form.html:24 #: bookwyrm/templates/readthrough/readthrough_form.html:25
#: bookwyrm/templates/readthrough/readthrough_modal.html:63 #: bookwyrm/templates/readthrough/readthrough_modal.html:63
#: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:32 #: bookwyrm/templates/snippets/reading_modals/finish_reading_modal.html:32
msgid "Finished reading" msgid "Finished reading"
@ -3035,23 +3050,27 @@ msgstr ""
msgid "finished" msgid "finished"
msgstr "" msgstr ""
#: bookwyrm/templates/readthrough/readthrough_list.html:25 #: bookwyrm/templates/readthrough/readthrough_list.html:16
msgid "stopped"
msgstr ""
#: bookwyrm/templates/readthrough/readthrough_list.html:27
msgid "Show all updates" msgid "Show all updates"
msgstr "" msgstr ""
#: bookwyrm/templates/readthrough/readthrough_list.html:41 #: bookwyrm/templates/readthrough/readthrough_list.html:43
msgid "Delete this progress update" msgid "Delete this progress update"
msgstr "" msgstr ""
#: bookwyrm/templates/readthrough/readthrough_list.html:53 #: bookwyrm/templates/readthrough/readthrough_list.html:55
msgid "started" msgid "started"
msgstr "" msgstr ""
#: bookwyrm/templates/readthrough/readthrough_list.html:60 #: bookwyrm/templates/readthrough/readthrough_list.html:62
msgid "Edit read dates" msgid "Edit read dates"
msgstr "" msgstr ""
#: bookwyrm/templates/readthrough/readthrough_list.html:68 #: bookwyrm/templates/readthrough/readthrough_list.html:70
msgid "Delete these read dates" msgid "Delete these read dates"
msgstr "" msgstr ""
@ -4359,46 +4378,51 @@ msgid "User profile"
msgstr "" msgstr ""
#: bookwyrm/templates/shelf/shelf.html:39 #: bookwyrm/templates/shelf/shelf.html:39
#: bookwyrm/templatetags/shelf_tags.py:44 bookwyrm/views/shelf/shelf.py:53 #: bookwyrm/templatetags/shelf_tags.py:46 bookwyrm/views/shelf/shelf.py:53
msgid "All books" msgid "All books"
msgstr "" msgstr ""
#: bookwyrm/templates/shelf/shelf.html:96 #: bookwyrm/templates/shelf/shelf.html:97
#, python-format #, python-format
msgid "%(formatted_count)s book" msgid "%(formatted_count)s book"
msgid_plural "%(formatted_count)s books" msgid_plural "%(formatted_count)s books"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: bookwyrm/templates/shelf/shelf.html:103 #: bookwyrm/templates/shelf/shelf.html:104
#, python-format #, python-format
msgid "(showing %(start)s-%(end)s)" msgid "(showing %(start)s-%(end)s)"
msgstr "" msgstr ""
#: bookwyrm/templates/shelf/shelf.html:115 #: bookwyrm/templates/shelf/shelf.html:116
msgid "Edit shelf" msgid "Edit shelf"
msgstr "" msgstr ""
#: bookwyrm/templates/shelf/shelf.html:123 #: bookwyrm/templates/shelf/shelf.html:124
msgid "Delete shelf" msgid "Delete shelf"
msgstr "" msgstr ""
#: bookwyrm/templates/shelf/shelf.html:151 #: bookwyrm/templates/shelf/shelf.html:152
#: bookwyrm/templates/shelf/shelf.html:177 #: bookwyrm/templates/shelf/shelf.html:178
msgid "Shelved" msgid "Shelved"
msgstr "" msgstr ""
#: bookwyrm/templates/shelf/shelf.html:152 #: bookwyrm/templates/shelf/shelf.html:153
#: bookwyrm/templates/shelf/shelf.html:180 #: bookwyrm/templates/shelf/shelf.html:181
msgid "Started" msgid "Started"
msgstr "" msgstr ""
#: bookwyrm/templates/shelf/shelf.html:153 #: bookwyrm/templates/shelf/shelf.html:154
#: bookwyrm/templates/shelf/shelf.html:183 #: bookwyrm/templates/shelf/shelf.html:184
msgid "Finished" msgid "Finished"
msgstr "" msgstr ""
#: bookwyrm/templates/shelf/shelf.html:209 #: bookwyrm/templates/shelf/shelf.html:154
#: bookwyrm/templates/shelf/shelf.html:184
msgid "Until"
msgstr ""
#: bookwyrm/templates/shelf/shelf.html:210
msgid "This shelf is empty." msgid "This shelf is empty."
msgstr "" msgstr ""
@ -4728,7 +4752,7 @@ msgid "(Optional)"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:6 #: bookwyrm/templates/snippets/reading_modals/progress_update_modal.html:6
#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:54 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:61
msgid "Update progress" msgid "Update progress"
msgstr "" msgstr ""
@ -4737,6 +4761,17 @@ msgstr ""
msgid "Start \"<em>%(book_title)s</em>\"" msgid "Start \"<em>%(book_title)s</em>\""
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:6
#, python-format
msgid "Stop Reading \"<em>%(book_title)s</em>\""
msgstr ""
#: bookwyrm/templates/snippets/reading_modals/stop_reading_modal.html:32
#: bookwyrm/templates/snippets/shelf_selector.html:54
#: 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 #: bookwyrm/templates/snippets/reading_modals/want_to_read_modal.html:6
#, python-format #, python-format
msgid "Want to Read \"<em>%(book_title)s</em>\"" msgid "Want to Read \"<em>%(book_title)s</em>\""
@ -4784,23 +4819,23 @@ msgstr ""
#: bookwyrm/templates/snippets/shelf_selector.html:39 #: bookwyrm/templates/snippets/shelf_selector.html:39
#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:17 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:17
#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:24 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:33
msgid "Start reading" msgid "Start reading"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/shelf_selector.html:54 #: bookwyrm/templates/snippets/shelf_selector.html:61
#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:31 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:38
#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:38 #: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:55
msgid "Want to read" msgid "Want to read"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/shelf_selector.html:75 #: bookwyrm/templates/snippets/shelf_selector.html:82
#: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:66 #: bookwyrm/templates/snippets/shelve_button/shelve_button_dropdown_options.html:73
#, python-format #, python-format
msgid "Remove from %(name)s" msgid "Remove from %(name)s"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/shelf_selector.html:88 #: bookwyrm/templates/snippets/shelf_selector.html:95
msgid "Remove from" msgid "Remove from"
msgstr "" msgstr ""
@ -4808,7 +4843,12 @@ msgstr ""
msgid "More shelves" msgid "More shelves"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:31 #: 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" msgid "Finish reading"
msgstr "" msgstr ""
@ -4903,6 +4943,16 @@ msgstr ""
msgid "reviewed <a href=\"%(book_path)s\">%(book)s</a>" msgid "reviewed <a href=\"%(book_path)s\">%(book)s</a>"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:10
#, python-format
msgid "stopped reading <a href=\"%(book_path)s\">%(book)s</a> by <a href=\"%(author_path)s\">%(author_name)s</a>"
msgstr ""
#: bookwyrm/templates/snippets/status/headers/stopped_reading.html:17
#, python-format
msgid "stopped reading <a href=\"%(book_path)s\">%(book)s</a>"
msgstr ""
#: bookwyrm/templates/snippets/status/headers/to_read.html:10 #: bookwyrm/templates/snippets/status/headers/to_read.html:10
#, python-format #, python-format
msgid "wants to read <a href=\"%(book_path)s\">%(book)s</a> by <a href=\"%(author_path)s\">%(author_name)s</a>" msgid "wants to read <a href=\"%(book_path)s\">%(book)s</a> by <a href=\"%(author_path)s\">%(author_name)s</a>"
@ -5043,29 +5093,29 @@ msgstr ""
msgid "Edit profile" msgid "Edit profile"
msgstr "" msgstr ""
#: bookwyrm/templates/user/user.html:37 #: bookwyrm/templates/user/user.html:38
#, python-format #, python-format
msgid "View all %(size)s" msgid "View all %(size)s"
msgstr "" msgstr ""
#: bookwyrm/templates/user/user.html:51 #: bookwyrm/templates/user/user.html:52
msgid "View all books" msgid "View all books"
msgstr "" msgstr ""
#: bookwyrm/templates/user/user.html:58 #: bookwyrm/templates/user/user.html:59
#, python-format #, python-format
msgid "%(current_year)s Reading Goal" msgid "%(current_year)s Reading Goal"
msgstr "" msgstr ""
#: bookwyrm/templates/user/user.html:65 #: bookwyrm/templates/user/user.html:66
msgid "User Activity" msgid "User Activity"
msgstr "" msgstr ""
#: bookwyrm/templates/user/user.html:69 #: bookwyrm/templates/user/user.html:70
msgid "RSS feed" msgid "RSS feed"
msgstr "" msgstr ""
#: bookwyrm/templates/user/user.html:80 #: bookwyrm/templates/user/user.html:81
msgid "No activities yet!" msgid "No activities yet!"
msgstr "" msgstr ""

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n" "POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-04-30 10:04\n" "PO-Revision-Date: 2022-05-24 01:06\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Spanish\n" "Language-Team: Spanish\n"
"Language: es\n" "Language: es\n"
@ -121,25 +121,25 @@ msgstr "Cuidado"
msgid "Automatically generated report" msgid "Automatically generated report"
msgstr "Informe generado automáticamente" msgstr "Informe generado automáticamente"
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72 #: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200 #: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19 #: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending" msgid "Pending"
msgstr "Pendiente" msgstr "Pendiente"
#: bookwyrm/models/base_model.py:18 #: bookwyrm/models/base_model.py:19
msgid "Self deletion" msgid "Self deletion"
msgstr "Auto-eliminación" msgstr "Auto-eliminación"
#: bookwyrm/models/base_model.py:19 #: bookwyrm/models/base_model.py:20
msgid "Moderator suspension" msgid "Moderator suspension"
msgstr "Suspensión de moderador" msgstr "Suspensión de moderador"
#: bookwyrm/models/base_model.py:20 #: bookwyrm/models/base_model.py:21
msgid "Moderator deletion" msgid "Moderator deletion"
msgstr "Eliminación de moderador" msgstr "Eliminación de moderador"
#: bookwyrm/models/base_model.py:21 #: bookwyrm/models/base_model.py:22
msgid "Domain block" msgid "Domain block"
msgstr "Bloqueo de dominio" msgstr "Bloqueo de dominio"
@ -734,7 +734,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115 #: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202 #: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:127 #: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/file_links/add_link_modal.html:60 #: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82 #: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32 #: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Guardar"
#: bookwyrm/templates/author/sync_modal.html:23 #: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203 #: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33 #: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:129 #: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:132 #: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/file_links/add_link_modal.html:59 #: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25 #: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23 #: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "La carga de datos se conectará a <strong>%(source_name)s</strong> y comprobará si hay metadatos sobre este autor que no están presentes aquí. Los metadatos existentes no serán sobrescritos." msgstr "La carga de datos se conectará a <strong>%(source_name)s</strong> y comprobará si hay metadatos sobre este autor que no están presentes aquí. Los metadatos existentes no serán sobrescritos."
#: bookwyrm/templates/author/sync_modal.html:24 #: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:114 #: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/sync_modal.html:24 #: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "Editar \"%(book_title)s\""
msgid "Add Book" msgid "Add Book"
msgstr "Agregar libro" msgstr "Agregar libro"
#: bookwyrm/templates/book/edit/edit_book.html:54 #: bookwyrm/templates/book/edit/edit_book.html:62
msgid "Confirm Book Info" msgid "Confirm Book Info"
msgstr "Confirmar información de libro" msgstr "Confirmar información de libro"
#: bookwyrm/templates/book/edit/edit_book.html:62 #: bookwyrm/templates/book/edit/edit_book.html:70
#, python-format #, python-format
msgid "Is \"%(name)s\" one of these authors?" msgid "Is \"%(name)s\" one of these authors?"
msgstr "¿Es \"%(name)s\" uno de estos autores?" msgstr "¿Es \"%(name)s\" uno de estos autores?"
#: bookwyrm/templates/book/edit/edit_book.html:73 #: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Author of " msgid "Author of "
msgstr "Autor/a de " msgstr "Autor/a de "
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Find more information at isni.org" msgid "Find more information at isni.org"
msgstr "Más información en isni.org" msgstr "Más información en isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:85 #: bookwyrm/templates/book/edit/edit_book.html:93
msgid "This is a new author" msgid "This is a new author"
msgstr "Este es un autor nuevo" msgstr "Este es un autor nuevo"
#: bookwyrm/templates/book/edit/edit_book.html:92 #: bookwyrm/templates/book/edit/edit_book.html:100
#, python-format #, python-format
msgid "Creating a new author: %(name)s" msgid "Creating a new author: %(name)s"
msgstr "Creando un autor nuevo: %(name)s" msgstr "Creando un autor nuevo: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:99 #: bookwyrm/templates/book/edit/edit_book.html:107
msgid "Is this an edition of an existing work?" msgid "Is this an edition of an existing work?"
msgstr "¿Es esta una edición de una obra ya existente?" msgstr "¿Es esta una edición de una obra ya existente?"
#: bookwyrm/templates/book/edit/edit_book.html:107 #: bookwyrm/templates/book/edit/edit_book.html:115
msgid "This is a new work" msgid "This is a new work"
msgstr "Esta es una obra nueva" msgstr "Esta es una obra nueva"
#: bookwyrm/templates/book/edit/edit_book.html:116 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
msgid "Back" msgid "Back"
msgstr "Volver" msgstr "Volver"
@ -1970,33 +1970,33 @@ msgstr "Importar libros"
msgid "Data source:" msgid "Data source:"
msgstr "Fuente de datos:" msgstr "Fuente de datos:"
#: bookwyrm/templates/import/import.html:39 #: bookwyrm/templates/import/import.html:42
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account." msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Puedes descargar tus datos de Goodreads desde la <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">página de importación/exportación</a> de tu cuenta de Goodreads." msgstr "Puedes descargar tus datos de Goodreads desde la <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">página de importación/exportación</a> de tu cuenta de Goodreads."
#: bookwyrm/templates/import/import.html:44 #: bookwyrm/templates/import/import.html:47
msgid "Data file:" msgid "Data file:"
msgstr "Archivo de datos:" msgstr "Archivo de datos:"
#: bookwyrm/templates/import/import.html:52 #: bookwyrm/templates/import/import.html:55
msgid "Include reviews" msgid "Include reviews"
msgstr "Incluir reseñas" msgstr "Incluir reseñas"
#: bookwyrm/templates/import/import.html:57 #: bookwyrm/templates/import/import.html:60
msgid "Privacy setting for imported reviews:" msgid "Privacy setting for imported reviews:"
msgstr "Configuración de privacidad para las reseñas importadas:" msgstr "Configuración de privacidad para las reseñas importadas:"
#: bookwyrm/templates/import/import.html:63 #: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/preferences/layout.html:31 #: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76 #: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import" msgid "Import"
msgstr "Importar" msgstr "Importar"
#: bookwyrm/templates/import/import.html:68 #: bookwyrm/templates/import/import.html:71
msgid "Recent Imports" msgid "Recent Imports"
msgstr "Importaciones recientes" msgstr "Importaciones recientes"
#: bookwyrm/templates/import/import.html:70 #: bookwyrm/templates/import/import.html:73
msgid "No recent imports" msgid "No recent imports"
msgstr "No hay ninguna importación reciente" msgstr "No hay ninguna importación reciente"
@ -5114,7 +5114,7 @@ msgstr "Archivo excede el tamaño máximo: 10MB"
msgid "%(title)s: %(subtitle)s" msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:67 #: bookwyrm/views/imports/import_data.py:70
msgid "Not a valid csv file" msgid "Not a valid csv file"
msgstr "No un archivo csv válido" msgstr "No un archivo csv válido"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n" "POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-05-07 14:54\n" "PO-Revision-Date: 2022-05-24 01:06\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Finnish\n" "Language-Team: Finnish\n"
"Language: fi\n" "Language: fi\n"
@ -121,25 +121,25 @@ msgstr "Vaara"
msgid "Automatically generated report" msgid "Automatically generated report"
msgstr "Automaattisesti luotu raportti" msgstr "Automaattisesti luotu raportti"
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72 #: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200 #: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19 #: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending" msgid "Pending"
msgstr "Odottaa" msgstr "Odottaa"
#: bookwyrm/models/base_model.py:18 #: bookwyrm/models/base_model.py:19
msgid "Self deletion" msgid "Self deletion"
msgstr "Itse poistettu" msgstr "Itse poistettu"
#: bookwyrm/models/base_model.py:19 #: bookwyrm/models/base_model.py:20
msgid "Moderator suspension" msgid "Moderator suspension"
msgstr "Moderaattorin estämä" msgstr "Moderaattorin estämä"
#: bookwyrm/models/base_model.py:20 #: bookwyrm/models/base_model.py:21
msgid "Moderator deletion" msgid "Moderator deletion"
msgstr "Moderaattorin poistama" msgstr "Moderaattorin poistama"
#: bookwyrm/models/base_model.py:21 #: bookwyrm/models/base_model.py:22
msgid "Domain block" msgid "Domain block"
msgstr "Verkkotunnuksen esto" msgstr "Verkkotunnuksen esto"
@ -734,7 +734,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115 #: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202 #: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:127 #: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/file_links/add_link_modal.html:60 #: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82 #: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32 #: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Tallenna"
#: bookwyrm/templates/author/sync_modal.html:23 #: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203 #: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33 #: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:129 #: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:132 #: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/file_links/add_link_modal.html:59 #: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25 #: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23 #: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Tietoja ladattaessa muodostetaan yhteys lähteeseen <strong>%(source_name)s</strong> ja sieltä haetaan metatietoja, joita ei vielä ole täällä. Olemassa olevia metatietoja ei korvata uusilla." msgstr "Tietoja ladattaessa muodostetaan yhteys lähteeseen <strong>%(source_name)s</strong> ja sieltä haetaan metatietoja, joita ei vielä ole täällä. Olemassa olevia metatietoja ei korvata uusilla."
#: bookwyrm/templates/author/sync_modal.html:24 #: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:114 #: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/sync_modal.html:24 #: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "Muokkaa teosta ”%(book_title)s”"
msgid "Add Book" msgid "Add Book"
msgstr "Lisää kirja" msgstr "Lisää kirja"
#: bookwyrm/templates/book/edit/edit_book.html:54 #: bookwyrm/templates/book/edit/edit_book.html:62
msgid "Confirm Book Info" msgid "Confirm Book Info"
msgstr "Vahvista kirjan tiedot" msgstr "Vahvista kirjan tiedot"
#: bookwyrm/templates/book/edit/edit_book.html:62 #: bookwyrm/templates/book/edit/edit_book.html:70
#, python-format #, python-format
msgid "Is \"%(name)s\" one of these authors?" msgid "Is \"%(name)s\" one of these authors?"
msgstr "Onko ”%(name)s” joku seuraavista tekijöistä?" msgstr "Onko ”%(name)s” joku seuraavista tekijöistä?"
#: bookwyrm/templates/book/edit/edit_book.html:73 #: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Author of " msgid "Author of "
msgstr "Tekijänä teoksessa " msgstr "Tekijänä teoksessa "
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Find more information at isni.org" msgid "Find more information at isni.org"
msgstr "Lisätietoja osoitteessa isni.org" msgstr "Lisätietoja osoitteessa isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:85 #: bookwyrm/templates/book/edit/edit_book.html:93
msgid "This is a new author" msgid "This is a new author"
msgstr "Uusi tekijä" msgstr "Uusi tekijä"
#: bookwyrm/templates/book/edit/edit_book.html:92 #: bookwyrm/templates/book/edit/edit_book.html:100
#, python-format #, python-format
msgid "Creating a new author: %(name)s" msgid "Creating a new author: %(name)s"
msgstr "Luodaan uusi tekijä: %(name)s" msgstr "Luodaan uusi tekijä: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:99 #: bookwyrm/templates/book/edit/edit_book.html:107
msgid "Is this an edition of an existing work?" msgid "Is this an edition of an existing work?"
msgstr "Onko tämä aiemmin lisätyn teoksen laitos?" msgstr "Onko tämä aiemmin lisätyn teoksen laitos?"
#: bookwyrm/templates/book/edit/edit_book.html:107 #: bookwyrm/templates/book/edit/edit_book.html:115
msgid "This is a new work" msgid "This is a new work"
msgstr "Uusi teos" msgstr "Uusi teos"
#: bookwyrm/templates/book/edit/edit_book.html:116 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
msgid "Back" msgid "Back"
msgstr "Takaisin" msgstr "Takaisin"
@ -1970,33 +1970,33 @@ msgstr "Tuo kirjoja"
msgid "Data source:" msgid "Data source:"
msgstr "Tietolähde:" msgstr "Tietolähde:"
#: bookwyrm/templates/import/import.html:39 #: bookwyrm/templates/import/import.html:42
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account." msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Goodreads-tiedot voi ladata Goodreads-käyttäjätilin <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export-sivun</a> kautta." msgstr "Goodreads-tiedot voi ladata Goodreads-käyttäjätilin <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export-sivun</a> kautta."
#: bookwyrm/templates/import/import.html:44 #: bookwyrm/templates/import/import.html:47
msgid "Data file:" msgid "Data file:"
msgstr "Datatiedosto:" msgstr "Datatiedosto:"
#: bookwyrm/templates/import/import.html:52 #: bookwyrm/templates/import/import.html:55
msgid "Include reviews" msgid "Include reviews"
msgstr "Myös arviot" msgstr "Myös arviot"
#: bookwyrm/templates/import/import.html:57 #: bookwyrm/templates/import/import.html:60
msgid "Privacy setting for imported reviews:" msgid "Privacy setting for imported reviews:"
msgstr "Tuotavien arvioiden yksityisyysvalinta:" msgstr "Tuotavien arvioiden yksityisyysvalinta:"
#: bookwyrm/templates/import/import.html:63 #: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/preferences/layout.html:31 #: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76 #: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import" msgid "Import"
msgstr "Tuo" msgstr "Tuo"
#: bookwyrm/templates/import/import.html:68 #: bookwyrm/templates/import/import.html:71
msgid "Recent Imports" msgid "Recent Imports"
msgstr "Viimeksi tuotu" msgstr "Viimeksi tuotu"
#: bookwyrm/templates/import/import.html:70 #: bookwyrm/templates/import/import.html:73
msgid "No recent imports" msgid "No recent imports"
msgstr "Ei viimeaikaisia tuonteja" msgstr "Ei viimeaikaisia tuonteja"
@ -5114,7 +5114,7 @@ msgstr "Tiedosto on enimmäiskokoa 10 Mt suurempi"
msgid "%(title)s: %(subtitle)s" msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:67 #: bookwyrm/views/imports/import_data.py:70
msgid "Not a valid csv file" msgid "Not a valid csv file"
msgstr "Epäkelpo csv-tiedosto" msgstr "Epäkelpo csv-tiedosto"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n" "POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-04-09 08:36\n" "PO-Revision-Date: 2022-05-24 01:06\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: French\n" "Language-Team: French\n"
"Language: fr\n" "Language: fr\n"
@ -121,25 +121,25 @@ msgstr "Danger"
msgid "Automatically generated report" msgid "Automatically generated report"
msgstr "Rapport généré automatiquement" msgstr "Rapport généré automatiquement"
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72 #: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200 #: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19 #: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending" msgid "Pending"
msgstr "En attente" msgstr "En attente"
#: bookwyrm/models/base_model.py:18 #: bookwyrm/models/base_model.py:19
msgid "Self deletion" msgid "Self deletion"
msgstr "Auto-suppression" msgstr "Auto-suppression"
#: bookwyrm/models/base_model.py:19 #: bookwyrm/models/base_model.py:20
msgid "Moderator suspension" msgid "Moderator suspension"
msgstr "Suspension du modérateur" msgstr "Suspension du modérateur"
#: bookwyrm/models/base_model.py:20 #: bookwyrm/models/base_model.py:21
msgid "Moderator deletion" msgid "Moderator deletion"
msgstr "Suppression du modérateur" msgstr "Suppression du modérateur"
#: bookwyrm/models/base_model.py:21 #: bookwyrm/models/base_model.py:22
msgid "Domain block" msgid "Domain block"
msgstr "Blocage de domaine" msgstr "Blocage de domaine"
@ -734,7 +734,7 @@ msgstr "ISNI :"
#: bookwyrm/templates/author/edit_author.html:115 #: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202 #: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:127 #: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/file_links/add_link_modal.html:60 #: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82 #: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32 #: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Enregistrer"
#: bookwyrm/templates/author/sync_modal.html:23 #: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203 #: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33 #: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:129 #: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:132 #: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/file_links/add_link_modal.html:59 #: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25 #: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23 #: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Le chargement des données se connectera à <strong>%(source_name)s</strong> et vérifiera les métadonnées de cet auteur ou autrice qui ne sont pas présentes ici. Les métadonnées existantes ne seront pas écrasées." msgstr "Le chargement des données se connectera à <strong>%(source_name)s</strong> et vérifiera les métadonnées de cet auteur ou autrice qui ne sont pas présentes ici. Les métadonnées existantes ne seront pas écrasées."
#: bookwyrm/templates/author/sync_modal.html:24 #: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:114 #: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/sync_modal.html:24 #: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "Modifier « %(book_title)s»"
msgid "Add Book" msgid "Add Book"
msgstr "Ajouter un livre" msgstr "Ajouter un livre"
#: bookwyrm/templates/book/edit/edit_book.html:54 #: bookwyrm/templates/book/edit/edit_book.html:62
msgid "Confirm Book Info" msgid "Confirm Book Info"
msgstr "Confirmer les informations de ce livre" msgstr "Confirmer les informations de ce livre"
#: bookwyrm/templates/book/edit/edit_book.html:62 #: bookwyrm/templates/book/edit/edit_book.html:70
#, python-format #, python-format
msgid "Is \"%(name)s\" one of these authors?" msgid "Is \"%(name)s\" one of these authors?"
msgstr "Est-ce que \"%(name)s\" fait partie de ces auteurs ou autrices ?" msgstr "Est-ce que \"%(name)s\" fait partie de ces auteurs ou autrices ?"
#: bookwyrm/templates/book/edit/edit_book.html:73 #: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Author of " msgid "Author of "
msgstr "Auteur ou autrice de " msgstr "Auteur ou autrice de "
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Find more information at isni.org" msgid "Find more information at isni.org"
msgstr "Trouver plus dinformations sur isni.org" msgstr "Trouver plus dinformations sur isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:85 #: bookwyrm/templates/book/edit/edit_book.html:93
msgid "This is a new author" msgid "This is a new author"
msgstr "Il sagit dun nouvel auteur ou dune nouvelle autrice." msgstr "Il sagit dun nouvel auteur ou dune nouvelle autrice."
#: bookwyrm/templates/book/edit/edit_book.html:92 #: bookwyrm/templates/book/edit/edit_book.html:100
#, python-format #, python-format
msgid "Creating a new author: %(name)s" msgid "Creating a new author: %(name)s"
msgstr "Création dun nouvel auteur/autrice: %(name)s" msgstr "Création dun nouvel auteur/autrice: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:99 #: bookwyrm/templates/book/edit/edit_book.html:107
msgid "Is this an edition of an existing work?" msgid "Is this an edition of an existing work?"
msgstr "Estce lédition dun ouvrage existant?" msgstr "Estce lédition dun ouvrage existant?"
#: bookwyrm/templates/book/edit/edit_book.html:107 #: bookwyrm/templates/book/edit/edit_book.html:115
msgid "This is a new work" msgid "This is a new work"
msgstr "Il sagit dun nouvel ouvrage." msgstr "Il sagit dun nouvel ouvrage."
#: bookwyrm/templates/book/edit/edit_book.html:116 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
msgid "Back" msgid "Back"
msgstr "Retour" msgstr "Retour"
@ -1970,33 +1970,33 @@ msgstr "Importer des livres"
msgid "Data source:" msgid "Data source:"
msgstr "Source de données:" msgstr "Source de données:"
#: bookwyrm/templates/import/import.html:39 #: bookwyrm/templates/import/import.html:42
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account." msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Vous pouvez télécharger vos données Goodreads depuis la page <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export</a> de votre compte Goodreads." msgstr "Vous pouvez télécharger vos données Goodreads depuis la page <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export</a> de votre compte Goodreads."
#: bookwyrm/templates/import/import.html:44 #: bookwyrm/templates/import/import.html:47
msgid "Data file:" msgid "Data file:"
msgstr "Fichier de données:" msgstr "Fichier de données:"
#: bookwyrm/templates/import/import.html:52 #: bookwyrm/templates/import/import.html:55
msgid "Include reviews" msgid "Include reviews"
msgstr "Importer les critiques" msgstr "Importer les critiques"
#: bookwyrm/templates/import/import.html:57 #: bookwyrm/templates/import/import.html:60
msgid "Privacy setting for imported reviews:" msgid "Privacy setting for imported reviews:"
msgstr "Confidentialité des critiques importées:" msgstr "Confidentialité des critiques importées:"
#: bookwyrm/templates/import/import.html:63 #: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/preferences/layout.html:31 #: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76 #: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import" msgid "Import"
msgstr "Importer" msgstr "Importer"
#: bookwyrm/templates/import/import.html:68 #: bookwyrm/templates/import/import.html:71
msgid "Recent Imports" msgid "Recent Imports"
msgstr "Importations récentes" msgstr "Importations récentes"
#: bookwyrm/templates/import/import.html:70 #: bookwyrm/templates/import/import.html:73
msgid "No recent imports" msgid "No recent imports"
msgstr "Aucune importation récente" msgstr "Aucune importation récente"
@ -5114,7 +5114,7 @@ msgstr "Ce fichier dépasse la taille limite: 10Mo"
msgid "%(title)s: %(subtitle)s" msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s (%(subtitle)s)" msgstr "%(title)s (%(subtitle)s)"
#: bookwyrm/views/imports/import_data.py:67 #: bookwyrm/views/imports/import_data.py:70
msgid "Not a valid csv file" msgid "Not a valid csv file"
msgstr "Fichier CSV non valide" msgstr "Fichier CSV non valide"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n" "POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-04-09 14:02\n" "PO-Revision-Date: 2022-05-24 01:06\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Galician\n" "Language-Team: Galician\n"
"Language: gl\n" "Language: gl\n"
@ -121,25 +121,25 @@ msgstr "Perigo"
msgid "Automatically generated report" msgid "Automatically generated report"
msgstr "Denuncia creada automáticamente" msgstr "Denuncia creada automáticamente"
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72 #: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200 #: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19 #: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending" msgid "Pending"
msgstr "Pendente" msgstr "Pendente"
#: bookwyrm/models/base_model.py:18 #: bookwyrm/models/base_model.py:19
msgid "Self deletion" msgid "Self deletion"
msgstr "Auto eliminación" msgstr "Auto eliminación"
#: bookwyrm/models/base_model.py:19 #: bookwyrm/models/base_model.py:20
msgid "Moderator suspension" msgid "Moderator suspension"
msgstr "Suspendido pola moderación" msgstr "Suspendido pola moderación"
#: bookwyrm/models/base_model.py:20 #: bookwyrm/models/base_model.py:21
msgid "Moderator deletion" msgid "Moderator deletion"
msgstr "Eliminado pola moderación" msgstr "Eliminado pola moderación"
#: bookwyrm/models/base_model.py:21 #: bookwyrm/models/base_model.py:22
msgid "Domain block" msgid "Domain block"
msgstr "Bloqueo de dominio" msgstr "Bloqueo de dominio"
@ -734,7 +734,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115 #: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202 #: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:127 #: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/file_links/add_link_modal.html:60 #: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82 #: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32 #: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Gardar"
#: bookwyrm/templates/author/sync_modal.html:23 #: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203 #: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33 #: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:129 #: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:132 #: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/file_links/add_link_modal.html:59 #: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25 #: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23 #: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Ao cargar os datos vas conectar con <strong>%(source_name)s</strong> e comprobar se existen metadatos desta persoa autora que non están aquí presentes. Non se sobrescribirán os datos existentes." msgstr "Ao cargar os datos vas conectar con <strong>%(source_name)s</strong> e comprobar se existen metadatos desta persoa autora que non están aquí presentes. Non se sobrescribirán os datos existentes."
#: bookwyrm/templates/author/sync_modal.html:24 #: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:114 #: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/sync_modal.html:24 #: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "Editar \"%(book_title)s\""
msgid "Add Book" msgid "Add Book"
msgstr "Engadir libro" msgstr "Engadir libro"
#: bookwyrm/templates/book/edit/edit_book.html:54 #: bookwyrm/templates/book/edit/edit_book.html:62
msgid "Confirm Book Info" msgid "Confirm Book Info"
msgstr "Confirma info do libro" msgstr "Confirma info do libro"
#: bookwyrm/templates/book/edit/edit_book.html:62 #: bookwyrm/templates/book/edit/edit_book.html:70
#, python-format #, python-format
msgid "Is \"%(name)s\" one of these authors?" msgid "Is \"%(name)s\" one of these authors?"
msgstr "É \"%(name)s\" un destas autoras?" msgstr "É \"%(name)s\" un destas autoras?"
#: bookwyrm/templates/book/edit/edit_book.html:73 #: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Author of " msgid "Author of "
msgstr "Autora de " msgstr "Autora de "
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Find more information at isni.org" msgid "Find more information at isni.org"
msgstr "Atopa máis información en isni.org" msgstr "Atopa máis información en isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:85 #: bookwyrm/templates/book/edit/edit_book.html:93
msgid "This is a new author" msgid "This is a new author"
msgstr "Esta é unha nova autora" msgstr "Esta é unha nova autora"
#: bookwyrm/templates/book/edit/edit_book.html:92 #: bookwyrm/templates/book/edit/edit_book.html:100
#, python-format #, python-format
msgid "Creating a new author: %(name)s" msgid "Creating a new author: %(name)s"
msgstr "Creando nova autora: %(name)s" msgstr "Creando nova autora: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:99 #: bookwyrm/templates/book/edit/edit_book.html:107
msgid "Is this an edition of an existing work?" msgid "Is this an edition of an existing work?"
msgstr "É esta a edición dun traballo existente?" msgstr "É esta a edición dun traballo existente?"
#: bookwyrm/templates/book/edit/edit_book.html:107 #: bookwyrm/templates/book/edit/edit_book.html:115
msgid "This is a new work" msgid "This is a new work"
msgstr "Este é un novo traballo" msgstr "Este é un novo traballo"
#: bookwyrm/templates/book/edit/edit_book.html:116 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
msgid "Back" msgid "Back"
msgstr "Atrás" msgstr "Atrás"
@ -1970,33 +1970,33 @@ msgstr "Importar libros"
msgid "Data source:" msgid "Data source:"
msgstr "Fonte de datos:" msgstr "Fonte de datos:"
#: bookwyrm/templates/import/import.html:39 #: bookwyrm/templates/import/import.html:42
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account." msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Podes descargar os teus datos de Goodreads desde a <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">páxina de Exportación/Importación</a> da túa conta Goodreads." msgstr "Podes descargar os teus datos de Goodreads desde a <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">páxina de Exportación/Importación</a> da túa conta Goodreads."
#: bookwyrm/templates/import/import.html:44 #: bookwyrm/templates/import/import.html:47
msgid "Data file:" msgid "Data file:"
msgstr "Ficheiro de datos:" msgstr "Ficheiro de datos:"
#: bookwyrm/templates/import/import.html:52 #: bookwyrm/templates/import/import.html:55
msgid "Include reviews" msgid "Include reviews"
msgstr "Incluír recensións" msgstr "Incluír recensións"
#: bookwyrm/templates/import/import.html:57 #: bookwyrm/templates/import/import.html:60
msgid "Privacy setting for imported reviews:" msgid "Privacy setting for imported reviews:"
msgstr "Axuste de privacidade para recensións importadas:" msgstr "Axuste de privacidade para recensións importadas:"
#: bookwyrm/templates/import/import.html:63 #: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/preferences/layout.html:31 #: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76 #: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import" msgid "Import"
msgstr "Importar" msgstr "Importar"
#: bookwyrm/templates/import/import.html:68 #: bookwyrm/templates/import/import.html:71
msgid "Recent Imports" msgid "Recent Imports"
msgstr "Importacións recentes" msgstr "Importacións recentes"
#: bookwyrm/templates/import/import.html:70 #: bookwyrm/templates/import/import.html:73
msgid "No recent imports" msgid "No recent imports"
msgstr "Sen importacións recentes" msgstr "Sen importacións recentes"
@ -5114,7 +5114,7 @@ msgstr "O ficheiro supera o tamaño máximo: 10MB"
msgid "%(title)s: %(subtitle)s" msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:67 #: bookwyrm/views/imports/import_data.py:70
msgid "Not a valid csv file" msgid "Not a valid csv file"
msgstr "Non é un ficheiro csv válido" msgstr "Non é un ficheiro csv válido"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n" "POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-04-20 22:49\n" "PO-Revision-Date: 2022-05-24 01:06\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Italian\n" "Language-Team: Italian\n"
"Language: it\n" "Language: it\n"
@ -121,25 +121,25 @@ msgstr "Attenzione"
msgid "Automatically generated report" msgid "Automatically generated report"
msgstr "Rapporto generato automaticamente" msgstr "Rapporto generato automaticamente"
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72 #: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200 #: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19 #: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending" msgid "Pending"
msgstr "In attesa" msgstr "In attesa"
#: bookwyrm/models/base_model.py:18 #: bookwyrm/models/base_model.py:19
msgid "Self deletion" msgid "Self deletion"
msgstr "Eliminazione automatica" msgstr "Eliminazione automatica"
#: bookwyrm/models/base_model.py:19 #: bookwyrm/models/base_model.py:20
msgid "Moderator suspension" msgid "Moderator suspension"
msgstr "Sospensione del moderatore" msgstr "Sospensione del moderatore"
#: bookwyrm/models/base_model.py:20 #: bookwyrm/models/base_model.py:21
msgid "Moderator deletion" msgid "Moderator deletion"
msgstr "Cancellazione del moderatore" msgstr "Cancellazione del moderatore"
#: bookwyrm/models/base_model.py:21 #: bookwyrm/models/base_model.py:22
msgid "Domain block" msgid "Domain block"
msgstr "Blocco del dominio" msgstr "Blocco del dominio"
@ -734,7 +734,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115 #: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202 #: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:127 #: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/file_links/add_link_modal.html:60 #: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82 #: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32 #: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Salva"
#: bookwyrm/templates/author/sync_modal.html:23 #: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203 #: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33 #: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:129 #: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:132 #: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/file_links/add_link_modal.html:59 #: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25 #: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23 #: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Il caricamento dei dati si collegherà a <strong>%(source_name)s</strong> e verificherà eventuali metadati relativi a questo autore che non sono presenti qui. I metadati esistenti non vengono sovrascritti." msgstr "Il caricamento dei dati si collegherà a <strong>%(source_name)s</strong> e verificherà eventuali metadati relativi a questo autore che non sono presenti qui. I metadati esistenti non vengono sovrascritti."
#: bookwyrm/templates/author/sync_modal.html:24 #: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:114 #: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/sync_modal.html:24 #: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "Modifica \"%(book_title)s\""
msgid "Add Book" msgid "Add Book"
msgstr "Aggiungi libro" msgstr "Aggiungi libro"
#: bookwyrm/templates/book/edit/edit_book.html:54 #: bookwyrm/templates/book/edit/edit_book.html:62
msgid "Confirm Book Info" msgid "Confirm Book Info"
msgstr "Conferma informazioni sul libro" msgstr "Conferma informazioni sul libro"
#: bookwyrm/templates/book/edit/edit_book.html:62 #: bookwyrm/templates/book/edit/edit_book.html:70
#, python-format #, python-format
msgid "Is \"%(name)s\" one of these authors?" msgid "Is \"%(name)s\" one of these authors?"
msgstr "È \"%(name)s\" uno di questi autori?" msgstr "È \"%(name)s\" uno di questi autori?"
#: bookwyrm/templates/book/edit/edit_book.html:73 #: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Author of " msgid "Author of "
msgstr "Autore di " msgstr "Autore di "
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Find more information at isni.org" msgid "Find more information at isni.org"
msgstr "Trova maggiori informazioni su isni.org" msgstr "Trova maggiori informazioni su isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:85 #: bookwyrm/templates/book/edit/edit_book.html:93
msgid "This is a new author" msgid "This is a new author"
msgstr "Questo è un nuovo autore" msgstr "Questo è un nuovo autore"
#: bookwyrm/templates/book/edit/edit_book.html:92 #: bookwyrm/templates/book/edit/edit_book.html:100
#, python-format #, python-format
msgid "Creating a new author: %(name)s" msgid "Creating a new author: %(name)s"
msgstr "Creazione di un nuovo autore: %(name)s" msgstr "Creazione di un nuovo autore: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:99 #: bookwyrm/templates/book/edit/edit_book.html:107
msgid "Is this an edition of an existing work?" msgid "Is this an edition of an existing work?"
msgstr "È un'edizione di un'opera esistente?" msgstr "È un'edizione di un'opera esistente?"
#: bookwyrm/templates/book/edit/edit_book.html:107 #: bookwyrm/templates/book/edit/edit_book.html:115
msgid "This is a new work" msgid "This is a new work"
msgstr "Si tratta di un nuovo lavoro" msgstr "Si tratta di un nuovo lavoro"
#: bookwyrm/templates/book/edit/edit_book.html:116 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
msgid "Back" msgid "Back"
msgstr "Indietro" msgstr "Indietro"
@ -1970,33 +1970,33 @@ msgstr "Importa libri"
msgid "Data source:" msgid "Data source:"
msgstr "Sorgenti dati:" msgstr "Sorgenti dati:"
#: bookwyrm/templates/import/import.html:39 #: bookwyrm/templates/import/import.html:42
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account." msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Puoi scaricare i tuoi dati Goodreads dalla pagina <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">\"Importa/Esporta\"</a> del tuo account Goodreads." msgstr "Puoi scaricare i tuoi dati Goodreads dalla pagina <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">\"Importa/Esporta\"</a> del tuo account Goodreads."
#: bookwyrm/templates/import/import.html:44 #: bookwyrm/templates/import/import.html:47
msgid "Data file:" msgid "Data file:"
msgstr "Dati file:" msgstr "Dati file:"
#: bookwyrm/templates/import/import.html:52 #: bookwyrm/templates/import/import.html:55
msgid "Include reviews" msgid "Include reviews"
msgstr "Includi recensioni" msgstr "Includi recensioni"
#: bookwyrm/templates/import/import.html:57 #: bookwyrm/templates/import/import.html:60
msgid "Privacy setting for imported reviews:" msgid "Privacy setting for imported reviews:"
msgstr "Impostazione della privacy per le recensioni importate:" msgstr "Impostazione della privacy per le recensioni importate:"
#: bookwyrm/templates/import/import.html:63 #: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/preferences/layout.html:31 #: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76 #: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import" msgid "Import"
msgstr "Importa" msgstr "Importa"
#: bookwyrm/templates/import/import.html:68 #: bookwyrm/templates/import/import.html:71
msgid "Recent Imports" msgid "Recent Imports"
msgstr "Importazioni recenti" msgstr "Importazioni recenti"
#: bookwyrm/templates/import/import.html:70 #: bookwyrm/templates/import/import.html:73
msgid "No recent imports" msgid "No recent imports"
msgstr "Nessuna importazione recente" msgstr "Nessuna importazione recente"
@ -5114,7 +5114,7 @@ msgstr "Il file supera la dimensione massima: 10MB"
msgid "%(title)s: %(subtitle)s" msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:67 #: bookwyrm/views/imports/import_data.py:70
msgid "Not a valid csv file" msgid "Not a valid csv file"
msgstr "Non è un file di csv valido" msgstr "Non è un file di csv valido"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n" "POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-04-10 07:54\n" "PO-Revision-Date: 2022-05-24 01:06\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Lithuanian\n" "Language-Team: Lithuanian\n"
"Language: lt\n" "Language: lt\n"
@ -121,25 +121,25 @@ msgstr "Pavojus"
msgid "Automatically generated report" msgid "Automatically generated report"
msgstr "Automatiškai sugeneruota ataskaita" msgstr "Automatiškai sugeneruota ataskaita"
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72 #: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200 #: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19 #: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending" msgid "Pending"
msgstr "Laukiama" msgstr "Laukiama"
#: bookwyrm/models/base_model.py:18 #: bookwyrm/models/base_model.py:19
msgid "Self deletion" msgid "Self deletion"
msgstr "Išsitrina savaime" msgstr "Išsitrina savaime"
#: bookwyrm/models/base_model.py:19 #: bookwyrm/models/base_model.py:20
msgid "Moderator suspension" msgid "Moderator suspension"
msgstr "Moderatorius nutraukė" msgstr "Moderatorius nutraukė"
#: bookwyrm/models/base_model.py:20 #: bookwyrm/models/base_model.py:21
msgid "Moderator deletion" msgid "Moderator deletion"
msgstr "Moderatorius ištrynė" msgstr "Moderatorius ištrynė"
#: bookwyrm/models/base_model.py:21 #: bookwyrm/models/base_model.py:22
msgid "Domain block" msgid "Domain block"
msgstr "Blokuoti pagal domeną" msgstr "Blokuoti pagal domeną"
@ -742,7 +742,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115 #: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202 #: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:127 #: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/file_links/add_link_modal.html:60 #: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82 #: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32 #: bookwyrm/templates/groups/form.html:32
@ -765,8 +765,8 @@ msgstr "Išsaugoti"
#: bookwyrm/templates/author/sync_modal.html:23 #: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203 #: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33 #: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:129 #: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:132 #: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/file_links/add_link_modal.html:59 #: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25 #: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23 #: bookwyrm/templates/book/sync_modal.html:23
@ -788,7 +788,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Duomenų įkėlimas prisijungs prie <strong>%(source_name)s</strong> ir patikrins ar nėra naujos informacijos. Esantys metaduomenys nebus perrašomi." msgstr "Duomenų įkėlimas prisijungs prie <strong>%(source_name)s</strong> ir patikrins ar nėra naujos informacijos. Esantys metaduomenys nebus perrašomi."
#: bookwyrm/templates/author/sync_modal.html:24 #: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:114 #: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/sync_modal.html:24 #: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
@ -961,42 +961,42 @@ msgstr "Redaguoti „%(book_title)s“"
msgid "Add Book" msgid "Add Book"
msgstr "Pridėti knygą" msgstr "Pridėti knygą"
#: bookwyrm/templates/book/edit/edit_book.html:54 #: bookwyrm/templates/book/edit/edit_book.html:62
msgid "Confirm Book Info" msgid "Confirm Book Info"
msgstr "Patvirtinti knygos informaciją" msgstr "Patvirtinti knygos informaciją"
#: bookwyrm/templates/book/edit/edit_book.html:62 #: bookwyrm/templates/book/edit/edit_book.html:70
#, python-format #, python-format
msgid "Is \"%(name)s\" one of these authors?" msgid "Is \"%(name)s\" one of these authors?"
msgstr "Ar \"%(name)s\" yra vienas iš šių autorių?" msgstr "Ar \"%(name)s\" yra vienas iš šių autorių?"
#: bookwyrm/templates/book/edit/edit_book.html:73 #: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Author of " msgid "Author of "
msgstr "Autorius " msgstr "Autorius "
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Find more information at isni.org" msgid "Find more information at isni.org"
msgstr "Daugiau informacijos isni.org" msgstr "Daugiau informacijos isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:85 #: bookwyrm/templates/book/edit/edit_book.html:93
msgid "This is a new author" msgid "This is a new author"
msgstr "Tai naujas autorius" msgstr "Tai naujas autorius"
#: bookwyrm/templates/book/edit/edit_book.html:92 #: bookwyrm/templates/book/edit/edit_book.html:100
#, python-format #, python-format
msgid "Creating a new author: %(name)s" msgid "Creating a new author: %(name)s"
msgstr "Kuriamas naujas autorius: %(name)s" msgstr "Kuriamas naujas autorius: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:99 #: bookwyrm/templates/book/edit/edit_book.html:107
msgid "Is this an edition of an existing work?" msgid "Is this an edition of an existing work?"
msgstr "Ar tai egzistuojančio darbo leidimas?" msgstr "Ar tai egzistuojančio darbo leidimas?"
#: bookwyrm/templates/book/edit/edit_book.html:107 #: bookwyrm/templates/book/edit/edit_book.html:115
msgid "This is a new work" msgid "This is a new work"
msgstr "Tai naujas darbas" msgstr "Tai naujas darbas"
#: bookwyrm/templates/book/edit/edit_book.html:116 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
msgid "Back" msgid "Back"
msgstr "Atgal" msgstr "Atgal"
@ -1990,33 +1990,33 @@ msgstr "Importuoti knygas"
msgid "Data source:" msgid "Data source:"
msgstr "Duomenų šaltinis:" msgstr "Duomenų šaltinis:"
#: bookwyrm/templates/import/import.html:39 #: bookwyrm/templates/import/import.html:42
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account." msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Galite atsisiųsti savo „Goodreads“ duomenis iš <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Importavimo ir eksportavimo puslapio</a>, esančio jūsų „Goodreads“ paskyroje." msgstr "Galite atsisiųsti savo „Goodreads“ duomenis iš <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Importavimo ir eksportavimo puslapio</a>, esančio jūsų „Goodreads“ paskyroje."
#: bookwyrm/templates/import/import.html:44 #: bookwyrm/templates/import/import.html:47
msgid "Data file:" msgid "Data file:"
msgstr "Duomenų failas:" msgstr "Duomenų failas:"
#: bookwyrm/templates/import/import.html:52 #: bookwyrm/templates/import/import.html:55
msgid "Include reviews" msgid "Include reviews"
msgstr "Įtraukti atsiliepimus" msgstr "Įtraukti atsiliepimus"
#: bookwyrm/templates/import/import.html:57 #: bookwyrm/templates/import/import.html:60
msgid "Privacy setting for imported reviews:" msgid "Privacy setting for imported reviews:"
msgstr "Privatumo nustatymai svarbiems atsiliepimams:" msgstr "Privatumo nustatymai svarbiems atsiliepimams:"
#: bookwyrm/templates/import/import.html:63 #: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/preferences/layout.html:31 #: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76 #: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import" msgid "Import"
msgstr "Importuoti" msgstr "Importuoti"
#: bookwyrm/templates/import/import.html:68 #: bookwyrm/templates/import/import.html:71
msgid "Recent Imports" msgid "Recent Imports"
msgstr "Pastaruoju metu importuota" msgstr "Pastaruoju metu importuota"
#: bookwyrm/templates/import/import.html:70 #: bookwyrm/templates/import/import.html:73
msgid "No recent imports" msgid "No recent imports"
msgstr "Pastaruoju metu neimportuota" msgstr "Pastaruoju metu neimportuota"
@ -5164,7 +5164,7 @@ msgstr "Failas viršijo maksimalų dydį: 10 MB"
msgid "%(title)s: %(subtitle)s" msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:67 #: bookwyrm/views/imports/import_data.py:70
msgid "Not a valid csv file" msgid "Not a valid csv file"
msgstr "Netinkamas csv failas" msgstr "Netinkamas csv failas"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n" "POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-04-08 21:50\n" "PO-Revision-Date: 2022-05-24 01:06\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Norwegian\n" "Language-Team: Norwegian\n"
"Language: no\n" "Language: no\n"
@ -121,25 +121,25 @@ msgstr ""
msgid "Automatically generated report" msgid "Automatically generated report"
msgstr "" msgstr ""
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72 #: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200 #: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19 #: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending" msgid "Pending"
msgstr "Avventer" msgstr "Avventer"
#: bookwyrm/models/base_model.py:18 #: bookwyrm/models/base_model.py:19
msgid "Self deletion" msgid "Self deletion"
msgstr "Selvsletting" msgstr "Selvsletting"
#: bookwyrm/models/base_model.py:19 #: bookwyrm/models/base_model.py:20
msgid "Moderator suspension" msgid "Moderator suspension"
msgstr "Moderatør suspensjon" msgstr "Moderatør suspensjon"
#: bookwyrm/models/base_model.py:20 #: bookwyrm/models/base_model.py:21
msgid "Moderator deletion" msgid "Moderator deletion"
msgstr "Moderatør sletting" msgstr "Moderatør sletting"
#: bookwyrm/models/base_model.py:21 #: bookwyrm/models/base_model.py:22
msgid "Domain block" msgid "Domain block"
msgstr "Domeneblokkering" msgstr "Domeneblokkering"
@ -734,7 +734,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115 #: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202 #: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:127 #: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/file_links/add_link_modal.html:60 #: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82 #: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32 #: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Lagre"
#: bookwyrm/templates/author/sync_modal.html:23 #: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203 #: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33 #: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:129 #: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:132 #: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/file_links/add_link_modal.html:59 #: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25 #: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23 #: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Laster inn data kobler til <strong>%(source_name)s</strong> og finner metadata om denne forfatteren som enda ikke finnes her. Eksisterende metadata vil ikke bli overskrevet." msgstr "Laster inn data kobler til <strong>%(source_name)s</strong> og finner metadata om denne forfatteren som enda ikke finnes her. Eksisterende metadata vil ikke bli overskrevet."
#: bookwyrm/templates/author/sync_modal.html:24 #: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:114 #: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/sync_modal.html:24 #: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "Rediger \"%(book_title)s"
msgid "Add Book" msgid "Add Book"
msgstr "Legg til bok" msgstr "Legg til bok"
#: bookwyrm/templates/book/edit/edit_book.html:54 #: bookwyrm/templates/book/edit/edit_book.html:62
msgid "Confirm Book Info" msgid "Confirm Book Info"
msgstr "Bekreft bokinformasjon" msgstr "Bekreft bokinformasjon"
#: bookwyrm/templates/book/edit/edit_book.html:62 #: bookwyrm/templates/book/edit/edit_book.html:70
#, python-format #, python-format
msgid "Is \"%(name)s\" one of these authors?" msgid "Is \"%(name)s\" one of these authors?"
msgstr "Er \"%(name)s\" en av disse forfatterne?" msgstr "Er \"%(name)s\" en av disse forfatterne?"
#: bookwyrm/templates/book/edit/edit_book.html:73 #: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Author of " msgid "Author of "
msgstr "Forfatter av " msgstr "Forfatter av "
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Find more information at isni.org" msgid "Find more information at isni.org"
msgstr "Finn mer informasjon på isni.org" msgstr "Finn mer informasjon på isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:85 #: bookwyrm/templates/book/edit/edit_book.html:93
msgid "This is a new author" msgid "This is a new author"
msgstr "Dette er en ny forfatter" msgstr "Dette er en ny forfatter"
#: bookwyrm/templates/book/edit/edit_book.html:92 #: bookwyrm/templates/book/edit/edit_book.html:100
#, python-format #, python-format
msgid "Creating a new author: %(name)s" msgid "Creating a new author: %(name)s"
msgstr "Oppretter en ny forfatter: %(name)s" msgstr "Oppretter en ny forfatter: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:99 #: bookwyrm/templates/book/edit/edit_book.html:107
msgid "Is this an edition of an existing work?" msgid "Is this an edition of an existing work?"
msgstr "Er dette en utgave av et eksisterende verk?" msgstr "Er dette en utgave av et eksisterende verk?"
#: bookwyrm/templates/book/edit/edit_book.html:107 #: bookwyrm/templates/book/edit/edit_book.html:115
msgid "This is a new work" msgid "This is a new work"
msgstr "Dette er et nytt verk" msgstr "Dette er et nytt verk"
#: bookwyrm/templates/book/edit/edit_book.html:116 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
msgid "Back" msgid "Back"
msgstr "Tilbake" msgstr "Tilbake"
@ -1970,33 +1970,33 @@ msgstr "Importer bøker"
msgid "Data source:" msgid "Data source:"
msgstr "Datakilde:" msgstr "Datakilde:"
#: bookwyrm/templates/import/import.html:39 #: bookwyrm/templates/import/import.html:42
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account." msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Du kan laste ned Goodread-dataene dine fra <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export sida</a> på Goodread-kontoen din." msgstr "Du kan laste ned Goodread-dataene dine fra <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export sida</a> på Goodread-kontoen din."
#: bookwyrm/templates/import/import.html:44 #: bookwyrm/templates/import/import.html:47
msgid "Data file:" msgid "Data file:"
msgstr "Datafil:" msgstr "Datafil:"
#: bookwyrm/templates/import/import.html:52 #: bookwyrm/templates/import/import.html:55
msgid "Include reviews" msgid "Include reviews"
msgstr "Inkluder anmeldelser" msgstr "Inkluder anmeldelser"
#: bookwyrm/templates/import/import.html:57 #: bookwyrm/templates/import/import.html:60
msgid "Privacy setting for imported reviews:" msgid "Privacy setting for imported reviews:"
msgstr "Personverninnstilling for importerte anmeldelser:" msgstr "Personverninnstilling for importerte anmeldelser:"
#: bookwyrm/templates/import/import.html:63 #: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/preferences/layout.html:31 #: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76 #: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import" msgid "Import"
msgstr "Importér" msgstr "Importér"
#: bookwyrm/templates/import/import.html:68 #: bookwyrm/templates/import/import.html:71
msgid "Recent Imports" msgid "Recent Imports"
msgstr "Nylig importer" msgstr "Nylig importer"
#: bookwyrm/templates/import/import.html:70 #: bookwyrm/templates/import/import.html:73
msgid "No recent imports" msgid "No recent imports"
msgstr "Ingen nylige importer" msgstr "Ingen nylige importer"
@ -5112,7 +5112,7 @@ msgstr "Filen overskrider maksimal størrelse: 10MB"
msgid "%(title)s: %(subtitle)s" msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:67 #: bookwyrm/views/imports/import_data.py:70
msgid "Not a valid csv file" msgid "Not a valid csv file"
msgstr "Ikke en gyldig csv-fil" msgstr "Ikke en gyldig csv-fil"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n" "POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-04-08 23:12\n" "PO-Revision-Date: 2022-05-24 01:06\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Portuguese, Brazilian\n" "Language-Team: Portuguese, Brazilian\n"
"Language: pt\n" "Language: pt\n"
@ -121,25 +121,25 @@ msgstr "Perigo"
msgid "Automatically generated report" msgid "Automatically generated report"
msgstr "Relatório gerado automaticamente" msgstr "Relatório gerado automaticamente"
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72 #: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200 #: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19 #: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending" msgid "Pending"
msgstr "Pendente" msgstr "Pendente"
#: bookwyrm/models/base_model.py:18 #: bookwyrm/models/base_model.py:19
msgid "Self deletion" msgid "Self deletion"
msgstr "Autoexclusão" msgstr "Autoexclusão"
#: bookwyrm/models/base_model.py:19 #: bookwyrm/models/base_model.py:20
msgid "Moderator suspension" msgid "Moderator suspension"
msgstr "Suspensão de moderador" msgstr "Suspensão de moderador"
#: bookwyrm/models/base_model.py:20 #: bookwyrm/models/base_model.py:21
msgid "Moderator deletion" msgid "Moderator deletion"
msgstr "Exclusão de moderador" msgstr "Exclusão de moderador"
#: bookwyrm/models/base_model.py:21 #: bookwyrm/models/base_model.py:22
msgid "Domain block" msgid "Domain block"
msgstr "Bloqueio de domínio" msgstr "Bloqueio de domínio"
@ -734,7 +734,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115 #: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202 #: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:127 #: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/file_links/add_link_modal.html:60 #: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82 #: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32 #: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Salvar"
#: bookwyrm/templates/author/sync_modal.html:23 #: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203 #: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33 #: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:129 #: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:132 #: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/file_links/add_link_modal.html:59 #: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25 #: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23 #: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Para carregar informações nos conectaremos a <strong>%(source_name)s</strong> e buscaremos metadados que ainda não temos sobre este/a autor/a. Metadados já existentes não serão substituídos." msgstr "Para carregar informações nos conectaremos a <strong>%(source_name)s</strong> e buscaremos metadados que ainda não temos sobre este/a autor/a. Metadados já existentes não serão substituídos."
#: bookwyrm/templates/author/sync_modal.html:24 #: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:114 #: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/sync_modal.html:24 #: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "Editar \"%(book_title)s\""
msgid "Add Book" msgid "Add Book"
msgstr "Adicionar livro" msgstr "Adicionar livro"
#: bookwyrm/templates/book/edit/edit_book.html:54 #: bookwyrm/templates/book/edit/edit_book.html:62
msgid "Confirm Book Info" msgid "Confirm Book Info"
msgstr "Confirmar informações do livro" msgstr "Confirmar informações do livro"
#: bookwyrm/templates/book/edit/edit_book.html:62 #: bookwyrm/templates/book/edit/edit_book.html:70
#, python-format #, python-format
msgid "Is \"%(name)s\" one of these authors?" msgid "Is \"%(name)s\" one of these authors?"
msgstr "\"%(name)s\" é uma das pessoas citadas abaixo?" msgstr "\"%(name)s\" é uma das pessoas citadas abaixo?"
#: bookwyrm/templates/book/edit/edit_book.html:73 #: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Author of " msgid "Author of "
msgstr "Autor/a de " msgstr "Autor/a de "
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Find more information at isni.org" msgid "Find more information at isni.org"
msgstr "Conheça mais em isni.org" msgstr "Conheça mais em isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:85 #: bookwyrm/templates/book/edit/edit_book.html:93
msgid "This is a new author" msgid "This is a new author"
msgstr "É um/a novo/a autor/a" msgstr "É um/a novo/a autor/a"
#: bookwyrm/templates/book/edit/edit_book.html:92 #: bookwyrm/templates/book/edit/edit_book.html:100
#, python-format #, python-format
msgid "Creating a new author: %(name)s" msgid "Creating a new author: %(name)s"
msgstr "Criando um/a novo/a autor/a: %(name)s" msgstr "Criando um/a novo/a autor/a: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:99 #: bookwyrm/templates/book/edit/edit_book.html:107
msgid "Is this an edition of an existing work?" msgid "Is this an edition of an existing work?"
msgstr "É uma edição de uma obra já registrada?" msgstr "É uma edição de uma obra já registrada?"
#: bookwyrm/templates/book/edit/edit_book.html:107 #: bookwyrm/templates/book/edit/edit_book.html:115
msgid "This is a new work" msgid "This is a new work"
msgstr "É uma nova obra" msgstr "É uma nova obra"
#: bookwyrm/templates/book/edit/edit_book.html:116 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
msgid "Back" msgid "Back"
msgstr "Voltar" msgstr "Voltar"
@ -1970,33 +1970,33 @@ msgstr "Importar livros"
msgid "Data source:" msgid "Data source:"
msgstr "Fonte dos dados:" msgstr "Fonte dos dados:"
#: bookwyrm/templates/import/import.html:39 #: bookwyrm/templates/import/import.html:42
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account." msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Você pode baixar seus dados do Goodreads na <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">página de Importar/Exportar</a> da sua conta." msgstr "Você pode baixar seus dados do Goodreads na <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">página de Importar/Exportar</a> da sua conta."
#: bookwyrm/templates/import/import.html:44 #: bookwyrm/templates/import/import.html:47
msgid "Data file:" msgid "Data file:"
msgstr "Arquivo de dados:" msgstr "Arquivo de dados:"
#: bookwyrm/templates/import/import.html:52 #: bookwyrm/templates/import/import.html:55
msgid "Include reviews" msgid "Include reviews"
msgstr "Incluir resenhas" msgstr "Incluir resenhas"
#: bookwyrm/templates/import/import.html:57 #: bookwyrm/templates/import/import.html:60
msgid "Privacy setting for imported reviews:" msgid "Privacy setting for imported reviews:"
msgstr "Configurações de privacidade para resenhas importadas:" msgstr "Configurações de privacidade para resenhas importadas:"
#: bookwyrm/templates/import/import.html:63 #: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/preferences/layout.html:31 #: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76 #: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import" msgid "Import"
msgstr "Importar" msgstr "Importar"
#: bookwyrm/templates/import/import.html:68 #: bookwyrm/templates/import/import.html:71
msgid "Recent Imports" msgid "Recent Imports"
msgstr "Importações recentes" msgstr "Importações recentes"
#: bookwyrm/templates/import/import.html:70 #: bookwyrm/templates/import/import.html:73
msgid "No recent imports" msgid "No recent imports"
msgstr "Nenhuma importação recente" msgstr "Nenhuma importação recente"
@ -5114,7 +5114,7 @@ msgstr "Arquivo excede o tamanho máximo: 10MB"
msgid "%(title)s: %(subtitle)s" msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:67 #: bookwyrm/views/imports/import_data.py:70
msgid "Not a valid csv file" msgid "Not a valid csv file"
msgstr "Não é um arquivo csv válido" msgstr "Não é um arquivo csv válido"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n" "POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-05-06 23:27\n" "PO-Revision-Date: 2022-05-24 01:06\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Portuguese\n" "Language-Team: Portuguese\n"
"Language: pt\n" "Language: pt\n"
@ -121,25 +121,25 @@ msgstr "Perigo"
msgid "Automatically generated report" msgid "Automatically generated report"
msgstr "Relatório gerado automaticamente" msgstr "Relatório gerado automaticamente"
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72 #: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200 #: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19 #: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending" msgid "Pending"
msgstr "Pendente" msgstr "Pendente"
#: bookwyrm/models/base_model.py:18 #: bookwyrm/models/base_model.py:19
msgid "Self deletion" msgid "Self deletion"
msgstr "Auto-exclusão" msgstr "Auto-exclusão"
#: bookwyrm/models/base_model.py:19 #: bookwyrm/models/base_model.py:20
msgid "Moderator suspension" msgid "Moderator suspension"
msgstr "Suspensão do moderador" msgstr "Suspensão do moderador"
#: bookwyrm/models/base_model.py:20 #: bookwyrm/models/base_model.py:21
msgid "Moderator deletion" msgid "Moderator deletion"
msgstr "Exclusão do moderador" msgstr "Exclusão do moderador"
#: bookwyrm/models/base_model.py:21 #: bookwyrm/models/base_model.py:22
msgid "Domain block" msgid "Domain block"
msgstr "Bloqueio de domínio" msgstr "Bloqueio de domínio"
@ -734,7 +734,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115 #: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202 #: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:127 #: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/file_links/add_link_modal.html:60 #: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82 #: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32 #: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Salvar"
#: bookwyrm/templates/author/sync_modal.html:23 #: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203 #: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33 #: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:129 #: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:132 #: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/file_links/add_link_modal.html:59 #: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25 #: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23 #: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Carregar os dados irá conectar a <strong>%(source_name)s</strong> e verificar se há metadados sobre este autor que não estão aqui presentes. Os metadados existentes não serão substituídos." msgstr "Carregar os dados irá conectar a <strong>%(source_name)s</strong> e verificar se há metadados sobre este autor que não estão aqui presentes. Os metadados existentes não serão substituídos."
#: bookwyrm/templates/author/sync_modal.html:24 #: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:114 #: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/sync_modal.html:24 #: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "Editar \"%(book_title)s\""
msgid "Add Book" msgid "Add Book"
msgstr "Adicionar um Livro" msgstr "Adicionar um Livro"
#: bookwyrm/templates/book/edit/edit_book.html:54 #: bookwyrm/templates/book/edit/edit_book.html:62
msgid "Confirm Book Info" msgid "Confirm Book Info"
msgstr "Confirmar informações do livro" msgstr "Confirmar informações do livro"
#: bookwyrm/templates/book/edit/edit_book.html:62 #: bookwyrm/templates/book/edit/edit_book.html:70
#, python-format #, python-format
msgid "Is \"%(name)s\" one of these authors?" msgid "Is \"%(name)s\" one of these authors?"
msgstr "\"%(name)s\" é um destes autores?" msgstr "\"%(name)s\" é um destes autores?"
#: bookwyrm/templates/book/edit/edit_book.html:73 #: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Author of " msgid "Author of "
msgstr "Autor de " msgstr "Autor de "
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Find more information at isni.org" msgid "Find more information at isni.org"
msgstr "Podes encontrar mais informações em isni.org" msgstr "Podes encontrar mais informações em isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:85 #: bookwyrm/templates/book/edit/edit_book.html:93
msgid "This is a new author" msgid "This is a new author"
msgstr "Este é um novo autor" msgstr "Este é um novo autor"
#: bookwyrm/templates/book/edit/edit_book.html:92 #: bookwyrm/templates/book/edit/edit_book.html:100
#, python-format #, python-format
msgid "Creating a new author: %(name)s" msgid "Creating a new author: %(name)s"
msgstr "Criar um novo autor: %(name)s" msgstr "Criar um novo autor: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:99 #: bookwyrm/templates/book/edit/edit_book.html:107
msgid "Is this an edition of an existing work?" msgid "Is this an edition of an existing work?"
msgstr "Esta é uma edição de um trabalho existente?" msgstr "Esta é uma edição de um trabalho existente?"
#: bookwyrm/templates/book/edit/edit_book.html:107 #: bookwyrm/templates/book/edit/edit_book.html:115
msgid "This is a new work" msgid "This is a new work"
msgstr "Este é um novo trabalho" msgstr "Este é um novo trabalho"
#: bookwyrm/templates/book/edit/edit_book.html:116 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
msgid "Back" msgid "Back"
msgstr "Voltar" msgstr "Voltar"
@ -1970,33 +1970,33 @@ msgstr "Importar livros"
msgid "Data source:" msgid "Data source:"
msgstr "Origem dos dados:" msgstr "Origem dos dados:"
#: bookwyrm/templates/import/import.html:39 #: bookwyrm/templates/import/import.html:42
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account." msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Podes fazer download dos teus dados do Goodreads na <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Importar/Exportar página</a> da tua conta do Goodreads." msgstr "Podes fazer download dos teus dados do Goodreads na <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Importar/Exportar página</a> da tua conta do Goodreads."
#: bookwyrm/templates/import/import.html:44 #: bookwyrm/templates/import/import.html:47
msgid "Data file:" msgid "Data file:"
msgstr "Ficheiro de dados:" msgstr "Ficheiro de dados:"
#: bookwyrm/templates/import/import.html:52 #: bookwyrm/templates/import/import.html:55
msgid "Include reviews" msgid "Include reviews"
msgstr "Incluir criticas" msgstr "Incluir criticas"
#: bookwyrm/templates/import/import.html:57 #: bookwyrm/templates/import/import.html:60
msgid "Privacy setting for imported reviews:" msgid "Privacy setting for imported reviews:"
msgstr "Configuração de privacidade para criticas importadas:" msgstr "Configuração de privacidade para criticas importadas:"
#: bookwyrm/templates/import/import.html:63 #: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/preferences/layout.html:31 #: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76 #: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import" msgid "Import"
msgstr "Importar" msgstr "Importar"
#: bookwyrm/templates/import/import.html:68 #: bookwyrm/templates/import/import.html:71
msgid "Recent Imports" msgid "Recent Imports"
msgstr "Importações recentes" msgstr "Importações recentes"
#: bookwyrm/templates/import/import.html:70 #: bookwyrm/templates/import/import.html:73
msgid "No recent imports" msgid "No recent imports"
msgstr "Nenhuma importação recente" msgstr "Nenhuma importação recente"
@ -5114,7 +5114,7 @@ msgstr "Ficheiro excede o tamanho máximo: 10MB"
msgid "%(title)s: %(subtitle)s" msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:67 #: bookwyrm/views/imports/import_data.py:70
msgid "Not a valid csv file" msgid "Not a valid csv file"
msgstr "Não é um ficheiro csv válido" msgstr "Não é um ficheiro csv válido"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n" "POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-05-16 21:13\n" "PO-Revision-Date: 2022-05-24 01:06\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Romanian\n" "Language-Team: Romanian\n"
"Language: ro\n" "Language: ro\n"
@ -121,25 +121,25 @@ msgstr "Pericol"
msgid "Automatically generated report" msgid "Automatically generated report"
msgstr "Raport generat automat" msgstr "Raport generat automat"
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72 #: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200 #: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19 #: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending" msgid "Pending"
msgstr "În așteptare" msgstr "În așteptare"
#: bookwyrm/models/base_model.py:18 #: bookwyrm/models/base_model.py:19
msgid "Self deletion" msgid "Self deletion"
msgstr "Ștergere automată" msgstr "Ștergere automată"
#: bookwyrm/models/base_model.py:19 #: bookwyrm/models/base_model.py:20
msgid "Moderator suspension" msgid "Moderator suspension"
msgstr "Suspendat de moderator" msgstr "Suspendat de moderator"
#: bookwyrm/models/base_model.py:20 #: bookwyrm/models/base_model.py:21
msgid "Moderator deletion" msgid "Moderator deletion"
msgstr "Șters de moderator" msgstr "Șters de moderator"
#: bookwyrm/models/base_model.py:21 #: bookwyrm/models/base_model.py:22
msgid "Domain block" msgid "Domain block"
msgstr "Blocat de domeniu" msgstr "Blocat de domeniu"
@ -738,7 +738,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115 #: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202 #: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:127 #: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/file_links/add_link_modal.html:60 #: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82 #: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32 #: bookwyrm/templates/groups/form.html:32
@ -761,8 +761,8 @@ msgstr "Salvați"
#: bookwyrm/templates/author/sync_modal.html:23 #: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203 #: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33 #: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:129 #: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:132 #: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/file_links/add_link_modal.html:59 #: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25 #: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23 #: bookwyrm/templates/book/sync_modal.html:23
@ -784,7 +784,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Încărcatul de date se va conecta la <strong>%(source_name)s</strong> și verifica orice metadate despre autor care nu sunt prezente aici. Metadatele existente nu vor fi suprascrise." msgstr "Încărcatul de date se va conecta la <strong>%(source_name)s</strong> și verifica orice metadate despre autor care nu sunt prezente aici. Metadatele existente nu vor fi suprascrise."
#: bookwyrm/templates/author/sync_modal.html:24 #: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:114 #: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/sync_modal.html:24 #: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
@ -955,42 +955,42 @@ msgstr "Editați „%(book_title)s”"
msgid "Add Book" msgid "Add Book"
msgstr "Adăugați carte" msgstr "Adăugați carte"
#: bookwyrm/templates/book/edit/edit_book.html:54 #: bookwyrm/templates/book/edit/edit_book.html:62
msgid "Confirm Book Info" msgid "Confirm Book Info"
msgstr "Confirmați informațiile cărții" msgstr "Confirmați informațiile cărții"
#: bookwyrm/templates/book/edit/edit_book.html:62 #: bookwyrm/templates/book/edit/edit_book.html:70
#, python-format #, python-format
msgid "Is \"%(name)s\" one of these authors?" msgid "Is \"%(name)s\" one of these authors?"
msgstr "Este „%(name)s” unul dintre acești autori?" msgstr "Este „%(name)s” unul dintre acești autori?"
#: bookwyrm/templates/book/edit/edit_book.html:73 #: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Author of " msgid "Author of "
msgstr "Autor al " msgstr "Autor al "
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Find more information at isni.org" msgid "Find more information at isni.org"
msgstr "Aflați mai multe la isni.org" msgstr "Aflați mai multe la isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:85 #: bookwyrm/templates/book/edit/edit_book.html:93
msgid "This is a new author" msgid "This is a new author"
msgstr "Acesta este un autor nou" msgstr "Acesta este un autor nou"
#: bookwyrm/templates/book/edit/edit_book.html:92 #: bookwyrm/templates/book/edit/edit_book.html:100
#, python-format #, python-format
msgid "Creating a new author: %(name)s" msgid "Creating a new author: %(name)s"
msgstr "Creați un autor nou: %(name)s" msgstr "Creați un autor nou: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:99 #: bookwyrm/templates/book/edit/edit_book.html:107
msgid "Is this an edition of an existing work?" msgid "Is this an edition of an existing work?"
msgstr "Este această o ediție a unei opere existente?" msgstr "Este această o ediție a unei opere existente?"
#: bookwyrm/templates/book/edit/edit_book.html:107 #: bookwyrm/templates/book/edit/edit_book.html:115
msgid "This is a new work" msgid "This is a new work"
msgstr "Aceasta este o operă nouă" msgstr "Aceasta este o operă nouă"
#: bookwyrm/templates/book/edit/edit_book.html:116 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
msgid "Back" msgid "Back"
msgstr "Înapoi" msgstr "Înapoi"
@ -1980,33 +1980,33 @@ msgstr "Importați cărți"
msgid "Data source:" msgid "Data source:"
msgstr "Sursa de date:" msgstr "Sursa de date:"
#: bookwyrm/templates/import/import.html:39 #: bookwyrm/templates/import/import.html:42
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account." msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Puteți descărca datele dvs. GoodReads de pe <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">pagina Import/Export</a> a contului dvs. GoodReads." msgstr "Puteți descărca datele dvs. GoodReads de pe <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">pagina Import/Export</a> a contului dvs. GoodReads."
#: bookwyrm/templates/import/import.html:44 #: bookwyrm/templates/import/import.html:47
msgid "Data file:" msgid "Data file:"
msgstr "Fișierul de date:" msgstr "Fișierul de date:"
#: bookwyrm/templates/import/import.html:52 #: bookwyrm/templates/import/import.html:55
msgid "Include reviews" msgid "Include reviews"
msgstr "Includeți recenzii" msgstr "Includeți recenzii"
#: bookwyrm/templates/import/import.html:57 #: bookwyrm/templates/import/import.html:60
msgid "Privacy setting for imported reviews:" msgid "Privacy setting for imported reviews:"
msgstr "Setare de confidențialitate pentru recenziile importate:" msgstr "Setare de confidențialitate pentru recenziile importate:"
#: bookwyrm/templates/import/import.html:63 #: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/preferences/layout.html:31 #: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76 #: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import" msgid "Import"
msgstr "Importați" msgstr "Importați"
#: bookwyrm/templates/import/import.html:68 #: bookwyrm/templates/import/import.html:71
msgid "Recent Imports" msgid "Recent Imports"
msgstr "Importuri recente" msgstr "Importuri recente"
#: bookwyrm/templates/import/import.html:70 #: bookwyrm/templates/import/import.html:73
msgid "No recent imports" msgid "No recent imports"
msgstr "Niciun import recent" msgstr "Niciun import recent"
@ -5139,7 +5139,7 @@ msgstr "Fișierul depășește dimensiuneaz maximă: 10Mo"
msgid "%(title)s: %(subtitle)s" msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:67 #: bookwyrm/views/imports/import_data.py:70
msgid "Not a valid csv file" msgid "Not a valid csv file"
msgstr "Nu este un fișier csv valid" msgstr "Nu este un fișier csv valid"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n" "POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-04-08 21:50\n" "PO-Revision-Date: 2022-05-24 01:06\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Swedish\n" "Language-Team: Swedish\n"
"Language: sv\n" "Language: sv\n"
@ -121,25 +121,25 @@ msgstr "Observera"
msgid "Automatically generated report" msgid "Automatically generated report"
msgstr "Automatiskt genererad rapport" msgstr "Automatiskt genererad rapport"
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72 #: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200 #: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19 #: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending" msgid "Pending"
msgstr "Pågående" msgstr "Pågående"
#: bookwyrm/models/base_model.py:18 #: bookwyrm/models/base_model.py:19
msgid "Self deletion" msgid "Self deletion"
msgstr "Självborttagning" msgstr "Självborttagning"
#: bookwyrm/models/base_model.py:19 #: bookwyrm/models/base_model.py:20
msgid "Moderator suspension" msgid "Moderator suspension"
msgstr "Moderator-avstängning" msgstr "Moderator-avstängning"
#: bookwyrm/models/base_model.py:20 #: bookwyrm/models/base_model.py:21
msgid "Moderator deletion" msgid "Moderator deletion"
msgstr "Borttagning av moderator" msgstr "Borttagning av moderator"
#: bookwyrm/models/base_model.py:21 #: bookwyrm/models/base_model.py:22
msgid "Domain block" msgid "Domain block"
msgstr "Domänblockering" msgstr "Domänblockering"
@ -734,7 +734,7 @@ msgstr "ISNI:"
#: bookwyrm/templates/author/edit_author.html:115 #: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202 #: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:127 #: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/file_links/add_link_modal.html:60 #: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82 #: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32 #: bookwyrm/templates/groups/form.html:32
@ -757,8 +757,8 @@ msgstr "Spara"
#: bookwyrm/templates/author/sync_modal.html:23 #: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203 #: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33 #: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:129 #: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:132 #: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/file_links/add_link_modal.html:59 #: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25 #: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23 #: bookwyrm/templates/book/sync_modal.html:23
@ -780,7 +780,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "Att ladda in data kommer att ansluta till <strong>%(source_name)s</strong> och kontrollera eventuella metadata om den här författaren som inte finns här. Befintliga metadata kommer inte att skrivas över." msgstr "Att ladda in data kommer att ansluta till <strong>%(source_name)s</strong> och kontrollera eventuella metadata om den här författaren som inte finns här. Befintliga metadata kommer inte att skrivas över."
#: bookwyrm/templates/author/sync_modal.html:24 #: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:114 #: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/sync_modal.html:24 #: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
@ -949,42 +949,42 @@ msgstr "Redigera \"%(book_title)s\""
msgid "Add Book" msgid "Add Book"
msgstr "Lägg till bok" msgstr "Lägg till bok"
#: bookwyrm/templates/book/edit/edit_book.html:54 #: bookwyrm/templates/book/edit/edit_book.html:62
msgid "Confirm Book Info" msgid "Confirm Book Info"
msgstr "Bekräfta bokens info" msgstr "Bekräfta bokens info"
#: bookwyrm/templates/book/edit/edit_book.html:62 #: bookwyrm/templates/book/edit/edit_book.html:70
#, python-format #, python-format
msgid "Is \"%(name)s\" one of these authors?" msgid "Is \"%(name)s\" one of these authors?"
msgstr "Är \"%(name)s\" en utav dessa författare?" msgstr "Är \"%(name)s\" en utav dessa författare?"
#: bookwyrm/templates/book/edit/edit_book.html:73 #: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Author of " msgid "Author of "
msgstr "Författare av " msgstr "Författare av "
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Find more information at isni.org" msgid "Find more information at isni.org"
msgstr "Hitta mer information på isni.org" msgstr "Hitta mer information på isni.org"
#: bookwyrm/templates/book/edit/edit_book.html:85 #: bookwyrm/templates/book/edit/edit_book.html:93
msgid "This is a new author" msgid "This is a new author"
msgstr "Det här är en ny författare" msgstr "Det här är en ny författare"
#: bookwyrm/templates/book/edit/edit_book.html:92 #: bookwyrm/templates/book/edit/edit_book.html:100
#, python-format #, python-format
msgid "Creating a new author: %(name)s" msgid "Creating a new author: %(name)s"
msgstr "Skapar en ny författare: %(name)s" msgstr "Skapar en ny författare: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:99 #: bookwyrm/templates/book/edit/edit_book.html:107
msgid "Is this an edition of an existing work?" msgid "Is this an edition of an existing work?"
msgstr "Är det här en version av ett redan befintligt verk?" msgstr "Är det här en version av ett redan befintligt verk?"
#: bookwyrm/templates/book/edit/edit_book.html:107 #: bookwyrm/templates/book/edit/edit_book.html:115
msgid "This is a new work" msgid "This is a new work"
msgstr "Det här är ett nytt verk" msgstr "Det här är ett nytt verk"
#: bookwyrm/templates/book/edit/edit_book.html:116 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
msgid "Back" msgid "Back"
msgstr "Bakåt" msgstr "Bakåt"
@ -1970,33 +1970,33 @@ msgstr "Importera böcker"
msgid "Data source:" msgid "Data source:"
msgstr "Datakälla:" msgstr "Datakälla:"
#: bookwyrm/templates/import/import.html:39 #: bookwyrm/templates/import/import.html:42
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account." msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "Du kan ladda ner Goodreads-data från <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export-sidan</a> på ditt Goodreads-konto." msgstr "Du kan ladda ner Goodreads-data från <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export-sidan</a> på ditt Goodreads-konto."
#: bookwyrm/templates/import/import.html:44 #: bookwyrm/templates/import/import.html:47
msgid "Data file:" msgid "Data file:"
msgstr "Datafil:" msgstr "Datafil:"
#: bookwyrm/templates/import/import.html:52 #: bookwyrm/templates/import/import.html:55
msgid "Include reviews" msgid "Include reviews"
msgstr "Inkludera recensioner" msgstr "Inkludera recensioner"
#: bookwyrm/templates/import/import.html:57 #: bookwyrm/templates/import/import.html:60
msgid "Privacy setting for imported reviews:" msgid "Privacy setting for imported reviews:"
msgstr "Integritetsinställning för importerade recensioner:" msgstr "Integritetsinställning för importerade recensioner:"
#: bookwyrm/templates/import/import.html:63 #: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/preferences/layout.html:31 #: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76 #: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import" msgid "Import"
msgstr "Importera" msgstr "Importera"
#: bookwyrm/templates/import/import.html:68 #: bookwyrm/templates/import/import.html:71
msgid "Recent Imports" msgid "Recent Imports"
msgstr "Senaste importer" msgstr "Senaste importer"
#: bookwyrm/templates/import/import.html:70 #: bookwyrm/templates/import/import.html:73
msgid "No recent imports" msgid "No recent imports"
msgstr "Ingen importering nyligen" msgstr "Ingen importering nyligen"
@ -5114,7 +5114,7 @@ msgstr "Filen överskrider maximal storlek: 10 MB"
msgid "%(title)s: %(subtitle)s" msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s: %(subtitle)s" msgstr "%(title)s: %(subtitle)s"
#: bookwyrm/views/imports/import_data.py:67 #: bookwyrm/views/imports/import_data.py:70
msgid "Not a valid csv file" msgid "Not a valid csv file"
msgstr "Inte en giltig csv-fil" msgstr "Inte en giltig csv-fil"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n" "POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-04-29 14:20\n" "PO-Revision-Date: 2022-05-24 01:06\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Chinese Simplified\n" "Language-Team: Chinese Simplified\n"
"Language: zh\n" "Language: zh\n"
@ -121,25 +121,25 @@ msgstr "危险"
msgid "Automatically generated report" msgid "Automatically generated report"
msgstr "自动生成的举报" msgstr "自动生成的举报"
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72 #: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200 #: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19 #: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending" msgid "Pending"
msgstr "待处理" msgstr "待处理"
#: bookwyrm/models/base_model.py:18 #: bookwyrm/models/base_model.py:19
msgid "Self deletion" msgid "Self deletion"
msgstr "自我删除" msgstr "自我删除"
#: bookwyrm/models/base_model.py:19 #: bookwyrm/models/base_model.py:20
msgid "Moderator suspension" msgid "Moderator suspension"
msgstr "仲裁员停用" msgstr "仲裁员停用"
#: bookwyrm/models/base_model.py:20 #: bookwyrm/models/base_model.py:21
msgid "Moderator deletion" msgid "Moderator deletion"
msgstr "仲裁员删除" msgstr "仲裁员删除"
#: bookwyrm/models/base_model.py:21 #: bookwyrm/models/base_model.py:22
msgid "Domain block" msgid "Domain block"
msgstr "域名屏蔽" msgstr "域名屏蔽"
@ -730,7 +730,7 @@ msgstr "ISNI"
#: bookwyrm/templates/author/edit_author.html:115 #: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202 #: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:127 #: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/file_links/add_link_modal.html:60 #: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82 #: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32 #: bookwyrm/templates/groups/form.html:32
@ -753,8 +753,8 @@ msgstr "保存"
#: bookwyrm/templates/author/sync_modal.html:23 #: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203 #: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33 #: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:129 #: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:132 #: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/file_links/add_link_modal.html:59 #: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25 #: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23 #: bookwyrm/templates/book/sync_modal.html:23
@ -776,7 +776,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "加载数据会连接到 <strong>%(source_name)s</strong> 并检查这里还没有记录的与作者相关的元数据。现存的元数据不会被覆盖。" msgstr "加载数据会连接到 <strong>%(source_name)s</strong> 并检查这里还没有记录的与作者相关的元数据。现存的元数据不会被覆盖。"
#: bookwyrm/templates/author/sync_modal.html:24 #: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:114 #: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/sync_modal.html:24 #: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
@ -943,42 +943,42 @@ msgstr "编辑《%(book_title)s》"
msgid "Add Book" msgid "Add Book"
msgstr "添加书目" msgstr "添加书目"
#: bookwyrm/templates/book/edit/edit_book.html:54 #: bookwyrm/templates/book/edit/edit_book.html:62
msgid "Confirm Book Info" msgid "Confirm Book Info"
msgstr "确认书目信息" msgstr "确认书目信息"
#: bookwyrm/templates/book/edit/edit_book.html:62 #: bookwyrm/templates/book/edit/edit_book.html:70
#, python-format #, python-format
msgid "Is \"%(name)s\" one of these authors?" msgid "Is \"%(name)s\" one of these authors?"
msgstr "“%(name)s” 是这些作者之一吗?" msgstr "“%(name)s” 是这些作者之一吗?"
#: bookwyrm/templates/book/edit/edit_book.html:73 #: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Author of " msgid "Author of "
msgstr "所著书有 " msgstr "所著书有 "
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Find more information at isni.org" msgid "Find more information at isni.org"
msgstr "在 isni.org 查找更多信息" msgstr "在 isni.org 查找更多信息"
#: bookwyrm/templates/book/edit/edit_book.html:85 #: bookwyrm/templates/book/edit/edit_book.html:93
msgid "This is a new author" msgid "This is a new author"
msgstr "这是一位新的作者" msgstr "这是一位新的作者"
#: bookwyrm/templates/book/edit/edit_book.html:92 #: bookwyrm/templates/book/edit/edit_book.html:100
#, python-format #, python-format
msgid "Creating a new author: %(name)s" msgid "Creating a new author: %(name)s"
msgstr "正在创建新的作者: %(name)s" msgstr "正在创建新的作者: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:99 #: bookwyrm/templates/book/edit/edit_book.html:107
msgid "Is this an edition of an existing work?" msgid "Is this an edition of an existing work?"
msgstr "这是已存在的作品的一个版本吗?" msgstr "这是已存在的作品的一个版本吗?"
#: bookwyrm/templates/book/edit/edit_book.html:107 #: bookwyrm/templates/book/edit/edit_book.html:115
msgid "This is a new work" msgid "This is a new work"
msgstr "这是一个新的作品。" msgstr "这是一个新的作品。"
#: bookwyrm/templates/book/edit/edit_book.html:116 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
msgid "Back" msgid "Back"
msgstr "返回" msgstr "返回"
@ -1960,33 +1960,33 @@ msgstr "导入书目"
msgid "Data source:" msgid "Data source:"
msgstr "数据来源:" msgstr "数据来源:"
#: bookwyrm/templates/import/import.html:39 #: bookwyrm/templates/import/import.html:42
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account." msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "您可以从 <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> 下载或导出您的 Goodread 数据。" msgstr "您可以从 <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> 下载或导出您的 Goodread 数据。"
#: bookwyrm/templates/import/import.html:44 #: bookwyrm/templates/import/import.html:47
msgid "Data file:" msgid "Data file:"
msgstr "数据文件:" msgstr "数据文件:"
#: bookwyrm/templates/import/import.html:52 #: bookwyrm/templates/import/import.html:55
msgid "Include reviews" msgid "Include reviews"
msgstr "纳入书评" msgstr "纳入书评"
#: bookwyrm/templates/import/import.html:57 #: bookwyrm/templates/import/import.html:60
msgid "Privacy setting for imported reviews:" msgid "Privacy setting for imported reviews:"
msgstr "导入书评的隐私设定" msgstr "导入书评的隐私设定"
#: bookwyrm/templates/import/import.html:63 #: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/preferences/layout.html:31 #: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76 #: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import" msgid "Import"
msgstr "导入" msgstr "导入"
#: bookwyrm/templates/import/import.html:68 #: bookwyrm/templates/import/import.html:71
msgid "Recent Imports" msgid "Recent Imports"
msgstr "最近的导入" msgstr "最近的导入"
#: bookwyrm/templates/import/import.html:70 #: bookwyrm/templates/import/import.html:73
msgid "No recent imports" msgid "No recent imports"
msgstr "无最近的导入" msgstr "无最近的导入"
@ -5089,7 +5089,7 @@ msgstr "文件超过了最大大小: 10MB"
msgid "%(title)s: %(subtitle)s" msgid "%(title)s: %(subtitle)s"
msgstr "%(title)s%(subtitle)s" msgstr "%(title)s%(subtitle)s"
#: bookwyrm/views/imports/import_data.py:67 #: bookwyrm/views/imports/import_data.py:70
msgid "Not a valid csv file" msgid "Not a valid csv file"
msgstr "不是有效的 csv 文件" msgstr "不是有效的 csv 文件"

Binary file not shown.

View file

@ -2,8 +2,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: bookwyrm\n" "Project-Id-Version: bookwyrm\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-08 21:00+0000\n" "POT-Creation-Date: 2022-05-23 21:04+0000\n"
"PO-Revision-Date: 2022-04-08 21:50\n" "PO-Revision-Date: 2022-05-24 01:06\n"
"Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n" "Last-Translator: Mouse Reeve <mousereeve@riseup.net>\n"
"Language-Team: Chinese Traditional\n" "Language-Team: Chinese Traditional\n"
"Language: zh\n" "Language: zh\n"
@ -121,25 +121,25 @@ msgstr ""
msgid "Automatically generated report" msgid "Automatically generated report"
msgstr "" msgstr ""
#: bookwyrm/models/base_model.py:17 bookwyrm/models/link.py:72 #: bookwyrm/models/base_model.py:18 bookwyrm/models/link.py:72
#: bookwyrm/templates/import/import_status.html:200 #: bookwyrm/templates/import/import_status.html:200
#: bookwyrm/templates/settings/link_domains/link_domains.html:19 #: bookwyrm/templates/settings/link_domains/link_domains.html:19
msgid "Pending" msgid "Pending"
msgstr "" msgstr ""
#: bookwyrm/models/base_model.py:18 #: bookwyrm/models/base_model.py:19
msgid "Self deletion" msgid "Self deletion"
msgstr "" msgstr ""
#: bookwyrm/models/base_model.py:19 #: bookwyrm/models/base_model.py:20
msgid "Moderator suspension" msgid "Moderator suspension"
msgstr "" msgstr ""
#: bookwyrm/models/base_model.py:20 #: bookwyrm/models/base_model.py:21
msgid "Moderator deletion" msgid "Moderator deletion"
msgstr "" msgstr ""
#: bookwyrm/models/base_model.py:21 #: bookwyrm/models/base_model.py:22
msgid "Domain block" msgid "Domain block"
msgstr "" msgstr ""
@ -730,7 +730,7 @@ msgstr ""
#: bookwyrm/templates/author/edit_author.html:115 #: bookwyrm/templates/author/edit_author.html:115
#: bookwyrm/templates/book/book.html:202 #: bookwyrm/templates/book/book.html:202
#: bookwyrm/templates/book/edit/edit_book.html:127 #: bookwyrm/templates/book/edit/edit_book.html:135
#: bookwyrm/templates/book/file_links/add_link_modal.html:60 #: bookwyrm/templates/book/file_links/add_link_modal.html:60
#: bookwyrm/templates/book/file_links/edit_links.html:82 #: bookwyrm/templates/book/file_links/edit_links.html:82
#: bookwyrm/templates/groups/form.html:32 #: bookwyrm/templates/groups/form.html:32
@ -753,8 +753,8 @@ msgstr "儲存"
#: bookwyrm/templates/author/sync_modal.html:23 #: bookwyrm/templates/author/sync_modal.html:23
#: bookwyrm/templates/book/book.html:203 #: bookwyrm/templates/book/book.html:203
#: bookwyrm/templates/book/cover_add_modal.html:33 #: bookwyrm/templates/book/cover_add_modal.html:33
#: bookwyrm/templates/book/edit/edit_book.html:129 #: bookwyrm/templates/book/edit/edit_book.html:137
#: bookwyrm/templates/book/edit/edit_book.html:132 #: bookwyrm/templates/book/edit/edit_book.html:140
#: bookwyrm/templates/book/file_links/add_link_modal.html:59 #: bookwyrm/templates/book/file_links/add_link_modal.html:59
#: bookwyrm/templates/book/file_links/verification_modal.html:25 #: bookwyrm/templates/book/file_links/verification_modal.html:25
#: bookwyrm/templates/book/sync_modal.html:23 #: bookwyrm/templates/book/sync_modal.html:23
@ -776,7 +776,7 @@ msgid "Loading data will connect to <strong>%(source_name)s</strong> and check f
msgstr "" msgstr ""
#: bookwyrm/templates/author/sync_modal.html:24 #: bookwyrm/templates/author/sync_modal.html:24
#: bookwyrm/templates/book/edit/edit_book.html:114 #: bookwyrm/templates/book/edit/edit_book.html:122
#: bookwyrm/templates/book/sync_modal.html:24 #: bookwyrm/templates/book/sync_modal.html:24
#: bookwyrm/templates/groups/members.html:29 #: bookwyrm/templates/groups/members.html:29
#: bookwyrm/templates/landing/password_reset.html:42 #: bookwyrm/templates/landing/password_reset.html:42
@ -943,42 +943,42 @@ msgstr "編輯 \"%(book_title)s\""
msgid "Add Book" msgid "Add Book"
msgstr "新增書目" msgstr "新增書目"
#: bookwyrm/templates/book/edit/edit_book.html:54 #: bookwyrm/templates/book/edit/edit_book.html:62
msgid "Confirm Book Info" msgid "Confirm Book Info"
msgstr "確認書目資料" msgstr "確認書目資料"
#: bookwyrm/templates/book/edit/edit_book.html:62 #: bookwyrm/templates/book/edit/edit_book.html:70
#, python-format #, python-format
msgid "Is \"%(name)s\" one of these authors?" msgid "Is \"%(name)s\" one of these authors?"
msgstr "" msgstr ""
#: bookwyrm/templates/book/edit/edit_book.html:73 #: bookwyrm/templates/book/edit/edit_book.html:81
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Author of " msgid "Author of "
msgstr "" msgstr ""
#: bookwyrm/templates/book/edit/edit_book.html:75 #: bookwyrm/templates/book/edit/edit_book.html:83
msgid "Find more information at isni.org" msgid "Find more information at isni.org"
msgstr "" msgstr ""
#: bookwyrm/templates/book/edit/edit_book.html:85 #: bookwyrm/templates/book/edit/edit_book.html:93
msgid "This is a new author" msgid "This is a new author"
msgstr "這是一位新的作者" msgstr "這是一位新的作者"
#: bookwyrm/templates/book/edit/edit_book.html:92 #: bookwyrm/templates/book/edit/edit_book.html:100
#, python-format #, python-format
msgid "Creating a new author: %(name)s" msgid "Creating a new author: %(name)s"
msgstr "正在建立新的作者: %(name)s" msgstr "正在建立新的作者: %(name)s"
#: bookwyrm/templates/book/edit/edit_book.html:99 #: bookwyrm/templates/book/edit/edit_book.html:107
msgid "Is this an edition of an existing work?" msgid "Is this an edition of an existing work?"
msgstr "這是已存在的作品的另一個版本嗎?" msgstr "這是已存在的作品的另一個版本嗎?"
#: bookwyrm/templates/book/edit/edit_book.html:107 #: bookwyrm/templates/book/edit/edit_book.html:115
msgid "This is a new work" msgid "This is a new work"
msgstr "這是一個新的作品。" msgstr "這是一個新的作品。"
#: bookwyrm/templates/book/edit/edit_book.html:116 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
msgid "Back" msgid "Back"
msgstr "返回" msgstr "返回"
@ -1960,33 +1960,33 @@ msgstr "匯入書目"
msgid "Data source:" msgid "Data source:"
msgstr "資料來源:" msgstr "資料來源:"
#: bookwyrm/templates/import/import.html:39 #: bookwyrm/templates/import/import.html:42
msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account." msgid "You can download your Goodreads data from the <a href=\"https://www.goodreads.com/review/import\" target=\"_blank\" rel=\"noopener noreferrer\">Import/Export page</a> of your Goodreads account."
msgstr "" msgstr ""
#: bookwyrm/templates/import/import.html:44 #: bookwyrm/templates/import/import.html:47
msgid "Data file:" msgid "Data file:"
msgstr "資料檔案:" msgstr "資料檔案:"
#: bookwyrm/templates/import/import.html:52 #: bookwyrm/templates/import/import.html:55
msgid "Include reviews" msgid "Include reviews"
msgstr "納入書評" msgstr "納入書評"
#: bookwyrm/templates/import/import.html:57 #: bookwyrm/templates/import/import.html:60
msgid "Privacy setting for imported reviews:" msgid "Privacy setting for imported reviews:"
msgstr "匯入書評的隱私設定" msgstr "匯入書評的隱私設定"
#: bookwyrm/templates/import/import.html:63 #: bookwyrm/templates/import/import.html:66
#: bookwyrm/templates/preferences/layout.html:31 #: bookwyrm/templates/preferences/layout.html:31
#: bookwyrm/templates/settings/federation/instance_blocklist.html:76 #: bookwyrm/templates/settings/federation/instance_blocklist.html:76
msgid "Import" msgid "Import"
msgstr "匯入" msgstr "匯入"
#: bookwyrm/templates/import/import.html:68 #: bookwyrm/templates/import/import.html:71
msgid "Recent Imports" msgid "Recent Imports"
msgstr "最近的匯入" msgstr "最近的匯入"
#: bookwyrm/templates/import/import.html:70 #: bookwyrm/templates/import/import.html:73
msgid "No recent imports" msgid "No recent imports"
msgstr "無最近的匯入" msgstr "無最近的匯入"
@ -5087,7 +5087,7 @@ msgstr "檔案超過了最大大小: 10MB"
msgid "%(title)s: %(subtitle)s" msgid "%(title)s: %(subtitle)s"
msgstr "" msgstr ""
#: bookwyrm/views/imports/import_data.py:67 #: bookwyrm/views/imports/import_data.py:70
msgid "Not a valid csv file" msgid "Not a valid csv file"
msgstr "不是有效的 csv 檔案" msgstr "不是有效的 csv 檔案"

View file

@ -1,3 +1,4 @@
aiohttp==3.8.1
celery==5.2.2 celery==5.2.2
colorthief==0.2.1 colorthief==0.2.1
Django==3.2.13 Django==3.2.13
@ -34,3 +35,4 @@ pytest-cov==2.10.1
pytest-env==0.6.2 pytest-env==0.6.2
pytest-xdist==2.3.0 pytest-xdist==2.3.0
pytidylib==0.3.2 pytidylib==0.3.2
pylint==2.14.0