1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
from pathlib import Path
import sys
from PySide6.QtCore import (QItemSelection, QLibraryInfo, QLocale, QTranslator,
Qt, Slot)
from PySide6.QtWidgets import (QAbstractItemView, QApplication, QListWidget,
QMainWindow, QWidget)
import linguist_rc
""""
Misleading indentation (5) for PYSIDE-2379"""
class Window(QMainWindow):
def __init__(self):
super().__init__()
#: File menu
file_menu = self.menuBar().addMenu(self.tr("&File"))
#= quit_id
quit_action = file_menu.addAction(self.tr("Quit"))
quit_action.setShortcut(self.tr("CTRL+Q"))
quit_action.triggered.connect(self.close)
help_menu = self.menuBar().addMenu(self.tr("&Help"))
about_qt_action = help_menu.addAction(self.tr("About Qt"))
about_qt_action.triggered.connect(qApp.aboutQt)
self._list_widget = QListWidget()
self._list_widget.setSelectionMode(QAbstractItemView.MultiSelection)
self._list_widget.selectionModel().selectionChanged.connect(self.selection_changed)
self._list_widget.addItem("C++")
self._list_widget.addItem("Java")
self._list_widget.addItem("Python")
self.setCentralWidget(self._list_widget)
@Slot(QItemSelection, QItemSelection)
def selection_changed(self, selected, deselected):
count = len(self._list_widget.selectionModel().selectedRows())
message = self.tr("%n language(s) selected", "", count)
self.statusBar().showMessage(message)
def test_translate_trailing_comma_behavior(self):
self.translate("CONTEXT",
"SOME TEXT, NO COMMENT, TRAILING COMMA",
)
self.translate("CONTEXT",
"SOME TEXT",
"A COMMENT, NO TRAILING COMMA"
)
self.translate("CONTEXT",
"SOME MORE TEXT",
"A COMMENT WITH A TRAILING COMMA",
)
self.translate("CONTEXT",
"EVEN MORE TEXT",
"A COMMENT WITH PLURALIZATION",
42
)
self.translate("CONTEXT",
"YET MORE TEXT",
"A COMMENT WITH PLURALIZATION AND A TRAILING COMMA",
42,
)
self.translate("CONTEXT",
"SOME TEXT, SHOULD NOT BE EXTRACTED",
"A COMMENT WITH PLURALIZATION AND A TRAILING COMMA AND GARBAGE",
42,
"THIS SHOULD NOT WORK"
)
class NestedClass:
def foo(self):
msg = self.tr("Nested Message")
def window_method(self): # PYSIDE-2379, Don't put this into NestedClass
msg = self.tr("Window Message")
msg = self.tr(f"An f-string\\")
msg = self.tr(r"A raw strin\g")
msg = self.tr(r"A raw strin\g""continued\\")
msg = self.tr(r"A raw string with escaped quote\"bla")
if __name__ == '__main__':
app = QApplication(sys.argv)
path = QLibraryInfo.location(QLibraryInfo.TranslationsPath)
translator = QTranslator(app)
if translator.load(QLocale.system(), 'qtbase_', '', path):
app.installTranslator(translator)
translator = QTranslator(app)
path = ':/translations'
if translator.load(QLocale.system(), 'example_', '', path):
app.installTranslator(translator)
window = Window()
window.show()
sys.exit(app.exec())
|