Multiple fixes

Update translations
This commit is contained in:
BasioMeusPuga
2018-03-20 13:24:17 +05:30
parent 64a96d816d
commit 0d8c2b6648
12 changed files with 208 additions and 152 deletions

5
TODO
View File

@@ -72,10 +72,7 @@ TODO
Other:
✓ Define every widget in code
Bugs:
If there are files open and the database is deleted, TypeErrors result
Cover culling does not occur if some other tab has initial focus
Slider position change might be acting up too
Take metadata from the database when opening the file
Slider position change might be acting up
Secondary:
Annotations

View File

@@ -255,7 +255,8 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.tableView.horizontalHeader().sectionClicked.connect(
self.lib_ref.table_proxy_model.sort_table_columns)
self.tableView.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.tableView.customContextMenuRequested.connect(self.generate_library_context_menu)
self.tableView.customContextMenuRequested.connect(
self.generate_library_context_menu)
# Keyboard shortcuts
self.ksDistractionFree = QtWidgets.QShortcut(QtGui.QKeySequence('Ctrl+D'), self)
@@ -491,11 +492,6 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
return selected_indexes
def delete_books(self, selected_indexes=None):
# TODO
# ? Mirror selection
# Ask if library files are to be excluded from further scans
# Make a checkbox for this
if not selected_indexes:
# Get a list of QItemSelection objects
# What we're interested in is the indexes()[0] in each of them
@@ -557,7 +553,8 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.lib_ref.generate_library_tags()
self.statusMessage.setText(
str(self.lib_ref.item_proxy_model.rowCount()) + ' books')
str(self.lib_ref.item_proxy_model.rowCount()) +
self._translate('Main_UI', ' books'))
if not self.settings['perform_culling']:
self.load_all_covers()

View File

@@ -77,6 +77,8 @@ class Library:
year = i[2]
path = i[4]
last_accessed = i[9]
if last_accessed and not isinstance(last_accessed, QtCore.QDateTime):
last_accessed = pickle.loads(last_accessed)
tags = i[7]
if isinstance(tags, list): # When files are added for the first time
@@ -168,7 +170,8 @@ class Library:
self.parent.listView.setIconSize(s)
self.parent.listView.setModel(self.item_proxy_model)
self.table_proxy_model = TableProxyModel(self.parent.temp_dir.path())
self.table_proxy_model = TableProxyModel(
self.parent.temp_dir.path(), self.parent.tableView.horizontalHeader())
self.table_proxy_model.setSourceModel(self.view_model)
self.table_proxy_model.setSortCaseSensitivity(False)
self.parent.tableView.setModel(self.table_proxy_model)
@@ -186,6 +189,9 @@ class Library:
self.parent.libraryToolBar.searchBar.text())
# ^^^ This isn't needed, but it forces a model update every time the
# text in the line edit changes. So I guess it is needed.
self.table_proxy_model.sort_table_columns(
self.parent.tableView.horizontalHeader().sortIndicatorSection())
self.table_proxy_model.sort_table_columns()
# Item proxy model
self.item_proxy_model.invalidateFilter()
@@ -197,7 +203,8 @@ class Library:
self.parent.libraryToolBar.searchBar.text())
self.parent.statusMessage.setText(
str(self.item_proxy_model.rowCount()) + ' books')
str(self.item_proxy_model.rowCount()) +
self._translate('Library', ' books'))
# TODO
# Allow sorting by type

View File

@@ -86,7 +86,7 @@ class MetadataUI(QtWidgets.QDialog, metadata.Ui_Dialog):
graphics_scene.addPixmap(image_pixmap)
self.coverView.setScene(graphics_scene)
def ok_pressed(self, event):
def ok_pressed(self, event=None):
book_item = self.parent.lib_ref.view_model.item(self.book_index.row())
title = self.titleLine.text()
@@ -126,7 +126,7 @@ class MetadataUI(QtWidgets.QDialog, metadata.Ui_Dialog):
database.DatabaseFunctions(self.database_path).modify_metadata(
database_dict, book_hash)
def cancel_pressed(self, event):
def cancel_pressed(self, event=None):
self.hide()
def generate_display_position(self, mouse_cursor_position):

View File

