Skip to content

Commit

Permalink
feature: add translations eng/es
Browse files Browse the repository at this point in the history
  • Loading branch information
centaurialpha committed Apr 2, 2021
1 parent 703fd35 commit 39c065e
Show file tree
Hide file tree
Showing 23 changed files with 13,968 additions and 13,860 deletions.
2 changes: 1 addition & 1 deletion bin/pireal
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ if args.version:
create_app_dirs()

from pireal.core import logger # noqa
from pireal import main # noqa
from pireal import resources # noqa
from pireal import main # noqa
# Set up logger
# logger.set_up(debug=args.debug, verbose=args.verbose)
logger.set_up(verbose=args.verbose)
Expand Down
1 change: 1 addition & 0 deletions pireal/dirs.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ def _get_databases_location() -> Path:
LOGS_DIR = _data_dir() / 'logs'
CONFIG_FILE = _data_dir() / 'config.ini'
DATA_SETTINGS = _data_dir() / 'data_settings.ini'
LANGUAGES_DIR = _ROOT_DIR / 'pireal' / 'resources' / 'lang'
DATABASES_DIR = _get_databases_location()


Expand Down
124 changes: 59 additions & 65 deletions pireal/gui/central_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
)
from pireal.gui.lateral_widget import RelationItemType
from pireal.dirs import DATA_SETTINGS
from pireal import translations as tr

# Logger
logger = logging.getLogger(__name__)
Expand Down Expand Up @@ -153,8 +154,8 @@ def __on_wizard_finished(self, *data):
def __say_about_one_db_at_time(self):
logger.warning("Oops! One database at a time please")
QMessageBox.information(self,
self.tr("Information"),
self.tr("Oops! One database at a time please"))
tr.TR_MSG_INFORMATION,
tr.TR_MSG_ONE_DB_AT_TIME)

def open_database(self, filename='', remember=True):
""" This function opens a database and set this on the UI """
Expand All @@ -172,7 +173,10 @@ def open_database(self, filename='', remember=True):
# filter_ = settings.SUPPORTED_FILES.split(';;')[0]
filter_ = settings.get_extension_filter('.pdb')
filename, _ = QFileDialog.getOpenFileName(
self, self.tr("Open Database"), directory, filter_)
self,
tr.TR_OPEN_DATABASE,
directory, filter_
)
# If is canceled, return
if not filename:
logger.debug('File not selected, bye!')
Expand All @@ -190,7 +194,10 @@ def open_database(self, filename='', remember=True):
except Exception as reason:
logger.exception('The database file could not be opened: %s', filename)
QMessageBox.information(
self, self.tr('The database file could not be opened'), str(reason))
self,
tr.TR_MSG_DB_NOT_OPENED,
str(reason)
)
return

# Create a database container widget
Expand All @@ -200,11 +207,11 @@ def open_database(self, filename='', remember=True):
db_container.create_database(db_data)
except Exception as reason:
logger.exception('Error creating the database')
QMessageBox.information(self, self.tr("Error"), str(reason))
QMessageBox.information(self, 'Error', str(reason))
return

pireal = Pireal.get_service('pireal')
pireal.status_bar.show_message(f'Database loaded: {filename}')
pireal.status_bar.show_message(tr.TR_STATUS_DB_LOADED.format(filename))

# Set the PFile object to the new database
db_container.pfile = pfile_object
Expand All @@ -213,7 +220,7 @@ def open_database(self, filename='', remember=True):
# Database name
db_name = file_manager.get_basename(filename)
# Update title with the new database name, and enable some actions
self.databaseConected.emit(self.tr("Connected to: {}".format(db_name)))
pireal.status_bar.show_message(tr.TR_STATUS_DB_CONNECTED.format(db_name))
if remember:
# Add to recent databases
self.remember_recent_database(filename)
Expand All @@ -228,11 +235,12 @@ def open_query(self, filename='', remember=True):
else:
directory = self._last_open_folder
filter_ = settings.SUPPORTED_FILES.split(';;')[1]
filename, _ = QFileDialog.getOpenFileName(self,
self.tr(
"Abrir Consulta"),
directory,
filter_)
filename, _ = QFileDialog.getOpenFileName(
self,
tr.TR_MSG_OPEN_QUERY,
directory,
filter_
)
if not filename:
return
# Si @filename no es False
Expand All @@ -246,8 +254,8 @@ def save_query(self, editor=None):
db = self.get_active_db()
fname = db.save_query(editor)
if fname:
self.querySaved.emit(self.tr("Consulta guardada: {}".format(
fname)))
pireal = Pireal.get_service('pireal')
pireal.status_bar.show_message(tr.TR_STATUS_QUERY_SAVED.format(fname))

