Merge branch 'main' into followers-following-views

This commit is contained in:
Mouse Reeve 2022-07-29 13:09:30 -07:00 committed by GitHub
commit 23188dfc5f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
102 changed files with 16985 additions and 1412 deletions

View file

@ -27,7 +27,7 @@ Federation makes it possible to have small, self-determining communities, in con
## Features ## Features
### Posting about books ### Post about books
Compose reviews, comment on what you're reading, and post quotes from books. You can converse with other BookWyrm users across the network about what they're reading. Compose reviews, comment on what you're reading, and post quotes from books. You can converse with other BookWyrm users across the network about what they're reading.
### Track reading activity ### Track reading activity

View file

@ -1,5 +1,8 @@
""" using django model forms """ """ using django model forms """
from django import forms from django import forms
from django.contrib.auth.password_validation import validate_password
from django.core.exceptions import ValidationError
from django.utils.translation import gettext_lazy as _
from bookwyrm import models from bookwyrm import models
from bookwyrm.models.fields import ClearableFileInputWithWarning from bookwyrm.models.fields import ClearableFileInputWithWarning
@ -66,3 +69,33 @@ class DeleteUserForm(CustomForm):
class Meta: class Meta:
model = models.User model = models.User
fields = ["password"] fields = ["password"]
class ChangePasswordForm(CustomForm):
current_password = forms.CharField(widget=forms.PasswordInput)
confirm_password = forms.CharField(widget=forms.PasswordInput)
class Meta:
model = models.User
fields = ["password"]
widgets = {
"password": forms.PasswordInput(),
}
def clean(self):
"""Make sure passwords match and are valid"""
current_password = self.data.get("current_password")
if not self.instance.check_password(current_password):
self.add_error("current_password", _("Incorrect password"))
cleaned_data = super().clean()
new_password = cleaned_data.get("password")
confirm_password = self.data.get("confirm_password")
if new_password != confirm_password:
self.add_error("confirm_password", _("Password does not match"))
try:
validate_password(new_password)
except ValidationError as err:
self.add_error("password", err)

View file

@ -1,5 +1,7 @@
""" Forms for the landing pages """ """ Forms for the landing pages """
from django.forms import PasswordInput from django import forms
from django.contrib.auth.password_validation import validate_password
from django.core.exceptions import ValidationError
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from bookwyrm import models from bookwyrm import models
@ -13,7 +15,7 @@ class LoginForm(CustomForm):
fields = ["localname", "password"] fields = ["localname", "password"]
help_texts = {f: None for f in fields} help_texts = {f: None for f in fields}
widgets = { widgets = {
"password": PasswordInput(), "password": forms.PasswordInput(),
} }
@ -22,12 +24,16 @@ class RegisterForm(CustomForm):
model = models.User model = models.User
fields = ["localname", "email", "password"] fields = ["localname", "email", "password"]
help_texts = {f: None for f in fields} help_texts = {f: None for f in fields}
widgets = {"password": PasswordInput()} widgets = {"password": forms.PasswordInput()}
def clean(self): def clean(self):
"""Check if the username is taken""" """Check if the username is taken"""
cleaned_data = super().clean() cleaned_data = super().clean()
localname = cleaned_data.get("localname").strip() localname = cleaned_data.get("localname").strip()
try:
validate_password(cleaned_data.get("password"))
except ValidationError as err:
self.add_error("password", err)
if models.User.objects.filter(localname=localname).first(): if models.User.objects.filter(localname=localname).first():
self.add_error("localname", _("User with this username already exists")) self.add_error("localname", _("User with this username already exists"))
@ -43,3 +49,28 @@ class InviteRequestForm(CustomForm):
class Meta: class Meta:
model = models.InviteRequest model = models.InviteRequest
fields = ["email", "answer"] fields = ["email", "answer"]
class PasswordResetForm(CustomForm):
confirm_password = forms.CharField(widget=forms.PasswordInput)
class Meta:
model = models.User
fields = ["password"]
widgets = {
"password": forms.PasswordInput(),
}
def clean(self):
"""Make sure the passwords match and are valid"""
cleaned_data = super().clean()
new_password = cleaned_data.get("password")
confirm_password = self.data.get("confirm_password")
if new_password != confirm_password:
self.add_error("confirm_password", _("Password does not match"))
try:
validate_password(new_password)
except ValidationError as err:
self.add_error("password", err)

View file

@ -0,0 +1,40 @@
# Generated by Django 3.2.14 on 2022-07-15 19:24
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("bookwyrm", "0153_merge_20220706_2141"),
]
operations = [
migrations.AlterField(
model_name="user",
name="preferred_language",
field=models.CharField(
blank=True,
choices=[
("en-us", "English"),
("ca-es", "Català (Catalan)"),
("de-de", "Deutsch (German)"),
("es-es", "Español (Spanish)"),
("gl-es", "Galego (Galician)"),
("it-it", "Italiano (Italian)"),
("fi-fi", "Suomi (Finnish)"),
("fr-fr", "Français (French)"),
("lt-lt", "Lietuvių (Lithuanian)"),
("no-no", "Norsk (Norwegian)"),
("pt-br", "Português do Brasil (Brazilian Portuguese)"),
("pt-pt", "Português Europeu (European Portuguese)"),
("ro-ro", "Română (Romanian)"),
("sv-se", "Svenska (Swedish)"),
("zh-hans", "简体中文 (Simplified Chinese)"),
("zh-hant", "繁體中文 (Traditional Chinese)"),
],
max_length=255,
null=True,
),
),
]

View file

@ -0,0 +1,25 @@
# Generated by Django 3.2.14 on 2022-07-09 23:33
from django.db import migrations, models
def existing_users_default(apps, schema_editor):
db_alias = schema_editor.connection.alias
user_model = apps.get_model("bookwyrm", "User")
user_model.objects.using(db_alias).filter(local=True).update(show_guided_tour=False)
class Migration(migrations.Migration):
dependencies = [
("bookwyrm", "0154_alter_user_preferred_language"),
]
operations = [
migrations.AddField(
model_name="user",
name="show_guided_tour",
field=models.BooleanField(default=True),
),
migrations.RunPython(existing_users_default, migrations.RunPython.noop),
]

View file

@ -300,8 +300,10 @@ def notify_user_on_follow(sender, instance, created, *args, **kwargs):
notification.read = False notification.read = False
notification.save() notification.save()
else: else:
# Only group unread follows
Notification.notify( Notification.notify(
instance.user_object, instance.user_object,
instance.user_subject, instance.user_subject,
notification_type=Notification.FOLLOW, notification_type=Notification.FOLLOW,
read=False,
) )

View file

@ -218,7 +218,8 @@ class Status(OrderedCollectionPageMixin, BookWyrmModel):
"""certain types of status aren't editable""" """certain types of status aren't editable"""
# first, the standard raise # first, the standard raise
super().raise_not_editable(viewer) super().raise_not_editable(viewer)
if isinstance(self, (GeneratedNote, ReviewRating)): # if it's an edit (not a create) you can only edit content statuses
if self.id and isinstance(self, (GeneratedNote, ReviewRating)):
raise PermissionDenied() raise PermissionDenied()
@classmethod @classmethod

View file

@ -143,6 +143,7 @@ class User(OrderedCollectionPageMixin, AbstractUser):
show_goal = models.BooleanField(default=True) show_goal = models.BooleanField(default=True)
show_suggested_users = models.BooleanField(default=True) show_suggested_users = models.BooleanField(default=True)
discoverable = fields.BooleanField(default=False) discoverable = fields.BooleanField(default=False)
show_guided_tour = models.BooleanField(default=True)
# feed options # feed options
feed_status_types = ArrayField( feed_status_types = ArrayField(
@ -174,6 +175,11 @@ class User(OrderedCollectionPageMixin, AbstractUser):
property_fields = [("following_link", "following")] property_fields = [("following_link", "following")]
field_tracker = FieldTracker(fields=["name", "avatar"]) field_tracker = FieldTracker(fields=["name", "avatar"])
@property
def active_follower_requests(self):
"""Follow requests from active users"""
return self.follower_requests.filter(is_active=True)
@property @property
def confirmation_link(self): def confirmation_link(self):
"""helper for generating confirmation links""" """helper for generating confirmation links"""

View file

@ -11,7 +11,7 @@ from django.utils.translation import gettext_lazy as _
env = Env() env = Env()
env.read_env() env.read_env()
DOMAIN = env("DOMAIN") DOMAIN = env("DOMAIN")
VERSION = "0.4.3" VERSION = "0.4.4"
RELEASE_API = env( RELEASE_API = env(
"RELEASE_API", "RELEASE_API",
@ -280,6 +280,7 @@ AUTH_PASSWORD_VALIDATORS = [
LANGUAGE_CODE = env("LANGUAGE_CODE", "en-us") LANGUAGE_CODE = env("LANGUAGE_CODE", "en-us")
LANGUAGES = [ LANGUAGES = [
("en-us", _("English")), ("en-us", _("English")),
("ca-es", _("Català (Catalan)")),
("de-de", _("Deutsch (German)")), ("de-de", _("Deutsch (German)")),
("es-es", _("Español (Spanish)")), ("es-es", _("Español (Spanish)")),
("gl-es", _("Galego (Galician)")), ("gl-es", _("Galego (Galician)")),

View file

@ -94,3 +94,4 @@ $family-secondary: $family-sans-serif;
@import "../bookwyrm.scss"; @import "../bookwyrm.scss";
@import "../vendor/icons.css"; @import "../vendor/icons.css";
@import "../vendor/shepherd.scss";

View file

@ -67,3 +67,4 @@ $family-secondary: $family-sans-serif;
@import "../bookwyrm.scss"; @import "../bookwyrm.scss";
@import "../vendor/icons.css"; @import "../vendor/icons.css";
@import "../vendor/shepherd.scss";

View file

@ -0,0 +1,48 @@
/*
Shepherd styles for guided tour.
Based on Shepherd v 10.0.0 styles.
*/
@use 'bulma/bulma.sass';
.shepherd-button {
@extend .button.mr-2;
}
.shepherd-button.shepherd-button-secondary {
@extend .button.is-light;
}
.shepherd-footer {
@extend .message-body;
@extend .is-info.is-light;
border-color: $info-light;
border-radius: 0 0 4px 4px;
}
.shepherd-cancel-icon{background:transparent;border:none;color:hsla(0,0%,50%,.75);cursor:pointer;font-size:2em;font-weight:400;margin:0;padding:0;transition:color .5s ease}.shepherd-cancel-icon:hover{color:rgba(0,0,0,.75)}.shepherd-has-title .shepherd-content .shepherd-cancel-icon{color:hsla(0,0%,50%,.75)}.shepherd-has-title .shepherd-content .shepherd-cancel-icon:hover{color:rgba(0,0,0,.75)}
.shepherd-header {
@extend .message-header;
@extend .is-info;
}
.shepherd-text {
@extend .message-body;
@extend .is-info.is-light;
border-radius: 0;
}
.shepherd-content {
@extend .message;
}
.shepherd-element{background:$info-light;border-radius:5px;box-shadow:4px 4px 6px rgba(0,0,0,.2);max-width:400px;opacity:0;outline:none;transition:opacity .3s,visibility .3s;visibility:hidden;width:100%;z-index:9999}.shepherd-enabled.shepherd-element{opacity:1;visibility:visible}.shepherd-element[data-popper-reference-hidden]:not(.shepherd-centered){opacity:0;pointer-events:none;visibility:hidden}.shepherd-element,.shepherd-element *,.shepherd-element :after,.shepherd-element :before{box-sizing:border-box}.shepherd-arrow,.shepherd-arrow:before{height:16px;position:absolute;width:16px;z-index:-1}.shepherd-arrow:before{background:$info-light;box-shadow:0 2px 4px rgba(0,0,0,.2);content:"";transform:rotate(45deg)}.shepherd-element[data-popper-placement^=top]>.shepherd-arrow{bottom:-8px}.shepherd-element[data-popper-placement^=bottom]>.shepherd-arrow{top:-8px}.shepherd-element[data-popper-placement^=left]>.shepherd-arrow{right:-8px}.shepherd-element[data-popper-placement^=right]>.shepherd-arrow{left:-8px}.shepherd-element.shepherd-centered>.shepherd-arrow{opacity:0}.shepherd-element.shepherd-has-title[data-popper-placement^=bottom]>.shepherd-arrow:before{background-color:$info}.shepherd-target-click-disabled.shepherd-enabled.shepherd-target,.shepherd-target-click-disabled.shepherd-enabled.shepherd-target *{pointer-events:none}
.shepherd-modal-overlay-container{height:0;left:0;opacity:0;overflow:hidden;pointer-events:none;position:fixed;top:0;transition:all .3s ease-out,height 0ms .3s,opacity .3s 0ms;width:100vw;z-index:9997}.shepherd-modal-overlay-container.shepherd-modal-is-visible{height:100vh;opacity:.5;transform:translateZ(0);transition:all .3s ease-out,height 0s 0s,opacity .3s 0s}.shepherd-modal-overlay-container.shepherd-modal-is-visible path{pointer-events:all}
.tour-element-highlight {
border: 5px solid $info;
border-radius: 5px;
box-shadow:4px 4px 6px rgba(0,0,0,.2);
}

View file

@ -0,0 +1,18 @@
/**
* Set guided tour user value to False
* @param {csrf_token} string
* @return {undefined}
*/
/* eslint-disable no-unused-vars */
function disableGuidedTour(csrf_token) {
"use strict";
fetch("/guided-tour/False", {
headers: {
"X-CSRFToken": csrf_token,
},
method: "POST",
redirect: "follow",
mode: "same-origin",
});
}

View file

@ -0,0 +1,120 @@
/*! shepherd.js 10.0.0 */
'use strict';(function(O,pa){"object"===typeof exports&&"undefined"!==typeof module?module.exports=pa():"function"===typeof define&&define.amd?define(pa):(O="undefined"!==typeof globalThis?globalThis:O||self,O.Shepherd=pa())})(this,function(){function O(a,b){return!1!==b.clone&&b.isMergeableObject(a)?ea(Array.isArray(a)?[]:{},a,b):a}function pa(a,b,c){return a.concat(b).map(function(d){return O(d,c)})}function Cb(a){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(a).filter(function(b){return a.propertyIsEnumerable(b)}):
[]}function Sa(a){return Object.keys(a).concat(Cb(a))}function Ta(a,b){try{return b in a}catch(c){return!1}}function Db(a,b,c){var d={};c.isMergeableObject(a)&&Sa(a).forEach(function(e){d[e]=O(a[e],c)});Sa(b).forEach(function(e){if(!Ta(a,e)||Object.hasOwnProperty.call(a,e)&&Object.propertyIsEnumerable.call(a,e))if(Ta(a,e)&&c.isMergeableObject(b[e])){if(c.customMerge){var f=c.customMerge(e);f="function"===typeof f?f:ea}else f=ea;d[e]=f(a[e],b[e],c)}else d[e]=O(b[e],c)});return d}function ea(a,b,c){c=
c||{};c.arrayMerge=c.arrayMerge||pa;c.isMergeableObject=c.isMergeableObject||Eb;c.cloneUnlessOtherwiseSpecified=O;var d=Array.isArray(b),e=Array.isArray(a);return d!==e?O(b,c):d?c.arrayMerge(a,b,c):Db(a,b,c)}function Z(a){return"function"===typeof a}function qa(a){return"string"===typeof a}function Ua(a){let b=Object.getOwnPropertyNames(a.constructor.prototype);for(let c=0;c<b.length;c++){let d=b[c],e=a[d];"constructor"!==d&&"function"===typeof e&&(a[d]=e.bind(a))}return a}function Fb(a,b){return c=>
{if(b.isOpen()){let d=b.el&&c.currentTarget===b.el;(void 0!==a&&c.currentTarget.matches(a)||d)&&b.tour.next()}}}function Gb(a){let {event:b,selector:c}=a.options.advanceOn||{};if(b){let d=Fb(c,a),e;try{e=document.querySelector(c)}catch(f){}if(void 0===c||e)e?(e.addEventListener(b,d),a.on("destroy",()=>e.removeEventListener(b,d))):(document.body.addEventListener(b,d,!0),a.on("destroy",()=>document.body.removeEventListener(b,d,!0)));else return console.error(`No element was found for the selector supplied to advanceOn: ${c}`)}else return console.error("advanceOn was defined, but no event name was passed.")}
function M(a){return a?(a.nodeName||"").toLowerCase():null}function K(a){return null==a?window:"[object Window]"!==a.toString()?(a=a.ownerDocument)?a.defaultView||window:window:a}function fa(a){var b=K(a).Element;return a instanceof b||a instanceof Element}function F(a){var b=K(a).HTMLElement;return a instanceof b||a instanceof HTMLElement}function Ea(a){if("undefined"===typeof ShadowRoot)return!1;var b=K(a).ShadowRoot;return a instanceof b||a instanceof ShadowRoot}function N(a){return a.split("-")[0]}
function ha(a,b){void 0===b&&(b=!1);var c=a.getBoundingClientRect(),d=1,e=1;F(a)&&b&&(b=a.offsetHeight,a=a.offsetWidth,0<a&&(d=ia(c.width)/a||1),0<b&&(e=ia(c.height)/b||1));return{width:c.width/d,height:c.height/e,top:c.top/e,right:c.right/d,bottom:c.bottom/e,left:c.left/d,x:c.left/d,y:c.top/e}}function Fa(a){var b=ha(a),c=a.offsetWidth,d=a.offsetHeight;1>=Math.abs(b.width-c)&&(c=b.width);1>=Math.abs(b.height-d)&&(d=b.height);return{x:a.offsetLeft,y:a.offsetTop,width:c,height:d}}function Va(a,b){var c=
b.getRootNode&&b.getRootNode();if(a.contains(b))return!0;if(c&&Ea(c)){do{if(b&&a.isSameNode(b))return!0;b=b.parentNode||b.host}while(b)}return!1}function P(a){return K(a).getComputedStyle(a)}function U(a){return((fa(a)?a.ownerDocument:a.document)||window.document).documentElement}function wa(a){return"html"===M(a)?a:a.assignedSlot||a.parentNode||(Ea(a)?a.host:null)||U(a)}function Wa(a){return F(a)&&"fixed"!==P(a).position?a.offsetParent:null}function ra(a){for(var b=K(a),c=Wa(a);c&&0<=["table","td",
"th"].indexOf(M(c))&&"static"===P(c).position;)c=Wa(c);if(c&&("html"===M(c)||"body"===M(c)&&"static"===P(c).position))return b;if(!c)a:{c=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1===navigator.userAgent.indexOf("Trident")||!F(a)||"fixed"!==P(a).position)for(a=wa(a),Ea(a)&&(a=a.host);F(a)&&0>["html","body"].indexOf(M(a));){var d=P(a);if("none"!==d.transform||"none"!==d.perspective||"paint"===d.contain||-1!==["transform","perspective"].indexOf(d.willChange)||c&&"filter"===d.willChange||
c&&d.filter&&"none"!==d.filter){c=a;break a}else a=a.parentNode}c=null}return c||b}function Ga(a){return 0<=["top","bottom"].indexOf(a)?"x":"y"}function Xa(a){return Object.assign({},{top:0,right:0,bottom:0,left:0},a)}function Ya(a,b){return b.reduce(function(c,d){c[d]=a;return c},{})}function ja(a){return a.split("-")[1]}function Za(a){var b,c=a.popper,d=a.popperRect,e=a.placement,f=a.variation,g=a.offsets,l=a.position,m=a.gpuAcceleration,k=a.adaptive,p=a.roundOffsets,q=a.isFixed;a=g.x;a=void 0===
a?0:a;var n=g.y,r=void 0===n?0:n;n="function"===typeof p?p({x:a,y:r}):{x:a,y:r};a=n.x;r=n.y;n=g.hasOwnProperty("x");g=g.hasOwnProperty("y");var x="left",h="top",t=window;if(k){var v=ra(c),A="clientHeight",u="clientWidth";v===K(c)&&(v=U(c),"static"!==P(v).position&&"absolute"===l&&(A="scrollHeight",u="scrollWidth"));if("top"===e||("left"===e||"right"===e)&&"end"===f)h="bottom",r-=(q&&v===t&&t.visualViewport?t.visualViewport.height:v[A])-d.height,r*=m?1:-1;if("left"===e||("top"===e||"bottom"===e)&&
"end"===f)x="right",a-=(q&&v===t&&t.visualViewport?t.visualViewport.width:v[u])-d.width,a*=m?1:-1}c=Object.assign({position:l},k&&Hb);!0===p?(p=r,d=window.devicePixelRatio||1,a={x:ia(a*d)/d||0,y:ia(p*d)/d||0}):a={x:a,y:r};p=a;a=p.x;r=p.y;if(m){var w;return Object.assign({},c,(w={},w[h]=g?"0":"",w[x]=n?"0":"",w.transform=1>=(t.devicePixelRatio||1)?"translate("+a+"px, "+r+"px)":"translate3d("+a+"px, "+r+"px, 0)",w))}return Object.assign({},c,(b={},b[h]=g?r+"px":"",b[x]=n?a+"px":"",b.transform="",b))}
function xa(a){return a.replace(/left|right|bottom|top/g,function(b){return Ib[b]})}function $a(a){return a.replace(/start|end/g,function(b){return Jb[b]})}function Ha(a){a=K(a);return{scrollLeft:a.pageXOffset,scrollTop:a.pageYOffset}}function Ia(a){return ha(U(a)).left+Ha(a).scrollLeft}function Ja(a){a=P(a);return/auto|scroll|overlay|hidden/.test(a.overflow+a.overflowY+a.overflowX)}function ab(a){return 0<=["html","body","#document"].indexOf(M(a))?a.ownerDocument.body:F(a)&&Ja(a)?a:ab(wa(a))}function sa(a,
b){var c;void 0===b&&(b=[]);var d=ab(a);a=d===(null==(c=a.ownerDocument)?void 0:c.body);c=K(d);d=a?[c].concat(c.visualViewport||[],Ja(d)?d:[]):d;b=b.concat(d);return a?b:b.concat(sa(wa(d)))}function Ka(a){return Object.assign({},a,{left:a.x,top:a.y,right:a.x+a.width,bottom:a.y+a.height})}function bb(a,b){if("viewport"===b){b=K(a);var c=U(a);b=b.visualViewport;var d=c.clientWidth;c=c.clientHeight;var e=0,f=0;b&&(d=b.width,c=b.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(e=b.offsetLeft,
f=b.offsetTop));a={width:d,height:c,x:e+Ia(a),y:f};a=Ka(a)}else fa(b)?(a=ha(b),a.top+=b.clientTop,a.left+=b.clientLeft,a.bottom=a.top+b.clientHeight,a.right=a.left+b.clientWidth,a.width=b.clientWidth,a.height=b.clientHeight,a.x=a.left,a.y=a.top):(f=U(a),a=U(f),d=Ha(f),b=null==(c=f.ownerDocument)?void 0:c.body,c=L(a.scrollWidth,a.clientWidth,b?b.scrollWidth:0,b?b.clientWidth:0),e=L(a.scrollHeight,a.clientHeight,b?b.scrollHeight:0,b?b.clientHeight:0),f=-d.scrollLeft+Ia(f),d=-d.scrollTop,"rtl"===P(b||
a).direction&&(f+=L(a.clientWidth,b?b.clientWidth:0)-c),a=Ka({width:c,height:e,x:f,y:d}));return a}function Kb(a){var b=sa(wa(a)),c=0<=["absolute","fixed"].indexOf(P(a).position)&&F(a)?ra(a):a;return fa(c)?b.filter(function(d){return fa(d)&&Va(d,c)&&"body"!==M(d)}):[]}function Lb(a,b,c){b="clippingParents"===b?Kb(a):[].concat(b);c=[].concat(b,[c]);c=c.reduce(function(d,e){e=bb(a,e);d.top=L(e.top,d.top);d.right=V(e.right,d.right);d.bottom=V(e.bottom,d.bottom);d.left=L(e.left,d.left);return d},bb(a,
c[0]));c.width=c.right-c.left;c.height=c.bottom-c.top;c.x=c.left;c.y=c.top;return c}function cb(a){var b=a.reference,c=a.element,d=(a=a.placement)?N(a):null;a=a?ja(a):null;var e=b.x+b.width/2-c.width/2,f=b.y+b.height/2-c.height/2;switch(d){case "top":e={x:e,y:b.y-c.height};break;case "bottom":e={x:e,y:b.y+b.height};break;case "right":e={x:b.x+b.width,y:f};break;case "left":e={x:b.x-c.width,y:f};break;default:e={x:b.x,y:b.y}}d=d?Ga(d):null;if(null!=d)switch(f="y"===d?"height":"width",a){case "start":e[d]-=
b[f]/2-c[f]/2;break;case "end":e[d]+=b[f]/2-c[f]/2}return e}function ta(a,b){void 0===b&&(b={});var c=b;b=c.placement;b=void 0===b?a.placement:b;var d=c.boundary,e=void 0===d?"clippingParents":d;d=c.rootBoundary;var f=void 0===d?"viewport":d;d=c.elementContext;d=void 0===d?"popper":d;var g=c.altBoundary,l=void 0===g?!1:g;c=c.padding;c=void 0===c?0:c;c=Xa("number"!==typeof c?c:Ya(c,ua));g=a.rects.popper;l=a.elements[l?"popper"===d?"reference":"popper":d];e=Lb(fa(l)?l:l.contextElement||U(a.elements.popper),
e,f);f=ha(a.elements.reference);l=cb({reference:f,element:g,strategy:"absolute",placement:b});g=Ka(Object.assign({},g,l));f="popper"===d?g:f;var m={top:e.top-f.top+c.top,bottom:f.bottom-e.bottom+c.bottom,left:e.left-f.left+c.left,right:f.right-e.right+c.right};a=a.modifiersData.offset;if("popper"===d&&a){var k=a[b];Object.keys(m).forEach(function(p){var q=0<=["right","bottom"].indexOf(p)?1:-1,n=0<=["top","bottom"].indexOf(p)?"y":"x";m[p]+=k[n]*q})}return m}function Mb(a,b){void 0===b&&(b={});var c=
b.boundary,d=b.rootBoundary,e=b.padding,f=b.flipVariations,g=b.allowedAutoPlacements,l=void 0===g?db:g,m=ja(b.placement);b=m?f?eb:eb.filter(function(p){return ja(p)===m}):ua;f=b.filter(function(p){return 0<=l.indexOf(p)});0===f.length&&(f=b);var k=f.reduce(function(p,q){p[q]=ta(a,{placement:q,boundary:c,rootBoundary:d,padding:e})[N(q)];return p},{});return Object.keys(k).sort(function(p,q){return k[p]-k[q]})}function Nb(a){if("auto"===N(a))return[];var b=xa(a);return[$a(a),b,$a(b)]}function fb(a,
b,c){void 0===c&&(c={x:0,y:0});return{top:a.top-b.height-c.y,right:a.right-b.width+c.x,bottom:a.bottom-b.height+c.y,left:a.left-b.width-c.x}}function gb(a){return["top","right","bottom","left"].some(function(b){return 0<=a[b]})}function Ob(a,b,c){void 0===c&&(c=!1);var d=F(b),e;if(e=F(b)){var f=b.getBoundingClientRect();e=ia(f.width)/b.offsetWidth||1;f=ia(f.height)/b.offsetHeight||1;e=1!==e||1!==f}f=e;e=U(b);a=ha(a,f);f={scrollLeft:0,scrollTop:0};var g={x:0,y:0};if(d||!d&&!c){if("body"!==M(b)||Ja(e))f=
b!==K(b)&&F(b)?{scrollLeft:b.scrollLeft,scrollTop:b.scrollTop}:Ha(b);F(b)?(g=ha(b,!0),g.x+=b.clientLeft,g.y+=b.clientTop):e&&(g.x=Ia(e))}return{x:a.left+f.scrollLeft-g.x,y:a.top+f.scrollTop-g.y,width:a.width,height:a.height}}function Pb(a){function b(f){d.add(f.name);[].concat(f.requires||[],f.requiresIfExists||[]).forEach(function(g){d.has(g)||(g=c.get(g))&&b(g)});e.push(f)}var c=new Map,d=new Set,e=[];a.forEach(function(f){c.set(f.name,f)});a.forEach(function(f){d.has(f.name)||b(f)});return e}function Qb(a){var b=
Pb(a);return Rb.reduce(function(c,d){return c.concat(b.filter(function(e){return e.phase===d}))},[])}function Sb(a){var b;return function(){b||(b=new Promise(function(c){Promise.resolve().then(function(){b=void 0;c(a())})}));return b}}function Tb(a){var b=a.reduce(function(c,d){var e=c[d.name];c[d.name]=e?Object.assign({},e,d,{options:Object.assign({},e.options,d.options),data:Object.assign({},e.data,d.data)}):d;return c},{});return Object.keys(b).map(function(c){return b[c]})}function hb(){for(var a=
arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return!b.some(function(d){return!(d&&"function"===typeof d.getBoundingClientRect)})}function La(){La=Object.assign?Object.assign.bind():function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b],d;for(d in c)Object.prototype.hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a};return La.apply(this,arguments)}function Ub(){return[{name:"applyStyles",fn(a){let {state:b}=a;Object.keys(b.elements).forEach(c=>{if("popper"===c){var d=b.attributes[c]||
{},e=b.elements[c];Object.assign(e.style,{position:"fixed",left:"50%",top:"50%",transform:"translate(-50%, -50%)"});Object.keys(d).forEach(f=>{let g=d[f];!1===g?e.removeAttribute(f):e.setAttribute(f,!0===g?"":g)})}})}},{name:"computeStyles",options:{adaptive:!1}}]}function Vb(a){let b=Ub(),c={placement:"top",strategy:"fixed",modifiers:[{name:"focusAfterRender",enabled:!0,phase:"afterWrite",fn(){setTimeout(()=>{a.el&&a.el.focus()},300)}}]};return c=La({},c,{modifiers:Array.from(new Set([...c.modifiers,
...b]))})}function ib(a){return qa(a)&&""!==a?"-"!==a.charAt(a.length-1)?`${a}-`:a:""}function Ma(){let a=Date.now();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,b=>{let c=(a+16*Math.random())%16|0;a=Math.floor(a/16);return("x"==b?c:c&3|8).toString(16)})}function Wb(a,b){let c={modifiers:[{name:"preventOverflow",options:{altAxis:!0,tether:!1}},{name:"focusAfterRender",enabled:!0,phase:"afterWrite",fn(){setTimeout(()=>{b.el&&b.el.focus()},300)}}],strategy:"absolute"};void 0!==a&&null!==
a&&a.element&&a.on?c.placement=a.on:c=Vb(b);(a=b.tour&&b.tour.options&&b.tour.options.defaultStepOptions)&&(c=jb(a,c));return c=jb(b.options,c)}function jb(a,b){if(a.popperOptions){let c=Object.assign({},b,a.popperOptions);if(a.popperOptions.modifiers&&0<a.popperOptions.modifiers.length){let d=a.popperOptions.modifiers.map(e=>e.name);b=b.modifiers.filter(e=>!d.includes(e.name));c.modifiers=Array.from(new Set([...b,...a.popperOptions.modifiers]))}return c}return b}function G(){}function Xb(a,b){for(let c in b)a[c]=
b[c];return a}function ka(a){return a()}function kb(a){return"function"===typeof a}function Q(a,b){return a!=a?b==b:a!==b||a&&"object"===typeof a||"function"===typeof a}function H(a){a.parentNode.removeChild(a)}function lb(a){return document.createElementNS("http://www.w3.org/2000/svg",a)}function ya(a,b,c,d){a.addEventListener(b,c,d);return()=>a.removeEventListener(b,c,d)}function B(a,b,c){null==c?a.removeAttribute(b):a.getAttribute(b)!==c&&a.setAttribute(b,c)}function mb(a,b){let c=Object.getOwnPropertyDescriptors(a.__proto__);
for(let d in b)null==b[d]?a.removeAttribute(d):"style"===d?a.style.cssText=b[d]:"__value"===d?a.value=a[d]=b[d]:c[d]&&c[d].set?a[d]=b[d]:B(a,d,b[d])}function la(a,b,c){a.classList[c?"add":"remove"](b)}function za(){if(!R)throw Error("Function called outside component initialization");return R}function Na(a){Aa.push(a)}function nb(){let a=R;do{for(;Ba<va.length;){var b=va[Ba];Ba++;R=b;b=b.$$;if(null!==b.fragment){b.update();b.before_update.forEach(ka);var c=b.dirty;b.dirty=[-1];b.fragment&&b.fragment.p(b.ctx,
c);b.after_update.forEach(Na)}}R=null;for(Ba=va.length=0;ma.length;)ma.pop()();for(b=0;b<Aa.length;b+=1)c=Aa[b],Oa.has(c)||(Oa.add(c),c());Aa.length=0}while(va.length);for(;ob.length;)ob.pop()();Pa=!1;Oa.clear();R=a}function aa(){ba={r:0,c:[],p:ba}}function ca(){ba.r||ba.c.forEach(ka);ba=ba.p}function z(a,b){a&&a.i&&(Ca.delete(a),a.i(b))}function C(a,b,c,d){a&&a.o&&!Ca.has(a)&&(Ca.add(a),ba.c.push(()=>{Ca.delete(a);d&&(c&&a.d(1),d())}),a.o(b))}function da(a){a&&a.c()}function W(a,b,c,d){let {fragment:e,
on_mount:f,on_destroy:g,after_update:l}=a.$$;e&&e.m(b,c);d||Na(()=>{let m=f.map(ka).filter(kb);g?g.push(...m):m.forEach(ka);a.$$.on_mount=[]});l.forEach(Na)}function X(a,b){a=a.$$;null!==a.fragment&&(a.on_destroy.forEach(ka),a.fragment&&a.fragment.d(b),a.on_destroy=a.fragment=null,a.ctx=[])}function S(a,b,c,d,e,f,g,l){void 0===l&&(l=[-1]);let m=R;R=a;let k=a.$$={fragment:null,ctx:null,props:f,update:G,not_equal:e,bound:Object.create(null),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],
after_update:[],context:new Map(b.context||(m?m.$$.context:[])),callbacks:Object.create(null),dirty:l,skip_bound:!1,root:b.target||m.$$.root};g&&g(k.root);let p=!1;k.ctx=c?c(a,b.props||{},function(q,n){let r=(2>=arguments.length?0:arguments.length-2)?2>=arguments.length?void 0:arguments[2]:n;if(k.ctx&&e(k.ctx[q],k.ctx[q]=r)){if(!k.skip_bound&&k.bound[q])k.bound[q](r);p&&(-1===a.$$.dirty[0]&&(va.push(a),Pa||(Pa=!0,Yb.then(nb)),a.$$.dirty.fill(0)),a.$$.dirty[q/31|0]|=1<<q%31)}return n}):[];k.update();
p=!0;k.before_update.forEach(ka);k.fragment=d?d(k.ctx):!1;b.target&&(b.hydrate?(c=Array.from(b.target.childNodes),k.fragment&&k.fragment.l(c),c.forEach(H)):k.fragment&&k.fragment.c(),b.intro&&z(a.$$.fragment),W(a,b.target,b.anchor,b.customElement),nb());R=m}function Zb(a){let b,c,d,e,f;return{c(){b=document.createElement("button");B(b,"aria-label",c=a[3]?a[3]:null);B(b,"class",d=`${a[1]||""} shepherd-button ${a[4]?"shepherd-button-secondary":""}`);b.disabled=a[2];B(b,"tabindex","0")},m(g,l){g.insertBefore(b,
l||null);b.innerHTML=a[5];e||(f=ya(b,"click",function(){kb(a[0])&&a[0].apply(this,arguments)}),e=!0)},p(g,l){[l]=l;a=g;l&32&&(b.innerHTML=a[5]);l&8&&c!==(c=a[3]?a[3]:null)&&B(b,"aria-label",c);l&18&&d!==(d=`${a[1]||""} shepherd-button ${a[4]?"shepherd-button-secondary":""}`)&&B(b,"class",d);l&4&&(b.disabled=a[2])},i:G,o:G,d(g){g&&H(b);e=!1;f()}}}function $b(a,b,c){function d(n){return Z(n)?n.call(f):n}let {config:e,step:f}=b,g,l,m,k,p,q;a.$$set=n=>{"config"in n&&c(6,e=n.config);"step"in n&&c(7,f=
n.step)};a.$$.update=()=>{a.$$.dirty&192&&(c(0,g=e.action?e.action.bind(f.tour):null),c(1,l=e.classes),c(2,m=e.disabled?d(e.disabled):!1),c(3,k=e.label?d(e.label):null),c(4,p=e.secondary),c(5,q=e.text?d(e.text):null))};return[g,l,m,k,p,q,e,f]}function pb(a,b,c){a=a.slice();a[2]=b[c];return a}function qb(a){let b,c,d=a[1],e=[];for(let g=0;g<d.length;g+=1)e[g]=rb(pb(a,d,g));let f=g=>C(e[g],1,1,()=>{e[g]=null});return{c(){for(let g=0;g<e.length;g+=1)e[g].c();b=document.createTextNode("")},m(g,l){for(let m=
0;m<e.length;m+=1)e[m].m(g,l);g.insertBefore(b,l||null);c=!0},p(g,l){if(l&3){d=g[1];let m;for(m=0;m<d.length;m+=1){let k=pb(g,d,m);e[m]?(e[m].p(k,l),z(e[m],1)):(e[m]=rb(k),e[m].c(),z(e[m],1),e[m].m(b.parentNode,b))}aa();for(m=d.length;m<e.length;m+=1)f(m);ca()}},i(g){if(!c){for(g=0;g<d.length;g+=1)z(e[g]);c=!0}},o(g){e=e.filter(Boolean);for(g=0;g<e.length;g+=1)C(e[g]);c=!1},d(g){var l=e;for(let m=0;m<l.length;m+=1)l[m]&&l[m].d(g);g&&H(b)}}}function rb(a){let b,c;b=new ac({props:{config:a[2],step:a[0]}});
return{c(){da(b.$$.fragment)},m(d,e){W(b,d,e);c=!0},p(d,e){let f={};e&2&&(f.config=d[2]);e&1&&(f.step=d[0]);b.$set(f)},i(d){c||(z(b.$$.fragment,d),c=!0)},o(d){C(b.$$.fragment,d);c=!1},d(d){X(b,d)}}}function bc(a){let b,c,d=a[1]&&qb(a);return{c(){b=document.createElement("footer");d&&d.c();B(b,"class","shepherd-footer")},m(e,f){e.insertBefore(b,f||null);d&&d.m(b,null);c=!0},p(e,f){[f]=f;e[1]?d?(d.p(e,f),f&2&&z(d,1)):(d=qb(e),d.c(),z(d,1),d.m(b,null)):d&&(aa(),C(d,1,1,()=>{d=null}),ca())},i(e){c||(z(d),
c=!0)},o(e){C(d);c=!1},d(e){e&&H(b);d&&d.d()}}}function cc(a,b,c){let d,{step:e}=b;a.$$set=f=>{"step"in f&&c(0,e=f.step)};a.$$.update=()=>{a.$$.dirty&1&&c(1,d=e.options.buttons)};return[e,d]}function dc(a){let b,c,d,e,f;return{c(){b=document.createElement("button");c=document.createElement("span");c.textContent="\u00d7";B(c,"aria-hidden","true");B(b,"aria-label",d=a[0].label?a[0].label:"Close Tour");B(b,"class","shepherd-cancel-icon");B(b,"type","button")},m(g,l){g.insertBefore(b,l||null);b.appendChild(c);
e||(f=ya(b,"click",a[1]),e=!0)},p(g,l){[l]=l;l&1&&d!==(d=g[0].label?g[0].label:"Close Tour")&&B(b,"aria-label",d)},i:G,o:G,d(g){g&&H(b);e=!1;f()}}}function ec(a,b,c){let {cancelIcon:d,step:e}=b;a.$$set=f=>{"cancelIcon"in f&&c(0,d=f.cancelIcon);"step"in f&&c(2,e=f.step)};return[d,f=>{f.preventDefault();e.cancel()},e]}function fc(a){let b;return{c(){b=document.createElement("h3");B(b,"id",a[1]);B(b,"class","shepherd-title")},m(c,d){c.insertBefore(b,d||null);a[3](b)},p(c,d){[d]=d;d&2&&B(b,"id",c[1])},
i:G,o:G,d(c){c&&H(b);a[3](null)}}}function gc(a,b,c){let {labelId:d,element:e,title:f}=b;za().$$.after_update.push(()=>{Z(f)&&c(2,f=f());c(0,e.innerHTML=f,e)});a.$$set=g=>{"labelId"in g&&c(1,d=g.labelId);"element"in g&&c(0,e=g.element);"title"in g&&c(2,f=g.title)};return[e,d,f,function(g){ma[g?"unshift":"push"](()=>{e=g;c(0,e)})}]}function sb(a){let b,c;b=new hc({props:{labelId:a[0],title:a[2]}});return{c(){da(b.$$.fragment)},m(d,e){W(b,d,e);c=!0},p(d,e){let f={};e&1&&(f.labelId=d[0]);e&4&&(f.title=
d[2]);b.$set(f)},i(d){c||(z(b.$$.fragment,d),c=!0)},o(d){C(b.$$.fragment,d);c=!1},d(d){X(b,d)}}}function tb(a){let b,c;b=new ic({props:{cancelIcon:a[3],step:a[1]}});return{c(){da(b.$$.fragment)},m(d,e){W(b,d,e);c=!0},p(d,e){let f={};e&8&&(f.cancelIcon=d[3]);e&2&&(f.step=d[1]);b.$set(f)},i(d){c||(z(b.$$.fragment,d),c=!0)},o(d){C(b.$$.fragment,d);c=!1},d(d){X(b,d)}}}function jc(a){let b,c,d,e=a[2]&&sb(a),f=a[3]&&a[3].enabled&&tb(a);return{c(){b=document.createElement("header");e&&e.c();c=document.createTextNode(" ");
f&&f.c();B(b,"class","shepherd-header")},m(g,l){g.insertBefore(b,l||null);e&&e.m(b,null);b.appendChild(c);f&&f.m(b,null);d=!0},p(g,l){[l]=l;g[2]?e?(e.p(g,l),l&4&&z(e,1)):(e=sb(g),e.c(),z(e,1),e.m(b,c)):e&&(aa(),C(e,1,1,()=>{e=null}),ca());g[3]&&g[3].enabled?f?(f.p(g,l),l&8&&z(f,1)):(f=tb(g),f.c(),z(f,1),f.m(b,null)):f&&(aa(),C(f,1,1,()=>{f=null}),ca())},i(g){d||(z(e),z(f),d=!0)},o(g){C(e);C(f);d=!1},d(g){g&&H(b);e&&e.d();f&&f.d()}}}function kc(a,b,c){let {labelId:d,step:e}=b,f,g;a.$$set=l=>{"labelId"in
l&&c(0,d=l.labelId);"step"in l&&c(1,e=l.step)};a.$$.update=()=>{a.$$.dirty&2&&(c(2,f=e.options.title),c(3,g=e.options.cancelIcon))};return[d,e,f,g]}function lc(a){let b;return{c(){b=document.createElement("div");B(b,"class","shepherd-text");B(b,"id",a[1])},m(c,d){c.insertBefore(b,d||null);a[3](b)},p(c,d){[d]=d;d&2&&B(b,"id",c[1])},i:G,o:G,d(c){c&&H(b);a[3](null)}}}function mc(a,b,c){let {descriptionId:d,element:e,step:f}=b;za().$$.after_update.push(()=>{let {text:g}=f.options;Z(g)&&(g=g.call(f));
g instanceof HTMLElement?e.appendChild(g):c(0,e.innerHTML=g,e)});a.$$set=g=>{"descriptionId"in g&&c(1,d=g.descriptionId);"element"in g&&c(0,e=g.element);"step"in g&&c(2,f=g.step)};return[e,d,f,function(g){ma[g?"unshift":"push"](()=>{e=g;c(0,e)})}]}function ub(a){let b,c;b=new nc({props:{labelId:a[1],step:a[2]}});return{c(){da(b.$$.fragment)},m(d,e){W(b,d,e);c=!0},p(d,e){let f={};e&2&&(f.labelId=d[1]);e&4&&(f.step=d[2]);b.$set(f)},i(d){c||(z(b.$$.fragment,d),c=!0)},o(d){C(b.$$.fragment,d);c=!1},d(d){X(b,
d)}}}function vb(a){let b,c;b=new oc({props:{descriptionId:a[0],step:a[2]}});return{c(){da(b.$$.fragment)},m(d,e){W(b,d,e);c=!0},p(d,e){let f={};e&1&&(f.descriptionId=d[0]);e&4&&(f.step=d[2]);b.$set(f)},i(d){c||(z(b.$$.fragment,d),c=!0)},o(d){C(b.$$.fragment,d);c=!1},d(d){X(b,d)}}}function wb(a){let b,c;b=new pc({props:{step:a[2]}});return{c(){da(b.$$.fragment)},m(d,e){W(b,d,e);c=!0},p(d,e){let f={};e&4&&(f.step=d[2]);b.$set(f)},i(d){c||(z(b.$$.fragment,d),c=!0)},o(d){C(b.$$.fragment,d);c=!1},d(d){X(b,
d)}}}function qc(a){let b,c=void 0!==a[2].options.title||a[2].options.cancelIcon&&a[2].options.cancelIcon.enabled,d,e=void 0!==a[2].options.text,f,g=Array.isArray(a[2].options.buttons)&&a[2].options.buttons.length,l,m=c&&ub(a),k=e&&vb(a),p=g&&wb(a);return{c(){b=document.createElement("div");m&&m.c();d=document.createTextNode(" ");k&&k.c();f=document.createTextNode(" ");p&&p.c();B(b,"class","shepherd-content")},m(q,n){q.insertBefore(b,n||null);m&&m.m(b,null);b.appendChild(d);k&&k.m(b,null);b.appendChild(f);
p&&p.m(b,null);l=!0},p(q,n){[n]=n;n&4&&(c=void 0!==q[2].options.title||q[2].options.cancelIcon&&q[2].options.cancelIcon.enabled);c?m?(m.p(q,n),n&4&&z(m,1)):(m=ub(q),m.c(),z(m,1),m.m(b,d)):m&&(aa(),C(m,1,1,()=>{m=null}),ca());n&4&&(e=void 0!==q[2].options.text);e?k?(k.p(q,n),n&4&&z(k,1)):(k=vb(q),k.c(),z(k,1),k.m(b,f)):k&&(aa(),C(k,1,1,()=>{k=null}),ca());n&4&&(g=Array.isArray(q[2].options.buttons)&&q[2].options.buttons.length);g?p?(p.p(q,n),n&4&&z(p,1)):(p=wb(q),p.c(),z(p,1),p.m(b,null)):p&&(aa(),
C(p,1,1,()=>{p=null}),ca())},i(q){l||(z(m),z(k),z(p),l=!0)},o(q){C(m);C(k);C(p);l=!1},d(q){q&&H(b);m&&m.d();k&&k.d();p&&p.d()}}}function rc(a,b,c){let {descriptionId:d,labelId:e,step:f}=b;a.$$set=g=>{"descriptionId"in g&&c(0,d=g.descriptionId);"labelId"in g&&c(1,e=g.labelId);"step"in g&&c(2,f=g.step)};return[d,e,f]}function xb(a){let b;return{c(){b=document.createElement("div");B(b,"class","shepherd-arrow");B(b,"data-popper-arrow","")},m(c,d){c.insertBefore(b,d||null)},d(c){c&&H(b)}}}function sc(a){let b,
c,d,e,f,g,l,m,k=a[4].options.arrow&&a[4].options.attachTo&&a[4].options.attachTo.element&&a[4].options.attachTo.on&&xb();d=new tc({props:{descriptionId:a[2],labelId:a[3],step:a[4]}});let p=[{"aria-describedby":e=void 0!==a[4].options.text?a[2]:null},{"aria-labelledby":f=a[4].options.title?a[3]:null},a[1],{role:"dialog"},{tabindex:"0"}],q={};for(let n=0;n<p.length;n+=1)q=Xb(q,p[n]);return{c(){b=document.createElement("div");k&&k.c();c=document.createTextNode(" ");da(d.$$.fragment);mb(b,q);la(b,"shepherd-has-cancel-icon",
a[5]);la(b,"shepherd-has-title",a[6]);la(b,"shepherd-element",!0)},m(n,r){n.insertBefore(b,r||null);k&&k.m(b,null);b.appendChild(c);W(d,b,null);a[13](b);g=!0;l||(m=ya(b,"keydown",a[7]),l=!0)},p(n,r){var [x]=r;n[4].options.arrow&&n[4].options.attachTo&&n[4].options.attachTo.element&&n[4].options.attachTo.on?k||(k=xb(),k.c(),k.m(b,c)):k&&(k.d(1),k=null);r={};x&4&&(r.descriptionId=n[2]);x&8&&(r.labelId=n[3]);x&16&&(r.step=n[4]);d.$set(r);r=b;x=[(!g||x&20&&e!==(e=void 0!==n[4].options.text?n[2]:null))&&
{"aria-describedby":e},(!g||x&24&&f!==(f=n[4].options.title?n[3]:null))&&{"aria-labelledby":f},x&2&&n[1],{role:"dialog"},{tabindex:"0"}];let h={},t={},v={$$scope:1},A=p.length;for(;A--;){let u=p[A],w=x[A];if(w){for(let y in u)y in w||(t[y]=1);for(let y in w)v[y]||(h[y]=w[y],v[y]=1);p[A]=w}else for(let y in u)v[y]=1}for(let u in t)u in h||(h[u]=void 0);mb(r,q=h);la(b,"shepherd-has-cancel-icon",n[5]);la(b,"shepherd-has-title",n[6]);la(b,"shepherd-element",!0)},i(n){g||(z(d.$$.fragment,n),g=!0)},o(n){C(d.$$.fragment,
n);g=!1},d(n){n&&H(b);k&&k.d();X(d);a[13](null);l=!1;m()}}}function yb(a){return a.split(" ").filter(b=>!!b.length)}function uc(a,b,c){let {classPrefix:d,element:e,descriptionId:f,firstFocusableElement:g,focusableElements:l,labelId:m,lastFocusableElement:k,step:p,dataStepId:q}=b,n,r,x;za().$$.on_mount.push(()=>{c(1,q={[`data-${d}shepherd-step-id`]:p.id});c(9,l=e.querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex="0"]'));
c(8,g=l[0]);c(10,k=l[l.length-1])});za().$$.after_update.push(()=>{if(x!==p.options.classes){var h=x;qa(h)&&(h=yb(h),h.length&&e.classList.remove(...h));h=x=p.options.classes;qa(h)&&(h=yb(h),h.length&&e.classList.add(...h))}});a.$$set=h=>{"classPrefix"in h&&c(11,d=h.classPrefix);"element"in h&&c(0,e=h.element);"descriptionId"in h&&c(2,f=h.descriptionId);"firstFocusableElement"in h&&c(8,g=h.firstFocusableElement);"focusableElements"in h&&c(9,l=h.focusableElements);"labelId"in h&&c(3,m=h.labelId);"lastFocusableElement"in
h&&c(10,k=h.lastFocusableElement);"step"in h&&c(4,p=h.step);"dataStepId"in h&&c(1,q=h.dataStepId)};a.$$.update=()=>{a.$$.dirty&16&&(c(5,n=p.options&&p.options.cancelIcon&&p.options.cancelIcon.enabled),c(6,r=p.options&&p.options.title))};return[e,q,f,m,p,n,r,h=>{const {tour:t}=p;switch(h.keyCode){case 9:if(0===l.length){h.preventDefault();break}if(h.shiftKey){if(document.activeElement===g||document.activeElement.classList.contains("shepherd-element"))h.preventDefault(),k.focus()}else document.activeElement===
k&&(h.preventDefault(),g.focus());break;case 27:t.options.exitOnEsc&&p.cancel();break;case 37:t.options.keyboardNavigation&&t.back();break;case 39:t.options.keyboardNavigation&&t.next()}},g,l,k,d,()=>e,function(h){ma[h?"unshift":"push"](()=>{e=h;c(0,e)})}]}function vc(a){a&&({steps:a}=a,a.forEach(b=>{b.options&&!1===b.options.canClickTarget&&b.options.attachTo&&b.target instanceof HTMLElement&&b.target.classList.remove("shepherd-target-click-disabled")}))}function wc(a){let b,c,d,e,f;return{c(){b=
lb("svg");c=lb("path");B(c,"d",a[2]);B(b,"class",d=`${a[1]?"shepherd-modal-is-visible":""} shepherd-modal-overlay-container`)},m(g,l){g.insertBefore(b,l||null);b.appendChild(c);a[11](b);e||(f=ya(b,"touchmove",a[3]),e=!0)},p(g,l){[l]=l;l&4&&B(c,"d",g[2]);l&2&&d!==(d=`${g[1]?"shepherd-modal-is-visible":""} shepherd-modal-overlay-container`)&&B(b,"class",d)},i:G,o:G,d(g){g&&H(b);a[11](null);e=!1;f()}}}function zb(a){if(!a)return null;let b=a instanceof HTMLElement&&window.getComputedStyle(a).overflowY;
return"hidden"!==b&&"visible"!==b&&a.scrollHeight>=a.clientHeight?a:zb(a.parentElement)}function xc(a,b,c){function d(){c(4,p={width:0,height:0,x:0,y:0,r:0})}function e(){c(1,q=!1);l()}function f(h,t,v,A){void 0===h&&(h=0);void 0===t&&(t=0);if(A){var u=A.getBoundingClientRect();let y=u.y||u.top;u=u.bottom||y+u.height;if(v){var w=v.getBoundingClientRect();v=w.y||w.top;w=w.bottom||v+w.height;y=Math.max(y,v);u=Math.min(u,w)}let {y:Y,height:E}={y,height:Math.max(u-y,0)},{x:I,width:D,left:na}=A.getBoundingClientRect();
c(4,p={width:D+2*h,height:E+2*h,x:(I||na)-h,y:Y-h,r:t})}else d()}function g(){c(1,q=!0)}function l(){n&&(cancelAnimationFrame(n),n=void 0);window.removeEventListener("touchmove",x,{passive:!1})}function m(h){let {modalOverlayOpeningPadding:t,modalOverlayOpeningRadius:v}=h.options,A=zb(h.target),u=()=>{n=void 0;f(t,v,A,h.target);n=requestAnimationFrame(u)};u();window.addEventListener("touchmove",x,{passive:!1})}let {element:k,openingProperties:p}=b;Ma();let q=!1,n=void 0,r;d();let x=h=>{h.preventDefault()};
a.$$set=h=>{"element"in h&&c(0,k=h.element);"openingProperties"in h&&c(4,p=h.openingProperties)};a.$$.update=()=>{if(a.$$.dirty&16){let {width:h,height:t,x:v=0,y:A=0,r:u=0}=p,{innerWidth:w,innerHeight:y}=window;c(2,r=`M${w},${y}\
H0\
V0\
H${w}\
V${y}\
Z\
M${v+u},${A}\
a${u},${u},0,0,0-${u},${u}\
V${t+A-u}\
a${u},${u},0,0,0,${u},${u}\
H${h+v-u}\
a${u},${u},0,0,0,${u}-${u}\
V${A+u}\
a${u},${u},0,0,0-${u}-${u}\
Z`)}};return[k,q,r,h=>{h.stopPropagation()},p,()=>k,d,e,f,function(h){l();h.tour.options.useModalOverlay?(m(h),g()):e()},g,function(h){ma[h?"unshift":"push"](()=>{k=h;c(0,k)})}]}var Eb=function(a){var b;if(b=!!a&&"object"===typeof a)b=Object.prototype.toString.call(a),b=!("[object RegExp]"===b||"[object Date]"===b||a.$$typeof===yc);return b},yc="function"===typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;ea.all=function(a,b){if(!Array.isArray(a))throw Error("first argument should be an array");
return a.reduce(function(c,d){return ea(c,d,b)},{})};var zc=ea;class Qa{on(a,b,c,d){void 0===d&&(d=!1);void 0===this.bindings&&(this.bindings={});void 0===this.bindings[a]&&(this.bindings[a]=[]);this.bindings[a].push({handler:b,ctx:c,once:d});return this}once(a,b,c){return this.on(a,b,c,!0)}off(a,b){if(void 0===this.bindings||void 0===this.bindings[a])return this;void 0===b?delete this.bindings[a]:this.bindings[a].forEach((c,d)=>{c.handler===b&&this.bindings[a].splice(d,1)});return this}trigger(a){for(var b=
arguments.length,c=Array(1<b?b-1:0),d=1;d<b;d++)c[d-1]=arguments[d];void 0!==this.bindings&&this.bindings[a]&&this.bindings[a].forEach((e,f)=>{let {ctx:g,handler:l,once:m}=e;l.apply(g||this,c);m&&this.bindings[a].splice(f,1)});return this}}var ua=["top","bottom","right","left"],eb=ua.reduce(function(a,b){return a.concat([b+"-start",b+"-end"])},[]),db=[].concat(ua,["auto"]).reduce(function(a,b){return a.concat([b,b+"-start",b+"-end"])},[]),Rb="beforeRead read afterRead beforeMain main afterMain beforeWrite write afterWrite".split(" "),
L=Math.max,V=Math.min,ia=Math.round,Hb={top:"auto",right:"auto",bottom:"auto",left:"auto"},Da={passive:!0},Ib={left:"right",right:"left",bottom:"top",top:"bottom"},Jb={start:"end",end:"start"},Ab={placement:"bottom",modifiers:[],strategy:"absolute"},Ac=function(a){void 0===a&&(a={});var b=a.defaultModifiers,c=void 0===b?[]:b;a=a.defaultOptions;var d=void 0===a?Ab:a;return function(e,f,g){function l(){k.orderedModifiers.forEach(function(r){var x=r.name,h=r.options;h=void 0===h?{}:h;r=r.effect;"function"===
typeof r&&(x=r({state:k,name:x,instance:n,options:h}),p.push(x||function(){}))})}function m(){p.forEach(function(r){return r()});p=[]}void 0===g&&(g=d);var k={placement:"bottom",orderedModifiers:[],options:Object.assign({},Ab,d),modifiersData:{},elements:{reference:e,popper:f},attributes:{},styles:{}},p=[],q=!1,n={state:k,setOptions:function(r){r="function"===typeof r?r(k.options):r;m();k.options=Object.assign({},d,k.options,r);k.scrollParents={reference:fa(e)?sa(e):e.contextElement?sa(e.contextElement):
[],popper:sa(f)};r=Qb(Tb([].concat(c,k.options.modifiers)));k.orderedModifiers=r.filter(function(x){return x.enabled});l();return n.update()},forceUpdate:function(){if(!q){var r=k.elements,x=r.reference;r=r.popper;if(hb(x,r))for(k.rects={reference:Ob(x,ra(r),"fixed"===k.options.strategy),popper:Fa(r)},k.reset=!1,k.placement=k.options.placement,k.orderedModifiers.forEach(function(v){return k.modifiersData[v.name]=Object.assign({},v.data)}),x=0;x<k.orderedModifiers.length;x++)if(!0===k.reset)k.reset=
!1,x=-1;else{var h=k.orderedModifiers[x];r=h.fn;var t=h.options;t=void 0===t?{}:t;h=h.name;"function"===typeof r&&(k=r({state:k,options:t,name:h,instance:n})||k)}}},update:Sb(function(){return new Promise(function(r){n.forceUpdate();r(k)})}),destroy:function(){m();q=!0}};if(!hb(e,f))return n;n.setOptions(g).then(function(r){if(!q&&g.onFirstUpdate)g.onFirstUpdate(r)});return n}}({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(a){var b=a.state,c=a.instance;
a=a.options;var d=a.scroll,e=void 0===d?!0:d;a=a.resize;var f=void 0===a?!0:a,g=K(b.elements.popper),l=[].concat(b.scrollParents.reference,b.scrollParents.popper);e&&l.forEach(function(m){m.addEventListener("scroll",c.update,Da)});f&&g.addEventListener("resize",c.update,Da);return function(){e&&l.forEach(function(m){m.removeEventListener("scroll",c.update,Da)});f&&g.removeEventListener("resize",c.update,Da)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(a){var b=a.state;b.modifiersData[a.name]=
cb({reference:b.rects.reference,element:b.rects.popper,strategy:"absolute",placement:b.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(a){var b=a.state,c=a.options;a=c.gpuAcceleration;a=void 0===a?!0:a;var d=c.adaptive;d=void 0===d?!0:d;c=c.roundOffsets;c=void 0===c?!0:c;a={placement:N(b.placement),variation:ja(b.placement),popper:b.elements.popper,popperRect:b.rects.popper,gpuAcceleration:a,isFixed:"fixed"===b.options.strategy};null!=b.modifiersData.popperOffsets&&
(b.styles.popper=Object.assign({},b.styles.popper,Za(Object.assign({},a,{offsets:b.modifiersData.popperOffsets,position:b.options.strategy,adaptive:d,roundOffsets:c}))));null!=b.modifiersData.arrow&&(b.styles.arrow=Object.assign({},b.styles.arrow,Za(Object.assign({},a,{offsets:b.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c}))));b.attributes.popper=Object.assign({},b.attributes.popper,{"data-popper-placement":b.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",
fn:function(a){var b=a.state;Object.keys(b.elements).forEach(function(c){var d=b.styles[c]||{},e=b.attributes[c]||{},f=b.elements[c];F(f)&&M(f)&&(Object.assign(f.style,d),Object.keys(e).forEach(function(g){var l=e[g];!1===l?f.removeAttribute(g):f.setAttribute(g,!0===l?"":l)}))})},effect:function(a){var b=a.state,c={popper:{position:b.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(b.elements.popper.style,c.popper);b.styles=c;b.elements.arrow&&
Object.assign(b.elements.arrow.style,c.arrow);return function(){Object.keys(b.elements).forEach(function(d){var e=b.elements[d],f=b.attributes[d]||{};d=Object.keys(b.styles.hasOwnProperty(d)?b.styles[d]:c[d]).reduce(function(g,l){g[l]="";return g},{});F(e)&&M(e)&&(Object.assign(e.style,d),Object.keys(f).forEach(function(g){e.removeAttribute(g)}))})}},requires:["computeStyles"]},{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(a){var b=a.state,c=a.name;a=a.options.offset;
var d=void 0===a?[0,0]:a;a=db.reduce(function(g,l){var m=b.rects;var k=N(l);var p=0<=["left","top"].indexOf(k)?-1:1,q="function"===typeof d?d(Object.assign({},m,{placement:l})):d;m=q[0];q=q[1];m=m||0;q=(q||0)*p;k=0<=["left","right"].indexOf(k)?{x:q,y:m}:{x:m,y:q};g[l]=k;return g},{});var e=a[b.placement],f=e.x;e=e.y;null!=b.modifiersData.popperOffsets&&(b.modifiersData.popperOffsets.x+=f,b.modifiersData.popperOffsets.y+=e);b.modifiersData[c]=a}},{name:"flip",enabled:!0,phase:"main",fn:function(a){var b=
a.state,c=a.options;a=a.name;if(!b.modifiersData[a]._skip){var d=c.mainAxis;d=void 0===d?!0:d;var e=c.altAxis;e=void 0===e?!0:e;var f=c.fallbackPlacements,g=c.padding,l=c.boundary,m=c.rootBoundary,k=c.altBoundary,p=c.flipVariations,q=void 0===p?!0:p,n=c.allowedAutoPlacements;c=b.options.placement;p=N(c);f=f||(p!==c&&q?Nb(c):[xa(c)]);var r=[c].concat(f).reduce(function(E,I){return E.concat("auto"===N(I)?Mb(b,{placement:I,boundary:l,rootBoundary:m,padding:g,flipVariations:q,allowedAutoPlacements:n}):
I)},[]);c=b.rects.reference;f=b.rects.popper;var x=new Map;p=!0;for(var h=r[0],t=0;t<r.length;t++){var v=r[t],A=N(v),u="start"===ja(v),w=0<=["top","bottom"].indexOf(A),y=w?"width":"height",Y=ta(b,{placement:v,boundary:l,rootBoundary:m,altBoundary:k,padding:g});u=w?u?"right":"left":u?"bottom":"top";c[y]>f[y]&&(u=xa(u));y=xa(u);w=[];d&&w.push(0>=Y[A]);e&&w.push(0>=Y[u],0>=Y[y]);if(w.every(function(E){return E})){h=v;p=!1;break}x.set(v,w)}if(p)for(d=function(E){var I=r.find(function(D){if(D=x.get(D))return D.slice(0,
E).every(function(na){return na})});if(I)return h=I,"break"},e=q?3:1;0<e&&"break"!==d(e);e--);b.placement!==h&&(b.modifiersData[a]._skip=!0,b.placement=h,b.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:function(a){var b=a.state,c=a.options;a=a.name;var d=c.mainAxis,e=void 0===d?!0:d;d=c.altAxis;var f=void 0===d?!1:d;d=c.tether;var g=void 0===d?!0:d;d=c.tetherOffset;var l=void 0===d?0:d,m=ta(b,{boundary:c.boundary,rootBoundary:c.rootBoundary,
padding:c.padding,altBoundary:c.altBoundary}),k=N(b.placement),p=ja(b.placement),q=!p,n=Ga(k);c="x"===n?"y":"x";d=b.modifiersData.popperOffsets;var r=b.rects.reference,x=b.rects.popper;l="function"===typeof l?l(Object.assign({},b.rects,{placement:b.placement})):l;var h="number"===typeof l?{mainAxis:l,altAxis:l}:Object.assign({mainAxis:0,altAxis:0},l),t=b.modifiersData.offset?b.modifiersData.offset[b.placement]:null;l={x:0,y:0};if(d){if(e){var v,A="y"===n?"top":"left",u="y"===n?"bottom":"right",w=
"y"===n?"height":"width";e=d[n];var y=e+m[A],Y=e-m[u],E=g?-x[w]/2:0,I="start"===p?r[w]:x[w];p="start"===p?-x[w]:-r[w];var D=b.elements.arrow;D=g&&D?Fa(D):{width:0,height:0};var na=b.modifiersData["arrow#persistent"]?b.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0};A=na[A];u=na[u];D=L(0,V(r[w],D[w]));I=q?r[w]/2-E-D-A-h.mainAxis:I-D-A-h.mainAxis;q=q?-r[w]/2+E+D+u+h.mainAxis:p+D+u+h.mainAxis;w=(w=b.elements.arrow&&ra(b.elements.arrow))?"y"===n?w.clientTop||0:w.clientLeft||
0:0;E=null!=(v=null==t?void 0:t[n])?v:0;v=e+q-E;y=g?V(y,e+I-E-w):y;v=g?L(Y,v):Y;v=L(y,V(e,v));d[n]=v;l[n]=v-e}if(f){var J;f=d[c];e="y"===c?"height":"width";v=f+m["x"===n?"top":"left"];m=f-m["x"===n?"bottom":"right"];k=-1!==["top","left"].indexOf(k);n=null!=(J=null==t?void 0:t[c])?J:0;J=k?v:f-r[e]-x[e]-n+h.altAxis;r=k?f+r[e]+x[e]-n-h.altAxis:m;g&&k?(J=L(J,V(f,r)),J=J>r?r:J):J=L(g?J:v,V(f,g?r:m));d[c]=J;l[c]=J-f}b.modifiersData[a]=l}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",
fn:function(a){var b,c=a.state,d=a.name,e=a.options,f=c.elements.arrow,g=c.modifiersData.popperOffsets,l=N(c.placement);a=Ga(l);l=0<=["left","right"].indexOf(l)?"height":"width";if(f&&g){e=e.padding;e="function"===typeof e?e(Object.assign({},c.rects,{placement:c.placement})):e;e=Xa("number"!==typeof e?e:Ya(e,ua));var m=Fa(f),k="y"===a?"top":"left",p="y"===a?"bottom":"right",q=c.rects.reference[l]+c.rects.reference[a]-g[a]-c.rects.popper[l];g=g[a]-c.rects.reference[a];f=(f=ra(f))?"y"===a?f.clientHeight||
0:f.clientWidth||0:0;g=f/2-m[l]/2+(q/2-g/2);l=L(e[k],V(g,f-m[l]-e[p]));c.modifiersData[d]=(b={},b[a]=l,b.centerOffset=l-g,b)}},effect:function(a){var b=a.state;a=a.options.element;a=void 0===a?"[data-popper-arrow]":a;if(null!=a){if("string"===typeof a&&(a=b.elements.popper.querySelector(a),!a))return;Va(b.elements.popper,a)&&(b.elements.arrow=a)}},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(a){var b=
a.state;a=a.name;var c=b.rects.reference,d=b.rects.popper,e=b.modifiersData.preventOverflow,f=ta(b,{elementContext:"reference"}),g=ta(b,{altBoundary:!0});c=fb(f,c);d=fb(g,d,e);e=gb(c);g=gb(d);b.modifiersData[a]={referenceClippingOffsets:c,popperEscapeOffsets:d,isReferenceHidden:e,hasPopperEscaped:g};b.attributes.popper=Object.assign({},b.attributes.popper,{"data-popper-reference-hidden":e,"data-popper-escaped":g})}}]});let R,va=[],ma=[],Aa=[],ob=[],Yb=Promise.resolve(),Pa=!1,Oa=new Set,Ba=0,Ca=new Set,
ba;class T{$destroy(){X(this,1);this.$destroy=G}$on(a,b){let c=this.$$.callbacks[a]||(this.$$.callbacks[a]=[]);c.push(b);return()=>{let d=c.indexOf(b);-1!==d&&c.splice(d,1)}}$set(a){this.$$set&&0!==Object.keys(a).length&&(this.$$.skip_bound=!0,this.$$set(a),this.$$.skip_bound=!1)}}class ac extends T{constructor(a){super();S(this,a,$b,Zb,Q,{config:6,step:7})}}class pc extends T{constructor(a){super();S(this,a,cc,bc,Q,{step:0})}}class ic extends T{constructor(a){super();S(this,a,ec,dc,Q,{cancelIcon:0,
step:2})}}class hc extends T{constructor(a){super();S(this,a,gc,fc,Q,{labelId:1,element:0,title:2})}}class nc extends T{constructor(a){super();S(this,a,kc,jc,Q,{labelId:0,step:1})}}class oc extends T{constructor(a){super();S(this,a,mc,lc,Q,{descriptionId:1,element:0,step:2})}}class tc extends T{constructor(a){super();S(this,a,rc,qc,Q,{descriptionId:0,labelId:1,step:2})}}class Bc extends T{constructor(a){super();S(this,a,uc,sc,Q,{classPrefix:11,element:0,descriptionId:2,firstFocusableElement:8,focusableElements:9,
labelId:3,lastFocusableElement:10,step:4,dataStepId:1,getElement:12})}get getElement(){return this.$$.ctx[12]}}var Bb=function(a,b){return b={exports:{}},a(b,b.exports),b.exports}(function(a,b){(function(){a.exports={polyfill:function(){function c(h,t){this.scrollLeft=h;this.scrollTop=t}function d(h){if(null===h||"object"!==typeof h||void 0===h.behavior||"auto"===h.behavior||"instant"===h.behavior)return!0;if("object"===typeof h&&"smooth"===h.behavior)return!1;throw new TypeError("behavior member of ScrollOptions "+
h.behavior+" is not a valid value for enumeration ScrollBehavior.");}function e(h,t){if("Y"===t)return h.clientHeight+x<h.scrollHeight;if("X"===t)return h.clientWidth+x<h.scrollWidth}function f(h,t){h=k.getComputedStyle(h,null)["overflow"+t];return"auto"===h||"scroll"===h}function g(h){var t=e(h,"Y")&&f(h,"Y");h=e(h,"X")&&f(h,"X");return t||h}function l(h){var t=(r()-h.startTime)/468;var v=.5*(1-Math.cos(Math.PI*(1<t?1:t)));t=h.startX+(h.x-h.startX)*v;v=h.startY+(h.y-h.startY)*v;h.method.call(h.scrollable,
t,v);t===h.x&&v===h.y||k.requestAnimationFrame(l.bind(k,h))}function m(h,t,v){var A=r();if(h===p.body){var u=k;var w=k.scrollX||k.pageXOffset;h=k.scrollY||k.pageYOffset;var y=n.scroll}else u=h,w=h.scrollLeft,h=h.scrollTop,y=c;l({scrollable:u,method:y,startTime:A,startX:w,startY:h,x:t,y:v})}var k=window,p=document;if(!("scrollBehavior"in p.documentElement.style&&!0!==k.__forceSmoothScrollPolyfill__)){var q=k.HTMLElement||k.Element,n={scroll:k.scroll||k.scrollTo,scrollBy:k.scrollBy,elementScroll:q.prototype.scroll||
c,scrollIntoView:q.prototype.scrollIntoView},r=k.performance&&k.performance.now?k.performance.now.bind(k.performance):Date.now,x=/MSIE |Trident\/|Edge\//.test(k.navigator.userAgent)?1:0;k.scroll=k.scrollTo=function(h,t){void 0!==h&&(!0===d(h)?n.scroll.call(k,void 0!==h.left?h.left:"object"!==typeof h?h:k.scrollX||k.pageXOffset,void 0!==h.top?h.top:void 0!==t?t:k.scrollY||k.pageYOffset):m.call(k,p.body,void 0!==h.left?~~h.left:k.scrollX||k.pageXOffset,void 0!==h.top?~~h.top:k.scrollY||k.pageYOffset))};
k.scrollBy=function(h,t){void 0!==h&&(d(h)?n.scrollBy.call(k,void 0!==h.left?h.left:"object"!==typeof h?h:0,void 0!==h.top?h.top:void 0!==t?t:0):m.call(k,p.body,~~h.left+(k.scrollX||k.pageXOffset),~~h.top+(k.scrollY||k.pageYOffset)))};q.prototype.scroll=q.prototype.scrollTo=function(h,t){if(void 0!==h)if(!0===d(h)){if("number"===typeof h&&void 0===t)throw new SyntaxError("Value could not be converted");n.elementScroll.call(this,void 0!==h.left?~~h.left:"object"!==typeof h?~~h:this.scrollLeft,void 0!==
h.top?~~h.top:void 0!==t?~~t:this.scrollTop)}else t=h.left,h=h.top,m.call(this,this,"undefined"===typeof t?this.scrollLeft:~~t,"undefined"===typeof h?this.scrollTop:~~h)};q.prototype.scrollBy=function(h,t){void 0!==h&&(!0===d(h)?n.elementScroll.call(this,void 0!==h.left?~~h.left+this.scrollLeft:~~h+this.scrollLeft,void 0!==h.top?~~h.top+this.scrollTop:~~t+this.scrollTop):this.scroll({left:~~h.left+this.scrollLeft,top:~~h.top+this.scrollTop,behavior:h.behavior}))};q.prototype.scrollIntoView=function(h){if(!0===
d(h))n.scrollIntoView.call(this,void 0===h?!0:h);else{for(h=this;h!==p.body&&!1===g(h);)h=h.parentNode||h.host;var t=h.getBoundingClientRect(),v=this.getBoundingClientRect();h!==p.body?(m.call(this,h,h.scrollLeft+v.left-t.left,h.scrollTop+v.top-t.top),"fixed"!==k.getComputedStyle(h).position&&k.scrollBy({left:t.left,top:t.top,behavior:"smooth"})):k.scrollBy({left:v.left,top:v.top,behavior:"smooth"})}}}}}})()});Bb.polyfill;Bb.polyfill();class Ra extends Qa{constructor(a,b){void 0===b&&(b={});super(a,
b);this.tour=a;this.classPrefix=this.tour.options?ib(this.tour.options.classPrefix):"";this.styles=a.styles;this._resolvedAttachTo=null;Ua(this);this._setOptions(b);return this}cancel(){this.tour.cancel();this.trigger("cancel")}complete(){this.tour.complete();this.trigger("complete")}destroy(){this.tooltip&&(this.tooltip.destroy(),this.tooltip=null);this.el instanceof HTMLElement&&this.el.parentNode&&(this.el.parentNode.removeChild(this.el),this.el=null);this._updateStepTargetOnHide();this.trigger("destroy")}getTour(){return this.tour}hide(){this.tour.modal.hide();
this.trigger("before-hide");this.el&&(this.el.hidden=!0);this._updateStepTargetOnHide();this.trigger("hide")}_resolveAttachToOptions(){let a=this.options.attachTo||{},b=Object.assign({},a);Z(b.element)&&(b.element=b.element.call(this));if(qa(b.element)){try{b.element=document.querySelector(b.element)}catch(c){}b.element||console.error(`The element for this Shepherd step was not found ${a.element}`)}return this._resolvedAttachTo=b}_getResolvedAttachToOptions(){return null===this._resolvedAttachTo?
this._resolveAttachToOptions():this._resolvedAttachTo}isOpen(){return!(!this.el||this.el.hidden)}show(){if(Z(this.options.beforeShowPromise)){let a=this.options.beforeShowPromise();if(void 0!==a)return a.then(()=>this._show())}this._show()}updateStepOptions(a){Object.assign(this.options,a);this.shepherdElementComponent&&this.shepherdElementComponent.$set({step:this})}getElement(){return this.el}getTarget(){return this.target}_createTooltipContent(){this.shepherdElementComponent=new Bc({target:this.tour.options.stepsContainer||
document.body,props:{classPrefix:this.classPrefix,descriptionId:`${this.id}-description`,labelId:`${this.id}-label`,step:this,styles:this.styles}});return this.shepherdElementComponent.getElement()}_scrollTo(a){let {element:b}=this._getResolvedAttachToOptions();Z(this.options.scrollToHandler)?this.options.scrollToHandler(b):b instanceof Element&&"function"===typeof b.scrollIntoView&&b.scrollIntoView(a)}_getClassOptions(a){var b=this.tour&&this.tour.options&&this.tour.options.defaultStepOptions;b=
b&&b.classes?b.classes:"";a=[...(a.classes?a.classes:"").split(" "),...b.split(" ")];a=new Set(a);return Array.from(a).join(" ").trim()}_setOptions(a){void 0===a&&(a={});let b=this.tour&&this.tour.options&&this.tour.options.defaultStepOptions;b=zc({},b||{});this.options=Object.assign({arrow:!0},b,a);let {when:c}=this.options;this.options.classes=this._getClassOptions(a);this.destroy();this.id=this.options.id||`step-${Ma()}`;c&&Object.keys(c).forEach(d=>{this.on(d,c[d],this)})}_setupElements(){void 0!==
this.el&&this.destroy();this.el=this._createTooltipContent();this.options.advanceOn&&Gb(this);this.tooltip&&this.tooltip.destroy();let a=this._getResolvedAttachToOptions(),b=a.element,c=Wb(a,this);void 0!==a&&null!==a&&a.element&&a.on||(b=document.body,this.shepherdElementComponent.getElement().classList.add("shepherd-centered"));this.tooltip=Ac(b,this.el,c);this.target=a.element}_show(){this.trigger("before-show");this._resolveAttachToOptions();this._setupElements();this.tour.modal||this.tour._setupModal();
this.tour.modal.setupForStep(this);this._styleTargetElementForStep(this);this.el.hidden=!1;this.options.scrollTo&&setTimeout(()=>{this._scrollTo(this.options.scrollTo)});this.el.hidden=!1;let a=this.shepherdElementComponent.getElement(),b=this.target||document.body;b.classList.add(`${this.classPrefix}shepherd-enabled`);b.classList.add(`${this.classPrefix}shepherd-target`);a.classList.add("shepherd-enabled");this.trigger("show")}_styleTargetElementForStep(a){let b=a.target;b&&(a.options.highlightClass&&
b.classList.add(a.options.highlightClass),b.classList.remove("shepherd-target-click-disabled"),!1===a.options.canClickTarget&&b.classList.add("shepherd-target-click-disabled"))}_updateStepTargetOnHide(){let a=this.target||document.body;this.options.highlightClass&&a.classList.remove(this.options.highlightClass);a.classList.remove("shepherd-target-click-disabled",`${this.classPrefix}shepherd-enabled`,`${this.classPrefix}shepherd-target`)}}class Cc extends T{constructor(a){super();S(this,a,xc,wc,Q,
{element:0,openingProperties:4,getElement:5,closeModalOpening:6,hide:7,positionModal:8,setupForStep:9,show:10})}get getElement(){return this.$$.ctx[5]}get closeModalOpening(){return this.$$.ctx[6]}get hide(){return this.$$.ctx[7]}get positionModal(){return this.$$.ctx[8]}get setupForStep(){return this.$$.ctx[9]}get show(){return this.$$.ctx[10]}}let oa=new Qa;class Dc extends Qa{constructor(a){void 0===a&&(a={});super(a);Ua(this);this.options=Object.assign({},{exitOnEsc:!0,keyboardNavigation:!0},
a);this.classPrefix=ib(this.options.classPrefix);this.steps=[];this.addSteps(this.options.steps);"active cancel complete inactive show start".split(" ").map(b=>{(c=>{this.on(c,d=>{d=d||{};d.tour=this;oa.trigger(c,d)})})(b)});this._setTourID();return this}addStep(a,b){a instanceof Ra?a.tour=this:a=new Ra(this,a);void 0!==b?this.steps.splice(b,0,a):this.steps.push(a);return a}addSteps(a){Array.isArray(a)&&a.forEach(b=>{this.addStep(b)});return this}back(){let a=this.steps.indexOf(this.currentStep);
this.show(a-1,!1)}cancel(){this.options.confirmCancel?window.confirm(this.options.confirmCancelMessage||"Are you sure you want to stop the tour?")&&this._done("cancel"):this._done("cancel")}complete(){this._done("complete")}getById(a){return this.steps.find(b=>b.id===a)}getCurrentStep(){return this.currentStep}hide(){let a=this.getCurrentStep();if(a)return a.hide()}isActive(){return oa.activeTour===this}next(){let a=this.steps.indexOf(this.currentStep);a===this.steps.length-1?this.complete():this.show(a+
1,!0)}removeStep(a){let b=this.getCurrentStep();this.steps.some((c,d)=>{if(c.id===a)return c.isOpen()&&c.hide(),c.destroy(),this.steps.splice(d,1),!0});b&&b.id===a&&(this.currentStep=void 0,this.steps.length?this.show(0):this.cancel())}show(a,b){void 0===a&&(a=0);void 0===b&&(b=!0);if(a=qa(a)?this.getById(a):this.steps[a])this._updateStateBeforeShow(),Z(a.options.showOn)&&!a.options.showOn()?this._skipStep(a,b):(this.trigger("show",{step:a,previous:this.currentStep}),this.currentStep=a,a.show())}start(){this.trigger("start");
this.focusedElBeforeOpen=document.activeElement;this.currentStep=null;this._setupModal();this._setupActiveTour();this.next()}_done(a){let b=this.steps.indexOf(this.currentStep);Array.isArray(this.steps)&&this.steps.forEach(c=>c.destroy());vc(this);this.trigger(a,{index:b});oa.activeTour=null;this.trigger("inactive",{tour:this});this.modal&&this.modal.hide();"cancel"!==a&&"complete"!==a||!this.modal||(a=document.querySelector(".shepherd-modal-overlay-container"))&&a.remove();this.focusedElBeforeOpen instanceof
HTMLElement&&this.focusedElBeforeOpen.focus()}_setupActiveTour(){this.trigger("active",{tour:this});oa.activeTour=this}_setupModal(){this.modal=new Cc({target:this.options.modalContainer||document.body,props:{classPrefix:this.classPrefix,styles:this.styles}})}_skipStep(a,b){a=this.steps.indexOf(a);a===this.steps.length-1?this.complete():this.show(b?a+1:a-1,b)}_updateStateBeforeShow(){this.currentStep&&this.currentStep.hide();this.isActive()||this._setupActiveTour()}_setTourID(){this.id=`${this.options.tourName||
"tour"}--${Ma()}`}}Object.assign(oa,{Tour:Dc,Step:Ra});return oa})
//# sourceMappingURL=shepherd.min.js.map

View file

@ -113,7 +113,7 @@
{% include 'snippets/rate_action.html' with user=request.user book=book %} {% include 'snippets/rate_action.html' with user=request.user book=book %}
<div class="mb-3"> <div class="mb-3" id="tour-shelve-button">
{% include 'snippets/shelve_button/shelve_button.html' %} {% include 'snippets/shelve_button/shelve_button.html' %}
</div> </div>
@ -210,7 +210,7 @@
{% with work=book.parent_work %} {% with work=book.parent_work %}
<p> <p>
<a href="{{ work.local_path }}/editions"> <a href="{{ work.local_path }}/editions" id="tour-other-editions-link">
{% blocktrans trimmed count counter=work.editions.count with count=work.editions.count|intcomma %} {% blocktrans trimmed count counter=work.editions.count with count=work.editions.count|intcomma %}
{{ count }} edition {{ count }} edition
{% plural %} {% plural %}
@ -254,7 +254,7 @@
<h2 class="title is-5">{% trans "Your reading activity" %}</h2> <h2 class="title is-5">{% trans "Your reading activity" %}</h2>
</div> </div>
<div class="column is-narrow"> <div class="column is-narrow">
<button class="button is-small" data-modal-open="add-readthrough"> <button class="button is-small" data-modal-open="add-readthrough" id="tour-add-readthrough">
<span class="icon icon-plus m-mobile-0" aria-hidden="true"></span> <span class="icon icon-plus m-mobile-0" aria-hidden="true"></span>
<span class="is-sr-only-mobile"> <span class="is-sr-only-mobile">
{% trans "Add read dates" %} {% trans "Add read dates" %}
@ -392,7 +392,7 @@
</section> </section>
{% endif %} {% endif %}
<section class="content block"> <section class="content block" id="tour-book-file-links">
{% include "book/file_links/links.html" %} {% include "book/file_links/links.html" %}
</section> </section>
</div> </div>
@ -405,4 +405,7 @@
{% block scripts %} {% block scripts %}
<script src="{% static "js/tabs.js" %}?v={{ js_cache }}"></script> <script src="{% static "js/tabs.js" %}?v={{ js_cache }}"></script>
<script src="{% static "js/autocomplete.js" %}?v={{ js_cache }}"></script> <script src="{% static "js/autocomplete.js" %}?v={{ js_cache }}"></script>
{% if request.user.show_guided_tour %}
{% include 'guided_tour/book.html' %}
{% endif %}
{% endblock %} {% endblock %}

View file

@ -19,16 +19,8 @@
name="email" name="email"
class="input" class="input"
id="email" id="email"
aria-described-by="id_email_errors"
required required
> >
{% if error %}
<div id="id_email_errors">
<p class="help is-danger">
{% trans "No user matching this email address found." %}
</p>
</div>
{% endif %}
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -30,3 +30,4 @@
</section> </section>
{% endblock %} {% endblock %}

View file

@ -1,5 +1,6 @@
{% extends 'feed/layout.html' %} {% extends 'feed/layout.html' %}
{% load i18n %} {% load i18n %}
{% load static %}
{% block panel %} {% block panel %}
@ -73,3 +74,12 @@
{% endfor %} {% endfor %}
{% endblock %} {% endblock %}
{% block scripts %}
<script src="{% static "js/tabs.js" %}?v={{ js_cache }}"></script>
{% if request.user.show_guided_tour %}
{% include 'guided_tour/home.html' %}
{% endif %}
{% endblock %}

View file

@ -1,6 +1,5 @@
{% extends 'layout.html' %} {% extends 'layout.html' %}
{% load i18n %} {% load i18n %}
{% load static %}
{% block title %}{% trans "Updates" %}{% endblock %} {% block title %}{% trans "Updates" %}{% endblock %}
@ -30,6 +29,4 @@
</div> </div>
{% endblock %} {% endblock %}
{% block scripts %}
<script src="{% static "js/tabs.js" %}?v={{ js_cache }}"></script>
{% endblock %}

View file

@ -2,7 +2,7 @@
{% load feed_page_tags %} {% load feed_page_tags %}
{% suggested_books as suggested_books %} {% suggested_books as suggested_books %}
<section class="block"> <section id="tour-suggested-books" class="block">
<h2 class="title is-4">{% trans "Your Books" %}</h2> <h2 class="title is-4">{% trans "Your Books" %}</h2>
{% if not suggested_books %} {% if not suggested_books %}

View file

@ -5,7 +5,7 @@
<div class="column is-two-thirds"> <div class="column is-two-thirds">
<input type="hidden" name="user" value="{{ request.user.id }}" /> <input type="hidden" name="user" value="{{ request.user.id }}" />
<div class="field"> <div class="field">
<label class="label" for="group_form_id_name">{% trans "Group Name:" %}</label> <label class="label" for="group_form_id_name" id="tour-group-name">{% trans "Group Name:" %}</label>
{{ group_form.name }} {{ group_form.name }}
</div> </div>
<div class="field"> <div class="field">

View file

@ -22,7 +22,7 @@
</p> </p>
</div> </div>
{% if request.user.is_authenticated and group|is_member:request.user %} {% if request.user.is_authenticated and group|is_member:request.user %}
<div class="column is-narrow is-flex"> <div class="column is-narrow is-flex" id="tour-create-list">
{% trans "Create List" as button_text %} {% trans "Create List" as button_text %}
{% include 'snippets/toggle/open_button.html' with controls_text="create_list" icon_with_text="plus" text=button_text focus="create_list_header" %} {% include 'snippets/toggle/open_button.html' with controls_text="create_list" icon_with_text="plus" text=button_text focus="create_list_header" %}
</div> </div>
@ -80,3 +80,9 @@
</div> </div>
{% endblock %} {% endblock %}
{% block scripts %}
{% if request.user.show_guided_tour %}
{% include 'guided_tour/group.html' %}
{% endif %}
{% endblock %}

View file

@ -10,7 +10,7 @@
<div class="control"> <div class="control">
<input type="text" name="user_query" value="{{ request.GET.user_query }}" class="input" placeholder="{% trans 'Search to add a user' %}" aria-label="{% trans 'Search to add a user' %}"> <input type="text" name="user_query" value="{{ request.GET.user_query }}" class="input" placeholder="{% trans 'Search to add a user' %}" aria-label="{% trans 'Search to add a user' %}">
</div> </div>
<div class="control"> <div class="control" id="tour-group-member-search">
<button class="button" type="submit"> <button class="button" type="submit">
<span class="icon icon-search" title="{% trans 'Search' %}"> <span class="icon icon-search" title="{% trans 'Search' %}">
<span class="is-sr-only">{% trans "Search" %}</span> <span class="is-sr-only">{% trans "Search" %}</span>
@ -44,7 +44,7 @@
<span title="@{{ member|username }}" class="is-block pb-3">@{{ member|username|truncatechars:8 }}</span> <span title="@{{ member|username }}" class="is-block pb-3">@{{ member|username|truncatechars:8 }}</span>
</a> </a>
{% if group.user == member %} {% if group.user == member %}
<span class="icon icon-star-full" title="Manager"> <span class="icon icon-star-full" title="Manager" id="tour-group-owner">
<span class="is-sr-only">Manager</span> <span class="is-sr-only">Manager</span>
</span> </span>
{% endif %} {% endif %}

View file

@ -0,0 +1,303 @@
{% load i18n %}
<script>
const tour = new Shepherd.Tour({
exitOnEsc: true,
});
tour.addSteps([
{
text: `{% trans "This is home page of a book. Let's see what you can do while you're here!" %}`,
title: "{% trans 'Book page' %}",
buttons: [
{
action() {
disableGuidedTour(csrf_token);
return this.complete();
},
secondary: true,
text: "{% trans 'End Tour' %}",
classes: "is-danger",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'This is where you can set a reading status for this book. You can press the button to move to the next stage, or use the drop down button to select the reading status you want to set.' %}",
title: "{% trans 'Reading status' %}",
attachTo: {
element: "#tour-shelve-button",
on: "right",
},
highlightClass: 'tour-element-highlight',
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: `{% trans "You can also manually add reading dates here. Unlike changing the reading status using the previous method, adding dates manually will not automatically add them to your <strong>Read</strong> or <strong>Reading</strong> shelves." %}<br><br>{% trans "Got a favourite you re-read every year? We've got you covered - you can add multiple read dates for the same book 😀" %}`,
title: "{% trans 'Add read dates' %}",
attachTo: {
element: "#tour-add-readthrough",
on: "top",
},
highlightClass: 'tour-element-highlight',
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'There can be multiple editions of a book, in various formats or languages. You can choose which edition you want to use.' %}",
title: "{% trans 'Other editions' %}",
attachTo: {
element: "#tour-other-editions-link",
on: "left",
},
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'You can post a review, comment, or quote here.' %}",
title: "{% trans 'Share your thoughts' %}",
attachTo: {
element: ".tour-review-comment-quote",
on: "top",
},
highlightClass: 'tour-element-highlight',
scrollTo: true,
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'If you have read this book you can post a review including an optional star rating' %}",
title: "{% trans 'Post a review' %}",
attachTo: {
element: "[id^=tab_review]",
on: "top",
},
highlightClass: 'tour-element-highlight',
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'You can share your thoughts on this book generally with a simple comment' %}",
title: "{% trans 'Post a comment' %}",
attachTo: {
element: "[id^=tab_comment]",
on: "top",
},
highlightClass: 'tour-element-highlight',
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'Just read some perfect prose? Let the world know by sharing a quote!' %}",
title: "{% trans 'Share a quote' %}",
attachTo: {
element: "[id^=tab_quote]",
on: "top",
},
highlightClass: 'tour-element-highlight',
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: `{% trans "If your review or comment might ruin the book for someone who hasn't read it yet, you can hide your post behind a <strong>spoiler alert</strong>" %}`,
title: "{% trans 'Spoiler alerts' %}",
attachTo: {
element: "",
element: "[id^=form_review] > .tour-spoiler-alert",
on: "top",
},
highlightClass: 'tour-element-highlight',
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: `{% trans "Choose who can see your post here. Post privacy can be <strong>Public</strong> (everyone can see), <strong>Unlisted</strong> (everyone can see, but it doesn't appear in public feeds or discovery pages), <strong>Followers</strong> (only your followers can see), or <strong>Private</strong> (only you can see)" %}`,
title: "{% trans 'Post privacy' %}",
attachTo: {
element: "[id^=form_review] [id^=privacy_]",
on: "left",
},
scrollTo: true,
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'Some ebooks can be downloaded for free from external sources. They will be shown here.' %}",
title: "{% trans 'Download links' %}",
attachTo: {
element: "#tour-book-file-links",
on: "left",
},
highlightClass: 'tour-element-highlight',
scrollTo: true,
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: '<p class="notification is-warning is-light mt-3">{% trans "Continue the tour by selecting <strong>Your books</strong> from the drop down menu." %}</p>',
title: "{% trans 'Next' %}",
attachTo: {
element: () => {
let menu = document.querySelector('#navbar-dropdown')
let display = window.getComputedStyle(menu).display;
return display == 'flex' ? '#navbar-dropdown' : '.navbar-burger';
},
on: "left-end",
},
scrollTo: true,
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.complete();
},
text: "{% trans 'Ok' %}",
},
],
},
])
tour.start()
</script>

View file

@ -0,0 +1,122 @@
{% load i18n %}
<script>
const tour = new Shepherd.Tour({
exitOnEsc: true,
});
tour.addSteps([
{
text: "{% trans 'Welcome to the page for your group! This is where you can add and remove users, create user-curated lists, and edit the group details.' %}",
title: "{% trans 'Your group' %}",
buttons: [
{
action() {
disableGuidedTour(csrf_token);
return this.complete();
},
secondary: true,
text: "{% trans 'End Tour' %}",
classes: "is-danger guided-tour-cancel-button",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'Use this search box to find users to join your group. Currently users must be members of the same Bookwyrm instance and be invited by the group owner.' %}",
title: "{% trans 'Find users' %}",
attachTo: {
element: "#tour-group-member-search",
on: "right",
},
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'Your group members will appear here. The group owner is marked with a star symbol.' %}",
title: "{% trans 'Group members' %}",
attachTo: {
element: "#tour-group-owner",
on: "right",
},
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: `{% trans "As well as creating lists from the Lists page, you can create a group-curated list here on the group's homepage. Any member of the group can create a list curated by group members." %}"`,
title: "{% trans 'Group lists' %}",
attachTo: {
element: "#tour-create-list",
on: "right",
},
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: `{% trans "Congratulations, you've finished the tour! Now you know the basics, but there is lots more to explore on your own. Happy reading!" %}`,
title: "{% trans 'Finish' %}",
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
disableGuidedTour(csrf_token);
return this.next();
},
text: "{% trans 'End tour' %}",
},
],
}
])
tour.start()
</script>

View file

@ -0,0 +1,225 @@
{% load i18n %}
<script>
const initiateTour = new Shepherd.Tour({
exitOnEsc: true,
});
function checkResponsiveState(anchor) {
let menu = document.querySelector('#navbar-dropdown');
let display = window.getComputedStyle(menu).display;
return display == 'flex' ? anchor : '.navbar-burger';
}
initiateTour.addSteps([
{
text: "{% trans 'Welcome to Bookwyrm!<br><br>Would you like to take the guided tour to help you get started?' %}",
title: "{% trans 'Guided Tour' %}",
buttons: [
{
action() {
disableGuidedTour(csrf_token);
return this.next();
},
secondary: true,
text: "{% trans 'No thanks' %}",
classes: "is-danger",
},
{
action() {
this.cancel();
return homeTour.start()
},
text: "{% trans 'Yes please!' %}",
},
],
},
{
text: "{% trans 'If you ever change your mind, just click on the Guided Tour link to start your tour' %}",
title: "{% trans 'Guided Tour' %}",
attachTo: {
element: "#tour-begin",
on: "left-start",
},
scrollTo: true,
buttons: [
{
action() {
return this.complete()
},
text: "{% trans 'Ok' %}",
}
],
}
])
const homeTour = new Shepherd.Tour({
exitOnEsc: true,
});
homeTour.addSteps([
{
text: "{% trans 'Search for books, users, or lists using this search box.' %}",
title: "{% trans 'Search box' %}",
attachTo: {
element: "#tour-search",
on: "bottom",
},
highlightClass: 'tour-element-highlight',
buttons: [
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: `{% trans "Search book records by scanning an ISBN barcode using your device's camera - great when you're in the bookstore or library!" %}`,
title: "{% trans 'Barcode reader' %}",
attachTo: {
element: "#tour-barcode",
on: "bottom",
},
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'Use the <strong>Feed</strong>, <strong>Lists</strong> and <strong>Discover</strong> links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!' %}",
title: "{% trans 'Navigation Bar' %}",
attachTo: {
element: checkResponsiveState('#tour-navbar-start'),
on: "left",
},
highlightClass: 'tour-element-highlight',
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'Books on your reading status shelves will be shown here.' %}",
title: "{% trans 'Your Books' %}",
attachTo: {
element: "#tour-suggested-books",
on: "right",
},
highlightClass: 'tour-element-highlight',
scrollTo: true,
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'Updates from people you are following will appear in your <strong>Home</strong> timeline.<br><br>The <strong>Books</strong> tab shows activity from anyone, related to your books.' %}",
title: "{% trans 'Timelines' %}",
attachTo: {
element: "#feed",
on: "left",
},
highlightClass: 'tour-element-highlight',
scrollTo: true,
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'The bell will light up when you have a new notification. When it does, click on it to find out what exciting thing has happened!' %}",
title: "{% trans 'Notifications' %}",
attachTo: {
element: checkResponsiveState('#tour-notifications'),
on: "left-end",
},
scrollTo: true,
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: `{% trans "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here." %} <p class="notification is-warning is-light mt-3">{% trans "Try selecting <strong>Profile</strong> from the drop down menu to continue the tour." %}</p>`,
title: "{% trans 'Profile and settings menu' %}",
attachTo: {
element: checkResponsiveState('#navbar-dropdown'),
on: "left-end",
},
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Ok' %}",
},
],
}
]);
initiateTour.start()
</script>

View file

@ -0,0 +1,150 @@
{% load i18n %}
{% load utilities %}
{% load user_page_tags %}
<script>
const tour = new Shepherd.Tour({
exitOnEsc: true,
});
tour.addSteps([
{
text: "{% trans 'This is the lists page where you can discover book lists created by any user. A List is a collection of books, similar to a shelf.' %}<br><br>{% trans 'Shelves are for organising books for yourself, whereas Lists are generally for sharing with others.' %}",
title: "{% trans 'Lists' %}",
buttons: [
{
action() {
disableGuidedTour(csrf_token);
return this.complete();
},
secondary: true,
text: "{% trans 'End Tour' %}",
classes: "is-danger",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: `{% trans "Let's see how to create a new list." %}<p class="notification is-warning is-light mt-3">{% trans "Click the <strong>Create List</strong> button, then <strong>Next</strong> to continue the tour" %}</p>`,
title: "{% trans 'Creating a new list' %}",
attachTo: {
element: "#tour-create-list",
on: "left",
},
highlightClass: 'tour-element-highlight',
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'You must give your list a name and can optionally give it a description to help other people understand what your list is about.' %}",
title: "{% trans 'Creating a new list' %}",
attachTo: {
element: "#tour-list-name",
on: "top",
},
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'Choose who can see your list here. List privacy options work just like we saw when posting book reviews. This is a common pattern throughout Bookwyrm.' %}",
title: "{% trans 'List privacy' %}",
attachTo: {
element: "#tour-privacy-select",
on: "left",
},
scrollTo: true,
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'You can also decide how your list is to be curated - only by you, by anyone, or by a group.' %}",
title: "{% trans 'List curation' %}",
attachTo: {
element: "#tour-list-curation",
on: "left",
},
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'Next in our tour we will explore Groups!' %}",
title: "{% trans 'Next: Groups' %}",
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
this.complete();
window.location = "{% url 'user-groups' user|username %}"
},
text: "{% trans 'Take me there' %}"
},
]
}
])
tour.start()
</script>

View file

@ -0,0 +1,167 @@
{% load i18n %}
<script>
let localResult = document.querySelector(".local-book-search-result");
let remoteResult = document.querySelector(".remote-book-search-result");
let otherCatalogues = document.querySelector("#tour-load-from-other-catalogues");
let manuallyAdd = document.querySelector("#tour-manually-add-book");
const tour = new Shepherd.Tour({
exitOnEsc: true,
});
if (remoteResult) {
tour.addStep(
{
text: "{% trans 'If the book you are looking for is available on a remote catalogue such as Open Library, click on <strong>Import book</strong>.' %}",
title: "{% trans 'Searching' %}",
attachTo: {
element: "#tour-remote-search-result",
on: "top",
},
buttons: [
{
action() {
disableGuidedTour(csrf_token);
return this.complete();
},
secondary: true,
text: "{% trans 'End Tour' %}",
classes: "is-danger guided-tour-cancel-button",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
});
} else if (localResult) {
tour.addStep(
{
text: `{% trans "If the book you are looking for is already on this Bookwyrm instance, you can click on the title to go to the book's page." %}`,
title: "{% trans 'Searching' %}",
attachTo: {
element: "#tour-local-book-search-result",
on: "top",
},
buttons: [
{
action() {
disableGuidedTour(csrf_token);
return this.complete();
},
secondary: true,
text: "{% trans 'End Tour' %}",
classes: "is-danger guided-tour-cancel-button",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
});
}
if (otherCatalogues) {
tour.addStep({
text: "{% trans 'If the book you are looking for is not listed, try loading more records from other sources like Open Library or Inventaire.' %}",
title: "{% trans 'Load more records' %}",
attachTo: {
element: "#tour-load-from-other-catalogues",
on: "right",
},
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
})
}
if (manuallyAdd) {
tour.addSteps([
{
text: "{% trans 'If your book is not in the results, try adjusting your search terms.' %}",
title: "{% trans 'Search again' %}",
attachTo: {
element: '#tour-search-page-input',
on: "right",
},
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: `{% trans "If you still can't find your book, you can add a record manually." %}`,
title: "{% trans 'Add a record manally' %}",
attachTo: {
element: "#tour-manually-add-book",
on: "right",
},
scrollTo: true,
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
}])
}
tour.addStep({
text: '<p class="notification is-warning is-light mt-3">{% trans "Import, manually add, or view an existing book to continue the tour." %}<p>',
title: "{% trans 'Continue the tour' %}",
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Ok' %}",
},
],
})
tour.start()
</script>

View file

@ -0,0 +1,131 @@
{% load i18n %}
<script>
const tour = new Shepherd.Tour({
exitOnEsc: true,
});
tour.addSteps([
{
text: "{% trans 'This is the page where your books are listed, organised into shelves.' %}",
title: "{% trans 'Your books' %}",
buttons: [
{
action() {
disableGuidedTour(csrf_token);
return this.complete();
},
secondary: true,
text: "{% trans 'End Tour' %}",
classes: "is-danger",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans '<strong>To Read</strong>, <strong>Currently Reading</strong>, <strong>Read</strong>, and <strong>Stopped Reading</strong> are default shelves. When you change the reading status of a book it will automatically be moved to the matching shelf. A book can only be on one default shelf at a time.' %}",
title: "{% trans 'Reading status shelves' %}",
attachTo: {
element: "#tour-user-shelves",
on: "bottom-start",
},
highlightClass: 'tour-element-highlight',
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'You can create additional custom shelves to organise your books. A book on a custom shelf can be on any number of other shelves simultaneously, including one of the default reading status shelves' %}",
title: "{% trans 'Adding custom shelves.' %}",
attachTo: {
element: "#tour-create-shelf",
on: "left",
},
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'If you have an export file from another service like Goodreads or LibraryThing, you can import it here.' %}",
title: "{% trans 'Import from another service' %}",
attachTo: {
element: "#tour-import-books",
on: "left",
},
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: `{% trans "Now that we've explored book shelves, let's take a look at a related concept: book lists!" %}<p class="notification is-warning is-light mt-3">{% trans "Click on the <strong>Lists</strong> link here to continue the tour." %}`,
title: "{% trans 'Lists' %}",
attachTo: {
element: () => {
let menu = document.querySelector('#tour-navbar-start')
let display = window.getComputedStyle(menu).display;
return display == 'flex' ? '#tour-navbar-start' : '.navbar-burger';
},
on: "right",
},
highlightClass: 'tour-element-highlight',
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
this.complete();
},
text: "{% trans 'Ok' %}"
},
]
}
])
tour.start()
</script>

View file

@ -0,0 +1,123 @@
{% load i18n %}
<script>
const tour = new Shepherd.Tour({
exitOnEsc: true,
});
tour.addSteps([
{
text: "{% trans 'You can create or join a group with other users. Groups can share group-curated book lists, and in future will be able to do other things.' %}",
title: "{% trans 'Groups' %}",
buttons: [
{
action() {
disableGuidedTour(csrf_token);
return this.complete();
},
secondary: true,
text: "{% trans 'End Tour' %}",
classes: "is-danger",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: `{% trans "Let's create a new group!" %}<p class="notification is-warning is-light mt-3">{% trans "Click the <strong>Create group</strong> button, then <strong>Next</strong> to continue the tour" %}</p>`,
title: "{% trans 'Create group' %}",
attachTo: {
element: "#tour-create-group",
on: "left-start",
},
highlightClass: 'tour-element-highlight',
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'Give your group a name and describe what it is about. You can make user groups for any purpose - a reading group, a bunch of friends, whatever!' %}",
title: "{% trans 'Creating a group' %}",
attachTo: {
element: "#tour-group-name",
on: "right",
},
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'Groups have privacy settings just like posts and lists, except that group privacy cannot be <strong>Followers</strong>.' %}",
title: "{% trans 'Group visibility' %}",
attachTo: {
element: "#tour-privacy",
on: "left",
},
scrollTo: true,
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: `{% trans "Once you're happy with how everything is set up, click the <strong>Save</strong> button to create your new group." %}<p class="notification is-warning is-light mt-3">{% trans "Create and save a group to continue the tour." %}</p>`,
title: "{% trans 'Save your group' %}",
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.complete();
},
text: "{% trans 'Ok' %}",
},
],
},
])
tour.start()
</script>

View file

@ -0,0 +1,148 @@
{% load i18n %}
<script>
const tour = new Shepherd.Tour({
exitOnEsc: true,
});
tour.addSteps([
{
text: "{% trans 'This is your user profile. All your latest activities will be listed here. Other Bookwyrm users can see parts of this page too - what they can see depends on your privacy settings.' %}",
title: "{% trans 'User Profile' %}",
buttons: [
{
action() {
disableGuidedTour(csrf_token);
return this.complete();
},
secondary: true,
text: "{% trans 'End Tour' %}",
classes: "is-danger",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: `{% trans "This tab shows everything you have read towards your annual reading goal, or allows you to set one. You don't have to set a reading goal if that's not your thing!" %}`,
title: "{% trans 'Reading Goal' %}",
attachTo: {
element: "#tour-reading-goal",
on: "right",
},
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'Here you can see your groups, or create a new one. A group brings together Bookwyrm users and allows them to curate lists together.' %}",
title: "{% trans 'Groups' %}",
attachTo: {
element: "#tour-groups-tab",
on: "right",
},
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: "{% trans 'You can see your lists, or create a new one, here. A list is a collection of books that have something in common.' %}",
title: "{% trans 'Lists' %}",
attachTo: {
element: "#tour-lists-tab",
on: "right",
},
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: `{% trans "The Books tab shows your book shelves. We'll explore this later in the tour." %}`,
title: "{% trans 'Books' %}",
attachTo: {
element: "#tour-shelves-tab",
on: "right",
},
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.next();
},
text: "{% trans 'Next' %}",
},
],
},
{
text: `{% trans "Now you understand the basics of your profile page, let's add a book to your shelves." %}<p class="notification is-warning is-light mt-3">{% trans "Search for a title or author to continue the tour." %}</p>`,
title: "{% trans 'Find a book' %}",
attachTo: {
element: "#tour-search",
on: "right",
},
buttons: [
{
action() {
return this.back();
},
secondary: true,
text: "{% trans 'Back' %}",
},
{
action() {
return this.complete();
},
text: "{% trans 'Ok' %}",
},
],
},
])
tour.start()
</script>

View file

@ -26,7 +26,16 @@
{% trans "Password:" %} {% trans "Password:" %}
</label> </label>
<div class="control"> <div class="control">
<input type="password" name="password" maxlength="128" class="input" required="" id="id_new_password" aria-describedby="form_errors"> <input
type="password"
name="password"
maxlength="128"
class="input"
required=""
id="id_new_password"
aria-describedby="desc_password"
>
{% include 'snippets/form_errors.html' with errors_list=form.password.errors id="desc_password" %}
</div> </div>
</div> </div>
<div class="field"> <div class="field">
@ -34,7 +43,8 @@
{% trans "Confirm password:" %} {% trans "Confirm password:" %}
</label> </label>
<div class="control"> <div class="control">
<input type="password" name="confirm-password" maxlength="128" class="input" required="" id="id_confirm_password" aria-describedby="form_errors"> {{ form.confirm_password }}
{% include 'snippets/form_errors.html' with errors_list=form.confirm_password.errors id="desc_confirm_password" %}
</div> </div>
</div> </div>
<div class="field is-grouped"> <div class="field is-grouped">

View file

@ -47,7 +47,7 @@
{% else %} {% else %}
{% trans "Search for a book" as search_placeholder %} {% trans "Search for a book" as search_placeholder %}
{% endif %} {% endif %}
<input aria-label="{{ search_placeholder }}" id="search_input" class="input" type="text" name="q" placeholder="{{ search_placeholder }}" value="{{ query }}"> <input aria-label="{{ search_placeholder }}" id="tour-search" class="input" type="text" name="q" placeholder="{{ search_placeholder }}" value="{{ query }}">
</div> </div>
<div class="control"> <div class="control">
<button class="button" type="submit"> <button class="button" type="submit">
@ -58,7 +58,7 @@
</div> </div>
<div class="control"> <div class="control">
<button class="button" type="button" data-modal-open="barcode-scanner-modal"> <button class="button" type="button" data-modal-open="barcode-scanner-modal">
<span class="icon icon-barcode" title="{% trans 'Scan Barcode' %}"> <span class="icon icon-barcode" title="{% trans 'Scan Barcode' %}" id="tour-barcode">
<span class="is-sr-only">{% trans "Scan Barcode" %}</span> <span class="is-sr-only">{% trans "Scan Barcode" %}</span>
</span> </span>
</button> </button>
@ -74,7 +74,7 @@
</div> </div>
<div class="navbar-menu" id="main_nav"> <div class="navbar-menu" id="main_nav">
<div class="navbar-start"> <div class="navbar-start" id="tour-navbar-start">
{% if request.user.is_authenticated %} {% if request.user.is_authenticated %}
<a href="/#feed" class="navbar-item mt-3 py-0"> <a href="/#feed" class="navbar-item mt-3 py-0">
{% trans "Feed" %} {% trans "Feed" %}
@ -94,7 +94,7 @@
{% include 'user_menu.html' %} {% include 'user_menu.html' %}
</div> </div>
<div class="navbar-item mt-3 py-0"> <div class="navbar-item mt-3 py-0">
<a href="{% url 'notifications' %}" class="tags has-addons"> <a href="{% url 'notifications' %}" class="tags has-addons" id="tour-notifications">
<span class="tag is-medium"> <span class="tag is-medium">
<span class="icon icon-bell" title="{% trans 'Notifications' %}"> <span class="icon icon-bell" title="{% trans 'Notifications' %}">
<span class="is-sr-only">{% trans "Notifications" %}</span> <span class="is-sr-only">{% trans "Notifications" %}</span>
@ -189,6 +189,12 @@
<p> <p>
<a href="https://docs.joinbookwyrm.com/">{% trans "Documentation" %}</a> <a href="https://docs.joinbookwyrm.com/">{% trans "Documentation" %}</a>
</p> </p>
{% if request.user.is_authenticated %}
<p id="tour-begin">
<a href="/guided-tour/True">{% trans "Guided Tour" %}</a>
<noscript>(requires JavaScript)</noscript>
</p>
{% endif %}
</div> </div>
<div class="column content is-two-fifth"> <div class="column content is-two-fifth">
{% if site.support_link %} {% if site.support_link %}
@ -219,6 +225,8 @@
<script src="{% static "js/localstorage.js" %}?v={{ js_cache }}"></script> <script src="{% static "js/localstorage.js" %}?v={{ js_cache }}"></script>
<script src="{% static "js/status_cache.js" %}?v={{ js_cache }}"></script> <script src="{% static "js/status_cache.js" %}?v={{ js_cache }}"></script>
<script src="{% static "js/vendor/quagga.min.js" %}?v={{ js_cache }}"></script> <script src="{% static "js/vendor/quagga.min.js" %}?v={{ js_cache }}"></script>
<script src="{% static "js/vendor/shepherd.min.js" %}?v={{ js_cache }}"></script>
<script src="{% static "js/guided_tour.js" %}?v={{ js_cache }}"></script>
{% block scripts %}{% endblock %} {% block scripts %}{% endblock %}

View file

@ -6,7 +6,7 @@
<div class="columns"> <div class="columns">
<div class="column is-two-thirds"> <div class="column is-two-thirds">
<div class="field"> <div class="field">
<label class="label" for="id_name">{% trans "Name:" %}</label> <label class="label" for="id_name" id="tour-list-name">{% trans "Name:" %}</label>
{{ list_form.name }} {{ list_form.name }}
</div> </div>
<div class="field"> <div class="field">
@ -16,7 +16,7 @@
</div> </div>
<div class="column"> <div class="column">
<fieldset class="field"> <fieldset class="field">
<legend class="label">{% trans "List curation:" %}</legend> <legend class="label" id="tour-list-curation">{% trans "List curation:" %}</legend>
<div class="field" data-hides="list_group_selector"> <div class="field" data-hides="list_group_selector">
<input <input
@ -102,7 +102,7 @@
{% with user|username as username %} {% with user|username as username %}
{% url 'user-groups' user|username as url %} {% url 'user-groups' user|username as url %}
<div> <div>
<p>{% trans "You don't have any Groups yet!" %}</p> <p id="tour-no-groups-yet">{% trans "You don't have any Groups yet!" %}</p>
<p> <p>
<a class="help has-text-weight-normal" href="{{ url }}">{% trans "Create a Group" %}</a> <a class="help has-text-weight-normal" href="{{ url }}">{% trans "Create a Group" %}</a>
</p> </p>
@ -123,7 +123,7 @@
</div> </div>
{% endif %} {% endif %}
<div class="field has-addons"> <div class="field has-addons">
<div class="control"> <div class="control" id="tour-privacy-select">
{% include 'snippets/privacy_select.html' with current=list.privacy %} {% include 'snippets/privacy_select.html' with current=list.privacy %}
</div> </div>
<div class="control"> <div class="control">

View file

@ -16,7 +16,7 @@
</h1> </h1>
</div> </div>
{% if request.user.is_authenticated %} {% if request.user.is_authenticated %}
<div class="column is-narrow"> <div class="column is-narrow" id="tour-create-list">
{% trans "Create List" as button_text %} {% trans "Create List" as button_text %}
{% include 'snippets/toggle/open_button.html' with controls_text="create_list" icon_with_text="plus" text=button_text focus="create_list_header" %} {% include 'snippets/toggle/open_button.html' with controls_text="create_list" icon_with_text="plus" text=button_text focus="create_list_header" %}
</div> </div>
@ -54,3 +54,9 @@
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block scripts %}
{% if request.user.show_guided_tour %}
{% include 'guided_tour/lists.html' %}
{% endif %}
{% endblock %}

View file

@ -2,7 +2,7 @@
{% load humanize %} {% load humanize %}
{% related_status notification as related_status %} {% related_status notification as related_status %}
{% with related_users=notification.related_users.all.distinct %} {% get_related_users notification as related_users %}
{% with related_user_count=notification.related_users.count %} {% with related_user_count=notification.related_users.count %}
<div class="notification {% if notification.id in unread %}has-background-primary{% endif %}"> <div class="notification {% if notification.id in unread %}has-background-primary{% endif %}">
<div class="columns is-mobile {% if notification.id in unread %}has-text-white{% else %}has-text-more-muted{% endif %}"> <div class="columns is-mobile {% if notification.id in unread %}has-text-white{% else %}has-text-more-muted{% endif %}">
@ -16,7 +16,7 @@
{% if related_user_count > 1 %} {% if related_user_count > 1 %}
<div class="block"> <div class="block">
<ul class="is-flex"> <ul class="is-flex">
{% for user in related_users|slice:10 %} {% for user in related_users %}
<li class="mr-2"> <li class="mr-2">
<a href="{{ user.local_path }}"> <a href="{{ user.local_path }}">
{% include 'snippets/avatar.html' with user=user %} {% include 'snippets/avatar.html' with user=user %}
@ -28,7 +28,7 @@
{% endif %} {% endif %}
<div class="block content"> <div class="block content">
{% if related_user_count == 1 %} {% if related_user_count == 1 %}
{% with user=related_users.first %} {% with user=related_users.0 %}
{% spaceless %} {% spaceless %}
<a href="{{ user.local_path }}" class="mr-2"> <a href="{{ user.local_path }}" class="mr-2">
{% include 'snippets/avatar.html' with user=user %} {% include 'snippets/avatar.html' with user=user %}
@ -37,8 +37,8 @@
{% endwith %} {% endwith %}
{% endif %} {% endif %}
{% with related_user=related_users.first.display_name %} {% with related_user=related_users.0.display_name %}
{% with related_user_link=related_users.first.local_path %} {% with related_user_link=related_users.0.local_path %}
{% with second_user=related_users.1.display_name %} {% with second_user=related_users.1.display_name %}
{% with second_user_link=related_users.1.local_path %} {% with second_user_link=related_users.1.local_path %}
{% with other_user_count=related_user_count|add:"-1" %} {% with other_user_count=related_user_count|add:"-1" %}
@ -61,4 +61,3 @@
</div> </div>
</div> </div>
{% endwith %} {% endwith %}
{% endwith %}

View file

@ -20,34 +20,19 @@
{% csrf_token %} {% csrf_token %}
<div class="field"> <div class="field">
<label class="label" for="id_password">{% trans "Current password:" %}</label> <label class="label" for="id_password">{% trans "Current password:" %}</label>
<input {{ form.current_password }}
type="password" {% include 'snippets/form_errors.html' with errors_list=form.current_password.errors id="desc_current_password" %}
name="current_password"
maxlength="128"
class="input"
required=""
id="id_current_password"
aria-describedby="desc_current_password"
>
{% include 'snippets/form_errors.html' with errors_list=errors.current_password id="desc_current_password" %}
</div> </div>
<hr aria-hidden="true" /> <hr aria-hidden="true" />
<div class="field"> <div class="field">
<label class="label" for="id_password">{% trans "New password:" %}</label> <label class="label" for="id_password">{% trans "New password:" %}</label>
<input type="password" name="password" maxlength="128" class="input" required="" id="id_password"> {{ form.password }}
{% include 'snippets/form_errors.html' with errors_list=form.password.errors id="desc_current_password" %}
</div> </div>
<div class="field"> <div class="field">
<label class="label" for="id_confirm_password">{% trans "Confirm password:" %}</label> <label class="label" for="id_confirm_password">{% trans "Confirm password:" %}</label>
<input {{ form.confirm_password }}
type="password" {% include 'snippets/form_errors.html' with errors_list=form.confirm_password.errors id="desc_confirm_password" %}
name="confirm-password"
maxlength="128"
class="input"
required=""
id="id_confirm_password"
aria-describedby="desc_confirm_password"
>
{% include 'snippets/form_errors.html' with errors_list=errors.confirm_password id="desc_confirm_password" %}
</div> </div>
<button class="button is-primary" type="submit">{% trans "Change Password" %}</button> <button class="button is-primary" type="submit">{% trans "Change Password" %}</button>
</form> </form>

View file

@ -7,7 +7,7 @@
{% with results|first as local_results %} {% with results|first as local_results %}
<ul class="block"> <ul class="block">
{% for result in local_results.results %} {% for result in local_results.results %}
<li class="pd-4 mb-5"> <li class="pd-4 mb-5 local-book-search-result" id="tour-local-book-search-result">
<div class="columns is-mobile is-gapless mb-0"> <div class="columns is-mobile is-gapless mb-0">
<div class="column is-cover"> <div class="column is-cover">
{% include 'snippets/book_cover.html' with book=result cover_class='is-w-xs is-h-xs' %} {% include 'snippets/book_cover.html' with book=result cover_class='is-w-xs is-h-xs' %}
@ -39,7 +39,7 @@
<details class="details-panel box" open> <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 remote-book-search-result" id="tour-remote-search-result">
<span class="mb-0 title is-5"> <span class="mb-0 title is-5">
{% trans 'Results from' %} {% trans 'Results from' %}
<a href="{{ result_set.connector.base_url }}" target="_blank">{{ result_set.connector.name|default:result_set.connector.identifier }}</a> <a href="{{ result_set.connector.base_url }}" target="_blank">{{ result_set.connector.name|default:result_set.connector.identifier }}</a>
@ -102,11 +102,11 @@
<p class="block"> <p class="block">
{% if request.user.is_authenticated %} {% if request.user.is_authenticated %}
{% if not remote %} {% if not remote %}
<a href="{{ request.path }}?q={{ query }}&type=book&remote=true"> <a href="{{ request.path }}?q={{ query }}&type=book&remote=true" id="tour-load-from-other-catalogues">
{% trans "Load results from other catalogues" %} {% trans "Load results from other catalogues" %}
</a> </a>
{% else %} {% else %}
<a href="{% url 'create-book' %}"> <a href="{% url 'create-book' %}" id="tour-manually-add-book">
{% trans "Manually add book" %} {% trans "Manually add book" %}
</a> </a>
{% endif %} {% endif %}

View file

@ -13,7 +13,7 @@
<form class="block" action="{% url 'search' %}" method="GET"> <form class="block" action="{% url 'search' %}" method="GET">
<div class="field has-addons"> <div class="field has-addons">
<div class="control"> <div class="control">
<input type="text" class="input" name="q" value="{{ query }}" aria-label="{% trans 'Search query' %}"> <input type="text" class="input" name="q" value="{{ query }}" aria-label="{% trans 'Search query' %}" id="tour-search-page-input">
</div> </div>
<div class="control"> <div class="control">
<div class="select" aria-label="{% trans 'Search type' %}"> <div class="select" aria-label="{% trans 'Search type' %}">
@ -52,7 +52,7 @@
</ul> </ul>
</nav> </nav>
<section class="block"> <section class="block" id="search-results-block">
{% if not results %} {% if not results %}
<p> <p>
<em>{% blocktrans %}No results found for "{{ query }}"{% endblocktrans %}</em> <em>{% blocktrans %}No results found for "{{ query }}"{% endblocktrans %}</em>
@ -68,3 +68,9 @@
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block scripts %}
{% if request.user.show_guided_tour %}
{% include 'guided_tour/search.html' %}
{% endif %}
{% endblock %}

View file

@ -32,7 +32,7 @@
<nav class="block columns is-mobile scroll-x"> <nav class="block columns is-mobile scroll-x">
<div class="column pr-0"> <div class="column pr-0">
<div class="tabs"> <div class="tabs" id="tour-user-shelves">
<ul> <ul>
<li class="{% if shelf.identifier == 'all' %}is-active{% endif %}"> <li class="{% if shelf.identifier == 'all' %}is-active{% endif %}">
<a href="{% url 'user-shelves' user|username %}"{% if shelf.identifier == 'all' %} aria-current="page"{% endif %}> <a href="{% url 'user-shelves' user|username %}"{% if shelf.identifier == 'all' %} aria-current="page"{% endif %}>
@ -59,7 +59,7 @@
<div class="tabs"> <div class="tabs">
<ul> <ul>
<li> <li>
<a href="{% url 'import' %}"> <a href="{% url 'import' %}" id="tour-import-books">
<span class="icon icon-list" aria-hidden="true"></span> <span class="icon icon-list" aria-hidden="true"></span>
<span>{% trans "Import Books" %}</span> <span>{% trans "Import Books" %}</span>
</a> </a>
@ -68,7 +68,7 @@
</div> </div>
</div> </div>
<div class="column is-narrow"> <div class="column is-narrow" id="tour-create-shelf">
{% trans "Create shelf" as button_text %} {% trans "Create shelf" as button_text %}
{% include 'snippets/toggle/open_button.html' with text=button_text icon_with_text="plus" controls_text="create_shelf_form" focus="create_shelf_form_header" %} {% include 'snippets/toggle/open_button.html' with text=button_text icon_with_text="plus" controls_text="create_shelf_form" focus="create_shelf_form_header" %}
</div> </div>
@ -216,3 +216,9 @@
{% include 'snippets/pagination.html' with page=books path=request.path %} {% include 'snippets/pagination.html' with page=books path=request.path %}
</div> </div>
{% endblock %} {% endblock %}
{% block scripts %}
{% if request.user.show_guided_tour %}
{% include 'guided_tour/user_books.html' %}
{% endif %}
{% endblock %}

View file

@ -3,7 +3,7 @@
{% load utilities %} {% load utilities %}
{% with status_type=request.GET.status_type %} {% with status_type=request.GET.status_type %}
<div class="tab-group"> <div class="tab-group tour-review-comment-quote">
<div class="bw-tabs is-boxed" role="tablist"> <div class="bw-tabs is-boxed" role="tablist">
<a <a
class="{% if status_type == 'review' or not status_type %}is-active{% endif %}" class="{% if status_type == 'review' or not status_type %}is-active{% endif %}"

View file

@ -1,5 +1,5 @@
{% load i18n %} {% load i18n %}
<div class="field is-relative"> <div class="field is-relative tour-spoiler-alert">
<details <details
{% if reply_parent.content_warning or draft.content_warning %}open{% endif %} {% if reply_parent.content_warning or draft.content_warning %}open{% endif %}
> >

View file

@ -1,6 +1,6 @@
{% load i18n %} {% load i18n %}
{% load utilities %} {% load utilities %}
<div class="select {{ class }}"> <div class="select {{ class }}" id="tour-privacy">
{% firstof privacy_uuid 0|uuid as uuid %} {% firstof privacy_uuid 0|uuid as uuid %}
{% if not no_label %} {% if not no_label %}
<label class="is-sr-only" for="privacy_{{ uuid }}">{% trans "Post privacy" %}</label> <label class="is-sr-only" for="privacy_{{ uuid }}">{% trans "Post privacy" %}</label>

View file

@ -13,7 +13,7 @@
</h1> </h1>
</div> </div>
{% if is_self %} {% if is_self %}
<div class="column is-narrow"> <div class="column is-narrow" id="tour-create-group">
{% trans "Create group" as button_text %} {% trans "Create group" as button_text %}
{% include 'snippets/toggle/open_button.html' with controls_text="create_group" icon_with_text="plus" text=button_text %} {% include 'snippets/toggle/open_button.html' with controls_text="create_group" icon_with_text="plus" text=button_text %}
</div> </div>
@ -35,3 +35,9 @@
{% include 'snippets/pagination.html' with page=user.memberships path=path %} {% include 'snippets/pagination.html' with page=user.memberships path=path %}
</div> </div>
{% endblock %} {% endblock %}
{% block scripts %}
{% if request.user.show_guided_tour %}
{% include 'guided_tour/user_groups.html' %}
{% endif %}
{% endblock %}

View file

@ -43,7 +43,7 @@
{% include 'ostatus/remote_follow_button.html' with user=user %} {% include 'ostatus/remote_follow_button.html' with user=user %}
{% endif %} {% endif %}
{% if is_self and user.follower_requests.all %} {% if is_self and user.active_follower_requests.all %}
<div class="follow-requests"> <div class="follow-requests">
<h2>{% trans "Follow Requests" %}</h2> <h2>{% trans "Follow Requests" %}</h2>
{% for requester in user.follower_requests.all %} {% for requester in user.follower_requests.all %}
@ -69,25 +69,25 @@
{% if is_self or user.goal.exists %} {% if is_self or user.goal.exists %}
{% now 'Y' as year %} {% now 'Y' as year %}
{% url 'user-goal' user|username year as url %} {% url 'user-goal' user|username year as url %}
<li{% if url in request.path %} class="is-active"{% endif %}> <li{% if url in request.path %} class="is-active"{% endif %} id="tour-reading-goal">
<a href="{{ url }}">{% trans "Reading Goal" %}</a> <a href="{{ url }}">{% trans "Reading Goal" %}</a>
</li> </li>
{% endif %} {% endif %}
{% if is_self or user|has_groups %} {% if is_self or user|has_groups %}
{% url 'user-groups' user|username as url %} {% url 'user-groups' user|username as url %}
<li{% if url in request.path %} class="is-active"{% endif %}> <li{% if url in request.path %} class="is-active"{% endif %} id="tour-groups-tab">
<a href="{{ url }}">{% trans "Groups" %}</a> <a href="{{ url }}">{% trans "Groups" %}</a>
</li> </li>
{% endif %} {% endif %}
{% if is_self or user.list_set.exists %} {% if is_self or user.list_set.exists %}
{% url 'user-lists' user|username as url %} {% url 'user-lists' user|username as url %}
<li{% if url in request.path %} class="is-active"{% endif %}> <li{% if url in request.path %} class="is-active"{% endif %} id="tour-lists-tab">
<a href="{{ url }}">{% trans "Lists" %}</a> <a href="{{ url }}">{% trans "Lists" %}</a>
</li> </li>
{% endif %} {% endif %}
{% if user.shelf_set.exists %} {% if user.shelf_set.exists %}
{% url 'user-shelves' user|username as url %} {% url 'user-shelves' user|username as url %}
<li{% if url in request.path %} class="is-active"{% endif %}> <li{% if url in request.path %} class="is-active"{% endif %} id="tour-shelves-tab">
<a href="{{ url }}">{% trans "Books" %}</a> <a href="{{ url }}">{% trans "Books" %}</a>
</li> </li>
{% endif %} {% endif %}

View file

@ -86,3 +86,9 @@
</div> </div>
{% endblock %} {% endblock %}
{% block scripts %}
{% if request.user.show_guided_tour %}
{% include 'guided_tour/user_profile.html' %}
{% endif %}
{% endblock %}

View file

@ -12,3 +12,9 @@ def related_status(notification):
if not notification.related_status: if not notification.related_status:
return None return None
return load_subclass(notification.related_status) return load_subclass(notification.related_status)
@register.simple_tag(takes_context=False)
def get_related_users(notification):
"""Who actually was it who liked your post"""
return list(reversed(list(notification.related_users.distinct())))[:10]

View file

@ -104,7 +104,9 @@ class PasswordViews(TestCase):
"""reset from code""" """reset from code"""
view = views.PasswordReset.as_view() view = views.PasswordReset.as_view()
code = models.PasswordReset.objects.create(user=self.local_user) code = models.PasswordReset.objects.create(user=self.local_user)
request = self.factory.post("", {"password": "hi", "confirm-password": "hi"}) request = self.factory.post(
"", {"password": "longwordsecure", "confirm_password": "longwordsecure"}
)
with patch("bookwyrm.views.landing.password.login"): with patch("bookwyrm.views.landing.password.login"):
resp = view(request, code.code) resp = view(request, code.code)
self.assertEqual(resp.status_code, 302) self.assertEqual(resp.status_code, 302)
@ -114,7 +116,9 @@ class PasswordViews(TestCase):
"""reset from code""" """reset from code"""
view = views.PasswordReset.as_view() view = views.PasswordReset.as_view()
models.PasswordReset.objects.create(user=self.local_user) models.PasswordReset.objects.create(user=self.local_user)
request = self.factory.post("", {"password": "hi", "confirm-password": "hi"}) request = self.factory.post(
"", {"password": "longwordsecure", "confirm_password": "longwordsecure"}
)
resp = view(request, "jhgdkfjgdf") resp = view(request, "jhgdkfjgdf")
validate_html(resp.render()) validate_html(resp.render())
self.assertTrue(models.PasswordReset.objects.exists()) self.assertTrue(models.PasswordReset.objects.exists())
@ -123,7 +127,18 @@ class PasswordViews(TestCase):
"""reset from code""" """reset from code"""
view = views.PasswordReset.as_view() view = views.PasswordReset.as_view()
code = models.PasswordReset.objects.create(user=self.local_user) code = models.PasswordReset.objects.create(user=self.local_user)
request = self.factory.post("", {"password": "hi", "confirm-password": "hihi"}) request = self.factory.post(
"", {"password": "longwordsecure", "confirm_password": "hihi"}
)
resp = view(request, code.code)
validate_html(resp.render())
self.assertTrue(models.PasswordReset.objects.exists())
def test_password_reset_invalid(self):
"""reset from code"""
view = views.PasswordReset.as_view()
code = models.PasswordReset.objects.create(user=self.local_user)
request = self.factory.post("", {"password": "a", "confirm_password": "a"})
resp = view(request, code.code) resp = view(request, code.code)
validate_html(resp.render()) validate_html(resp.render())
self.assertTrue(models.PasswordReset.objects.exists()) self.assertTrue(models.PasswordReset.objects.exists())

View file

@ -122,6 +122,17 @@ class RegisterViews(TestCase):
self.assertEqual(models.User.objects.count(), 1) self.assertEqual(models.User.objects.count(), 1)
validate_html(response.render()) validate_html(response.render())
def test_register_invalid_password(self, *_):
"""gotta have an email"""
view = views.Register.as_view()
self.assertEqual(models.User.objects.count(), 1)
request = self.factory.post(
"register/", {"localname": "nutria", "password": "password", "email": "aa"}
)
response = view(request)
self.assertEqual(models.User.objects.count(), 1)
validate_html(response.render())
def test_register_error_and_invite(self, *_): def test_register_error_and_invite(self, *_):
"""redirect to the invite page""" """redirect to the invite page"""
view = views.Register.as_view() view = views.Register.as_view()

View file

@ -3,6 +3,7 @@ import json
from unittest.mock import patch from unittest.mock import patch
from django.contrib.auth.models import AnonymousUser from django.contrib.auth.models import AnonymousUser
from django.core.exceptions import PermissionDenied
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
@ -28,6 +29,9 @@ class ListViews(TestCase):
localname="mouse", localname="mouse",
remote_id="https://example.com/users/mouse", remote_id="https://example.com/users/mouse",
) )
self.another_user = models.User.objects.create_user(
"rat@local.com", "rat@rat.com", "ratword", local=True, localname="rat"
)
self.anonymous_user = AnonymousUser self.anonymous_user = AnonymousUser
self.anonymous_user.is_authenticated = False self.anonymous_user.is_authenticated = False
@ -167,3 +171,20 @@ class ListViews(TestCase):
self.assertEqual(new_list.description, "wow") self.assertEqual(new_list.description, "wow")
self.assertEqual(new_list.privacy, "unlisted") self.assertEqual(new_list.privacy, "unlisted")
self.assertEqual(new_list.curation, "open") self.assertEqual(new_list.curation, "open")
def test_lists_create_permission_denied(self):
"""create list view"""
view = views.Lists.as_view()
request = self.factory.post(
"",
{
"name": "A list",
"description": "wow",
"privacy": "unlisted",
"curation": "open",
"user": self.local_user.id,
},
)
request.user = self.another_user
with self.assertRaises(PermissionDenied):
view(request)

View file

@ -46,14 +46,15 @@ class ChangePasswordViews(TestCase):
"", "",
{ {
"current_password": "password", "current_password": "password",
"password": "hi", "password": "longwordsecure",
"confirm-password": "hi", "confirm_password": "longwordsecure",
}, },
) )
request.user = self.local_user request.user = self.local_user
with patch("bookwyrm.views.preferences.change_password.login"): with patch("bookwyrm.views.preferences.change_password.login"):
result = view(request) result = view(request)
validate_html(result.render()) validate_html(result.render())
self.local_user.refresh_from_db()
self.assertNotEqual(self.local_user.password, password_hash) self.assertNotEqual(self.local_user.password, password_hash)
def test_password_change_wrong_current(self): def test_password_change_wrong_current(self):
@ -64,13 +65,14 @@ class ChangePasswordViews(TestCase):
"", "",
{ {
"current_password": "not my password", "current_password": "not my password",
"password": "hi", "password": "longwordsecure",
"confirm-password": "hihi", "confirm_password": "hihi",
}, },
) )
request.user = self.local_user request.user = self.local_user
result = view(request) result = view(request)
validate_html(result.render()) validate_html(result.render())
self.local_user.refresh_from_db()
self.assertEqual(self.local_user.password, password_hash) self.assertEqual(self.local_user.password, password_hash)
def test_password_change_mismatch(self): def test_password_change_mismatch(self):
@ -81,11 +83,30 @@ class ChangePasswordViews(TestCase):
"", "",
{ {
"current_password": "password", "current_password": "password",
"password": "hi", "password": "longwordsecure",
"confirm-password": "hihi", "confirm_password": "hihi",
}, },
) )
request.user = self.local_user request.user = self.local_user
result = view(request) result = view(request)
validate_html(result.render()) validate_html(result.render())
self.local_user.refresh_from_db()
self.assertEqual(self.local_user.password, password_hash)
def test_password_change_invalid(self):
"""change password"""
view = views.ChangePassword.as_view()
password_hash = self.local_user.password
request = self.factory.post(
"",
{
"current_password": "password",
"password": "hi",
"confirm_password": "hi",
},
)
request.user = self.local_user
result = view(request)
validate_html(result.render())
self.local_user.refresh_from_db()
self.assertEqual(self.local_user.password, password_hash) self.assertEqual(self.local_user.password, password_hash)

View file

@ -32,6 +32,14 @@ class ShelfActionViews(TestCase):
localname="mouse", localname="mouse",
remote_id="https://example.com/users/mouse", remote_id="https://example.com/users/mouse",
) )
self.another_user = models.User.objects.create_user(
"rat@local.com",
"rat@rat.com",
"ratword",
local=True,
localname="rat",
remote_id="https://example.com/users/rat",
)
self.work = models.Work.objects.create(title="Test Work") self.work = models.Work.objects.create(title="Test Work")
self.book = models.Edition.objects.create( self.book = models.Edition.objects.create(
title="Example Edition", title="Example Edition",
@ -66,7 +74,7 @@ class ShelfActionViews(TestCase):
def test_shelve_to_read(self, *_): def test_shelve_to_read(self, *_):
"""special behavior for the to-read shelf""" """special behavior for the to-read shelf"""
shelf = models.Shelf.objects.get(identifier="to-read") shelf = models.Shelf.objects.get(user=self.local_user, identifier="to-read")
request = self.factory.post( request = self.factory.post(
"", {"book": self.book.id, "shelf": shelf.identifier} "", {"book": self.book.id, "shelf": shelf.identifier}
) )
@ -79,7 +87,7 @@ class ShelfActionViews(TestCase):
def test_shelve_reading(self, *_): def test_shelve_reading(self, *_):
"""special behavior for the reading shelf""" """special behavior for the reading shelf"""
shelf = models.Shelf.objects.get(identifier="reading") shelf = models.Shelf.objects.get(user=self.local_user, identifier="reading")
request = self.factory.post( request = self.factory.post(
"", {"book": self.book.id, "shelf": shelf.identifier} "", {"book": self.book.id, "shelf": shelf.identifier}
) )
@ -92,7 +100,7 @@ class ShelfActionViews(TestCase):
def test_shelve_read(self, *_): def test_shelve_read(self, *_):
"""special behavior for the read shelf""" """special behavior for the read shelf"""
shelf = models.Shelf.objects.get(identifier="read") shelf = models.Shelf.objects.get(user=self.local_user, identifier="read")
request = self.factory.post( request = self.factory.post(
"", {"book": self.book.id, "shelf": shelf.identifier} "", {"book": self.book.id, "shelf": shelf.identifier}
) )
@ -105,11 +113,13 @@ class ShelfActionViews(TestCase):
def test_shelve_read_with_change_shelf(self, *_): def test_shelve_read_with_change_shelf(self, *_):
"""special behavior for the read shelf""" """special behavior for the read shelf"""
previous_shelf = models.Shelf.objects.get(identifier="reading") previous_shelf = models.Shelf.objects.get(
user=self.local_user, identifier="reading"
)
models.ShelfBook.objects.create( models.ShelfBook.objects.create(
shelf=previous_shelf, user=self.local_user, book=self.book shelf=previous_shelf, user=self.local_user, book=self.book
) )
shelf = models.Shelf.objects.get(identifier="read") shelf = models.Shelf.objects.get(user=self.local_user, identifier="read")
request = self.factory.post( request = self.factory.post(
"", "",
@ -160,11 +170,24 @@ class ShelfActionViews(TestCase):
views.create_shelf(request) views.create_shelf(request)
shelf = models.Shelf.objects.get(name="new shelf name") shelf = models.Shelf.objects.get(user=self.local_user, name="new shelf name")
self.assertEqual(shelf.privacy, "unlisted") self.assertEqual(shelf.privacy, "unlisted")
self.assertEqual(shelf.description, "desc") self.assertEqual(shelf.description, "desc")
self.assertEqual(shelf.user, self.local_user) self.assertEqual(shelf.user, self.local_user)
def test_create_shelf_wrong_user(self, *_):
"""a brand new custom shelf"""
form = forms.ShelfForm()
form.data["user"] = self.another_user.id
form.data["name"] = "new shelf name"
form.data["description"] = "desc"
form.data["privacy"] = "unlisted"
request = self.factory.post("", form.data)
request.user = self.local_user
with self.assertRaises(PermissionDenied):
views.create_shelf(request)
def test_delete_shelf(self, *_): def test_delete_shelf(self, *_):
"""delete a brand new custom shelf""" """delete a brand new custom shelf"""
request = self.factory.post("") request = self.factory.post("")
@ -177,18 +200,8 @@ class ShelfActionViews(TestCase):
def test_delete_shelf_unauthorized(self, *_): def test_delete_shelf_unauthorized(self, *_):
"""delete a brand new custom shelf""" """delete a brand new custom shelf"""
with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch(
"bookwyrm.activitystreams.populate_stream_task.delay"
), patch("bookwyrm.lists_stream.populate_lists_task.delay"):
rat = models.User.objects.create_user(
"rat@local.com",
"rat@mouse.mouse",
"password",
local=True,
localname="rat",
)
request = self.factory.post("") request = self.factory.post("")
request.user = rat request.user = self.another_user
with self.assertRaises(PermissionDenied): with self.assertRaises(PermissionDenied):
views.delete_shelf(request, self.shelf.id) views.delete_shelf(request, self.shelf.id)

View file

@ -10,12 +10,13 @@ from bookwyrm.settings import DOMAIN
from bookwyrm.tests.validate_html import validate_html from bookwyrm.tests.validate_html import validate_html
# pylint: disable=invalid-name
@patch("bookwyrm.suggested_users.rerank_suggestions_task.delay") @patch("bookwyrm.suggested_users.rerank_suggestions_task.delay")
@patch("bookwyrm.activitystreams.populate_stream_task.delay") @patch("bookwyrm.activitystreams.populate_stream_task.delay")
@patch("bookwyrm.lists_stream.populate_lists_task.delay") @patch("bookwyrm.lists_stream.populate_lists_task.delay")
@patch("bookwyrm.activitystreams.remove_status_task.delay") @patch("bookwyrm.activitystreams.remove_status_task.delay")
@patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async") @patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async")
# pylint: disable=invalid-name
# pylint: disable=too-many-public-methods
class StatusViews(TestCase): class StatusViews(TestCase):
"""viewing and creating statuses""" """viewing and creating statuses"""
@ -75,6 +76,44 @@ class StatusViews(TestCase):
self.assertEqual(status.book, self.book) self.assertEqual(status.book, self.book)
self.assertIsNone(status.edited_date) self.assertIsNone(status.edited_date)
def test_create_status_rating(self, *_):
"""create a status"""
view = views.CreateStatus.as_view()
form = forms.RatingForm(
{
"user": self.local_user.id,
"rating": 4,
"book": self.book.id,
"privacy": "public",
}
)
request = self.factory.post("", form.data)
request.user = self.local_user
view(request, "rating")
status = models.ReviewRating.objects.get()
self.assertEqual(status.user, self.local_user)
self.assertEqual(status.book, self.book)
self.assertEqual(status.rating, 4.0)
self.assertIsNone(status.edited_date)
def test_create_status_wrong_user(self, *_):
"""You can't compose statuses for someone else"""
view = views.CreateStatus.as_view()
form = forms.CommentForm(
{
"content": "hi",
"user": self.remote_user.id,
"book": self.book.id,
"privacy": "public",
}
)
request = self.factory.post("", form.data)
request.user = self.local_user
with self.assertRaises(PermissionDenied):
view(request, "comment")
def test_create_status_reply(self, *_): def test_create_status_reply(self, *_):
"""create a status in reply to an existing status""" """create a status in reply to an existing status"""
view = views.CreateStatus.as_view() view = views.CreateStatus.as_view()

View file

@ -640,4 +640,5 @@ urlpatterns = [
re_path( re_path(
r"^summary_revoke_key/?$", views.summary_revoke_key, name="summary-revoke-key" r"^summary_revoke_key/?$", views.summary_revoke_key, name="summary-revoke-key"
), ),
path("guided-tour/<tour>", views.toggle_guided_tour),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

View file

@ -127,7 +127,7 @@ from .setup import InstanceConfig, CreateAdmin
from .status import CreateStatus, EditStatus, DeleteStatus, update_progress from .status import CreateStatus, EditStatus, DeleteStatus, update_progress
from .status import edit_readthrough from .status import edit_readthrough
from .updates import get_notification_count, get_unread_status_string from .updates import get_notification_count, get_unread_status_string
from .user import User, hide_suggestions, user_redirect from .user import User, hide_suggestions, user_redirect, toggle_guided_tour
from .relationships import Relationships from .relationships import Relationships
from .wellknown import * from .wellknown import *
from .annual_summary import ( from .annual_summary import (

View file

@ -65,6 +65,7 @@ class Feed(View):
"filters_applied": filters_applied, "filters_applied": filters_applied,
"path": f"/{tab['key']}", "path": f"/{tab['key']}",
"annual_summary_year": get_annual_summary_year(), "annual_summary_year": get_annual_summary_year(),
"has_tour": True,
}, },
} }
return TemplateResponse(request, "feed/feed.html", data) return TemplateResponse(request, "feed/feed.html", data)

View file

@ -70,7 +70,7 @@ class Goal(View):
privacy=goal.privacy, privacy=goal.privacy,
) )
return redirect(request.headers.get("Referer", "/")) return redirect("user-goal", request.user.localname, year)
@require_POST @require_POST
@ -79,4 +79,4 @@ def hide_goal(request):
"""don't keep bugging people to set a goal""" """don't keep bugging people to set a goal"""
request.user.show_goal = False request.user.show_goal = False
request.user.save(broadcast=False, update_fields=["show_goal"]) request.user.save(broadcast=False, update_fields=["show_goal"])
return redirect(request.headers.get("Referer", "/")) return redirect("/")

View file

@ -28,7 +28,7 @@ class Favorite(View):
if is_api_request(request): if is_api_request(request):
return HttpResponse() return HttpResponse()
return redirect(request.headers.get("Referer", "/")) return redirect("/")
@method_decorator(login_required, name="dispatch") @method_decorator(login_required, name="dispatch")
@ -48,7 +48,7 @@ class Unfavorite(View):
favorite.delete() favorite.delete()
if is_api_request(request): if is_api_request(request):
return HttpResponse() return HttpResponse()
return redirect(request.headers.get("Referer", "/")) return redirect("/")
@method_decorator(login_required, name="dispatch") @method_decorator(login_required, name="dispatch")
@ -67,7 +67,7 @@ class Boost(View):
boosted_status=status, user=request.user boosted_status=status, user=request.user
).exists(): ).exists():
# you already boosted that. # you already boosted that.
return redirect(request.headers.get("Referer", "/")) return redirect("/")
models.Boost.objects.create( models.Boost.objects.create(
boosted_status=status, boosted_status=status,
@ -76,7 +76,7 @@ class Boost(View):
) )
if is_api_request(request): if is_api_request(request):
return HttpResponse() return HttpResponse()
return redirect(request.headers.get("Referer", "/")) return redirect("/")
@method_decorator(login_required, name="dispatch") @method_decorator(login_required, name="dispatch")
@ -94,4 +94,4 @@ class Unboost(View):
boost.delete() boost.delete()
if is_api_request(request): if is_api_request(request):
return HttpResponse() return HttpResponse()
return redirect(request.headers.get("Referer", "/")) return redirect("/")

View file

@ -58,7 +58,7 @@ class Login(View):
user.update_active_date() user.update_active_date()
if request.POST.get("first_login"): if request.POST.get("first_login"):
return set_language(user, redirect("get-started-profile")) return set_language(user, redirect("get-started-profile"))
return set_language(user, redirect(request.GET.get("next", "/"))) return set_language(user, redirect("/"))
# maybe the user is pending email confirmation # maybe the user is pending email confirmation
if models.User.objects.filter( if models.User.objects.filter(

View file

@ -5,7 +5,7 @@ from django.shortcuts import redirect
from django.template.response import TemplateResponse from django.template.response import TemplateResponse
from django.views import View from django.views import View
from bookwyrm import models from bookwyrm import forms, models
from bookwyrm.emailing import password_reset_email from bookwyrm.emailing import password_reset_email
@ -57,7 +57,8 @@ class PasswordReset(View):
except models.PasswordReset.DoesNotExist: except models.PasswordReset.DoesNotExist:
raise PermissionDenied() raise PermissionDenied()
return TemplateResponse(request, "landing/password_reset.html", {"code": code}) data = {"code": code, "form": forms.PasswordResetForm()}
return TemplateResponse(request, "landing/password_reset.html", data)
def post(self, request, code): def post(self, request, code):
"""allow a user to change their password through an emailed token""" """allow a user to change their password through an emailed token"""
@ -68,14 +69,12 @@ class PasswordReset(View):
return TemplateResponse(request, "landing/password_reset.html", data) return TemplateResponse(request, "landing/password_reset.html", data)
user = reset_code.user user = reset_code.user
form = forms.PasswordResetForm(request.POST, instance=user)
new_password = request.POST.get("password") if not form.is_valid():
confirm_password = request.POST.get("confirm-password") data = {"code": code, "form": form}
if new_password != confirm_password:
data = {"errors": ["Passwords do not match"]}
return TemplateResponse(request, "landing/password_reset.html", data) return TemplateResponse(request, "landing/password_reset.html", data)
new_password = form.cleaned_data["password"]
user.set_password(new_password) user.set_password(new_password)
user.save(broadcast=False, update_fields=["password"]) user.save(broadcast=False, update_fields=["password"])
login(request, user) login(request, user)

View file

@ -134,19 +134,19 @@ class ConfirmEmail(View):
class ResendConfirmEmail(View): class ResendConfirmEmail(View):
"""you probably didn't get the email because celery is slow but you can try this""" """you probably didn't get the email because celery is slow but you can try this"""
def get(self, request, error=False): def get(self, request):
"""resend link landing page""" """resend link landing page"""
return TemplateResponse(request, "confirm_email/resend.html", {"error": error}) return TemplateResponse(request, "confirm_email/resend.html")
def post(self, request): def post(self, request):
"""resend confirmation link""" """resend confirmation link"""
email = request.POST.get("email") email = request.POST.get("email")
try: try:
user = models.User.objects.get(email=email) user = models.User.objects.get(email=email)
except models.User.DoesNotExist:
return self.get(request, error=True)
emailing.email_confirmation_email(user) emailing.email_confirmation_email(user)
except models.User.DoesNotExist:
pass
return TemplateResponse( return TemplateResponse(
request, "confirm_email/confirm_email.html", {"valid": True} request, "confirm_email/confirm_email.html", {"valid": True}
) )

View file

@ -17,7 +17,10 @@ class Lists(View):
def get(self, request): def get(self, request):
"""display a book list""" """display a book list"""
if request.user.is_authenticated:
lists = ListsStream().get_list_stream(request.user) lists = ListsStream().get_list_stream(request.user)
else:
lists = models.List.objects.filter(privacy="public")
paginated = Paginator(lists, 12) paginated = Paginator(lists, 12)
data = { data = {
"lists": paginated.get_page(request.GET.get("page")), "lists": paginated.get_page(request.GET.get("page")),
@ -33,11 +36,13 @@ class Lists(View):
form = forms.ListForm(request.POST) form = forms.ListForm(request.POST)
if not form.is_valid(): if not form.is_valid():
return redirect("lists") return redirect("lists")
book_list = form.save() book_list = form.save(commit=False)
book_list.raise_not_editable(request.user)
# list should not have a group if it is not group curated # list should not have a group if it is not group curated
if not book_list.curation == "group": if not book_list.curation == "group":
book_list.group = None book_list.group = None
book_list.save(broadcast=False) book_list.save()
return redirect(book_list.local_path) return redirect(book_list.local_path)

View file

@ -3,11 +3,10 @@ from django.contrib.auth import login
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.template.response import TemplateResponse from django.template.response import TemplateResponse
from django.utils.decorators import method_decorator from django.utils.decorators import method_decorator
from django.utils.translation import gettext_lazy as _
from django.views import View from django.views import View
from django.views.decorators.debug import sensitive_variables, sensitive_post_parameters from django.views.decorators.debug import sensitive_variables, sensitive_post_parameters
from bookwyrm import models from bookwyrm import forms
# pylint: disable= no-self-use # pylint: disable= no-self-use
@ -17,33 +16,24 @@ class ChangePassword(View):
def get(self, request): def get(self, request):
"""change password page""" """change password page"""
data = {"user": request.user} data = {"form": forms.ChangePasswordForm()}
return TemplateResponse(request, "preferences/change_password.html", data) return TemplateResponse(request, "preferences/change_password.html", data)
@sensitive_variables("new_password") @method_decorator(sensitive_variables("new_password"))
@sensitive_variables("confirm_password")
@method_decorator(sensitive_post_parameters("current_password")) @method_decorator(sensitive_post_parameters("current_password"))
@method_decorator(sensitive_post_parameters("password")) @method_decorator(sensitive_post_parameters("password"))
@method_decorator(sensitive_post_parameters("confirm__password")) @method_decorator(sensitive_post_parameters("confirm_password"))
def post(self, request): def post(self, request):
"""allow a user to change their password""" """allow a user to change their password"""
data = {"user": request.user} form = forms.ChangePasswordForm(request.POST, instance=request.user)
if not form.is_valid():
# check current password data = {"form": form}
user = models.User.objects.get(id=request.user.id)
if not user.check_password(request.POST.get("current_password")):
data["errors"] = {"current_password": [_("Incorrect password")]}
return TemplateResponse(request, "preferences/change_password.html", data)
new_password = request.POST.get("password")
confirm_password = request.POST.get("confirm-password")
if new_password != confirm_password:
data["errors"] = {"confirm_password": [_("Password does not match")]}
return TemplateResponse(request, "preferences/change_password.html", data) return TemplateResponse(request, "preferences/change_password.html", data)
new_password = form.cleaned_data["password"]
request.user.set_password(new_password) request.user.set_password(new_password)
request.user.save(broadcast=False, update_fields=["password"]) request.user.save(broadcast=False, update_fields=["password"])
login(request, request.user) login(request, request.user)
data["success"] = True data = {"success": True, "form": forms.ChangePasswordForm()}
return TemplateResponse(request, "preferences/change_password.html", data) return TemplateResponse(request, "preferences/change_password.html", data)

View file

@ -79,13 +79,11 @@ class ReadingStatus(View):
current_status_shelfbook = shelves[0] if shelves else None current_status_shelfbook = shelves[0] if shelves else None
# checking the referer prevents redirecting back to the modal page # checking the referer prevents redirecting back to the modal page
referer = request.headers.get("Referer", "/")
referer = "/" if "reading-status" in referer else referer
if current_status_shelfbook is not None: if current_status_shelfbook is not None:
if current_status_shelfbook.shelf.identifier != desired_shelf.identifier: if current_status_shelfbook.shelf.identifier != desired_shelf.identifier:
current_status_shelfbook.delete() current_status_shelfbook.delete()
else: # It already was on the shelf else: # It already was on the shelf
return redirect(referer) return redirect("/")
models.ShelfBook.objects.create( models.ShelfBook.objects.create(
book=book, shelf=desired_shelf, user=request.user book=book, shelf=desired_shelf, user=request.user
@ -123,7 +121,7 @@ class ReadingStatus(View):
if is_api_request(request): if is_api_request(request):
return HttpResponse() return HttpResponse()
return redirect(referer) return redirect("/")
@method_decorator(login_required, name="dispatch") @method_decorator(login_required, name="dispatch")
@ -205,7 +203,7 @@ def delete_readthrough(request):
readthrough.raise_not_deletable(request.user) readthrough.raise_not_deletable(request.user)
readthrough.delete() readthrough.delete()
return redirect(request.headers.get("Referer", "/")) return redirect("/")
@login_required @login_required
@ -216,4 +214,4 @@ def delete_progressupdate(request):
update.raise_not_deletable(request.user) update.raise_not_deletable(request.user)
update.delete() update.delete()
return redirect(request.headers.get("Referer", "/")) return redirect("/")

View file

@ -13,9 +13,11 @@ def create_shelf(request):
"""user generated shelves""" """user generated shelves"""
form = forms.ShelfForm(request.POST) form = forms.ShelfForm(request.POST)
if not form.is_valid(): if not form.is_valid():
return redirect(request.headers.get("Referer", "/")) return redirect("user-shelves", request.user.localname)
shelf = form.save() shelf = form.save(commit=False)
shelf.raise_not_editable(request.user)
shelf.save()
return redirect(shelf.local_path) return redirect(shelf.local_path)
@ -70,7 +72,7 @@ def shelve(request):
): ):
current_read_status_shelfbook.delete() current_read_status_shelfbook.delete()
else: # It is already on the shelf else: # It is already on the shelf
return redirect(request.headers.get("Referer", "/")) return redirect("/")
# create the new shelf-book entry # create the new shelf-book entry
models.ShelfBook.objects.create( models.ShelfBook.objects.create(
@ -86,7 +88,7 @@ def shelve(request):
# Might be good to alert, or reject the action? # Might be good to alert, or reject the action?
except IntegrityError: except IntegrityError:
pass pass
return redirect(request.headers.get("Referer", "/")) return redirect("/")
@login_required @login_required
@ -100,4 +102,4 @@ def unshelve(request, book_id=False):
) )
shelf_book.raise_not_deletable(request.user) shelf_book.raise_not_deletable(request.user)
shelf_book.delete() shelf_book.delete()
return redirect(request.headers.get("Referer", "/")) return redirect("/")

View file

@ -82,9 +82,10 @@ class CreateStatus(View):
if is_api_request(request): if is_api_request(request):
logger.exception(form.errors) logger.exception(form.errors)
return HttpResponseBadRequest() return HttpResponseBadRequest()
return redirect(request.headers.get("Referer", "/")) return redirect("/")
status = form.save(commit=False) status = form.save(commit=False)
status.raise_not_editable(request.user)
# save the plain, unformatted version of the status for future editing # save the plain, unformatted version of the status for future editing
status.raw_content = status.content status.raw_content = status.content
if hasattr(status, "quote"): if hasattr(status, "quote"):
@ -146,7 +147,7 @@ class DeleteStatus(View):
# perform deletion # perform deletion
status.delete() status.delete()
return redirect(request.headers.get("Referer", "/")) return redirect("/")
@login_required @login_required
@ -195,7 +196,7 @@ def edit_readthrough(request):
if is_api_request(request): if is_api_request(request):
return HttpResponse() return HttpResponse()
return redirect(request.headers.get("Referer", "/")) return redirect("/")
def find_mentions(content): def find_mentions(content):

View file

@ -106,10 +106,19 @@ def hide_suggestions(request):
"""not everyone wants user suggestions""" """not everyone wants user suggestions"""
request.user.show_suggested_users = False request.user.show_suggested_users = False
request.user.save(broadcast=False, update_fields=["show_suggested_users"]) request.user.save(broadcast=False, update_fields=["show_suggested_users"])
return redirect(request.headers.get("Referer", "/")) return redirect("/")
# pylint: disable=unused-argument # pylint: disable=unused-argument
def user_redirect(request, username): def user_redirect(request, username):
"""redirect to a user's feed""" """redirect to a user's feed"""
return redirect("user-feed", username=username) return redirect("user-feed", username=username)
@login_required
def toggle_guided_tour(request, tour):
"""most people don't want a tour every time they load a page"""
request.user.show_guided_tour = tour
request.user.save(broadcast=False, update_fields=["show_guided_tour"])
return redirect("/")

26
bw-dev
View file

@ -3,6 +3,17 @@
# exit on errors # exit on errors
set -e set -e
# check if we're in DEBUG mode
DEBUG=$(sed <.env -ne 's/^DEBUG=//p')
# disallow certain commands when debug is false
function prod_error {
if [ "$DEBUG" != "true" ]; then
echo "This command is not safe to run in production environments"
exit 1
fi
}
# import our ENV variables # import our ENV variables
# catch exits and give a friendly error message # catch exits and give a friendly error message
function showerr { function showerr {
@ -65,12 +76,14 @@ case "$CMD" in
docker-compose up --build "$@" docker-compose up --build "$@"
;; ;;
service_ports_web) service_ports_web)
prod_error
docker-compose run --rm --service-ports web docker-compose run --rm --service-ports web
;; ;;
initdb) initdb)
initdb "@" initdb "@"
;; ;;
resetdb) resetdb)
prod_error
clean clean
# Start just the DB so no one else is using it # Start just the DB so no one else is using it
docker-compose up --build -d db docker-compose up --build -d db
@ -83,6 +96,7 @@ case "$CMD" in
clean clean
;; ;;
makemigrations) makemigrations)
prod_error
runweb python manage.py makemigrations "$@" runweb python manage.py makemigrations "$@"
;; ;;
migrate) migrate)
@ -101,22 +115,27 @@ case "$CMD" in
docker-compose restart celery_worker docker-compose restart celery_worker
;; ;;
pytest) pytest)
prod_error
runweb pytest --no-cov-on-fail "$@" runweb pytest --no-cov-on-fail "$@"
;; ;;
pytest_coverage_report) pytest_coverage_report)
prod_error
runweb pytest -n 3 --cov-report term-missing "$@" runweb pytest -n 3 --cov-report term-missing "$@"
;; ;;
collectstatic) collectstatic)
runweb python manage.py collectstatic --no-input runweb python manage.py collectstatic --no-input
;; ;;
makemessages) makemessages)
prod_error
runweb django-admin makemessages --no-wrap --ignore=venv -l en_US $@ runweb django-admin makemessages --no-wrap --ignore=venv -l en_US $@
;; ;;
compilemessages) compilemessages)
runweb django-admin compilemessages --ignore venv $@ runweb django-admin compilemessages --ignore venv $@
;; ;;
update_locales) update_locales)
prod_error
git fetch origin l10n_main:l10n_main git fetch origin l10n_main:l10n_main
git checkout l10n_main locale/ca_ES
git checkout l10n_main locale/de_DE git checkout l10n_main locale/de_DE
git checkout l10n_main locale/es_ES git checkout l10n_main locale/es_ES
git checkout l10n_main locale/fi_FI git checkout l10n_main locale/fi_FI
@ -138,24 +157,30 @@ case "$CMD" in
docker-compose build docker-compose build
;; ;;
clean) clean)
prod_error
clean clean
;; ;;
black) black)
prod_error
docker-compose run --rm dev-tools black celerywyrm bookwyrm docker-compose run --rm dev-tools black celerywyrm bookwyrm
;; ;;
pylint) pylint)
prod_error
# pylint depends on having the app dependencies in place, so we run it in the web container # pylint depends on having the app dependencies in place, so we run it in the web container
runweb pylint bookwyrm/ runweb pylint bookwyrm/
;; ;;
prettier) prettier)
prod_error
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
;; ;;
stylelint) stylelint)
prod_error
docker-compose run --rm dev-tools npx stylelint \ docker-compose run --rm dev-tools npx stylelint \
bookwyrm/static/css/bookwyrm.scss bookwyrm/static/css/bookwyrm/**/*.scss --fix \ bookwyrm/static/css/bookwyrm.scss bookwyrm/static/css/bookwyrm/**/*.scss --fix \
--config dev-tools/.stylelintrc.js --config dev-tools/.stylelintrc.js
;; ;;
formatters) formatters)
prod_error
runweb pylint bookwyrm/ 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
@ -168,6 +193,7 @@ case "$CMD" in
runweb python manage.py collectstatic --no-input runweb python manage.py collectstatic --no-input
;; ;;
collectstatic_watch) collectstatic_watch)
prod_error
npm run --prefix dev-tools watch:static npm run --prefix dev-tools watch:static
;; ;;
update) update)

View file

@ -9,6 +9,6 @@ COPY package.json requirements.txt .stylelintrc.js .stylelintignore /app/
RUN pip install -r requirements.txt RUN pip install -r requirements.txt
RUN apt-get update && apt-get install -y curl RUN apt-get update && apt-get install -y curl
RUN curl -sL https://deb.nodesource.com/setup_17.x | bash - RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
RUN apt-get install -y nodejs && apt-get clean RUN apt-get install -y nodejs && apt-get clean
RUN npm install . RUN npm install .

File diff suppressed because it is too large Load diff

Binary file not shown.

File diff suppressed because it is too large Load diff

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-07-11 15:53+0000\n" "POT-Creation-Date: 2022-07-29 18:24+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"
@ -43,6 +43,14 @@ msgstr ""
msgid "Unlimited" msgid "Unlimited"
msgstr "" msgstr ""
#: bookwyrm/forms/edit_user.py:89
msgid "Incorrect password"
msgstr ""
#: bookwyrm/forms/edit_user.py:96 bookwyrm/forms/landing.py:71
msgid "Password does not match"
msgstr ""
#: bookwyrm/forms/forms.py:54 #: bookwyrm/forms/forms.py:54
msgid "Reading finish date cannot be before start date." msgid "Reading finish date cannot be before start date."
msgstr "" msgstr ""
@ -51,11 +59,11 @@ msgstr ""
msgid "Reading stopped date cannot be before start date." msgid "Reading stopped date cannot be before start date."
msgstr "" msgstr ""
#: bookwyrm/forms/landing.py:32 #: bookwyrm/forms/landing.py:38
msgid "User with this username already exists" msgid "User with this username already exists"
msgstr "" msgstr ""
#: bookwyrm/forms/landing.py:41 #: bookwyrm/forms/landing.py:47
msgid "A user with this email already exists." msgid "A user with this email already exists."
msgstr "" msgstr ""
@ -278,7 +286,9 @@ msgstr ""
msgid "Books Timeline" msgid "Books Timeline"
msgstr "" msgstr ""
#: bookwyrm/settings.py:210 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:210
#: bookwyrm/templates/guided_tour/user_profile.html:101
#: bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
@ -289,58 +299,62 @@ msgid "English"
msgstr "" msgstr ""
#: bookwyrm/settings.py:283 #: bookwyrm/settings.py:283
msgid "Deutsch (German)" msgid "Català (Catalan)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:284 #: bookwyrm/settings.py:284
msgid "Español (Spanish)" msgid "Deutsch (German)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:285 #: bookwyrm/settings.py:285
msgid "Galego (Galician)" msgid "Español (Spanish)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:286 #: bookwyrm/settings.py:286
msgid "Italiano (Italian)" msgid "Galego (Galician)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:287 #: bookwyrm/settings.py:287
msgid "Suomi (Finnish)" msgid "Italiano (Italian)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:288 #: bookwyrm/settings.py:288
msgid "Français (French)" msgid "Suomi (Finnish)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:289 #: bookwyrm/settings.py:289
msgid "Lietuvių (Lithuanian)" msgid "Français (French)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:290 #: bookwyrm/settings.py:290
msgid "Norsk (Norwegian)" msgid "Lietuvių (Lithuanian)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:291 #: bookwyrm/settings.py:291
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Norsk (Norwegian)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:292 #: bookwyrm/settings.py:292
msgid "Português Europeu (European Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:293 #: bookwyrm/settings.py:293
msgid "Română (Romanian)" msgid "Português Europeu (European Portuguese)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:294 #: bookwyrm/settings.py:294
msgid "Svenska (Swedish)" msgid "Română (Romanian)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:295 #: bookwyrm/settings.py:295
msgid "简体中文 (Simplified Chinese)" msgid "Svenska (Swedish)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:296 #: bookwyrm/settings.py:296
msgid "简体中文 (Simplified Chinese)"
msgstr ""
#: bookwyrm/settings.py:297
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "" msgstr ""
@ -788,7 +802,7 @@ msgstr ""
#: bookwyrm/templates/book/edit/edit_book.html:122 #: 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:52
#: bookwyrm/templates/snippets/remove_from_group_button.html:17 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "" msgstr ""
@ -851,6 +865,7 @@ msgid "Your reading activity"
msgstr "" msgstr ""
#: bookwyrm/templates/book/book.html:260 #: bookwyrm/templates/book/book.html:260
#: bookwyrm/templates/guided_tour/book.html:56
msgid "Add read dates" msgid "Add read dates"
msgstr "" msgstr ""
@ -879,9 +894,13 @@ msgid "Places"
msgstr "" msgstr ""
#: bookwyrm/templates/book/book.html:365 #: bookwyrm/templates/book/book.html:365
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:83 #: bookwyrm/templates/groups/group.html:19
#: bookwyrm/templates/lists/curate.html:8 bookwyrm/templates/lists/list.html:12 #: bookwyrm/templates/guided_tour/lists.html:14
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/guided_tour/user_books.html:102
#: bookwyrm/templates/guided_tour/user_profile.html:78
#: bookwyrm/templates/layout.html:83 bookwyrm/templates/lists/curate.html:8
#: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5
#: bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
#: bookwyrm/templates/user/layout.html:85 #: bookwyrm/templates/user/layout.html:85
@ -991,6 +1010,49 @@ msgstr ""
#: bookwyrm/templates/book/edit/edit_book.html:124 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
#: bookwyrm/templates/guided_tour/book.html:44
#: bookwyrm/templates/guided_tour/book.html:68
#: bookwyrm/templates/guided_tour/book.html:91
#: bookwyrm/templates/guided_tour/book.html:116
#: bookwyrm/templates/guided_tour/book.html:140
#: bookwyrm/templates/guided_tour/book.html:164
#: bookwyrm/templates/guided_tour/book.html:188
#: bookwyrm/templates/guided_tour/book.html:213
#: bookwyrm/templates/guided_tour/book.html:237
#: bookwyrm/templates/guided_tour/book.html:262
#: bookwyrm/templates/guided_tour/book.html:290
#: bookwyrm/templates/guided_tour/group.html:43
#: bookwyrm/templates/guided_tour/group.html:66
#: bookwyrm/templates/guided_tour/group.html:89
#: bookwyrm/templates/guided_tour/group.html:108
#: bookwyrm/templates/guided_tour/home.html:91
#: bookwyrm/templates/guided_tour/home.html:115
#: bookwyrm/templates/guided_tour/home.html:140
#: bookwyrm/templates/guided_tour/home.html:165
#: bookwyrm/templates/guided_tour/home.html:189
#: bookwyrm/templates/guided_tour/home.html:212
#: bookwyrm/templates/guided_tour/lists.html:47
#: bookwyrm/templates/guided_tour/lists.html:70
#: bookwyrm/templates/guided_tour/lists.html:94
#: bookwyrm/templates/guided_tour/lists.html:117
#: bookwyrm/templates/guided_tour/lists.html:136
#: bookwyrm/templates/guided_tour/search.html:83
#: bookwyrm/templates/guided_tour/search.html:110
#: bookwyrm/templates/guided_tour/search.html:134
#: bookwyrm/templates/guided_tour/search.html:155
#: bookwyrm/templates/guided_tour/user_books.html:44
#: bookwyrm/templates/guided_tour/user_books.html:67
#: bookwyrm/templates/guided_tour/user_books.html:90
#: bookwyrm/templates/guided_tour/user_books.html:118
#: bookwyrm/templates/guided_tour/user_groups.html:44
#: bookwyrm/templates/guided_tour/user_groups.html:67
#: bookwyrm/templates/guided_tour/user_groups.html:91
#: bookwyrm/templates/guided_tour/user_groups.html:110
#: bookwyrm/templates/guided_tour/user_profile.html:43
#: bookwyrm/templates/guided_tour/user_profile.html:66
#: bookwyrm/templates/guided_tour/user_profile.html:89
#: bookwyrm/templates/guided_tour/user_profile.html:112
#: bookwyrm/templates/guided_tour/user_profile.html:135
msgid "Back" msgid "Back"
msgstr "" msgstr ""
@ -1352,11 +1414,7 @@ msgstr ""
msgid "Email address:" msgid "Email address:"
msgstr "" msgstr ""
#: bookwyrm/templates/confirm_email/resend_modal.html:28 #: bookwyrm/templates/confirm_email/resend_modal.html:30
msgid "No user matching this email address found."
msgstr ""
#: bookwyrm/templates/confirm_email/resend_modal.html:38
msgid "Resend link" msgid "Resend link"
msgstr "" msgstr ""
@ -1651,16 +1709,16 @@ msgstr ""
msgid "You have no messages right now." msgid "You have no messages right now."
msgstr "" msgstr ""
#: bookwyrm/templates/feed/feed.html:54 #: bookwyrm/templates/feed/feed.html:55
msgid "There aren't any activities right now! Try following a user to get started" msgid "There aren't any activities right now! Try following a user to get started"
msgstr "" msgstr ""
#: bookwyrm/templates/feed/feed.html:55 #: bookwyrm/templates/feed/feed.html:56
msgid "Alternatively, you can try enabling more status types" msgid "Alternatively, you can try enabling more status types"
msgstr "" msgstr ""
#: bookwyrm/templates/feed/goal_card.html:6 #: bookwyrm/templates/feed/goal_card.html:6
#: bookwyrm/templates/feed/layout.html:15 #: bookwyrm/templates/feed/layout.html:14
#: bookwyrm/templates/user/goal_form.html:6 #: bookwyrm/templates/user/goal_form.html:6
#, python-format #, python-format
msgid "%(year)s Reading Goal" msgid "%(year)s Reading Goal"
@ -1671,11 +1729,12 @@ msgstr ""
msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>" msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>"
msgstr "" msgstr ""
#: bookwyrm/templates/feed/layout.html:5 #: bookwyrm/templates/feed/layout.html:4
msgid "Updates" msgid "Updates"
msgstr "" msgstr ""
#: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/feed/suggested_books.html:6
#: bookwyrm/templates/guided_tour/home.html:127
#: bookwyrm/templates/user_menu.html:35 #: bookwyrm/templates/user_menu.html:35
msgid "Your Books" msgid "Your Books"
msgstr "" msgstr ""
@ -1826,6 +1885,7 @@ msgid "Skip this step"
msgstr "" msgstr ""
#: bookwyrm/templates/get_started/layout.html:54 #: bookwyrm/templates/get_started/layout.html:54
#: bookwyrm/templates/guided_tour/group.html:101
msgid "Finish" msgid "Finish"
msgstr "" msgstr ""
@ -1871,6 +1931,7 @@ msgid "No users found for \"%(query)s\""
msgstr "" msgstr ""
#: bookwyrm/templates/groups/create_form.html:5 #: bookwyrm/templates/groups/create_form.html:5
#: bookwyrm/templates/guided_tour/user_groups.html:32
#: bookwyrm/templates/user/groups.html:17 #: bookwyrm/templates/user/groups.html:17
msgid "Create group" msgid "Create group"
msgstr "" msgstr ""
@ -1981,6 +2042,518 @@ msgstr ""
msgid "Manager" msgid "Manager"
msgstr "" msgstr ""
#: bookwyrm/templates/guided_tour/book.html:10
msgid "This is home page of a book. Let's see what you can do while you're here!"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:11
msgid "Book page"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:19
#: bookwyrm/templates/guided_tour/group.html:19
#: bookwyrm/templates/guided_tour/lists.html:22
#: bookwyrm/templates/guided_tour/search.html:29
#: bookwyrm/templates/guided_tour/search.html:56
#: bookwyrm/templates/guided_tour/user_books.html:19
#: bookwyrm/templates/guided_tour/user_groups.html:19
#: bookwyrm/templates/guided_tour/user_profile.html:19
msgid "End Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:26
#: bookwyrm/templates/guided_tour/book.html:50
#: bookwyrm/templates/guided_tour/book.html:74
#: bookwyrm/templates/guided_tour/book.html:97
#: bookwyrm/templates/guided_tour/book.html:122
#: bookwyrm/templates/guided_tour/book.html:146
#: bookwyrm/templates/guided_tour/book.html:170
#: bookwyrm/templates/guided_tour/book.html:194
#: bookwyrm/templates/guided_tour/book.html:219
#: bookwyrm/templates/guided_tour/book.html:243
#: bookwyrm/templates/guided_tour/book.html:268
#: bookwyrm/templates/guided_tour/book.html:274
#: bookwyrm/templates/guided_tour/group.html:26
#: bookwyrm/templates/guided_tour/group.html:49
#: bookwyrm/templates/guided_tour/group.html:72
#: bookwyrm/templates/guided_tour/group.html:95
#: bookwyrm/templates/guided_tour/home.html:74
#: bookwyrm/templates/guided_tour/home.html:97
#: bookwyrm/templates/guided_tour/home.html:121
#: bookwyrm/templates/guided_tour/home.html:146
#: bookwyrm/templates/guided_tour/home.html:171
#: bookwyrm/templates/guided_tour/home.html:195
#: bookwyrm/templates/guided_tour/lists.html:29
#: bookwyrm/templates/guided_tour/lists.html:53
#: bookwyrm/templates/guided_tour/lists.html:76
#: bookwyrm/templates/guided_tour/lists.html:100
#: bookwyrm/templates/guided_tour/lists.html:123
#: bookwyrm/templates/guided_tour/search.html:36
#: bookwyrm/templates/guided_tour/search.html:63
#: bookwyrm/templates/guided_tour/search.html:89
#: bookwyrm/templates/guided_tour/search.html:116
#: bookwyrm/templates/guided_tour/search.html:140
#: bookwyrm/templates/guided_tour/user_books.html:26
#: bookwyrm/templates/guided_tour/user_books.html:50
#: bookwyrm/templates/guided_tour/user_books.html:73
#: bookwyrm/templates/guided_tour/user_books.html:96
#: bookwyrm/templates/guided_tour/user_groups.html:26
#: bookwyrm/templates/guided_tour/user_groups.html:50
#: bookwyrm/templates/guided_tour/user_groups.html:73
#: bookwyrm/templates/guided_tour/user_groups.html:97
#: bookwyrm/templates/guided_tour/user_profile.html:26
#: bookwyrm/templates/guided_tour/user_profile.html:49
#: bookwyrm/templates/guided_tour/user_profile.html:72
#: bookwyrm/templates/guided_tour/user_profile.html:95
#: bookwyrm/templates/guided_tour/user_profile.html:118
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:31
msgid "This is where you can set a reading status for this book. You can press the button to move to the next stage, or use the drop down button to select the reading status you want to set."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:32
msgid "Reading status"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:55
msgid "You can also manually add reading dates here. Unlike changing the reading status using the previous method, adding dates manually will not automatically add them to your <strong>Read</strong> or <strong>Reading</strong> shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:55
msgid "Got a favourite you re-read every year? We've got you covered - you can add multiple read dates for the same book 😀"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:79
msgid "There can be multiple editions of a book, in various formats or languages. You can choose which edition you want to use."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:80
msgid "Other editions"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:102
msgid "You can post a review, comment, or quote here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:103
msgid "Share your thoughts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:127
msgid "If you have read this book you can post a review including an optional star rating"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:128
msgid "Post a review"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:151
msgid "You can share your thoughts on this book generally with a simple comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:152
msgid "Post a comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:175
msgid "Just read some perfect prose? Let the world know by sharing a quote!"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:176
msgid "Share a quote"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:199
msgid "If your review or comment might ruin the book for someone who hasn't read it yet, you can hide your post behind a <strong>spoiler alert</strong>"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:200
msgid "Spoiler alerts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:224
msgid "Choose who can see your post here. Post privacy can be <strong>Public</strong> (everyone can see), <strong>Unlisted</strong> (everyone can see, but it doesn't appear in public feeds or discovery pages), <strong>Followers</strong> (only your followers can see), or <strong>Private</strong> (only you can see)"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:225
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:248
msgid "Some ebooks can be downloaded for free from external sources. They will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:249
msgid "Download links"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:273
msgid "Continue the tour by selecting <strong>Your books</strong> from the drop down menu."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:296
#: bookwyrm/templates/guided_tour/home.html:50
#: bookwyrm/templates/guided_tour/home.html:218
#: bookwyrm/templates/guided_tour/search.html:161
#: bookwyrm/templates/guided_tour/user_books.html:124
#: bookwyrm/templates/guided_tour/user_groups.html:116
#: bookwyrm/templates/guided_tour/user_profile.html:141
msgid "Ok"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:10
msgid "Welcome to the page for your group! This is where you can add and remove users, create user-curated lists, and edit the group details."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:11
msgid "Your group"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:31
msgid "Use this search box to find users to join your group. Currently users must be members of the same Bookwyrm instance and be invited by the group owner."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:32
msgid "Find users"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:54
msgid "Your group members will appear here. The group owner is marked with a star symbol."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:55
msgid "Group members"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:77
msgid "As well as creating lists from the Lists page, you can create a group-curated list here on the group's homepage. Any member of the group can create a list curated by group members."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:78
msgid "Group lists"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:100
msgid "Congratulations, you've finished the tour! Now you know the basics, but there is lots more to explore on your own. Happy reading!"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:115
msgid "End tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:16
msgid "Welcome to Bookwyrm!<br><br>Would you like to take the guided tour to help you get started?"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:17
#: bookwyrm/templates/guided_tour/home.html:39
#: bookwyrm/templates/layout.html:194
msgid "Guided Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:25
msgid "No thanks"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:33
msgid "Yes please!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:38
msgid "If you ever change your mind, just click on the Guided Tour link to start your tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:62
msgid "Search for books, users, or lists using this search box."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:63
msgid "Search box"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:79
msgid "Search book records by scanning an ISBN barcode using your device's camera - great when you're in the bookstore or library!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:80
msgid "Barcode reader"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:102
msgid "Use the <strong>Feed</strong>, <strong>Lists</strong> and <strong>Discover</strong> links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:103
msgid "Navigation Bar"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:126
msgid "Books on your reading status shelves will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:151
msgid "Updates from people you are following will appear in your <strong>Home</strong> timeline.<br><br>The <strong>Books</strong> tab shows activity from anyone, related to your books."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:152
msgid "Timelines"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:176
msgid "The bell will light up when you have a new notification. When it does, click on it to find out what exciting thing has happened!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:177
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:200
msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:200
msgid "Try selecting <strong>Profile</strong> from the drop down menu to continue the tour."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:201
msgid "Profile and settings menu"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:13
msgid "This is the lists page where you can discover book lists created by any user. A List is a collection of books, similar to a shelf."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:13
msgid "Shelves are for organising books for yourself, whereas Lists are generally for sharing with others."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:34
msgid "Let's see how to create a new list."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:34
msgid "Click the <strong>Create List</strong> button, then <strong>Next</strong> to continue the tour"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:35
#: bookwyrm/templates/guided_tour/lists.html:59
msgid "Creating a new list"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:58
msgid "You must give your list a name and can optionally give it a description to help other people understand what your list is about."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:81
msgid "Choose who can see your list here. List privacy options work just like we saw when posting book reviews. This is a common pattern throughout Bookwyrm."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:82
msgid "List privacy"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:105
msgid "You can also decide how your list is to be curated - only by you, by anyone, or by a group."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:106
msgid "List curation"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:128
msgid "Next in our tour we will explore Groups!"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:129
msgid "Next: Groups"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:143
msgid "Take me there"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:16
msgid "If the book you are looking for is available on a remote catalogue such as Open Library, click on <strong>Import book</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:17
#: bookwyrm/templates/guided_tour/search.html:44
msgid "Searching"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:43
msgid "If the book you are looking for is already on this Bookwyrm instance, you can click on the title to go to the book's page."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:71
msgid "If the book you are looking for is not listed, try loading more records from other sources like Open Library or Inventaire."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:72
msgid "Load more records"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:98
msgid "If your book is not in the results, try adjusting your search terms."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:99
msgid "Search again"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:121
msgid "If you still can't find your book, you can add a record manually."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:122
msgid "Add a record manally"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:147
msgid "Import, manually add, or view an existing book to continue the tour."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:148
msgid "Continue the tour"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:10
msgid "This is the page where your books are listed, organised into shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:11
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:31
msgid "<strong>To Read</strong>, <strong>Currently Reading</strong>, <strong>Read</strong>, and <strong>Stopped Reading</strong> are default shelves. When you change the reading status of a book it will automatically be moved to the matching shelf. A book can only be on one default shelf at a time."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:32
msgid "Reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:55
msgid "You can create additional custom shelves to organise your books. A book on a custom shelf can be on any number of other shelves simultaneously, including one of the default reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:56
msgid "Adding custom shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:78
msgid "If you have an export file from another service like Goodreads or LibraryThing, you can import it here."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:79
msgid "Import from another service"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:101
msgid "Now that we've explored book shelves, let's take a look at a related concept: book lists!"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:101
msgid "Click on the <strong>Lists</strong> link here to continue the tour."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:10
msgid "You can create or join a group with other users. Groups can share group-curated book lists, and in future will be able to do other things."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:11
#: bookwyrm/templates/guided_tour/user_profile.html:55
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:31
msgid "Let's create a new group!"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:31
msgid "Click the <strong>Create group</strong> button, then <strong>Next</strong> to continue the tour"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:55
msgid "Give your group a name and describe what it is about. You can make user groups for any purpose - a reading group, a bunch of friends, whatever!"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:56
msgid "Creating a group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:78
msgid "Groups have privacy settings just like posts and lists, except that group privacy cannot be <strong>Followers</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:79
msgid "Group visibility"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:102
msgid "Once you're happy with how everything is set up, click the <strong>Save</strong> button to create your new group."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:102
msgid "Create and save a group to continue the tour."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:103
msgid "Save your group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:10
msgid "This is your user profile. All your latest activities will be listed here. Other Bookwyrm users can see parts of this page too - what they can see depends on your privacy settings."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:11
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:31
msgid "This tab shows everything you have read towards your annual reading goal, or allows you to set one. You don't have to set a reading goal if that's not your thing!"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:32
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:54
msgid "Here you can see your groups, or create a new one. A group brings together Bookwyrm users and allows them to curate lists together."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:77
msgid "You can see your lists, or create a new one, here. A list is a collection of books that have something in common."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:100
msgid "The Books tab shows your book shelves. We'll explore this later in the tour."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:123
msgid "Now you understand the basics of your profile page, let's add a book to your shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:123
msgid "Search for a title or author to continue the tour."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:124
msgid "Find a book"
msgstr ""
#: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:5
#: bookwyrm/templates/import/import.html:9 #: bookwyrm/templates/import/import.html:9
#: bookwyrm/templates/shelf/shelf.html:64 #: bookwyrm/templates/shelf/shelf.html:64
@ -2273,8 +2846,8 @@ msgstr ""
msgid "More about this site" msgid "More about this site"
msgstr "" msgstr ""
#: bookwyrm/templates/landing/password_reset.html:34 #: bookwyrm/templates/landing/password_reset.html:43
#: bookwyrm/templates/preferences/change_password.html:40 #: bookwyrm/templates/preferences/change_password.html:33
#: bookwyrm/templates/preferences/delete_user.html:20 #: bookwyrm/templates/preferences/delete_user.html:20
msgid "Confirm password:" msgid "Confirm password:"
msgstr "" msgstr ""
@ -2313,12 +2886,6 @@ msgstr ""
msgid "Feed" msgid "Feed"
msgstr "" msgstr ""
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr ""
#: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33 #: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33
msgid "password" msgid "password"
msgstr "" msgstr ""
@ -2339,12 +2906,12 @@ msgstr ""
msgid "Documentation" msgid "Documentation"
msgstr "" msgstr ""
#: bookwyrm/templates/layout.html:197 #: bookwyrm/templates/layout.html:203
#, python-format #, python-format
msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
msgstr "" msgstr ""
#: bookwyrm/templates/layout.html:201 #: bookwyrm/templates/layout.html:207
msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
msgstr "" msgstr ""
@ -3034,7 +3601,7 @@ msgstr ""
#: bookwyrm/templates/preferences/change_password.html:4 #: bookwyrm/templates/preferences/change_password.html:4
#: bookwyrm/templates/preferences/change_password.html:7 #: bookwyrm/templates/preferences/change_password.html:7
#: bookwyrm/templates/preferences/change_password.html:52 #: bookwyrm/templates/preferences/change_password.html:37
#: bookwyrm/templates/preferences/layout.html:20 #: bookwyrm/templates/preferences/layout.html:20
msgid "Change Password" msgid "Change Password"
msgstr "" msgstr ""
@ -3047,7 +3614,7 @@ msgstr ""
msgid "Current password:" msgid "Current password:"
msgstr "" msgstr ""
#: bookwyrm/templates/preferences/change_password.html:36 #: bookwyrm/templates/preferences/change_password.html:28
msgid "New password:" msgid "New password:"
msgstr "" msgstr ""
@ -4922,19 +5489,10 @@ msgstr ""
msgid "Previous" msgid "Previous"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr ""
#: bookwyrm/templates/snippets/privacy-icons.html:12 #: bookwyrm/templates/snippets/privacy-icons.html:12
msgid "Followers-only" msgid "Followers-only"
msgstr "" msgstr ""
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr ""
#: bookwyrm/templates/snippets/rate_action.html:5 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "" msgstr ""
@ -5204,10 +5762,6 @@ msgstr ""
msgid "Show less" msgid "Show less"
msgstr "" msgstr ""
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr ""
#: bookwyrm/templates/user/books_header.html:9 #: bookwyrm/templates/user/books_header.html:9
#, python-format #, python-format
msgid "%(username)s's books" msgid "%(username)s's books"
@ -5246,22 +5800,10 @@ msgstr ""
msgid "Groups: %(username)s" msgid "Groups: %(username)s"
msgstr "" msgstr ""
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr ""
#: bookwyrm/templates/user/layout.html:48 #: bookwyrm/templates/user/layout.html:48
msgid "Follow Requests" msgid "Follow Requests"
msgstr "" msgstr ""
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr ""
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr ""
#: bookwyrm/templates/user/lists.html:11 #: bookwyrm/templates/user/lists.html:11
#, python-format #, python-format
msgid "Lists: %(username)s" msgid "Lists: %(username)s"
@ -5369,14 +5911,6 @@ msgstr ""
msgid "Username or password are incorrect" msgid "Username or password are incorrect"
msgstr "" msgstr ""
#: bookwyrm/views/preferences/change_password.py:35
msgid "Incorrect password"
msgstr ""
#: bookwyrm/views/preferences/change_password.py:42
msgid "Password does not match"
msgstr ""
#: bookwyrm/views/rss_feed.py:34 #: bookwyrm/views/rss_feed.py:34
#, python-brace-format #, python-brace-format
msgid "Status updates from {obj.display_name}" msgid "Status updates from {obj.display_name}"

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-07-08 22:40+0000\n" "POT-Creation-Date: 2022-07-28 18:11+0000\n"
"PO-Revision-Date: 2022-07-10 18:51\n" "PO-Revision-Date: 2022-07-28 19:14\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"
@ -42,6 +42,14 @@ msgstr "{i} usos"
msgid "Unlimited" msgid "Unlimited"
msgstr "Sin límite" msgstr "Sin límite"
#: bookwyrm/forms/edit_user.py:89
msgid "Incorrect password"
msgstr ""
#: bookwyrm/forms/edit_user.py:96 bookwyrm/forms/landing.py:71
msgid "Password does not match"
msgstr ""
#: bookwyrm/forms/forms.py:54 #: bookwyrm/forms/forms.py:54
msgid "Reading finish date cannot be before start date." msgid "Reading finish date cannot be before start date."
msgstr "La fecha final de lectura no puede ser anterior a la fecha de inicio." msgstr "La fecha final de lectura no puede ser anterior a la fecha de inicio."
@ -50,11 +58,11 @@ msgstr "La fecha final de lectura no puede ser anterior a la fecha de inicio."
msgid "Reading stopped date cannot be before start date." msgid "Reading stopped date cannot be before start date."
msgstr "La fecha final de lectura no puede ser anterior a la fecha de inicio." msgstr "La fecha final de lectura no puede ser anterior a la fecha de inicio."
#: bookwyrm/forms/landing.py:32 #: bookwyrm/forms/landing.py:38
msgid "User with this username already exists" msgid "User with this username already exists"
msgstr "Este nombre de usuario ya está en uso." msgstr "Este nombre de usuario ya está en uso."
#: bookwyrm/forms/landing.py:41 #: bookwyrm/forms/landing.py:47
msgid "A user with this email already exists." msgid "A user with this email already exists."
msgstr "Ya existe un usuario con ese correo electrónico." msgstr "Ya existe un usuario con ese correo electrónico."
@ -277,7 +285,9 @@ msgstr "Inicio"
msgid "Books Timeline" msgid "Books Timeline"
msgstr "Línea temporal de libros" msgstr "Línea temporal de libros"
#: bookwyrm/settings.py:210 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:210
#: bookwyrm/templates/guided_tour/user_profile.html:101
#: bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
@ -288,58 +298,62 @@ msgid "English"
msgstr "English (Inglés)" msgstr "English (Inglés)"
#: bookwyrm/settings.py:283 #: bookwyrm/settings.py:283
msgid "Català (Catalan)"
msgstr ""
#: bookwyrm/settings.py:284
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch (Alemán)" msgstr "Deutsch (Alemán)"
#: bookwyrm/settings.py:284 #: bookwyrm/settings.py:285
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español" msgstr "Español"
#: bookwyrm/settings.py:285 #: bookwyrm/settings.py:286
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego (gallego)" msgstr "Galego (gallego)"
#: bookwyrm/settings.py:286 #: bookwyrm/settings.py:287
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "Italiano" msgstr "Italiano"
#: bookwyrm/settings.py:287 #: bookwyrm/settings.py:288
msgid "Suomi (Finnish)" msgid "Suomi (Finnish)"
msgstr "Suomi (finés)" msgstr "Suomi (finés)"
#: bookwyrm/settings.py:288 #: bookwyrm/settings.py:289
msgid "Français (French)" msgid "Français (French)"
msgstr "Français (Francés)" msgstr "Français (Francés)"
#: bookwyrm/settings.py:289 #: bookwyrm/settings.py:290
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių (Lituano)" msgstr "Lietuvių (Lituano)"
#: bookwyrm/settings.py:290 #: bookwyrm/settings.py:291
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "Norsk (noruego)" msgstr "Norsk (noruego)"
#: bookwyrm/settings.py:291 #: bookwyrm/settings.py:292
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português do Brasil (portugués brasileño)" msgstr "Português do Brasil (portugués brasileño)"
#: bookwyrm/settings.py:292 #: bookwyrm/settings.py:293
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português Europeu (Portugués europeo)" msgstr "Português Europeu (Portugués europeo)"
#: bookwyrm/settings.py:293 #: bookwyrm/settings.py:294
msgid "Română (Romanian)" msgid "Română (Romanian)"
msgstr "Română (rumano)" msgstr "Română (rumano)"
#: bookwyrm/settings.py:294 #: bookwyrm/settings.py:295
msgid "Svenska (Swedish)" msgid "Svenska (Swedish)"
msgstr "Svenska (Sueco)" msgstr "Svenska (Sueco)"
#: bookwyrm/settings.py:295 #: bookwyrm/settings.py:296
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文 (Chino simplificado)" msgstr "简体中文 (Chino simplificado)"
#: bookwyrm/settings.py:296 #: bookwyrm/settings.py:297
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文 (Chino tradicional)" msgstr "繁體中文 (Chino tradicional)"
@ -787,7 +801,7 @@ msgstr "La carga de datos se conectará a <strong>%(source_name)s</strong> y com
#: bookwyrm/templates/book/edit/edit_book.html:122 #: 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:52
#: bookwyrm/templates/snippets/remove_from_group_button.html:17 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "Confirmar" msgstr "Confirmar"
@ -850,6 +864,7 @@ msgid "Your reading activity"
msgstr "Tu actividad de lectura" msgstr "Tu actividad de lectura"
#: bookwyrm/templates/book/book.html:260 #: bookwyrm/templates/book/book.html:260
#: bookwyrm/templates/guided_tour/book.html:56
msgid "Add read dates" msgid "Add read dates"
msgstr "Agregar fechas de lectura" msgstr "Agregar fechas de lectura"
@ -878,9 +893,13 @@ msgid "Places"
msgstr "Lugares" msgstr "Lugares"
#: bookwyrm/templates/book/book.html:365 #: bookwyrm/templates/book/book.html:365
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:83 #: bookwyrm/templates/groups/group.html:19
#: bookwyrm/templates/lists/curate.html:8 bookwyrm/templates/lists/list.html:12 #: bookwyrm/templates/guided_tour/lists.html:14
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/guided_tour/user_books.html:102
#: bookwyrm/templates/guided_tour/user_profile.html:78
#: bookwyrm/templates/layout.html:83 bookwyrm/templates/lists/curate.html:8
#: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5
#: bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
#: bookwyrm/templates/user/layout.html:85 #: bookwyrm/templates/user/layout.html:85
@ -990,6 +1009,49 @@ msgstr "Esta es una obra nueva"
#: bookwyrm/templates/book/edit/edit_book.html:124 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
#: bookwyrm/templates/guided_tour/book.html:44
#: bookwyrm/templates/guided_tour/book.html:68
#: bookwyrm/templates/guided_tour/book.html:91
#: bookwyrm/templates/guided_tour/book.html:116
#: bookwyrm/templates/guided_tour/book.html:140
#: bookwyrm/templates/guided_tour/book.html:164
#: bookwyrm/templates/guided_tour/book.html:188
#: bookwyrm/templates/guided_tour/book.html:213
#: bookwyrm/templates/guided_tour/book.html:237
#: bookwyrm/templates/guided_tour/book.html:262
#: bookwyrm/templates/guided_tour/book.html:290
#: bookwyrm/templates/guided_tour/group.html:43
#: bookwyrm/templates/guided_tour/group.html:66
#: bookwyrm/templates/guided_tour/group.html:89
#: bookwyrm/templates/guided_tour/group.html:108
#: bookwyrm/templates/guided_tour/home.html:91
#: bookwyrm/templates/guided_tour/home.html:115
#: bookwyrm/templates/guided_tour/home.html:140
#: bookwyrm/templates/guided_tour/home.html:165
#: bookwyrm/templates/guided_tour/home.html:189
#: bookwyrm/templates/guided_tour/home.html:212
#: bookwyrm/templates/guided_tour/lists.html:47
#: bookwyrm/templates/guided_tour/lists.html:70
#: bookwyrm/templates/guided_tour/lists.html:94
#: bookwyrm/templates/guided_tour/lists.html:117
#: bookwyrm/templates/guided_tour/lists.html:136
#: bookwyrm/templates/guided_tour/search.html:83
#: bookwyrm/templates/guided_tour/search.html:110
#: bookwyrm/templates/guided_tour/search.html:134
#: bookwyrm/templates/guided_tour/search.html:155
#: bookwyrm/templates/guided_tour/user_books.html:44
#: bookwyrm/templates/guided_tour/user_books.html:67
#: bookwyrm/templates/guided_tour/user_books.html:90
#: bookwyrm/templates/guided_tour/user_books.html:118
#: bookwyrm/templates/guided_tour/user_groups.html:44
#: bookwyrm/templates/guided_tour/user_groups.html:67
#: bookwyrm/templates/guided_tour/user_groups.html:91
#: bookwyrm/templates/guided_tour/user_groups.html:110
#: bookwyrm/templates/guided_tour/user_profile.html:43
#: bookwyrm/templates/guided_tour/user_profile.html:66
#: bookwyrm/templates/guided_tour/user_profile.html:89
#: bookwyrm/templates/guided_tour/user_profile.html:112
#: bookwyrm/templates/guided_tour/user_profile.html:135
msgid "Back" msgid "Back"
msgstr "Volver" msgstr "Volver"
@ -1351,11 +1413,7 @@ msgstr "Reenviar enlace de confirmación"
msgid "Email address:" msgid "Email address:"
msgstr "Dirección de correo electrónico:" msgstr "Dirección de correo electrónico:"
#: bookwyrm/templates/confirm_email/resend_modal.html:28 #: bookwyrm/templates/confirm_email/resend_modal.html:30
msgid "No user matching this email address found."
msgstr "No hay usuarios con esta dirección de correo electrónico."
#: bookwyrm/templates/confirm_email/resend_modal.html:38
msgid "Resend link" msgid "Resend link"
msgstr "Re-enviar enlace" msgstr "Re-enviar enlace"
@ -1650,16 +1708,16 @@ msgstr "Todos los mensajes"
msgid "You have no messages right now." msgid "You have no messages right now."
msgstr "No tienes ningún mensaje en este momento." msgstr "No tienes ningún mensaje en este momento."
#: bookwyrm/templates/feed/feed.html:54 #: bookwyrm/templates/feed/feed.html:55
msgid "There aren't any activities right now! Try following a user to get started" msgid "There aren't any activities right now! Try following a user to get started"
msgstr "¡No hay actividad ahora mismo! Sigue a otro usuario para empezar" msgstr "¡No hay actividad ahora mismo! Sigue a otro usuario para empezar"
#: bookwyrm/templates/feed/feed.html:55 #: bookwyrm/templates/feed/feed.html:56
msgid "Alternatively, you can try enabling more status types" msgid "Alternatively, you can try enabling more status types"
msgstr "Alternativamente, puedes intentar habilitar más tipos de estado" msgstr "Alternativamente, puedes intentar habilitar más tipos de estado"
#: bookwyrm/templates/feed/goal_card.html:6 #: bookwyrm/templates/feed/goal_card.html:6
#: bookwyrm/templates/feed/layout.html:15 #: bookwyrm/templates/feed/layout.html:14
#: bookwyrm/templates/user/goal_form.html:6 #: bookwyrm/templates/user/goal_form.html:6
#, python-format #, python-format
msgid "%(year)s Reading Goal" msgid "%(year)s Reading Goal"
@ -1670,11 +1728,12 @@ msgstr "Objetivo de lectura de %(year)s"
msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>" msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>"
msgstr "Puedes establecer o cambiar tu objetivo de lectura en cualquier momento desde tu <a href=\"%(path)s\">página de perfil</a>" msgstr "Puedes establecer o cambiar tu objetivo de lectura en cualquier momento desde tu <a href=\"%(path)s\">página de perfil</a>"
#: bookwyrm/templates/feed/layout.html:5 #: bookwyrm/templates/feed/layout.html:4
msgid "Updates" msgid "Updates"
msgstr "Actualizaciones" msgstr "Actualizaciones"
#: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/feed/suggested_books.html:6
#: bookwyrm/templates/guided_tour/home.html:127
#: bookwyrm/templates/user_menu.html:35 #: bookwyrm/templates/user_menu.html:35
msgid "Your Books" msgid "Your Books"
msgstr "Tus libros" msgstr "Tus libros"
@ -1825,6 +1884,7 @@ msgid "Skip this step"
msgstr "Saltar este paso" msgstr "Saltar este paso"
#: bookwyrm/templates/get_started/layout.html:54 #: bookwyrm/templates/get_started/layout.html:54
#: bookwyrm/templates/guided_tour/group.html:101
msgid "Finish" msgid "Finish"
msgstr "Terminar" msgstr "Terminar"
@ -1870,6 +1930,7 @@ msgid "No users found for \"%(query)s\""
msgstr "No se encontró ningún usuario correspondiente a \"%(query)s\"" msgstr "No se encontró ningún usuario correspondiente a \"%(query)s\""
#: bookwyrm/templates/groups/create_form.html:5 #: bookwyrm/templates/groups/create_form.html:5
#: bookwyrm/templates/guided_tour/user_groups.html:32
#: bookwyrm/templates/user/groups.html:17 #: bookwyrm/templates/user/groups.html:17
msgid "Create group" msgid "Create group"
msgstr "Crear grupo" msgstr "Crear grupo"
@ -1980,6 +2041,480 @@ msgstr "No se encontraron miembros potenciales para «%(user_query)s»"
msgid "Manager" msgid "Manager"
msgstr "Gestor" msgstr "Gestor"
#: bookwyrm/templates/guided_tour/book.html:10
msgid "This is home page of a book. Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:11
msgid "Book page"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:19
#: bookwyrm/templates/guided_tour/group.html:19
#: bookwyrm/templates/guided_tour/lists.html:22
#: bookwyrm/templates/guided_tour/search.html:29
#: bookwyrm/templates/guided_tour/search.html:56
#: bookwyrm/templates/guided_tour/user_books.html:19
#: bookwyrm/templates/guided_tour/user_groups.html:19
#: bookwyrm/templates/guided_tour/user_profile.html:19
msgid "End Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:26
#: bookwyrm/templates/guided_tour/book.html:50
#: bookwyrm/templates/guided_tour/book.html:74
#: bookwyrm/templates/guided_tour/book.html:97
#: bookwyrm/templates/guided_tour/book.html:122
#: bookwyrm/templates/guided_tour/book.html:146
#: bookwyrm/templates/guided_tour/book.html:170
#: bookwyrm/templates/guided_tour/book.html:194
#: bookwyrm/templates/guided_tour/book.html:219
#: bookwyrm/templates/guided_tour/book.html:243
#: bookwyrm/templates/guided_tour/book.html:268
#: bookwyrm/templates/guided_tour/book.html:274
#: bookwyrm/templates/guided_tour/group.html:26
#: bookwyrm/templates/guided_tour/group.html:49
#: bookwyrm/templates/guided_tour/group.html:72
#: bookwyrm/templates/guided_tour/group.html:95
#: bookwyrm/templates/guided_tour/home.html:74
#: bookwyrm/templates/guided_tour/home.html:97
#: bookwyrm/templates/guided_tour/home.html:121
#: bookwyrm/templates/guided_tour/home.html:146
#: bookwyrm/templates/guided_tour/home.html:171
#: bookwyrm/templates/guided_tour/home.html:195
#: bookwyrm/templates/guided_tour/lists.html:29
#: bookwyrm/templates/guided_tour/lists.html:53
#: bookwyrm/templates/guided_tour/lists.html:76
#: bookwyrm/templates/guided_tour/lists.html:100
#: bookwyrm/templates/guided_tour/lists.html:123
#: bookwyrm/templates/guided_tour/search.html:36
#: bookwyrm/templates/guided_tour/search.html:63
#: bookwyrm/templates/guided_tour/search.html:89
#: bookwyrm/templates/guided_tour/search.html:116
#: bookwyrm/templates/guided_tour/search.html:140
#: bookwyrm/templates/guided_tour/user_books.html:26
#: bookwyrm/templates/guided_tour/user_books.html:50
#: bookwyrm/templates/guided_tour/user_books.html:73
#: bookwyrm/templates/guided_tour/user_books.html:96
#: bookwyrm/templates/guided_tour/user_groups.html:26
#: bookwyrm/templates/guided_tour/user_groups.html:50
#: bookwyrm/templates/guided_tour/user_groups.html:73
#: bookwyrm/templates/guided_tour/user_groups.html:97
#: bookwyrm/templates/guided_tour/user_profile.html:26
#: bookwyrm/templates/guided_tour/user_profile.html:49
#: bookwyrm/templates/guided_tour/user_profile.html:72
#: bookwyrm/templates/guided_tour/user_profile.html:95
#: bookwyrm/templates/guided_tour/user_profile.html:118
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "Siguiente"
#: bookwyrm/templates/guided_tour/book.html:31
msgid "This is where you can set a reading status for this book. You can press the button to move to the next stage, or use the drop down button to select the reading status you want to set."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:32
msgid "Reading status"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:55
msgid "You can also manually add reading dates here. Unlike changing the reading status using the previous method, adding dates manually will not automatically add them to your <strong>Read</strong> or <strong>Reading</strong> shelves.<br><br>Got a favourite you re-read every year? We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:79
msgid "There can be multiple editions of a book, in various formats or languages. You can choose which edition you want to use."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:80
msgid "Other editions"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:102
msgid "You can post a review, comment, or quote here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:103
msgid "Share your thoughts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:127
msgid "If you have read this book you can post a review including an optional star rating"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:128
msgid "Post a review"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:151
msgid "You can share your thoughts on this book generally with a simple comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:152
msgid "Post a comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:175
msgid "Just read some perfect prose? Let the world know by sharing a quote!"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:176
msgid "Share a quote"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:199
msgid "If your review or comment might ruin the book for someone who hasn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:200
msgid "Spoiler alerts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:224
msgid "Choose who can see your post here. Post privacy can be <strong>Public</strong> (everyone can see), <strong>Unlisted</strong> (everyone can see, but it doesn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:225
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "Privacidad de publicación"
#: bookwyrm/templates/guided_tour/book.html:248
msgid "Some ebooks can be downloaded for free from external sources. They will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:249
msgid "Download links"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:273
#: bookwyrm/templates/guided_tour/search.html:147
msgid "<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:296
#: bookwyrm/templates/guided_tour/home.html:50
#: bookwyrm/templates/guided_tour/home.html:218
#: bookwyrm/templates/guided_tour/search.html:161
#: bookwyrm/templates/guided_tour/user_books.html:124
#: bookwyrm/templates/guided_tour/user_groups.html:116
#: bookwyrm/templates/guided_tour/user_profile.html:141
msgid "Ok"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:10
msgid "Welcome to the page for your group! This is where you can add and remove users, create user-curated lists, and edit the group details."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:11
msgid "Your group"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:31
msgid "Use this search box to find users to join your group. Currently users must be members of the same Bookwyrm instance and be invited by the group owner."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:32
msgid "Find users"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:54
msgid "Your group members will appear here. The group owner is marked with a star symbol."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:55
msgid "Group members"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:77
msgid "As well as creating lists from the Lists page, you can create a group-curated list here on the group\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:78
msgid "Group lists"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:100
msgid "Congratulations, you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:115
msgid "End tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:16
msgid "Welcome to Bookwyrm!<br><br>Would you like to take the guided tour to help you get started?"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:17
#: bookwyrm/templates/guided_tour/home.html:39
#: bookwyrm/templates/layout.html:194
msgid "Guided Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:25
msgid "No thanks"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:33
msgid "Yes please!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:38
msgid "If you ever change your mind, just click on the Guided Tour link to start your tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:62
msgid "Search for books, users, or lists using this search box."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:63
msgid "Search box"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:79
msgid "Search book records by scanning an ISBN barcode using your device\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:80
msgid "Barcode reader"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:102
msgid "Use the <strong>Feed</strong>, <strong>Lists</strong> and <strong>Discover</strong> links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:103
msgid "Navigation Bar"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:126
msgid "Books on your reading status shelves will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:151
msgid "Updates from people you are following will appear in your <strong>Home</strong> timeline.<br><br>The <strong>Books</strong> tab shows activity from anyone, related to your books."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:152
msgid "Timelines"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:176
msgid "The bell will light up when you have a new notification. When it does, click on it to find out what exciting thing has happened!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:177
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Notificaciones"
#: bookwyrm/templates/guided_tour/home.html:200
msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:201
msgid "Profile and settings menu"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:13
msgid "This is the lists page where you can discover book lists created by any user. A List is a collection of books, similar to a shelf.<br><br>Shelves are for organising books for yourself, whereas Lists are generally for sharing with others."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:34
#: bookwyrm/templates/guided_tour/user_groups.html:31
msgid "Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:35
#: bookwyrm/templates/guided_tour/lists.html:59
msgid "Creating a new list"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:58
msgid "You must give your list a name and can optionally give it a description to help other people understand what your list is about."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:81
msgid "Choose who can see your list here. List privacy options work just like we saw when posting book reviews. This is a common pattern throughout Bookwyrm."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:82
msgid "List privacy"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:105
msgid "You can also decide how your list is to be curated - only by you, by anyone, or by a group."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:106
msgid "List curation"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:128
msgid "Next in our tour we will explore Groups!"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:129
msgid "Next: Groups"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:143
msgid "Take me there"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:16
msgid "If the book you are looking for is available on a remote catalogue such as Open Library, click on <strong>Import book</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:17
#: bookwyrm/templates/guided_tour/search.html:44
msgid "Searching"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:43
msgid "If the book you are looking for is already on this Bookwyrm instance, you can click on the title to go to the book\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:71
msgid "If the book you are looking for is not listed, try loading more records from other sources like Open Library or Inventaire."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:72
msgid "Load more records"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:98
msgid "If your book is not in the results, try adjusting your search terms."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:99
msgid "Search again"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:121
msgid "If you still can\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:122
msgid "Add a record manally"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:148
msgid "Continue the tour"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:10
msgid "This is the page where your books are listed, organised into shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:11
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "Tus libros"
#: bookwyrm/templates/guided_tour/user_books.html:31
msgid "<strong>To Read</strong>, <strong>Currently Reading</strong>, <strong>Read</strong>, and <strong>Stopped Reading</strong> are default shelves. When you change the reading status of a book it will automatically be moved to the matching shelf. A book can only be on one default shelf at a time."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:32
msgid "Reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:55
msgid "You can create additional custom shelves to organise your books. A book on a custom shelf can be on any number of other shelves simultaneously, including one of the default reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:56
msgid "Adding custom shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:78
msgid "If you have an export file from another service like Goodreads or LibraryThing, you can import it here."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:79
msgid "Import from another service"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:101
msgid "Now that we\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:10
msgid "You can create or join a group with other users. Groups can share group-curated book lists, and in future will be able to do other things."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:11
#: bookwyrm/templates/guided_tour/user_profile.html:55
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "Grupos"
#: bookwyrm/templates/guided_tour/user_groups.html:55
msgid "Give your group a name and describe what it is about. You can make user groups for any purpose - a reading group, a bunch of friends, whatever!"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:56
msgid "Creating a group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:78
msgid "Groups have privacy settings just like posts and lists, except that group privacy cannot be <strong>Followers</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:79
msgid "Group visibility"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:102
msgid "Once you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:103
msgid "Save your group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:10
msgid "This is your user profile. All your latest activities will be listed here. Other Bookwyrm users can see parts of this page too - what they can see depends on your privacy settings."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:11
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "Perfil de usuario"
#: bookwyrm/templates/guided_tour/user_profile.html:31
msgid "This tab shows everything you have read towards your annual reading goal, or allows you to set one. You don\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:32
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "Objetivo de lectura"
#: bookwyrm/templates/guided_tour/user_profile.html:54
msgid "Here you can see your groups, or create a new one. A group brings together Bookwyrm users and allows them to curate lists together."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:77
msgid "You can see your lists, or create a new one, here. A list is a collection of books that have something in common."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:100
msgid "The Books tab shows your book shelves. We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:123
msgid "Now you understand the basics of your profile page, let\\s add a book to your shelves.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:124
msgid "Find a book"
msgstr ""
#: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:5
#: bookwyrm/templates/import/import.html:9 #: bookwyrm/templates/import/import.html:9
#: bookwyrm/templates/shelf/shelf.html:64 #: bookwyrm/templates/shelf/shelf.html:64
@ -2272,8 +2807,8 @@ msgstr "¿Olvidaste tu contraseña?"
msgid "More about this site" msgid "More about this site"
msgstr "Más sobre este sitio" msgstr "Más sobre este sitio"
#: bookwyrm/templates/landing/password_reset.html:34 #: bookwyrm/templates/landing/password_reset.html:43
#: bookwyrm/templates/preferences/change_password.html:18 #: bookwyrm/templates/preferences/change_password.html:33
#: bookwyrm/templates/preferences/delete_user.html:20 #: bookwyrm/templates/preferences/delete_user.html:20
msgid "Confirm password:" msgid "Confirm password:"
msgstr "Confirmar contraseña:" msgstr "Confirmar contraseña:"
@ -2312,12 +2847,6 @@ msgstr "Menú de navigación central"
msgid "Feed" msgid "Feed"
msgstr "Actividad" msgstr "Actividad"
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Notificaciones"
#: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33 #: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33
msgid "password" msgid "password"
msgstr "contraseña" msgstr "contraseña"
@ -2338,12 +2867,12 @@ msgstr "Error al publicar el estado"
msgid "Documentation" msgid "Documentation"
msgstr "Documentación de Django" msgstr "Documentación de Django"
#: bookwyrm/templates/layout.html:197 #: bookwyrm/templates/layout.html:203
#, python-format #, python-format
msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
msgstr "Apoyar %(site_name)s en <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgstr "Apoyar %(site_name)s en <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
#: bookwyrm/templates/layout.html:201 #: bookwyrm/templates/layout.html:207
msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
msgstr "BookWyrm es software de código abierto. Puedes contribuir o reportar problemas en <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgstr "BookWyrm es software de código abierto. Puedes contribuir o reportar problemas en <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
@ -2871,6 +3400,11 @@ msgid_plural "%(display_count)s new <a href=\"%(path)s\">reports</a> need modera
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: bookwyrm/templates/notifications/items/status_preview.html:4
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "Advertencia de contenido"
#: bookwyrm/templates/notifications/items/update.html:16 #: bookwyrm/templates/notifications/items/update.html:16
#, python-format #, python-format
msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>" msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>"
@ -3028,12 +3562,20 @@ msgstr "No hay ningún usuario bloqueado actualmente."
#: bookwyrm/templates/preferences/change_password.html:4 #: bookwyrm/templates/preferences/change_password.html:4
#: bookwyrm/templates/preferences/change_password.html:7 #: bookwyrm/templates/preferences/change_password.html:7
#: bookwyrm/templates/preferences/change_password.html:21 #: bookwyrm/templates/preferences/change_password.html:37
#: bookwyrm/templates/preferences/layout.html:20 #: bookwyrm/templates/preferences/layout.html:20
msgid "Change Password" msgid "Change Password"
msgstr "Cambiar contraseña" msgstr "Cambiar contraseña"
#: bookwyrm/templates/preferences/change_password.html:14 #: bookwyrm/templates/preferences/change_password.html:15
msgid "Successfully changed password"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:22
msgid "Current password:"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:28
msgid "New password:" msgid "New password:"
msgstr "Nueva contraseña:" msgstr "Nueva contraseña:"
@ -3125,6 +3667,10 @@ msgstr "Exportar CSV"
msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity." msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity."
msgstr "Se exportarán todos los libros que tengas en las estanterías, las reseñas y los libros que estés leyendo." msgstr "Se exportarán todos los libros que tengas en las estanterías, las reseñas y los libros que estés leyendo."
#: bookwyrm/templates/preferences/export.html:20
msgid "Download file"
msgstr ""
#: bookwyrm/templates/preferences/layout.html:11 #: bookwyrm/templates/preferences/layout.html:11
msgid "Account" msgid "Account"
msgstr "Cuenta" msgstr "Cuenta"
@ -4905,19 +5451,10 @@ msgstr "página %(page)s"
msgid "Previous" msgid "Previous"
msgstr "Anterior" msgstr "Anterior"
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "Siguiente"
#: bookwyrm/templates/snippets/privacy-icons.html:12 #: bookwyrm/templates/snippets/privacy-icons.html:12
msgid "Followers-only" msgid "Followers-only"
msgstr "Solo seguidores" msgstr "Solo seguidores"
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "Privacidad de publicación"
#: bookwyrm/templates/snippets/rate_action.html:5 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "Da una valoración" msgstr "Da una valoración"
@ -5036,10 +5573,6 @@ msgstr ""
msgid "Finish reading" msgid "Finish reading"
msgstr "Terminar de leer" msgstr "Terminar de leer"
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "Advertencia de contenido"
#: bookwyrm/templates/snippets/status/content_status.html:80 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "Mostrar estado" msgstr "Mostrar estado"
@ -5191,10 +5724,6 @@ msgstr "Mostrar más"
msgid "Show less" msgid "Show less"
msgstr "Mostrar menos" msgstr "Mostrar menos"
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "Tus libros"
#: bookwyrm/templates/user/books_header.html:9 #: bookwyrm/templates/user/books_header.html:9
#, python-format #, python-format
msgid "%(username)s's books" msgid "%(username)s's books"
@ -5233,22 +5762,10 @@ msgstr "Tus grupos"
msgid "Groups: %(username)s" msgid "Groups: %(username)s"
msgstr "Grupos: %(username)s" msgstr "Grupos: %(username)s"
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "Perfil de usuario"
#: bookwyrm/templates/user/layout.html:48 #: bookwyrm/templates/user/layout.html:48
msgid "Follow Requests" msgid "Follow Requests"
msgstr "Solicitudes de seguimiento" msgstr "Solicitudes de seguimiento"
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "Objetivo de lectura"
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "Grupos"
#: bookwyrm/templates/user/lists.html:11 #: bookwyrm/templates/user/lists.html:11
#, python-format #, python-format
msgid "Lists: %(username)s" msgid "Lists: %(username)s"
@ -5335,7 +5852,7 @@ msgstr "No le sigue nadie que tu sigas"
msgid "View profile and more" msgid "View profile and more"
msgstr "Ver perfil y más" msgstr "Ver perfil y más"
#: bookwyrm/templates/user_menu.html:72 #: bookwyrm/templates/user_menu.html:78
msgid "Log out" msgid "Log out"
msgstr "Cerrar sesión" msgstr "Cerrar sesión"

Binary file not shown.

File diff suppressed because it is too large Load diff

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-07-08 22:40+0000\n" "POT-Creation-Date: 2022-07-28 18:11+0000\n"
"PO-Revision-Date: 2022-07-10 13:17\n" "PO-Revision-Date: 2022-07-28 19:14\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"
@ -42,6 +42,14 @@ msgstr "{i} utilisations"
msgid "Unlimited" msgid "Unlimited"
msgstr "Sans limite" msgstr "Sans limite"
#: bookwyrm/forms/edit_user.py:89
msgid "Incorrect password"
msgstr "Mot de passe incorrect"
#: bookwyrm/forms/edit_user.py:96 bookwyrm/forms/landing.py:71
msgid "Password does not match"
msgstr "Le mot de passe ne correspond pas"
#: bookwyrm/forms/forms.py:54 #: bookwyrm/forms/forms.py:54
msgid "Reading finish date cannot be before start date." msgid "Reading finish date cannot be before start date."
msgstr "La date de fin de lecture ne peut pas être antérieure à la date de début." msgstr "La date de fin de lecture ne peut pas être antérieure à la date de début."
@ -50,11 +58,11 @@ msgstr "La date de fin de lecture ne peut pas être antérieure à la date de d
msgid "Reading stopped date cannot be before start date." msgid "Reading stopped date cannot be before start date."
msgstr "La date de fin de lecture ne peut pas être antérieure à la date de début." msgstr "La date de fin de lecture ne peut pas être antérieure à la date de début."
#: bookwyrm/forms/landing.py:32 #: bookwyrm/forms/landing.py:38
msgid "User with this username already exists" msgid "User with this username already exists"
msgstr "Un compte du même nom existe déjà" msgstr "Un compte du même nom existe déjà"
#: bookwyrm/forms/landing.py:41 #: bookwyrm/forms/landing.py:47
msgid "A user with this email already exists." msgid "A user with this email already exists."
msgstr "Cet email est déjà associé à un compte." msgstr "Cet email est déjà associé à un compte."
@ -277,7 +285,9 @@ msgstr "Accueil"
msgid "Books Timeline" msgid "Books Timeline"
msgstr "Actualité de mes livres" msgstr "Actualité de mes livres"
#: bookwyrm/settings.py:210 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:210
#: bookwyrm/templates/guided_tour/user_profile.html:101
#: bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
@ -288,58 +298,62 @@ msgid "English"
msgstr "English" msgstr "English"
#: bookwyrm/settings.py:283 #: bookwyrm/settings.py:283
msgid "Català (Catalan)"
msgstr "Català (catalan)"
#: bookwyrm/settings.py:284
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch" msgstr "Deutsch"
#: bookwyrm/settings.py:284 #: bookwyrm/settings.py:285
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español" msgstr "Español"
#: bookwyrm/settings.py:285 #: bookwyrm/settings.py:286
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego (Galicien)" msgstr "Galego (Galicien)"
#: bookwyrm/settings.py:286 #: bookwyrm/settings.py:287
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "Italiano (italien)" msgstr "Italiano (italien)"
#: bookwyrm/settings.py:287 #: bookwyrm/settings.py:288
msgid "Suomi (Finnish)" msgid "Suomi (Finnish)"
msgstr "Suomi (finnois)" msgstr "Suomi (finnois)"
#: bookwyrm/settings.py:288 #: bookwyrm/settings.py:289
msgid "Français (French)" msgid "Français (French)"
msgstr "Français" msgstr "Français"
#: bookwyrm/settings.py:289 #: bookwyrm/settings.py:290
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių (Lituanien)" msgstr "Lietuvių (Lituanien)"
#: bookwyrm/settings.py:290 #: bookwyrm/settings.py:291
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "Norsk (norvégien)" msgstr "Norsk (norvégien)"
#: bookwyrm/settings.py:291 #: bookwyrm/settings.py:292
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português do Brasil (Portugais brésilien)" msgstr "Português do Brasil (Portugais brésilien)"
#: bookwyrm/settings.py:292 #: bookwyrm/settings.py:293
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português Europeu (Portugais européen)" msgstr "Português Europeu (Portugais européen)"
#: bookwyrm/settings.py:293 #: bookwyrm/settings.py:294
msgid "Română (Romanian)" msgid "Română (Romanian)"
msgstr "Română (roumain)" msgstr "Română (roumain)"
#: bookwyrm/settings.py:294 #: bookwyrm/settings.py:295
msgid "Svenska (Swedish)" msgid "Svenska (Swedish)"
msgstr "Svenska (Suédois)" msgstr "Svenska (Suédois)"
#: bookwyrm/settings.py:295 #: bookwyrm/settings.py:296
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简化字" msgstr "简化字"
#: bookwyrm/settings.py:296 #: bookwyrm/settings.py:297
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "Infos supplémentaires:" msgstr "Infos supplémentaires:"
@ -787,7 +801,7 @@ msgstr "Le chargement des données se connectera à <strong>%(source_name)s</str
#: bookwyrm/templates/book/edit/edit_book.html:122 #: 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:52
#: bookwyrm/templates/snippets/remove_from_group_button.html:17 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "Confirmer" msgstr "Confirmer"
@ -850,6 +864,7 @@ msgid "Your reading activity"
msgstr "Votre activité de lecture" msgstr "Votre activité de lecture"
#: bookwyrm/templates/book/book.html:260 #: bookwyrm/templates/book/book.html:260
#: bookwyrm/templates/guided_tour/book.html:56
msgid "Add read dates" msgid "Add read dates"
msgstr "Ajouter des dates de lecture" msgstr "Ajouter des dates de lecture"
@ -878,9 +893,13 @@ msgid "Places"
msgstr "Lieux" msgstr "Lieux"
#: bookwyrm/templates/book/book.html:365 #: bookwyrm/templates/book/book.html:365
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:83 #: bookwyrm/templates/groups/group.html:19
#: bookwyrm/templates/lists/curate.html:8 bookwyrm/templates/lists/list.html:12 #: bookwyrm/templates/guided_tour/lists.html:14
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/guided_tour/user_books.html:102
#: bookwyrm/templates/guided_tour/user_profile.html:78
#: bookwyrm/templates/layout.html:83 bookwyrm/templates/lists/curate.html:8
#: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5
#: bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
#: bookwyrm/templates/user/layout.html:85 #: bookwyrm/templates/user/layout.html:85
@ -990,6 +1009,49 @@ msgstr "Il sagit dun nouvel ouvrage."
#: bookwyrm/templates/book/edit/edit_book.html:124 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
#: bookwyrm/templates/guided_tour/book.html:44
#: bookwyrm/templates/guided_tour/book.html:68
#: bookwyrm/templates/guided_tour/book.html:91
#: bookwyrm/templates/guided_tour/book.html:116
#: bookwyrm/templates/guided_tour/book.html:140
#: bookwyrm/templates/guided_tour/book.html:164
#: bookwyrm/templates/guided_tour/book.html:188
#: bookwyrm/templates/guided_tour/book.html:213
#: bookwyrm/templates/guided_tour/book.html:237
#: bookwyrm/templates/guided_tour/book.html:262
#: bookwyrm/templates/guided_tour/book.html:290
#: bookwyrm/templates/guided_tour/group.html:43
#: bookwyrm/templates/guided_tour/group.html:66
#: bookwyrm/templates/guided_tour/group.html:89
#: bookwyrm/templates/guided_tour/group.html:108
#: bookwyrm/templates/guided_tour/home.html:91
#: bookwyrm/templates/guided_tour/home.html:115
#: bookwyrm/templates/guided_tour/home.html:140
#: bookwyrm/templates/guided_tour/home.html:165
#: bookwyrm/templates/guided_tour/home.html:189
#: bookwyrm/templates/guided_tour/home.html:212
#: bookwyrm/templates/guided_tour/lists.html:47
#: bookwyrm/templates/guided_tour/lists.html:70
#: bookwyrm/templates/guided_tour/lists.html:94
#: bookwyrm/templates/guided_tour/lists.html:117
#: bookwyrm/templates/guided_tour/lists.html:136
#: bookwyrm/templates/guided_tour/search.html:83
#: bookwyrm/templates/guided_tour/search.html:110
#: bookwyrm/templates/guided_tour/search.html:134
#: bookwyrm/templates/guided_tour/search.html:155
#: bookwyrm/templates/guided_tour/user_books.html:44
#: bookwyrm/templates/guided_tour/user_books.html:67
#: bookwyrm/templates/guided_tour/user_books.html:90
#: bookwyrm/templates/guided_tour/user_books.html:118
#: bookwyrm/templates/guided_tour/user_groups.html:44
#: bookwyrm/templates/guided_tour/user_groups.html:67
#: bookwyrm/templates/guided_tour/user_groups.html:91
#: bookwyrm/templates/guided_tour/user_groups.html:110
#: bookwyrm/templates/guided_tour/user_profile.html:43
#: bookwyrm/templates/guided_tour/user_profile.html:66
#: bookwyrm/templates/guided_tour/user_profile.html:89
#: bookwyrm/templates/guided_tour/user_profile.html:112
#: bookwyrm/templates/guided_tour/user_profile.html:135
msgid "Back" msgid "Back"
msgstr "Retour" msgstr "Retour"
@ -1351,11 +1413,7 @@ msgstr "Envoyer le lien de confirmation de nouveau"
msgid "Email address:" msgid "Email address:"
msgstr "Adresse email:" msgstr "Adresse email:"
#: bookwyrm/templates/confirm_email/resend_modal.html:28 #: bookwyrm/templates/confirm_email/resend_modal.html:30
msgid "No user matching this email address found."
msgstr "Aucun compte avec cette adresse email na été trouvé."
#: bookwyrm/templates/confirm_email/resend_modal.html:38
msgid "Resend link" msgid "Resend link"
msgstr "Envoyer le lien de nouveau" msgstr "Envoyer le lien de nouveau"
@ -1650,16 +1708,16 @@ msgstr "Tous les messages"
msgid "You have no messages right now." msgid "You have no messages right now."
msgstr "Vous navez aucun message pour linstant." msgstr "Vous navez aucun message pour linstant."
#: bookwyrm/templates/feed/feed.html:54 #: bookwyrm/templates/feed/feed.html:55
msgid "There aren't any activities right now! Try following a user to get started" msgid "There aren't any activities right now! Try following a user to get started"
msgstr "Aucune activité pour linstant! Abonnezvous à quelquun pour commencer" msgstr "Aucune activité pour linstant! Abonnezvous à quelquun pour commencer"
#: bookwyrm/templates/feed/feed.html:55 #: bookwyrm/templates/feed/feed.html:56
msgid "Alternatively, you can try enabling more status types" msgid "Alternatively, you can try enabling more status types"
msgstr "Sinon, vous pouvez essayer dactiver plus de types de statuts" msgstr "Sinon, vous pouvez essayer dactiver plus de types de statuts"
#: bookwyrm/templates/feed/goal_card.html:6 #: bookwyrm/templates/feed/goal_card.html:6
#: bookwyrm/templates/feed/layout.html:15 #: bookwyrm/templates/feed/layout.html:14
#: bookwyrm/templates/user/goal_form.html:6 #: bookwyrm/templates/user/goal_form.html:6
#, python-format #, python-format
msgid "%(year)s Reading Goal" msgid "%(year)s Reading Goal"
@ -1670,11 +1728,12 @@ msgstr "Défi lecture pour %(year)s"
msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>" msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>"
msgstr "Vous pouvez définir ou changer votre défi lecture à nimporte quel moment depuis votre <a href=\"%(path)s\">profil</a>" msgstr "Vous pouvez définir ou changer votre défi lecture à nimporte quel moment depuis votre <a href=\"%(path)s\">profil</a>"
#: bookwyrm/templates/feed/layout.html:5 #: bookwyrm/templates/feed/layout.html:4
msgid "Updates" msgid "Updates"
msgstr "Mises à jour" msgstr "Mises à jour"
#: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/feed/suggested_books.html:6
#: bookwyrm/templates/guided_tour/home.html:127
#: bookwyrm/templates/user_menu.html:35 #: bookwyrm/templates/user_menu.html:35
msgid "Your Books" msgid "Your Books"
msgstr "Vos Livres" msgstr "Vos Livres"
@ -1825,6 +1884,7 @@ msgid "Skip this step"
msgstr "Passer cette étape" msgstr "Passer cette étape"
#: bookwyrm/templates/get_started/layout.html:54 #: bookwyrm/templates/get_started/layout.html:54
#: bookwyrm/templates/guided_tour/group.html:101
msgid "Finish" msgid "Finish"
msgstr "Terminer" msgstr "Terminer"
@ -1870,6 +1930,7 @@ msgid "No users found for \"%(query)s\""
msgstr "Aucun compte trouvé pour « %(query)s»" msgstr "Aucun compte trouvé pour « %(query)s»"
#: bookwyrm/templates/groups/create_form.html:5 #: bookwyrm/templates/groups/create_form.html:5
#: bookwyrm/templates/guided_tour/user_groups.html:32
#: bookwyrm/templates/user/groups.html:17 #: bookwyrm/templates/user/groups.html:17
msgid "Create group" msgid "Create group"
msgstr "Créer un groupe" msgstr "Créer un groupe"
@ -1980,6 +2041,480 @@ msgstr "Aucun membre potentiel trouvé pour \"%(user_query)s\""
msgid "Manager" msgid "Manager"
msgstr "Responsable" msgstr "Responsable"
#: bookwyrm/templates/guided_tour/book.html:10
msgid "This is home page of a book. Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:11
msgid "Book page"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:19
#: bookwyrm/templates/guided_tour/group.html:19
#: bookwyrm/templates/guided_tour/lists.html:22
#: bookwyrm/templates/guided_tour/search.html:29
#: bookwyrm/templates/guided_tour/search.html:56
#: bookwyrm/templates/guided_tour/user_books.html:19
#: bookwyrm/templates/guided_tour/user_groups.html:19
#: bookwyrm/templates/guided_tour/user_profile.html:19
msgid "End Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:26
#: bookwyrm/templates/guided_tour/book.html:50
#: bookwyrm/templates/guided_tour/book.html:74
#: bookwyrm/templates/guided_tour/book.html:97
#: bookwyrm/templates/guided_tour/book.html:122
#: bookwyrm/templates/guided_tour/book.html:146
#: bookwyrm/templates/guided_tour/book.html:170
#: bookwyrm/templates/guided_tour/book.html:194
#: bookwyrm/templates/guided_tour/book.html:219
#: bookwyrm/templates/guided_tour/book.html:243
#: bookwyrm/templates/guided_tour/book.html:268
#: bookwyrm/templates/guided_tour/book.html:274
#: bookwyrm/templates/guided_tour/group.html:26
#: bookwyrm/templates/guided_tour/group.html:49
#: bookwyrm/templates/guided_tour/group.html:72
#: bookwyrm/templates/guided_tour/group.html:95
#: bookwyrm/templates/guided_tour/home.html:74
#: bookwyrm/templates/guided_tour/home.html:97
#: bookwyrm/templates/guided_tour/home.html:121
#: bookwyrm/templates/guided_tour/home.html:146
#: bookwyrm/templates/guided_tour/home.html:171
#: bookwyrm/templates/guided_tour/home.html:195
#: bookwyrm/templates/guided_tour/lists.html:29
#: bookwyrm/templates/guided_tour/lists.html:53
#: bookwyrm/templates/guided_tour/lists.html:76
#: bookwyrm/templates/guided_tour/lists.html:100
#: bookwyrm/templates/guided_tour/lists.html:123
#: bookwyrm/templates/guided_tour/search.html:36
#: bookwyrm/templates/guided_tour/search.html:63
#: bookwyrm/templates/guided_tour/search.html:89
#: bookwyrm/templates/guided_tour/search.html:116
#: bookwyrm/templates/guided_tour/search.html:140
#: bookwyrm/templates/guided_tour/user_books.html:26
#: bookwyrm/templates/guided_tour/user_books.html:50
#: bookwyrm/templates/guided_tour/user_books.html:73
#: bookwyrm/templates/guided_tour/user_books.html:96
#: bookwyrm/templates/guided_tour/user_groups.html:26
#: bookwyrm/templates/guided_tour/user_groups.html:50
#: bookwyrm/templates/guided_tour/user_groups.html:73
#: bookwyrm/templates/guided_tour/user_groups.html:97
#: bookwyrm/templates/guided_tour/user_profile.html:26
#: bookwyrm/templates/guided_tour/user_profile.html:49
#: bookwyrm/templates/guided_tour/user_profile.html:72
#: bookwyrm/templates/guided_tour/user_profile.html:95
#: bookwyrm/templates/guided_tour/user_profile.html:118
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "Suivante"
#: bookwyrm/templates/guided_tour/book.html:31
msgid "This is where you can set a reading status for this book. You can press the button to move to the next stage, or use the drop down button to select the reading status you want to set."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:32
msgid "Reading status"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:55
msgid "You can also manually add reading dates here. Unlike changing the reading status using the previous method, adding dates manually will not automatically add them to your <strong>Read</strong> or <strong>Reading</strong> shelves.<br><br>Got a favourite you re-read every year? We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:79
msgid "There can be multiple editions of a book, in various formats or languages. You can choose which edition you want to use."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:80
msgid "Other editions"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:102
msgid "You can post a review, comment, or quote here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:103
msgid "Share your thoughts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:127
msgid "If you have read this book you can post a review including an optional star rating"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:128
msgid "Post a review"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:151
msgid "You can share your thoughts on this book generally with a simple comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:152
msgid "Post a comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:175
msgid "Just read some perfect prose? Let the world know by sharing a quote!"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:176
msgid "Share a quote"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:199
msgid "If your review or comment might ruin the book for someone who hasn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:200
msgid "Spoiler alerts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:224
msgid "Choose who can see your post here. Post privacy can be <strong>Public</strong> (everyone can see), <strong>Unlisted</strong> (everyone can see, but it doesn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:225
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "Confidentialité du statut"
#: bookwyrm/templates/guided_tour/book.html:248
msgid "Some ebooks can be downloaded for free from external sources. They will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:249
msgid "Download links"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:273
#: bookwyrm/templates/guided_tour/search.html:147
msgid "<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:296
#: bookwyrm/templates/guided_tour/home.html:50
#: bookwyrm/templates/guided_tour/home.html:218
#: bookwyrm/templates/guided_tour/search.html:161
#: bookwyrm/templates/guided_tour/user_books.html:124
#: bookwyrm/templates/guided_tour/user_groups.html:116
#: bookwyrm/templates/guided_tour/user_profile.html:141
msgid "Ok"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:10
msgid "Welcome to the page for your group! This is where you can add and remove users, create user-curated lists, and edit the group details."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:11
msgid "Your group"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:31
msgid "Use this search box to find users to join your group. Currently users must be members of the same Bookwyrm instance and be invited by the group owner."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:32
msgid "Find users"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:54
msgid "Your group members will appear here. The group owner is marked with a star symbol."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:55
msgid "Group members"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:77
msgid "As well as creating lists from the Lists page, you can create a group-curated list here on the group\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:78
msgid "Group lists"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:100
msgid "Congratulations, you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:115
msgid "End tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:16
msgid "Welcome to Bookwyrm!<br><br>Would you like to take the guided tour to help you get started?"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:17
#: bookwyrm/templates/guided_tour/home.html:39
#: bookwyrm/templates/layout.html:194
msgid "Guided Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:25
msgid "No thanks"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:33
msgid "Yes please!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:38
msgid "If you ever change your mind, just click on the Guided Tour link to start your tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:62
msgid "Search for books, users, or lists using this search box."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:63
msgid "Search box"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:79
msgid "Search book records by scanning an ISBN barcode using your device\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:80
msgid "Barcode reader"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:102
msgid "Use the <strong>Feed</strong>, <strong>Lists</strong> and <strong>Discover</strong> links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:103
msgid "Navigation Bar"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:126
msgid "Books on your reading status shelves will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:151
msgid "Updates from people you are following will appear in your <strong>Home</strong> timeline.<br><br>The <strong>Books</strong> tab shows activity from anyone, related to your books."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:152
msgid "Timelines"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:176
msgid "The bell will light up when you have a new notification. When it does, click on it to find out what exciting thing has happened!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:177
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Notifications"
#: bookwyrm/templates/guided_tour/home.html:200
msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:201
msgid "Profile and settings menu"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:13
msgid "This is the lists page where you can discover book lists created by any user. A List is a collection of books, similar to a shelf.<br><br>Shelves are for organising books for yourself, whereas Lists are generally for sharing with others."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:34
#: bookwyrm/templates/guided_tour/user_groups.html:31
msgid "Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:35
#: bookwyrm/templates/guided_tour/lists.html:59
msgid "Creating a new list"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:58
msgid "You must give your list a name and can optionally give it a description to help other people understand what your list is about."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:81
msgid "Choose who can see your list here. List privacy options work just like we saw when posting book reviews. This is a common pattern throughout Bookwyrm."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:82
msgid "List privacy"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:105
msgid "You can also decide how your list is to be curated - only by you, by anyone, or by a group."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:106
msgid "List curation"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:128
msgid "Next in our tour we will explore Groups!"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:129
msgid "Next: Groups"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:143
msgid "Take me there"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:16
msgid "If the book you are looking for is available on a remote catalogue such as Open Library, click on <strong>Import book</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:17
#: bookwyrm/templates/guided_tour/search.html:44
msgid "Searching"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:43
msgid "If the book you are looking for is already on this Bookwyrm instance, you can click on the title to go to the book\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:71
msgid "If the book you are looking for is not listed, try loading more records from other sources like Open Library or Inventaire."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:72
msgid "Load more records"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:98
msgid "If your book is not in the results, try adjusting your search terms."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:99
msgid "Search again"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:121
msgid "If you still can\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:122
msgid "Add a record manally"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:148
msgid "Continue the tour"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:10
msgid "This is the page where your books are listed, organised into shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:11
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "Vos livres"
#: bookwyrm/templates/guided_tour/user_books.html:31
msgid "<strong>To Read</strong>, <strong>Currently Reading</strong>, <strong>Read</strong>, and <strong>Stopped Reading</strong> are default shelves. When you change the reading status of a book it will automatically be moved to the matching shelf. A book can only be on one default shelf at a time."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:32
msgid "Reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:55
msgid "You can create additional custom shelves to organise your books. A book on a custom shelf can be on any number of other shelves simultaneously, including one of the default reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:56
msgid "Adding custom shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:78
msgid "If you have an export file from another service like Goodreads or LibraryThing, you can import it here."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:79
msgid "Import from another service"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:101
msgid "Now that we\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:10
msgid "You can create or join a group with other users. Groups can share group-curated book lists, and in future will be able to do other things."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:11
#: bookwyrm/templates/guided_tour/user_profile.html:55
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "Groupes"
#: bookwyrm/templates/guided_tour/user_groups.html:55
msgid "Give your group a name and describe what it is about. You can make user groups for any purpose - a reading group, a bunch of friends, whatever!"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:56
msgid "Creating a group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:78
msgid "Groups have privacy settings just like posts and lists, except that group privacy cannot be <strong>Followers</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:79
msgid "Group visibility"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:102
msgid "Once you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:103
msgid "Save your group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:10
msgid "This is your user profile. All your latest activities will be listed here. Other Bookwyrm users can see parts of this page too - what they can see depends on your privacy settings."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:11
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "Profil"
#: bookwyrm/templates/guided_tour/user_profile.html:31
msgid "This tab shows everything you have read towards your annual reading goal, or allows you to set one. You don\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:32
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "Défi lecture"
#: bookwyrm/templates/guided_tour/user_profile.html:54
msgid "Here you can see your groups, or create a new one. A group brings together Bookwyrm users and allows them to curate lists together."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:77
msgid "You can see your lists, or create a new one, here. A list is a collection of books that have something in common."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:100
msgid "The Books tab shows your book shelves. We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:123
msgid "Now you understand the basics of your profile page, let\\s add a book to your shelves.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:124
msgid "Find a book"
msgstr ""
#: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:5
#: bookwyrm/templates/import/import.html:9 #: bookwyrm/templates/import/import.html:9
#: bookwyrm/templates/shelf/shelf.html:64 #: bookwyrm/templates/shelf/shelf.html:64
@ -2272,8 +2807,8 @@ msgstr "Mot de passe oublié?"
msgid "More about this site" msgid "More about this site"
msgstr "En savoir plus sur ce site" msgstr "En savoir plus sur ce site"
#: bookwyrm/templates/landing/password_reset.html:34 #: bookwyrm/templates/landing/password_reset.html:43
#: bookwyrm/templates/preferences/change_password.html:18 #: bookwyrm/templates/preferences/change_password.html:33
#: bookwyrm/templates/preferences/delete_user.html:20 #: bookwyrm/templates/preferences/delete_user.html:20
msgid "Confirm password:" msgid "Confirm password:"
msgstr "Confirmez le mot de passe:" msgstr "Confirmez le mot de passe:"
@ -2312,12 +2847,6 @@ msgstr "Menu de navigation principal "
msgid "Feed" msgid "Feed"
msgstr "Fil dactualité" msgstr "Fil dactualité"
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Notifications"
#: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33 #: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33
msgid "password" msgid "password"
msgstr "Mot de passe" msgstr "Mot de passe"
@ -2338,12 +2867,12 @@ msgstr "Erreur lors de la publication"
msgid "Documentation" msgid "Documentation"
msgstr "Documentation" msgstr "Documentation"
#: bookwyrm/templates/layout.html:197 #: bookwyrm/templates/layout.html:203
#, python-format #, python-format
msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
msgstr "Soutenez %(site_name)s avec <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgstr "Soutenez %(site_name)s avec <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
#: bookwyrm/templates/layout.html:201 #: bookwyrm/templates/layout.html:207
msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
msgstr "BookWyrm est un logiciel libre. Vous pouvez contribuer ou faire des rapports de bogues via <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgstr "BookWyrm est un logiciel libre. Vous pouvez contribuer ou faire des rapports de bogues via <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
@ -2871,6 +3400,11 @@ msgid_plural "%(display_count)s new <a href=\"%(path)s\">reports</a> need modera
msgstr[0] "Un nouveau <a href=\"%(path)s\">signalement</a> a besoin dêtre traité" msgstr[0] "Un nouveau <a href=\"%(path)s\">signalement</a> a besoin dêtre traité"
msgstr[1] "%(display_count)s nouveaux <a href=\"%(path)s\">signalements</a> ont besoin dêtre traités" msgstr[1] "%(display_count)s nouveaux <a href=\"%(path)s\">signalements</a> ont besoin dêtre traités"
#: bookwyrm/templates/notifications/items/status_preview.html:4
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "Avertissement sur le contenu"
#: bookwyrm/templates/notifications/items/update.html:16 #: bookwyrm/templates/notifications/items/update.html:16
#, python-format #, python-format
msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>" msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>"
@ -3028,12 +3562,20 @@ msgstr "Aucun compte bloqué actuellement"
#: bookwyrm/templates/preferences/change_password.html:4 #: bookwyrm/templates/preferences/change_password.html:4
#: bookwyrm/templates/preferences/change_password.html:7 #: bookwyrm/templates/preferences/change_password.html:7
#: bookwyrm/templates/preferences/change_password.html:21 #: bookwyrm/templates/preferences/change_password.html:37
#: bookwyrm/templates/preferences/layout.html:20 #: bookwyrm/templates/preferences/layout.html:20
msgid "Change Password" msgid "Change Password"
msgstr "Changer le mot de passe" msgstr "Changer le mot de passe"
#: bookwyrm/templates/preferences/change_password.html:14 #: bookwyrm/templates/preferences/change_password.html:15
msgid "Successfully changed password"
msgstr "Le mot de passe a bien été changé"
#: bookwyrm/templates/preferences/change_password.html:22
msgid "Current password:"
msgstr "Mot de passe actuel :"
#: bookwyrm/templates/preferences/change_password.html:28
msgid "New password:" msgid "New password:"
msgstr "Nouveau mot de passe:" msgstr "Nouveau mot de passe:"
@ -3125,6 +3667,10 @@ msgstr "Export CSV"
msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity." msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity."
msgstr "Votre export comprendra tous les livres sur vos étagères, les livres que vous avez critiqués, et les livres ayant une activité de lecture." msgstr "Votre export comprendra tous les livres sur vos étagères, les livres que vous avez critiqués, et les livres ayant une activité de lecture."
#: bookwyrm/templates/preferences/export.html:20
msgid "Download file"
msgstr "Télécharger le fichier"
#: bookwyrm/templates/preferences/layout.html:11 #: bookwyrm/templates/preferences/layout.html:11
msgid "Account" msgid "Account"
msgstr "Compte" msgstr "Compte"
@ -4905,19 +5451,10 @@ msgstr "page %(page)s"
msgid "Previous" msgid "Previous"
msgstr "Précédente" msgstr "Précédente"
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "Suivante"
#: bookwyrm/templates/snippets/privacy-icons.html:12 #: bookwyrm/templates/snippets/privacy-icons.html:12
msgid "Followers-only" msgid "Followers-only"
msgstr "Abonnemé(e)s uniquement" msgstr "Abonnemé(e)s uniquement"
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "Confidentialité du statut"
#: bookwyrm/templates/snippets/rate_action.html:5 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "Laisser une note" msgstr "Laisser une note"
@ -5036,10 +5573,6 @@ msgstr "Interrompre la lecture"
msgid "Finish reading" msgid "Finish reading"
msgstr "Terminer la lecture" msgstr "Terminer la lecture"
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "Avertissement sur le contenu"
#: bookwyrm/templates/snippets/status/content_status.html:80 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "Afficher le statut" msgstr "Afficher le statut"
@ -5191,10 +5724,6 @@ msgstr "Déplier"
msgid "Show less" msgid "Show less"
msgstr "Replier" msgstr "Replier"
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "Vos livres"
#: bookwyrm/templates/user/books_header.html:9 #: bookwyrm/templates/user/books_header.html:9
#, python-format #, python-format
msgid "%(username)s's books" msgid "%(username)s's books"
@ -5233,22 +5762,10 @@ msgstr "Vos Groupes"
msgid "Groups: %(username)s" msgid "Groups: %(username)s"
msgstr "Groupes : %(username)s" msgstr "Groupes : %(username)s"
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "Profil"
#: bookwyrm/templates/user/layout.html:48 #: bookwyrm/templates/user/layout.html:48
msgid "Follow Requests" msgid "Follow Requests"
msgstr "Demandes dabonnement" msgstr "Demandes dabonnement"
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "Défi lecture"
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "Groupes"
#: bookwyrm/templates/user/lists.html:11 #: bookwyrm/templates/user/lists.html:11
#, python-format #, python-format
msgid "Lists: %(username)s" msgid "Lists: %(username)s"
@ -5335,7 +5852,7 @@ msgstr "Aucun·e abonné·e que vous suivez"
msgid "View profile and more" msgid "View profile and more"
msgstr "Voir le profil et plus" msgstr "Voir le profil et plus"
#: bookwyrm/templates/user_menu.html:72 #: bookwyrm/templates/user_menu.html:78
msgid "Log out" msgid "Log out"
msgstr "Se déconnecter" msgstr "Se déconnecter"

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-07-08 22:40+0000\n" "POT-Creation-Date: 2022-07-28 18:11+0000\n"
"PO-Revision-Date: 2022-07-08 23:40\n" "PO-Revision-Date: 2022-07-28 19:13\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"
@ -42,6 +42,14 @@ msgstr "{i} usos"
msgid "Unlimited" msgid "Unlimited"
msgstr "Sen límite" msgstr "Sen límite"
#: bookwyrm/forms/edit_user.py:89
msgid "Incorrect password"
msgstr "Contrasinal incorrecto"
#: bookwyrm/forms/edit_user.py:96 bookwyrm/forms/landing.py:71
msgid "Password does not match"
msgstr "O contrasinal non concorda"
#: bookwyrm/forms/forms.py:54 #: bookwyrm/forms/forms.py:54
msgid "Reading finish date cannot be before start date." msgid "Reading finish date cannot be before start date."
msgstr "A data final da lectura non pode ser anterior á de inicio." msgstr "A data final da lectura non pode ser anterior á de inicio."
@ -50,11 +58,11 @@ msgstr "A data final da lectura non pode ser anterior á de inicio."
msgid "Reading stopped date cannot be before start date." msgid "Reading stopped date cannot be before start date."
msgstr "A data do fin da lectura non pode ser anterior á de inicio." msgstr "A data do fin da lectura non pode ser anterior á de inicio."
#: bookwyrm/forms/landing.py:32 #: bookwyrm/forms/landing.py:38
msgid "User with this username already exists" msgid "User with this username already exists"
msgstr "Xa existe unha usuaria con este identificador" msgstr "Xa existe unha usuaria con este identificador"
#: bookwyrm/forms/landing.py:41 #: bookwyrm/forms/landing.py:47
msgid "A user with this email already exists." msgid "A user with this email already exists."
msgstr "Xa existe unha usuaria con este email." msgstr "Xa existe unha usuaria con este email."
@ -277,7 +285,9 @@ msgstr "Inicio"
msgid "Books Timeline" msgid "Books Timeline"
msgstr "Cronoloxía de libros" msgstr "Cronoloxía de libros"
#: bookwyrm/settings.py:210 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:210
#: bookwyrm/templates/guided_tour/user_profile.html:101
#: bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
@ -288,58 +298,62 @@ msgid "English"
msgstr "English (Inglés)" msgstr "English (Inglés)"
#: bookwyrm/settings.py:283 #: bookwyrm/settings.py:283
msgid "Català (Catalan)"
msgstr "Català (Catalan)"
#: bookwyrm/settings.py:284
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch (Alemán)" msgstr "Deutsch (Alemán)"
#: bookwyrm/settings.py:284 #: bookwyrm/settings.py:285
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español (Español)" msgstr "Español (Español)"
#: bookwyrm/settings.py:285 #: bookwyrm/settings.py:286
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego (Galego)" msgstr "Galego (Galego)"
#: bookwyrm/settings.py:286 #: bookwyrm/settings.py:287
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "Italiano (Italiano)" msgstr "Italiano (Italiano)"
#: bookwyrm/settings.py:287 #: bookwyrm/settings.py:288
msgid "Suomi (Finnish)" msgid "Suomi (Finnish)"
msgstr "Suomi (Finés)" msgstr "Suomi (Finés)"
#: bookwyrm/settings.py:288 #: bookwyrm/settings.py:289
msgid "Français (French)" msgid "Français (French)"
msgstr "Français (Francés)" msgstr "Français (Francés)"
#: bookwyrm/settings.py:289 #: bookwyrm/settings.py:290
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių (Lituano)" msgstr "Lietuvių (Lituano)"
#: bookwyrm/settings.py:290 #: bookwyrm/settings.py:291
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "Norsk (Noruegués)" msgstr "Norsk (Noruegués)"
#: bookwyrm/settings.py:291 #: bookwyrm/settings.py:292
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português do Brasil (Portugués brasileiro)" msgstr "Português do Brasil (Portugués brasileiro)"
#: bookwyrm/settings.py:292 #: bookwyrm/settings.py:293
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português Europeu (Portugués europeo)" msgstr "Português Europeu (Portugués europeo)"
#: bookwyrm/settings.py:293 #: bookwyrm/settings.py:294
msgid "Română (Romanian)" msgid "Română (Romanian)"
msgstr "Română (Rumanés)" msgstr "Română (Rumanés)"
#: bookwyrm/settings.py:294 #: bookwyrm/settings.py:295
msgid "Svenska (Swedish)" msgid "Svenska (Swedish)"
msgstr "Svenska (Sueco)" msgstr "Svenska (Sueco)"
#: bookwyrm/settings.py:295 #: bookwyrm/settings.py:296
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文 (Chinés simplificado)" msgstr "简体中文 (Chinés simplificado)"
#: bookwyrm/settings.py:296 #: bookwyrm/settings.py:297
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文 (Chinés tradicional)" msgstr "繁體中文 (Chinés tradicional)"
@ -787,7 +801,7 @@ msgstr "Ao cargar os datos vas conectar con <strong>%(source_name)s</strong> e c
#: bookwyrm/templates/book/edit/edit_book.html:122 #: 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:52
#: bookwyrm/templates/snippets/remove_from_group_button.html:17 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "Confirmar" msgstr "Confirmar"
@ -850,6 +864,7 @@ msgid "Your reading activity"
msgstr "Actividade lectora" msgstr "Actividade lectora"
#: bookwyrm/templates/book/book.html:260 #: bookwyrm/templates/book/book.html:260
#: bookwyrm/templates/guided_tour/book.html:56
msgid "Add read dates" msgid "Add read dates"
msgstr "Engadir datas de lectura" msgstr "Engadir datas de lectura"
@ -878,9 +893,13 @@ msgid "Places"
msgstr "Lugares" msgstr "Lugares"
#: bookwyrm/templates/book/book.html:365 #: bookwyrm/templates/book/book.html:365
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:83 #: bookwyrm/templates/groups/group.html:19
#: bookwyrm/templates/lists/curate.html:8 bookwyrm/templates/lists/list.html:12 #: bookwyrm/templates/guided_tour/lists.html:14
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/guided_tour/user_books.html:102
#: bookwyrm/templates/guided_tour/user_profile.html:78
#: bookwyrm/templates/layout.html:83 bookwyrm/templates/lists/curate.html:8
#: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5
#: bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
#: bookwyrm/templates/user/layout.html:85 #: bookwyrm/templates/user/layout.html:85
@ -990,6 +1009,49 @@ msgstr "Este é un novo traballo"
#: bookwyrm/templates/book/edit/edit_book.html:124 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
#: bookwyrm/templates/guided_tour/book.html:44
#: bookwyrm/templates/guided_tour/book.html:68
#: bookwyrm/templates/guided_tour/book.html:91
#: bookwyrm/templates/guided_tour/book.html:116
#: bookwyrm/templates/guided_tour/book.html:140
#: bookwyrm/templates/guided_tour/book.html:164
#: bookwyrm/templates/guided_tour/book.html:188
#: bookwyrm/templates/guided_tour/book.html:213
#: bookwyrm/templates/guided_tour/book.html:237
#: bookwyrm/templates/guided_tour/book.html:262
#: bookwyrm/templates/guided_tour/book.html:290
#: bookwyrm/templates/guided_tour/group.html:43
#: bookwyrm/templates/guided_tour/group.html:66
#: bookwyrm/templates/guided_tour/group.html:89
#: bookwyrm/templates/guided_tour/group.html:108
#: bookwyrm/templates/guided_tour/home.html:91
#: bookwyrm/templates/guided_tour/home.html:115
#: bookwyrm/templates/guided_tour/home.html:140
#: bookwyrm/templates/guided_tour/home.html:165
#: bookwyrm/templates/guided_tour/home.html:189
#: bookwyrm/templates/guided_tour/home.html:212
#: bookwyrm/templates/guided_tour/lists.html:47
#: bookwyrm/templates/guided_tour/lists.html:70
#: bookwyrm/templates/guided_tour/lists.html:94
#: bookwyrm/templates/guided_tour/lists.html:117
#: bookwyrm/templates/guided_tour/lists.html:136
#: bookwyrm/templates/guided_tour/search.html:83
#: bookwyrm/templates/guided_tour/search.html:110
#: bookwyrm/templates/guided_tour/search.html:134
#: bookwyrm/templates/guided_tour/search.html:155
#: bookwyrm/templates/guided_tour/user_books.html:44
#: bookwyrm/templates/guided_tour/user_books.html:67
#: bookwyrm/templates/guided_tour/user_books.html:90
#: bookwyrm/templates/guided_tour/user_books.html:118
#: bookwyrm/templates/guided_tour/user_groups.html:44
#: bookwyrm/templates/guided_tour/user_groups.html:67
#: bookwyrm/templates/guided_tour/user_groups.html:91
#: bookwyrm/templates/guided_tour/user_groups.html:110
#: bookwyrm/templates/guided_tour/user_profile.html:43
#: bookwyrm/templates/guided_tour/user_profile.html:66
#: bookwyrm/templates/guided_tour/user_profile.html:89
#: bookwyrm/templates/guided_tour/user_profile.html:112
#: bookwyrm/templates/guided_tour/user_profile.html:135
msgid "Back" msgid "Back"
msgstr "Atrás" msgstr "Atrás"
@ -1351,11 +1413,7 @@ msgstr "Reenviar ligazón de confirmación"
msgid "Email address:" msgid "Email address:"
msgstr "Enderezo de email:" msgstr "Enderezo de email:"
#: bookwyrm/templates/confirm_email/resend_modal.html:28 #: bookwyrm/templates/confirm_email/resend_modal.html:30
msgid "No user matching this email address found."
msgstr "Non atopamos nigunha usuaria con este email."
#: bookwyrm/templates/confirm_email/resend_modal.html:38
msgid "Resend link" msgid "Resend link"
msgstr "Reenviar ligazón" msgstr "Reenviar ligazón"
@ -1650,16 +1708,16 @@ msgstr "Tódalas mensaxes"
msgid "You have no messages right now." msgid "You have no messages right now."
msgstr "Non tes mensaxes por agora." msgstr "Non tes mensaxes por agora."
#: bookwyrm/templates/feed/feed.html:54 #: bookwyrm/templates/feed/feed.html:55
msgid "There aren't any activities right now! Try following a user to get started" msgid "There aren't any activities right now! Try following a user to get started"
msgstr "Non hai actividade por agora! Proba a seguir algunha persoa para comezar" msgstr "Non hai actividade por agora! Proba a seguir algunha persoa para comezar"
#: bookwyrm/templates/feed/feed.html:55 #: bookwyrm/templates/feed/feed.html:56
msgid "Alternatively, you can try enabling more status types" msgid "Alternatively, you can try enabling more status types"
msgstr "De xeito alternativo, podes activar máis tipos de estados" msgstr "De xeito alternativo, podes activar máis tipos de estados"
#: bookwyrm/templates/feed/goal_card.html:6 #: bookwyrm/templates/feed/goal_card.html:6
#: bookwyrm/templates/feed/layout.html:15 #: bookwyrm/templates/feed/layout.html:14
#: bookwyrm/templates/user/goal_form.html:6 #: bookwyrm/templates/user/goal_form.html:6
#, python-format #, python-format
msgid "%(year)s Reading Goal" msgid "%(year)s Reading Goal"
@ -1670,11 +1728,12 @@ msgstr "%(year)s Obxectivo de lectura"
msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>" msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>"
msgstr "Podes establecer ou cambiar un obxectivo de lectura en calquera momento desde a túa <a href=\"%(path)s\">páxina de perfil</a>" msgstr "Podes establecer ou cambiar un obxectivo de lectura en calquera momento desde a túa <a href=\"%(path)s\">páxina de perfil</a>"
#: bookwyrm/templates/feed/layout.html:5 #: bookwyrm/templates/feed/layout.html:4
msgid "Updates" msgid "Updates"
msgstr "Actualizacións" msgstr "Actualizacións"
#: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/feed/suggested_books.html:6
#: bookwyrm/templates/guided_tour/home.html:127
#: bookwyrm/templates/user_menu.html:35 #: bookwyrm/templates/user_menu.html:35
msgid "Your Books" msgid "Your Books"
msgstr "Os teus libros" msgstr "Os teus libros"
@ -1825,6 +1884,7 @@ msgid "Skip this step"
msgstr "Omitir este paso" msgstr "Omitir este paso"
#: bookwyrm/templates/get_started/layout.html:54 #: bookwyrm/templates/get_started/layout.html:54
#: bookwyrm/templates/guided_tour/group.html:101
msgid "Finish" msgid "Finish"
msgstr "Rematar" msgstr "Rematar"
@ -1870,6 +1930,7 @@ msgid "No users found for \"%(query)s\""
msgstr "Non se atopan usuarias para \"%(query)s\"" msgstr "Non se atopan usuarias para \"%(query)s\""
#: bookwyrm/templates/groups/create_form.html:5 #: bookwyrm/templates/groups/create_form.html:5
#: bookwyrm/templates/guided_tour/user_groups.html:32
#: bookwyrm/templates/user/groups.html:17 #: bookwyrm/templates/user/groups.html:17
msgid "Create group" msgid "Create group"
msgstr "Crear grupo" msgstr "Crear grupo"
@ -1980,6 +2041,480 @@ msgstr "Non se atopan potenciais membros para \"%(user_query)s\""
msgid "Manager" msgid "Manager"
msgstr "Xestora" msgstr "Xestora"
#: bookwyrm/templates/guided_tour/book.html:10
msgid "This is home page of a book. Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:11
msgid "Book page"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:19
#: bookwyrm/templates/guided_tour/group.html:19
#: bookwyrm/templates/guided_tour/lists.html:22
#: bookwyrm/templates/guided_tour/search.html:29
#: bookwyrm/templates/guided_tour/search.html:56
#: bookwyrm/templates/guided_tour/user_books.html:19
#: bookwyrm/templates/guided_tour/user_groups.html:19
#: bookwyrm/templates/guided_tour/user_profile.html:19
msgid "End Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:26
#: bookwyrm/templates/guided_tour/book.html:50
#: bookwyrm/templates/guided_tour/book.html:74
#: bookwyrm/templates/guided_tour/book.html:97
#: bookwyrm/templates/guided_tour/book.html:122
#: bookwyrm/templates/guided_tour/book.html:146
#: bookwyrm/templates/guided_tour/book.html:170
#: bookwyrm/templates/guided_tour/book.html:194
#: bookwyrm/templates/guided_tour/book.html:219
#: bookwyrm/templates/guided_tour/book.html:243
#: bookwyrm/templates/guided_tour/book.html:268
#: bookwyrm/templates/guided_tour/book.html:274
#: bookwyrm/templates/guided_tour/group.html:26
#: bookwyrm/templates/guided_tour/group.html:49
#: bookwyrm/templates/guided_tour/group.html:72
#: bookwyrm/templates/guided_tour/group.html:95
#: bookwyrm/templates/guided_tour/home.html:74
#: bookwyrm/templates/guided_tour/home.html:97
#: bookwyrm/templates/guided_tour/home.html:121
#: bookwyrm/templates/guided_tour/home.html:146
#: bookwyrm/templates/guided_tour/home.html:171
#: bookwyrm/templates/guided_tour/home.html:195
#: bookwyrm/templates/guided_tour/lists.html:29
#: bookwyrm/templates/guided_tour/lists.html:53
#: bookwyrm/templates/guided_tour/lists.html:76
#: bookwyrm/templates/guided_tour/lists.html:100
#: bookwyrm/templates/guided_tour/lists.html:123
#: bookwyrm/templates/guided_tour/search.html:36
#: bookwyrm/templates/guided_tour/search.html:63
#: bookwyrm/templates/guided_tour/search.html:89
#: bookwyrm/templates/guided_tour/search.html:116
#: bookwyrm/templates/guided_tour/search.html:140
#: bookwyrm/templates/guided_tour/user_books.html:26
#: bookwyrm/templates/guided_tour/user_books.html:50
#: bookwyrm/templates/guided_tour/user_books.html:73
#: bookwyrm/templates/guided_tour/user_books.html:96
#: bookwyrm/templates/guided_tour/user_groups.html:26
#: bookwyrm/templates/guided_tour/user_groups.html:50
#: bookwyrm/templates/guided_tour/user_groups.html:73
#: bookwyrm/templates/guided_tour/user_groups.html:97
#: bookwyrm/templates/guided_tour/user_profile.html:26
#: bookwyrm/templates/guided_tour/user_profile.html:49
#: bookwyrm/templates/guided_tour/user_profile.html:72
#: bookwyrm/templates/guided_tour/user_profile.html:95
#: bookwyrm/templates/guided_tour/user_profile.html:118
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "Seguinte"
#: bookwyrm/templates/guided_tour/book.html:31
msgid "This is where you can set a reading status for this book. You can press the button to move to the next stage, or use the drop down button to select the reading status you want to set."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:32
msgid "Reading status"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:55
msgid "You can also manually add reading dates here. Unlike changing the reading status using the previous method, adding dates manually will not automatically add them to your <strong>Read</strong> or <strong>Reading</strong> shelves.<br><br>Got a favourite you re-read every year? We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:79
msgid "There can be multiple editions of a book, in various formats or languages. You can choose which edition you want to use."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:80
msgid "Other editions"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:102
msgid "You can post a review, comment, or quote here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:103
msgid "Share your thoughts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:127
msgid "If you have read this book you can post a review including an optional star rating"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:128
msgid "Post a review"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:151
msgid "You can share your thoughts on this book generally with a simple comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:152
msgid "Post a comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:175
msgid "Just read some perfect prose? Let the world know by sharing a quote!"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:176
msgid "Share a quote"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:199
msgid "If your review or comment might ruin the book for someone who hasn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:200
msgid "Spoiler alerts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:224
msgid "Choose who can see your post here. Post privacy can be <strong>Public</strong> (everyone can see), <strong>Unlisted</strong> (everyone can see, but it doesn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:225
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "Privacidade da publicación"
#: bookwyrm/templates/guided_tour/book.html:248
msgid "Some ebooks can be downloaded for free from external sources. They will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:249
msgid "Download links"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:273
#: bookwyrm/templates/guided_tour/search.html:147
msgid "<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:296
#: bookwyrm/templates/guided_tour/home.html:50
#: bookwyrm/templates/guided_tour/home.html:218
#: bookwyrm/templates/guided_tour/search.html:161
#: bookwyrm/templates/guided_tour/user_books.html:124
#: bookwyrm/templates/guided_tour/user_groups.html:116
#: bookwyrm/templates/guided_tour/user_profile.html:141
msgid "Ok"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:10
msgid "Welcome to the page for your group! This is where you can add and remove users, create user-curated lists, and edit the group details."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:11
msgid "Your group"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:31
msgid "Use this search box to find users to join your group. Currently users must be members of the same Bookwyrm instance and be invited by the group owner."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:32
msgid "Find users"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:54
msgid "Your group members will appear here. The group owner is marked with a star symbol."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:55
msgid "Group members"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:77
msgid "As well as creating lists from the Lists page, you can create a group-curated list here on the group\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:78
msgid "Group lists"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:100
msgid "Congratulations, you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:115
msgid "End tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:16
msgid "Welcome to Bookwyrm!<br><br>Would you like to take the guided tour to help you get started?"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:17
#: bookwyrm/templates/guided_tour/home.html:39
#: bookwyrm/templates/layout.html:194
msgid "Guided Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:25
msgid "No thanks"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:33
msgid "Yes please!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:38
msgid "If you ever change your mind, just click on the Guided Tour link to start your tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:62
msgid "Search for books, users, or lists using this search box."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:63
msgid "Search box"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:79
msgid "Search book records by scanning an ISBN barcode using your device\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:80
msgid "Barcode reader"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:102
msgid "Use the <strong>Feed</strong>, <strong>Lists</strong> and <strong>Discover</strong> links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:103
msgid "Navigation Bar"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:126
msgid "Books on your reading status shelves will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:151
msgid "Updates from people you are following will appear in your <strong>Home</strong> timeline.<br><br>The <strong>Books</strong> tab shows activity from anyone, related to your books."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:152
msgid "Timelines"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:176
msgid "The bell will light up when you have a new notification. When it does, click on it to find out what exciting thing has happened!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:177
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Notificacións"
#: bookwyrm/templates/guided_tour/home.html:200
msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:201
msgid "Profile and settings menu"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:13
msgid "This is the lists page where you can discover book lists created by any user. A List is a collection of books, similar to a shelf.<br><br>Shelves are for organising books for yourself, whereas Lists are generally for sharing with others."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:34
#: bookwyrm/templates/guided_tour/user_groups.html:31
msgid "Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:35
#: bookwyrm/templates/guided_tour/lists.html:59
msgid "Creating a new list"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:58
msgid "You must give your list a name and can optionally give it a description to help other people understand what your list is about."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:81
msgid "Choose who can see your list here. List privacy options work just like we saw when posting book reviews. This is a common pattern throughout Bookwyrm."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:82
msgid "List privacy"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:105
msgid "You can also decide how your list is to be curated - only by you, by anyone, or by a group."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:106
msgid "List curation"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:128
msgid "Next in our tour we will explore Groups!"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:129
msgid "Next: Groups"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:143
msgid "Take me there"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:16
msgid "If the book you are looking for is available on a remote catalogue such as Open Library, click on <strong>Import book</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:17
#: bookwyrm/templates/guided_tour/search.html:44
msgid "Searching"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:43
msgid "If the book you are looking for is already on this Bookwyrm instance, you can click on the title to go to the book\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:71
msgid "If the book you are looking for is not listed, try loading more records from other sources like Open Library or Inventaire."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:72
msgid "Load more records"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:98
msgid "If your book is not in the results, try adjusting your search terms."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:99
msgid "Search again"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:121
msgid "If you still can\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:122
msgid "Add a record manally"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:148
msgid "Continue the tour"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:10
msgid "This is the page where your books are listed, organised into shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:11
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "Os teus libros"
#: bookwyrm/templates/guided_tour/user_books.html:31
msgid "<strong>To Read</strong>, <strong>Currently Reading</strong>, <strong>Read</strong>, and <strong>Stopped Reading</strong> are default shelves. When you change the reading status of a book it will automatically be moved to the matching shelf. A book can only be on one default shelf at a time."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:32
msgid "Reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:55
msgid "You can create additional custom shelves to organise your books. A book on a custom shelf can be on any number of other shelves simultaneously, including one of the default reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:56
msgid "Adding custom shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:78
msgid "If you have an export file from another service like Goodreads or LibraryThing, you can import it here."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:79
msgid "Import from another service"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:101
msgid "Now that we\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:10
msgid "You can create or join a group with other users. Groups can share group-curated book lists, and in future will be able to do other things."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:11
#: bookwyrm/templates/guided_tour/user_profile.html:55
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "Grupos"
#: bookwyrm/templates/guided_tour/user_groups.html:55
msgid "Give your group a name and describe what it is about. You can make user groups for any purpose - a reading group, a bunch of friends, whatever!"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:56
msgid "Creating a group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:78
msgid "Groups have privacy settings just like posts and lists, except that group privacy cannot be <strong>Followers</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:79
msgid "Group visibility"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:102
msgid "Once you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:103
msgid "Save your group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:10
msgid "This is your user profile. All your latest activities will be listed here. Other Bookwyrm users can see parts of this page too - what they can see depends on your privacy settings."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:11
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "Perfil da usuaria"
#: bookwyrm/templates/guided_tour/user_profile.html:31
msgid "This tab shows everything you have read towards your annual reading goal, or allows you to set one. You don\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:32
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "Obxectivo de lectura"
#: bookwyrm/templates/guided_tour/user_profile.html:54
msgid "Here you can see your groups, or create a new one. A group brings together Bookwyrm users and allows them to curate lists together."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:77
msgid "You can see your lists, or create a new one, here. A list is a collection of books that have something in common."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:100
msgid "The Books tab shows your book shelves. We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:123
msgid "Now you understand the basics of your profile page, let\\s add a book to your shelves.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:124
msgid "Find a book"
msgstr ""
#: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:5
#: bookwyrm/templates/import/import.html:9 #: bookwyrm/templates/import/import.html:9
#: bookwyrm/templates/shelf/shelf.html:64 #: bookwyrm/templates/shelf/shelf.html:64
@ -2272,8 +2807,8 @@ msgstr "Esqueceches o contrasinal?"
msgid "More about this site" msgid "More about this site"
msgstr "Máis acerca deste sitio" msgstr "Máis acerca deste sitio"
#: bookwyrm/templates/landing/password_reset.html:34 #: bookwyrm/templates/landing/password_reset.html:43
#: bookwyrm/templates/preferences/change_password.html:18 #: bookwyrm/templates/preferences/change_password.html:33
#: bookwyrm/templates/preferences/delete_user.html:20 #: bookwyrm/templates/preferences/delete_user.html:20
msgid "Confirm password:" msgid "Confirm password:"
msgstr "Confirma o contrasinal:" msgstr "Confirma o contrasinal:"
@ -2281,7 +2816,7 @@ msgstr "Confirma o contrasinal:"
#: bookwyrm/templates/landing/password_reset_request.html:14 #: bookwyrm/templates/landing/password_reset_request.html:14
#, python-format #, python-format
msgid "A password reset link will be sent to <strong>%(email)s</strong> if there is an account using that email address." msgid "A password reset link will be sent to <strong>%(email)s</strong> if there is an account using that email address."
msgstr "" msgstr "Imos enviar a <strong>%(email)s</strong> unha ligazón para restablecer o contrasinal se existe unha conta que usa ese enderezo."
#: bookwyrm/templates/landing/password_reset_request.html:20 #: bookwyrm/templates/landing/password_reset_request.html:20
msgid "A link to reset your password will be sent to your email address" msgid "A link to reset your password will be sent to your email address"
@ -2312,12 +2847,6 @@ msgstr "Menú principal de navegación"
msgid "Feed" msgid "Feed"
msgstr "Cronoloxía" msgstr "Cronoloxía"
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Notificacións"
#: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33 #: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33
msgid "password" msgid "password"
msgstr "contrasinal" msgstr "contrasinal"
@ -2338,12 +2867,12 @@ msgstr "Erro ao publicar"
msgid "Documentation" msgid "Documentation"
msgstr "Documentación" msgstr "Documentación"
#: bookwyrm/templates/layout.html:197 #: bookwyrm/templates/layout.html:203
#, python-format #, python-format
msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
msgstr "Axuda a %(site_name)s en <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgstr "Axuda a %(site_name)s en <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
#: bookwyrm/templates/layout.html:201 #: bookwyrm/templates/layout.html:207
msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
msgstr "O código fonte de BookWyrm é público. Podes colaborar ou informar de problemas en <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgstr "O código fonte de BookWyrm é público. Podes colaborar ou informar de problemas en <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
@ -2598,12 +3127,12 @@ msgstr "Listas gardadas"
#: bookwyrm/templates/notifications/items/accept.html:18 #: bookwyrm/templates/notifications/items/accept.html:18
#, python-format #, python-format
msgid "<a href=\"%(related_user_link)s\">%(related_user)s</a> accepted your invitation to join group \"<a href=\"%(group_path)s\">%(group_name)s</a>\"" msgid "<a href=\"%(related_user_link)s\">%(related_user)s</a> accepted your invitation to join group \"<a href=\"%(group_path)s\">%(group_name)s</a>\""
msgstr "" msgstr "<a href=\"%(related_user_link)s\">%(related_user)s</a> aceptou o teu convite para unirte ao grupo \"<a href=\"%(group_path)s\">%(group_name)s</a>\""
#: bookwyrm/templates/notifications/items/accept.html:26 #: bookwyrm/templates/notifications/items/accept.html:26
#, python-format #, python-format
msgid "<a href=\"%(related_user_link)s\">%(related_user)s</a> and <a href=\"%(second_user_link)s\">%(second_user)s</a> accepted your invitation to join group \"<a href=\"%(group_path)s\">%(group_name)s</a>\"" msgid "<a href=\"%(related_user_link)s\">%(related_user)s</a> and <a href=\"%(second_user_link)s\">%(second_user)s</a> accepted your invitation to join group \"<a href=\"%(group_path)s\">%(group_name)s</a>\""
msgstr "" msgstr "<a href=\"%(related_user_link)s\">%(related_user)s</a> e<a href=\"%(second_user_link)s\">%(second_user)s</a> aceptaron o teu convite para unirse ao grupo \"<a href=\"%(group_path)s\">%(group_name)s</a>\""
#: bookwyrm/templates/notifications/items/accept.html:36 #: bookwyrm/templates/notifications/items/accept.html:36
#, python-format #, python-format
@ -2871,6 +3400,11 @@ msgid_plural "%(display_count)s new <a href=\"%(path)s\">reports</a> need modera
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: bookwyrm/templates/notifications/items/status_preview.html:4
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "Aviso sobre o contido"
#: bookwyrm/templates/notifications/items/update.html:16 #: bookwyrm/templates/notifications/items/update.html:16
#, python-format #, python-format
msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>" msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>"
@ -3028,12 +3562,20 @@ msgstr "Non tes usuarias bloqueadas."
#: bookwyrm/templates/preferences/change_password.html:4 #: bookwyrm/templates/preferences/change_password.html:4
#: bookwyrm/templates/preferences/change_password.html:7 #: bookwyrm/templates/preferences/change_password.html:7
#: bookwyrm/templates/preferences/change_password.html:21 #: bookwyrm/templates/preferences/change_password.html:37
#: bookwyrm/templates/preferences/layout.html:20 #: bookwyrm/templates/preferences/layout.html:20
msgid "Change Password" msgid "Change Password"
msgstr "Cambiar contrasinal" msgstr "Cambiar contrasinal"
#: bookwyrm/templates/preferences/change_password.html:14 #: bookwyrm/templates/preferences/change_password.html:15
msgid "Successfully changed password"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:22
msgid "Current password:"
msgstr "Contrasinal actual:"
#: bookwyrm/templates/preferences/change_password.html:28
msgid "New password:" msgid "New password:"
msgstr "Novo contrasinal:" msgstr "Novo contrasinal:"
@ -3125,6 +3667,10 @@ msgstr "Exportación CSV"
msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity." msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity."
msgstr "A exportación incluirá tódolos libros dos estantes, libros que recensionaches e libros con actividade de lectura." msgstr "A exportación incluirá tódolos libros dos estantes, libros que recensionaches e libros con actividade de lectura."
#: bookwyrm/templates/preferences/export.html:20
msgid "Download file"
msgstr "Descargar ficheiro"
#: bookwyrm/templates/preferences/layout.html:11 #: bookwyrm/templates/preferences/layout.html:11
msgid "Account" msgid "Account"
msgstr "Conta" msgstr "Conta"
@ -3587,11 +4133,11 @@ msgstr[1] "hai que revisar %(display_count)s dominios"
#: bookwyrm/templates/settings/dashboard/warnings/email_config.html:8 #: bookwyrm/templates/settings/dashboard/warnings/email_config.html:8
#, python-format #, python-format
msgid "Your outgoing email address, <code>%(email_sender)s</code>, may be misconfigured." msgid "Your outgoing email address, <code>%(email_sender)s</code>, may be misconfigured."
msgstr "" msgstr "O enderezo de envío de emails, <code>%(email_sender)s</code>, podería estar mal configurado."
#: bookwyrm/templates/settings/dashboard/warnings/email_config.html:11 #: bookwyrm/templates/settings/dashboard/warnings/email_config.html:11
msgid "Check the <code>EMAIL_SENDER_NAME</code> and <code>EMAIL_SENDER_DOMAIN</code> in your <code>.env</code> file." msgid "Check the <code>EMAIL_SENDER_NAME</code> and <code>EMAIL_SENDER_DOMAIN</code> in your <code>.env</code> file."
msgstr "" msgstr "Comproba o <code>EMAIL_SENDER_NAME</code> e <code>EMAIL_SENDER_DOMAIN</code> no teu ficheiro <code>.env</code>."
#: bookwyrm/templates/settings/dashboard/warnings/invites.html:9 #: bookwyrm/templates/settings/dashboard/warnings/invites.html:9
#, python-format #, python-format
@ -3602,11 +4148,11 @@ msgstr[1] "%(display_count)s solicitudes de convite"
#: bookwyrm/templates/settings/dashboard/warnings/missing_conduct.html:8 #: bookwyrm/templates/settings/dashboard/warnings/missing_conduct.html:8
msgid "Your instance is missing a code of conduct." msgid "Your instance is missing a code of conduct."
msgstr "" msgstr "A túa instancia non ten código de conduta."
#: bookwyrm/templates/settings/dashboard/warnings/missing_privacy.html:8 #: bookwyrm/templates/settings/dashboard/warnings/missing_privacy.html:8
msgid "Your instance is missing a privacy policy." msgid "Your instance is missing a privacy policy."
msgstr "" msgstr "A túa instancia non ten política de privacidade."
#: bookwyrm/templates/settings/dashboard/warnings/reports.html:9 #: bookwyrm/templates/settings/dashboard/warnings/reports.html:9
#, python-format #, python-format
@ -4074,7 +4620,7 @@ msgstr "Denuncia #%(report_id)s: Ligazón engadida por @%(username)s"
#: bookwyrm/templates/settings/reports/report_header.html:17 #: bookwyrm/templates/settings/reports/report_header.html:17
#, python-format #, python-format
msgid "Report #%(report_id)s: Link domain" msgid "Report #%(report_id)s: Link domain"
msgstr "" msgstr "Denuncia #%(report_id)s: Dominio na ligazón"
#: bookwyrm/templates/settings/reports/report_header.html:24 #: bookwyrm/templates/settings/reports/report_header.html:24
#, python-format #, python-format
@ -4318,7 +4864,7 @@ msgstr "Usuarias: <small>%(instance_name)s</small>"
#: bookwyrm/templates/settings/users/user_admin.html:29 #: bookwyrm/templates/settings/users/user_admin.html:29
msgid "Deleted users" msgid "Deleted users"
msgstr "" msgstr "Usuarias eliminadas"
#: bookwyrm/templates/settings/users/user_admin.html:44 #: bookwyrm/templates/settings/users/user_admin.html:44
#: bookwyrm/templates/settings/users/username_filter.html:5 #: bookwyrm/templates/settings/users/username_filter.html:5
@ -4344,7 +4890,7 @@ msgstr "Activa"
#: bookwyrm/templates/settings/users/user_admin.html:86 #: bookwyrm/templates/settings/users/user_admin.html:86
msgid "Deleted" msgid "Deleted"
msgstr "" msgstr "Eliminada"
#: bookwyrm/templates/settings/users/user_admin.html:92 #: bookwyrm/templates/settings/users/user_admin.html:92
#: bookwyrm/templates/settings/users/user_info.html:32 #: bookwyrm/templates/settings/users/user_info.html:32
@ -4905,19 +5451,10 @@ msgstr "páxina %(page)s"
msgid "Previous" msgid "Previous"
msgstr "Anterior" msgstr "Anterior"
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "Seguinte"
#: bookwyrm/templates/snippets/privacy-icons.html:12 #: bookwyrm/templates/snippets/privacy-icons.html:12
msgid "Followers-only" msgid "Followers-only"
msgstr "Só seguidoras" msgstr "Só seguidoras"
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "Privacidade da publicación"
#: bookwyrm/templates/snippets/rate_action.html:5 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "Fai unha valoración" msgstr "Fai unha valoración"
@ -5036,10 +5573,6 @@ msgstr "Deixar de ler"
msgid "Finish reading" msgid "Finish reading"
msgstr "Rematar a lectura" msgstr "Rematar a lectura"
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "Aviso sobre o contido"
#: bookwyrm/templates/snippets/status/content_status.html:80 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "Mostrar estado" msgstr "Mostrar estado"
@ -5191,10 +5724,6 @@ msgstr "Mostrar máis"
msgid "Show less" msgid "Show less"
msgstr "Mostrar menos" msgstr "Mostrar menos"
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "Os teus libros"
#: bookwyrm/templates/user/books_header.html:9 #: bookwyrm/templates/user/books_header.html:9
#, python-format #, python-format
msgid "%(username)s's books" msgid "%(username)s's books"
@ -5233,22 +5762,10 @@ msgstr "Os teus grupos"
msgid "Groups: %(username)s" msgid "Groups: %(username)s"
msgstr "Grupos: %(username)s" msgstr "Grupos: %(username)s"
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "Perfil da usuaria"
#: bookwyrm/templates/user/layout.html:48 #: bookwyrm/templates/user/layout.html:48
msgid "Follow Requests" msgid "Follow Requests"
msgstr "Solicitudes de seguimento" msgstr "Solicitudes de seguimento"
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "Obxectivo de lectura"
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "Grupos"
#: bookwyrm/templates/user/lists.html:11 #: bookwyrm/templates/user/lists.html:11
#, python-format #, python-format
msgid "Lists: %(username)s" msgid "Lists: %(username)s"
@ -5335,7 +5852,7 @@ msgstr "Sen seguidoras que ti segues"
msgid "View profile and more" msgid "View profile and more"
msgstr "Ver perfil e máis" msgstr "Ver perfil e máis"
#: bookwyrm/templates/user_menu.html:72 #: bookwyrm/templates/user_menu.html:78
msgid "Log out" msgid "Log out"
msgstr "Desconectar" msgstr "Desconectar"

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-07-08 22:40+0000\n" "POT-Creation-Date: 2022-07-28 18:11+0000\n"
"PO-Revision-Date: 2022-07-10 21:20\n" "PO-Revision-Date: 2022-07-28 19:14\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"
@ -42,6 +42,14 @@ msgstr "{i} usi"
msgid "Unlimited" msgid "Unlimited"
msgstr "Illimitato" msgstr "Illimitato"
#: bookwyrm/forms/edit_user.py:89
msgid "Incorrect password"
msgstr ""
#: bookwyrm/forms/edit_user.py:96 bookwyrm/forms/landing.py:71
msgid "Password does not match"
msgstr ""
#: bookwyrm/forms/forms.py:54 #: bookwyrm/forms/forms.py:54
msgid "Reading finish date cannot be before start date." msgid "Reading finish date cannot be before start date."
msgstr "La data di fine lettura non può essere precedente alla data di inizio." msgstr "La data di fine lettura non può essere precedente alla data di inizio."
@ -50,11 +58,11 @@ msgstr "La data di fine lettura non può essere precedente alla data di inizio."
msgid "Reading stopped date cannot be before start date." msgid "Reading stopped date cannot be before start date."
msgstr "La data di fine lettura non può essere precedente alla data di inizio." msgstr "La data di fine lettura non può essere precedente alla data di inizio."
#: bookwyrm/forms/landing.py:32 #: bookwyrm/forms/landing.py:38
msgid "User with this username already exists" msgid "User with this username already exists"
msgstr "Esiste già un utente con questo nome utente" msgstr "Esiste già un utente con questo nome utente"
#: bookwyrm/forms/landing.py:41 #: bookwyrm/forms/landing.py:47
msgid "A user with this email already exists." msgid "A user with this email already exists."
msgstr "Esiste già un'utenza con questo indirizzo email." msgstr "Esiste già un'utenza con questo indirizzo email."
@ -277,7 +285,9 @@ msgstr "Home"
msgid "Books Timeline" msgid "Books Timeline"
msgstr "Timeline dei libri" msgstr "Timeline dei libri"
#: bookwyrm/settings.py:210 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:210
#: bookwyrm/templates/guided_tour/user_profile.html:101
#: bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
@ -288,58 +298,62 @@ msgid "English"
msgstr "English (Inglese)" msgstr "English (Inglese)"
#: bookwyrm/settings.py:283 #: bookwyrm/settings.py:283
msgid "Català (Catalan)"
msgstr ""
#: bookwyrm/settings.py:284
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch (Tedesco)" msgstr "Deutsch (Tedesco)"
#: bookwyrm/settings.py:284 #: bookwyrm/settings.py:285
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español (Spagnolo)" msgstr "Español (Spagnolo)"
#: bookwyrm/settings.py:285 #: bookwyrm/settings.py:286
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego (Galiziano)" msgstr "Galego (Galiziano)"
#: bookwyrm/settings.py:286 #: bookwyrm/settings.py:287
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "Italiano (Italiano)" msgstr "Italiano (Italiano)"
#: bookwyrm/settings.py:287 #: bookwyrm/settings.py:288
msgid "Suomi (Finnish)" msgid "Suomi (Finnish)"
msgstr "Suomi (Finlandese)" msgstr "Suomi (Finlandese)"
#: bookwyrm/settings.py:288 #: bookwyrm/settings.py:289
msgid "Français (French)" msgid "Français (French)"
msgstr "Français (Francese)" msgstr "Français (Francese)"
#: bookwyrm/settings.py:289 #: bookwyrm/settings.py:290
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių (Lituano)" msgstr "Lietuvių (Lituano)"
#: bookwyrm/settings.py:290 #: bookwyrm/settings.py:291
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "Norsk (Norvegese)" msgstr "Norsk (Norvegese)"
#: bookwyrm/settings.py:291 #: bookwyrm/settings.py:292
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português do Brasil (Portoghese Brasiliano)" msgstr "Português do Brasil (Portoghese Brasiliano)"
#: bookwyrm/settings.py:292 #: bookwyrm/settings.py:293
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português Europeu (Portoghese europeo)" msgstr "Português Europeu (Portoghese europeo)"
#: bookwyrm/settings.py:293 #: bookwyrm/settings.py:294
msgid "Română (Romanian)" msgid "Română (Romanian)"
msgstr "Rumeno (Romanian)" msgstr "Rumeno (Romanian)"
#: bookwyrm/settings.py:294 #: bookwyrm/settings.py:295
msgid "Svenska (Swedish)" msgid "Svenska (Swedish)"
msgstr "Svenska (Svedese)" msgstr "Svenska (Svedese)"
#: bookwyrm/settings.py:295 #: bookwyrm/settings.py:296
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文 (Cinese Semplificato)" msgstr "简体中文 (Cinese Semplificato)"
#: bookwyrm/settings.py:296 #: bookwyrm/settings.py:297
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文 (Cinese Tradizionale)" msgstr "繁體中文 (Cinese Tradizionale)"
@ -787,7 +801,7 @@ msgstr "Il caricamento dei dati si collegherà a <strong>%(source_name)s</strong
#: bookwyrm/templates/book/edit/edit_book.html:122 #: 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:52
#: bookwyrm/templates/snippets/remove_from_group_button.html:17 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "Conferma" msgstr "Conferma"
@ -850,6 +864,7 @@ msgid "Your reading activity"
msgstr "Le tue attività di lettura" msgstr "Le tue attività di lettura"
#: bookwyrm/templates/book/book.html:260 #: bookwyrm/templates/book/book.html:260
#: bookwyrm/templates/guided_tour/book.html:56
msgid "Add read dates" msgid "Add read dates"
msgstr "Aggiungi data di lettura" msgstr "Aggiungi data di lettura"
@ -878,9 +893,13 @@ msgid "Places"
msgstr "Luoghi" msgstr "Luoghi"
#: bookwyrm/templates/book/book.html:365 #: bookwyrm/templates/book/book.html:365
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:83 #: bookwyrm/templates/groups/group.html:19
#: bookwyrm/templates/lists/curate.html:8 bookwyrm/templates/lists/list.html:12 #: bookwyrm/templates/guided_tour/lists.html:14
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/guided_tour/user_books.html:102
#: bookwyrm/templates/guided_tour/user_profile.html:78
#: bookwyrm/templates/layout.html:83 bookwyrm/templates/lists/curate.html:8
#: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5
#: bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
#: bookwyrm/templates/user/layout.html:85 #: bookwyrm/templates/user/layout.html:85
@ -990,6 +1009,49 @@ msgstr "Si tratta di un nuovo lavoro"
#: bookwyrm/templates/book/edit/edit_book.html:124 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
#: bookwyrm/templates/guided_tour/book.html:44
#: bookwyrm/templates/guided_tour/book.html:68
#: bookwyrm/templates/guided_tour/book.html:91
#: bookwyrm/templates/guided_tour/book.html:116
#: bookwyrm/templates/guided_tour/book.html:140
#: bookwyrm/templates/guided_tour/book.html:164
#: bookwyrm/templates/guided_tour/book.html:188
#: bookwyrm/templates/guided_tour/book.html:213
#: bookwyrm/templates/guided_tour/book.html:237
#: bookwyrm/templates/guided_tour/book.html:262
#: bookwyrm/templates/guided_tour/book.html:290
#: bookwyrm/templates/guided_tour/group.html:43
#: bookwyrm/templates/guided_tour/group.html:66
#: bookwyrm/templates/guided_tour/group.html:89
#: bookwyrm/templates/guided_tour/group.html:108
#: bookwyrm/templates/guided_tour/home.html:91
#: bookwyrm/templates/guided_tour/home.html:115
#: bookwyrm/templates/guided_tour/home.html:140
#: bookwyrm/templates/guided_tour/home.html:165
#: bookwyrm/templates/guided_tour/home.html:189
#: bookwyrm/templates/guided_tour/home.html:212
#: bookwyrm/templates/guided_tour/lists.html:47
#: bookwyrm/templates/guided_tour/lists.html:70
#: bookwyrm/templates/guided_tour/lists.html:94
#: bookwyrm/templates/guided_tour/lists.html:117
#: bookwyrm/templates/guided_tour/lists.html:136
#: bookwyrm/templates/guided_tour/search.html:83
#: bookwyrm/templates/guided_tour/search.html:110
#: bookwyrm/templates/guided_tour/search.html:134
#: bookwyrm/templates/guided_tour/search.html:155
#: bookwyrm/templates/guided_tour/user_books.html:44
#: bookwyrm/templates/guided_tour/user_books.html:67
#: bookwyrm/templates/guided_tour/user_books.html:90
#: bookwyrm/templates/guided_tour/user_books.html:118
#: bookwyrm/templates/guided_tour/user_groups.html:44
#: bookwyrm/templates/guided_tour/user_groups.html:67
#: bookwyrm/templates/guided_tour/user_groups.html:91
#: bookwyrm/templates/guided_tour/user_groups.html:110
#: bookwyrm/templates/guided_tour/user_profile.html:43
#: bookwyrm/templates/guided_tour/user_profile.html:66
#: bookwyrm/templates/guided_tour/user_profile.html:89
#: bookwyrm/templates/guided_tour/user_profile.html:112
#: bookwyrm/templates/guided_tour/user_profile.html:135
msgid "Back" msgid "Back"
msgstr "Indietro" msgstr "Indietro"
@ -1351,11 +1413,7 @@ msgstr "Invia di nuovo email di conferma"
msgid "Email address:" msgid "Email address:"
msgstr "Indirizzo Email:" msgstr "Indirizzo Email:"
#: bookwyrm/templates/confirm_email/resend_modal.html:28 #: bookwyrm/templates/confirm_email/resend_modal.html:30
msgid "No user matching this email address found."
msgstr "Non è stato trovato nessun utente con questo indirizzo email."
#: bookwyrm/templates/confirm_email/resend_modal.html:38
msgid "Resend link" msgid "Resend link"
msgstr "Reinvia il link" msgstr "Reinvia il link"
@ -1650,16 +1708,16 @@ msgstr "Tutti i messaggi"
msgid "You have no messages right now." msgid "You have no messages right now."
msgstr "Non hai messaggi in questo momento." msgstr "Non hai messaggi in questo momento."
#: bookwyrm/templates/feed/feed.html:54 #: bookwyrm/templates/feed/feed.html:55
msgid "There aren't any activities right now! Try following a user to get started" msgid "There aren't any activities right now! Try following a user to get started"
msgstr "Non ci sono attività in questo momento! Prova a seguire qualcuno per iniziare" msgstr "Non ci sono attività in questo momento! Prova a seguire qualcuno per iniziare"
#: bookwyrm/templates/feed/feed.html:55 #: bookwyrm/templates/feed/feed.html:56
msgid "Alternatively, you can try enabling more status types" msgid "Alternatively, you can try enabling more status types"
msgstr "In alternativa, puoi provare ad abilitare più tipi di stato" msgstr "In alternativa, puoi provare ad abilitare più tipi di stato"
#: bookwyrm/templates/feed/goal_card.html:6 #: bookwyrm/templates/feed/goal_card.html:6
#: bookwyrm/templates/feed/layout.html:15 #: bookwyrm/templates/feed/layout.html:14
#: bookwyrm/templates/user/goal_form.html:6 #: bookwyrm/templates/user/goal_form.html:6
#, python-format #, python-format
msgid "%(year)s Reading Goal" msgid "%(year)s Reading Goal"
@ -1670,11 +1728,12 @@ msgstr "Obiettivo di Lettura del %(year)s"
msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>" msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>"
msgstr "Puoi impostare o modificare il tuo obiettivo di lettura in qualsiasi momento dalla tua <a href=\"%(path)s\">pagina del profilo</a>" msgstr "Puoi impostare o modificare il tuo obiettivo di lettura in qualsiasi momento dalla tua <a href=\"%(path)s\">pagina del profilo</a>"
#: bookwyrm/templates/feed/layout.html:5 #: bookwyrm/templates/feed/layout.html:4
msgid "Updates" msgid "Updates"
msgstr "Aggiornamenti" msgstr "Aggiornamenti"
#: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/feed/suggested_books.html:6
#: bookwyrm/templates/guided_tour/home.html:127
#: bookwyrm/templates/user_menu.html:35 #: bookwyrm/templates/user_menu.html:35
msgid "Your Books" msgid "Your Books"
msgstr "I Tuoi Libri" msgstr "I Tuoi Libri"
@ -1825,6 +1884,7 @@ msgid "Skip this step"
msgstr "Salta questo passaggio" msgstr "Salta questo passaggio"
#: bookwyrm/templates/get_started/layout.html:54 #: bookwyrm/templates/get_started/layout.html:54
#: bookwyrm/templates/guided_tour/group.html:101
msgid "Finish" msgid "Finish"
msgstr "Concludi" msgstr "Concludi"
@ -1870,6 +1930,7 @@ msgid "No users found for \"%(query)s\""
msgstr "Nessun utente trovato per \"%(query)s\"" msgstr "Nessun utente trovato per \"%(query)s\""
#: bookwyrm/templates/groups/create_form.html:5 #: bookwyrm/templates/groups/create_form.html:5
#: bookwyrm/templates/guided_tour/user_groups.html:32
#: bookwyrm/templates/user/groups.html:17 #: bookwyrm/templates/user/groups.html:17
msgid "Create group" msgid "Create group"
msgstr "Crea gruppo" msgstr "Crea gruppo"
@ -1980,6 +2041,480 @@ msgstr "Nessun potenziale membro trovato per \"%(user_query)s\""
msgid "Manager" msgid "Manager"
msgstr "Gestisci" msgstr "Gestisci"
#: bookwyrm/templates/guided_tour/book.html:10
msgid "This is home page of a book. Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:11
msgid "Book page"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:19
#: bookwyrm/templates/guided_tour/group.html:19
#: bookwyrm/templates/guided_tour/lists.html:22
#: bookwyrm/templates/guided_tour/search.html:29
#: bookwyrm/templates/guided_tour/search.html:56
#: bookwyrm/templates/guided_tour/user_books.html:19
#: bookwyrm/templates/guided_tour/user_groups.html:19
#: bookwyrm/templates/guided_tour/user_profile.html:19
msgid "End Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:26
#: bookwyrm/templates/guided_tour/book.html:50
#: bookwyrm/templates/guided_tour/book.html:74
#: bookwyrm/templates/guided_tour/book.html:97
#: bookwyrm/templates/guided_tour/book.html:122
#: bookwyrm/templates/guided_tour/book.html:146
#: bookwyrm/templates/guided_tour/book.html:170
#: bookwyrm/templates/guided_tour/book.html:194
#: bookwyrm/templates/guided_tour/book.html:219
#: bookwyrm/templates/guided_tour/book.html:243
#: bookwyrm/templates/guided_tour/book.html:268
#: bookwyrm/templates/guided_tour/book.html:274
#: bookwyrm/templates/guided_tour/group.html:26
#: bookwyrm/templates/guided_tour/group.html:49
#: bookwyrm/templates/guided_tour/group.html:72
#: bookwyrm/templates/guided_tour/group.html:95
#: bookwyrm/templates/guided_tour/home.html:74
#: bookwyrm/templates/guided_tour/home.html:97
#: bookwyrm/templates/guided_tour/home.html:121
#: bookwyrm/templates/guided_tour/home.html:146
#: bookwyrm/templates/guided_tour/home.html:171
#: bookwyrm/templates/guided_tour/home.html:195
#: bookwyrm/templates/guided_tour/lists.html:29
#: bookwyrm/templates/guided_tour/lists.html:53
#: bookwyrm/templates/guided_tour/lists.html:76
#: bookwyrm/templates/guided_tour/lists.html:100
#: bookwyrm/templates/guided_tour/lists.html:123
#: bookwyrm/templates/guided_tour/search.html:36
#: bookwyrm/templates/guided_tour/search.html:63
#: bookwyrm/templates/guided_tour/search.html:89
#: bookwyrm/templates/guided_tour/search.html:116
#: bookwyrm/templates/guided_tour/search.html:140
#: bookwyrm/templates/guided_tour/user_books.html:26
#: bookwyrm/templates/guided_tour/user_books.html:50
#: bookwyrm/templates/guided_tour/user_books.html:73
#: bookwyrm/templates/guided_tour/user_books.html:96
#: bookwyrm/templates/guided_tour/user_groups.html:26
#: bookwyrm/templates/guided_tour/user_groups.html:50
#: bookwyrm/templates/guided_tour/user_groups.html:73
#: bookwyrm/templates/guided_tour/user_groups.html:97
#: bookwyrm/templates/guided_tour/user_profile.html:26
#: bookwyrm/templates/guided_tour/user_profile.html:49
#: bookwyrm/templates/guided_tour/user_profile.html:72
#: bookwyrm/templates/guided_tour/user_profile.html:95
#: bookwyrm/templates/guided_tour/user_profile.html:118
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "Successivo"
#: bookwyrm/templates/guided_tour/book.html:31
msgid "This is where you can set a reading status for this book. You can press the button to move to the next stage, or use the drop down button to select the reading status you want to set."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:32
msgid "Reading status"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:55
msgid "You can also manually add reading dates here. Unlike changing the reading status using the previous method, adding dates manually will not automatically add them to your <strong>Read</strong> or <strong>Reading</strong> shelves.<br><br>Got a favourite you re-read every year? We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:79
msgid "There can be multiple editions of a book, in various formats or languages. You can choose which edition you want to use."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:80
msgid "Other editions"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:102
msgid "You can post a review, comment, or quote here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:103
msgid "Share your thoughts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:127
msgid "If you have read this book you can post a review including an optional star rating"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:128
msgid "Post a review"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:151
msgid "You can share your thoughts on this book generally with a simple comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:152
msgid "Post a comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:175
msgid "Just read some perfect prose? Let the world know by sharing a quote!"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:176
msgid "Share a quote"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:199
msgid "If your review or comment might ruin the book for someone who hasn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:200
msgid "Spoiler alerts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:224
msgid "Choose who can see your post here. Post privacy can be <strong>Public</strong> (everyone can see), <strong>Unlisted</strong> (everyone can see, but it doesn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:225
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "Privacy dei post"
#: bookwyrm/templates/guided_tour/book.html:248
msgid "Some ebooks can be downloaded for free from external sources. They will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:249
msgid "Download links"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:273
#: bookwyrm/templates/guided_tour/search.html:147
msgid "<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:296
#: bookwyrm/templates/guided_tour/home.html:50
#: bookwyrm/templates/guided_tour/home.html:218
#: bookwyrm/templates/guided_tour/search.html:161
#: bookwyrm/templates/guided_tour/user_books.html:124
#: bookwyrm/templates/guided_tour/user_groups.html:116
#: bookwyrm/templates/guided_tour/user_profile.html:141
msgid "Ok"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:10
msgid "Welcome to the page for your group! This is where you can add and remove users, create user-curated lists, and edit the group details."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:11
msgid "Your group"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:31
msgid "Use this search box to find users to join your group. Currently users must be members of the same Bookwyrm instance and be invited by the group owner."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:32
msgid "Find users"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:54
msgid "Your group members will appear here. The group owner is marked with a star symbol."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:55
msgid "Group members"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:77
msgid "As well as creating lists from the Lists page, you can create a group-curated list here on the group\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:78
msgid "Group lists"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:100
msgid "Congratulations, you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:115
msgid "End tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:16
msgid "Welcome to Bookwyrm!<br><br>Would you like to take the guided tour to help you get started?"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:17
#: bookwyrm/templates/guided_tour/home.html:39
#: bookwyrm/templates/layout.html:194
msgid "Guided Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:25
msgid "No thanks"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:33
msgid "Yes please!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:38
msgid "If you ever change your mind, just click on the Guided Tour link to start your tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:62
msgid "Search for books, users, or lists using this search box."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:63
msgid "Search box"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:79
msgid "Search book records by scanning an ISBN barcode using your device\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:80
msgid "Barcode reader"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:102
msgid "Use the <strong>Feed</strong>, <strong>Lists</strong> and <strong>Discover</strong> links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:103
msgid "Navigation Bar"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:126
msgid "Books on your reading status shelves will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:151
msgid "Updates from people you are following will appear in your <strong>Home</strong> timeline.<br><br>The <strong>Books</strong> tab shows activity from anyone, related to your books."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:152
msgid "Timelines"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:176
msgid "The bell will light up when you have a new notification. When it does, click on it to find out what exciting thing has happened!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:177
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Notifiche"
#: bookwyrm/templates/guided_tour/home.html:200
msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:201
msgid "Profile and settings menu"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:13
msgid "This is the lists page where you can discover book lists created by any user. A List is a collection of books, similar to a shelf.<br><br>Shelves are for organising books for yourself, whereas Lists are generally for sharing with others."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:34
#: bookwyrm/templates/guided_tour/user_groups.html:31
msgid "Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:35
#: bookwyrm/templates/guided_tour/lists.html:59
msgid "Creating a new list"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:58
msgid "You must give your list a name and can optionally give it a description to help other people understand what your list is about."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:81
msgid "Choose who can see your list here. List privacy options work just like we saw when posting book reviews. This is a common pattern throughout Bookwyrm."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:82
msgid "List privacy"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:105
msgid "You can also decide how your list is to be curated - only by you, by anyone, or by a group."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:106
msgid "List curation"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:128
msgid "Next in our tour we will explore Groups!"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:129
msgid "Next: Groups"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:143
msgid "Take me there"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:16
msgid "If the book you are looking for is available on a remote catalogue such as Open Library, click on <strong>Import book</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:17
#: bookwyrm/templates/guided_tour/search.html:44
msgid "Searching"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:43
msgid "If the book you are looking for is already on this Bookwyrm instance, you can click on the title to go to the book\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:71
msgid "If the book you are looking for is not listed, try loading more records from other sources like Open Library or Inventaire."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:72
msgid "Load more records"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:98
msgid "If your book is not in the results, try adjusting your search terms."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:99
msgid "Search again"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:121
msgid "If you still can\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:122
msgid "Add a record manally"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:148
msgid "Continue the tour"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:10
msgid "This is the page where your books are listed, organised into shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:11
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "I tuoi libri"
#: bookwyrm/templates/guided_tour/user_books.html:31
msgid "<strong>To Read</strong>, <strong>Currently Reading</strong>, <strong>Read</strong>, and <strong>Stopped Reading</strong> are default shelves. When you change the reading status of a book it will automatically be moved to the matching shelf. A book can only be on one default shelf at a time."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:32
msgid "Reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:55
msgid "You can create additional custom shelves to organise your books. A book on a custom shelf can be on any number of other shelves simultaneously, including one of the default reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:56
msgid "Adding custom shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:78
msgid "If you have an export file from another service like Goodreads or LibraryThing, you can import it here."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:79
msgid "Import from another service"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:101
msgid "Now that we\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:10
msgid "You can create or join a group with other users. Groups can share group-curated book lists, and in future will be able to do other things."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:11
#: bookwyrm/templates/guided_tour/user_profile.html:55
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "Gruppi"
#: bookwyrm/templates/guided_tour/user_groups.html:55
msgid "Give your group a name and describe what it is about. You can make user groups for any purpose - a reading group, a bunch of friends, whatever!"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:56
msgid "Creating a group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:78
msgid "Groups have privacy settings just like posts and lists, except that group privacy cannot be <strong>Followers</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:79
msgid "Group visibility"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:102
msgid "Once you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:103
msgid "Save your group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:10
msgid "This is your user profile. All your latest activities will be listed here. Other Bookwyrm users can see parts of this page too - what they can see depends on your privacy settings."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:11
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "Profilo utente"
#: bookwyrm/templates/guided_tour/user_profile.html:31
msgid "This tab shows everything you have read towards your annual reading goal, or allows you to set one. You don\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:32
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "Obiettivo di lettura"
#: bookwyrm/templates/guided_tour/user_profile.html:54
msgid "Here you can see your groups, or create a new one. A group brings together Bookwyrm users and allows them to curate lists together."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:77
msgid "You can see your lists, or create a new one, here. A list is a collection of books that have something in common."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:100
msgid "The Books tab shows your book shelves. We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:123
msgid "Now you understand the basics of your profile page, let\\s add a book to your shelves.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:124
msgid "Find a book"
msgstr ""
#: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:5
#: bookwyrm/templates/import/import.html:9 #: bookwyrm/templates/import/import.html:9
#: bookwyrm/templates/shelf/shelf.html:64 #: bookwyrm/templates/shelf/shelf.html:64
@ -2272,8 +2807,8 @@ msgstr "Hai dimenticato la tua password?"
msgid "More about this site" msgid "More about this site"
msgstr "Ulteriori informazioni su questo sito" msgstr "Ulteriori informazioni su questo sito"
#: bookwyrm/templates/landing/password_reset.html:34 #: bookwyrm/templates/landing/password_reset.html:43
#: bookwyrm/templates/preferences/change_password.html:18 #: bookwyrm/templates/preferences/change_password.html:33
#: bookwyrm/templates/preferences/delete_user.html:20 #: bookwyrm/templates/preferences/delete_user.html:20
msgid "Confirm password:" msgid "Confirm password:"
msgstr "Conferma la password:" msgstr "Conferma la password:"
@ -2312,12 +2847,6 @@ msgstr "Barra di navigazione principale"
msgid "Feed" msgid "Feed"
msgstr "Feed" msgstr "Feed"
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Notifiche"
#: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33 #: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33
msgid "password" msgid "password"
msgstr "password" msgstr "password"
@ -2338,12 +2867,12 @@ msgstr "Errore nel pubblicare lo stato"
msgid "Documentation" msgid "Documentation"
msgstr "Documentazione" msgstr "Documentazione"
#: bookwyrm/templates/layout.html:197 #: bookwyrm/templates/layout.html:203
#, python-format #, python-format
msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
msgstr "Supporta %(site_name)s su <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgstr "Supporta %(site_name)s su <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
#: bookwyrm/templates/layout.html:201 #: bookwyrm/templates/layout.html:207
msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
msgstr "Il codice sorgente di BookWyrm è disponibile liberamente. Puoi contribuire o segnalare problemi su <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgstr "Il codice sorgente di BookWyrm è disponibile liberamente. Puoi contribuire o segnalare problemi su <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
@ -2871,6 +3400,11 @@ msgid_plural "%(display_count)s new <a href=\"%(path)s\">reports</a> need modera
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: bookwyrm/templates/notifications/items/status_preview.html:4
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "Avviso sul contenuto"
#: bookwyrm/templates/notifications/items/update.html:16 #: bookwyrm/templates/notifications/items/update.html:16
#, python-format #, python-format
msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>" msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>"
@ -3028,12 +3562,20 @@ msgstr "Nessun utente attualmente bloccato."
#: bookwyrm/templates/preferences/change_password.html:4 #: bookwyrm/templates/preferences/change_password.html:4
#: bookwyrm/templates/preferences/change_password.html:7 #: bookwyrm/templates/preferences/change_password.html:7
#: bookwyrm/templates/preferences/change_password.html:21 #: bookwyrm/templates/preferences/change_password.html:37
#: bookwyrm/templates/preferences/layout.html:20 #: bookwyrm/templates/preferences/layout.html:20
msgid "Change Password" msgid "Change Password"
msgstr "Modifica Password" msgstr "Modifica Password"
#: bookwyrm/templates/preferences/change_password.html:14 #: bookwyrm/templates/preferences/change_password.html:15
msgid "Successfully changed password"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:22
msgid "Current password:"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:28
msgid "New password:" msgid "New password:"
msgstr "Nuova password:" msgstr "Nuova password:"
@ -3125,6 +3667,10 @@ msgstr "Esporta CSV"
msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity." msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity."
msgstr "La tua esportazione includerà tutti i libri sui tuoi scaffali, quelli che hai recensito e con attività di lettura." msgstr "La tua esportazione includerà tutti i libri sui tuoi scaffali, quelli che hai recensito e con attività di lettura."
#: bookwyrm/templates/preferences/export.html:20
msgid "Download file"
msgstr ""
#: bookwyrm/templates/preferences/layout.html:11 #: bookwyrm/templates/preferences/layout.html:11
msgid "Account" msgid "Account"
msgstr "Profilo" msgstr "Profilo"
@ -4905,19 +5451,10 @@ msgstr "pagina %(page)s"
msgid "Previous" msgid "Previous"
msgstr "Precedente" msgstr "Precedente"
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "Successivo"
#: bookwyrm/templates/snippets/privacy-icons.html:12 #: bookwyrm/templates/snippets/privacy-icons.html:12
msgid "Followers-only" msgid "Followers-only"
msgstr "Solo Followers" msgstr "Solo Followers"
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "Privacy dei post"
#: bookwyrm/templates/snippets/rate_action.html:5 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "Lascia una recensione" msgstr "Lascia una recensione"
@ -5036,10 +5573,6 @@ msgstr ""
msgid "Finish reading" msgid "Finish reading"
msgstr "Finito di leggere" msgstr "Finito di leggere"
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "Avviso sul contenuto"
#: bookwyrm/templates/snippets/status/content_status.html:80 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "Mostra stato" msgstr "Mostra stato"
@ -5191,10 +5724,6 @@ msgstr "Mostra di più"
msgid "Show less" msgid "Show less"
msgstr "Mostra meno" msgstr "Mostra meno"
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "I tuoi libri"
#: bookwyrm/templates/user/books_header.html:9 #: bookwyrm/templates/user/books_header.html:9
#, python-format #, python-format
msgid "%(username)s's books" msgid "%(username)s's books"
@ -5233,22 +5762,10 @@ msgstr "I tuoi gruppi"
msgid "Groups: %(username)s" msgid "Groups: %(username)s"
msgstr "Gruppi: %(username)s" msgstr "Gruppi: %(username)s"
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "Profilo utente"
#: bookwyrm/templates/user/layout.html:48 #: bookwyrm/templates/user/layout.html:48
msgid "Follow Requests" msgid "Follow Requests"
msgstr "Richieste di seguirti" msgstr "Richieste di seguirti"
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "Obiettivo di lettura"
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "Gruppi"
#: bookwyrm/templates/user/lists.html:11 #: bookwyrm/templates/user/lists.html:11
#, python-format #, python-format
msgid "Lists: %(username)s" msgid "Lists: %(username)s"
@ -5335,7 +5852,7 @@ msgstr "Nessun follower che segui"
msgid "View profile and more" msgid "View profile and more"
msgstr "Visualizza profilo e altro" msgstr "Visualizza profilo e altro"
#: bookwyrm/templates/user_menu.html:72 #: bookwyrm/templates/user_menu.html:78
msgid "Log out" msgid "Log out"
msgstr "Esci" msgstr "Esci"

Binary file not shown.

File diff suppressed because it is too large Load diff

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-07-08 22:40+0000\n" "POT-Creation-Date: 2022-07-28 18:11+0000\n"
"PO-Revision-Date: 2022-07-08 23:41\n" "PO-Revision-Date: 2022-07-28 19:13\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"
@ -42,6 +42,14 @@ msgstr "{i} ganger"
msgid "Unlimited" msgid "Unlimited"
msgstr "Ubegrenset" msgstr "Ubegrenset"
#: bookwyrm/forms/edit_user.py:89
msgid "Incorrect password"
msgstr ""
#: bookwyrm/forms/edit_user.py:96 bookwyrm/forms/landing.py:71
msgid "Password does not match"
msgstr ""
#: bookwyrm/forms/forms.py:54 #: bookwyrm/forms/forms.py:54
msgid "Reading finish date cannot be before start date." msgid "Reading finish date cannot be before start date."
msgstr "Sluttdato kan ikke være før startdato." msgstr "Sluttdato kan ikke være før startdato."
@ -50,11 +58,11 @@ msgstr "Sluttdato kan ikke være før startdato."
msgid "Reading stopped date cannot be before start date." msgid "Reading stopped date cannot be before start date."
msgstr "" msgstr ""
#: bookwyrm/forms/landing.py:32 #: bookwyrm/forms/landing.py:38
msgid "User with this username already exists" msgid "User with this username already exists"
msgstr "" msgstr ""
#: bookwyrm/forms/landing.py:41 #: bookwyrm/forms/landing.py:47
msgid "A user with this email already exists." msgid "A user with this email already exists."
msgstr "Den e-postadressen er allerede registrert." msgstr "Den e-postadressen er allerede registrert."
@ -277,7 +285,9 @@ msgstr "Hjem"
msgid "Books Timeline" msgid "Books Timeline"
msgstr "Boktidslinja" msgstr "Boktidslinja"
#: bookwyrm/settings.py:210 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:210
#: bookwyrm/templates/guided_tour/user_profile.html:101
#: bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
@ -288,58 +298,62 @@ msgid "English"
msgstr "English (Engelsk)" msgstr "English (Engelsk)"
#: bookwyrm/settings.py:283 #: bookwyrm/settings.py:283
msgid "Català (Catalan)"
msgstr ""
#: bookwyrm/settings.py:284
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch (Tysk)" msgstr "Deutsch (Tysk)"
#: bookwyrm/settings.py:284 #: bookwyrm/settings.py:285
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español (Spansk)" msgstr "Español (Spansk)"
#: bookwyrm/settings.py:285 #: bookwyrm/settings.py:286
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego (Gallisk)" msgstr "Galego (Gallisk)"
#: bookwyrm/settings.py:286 #: bookwyrm/settings.py:287
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "Italiano (Italiensk)" msgstr "Italiano (Italiensk)"
#: bookwyrm/settings.py:287 #: bookwyrm/settings.py:288
msgid "Suomi (Finnish)" msgid "Suomi (Finnish)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:288 #: bookwyrm/settings.py:289
msgid "Français (French)" msgid "Français (French)"
msgstr "Français (Fransk)" msgstr "Français (Fransk)"
#: bookwyrm/settings.py:289 #: bookwyrm/settings.py:290
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių (Litauisk)" msgstr "Lietuvių (Litauisk)"
#: bookwyrm/settings.py:290 #: bookwyrm/settings.py:291
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "Norsk (Norsk)" msgstr "Norsk (Norsk)"
#: bookwyrm/settings.py:291 #: bookwyrm/settings.py:292
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português - Brasil (Brasiliansk portugisisk)" msgstr "Português - Brasil (Brasiliansk portugisisk)"
#: bookwyrm/settings.py:292 #: bookwyrm/settings.py:293
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português Europeu (Europeisk Portugisisk)" msgstr "Português Europeu (Europeisk Portugisisk)"
#: bookwyrm/settings.py:293 #: bookwyrm/settings.py:294
msgid "Română (Romanian)" msgid "Română (Romanian)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:294 #: bookwyrm/settings.py:295
msgid "Svenska (Swedish)" msgid "Svenska (Swedish)"
msgstr "Svenska (Svensk)" msgstr "Svenska (Svensk)"
#: bookwyrm/settings.py:295 #: bookwyrm/settings.py:296
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文 (Forenklet kinesisk)" msgstr "简体中文 (Forenklet kinesisk)"
#: bookwyrm/settings.py:296 #: bookwyrm/settings.py:297
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文 (Tradisjonelt kinesisk)" msgstr "繁體中文 (Tradisjonelt kinesisk)"
@ -787,7 +801,7 @@ msgstr "Laster inn data kobler til <strong>%(source_name)s</strong> og finner me
#: bookwyrm/templates/book/edit/edit_book.html:122 #: 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:52
#: bookwyrm/templates/snippets/remove_from_group_button.html:17 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "Bekreft" msgstr "Bekreft"
@ -850,6 +864,7 @@ msgid "Your reading activity"
msgstr "Din leseaktivitet" msgstr "Din leseaktivitet"
#: bookwyrm/templates/book/book.html:260 #: bookwyrm/templates/book/book.html:260
#: bookwyrm/templates/guided_tour/book.html:56
msgid "Add read dates" msgid "Add read dates"
msgstr "Legg til lesedatoer" msgstr "Legg til lesedatoer"
@ -878,9 +893,13 @@ msgid "Places"
msgstr "Steder" msgstr "Steder"
#: bookwyrm/templates/book/book.html:365 #: bookwyrm/templates/book/book.html:365
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:83 #: bookwyrm/templates/groups/group.html:19
#: bookwyrm/templates/lists/curate.html:8 bookwyrm/templates/lists/list.html:12 #: bookwyrm/templates/guided_tour/lists.html:14
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/guided_tour/user_books.html:102
#: bookwyrm/templates/guided_tour/user_profile.html:78
#: bookwyrm/templates/layout.html:83 bookwyrm/templates/lists/curate.html:8
#: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5
#: bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
#: bookwyrm/templates/user/layout.html:85 #: bookwyrm/templates/user/layout.html:85
@ -990,6 +1009,49 @@ msgstr "Dette er et nytt verk"
#: bookwyrm/templates/book/edit/edit_book.html:124 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
#: bookwyrm/templates/guided_tour/book.html:44
#: bookwyrm/templates/guided_tour/book.html:68
#: bookwyrm/templates/guided_tour/book.html:91
#: bookwyrm/templates/guided_tour/book.html:116
#: bookwyrm/templates/guided_tour/book.html:140
#: bookwyrm/templates/guided_tour/book.html:164
#: bookwyrm/templates/guided_tour/book.html:188
#: bookwyrm/templates/guided_tour/book.html:213
#: bookwyrm/templates/guided_tour/book.html:237
#: bookwyrm/templates/guided_tour/book.html:262
#: bookwyrm/templates/guided_tour/book.html:290
#: bookwyrm/templates/guided_tour/group.html:43
#: bookwyrm/templates/guided_tour/group.html:66
#: bookwyrm/templates/guided_tour/group.html:89
#: bookwyrm/templates/guided_tour/group.html:108
#: bookwyrm/templates/guided_tour/home.html:91
#: bookwyrm/templates/guided_tour/home.html:115
#: bookwyrm/templates/guided_tour/home.html:140
#: bookwyrm/templates/guided_tour/home.html:165
#: bookwyrm/templates/guided_tour/home.html:189
#: bookwyrm/templates/guided_tour/home.html:212
#: bookwyrm/templates/guided_tour/lists.html:47
#: bookwyrm/templates/guided_tour/lists.html:70
#: bookwyrm/templates/guided_tour/lists.html:94
#: bookwyrm/templates/guided_tour/lists.html:117
#: bookwyrm/templates/guided_tour/lists.html:136
#: bookwyrm/templates/guided_tour/search.html:83
#: bookwyrm/templates/guided_tour/search.html:110
#: bookwyrm/templates/guided_tour/search.html:134
#: bookwyrm/templates/guided_tour/search.html:155
#: bookwyrm/templates/guided_tour/user_books.html:44
#: bookwyrm/templates/guided_tour/user_books.html:67
#: bookwyrm/templates/guided_tour/user_books.html:90
#: bookwyrm/templates/guided_tour/user_books.html:118
#: bookwyrm/templates/guided_tour/user_groups.html:44
#: bookwyrm/templates/guided_tour/user_groups.html:67
#: bookwyrm/templates/guided_tour/user_groups.html:91
#: bookwyrm/templates/guided_tour/user_groups.html:110
#: bookwyrm/templates/guided_tour/user_profile.html:43
#: bookwyrm/templates/guided_tour/user_profile.html:66
#: bookwyrm/templates/guided_tour/user_profile.html:89
#: bookwyrm/templates/guided_tour/user_profile.html:112
#: bookwyrm/templates/guided_tour/user_profile.html:135
msgid "Back" msgid "Back"
msgstr "Tilbake" msgstr "Tilbake"
@ -1351,11 +1413,7 @@ msgstr "Send e-post på nytt"
msgid "Email address:" msgid "Email address:"
msgstr "E-post adresse:" msgstr "E-post adresse:"
#: bookwyrm/templates/confirm_email/resend_modal.html:28 #: bookwyrm/templates/confirm_email/resend_modal.html:30
msgid "No user matching this email address found."
msgstr ""
#: bookwyrm/templates/confirm_email/resend_modal.html:38
msgid "Resend link" msgid "Resend link"
msgstr "Send lenke igjen" msgstr "Send lenke igjen"
@ -1650,16 +1708,16 @@ msgstr "Alle meldinger"
msgid "You have no messages right now." msgid "You have no messages right now."
msgstr "Du har ingen meldinger." msgstr "Du har ingen meldinger."
#: bookwyrm/templates/feed/feed.html:54 #: bookwyrm/templates/feed/feed.html:55
msgid "There aren't any activities right now! Try following a user to get started" msgid "There aren't any activities right now! Try following a user to get started"
msgstr "Det er ingen aktiviteter akkurat nå! Prøv å følge en bruker for å komme i gang" msgstr "Det er ingen aktiviteter akkurat nå! Prøv å følge en bruker for å komme i gang"
#: bookwyrm/templates/feed/feed.html:55 #: bookwyrm/templates/feed/feed.html:56
msgid "Alternatively, you can try enabling more status types" msgid "Alternatively, you can try enabling more status types"
msgstr "Eller, du kan prøve å aktivere flere statustyper" msgstr "Eller, du kan prøve å aktivere flere statustyper"
#: bookwyrm/templates/feed/goal_card.html:6 #: bookwyrm/templates/feed/goal_card.html:6
#: bookwyrm/templates/feed/layout.html:15 #: bookwyrm/templates/feed/layout.html:14
#: bookwyrm/templates/user/goal_form.html:6 #: bookwyrm/templates/user/goal_form.html:6
#, python-format #, python-format
msgid "%(year)s Reading Goal" msgid "%(year)s Reading Goal"
@ -1670,11 +1728,12 @@ msgstr "%(year)s lesemål"
msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>" msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>"
msgstr "Du kan sette eller endre lesemål når som helst fra <a href=\"%(path)s\">profilsida di</a>" msgstr "Du kan sette eller endre lesemål når som helst fra <a href=\"%(path)s\">profilsida di</a>"
#: bookwyrm/templates/feed/layout.html:5 #: bookwyrm/templates/feed/layout.html:4
msgid "Updates" msgid "Updates"
msgstr "Oppdateringer" msgstr "Oppdateringer"
#: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/feed/suggested_books.html:6
#: bookwyrm/templates/guided_tour/home.html:127
#: bookwyrm/templates/user_menu.html:35 #: bookwyrm/templates/user_menu.html:35
msgid "Your Books" msgid "Your Books"
msgstr "Bøkene dine" msgstr "Bøkene dine"
@ -1825,6 +1884,7 @@ msgid "Skip this step"
msgstr "Hopp over dette" msgstr "Hopp over dette"
#: bookwyrm/templates/get_started/layout.html:54 #: bookwyrm/templates/get_started/layout.html:54
#: bookwyrm/templates/guided_tour/group.html:101
msgid "Finish" msgid "Finish"
msgstr "Fullfør" msgstr "Fullfør"
@ -1870,6 +1930,7 @@ msgid "No users found for \"%(query)s\""
msgstr "Ingen medlemmer funnet for \"%(query)s\"" msgstr "Ingen medlemmer funnet for \"%(query)s\""
#: bookwyrm/templates/groups/create_form.html:5 #: bookwyrm/templates/groups/create_form.html:5
#: bookwyrm/templates/guided_tour/user_groups.html:32
#: bookwyrm/templates/user/groups.html:17 #: bookwyrm/templates/user/groups.html:17
msgid "Create group" msgid "Create group"
msgstr "Opprett gruppe" msgstr "Opprett gruppe"
@ -1980,6 +2041,480 @@ msgstr "Ingen potensielle medlemmer funnet for \"%(user_query)s"
msgid "Manager" msgid "Manager"
msgstr "Forvalter" msgstr "Forvalter"
#: bookwyrm/templates/guided_tour/book.html:10
msgid "This is home page of a book. Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:11
msgid "Book page"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:19
#: bookwyrm/templates/guided_tour/group.html:19
#: bookwyrm/templates/guided_tour/lists.html:22
#: bookwyrm/templates/guided_tour/search.html:29
#: bookwyrm/templates/guided_tour/search.html:56
#: bookwyrm/templates/guided_tour/user_books.html:19
#: bookwyrm/templates/guided_tour/user_groups.html:19
#: bookwyrm/templates/guided_tour/user_profile.html:19
msgid "End Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:26
#: bookwyrm/templates/guided_tour/book.html:50
#: bookwyrm/templates/guided_tour/book.html:74
#: bookwyrm/templates/guided_tour/book.html:97
#: bookwyrm/templates/guided_tour/book.html:122
#: bookwyrm/templates/guided_tour/book.html:146
#: bookwyrm/templates/guided_tour/book.html:170
#: bookwyrm/templates/guided_tour/book.html:194
#: bookwyrm/templates/guided_tour/book.html:219
#: bookwyrm/templates/guided_tour/book.html:243
#: bookwyrm/templates/guided_tour/book.html:268
#: bookwyrm/templates/guided_tour/book.html:274
#: bookwyrm/templates/guided_tour/group.html:26
#: bookwyrm/templates/guided_tour/group.html:49
#: bookwyrm/templates/guided_tour/group.html:72
#: bookwyrm/templates/guided_tour/group.html:95
#: bookwyrm/templates/guided_tour/home.html:74
#: bookwyrm/templates/guided_tour/home.html:97
#: bookwyrm/templates/guided_tour/home.html:121
#: bookwyrm/templates/guided_tour/home.html:146
#: bookwyrm/templates/guided_tour/home.html:171
#: bookwyrm/templates/guided_tour/home.html:195
#: bookwyrm/templates/guided_tour/lists.html:29
#: bookwyrm/templates/guided_tour/lists.html:53
#: bookwyrm/templates/guided_tour/lists.html:76
#: bookwyrm/templates/guided_tour/lists.html:100
#: bookwyrm/templates/guided_tour/lists.html:123
#: bookwyrm/templates/guided_tour/search.html:36
#: bookwyrm/templates/guided_tour/search.html:63
#: bookwyrm/templates/guided_tour/search.html:89
#: bookwyrm/templates/guided_tour/search.html:116
#: bookwyrm/templates/guided_tour/search.html:140
#: bookwyrm/templates/guided_tour/user_books.html:26
#: bookwyrm/templates/guided_tour/user_books.html:50
#: bookwyrm/templates/guided_tour/user_books.html:73
#: bookwyrm/templates/guided_tour/user_books.html:96
#: bookwyrm/templates/guided_tour/user_groups.html:26
#: bookwyrm/templates/guided_tour/user_groups.html:50
#: bookwyrm/templates/guided_tour/user_groups.html:73
#: bookwyrm/templates/guided_tour/user_groups.html:97
#: bookwyrm/templates/guided_tour/user_profile.html:26
#: bookwyrm/templates/guided_tour/user_profile.html:49
#: bookwyrm/templates/guided_tour/user_profile.html:72
#: bookwyrm/templates/guided_tour/user_profile.html:95
#: bookwyrm/templates/guided_tour/user_profile.html:118
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "Neste"
#: bookwyrm/templates/guided_tour/book.html:31
msgid "This is where you can set a reading status for this book. You can press the button to move to the next stage, or use the drop down button to select the reading status you want to set."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:32
msgid "Reading status"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:55
msgid "You can also manually add reading dates here. Unlike changing the reading status using the previous method, adding dates manually will not automatically add them to your <strong>Read</strong> or <strong>Reading</strong> shelves.<br><br>Got a favourite you re-read every year? We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:79
msgid "There can be multiple editions of a book, in various formats or languages. You can choose which edition you want to use."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:80
msgid "Other editions"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:102
msgid "You can post a review, comment, or quote here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:103
msgid "Share your thoughts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:127
msgid "If you have read this book you can post a review including an optional star rating"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:128
msgid "Post a review"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:151
msgid "You can share your thoughts on this book generally with a simple comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:152
msgid "Post a comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:175
msgid "Just read some perfect prose? Let the world know by sharing a quote!"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:176
msgid "Share a quote"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:199
msgid "If your review or comment might ruin the book for someone who hasn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:200
msgid "Spoiler alerts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:224
msgid "Choose who can see your post here. Post privacy can be <strong>Public</strong> (everyone can see), <strong>Unlisted</strong> (everyone can see, but it doesn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:225
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "Delingsinstilling for post"
#: bookwyrm/templates/guided_tour/book.html:248
msgid "Some ebooks can be downloaded for free from external sources. They will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:249
msgid "Download links"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:273
#: bookwyrm/templates/guided_tour/search.html:147
msgid "<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:296
#: bookwyrm/templates/guided_tour/home.html:50
#: bookwyrm/templates/guided_tour/home.html:218
#: bookwyrm/templates/guided_tour/search.html:161
#: bookwyrm/templates/guided_tour/user_books.html:124
#: bookwyrm/templates/guided_tour/user_groups.html:116
#: bookwyrm/templates/guided_tour/user_profile.html:141
msgid "Ok"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:10
msgid "Welcome to the page for your group! This is where you can add and remove users, create user-curated lists, and edit the group details."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:11
msgid "Your group"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:31
msgid "Use this search box to find users to join your group. Currently users must be members of the same Bookwyrm instance and be invited by the group owner."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:32
msgid "Find users"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:54
msgid "Your group members will appear here. The group owner is marked with a star symbol."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:55
msgid "Group members"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:77
msgid "As well as creating lists from the Lists page, you can create a group-curated list here on the group\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:78
msgid "Group lists"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:100
msgid "Congratulations, you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:115
msgid "End tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:16
msgid "Welcome to Bookwyrm!<br><br>Would you like to take the guided tour to help you get started?"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:17
#: bookwyrm/templates/guided_tour/home.html:39
#: bookwyrm/templates/layout.html:194
msgid "Guided Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:25
msgid "No thanks"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:33
msgid "Yes please!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:38
msgid "If you ever change your mind, just click on the Guided Tour link to start your tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:62
msgid "Search for books, users, or lists using this search box."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:63
msgid "Search box"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:79
msgid "Search book records by scanning an ISBN barcode using your device\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:80
msgid "Barcode reader"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:102
msgid "Use the <strong>Feed</strong>, <strong>Lists</strong> and <strong>Discover</strong> links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:103
msgid "Navigation Bar"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:126
msgid "Books on your reading status shelves will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:151
msgid "Updates from people you are following will appear in your <strong>Home</strong> timeline.<br><br>The <strong>Books</strong> tab shows activity from anyone, related to your books."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:152
msgid "Timelines"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:176
msgid "The bell will light up when you have a new notification. When it does, click on it to find out what exciting thing has happened!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:177
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Varsler"
#: bookwyrm/templates/guided_tour/home.html:200
msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:201
msgid "Profile and settings menu"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:13
msgid "This is the lists page where you can discover book lists created by any user. A List is a collection of books, similar to a shelf.<br><br>Shelves are for organising books for yourself, whereas Lists are generally for sharing with others."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:34
#: bookwyrm/templates/guided_tour/user_groups.html:31
msgid "Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:35
#: bookwyrm/templates/guided_tour/lists.html:59
msgid "Creating a new list"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:58
msgid "You must give your list a name and can optionally give it a description to help other people understand what your list is about."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:81
msgid "Choose who can see your list here. List privacy options work just like we saw when posting book reviews. This is a common pattern throughout Bookwyrm."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:82
msgid "List privacy"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:105
msgid "You can also decide how your list is to be curated - only by you, by anyone, or by a group."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:106
msgid "List curation"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:128
msgid "Next in our tour we will explore Groups!"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:129
msgid "Next: Groups"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:143
msgid "Take me there"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:16
msgid "If the book you are looking for is available on a remote catalogue such as Open Library, click on <strong>Import book</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:17
#: bookwyrm/templates/guided_tour/search.html:44
msgid "Searching"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:43
msgid "If the book you are looking for is already on this Bookwyrm instance, you can click on the title to go to the book\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:71
msgid "If the book you are looking for is not listed, try loading more records from other sources like Open Library or Inventaire."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:72
msgid "Load more records"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:98
msgid "If your book is not in the results, try adjusting your search terms."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:99
msgid "Search again"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:121
msgid "If you still can\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:122
msgid "Add a record manally"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:148
msgid "Continue the tour"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:10
msgid "This is the page where your books are listed, organised into shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:11
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "Dine bøker"
#: bookwyrm/templates/guided_tour/user_books.html:31
msgid "<strong>To Read</strong>, <strong>Currently Reading</strong>, <strong>Read</strong>, and <strong>Stopped Reading</strong> are default shelves. When you change the reading status of a book it will automatically be moved to the matching shelf. A book can only be on one default shelf at a time."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:32
msgid "Reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:55
msgid "You can create additional custom shelves to organise your books. A book on a custom shelf can be on any number of other shelves simultaneously, including one of the default reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:56
msgid "Adding custom shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:78
msgid "If you have an export file from another service like Goodreads or LibraryThing, you can import it here."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:79
msgid "Import from another service"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:101
msgid "Now that we\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:10
msgid "You can create or join a group with other users. Groups can share group-curated book lists, and in future will be able to do other things."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:11
#: bookwyrm/templates/guided_tour/user_profile.html:55
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "Grupper"
#: bookwyrm/templates/guided_tour/user_groups.html:55
msgid "Give your group a name and describe what it is about. You can make user groups for any purpose - a reading group, a bunch of friends, whatever!"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:56
msgid "Creating a group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:78
msgid "Groups have privacy settings just like posts and lists, except that group privacy cannot be <strong>Followers</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:79
msgid "Group visibility"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:102
msgid "Once you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:103
msgid "Save your group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:10
msgid "This is your user profile. All your latest activities will be listed here. Other Bookwyrm users can see parts of this page too - what they can see depends on your privacy settings."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:11
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "Brukerprofil"
#: bookwyrm/templates/guided_tour/user_profile.html:31
msgid "This tab shows everything you have read towards your annual reading goal, or allows you to set one. You don\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:32
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "Lesemål"
#: bookwyrm/templates/guided_tour/user_profile.html:54
msgid "Here you can see your groups, or create a new one. A group brings together Bookwyrm users and allows them to curate lists together."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:77
msgid "You can see your lists, or create a new one, here. A list is a collection of books that have something in common."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:100
msgid "The Books tab shows your book shelves. We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:123
msgid "Now you understand the basics of your profile page, let\\s add a book to your shelves.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:124
msgid "Find a book"
msgstr ""
#: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:5
#: bookwyrm/templates/import/import.html:9 #: bookwyrm/templates/import/import.html:9
#: bookwyrm/templates/shelf/shelf.html:64 #: bookwyrm/templates/shelf/shelf.html:64
@ -2272,8 +2807,8 @@ msgstr "Glemt passord?"
msgid "More about this site" msgid "More about this site"
msgstr "Om dette nettstedet" msgstr "Om dette nettstedet"
#: bookwyrm/templates/landing/password_reset.html:34 #: bookwyrm/templates/landing/password_reset.html:43
#: bookwyrm/templates/preferences/change_password.html:18 #: bookwyrm/templates/preferences/change_password.html:33
#: bookwyrm/templates/preferences/delete_user.html:20 #: bookwyrm/templates/preferences/delete_user.html:20
msgid "Confirm password:" msgid "Confirm password:"
msgstr "Gjenta passordet:" msgstr "Gjenta passordet:"
@ -2312,12 +2847,6 @@ msgstr "Hovednavigasjonsmeny"
msgid "Feed" msgid "Feed"
msgstr "Strøm" msgstr "Strøm"
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Varsler"
#: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33 #: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33
msgid "password" msgid "password"
msgstr "passord" msgstr "passord"
@ -2338,12 +2867,12 @@ msgstr "Feil ved lagring av status"
msgid "Documentation" msgid "Documentation"
msgstr "Dokumentasjon" msgstr "Dokumentasjon"
#: bookwyrm/templates/layout.html:197 #: bookwyrm/templates/layout.html:203
#, python-format #, python-format
msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
msgstr "Støtt %(site_name)s på <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgstr "Støtt %(site_name)s på <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
#: bookwyrm/templates/layout.html:201 #: bookwyrm/templates/layout.html:207
msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
msgstr "BookWyrms kildekode er fritt tilgjengelig. Du kan bidra eller rapportere problemer på <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgstr "BookWyrms kildekode er fritt tilgjengelig. Du kan bidra eller rapportere problemer på <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
@ -2871,6 +3400,11 @@ msgid_plural "%(display_count)s new <a href=\"%(path)s\">reports</a> need modera
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: bookwyrm/templates/notifications/items/status_preview.html:4
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "Varsel om følsomt innhold"
#: bookwyrm/templates/notifications/items/update.html:16 #: bookwyrm/templates/notifications/items/update.html:16
#, python-format #, python-format
msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>" msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>"
@ -3028,12 +3562,20 @@ msgstr "Ingen brukere er for tiden blokkert."
#: bookwyrm/templates/preferences/change_password.html:4 #: bookwyrm/templates/preferences/change_password.html:4
#: bookwyrm/templates/preferences/change_password.html:7 #: bookwyrm/templates/preferences/change_password.html:7
#: bookwyrm/templates/preferences/change_password.html:21 #: bookwyrm/templates/preferences/change_password.html:37
#: bookwyrm/templates/preferences/layout.html:20 #: bookwyrm/templates/preferences/layout.html:20
msgid "Change Password" msgid "Change Password"
msgstr "Endre passord" msgstr "Endre passord"
#: bookwyrm/templates/preferences/change_password.html:14 #: bookwyrm/templates/preferences/change_password.html:15
msgid "Successfully changed password"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:22
msgid "Current password:"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:28
msgid "New password:" msgid "New password:"
msgstr "Nytt passord:" msgstr "Nytt passord:"
@ -3125,6 +3667,10 @@ msgstr ""
msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity." msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity."
msgstr "" msgstr ""
#: bookwyrm/templates/preferences/export.html:20
msgid "Download file"
msgstr ""
#: bookwyrm/templates/preferences/layout.html:11 #: bookwyrm/templates/preferences/layout.html:11
msgid "Account" msgid "Account"
msgstr "Konto" msgstr "Konto"
@ -4903,19 +5449,10 @@ msgstr "side %(page)s"
msgid "Previous" msgid "Previous"
msgstr "Forrige" msgstr "Forrige"
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "Neste"
#: bookwyrm/templates/snippets/privacy-icons.html:12 #: bookwyrm/templates/snippets/privacy-icons.html:12
msgid "Followers-only" msgid "Followers-only"
msgstr "Kun følgere" msgstr "Kun følgere"
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "Delingsinstilling for post"
#: bookwyrm/templates/snippets/rate_action.html:5 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "Legg inn en vurdering" msgstr "Legg inn en vurdering"
@ -5034,10 +5571,6 @@ msgstr ""
msgid "Finish reading" msgid "Finish reading"
msgstr "Fullfør lesing" msgstr "Fullfør lesing"
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "Varsel om følsomt innhold"
#: bookwyrm/templates/snippets/status/content_status.html:80 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "Vis status" msgstr "Vis status"
@ -5189,10 +5722,6 @@ msgstr "Vis mer"
msgid "Show less" msgid "Show less"
msgstr "Vis mindre" msgstr "Vis mindre"
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "Dine bøker"
#: bookwyrm/templates/user/books_header.html:9 #: bookwyrm/templates/user/books_header.html:9
#, python-format #, python-format
msgid "%(username)s's books" msgid "%(username)s's books"
@ -5231,22 +5760,10 @@ msgstr "Gruppene dine"
msgid "Groups: %(username)s" msgid "Groups: %(username)s"
msgstr "Grupper: %(username)s" msgstr "Grupper: %(username)s"
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "Brukerprofil"
#: bookwyrm/templates/user/layout.html:48 #: bookwyrm/templates/user/layout.html:48
msgid "Follow Requests" msgid "Follow Requests"
msgstr "Følgeforespørsler" msgstr "Følgeforespørsler"
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "Lesemål"
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "Grupper"
#: bookwyrm/templates/user/lists.html:11 #: bookwyrm/templates/user/lists.html:11
#, python-format #, python-format
msgid "Lists: %(username)s" msgid "Lists: %(username)s"
@ -5333,7 +5850,7 @@ msgstr "Ingen følgere du følger"
msgid "View profile and more" msgid "View profile and more"
msgstr "" msgstr ""
#: bookwyrm/templates/user_menu.html:72 #: bookwyrm/templates/user_menu.html:78
msgid "Log out" msgid "Log out"
msgstr "Logg ut" msgstr "Logg ut"

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-07-08 22:40+0000\n" "POT-Creation-Date: 2022-07-28 18:11+0000\n"
"PO-Revision-Date: 2022-07-08 23:40\n" "PO-Revision-Date: 2022-07-28 19:13\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"
@ -42,6 +42,14 @@ msgstr "{i} usos"
msgid "Unlimited" msgid "Unlimited"
msgstr "Ilimitado" msgstr "Ilimitado"
#: bookwyrm/forms/edit_user.py:89
msgid "Incorrect password"
msgstr ""
#: bookwyrm/forms/edit_user.py:96 bookwyrm/forms/landing.py:71
msgid "Password does not match"
msgstr ""
#: bookwyrm/forms/forms.py:54 #: bookwyrm/forms/forms.py:54
msgid "Reading finish date cannot be before start date." msgid "Reading finish date cannot be before start date."
msgstr "A data de término da leitura não pode ser anterior a de início." msgstr "A data de término da leitura não pode ser anterior a de início."
@ -50,11 +58,11 @@ msgstr "A data de término da leitura não pode ser anterior a de início."
msgid "Reading stopped date cannot be before start date." msgid "Reading stopped date cannot be before start date."
msgstr "" msgstr ""
#: bookwyrm/forms/landing.py:32 #: bookwyrm/forms/landing.py:38
msgid "User with this username already exists" msgid "User with this username already exists"
msgstr "Um usuário com este nome já existe" msgstr "Um usuário com este nome já existe"
#: bookwyrm/forms/landing.py:41 #: bookwyrm/forms/landing.py:47
msgid "A user with this email already exists." msgid "A user with this email already exists."
msgstr "Já existe um usuário com este endereço de e-mail." msgstr "Já existe um usuário com este endereço de e-mail."
@ -277,7 +285,9 @@ msgstr "Página inicial"
msgid "Books Timeline" msgid "Books Timeline"
msgstr "Linha do tempo dos livros" msgstr "Linha do tempo dos livros"
#: bookwyrm/settings.py:210 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:210
#: bookwyrm/templates/guided_tour/user_profile.html:101
#: bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
@ -288,58 +298,62 @@ msgid "English"
msgstr "English (Inglês)" msgstr "English (Inglês)"
#: bookwyrm/settings.py:283 #: bookwyrm/settings.py:283
msgid "Català (Catalan)"
msgstr ""
#: bookwyrm/settings.py:284
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch (Alemão)" msgstr "Deutsch (Alemão)"
#: bookwyrm/settings.py:284 #: bookwyrm/settings.py:285
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español (Espanhol)" msgstr "Español (Espanhol)"
#: bookwyrm/settings.py:285 #: bookwyrm/settings.py:286
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego (Galego)" msgstr "Galego (Galego)"
#: bookwyrm/settings.py:286 #: bookwyrm/settings.py:287
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "Italiano (Italiano)" msgstr "Italiano (Italiano)"
#: bookwyrm/settings.py:287 #: bookwyrm/settings.py:288
msgid "Suomi (Finnish)" msgid "Suomi (Finnish)"
msgstr "Suomi (Finlandês)" msgstr "Suomi (Finlandês)"
#: bookwyrm/settings.py:288 #: bookwyrm/settings.py:289
msgid "Français (French)" msgid "Français (French)"
msgstr "Français (Francês)" msgstr "Français (Francês)"
#: bookwyrm/settings.py:289 #: bookwyrm/settings.py:290
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių (Lituano)" msgstr "Lietuvių (Lituano)"
#: bookwyrm/settings.py:290 #: bookwyrm/settings.py:291
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "Norsk (Norueguês)" msgstr "Norsk (Norueguês)"
#: bookwyrm/settings.py:291 #: bookwyrm/settings.py:292
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português do Brasil (Português do Brasil)" msgstr "Português do Brasil (Português do Brasil)"
#: bookwyrm/settings.py:292 #: bookwyrm/settings.py:293
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português Europeu (Português Europeu)" msgstr "Português Europeu (Português Europeu)"
#: bookwyrm/settings.py:293 #: bookwyrm/settings.py:294
msgid "Română (Romanian)" msgid "Română (Romanian)"
msgstr "Română (Romeno)" msgstr "Română (Romeno)"
#: bookwyrm/settings.py:294 #: bookwyrm/settings.py:295
msgid "Svenska (Swedish)" msgid "Svenska (Swedish)"
msgstr "Svenska (Sueco)" msgstr "Svenska (Sueco)"
#: bookwyrm/settings.py:295 #: bookwyrm/settings.py:296
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文 (Chinês simplificado)" msgstr "简体中文 (Chinês simplificado)"
#: bookwyrm/settings.py:296 #: bookwyrm/settings.py:297
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文 (Chinês tradicional)" msgstr "繁體中文 (Chinês tradicional)"
@ -787,7 +801,7 @@ msgstr "Para carregar informações nos conectaremos a <strong>%(source_name)s</
#: bookwyrm/templates/book/edit/edit_book.html:122 #: 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:52
#: bookwyrm/templates/snippets/remove_from_group_button.html:17 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "Confirmar" msgstr "Confirmar"
@ -850,6 +864,7 @@ msgid "Your reading activity"
msgstr "Andamento da sua leitura" msgstr "Andamento da sua leitura"
#: bookwyrm/templates/book/book.html:260 #: bookwyrm/templates/book/book.html:260
#: bookwyrm/templates/guided_tour/book.html:56
msgid "Add read dates" msgid "Add read dates"
msgstr "Adicionar registro de leitura" msgstr "Adicionar registro de leitura"
@ -878,9 +893,13 @@ msgid "Places"
msgstr "Lugares" msgstr "Lugares"
#: bookwyrm/templates/book/book.html:365 #: bookwyrm/templates/book/book.html:365
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:83 #: bookwyrm/templates/groups/group.html:19
#: bookwyrm/templates/lists/curate.html:8 bookwyrm/templates/lists/list.html:12 #: bookwyrm/templates/guided_tour/lists.html:14
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/guided_tour/user_books.html:102
#: bookwyrm/templates/guided_tour/user_profile.html:78
#: bookwyrm/templates/layout.html:83 bookwyrm/templates/lists/curate.html:8
#: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5
#: bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
#: bookwyrm/templates/user/layout.html:85 #: bookwyrm/templates/user/layout.html:85
@ -990,6 +1009,49 @@ msgstr "É uma nova obra"
#: bookwyrm/templates/book/edit/edit_book.html:124 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
#: bookwyrm/templates/guided_tour/book.html:44
#: bookwyrm/templates/guided_tour/book.html:68
#: bookwyrm/templates/guided_tour/book.html:91
#: bookwyrm/templates/guided_tour/book.html:116
#: bookwyrm/templates/guided_tour/book.html:140
#: bookwyrm/templates/guided_tour/book.html:164
#: bookwyrm/templates/guided_tour/book.html:188
#: bookwyrm/templates/guided_tour/book.html:213
#: bookwyrm/templates/guided_tour/book.html:237
#: bookwyrm/templates/guided_tour/book.html:262
#: bookwyrm/templates/guided_tour/book.html:290
#: bookwyrm/templates/guided_tour/group.html:43
#: bookwyrm/templates/guided_tour/group.html:66
#: bookwyrm/templates/guided_tour/group.html:89
#: bookwyrm/templates/guided_tour/group.html:108
#: bookwyrm/templates/guided_tour/home.html:91
#: bookwyrm/templates/guided_tour/home.html:115
#: bookwyrm/templates/guided_tour/home.html:140
#: bookwyrm/templates/guided_tour/home.html:165
#: bookwyrm/templates/guided_tour/home.html:189
#: bookwyrm/templates/guided_tour/home.html:212
#: bookwyrm/templates/guided_tour/lists.html:47
#: bookwyrm/templates/guided_tour/lists.html:70
#: bookwyrm/templates/guided_tour/lists.html:94
#: bookwyrm/templates/guided_tour/lists.html:117
#: bookwyrm/templates/guided_tour/lists.html:136
#: bookwyrm/templates/guided_tour/search.html:83
#: bookwyrm/templates/guided_tour/search.html:110
#: bookwyrm/templates/guided_tour/search.html:134
#: bookwyrm/templates/guided_tour/search.html:155
#: bookwyrm/templates/guided_tour/user_books.html:44
#: bookwyrm/templates/guided_tour/user_books.html:67
#: bookwyrm/templates/guided_tour/user_books.html:90
#: bookwyrm/templates/guided_tour/user_books.html:118
#: bookwyrm/templates/guided_tour/user_groups.html:44
#: bookwyrm/templates/guided_tour/user_groups.html:67
#: bookwyrm/templates/guided_tour/user_groups.html:91
#: bookwyrm/templates/guided_tour/user_groups.html:110
#: bookwyrm/templates/guided_tour/user_profile.html:43
#: bookwyrm/templates/guided_tour/user_profile.html:66
#: bookwyrm/templates/guided_tour/user_profile.html:89
#: bookwyrm/templates/guided_tour/user_profile.html:112
#: bookwyrm/templates/guided_tour/user_profile.html:135
msgid "Back" msgid "Back"
msgstr "Voltar" msgstr "Voltar"
@ -1351,11 +1413,7 @@ msgstr "Reenviar link de confirmação"
msgid "Email address:" msgid "Email address:"
msgstr "Endereço de e-mail:" msgstr "Endereço de e-mail:"
#: bookwyrm/templates/confirm_email/resend_modal.html:28 #: bookwyrm/templates/confirm_email/resend_modal.html:30
msgid "No user matching this email address found."
msgstr "Nenhum usuário com este email foi encontrado."
#: bookwyrm/templates/confirm_email/resend_modal.html:38
msgid "Resend link" msgid "Resend link"
msgstr "Reenviar link" msgstr "Reenviar link"
@ -1650,16 +1708,16 @@ msgstr "Todas as mensagens"
msgid "You have no messages right now." msgid "You have no messages right now."
msgstr "Você não tem mensagens." msgstr "Você não tem mensagens."
#: bookwyrm/templates/feed/feed.html:54 #: bookwyrm/templates/feed/feed.html:55
msgid "There aren't any activities right now! Try following a user to get started" msgid "There aren't any activities right now! Try following a user to get started"
msgstr "Não há nenhuma atividade! Tente seguir um usuário para começar" msgstr "Não há nenhuma atividade! Tente seguir um usuário para começar"
#: bookwyrm/templates/feed/feed.html:55 #: bookwyrm/templates/feed/feed.html:56
msgid "Alternatively, you can try enabling more status types" msgid "Alternatively, you can try enabling more status types"
msgstr "Uma outra opção é habilitar mais tipos de publicação" msgstr "Uma outra opção é habilitar mais tipos de publicação"
#: bookwyrm/templates/feed/goal_card.html:6 #: bookwyrm/templates/feed/goal_card.html:6
#: bookwyrm/templates/feed/layout.html:15 #: bookwyrm/templates/feed/layout.html:14
#: bookwyrm/templates/user/goal_form.html:6 #: bookwyrm/templates/user/goal_form.html:6
#, python-format #, python-format
msgid "%(year)s Reading Goal" msgid "%(year)s Reading Goal"
@ -1670,11 +1728,12 @@ msgstr "Meta de leitura para %(year)s"
msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>" msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>"
msgstr "Você pode definir ou alterar sua meta de leitura a qualquer momento em sua <a href=\"%(path)s\">página de perfil</a>" msgstr "Você pode definir ou alterar sua meta de leitura a qualquer momento em sua <a href=\"%(path)s\">página de perfil</a>"
#: bookwyrm/templates/feed/layout.html:5 #: bookwyrm/templates/feed/layout.html:4
msgid "Updates" msgid "Updates"
msgstr "Atualizações" msgstr "Atualizações"
#: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/feed/suggested_books.html:6
#: bookwyrm/templates/guided_tour/home.html:127
#: bookwyrm/templates/user_menu.html:35 #: bookwyrm/templates/user_menu.html:35
msgid "Your Books" msgid "Your Books"
msgstr "Seus livros" msgstr "Seus livros"
@ -1825,6 +1884,7 @@ msgid "Skip this step"
msgstr "Ignorar este passo" msgstr "Ignorar este passo"
#: bookwyrm/templates/get_started/layout.html:54 #: bookwyrm/templates/get_started/layout.html:54
#: bookwyrm/templates/guided_tour/group.html:101
msgid "Finish" msgid "Finish"
msgstr "Finalizar" msgstr "Finalizar"
@ -1870,6 +1930,7 @@ msgid "No users found for \"%(query)s\""
msgstr "Nenhum usuário encontrado para \"%(query)s\"" msgstr "Nenhum usuário encontrado para \"%(query)s\""
#: bookwyrm/templates/groups/create_form.html:5 #: bookwyrm/templates/groups/create_form.html:5
#: bookwyrm/templates/guided_tour/user_groups.html:32
#: bookwyrm/templates/user/groups.html:17 #: bookwyrm/templates/user/groups.html:17
msgid "Create group" msgid "Create group"
msgstr "Criar grupo" msgstr "Criar grupo"
@ -1980,6 +2041,480 @@ msgstr "Nenhum membro em potencial encontrado para \"%(user_query)s\""
msgid "Manager" msgid "Manager"
msgstr "Gerente" msgstr "Gerente"
#: bookwyrm/templates/guided_tour/book.html:10
msgid "This is home page of a book. Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:11
msgid "Book page"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:19
#: bookwyrm/templates/guided_tour/group.html:19
#: bookwyrm/templates/guided_tour/lists.html:22
#: bookwyrm/templates/guided_tour/search.html:29
#: bookwyrm/templates/guided_tour/search.html:56
#: bookwyrm/templates/guided_tour/user_books.html:19
#: bookwyrm/templates/guided_tour/user_groups.html:19
#: bookwyrm/templates/guided_tour/user_profile.html:19
msgid "End Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:26
#: bookwyrm/templates/guided_tour/book.html:50
#: bookwyrm/templates/guided_tour/book.html:74
#: bookwyrm/templates/guided_tour/book.html:97
#: bookwyrm/templates/guided_tour/book.html:122
#: bookwyrm/templates/guided_tour/book.html:146
#: bookwyrm/templates/guided_tour/book.html:170
#: bookwyrm/templates/guided_tour/book.html:194
#: bookwyrm/templates/guided_tour/book.html:219
#: bookwyrm/templates/guided_tour/book.html:243
#: bookwyrm/templates/guided_tour/book.html:268
#: bookwyrm/templates/guided_tour/book.html:274
#: bookwyrm/templates/guided_tour/group.html:26
#: bookwyrm/templates/guided_tour/group.html:49
#: bookwyrm/templates/guided_tour/group.html:72
#: bookwyrm/templates/guided_tour/group.html:95
#: bookwyrm/templates/guided_tour/home.html:74
#: bookwyrm/templates/guided_tour/home.html:97
#: bookwyrm/templates/guided_tour/home.html:121
#: bookwyrm/templates/guided_tour/home.html:146
#: bookwyrm/templates/guided_tour/home.html:171
#: bookwyrm/templates/guided_tour/home.html:195
#: bookwyrm/templates/guided_tour/lists.html:29
#: bookwyrm/templates/guided_tour/lists.html:53
#: bookwyrm/templates/guided_tour/lists.html:76
#: bookwyrm/templates/guided_tour/lists.html:100
#: bookwyrm/templates/guided_tour/lists.html:123
#: bookwyrm/templates/guided_tour/search.html:36
#: bookwyrm/templates/guided_tour/search.html:63
#: bookwyrm/templates/guided_tour/search.html:89
#: bookwyrm/templates/guided_tour/search.html:116
#: bookwyrm/templates/guided_tour/search.html:140
#: bookwyrm/templates/guided_tour/user_books.html:26
#: bookwyrm/templates/guided_tour/user_books.html:50
#: bookwyrm/templates/guided_tour/user_books.html:73
#: bookwyrm/templates/guided_tour/user_books.html:96
#: bookwyrm/templates/guided_tour/user_groups.html:26
#: bookwyrm/templates/guided_tour/user_groups.html:50
#: bookwyrm/templates/guided_tour/user_groups.html:73
#: bookwyrm/templates/guided_tour/user_groups.html:97
#: bookwyrm/templates/guided_tour/user_profile.html:26
#: bookwyrm/templates/guided_tour/user_profile.html:49
#: bookwyrm/templates/guided_tour/user_profile.html:72
#: bookwyrm/templates/guided_tour/user_profile.html:95
#: bookwyrm/templates/guided_tour/user_profile.html:118
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "Próxima"
#: bookwyrm/templates/guided_tour/book.html:31
msgid "This is where you can set a reading status for this book. You can press the button to move to the next stage, or use the drop down button to select the reading status you want to set."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:32
msgid "Reading status"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:55
msgid "You can also manually add reading dates here. Unlike changing the reading status using the previous method, adding dates manually will not automatically add them to your <strong>Read</strong> or <strong>Reading</strong> shelves.<br><br>Got a favourite you re-read every year? We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:79
msgid "There can be multiple editions of a book, in various formats or languages. You can choose which edition you want to use."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:80
msgid "Other editions"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:102
msgid "You can post a review, comment, or quote here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:103
msgid "Share your thoughts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:127
msgid "If you have read this book you can post a review including an optional star rating"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:128
msgid "Post a review"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:151
msgid "You can share your thoughts on this book generally with a simple comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:152
msgid "Post a comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:175
msgid "Just read some perfect prose? Let the world know by sharing a quote!"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:176
msgid "Share a quote"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:199
msgid "If your review or comment might ruin the book for someone who hasn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:200
msgid "Spoiler alerts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:224
msgid "Choose who can see your post here. Post privacy can be <strong>Public</strong> (everyone can see), <strong>Unlisted</strong> (everyone can see, but it doesn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:225
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "Privacidade da publicação"
#: bookwyrm/templates/guided_tour/book.html:248
msgid "Some ebooks can be downloaded for free from external sources. They will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:249
msgid "Download links"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:273
#: bookwyrm/templates/guided_tour/search.html:147
msgid "<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:296
#: bookwyrm/templates/guided_tour/home.html:50
#: bookwyrm/templates/guided_tour/home.html:218
#: bookwyrm/templates/guided_tour/search.html:161
#: bookwyrm/templates/guided_tour/user_books.html:124
#: bookwyrm/templates/guided_tour/user_groups.html:116
#: bookwyrm/templates/guided_tour/user_profile.html:141
msgid "Ok"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:10
msgid "Welcome to the page for your group! This is where you can add and remove users, create user-curated lists, and edit the group details."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:11
msgid "Your group"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:31
msgid "Use this search box to find users to join your group. Currently users must be members of the same Bookwyrm instance and be invited by the group owner."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:32
msgid "Find users"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:54
msgid "Your group members will appear here. The group owner is marked with a star symbol."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:55
msgid "Group members"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:77
msgid "As well as creating lists from the Lists page, you can create a group-curated list here on the group\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:78
msgid "Group lists"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:100
msgid "Congratulations, you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:115
msgid "End tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:16
msgid "Welcome to Bookwyrm!<br><br>Would you like to take the guided tour to help you get started?"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:17
#: bookwyrm/templates/guided_tour/home.html:39
#: bookwyrm/templates/layout.html:194
msgid "Guided Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:25
msgid "No thanks"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:33
msgid "Yes please!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:38
msgid "If you ever change your mind, just click on the Guided Tour link to start your tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:62
msgid "Search for books, users, or lists using this search box."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:63
msgid "Search box"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:79
msgid "Search book records by scanning an ISBN barcode using your device\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:80
msgid "Barcode reader"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:102
msgid "Use the <strong>Feed</strong>, <strong>Lists</strong> and <strong>Discover</strong> links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:103
msgid "Navigation Bar"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:126
msgid "Books on your reading status shelves will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:151
msgid "Updates from people you are following will appear in your <strong>Home</strong> timeline.<br><br>The <strong>Books</strong> tab shows activity from anyone, related to your books."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:152
msgid "Timelines"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:176
msgid "The bell will light up when you have a new notification. When it does, click on it to find out what exciting thing has happened!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:177
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Notificações"
#: bookwyrm/templates/guided_tour/home.html:200
msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:201
msgid "Profile and settings menu"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:13
msgid "This is the lists page where you can discover book lists created by any user. A List is a collection of books, similar to a shelf.<br><br>Shelves are for organising books for yourself, whereas Lists are generally for sharing with others."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:34
#: bookwyrm/templates/guided_tour/user_groups.html:31
msgid "Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:35
#: bookwyrm/templates/guided_tour/lists.html:59
msgid "Creating a new list"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:58
msgid "You must give your list a name and can optionally give it a description to help other people understand what your list is about."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:81
msgid "Choose who can see your list here. List privacy options work just like we saw when posting book reviews. This is a common pattern throughout Bookwyrm."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:82
msgid "List privacy"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:105
msgid "You can also decide how your list is to be curated - only by you, by anyone, or by a group."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:106
msgid "List curation"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:128
msgid "Next in our tour we will explore Groups!"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:129
msgid "Next: Groups"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:143
msgid "Take me there"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:16
msgid "If the book you are looking for is available on a remote catalogue such as Open Library, click on <strong>Import book</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:17
#: bookwyrm/templates/guided_tour/search.html:44
msgid "Searching"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:43
msgid "If the book you are looking for is already on this Bookwyrm instance, you can click on the title to go to the book\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:71
msgid "If the book you are looking for is not listed, try loading more records from other sources like Open Library or Inventaire."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:72
msgid "Load more records"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:98
msgid "If your book is not in the results, try adjusting your search terms."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:99
msgid "Search again"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:121
msgid "If you still can\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:122
msgid "Add a record manally"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:148
msgid "Continue the tour"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:10
msgid "This is the page where your books are listed, organised into shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:11
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "Seus livros"
#: bookwyrm/templates/guided_tour/user_books.html:31
msgid "<strong>To Read</strong>, <strong>Currently Reading</strong>, <strong>Read</strong>, and <strong>Stopped Reading</strong> are default shelves. When you change the reading status of a book it will automatically be moved to the matching shelf. A book can only be on one default shelf at a time."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:32
msgid "Reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:55
msgid "You can create additional custom shelves to organise your books. A book on a custom shelf can be on any number of other shelves simultaneously, including one of the default reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:56
msgid "Adding custom shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:78
msgid "If you have an export file from another service like Goodreads or LibraryThing, you can import it here."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:79
msgid "Import from another service"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:101
msgid "Now that we\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:10
msgid "You can create or join a group with other users. Groups can share group-curated book lists, and in future will be able to do other things."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:11
#: bookwyrm/templates/guided_tour/user_profile.html:55
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "Grupos"
#: bookwyrm/templates/guided_tour/user_groups.html:55
msgid "Give your group a name and describe what it is about. You can make user groups for any purpose - a reading group, a bunch of friends, whatever!"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:56
msgid "Creating a group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:78
msgid "Groups have privacy settings just like posts and lists, except that group privacy cannot be <strong>Followers</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:79
msgid "Group visibility"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:102
msgid "Once you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:103
msgid "Save your group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:10
msgid "This is your user profile. All your latest activities will be listed here. Other Bookwyrm users can see parts of this page too - what they can see depends on your privacy settings."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:11
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "Perfil do usuário"
#: bookwyrm/templates/guided_tour/user_profile.html:31
msgid "This tab shows everything you have read towards your annual reading goal, or allows you to set one. You don\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:32
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "Meta de leitura"
#: bookwyrm/templates/guided_tour/user_profile.html:54
msgid "Here you can see your groups, or create a new one. A group brings together Bookwyrm users and allows them to curate lists together."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:77
msgid "You can see your lists, or create a new one, here. A list is a collection of books that have something in common."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:100
msgid "The Books tab shows your book shelves. We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:123
msgid "Now you understand the basics of your profile page, let\\s add a book to your shelves.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:124
msgid "Find a book"
msgstr ""
#: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:5
#: bookwyrm/templates/import/import.html:9 #: bookwyrm/templates/import/import.html:9
#: bookwyrm/templates/shelf/shelf.html:64 #: bookwyrm/templates/shelf/shelf.html:64
@ -2272,8 +2807,8 @@ msgstr "Esqueceu sua senha?"
msgid "More about this site" msgid "More about this site"
msgstr "Mais sobre este site" msgstr "Mais sobre este site"
#: bookwyrm/templates/landing/password_reset.html:34 #: bookwyrm/templates/landing/password_reset.html:43
#: bookwyrm/templates/preferences/change_password.html:18 #: bookwyrm/templates/preferences/change_password.html:33
#: bookwyrm/templates/preferences/delete_user.html:20 #: bookwyrm/templates/preferences/delete_user.html:20
msgid "Confirm password:" msgid "Confirm password:"
msgstr "Confirmar senha:" msgstr "Confirmar senha:"
@ -2312,12 +2847,6 @@ msgstr "Menu de navegação principal"
msgid "Feed" msgid "Feed"
msgstr "Novidades" msgstr "Novidades"
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Notificações"
#: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33 #: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33
msgid "password" msgid "password"
msgstr "senha" msgstr "senha"
@ -2338,12 +2867,12 @@ msgstr "Erro ao publicar"
msgid "Documentation" msgid "Documentation"
msgstr "Documentação" msgstr "Documentação"
#: bookwyrm/templates/layout.html:197 #: bookwyrm/templates/layout.html:203
#, python-format #, python-format
msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
msgstr "Apoie a instância %(site_name)s: <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgstr "Apoie a instância %(site_name)s: <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
#: bookwyrm/templates/layout.html:201 #: bookwyrm/templates/layout.html:207
msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
msgstr "O código-fonte da BookWyrm está disponível gratuitamente. Você pode contribuir ou reportar problemas no <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgstr "O código-fonte da BookWyrm está disponível gratuitamente. Você pode contribuir ou reportar problemas no <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
@ -2871,6 +3400,11 @@ msgid_plural "%(display_count)s new <a href=\"%(path)s\">reports</a> need modera
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: bookwyrm/templates/notifications/items/status_preview.html:4
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "Aviso de conteúdo"
#: bookwyrm/templates/notifications/items/update.html:16 #: bookwyrm/templates/notifications/items/update.html:16
#, python-format #, python-format
msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>" msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>"
@ -3028,12 +3562,20 @@ msgstr "Nenhum usuário bloqueado."
#: bookwyrm/templates/preferences/change_password.html:4 #: bookwyrm/templates/preferences/change_password.html:4
#: bookwyrm/templates/preferences/change_password.html:7 #: bookwyrm/templates/preferences/change_password.html:7
#: bookwyrm/templates/preferences/change_password.html:21 #: bookwyrm/templates/preferences/change_password.html:37
#: bookwyrm/templates/preferences/layout.html:20 #: bookwyrm/templates/preferences/layout.html:20
msgid "Change Password" msgid "Change Password"
msgstr "Alterar senha" msgstr "Alterar senha"
#: bookwyrm/templates/preferences/change_password.html:14 #: bookwyrm/templates/preferences/change_password.html:15
msgid "Successfully changed password"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:22
msgid "Current password:"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:28
msgid "New password:" msgid "New password:"
msgstr "Nova senha:" msgstr "Nova senha:"
@ -3125,6 +3667,10 @@ msgstr "Exportar CSV"
msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity." msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity."
msgstr "Seu arquivo conterá todos os livros em suas estantes, suas resenhas e o andamento de suas leituras." msgstr "Seu arquivo conterá todos os livros em suas estantes, suas resenhas e o andamento de suas leituras."
#: bookwyrm/templates/preferences/export.html:20
msgid "Download file"
msgstr ""
#: bookwyrm/templates/preferences/layout.html:11 #: bookwyrm/templates/preferences/layout.html:11
msgid "Account" msgid "Account"
msgstr "Conta" msgstr "Conta"
@ -4905,19 +5451,10 @@ msgstr "página %(page)s"
msgid "Previous" msgid "Previous"
msgstr "Anterior" msgstr "Anterior"
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "Próxima"
#: bookwyrm/templates/snippets/privacy-icons.html:12 #: bookwyrm/templates/snippets/privacy-icons.html:12
msgid "Followers-only" msgid "Followers-only"
msgstr "Apenas seguidores" msgstr "Apenas seguidores"
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "Privacidade da publicação"
#: bookwyrm/templates/snippets/rate_action.html:5 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "Deixe uma avaliação" msgstr "Deixe uma avaliação"
@ -5036,10 +5573,6 @@ msgstr ""
msgid "Finish reading" msgid "Finish reading"
msgstr "Terminar de ler" msgstr "Terminar de ler"
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "Aviso de conteúdo"
#: bookwyrm/templates/snippets/status/content_status.html:80 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "Mostrar publicação" msgstr "Mostrar publicação"
@ -5191,10 +5724,6 @@ msgstr "Mostrar mais"
msgid "Show less" msgid "Show less"
msgstr "Mostrar menos" msgstr "Mostrar menos"
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "Seus livros"
#: bookwyrm/templates/user/books_header.html:9 #: bookwyrm/templates/user/books_header.html:9
#, python-format #, python-format
msgid "%(username)s's books" msgid "%(username)s's books"
@ -5233,22 +5762,10 @@ msgstr "Seus grupos"
msgid "Groups: %(username)s" msgid "Groups: %(username)s"
msgstr "Grupos: %(username)s" msgstr "Grupos: %(username)s"
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "Perfil do usuário"
#: bookwyrm/templates/user/layout.html:48 #: bookwyrm/templates/user/layout.html:48
msgid "Follow Requests" msgid "Follow Requests"
msgstr "Solicitações para seguir" msgstr "Solicitações para seguir"
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "Meta de leitura"
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "Grupos"
#: bookwyrm/templates/user/lists.html:11 #: bookwyrm/templates/user/lists.html:11
#, python-format #, python-format
msgid "Lists: %(username)s" msgid "Lists: %(username)s"
@ -5335,7 +5852,7 @@ msgstr "Nenhum seguidor que você segue"
msgid "View profile and more" msgid "View profile and more"
msgstr "Ver perfil e mais" msgstr "Ver perfil e mais"
#: bookwyrm/templates/user_menu.html:72 #: bookwyrm/templates/user_menu.html:78
msgid "Log out" msgid "Log out"
msgstr "Sair" msgstr "Sair"

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-07-08 22:40+0000\n" "POT-Creation-Date: 2022-07-28 18:11+0000\n"
"PO-Revision-Date: 2022-07-08 23:40\n" "PO-Revision-Date: 2022-07-28 19:13\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"
@ -42,6 +42,14 @@ msgstr "{i} utilizações"
msgid "Unlimited" msgid "Unlimited"
msgstr "Ilimitado" msgstr "Ilimitado"
#: bookwyrm/forms/edit_user.py:89
msgid "Incorrect password"
msgstr ""
#: bookwyrm/forms/edit_user.py:96 bookwyrm/forms/landing.py:71
msgid "Password does not match"
msgstr ""
#: bookwyrm/forms/forms.py:54 #: bookwyrm/forms/forms.py:54
msgid "Reading finish date cannot be before start date." msgid "Reading finish date cannot be before start date."
msgstr "A data final de leitura não pode ser anterior à data de início." msgstr "A data final de leitura não pode ser anterior à data de início."
@ -50,11 +58,11 @@ msgstr "A data final de leitura não pode ser anterior à data de início."
msgid "Reading stopped date cannot be before start date." msgid "Reading stopped date cannot be before start date."
msgstr "" msgstr ""
#: bookwyrm/forms/landing.py:32 #: bookwyrm/forms/landing.py:38
msgid "User with this username already exists" msgid "User with this username already exists"
msgstr "Já existe um utilizador com este nome" msgstr "Já existe um utilizador com este nome"
#: bookwyrm/forms/landing.py:41 #: bookwyrm/forms/landing.py:47
msgid "A user with this email already exists." msgid "A user with this email already exists."
msgstr "Já existe um utilizador com este E-Mail." msgstr "Já existe um utilizador com este E-Mail."
@ -277,7 +285,9 @@ msgstr "Início"
msgid "Books Timeline" msgid "Books Timeline"
msgstr "Cronograma de Livros" msgstr "Cronograma de Livros"
#: bookwyrm/settings.py:210 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:210
#: bookwyrm/templates/guided_tour/user_profile.html:101
#: bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
@ -288,58 +298,62 @@ msgid "English"
msgstr "Inglês" msgstr "Inglês"
#: bookwyrm/settings.py:283 #: bookwyrm/settings.py:283
msgid "Català (Catalan)"
msgstr ""
#: bookwyrm/settings.py:284
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch (Alemão)" msgstr "Deutsch (Alemão)"
#: bookwyrm/settings.py:284 #: bookwyrm/settings.py:285
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español (Espanhol)" msgstr "Español (Espanhol)"
#: bookwyrm/settings.py:285 #: bookwyrm/settings.py:286
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego (Galician)" msgstr "Galego (Galician)"
#: bookwyrm/settings.py:286 #: bookwyrm/settings.py:287
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "Italiano (Italiano)" msgstr "Italiano (Italiano)"
#: bookwyrm/settings.py:287 #: bookwyrm/settings.py:288
msgid "Suomi (Finnish)" msgid "Suomi (Finnish)"
msgstr "Suomi (finlandês)" msgstr "Suomi (finlandês)"
#: bookwyrm/settings.py:288 #: bookwyrm/settings.py:289
msgid "Français (French)" msgid "Français (French)"
msgstr "Français (Francês)" msgstr "Français (Francês)"
#: bookwyrm/settings.py:289 #: bookwyrm/settings.py:290
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių (lituano)" msgstr "Lietuvių (lituano)"
#: bookwyrm/settings.py:290 #: bookwyrm/settings.py:291
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "Norsk (Norueguês)" msgstr "Norsk (Norueguês)"
#: bookwyrm/settings.py:291 #: bookwyrm/settings.py:292
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português do Brasil (Português brasileiro)" msgstr "Português do Brasil (Português brasileiro)"
#: bookwyrm/settings.py:292 #: bookwyrm/settings.py:293
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português (Português Europeu)" msgstr "Português (Português Europeu)"
#: bookwyrm/settings.py:293 #: bookwyrm/settings.py:294
msgid "Română (Romanian)" msgid "Română (Romanian)"
msgstr "Română (Romeno)" msgstr "Română (Romeno)"
#: bookwyrm/settings.py:294 #: bookwyrm/settings.py:295
msgid "Svenska (Swedish)" msgid "Svenska (Swedish)"
msgstr "Svenska (sueco)" msgstr "Svenska (sueco)"
#: bookwyrm/settings.py:295 #: bookwyrm/settings.py:296
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文 (Chinês simplificado)" msgstr "简体中文 (Chinês simplificado)"
#: bookwyrm/settings.py:296 #: bookwyrm/settings.py:297
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文 (Chinês tradicional)" msgstr "繁體中文 (Chinês tradicional)"
@ -787,7 +801,7 @@ msgstr "Carregar os dados irá conectar a <strong>%(source_name)s</strong> e ver
#: bookwyrm/templates/book/edit/edit_book.html:122 #: 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:52
#: bookwyrm/templates/snippets/remove_from_group_button.html:17 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "Confirmar" msgstr "Confirmar"
@ -850,6 +864,7 @@ msgid "Your reading activity"
msgstr "A tua atividade de leitura" msgstr "A tua atividade de leitura"
#: bookwyrm/templates/book/book.html:260 #: bookwyrm/templates/book/book.html:260
#: bookwyrm/templates/guided_tour/book.html:56
msgid "Add read dates" msgid "Add read dates"
msgstr "Adicionar datas de leitura" msgstr "Adicionar datas de leitura"
@ -878,9 +893,13 @@ msgid "Places"
msgstr "Lugares" msgstr "Lugares"
#: bookwyrm/templates/book/book.html:365 #: bookwyrm/templates/book/book.html:365
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:83 #: bookwyrm/templates/groups/group.html:19
#: bookwyrm/templates/lists/curate.html:8 bookwyrm/templates/lists/list.html:12 #: bookwyrm/templates/guided_tour/lists.html:14
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/guided_tour/user_books.html:102
#: bookwyrm/templates/guided_tour/user_profile.html:78
#: bookwyrm/templates/layout.html:83 bookwyrm/templates/lists/curate.html:8
#: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5
#: bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
#: bookwyrm/templates/user/layout.html:85 #: bookwyrm/templates/user/layout.html:85
@ -990,6 +1009,49 @@ msgstr "Este é um novo trabalho"
#: bookwyrm/templates/book/edit/edit_book.html:124 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
#: bookwyrm/templates/guided_tour/book.html:44
#: bookwyrm/templates/guided_tour/book.html:68
#: bookwyrm/templates/guided_tour/book.html:91
#: bookwyrm/templates/guided_tour/book.html:116
#: bookwyrm/templates/guided_tour/book.html:140
#: bookwyrm/templates/guided_tour/book.html:164
#: bookwyrm/templates/guided_tour/book.html:188
#: bookwyrm/templates/guided_tour/book.html:213
#: bookwyrm/templates/guided_tour/book.html:237
#: bookwyrm/templates/guided_tour/book.html:262
#: bookwyrm/templates/guided_tour/book.html:290
#: bookwyrm/templates/guided_tour/group.html:43
#: bookwyrm/templates/guided_tour/group.html:66
#: bookwyrm/templates/guided_tour/group.html:89
#: bookwyrm/templates/guided_tour/group.html:108
#: bookwyrm/templates/guided_tour/home.html:91
#: bookwyrm/templates/guided_tour/home.html:115
#: bookwyrm/templates/guided_tour/home.html:140
#: bookwyrm/templates/guided_tour/home.html:165
#: bookwyrm/templates/guided_tour/home.html:189
#: bookwyrm/templates/guided_tour/home.html:212
#: bookwyrm/templates/guided_tour/lists.html:47
#: bookwyrm/templates/guided_tour/lists.html:70
#: bookwyrm/templates/guided_tour/lists.html:94
#: bookwyrm/templates/guided_tour/lists.html:117
#: bookwyrm/templates/guided_tour/lists.html:136
#: bookwyrm/templates/guided_tour/search.html:83
#: bookwyrm/templates/guided_tour/search.html:110
#: bookwyrm/templates/guided_tour/search.html:134
#: bookwyrm/templates/guided_tour/search.html:155
#: bookwyrm/templates/guided_tour/user_books.html:44
#: bookwyrm/templates/guided_tour/user_books.html:67
#: bookwyrm/templates/guided_tour/user_books.html:90
#: bookwyrm/templates/guided_tour/user_books.html:118
#: bookwyrm/templates/guided_tour/user_groups.html:44
#: bookwyrm/templates/guided_tour/user_groups.html:67
#: bookwyrm/templates/guided_tour/user_groups.html:91
#: bookwyrm/templates/guided_tour/user_groups.html:110
#: bookwyrm/templates/guided_tour/user_profile.html:43
#: bookwyrm/templates/guided_tour/user_profile.html:66
#: bookwyrm/templates/guided_tour/user_profile.html:89
#: bookwyrm/templates/guided_tour/user_profile.html:112
#: bookwyrm/templates/guided_tour/user_profile.html:135
msgid "Back" msgid "Back"
msgstr "Voltar" msgstr "Voltar"
@ -1351,11 +1413,7 @@ msgstr "Reenviar um E-Mail de confirmação"
msgid "Email address:" msgid "Email address:"
msgstr "E-Mail:" msgstr "E-Mail:"
#: bookwyrm/templates/confirm_email/resend_modal.html:28 #: bookwyrm/templates/confirm_email/resend_modal.html:30
msgid "No user matching this email address found."
msgstr "Não foi encontrado nenhum utilizador associado a este endereço de e-mail."
#: bookwyrm/templates/confirm_email/resend_modal.html:38
msgid "Resend link" msgid "Resend link"
msgstr "Reenviar link" msgstr "Reenviar link"
@ -1650,16 +1708,16 @@ msgstr "Todas as mensagens"
msgid "You have no messages right now." msgid "You have no messages right now."
msgstr "Ainda não tem mensagens." msgstr "Ainda não tem mensagens."
#: bookwyrm/templates/feed/feed.html:54 #: bookwyrm/templates/feed/feed.html:55
msgid "There aren't any activities right now! Try following a user to get started" msgid "There aren't any activities right now! Try following a user to get started"
msgstr "Não existem atividades agora! Experimenta seguir um utilizador para começar" msgstr "Não existem atividades agora! Experimenta seguir um utilizador para começar"
#: bookwyrm/templates/feed/feed.html:55 #: bookwyrm/templates/feed/feed.html:56
msgid "Alternatively, you can try enabling more status types" msgid "Alternatively, you can try enabling more status types"
msgstr "Alternativamente, podes tentar ativar mais tipos de estado" msgstr "Alternativamente, podes tentar ativar mais tipos de estado"
#: bookwyrm/templates/feed/goal_card.html:6 #: bookwyrm/templates/feed/goal_card.html:6
#: bookwyrm/templates/feed/layout.html:15 #: bookwyrm/templates/feed/layout.html:14
#: bookwyrm/templates/user/goal_form.html:6 #: bookwyrm/templates/user/goal_form.html:6
#, python-format #, python-format
msgid "%(year)s Reading Goal" msgid "%(year)s Reading Goal"
@ -1670,11 +1728,12 @@ msgstr "Objetivo de leitura de %(year)s"
msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>" msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>"
msgstr "Podes definir ou alterar a tua meta de leitura a qualquer momento a partir da tua <a href=\"%(path)s\">página de perfil</a>" msgstr "Podes definir ou alterar a tua meta de leitura a qualquer momento a partir da tua <a href=\"%(path)s\">página de perfil</a>"
#: bookwyrm/templates/feed/layout.html:5 #: bookwyrm/templates/feed/layout.html:4
msgid "Updates" msgid "Updates"
msgstr "Atualizações" msgstr "Atualizações"
#: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/feed/suggested_books.html:6
#: bookwyrm/templates/guided_tour/home.html:127
#: bookwyrm/templates/user_menu.html:35 #: bookwyrm/templates/user_menu.html:35
msgid "Your Books" msgid "Your Books"
msgstr "Os teus Livros" msgstr "Os teus Livros"
@ -1825,6 +1884,7 @@ msgid "Skip this step"
msgstr "Ignorar este passo" msgstr "Ignorar este passo"
#: bookwyrm/templates/get_started/layout.html:54 #: bookwyrm/templates/get_started/layout.html:54
#: bookwyrm/templates/guided_tour/group.html:101
msgid "Finish" msgid "Finish"
msgstr "Concluir" msgstr "Concluir"
@ -1870,6 +1930,7 @@ msgid "No users found for \"%(query)s\""
msgstr "Nenhum utilizador encontrado para \"%(query)s\"" msgstr "Nenhum utilizador encontrado para \"%(query)s\""
#: bookwyrm/templates/groups/create_form.html:5 #: bookwyrm/templates/groups/create_form.html:5
#: bookwyrm/templates/guided_tour/user_groups.html:32
#: bookwyrm/templates/user/groups.html:17 #: bookwyrm/templates/user/groups.html:17
msgid "Create group" msgid "Create group"
msgstr "Criar grupo" msgstr "Criar grupo"
@ -1980,6 +2041,480 @@ msgstr "Nenhum potencial membro encontrado para \"%(user_query)s\""
msgid "Manager" msgid "Manager"
msgstr "Gestor" msgstr "Gestor"
#: bookwyrm/templates/guided_tour/book.html:10
msgid "This is home page of a book. Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:11
msgid "Book page"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:19
#: bookwyrm/templates/guided_tour/group.html:19
#: bookwyrm/templates/guided_tour/lists.html:22
#: bookwyrm/templates/guided_tour/search.html:29
#: bookwyrm/templates/guided_tour/search.html:56
#: bookwyrm/templates/guided_tour/user_books.html:19
#: bookwyrm/templates/guided_tour/user_groups.html:19
#: bookwyrm/templates/guided_tour/user_profile.html:19
msgid "End Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:26
#: bookwyrm/templates/guided_tour/book.html:50
#: bookwyrm/templates/guided_tour/book.html:74
#: bookwyrm/templates/guided_tour/book.html:97
#: bookwyrm/templates/guided_tour/book.html:122
#: bookwyrm/templates/guided_tour/book.html:146
#: bookwyrm/templates/guided_tour/book.html:170
#: bookwyrm/templates/guided_tour/book.html:194
#: bookwyrm/templates/guided_tour/book.html:219
#: bookwyrm/templates/guided_tour/book.html:243
#: bookwyrm/templates/guided_tour/book.html:268
#: bookwyrm/templates/guided_tour/book.html:274
#: bookwyrm/templates/guided_tour/group.html:26
#: bookwyrm/templates/guided_tour/group.html:49
#: bookwyrm/templates/guided_tour/group.html:72
#: bookwyrm/templates/guided_tour/group.html:95
#: bookwyrm/templates/guided_tour/home.html:74
#: bookwyrm/templates/guided_tour/home.html:97
#: bookwyrm/templates/guided_tour/home.html:121
#: bookwyrm/templates/guided_tour/home.html:146
#: bookwyrm/templates/guided_tour/home.html:171
#: bookwyrm/templates/guided_tour/home.html:195
#: bookwyrm/templates/guided_tour/lists.html:29
#: bookwyrm/templates/guided_tour/lists.html:53
#: bookwyrm/templates/guided_tour/lists.html:76
#: bookwyrm/templates/guided_tour/lists.html:100
#: bookwyrm/templates/guided_tour/lists.html:123
#: bookwyrm/templates/guided_tour/search.html:36
#: bookwyrm/templates/guided_tour/search.html:63
#: bookwyrm/templates/guided_tour/search.html:89
#: bookwyrm/templates/guided_tour/search.html:116
#: bookwyrm/templates/guided_tour/search.html:140
#: bookwyrm/templates/guided_tour/user_books.html:26
#: bookwyrm/templates/guided_tour/user_books.html:50
#: bookwyrm/templates/guided_tour/user_books.html:73
#: bookwyrm/templates/guided_tour/user_books.html:96
#: bookwyrm/templates/guided_tour/user_groups.html:26
#: bookwyrm/templates/guided_tour/user_groups.html:50
#: bookwyrm/templates/guided_tour/user_groups.html:73
#: bookwyrm/templates/guided_tour/user_groups.html:97
#: bookwyrm/templates/guided_tour/user_profile.html:26
#: bookwyrm/templates/guided_tour/user_profile.html:49
#: bookwyrm/templates/guided_tour/user_profile.html:72
#: bookwyrm/templates/guided_tour/user_profile.html:95
#: bookwyrm/templates/guided_tour/user_profile.html:118
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "Seguinte"
#: bookwyrm/templates/guided_tour/book.html:31
msgid "This is where you can set a reading status for this book. You can press the button to move to the next stage, or use the drop down button to select the reading status you want to set."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:32
msgid "Reading status"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:55
msgid "You can also manually add reading dates here. Unlike changing the reading status using the previous method, adding dates manually will not automatically add them to your <strong>Read</strong> or <strong>Reading</strong> shelves.<br><br>Got a favourite you re-read every year? We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:79
msgid "There can be multiple editions of a book, in various formats or languages. You can choose which edition you want to use."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:80
msgid "Other editions"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:102
msgid "You can post a review, comment, or quote here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:103
msgid "Share your thoughts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:127
msgid "If you have read this book you can post a review including an optional star rating"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:128
msgid "Post a review"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:151
msgid "You can share your thoughts on this book generally with a simple comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:152
msgid "Post a comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:175
msgid "Just read some perfect prose? Let the world know by sharing a quote!"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:176
msgid "Share a quote"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:199
msgid "If your review or comment might ruin the book for someone who hasn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:200
msgid "Spoiler alerts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:224
msgid "Choose who can see your post here. Post privacy can be <strong>Public</strong> (everyone can see), <strong>Unlisted</strong> (everyone can see, but it doesn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:225
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "Privacidade de publicação"
#: bookwyrm/templates/guided_tour/book.html:248
msgid "Some ebooks can be downloaded for free from external sources. They will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:249
msgid "Download links"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:273
#: bookwyrm/templates/guided_tour/search.html:147
msgid "<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:296
#: bookwyrm/templates/guided_tour/home.html:50
#: bookwyrm/templates/guided_tour/home.html:218
#: bookwyrm/templates/guided_tour/search.html:161
#: bookwyrm/templates/guided_tour/user_books.html:124
#: bookwyrm/templates/guided_tour/user_groups.html:116
#: bookwyrm/templates/guided_tour/user_profile.html:141
msgid "Ok"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:10
msgid "Welcome to the page for your group! This is where you can add and remove users, create user-curated lists, and edit the group details."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:11
msgid "Your group"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:31
msgid "Use this search box to find users to join your group. Currently users must be members of the same Bookwyrm instance and be invited by the group owner."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:32
msgid "Find users"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:54
msgid "Your group members will appear here. The group owner is marked with a star symbol."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:55
msgid "Group members"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:77
msgid "As well as creating lists from the Lists page, you can create a group-curated list here on the group\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:78
msgid "Group lists"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:100
msgid "Congratulations, you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:115
msgid "End tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:16
msgid "Welcome to Bookwyrm!<br><br>Would you like to take the guided tour to help you get started?"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:17
#: bookwyrm/templates/guided_tour/home.html:39
#: bookwyrm/templates/layout.html:194
msgid "Guided Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:25
msgid "No thanks"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:33
msgid "Yes please!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:38
msgid "If you ever change your mind, just click on the Guided Tour link to start your tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:62
msgid "Search for books, users, or lists using this search box."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:63
msgid "Search box"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:79
msgid "Search book records by scanning an ISBN barcode using your device\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:80
msgid "Barcode reader"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:102
msgid "Use the <strong>Feed</strong>, <strong>Lists</strong> and <strong>Discover</strong> links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:103
msgid "Navigation Bar"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:126
msgid "Books on your reading status shelves will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:151
msgid "Updates from people you are following will appear in your <strong>Home</strong> timeline.<br><br>The <strong>Books</strong> tab shows activity from anyone, related to your books."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:152
msgid "Timelines"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:176
msgid "The bell will light up when you have a new notification. When it does, click on it to find out what exciting thing has happened!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:177
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Notificações"
#: bookwyrm/templates/guided_tour/home.html:200
msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:201
msgid "Profile and settings menu"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:13
msgid "This is the lists page where you can discover book lists created by any user. A List is a collection of books, similar to a shelf.<br><br>Shelves are for organising books for yourself, whereas Lists are generally for sharing with others."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:34
#: bookwyrm/templates/guided_tour/user_groups.html:31
msgid "Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:35
#: bookwyrm/templates/guided_tour/lists.html:59
msgid "Creating a new list"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:58
msgid "You must give your list a name and can optionally give it a description to help other people understand what your list is about."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:81
msgid "Choose who can see your list here. List privacy options work just like we saw when posting book reviews. This is a common pattern throughout Bookwyrm."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:82
msgid "List privacy"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:105
msgid "You can also decide how your list is to be curated - only by you, by anyone, or by a group."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:106
msgid "List curation"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:128
msgid "Next in our tour we will explore Groups!"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:129
msgid "Next: Groups"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:143
msgid "Take me there"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:16
msgid "If the book you are looking for is available on a remote catalogue such as Open Library, click on <strong>Import book</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:17
#: bookwyrm/templates/guided_tour/search.html:44
msgid "Searching"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:43
msgid "If the book you are looking for is already on this Bookwyrm instance, you can click on the title to go to the book\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:71
msgid "If the book you are looking for is not listed, try loading more records from other sources like Open Library or Inventaire."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:72
msgid "Load more records"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:98
msgid "If your book is not in the results, try adjusting your search terms."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:99
msgid "Search again"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:121
msgid "If you still can\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:122
msgid "Add a record manally"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:148
msgid "Continue the tour"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:10
msgid "This is the page where your books are listed, organised into shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:11
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "Os teus livros"
#: bookwyrm/templates/guided_tour/user_books.html:31
msgid "<strong>To Read</strong>, <strong>Currently Reading</strong>, <strong>Read</strong>, and <strong>Stopped Reading</strong> are default shelves. When you change the reading status of a book it will automatically be moved to the matching shelf. A book can only be on one default shelf at a time."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:32
msgid "Reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:55
msgid "You can create additional custom shelves to organise your books. A book on a custom shelf can be on any number of other shelves simultaneously, including one of the default reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:56
msgid "Adding custom shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:78
msgid "If you have an export file from another service like Goodreads or LibraryThing, you can import it here."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:79
msgid "Import from another service"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:101
msgid "Now that we\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:10
msgid "You can create or join a group with other users. Groups can share group-curated book lists, and in future will be able to do other things."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:11
#: bookwyrm/templates/guided_tour/user_profile.html:55
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "Grupos"
#: bookwyrm/templates/guided_tour/user_groups.html:55
msgid "Give your group a name and describe what it is about. You can make user groups for any purpose - a reading group, a bunch of friends, whatever!"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:56
msgid "Creating a group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:78
msgid "Groups have privacy settings just like posts and lists, except that group privacy cannot be <strong>Followers</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:79
msgid "Group visibility"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:102
msgid "Once you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:103
msgid "Save your group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:10
msgid "This is your user profile. All your latest activities will be listed here. Other Bookwyrm users can see parts of this page too - what they can see depends on your privacy settings."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:11
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "Perfil de Utilizador"
#: bookwyrm/templates/guided_tour/user_profile.html:31
msgid "This tab shows everything you have read towards your annual reading goal, or allows you to set one. You don\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:32
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "Meta de leitura"
#: bookwyrm/templates/guided_tour/user_profile.html:54
msgid "Here you can see your groups, or create a new one. A group brings together Bookwyrm users and allows them to curate lists together."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:77
msgid "You can see your lists, or create a new one, here. A list is a collection of books that have something in common."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:100
msgid "The Books tab shows your book shelves. We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:123
msgid "Now you understand the basics of your profile page, let\\s add a book to your shelves.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:124
msgid "Find a book"
msgstr ""
#: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:5
#: bookwyrm/templates/import/import.html:9 #: bookwyrm/templates/import/import.html:9
#: bookwyrm/templates/shelf/shelf.html:64 #: bookwyrm/templates/shelf/shelf.html:64
@ -2272,8 +2807,8 @@ msgstr "Esqueces-te a tua palavra-passe?"
msgid "More about this site" msgid "More about this site"
msgstr "Mais sobre este site" msgstr "Mais sobre este site"
#: bookwyrm/templates/landing/password_reset.html:34 #: bookwyrm/templates/landing/password_reset.html:43
#: bookwyrm/templates/preferences/change_password.html:18 #: bookwyrm/templates/preferences/change_password.html:33
#: bookwyrm/templates/preferences/delete_user.html:20 #: bookwyrm/templates/preferences/delete_user.html:20
msgid "Confirm password:" msgid "Confirm password:"
msgstr "Confirmar palavra-passe:" msgstr "Confirmar palavra-passe:"
@ -2312,12 +2847,6 @@ msgstr "Menu principal"
msgid "Feed" msgid "Feed"
msgstr "Feed" msgstr "Feed"
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Notificações"
#: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33 #: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33
msgid "password" msgid "password"
msgstr "palavra-passe" msgstr "palavra-passe"
@ -2338,12 +2867,12 @@ msgstr "Erro ao publicar estado"
msgid "Documentation" msgid "Documentation"
msgstr "Documentação" msgstr "Documentação"
#: bookwyrm/templates/layout.html:197 #: bookwyrm/templates/layout.html:203
#, python-format #, python-format
msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
msgstr "Apoia %(site_name)s em <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgstr "Apoia %(site_name)s em <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
#: bookwyrm/templates/layout.html:201 #: bookwyrm/templates/layout.html:207
msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
msgstr "O código de fonte do BookWyrm está disponível gratuitamente. E também podes contribuir ou reportar problemas no <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgstr "O código de fonte do BookWyrm está disponível gratuitamente. E também podes contribuir ou reportar problemas no <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
@ -2871,6 +3400,11 @@ msgid_plural "%(display_count)s new <a href=\"%(path)s\">reports</a> need modera
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: bookwyrm/templates/notifications/items/status_preview.html:4
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "Aviso de Conteúdo"
#: bookwyrm/templates/notifications/items/update.html:16 #: bookwyrm/templates/notifications/items/update.html:16
#, python-format #, python-format
msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>" msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>"
@ -3028,12 +3562,20 @@ msgstr "Não há utilizadores bloqueados."
#: bookwyrm/templates/preferences/change_password.html:4 #: bookwyrm/templates/preferences/change_password.html:4
#: bookwyrm/templates/preferences/change_password.html:7 #: bookwyrm/templates/preferences/change_password.html:7
#: bookwyrm/templates/preferences/change_password.html:21 #: bookwyrm/templates/preferences/change_password.html:37
#: bookwyrm/templates/preferences/layout.html:20 #: bookwyrm/templates/preferences/layout.html:20
msgid "Change Password" msgid "Change Password"
msgstr "Alterar Palavra-passe" msgstr "Alterar Palavra-passe"
#: bookwyrm/templates/preferences/change_password.html:14 #: bookwyrm/templates/preferences/change_password.html:15
msgid "Successfully changed password"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:22
msgid "Current password:"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:28
msgid "New password:" msgid "New password:"
msgstr "Nova Palavra-passe:" msgstr "Nova Palavra-passe:"
@ -3125,6 +3667,10 @@ msgstr "Exportar para CSV"
msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity." msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity."
msgstr "A exportação incluirá todos os livros das tuas prateleiras, livros que tu já avaliaste e livros com a atividade da leitura." msgstr "A exportação incluirá todos os livros das tuas prateleiras, livros que tu já avaliaste e livros com a atividade da leitura."
#: bookwyrm/templates/preferences/export.html:20
msgid "Download file"
msgstr ""
#: bookwyrm/templates/preferences/layout.html:11 #: bookwyrm/templates/preferences/layout.html:11
msgid "Account" msgid "Account"
msgstr "Conta" msgstr "Conta"
@ -4905,19 +5451,10 @@ msgstr "página %(page)s"
msgid "Previous" msgid "Previous"
msgstr "Anterior" msgstr "Anterior"
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "Seguinte"
#: bookwyrm/templates/snippets/privacy-icons.html:12 #: bookwyrm/templates/snippets/privacy-icons.html:12
msgid "Followers-only" msgid "Followers-only"
msgstr "Apenas seguidores" msgstr "Apenas seguidores"
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "Privacidade de publicação"
#: bookwyrm/templates/snippets/rate_action.html:5 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "Deixar uma avaliação" msgstr "Deixar uma avaliação"
@ -5036,10 +5573,6 @@ msgstr ""
msgid "Finish reading" msgid "Finish reading"
msgstr "Terminar leitura" msgstr "Terminar leitura"
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "Aviso de Conteúdo"
#: bookwyrm/templates/snippets/status/content_status.html:80 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "Mostrar o estado" msgstr "Mostrar o estado"
@ -5191,10 +5724,6 @@ msgstr "Mostrar mais"
msgid "Show less" msgid "Show less"
msgstr "Mostrar menos" msgstr "Mostrar menos"
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "Os teus livros"
#: bookwyrm/templates/user/books_header.html:9 #: bookwyrm/templates/user/books_header.html:9
#, python-format #, python-format
msgid "%(username)s's books" msgid "%(username)s's books"
@ -5233,22 +5762,10 @@ msgstr "Os Teus Grupos"
msgid "Groups: %(username)s" msgid "Groups: %(username)s"
msgstr "Grupos: %(username)s" msgstr "Grupos: %(username)s"
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "Perfil de Utilizador"
#: bookwyrm/templates/user/layout.html:48 #: bookwyrm/templates/user/layout.html:48
msgid "Follow Requests" msgid "Follow Requests"
msgstr "Solicitações para seguir" msgstr "Solicitações para seguir"
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "Meta de leitura"
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "Grupos"
#: bookwyrm/templates/user/lists.html:11 #: bookwyrm/templates/user/lists.html:11
#, python-format #, python-format
msgid "Lists: %(username)s" msgid "Lists: %(username)s"
@ -5335,7 +5852,7 @@ msgstr "Não há seguidores que tu segues"
msgid "View profile and more" msgid "View profile and more"
msgstr "Visualizar perfil e mais" msgstr "Visualizar perfil e mais"
#: bookwyrm/templates/user_menu.html:72 #: bookwyrm/templates/user_menu.html:78
msgid "Log out" msgid "Log out"
msgstr "Terminar sessão" msgstr "Terminar sessão"

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-07-08 22:40+0000\n" "POT-Creation-Date: 2022-07-28 18:11+0000\n"
"PO-Revision-Date: 2022-07-08 23:41\n" "PO-Revision-Date: 2022-07-28 19:14\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"
@ -42,6 +42,14 @@ msgstr "{i} utilizări"
msgid "Unlimited" msgid "Unlimited"
msgstr "Nelimitat" msgstr "Nelimitat"
#: bookwyrm/forms/edit_user.py:89
msgid "Incorrect password"
msgstr ""
#: bookwyrm/forms/edit_user.py:96 bookwyrm/forms/landing.py:71
msgid "Password does not match"
msgstr ""
#: bookwyrm/forms/forms.py:54 #: bookwyrm/forms/forms.py:54
msgid "Reading finish date cannot be before start date." msgid "Reading finish date cannot be before start date."
msgstr "Data de terminare a lecturii nu poate fi înainte de data de început." msgstr "Data de terminare a lecturii nu poate fi înainte de data de început."
@ -50,11 +58,11 @@ msgstr "Data de terminare a lecturii nu poate fi înainte de data de început."
msgid "Reading stopped date cannot be before start date." msgid "Reading stopped date cannot be before start date."
msgstr "" msgstr ""
#: bookwyrm/forms/landing.py:32 #: bookwyrm/forms/landing.py:38
msgid "User with this username already exists" msgid "User with this username already exists"
msgstr "Un utilizator cu acest nume există deja" msgstr "Un utilizator cu acest nume există deja"
#: bookwyrm/forms/landing.py:41 #: bookwyrm/forms/landing.py:47
msgid "A user with this email already exists." msgid "A user with this email already exists."
msgstr "Un utilizator cu această adresă de email există deja." msgstr "Un utilizator cu această adresă de email există deja."
@ -277,7 +285,9 @@ msgstr "Acasă"
msgid "Books Timeline" msgid "Books Timeline"
msgstr "Friză cronologică de cărți" msgstr "Friză cronologică de cărți"
#: bookwyrm/settings.py:210 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:210
#: bookwyrm/templates/guided_tour/user_profile.html:101
#: bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
@ -288,58 +298,62 @@ msgid "English"
msgstr "English (engleză)" msgstr "English (engleză)"
#: bookwyrm/settings.py:283 #: bookwyrm/settings.py:283
msgid "Català (Catalan)"
msgstr ""
#: bookwyrm/settings.py:284
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch (germană)" msgstr "Deutsch (germană)"
#: bookwyrm/settings.py:284 #: bookwyrm/settings.py:285
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español (spaniolă)" msgstr "Español (spaniolă)"
#: bookwyrm/settings.py:285 #: bookwyrm/settings.py:286
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego (galiciană)" msgstr "Galego (galiciană)"
#: bookwyrm/settings.py:286 #: bookwyrm/settings.py:287
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "Italiano (italiană)" msgstr "Italiano (italiană)"
#: bookwyrm/settings.py:287 #: bookwyrm/settings.py:288
msgid "Suomi (Finnish)" msgid "Suomi (Finnish)"
msgstr "Suomi (finlandeză)" msgstr "Suomi (finlandeză)"
#: bookwyrm/settings.py:288 #: bookwyrm/settings.py:289
msgid "Français (French)" msgid "Français (French)"
msgstr "Français (franceză)" msgstr "Français (franceză)"
#: bookwyrm/settings.py:289 #: bookwyrm/settings.py:290
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių (lituaniană)" msgstr "Lietuvių (lituaniană)"
#: bookwyrm/settings.py:290 #: bookwyrm/settings.py:291
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "Norsk (norvegiană)" msgstr "Norsk (norvegiană)"
#: bookwyrm/settings.py:291 #: bookwyrm/settings.py:292
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português do Brasil (portugheză braziliană)" msgstr "Português do Brasil (portugheză braziliană)"
#: bookwyrm/settings.py:292 #: bookwyrm/settings.py:293
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português Europeu (portugheză europeană)" msgstr "Português Europeu (portugheză europeană)"
#: bookwyrm/settings.py:293 #: bookwyrm/settings.py:294
msgid "Română (Romanian)" msgid "Română (Romanian)"
msgstr "Română (română)" msgstr "Română (română)"
#: bookwyrm/settings.py:294 #: bookwyrm/settings.py:295
msgid "Svenska (Swedish)" msgid "Svenska (Swedish)"
msgstr "Svenska (suedeză)" msgstr "Svenska (suedeză)"
#: bookwyrm/settings.py:295 #: bookwyrm/settings.py:296
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文 (chineză simplificată)" msgstr "简体中文 (chineză simplificată)"
#: bookwyrm/settings.py:296 #: bookwyrm/settings.py:297
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文 (chineză tradițională)" msgstr "繁體中文 (chineză tradițională)"
@ -791,7 +805,7 @@ msgstr "Încărcatul de date se va conecta la <strong>%(source_name)s</strong>
#: bookwyrm/templates/book/edit/edit_book.html:122 #: 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:52
#: bookwyrm/templates/snippets/remove_from_group_button.html:17 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "Confirmați" msgstr "Confirmați"
@ -856,6 +870,7 @@ msgid "Your reading activity"
msgstr "Activitatea dvs. de lectură" msgstr "Activitatea dvs. de lectură"
#: bookwyrm/templates/book/book.html:260 #: bookwyrm/templates/book/book.html:260
#: bookwyrm/templates/guided_tour/book.html:56
msgid "Add read dates" msgid "Add read dates"
msgstr "Adăugați date de lectură" msgstr "Adăugați date de lectură"
@ -884,9 +899,13 @@ msgid "Places"
msgstr "Locuri" msgstr "Locuri"
#: bookwyrm/templates/book/book.html:365 #: bookwyrm/templates/book/book.html:365
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:83 #: bookwyrm/templates/groups/group.html:19
#: bookwyrm/templates/lists/curate.html:8 bookwyrm/templates/lists/list.html:12 #: bookwyrm/templates/guided_tour/lists.html:14
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/guided_tour/user_books.html:102
#: bookwyrm/templates/guided_tour/user_profile.html:78
#: bookwyrm/templates/layout.html:83 bookwyrm/templates/lists/curate.html:8
#: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5
#: bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
#: bookwyrm/templates/user/layout.html:85 #: bookwyrm/templates/user/layout.html:85
@ -996,6 +1015,49 @@ msgstr "Aceasta este o operă nouă"
#: bookwyrm/templates/book/edit/edit_book.html:124 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
#: bookwyrm/templates/guided_tour/book.html:44
#: bookwyrm/templates/guided_tour/book.html:68
#: bookwyrm/templates/guided_tour/book.html:91
#: bookwyrm/templates/guided_tour/book.html:116
#: bookwyrm/templates/guided_tour/book.html:140
#: bookwyrm/templates/guided_tour/book.html:164
#: bookwyrm/templates/guided_tour/book.html:188
#: bookwyrm/templates/guided_tour/book.html:213
#: bookwyrm/templates/guided_tour/book.html:237
#: bookwyrm/templates/guided_tour/book.html:262
#: bookwyrm/templates/guided_tour/book.html:290
#: bookwyrm/templates/guided_tour/group.html:43
#: bookwyrm/templates/guided_tour/group.html:66
#: bookwyrm/templates/guided_tour/group.html:89
#: bookwyrm/templates/guided_tour/group.html:108
#: bookwyrm/templates/guided_tour/home.html:91
#: bookwyrm/templates/guided_tour/home.html:115
#: bookwyrm/templates/guided_tour/home.html:140
#: bookwyrm/templates/guided_tour/home.html:165
#: bookwyrm/templates/guided_tour/home.html:189
#: bookwyrm/templates/guided_tour/home.html:212
#: bookwyrm/templates/guided_tour/lists.html:47
#: bookwyrm/templates/guided_tour/lists.html:70
#: bookwyrm/templates/guided_tour/lists.html:94
#: bookwyrm/templates/guided_tour/lists.html:117
#: bookwyrm/templates/guided_tour/lists.html:136
#: bookwyrm/templates/guided_tour/search.html:83
#: bookwyrm/templates/guided_tour/search.html:110
#: bookwyrm/templates/guided_tour/search.html:134
#: bookwyrm/templates/guided_tour/search.html:155
#: bookwyrm/templates/guided_tour/user_books.html:44
#: bookwyrm/templates/guided_tour/user_books.html:67
#: bookwyrm/templates/guided_tour/user_books.html:90
#: bookwyrm/templates/guided_tour/user_books.html:118
#: bookwyrm/templates/guided_tour/user_groups.html:44
#: bookwyrm/templates/guided_tour/user_groups.html:67
#: bookwyrm/templates/guided_tour/user_groups.html:91
#: bookwyrm/templates/guided_tour/user_groups.html:110
#: bookwyrm/templates/guided_tour/user_profile.html:43
#: bookwyrm/templates/guided_tour/user_profile.html:66
#: bookwyrm/templates/guided_tour/user_profile.html:89
#: bookwyrm/templates/guided_tour/user_profile.html:112
#: bookwyrm/templates/guided_tour/user_profile.html:135
msgid "Back" msgid "Back"
msgstr "Înapoi" msgstr "Înapoi"
@ -1357,11 +1419,7 @@ msgstr "Retrimiteți legătura de confirmare"
msgid "Email address:" msgid "Email address:"
msgstr "Adresa de email:" msgstr "Adresa de email:"
#: bookwyrm/templates/confirm_email/resend_modal.html:28 #: bookwyrm/templates/confirm_email/resend_modal.html:30
msgid "No user matching this email address found."
msgstr "Nu s-a găsit niciun utilizator care să corespundă acestei adrese de e-mail."
#: bookwyrm/templates/confirm_email/resend_modal.html:38
msgid "Resend link" msgid "Resend link"
msgstr "Retrimiteți legătura" msgstr "Retrimiteți legătura"
@ -1658,16 +1716,16 @@ msgstr "Toate mesajele"
msgid "You have no messages right now." msgid "You have no messages right now."
msgstr "Nu aveți niciun mesaj în acest moment." msgstr "Nu aveți niciun mesaj în acest moment."
#: bookwyrm/templates/feed/feed.html:54 #: bookwyrm/templates/feed/feed.html:55
msgid "There aren't any activities right now! Try following a user to get started" msgid "There aren't any activities right now! Try following a user to get started"
msgstr "Nu există nicio activitate momentan! Încercați să urmăriți un utilizator pentru a începe" msgstr "Nu există nicio activitate momentan! Încercați să urmăriți un utilizator pentru a începe"
#: bookwyrm/templates/feed/feed.html:55 #: bookwyrm/templates/feed/feed.html:56
msgid "Alternatively, you can try enabling more status types" msgid "Alternatively, you can try enabling more status types"
msgstr "Alternativ, puteți încerca să activați mai multe tipuri de statusuri" msgstr "Alternativ, puteți încerca să activați mai multe tipuri de statusuri"
#: bookwyrm/templates/feed/goal_card.html:6 #: bookwyrm/templates/feed/goal_card.html:6
#: bookwyrm/templates/feed/layout.html:15 #: bookwyrm/templates/feed/layout.html:14
#: bookwyrm/templates/user/goal_form.html:6 #: bookwyrm/templates/user/goal_form.html:6
#, python-format #, python-format
msgid "%(year)s Reading Goal" msgid "%(year)s Reading Goal"
@ -1678,11 +1736,12 @@ msgstr "Obiectivul de lectură din %(year)s"
msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>" msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>"
msgstr "Puteți alege sau schimba obiectul dvs. de lectură oricând folosind <a href=\"%(path)s\">pagina dvs. de profil</a>" msgstr "Puteți alege sau schimba obiectul dvs. de lectură oricând folosind <a href=\"%(path)s\">pagina dvs. de profil</a>"
#: bookwyrm/templates/feed/layout.html:5 #: bookwyrm/templates/feed/layout.html:4
msgid "Updates" msgid "Updates"
msgstr "Actualizări" msgstr "Actualizări"
#: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/feed/suggested_books.html:6
#: bookwyrm/templates/guided_tour/home.html:127
#: bookwyrm/templates/user_menu.html:35 #: bookwyrm/templates/user_menu.html:35
msgid "Your Books" msgid "Your Books"
msgstr "Cărțile dvs." msgstr "Cărțile dvs."
@ -1833,6 +1892,7 @@ msgid "Skip this step"
msgstr "Săriți acest pas" msgstr "Săriți acest pas"
#: bookwyrm/templates/get_started/layout.html:54 #: bookwyrm/templates/get_started/layout.html:54
#: bookwyrm/templates/guided_tour/group.html:101
msgid "Finish" msgid "Finish"
msgstr "Terminați" msgstr "Terminați"
@ -1878,6 +1938,7 @@ msgid "No users found for \"%(query)s\""
msgstr "Niciun utilizator găsit pentru „%(query)s”" msgstr "Niciun utilizator găsit pentru „%(query)s”"
#: bookwyrm/templates/groups/create_form.html:5 #: bookwyrm/templates/groups/create_form.html:5
#: bookwyrm/templates/guided_tour/user_groups.html:32
#: bookwyrm/templates/user/groups.html:17 #: bookwyrm/templates/user/groups.html:17
msgid "Create group" msgid "Create group"
msgstr "Creați grup" msgstr "Creați grup"
@ -1990,6 +2051,480 @@ msgstr "Niciun membru potențial găsit pentru „%(user_query)s”"
msgid "Manager" msgid "Manager"
msgstr "Administrator" msgstr "Administrator"
#: bookwyrm/templates/guided_tour/book.html:10
msgid "This is home page of a book. Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:11
msgid "Book page"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:19
#: bookwyrm/templates/guided_tour/group.html:19
#: bookwyrm/templates/guided_tour/lists.html:22
#: bookwyrm/templates/guided_tour/search.html:29
#: bookwyrm/templates/guided_tour/search.html:56
#: bookwyrm/templates/guided_tour/user_books.html:19
#: bookwyrm/templates/guided_tour/user_groups.html:19
#: bookwyrm/templates/guided_tour/user_profile.html:19
msgid "End Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:26
#: bookwyrm/templates/guided_tour/book.html:50
#: bookwyrm/templates/guided_tour/book.html:74
#: bookwyrm/templates/guided_tour/book.html:97
#: bookwyrm/templates/guided_tour/book.html:122
#: bookwyrm/templates/guided_tour/book.html:146
#: bookwyrm/templates/guided_tour/book.html:170
#: bookwyrm/templates/guided_tour/book.html:194
#: bookwyrm/templates/guided_tour/book.html:219
#: bookwyrm/templates/guided_tour/book.html:243
#: bookwyrm/templates/guided_tour/book.html:268
#: bookwyrm/templates/guided_tour/book.html:274
#: bookwyrm/templates/guided_tour/group.html:26
#: bookwyrm/templates/guided_tour/group.html:49
#: bookwyrm/templates/guided_tour/group.html:72
#: bookwyrm/templates/guided_tour/group.html:95
#: bookwyrm/templates/guided_tour/home.html:74
#: bookwyrm/templates/guided_tour/home.html:97
#: bookwyrm/templates/guided_tour/home.html:121
#: bookwyrm/templates/guided_tour/home.html:146
#: bookwyrm/templates/guided_tour/home.html:171
#: bookwyrm/templates/guided_tour/home.html:195
#: bookwyrm/templates/guided_tour/lists.html:29
#: bookwyrm/templates/guided_tour/lists.html:53
#: bookwyrm/templates/guided_tour/lists.html:76
#: bookwyrm/templates/guided_tour/lists.html:100
#: bookwyrm/templates/guided_tour/lists.html:123
#: bookwyrm/templates/guided_tour/search.html:36
#: bookwyrm/templates/guided_tour/search.html:63
#: bookwyrm/templates/guided_tour/search.html:89
#: bookwyrm/templates/guided_tour/search.html:116
#: bookwyrm/templates/guided_tour/search.html:140
#: bookwyrm/templates/guided_tour/user_books.html:26
#: bookwyrm/templates/guided_tour/user_books.html:50
#: bookwyrm/templates/guided_tour/user_books.html:73
#: bookwyrm/templates/guided_tour/user_books.html:96
#: bookwyrm/templates/guided_tour/user_groups.html:26
#: bookwyrm/templates/guided_tour/user_groups.html:50
#: bookwyrm/templates/guided_tour/user_groups.html:73
#: bookwyrm/templates/guided_tour/user_groups.html:97
#: bookwyrm/templates/guided_tour/user_profile.html:26
#: bookwyrm/templates/guided_tour/user_profile.html:49
#: bookwyrm/templates/guided_tour/user_profile.html:72
#: bookwyrm/templates/guided_tour/user_profile.html:95
#: bookwyrm/templates/guided_tour/user_profile.html:118
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "Înainte"
#: bookwyrm/templates/guided_tour/book.html:31
msgid "This is where you can set a reading status for this book. You can press the button to move to the next stage, or use the drop down button to select the reading status you want to set."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:32
msgid "Reading status"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:55
msgid "You can also manually add reading dates here. Unlike changing the reading status using the previous method, adding dates manually will not automatically add them to your <strong>Read</strong> or <strong>Reading</strong> shelves.<br><br>Got a favourite you re-read every year? We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:79
msgid "There can be multiple editions of a book, in various formats or languages. You can choose which edition you want to use."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:80
msgid "Other editions"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:102
msgid "You can post a review, comment, or quote here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:103
msgid "Share your thoughts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:127
msgid "If you have read this book you can post a review including an optional star rating"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:128
msgid "Post a review"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:151
msgid "You can share your thoughts on this book generally with a simple comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:152
msgid "Post a comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:175
msgid "Just read some perfect prose? Let the world know by sharing a quote!"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:176
msgid "Share a quote"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:199
msgid "If your review or comment might ruin the book for someone who hasn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:200
msgid "Spoiler alerts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:224
msgid "Choose who can see your post here. Post privacy can be <strong>Public</strong> (everyone can see), <strong>Unlisted</strong> (everyone can see, but it doesn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:225
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "Confidențialitatea postării"
#: bookwyrm/templates/guided_tour/book.html:248
msgid "Some ebooks can be downloaded for free from external sources. They will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:249
msgid "Download links"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:273
#: bookwyrm/templates/guided_tour/search.html:147
msgid "<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:296
#: bookwyrm/templates/guided_tour/home.html:50
#: bookwyrm/templates/guided_tour/home.html:218
#: bookwyrm/templates/guided_tour/search.html:161
#: bookwyrm/templates/guided_tour/user_books.html:124
#: bookwyrm/templates/guided_tour/user_groups.html:116
#: bookwyrm/templates/guided_tour/user_profile.html:141
msgid "Ok"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:10
msgid "Welcome to the page for your group! This is where you can add and remove users, create user-curated lists, and edit the group details."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:11
msgid "Your group"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:31
msgid "Use this search box to find users to join your group. Currently users must be members of the same Bookwyrm instance and be invited by the group owner."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:32
msgid "Find users"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:54
msgid "Your group members will appear here. The group owner is marked with a star symbol."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:55
msgid "Group members"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:77
msgid "As well as creating lists from the Lists page, you can create a group-curated list here on the group\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:78
msgid "Group lists"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:100
msgid "Congratulations, you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:115
msgid "End tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:16
msgid "Welcome to Bookwyrm!<br><br>Would you like to take the guided tour to help you get started?"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:17
#: bookwyrm/templates/guided_tour/home.html:39
#: bookwyrm/templates/layout.html:194
msgid "Guided Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:25
msgid "No thanks"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:33
msgid "Yes please!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:38
msgid "If you ever change your mind, just click on the Guided Tour link to start your tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:62
msgid "Search for books, users, or lists using this search box."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:63
msgid "Search box"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:79
msgid "Search book records by scanning an ISBN barcode using your device\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:80
msgid "Barcode reader"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:102
msgid "Use the <strong>Feed</strong>, <strong>Lists</strong> and <strong>Discover</strong> links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:103
msgid "Navigation Bar"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:126
msgid "Books on your reading status shelves will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:151
msgid "Updates from people you are following will appear in your <strong>Home</strong> timeline.<br><br>The <strong>Books</strong> tab shows activity from anyone, related to your books."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:152
msgid "Timelines"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:176
msgid "The bell will light up when you have a new notification. When it does, click on it to find out what exciting thing has happened!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:177
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Notificări"
#: bookwyrm/templates/guided_tour/home.html:200
msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:201
msgid "Profile and settings menu"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:13
msgid "This is the lists page where you can discover book lists created by any user. A List is a collection of books, similar to a shelf.<br><br>Shelves are for organising books for yourself, whereas Lists are generally for sharing with others."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:34
#: bookwyrm/templates/guided_tour/user_groups.html:31
msgid "Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:35
#: bookwyrm/templates/guided_tour/lists.html:59
msgid "Creating a new list"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:58
msgid "You must give your list a name and can optionally give it a description to help other people understand what your list is about."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:81
msgid "Choose who can see your list here. List privacy options work just like we saw when posting book reviews. This is a common pattern throughout Bookwyrm."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:82
msgid "List privacy"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:105
msgid "You can also decide how your list is to be curated - only by you, by anyone, or by a group."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:106
msgid "List curation"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:128
msgid "Next in our tour we will explore Groups!"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:129
msgid "Next: Groups"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:143
msgid "Take me there"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:16
msgid "If the book you are looking for is available on a remote catalogue such as Open Library, click on <strong>Import book</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:17
#: bookwyrm/templates/guided_tour/search.html:44
msgid "Searching"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:43
msgid "If the book you are looking for is already on this Bookwyrm instance, you can click on the title to go to the book\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:71
msgid "If the book you are looking for is not listed, try loading more records from other sources like Open Library or Inventaire."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:72
msgid "Load more records"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:98
msgid "If your book is not in the results, try adjusting your search terms."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:99
msgid "Search again"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:121
msgid "If you still can\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:122
msgid "Add a record manally"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:148
msgid "Continue the tour"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:10
msgid "This is the page where your books are listed, organised into shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:11
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "Cărțile dvs."
#: bookwyrm/templates/guided_tour/user_books.html:31
msgid "<strong>To Read</strong>, <strong>Currently Reading</strong>, <strong>Read</strong>, and <strong>Stopped Reading</strong> are default shelves. When you change the reading status of a book it will automatically be moved to the matching shelf. A book can only be on one default shelf at a time."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:32
msgid "Reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:55
msgid "You can create additional custom shelves to organise your books. A book on a custom shelf can be on any number of other shelves simultaneously, including one of the default reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:56
msgid "Adding custom shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:78
msgid "If you have an export file from another service like Goodreads or LibraryThing, you can import it here."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:79
msgid "Import from another service"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:101
msgid "Now that we\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:10
msgid "You can create or join a group with other users. Groups can share group-curated book lists, and in future will be able to do other things."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:11
#: bookwyrm/templates/guided_tour/user_profile.html:55
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "Grupuri"
#: bookwyrm/templates/guided_tour/user_groups.html:55
msgid "Give your group a name and describe what it is about. You can make user groups for any purpose - a reading group, a bunch of friends, whatever!"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:56
msgid "Creating a group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:78
msgid "Groups have privacy settings just like posts and lists, except that group privacy cannot be <strong>Followers</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:79
msgid "Group visibility"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:102
msgid "Once you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:103
msgid "Save your group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:10
msgid "This is your user profile. All your latest activities will be listed here. Other Bookwyrm users can see parts of this page too - what they can see depends on your privacy settings."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:11
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "Profilul utilizatorului"
#: bookwyrm/templates/guided_tour/user_profile.html:31
msgid "This tab shows everything you have read towards your annual reading goal, or allows you to set one. You don\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:32
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "Obiectiv de lectură"
#: bookwyrm/templates/guided_tour/user_profile.html:54
msgid "Here you can see your groups, or create a new one. A group brings together Bookwyrm users and allows them to curate lists together."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:77
msgid "You can see your lists, or create a new one, here. A list is a collection of books that have something in common."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:100
msgid "The Books tab shows your book shelves. We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:123
msgid "Now you understand the basics of your profile page, let\\s add a book to your shelves.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:124
msgid "Find a book"
msgstr ""
#: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:5
#: bookwyrm/templates/import/import.html:9 #: bookwyrm/templates/import/import.html:9
#: bookwyrm/templates/shelf/shelf.html:64 #: bookwyrm/templates/shelf/shelf.html:64
@ -2284,8 +2819,8 @@ msgstr "Parolă uitată?"
msgid "More about this site" msgid "More about this site"
msgstr "Mai multe despre acest site" msgstr "Mai multe despre acest site"
#: bookwyrm/templates/landing/password_reset.html:34 #: bookwyrm/templates/landing/password_reset.html:43
#: bookwyrm/templates/preferences/change_password.html:18 #: bookwyrm/templates/preferences/change_password.html:33
#: bookwyrm/templates/preferences/delete_user.html:20 #: bookwyrm/templates/preferences/delete_user.html:20
msgid "Confirm password:" msgid "Confirm password:"
msgstr "Confirmați parola:" msgstr "Confirmați parola:"
@ -2324,12 +2859,6 @@ msgstr "Meniul principal de navigație"
msgid "Feed" msgid "Feed"
msgstr "Fir de actualitate" msgstr "Fir de actualitate"
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Notificări"
#: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33 #: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33
msgid "password" msgid "password"
msgstr "parolă" msgstr "parolă"
@ -2350,12 +2879,12 @@ msgstr "Eroare la postarea stării"
msgid "Documentation" msgid "Documentation"
msgstr "Documentație" msgstr "Documentație"
#: bookwyrm/templates/layout.html:197 #: bookwyrm/templates/layout.html:203
#, python-format #, python-format
msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
msgstr "Susțineți %(site_name)s la <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgstr "Susțineți %(site_name)s la <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
#: bookwyrm/templates/layout.html:201 #: bookwyrm/templates/layout.html:207
msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
msgstr "Codul sursă a lui BookWyrm este disponibil gratuit. Puteți contribui sau raporta probleme la <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgstr "Codul sursă a lui BookWyrm este disponibil gratuit. Puteți contribui sau raporta probleme la <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
@ -2886,6 +3415,11 @@ msgstr[0] ""
msgstr[1] "" msgstr[1] ""
msgstr[2] "" msgstr[2] ""
#: bookwyrm/templates/notifications/items/status_preview.html:4
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "Avertisment de conținut"
#: bookwyrm/templates/notifications/items/update.html:16 #: bookwyrm/templates/notifications/items/update.html:16
#, python-format #, python-format
msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>" msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>"
@ -3043,12 +3577,20 @@ msgstr "Niciun utilizator blocat."
#: bookwyrm/templates/preferences/change_password.html:4 #: bookwyrm/templates/preferences/change_password.html:4
#: bookwyrm/templates/preferences/change_password.html:7 #: bookwyrm/templates/preferences/change_password.html:7
#: bookwyrm/templates/preferences/change_password.html:21 #: bookwyrm/templates/preferences/change_password.html:37
#: bookwyrm/templates/preferences/layout.html:20 #: bookwyrm/templates/preferences/layout.html:20
msgid "Change Password" msgid "Change Password"
msgstr "Schimbați parola" msgstr "Schimbați parola"
#: bookwyrm/templates/preferences/change_password.html:14 #: bookwyrm/templates/preferences/change_password.html:15
msgid "Successfully changed password"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:22
msgid "Current password:"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:28
msgid "New password:" msgid "New password:"
msgstr "Parolă nouă:" msgstr "Parolă nouă:"
@ -3140,6 +3682,10 @@ msgstr "Export CSV"
msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity." msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity."
msgstr "Exportul dvs. va include toate cărțile de pe etajerele dvs., cărți pe care le-ați revizuit și cărți cu activitate de lectură." msgstr "Exportul dvs. va include toate cărțile de pe etajerele dvs., cărți pe care le-ați revizuit și cărți cu activitate de lectură."
#: bookwyrm/templates/preferences/export.html:20
msgid "Download file"
msgstr ""
#: bookwyrm/templates/preferences/layout.html:11 #: bookwyrm/templates/preferences/layout.html:11
msgid "Account" msgid "Account"
msgstr "Cont" msgstr "Cont"
@ -4931,19 +5477,10 @@ msgstr "pagina %(page)s"
msgid "Previous" msgid "Previous"
msgstr "Înapoi" msgstr "Înapoi"
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "Înainte"
#: bookwyrm/templates/snippets/privacy-icons.html:12 #: bookwyrm/templates/snippets/privacy-icons.html:12
msgid "Followers-only" msgid "Followers-only"
msgstr "Numai urmăritorii" msgstr "Numai urmăritorii"
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "Confidențialitatea postării"
#: bookwyrm/templates/snippets/rate_action.html:5 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "Lăsați o evaluare" msgstr "Lăsați o evaluare"
@ -5062,10 +5599,6 @@ msgstr ""
msgid "Finish reading" msgid "Finish reading"
msgstr "Terminați de citit" msgstr "Terminați de citit"
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "Avertisment de conținut"
#: bookwyrm/templates/snippets/status/content_status.html:80 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "Arătați stare" msgstr "Arătați stare"
@ -5217,10 +5750,6 @@ msgstr "Arătați mai multe"
msgid "Show less" msgid "Show less"
msgstr "Arătați mai puțin" msgstr "Arătați mai puțin"
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "Cărțile dvs."
#: bookwyrm/templates/user/books_header.html:9 #: bookwyrm/templates/user/books_header.html:9
#, python-format #, python-format
msgid "%(username)s's books" msgid "%(username)s's books"
@ -5259,22 +5788,10 @@ msgstr "Grupurile dvs."
msgid "Groups: %(username)s" msgid "Groups: %(username)s"
msgstr "Grupuri: %(username)s" msgstr "Grupuri: %(username)s"
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "Profilul utilizatorului"
#: bookwyrm/templates/user/layout.html:48 #: bookwyrm/templates/user/layout.html:48
msgid "Follow Requests" msgid "Follow Requests"
msgstr "Cereri de urmărire" msgstr "Cereri de urmărire"
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "Obiectiv de lectură"
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "Grupuri"
#: bookwyrm/templates/user/lists.html:11 #: bookwyrm/templates/user/lists.html:11
#, python-format #, python-format
msgid "Lists: %(username)s" msgid "Lists: %(username)s"
@ -5363,7 +5880,7 @@ msgstr "Niciun urmăritor pe care îl urmărești"
msgid "View profile and more" msgid "View profile and more"
msgstr "Vizualizați profil și multe altele" msgstr "Vizualizați profil și multe altele"
#: bookwyrm/templates/user_menu.html:72 #: bookwyrm/templates/user_menu.html:78
msgid "Log out" msgid "Log out"
msgstr "Deconectați-vă" msgstr "Deconectați-vă"

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-07-08 22:40+0000\n" "POT-Creation-Date: 2022-07-28 18:11+0000\n"
"PO-Revision-Date: 2022-07-08 23:40\n" "PO-Revision-Date: 2022-07-28 19:13\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"
@ -42,6 +42,14 @@ msgstr "{i} använder"
msgid "Unlimited" msgid "Unlimited"
msgstr "Obegränsad" msgstr "Obegränsad"
#: bookwyrm/forms/edit_user.py:89
msgid "Incorrect password"
msgstr ""
#: bookwyrm/forms/edit_user.py:96 bookwyrm/forms/landing.py:71
msgid "Password does not match"
msgstr ""
#: bookwyrm/forms/forms.py:54 #: bookwyrm/forms/forms.py:54
msgid "Reading finish date cannot be before start date." msgid "Reading finish date cannot be before start date."
msgstr "Slutdatum för läsning kan inte vara före startdatum." msgstr "Slutdatum för läsning kan inte vara före startdatum."
@ -50,11 +58,11 @@ msgstr "Slutdatum för läsning kan inte vara före startdatum."
msgid "Reading stopped date cannot be before start date." msgid "Reading stopped date cannot be before start date."
msgstr "" msgstr ""
#: bookwyrm/forms/landing.py:32 #: bookwyrm/forms/landing.py:38
msgid "User with this username already exists" msgid "User with this username already exists"
msgstr "En användare med det användarnamnet existerar redan" msgstr "En användare med det användarnamnet existerar redan"
#: bookwyrm/forms/landing.py:41 #: bookwyrm/forms/landing.py:47
msgid "A user with this email already exists." msgid "A user with this email already exists."
msgstr "En användare med den här e-postadressen existerar redan." msgstr "En användare med den här e-postadressen existerar redan."
@ -277,7 +285,9 @@ msgstr "Hem"
msgid "Books Timeline" msgid "Books Timeline"
msgstr "Tidslinjer för böcker" msgstr "Tidslinjer för böcker"
#: bookwyrm/settings.py:210 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:210
#: bookwyrm/templates/guided_tour/user_profile.html:101
#: bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
@ -288,58 +298,62 @@ msgid "English"
msgstr "Engelska" msgstr "Engelska"
#: bookwyrm/settings.py:283 #: bookwyrm/settings.py:283
msgid "Català (Catalan)"
msgstr ""
#: bookwyrm/settings.py:284
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Tyska (Tysk)" msgstr "Tyska (Tysk)"
#: bookwyrm/settings.py:284 #: bookwyrm/settings.py:285
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Spanska (Spansk)" msgstr "Spanska (Spansk)"
#: bookwyrm/settings.py:285 #: bookwyrm/settings.py:286
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego (Gallisk)" msgstr "Galego (Gallisk)"
#: bookwyrm/settings.py:286 #: bookwyrm/settings.py:287
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "Italienska (Italiensk)" msgstr "Italienska (Italiensk)"
#: bookwyrm/settings.py:287 #: bookwyrm/settings.py:288
msgid "Suomi (Finnish)" msgid "Suomi (Finnish)"
msgstr "Finland (Finska)" msgstr "Finland (Finska)"
#: bookwyrm/settings.py:288 #: bookwyrm/settings.py:289
msgid "Français (French)" msgid "Français (French)"
msgstr "Franska (Fransk)" msgstr "Franska (Fransk)"
#: bookwyrm/settings.py:289 #: bookwyrm/settings.py:290
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Litauiska (Litauisk)" msgstr "Litauiska (Litauisk)"
#: bookwyrm/settings.py:290 #: bookwyrm/settings.py:291
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "Norska (Norska)" msgstr "Norska (Norska)"
#: bookwyrm/settings.py:291 #: bookwyrm/settings.py:292
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português d Brasil (Brasiliansk Portugisiska)" msgstr "Português d Brasil (Brasiliansk Portugisiska)"
#: bookwyrm/settings.py:292 #: bookwyrm/settings.py:293
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português Europeu (Europeisk Portugisiska)" msgstr "Português Europeu (Europeisk Portugisiska)"
#: bookwyrm/settings.py:293 #: bookwyrm/settings.py:294
msgid "Română (Romanian)" msgid "Română (Romanian)"
msgstr "Rumänien (Rumänska)" msgstr "Rumänien (Rumänska)"
#: bookwyrm/settings.py:294 #: bookwyrm/settings.py:295
msgid "Svenska (Swedish)" msgid "Svenska (Swedish)"
msgstr "Svenska (Svenska)" msgstr "Svenska (Svenska)"
#: bookwyrm/settings.py:295 #: bookwyrm/settings.py:296
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文 (Förenklad Kinesiska)" msgstr "简体中文 (Förenklad Kinesiska)"
#: bookwyrm/settings.py:296 #: bookwyrm/settings.py:297
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文 (Traditionell Kinesiska)" msgstr "繁體中文 (Traditionell Kinesiska)"
@ -787,7 +801,7 @@ msgstr "Att ladda in data kommer att ansluta till <strong>%(source_name)s</stron
#: bookwyrm/templates/book/edit/edit_book.html:122 #: 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:52
#: bookwyrm/templates/snippets/remove_from_group_button.html:17 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "Bekräfta" msgstr "Bekräfta"
@ -850,6 +864,7 @@ msgid "Your reading activity"
msgstr "Din läsningsaktivitet" msgstr "Din läsningsaktivitet"
#: bookwyrm/templates/book/book.html:260 #: bookwyrm/templates/book/book.html:260
#: bookwyrm/templates/guided_tour/book.html:56
msgid "Add read dates" msgid "Add read dates"
msgstr "Lägg till läsdatum" msgstr "Lägg till läsdatum"
@ -878,9 +893,13 @@ msgid "Places"
msgstr "Platser" msgstr "Platser"
#: bookwyrm/templates/book/book.html:365 #: bookwyrm/templates/book/book.html:365
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:83 #: bookwyrm/templates/groups/group.html:19
#: bookwyrm/templates/lists/curate.html:8 bookwyrm/templates/lists/list.html:12 #: bookwyrm/templates/guided_tour/lists.html:14
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/guided_tour/user_books.html:102
#: bookwyrm/templates/guided_tour/user_profile.html:78
#: bookwyrm/templates/layout.html:83 bookwyrm/templates/lists/curate.html:8
#: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5
#: bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
#: bookwyrm/templates/user/layout.html:85 #: bookwyrm/templates/user/layout.html:85
@ -990,6 +1009,49 @@ msgstr "Det här är ett nytt verk"
#: bookwyrm/templates/book/edit/edit_book.html:124 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
#: bookwyrm/templates/guided_tour/book.html:44
#: bookwyrm/templates/guided_tour/book.html:68
#: bookwyrm/templates/guided_tour/book.html:91
#: bookwyrm/templates/guided_tour/book.html:116
#: bookwyrm/templates/guided_tour/book.html:140
#: bookwyrm/templates/guided_tour/book.html:164
#: bookwyrm/templates/guided_tour/book.html:188
#: bookwyrm/templates/guided_tour/book.html:213
#: bookwyrm/templates/guided_tour/book.html:237
#: bookwyrm/templates/guided_tour/book.html:262
#: bookwyrm/templates/guided_tour/book.html:290
#: bookwyrm/templates/guided_tour/group.html:43
#: bookwyrm/templates/guided_tour/group.html:66
#: bookwyrm/templates/guided_tour/group.html:89
#: bookwyrm/templates/guided_tour/group.html:108
#: bookwyrm/templates/guided_tour/home.html:91
#: bookwyrm/templates/guided_tour/home.html:115
#: bookwyrm/templates/guided_tour/home.html:140
#: bookwyrm/templates/guided_tour/home.html:165
#: bookwyrm/templates/guided_tour/home.html:189
#: bookwyrm/templates/guided_tour/home.html:212
#: bookwyrm/templates/guided_tour/lists.html:47
#: bookwyrm/templates/guided_tour/lists.html:70
#: bookwyrm/templates/guided_tour/lists.html:94
#: bookwyrm/templates/guided_tour/lists.html:117
#: bookwyrm/templates/guided_tour/lists.html:136
#: bookwyrm/templates/guided_tour/search.html:83
#: bookwyrm/templates/guided_tour/search.html:110
#: bookwyrm/templates/guided_tour/search.html:134
#: bookwyrm/templates/guided_tour/search.html:155
#: bookwyrm/templates/guided_tour/user_books.html:44
#: bookwyrm/templates/guided_tour/user_books.html:67
#: bookwyrm/templates/guided_tour/user_books.html:90
#: bookwyrm/templates/guided_tour/user_books.html:118
#: bookwyrm/templates/guided_tour/user_groups.html:44
#: bookwyrm/templates/guided_tour/user_groups.html:67
#: bookwyrm/templates/guided_tour/user_groups.html:91
#: bookwyrm/templates/guided_tour/user_groups.html:110
#: bookwyrm/templates/guided_tour/user_profile.html:43
#: bookwyrm/templates/guided_tour/user_profile.html:66
#: bookwyrm/templates/guided_tour/user_profile.html:89
#: bookwyrm/templates/guided_tour/user_profile.html:112
#: bookwyrm/templates/guided_tour/user_profile.html:135
msgid "Back" msgid "Back"
msgstr "Bakåt" msgstr "Bakåt"
@ -1351,11 +1413,7 @@ msgstr "Skicka bekräftelselänken igen"
msgid "Email address:" msgid "Email address:"
msgstr "E-postadress:" msgstr "E-postadress:"
#: bookwyrm/templates/confirm_email/resend_modal.html:28 #: bookwyrm/templates/confirm_email/resend_modal.html:30
msgid "No user matching this email address found."
msgstr "Ingen användare hittades med den här e-postadressen."
#: bookwyrm/templates/confirm_email/resend_modal.html:38
msgid "Resend link" msgid "Resend link"
msgstr "Skicka länken igen" msgstr "Skicka länken igen"
@ -1650,16 +1708,16 @@ msgstr "Alla meddelanden"
msgid "You have no messages right now." msgid "You have no messages right now."
msgstr "Du har inga meddelanden just nu." msgstr "Du har inga meddelanden just nu."
#: bookwyrm/templates/feed/feed.html:54 #: bookwyrm/templates/feed/feed.html:55
msgid "There aren't any activities right now! Try following a user to get started" msgid "There aren't any activities right now! Try following a user to get started"
msgstr "Det finns inga aktiviteter just nu! Försök att följa en användare för att komma igång" msgstr "Det finns inga aktiviteter just nu! Försök att följa en användare för att komma igång"
#: bookwyrm/templates/feed/feed.html:55 #: bookwyrm/templates/feed/feed.html:56
msgid "Alternatively, you can try enabling more status types" msgid "Alternatively, you can try enabling more status types"
msgstr "Alternativt så kan du prova att aktivera fler status-typer" msgstr "Alternativt så kan du prova att aktivera fler status-typer"
#: bookwyrm/templates/feed/goal_card.html:6 #: bookwyrm/templates/feed/goal_card.html:6
#: bookwyrm/templates/feed/layout.html:15 #: bookwyrm/templates/feed/layout.html:14
#: bookwyrm/templates/user/goal_form.html:6 #: bookwyrm/templates/user/goal_form.html:6
#, python-format #, python-format
msgid "%(year)s Reading Goal" msgid "%(year)s Reading Goal"
@ -1670,11 +1728,12 @@ msgstr "%(year)s läsmål"
msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>" msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>"
msgstr "Du kan ställa in eller ändra ditt läsmål när som helst från din <a href=\"%(path)s\">profilsida</a>" msgstr "Du kan ställa in eller ändra ditt läsmål när som helst från din <a href=\"%(path)s\">profilsida</a>"
#: bookwyrm/templates/feed/layout.html:5 #: bookwyrm/templates/feed/layout.html:4
msgid "Updates" msgid "Updates"
msgstr "Uppdateringar" msgstr "Uppdateringar"
#: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/feed/suggested_books.html:6
#: bookwyrm/templates/guided_tour/home.html:127
#: bookwyrm/templates/user_menu.html:35 #: bookwyrm/templates/user_menu.html:35
msgid "Your Books" msgid "Your Books"
msgstr "Dina böcker" msgstr "Dina böcker"
@ -1825,6 +1884,7 @@ msgid "Skip this step"
msgstr "Hoppa över det här steget" msgstr "Hoppa över det här steget"
#: bookwyrm/templates/get_started/layout.html:54 #: bookwyrm/templates/get_started/layout.html:54
#: bookwyrm/templates/guided_tour/group.html:101
msgid "Finish" msgid "Finish"
msgstr "Avsluta" msgstr "Avsluta"
@ -1870,6 +1930,7 @@ msgid "No users found for \"%(query)s\""
msgstr "Ingen användare \"%(query)s\" hittades" msgstr "Ingen användare \"%(query)s\" hittades"
#: bookwyrm/templates/groups/create_form.html:5 #: bookwyrm/templates/groups/create_form.html:5
#: bookwyrm/templates/guided_tour/user_groups.html:32
#: bookwyrm/templates/user/groups.html:17 #: bookwyrm/templates/user/groups.html:17
msgid "Create group" msgid "Create group"
msgstr "Skapa grupp" msgstr "Skapa grupp"
@ -1980,6 +2041,480 @@ msgstr "Inga potentiella medlemmar hittades för \"%(user_query)s\""
msgid "Manager" msgid "Manager"
msgstr "Chef" msgstr "Chef"
#: bookwyrm/templates/guided_tour/book.html:10
msgid "This is home page of a book. Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:11
msgid "Book page"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:19
#: bookwyrm/templates/guided_tour/group.html:19
#: bookwyrm/templates/guided_tour/lists.html:22
#: bookwyrm/templates/guided_tour/search.html:29
#: bookwyrm/templates/guided_tour/search.html:56
#: bookwyrm/templates/guided_tour/user_books.html:19
#: bookwyrm/templates/guided_tour/user_groups.html:19
#: bookwyrm/templates/guided_tour/user_profile.html:19
msgid "End Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:26
#: bookwyrm/templates/guided_tour/book.html:50
#: bookwyrm/templates/guided_tour/book.html:74
#: bookwyrm/templates/guided_tour/book.html:97
#: bookwyrm/templates/guided_tour/book.html:122
#: bookwyrm/templates/guided_tour/book.html:146
#: bookwyrm/templates/guided_tour/book.html:170
#: bookwyrm/templates/guided_tour/book.html:194
#: bookwyrm/templates/guided_tour/book.html:219
#: bookwyrm/templates/guided_tour/book.html:243
#: bookwyrm/templates/guided_tour/book.html:268
#: bookwyrm/templates/guided_tour/book.html:274
#: bookwyrm/templates/guided_tour/group.html:26
#: bookwyrm/templates/guided_tour/group.html:49
#: bookwyrm/templates/guided_tour/group.html:72
#: bookwyrm/templates/guided_tour/group.html:95
#: bookwyrm/templates/guided_tour/home.html:74
#: bookwyrm/templates/guided_tour/home.html:97
#: bookwyrm/templates/guided_tour/home.html:121
#: bookwyrm/templates/guided_tour/home.html:146
#: bookwyrm/templates/guided_tour/home.html:171
#: bookwyrm/templates/guided_tour/home.html:195
#: bookwyrm/templates/guided_tour/lists.html:29
#: bookwyrm/templates/guided_tour/lists.html:53
#: bookwyrm/templates/guided_tour/lists.html:76
#: bookwyrm/templates/guided_tour/lists.html:100
#: bookwyrm/templates/guided_tour/lists.html:123
#: bookwyrm/templates/guided_tour/search.html:36
#: bookwyrm/templates/guided_tour/search.html:63
#: bookwyrm/templates/guided_tour/search.html:89
#: bookwyrm/templates/guided_tour/search.html:116
#: bookwyrm/templates/guided_tour/search.html:140
#: bookwyrm/templates/guided_tour/user_books.html:26
#: bookwyrm/templates/guided_tour/user_books.html:50
#: bookwyrm/templates/guided_tour/user_books.html:73
#: bookwyrm/templates/guided_tour/user_books.html:96
#: bookwyrm/templates/guided_tour/user_groups.html:26
#: bookwyrm/templates/guided_tour/user_groups.html:50
#: bookwyrm/templates/guided_tour/user_groups.html:73
#: bookwyrm/templates/guided_tour/user_groups.html:97
#: bookwyrm/templates/guided_tour/user_profile.html:26
#: bookwyrm/templates/guided_tour/user_profile.html:49
#: bookwyrm/templates/guided_tour/user_profile.html:72
#: bookwyrm/templates/guided_tour/user_profile.html:95
#: bookwyrm/templates/guided_tour/user_profile.html:118
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "Nästa"
#: bookwyrm/templates/guided_tour/book.html:31
msgid "This is where you can set a reading status for this book. You can press the button to move to the next stage, or use the drop down button to select the reading status you want to set."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:32
msgid "Reading status"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:55
msgid "You can also manually add reading dates here. Unlike changing the reading status using the previous method, adding dates manually will not automatically add them to your <strong>Read</strong> or <strong>Reading</strong> shelves.<br><br>Got a favourite you re-read every year? We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:79
msgid "There can be multiple editions of a book, in various formats or languages. You can choose which edition you want to use."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:80
msgid "Other editions"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:102
msgid "You can post a review, comment, or quote here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:103
msgid "Share your thoughts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:127
msgid "If you have read this book you can post a review including an optional star rating"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:128
msgid "Post a review"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:151
msgid "You can share your thoughts on this book generally with a simple comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:152
msgid "Post a comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:175
msgid "Just read some perfect prose? Let the world know by sharing a quote!"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:176
msgid "Share a quote"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:199
msgid "If your review or comment might ruin the book for someone who hasn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:200
msgid "Spoiler alerts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:224
msgid "Choose who can see your post here. Post privacy can be <strong>Public</strong> (everyone can see), <strong>Unlisted</strong> (everyone can see, but it doesn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:225
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "Sekretess för inlägg"
#: bookwyrm/templates/guided_tour/book.html:248
msgid "Some ebooks can be downloaded for free from external sources. They will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:249
msgid "Download links"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:273
#: bookwyrm/templates/guided_tour/search.html:147
msgid "<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:296
#: bookwyrm/templates/guided_tour/home.html:50
#: bookwyrm/templates/guided_tour/home.html:218
#: bookwyrm/templates/guided_tour/search.html:161
#: bookwyrm/templates/guided_tour/user_books.html:124
#: bookwyrm/templates/guided_tour/user_groups.html:116
#: bookwyrm/templates/guided_tour/user_profile.html:141
msgid "Ok"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:10
msgid "Welcome to the page for your group! This is where you can add and remove users, create user-curated lists, and edit the group details."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:11
msgid "Your group"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:31
msgid "Use this search box to find users to join your group. Currently users must be members of the same Bookwyrm instance and be invited by the group owner."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:32
msgid "Find users"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:54
msgid "Your group members will appear here. The group owner is marked with a star symbol."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:55
msgid "Group members"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:77
msgid "As well as creating lists from the Lists page, you can create a group-curated list here on the group\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:78
msgid "Group lists"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:100
msgid "Congratulations, you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:115
msgid "End tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:16
msgid "Welcome to Bookwyrm!<br><br>Would you like to take the guided tour to help you get started?"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:17
#: bookwyrm/templates/guided_tour/home.html:39
#: bookwyrm/templates/layout.html:194
msgid "Guided Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:25
msgid "No thanks"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:33
msgid "Yes please!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:38
msgid "If you ever change your mind, just click on the Guided Tour link to start your tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:62
msgid "Search for books, users, or lists using this search box."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:63
msgid "Search box"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:79
msgid "Search book records by scanning an ISBN barcode using your device\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:80
msgid "Barcode reader"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:102
msgid "Use the <strong>Feed</strong>, <strong>Lists</strong> and <strong>Discover</strong> links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:103
msgid "Navigation Bar"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:126
msgid "Books on your reading status shelves will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:151
msgid "Updates from people you are following will appear in your <strong>Home</strong> timeline.<br><br>The <strong>Books</strong> tab shows activity from anyone, related to your books."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:152
msgid "Timelines"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:176
msgid "The bell will light up when you have a new notification. When it does, click on it to find out what exciting thing has happened!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:177
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Aviseringar"
#: bookwyrm/templates/guided_tour/home.html:200
msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:201
msgid "Profile and settings menu"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:13
msgid "This is the lists page where you can discover book lists created by any user. A List is a collection of books, similar to a shelf.<br><br>Shelves are for organising books for yourself, whereas Lists are generally for sharing with others."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:34
#: bookwyrm/templates/guided_tour/user_groups.html:31
msgid "Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:35
#: bookwyrm/templates/guided_tour/lists.html:59
msgid "Creating a new list"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:58
msgid "You must give your list a name and can optionally give it a description to help other people understand what your list is about."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:81
msgid "Choose who can see your list here. List privacy options work just like we saw when posting book reviews. This is a common pattern throughout Bookwyrm."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:82
msgid "List privacy"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:105
msgid "You can also decide how your list is to be curated - only by you, by anyone, or by a group."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:106
msgid "List curation"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:128
msgid "Next in our tour we will explore Groups!"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:129
msgid "Next: Groups"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:143
msgid "Take me there"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:16
msgid "If the book you are looking for is available on a remote catalogue such as Open Library, click on <strong>Import book</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:17
#: bookwyrm/templates/guided_tour/search.html:44
msgid "Searching"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:43
msgid "If the book you are looking for is already on this Bookwyrm instance, you can click on the title to go to the book\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:71
msgid "If the book you are looking for is not listed, try loading more records from other sources like Open Library or Inventaire."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:72
msgid "Load more records"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:98
msgid "If your book is not in the results, try adjusting your search terms."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:99
msgid "Search again"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:121
msgid "If you still can\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:122
msgid "Add a record manally"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:148
msgid "Continue the tour"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:10
msgid "This is the page where your books are listed, organised into shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:11
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "Dina böcker"
#: bookwyrm/templates/guided_tour/user_books.html:31
msgid "<strong>To Read</strong>, <strong>Currently Reading</strong>, <strong>Read</strong>, and <strong>Stopped Reading</strong> are default shelves. When you change the reading status of a book it will automatically be moved to the matching shelf. A book can only be on one default shelf at a time."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:32
msgid "Reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:55
msgid "You can create additional custom shelves to organise your books. A book on a custom shelf can be on any number of other shelves simultaneously, including one of the default reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:56
msgid "Adding custom shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:78
msgid "If you have an export file from another service like Goodreads or LibraryThing, you can import it here."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:79
msgid "Import from another service"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:101
msgid "Now that we\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:10
msgid "You can create or join a group with other users. Groups can share group-curated book lists, and in future will be able to do other things."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:11
#: bookwyrm/templates/guided_tour/user_profile.html:55
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "Grupper"
#: bookwyrm/templates/guided_tour/user_groups.html:55
msgid "Give your group a name and describe what it is about. You can make user groups for any purpose - a reading group, a bunch of friends, whatever!"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:56
msgid "Creating a group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:78
msgid "Groups have privacy settings just like posts and lists, except that group privacy cannot be <strong>Followers</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:79
msgid "Group visibility"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:102
msgid "Once you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:103
msgid "Save your group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:10
msgid "This is your user profile. All your latest activities will be listed here. Other Bookwyrm users can see parts of this page too - what they can see depends on your privacy settings."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:11
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "Användarprofil"
#: bookwyrm/templates/guided_tour/user_profile.html:31
msgid "This tab shows everything you have read towards your annual reading goal, or allows you to set one. You don\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:32
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "Läs-mål"
#: bookwyrm/templates/guided_tour/user_profile.html:54
msgid "Here you can see your groups, or create a new one. A group brings together Bookwyrm users and allows them to curate lists together."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:77
msgid "You can see your lists, or create a new one, here. A list is a collection of books that have something in common."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:100
msgid "The Books tab shows your book shelves. We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:123
msgid "Now you understand the basics of your profile page, let\\s add a book to your shelves.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:124
msgid "Find a book"
msgstr ""
#: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:5
#: bookwyrm/templates/import/import.html:9 #: bookwyrm/templates/import/import.html:9
#: bookwyrm/templates/shelf/shelf.html:64 #: bookwyrm/templates/shelf/shelf.html:64
@ -2272,8 +2807,8 @@ msgstr "Glömt ditt lösenord?"
msgid "More about this site" msgid "More about this site"
msgstr "Mer om den här sidan" msgstr "Mer om den här sidan"
#: bookwyrm/templates/landing/password_reset.html:34 #: bookwyrm/templates/landing/password_reset.html:43
#: bookwyrm/templates/preferences/change_password.html:18 #: bookwyrm/templates/preferences/change_password.html:33
#: bookwyrm/templates/preferences/delete_user.html:20 #: bookwyrm/templates/preferences/delete_user.html:20
msgid "Confirm password:" msgid "Confirm password:"
msgstr "Bekräfta lösenordet:" msgstr "Bekräfta lösenordet:"
@ -2312,12 +2847,6 @@ msgstr "Huvudsaklig navigeringsmeny"
msgid "Feed" msgid "Feed"
msgstr "Flöde" msgstr "Flöde"
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "Aviseringar"
#: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33 #: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33
msgid "password" msgid "password"
msgstr "lösenord" msgstr "lösenord"
@ -2338,12 +2867,12 @@ msgstr "Fel uppstod när statusen skulle publiceras"
msgid "Documentation" msgid "Documentation"
msgstr "Dokumentation" msgstr "Dokumentation"
#: bookwyrm/templates/layout.html:197 #: bookwyrm/templates/layout.html:203
#, python-format #, python-format
msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
msgstr "Stötta %(site_name)s på <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgstr "Stötta %(site_name)s på <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
#: bookwyrm/templates/layout.html:201 #: bookwyrm/templates/layout.html:207
msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
msgstr "BookWyrm's källkod är fritt tillgängligt. Du kan bidra eller rapportera problem på <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgstr "BookWyrm's källkod är fritt tillgängligt. Du kan bidra eller rapportera problem på <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
@ -2871,6 +3400,11 @@ msgid_plural "%(display_count)s new <a href=\"%(path)s\">reports</a> need modera
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: bookwyrm/templates/notifications/items/status_preview.html:4
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "Innehållsvarning"
#: bookwyrm/templates/notifications/items/update.html:16 #: bookwyrm/templates/notifications/items/update.html:16
#, python-format #, python-format
msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>" msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>"
@ -3028,12 +3562,20 @@ msgstr "Inga användare är för närvarande blockerade."
#: bookwyrm/templates/preferences/change_password.html:4 #: bookwyrm/templates/preferences/change_password.html:4
#: bookwyrm/templates/preferences/change_password.html:7 #: bookwyrm/templates/preferences/change_password.html:7
#: bookwyrm/templates/preferences/change_password.html:21 #: bookwyrm/templates/preferences/change_password.html:37
#: bookwyrm/templates/preferences/layout.html:20 #: bookwyrm/templates/preferences/layout.html:20
msgid "Change Password" msgid "Change Password"
msgstr "Ändra lösenord" msgstr "Ändra lösenord"
#: bookwyrm/templates/preferences/change_password.html:14 #: bookwyrm/templates/preferences/change_password.html:15
msgid "Successfully changed password"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:22
msgid "Current password:"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:28
msgid "New password:" msgid "New password:"
msgstr "Nytt lösenord:" msgstr "Nytt lösenord:"
@ -3125,6 +3667,10 @@ msgstr "CSV-export"
msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity." msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity."
msgstr "Din export inkluderar alla böcker som du har på din hylla, har recenserat och böcker med läsaktivitet." msgstr "Din export inkluderar alla böcker som du har på din hylla, har recenserat och böcker med läsaktivitet."
#: bookwyrm/templates/preferences/export.html:20
msgid "Download file"
msgstr ""
#: bookwyrm/templates/preferences/layout.html:11 #: bookwyrm/templates/preferences/layout.html:11
msgid "Account" msgid "Account"
msgstr "Konto" msgstr "Konto"
@ -4905,19 +5451,10 @@ msgstr "sida %(page)s"
msgid "Previous" msgid "Previous"
msgstr "Föregående" msgstr "Föregående"
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "Nästa"
#: bookwyrm/templates/snippets/privacy-icons.html:12 #: bookwyrm/templates/snippets/privacy-icons.html:12
msgid "Followers-only" msgid "Followers-only"
msgstr "Endast följare" msgstr "Endast följare"
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "Sekretess för inlägg"
#: bookwyrm/templates/snippets/rate_action.html:5 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "Lämna ett betyg" msgstr "Lämna ett betyg"
@ -5036,10 +5573,6 @@ msgstr ""
msgid "Finish reading" msgid "Finish reading"
msgstr "Sluta läs" msgstr "Sluta läs"
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "Innehållsvarning"
#: bookwyrm/templates/snippets/status/content_status.html:80 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "Visa status" msgstr "Visa status"
@ -5191,10 +5724,6 @@ msgstr "Visa mer"
msgid "Show less" msgid "Show less"
msgstr "Visa mindre" msgstr "Visa mindre"
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "Dina böcker"
#: bookwyrm/templates/user/books_header.html:9 #: bookwyrm/templates/user/books_header.html:9
#, python-format #, python-format
msgid "%(username)s's books" msgid "%(username)s's books"
@ -5233,22 +5762,10 @@ msgstr "Dina grupper"
msgid "Groups: %(username)s" msgid "Groups: %(username)s"
msgstr "Grupper: %(username)s" msgstr "Grupper: %(username)s"
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "Användarprofil"
#: bookwyrm/templates/user/layout.html:48 #: bookwyrm/templates/user/layout.html:48
msgid "Follow Requests" msgid "Follow Requests"
msgstr "Följdförfrågningar" msgstr "Följdförfrågningar"
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "Läs-mål"
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "Grupper"
#: bookwyrm/templates/user/lists.html:11 #: bookwyrm/templates/user/lists.html:11
#, python-format #, python-format
msgid "Lists: %(username)s" msgid "Lists: %(username)s"
@ -5335,7 +5852,7 @@ msgstr "Inga följare som du följer"
msgid "View profile and more" msgid "View profile and more"
msgstr "" msgstr ""
#: bookwyrm/templates/user_menu.html:72 #: bookwyrm/templates/user_menu.html:78
msgid "Log out" msgid "Log out"
msgstr "Logga ut" msgstr "Logga ut"

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-07-08 22:40+0000\n" "POT-Creation-Date: 2022-07-28 18:11+0000\n"
"PO-Revision-Date: 2022-07-08 23:40\n" "PO-Revision-Date: 2022-07-28 19:13\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"
@ -42,6 +42,14 @@ msgstr "{i} 次使用"
msgid "Unlimited" msgid "Unlimited"
msgstr "不受限" msgstr "不受限"
#: bookwyrm/forms/edit_user.py:89
msgid "Incorrect password"
msgstr ""
#: bookwyrm/forms/edit_user.py:96 bookwyrm/forms/landing.py:71
msgid "Password does not match"
msgstr ""
#: bookwyrm/forms/forms.py:54 #: bookwyrm/forms/forms.py:54
msgid "Reading finish date cannot be before start date." msgid "Reading finish date cannot be before start date."
msgstr "读完日期不得早于开始日期。" msgstr "读完日期不得早于开始日期。"
@ -50,11 +58,11 @@ msgstr "读完日期不得早于开始日期。"
msgid "Reading stopped date cannot be before start date." msgid "Reading stopped date cannot be before start date."
msgstr "" msgstr ""
#: bookwyrm/forms/landing.py:32 #: bookwyrm/forms/landing.py:38
msgid "User with this username already exists" msgid "User with this username already exists"
msgstr "使用此用户名的用户已存在" msgstr "使用此用户名的用户已存在"
#: bookwyrm/forms/landing.py:41 #: bookwyrm/forms/landing.py:47
msgid "A user with this email already exists." msgid "A user with this email already exists."
msgstr "已经存在使用该邮箱的用户。" msgstr "已经存在使用该邮箱的用户。"
@ -277,7 +285,9 @@ msgstr "主页"
msgid "Books Timeline" msgid "Books Timeline"
msgstr "书目时间线" msgstr "书目时间线"
#: bookwyrm/settings.py:210 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:210
#: bookwyrm/templates/guided_tour/user_profile.html:101
#: bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
@ -288,58 +298,62 @@ msgid "English"
msgstr "English英语" msgstr "English英语"
#: bookwyrm/settings.py:283 #: bookwyrm/settings.py:283
msgid "Català (Catalan)"
msgstr ""
#: bookwyrm/settings.py:284
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch德语" msgstr "Deutsch德语"
#: bookwyrm/settings.py:284 #: bookwyrm/settings.py:285
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español西班牙语" msgstr "Español西班牙语"
#: bookwyrm/settings.py:285 #: bookwyrm/settings.py:286
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "Galego加利西亚语" msgstr "Galego加利西亚语"
#: bookwyrm/settings.py:286 #: bookwyrm/settings.py:287
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "Italiano意大利语" msgstr "Italiano意大利语"
#: bookwyrm/settings.py:287 #: bookwyrm/settings.py:288
msgid "Suomi (Finnish)" msgid "Suomi (Finnish)"
msgstr "Suomi Finnish/芬兰语)" msgstr "Suomi Finnish/芬兰语)"
#: bookwyrm/settings.py:288 #: bookwyrm/settings.py:289
msgid "Français (French)" msgid "Français (French)"
msgstr "Français法语" msgstr "Français法语"
#: bookwyrm/settings.py:289 #: bookwyrm/settings.py:290
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "Lietuvių立陶宛语" msgstr "Lietuvių立陶宛语"
#: bookwyrm/settings.py:290 #: bookwyrm/settings.py:291
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "Norsk挪威语" msgstr "Norsk挪威语"
#: bookwyrm/settings.py:291 #: bookwyrm/settings.py:292
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "Português do Brasil巴西葡萄牙语" msgstr "Português do Brasil巴西葡萄牙语"
#: bookwyrm/settings.py:292 #: bookwyrm/settings.py:293
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "Português Europeu欧洲葡萄牙语" msgstr "Português Europeu欧洲葡萄牙语"
#: bookwyrm/settings.py:293 #: bookwyrm/settings.py:294
msgid "Română (Romanian)" msgid "Română (Romanian)"
msgstr "Română (罗马尼亚语)" msgstr "Română (罗马尼亚语)"
#: bookwyrm/settings.py:294 #: bookwyrm/settings.py:295
msgid "Svenska (Swedish)" msgid "Svenska (Swedish)"
msgstr "Svenska瑞典语" msgstr "Svenska瑞典语"
#: bookwyrm/settings.py:295 #: bookwyrm/settings.py:296
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "简体中文" msgstr "简体中文"
#: bookwyrm/settings.py:296 #: bookwyrm/settings.py:297
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文(繁体中文)" msgstr "繁體中文(繁体中文)"
@ -783,7 +797,7 @@ msgstr "加载数据会连接到 <strong>%(source_name)s</strong> 并检查这
#: bookwyrm/templates/book/edit/edit_book.html:122 #: 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:52
#: bookwyrm/templates/snippets/remove_from_group_button.html:17 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "确认" msgstr "确认"
@ -844,6 +858,7 @@ msgid "Your reading activity"
msgstr "你的阅读活动" msgstr "你的阅读活动"
#: bookwyrm/templates/book/book.html:260 #: bookwyrm/templates/book/book.html:260
#: bookwyrm/templates/guided_tour/book.html:56
msgid "Add read dates" msgid "Add read dates"
msgstr "添加阅读日期" msgstr "添加阅读日期"
@ -872,9 +887,13 @@ msgid "Places"
msgstr "地点" msgstr "地点"
#: bookwyrm/templates/book/book.html:365 #: bookwyrm/templates/book/book.html:365
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:83 #: bookwyrm/templates/groups/group.html:19
#: bookwyrm/templates/lists/curate.html:8 bookwyrm/templates/lists/list.html:12 #: bookwyrm/templates/guided_tour/lists.html:14
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/guided_tour/user_books.html:102
#: bookwyrm/templates/guided_tour/user_profile.html:78
#: bookwyrm/templates/layout.html:83 bookwyrm/templates/lists/curate.html:8
#: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5
#: bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
#: bookwyrm/templates/user/layout.html:85 #: bookwyrm/templates/user/layout.html:85
@ -984,6 +1003,49 @@ msgstr "这是一个新的作品。"
#: bookwyrm/templates/book/edit/edit_book.html:124 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
#: bookwyrm/templates/guided_tour/book.html:44
#: bookwyrm/templates/guided_tour/book.html:68
#: bookwyrm/templates/guided_tour/book.html:91
#: bookwyrm/templates/guided_tour/book.html:116
#: bookwyrm/templates/guided_tour/book.html:140
#: bookwyrm/templates/guided_tour/book.html:164
#: bookwyrm/templates/guided_tour/book.html:188
#: bookwyrm/templates/guided_tour/book.html:213
#: bookwyrm/templates/guided_tour/book.html:237
#: bookwyrm/templates/guided_tour/book.html:262
#: bookwyrm/templates/guided_tour/book.html:290
#: bookwyrm/templates/guided_tour/group.html:43
#: bookwyrm/templates/guided_tour/group.html:66
#: bookwyrm/templates/guided_tour/group.html:89
#: bookwyrm/templates/guided_tour/group.html:108
#: bookwyrm/templates/guided_tour/home.html:91
#: bookwyrm/templates/guided_tour/home.html:115
#: bookwyrm/templates/guided_tour/home.html:140
#: bookwyrm/templates/guided_tour/home.html:165
#: bookwyrm/templates/guided_tour/home.html:189
#: bookwyrm/templates/guided_tour/home.html:212
#: bookwyrm/templates/guided_tour/lists.html:47
#: bookwyrm/templates/guided_tour/lists.html:70
#: bookwyrm/templates/guided_tour/lists.html:94
#: bookwyrm/templates/guided_tour/lists.html:117
#: bookwyrm/templates/guided_tour/lists.html:136
#: bookwyrm/templates/guided_tour/search.html:83
#: bookwyrm/templates/guided_tour/search.html:110
#: bookwyrm/templates/guided_tour/search.html:134
#: bookwyrm/templates/guided_tour/search.html:155
#: bookwyrm/templates/guided_tour/user_books.html:44
#: bookwyrm/templates/guided_tour/user_books.html:67
#: bookwyrm/templates/guided_tour/user_books.html:90
#: bookwyrm/templates/guided_tour/user_books.html:118
#: bookwyrm/templates/guided_tour/user_groups.html:44
#: bookwyrm/templates/guided_tour/user_groups.html:67
#: bookwyrm/templates/guided_tour/user_groups.html:91
#: bookwyrm/templates/guided_tour/user_groups.html:110
#: bookwyrm/templates/guided_tour/user_profile.html:43
#: bookwyrm/templates/guided_tour/user_profile.html:66
#: bookwyrm/templates/guided_tour/user_profile.html:89
#: bookwyrm/templates/guided_tour/user_profile.html:112
#: bookwyrm/templates/guided_tour/user_profile.html:135
msgid "Back" msgid "Back"
msgstr "返回" msgstr "返回"
@ -1345,11 +1407,7 @@ msgstr "重新发送确认链接"
msgid "Email address:" msgid "Email address:"
msgstr "邮箱地址:" msgstr "邮箱地址:"
#: bookwyrm/templates/confirm_email/resend_modal.html:28 #: bookwyrm/templates/confirm_email/resend_modal.html:30
msgid "No user matching this email address found."
msgstr "没有找到与此电子邮件地址相匹配的用户。"
#: bookwyrm/templates/confirm_email/resend_modal.html:38
msgid "Resend link" msgid "Resend link"
msgstr "重新发送链接" msgstr "重新发送链接"
@ -1642,16 +1700,16 @@ msgstr "所有消息"
msgid "You have no messages right now." msgid "You have no messages right now."
msgstr "你现在没有消息。" msgstr "你现在没有消息。"
#: bookwyrm/templates/feed/feed.html:54 #: bookwyrm/templates/feed/feed.html:55
msgid "There aren't any activities right now! Try following a user to get started" msgid "There aren't any activities right now! Try following a user to get started"
msgstr "现在还没有任何活动!尝试从关注一个用户开始吧" msgstr "现在还没有任何活动!尝试从关注一个用户开始吧"
#: bookwyrm/templates/feed/feed.html:55 #: bookwyrm/templates/feed/feed.html:56
msgid "Alternatively, you can try enabling more status types" msgid "Alternatively, you can try enabling more status types"
msgstr "或者,您可以尝试启用更多的状态种类" msgstr "或者,您可以尝试启用更多的状态种类"
#: bookwyrm/templates/feed/goal_card.html:6 #: bookwyrm/templates/feed/goal_card.html:6
#: bookwyrm/templates/feed/layout.html:15 #: bookwyrm/templates/feed/layout.html:14
#: bookwyrm/templates/user/goal_form.html:6 #: bookwyrm/templates/user/goal_form.html:6
#, python-format #, python-format
msgid "%(year)s Reading Goal" msgid "%(year)s Reading Goal"
@ -1662,11 +1720,12 @@ msgstr "%(year)s 阅读目标"
msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>" msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>"
msgstr "你可以在任何时候从你的<a href=\"%(path)s\">个人资料页面</a> 中设置或改变你的阅读目标" msgstr "你可以在任何时候从你的<a href=\"%(path)s\">个人资料页面</a> 中设置或改变你的阅读目标"
#: bookwyrm/templates/feed/layout.html:5 #: bookwyrm/templates/feed/layout.html:4
msgid "Updates" msgid "Updates"
msgstr "更新" msgstr "更新"
#: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/feed/suggested_books.html:6
#: bookwyrm/templates/guided_tour/home.html:127
#: bookwyrm/templates/user_menu.html:35 #: bookwyrm/templates/user_menu.html:35
msgid "Your Books" msgid "Your Books"
msgstr "你的书目" msgstr "你的书目"
@ -1817,6 +1876,7 @@ msgid "Skip this step"
msgstr "跳过此步骤" msgstr "跳过此步骤"
#: bookwyrm/templates/get_started/layout.html:54 #: bookwyrm/templates/get_started/layout.html:54
#: bookwyrm/templates/guided_tour/group.html:101
msgid "Finish" msgid "Finish"
msgstr "完成" msgstr "完成"
@ -1862,6 +1922,7 @@ msgid "No users found for \"%(query)s\""
msgstr "没有找到 \"%(query)s\" 的用户" msgstr "没有找到 \"%(query)s\" 的用户"
#: bookwyrm/templates/groups/create_form.html:5 #: bookwyrm/templates/groups/create_form.html:5
#: bookwyrm/templates/guided_tour/user_groups.html:32
#: bookwyrm/templates/user/groups.html:17 #: bookwyrm/templates/user/groups.html:17
msgid "Create group" msgid "Create group"
msgstr "创建群组" msgstr "创建群组"
@ -1970,6 +2031,480 @@ msgstr "未找到可能的成员 \"%(user_query)s\""
msgid "Manager" msgid "Manager"
msgstr "管理员" msgstr "管理员"
#: bookwyrm/templates/guided_tour/book.html:10
msgid "This is home page of a book. Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:11
msgid "Book page"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:19
#: bookwyrm/templates/guided_tour/group.html:19
#: bookwyrm/templates/guided_tour/lists.html:22
#: bookwyrm/templates/guided_tour/search.html:29
#: bookwyrm/templates/guided_tour/search.html:56
#: bookwyrm/templates/guided_tour/user_books.html:19
#: bookwyrm/templates/guided_tour/user_groups.html:19
#: bookwyrm/templates/guided_tour/user_profile.html:19
msgid "End Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:26
#: bookwyrm/templates/guided_tour/book.html:50
#: bookwyrm/templates/guided_tour/book.html:74
#: bookwyrm/templates/guided_tour/book.html:97
#: bookwyrm/templates/guided_tour/book.html:122
#: bookwyrm/templates/guided_tour/book.html:146
#: bookwyrm/templates/guided_tour/book.html:170
#: bookwyrm/templates/guided_tour/book.html:194
#: bookwyrm/templates/guided_tour/book.html:219
#: bookwyrm/templates/guided_tour/book.html:243
#: bookwyrm/templates/guided_tour/book.html:268
#: bookwyrm/templates/guided_tour/book.html:274
#: bookwyrm/templates/guided_tour/group.html:26
#: bookwyrm/templates/guided_tour/group.html:49
#: bookwyrm/templates/guided_tour/group.html:72
#: bookwyrm/templates/guided_tour/group.html:95
#: bookwyrm/templates/guided_tour/home.html:74
#: bookwyrm/templates/guided_tour/home.html:97
#: bookwyrm/templates/guided_tour/home.html:121
#: bookwyrm/templates/guided_tour/home.html:146
#: bookwyrm/templates/guided_tour/home.html:171
#: bookwyrm/templates/guided_tour/home.html:195
#: bookwyrm/templates/guided_tour/lists.html:29
#: bookwyrm/templates/guided_tour/lists.html:53
#: bookwyrm/templates/guided_tour/lists.html:76
#: bookwyrm/templates/guided_tour/lists.html:100
#: bookwyrm/templates/guided_tour/lists.html:123
#: bookwyrm/templates/guided_tour/search.html:36
#: bookwyrm/templates/guided_tour/search.html:63
#: bookwyrm/templates/guided_tour/search.html:89
#: bookwyrm/templates/guided_tour/search.html:116
#: bookwyrm/templates/guided_tour/search.html:140
#: bookwyrm/templates/guided_tour/user_books.html:26
#: bookwyrm/templates/guided_tour/user_books.html:50
#: bookwyrm/templates/guided_tour/user_books.html:73
#: bookwyrm/templates/guided_tour/user_books.html:96
#: bookwyrm/templates/guided_tour/user_groups.html:26
#: bookwyrm/templates/guided_tour/user_groups.html:50
#: bookwyrm/templates/guided_tour/user_groups.html:73
#: bookwyrm/templates/guided_tour/user_groups.html:97
#: bookwyrm/templates/guided_tour/user_profile.html:26
#: bookwyrm/templates/guided_tour/user_profile.html:49
#: bookwyrm/templates/guided_tour/user_profile.html:72
#: bookwyrm/templates/guided_tour/user_profile.html:95
#: bookwyrm/templates/guided_tour/user_profile.html:118
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "往后"
#: bookwyrm/templates/guided_tour/book.html:31
msgid "This is where you can set a reading status for this book. You can press the button to move to the next stage, or use the drop down button to select the reading status you want to set."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:32
msgid "Reading status"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:55
msgid "You can also manually add reading dates here. Unlike changing the reading status using the previous method, adding dates manually will not automatically add them to your <strong>Read</strong> or <strong>Reading</strong> shelves.<br><br>Got a favourite you re-read every year? We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:79
msgid "There can be multiple editions of a book, in various formats or languages. You can choose which edition you want to use."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:80
msgid "Other editions"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:102
msgid "You can post a review, comment, or quote here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:103
msgid "Share your thoughts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:127
msgid "If you have read this book you can post a review including an optional star rating"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:128
msgid "Post a review"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:151
msgid "You can share your thoughts on this book generally with a simple comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:152
msgid "Post a comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:175
msgid "Just read some perfect prose? Let the world know by sharing a quote!"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:176
msgid "Share a quote"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:199
msgid "If your review or comment might ruin the book for someone who hasn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:200
msgid "Spoiler alerts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:224
msgid "Choose who can see your post here. Post privacy can be <strong>Public</strong> (everyone can see), <strong>Unlisted</strong> (everyone can see, but it doesn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:225
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "发文隐私"
#: bookwyrm/templates/guided_tour/book.html:248
msgid "Some ebooks can be downloaded for free from external sources. They will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:249
msgid "Download links"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:273
#: bookwyrm/templates/guided_tour/search.html:147
msgid "<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:296
#: bookwyrm/templates/guided_tour/home.html:50
#: bookwyrm/templates/guided_tour/home.html:218
#: bookwyrm/templates/guided_tour/search.html:161
#: bookwyrm/templates/guided_tour/user_books.html:124
#: bookwyrm/templates/guided_tour/user_groups.html:116
#: bookwyrm/templates/guided_tour/user_profile.html:141
msgid "Ok"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:10
msgid "Welcome to the page for your group! This is where you can add and remove users, create user-curated lists, and edit the group details."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:11
msgid "Your group"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:31
msgid "Use this search box to find users to join your group. Currently users must be members of the same Bookwyrm instance and be invited by the group owner."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:32
msgid "Find users"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:54
msgid "Your group members will appear here. The group owner is marked with a star symbol."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:55
msgid "Group members"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:77
msgid "As well as creating lists from the Lists page, you can create a group-curated list here on the group\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:78
msgid "Group lists"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:100
msgid "Congratulations, you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:115
msgid "End tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:16
msgid "Welcome to Bookwyrm!<br><br>Would you like to take the guided tour to help you get started?"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:17
#: bookwyrm/templates/guided_tour/home.html:39
#: bookwyrm/templates/layout.html:194
msgid "Guided Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:25
msgid "No thanks"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:33
msgid "Yes please!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:38
msgid "If you ever change your mind, just click on the Guided Tour link to start your tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:62
msgid "Search for books, users, or lists using this search box."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:63
msgid "Search box"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:79
msgid "Search book records by scanning an ISBN barcode using your device\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:80
msgid "Barcode reader"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:102
msgid "Use the <strong>Feed</strong>, <strong>Lists</strong> and <strong>Discover</strong> links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:103
msgid "Navigation Bar"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:126
msgid "Books on your reading status shelves will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:151
msgid "Updates from people you are following will appear in your <strong>Home</strong> timeline.<br><br>The <strong>Books</strong> tab shows activity from anyone, related to your books."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:152
msgid "Timelines"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:176
msgid "The bell will light up when you have a new notification. When it does, click on it to find out what exciting thing has happened!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:177
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "通知"
#: bookwyrm/templates/guided_tour/home.html:200
msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:201
msgid "Profile and settings menu"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:13
msgid "This is the lists page where you can discover book lists created by any user. A List is a collection of books, similar to a shelf.<br><br>Shelves are for organising books for yourself, whereas Lists are generally for sharing with others."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:34
#: bookwyrm/templates/guided_tour/user_groups.html:31
msgid "Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:35
#: bookwyrm/templates/guided_tour/lists.html:59
msgid "Creating a new list"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:58
msgid "You must give your list a name and can optionally give it a description to help other people understand what your list is about."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:81
msgid "Choose who can see your list here. List privacy options work just like we saw when posting book reviews. This is a common pattern throughout Bookwyrm."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:82
msgid "List privacy"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:105
msgid "You can also decide how your list is to be curated - only by you, by anyone, or by a group."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:106
msgid "List curation"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:128
msgid "Next in our tour we will explore Groups!"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:129
msgid "Next: Groups"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:143
msgid "Take me there"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:16
msgid "If the book you are looking for is available on a remote catalogue such as Open Library, click on <strong>Import book</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:17
#: bookwyrm/templates/guided_tour/search.html:44
msgid "Searching"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:43
msgid "If the book you are looking for is already on this Bookwyrm instance, you can click on the title to go to the book\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:71
msgid "If the book you are looking for is not listed, try loading more records from other sources like Open Library or Inventaire."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:72
msgid "Load more records"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:98
msgid "If your book is not in the results, try adjusting your search terms."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:99
msgid "Search again"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:121
msgid "If you still can\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:122
msgid "Add a record manally"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:148
msgid "Continue the tour"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:10
msgid "This is the page where your books are listed, organised into shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:11
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "你的书目"
#: bookwyrm/templates/guided_tour/user_books.html:31
msgid "<strong>To Read</strong>, <strong>Currently Reading</strong>, <strong>Read</strong>, and <strong>Stopped Reading</strong> are default shelves. When you change the reading status of a book it will automatically be moved to the matching shelf. A book can only be on one default shelf at a time."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:32
msgid "Reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:55
msgid "You can create additional custom shelves to organise your books. A book on a custom shelf can be on any number of other shelves simultaneously, including one of the default reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:56
msgid "Adding custom shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:78
msgid "If you have an export file from another service like Goodreads or LibraryThing, you can import it here."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:79
msgid "Import from another service"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:101
msgid "Now that we\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:10
msgid "You can create or join a group with other users. Groups can share group-curated book lists, and in future will be able to do other things."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:11
#: bookwyrm/templates/guided_tour/user_profile.html:55
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "群组"
#: bookwyrm/templates/guided_tour/user_groups.html:55
msgid "Give your group a name and describe what it is about. You can make user groups for any purpose - a reading group, a bunch of friends, whatever!"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:56
msgid "Creating a group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:78
msgid "Groups have privacy settings just like posts and lists, except that group privacy cannot be <strong>Followers</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:79
msgid "Group visibility"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:102
msgid "Once you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:103
msgid "Save your group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:10
msgid "This is your user profile. All your latest activities will be listed here. Other Bookwyrm users can see parts of this page too - what they can see depends on your privacy settings."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:11
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "用户个人资料"
#: bookwyrm/templates/guided_tour/user_profile.html:31
msgid "This tab shows everything you have read towards your annual reading goal, or allows you to set one. You don\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:32
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "阅读目标"
#: bookwyrm/templates/guided_tour/user_profile.html:54
msgid "Here you can see your groups, or create a new one. A group brings together Bookwyrm users and allows them to curate lists together."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:77
msgid "You can see your lists, or create a new one, here. A list is a collection of books that have something in common."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:100
msgid "The Books tab shows your book shelves. We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:123
msgid "Now you understand the basics of your profile page, let\\s add a book to your shelves.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:124
msgid "Find a book"
msgstr ""
#: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:5
#: bookwyrm/templates/import/import.html:9 #: bookwyrm/templates/import/import.html:9
#: bookwyrm/templates/shelf/shelf.html:64 #: bookwyrm/templates/shelf/shelf.html:64
@ -2260,8 +2795,8 @@ msgstr "忘记了密码?"
msgid "More about this site" msgid "More about this site"
msgstr "更多关于本站点的信息" msgstr "更多关于本站点的信息"
#: bookwyrm/templates/landing/password_reset.html:34 #: bookwyrm/templates/landing/password_reset.html:43
#: bookwyrm/templates/preferences/change_password.html:18 #: bookwyrm/templates/preferences/change_password.html:33
#: bookwyrm/templates/preferences/delete_user.html:20 #: bookwyrm/templates/preferences/delete_user.html:20
msgid "Confirm password:" msgid "Confirm password:"
msgstr "确认密码:" msgstr "确认密码:"
@ -2300,12 +2835,6 @@ msgstr "主导航菜单"
msgid "Feed" msgid "Feed"
msgstr "动态" msgstr "动态"
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "通知"
#: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33 #: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33
msgid "password" msgid "password"
msgstr "密码" msgstr "密码"
@ -2326,12 +2855,12 @@ msgstr "发布状态时出错"
msgid "Documentation" msgid "Documentation"
msgstr "文档" msgstr "文档"
#: bookwyrm/templates/layout.html:197 #: bookwyrm/templates/layout.html:203
#, python-format #, python-format
msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
msgstr "在 <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a> 上支持 %(site_name)s" msgstr "在 <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a> 上支持 %(site_name)s"
#: bookwyrm/templates/layout.html:201 #: bookwyrm/templates/layout.html:207
msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
msgstr "BookWyrm 是开源软件。你可以在 <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a> 贡献或报告问题。" msgstr "BookWyrm 是开源软件。你可以在 <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a> 贡献或报告问题。"
@ -2856,6 +3385,11 @@ msgid "A new <a href=\"%(path)s\">report</a> needs moderation"
msgid_plural "%(display_count)s new <a href=\"%(path)s\">reports</a> need moderation" msgid_plural "%(display_count)s new <a href=\"%(path)s\">reports</a> need moderation"
msgstr[0] "" msgstr[0] ""
#: bookwyrm/templates/notifications/items/status_preview.html:4
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "内容警告"
#: bookwyrm/templates/notifications/items/update.html:16 #: bookwyrm/templates/notifications/items/update.html:16
#, python-format #, python-format
msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>" msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>"
@ -3013,12 +3547,20 @@ msgstr "当前没有被屏蔽的用户。"
#: bookwyrm/templates/preferences/change_password.html:4 #: bookwyrm/templates/preferences/change_password.html:4
#: bookwyrm/templates/preferences/change_password.html:7 #: bookwyrm/templates/preferences/change_password.html:7
#: bookwyrm/templates/preferences/change_password.html:21 #: bookwyrm/templates/preferences/change_password.html:37
#: bookwyrm/templates/preferences/layout.html:20 #: bookwyrm/templates/preferences/layout.html:20
msgid "Change Password" msgid "Change Password"
msgstr "更改密码" msgstr "更改密码"
#: bookwyrm/templates/preferences/change_password.html:14 #: bookwyrm/templates/preferences/change_password.html:15
msgid "Successfully changed password"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:22
msgid "Current password:"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:28
msgid "New password:" msgid "New password:"
msgstr "新密码:" msgstr "新密码:"
@ -3110,6 +3652,10 @@ msgstr "CSV导出"
msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity." msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity."
msgstr "你的导出将包括你书架上的所有书籍,你评论过的书籍,以及有阅读活动的书籍。" msgstr "你的导出将包括你书架上的所有书籍,你评论过的书籍,以及有阅读活动的书籍。"
#: bookwyrm/templates/preferences/export.html:20
msgid "Download file"
msgstr ""
#: bookwyrm/templates/preferences/layout.html:11 #: bookwyrm/templates/preferences/layout.html:11
msgid "Account" msgid "Account"
msgstr "帐号" msgstr "帐号"
@ -4879,19 +5425,10 @@ msgstr "第 %(page)s 页"
msgid "Previous" msgid "Previous"
msgstr "往前" msgstr "往前"
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "往后"
#: bookwyrm/templates/snippets/privacy-icons.html:12 #: bookwyrm/templates/snippets/privacy-icons.html:12
msgid "Followers-only" msgid "Followers-only"
msgstr "仅关注者" msgstr "仅关注者"
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "发文隐私"
#: bookwyrm/templates/snippets/rate_action.html:5 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "留下评价" msgstr "留下评价"
@ -5010,10 +5547,6 @@ msgstr ""
msgid "Finish reading" msgid "Finish reading"
msgstr "完成阅读" msgstr "完成阅读"
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr "内容警告"
#: bookwyrm/templates/snippets/status/content_status.html:80 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "显示状态" msgstr "显示状态"
@ -5165,10 +5698,6 @@ msgstr "显示更多"
msgid "Show less" msgid "Show less"
msgstr "显示更少" msgstr "显示更少"
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "你的书目"
#: bookwyrm/templates/user/books_header.html:9 #: bookwyrm/templates/user/books_header.html:9
#, python-format #, python-format
msgid "%(username)s's books" msgid "%(username)s's books"
@ -5207,22 +5736,10 @@ msgstr "您的群组"
msgid "Groups: %(username)s" msgid "Groups: %(username)s"
msgstr "群组: %(username)s" msgstr "群组: %(username)s"
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "用户个人资料"
#: bookwyrm/templates/user/layout.html:48 #: bookwyrm/templates/user/layout.html:48
msgid "Follow Requests" msgid "Follow Requests"
msgstr "关注请求" msgstr "关注请求"
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "阅读目标"
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr "群组"
#: bookwyrm/templates/user/lists.html:11 #: bookwyrm/templates/user/lists.html:11
#, python-format #, python-format
msgid "Lists: %(username)s" msgid "Lists: %(username)s"
@ -5307,7 +5824,7 @@ msgstr "没有你关注的关注者"
msgid "View profile and more" msgid "View profile and more"
msgstr "查看档案和其他" msgstr "查看档案和其他"
#: bookwyrm/templates/user_menu.html:72 #: bookwyrm/templates/user_menu.html:78
msgid "Log out" msgid "Log out"
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-07-08 22:40+0000\n" "POT-Creation-Date: 2022-07-28 18:11+0000\n"
"PO-Revision-Date: 2022-07-10 04:58\n" "PO-Revision-Date: 2022-07-28 19:13\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"
@ -42,6 +42,14 @@ msgstr ""
msgid "Unlimited" msgid "Unlimited"
msgstr "不受限" msgstr "不受限"
#: bookwyrm/forms/edit_user.py:89
msgid "Incorrect password"
msgstr ""
#: bookwyrm/forms/edit_user.py:96 bookwyrm/forms/landing.py:71
msgid "Password does not match"
msgstr ""
#: bookwyrm/forms/forms.py:54 #: bookwyrm/forms/forms.py:54
msgid "Reading finish date cannot be before start date." msgid "Reading finish date cannot be before start date."
msgstr "" msgstr ""
@ -50,11 +58,11 @@ msgstr ""
msgid "Reading stopped date cannot be before start date." msgid "Reading stopped date cannot be before start date."
msgstr "" msgstr ""
#: bookwyrm/forms/landing.py:32 #: bookwyrm/forms/landing.py:38
msgid "User with this username already exists" msgid "User with this username already exists"
msgstr "" msgstr ""
#: bookwyrm/forms/landing.py:41 #: bookwyrm/forms/landing.py:47
msgid "A user with this email already exists." msgid "A user with this email already exists."
msgstr "已經存在使用該郵箱的使用者。" msgstr "已經存在使用該郵箱的使用者。"
@ -277,7 +285,9 @@ msgstr "主頁"
msgid "Books Timeline" msgid "Books Timeline"
msgstr "" msgstr ""
#: bookwyrm/settings.py:210 bookwyrm/templates/search/layout.html:21 #: bookwyrm/settings.py:210
#: bookwyrm/templates/guided_tour/user_profile.html:101
#: bookwyrm/templates/search/layout.html:21
#: bookwyrm/templates/search/layout.html:42 #: bookwyrm/templates/search/layout.html:42
#: bookwyrm/templates/user/layout.html:91 #: bookwyrm/templates/user/layout.html:91
msgid "Books" msgid "Books"
@ -288,58 +298,62 @@ msgid "English"
msgstr "English英語" msgstr "English英語"
#: bookwyrm/settings.py:283 #: bookwyrm/settings.py:283
msgid "Català (Catalan)"
msgstr ""
#: bookwyrm/settings.py:284
msgid "Deutsch (German)" msgid "Deutsch (German)"
msgstr "Deutsch德語" msgstr "Deutsch德語"
#: bookwyrm/settings.py:284 #: bookwyrm/settings.py:285
msgid "Español (Spanish)" msgid "Español (Spanish)"
msgstr "Español西班牙語" msgstr "Español西班牙語"
#: bookwyrm/settings.py:285 #: bookwyrm/settings.py:286
msgid "Galego (Galician)" msgid "Galego (Galician)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:286 #: bookwyrm/settings.py:287
msgid "Italiano (Italian)" msgid "Italiano (Italian)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:287 #: bookwyrm/settings.py:288
msgid "Suomi (Finnish)" msgid "Suomi (Finnish)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:288 #: bookwyrm/settings.py:289
msgid "Français (French)" msgid "Français (French)"
msgstr "Français法語" msgstr "Français法語"
#: bookwyrm/settings.py:289 #: bookwyrm/settings.py:290
msgid "Lietuvių (Lithuanian)" msgid "Lietuvių (Lithuanian)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:290 #: bookwyrm/settings.py:291
msgid "Norsk (Norwegian)" msgid "Norsk (Norwegian)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:291 #: bookwyrm/settings.py:292
msgid "Português do Brasil (Brazilian Portuguese)" msgid "Português do Brasil (Brazilian Portuguese)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:292 #: bookwyrm/settings.py:293
msgid "Português Europeu (European Portuguese)" msgid "Português Europeu (European Portuguese)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:293 #: bookwyrm/settings.py:294
msgid "Română (Romanian)" msgid "Română (Romanian)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:294 #: bookwyrm/settings.py:295
msgid "Svenska (Swedish)" msgid "Svenska (Swedish)"
msgstr "" msgstr ""
#: bookwyrm/settings.py:295 #: bookwyrm/settings.py:296
msgid "简体中文 (Simplified Chinese)" msgid "简体中文 (Simplified Chinese)"
msgstr "簡體中文" msgstr "簡體中文"
#: bookwyrm/settings.py:296 #: bookwyrm/settings.py:297
msgid "繁體中文 (Traditional Chinese)" msgid "繁體中文 (Traditional Chinese)"
msgstr "繁體中文" msgstr "繁體中文"
@ -783,7 +797,7 @@ msgstr ""
#: bookwyrm/templates/book/edit/edit_book.html:122 #: 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:52
#: bookwyrm/templates/snippets/remove_from_group_button.html:17 #: bookwyrm/templates/snippets/remove_from_group_button.html:17
msgid "Confirm" msgid "Confirm"
msgstr "確認" msgstr "確認"
@ -844,6 +858,7 @@ msgid "Your reading activity"
msgstr "你的閱讀活動" msgstr "你的閱讀活動"
#: bookwyrm/templates/book/book.html:260 #: bookwyrm/templates/book/book.html:260
#: bookwyrm/templates/guided_tour/book.html:56
msgid "Add read dates" msgid "Add read dates"
msgstr "新增閱讀日期" msgstr "新增閱讀日期"
@ -872,9 +887,13 @@ msgid "Places"
msgstr "地點" msgstr "地點"
#: bookwyrm/templates/book/book.html:365 #: bookwyrm/templates/book/book.html:365
#: bookwyrm/templates/groups/group.html:19 bookwyrm/templates/layout.html:83 #: bookwyrm/templates/groups/group.html:19
#: bookwyrm/templates/lists/curate.html:8 bookwyrm/templates/lists/list.html:12 #: bookwyrm/templates/guided_tour/lists.html:14
#: bookwyrm/templates/lists/lists.html:5 bookwyrm/templates/lists/lists.html:12 #: bookwyrm/templates/guided_tour/user_books.html:102
#: bookwyrm/templates/guided_tour/user_profile.html:78
#: bookwyrm/templates/layout.html:83 bookwyrm/templates/lists/curate.html:8
#: bookwyrm/templates/lists/list.html:12 bookwyrm/templates/lists/lists.html:5
#: bookwyrm/templates/lists/lists.html:12
#: bookwyrm/templates/search/layout.html:25 #: bookwyrm/templates/search/layout.html:25
#: bookwyrm/templates/search/layout.html:50 #: bookwyrm/templates/search/layout.html:50
#: bookwyrm/templates/user/layout.html:85 #: bookwyrm/templates/user/layout.html:85
@ -984,6 +1003,49 @@ msgstr "這是一個新的作品。"
#: bookwyrm/templates/book/edit/edit_book.html:124 #: bookwyrm/templates/book/edit/edit_book.html:124
#: bookwyrm/templates/feed/status.html:21 #: bookwyrm/templates/feed/status.html:21
#: bookwyrm/templates/guided_tour/book.html:44
#: bookwyrm/templates/guided_tour/book.html:68
#: bookwyrm/templates/guided_tour/book.html:91
#: bookwyrm/templates/guided_tour/book.html:116
#: bookwyrm/templates/guided_tour/book.html:140
#: bookwyrm/templates/guided_tour/book.html:164
#: bookwyrm/templates/guided_tour/book.html:188
#: bookwyrm/templates/guided_tour/book.html:213
#: bookwyrm/templates/guided_tour/book.html:237
#: bookwyrm/templates/guided_tour/book.html:262
#: bookwyrm/templates/guided_tour/book.html:290
#: bookwyrm/templates/guided_tour/group.html:43
#: bookwyrm/templates/guided_tour/group.html:66
#: bookwyrm/templates/guided_tour/group.html:89
#: bookwyrm/templates/guided_tour/group.html:108
#: bookwyrm/templates/guided_tour/home.html:91
#: bookwyrm/templates/guided_tour/home.html:115
#: bookwyrm/templates/guided_tour/home.html:140
#: bookwyrm/templates/guided_tour/home.html:165
#: bookwyrm/templates/guided_tour/home.html:189
#: bookwyrm/templates/guided_tour/home.html:212
#: bookwyrm/templates/guided_tour/lists.html:47
#: bookwyrm/templates/guided_tour/lists.html:70
#: bookwyrm/templates/guided_tour/lists.html:94
#: bookwyrm/templates/guided_tour/lists.html:117
#: bookwyrm/templates/guided_tour/lists.html:136
#: bookwyrm/templates/guided_tour/search.html:83
#: bookwyrm/templates/guided_tour/search.html:110
#: bookwyrm/templates/guided_tour/search.html:134
#: bookwyrm/templates/guided_tour/search.html:155
#: bookwyrm/templates/guided_tour/user_books.html:44
#: bookwyrm/templates/guided_tour/user_books.html:67
#: bookwyrm/templates/guided_tour/user_books.html:90
#: bookwyrm/templates/guided_tour/user_books.html:118
#: bookwyrm/templates/guided_tour/user_groups.html:44
#: bookwyrm/templates/guided_tour/user_groups.html:67
#: bookwyrm/templates/guided_tour/user_groups.html:91
#: bookwyrm/templates/guided_tour/user_groups.html:110
#: bookwyrm/templates/guided_tour/user_profile.html:43
#: bookwyrm/templates/guided_tour/user_profile.html:66
#: bookwyrm/templates/guided_tour/user_profile.html:89
#: bookwyrm/templates/guided_tour/user_profile.html:112
#: bookwyrm/templates/guided_tour/user_profile.html:135
msgid "Back" msgid "Back"
msgstr "返回" msgstr "返回"
@ -1345,11 +1407,7 @@ msgstr ""
msgid "Email address:" msgid "Email address:"
msgstr "郵箱地址:" msgstr "郵箱地址:"
#: bookwyrm/templates/confirm_email/resend_modal.html:28 #: bookwyrm/templates/confirm_email/resend_modal.html:30
msgid "No user matching this email address found."
msgstr ""
#: bookwyrm/templates/confirm_email/resend_modal.html:38
msgid "Resend link" msgid "Resend link"
msgstr "" msgstr ""
@ -1642,16 +1700,16 @@ msgstr "所有訊息"
msgid "You have no messages right now." msgid "You have no messages right now."
msgstr "你現在沒有訊息。" msgstr "你現在沒有訊息。"
#: bookwyrm/templates/feed/feed.html:54 #: bookwyrm/templates/feed/feed.html:55
msgid "There aren't any activities right now! Try following a user to get started" msgid "There aren't any activities right now! Try following a user to get started"
msgstr "現在還沒有任何活動!嘗試著從關注一個使用者開始吧" msgstr "現在還沒有任何活動!嘗試著從關注一個使用者開始吧"
#: bookwyrm/templates/feed/feed.html:55 #: bookwyrm/templates/feed/feed.html:56
msgid "Alternatively, you can try enabling more status types" msgid "Alternatively, you can try enabling more status types"
msgstr "" msgstr ""
#: bookwyrm/templates/feed/goal_card.html:6 #: bookwyrm/templates/feed/goal_card.html:6
#: bookwyrm/templates/feed/layout.html:15 #: bookwyrm/templates/feed/layout.html:14
#: bookwyrm/templates/user/goal_form.html:6 #: bookwyrm/templates/user/goal_form.html:6
#, python-format #, python-format
msgid "%(year)s Reading Goal" msgid "%(year)s Reading Goal"
@ -1662,11 +1720,12 @@ msgstr "%(year)s 閱讀目標"
msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>" msgid "You can set or change your reading goal any time from your <a href=\"%(path)s\">profile page</a>"
msgstr "你可以在任何時候從你的<a href=\"%(path)s\">使用者資料頁面</a> 中設定或改變你的閱讀目標" msgstr "你可以在任何時候從你的<a href=\"%(path)s\">使用者資料頁面</a> 中設定或改變你的閱讀目標"
#: bookwyrm/templates/feed/layout.html:5 #: bookwyrm/templates/feed/layout.html:4
msgid "Updates" msgid "Updates"
msgstr "更新" msgstr "更新"
#: bookwyrm/templates/feed/suggested_books.html:6 #: bookwyrm/templates/feed/suggested_books.html:6
#: bookwyrm/templates/guided_tour/home.html:127
#: bookwyrm/templates/user_menu.html:35 #: bookwyrm/templates/user_menu.html:35
msgid "Your Books" msgid "Your Books"
msgstr "你的書目" msgstr "你的書目"
@ -1817,6 +1876,7 @@ msgid "Skip this step"
msgstr "跳過此步驟" msgstr "跳過此步驟"
#: bookwyrm/templates/get_started/layout.html:54 #: bookwyrm/templates/get_started/layout.html:54
#: bookwyrm/templates/guided_tour/group.html:101
msgid "Finish" msgid "Finish"
msgstr "完成" msgstr "完成"
@ -1862,6 +1922,7 @@ msgid "No users found for \"%(query)s\""
msgstr "沒有找到 \"%(query)s\" 的使用者" msgstr "沒有找到 \"%(query)s\" 的使用者"
#: bookwyrm/templates/groups/create_form.html:5 #: bookwyrm/templates/groups/create_form.html:5
#: bookwyrm/templates/guided_tour/user_groups.html:32
#: bookwyrm/templates/user/groups.html:17 #: bookwyrm/templates/user/groups.html:17
msgid "Create group" msgid "Create group"
msgstr "" msgstr ""
@ -1970,6 +2031,480 @@ msgstr ""
msgid "Manager" msgid "Manager"
msgstr "" msgstr ""
#: bookwyrm/templates/guided_tour/book.html:10
msgid "This is home page of a book. Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:11
msgid "Book page"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:19
#: bookwyrm/templates/guided_tour/group.html:19
#: bookwyrm/templates/guided_tour/lists.html:22
#: bookwyrm/templates/guided_tour/search.html:29
#: bookwyrm/templates/guided_tour/search.html:56
#: bookwyrm/templates/guided_tour/user_books.html:19
#: bookwyrm/templates/guided_tour/user_groups.html:19
#: bookwyrm/templates/guided_tour/user_profile.html:19
msgid "End Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:26
#: bookwyrm/templates/guided_tour/book.html:50
#: bookwyrm/templates/guided_tour/book.html:74
#: bookwyrm/templates/guided_tour/book.html:97
#: bookwyrm/templates/guided_tour/book.html:122
#: bookwyrm/templates/guided_tour/book.html:146
#: bookwyrm/templates/guided_tour/book.html:170
#: bookwyrm/templates/guided_tour/book.html:194
#: bookwyrm/templates/guided_tour/book.html:219
#: bookwyrm/templates/guided_tour/book.html:243
#: bookwyrm/templates/guided_tour/book.html:268
#: bookwyrm/templates/guided_tour/book.html:274
#: bookwyrm/templates/guided_tour/group.html:26
#: bookwyrm/templates/guided_tour/group.html:49
#: bookwyrm/templates/guided_tour/group.html:72
#: bookwyrm/templates/guided_tour/group.html:95
#: bookwyrm/templates/guided_tour/home.html:74
#: bookwyrm/templates/guided_tour/home.html:97
#: bookwyrm/templates/guided_tour/home.html:121
#: bookwyrm/templates/guided_tour/home.html:146
#: bookwyrm/templates/guided_tour/home.html:171
#: bookwyrm/templates/guided_tour/home.html:195
#: bookwyrm/templates/guided_tour/lists.html:29
#: bookwyrm/templates/guided_tour/lists.html:53
#: bookwyrm/templates/guided_tour/lists.html:76
#: bookwyrm/templates/guided_tour/lists.html:100
#: bookwyrm/templates/guided_tour/lists.html:123
#: bookwyrm/templates/guided_tour/search.html:36
#: bookwyrm/templates/guided_tour/search.html:63
#: bookwyrm/templates/guided_tour/search.html:89
#: bookwyrm/templates/guided_tour/search.html:116
#: bookwyrm/templates/guided_tour/search.html:140
#: bookwyrm/templates/guided_tour/user_books.html:26
#: bookwyrm/templates/guided_tour/user_books.html:50
#: bookwyrm/templates/guided_tour/user_books.html:73
#: bookwyrm/templates/guided_tour/user_books.html:96
#: bookwyrm/templates/guided_tour/user_groups.html:26
#: bookwyrm/templates/guided_tour/user_groups.html:50
#: bookwyrm/templates/guided_tour/user_groups.html:73
#: bookwyrm/templates/guided_tour/user_groups.html:97
#: bookwyrm/templates/guided_tour/user_profile.html:26
#: bookwyrm/templates/guided_tour/user_profile.html:49
#: bookwyrm/templates/guided_tour/user_profile.html:72
#: bookwyrm/templates/guided_tour/user_profile.html:95
#: bookwyrm/templates/guided_tour/user_profile.html:118
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "往後"
#: bookwyrm/templates/guided_tour/book.html:31
msgid "This is where you can set a reading status for this book. You can press the button to move to the next stage, or use the drop down button to select the reading status you want to set."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:32
msgid "Reading status"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:55
msgid "You can also manually add reading dates here. Unlike changing the reading status using the previous method, adding dates manually will not automatically add them to your <strong>Read</strong> or <strong>Reading</strong> shelves.<br><br>Got a favourite you re-read every year? We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:79
msgid "There can be multiple editions of a book, in various formats or languages. You can choose which edition you want to use."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:80
msgid "Other editions"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:102
msgid "You can post a review, comment, or quote here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:103
msgid "Share your thoughts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:127
msgid "If you have read this book you can post a review including an optional star rating"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:128
msgid "Post a review"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:151
msgid "You can share your thoughts on this book generally with a simple comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:152
msgid "Post a comment"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:175
msgid "Just read some perfect prose? Let the world know by sharing a quote!"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:176
msgid "Share a quote"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:199
msgid "If your review or comment might ruin the book for someone who hasn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:200
msgid "Spoiler alerts"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:224
msgid "Choose who can see your post here. Post privacy can be <strong>Public</strong> (everyone can see), <strong>Unlisted</strong> (everyone can see, but it doesn\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:225
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "發文隱私"
#: bookwyrm/templates/guided_tour/book.html:248
msgid "Some ebooks can be downloaded for free from external sources. They will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:249
msgid "Download links"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:273
#: bookwyrm/templates/guided_tour/search.html:147
msgid "<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/book.html:296
#: bookwyrm/templates/guided_tour/home.html:50
#: bookwyrm/templates/guided_tour/home.html:218
#: bookwyrm/templates/guided_tour/search.html:161
#: bookwyrm/templates/guided_tour/user_books.html:124
#: bookwyrm/templates/guided_tour/user_groups.html:116
#: bookwyrm/templates/guided_tour/user_profile.html:141
msgid "Ok"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:10
msgid "Welcome to the page for your group! This is where you can add and remove users, create user-curated lists, and edit the group details."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:11
msgid "Your group"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:31
msgid "Use this search box to find users to join your group. Currently users must be members of the same Bookwyrm instance and be invited by the group owner."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:32
msgid "Find users"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:54
msgid "Your group members will appear here. The group owner is marked with a star symbol."
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:55
msgid "Group members"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:77
msgid "As well as creating lists from the Lists page, you can create a group-curated list here on the group\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:78
msgid "Group lists"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:100
msgid "Congratulations, you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/group.html:115
msgid "End tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:16
msgid "Welcome to Bookwyrm!<br><br>Would you like to take the guided tour to help you get started?"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:17
#: bookwyrm/templates/guided_tour/home.html:39
#: bookwyrm/templates/layout.html:194
msgid "Guided Tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:25
msgid "No thanks"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:33
msgid "Yes please!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:38
msgid "If you ever change your mind, just click on the Guided Tour link to start your tour"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:62
msgid "Search for books, users, or lists using this search box."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:63
msgid "Search box"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:79
msgid "Search book records by scanning an ISBN barcode using your device\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:80
msgid "Barcode reader"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:102
msgid "Use the <strong>Feed</strong>, <strong>Lists</strong> and <strong>Discover</strong> links to discover the latest news from your feed, lists of books by topic, and the latest happenings on this Bookwyrm server!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:103
msgid "Navigation Bar"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:126
msgid "Books on your reading status shelves will be shown here."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:151
msgid "Updates from people you are following will appear in your <strong>Home</strong> timeline.<br><br>The <strong>Books</strong> tab shows activity from anyone, related to your books."
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:152
msgid "Timelines"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:176
msgid "The bell will light up when you have a new notification. When it does, click on it to find out what exciting thing has happened!"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:177
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "通知"
#: bookwyrm/templates/guided_tour/home.html:200
msgid "Your profile, books, direct messages, and settings can be accessed by clicking on your name in the menu here.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/home.html:201
msgid "Profile and settings menu"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:13
msgid "This is the lists page where you can discover book lists created by any user. A List is a collection of books, similar to a shelf.<br><br>Shelves are for organising books for yourself, whereas Lists are generally for sharing with others."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:34
#: bookwyrm/templates/guided_tour/user_groups.html:31
msgid "Let\\"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:35
#: bookwyrm/templates/guided_tour/lists.html:59
msgid "Creating a new list"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:58
msgid "You must give your list a name and can optionally give it a description to help other people understand what your list is about."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:81
msgid "Choose who can see your list here. List privacy options work just like we saw when posting book reviews. This is a common pattern throughout Bookwyrm."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:82
msgid "List privacy"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:105
msgid "You can also decide how your list is to be curated - only by you, by anyone, or by a group."
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:106
msgid "List curation"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:128
msgid "Next in our tour we will explore Groups!"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:129
msgid "Next: Groups"
msgstr ""
#: bookwyrm/templates/guided_tour/lists.html:143
msgid "Take me there"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:16
msgid "If the book you are looking for is available on a remote catalogue such as Open Library, click on <strong>Import book</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:17
#: bookwyrm/templates/guided_tour/search.html:44
msgid "Searching"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:43
msgid "If the book you are looking for is already on this Bookwyrm instance, you can click on the title to go to the book\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:71
msgid "If the book you are looking for is not listed, try loading more records from other sources like Open Library or Inventaire."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:72
msgid "Load more records"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:98
msgid "If your book is not in the results, try adjusting your search terms."
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:99
msgid "Search again"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:121
msgid "If you still can\\"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:122
msgid "Add a record manally"
msgstr ""
#: bookwyrm/templates/guided_tour/search.html:148
msgid "Continue the tour"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:10
msgid "This is the page where your books are listed, organised into shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:11
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "你的書目"
#: bookwyrm/templates/guided_tour/user_books.html:31
msgid "<strong>To Read</strong>, <strong>Currently Reading</strong>, <strong>Read</strong>, and <strong>Stopped Reading</strong> are default shelves. When you change the reading status of a book it will automatically be moved to the matching shelf. A book can only be on one default shelf at a time."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:32
msgid "Reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:55
msgid "You can create additional custom shelves to organise your books. A book on a custom shelf can be on any number of other shelves simultaneously, including one of the default reading status shelves"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:56
msgid "Adding custom shelves."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:78
msgid "If you have an export file from another service like Goodreads or LibraryThing, you can import it here."
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:79
msgid "Import from another service"
msgstr ""
#: bookwyrm/templates/guided_tour/user_books.html:101
msgid "Now that we\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:10
msgid "You can create or join a group with other users. Groups can share group-curated book lists, and in future will be able to do other things."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:11
#: bookwyrm/templates/guided_tour/user_profile.html:55
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:55
msgid "Give your group a name and describe what it is about. You can make user groups for any purpose - a reading group, a bunch of friends, whatever!"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:56
msgid "Creating a group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:78
msgid "Groups have privacy settings just like posts and lists, except that group privacy cannot be <strong>Followers</strong>."
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:79
msgid "Group visibility"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:102
msgid "Once you\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_groups.html:103
msgid "Save your group"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:10
msgid "This is your user profile. All your latest activities will be listed here. Other Bookwyrm users can see parts of this page too - what they can see depends on your privacy settings."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:11
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "使用者使用者資料"
#: bookwyrm/templates/guided_tour/user_profile.html:31
msgid "This tab shows everything you have read towards your annual reading goal, or allows you to set one. You don\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:32
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "閱讀目標"
#: bookwyrm/templates/guided_tour/user_profile.html:54
msgid "Here you can see your groups, or create a new one. A group brings together Bookwyrm users and allows them to curate lists together."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:77
msgid "You can see your lists, or create a new one, here. A list is a collection of books that have something in common."
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:100
msgid "The Books tab shows your book shelves. We\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:123
msgid "Now you understand the basics of your profile page, let\\s add a book to your shelves.<p class=\\"
msgstr ""
#: bookwyrm/templates/guided_tour/user_profile.html:124
msgid "Find a book"
msgstr ""
#: bookwyrm/templates/import/import.html:5 #: bookwyrm/templates/import/import.html:5
#: bookwyrm/templates/import/import.html:9 #: bookwyrm/templates/import/import.html:9
#: bookwyrm/templates/shelf/shelf.html:64 #: bookwyrm/templates/shelf/shelf.html:64
@ -2260,8 +2795,8 @@ msgstr "忘記了密碼?"
msgid "More about this site" msgid "More about this site"
msgstr "關於本網站的更多" msgstr "關於本網站的更多"
#: bookwyrm/templates/landing/password_reset.html:34 #: bookwyrm/templates/landing/password_reset.html:43
#: bookwyrm/templates/preferences/change_password.html:18 #: bookwyrm/templates/preferences/change_password.html:33
#: bookwyrm/templates/preferences/delete_user.html:20 #: bookwyrm/templates/preferences/delete_user.html:20
msgid "Confirm password:" msgid "Confirm password:"
msgstr "確認密碼:" msgstr "確認密碼:"
@ -2300,12 +2835,6 @@ msgstr "主導航選單"
msgid "Feed" msgid "Feed"
msgstr "動態" msgstr "動態"
#: bookwyrm/templates/layout.html:99 bookwyrm/templates/layout.html:100
#: bookwyrm/templates/notifications/notifications_page.html:5
#: bookwyrm/templates/notifications/notifications_page.html:10
msgid "Notifications"
msgstr "通知"
#: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33 #: bookwyrm/templates/layout.html:127 bookwyrm/templates/ostatus/error.html:33
msgid "password" msgid "password"
msgstr "密碼" msgstr "密碼"
@ -2326,12 +2855,12 @@ msgstr ""
msgid "Documentation" msgid "Documentation"
msgstr "文件:" msgstr "文件:"
#: bookwyrm/templates/layout.html:197 #: bookwyrm/templates/layout.html:203
#, python-format #, python-format
msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>" msgid "Support %(site_name)s on <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a>"
msgstr "在 <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a> 上支援 %(site_name)s" msgstr "在 <a href=\"%(support_link)s\" target=\"_blank\">%(support_title)s</a> 上支援 %(site_name)s"
#: bookwyrm/templates/layout.html:201 #: bookwyrm/templates/layout.html:207
msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>." msgid "BookWyrm's source code is freely available. You can contribute or report issues on <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a>."
msgstr "BookWyrm 是開源軟體。你可以在 <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a> 貢獻或報告問題。" msgstr "BookWyrm 是開源軟體。你可以在 <a href=\"https://github.com/mouse-reeve/bookwyrm\">GitHub</a> 貢獻或報告問題。"
@ -2856,6 +3385,11 @@ msgid "A new <a href=\"%(path)s\">report</a> needs moderation"
msgid_plural "%(display_count)s new <a href=\"%(path)s\">reports</a> need moderation" msgid_plural "%(display_count)s new <a href=\"%(path)s\">reports</a> need moderation"
msgstr[0] "" msgstr[0] ""
#: bookwyrm/templates/notifications/items/status_preview.html:4
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr ""
#: bookwyrm/templates/notifications/items/update.html:16 #: bookwyrm/templates/notifications/items/update.html:16
#, python-format #, python-format
msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>" msgid "has changed the privacy level for <a href=\"%(group_path)s\">%(group_name)s</a>"
@ -3013,12 +3547,20 @@ msgstr "當前沒有被封鎖的使用者。"
#: bookwyrm/templates/preferences/change_password.html:4 #: bookwyrm/templates/preferences/change_password.html:4
#: bookwyrm/templates/preferences/change_password.html:7 #: bookwyrm/templates/preferences/change_password.html:7
#: bookwyrm/templates/preferences/change_password.html:21 #: bookwyrm/templates/preferences/change_password.html:37
#: bookwyrm/templates/preferences/layout.html:20 #: bookwyrm/templates/preferences/layout.html:20
msgid "Change Password" msgid "Change Password"
msgstr "更改密碼" msgstr "更改密碼"
#: bookwyrm/templates/preferences/change_password.html:14 #: bookwyrm/templates/preferences/change_password.html:15
msgid "Successfully changed password"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:22
msgid "Current password:"
msgstr ""
#: bookwyrm/templates/preferences/change_password.html:28
msgid "New password:" msgid "New password:"
msgstr "新密碼:" msgstr "新密碼:"
@ -3110,6 +3652,10 @@ msgstr ""
msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity." msgid "Your export will include all the books on your shelves, books you have reviewed, and books with reading activity."
msgstr "" msgstr ""
#: bookwyrm/templates/preferences/export.html:20
msgid "Download file"
msgstr ""
#: bookwyrm/templates/preferences/layout.html:11 #: bookwyrm/templates/preferences/layout.html:11
msgid "Account" msgid "Account"
msgstr "帳號" msgstr "帳號"
@ -4877,19 +5423,10 @@ msgstr "第 %(page)s 頁"
msgid "Previous" msgid "Previous"
msgstr "往前" msgstr "往前"
#: bookwyrm/templates/snippets/pagination.html:23
msgid "Next"
msgstr "往後"
#: bookwyrm/templates/snippets/privacy-icons.html:12 #: bookwyrm/templates/snippets/privacy-icons.html:12
msgid "Followers-only" msgid "Followers-only"
msgstr "僅關注者" msgstr "僅關注者"
#: bookwyrm/templates/snippets/privacy_select.html:6
#: bookwyrm/templates/snippets/privacy_select_no_followers.html:6
msgid "Post privacy"
msgstr "發文隱私"
#: bookwyrm/templates/snippets/rate_action.html:5 #: bookwyrm/templates/snippets/rate_action.html:5
msgid "Leave a rating" msgid "Leave a rating"
msgstr "留下評價" msgstr "留下評價"
@ -5008,10 +5545,6 @@ msgstr ""
msgid "Finish reading" msgid "Finish reading"
msgstr "完成閱讀" msgstr "完成閱讀"
#: bookwyrm/templates/snippets/status/content_status.html:73
msgid "Content warning"
msgstr ""
#: bookwyrm/templates/snippets/status/content_status.html:80 #: bookwyrm/templates/snippets/status/content_status.html:80
msgid "Show status" msgid "Show status"
msgstr "" msgstr ""
@ -5163,10 +5696,6 @@ msgstr "顯示更多"
msgid "Show less" msgid "Show less"
msgstr "顯示更少" msgstr "顯示更少"
#: bookwyrm/templates/user/books_header.html:4
msgid "Your books"
msgstr "你的書目"
#: bookwyrm/templates/user/books_header.html:9 #: bookwyrm/templates/user/books_header.html:9
#, python-format #, python-format
msgid "%(username)s's books" msgid "%(username)s's books"
@ -5205,22 +5734,10 @@ msgstr ""
msgid "Groups: %(username)s" msgid "Groups: %(username)s"
msgstr "" msgstr ""
#: bookwyrm/templates/user/layout.html:19 bookwyrm/templates/user/user.html:10
msgid "User Profile"
msgstr "使用者使用者資料"
#: bookwyrm/templates/user/layout.html:48 #: bookwyrm/templates/user/layout.html:48
msgid "Follow Requests" msgid "Follow Requests"
msgstr "關注請求" msgstr "關注請求"
#: bookwyrm/templates/user/layout.html:73
msgid "Reading Goal"
msgstr "閱讀目標"
#: bookwyrm/templates/user/layout.html:79
msgid "Groups"
msgstr ""
#: bookwyrm/templates/user/lists.html:11 #: bookwyrm/templates/user/lists.html:11
#, python-format #, python-format
msgid "Lists: %(username)s" msgid "Lists: %(username)s"
@ -5305,7 +5822,7 @@ msgstr ""
msgid "View profile and more" msgid "View profile and more"
msgstr "" msgstr ""
#: bookwyrm/templates/user_menu.html:72 #: bookwyrm/templates/user_menu.html:78
msgid "Log out" msgid "Log out"
msgstr "登出" msgstr "登出"

View file

@ -7,6 +7,15 @@ upstream web {
server { server {
listen 80; listen 80;
location ~ ^/(login|password-reset|resend-link) {
limit_req zone=loginlimit;
proxy_pass http://web;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location / { location / {
proxy_pass http://web; proxy_pass http://web;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

Some files were not shown because too many files have changed in this diff Show more