@@ -16,7 +16,6 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import pickle
import pathlib
from PyQt5 import QtCore, QtWidgets
@@ -66,9 +65,9 @@ class ItemProxyModel(QtCore.QSortFilterProxyModel):
class TableProxyModel(QtCore.QSortFilterProxyModel):
def __init__(self, temp_dir, parent=None):
def __init__(self, temp_dir, tableViewHeader, parent=None):
super(TableProxyModel, self).__init__(parent)
self.tableViewHeader = tableViewHeader
self._translate = QtCore.QCoreApplication.translate
title_string = self._translate('TableProxyModel', 'Title')
@@ -98,7 +97,11 @@ class TableProxyModel(QtCore.QSortFilterProxyModel):
def headerData(self, column, orientation, role):
if role == QtCore.Qt.DisplayRole:
return self.header_data[column]
try:
return self.header_data[column]
except IndexError:
print('Table proxy model: Can\'t find header for column', column)
return 'IndexError'
def flags(self, index):
# Tag editing will take place by way of a right click menu
@@ -153,11 +156,8 @@ class TableProxyModel(QtCore.QSortFilterProxyModel):
return QtCore.QVariant()
if index.column() == 4:
last_accessed_time = item.data(self.role_dictionary[index.column()])
if last_accessed_time:
last_accessed = last_accessed_time
if not isinstance(last_accessed_time, QtCore.QDateTime):
last_accessed = pickle.loads(last_accessed_time)
last_accessed = item.data(self.role_dictionary[index.column()])
if last_accessed:
right_now = QtCore.QDateTime().currentDateTime()
time_diff = last_accessed.msecsTo(right_now)
return self.time_convert(time_diff // 1000)
@@ -174,10 +174,13 @@ class TableProxyModel(QtCore.QSortFilterProxyModel):
output = self.common_functions.filterAcceptsRow(row, parent)
return output
def sort_table_columns(self, column):
sorting_order = self.sender().sortIndicatorOrder()
def sort_table_columns(self, column=None):
column = self.tableViewHeader.sortIndicatorSection()
sorting_order = self.tableViewHeader.sortIndicatorOrder()
self.sort(0, sorting_order)
self.setSortRole(self.role_dictionary[column])
if column != 0:
self.setSortRole(self.role_dictionary[column])
def time_convert(self, seconds):
seconds = int(seconds)

View File

@@ -21,6 +21,7 @@
import os
import copy
import pathlib
from PyQt5 import QtWidgets, QtCore
from lector import database
@@ -43,9 +44,9 @@ class SettingsUI(QtWidgets.QDialog, settingswindow.Ui_Dialog):
self.move(self.parent.settings['settings_dialog_position'])
self.aboutBox.setVisible(False)
application_root = os.sep.join(
os.path.realpath(__file__).rsplit('/')[:-2])
aboutfile_path = os.path.join(application_root, 'resources', 'about.html')
install_dir = os.path.realpath(__file__)
install_dir = pathlib.Path(install_dir).parents[1]
aboutfile_path = os.path.join(install_dir, 'resources', 'about.html')
with open(aboutfile_path) as about_html:
self.aboutBox.setHtml(about_html.read())

View File

@@ -117,18 +117,22 @@ class BookSorter:
def database_entry_for_book(self, file_hash):
database_return = database.DatabaseFunctions(
self.database_path).fetch_data(
('Position', 'Bookmarks'),
('Title', 'Author', 'Year', 'ISBN', 'Tags', 'Position', 'Bookmarks'),
'books',
{'Hash': file_hash},
'EQUALS')[0]
book_data = []
for i in database_return:
# All of these values are pickled and stored
if i:
book_data.append(pickle.loads(i))
for count, i in enumerate(database_return):
if count in (5, 6):
if i:
book_data.append(pickle.loads(i))
else:
book_data.append(None)
else:
book_data.append(None)
book_data.append(i)
return book_data
def read_book(self, filename):
@@ -170,37 +174,29 @@ class BookSorter:
book_ref.read_book()
if book_ref.book:
title = book_ref.get_title()
author = book_ref.get_author()
if not author:
author = 'Unknown'
try:
year = int(book_ref.get_year())
except (TypeError, ValueError):
year = 9999
isbn = book_ref.get_isbn()
tags = None
if self.auto_tags:
tags = book_ref.get_tags()
this_book = {}
this_book[file_md5] = {
'title': title,
'author': author,
'year': year,
'isbn': isbn,
'hash': file_md5,
'path': filename,
'tags': tags}
'path': filename}
# Different modes require different values
if self.mode == 'addition':
# Reduce the size of the incoming image
# if one is found
title = book_ref.get_title()
author = book_ref.get_author()
if not author:
author = 'Unknown'
year = book_ref.get_year()
isbn = book_ref.get_isbn()
tags = None
if self.auto_tags:
tags = book_ref.get_tags()
cover_image_raw = book_ref.get_cover_image()
if cover_image_raw:
@@ -226,14 +222,25 @@ class BookSorter:
content = [('Invalid', 'Something went horribly wrong')]
book_data = self.database_entry_for_book(file_md5)
position = book_data[0]
bookmarks = book_data[1]
title = book_data[0]
author = book_data[1]
year = book_data[2]
isbn = book_data[3]
tags = book_data[4]
position = book_data[5]
bookmarks = book_data[6]
this_book[file_md5]['position'] = position
this_book[file_md5]['bookmarks'] = bookmarks
this_book[file_md5]['content'] = content
this_book[file_md5]['images_only'] = images_only
this_book[file_md5]['title'] = title
this_book[file_md5]['author'] = author
this_book[file_md5]['year'] = year
this_book[file_md5]['isbn'] = isbn
this_book[file_md5]['tags'] = tags
return this_book
def read_progress(self):

