Add i18n which allow translations

Signed-off-by: Juraj Oravec <sgd.orava@gmail.com>
This commit is contained in:
Juraj Oravec 2019-05-15 23:49:08 +02:00
parent ae01a4de54
commit 846da6c17f
No known key found for this signature in database
GPG Key ID: 63ACB65056BC8D07
4 changed files with 64 additions and 2 deletions

11
autoZoomer/Messages.sh Normal file
View File

@ -0,0 +1,11 @@
#! /bin/sh
XGETTEXT_FLAGS_PYTHON="\
--copyright-holder=This_file_is_part_of_KDE \
--msgid-bugs-address=http://bugs.kde.org \
--from-code=UTF-8 \
-L Python \
-ki18n:1 -ki18np:1,2 \
"
$XGETTEXT_PROGRAM $XGETTEXT_FLAGS_PYTHON `find . -name '*.py'` -o $podir/autoZoomer.pot

View File

@ -19,6 +19,7 @@
import Falkon import Falkon
import os import os
from PySide2 import QtGui from PySide2 import QtGui
from autoZoomer.i18n import i18n
class AutoZoomerButton(Falkon.AbstractButtonInterface): class AutoZoomerButton(Falkon.AbstractButtonInterface):
@ -29,8 +30,8 @@ class AutoZoomerButton(Falkon.AbstractButtonInterface):
self.manager = manager self.manager = manager
self.setIcon(QtGui.QIcon(os.path.join(os.path.dirname(__file__), "icon.svg"))) self.setIcon(QtGui.QIcon(os.path.join(os.path.dirname(__file__), "icon.svg")))
self.setTitle("Auto Zoomer") self.setTitle(i18n("Auto Zoomer"))
self.setToolTip("Save current zoom level") self.setToolTip(i18n("Save current zoom level"))
self.clicked.connect(self.onClicked) self.clicked.connect(self.onClicked)

40
autoZoomer/i18n.py Normal file
View File

@ -0,0 +1,40 @@
# ============================================================
# Falkon - Qt web browser
# Copyright (C) 2018 David Rosca <nowrep@gmail.com>
# Copyright (C) 2019 Juraj Oravec <sgd.orava@gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# 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 gettext
import os
from PySide2 import QtCore
locale = QtCore.QLocale.system()
languages = [
locale.name(),
locale.bcp47Name()
]
i = locale.name().find('_')
if i > 0:
languages.append(locale.name()[:i])
localedir = QtCore.QStandardPaths.locate(
QtCore.QStandardPaths.GenericDataLocation,
os.path.join(os.path.dirname(__file__), "locale"),
QtCore.QStandardPaths.LocateDirectory
)
t = gettext.translation('falkon_' + __package__, localedir, languages, fallback=True)
i18n = t.gettext
i18np = t.ngettext

View File

@ -19,6 +19,7 @@
import os import os
from PySide2 import QtCore, QtWidgets, QtUiTools from PySide2 import QtCore, QtWidgets, QtUiTools
from autoZoomer.listItem import ListItem from autoZoomer.listItem import ListItem
from autoZoomer.i18n import i18n
class SettingsDialog(QtWidgets.QDialog): class SettingsDialog(QtWidgets.QDialog):
@ -45,6 +46,8 @@ class SettingsDialog(QtWidgets.QDialog):
layout.addWidget(self.ui) layout.addWidget(self.ui)
self.setLayout(layout) self.setLayout(layout)
self.translations()
self.ui.checkBoxEnableAutoZoomer.setChecked(self.config["active"]) self.ui.checkBoxEnableAutoZoomer.setChecked(self.config["active"])
self.ui.checkBoxDefaultZoom.setChecked(self.config["defaultZoom"]) self.ui.checkBoxDefaultZoom.setChecked(self.config["defaultZoom"])
@ -64,6 +67,13 @@ class SettingsDialog(QtWidgets.QDialog):
self.ui.buttonBoxConfirm.accepted.connect(self.accept) self.ui.buttonBoxConfirm.accepted.connect(self.accept)
self.ui.buttonBoxConfirm.rejected.connect(self.reject) self.ui.buttonBoxConfirm.rejected.connect(self.reject)
def translations(self):
self.setWindowTitle(i18n("Auto Zoomer Settings"))
self.ui.pushButtonAdd.setText(i18n("Add"))
self.ui.pushButtonRemove.setText(i18n("Remove"))
self.ui.checkBoxEnableAutoZoomer.setText(i18n("Enable Auto Zoomer"))
self.ui.checkBoxDefaultZoom.setText(i18n("On unknown host zoom to default zoom level"))
def addListItem(self, host, zoom=6, active=True): def addListItem(self, host, zoom=6, active=True):
if not host: if not host:
return return