Merge branch 'master' into Develop

This commit is contained in:
Ozzie Isaacs
2026-01-08 19:58:48 +01:00
76 changed files with 2076 additions and 1343 deletions
+18 -1
View File
@@ -42,9 +42,26 @@ def hide_console_windows():
if __name__ == '__main__':
if os.name == "nt":
# Only hide the console window on Windows when there is no interactive
# console attached. This preserves the ability to use Ctrl+C from a
# terminal (stdin is a tty) to stop the server.
if os.name == "nt" and not sys.stdin.isatty():
hide_console_windows()
try:
main()
except KeyboardInterrupt:
# Allow stopping the server with Ctrl+C from an interactive console, after reboot of calibre-web
# (initally the SIGINT signal CTRL+C is catched in server.py via the signal callback).
try:
# Try to perform a graceful stop if web_server is available.
# Import here to avoid import-time side-effects when not needed.
from cps import web_server
web_server.stop()
except Exception:
pass
print('\nCalibre-Web: received interrupt, shutting down')
sys.exit(0)
+5 -2
View File
@@ -37,9 +37,12 @@ STATIC_DIR = os.path.join(BASE_DIR, 'cps', 'static')
TEMPLATES_DIR = os.path.join(BASE_DIR, 'cps', 'templates')
TRANSLATIONS_DIR = os.path.join(BASE_DIR, 'cps', 'translations')
# Cache dir - use CACHE_DIR environment variable, otherwise use the default directory: cps/cache
# Cache dir - use CACHE_DIRECTORY environment variable, otherwise CACHE_DIR (for backwards compatibility),
# otherwise use the default directory: cps/cache
DEFAULT_CACHE_DIR = os.path.join(BASE_DIR, 'cps', 'cache')
CACHE_DIR = os.environ.get('CACHE_DIR', DEFAULT_CACHE_DIR)
CACHE_DIRECTORY = os.environ.get(
'CACHE_DIRECTORY', os.environ.get('CACHE_DIR', DEFAULT_CACHE_DIR)
)
if HOME_CONFIG:
home_dir = os.path.join(os.path.expanduser("~"), ".calibre-web")
+2 -1
View File
@@ -33,6 +33,7 @@ log = logger.create()
# custom error page
def error_http(error):
headers = {'WWW-Authenticate': 'Basic realm="calibre-web"'} if error.code == 401 else {}
return render_template('http_error.html',
error_code="Error {0}".format(error.code),
error_name=error.name,
@@ -40,7 +41,7 @@ def error_http(error):
goto_admin=False,
unconfigured=not config.db_configured,
instance=config.config_calibre_web_title
), error.code
), error.code, headers
def internal_error(error):
+2 -2
View File
@@ -17,7 +17,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from . import logger
from .constants import CACHE_DIR
from .constants import CACHE_DIRECTORY
from os import makedirs, remove
from os.path import isdir, isfile, join
from shutil import rmtree
@@ -25,7 +25,7 @@ from shutil import rmtree
class FileSystem:
_instance = None
_cache_dir = CACHE_DIR
_cache_dir = CACHE_DIRECTORY
def __new__(cls):
if cls._instance is None:
-1
View File
@@ -21,7 +21,6 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import datetime
# import json
from urllib.parse import unquote_plus
from flask import Blueprint, request, render_template, make_response, abort, g, jsonify
+1 -1
View File
@@ -92,7 +92,7 @@ def get_sidebar_config(kwargs=None):
"visibility": constants.SIDEBAR_FORMAT, 'public': True,
"page": "format", "show_text": _('Show File Formats Section'), "config_show": True})
sidebar.append(
{"glyph": "glyphicon-trash", "text": _('Archived Books'), "link": 'web.books_list', "id": "archived",
{"glyph": "glyphicon-folder-open", "text": _('Archived Books'), "link": 'web.books_list', "id": "archived",
"visibility": constants.SIDEBAR_ARCHIVED, 'public': (not current_user.is_anonymous), "page": "archived",
"show_text": _('Show Archived Books'), "config_show": content})
if not simple:
+12
View File
@@ -216,6 +216,12 @@ class WebServer(object):
try:
sock, output = self._make_gevent_listener()
log.info('Starting Gevent server on %s', output)
# Also print to stdout so interactive terminals show a clear success message
try:
print(f"Calibre-Web: server started on {output}")
except Exception:
print(f"Calibre-Web: error {output}")
pass
self.wsgiserver = WSGIServer(sock, self.app, log=self.access_logger, handler_class=MyWSGIHandler,
error_log=log,
spawn=Pool(), **ssl_args)
@@ -266,6 +272,12 @@ class WebServer(object):
output = _readable_listen_address(self.listen_address, self.listen_port)
http_server.listen(self.listen_port, self.listen_address)
log.info('Starting Tornado server on %s', output)
# Also print to stdout so interactive terminals show a clear success message
try:
print(f"Calibre-Web: server started on {output}")
except Exception:
print(f"Calibre-Web: error {output}")
pass
self.wsgiserver = IOLoop.current()
self.wsgiserver.start()
+88 -44
View File
@@ -2018,7 +2018,7 @@ body > div.container-fluid > div > div.col-sm-10 > div.pagination > .page-previo
display: none
}
body.authorlist > div.container-fluid > div > div.col-sm-10 > div.container > div.col-xs-12, body.catlist > div.container-fluid > div > div.col-sm-10 > div.container > div.col-xs-12, body.langlist > div.container-fluid > div > div.col-sm-10 > div.container > div.col-sm-6, body.serieslist > div.container-fluid > div > div.col-sm-10 > div.container > div.col-sm-6 {
body.authorlist > div.container-fluid > div > div.col-sm-10 > div.container1 > div.col-xs-12, body.downloadlist > div.container-fluid > div > div.col-sm-10 > div.container1 > div.col-xs-12, body.catlist > div.container-fluid > div > div.col-sm-10 > div.container1 > div.col-xs-12, body.langlist > div.container-fluid > div > div.col-sm-10 > div.container1 > div.col-sm-6, body.serieslist > div.container-fluid > div > div.col-sm-10 > div.container1 > div.col-sm-6 {
width: 100%
}
@@ -2042,7 +2042,7 @@ body.serieslist > div.container-fluid > div > div.col-sm-10:before {
}
}
body > div.container-fluid > div > div.col-sm-10 > div.container {
body > div.container-fluid > div > div.col-sm-10 > div.container1 {
width: calc(80% - 30px);
margin: 120px 0 30px 20%;
border-top: 2px solid rgba(0, 0, 0, .3);
@@ -2051,19 +2051,19 @@ body > div.container-fluid > div > div.col-sm-10 > div.container {
max-width: calc(80% - 30px)
}
body > div.container-fluid > div > div.col-sm-10 > div.container > div {
body > div.container-fluid > div > div.col-sm-10 > div.container1 > div {
padding: 0
}
body > div.container-fluid > div > div.col-sm-10 > div.container > div > .row {
body > div.container-fluid > div > div.col-sm-10 > div.container1 > div > .row {
padding: 4px 0
}
body > div.container-fluid > div > div.col-sm-10 > div.container > div > .row:nth-of-type(even) {
body > div.container-fluid > div > div.col-sm-10 > div.container1 > div > .row:nth-of-type(even) {
background: hsla(0, 0%, 100%, .02)
}
body > div.container-fluid > div > div.col-sm-10 > div.container > div > .row > .col-xs-6 {
body > div.container-fluid > div > div.col-sm-10 > div.container1 > div > .row > .col-xs-6 {
width: calc(91.666% - 30px);
overflow: hidden;
-o-text-overflow: ellipsis;
@@ -2072,7 +2072,7 @@ body > div.container-fluid > div > div.col-sm-10 > div.container > div > .row >
padding-left: 60px
}
body > div.container-fluid > div > div.col-sm-10 > div.container > div > .row > .col-xs-6 > a {
body > div.container-fluid > div > div.col-sm-10 > div.container1 > div > .row > .col-xs-6 > a {
-o-text-overflow: ellipsis;
text-overflow: ellipsis;
white-space: nowrap;
@@ -2082,7 +2082,7 @@ body > div.container-fluid > div > div.col-sm-10 > div.container > div > .row >
}
body > div.container-fluid > div > div.col-sm-10 > div.discover > div.container {
body > div.container-fluid > div > div.col-sm-10 > div.discover > div.container1 {
width: calc(80% - 30px);
margin: 120px 0 30px 20%;
border-top: 2px solid rgba(0, 0, 0, .3);
@@ -2091,19 +2091,19 @@ body > div.container-fluid > div > div.col-sm-10 > div.discover > div.container
max-width: calc(80% - 30px)
}
body > div.container-fluid > div > div.col-sm-10 > div.discover > div.container > div {
body > div.container-fluid > div > div.col-sm-10 > div.discover > div.container1 > div {
padding: 0
}
body > div.container-fluid > div > div.col-sm-10 > div.discover > div.container > div > .row {
body > div.container-fluid > div > div.col-sm-10 > div.discover > div.container1 > div > .row {
padding: 4px 0
}
body > div.container-fluid > div > div.col-sm-10 > div.discover > div.container > div > .row:nth-of-type(even) {
body > div.container-fluid > div > div.col-sm-10 > div.discover > div.container1 > div > .row:nth-of-type(even) {
background: hsla(0, 0%, 100%, .02)
}
body > div.container-fluid > div > div.col-sm-10 > div.discover > div.container > div > .row > .col-xs-6 {
body > div.container-fluid > div > div.col-sm-10 > div.discover > div.container1 > div > .row > .col-xs-6 {
width: calc(91.666% - 30px);
overflow: hidden;
-o-text-overflow: ellipsis;
@@ -2112,7 +2112,7 @@ body > div.container-fluid > div > div.col-sm-10 > div.discover > div.container
padding-left: 60px
}
body > div.container-fluid > div > div.col-sm-10 > div.discover > div.container > div > .row > .col-xs-6 > a {
body > div.container-fluid > div > div.col-sm-10 > div.discover > div.container1 > div > .row > .col-xs-6 > a {
-o-text-overflow: ellipsis;
text-overflow: ellipsis;
white-space: nowrap;
@@ -2146,7 +2146,6 @@ body.catlist > div.container-fluid > div.row-fluid > div.col-sm-10:before {
}
}
body.authorlist > div.container-fluid > div.row-fluid > div.col-sm-10:before, body.langlist > div.container-fluid > div > div.col-sm-10:before {
font-family: 'Glyphicons Halflings', serif;
font-style: normal;
@@ -2172,10 +2171,12 @@ body.authorlist > div.container-fluid > div.row-fluid > div.col-sm-10:before {
}
body.langlist > div.container-fluid > div > div.col-sm-10:before {
content: "\e034"
content: "\e034";
top: 240px;
}
body.authorlist > div.container-fluid > div > div.col-sm-10 > div.container:before, body.catlist > div.container-fluid > div > div.col-sm-10 > div.container:before, body.langlist > div.container-fluid > div > div.col-sm-10 > div.container:before, body.me > div.container-fluid > div > div.col-sm-10 > div.discover:before, body.serieslist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.authorlist > div.container-fluid > div > div.col-sm-10 > div.container1:before, body.downloadlist > div.container-fluid > div > div.col-sm-10 > div.container1:before, body.catlist > div.container-fluid > div > div.col-sm-10 > div.container1:before, body.langlist > div.container-fluid > div > div.col-sm-10 > div.container1:before, body.me > div.container-fluid > div > div.col-sm-10 > div.discover:before, body.serieslist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
top: 60px;
font-size: 24px;
color: #eee;
@@ -2186,63 +2187,104 @@ body.authorlist > div.container-fluid > div > div.col-sm-10 > div.container:befo
font-weight: 400
}
body.authorlist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.authorlist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
content: "Authors";
top: 115px;
display: table;
}
@media screen and (max-width: 992px) {
body.authorlist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.authorlist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
top: 60px;
}
}
body.catlist > div.container-fluid > div > div.col-sm-10 > div.container:before {
@media screen and (max-width: 992px) {
body.downloadlist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
top: 60px;
}
}
body.downloadlist > div.container-fluid > div.row-fluid > div.col-sm-10:before {
font-family: Glyphicons Halflings, serif;
content: "\E026";
font-style: normal;
font-weight: 400;
line-height: 1;
font-size: 6vw;
position: fixed;
left: 240px;
top: 240px;
width: calc(20% - 55px);
text-align: center
}
@media screen and (max-width: 992px) {
body.downloadlist > div.container-fluid > div.row-fluid > div.col-sm-10:before {
top: 180px;
}
}
body.downloadlist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
content: "Downloads";
top: 115px;
display: table;
}
body.catlist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
content: "Categories";
top: 115px;
display: table;
}
@media screen and (max-width: 992px) {
body.catlist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.catlist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
top: 60px;
}
}
body.serieslist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.serieslist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
content: "Series";
top: 115px;
display: table;
}
@media screen and (max-width: 992px) {
body.serieslist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.serieslist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
top: 60px;
}
}
body.ratingslist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.ratingslist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
content: "File formats";
top: 115px;
display: table;
}
@media screen and (max-width: 992px) {
body.ratingslist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.ratingslist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
top: 60px;
}
}
body.formatslist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.formatslist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
content: "File formats";
top: 115px;
display: table;
}
@media screen and (max-width: 992px) {
body.formatslist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.formatslist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
top: 60px;
}
}
body.langlist > div.container-fluid > div > div.col-sm-10 > div.container:before {
content: "Languages"
body.langlist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
content: "Languages";
top: 115px;
display: table;
}
body.advsearch > div.container-fluid > div > div.col-sm-10 > div.col-md-10.col-lg-6 {
@@ -6421,7 +6463,7 @@ body.edituser.admin > div.container-fluid > div.row-fluid > div.col-sm-10 > div.
display: none !important
}
.shelforder > .container-fluid > .row-fluid > .col-sm-10 > div.col-sm-6.col-lg-6.col-xs-6 > h2:before, body.advsearch > div.container-fluid > div > div.col-sm-10:before, body.authorlist > div.container-fluid > div > div.col-sm-10 > div.container:before, body.catlist > div.container-fluid > div > div.col-sm-10 > div.container:before, body.langlist > div.container-fluid > div > div.col-sm-10 > div.container:before, body.login .navbar > .container-fluid > .navbar-header > button.navbar-toggle, body.serieslist > div.container-fluid > div > div.col-sm-10 > div.container:before {
.shelforder > .container-fluid > .row-fluid > .col-sm-10 > div.col-sm-6.col-lg-6.col-xs-6 > h2:before, body.advsearch > div.container-fluid > div > div.col-sm-10:before, body.authorlist > div.container-fluid > div > div.col-sm-10 > div.container1:before, body.catlist > div.container-fluid > div > div.col-sm-10 > div.container1:before, body.langlist > div.container-fluid > div > div.col-sm-10 > div.container1:before, body.downloadlist > div.container-fluid > div > div.col-sm-10 > div.container1:before, body.login .navbar > .container-fluid > .navbar-header > button.navbar-toggle, body.serieslist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
display: none
}
@@ -6527,7 +6569,7 @@ body.edituser.admin > div.container-fluid > div.row-fluid > div.col-sm-10 > div.
background-size: 30px
}
body.advanced_search > div.container-fluid > div > div.col-sm-10 > div.col-sm-8:before, body.author:not(.authorlist) .undefined-img:before, body.authorlist > div.container-fluid > div.row-fluid > div.col-sm-10:before, body.catlist > div.container-fluid > div.row-fluid > div.col-sm-10:before, body.langlist > div.container-fluid > div > div.col-sm-10:before, body.ratingslist > div.container-fluid > div > div.col-sm-10:before, body.serieslist > div.container-fluid > div > div.col-sm-10:before, body.shelforder > div.container-fluid > div.row-fluid > div.col-sm-10:before {
body.advanced_search > div.container-fluid > div > div.col-sm-10 > div.col-sm-8:before, body.author:not(.authorlist) .undefined-img:before, body.authorlist > div.container-fluid > div.row-fluid > div.col-sm-10:before, body.catlist > div.container-fluid > div.row-fluid > div.col-sm-10:before, body.downloadlist > div.container-fluid > div.row-fluid > div.col-sm-10:before, body.langlist > div.container-fluid > div > div.col-sm-10:before, body.ratingslist > div.container-fluid > div > div.col-sm-10:before, body.serieslist > div.container-fluid > div > div.col-sm-10:before, body.shelforder > div.container-fluid > div.row-fluid > div.col-sm-10:before {
position: fixed;
top: 62px;
right: 23px;
@@ -6547,7 +6589,7 @@ body.edituser.admin > div.container-fluid > div.row-fluid > div.col-sm-10 > div.
border-top: 1px solid hsla(0, 0%, 78%, .15)
}
body > div.container-fluid > div > div.col-sm-10 > div.container {
body > div.container-fluid > div > div.col-sm-10 > div.container1 {
left: 0;
width: auto;
margin: 0 !important;
@@ -6674,7 +6716,7 @@ body.edituser.admin > div.container-fluid > div.row-fluid > div.col-sm-10 > div.
margin-bottom: 5px
}
body > div.container-fluid > div > div.col-sm-10 > div.container > div > .row {
body > div.container-fluid > div > div.col-sm-10 > div.container1 > div > .row {
padding: 0
}
@@ -7441,11 +7483,11 @@ body.edituser.admin > div.container-fluid > div.row-fluid > div.col-sm-10 > div.
text-decoration: none
}
body > div.container-fluid > div > div.col-sm-10 > div.container > div > .row:nth-of-type(even) {
body > div.container-fluid > div > div.col-sm-10 > div.container1 > div > .row:nth-of-type(even) {
background: 0 0
}
body > div.container-fluid > div > div.col-sm-10 > div.container > div > .row {
body > div.container-fluid > div > div.col-sm-10 > div.container1 > div > .row {
border-bottom: 1px solid hsla(0, 0%, 78%, .15)
}
@@ -7600,7 +7642,7 @@ body.formatslist > div.container-fluid > div > div.col-sm-10:before {
}
}
body.publisherlist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.publisherlist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
content: "Publishers";
top: 115px;
font-size: 24px;
@@ -7608,17 +7650,18 @@ body.publisherlist > div.container-fluid > div > div.col-sm-10 > div.container:b
line-height: 1;
padding-left: 15px;
position: absolute;
display: table;
font-family: Open Sans Bold, Helvetica Neue, Helvetica, Arial, sans-serif;
font-weight: 400
}
@media screen and (max-width: 992px) {
body.publisherlist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.publisherlist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
top: 60px;
}
}
body.ratingslist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.ratingslist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
content: "Ratings";
top: 115px;
font-size: 24px;
@@ -7626,23 +7669,24 @@ body.ratingslist > div.container-fluid > div > div.col-sm-10 > div.container:bef
line-height: 1;
padding-left: 15px;
position: absolute;
display: table;
font-family: Open Sans Bold, Helvetica Neue, Helvetica, Arial, sans-serif;
font-weight: 400
}
@media screen and (max-width: 992px) {
body.ratingslist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.ratingslist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
top: 60px;
}
}
@media screen and (max-width: 768px) {
body.ratingslist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.ratingslist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
display: none;
}
}
body.formatslist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.formatslist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
content: "File formats";
top: 115px;
font-size: 24px;
@@ -7655,18 +7699,18 @@ body.formatslist > div.container-fluid > div > div.col-sm-10 > div.container:bef
}
@media screen and (max-width: 992px) {
body.formatslist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.formatslist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
top: 60px;
}
}
@media screen and (max-width: 768px) {
body.formatslist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.formatslist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
display: none;
}
}
body.publisherlist > div.container-fluid > div > div.col-sm-10 > div.container > div.col-sm-6 {
body.publisherlist > div.container-fluid > div > div.col-sm-10 > div.container1 > div.col-sm-6 {
width: 100%
}
@@ -7705,7 +7749,7 @@ body.publisherlist > div.container-fluid > div > div.col-sm-10 > div.container >
color: hsla(0, 0%, 100%, .7)
}
body.publisherlist > div.container-fluid > div > div.col-sm-10 > div.container:before {
body.publisherlist > div.container-fluid > div > div.col-sm-10 > div.container1:before {
display: none !important
}
}
+5
View File
@@ -13,6 +13,11 @@
color: #000;
}
.amberTheme {
background: #e8bf5e;
color: #000;
}
.blackTheme {
background: #000;
color: #fff;
+166 -80
View File
@@ -1,11 +1,10 @@
@font-face {
font-family: 'fontello';
src: url('fonts/fontello.eot?60518104');
src:
url('fonts/fontello.eot?60518104#iefix') format('embedded-opentype'),
url('fonts/fontello.woff?60518104') format('woff'),
url('fonts/fontello.ttf?60518104') format('truetype'),
url('fonts/fontello.svg?60518104#fontello') format('svg');
font-family: "fontello";
src: url("fonts/fontello.eot?60518104");
src: url("fonts/fontello.eot?60518104#iefix") format("embedded-opentype"),
url("fonts/fontello.woff?60518104") format("woff"),
url("fonts/fontello.ttf?60518104") format("truetype"),
url("fonts/fontello.svg?60518104#fontello") format("svg");
font-weight: normal;
font-style: normal;
}
@@ -48,7 +47,7 @@ body {
-webkit-transition: opacity 0.5s;
-moz-transition: opacity 0.5s;
transition: opacity 0.5s;
z-index: 10;
z-index: 100;
}
#titlebar:hover {
@@ -93,14 +92,18 @@ body {
box-shadow: inset 0 0 6px rgba(155, 155, 155, 0.8);
}
#book-title { font-weight: 600; }
#title-seperator { display: none; }
#book-title {
font-weight: 600;
}
#title-seperator {
display: none;
}
#viewer {
width: 80%;
height: 80%;
margin: 0 auto;
z-index: 2;
z-index: 0;
position: relative;
overflow: hidden;
}
@@ -136,6 +139,7 @@ body {
user-select: none;
padding-top: 160px;
padding-bottom: 160px;
z-index: 10;
}
.arrow:hover {
@@ -200,10 +204,16 @@ body {
max-width: 80%;
}
#title-controls { float: right; }
#title-controls {
float: right;
}
#panels a::before { visibility: visible; }
#panels a:hover { color: #aaa; }
#panels a::before {
visibility: visible;
}
#panels a:hover {
color: #aaa;
}
.list_item.currentChapter > a,
.list_item a:hover {
@@ -237,8 +247,12 @@ body {
margin-top: -1px;
}
input::-webkit-input-placeholder { color: #454545; }
input:-moz-placeholder { color: #454545; }
input::-webkit-input-placeholder {
color: #454545;
}
input:-moz-placeholder {
color: #454545;
}
#divider {
position: absolute;
@@ -378,14 +392,14 @@ input:-moz-placeholder { color: #454545; }
}
.toc_toggle::before {
content: '▸';
content: "▸";
color: #fff;
margin-right: -4px;
}
.currentChapter > .toc_toggle::before,
.openChapter > .toc_toggle::before {
content: '▾';
content: "▾";
}
.view {
@@ -499,21 +513,33 @@ input:-moz-placeholder { color: #454545; }
list-style-type: none;
}
#settingsPanel .xsmall { font-size: x-small; }
#settingsPanel .small { font-size: small; }
#settingsPanel .medium { font-size: medium; }
#settingsPanel .large { font-size: large; }
#settingsPanel .xlarge { font-size: x-large; }
#settingsPanel .xsmall {
font-size: x-small;
}
#settingsPanel .small {
font-size: small;
}
#settingsPanel .medium {
font-size: medium;
}
#settingsPanel .large {
font-size: large;
}
#settingsPanel .xlarge {
font-size: x-large;
}
.highlight { background-color: yellow; }
.highlight {
background-color: yellow;
}
.modal {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 100vw;
height: auto;
width: 97vw;
height: 90dvh;
max-width: 630px;
z-index: 2000;
visibility: hidden;
@@ -539,7 +565,7 @@ input:-moz-placeholder { color: #454545; }
}
.md-show ~ .overlay {
opacity: 1;
/* opacity: 1; */
visibility: visible;
}
@@ -554,7 +580,7 @@ input:-moz-placeholder { color: #454545; }
}
.md-content > div {
padding: 15px 40px 30px;
padding: 10px 20px;
margin: 0;
font-weight: 300;
font-size: 14px;
@@ -581,6 +607,7 @@ input:-moz-placeholder { color: #454545; }
color: white;
}
.md-content .themes button.lightTheme,
.md-content .themes button.whiteTheme {
background-color: white;
color: black;
@@ -591,6 +618,11 @@ input:-moz-placeholder { color: #454545; }
color: black;
}
.md-content .themes button.amberTheme {
background-color: #e8bf5e;
color: black;
}
.md-content .themes button.blackTheme {
background-color: black;
color: white;
@@ -638,31 +670,47 @@ input:-moz-placeholder { color: #454545; }
@media only screen and (max-width: 900px) {
#viewer {
width: 60%;
margin-left: 20%;
width: 100%;
height: calc(100dvh - 99px);
margin-left: 0;
}
#viewer iframe {
width: 100%;
height: 100%;
}
#prev {
left: 20px;
z-index: 10;
}
#next {
right: 20px;
z-index: 10;
}
}
@media only screen and (max-width: 550px) {
#viewer {
width: 80%;
margin-left: 10%;
width: 100%;
height: calc(100dvh - 99px);
margin-left: 0;
}
#viewer iframe {
width: 100%;
height: 100%;
}
#prev {
left: 0;
z-index: 10;
}
#next {
right: 0;
z-index: 10;
}
.arrow {
@@ -712,11 +760,7 @@ input:-moz-placeholder { color: #454545; }
}
}
@media only screen
and (min-device-width: 768px)
and (max-device-width: 1024px)
and (orientation: landscape)
/* and (-webkit-min-device-pixel-ratio: 2)*/ {
@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: landscape) /* and (-webkit-min-device-pixel-ratio: 2) */ {
#viewer {
width: 80%;
margin-left: 10%;
@@ -739,47 +783,52 @@ input:-moz-placeholder { color: #454545; }
/* For iPhone 6\6s portrait layouts only */
@media only screen and (min-device-width: 375px) and (max-device-width: 667px) and (orientation: portrait) {
#viewer {
width: 300px;
height: 480px;
width: 100%;
height: calc(100dvh - 99px);
}
#viewer iframe {
width: 300px;
height: 480px;
width: 100%;
height: 100%;
}
}
/* For iPhone 6\6s landscape layouts only */
@media only screen and (min-device-width: 375px) and (max-device-width: 667px) and (orientation: landscape) {
#viewer {
width: 450px;
height: 300px;
width: 100%;
height: calc(100dvh - 99px);
}
#viewer iframe {
width: 450px;
height: 300px;
width: 100%;
height: 100%;
}
}
/* For iPhone portrait layouts only */
@media only screen and (max-device-width: 374px) and (orientation: portrait) {
#viewer {
width: 256px;
height: 432px;
width: 100%;
height: calc(100dvh - 99px);
}
#viewer iframe {
width: 256px;
height: 432px;
width: 100%;
height: 100%;
}
}
/* For iPhone landscape layouts only */
@media only screen and (max-device-width: 374px) and (orientation: landscape) {
#viewer {
width: 100%;
height: calc(100dvh - 99px);
}
#viewer iframe {
width: 256px;
height: 124px;
width: 100%;
height: 100%;
}
}
@@ -803,32 +852,69 @@ input:-moz-placeholder { color: #454545; }
font-size: 112%;
}
.icon-search::before { content: '\e807'; } /* '' */
.icon-resize-full-1::before { content: '\e804'; } /* '' */
.icon-cancel-circled2::before { content: '\e80f'; } /* '' */
.icon-link::before { content: '\e80d'; } /* '' */
.icon-bookmark::before { content: '\e805'; } /* '' */
.icon-bookmark-empty::before { content: '\e806'; } /* '' */
.icon-download-cloud::before { content: '\e811'; } /* '' */
.icon-edit::before { content: '\e814'; } /* '' */
.icon-menu::before { content: '\e802'; } /* '' */
.icon-cog::before { content: '\e813'; } /* '' */
.icon-resize-full::before { content: '\e812'; } /* '' */
.icon-cancel-circled::before { content: '\e80e'; } /* '' */
.icon-up-dir::before { content: '\e80c'; } /* '' */
.icon-right-dir::before { content: '\e80b'; } /* '' */
.icon-angle-right::before { content: '\e809'; } /* '' */
.icon-angle-down::before { content: '\e80a'; } /* '' */
.icon-right::before { content: '\e815'; } /* '' */
.icon-list-1::before { content: '\e803'; } /* '' */
.icon-list-numbered::before { content: '\e801'; } /* '' */
.icon-columns::before { content: '\e810'; } /* '' */
.icon-list::before { content: '\e800'; } /* '' */
.icon-resize-small::before { content: '\e808'; } /* '' */
#progress{
right: 4rem;
bottom: 4rem;
width: fit-content;
position: absolute;
}
.icon-search::before {
content: "\e807";
} /* '' */
.icon-resize-full-1::before {
content: "\e804";
} /* '' */
.icon-cancel-circled2::before {
content: "\e80f";
} /* '' */
.icon-link::before {
content: "\e80d";
} /* '' */
.icon-bookmark::before {
content: "\e805";
} /* '' */
.icon-bookmark-empty::before {
content: "\e806";
} /* '' */
.icon-download-cloud::before {
content: "\e811";
} /* '' */
.icon-edit::before {
content: "\e814";
} /* '' */
.icon-menu::before {
content: "\e802";
} /* '' */
.icon-cog::before {
content: "\e813";
} /* '' */
.icon-resize-full::before {
content: "\e812";
} /* '' */
.icon-cancel-circled::before {
content: "\e80e";
} /* '' */
.icon-up-dir::before {
content: "\e80c";
} /* '' */
.icon-right-dir::before {
content: "\e80b";
} /* '' */
.icon-angle-right::before {
content: "\e809";
} /* '' */
.icon-angle-down::before {
content: "\e80a";
} /* '' */
.icon-right::before {
content: "\e815";
} /* '' */
.icon-list-1::before {
content: "\e803";
} /* '' */
.icon-list-numbered::before {
content: "\e801";
} /* '' */
.icon-columns::before {
content: "\e810";
} /* '' */
.icon-list::before {
content: "\e800";
} /* '' */
.icon-resize-small::before {
content: "\e808";
} /* '' */
+37 -3
View File
@@ -11,7 +11,7 @@
border-radius: 20px;
display: flex;
align-items: center;
box-shadow: 0px 15px 40px #7E6D5766;
box-shadow: 0px 15px 40px #7e6d5766;
}
.slider label {
font-size: 20px;
@@ -29,8 +29,8 @@
}
.item {
font-size: 20px;
font-weight: 400;
font-size: 14px;
font-weight: 600;
font-family: Open Sans;
padding-right: 10px;
color: white;
@@ -45,3 +45,37 @@
margin-right: 1%;
font-size: 16px;
}
#main,
#viewer,
#sidebar,
#tocView {
touch-action: pan-y;
}
.read-footer {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 12px;
}
.read-footer #pages-count {
font-size: 12px;
position: absolute;
left: 12px;
bottom: 2px;
}
#back-button {
width: 50px !important;
right: 50px;
// position: absolute;
}
#progress {
right: 4rem;
bottom: 2px;
width: fit-content;
position: absolute;
}
+3
View File
@@ -429,6 +429,9 @@ div.log {
padding: 0.5em;
}
.badge-sm{
font-size: 70%;
}
#detailcover { cursor:zoom-in; }
#detailcover:-webkit-full-screen { cursor:zoom-out; border: 0; }
#detailcover:-moz-full-screen { cursor:zoom-out; border: 0; }
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+93 -13
View File
@@ -10,7 +10,7 @@ var reader;
reader = ePubReader(calibre.bookUrl, {
restore: true,
bookmarks: calibre.bookmark ? [calibre.bookmark] : []
bookmarks: calibre.bookmark ? [calibre.bookmark] : [],
});
Object.keys(themes).forEach(function (theme) {
@@ -54,29 +54,92 @@ var reader;
// Update progress percentage
let progressDiv = document.getElementById("progress");
reader.book.ready.then((()=>{
let locations_key = reader.book.key()+'-locations';
// Pages counter (virtual pages via EPUB locations)
let pagesDiv = document.getElementById("pages-count");
// Honor saved visibility preference for pages counter
(function () {
try {
var pref = localStorage.getItem("calibre.reader.showPages");
var show = pref === null ? true : pref === "true";
if (pagesDiv)
pagesDiv.style.visibility = show ? "visible" : "hidden";
} catch (e) {}
})();
reader.book.ready.then(() => {
let locations_key = reader.book.key() + "-locations";
// Key to persist last-read position for this book in localStorage
let position_key = "calibre.reader.position." + reader.book.key();
let stored_locations = localStorage.getItem(locations_key);
let make_locations, save_locations;
if (stored_locations) {
make_locations = Promise.resolve(reader.book.locations.load(stored_locations));
make_locations = Promise.resolve(
reader.book.locations.load(stored_locations)
);
// No-op because locations are already saved
save_locations = () => {};
} else {
make_locations = reader.book.locations.generate();
save_locations = () => {
localStorage.setItem(locations_key, reader.book.locations.save());
localStorage.setItem(
locations_key,
reader.book.locations.save()
);
};
}
make_locations.then(()=>{
reader.rendition.on('relocated', (location)=>{
make_locations
.then(() => {
// Try to restore last position (CFI) from localStorage if present
try {
var _savedPos = localStorage.getItem(position_key);
if (_savedPos) {
try {
var _posObj = JSON.parse(_savedPos);
if (_posObj && _posObj.cfi) {
// Display the saved CFI location
try {
reader.rendition.display(_posObj.cfi);
} catch (e) {}
}
} catch (e) {}
}
} catch (e) {}
reader.rendition.on("relocated", (location) => {
let percentage = Math.round(location.end.percentage * 100);
progressDiv.textContent = percentage + "%";
// Pages based on generated EPUB locations (CFI positions)
const cfi = location.start.cfi;
const current =
reader.book.locations.locationFromCfi(cfi) || 0; // 1-based index typically
const total = reader.book.locations.length() || 0;
if (total > 0) {
pagesDiv.textContent = current + "/" + total;
pagesDiv.style.visibility = "visible";
} else {
pagesDiv.textContent = "";
pagesDiv.style.visibility = "hidden";
}
// Persist last position (CFI + percentage) to localStorage so reader can restore on next open
try {
var posObj = {
cfi: location.start.cfi,
percentage: location.start.percentage,
};
localStorage.setItem(
position_key,
JSON.stringify(posObj)
);
} catch (e) {}
});
reader.rendition.reportLocation();
progressDiv.style.visibility = "visible";
}).then(save_locations);
}));
})
.then(save_locations);
});
/**
* @param {string} action - Add or remove bookmark
@@ -85,11 +148,15 @@ var reader;
function updateBookmark(action, location) {
// Remove other bookmarks (there can only be one)
if (action === "add") {
this.settings.bookmarks.filter(function (bookmark) {
this.settings.bookmarks
.filter(function (bookmark) {
return bookmark && bookmark !== location;
}).map(function (bookmark) {
})
.map(
function (bookmark) {
this.removeBookmark(bookmark);
}.bind(this));
}.bind(this)
);
}
var csrftoken = $("input[name='csrf_token']").val();
@@ -98,7 +165,7 @@ var reader;
$.ajax(calibre.bookmarkUrl, {
method: "post",
data: { bookmark: location || "" },
headers: { "X-CSRFToken": csrftoken }
headers: { "X-CSRFToken": csrftoken },
}).fail(function (xhr, status, error) {
alert(error);
});
@@ -107,4 +174,17 @@ var reader;
// Default settings load
const theme = localStorage.getItem("calibre.reader.theme") ?? "lightTheme";
selectTheme(theme);
// Restore saved font and font size after reader is ready
reader.book.ready.then(() => {
const savedFontSize = localStorage.getItem("calibre.reader.fontSize");
if (savedFontSize) {
reader.rendition.themes.fontSize(`${savedFontSize}%`);
}
const savedFont = localStorage.getItem("calibre.reader.font");
if (savedFont && window.selectFont) {
window.selectFont(savedFont);
}
});
})();
+3 -5
View File
@@ -153,7 +153,7 @@
{% if current_user.is_authenticated or g.allow_anonymous %}
<li class="nav-head hidden-xs public-shelves">{{_('Shelves')}}</li>
{% for shelf in g.shelves_access %}
<li><a href="{{url_for('shelf.show_shelf', shelf_id=shelf.id)}}"><span class="glyphicon glyphicon-list shelf"></span> {{shelf.name|shortentitle(40)}}{% if shelf.is_public == 1 %} {{_('(Public)')}}{% endif %}</a></li>
<li><a href="{{url_for('shelf.show_shelf', shelf_id=shelf.id)}}"><span class="glyphicon glyphicon-list shelf"></span> {{shelf.name|shortentitle(40)}}{% if shelf.is_public == 1 %} {{_('(Public)')}}{% endif %} <span class="badge badge-sm">{{shelf.books.all()|length}}</span></a></li>
{% endfor %}
{% if not current_user.is_anonymous %}
<li id="nav_createshelf" class="create-shelf"><a href="{{url_for('shelf.create_shelf')}}">{{_('Create a Shelf')}}</a></li>
@@ -170,8 +170,7 @@
{% if pagination and (pagination.has_next or pagination.has_prev) %}
<div class="pagination">
{% if pagination.has_prev %}
<li class="page-item page-previous"><a class="page-link" aria-label="next page" href="{{ (pagination.page - 1)|url_for_other_page
}}">&laquo; {{_('Previous')}}</a></li>
<li class="page-item page-previous"><a class="page-link" aria-label="next page" href="{{ (pagination.page - 1)|url_for_other_page }}">&laquo; {{_('Previous')}}</a></li>
{% endif %}
{% for page in pagination.iter_pages() %}
{% if page %}
@@ -185,8 +184,7 @@
{% endif %}
{% endfor %}
{% if pagination.has_next %}
<li class="page-item page-next"><a class="page-link next" aria-label="next page" href="{{ (pagination.page + 1)|url_for_other_page
}}">{{_('Next')}} &raquo;</a></li>
<li class="page-item page-next"><a class="page-link next" aria-label="next page" href="{{ (pagination.page + 1)|url_for_other_page }}">{{_('Next')}} &raquo;</a></li>
{% endif %}
</div>
{% endif %}
+1 -1
View File
@@ -22,7 +22,7 @@
<button class="update-view btn btn-primary" data-target="series_view" id="grid-button" data-view="grid">{{_('Grid')}}</button>
{% endif %}
</div>
<div>
<div class="container1">
<div id="list" class="col-xs-12 col-sm-6">
{% for entry in entries %}
{% if loop.index0 == (loop.length/2+loop.length%2)|int and loop.length > 20 %}
+294 -19
View File
@@ -29,6 +29,7 @@
<!--a id="show-Search" class="show_view icon-search" data-view="Search">Search</a-->
<a id="show-Toc" class="show_view icon-list-1 active" data-view="Toc">TOC</a>
<a id="show-Bookmarks" class="show_view icon-bookmark" data-view="Bookmarks">Bookmarks</a>
<a id="back-button" data-view="Back to Books" href="{{ url_for('web.index') }}">Books</a>
<!--a id="show-Notes" class="show_view icon-edit" data-view="Notes">Notes</a-->
</div>
@@ -49,7 +50,6 @@
</div-->
</div>
<div id="main">
<div id="titlebar">
<div id="opener">
<a id="slider" class="icon-menu">Menu</a>
@@ -70,8 +70,13 @@
<div id="prev" class="arrow">‹</div>
<div id="viewer"></div>
<div id="next" class="arrow">›</div>
<div class="read-footer">
<div id="pages-count"></div>
<div id="progress">0%</div>
<div id="loader"><img src="{{ url_for('static', filename='img/loader.gif') }}"></div>
</div>
<div id="loader">
<img src="{{ url_for('static', filename='img/loader.gif') }}">
</div>
</div>
<div class="modal md-effect-1" id="settings-modal">
<div class="md-content">
@@ -86,8 +91,17 @@
id="darkSelected"> </span>{{_('Dark')}}</button>
<button type="button" id="sepiaTheme" class="sepiaTheme" onclick="selectTheme(this.id)"><span
id="sepiaSelected"> </span>{{_('Sepia')}}</button>
<button type="button" id="amberTheme" class="amberTheme" onclick="selectTheme(this.id)"><span
id="amberSelected"> </span>{{_('Amber')}}</button>
<button type="button" id="blackTheme" class="blackTheme" onclick="selectTheme(this.id)"><span
id="blackSelected"> </span>{{_('Black')}}</button>
<!-- Custom theme: color input + pickr -->
<div id="customThemeWrapper" style="display: inline-flex; align-items: center;gap: 8px;margin: 5px 8px;">Custom:
<!-- Picker-only UI: swatch acts as the picker button, and a small span shows selection tick -->
<div id="customThemeSwatch" title="Pick color" style="width: 30px; height: 30px; border: 1px solid #ccc; border-radius: 3px;cursor: pointer;"></div>
<span id="customSelected"> </span>
</div>
</div>
<div class="form-group">
<p>
@@ -95,10 +109,17 @@
name="sidebarReflow">{{_('Reflow text when sidebars are open.')}}
</p>
</div>
<div class="form-group">
<p>
<input type="checkbox" id="showPagesCount" name="showPagesCount"/>{{_('Show pages count')}}
</p>
</div>
<div class="form-group fontSizeWrapper">
<div class="slider">
<label for="fader">{{ _('Font Sizes') }}</label>
<input type="range" min="75" max="200" value="100" id="fontSizeFader" step="25">
<label>{{ _('Font Size') }}</label>
<div class="font-size-controls" style="display: flex;align-items: center;gap: 10px;margin-top: 2px;">
<button type="button" id="fontSizeDecrease" style="padding: 8px 15px; font-size: 18px; cursor: pointer">−</button>
<span id="fontSizeDisplay" style="min-width: 60px;text-align: center;font-size: 14px;font-weight: bold;">100%</span>
<button type="button" id="fontSizeIncrease" style="padding: 8px 15px; font-size: 18px; cursor: pointer">+</button>
</div>
</div>
<div class="font" id="font">
@@ -119,8 +140,7 @@
</div>
<div class="overlay"></div>
<script src="{{ url_for('static', filename='js/libs/jquery.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/compress/jszip_epub.min.js') }}">
</script>
<script src="{{ url_for('static', filename='js/compress/jszip_epub.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/libs/epub.min.js') }}"></script>
<script type="text/javascript">
window.calibre = {
@@ -132,6 +152,14 @@
useBookmarks: "{{ current_user.is_authenticated | tojson }}"
};
// load custom theme color from localStorage (if any)
var _savedCustomThemeColor = null;
try {
_savedCustomThemeColor = localStorage.getItem(
"calibre.reader.customTheme"
);
} catch (e) {}
window.themes = {
"darkTheme": {
"bgColor": "#202124",
@@ -148,6 +176,11 @@
"css_path": "{{ url_for('static', filename='css/epub_themes.css') }}",
"title-color": "#4f4f4f"
},
"amberTheme": {
"bgColor": "#e8bf5e",
"css_path": "{{ url_for('static', filename='css/epub_themes.css') }}",
"title-color": "#2f2f2f"
},
"blackTheme": {
"bgColor": "black",
"css_path": "{{ url_for('static', filename='css/epub_themes.css') }}",
@@ -157,20 +190,46 @@
function selectTheme (id) {
let tickSpans = document.getElementById("themes").querySelectorAll("span");
// Remove tick mark from all theme buttons
tickSpans.forEach(function (tickSpan) {
document.getElementById(tickSpan.id).textContent = "";
try {
tickSpan.textContent = "";
} catch (e) {}
});
// Add tick mark to the button corresponding to the currently selected theme
document.getElementById(id).querySelector("span").textContent = "✓";
// If the theme button exists, set its inner span to a tick. Otherwise set any span with the matching id.
let el = document.getElementById(id);
if (el) {
let sp = el.querySelector("span");
if (sp) sp.textContent = "✓";
} else {
let spById = document.getElementById(id + "Selected") || document.getElementById("customSelected");
if (spById) spById.textContent = "✓";
}
// Saving theme to local storage
localStorage.setItem("calibre.reader.theme", id);
// If selecting custom theme, ensure epubjs theme is registered with chosen bg color
if (id === "customTheme") {
let customColor = window.themes.customTheme.bgColor || "#ffffff";
try {
if (reader && reader.rendition && reader.rendition.themes) {
reader.rendition.themes.register("customTheme", {
body: {
background: customColor,
},
});
reader.rendition.themes.select("customTheme");
}
} catch (e) {
console.error("Failed to register/select customTheme", e);
}
} else {
// Apply theme to epubjs iframe
try {
reader.rendition.themes.select(id);
} catch (e) {}
}
// Apply theme to rest of the page.
document.getElementById("main").style.backgroundColor = themes[id]["bgColor"];
@@ -179,14 +238,45 @@
}
// font size settings logic
let fontSizeFader = document.getElementById('fontSizeFader');
fontSizeFader.addEventListener("change", function () {
reader.rendition.themes.fontSize(`${this.value}%`);
let currentFontSize = 100; // default 100%
const minFontSize = 50;
const maxFontSize = 300;
const stepSize = 5;
const fontSizeDisplay = document.getElementById("fontSizeDisplay");
const fontSizeDecrease = document.getElementById("fontSizeDecrease");
const fontSizeIncrease = document.getElementById("fontSizeIncrease");
function updateFontSize(newSize) {
if (newSize < minFontSize) newSize = minFontSize;
if (newSize > maxFontSize) newSize = maxFontSize;
currentFontSize = newSize;
fontSizeDisplay.textContent = newSize + "%";
localStorage.setItem("calibre.reader.fontSize", newSize);
if (reader && reader.rendition) {
reader.rendition.themes.fontSize(`${newSize}%`);
}
}
// Restore saved font size on load
const savedFontSize = localStorage.getItem("calibre.reader.fontSize");
if (savedFontSize) {
currentFontSize = parseInt(savedFontSize);
fontSizeDisplay.textContent = savedFontSize + "%";
}
fontSizeDecrease.addEventListener("click", function () {
updateFontSize(currentFontSize - stepSize);
});
fontSizeIncrease.addEventListener("click", function () {
updateFontSize(currentFontSize + stepSize);
});
let defaultFont;
function selectFont(id) {
window.selectFont = function (id) {
if (!defaultFont) {
defaultFont = reader.rendition.getContents()[0]?.css('font-family');
}
@@ -197,12 +287,15 @@
}
document.getElementById(id).querySelector("span").textContent = "✓";
if (id == 'default') {
// Save font selection to localStorage
localStorage.setItem("calibre.reader.font", id);
if (id == "default") {
reader.rendition.themes.font(defaultFont);
return;
}
reader.rendition.themes.font(id);
}
};
function spread(id) {
spans = document.getElementById("layout").querySelectorAll("span");
@@ -210,8 +303,190 @@
spans[i].textContent = "";
}
document.getElementById(id).querySelector("span").textContent = "✓";
reader.rendition.spread(id==='spread'?true:'none');
reader.rendition.spread(id==="spread" ? true : "none");
}
// Pages counter visibility setting
(function () {
var checkbox = document.getElementById("showPagesCount");
var pagesEl = document.getElementById("pages-count");
var key = "calibre.reader.showPages";
var saved = localStorage.getItem(key);
var show = saved === null ? true : saved === "true";
if (checkbox) checkbox.checked = show;
if (pagesEl) pagesEl.style.display = show ? "" : "none";
if (checkbox) {
checkbox.addEventListener("change", function () {
var val = checkbox.checked;
localStorage.setItem(key, String(val));
var target = document.getElementById("pages-count");
if (target) target.style.visibility = val ? "visible" : "hidden";
});
}
})();
</script>
<script type="text/javascript">
// Initialize custom theme UI and Pickr once Pickr is available
(function () {
var swatch = document.getElementById("customThemeSwatch");
var saved =
window.themes &&
window.themes.customTheme &&
window.themes.customTheme.bgColor
? window.themes.customTheme.bgColor
: "#ffffff";
if (swatch) swatch.style.background = saved;
function _hexToRgb(hex) {
hex = hex.replace("#", "");
if (hex.length === 3) {
hex = hex
.split("")
.map(function (h) {
return h + h;
})
.join("");
}
var bigint = parseInt(hex, 16);
return {
r: (bigint >> 16) & 255,
g: (bigint >> 8) & 255,
b: bigint & 255,
};
}
// Better contrast decision using WCAG relative luminance and contrast ratio
// Returns true if black text is the better choice (i.e. background is light)
function _isLight(hex) {
try {
var rgb = _hexToRgb(hex);
// convert 0-255 to 0-1
var srgb = { r: rgb.r / 255, g: rgb.g / 255, b: rgb.b / 255 };
function lin(c) {
return c <= 0.03928
? c / 12.92
: Math.pow((c + 0.055) / 1.055, 2.4);
}
var R = lin(srgb.r),
G = lin(srgb.g),
B = lin(srgb.b);
var L = 0.2126 * R + 0.7152 * G + 0.0722 * B; // relative luminance
// contrast ratios against black (L=0) and white (L=1)
var contrastWithBlack = (L + 0.05) / (0.0 + 0.05);
var contrastWithWhite = (1.0 + 0.05) / (L + 0.05);
// pick the text color that gives higher contrast. If black gives >= contrast, treat bg as light
return contrastWithBlack >= contrastWithWhite;
} catch (e) {
return true;
}
}
function applyCustomColor(hex) {
if (!hex) return;
if (hex[0] !== "#") hex = "#" + hex;
window.themes.customTheme.bgColor = hex;
try {
localStorage.setItem("calibre.reader.customTheme", hex);
} catch (e) {}
if (swatch) swatch.style.background = hex;
// Mark theme as selected
try {
localStorage.setItem("calibre.reader.theme", "customTheme");
} catch (e) {}
// Clear ticks and set custom tick
var tickSpans = document
.getElementById("themes")
.querySelectorAll("span");
tickSpans.forEach(function (ts) {
ts.textContent = "";
});
var customTick = document.getElementById("customSelected");
if (customTick) customTick.textContent = "✓";
// Compute title/text color based on contrast (black or white)
var titleColor = _isLight(hex) ? "#000000" : "#ffffff";
try {
document.getElementById("main").style.backgroundColor = hex;
document.getElementById("titlebar").style.color = titleColor;
document.getElementById("progress").style.color = titleColor;
} catch (e) {}
// Persist title-color in themes map so selectTheme reads a consistent value
try {
window.themes.customTheme["title-color"] = titleColor;
} catch (e) {}
// Register and select theme in epub rendition (include text color)
try {
if (reader && reader.rendition && reader.rendition.themes) {
reader.rendition.themes.register("customTheme", {
body: { background: hex, color: titleColor },
});
reader.rendition.themes.select("customTheme");
}
} catch (e) {
console.error("Failed to apply custom theme to reader", e);
}
}
// Delay init until Pickr is available
function ensurePickrAndInit() {
if (window.Pickr) {
try {
var pickr = Pickr.create({
el: "#customThemeSwatch",
theme: "classic",
default: saved,
components: {
preview: true,
opacity: false,
hue: true,
interaction: {
hex: true,
input: true,
save: true,
},
},
});
// Immediate apply when color changes in the picker
pickr.on("change", function (color, instance) {
try {
var hex = color.toHEXA().toString();
if (swatch) swatch.style.background = hex;
applyCustomColor(hex);
} catch (e) {}
});
// Also respond to save (some pickr configs use save)
pickr.on("save", function (color, instance) {
try {
var hex = color.toHEXA().toString();
if (swatch) swatch.style.background = hex;
applyCustomColor(hex);
pickr.hide();
} catch (e) {}
});
// Clicking swatch opens pickr
if (swatch)
swatch.addEventListener("click", function () {
pickr.show();
});
} catch (e) {
console.error("Pickr init failed", e);
}
return;
}
// wait a bit
setTimeout(ensurePickrAndInit, 150);
}
ensurePickrAndInit();
})();
</script>
<script src="{{ url_for('static', filename='js/libs/screenfull.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/libs/reader.min.js') }}"></script>
Binary file not shown.
+35 -27
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2025-06-07 14:44+0300\n"
"Last-Translator: UsamaFoad <usamafoad@gmail.com>\n"
"Language: ar\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -549,7 +549,7 @@ msgstr "غير مثبت"
msgid "Execution permissions missing"
msgstr "أذونات التنفيذ مفقودة"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -966,7 +966,7 @@ msgstr "خطأ في OAuth الخاص بـ Google، يرجى المحاولة ل
msgid "Google Oauth error: {}"
msgstr "خطأ في OAuth الخاص بـ Google: {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{} نجوم"
@@ -1925,12 +1925,12 @@ msgstr "تاريخ النشر"
msgid "Description:"
msgstr "الوصف:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "السابق"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "التالي"
@@ -1990,7 +1990,7 @@ msgid "Uploading..."
msgstr "جاري التحميل..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "إغلاق"
@@ -3022,7 +3022,7 @@ msgstr "السمة البسيطة"
msgid "Account"
msgstr "الحساب"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "الإعدادات"
@@ -3039,7 +3039,7 @@ msgstr "تصفح"
msgid "About"
msgstr "حول"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "تفاصيل الكتاب"
@@ -3163,67 +3163,75 @@ msgstr "كتالوج الكتب الإلكترونية Calibre-Web"
msgid "epub Reader"
msgstr "قارئ epub"
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr "اختر سمة أدناه:"
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "فاتح"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "داكن"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr "بني داكن"
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr "أسود"
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "إعادة تدفق النص عند فتح الأشرطة الجانبية."
#: cps/templates/read.html:100
msgid "Font Sizes"
msgstr "أحجام الخطوط"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr "الخط"
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr "افتراضي"
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr "ياهاي"
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr "SimSun"
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr "KaiTi"
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr "Arial"
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr "انتشار"
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr "عمودان"
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr "عمود واحد"
Binary file not shown.
+34 -26
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2020-06-09 21:11+0100\n"
"Last-Translator: Lukas Heroudek <lukas.heroudek@gmail.com>\n"
"Language: cs_CZ\n"
@@ -15,7 +15,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -548,7 +548,7 @@ msgstr "není nainstalováno"
msgid "Execution permissions missing"
msgstr "Chybí povolení k exekuci"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -965,7 +965,7 @@ msgstr "Google Oauth chyba, prosím opakujte později."
msgid "Google Oauth error: {}"
msgstr ""
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr ""
@@ -1924,12 +1924,12 @@ msgstr "Publikováno"
msgid "Description:"
msgstr "Popis:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Předchozí"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Další"
@@ -1989,7 +1989,7 @@ msgid "Uploading..."
msgstr "Nahrávání..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Zavřít"
@@ -3021,7 +3021,7 @@ msgstr ""
msgid "Account"
msgstr "Účet"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Nastavení"
@@ -3038,7 +3038,7 @@ msgstr "Procházet"
msgid "About"
msgstr "O knihovně"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Podrobnosti o knize"
@@ -3162,67 +3162,75 @@ msgstr "Calibre-Web katalog eknih"
msgid "epub Reader"
msgstr ""
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Světlý"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Tmavý"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr ""
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr ""
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Po otevření postranních panelů přeformátujte text."
#: cps/templates/read.html:100
msgid "Font Sizes"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr ""
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr ""
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr ""
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr ""
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr ""
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr ""
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr ""
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
Binary file not shown.
+35 -27
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2025-10-22 19:56+0200\n"
"Last-Translator: Sebastian Holzer\n"
"Language: de\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -549,7 +549,7 @@ msgstr "Nicht installiert"
msgid "Execution permissions missing"
msgstr "Ausführberechtigung fehlt"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -966,7 +966,7 @@ msgstr "Google OAuth Fehler, bitte später erneut versuchen."
msgid "Google Oauth error: {}"
msgstr "Google OAuth Fehler: {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{} Sterne"
@@ -1925,12 +1925,12 @@ msgstr "Herausgabedatum"
msgid "Description:"
msgstr "Beschreibung:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Vorheriger Eintrag"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Nächste"
@@ -1990,7 +1990,7 @@ msgid "Uploading..."
msgstr "Lade hoch..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Schließen"
@@ -3022,7 +3022,7 @@ msgstr "Einfaches Design"
msgid "Account"
msgstr "Account"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Einstellungen"
@@ -3039,7 +3039,7 @@ msgstr "Durchsuchen"
msgid "About"
msgstr "Über"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Buchdetails"
@@ -3163,67 +3163,75 @@ msgstr "Calibre-Web E-Book-Katalog"
msgid "epub Reader"
msgstr "EPUB-Leser"
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr "Wähle ein Design:"
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Hell"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Dunkel"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr "Sepia"
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr "Schwarz"
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Text umbrechen, wenn Seitenleiste geöffnet ist."
#: cps/templates/read.html:100
msgid "Font Sizes"
msgstr "Schriftgröße"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr "Schriftart"
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr "Standard"
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr "Yahei"
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr "SimSun"
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr "KaiTi"
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr "Arial"
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr "Aufteilung"
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr "Zwei Spalten"
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr "Eine Spalte"
Binary file not shown.
+34 -26
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Depountis Georgios\n"
"Language: el\n"
@@ -15,7 +15,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -548,7 +548,7 @@ msgstr "δεν εγκαταστάθηκε"
msgid "Execution permissions missing"
msgstr "Λείπουν άδειες εκτέλεσης"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -965,7 +965,7 @@ msgstr "Google Oauth σφάλμα, παρακαλούμε δοκίμασε ξα
msgid "Google Oauth error: {}"
msgstr ""
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr ""
@@ -1924,12 +1924,12 @@ msgstr "Εκδόθηκε"
msgid "Description:"
msgstr "Περιγραφή"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Προηγούμενο"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Επόμενο"
@@ -1989,7 +1989,7 @@ msgid "Uploading..."
msgstr "Φόρτωση..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Κλείσιμο"
@@ -3021,7 +3021,7 @@ msgstr ""
msgid "Account"
msgstr "Λογαριασμός"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Ρυθμίσεις"
@@ -3038,7 +3038,7 @@ msgstr "Περιήγηση"
msgid "About"
msgstr "Σχετικά"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Λεπτομέρειες Βιβλίου"
@@ -3162,67 +3162,75 @@ msgstr "Calibre-Web Κατάλογος eBook"
msgid "epub Reader"
msgstr ""
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Φωτεινό"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Σκοτεινό"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr ""
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr ""
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Επανάληψη ροής κειμένου όταν οι μπάρες στο πλάι είναι ανοιχτές."
#: cps/templates/read.html:100
msgid "Font Sizes"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr ""
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr ""
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr ""
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr ""
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr ""
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr ""
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr ""
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
Binary file not shown.
+35 -27
View File
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2024-10-29 15:26+0100\n"
"Last-Translator: adruki <adruki@gmail.com>\n"
"Language: es\n"
@@ -19,7 +19,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -552,7 +552,7 @@ msgstr "no instalado"
msgid "Execution permissions missing"
msgstr "Faltan permisos de ejecución"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -969,7 +969,7 @@ msgstr "Error en Google Oauth, por favor vuelve a intentarlo más tarde."
msgid "Google Oauth error: {}"
msgstr "Error Google Oauth {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{} estrellas"
@@ -1928,12 +1928,12 @@ msgstr "Publicado"
msgid "Description:"
msgstr "Descripción:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Anterior"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Siguiente"
@@ -1993,7 +1993,7 @@ msgid "Uploading..."
msgstr "Subiendo..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Cerrar"
@@ -3025,7 +3025,7 @@ msgstr "Tema simple"
msgid "Account"
msgstr "Cuenta"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Ajustes"
@@ -3042,7 +3042,7 @@ msgstr "Navegar"
msgid "About"
msgstr "Acerca de"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Detalles del libro"
@@ -3166,67 +3166,75 @@ msgstr "Catálogo de ebooks de Calibre-Web"
msgid "epub Reader"
msgstr "Lector epub"
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr "Elije un tema:"
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Claro"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Oscuro"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr "Sepia"
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr "Negro"
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Reformatear el texto cuando las barras laterales están abiertas."
#: cps/templates/read.html:100
msgid "Font Sizes"
msgstr "Tamaños de la fuente"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr "Fuente"
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr "Predeterminada"
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr "Yahei"
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr "SimSun"
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr "KaiTi"
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr "Arial"
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr "Extensión"
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr "Dos columnas"
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr "Una columna"
Binary file not shown.
+34 -26
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2020-01-12 13:56+0100\n"
"Last-Translator: Samuli Valavuo <svalavuo@gmail.com>\n"
"Language: fi\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -549,7 +549,7 @@ msgstr "ei asennettu"
msgid "Execution permissions missing"
msgstr ""
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -966,7 +966,7 @@ msgstr "Google Oauth virhe, yritä myöhemmin uudelleen."
msgid "Google Oauth error: {}"
msgstr ""
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr ""
@@ -1925,12 +1925,12 @@ msgstr ""
msgid "Description:"
msgstr "Kuvaus:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Edellinen"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Seuraava"
@@ -1990,7 +1990,7 @@ msgid "Uploading..."
msgstr "Ladataan..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Sulje"
@@ -3022,7 +3022,7 @@ msgstr ""
msgid "Account"
msgstr "Tili"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Asetukset"
@@ -3039,7 +3039,7 @@ msgstr "Selaa"
msgid "About"
msgstr "Tietoja"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Kirjan tiedot"
@@ -3163,67 +3163,75 @@ msgstr "Calibre-Web e-kirjaluettelo"
msgid "epub Reader"
msgstr ""
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Vaalea"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Tumma"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr ""
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr ""
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Uudelleenjärjestä teksti kun sivut on auki."
#: cps/templates/read.html:100
msgid "Font Sizes"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr ""
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr ""
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr ""
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr ""
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr ""
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr ""
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr ""
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
Binary file not shown.
+35 -27
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2025-09-10 19:25+0000\n"
"Last-Translator: <thovi98@gmail.com>\n"
"Language: fr\n"
@@ -12,7 +12,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -545,7 +545,7 @@ msgstr "non installé"
msgid "Execution permissions missing"
msgstr "Les permissions d'exécutions manquantes"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -962,7 +962,7 @@ msgstr "Erreur Oauth Google, veuillez réessayer plus tard."
msgid "Google Oauth error: {}"
msgstr "Erreur Oauth Google : {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{} Étoiles"
@@ -1921,12 +1921,12 @@ msgstr "Publié"
msgid "Description:"
msgstr "Description :"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Précédent"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Suivant"
@@ -1986,7 +1986,7 @@ msgid "Uploading..."
msgstr "Téléversement en cours..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Fermer"
@@ -3018,7 +3018,7 @@ msgstr "Thème simple"
msgid "Account"
msgstr "Compte"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Paramètres"
@@ -3035,7 +3035,7 @@ msgstr "Explorer"
msgid "About"
msgstr "À propos"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Détails du livre"
@@ -3159,67 +3159,75 @@ msgstr "Catalogue de livres électroniques Calibre-Web"
msgid "epub Reader"
msgstr "Lecteur ePub"
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr "Choisissez un thème ci-dessous :"
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Clair"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Sombre"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr "Sepia"
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr "Noir"
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Mettre à jour la mise en page du texte quand les bandeaux latéraux sont ouverts."
#: cps/templates/read.html:100
msgid "Font Sizes"
msgstr "Tailles des polices"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr "Police"
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr "Défaut"
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr "Yahei"
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr "SimSun"
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr "KaiTi"
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr "Arial"
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr "Deux colonnes"
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr "Une colonne"
Binary file not shown.
+35 -27
View File
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2024-12-08 13:50+0100\n"
"Last-Translator: pollitor@gmx.com\n"
"Language: gl\n"
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -547,7 +547,7 @@ msgstr "non instalado"
msgid "Execution permissions missing"
msgstr "Faltan permisos de execución"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -964,7 +964,7 @@ msgstr "Erro de Google Oauth. Téntao de novo máis tarde."
msgid "Google Oauth error: {}"
msgstr "Erro de Google Oauth: {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{} estrelas"
@@ -1923,12 +1923,12 @@ msgstr "Publicado"
msgid "Description:"
msgstr "Descrición:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Anterior"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "A continuación"
@@ -1988,7 +1988,7 @@ msgid "Uploading..."
msgstr "Cargando..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Pechar"
@@ -3020,7 +3020,7 @@ msgstr "Tema sinxelo"
msgid "Account"
msgstr "Conta"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Configuración"
@@ -3037,7 +3037,7 @@ msgstr "Explorar"
msgid "About"
msgstr "Sobre"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Detalles do libro"
@@ -3161,67 +3161,75 @@ msgstr "Catálogo de libros electrónicos Calibre-Web"
msgid "epub Reader"
msgstr "lector epub"
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr "Escolle un tema a continuación:"
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Claro"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Escuro"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr "Sepia"
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr "Negro"
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Redistribuír o texto cando as barras laterais estean abertas."
#: cps/templates/read.html:100
msgid "Font Sizes"
msgstr "Tamaños de letra"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr "Fonte"
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr "Por defecto"
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr "Yahei"
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr "SimSun"
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr "KaiTi"
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr "Arial"
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr "Espallamento"
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr "Dúas columnas"
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr "Unha columna"
Binary file not shown.
+34 -26
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2019-04-06 23:36+0200\n"
"Last-Translator: \n"
"Language: hu\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -549,7 +549,7 @@ msgstr "nincs telepítve"
msgid "Execution permissions missing"
msgstr ""
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -966,7 +966,7 @@ msgstr ""
msgid "Google Oauth error: {}"
msgstr ""
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr ""
@@ -1925,12 +1925,12 @@ msgstr ""
msgid "Description:"
msgstr "Ismertető:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Előző"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Következő"
@@ -1990,7 +1990,7 @@ msgid "Uploading..."
msgstr "Feltöltés..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Bezárás"
@@ -3022,7 +3022,7 @@ msgstr ""
msgid "Account"
msgstr "Felhasználói fiók"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Beállítások"
@@ -3039,7 +3039,7 @@ msgstr "Böngészés"
msgid "About"
msgstr "Névjegy"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Könyv részletei"
@@ -3163,67 +3163,75 @@ msgstr "Calibre-Web e-könyv katalógus"
msgid "epub Reader"
msgstr ""
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Világos"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Sötét"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr ""
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr ""
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Szöveg újratördelése amikor az oldalsávok nyitva vannak"
#: cps/templates/read.html:100
msgid "Font Sizes"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr ""
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr ""
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr ""
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr ""
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr ""
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr ""
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr ""
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
Binary file not shown.
+34 -26
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2023-01-21 10:00+0700\n"
"Last-Translator: Arief Hidayat<arihid95@gmail.com>\n"
"Language: id\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -549,7 +549,7 @@ msgstr "belum dipasang"
msgid "Execution permissions missing"
msgstr "Izin eksekusi hilang"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -966,7 +966,7 @@ msgstr "Kesalahan Google Oauth, harap coba lagi nanti."
msgid "Google Oauth error: {}"
msgstr "Kesalahan Google OAuth: {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{}★"
@@ -1925,12 +1925,12 @@ msgstr "Diterbitkan"
msgid "Description:"
msgstr "Deskripsi:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Sebelumnya"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Selanjutnya"
@@ -1990,7 +1990,7 @@ msgid "Uploading..."
msgstr "Mengunggah..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Tutup"
@@ -3022,7 +3022,7 @@ msgstr ""
msgid "Account"
msgstr "Akun"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Pengaturan"
@@ -3039,7 +3039,7 @@ msgstr "Jelajahi"
msgid "About"
msgstr "Tentang"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Detail Buku"
@@ -3163,67 +3163,75 @@ msgstr "Katalog eBook Calibre-Web"
msgid "epub Reader"
msgstr "Pembaca EPUB"
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Terang"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Gelap"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr "Sepia"
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr "Hitam"
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Reflow teks saat sidebar terbuka."
#: cps/templates/read.html:100
msgid "Font Sizes"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr ""
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr ""
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr ""
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr ""
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr ""
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr ""
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr ""
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
Binary file not shown.
+39 -31
View File
@@ -2,13 +2,13 @@
# Copyright (C) 2016 Smart Cities Community
# This file is distributed under the same license as the Calibre-Web
# Juan F. Villa <juan.villa@paisdelconocimiento.org>, 2016.
# SPDX-FileCopyrightText: 2023, 2024, 2025 Massimo Pissarello <mapi68@gmail.com>
# SPDX-FileCopyrightText: 2023, 2024, 2025, 2026 Massimo Pissarello <mapi68@gmail.com>
msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"PO-Revision-Date: 2025-09-11 01:30+0200\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2026-01-04 02:22+0100\n"
"Last-Translator: Massimo Pissarello <mapi68@gmail.com>\n"
"Language: it\n"
"Language-Team: Italian <>\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -549,7 +549,7 @@ msgstr "non installato"
msgid "Execution permissions missing"
msgstr "Mancano i permessi di esecuzione"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -966,7 +966,7 @@ msgstr "Errore OAuth di Google, riprova più tardi."
msgid "Google Oauth error: {}"
msgstr "Errore OAuth di Google: {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{} stelle"
@@ -1925,12 +1925,12 @@ msgstr "Pubblicato"
msgid "Description:"
msgstr "Descrizione:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Precedente"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Successivo"
@@ -1990,7 +1990,7 @@ msgid "Uploading..."
msgstr "Caricamento in corso..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Chiudi"
@@ -2451,7 +2451,7 @@ msgstr "Chiave API Goodreads"
#: cps/templates/config_edit.html:167
msgid "Google Books API Key"
msgstr ""
msgstr "Chiave API di Google Libri"
#: cps/templates/config_edit.html:172
msgid "Allow Reverse Proxy Authentication"
@@ -3022,7 +3022,7 @@ msgstr "Tema semplice"
msgid "Account"
msgstr "Account"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Impostazioni"
@@ -3039,7 +3039,7 @@ msgstr "Naviga"
msgid "About"
msgstr "Informazioni su"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Dettagli del libro"
@@ -3117,7 +3117,7 @@ msgstr "Questo formato di libro verrà definitivamente cancellato dal database"
#: cps/templates/modal_dialogs.html:51
msgid "This book will be permanently erased from database and hard disk"
msgstr ""
msgstr "Questo libro verrà cancellato definitivamente dal database e dal disco rigido"
#: cps/templates/modal_dialogs.html:55
msgid "Important Kobo Note: deleted books will remain on any paired Kobo device."
@@ -3163,67 +3163,75 @@ msgstr "Catalogo eBook Calibre-Web"
msgid "epub Reader"
msgstr "Lettore epub"
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr "Scegli un tema qui sotto:"
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Chiaro"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Scuro"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr "Seppia"
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr "Ambra"
#: cps/templates/read.html:97
msgid "Black"
msgstr "Nero"
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Adatta il testo quando le barre laterali sono aperte."
#: cps/templates/read.html:100
msgid "Font Sizes"
msgstr "Dimensioni caratteri"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr "Mostra conteggio delle pagine"
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr "Dimensione carattere"
#: cps/templates/read.html:126
msgid "Font"
msgstr "Carattere"
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr "Predefinito"
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr "Yahei"
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr "SimSun"
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr "KaiTi"
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr "Arial"
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr "Doppia pagina"
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr "Due colonne"
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr "Una colonna"
Binary file not shown.
+34 -26
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2018-02-07 02:20-0500\n"
"Last-Translator: subdiox <subdiox@gmail.com>\n"
"Language: ja\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -549,7 +549,7 @@ msgstr "インストールされていません"
msgid "Execution permissions missing"
msgstr "実行権限がありません"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -966,7 +966,7 @@ msgstr "Google OAuth エラー、再度お試しください。"
msgid "Google Oauth error: {}"
msgstr "Google OAuth エラー: {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "星{}"
@@ -1925,12 +1925,12 @@ msgstr "発売日"
msgid "Description:"
msgstr "詳細:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "前"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "次"
@@ -1990,7 +1990,7 @@ msgid "Uploading..."
msgstr "アップロード中..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "閉じる"
@@ -3022,7 +3022,7 @@ msgstr ""
msgid "Account"
msgstr "アカウント"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "設定"
@@ -3039,7 +3039,7 @@ msgstr "閲覧"
msgid "About"
msgstr "このサイトについて"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "本の詳細"
@@ -3163,67 +3163,75 @@ msgstr "Calibre-WebのeBookカタログ"
msgid "epub Reader"
msgstr "EPUBリーダー"
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "ライト"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "ダーク"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr "セピア"
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr "ブラック"
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "サイドバーが開いているとき、テキストを再度流し込みます。"
#: cps/templates/read.html:100
msgid "Font Sizes"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr ""
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr ""
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr ""
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr ""
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr ""
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr ""
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr ""
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
Binary file not shown.
+34 -26
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2018-08-27 17:06+0700\n"
"Last-Translator: \n"
"Language: km_KH\n"
@@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -550,7 +550,7 @@ msgstr "មិនបានតម្លើង"
msgid "Execution permissions missing"
msgstr ""
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -967,7 +967,7 @@ msgstr ""
msgid "Google Oauth error: {}"
msgstr ""
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr ""
@@ -1926,12 +1926,12 @@ msgstr ""
msgid "Description:"
msgstr "ពិពណ៌នា"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "មុន"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "បន្ទាប់"
@@ -1991,7 +1991,7 @@ msgid "Uploading..."
msgstr "កំពុងអាប់ឡូត..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "បិទ"
@@ -3023,7 +3023,7 @@ msgstr ""
msgid "Account"
msgstr ""
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "ការកំណត់"
@@ -3040,7 +3040,7 @@ msgstr "រុករក"
msgid "About"
msgstr "អំពី"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "ព័ត៌មានលម្អិតរបស់សៀវភៅ"
@@ -3164,67 +3164,75 @@ msgstr ""
msgid "epub Reader"
msgstr ""
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr ""
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr ""
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr ""
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr ""
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "សេរេអត្ថបទនៅពេលបើកផ្ទាំងចំហៀង។"
#: cps/templates/read.html:100
msgid "Font Sizes"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr ""
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr ""
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr ""
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr ""
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr ""
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr ""
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr ""
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
Binary file not shown.
+35 -27
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2024-11-01 17:50+0900\n"
"Last-Translator: limeade23 <admin@limeade.me>\n"
"Language: ko\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -549,7 +549,7 @@ msgstr "설치되지 않았습니다."
msgid "Execution permissions missing"
msgstr "실행 권한이 없습니다."
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -966,7 +966,7 @@ msgstr "Google 인증 오류입니다. 잠시 후 다시 시도해 주세요."
msgid "Google Oauth error: {}"
msgstr "Google 인증 오류가 발생했습니다: {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{} Stars"
@@ -1925,12 +1925,12 @@ msgstr "발행일"
msgid "Description:"
msgstr "설명:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "이전"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "다음"
@@ -1990,7 +1990,7 @@ msgid "Uploading..."
msgstr "업로드 중"
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "닫기"
@@ -3022,7 +3022,7 @@ msgstr "간단한 테마"
msgid "Account"
msgstr "계정"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "설정"
@@ -3039,7 +3039,7 @@ msgstr "탐색"
msgid "About"
msgstr "서재 정보"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "책 상세정보"
@@ -3163,67 +3163,75 @@ msgstr "Calibre-Web 책 목록"
msgid "epub Reader"
msgstr "epub 리더"
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr "테마를 선택해주세요:"
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "밝은색"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "어두운색"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr "세피아"
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr "검은색"
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "사이드바가 열릴 경우 텍스트를 재정렬합니다."
#: cps/templates/read.html:100
msgid "Font Sizes"
msgstr "글자 크기"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr "글꼴"
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr "기본값"
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr "Yahei"
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr "SimSun"
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr "KaiTi"
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr "Arial"
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr "페이지 보기"
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr "두쪽 보기"
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr "한쪽 보기"
Binary file not shown.
+35 -27
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web (GPLV3)\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2023-12-20 22:00+0100\n"
"Last-Translator: Michiel Cornelissen <michiel.cornelissen+gitbhun at proton.me>\n"
"Language: nl\n"
@@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -550,7 +550,7 @@ msgstr "niet geïnstalleerd"
msgid "Execution permissions missing"
msgstr "Kan programma niet uitvoeren"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -967,7 +967,7 @@ msgstr "Google OAuth fout, probeer het later nog eens."
msgid "Google Oauth error: {}"
msgstr "Google OAuth foutmelding: {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{} sterren"
@@ -1926,12 +1926,12 @@ msgstr "Gepubliceerd"
msgid "Description:"
msgstr "Beschrijving:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Vorige"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Volgende"
@@ -1991,7 +1991,7 @@ msgid "Uploading..."
msgstr "Bezig met uploaden..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Sluiten"
@@ -3023,7 +3023,7 @@ msgstr ""
msgid "Account"
msgstr "Account"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Instellingen"
@@ -3040,7 +3040,7 @@ msgstr "Verkennen"
msgid "About"
msgstr "Informatie"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Boekgegevens"
@@ -3164,67 +3164,75 @@ msgstr "Calibre-Web - e-boekcatalogus"
msgid "epub Reader"
msgstr ""
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Licht"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Donker"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr "Sepia"
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr ""
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Tekstindeling automatisch aanpassen als het zijpaneel geopend is."
#: cps/templates/read.html:100
msgid "Font Sizes"
msgstr "Lettertypegrootte"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr "Lettertype"
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr ""
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr ""
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr ""
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr ""
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr ""
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr "Twee kolommen"
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
Binary file not shown.
+34 -26
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2023-01-06 11:00+0000\n"
"Last-Translator: Vegard Fladby <vegard.fladby@gmail.com>\n"
"Language: no\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -549,7 +549,7 @@ msgstr "ikke installert"
msgid "Execution permissions missing"
msgstr "Utførelsestillatelser mangler"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -966,7 +966,7 @@ msgstr "Google Oauth-feil, prøv igjen senere."
msgid "Google Oauth error: {}"
msgstr "Google Oauth-feil: {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{} Stjerner"
@@ -1925,12 +1925,12 @@ msgstr ""
msgid "Description:"
msgstr ""
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr ""
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr ""
@@ -1990,7 +1990,7 @@ msgid "Uploading..."
msgstr ""
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Lukk"
@@ -3022,7 +3022,7 @@ msgstr ""
msgid "Account"
msgstr ""
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr ""
@@ -3039,7 +3039,7 @@ msgstr ""
msgid "About"
msgstr ""
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr ""
@@ -3163,67 +3163,75 @@ msgstr ""
msgid "epub Reader"
msgstr ""
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr ""
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr ""
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr ""
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr ""
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr ""
#: cps/templates/read.html:100
msgid "Font Sizes"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr ""
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr ""
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr ""
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr ""
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr ""
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr ""
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr ""
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+35 -27
View File
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2023-07-25 11:30+0100\n"
"Last-Translator: horus68 <https://github.com/horus68>\n"
"Language: pt\n"
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -546,7 +546,7 @@ msgstr "não instalado"
msgid "Execution permissions missing"
msgstr "Falta de permissões de execução"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -963,7 +963,7 @@ msgstr "Erro no Google Oauth, tente novamente mais tarde."
msgid "Google Oauth error: {}"
msgstr "Erro no Oauth do Google: {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{} Estrelas"
@@ -1922,12 +1922,12 @@ msgstr "Publicado em"
msgid "Description:"
msgstr "Descrição:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Anterior"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Seguinte"
@@ -1987,7 +1987,7 @@ msgid "Uploading..."
msgstr "A carregar..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Fechar"
@@ -3019,7 +3019,7 @@ msgstr ""
msgid "Account"
msgstr "Conta"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Configurações"
@@ -3036,7 +3036,7 @@ msgstr "Navegar"
msgid "About"
msgstr "Sobre"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Detalhes do livro"
@@ -3160,67 +3160,75 @@ msgstr "Catálogo de ebooks Calibre-Web"
msgid "epub Reader"
msgstr "leitor de epub"
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Claro"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Escuro"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr "Sépia"
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr "Preto"
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Refluir o texto quando as barras laterais estiverem abertas."
#: cps/templates/read.html:100
msgid "Font Sizes"
msgstr "Tamanhos de letra"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr ""
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr ""
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr ""
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr ""
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr ""
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr ""
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr ""
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
Binary file not shown.
+34 -26
View File
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: br\n"
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -546,7 +546,7 @@ msgstr "não instalado"
msgid "Execution permissions missing"
msgstr "Faltam as permissões de execução"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -963,7 +963,7 @@ msgstr "Erro no Google Oauth, tente novamente mais tarde."
msgid "Google Oauth error: {}"
msgstr "Erro no Oauth do Google: {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{} Estrelas"
@@ -1922,12 +1922,12 @@ msgstr "Publicado em"
msgid "Description:"
msgstr "Descrição:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Anterior"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Próximo"
@@ -1987,7 +1987,7 @@ msgid "Uploading..."
msgstr "Enviando..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Fechar"
@@ -3019,7 +3019,7 @@ msgstr ""
msgid "Account"
msgstr "Conta"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Configurações"
@@ -3036,7 +3036,7 @@ msgstr "Navegue em"
msgid "About"
msgstr "Sobre"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Detalhes do Livro"
@@ -3160,67 +3160,75 @@ msgstr "Catálogo de e-books Calibre-Web"
msgid "epub Reader"
msgstr "leitor de epub"
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Claro"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Escuro"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr "Sépia"
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr "Preto"
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Refluir o texto quando as barras laterais estiverem abertas."
#: cps/templates/read.html:100
msgid "Font Sizes"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr ""
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr ""
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr ""
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr ""
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr ""
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr ""
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr ""
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
Binary file not shown.
+34 -26
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2020-04-29 01:20+0400\n"
"Last-Translator: ZIZA\n"
"Language: ru\n"
@@ -17,7 +17,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -550,7 +550,7 @@ msgstr "не установлено"
msgid "Execution permissions missing"
msgstr ""
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -967,7 +967,7 @@ msgstr "Ошибка Google Oauth, пожалуйста попробуйте п
msgid "Google Oauth error: {}"
msgstr ""
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr ""
@@ -1926,12 +1926,12 @@ msgstr "Опубликованный"
msgid "Description:"
msgstr "Описание:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Предыдущий"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Далее"
@@ -1991,7 +1991,7 @@ msgid "Uploading..."
msgstr "Загружается..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Закрыть"
@@ -3023,7 +3023,7 @@ msgstr ""
msgid "Account"
msgstr "Учетная запись"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Настройки"
@@ -3040,7 +3040,7 @@ msgstr "Просмотр"
msgid "About"
msgstr "О программе"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Подробнее о книге"
@@ -3164,67 +3164,75 @@ msgstr "Каталог электронных книг Caliber-Web"
msgid "epub Reader"
msgstr ""
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Светлая"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Темная"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr ""
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr ""
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Обновить размещение текста при открытии боковой панели."
#: cps/templates/read.html:100
msgid "Font Sizes"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr ""
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr ""
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr ""
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr ""
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr ""
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr ""
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr ""
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
Binary file not shown.
+35 -27
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2023-11-01 06:12+0100\n"
"Last-Translator: Branislav Hanáček <brango@brango.sk>\n"
"Language: sk_SK\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -549,7 +549,7 @@ msgstr "nie je naištalované"
msgid "Execution permissions missing"
msgstr "Chýba právo na vykonanie"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -966,7 +966,7 @@ msgstr "Chyba Google OAuth, skúste to prosím neskôr."
msgid "Google Oauth error: {}"
msgstr "Chyba Google OAuth: {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{} Hviezdičiek"
@@ -1925,12 +1925,12 @@ msgstr "Vydané"
msgid "Description:"
msgstr "Popis:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Predchádzajúci"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Ďalší"
@@ -1990,7 +1990,7 @@ msgid "Uploading..."
msgstr "Nahráva sa..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Zatvoriť"
@@ -3022,7 +3022,7 @@ msgstr ""
msgid "Account"
msgstr "Účet"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Nastavenia"
@@ -3039,7 +3039,7 @@ msgstr "Prechádzať"
msgid "About"
msgstr "O programe"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Detailu o knihe"
@@ -3163,67 +3163,75 @@ msgstr "Katalóg e-kníh Calibre-Web"
msgid "epub Reader"
msgstr "čítačka epub"
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Svetlé"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Tmavé"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr "Sépia"
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr "Čierne"
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Preformátovať text keď sú otvorené bočné panely."
#: cps/templates/read.html:100
msgid "Font Sizes"
msgstr "Veľkosť písma"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr ""
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr ""
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr ""
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr ""
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr ""
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr ""
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr ""
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
Binary file not shown.
+35 -27
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2024-09-18 19:45+0200\n"
"Last-Translator: Andrej Kralj\n"
"Language: sl\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -549,7 +549,7 @@ msgstr "ni nameščen"
msgid "Execution permissions missing"
msgstr "Manjkajo dovoljenja za izvajanje"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -966,7 +966,7 @@ msgstr "Napaka Google Oauth, poskusite pozneje."
msgid "Google Oauth error: {}"
msgstr "Napaka Google Oauth: {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{} zvezdic"
@@ -1925,12 +1925,12 @@ msgstr "Objavljeno"
msgid "Description:"
msgstr "Opis:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Prejšnji"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Naslednji"
@@ -1990,7 +1990,7 @@ msgid "Uploading..."
msgstr "Nalaganje..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Zapri"
@@ -3022,7 +3022,7 @@ msgstr ""
msgid "Account"
msgstr "Račun"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Nastavitve"
@@ -3039,7 +3039,7 @@ msgstr "Brskaj"
msgid "About"
msgstr "O programu"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Podrobnosti o knjigi"
@@ -3163,67 +3163,75 @@ msgstr "Katalog e-knjig Calibre-Web"
msgid "epub Reader"
msgstr "epub bralnik"
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Svetlo"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Temno"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr "Sepia"
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr "Črno"
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Preusmerjanje besedila, ko so odprte stranske vrstice."
#: cps/templates/read.html:100
msgid "Font Sizes"
msgstr "Velikosti pisave"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr "Pisava"
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr "Privzeto"
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr "Yahei"
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr "SimSun"
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr "KaiTi"
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr "Arial"
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr "Razprši"
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr "Dva stolpca"
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr "En stolpec"
Binary file not shown.
+34 -26
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2021-05-13 11:00+0000\n"
"Last-Translator: Jonatan Nyberg <jonatan.nyberg.karl@gmail.com>\n"
"Language: sv\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -549,7 +549,7 @@ msgstr "inte installerad"
msgid "Execution permissions missing"
msgstr "Körningstillstånd saknas"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -966,7 +966,7 @@ msgstr "Google Oauth-fel, försök igen senare."
msgid "Google Oauth error: {}"
msgstr "Google Oauth-fel: {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{} stjärnor"
@@ -1925,12 +1925,12 @@ msgstr "Publicerad"
msgid "Description:"
msgstr "Beskrivning:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Föregående"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Nästa"
@@ -1990,7 +1990,7 @@ msgid "Uploading..."
msgstr "Laddar upp..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Stäng"
@@ -3022,7 +3022,7 @@ msgstr ""
msgid "Account"
msgstr "Konto"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Inställningar"
@@ -3039,7 +3039,7 @@ msgstr "Bläddra"
msgid "About"
msgstr "Om"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Bokdetaljer"
@@ -3163,67 +3163,75 @@ msgstr "Calibre-Web e-bokkatalog"
msgid "epub Reader"
msgstr ""
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Ljust"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Mörkt"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr ""
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr ""
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Fyll i texten igen när sidofält är öppna."
#: cps/templates/read.html:100
msgid "Font Sizes"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr ""
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr ""
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr ""
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr ""
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr ""
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr ""
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr ""
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
Binary file not shown.
+34 -26
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2020-04-23 22:47+0300\n"
"Last-Translator: iz <iz7iz7iz@protonmail.ch>\n"
"Language: tr\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -549,7 +549,7 @@ msgstr "yüklü değil"
msgid "Execution permissions missing"
msgstr ""
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -966,7 +966,7 @@ msgstr "Google Oauth hatası, lütfen tekrar deneyin."
msgid "Google Oauth error: {}"
msgstr ""
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr ""
@@ -1925,12 +1925,12 @@ msgstr ""
msgid "Description:"
msgstr "Açıklama:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Önceki"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Sonraki"
@@ -1990,7 +1990,7 @@ msgid "Uploading..."
msgstr "Yükleniyor..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Kapak"
@@ -3022,7 +3022,7 @@ msgstr ""
msgid "Account"
msgstr "Hesap"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Ayarlar"
@@ -3039,7 +3039,7 @@ msgstr "Gözat"
msgid "About"
msgstr "Hakkında"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "eKitap Detayları"
@@ -3163,67 +3163,75 @@ msgstr ""
msgid "epub Reader"
msgstr ""
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Açık"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Koyu"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr ""
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr ""
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Kenar çubukları açıkken metni kaydır"
#: cps/templates/read.html:100
msgid "Font Sizes"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr ""
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr ""
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr ""
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr ""
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr ""
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr ""
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr ""
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
Binary file not shown.
+34 -26
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2017-04-30 00:47+0300\n"
"Last-Translator: ABIS Team <biblio.if.abis@gmail.com>\n"
"Language: uk\n"
@@ -15,7 +15,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -561,7 +561,7 @@ msgstr "не встановлено"
msgid "Execution permissions missing"
msgstr ""
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -980,7 +980,7 @@ msgstr ""
msgid "Google Oauth error: {}"
msgstr ""
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{} зірок"
@@ -1957,12 +1957,12 @@ msgstr "Опубліковано"
msgid "Description:"
msgstr "Опис:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Попередній перегляд"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Далі"
@@ -2022,7 +2022,7 @@ msgid "Uploading..."
msgstr "Завантаження..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Закрити"
@@ -3074,7 +3074,7 @@ msgstr ""
msgid "Account"
msgstr ""
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Налаштування"
@@ -3091,7 +3091,7 @@ msgstr "Перегляд"
msgid "About"
msgstr "Про програму"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Деталі"
@@ -3216,73 +3216,81 @@ msgstr ""
msgid "epub Reader"
msgstr ""
#: cps/templates/read.html:80
#: cps/templates/read.html:85
#, fuzzy
msgid "Choose a theme below:"
msgstr "Виберіть ім'я користувача"
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr ""
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr ""
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr ""
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
#, fuzzy
msgid "Black"
msgstr "Назад"
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "Переформатувати текст, коли відкриті бічні панелі."
#: cps/templates/read.html:100
msgid "Font Sizes"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr ""
#: cps/templates/read.html:106
#: cps/templates/read.html:127
#, fuzzy
msgid "Default"
msgstr "Видалити"
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr ""
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr ""
#: cps/templates/read.html:109
#: cps/templates/read.html:130
#, fuzzy
msgid "KaiTi"
msgstr "Очікує"
#: cps/templates/read.html:110
#: cps/templates/read.html:131
#, fuzzy
msgid "Arial"
msgstr "Вертикально"
#: cps/templates/read.html:113
#: cps/templates/read.html:134
#, fuzzy
msgid "Spread"
msgstr "Прочитано"
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr ""
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
Binary file not shown.
+34 -26
View File
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-web\n"
"Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2022-09-20 21:36+0700\n"
"Last-Translator: Ha Link <halink0803@gmail.com>\n"
"Language: vi\n"
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -546,7 +546,7 @@ msgstr "chưa cài đặt"
msgid "Execution permissions missing"
msgstr ""
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -963,7 +963,7 @@ msgstr "Google Oauth lỗi, làm ơn thử lại sau."
msgid "Google Oauth error: {}"
msgstr "Google Oauth lỗi: {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{} sao"
@@ -1922,12 +1922,12 @@ msgstr "Đã phát hành"
msgid "Description:"
msgstr "Mô tả:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "Trước"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "Tiếp tục"
@@ -1987,7 +1987,7 @@ msgid "Uploading..."
msgstr "Đang tải lên..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "Đóng"
@@ -3019,7 +3019,7 @@ msgstr ""
msgid "Account"
msgstr "Tài khoản"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "Thiết lập"
@@ -3036,7 +3036,7 @@ msgstr "Tìm kiếm"
msgid "About"
msgstr "About"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "Chi tiết sách"
@@ -3160,67 +3160,75 @@ msgstr ""
msgid "epub Reader"
msgstr "trình đọc epub"
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "Sáng"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "Tối"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr ""
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr ""
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr ""
#: cps/templates/read.html:100
msgid "Font Sizes"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr ""
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr ""
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr ""
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr ""
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr ""
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr ""
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr ""
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
Binary file not shown.
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2025-12-06 13:53+0800\n"
"Last-Translator: qx100\n"
"Language: zh_CN\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -549,7 +549,7 @@ msgstr "未安装"
msgid "Execution permissions missing"
msgstr "缺少执行权限"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -966,7 +966,7 @@ msgstr "Google Oauth 错误,请重试。"
msgid "Google Oauth error: {}"
msgstr "Google Oauth 错误: {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{} 星"
@@ -1925,12 +1925,12 @@ msgstr "出版日期"
msgid "Description:"
msgstr "简介:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "上一个"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "下一个"
@@ -1990,7 +1990,7 @@ msgid "Uploading..."
msgstr "正在上传..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "关闭"
@@ -3022,7 +3022,7 @@ msgstr "简易主题"
msgid "Account"
msgstr "账号"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "设置"
@@ -3039,7 +3039,7 @@ msgstr "按条件浏览"
msgid "About"
msgstr "关于"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "书籍详情"
@@ -3163,67 +3163,75 @@ msgstr "Caliebre-Web 电子书路径"
msgid "epub Reader"
msgstr "epub 阅读器"
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr "请从下方选取一个主题:"
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "浅色"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "深色"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr "棕色"
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr "黑色"
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "打开侧栏时重排文本。"
#: cps/templates/read.html:100
msgid "Font Sizes"
msgstr "字体大小"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr "字体"
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr "默认"
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr "微软雅黑"
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr "宋体"
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr "楷体"
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr "Arial"
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr "分配"
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr "双栏"
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr "单栏"
Binary file not shown.
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Calibre-Web\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: 2025-09-10 03:46+0000\n"
"Last-Translator: finrodchen <me@finrod.xyz>\n"
"Language: zh_TW\n"
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
"Generated-By: Babel 2.15.0\n"
#: cps/about.py:85
msgid "Statistics"
@@ -549,7 +549,7 @@ msgstr "未安裝"
msgid "Execution permissions missing"
msgstr "缺少執行權限"
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -966,7 +966,7 @@ msgstr "Google Oauth 錯誤,請重試。"
msgid "Google Oauth error: {}"
msgstr "Google Oauth 錯誤: {}"
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr "{} 星"
@@ -1925,12 +1925,12 @@ msgstr "出版日期"
msgid "Description:"
msgstr "簡介:"
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr "上一個"
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr "下一個"
@@ -1990,7 +1990,7 @@ msgid "Uploading..."
msgstr "正在上傳..."
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr "關閉"
@@ -3022,7 +3022,7 @@ msgstr ""
msgid "Account"
msgstr "賬號"
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr "設置"
@@ -3039,7 +3039,7 @@ msgstr "瀏覽"
msgid "About"
msgstr "關於"
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr "書籍詳情"
@@ -3163,67 +3163,75 @@ msgstr "Caliebre-Web電子書路徑"
msgid "epub Reader"
msgstr "epub閱讀器"
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr "淺色"
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr "深色"
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr "Sepia"
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr ""
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr "打開側欄時重排文本。"
#: cps/templates/read.html:100
msgid "Font Sizes"
msgstr "字體大小"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr "字體"
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr ""
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr "雅黑體"
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr "新宋體"
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr ""
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr ""
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr "兩欄"
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
+33 -25
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-12-06 11:51+0100\n"
"POT-Creation-Date: 2025-12-14 14:44+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -548,7 +548,7 @@ msgstr ""
msgid "Execution permissions missing"
msgstr ""
#: cps/db.py:1046 cps/templates/config_edit.html:207
#: cps/db.py:1124 cps/templates/config_edit.html:207
#: cps/templates/config_view_edit.html:62 cps/templates/email_edit.html:41
#: cps/web.py:568 cps/web.py:602 cps/web.py:647 cps/web.py:687 cps/web.py:714
#: cps/web.py:1000 cps/web.py:1030 cps/web.py:1075 cps/web.py:1103
@@ -965,7 +965,7 @@ msgstr ""
msgid "Google Oauth error: {}"
msgstr ""
#: cps/opds.py:308
#: cps/opds.py:307
#, python-brace-format
msgid "{} Stars"
msgstr ""
@@ -1924,12 +1924,12 @@ msgstr ""
msgid "Description:"
msgstr ""
#: cps/templates/basic_index.html:7 cps/templates/layout.html:174
#: cps/templates/basic_index.html:7 cps/templates/layout.html:173
msgid "Previous"
msgstr ""
#: cps/templates/basic_index.html:12 cps/templates/feed.xml:22
#: cps/templates/layout.html:189
#: cps/templates/layout.html:187
msgid "Next"
msgstr ""
@@ -1989,7 +1989,7 @@ msgid "Uploading..."
msgstr ""
#: cps/templates/book_edit.html:53 cps/templates/book_edit.html:257
#: cps/templates/layout.html:79 cps/templates/layout.html:205
#: cps/templates/layout.html:79 cps/templates/layout.html:203
#: cps/templates/modal_dialogs.html:34 cps/templates/user_edit.html:163
msgid "Close"
msgstr ""
@@ -3021,7 +3021,7 @@ msgstr ""
msgid "Account"
msgstr ""
#: cps/templates/layout.html:93 cps/templates/read.html:78
#: cps/templates/layout.html:93 cps/templates/read.html:83
#: cps/templates/readcbr.html:70 cps/templates/readcbr.html:96
msgid "Settings"
msgstr ""
@@ -3038,7 +3038,7 @@ msgstr ""
msgid "About"
msgstr ""
#: cps/templates/layout.html:201
#: cps/templates/layout.html:199
msgid "Book Details"
msgstr ""
@@ -3162,67 +3162,75 @@ msgstr ""
msgid "epub Reader"
msgstr ""
#: cps/templates/read.html:80
#: cps/templates/read.html:85
msgid "Choose a theme below:"
msgstr ""
#: cps/templates/read.html:84 cps/templates/readcbr.html:104
#: cps/templates/read.html:89 cps/templates/readcbr.html:104
msgid "Light"
msgstr ""
#: cps/templates/read.html:86 cps/templates/readcbr.html:105
#: cps/templates/read.html:91 cps/templates/readcbr.html:105
msgid "Dark"
msgstr ""
#: cps/templates/read.html:88
#: cps/templates/read.html:93
msgid "Sepia"
msgstr ""
#: cps/templates/read.html:90
#: cps/templates/read.html:95
msgid "Amber"
msgstr ""
#: cps/templates/read.html:97
msgid "Black"
msgstr ""
#: cps/templates/read.html:95
#: cps/templates/read.html:109
msgid "Reflow text when sidebars are open."
msgstr ""
#: cps/templates/read.html:100
msgid "Font Sizes"
#: cps/templates/read.html:114
msgid "Show pages count"
msgstr ""
#: cps/templates/read.html:105
#: cps/templates/read.html:118
msgid "Font Size"
msgstr ""
#: cps/templates/read.html:126
msgid "Font"
msgstr ""
#: cps/templates/read.html:106
#: cps/templates/read.html:127
msgid "Default"
msgstr ""
#: cps/templates/read.html:107
#: cps/templates/read.html:128
msgid "Yahei"
msgstr ""
#: cps/templates/read.html:108
#: cps/templates/read.html:129
msgid "SimSun"
msgstr ""
#: cps/templates/read.html:109
#: cps/templates/read.html:130
msgid "KaiTi"
msgstr ""
#: cps/templates/read.html:110
#: cps/templates/read.html:131
msgid "Arial"
msgstr ""
#: cps/templates/read.html:113
#: cps/templates/read.html:134
msgid "Spread"
msgstr ""
#: cps/templates/read.html:114
#: cps/templates/read.html:135
msgid "Two columns"
msgstr ""
#: cps/templates/read.html:115
#: cps/templates/read.html:136
msgid "One column"
msgstr ""
+31 -92
View File
@@ -37,20 +37,20 @@
<div class="row">
<div class="col-xs-6 col-md-6 col-sm-offset-3" style="margin-top:50px;">
<p class='text-justify attribute'><strong>Start Time: </strong>2025-12-06 19:29:38</p>
<p class='text-justify attribute'><strong>Start Time: </strong>2026-01-07 20:39:44</p>
</div>
</div>
<div class="row">
<div class="col-xs-6 col-md-6 col-sm-offset-3">
<p class='text-justify attribute'><strong>Stop Time: </strong>2025-12-07 02:46:00</p>
<p class='text-justify attribute'><strong>Stop Time: </strong>2026-01-08 04:01:04</p>
</div>
</div>
<div class="row">
<div class="col-xs-6 col-md-6 col-sm-offset-3">
<p class='text-justify attribute'><strong>Duration: </strong>6h 5 min</p>
<p class='text-justify attribute'><strong>Duration: </strong>6h 7 min</p>
</div>
</div>
</div>
@@ -2249,13 +2249,13 @@
<tr id="su" class="failClass">
<tr id="su" class="passClass">
<td>TestLoadMetadataScholar</td>
<td class="text-center">1</td>
<td class="text-center">0</td>
<td class="text-center">1</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c20', 1)">Detail</a>
</td>
@@ -2263,31 +2263,11 @@
<tr id="ft20.1" class="none bg-danger">
<tr id='pt20.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLoadMetadataScholar - test_load_metadata</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft20.1')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft20.1" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_ft20.1').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_metadata_scholar.py&#34;, line 74, in test_load_metadata
self.assertEqual(30, len(results))
AssertionError: 30 != 20</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
@@ -2590,12 +2570,12 @@ AssertionError: 30 != 20</pre>
<tr id="su" class="errorClass">
<tr id="su" class="skipClass">
<td>TestFilePicker</td>
<td class="text-center">3</td>
<td class="text-center">1</td>
<td class="text-center">2</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">1</td>
<td class="text-center">1</td>
<td class="text-center">
<a onclick="showClassDetail('c27', 3)">Detail</a>
@@ -2639,32 +2619,11 @@ AssertionError: 30 != 20</pre>
<tr id="et27.3" class="none bg-info">
<tr id='pt27.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestFilePicker - test_two_filepickers</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et27.3')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et27.3" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_et27.3').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File &#34;/home/ozzie/Development/calibre-web-test/test/test_filepicker.py&#34;, line 88, in test_two_filepickers
accordions[0].click()
~~~~~~~~~~^^^
IndexError: list index out of range</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
@@ -4726,11 +4685,11 @@ AssertionError: 7 != 2</pre>
<tr id="su" class="failClass">
<tr id="su" class="skipClass">
<td>TestThumbnails</td>
<td class="text-center">8</td>
<td class="text-center">6</td>
<td class="text-center">1</td>
<td class="text-center">7</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">1</td>
<td class="text-center">
@@ -4803,31 +4762,11 @@ AssertionError: 7 != 2</pre>
<tr id="ft52.8" class="none bg-danger">
<tr id='pt52.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestThumbnails - test_sideloaded_book</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft52.8')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft52.8" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_ft52.8').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File &#34;/home/ozzie/Development/calibre-web-test/test/test_thumbnails.py&#34;, line 317, in test_sideloaded_book
self.assertAlmostEqual(diff(BytesIO(list_cover), BytesIO(old_list_cover), delete_diff_file=True), 0.0,
AssertionError: 0.049274509803921576 != 0.0 within 0.0001 delta (0.049274509803921576 difference)</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
@@ -6294,9 +6233,9 @@ AssertionError: 12 != 1</pre>
<tr id='total_row' class="text-center bg-grey">
<td>Total</td>
<td>538</td>
<td>513</td>
<td>17</td>
<td>1</td>
<td>516</td>
<td>15</td>
<td>0</td>
<td>7</td>
<td>&nbsp;</td>
</tr>
@@ -6325,7 +6264,7 @@ AssertionError: 12 != 1</pre>
<tr>
<th>Platform</th>
<td>Linux 6.8.0-88-generic #89-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 01:02:46 UTC 2025 x86_64 x86_64</td>
<td>Linux 6.8.0-90-generic #91-Ubuntu SMP PREEMPT_DYNAMIC Tue Nov 18 14:14:30 UTC 2025 x86_64 x86_64</td>
<td>Basic</td>
</tr>
@@ -6337,7 +6276,7 @@ AssertionError: 12 != 1</pre>
<tr>
<th>APScheduler</th>
<td>3.11.1</td>
<td>3.11.2</td>
<td>Basic</td>
</tr>
@@ -6439,7 +6378,7 @@ AssertionError: 12 != 1</pre>
<tr>
<th>pypdf</th>
<td>6.4.0</td>
<td>6.4.2</td>
<td>Basic</td>
</tr>
@@ -6469,13 +6408,13 @@ AssertionError: 12 != 1</pre>
<tr>
<th>SQLAlchemy</th>
<td>2.0.44</td>
<td>2.0.45</td>
<td>Basic</td>
</tr>
<tr>
<th>tornado</th>
<td>6.5.2</td>
<td>6.5.4</td>
<td>Basic</td>
</tr>
@@ -6487,7 +6426,7 @@ AssertionError: 12 != 1</pre>
<tr>
<th>urllib3</th>
<td>2.6.0</td>
<td>2.6.3</td>
<td>Basic</td>
</tr>
@@ -6787,13 +6726,13 @@ AssertionError: 12 != 1</pre>
<tr>
<th>jsonschema</th>
<td>4.25.1</td>
<td>4.26.0</td>
<td>TestKoboSync</td>
</tr>
<tr>
<th>jsonschema</th>
<td>4.25.1</td>
<td>4.26.0</td>
<td>TestKoboSyncBig</td>
</tr>
@@ -6805,7 +6744,7 @@ AssertionError: 12 != 1</pre>
<tr>
<th>jsonschema</th>
<td>4.25.1</td>
<td>4.26.0</td>
<td>TestLdapLogin</td>
</tr>
@@ -6823,7 +6762,7 @@ AssertionError: 12 != 1</pre>
<tr>
<th>SQLAlchemy-Utils</th>
<td>0.42.0</td>
<td>0.42.1</td>
<td>TestOAuthLogin</td>
</tr>
@@ -6847,7 +6786,7 @@ AssertionError: 12 != 1</pre>
</div>
<script>
drawCircle(513, 17, 1, 7);
drawCircle(516, 15, 0, 7);
showCase(5);
</script>