View File

@@ -451,6 +451,10 @@ class FixedLineEdit(QtWidgets.QLineEdit):
def sizeHint(self):
return QtCore.QSize(400, 22)
def keyReleaseEvent(self, event):
if event.key() == QtCore.Qt.Key_Escape:
self.clear()
class FixedPushButton(QtWidgets.QPushButton):
def __init__(self, parent=None):

View File

@@ -282,20 +282,25 @@
<context>
<name>Library</name>
<message>
<location filename="../../lector/library.py" line="124"/>
<location filename="../../lector/library.py" line="126"/>
<source>Author</source>
<translation>Autor</translation>
</message>
<message>
<location filename="../../lector/library.py" line="125"/>
<location filename="../../lector/library.py" line="127"/>
<source>Year</source>
<translation>Jahr</translation>
</message>
<message>
<location filename="../../lector/library.py" line="260"/>
<location filename="../../lector/library.py" line="267"/>
<source>manually added</source>
<translation>Manuell hinzugefügt</translation>
</message>
<message>
<location filename="../../lector/library.py" line="205"/>
<source> books</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LibraryToolBar</name>
@@ -371,62 +376,62 @@
<translation>Biblothek scannen </translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="458"/>
<location filename="../../lector/__main__.py" line="459"/>
<source>Add books to database</source>
<translation>Bücher zur Datenbank hinzufügen</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="459"/>
<location filename="../../lector/__main__.py" line="460"/>
<source>eBooks</source>
<translation>eBooks</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="472"/>
<location filename="../../lector/__main__.py" line="473"/>
<source>Adding books...</source>
<translation>Bücher werden hinzugefügt...</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="540"/>
<location filename="../../lector/__main__.py" line="536"/>
<source>Confirm deletion</source>
<translation>Löschen bestätigen</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="549"/>
<location filename="../../lector/__main__.py" line="545"/>
<source>Save changes and start library scan</source>
<translation>Änderungen speichern &amp; Bibliotheksscan starten</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="596"/>
<location filename="../../lector/__main__.py" line="593"/>
<source> Books</source>
<translation>Bücher</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1023"/>
<location filename="../../lector/__main__.py" line="1020"/>
<source>Start reading</source>
<translation>Lesen</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1029"/>
<location filename="../../lector/__main__.py" line="1026"/>
<source>Edit</source>
<translation>Bearbeiten</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1033"/>
<location filename="../../lector/__main__.py" line="1030"/>
<source>Delete</source>
<translation>Löschen</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1036"/>
<location filename="../../lector/__main__.py" line="1033"/>
<source>Mark read</source>
<translation>Als gelesen kennzeichnen</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1039"/>
<location filename="../../lector/__main__.py" line="1036"/>
<source>Mark unread</source>
<translation>Als ungelesen kennzeichnen</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1138"/>
<location filename="../../lector/__main__.py" line="1135"/>
<source>Manually Added</source>
<translation>Manuell hinzugefügt</translation>
</message>
@@ -440,6 +445,11 @@
<source>Images</source>
<translation>Bilder</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="555"/>
<source> books</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MetadataUI</name>
@@ -526,37 +536,37 @@
<context>
<name>SettingsUI</name>
<message>
<location filename="../../lector/settingsdialog.py" line="57"/>
<location filename="../../lector/settingsdialog.py" line="58"/>
<source>English</source>
<translation>Englisch</translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="58"/>
<location filename="../../lector/settingsdialog.py" line="59"/>
<source>Spanish</source>
<translation>Spanisch</translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="59"/>
<location filename="../../lector/settingsdialog.py" line="60"/>
<source>Hindi</source>
<translation>Hindi</translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="72"/>
<location filename="../../lector/settingsdialog.py" line="73"/>
<source>Save changes and start library scan</source>
<translation>Änderungen speichern &amp; Bibliotheksscan starten</translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="215"/>
<location filename="../../lector/settingsdialog.py" line="216"/>
<source>Library scan in progress...</source>
<translation>Bibliotheksscan in Arbeit...</translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="219"/>
<location filename="../../lector/settingsdialog.py" line="220"/>
<source>Checking library folders</source>
<translation>Bibliotheksverzeichnisse werden überprüft</translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="234"/>
<location filename="../../lector/settingsdialog.py" line="235"/>
<source>Parsing files</source>
<translation>Dateien werden analysiert</translation>
</message>
@@ -607,7 +617,7 @@
<translation>Zuletzt gelesen</translation>
</message>
<message>
<location filename="../../lector/models.py" line="78"/>
<location filename="../../lector/models.py" line="77"/>
<source>Tags</source>
<translation>Tags</translation>
</message>