def save_query_as(self):
pass
Expand Down Expand Up @@ -298,24 +306,15 @@ def close_database(self):
query_container = db.query_container

if db.modified:
msgbox = QMessageBox(self)
msgbox.setIcon(QMessageBox.Question)
msgbox.setWindowTitle(self.tr("Guardar cambios?"))
msgbox.setText(
self.tr(
"La base de datos <b>{}</b> ha sido modificada."
"<br>Quiere guardar los cambios?".format(db.dbname())))
cancel_btn = msgbox.addButton(self.tr("Cancelar"),
QMessageBox.RejectRole)
msgbox.addButton(self.tr("No"),
QMessageBox.NoRole)
yes_btn = msgbox.addButton(self.tr("Si"),
QMessageBox.YesRole)
msgbox.exec_()
r = msgbox.clickedButton()
if r == cancel_btn:
ret = QMessageBox.question(
self,
tr.TR_MSG_SAVE_CHANGES,
tr.TR_MSG_SAVE_CHANGES_BODY,
QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel
)
if ret == QMessageBox.Cancel:
return
if r == yes_btn:
if ret == QMessageBox.Yes:
self.save_database()

# Check if editor is modified
Expand All @@ -325,24 +324,15 @@ def close_database(self):
if weditor is not None:
# TODO: duplicate code, see tab widget
if weditor.modified:
msgbox = QMessageBox(self)
msgbox.setIcon(QMessageBox.Question)
msgbox.setWindowTitle(self.tr("Archivo modificado"))
msgbox.setText(self.tr("El archivo <b>{}</b> tiene cambios"
" no guardados. Quiere "
"mantenerlos?".format(
weditor.name)))
cancel_btn = msgbox.addButton(self.tr("Cancelar"),
QMessageBox.RejectRole)
msgbox.addButton(self.tr("No"),
QMessageBox.NoRole)
yes_btn = msgbox.addButton(self.tr("Si"),
QMessageBox.YesRole)
msgbox.exec_()
r = msgbox.clickedButton()
if r == cancel_btn:
ret = QMessageBox.question(
self,
tr.TR_MSG_FILE_MODIFIED,
tr.TR_MSG_FILE_MODIFIED_BODY.format(weditor.name),
QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel
)
if ret == QMessageBox.Cancel:
return
if r == yes_btn:
if ret == QMessageBox.Yes:
self.save_query(weditor)

self.stacked.removeWidget(db)
Expand Down Expand Up @@ -378,19 +368,20 @@ def save_database(self):
content = file_manager.generate_database(relations)
db.pfile.save(data=content)
filename = db.pfile.filename
# Emit signal
self.databaseSaved.emit(
self.tr("Base de datos guardada: {}".format(filename)))

pireal = Pireal.get_service('pireal')
pireal.status_bar.show_message(tr.TR_STATUS_DB_SAVED.format(filename))

db.modified = False

def save_database_as(self):
filter = settings.SUPPORTED_FILES.split(';;')[0]
filename, _ = QFileDialog.getSaveFileName(self,
self.tr("Guardar Base de "
"Datos como..."),
settings.PIREAL_DATABASES,
filter)
filename, _ = QFileDialog.getSaveFileName(
self,
tr.TR_MSG_SAVE_DB_AS,
settings.PIREAL_DATABASES,
filter
)
if not filename:
return
db = self.get_active_db()
Expand All @@ -402,8 +393,8 @@ def save_database_as(self):
if not os.path.splitext(filename)[1]:
filename += '.pdb'
db.pfile.save(content, filename)
self.databaseSaved.emit(
self.tr("Base de datos guardada: {}".format(db.pfile.filename)))
pireal = Pireal.get_service('pireal')
pireal.status_bar.show_message(tr.TR_STATUS_DB_SAVED.format(db.pfile.filename))

db.modified = False

Expand Down Expand Up @@ -435,10 +426,12 @@ def load_relation(self, filename=''):
else:
directory = self._last_open_folder

