Update a few translation items

- Add Japanese as a selectable language
- Wrap a few missed strings in tr()
- Regenerate .pot files
This commit is contained in:
Andrew Senetar 2021-03-17 20:21:29 -05:00
parent e36aab177c
commit fbdb333457
Signed by: arsenetar
GPG Key ID: C63300DCE48AB2F1
5 changed files with 129 additions and 49 deletions

View File

@ -881,3 +881,27 @@ msgid ""
"Example: if you want to filter out .PNG files from the \"My Pictures\" directory only:<br><code>.*My\\sPictures\\\\.*\\.png</code><br><br>You can test the regular expression with the \"test string\" button after pasting a fake path in the test field:<br><code>C:\\\\User\\My Pictures\\test.png</code><br><br>\n"
"Matching regular expressions will be highlighted.<br>If there is at least one highlight, the path or filename tested will be ignored during scans.<br><br>Directories and files starting with a period '.' are filtered out by default.<br><br>"
msgstr ""
#: qt\app.py:256
msgid "Results"
msgstr ""
#: qt\preferences_dialog.py:150
msgid "General Interface"
msgstr ""
#: qt\preferences_dialog.py:176
msgid "Result Table"
msgstr ""
#: qt\preferences_dialog.py:205
msgid "Details Window"
msgstr ""
#: qt\preferences_dialog.py:285
msgid "General"
msgstr ""
#: qt\preferences_dialog.py:286
msgid "Display"
msgstr ""

View File

@ -75,7 +75,7 @@ class DupeGuru(QObject):
"DirectoriesDialog", app=self
)
self.main_window.addTab(
self.directories_dialog, "Directories", switch=False
self.directories_dialog, tr("Directories"), switch=False
)
self.actionDirectoriesWindow.setEnabled(False)
else: # floating windows only
@ -252,7 +252,9 @@ class DupeGuru(QObject):
if self.resultWindow is not None:
if self.use_tabs:
if self.main_window.indexOfWidget(self.resultWindow) < 0:
self.main_window.addTab(self.resultWindow, "Results", switch=True)
self.main_window.addTab(
self.resultWindow, tr("Results"), switch=True
)
return
self.main_window.showTab(self.resultWindow)
else:
@ -300,13 +302,15 @@ class DupeGuru(QObject):
def ignoreListTriggered(self):
if self.use_tabs:
self.showTriggeredTabbedDialog(self.ignoreListDialog, "Ignore List")
self.showTriggeredTabbedDialog(self.ignoreListDialog, tr("Ignore List"))
else: # floating windows
self.model.ignore_list_dialog.show()
def excludeListTriggered(self):
if self.use_tabs:
self.showTriggeredTabbedDialog(self.excludeListDialog, "Exclusion Filters")
self.showTriggeredTabbedDialog(
self.excludeListDialog, tr("Exclusion Filters")
)
else: # floating windows
self.model.exclude_list_dialog.show()

View File