View File

@@ -282,20 +282,25 @@
<context>
<name>Library</name>
<message>
<location filename="../../lector/library.py" line="124"/>
<location filename="../../lector/library.py" line="126"/>
<source>Author</source>
<translation>Autor</translation>
</message>
<message>
<location filename="../../lector/library.py" line="125"/>
<location filename="../../lector/library.py" line="127"/>
<source>Year</source>
<translation>Año</translation>
</message>
<message>
<location filename="../../lector/library.py" line="260"/>
<location filename="../../lector/library.py" line="267"/>
<source>manually added</source>
<translation>añadido manualmente</translation>
</message>
<message>
<location filename="../../lector/library.py" line="205"/>
<source> books</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LibraryToolBar</name>
@@ -371,62 +376,62 @@
<translation>Explorar la biblioteca</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="458"/>
<location filename="../../lector/__main__.py" line="459"/>
<source>Add books to database</source>
<translation>Añadir libros a la base de datos</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="459"/>
<location filename="../../lector/__main__.py" line="460"/>
<source>eBooks</source>
<translation>Libros electrónicos</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="472"/>
<location filename="../../lector/__main__.py" line="473"/>
<source>Adding books...</source>
<translation>Añadiendo los libros</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="540"/>
<location filename="../../lector/__main__.py" line="536"/>
<source>Confirm deletion</source>
<translation>Confirmar la eliminación</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="549"/>
<location filename="../../lector/__main__.py" line="545"/>
<source>Save changes and start library scan</source>
<translation>Guardar cambios e iniciar exploración de biblioteca</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="596"/>
<location filename="../../lector/__main__.py" line="593"/>
<source> Books</source>
<translation> Libros</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1023"/>
<location filename="../../lector/__main__.py" line="1020"/>
<source>Start reading</source>
<translation>Comenzar a leer</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1029"/>
<location filename="../../lector/__main__.py" line="1026"/>
<source>Edit</source>
<translation>Editar</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1033"/>
<location filename="../../lector/__main__.py" line="1030"/>
<source>Delete</source>
<translation>Eliminar</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1036"/>
<location filename="../../lector/__main__.py" line="1033"/>
<source>Mark read</source>
<translation>Marcar como leído</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1039"/>
<location filename="../../lector/__main__.py" line="1036"/>
<source>Mark unread</source>
<translation>Marcar como no leído</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1138"/>
<location filename="../../lector/__main__.py" line="1135"/>
<source>Manually Added</source>
<translation>Añadido manualmente</translation>
</message>
@@ -440,6 +445,11 @@
<source>Images</source>
<translation type="unfinished">Imágenes</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="555"/>
<source> books</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MetadataUI</name>
@@ -536,37 +546,37 @@
<context>
<name>SettingsUI</name>
<message>
<location filename="../../lector/settingsdialog.py" line="57"/>
<location filename="../../lector/settingsdialog.py" line="58"/>
<source>English</source>
<translation>Inglés</translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="58"/>
<location filename="../../lector/settingsdialog.py" line="59"/>
<source>Spanish</source>
<translation>Español</translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="59"/>
<location filename="../../lector/settingsdialog.py" line="60"/>
<source>Hindi</source>
<translation>Hindi</translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="72"/>
<location filename="../../lector/settingsdialog.py" line="73"/>
<source>Save changes and start library scan</source>
<translation>Guardar cambios e iniciar exploración de biblioteca</translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="215"/>
<location filename="../../lector/settingsdialog.py" line="216"/>
<source>Library scan in progress...</source>
<translation>Se está explorando la biblioteca</translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="219"/>
<location filename="../../lector/settingsdialog.py" line="220"/>
<source>Checking library folders</source>
<translation>Comprobando las carpetas de la biblioteca</translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="234"/>
<location filename="../../lector/settingsdialog.py" line="235"/>
<source>Parsing files</source>
<translation>Procesando los archivos</translation>
</message>
@@ -617,7 +627,7 @@
<translation>Última lectura</translation>
</message>
<message>
<location filename="../../lector/models.py" line="78"/>
<location filename="../../lector/models.py" line="77"/>
<source>Tags</source>
<translation>Etiquetas</translation>
</message>

