mirror of
https://github.com/LorenEteval/Furious.git
synced 2026-09-22 23:08:08 +03:00
Use dynamic translation for log page labels
This commit is contained in:
@@ -192,9 +192,9 @@ class LogPage(Mixins.QTranslatable, QMainWindow):
|
||||
self.manager = manager
|
||||
self.manager.setAutoClearEnabled(AppSettings.isStateON_(LOG_AUTO_CLEAR_SETTING))
|
||||
|
||||
self.pageTitleLabel = AppQLabel(translatable=False)
|
||||
self.pageTitleLabel = AppQLabel(_('Log'))
|
||||
self.pageTitleLabel.setObjectName('LogPageTitle')
|
||||
self.filterLabel = AppQLabel(translatable=False)
|
||||
self.filterLabel = AppQLabel(_('Log Type'))
|
||||
# Category names can be either translated built-ins or literal plugin
|
||||
# metadata, so LogPage rebuilds this application-styled selector with
|
||||
# the correct per-category translation policy.
|
||||
@@ -225,7 +225,7 @@ class LogPage(Mixins.QTranslatable, QMainWindow):
|
||||
line_width=3,
|
||||
radius=5,
|
||||
)
|
||||
self.highlightStatusLabel = AppQLabel(translatable=False)
|
||||
self.highlightStatusLabel = AppQLabel(_('Processing...'))
|
||||
|
||||
highlightLayout = QHBoxLayout(self.highlightOverlay)
|
||||
highlightLayout.setContentsMargins(16, 16, 16, 16)
|
||||
@@ -353,12 +353,12 @@ class LogPage(Mixins.QTranslatable, QMainWindow):
|
||||
popupMenu=self._viewMenu,
|
||||
)
|
||||
|
||||
self.autoScrollLabel = AppQLabel(translatable=False)
|
||||
self.autoScrollLabel = AppQLabel(_('Auto Scroll Down'))
|
||||
|
||||
self.autoScrollSwitch = AppQSwitch()
|
||||
self.autoScrollSwitch.syncChecked(self._autoScrollDown)
|
||||
|
||||
self.autoClearLabel = AppQLabel(translatable=False)
|
||||
self.autoClearLabel = AppQLabel(_('Auto Clear Log'))
|
||||
|
||||
self.autoClearSwitch = AppQSwitch()
|
||||
self.autoClearSwitch.syncChecked(self.manager.autoClearEnabled)
|
||||
@@ -900,15 +900,9 @@ class LogPage(Mixins.QTranslatable, QMainWindow):
|
||||
self.manager.clear()
|
||||
|
||||
def retranslate(self):
|
||||
"""Refresh translated page controls and filter labels."""
|
||||
"""Refresh mixed-policy filter labels and rendered log text."""
|
||||
|
||||
selectedCategoryId = self.filterComboBox.currentData()
|
||||
|
||||
self.pageTitleLabel.setText(_('Log'))
|
||||
self.filterLabel.setText(_('Log Type'))
|
||||
self.autoScrollLabel.setText(_('Auto Scroll Down'))
|
||||
self.autoClearLabel.setText(_('Auto Clear Log'))
|
||||
self.highlightStatusLabel.setText(_('Processing...'))
|
||||
|
||||
self._populateFilters(selectedCategoryId)
|
||||
self._requestRefresh(immediate=True)
|
||||
|
||||
@@ -1312,6 +1312,30 @@ class UnifiedLogPageTest(unittest.TestCase):
|
||||
page.close()
|
||||
page.deleteLater()
|
||||
|
||||
def testLabelsOwnTheirDynamicTranslation(self):
|
||||
"""Let each AppQLabel translate itself without page-level setters."""
|
||||
with isolatedSettings():
|
||||
AppSettings.set('Language', 'EN')
|
||||
page = LogPage(manager=LogManager(maximumEntries=5))
|
||||
labels = (
|
||||
(page.pageTitleLabel, 'Log'),
|
||||
(page.filterLabel, 'Log Type'),
|
||||
(page.autoScrollLabel, 'Auto Scroll Down'),
|
||||
(page.autoClearLabel, 'Auto Clear Log'),
|
||||
(page.highlightStatusLabel, 'Processing...'),
|
||||
)
|
||||
|
||||
AppSettings.set('Language', 'ZH')
|
||||
|
||||
for label, sourceText in labels:
|
||||
self.assertTrue(label.translatable)
|
||||
|
||||
label.retranslate()
|
||||
|
||||
self.assertEqual(label.text(), _(sourceText))
|
||||
|
||||
self.disposePage(page)
|
||||
|
||||
def testHiddenPageRendersOneOrderedSnapshotWhenShown(self):
|
||||
"""Do not mutate the document while hidden; catch up exactly once."""
|
||||
with isolatedSettings():
|
||||
|
||||
Reference in New Issue
Block a user