blob: 6710a2365779a67f17cef99f61d3f2bfd5c400cd (
plain)
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
|
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from __future__ import annotations
from pathlib import Path
import gettext
import sys
from PySide6.QtCore import QItemSelection, Slot
from PySide6.QtWidgets import (QAbstractItemView, QApplication, QListWidget,
QMainWindow)
_ = None
ngettext = None
class Window(QMainWindow):
def __init__(self):
super().__init__()
file_menu = self.menuBar().addMenu(_("&File"))
quit_action = file_menu.addAction(_("Quit"))
quit_action.setShortcut(_("CTRL+Q"))
quit_action.triggered.connect(self.close)
self._list_widget = QListWidget()
self._list_widget.setSelectionMode(QAbstractItemView.SelectionMode.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 = ngettext("{0} language selected",
"{0} languages selected", count).format(count)
self.statusBar().showMessage(message)
if __name__ == '__main__':
app = QApplication(sys.argv)
src_dir = Path(__file__).resolve().parent
try:
translation = gettext.translation('example', localedir=src_dir / 'locales')
if translation:
translation.install()
_ = translation.gettext
ngettext = translation.ngettext
except FileNotFoundError:
pass
if not _:
_ = gettext.gettext
ngettext = gettext.ngettext
print('No translation found')
window = Window()
window.show()
sys.exit(app.exec())
|