@ -57,11 +57,13 @@ SUPPORTED_LANGUAGES = [
"ko",
"es",
"nl",
"ja",
]
class Sections(Flag):
"""Filter blocks of preferences when reset or loaded"""
GENERAL = auto()
DISPLAY = auto()
ALL = GENERAL | DISPLAY
@ -145,18 +147,25 @@ class PreferencesDialogBase(QDialog):
self.widgetsVLayout.addWidget(self.customCommandEdit)
def _setupDisplayPage(self):
self.ui_groupbox = QGroupBox("&General Interface")
self.ui_groupbox = QGroupBox("&" + tr("General Interface"))
layout = QVBoxLayout()
self.languageLabel = QLabel(tr("Language:"), self)
self.languageComboBox = QComboBox(self)
for lang in self.supportedLanguages:
self.languageComboBox.addItem(get_langnames()[lang])
layout.addLayout(horizontalWrap([self.languageLabel, self.languageComboBox, None]))
self._setupAddCheckbox("tabs_default_pos",
tr("Use default position for tab bar (requires restart)"))
layout.addLayout(
horizontalWrap([self.languageLabel, self.languageComboBox, None])
)
self._setupAddCheckbox(
"tabs_default_pos",
tr("Use default position for tab bar (requires restart)"),
)
self.tabs_default_pos.setToolTip(
tr("Place the tab bar below the main menu instead of next to it\n\
On MacOS, the tab bar will fill up the window's width instead."))
tr(
"Place the tab bar below the main menu instead of next to it\n\
On MacOS, the tab bar will fill up the window's width instead."
)
)
layout.addWidget(self.tabs_default_pos)
self.ui_groupbox.setLayout(layout)
self.displayVLayout.addWidget(self.ui_groupbox)
@ -164,23 +173,27 @@ On MacOS, the tab bar will fill up the window's width instead."))
gridlayout = QGridLayout()
gridlayout.setColumnStretch(2, 2)
formlayout = QFormLayout()
result_groupbox = QGroupBox("&Result Table")
result_groupbox = QGroupBox("&" + tr("Result Table"))
self.fontSizeSpinBox = QSpinBox()
self.fontSizeSpinBox.setMinimum(5)
formlayout.addRow(tr("Font size:"), self.fontSizeSpinBox)
self._setupAddCheckbox("reference_bold_font",
tr("Use bold font for references"))
self._setupAddCheckbox(
"reference_bold_font", tr("Use bold font for references")
)
formlayout.addRow(self.reference_bold_font)
self.result_table_ref_foreground_color = ColorPickerButton(self)
formlayout.addRow(tr("Reference foreground color:"),
self.result_table_ref_foreground_color)
formlayout.addRow(
tr("Reference foreground color:"), self.result_table_ref_foreground_color
)
self.result_table_ref_background_color = ColorPickerButton(self)
formlayout.addRow(tr("Reference background color:"),
self.result_table_ref_background_color)
formlayout.addRow(
tr("Reference background color:"), self.result_table_ref_background_color
)
self.result_table_delta_foreground_color = ColorPickerButton(self)
formlayout.addRow(tr("Delta foreground color:"),
self.result_table_delta_foreground_color)
formlayout.addRow(
tr("Delta foreground color:"), self.result_table_delta_foreground_color
)
formlayout.setLabelAlignment(Qt.AlignLeft)
# Keep same vertical spacing as parent layout for consistency
@ -189,31 +202,45 @@ On MacOS, the tab bar will fill up the window's width instead."))
result_groupbox.setLayout(gridlayout)
self.displayVLayout.addWidget(result_groupbox)
details_groupbox = QGroupBox("&Details Window")
details_groupbox = QGroupBox("&" + tr("Details Window"))
self.details_groupbox_layout = QVBoxLayout()
self._setupAddCheckbox("details_dialog_titlebar_enabled",
tr("Show the title bar and can be docked"))
self._setupAddCheckbox(
"details_dialog_titlebar_enabled",
tr("Show the title bar and can be docked"),
)
self.details_dialog_titlebar_enabled.setToolTip(
tr("While the title bar is hidden, \
use the modifier key to drag the floating window around") if ISLINUX else
tr("The title bar can only be disabled while the window is docked"))
tr(
"While the title bar is hidden, \
use the modifier key to drag the floating window around"
)
if ISLINUX
else tr("The title bar can only be disabled while the window is docked")
)
self.details_groupbox_layout.addWidget(self.details_dialog_titlebar_enabled)
self._setupAddCheckbox("details_dialog_vertical_titlebar",
tr("Vertical title bar"))
self._setupAddCheckbox(
"details_dialog_vertical_titlebar", tr("Vertical title bar")
)
self.details_dialog_vertical_titlebar.setToolTip(
tr("Change the title bar from horizontal on top, to vertical on the left side"))
tr(
"Change the title bar from horizontal on top, to vertical on the left side"
)
)
self.details_groupbox_layout.addWidget(self.details_dialog_vertical_titlebar)
self.details_dialog_vertical_titlebar.setEnabled(
self.details_dialog_titlebar_enabled.isChecked())
self.details_dialog_titlebar_enabled.isChecked()
)
self.details_dialog_titlebar_enabled.stateChanged.connect(
self.details_dialog_vertical_titlebar.setEnabled)
self.details_dialog_vertical_titlebar.setEnabled
)
gridlayout = QGridLayout()
formlayout = QFormLayout()
self.details_table_delta_foreground_color = ColorPickerButton(self)
# Padding on the right side and space between label and widget to keep it somewhat consistent across themes
gridlayout.setColumnStretch(1, 1)
formlayout.setHorizontalSpacing(50)
formlayout.addRow(tr("Delta foreground color:"), self.details_table_delta_foreground_color)
formlayout.addRow(
tr("Delta foreground color:"), self.details_table_delta_foreground_color
)
gridlayout.addLayout(formlayout, 0, 0)
self.details_groupbox_layout.addLayout(gridlayout)
details_groupbox.setLayout(self.details_groupbox_layout)
@ -255,8 +282,8 @@ use the modifier key to drag the floating window around") if ISLINUX else
self.mainVLayout.addWidget(self.tabwidget)
self.mainVLayout.addWidget(self.buttonBox)
self.layout().setSizeConstraint(QLayout.SetFixedSize)
self.tabwidget.addTab(self.page_general, "General")
self.tabwidget.addTab(self.page_display, "Display")
self.tabwidget.addTab(self.page_general, tr("General"))
self.tabwidget.addTab(self.page_display, tr("Display"))
self.displayVLayout.addStretch(0)
self.widgetsVLayout.addStretch(0)
@ -285,19 +312,27 @@ use the modifier key to drag the floating window around") if ISLINUX else
if section & Sections.DISPLAY:
setchecked(self.reference_bold_font, prefs.reference_bold_font)
setchecked(self.tabs_default_pos, prefs.tabs_default_pos)
setchecked(self.details_dialog_titlebar_enabled,
prefs.details_dialog_titlebar_enabled)
setchecked(self.details_dialog_vertical_titlebar,
prefs.details_dialog_vertical_titlebar)
setchecked(
self.details_dialog_titlebar_enabled,
prefs.details_dialog_titlebar_enabled,
)
setchecked(
self.details_dialog_vertical_titlebar,
prefs.details_dialog_vertical_titlebar,
)
self.fontSizeSpinBox.setValue(prefs.tableFontSize)
self.details_table_delta_foreground_color.setColor(
prefs.details_table_delta_foreground_color)
prefs.details_table_delta_foreground_color
)
self.result_table_ref_foreground_color.setColor(
prefs.result_table_ref_foreground_color)
prefs.result_table_ref_foreground_color
)
self.result_table_ref_background_color.setColor(
prefs.result_table_ref_background_color)
prefs.result_table_ref_background_color
)
self.result_table_delta_foreground_color.setColor(
prefs.result_table_delta_foreground_color)
prefs.result_table_delta_foreground_color
)
try:
langindex = self.supportedLanguages.index(self.app.prefs.language)
except ValueError:
@ -315,12 +350,24 @@ use the modifier key to drag the floating window around") if ISLINUX else
prefs.ignore_hardlink_matches = ischecked(self.ignoreHardlinkMatches)
prefs.debug_mode = ischecked(self.debugModeBox)
prefs.reference_bold_font = ischecked(self.reference_bold_font)
prefs.details_dialog_titlebar_enabled = ischecked(self.details_dialog_titlebar_enabled)
prefs.details_dialog_vertical_titlebar = ischecked(self.details_dialog_vertical_titlebar)
prefs.details_table_delta_foreground_color = self.details_table_delta_foreground_color.color
prefs.result_table_ref_foreground_color = self.result_table_ref_foreground_color.color
prefs.result_table_ref_background_color = self.result_table_ref_background_color.color
prefs.result_table_delta_foreground_color = self.result_table_delta_foreground_color.color
prefs.details_dialog_titlebar_enabled = ischecked(
self.details_dialog_titlebar_enabled
)
prefs.details_dialog_vertical_titlebar = ischecked(
self.details_dialog_vertical_titlebar
)
prefs.details_table_delta_foreground_color = (
self.details_table_delta_foreground_color.color
)
prefs.result_table_ref_foreground_color = (
self.result_table_ref_foreground_color.color
)
prefs.result_table_ref_background_color = (
self.result_table_ref_background_color.color
)
prefs.result_table_delta_foreground_color = (
self.result_table_delta_foreground_color.color
)
prefs.destination_type = self.copyMoveDestinationComboBox.currentIndex()
prefs.custom_command = str(self.customCommandEdit.text())
prefs.tableFontSize = self.fontSizeSpinBox.value()
@ -364,8 +411,8 @@ class ColorPickerButton(QPushButton):
@pyqtSlot()
def onClicked(self):
color = QColorDialog.getColor(
self.color if self.color is not None else Qt.white,
self.parent)
self.color if self.color is not None else Qt.white, self.parent
)
self.setColor(color)
def setColor(self, color):

View File

@ -107,6 +107,10 @@ msgstr ""
msgid "Vietnamese"
msgstr ""
#: qtlib\preferences.py:39
msgid "Japanese"
msgstr ""
#: qtlib\recent.py:54
msgid "Clear List"
msgstr ""

View File

@ -36,6 +36,7 @@ def get_langnames():
"pt_BR": tr("Brazilian"),
"es": tr("Spanish"),
"vi": tr("Vietnamese"),
"ja": tr("Japanese"),
}