msg = self.tr("Abrir Relación")
filter_ = settings.SUPPORTED_FILES.split(';;')[-1]
filenames = QFileDialog.getOpenFileNames(self, msg, directory,
filter_)[0]
filenames = QFileDialog.getOpenFileNames(
self,
tr.TR_MSG_OPEN_RELATION,
directory,
filter_)[0]

if not filenames:
return
Expand Down Expand Up @@ -557,10 +550,11 @@ def delete_tuple(self):
if lateral.relation_list.has_item() == 0:
return
r = QMessageBox.question(
self,
self.tr("Eliminar tupla/s"),
self.tr("Seguro que quiere eliminar las tuplas seleccionadas?"),
QMessageBox.Yes | QMessageBox.Cancel)
self,
tr.TR_MSG_REMOVE_TUPLES,
tr.TR_MSG_REMOVE_TUPLES_BODY,
QMessageBox.Yes | QMessageBox.Cancel
)
if r == QMessageBox.Cancel:
return
tw = self.get_active_db().table_widget
Expand Down
57 changes: 25 additions & 32 deletions pireal/gui/database_container.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,6 @@
from PyQt5.QtCore import QSettings
from PyQt5.QtCore import pyqtSlot as Slot

from PyQt5.QtGui import QPalette
from PyQt5.QtGui import QColor

from pireal.gui import (
table_widget,
lateral_widget,
Expand All @@ -45,6 +42,7 @@
file_manager
)
from pireal.dirs import DATA_SETTINGS
from pireal import translations as tr

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -145,37 +143,28 @@ def load_relation(self, filenames):
rel.insert(i)
relation_name = file_manager.get_basename(filename)
if not self.table_widget.add_relation(relation_name, rel):
QMessageBox.information(self, self.tr("Información"),
self.tr("Ya existe una relación "
"con el nombre "
"'{}'".format(
relation_name)))
QMessageBox.information(
self,
tr.TR_MSG_INFORMATION,
tr.TR_RELATION_NAME_ALREADY_EXISTS.format(relation_name)
)
return False

self.table_widget.add_table(rel, relation_name)
# self.lateral_widget.add_item(relation_name, rel.cardinality())
return True

def delete_relation(self):
name = self.lateral_widget.relation_list.current_text()
index = self.lateral_widget.relation_list.current_index()
if not name:
return
msgbox = QMessageBox(self)
msgbox.setIcon(QMessageBox.Question)
msgbox.setWindowTitle(self.tr("Confirmación"))
msgbox.setText(
self.tr("Está seguro de eliminar la relación <b>{}</b>?".format(
name)))
msgbox.addButton(self.tr("No!"), QMessageBox.NoRole)

si = msgbox.addButton(self.tr("Si, estoy seguro"), QMessageBox.YesRole)
palette = QPalette()
palette.setColor(QPalette.Button, QColor("#cc575d"))
palette.setColor(QPalette.ButtonText, QColor("white"))
si.setPalette(palette)
msgbox.exec_()
if msgbox.clickedButton() == si:
ret = QMessageBox.question(
self,
tr.TR_MSG_CONFIRMATION,
tr.TR_MSG_REMOVE_RELATION.format(name),
QMessageBox.Yes | QMessageBox.No
)
if ret == QMessageBox.Yes:
self.lateral_widget.relation_list.remove_item(index)
self.table_widget.remove_table(index)
self.table_widget.remove_relation(name)
Expand Down Expand Up @@ -230,19 +219,23 @@ def save_query(self, editor):
content = editor.toPlainText()
try:
editor.pfile.save(data=content)
except Exception as reason:
QMessageBox.critical(self, "Error",
self.tr("El archivo no se puede abrir!"
"\n\n{}".format(reason)))
except Exception:
QMessageBox.critical(
self,
'Error',
tr.TR_MSG_FILE_NOT_OPENED
)
return False
editor.saved()
return editor.pfile.filename

def save_query_as(self, editor=None):
filename = QFileDialog.getSaveFileName(self,
self.tr("Guardar Archivo"),
editor.name,
"Pireal query files(*.pqf)")
filename = QFileDialog.getSaveFileName(
self,
tr.TR_MSG_SAVE_QUERY_FILE,
editor.name,
"Pireal query files(*.pqf)"
)
filename = filename[0]
if not filename:
return
Expand Down
Loading

0 comments on commit 39c065e

Please sign in to comment.