View File

@@ -282,20 +282,25 @@
<context>
<name>Library</name>
<message>
<location filename="../../lector/library.py" line="124"/>
<location filename="../../lector/library.py" line="126"/>
<source>Author</source>
<translation>Auteur</translation>
</message>
<message>
<location filename="../../lector/library.py" line="125"/>
<location filename="../../lector/library.py" line="127"/>
<source>Year</source>
<translation>Année</translation>
</message>
<message>
<location filename="../../lector/library.py" line="260"/>
<location filename="../../lector/library.py" line="267"/>
<source>manually added</source>
<translation>manuellement ajouté</translation>
</message>
<message>
<location filename="../../lector/library.py" line="205"/>
<source> books</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LibraryToolBar</name>
@@ -371,62 +376,62 @@
<translation>Analyser la bibliothèque</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="458"/>
<location filename="../../lector/__main__.py" line="459"/>
<source>Add books to database</source>
<translation>Ajouter des livres à la base de données</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="459"/>
<location filename="../../lector/__main__.py" line="460"/>
<source>eBooks</source>
<translation>eBooks</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="472"/>
<location filename="../../lector/__main__.py" line="473"/>
<source>Adding books...</source>
<translation>Ajout des livres</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="540"/>
<location filename="../../lector/__main__.py" line="536"/>
<source>Confirm deletion</source>
<translation>Confirmez la suppression</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="549"/>
<location filename="../../lector/__main__.py" line="545"/>
<source>Save changes and start library scan</source>
<translation>Enregistrer les modifications et démarrer l&apos;analyse de la bibliothèque</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="596"/>
<location filename="../../lector/__main__.py" line="593"/>
<source> Books</source>
<translation> Livres</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1023"/>
<location filename="../../lector/__main__.py" line="1020"/>
<source>Start reading</source>
<translation>Commencer à lire</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1029"/>
<location filename="../../lector/__main__.py" line="1026"/>
<source>Edit</source>
<translation>Modifier</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1033"/>
<location filename="../../lector/__main__.py" line="1030"/>
<source>Delete</source>
<translation>Supprimer</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1036"/>
<location filename="../../lector/__main__.py" line="1033"/>
<source>Mark read</source>
<translation>Marquer comme lu</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1039"/>
<location filename="../../lector/__main__.py" line="1036"/>
<source>Mark unread</source>
<translation>Marquer comme non-lu</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1138"/>
<location filename="../../lector/__main__.py" line="1135"/>
<source>Manually Added</source>
<translation>Manuellement ajouté</translation>
</message>
@@ -440,6 +445,11 @@
<source>Images</source>
<translation type="unfinished">Images</translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="555"/>
<source> books</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MetadataUI</name>
@@ -526,37 +536,37 @@
<context>
<name>SettingsUI</name>
<message>
<location filename="../../lector/settingsdialog.py" line="57"/>
<location filename="../../lector/settingsdialog.py" line="58"/>
<source>English</source>
<translation>Anglais</translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="58"/>
<location filename="../../lector/settingsdialog.py" line="59"/>
<source>Spanish</source>
<translation>Espagnol</translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="59"/>
<location filename="../../lector/settingsdialog.py" line="60"/>
<source>Hindi</source>
<translation>Hindi</translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="72"/>
<location filename="../../lector/settingsdialog.py" line="73"/>
<source>Save changes and start library scan</source>
<translation>Enregistrer les modifications et démarrer l&apos;analyse de la bibliothèque</translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="215"/>
<location filename="../../lector/settingsdialog.py" line="216"/>
<source>Library scan in progress...</source>
<translation>Analyse de la bibliothèque en cours</translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="219"/>
<location filename="../../lector/settingsdialog.py" line="220"/>
<source>Checking library folders</source>
<translation>Vérification des dossiers de la bibliothèque</translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="234"/>
<location filename="../../lector/settingsdialog.py" line="235"/>
<source>Parsing files</source>
<translation>Lecture des fichiers</translation>
</message>
@@ -607,7 +617,7 @@
<translation>Lu pour la dernière fois</translation>
</message>
<message>
<location filename="../../lector/models.py" line="78"/>
<location filename="../../lector/models.py" line="77"/>
<source>Tags</source>
<translation>Étiquettes</translation>
</message>

View File

@@ -282,20 +282,25 @@
<context>
<name>Library</name>
<message>
<location filename="../../lector/library.py" line="124"/>
<location filename="../../lector/library.py" line="126"/>
<source>Author</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/library.py" line="125"/>
<location filename="../../lector/library.py" line="127"/>
<source>Year</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/library.py" line="260"/>
<location filename="../../lector/library.py" line="267"/>
<source>manually added</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/library.py" line="205"/>
<source> books</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LibraryToolBar</name>
@@ -371,62 +376,62 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="458"/>
<location filename="../../lector/__main__.py" line="459"/>
<source>Add books to database</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="459"/>
<location filename="../../lector/__main__.py" line="460"/>
<source>eBooks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="472"/>
<location filename="../../lector/__main__.py" line="473"/>
<source>Adding books...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="540"/>
<location filename="../../lector/__main__.py" line="536"/>
<source>Confirm deletion</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="549"/>
<location filename="../../lector/__main__.py" line="545"/>
<source>Save changes and start library scan</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="596"/>
<location filename="../../lector/__main__.py" line="593"/>
<source> Books</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1023"/>
<location filename="../../lector/__main__.py" line="1020"/>
<source>Start reading</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1029"/>
<location filename="../../lector/__main__.py" line="1026"/>
<source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1033"/>
<location filename="../../lector/__main__.py" line="1030"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1036"/>
<location filename="../../lector/__main__.py" line="1033"/>
<source>Mark read</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1039"/>
<location filename="../../lector/__main__.py" line="1036"/>
<source>Mark unread</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="1138"/>
<location filename="../../lector/__main__.py" line="1135"/>
<source>Manually Added</source>
<translation type="unfinished"></translation>
</message>
@@ -440,6 +445,11 @@
<source>Images</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/__main__.py" line="555"/>
<source> books</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MetadataUI</name>
@@ -526,37 +536,37 @@
<context>
<name>SettingsUI</name>
<message>
<location filename="../../lector/settingsdialog.py" line="57"/>
<location filename="../../lector/settingsdialog.py" line="58"/>
<source>English</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="58"/>
<location filename="../../lector/settingsdialog.py" line="59"/>
<source>Spanish</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="59"/>
<location filename="../../lector/settingsdialog.py" line="60"/>
<source>Hindi</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="72"/>
<location filename="../../lector/settingsdialog.py" line="73"/>
<source>Save changes and start library scan</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="215"/>
<location filename="../../lector/settingsdialog.py" line="216"/>
<source>Library scan in progress...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="219"/>
<location filename="../../lector/settingsdialog.py" line="220"/>
<source>Checking library folders</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/settingsdialog.py" line="234"/>
<location filename="../../lector/settingsdialog.py" line="235"/>
<source>Parsing files</source>
<translation type="unfinished"></translation>
</message>
@@ -607,7 +617,7 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../lector/models.py" line="78"/>
<location filename="../../lector/models.py" line="77"/>
<source>Tags</source>
<translation type="unfinished"></translation>
</message>