frontengine-dev 0.0.57__py3-none-any.whl → 0.0.59__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. frontengine/__init__.py +1 -2
  2. frontengine/show/scene/extend_graphic_scene.py +0 -1
  3. frontengine/show/scene/extend_graphic_view.py +2 -1
  4. frontengine/show/scene/scene.py +23 -41
  5. frontengine/show/text/draw_text.py +28 -3
  6. frontengine/show/video/video_player.py +2 -3
  7. frontengine/show/web/webview.py +10 -1
  8. frontengine/ui/dialog/choose_file_dialog.py +0 -9
  9. frontengine/ui/main_ui.py +2 -0
  10. frontengine/ui/menu/how_to_menu.py +13 -2
  11. frontengine/ui/menu/language_menu.py +45 -0
  12. frontengine/ui/page/control_center/control_center_ui.py +2 -6
  13. frontengine/ui/page/gif/gif_setting_ui.py +16 -4
  14. frontengine/ui/page/image/image_setting_ui.py +15 -3
  15. frontengine/ui/page/scene_setting/scene_manager.py +96 -0
  16. frontengine/ui/page/scene_setting/scene_page/gif.py +102 -0
  17. frontengine/ui/page/scene_setting/scene_page/image.py +83 -0
  18. frontengine/ui/page/scene_setting/scene_page/sound.py +84 -0
  19. frontengine/ui/page/scene_setting/scene_page/text.py +93 -0
  20. frontengine/ui/page/scene_setting/scene_page/video.py +122 -0
  21. frontengine/ui/page/scene_setting/scene_page/web.py +66 -0
  22. frontengine/ui/page/scene_setting/scene_setting_ui.py +30 -23
  23. frontengine/ui/page/sound_player/sound_player_setting_ui.py +0 -1
  24. frontengine/ui/page/text/text_setting_ui.py +35 -7
  25. frontengine/ui/page/utils.py +23 -0
  26. frontengine/ui/page/video/video_setting_ui.py +18 -7
  27. frontengine/ui/page/web/web_setting_ui.py +19 -5
  28. frontengine/user_setting/scene_setting.py +34 -0
  29. frontengine/utils/multi_language/english.py +15 -3
  30. frontengine/utils/multi_language/france.py +137 -0
  31. frontengine/utils/multi_language/germany.py +137 -0
  32. frontengine/utils/multi_language/italy.py +137 -0
  33. frontengine/utils/multi_language/language_wrapper.py +17 -2
  34. frontengine/utils/multi_language/russian.py +137 -0
  35. frontengine/utils/multi_language/simplified_chinese.py +137 -0
  36. frontengine/utils/multi_language/traditional_chinese.py +16 -3
  37. {frontengine_dev-0.0.57.dist-info → frontengine_dev-0.0.59.dist-info}/METADATA +1 -1
  38. {frontengine_dev-0.0.57.dist-info → frontengine_dev-0.0.59.dist-info}/RECORD +42 -49
  39. frontengine/ui/page/scene_setting/scene_tabs/Image.py +0 -61
  40. frontengine/ui/page/scene_setting/scene_tabs/gif.py +0 -74
  41. frontengine/ui/page/scene_setting/scene_tabs/scene_control.py +0 -78
  42. frontengine/ui/page/scene_setting/scene_tabs/sound.py +0 -44
  43. frontengine/ui/page/scene_setting/scene_tabs/tableview_model.py +0 -65
  44. frontengine/ui/page/scene_setting/scene_tabs/text.py +0 -77
  45. frontengine/ui/page/scene_setting/scene_tabs/ui.py +0 -56
  46. frontengine/ui/page/scene_setting/scene_tabs/video.py +0 -88
  47. frontengine/ui/page/scene_setting/scene_tabs/web.py +0 -74
  48. frontengine/user_setting/gif/__init__.py +0 -0
  49. frontengine/user_setting/gif/gif_setting.py +0 -5
  50. frontengine/user_setting/image/__init__.py +0 -0
  51. frontengine/user_setting/image/image_setting.py +0 -4
  52. frontengine/user_setting/sound/__init__.py +0 -0
  53. frontengine/user_setting/sound/sound_setting.py +0 -4
  54. frontengine/user_setting/text/__init__.py +0 -0
  55. frontengine/user_setting/text/text_setting.py +0 -5
  56. frontengine/user_setting/video/__init__.py +0 -0
  57. frontengine/user_setting/video/video_setting.py +0 -6
  58. frontengine/user_setting/web/__init__.py +0 -0
  59. frontengine/user_setting/web/web_setting.py +0 -4
  60. /frontengine/ui/page/scene_setting/{scene_tabs → scene_page}/__init__.py +0 -0
  61. {frontengine_dev-0.0.57.dist-info → frontengine_dev-0.0.59.dist-info}/LICENSE +0 -0
  62. {frontengine_dev-0.0.57.dist-info → frontengine_dev-0.0.59.dist-info}/WHEEL +0 -0
  63. {frontengine_dev-0.0.57.dist-info → frontengine_dev-0.0.59.dist-info}/top_level.txt +0 -0
@@ -1,8 +1,10 @@
1
1
  from PySide6.QtCore import Qt
2
2
  from PySide6.QtGui import QScreen, QGuiApplication
3
- from PySide6.QtWidgets import QWidget, QGridLayout, QSlider, QLabel, QLineEdit, QPushButton, QCheckBox
3
+ from PySide6.QtWidgets import QWidget, QGridLayout, QSlider, QLabel, QLineEdit, QPushButton, QCheckBox, QComboBox, \
4
+ QDialog
4
5
 
5
6
  from frontengine.show.text.draw_text import TextWidget
7
+ from frontengine.ui.page.utils import monitor_choose_dialog
6
8
  from frontengine.utils.logging.loggin_instance import front_engine_logger
7
9
  from frontengine.utils.multi_language.language_wrapper import language_wrapper
8
10
 
@@ -36,7 +38,7 @@ class TextSettingUI(QWidget):
36
38
  language_wrapper.language_word_dict.get("Font size")
37
39
  )
38
40
  self.font_size_slider.setMinimum(1)
39
- self.font_size_slider.setMaximum(300)
41
+ self.font_size_slider.setMaximum(600)
40
42
  self.font_size_slider.setValue(100)
41
43
  self.font_size_slider.setTickInterval(1)
42
44
  self.font_size_slider_value_label = QLabel(str(self.font_size_slider.value()))
@@ -57,6 +59,16 @@ class TextSettingUI(QWidget):
57
59
  self.show_on_bottom_checkbox = QCheckBox(
58
60
  language_wrapper.language_word_dict.get("Show on bottom")
59
61
  )
62
+ # Text position
63
+ self.text_position_label = QLabel(
64
+ language_wrapper.language_word_dict.get("text_setting_choose_alignment")
65
+ )
66
+ self.text_position_combobox = QComboBox()
67
+ self.text_position_combobox.addItem("TopLeft")
68
+ self.text_position_combobox.addItem("TopRight")
69
+ self.text_position_combobox.addItem("BottomLeft")
70
+ self.text_position_combobox.addItem("BottomRight")
71
+ self.text_position_combobox.addItem("Center")
60
72
  # Add to layout
61
73
  self.grid_layout.addWidget(self.opacity_label, 0, 0)
62
74
  self.grid_layout.addWidget(self.opacity_slider_value_label, 0, 1)
@@ -66,18 +78,23 @@ class TextSettingUI(QWidget):
66
78
  self.grid_layout.addWidget(self.font_size_slider, 1, 2)
67
79
  self.grid_layout.addWidget(self.show_on_all_screen_checkbox, 2, 0)
68
80
  self.grid_layout.addWidget(self.show_on_bottom_checkbox, 2, 1)
69
- self.grid_layout.addWidget(self.start_button, 3, 0)
70
- self.grid_layout.addWidget(self.line_edit, 3, 2)
81
+ self.grid_layout.addWidget(self.text_position_label, 3, 0)
82
+ self.grid_layout.addWidget(self.text_position_combobox, 3, 1)
83
+ self.grid_layout.addWidget(self.start_button, 4, 0)
84
+ self.grid_layout.addWidget(self.line_edit, 4, 1)
71
85
  self.setLayout(self.grid_layout)
72
86
 
73
87
  def set_show_all_screen(self) -> None:
74
88
  self.show_all_screen = self.show_on_all_screen_checkbox.isChecked()
75
89
 
76
90
  def _create_text_widget(self) -> TextWidget:
77
- text_widget = TextWidget(self.line_edit.text())
91
+ text_widget = TextWidget(
92
+ text=self.line_edit.text(),
93
+ alignment=self.text_position_combobox.currentText())
78
94
  text_widget.set_font_variable(self.font_size_slider.value())
79
95
  text_widget.set_ui_variable(float(self.opacity_slider.value()) / 100)
80
96
  text_widget.set_ui_window_flag(self.show_on_bottom_checkbox.isChecked())
97
+ text_widget.set_font()
81
98
  self.text_widget_list.append(text_widget)
82
99
  return text_widget
83
100
 
@@ -89,11 +106,22 @@ class TextSettingUI(QWidget):
89
106
 
90
107
  def start_draw_text_on_screen(self) -> None:
91
108
  front_engine_logger.info("start_draw_text_on_screen")
92
- if not self.show_all_screen:
109
+ monitors = QGuiApplication.screens()
110
+ if self.show_all_screen is False and len(monitors) <= 1:
93
111
  text_widget = self._create_text_widget()
94
112
  text_widget.showFullScreen()
113
+ elif self.show_all_screen is False and len(monitors) >= 2:
114
+ input_dialog, combobox = monitor_choose_dialog(self, monitors)
115
+ result = input_dialog.exec_()
116
+ if result == QDialog.DialogCode.Accepted:
117
+ select_monitor_index = int(combobox.currentText())
118
+ if len(monitors) > select_monitor_index:
119
+ monitor = monitors[select_monitor_index]
120
+ gif_widget = self._create_text_widget()
121
+ gif_widget.setScreen(monitor)
122
+ gif_widget.move(monitor.availableGeometry().topLeft())
123
+ gif_widget.showFullScreen()
95
124
  else:
96
- monitors = QGuiApplication.screens()
97
125
  for monitor in monitors:
98
126
  text_widget = self._create_text_widget()
99
127
  text_widget.setScreen(monitor)
@@ -0,0 +1,23 @@
1
+ from PySide6.QtWidgets import QWidget, QDialog, QGridLayout, QLabel, QComboBox, QPushButton
2
+
3
+ from frontengine.utils.multi_language.language_wrapper import language_wrapper
4
+
5
+
6
+ def monitor_choose_dialog(parent: QWidget, monitors: list):
7
+ input_dialog = QDialog(parent)
8
+ input_dialog.setWindowTitle(language_wrapper.language_word_dict.get("show_on_which_monitor"))
9
+ grid_layout = QGridLayout()
10
+ label = QLabel(language_wrapper.language_word_dict.get("show_on_which_monitor"))
11
+ combobox = QComboBox()
12
+ ok_button = QPushButton(language_wrapper.language_word_dict.get("ok"))
13
+ ok_button.clicked.connect(input_dialog.accept)
14
+ no_button = QPushButton(language_wrapper.language_word_dict.get("no"))
15
+ no_button.clicked.connect(input_dialog.reject)
16
+ for index in range(len(monitors)):
17
+ combobox.addItem(str(index))
18
+ grid_layout.addWidget(label, 0, 0)
19
+ grid_layout.addWidget(combobox, 1, 0)
20
+ grid_layout.addWidget(ok_button, 2, 0)
21
+ grid_layout.addWidget(no_button, 2, 1)
22
+ input_dialog.setLayout(grid_layout)
23
+ return input_dialog, combobox
@@ -1,9 +1,10 @@
1
1
  from PySide6.QtCore import Qt
2
- from PySide6.QtGui import QScreen, QGuiApplication
3
- from PySide6.QtWidgets import QWidget, QGridLayout, QSlider, QLabel, QPushButton, QMessageBox, QCheckBox
2
+ from PySide6.QtGui import QGuiApplication
3
+ from PySide6.QtWidgets import QWidget, QGridLayout, QSlider, QLabel, QPushButton, QMessageBox, QCheckBox, QDialog
4
4
 
5
5
  from frontengine.show.video.video_player import VideoWidget
6
6
  from frontengine.ui.dialog.choose_file_dialog import choose_video
7
+ from frontengine.ui.page.utils import monitor_choose_dialog
7
8
  from frontengine.utils.logging.loggin_instance import front_engine_logger
8
9
  from frontengine.utils.multi_language.language_wrapper import language_wrapper
9
10
 
@@ -119,20 +120,30 @@ class VideoSettingUI(QWidget):
119
120
  message_box.show()
120
121
  else:
121
122
  front_engine_logger.info("start_play_gif")
122
- if not self.show_all_screen:
123
+ monitors = QGuiApplication.screens()
124
+ if self.show_all_screen is False and len(monitors) <= 1:
123
125
  video_widget = self._create_video_widget()
124
- video_widget.set_ui_window_flag(self.show_on_bottom_checkbox.isChecked())
125
- video_widget.showMaximized()
126
+ video_widget.showFullScreen()
127
+ elif self.show_all_screen is False and len(monitors) >= 2:
128
+ input_dialog, combobox = monitor_choose_dialog(self, monitors)
129
+ result = input_dialog.exec_()
130
+ if result == QDialog.DialogCode.Accepted:
131
+ select_monitor_index = int(combobox.currentText())
132
+ if len(monitors) > select_monitor_index:
133
+ monitor = monitors[select_monitor_index]
134
+ video_widget = self._create_video_widget()
135
+ video_widget.setScreen(monitor)
136
+ video_widget.move(monitor.availableGeometry().topLeft())
137
+ video_widget.showFullScreen()
126
138
  else:
127
139
  count = 0
128
- monitors = QGuiApplication.screens()
129
140
  for monitor in monitors:
130
141
  video_widget = self._create_video_widget()
131
142
  if count >= 1:
132
143
  video_widget.media_player.audioOutput().setVolume(0)
133
144
  video_widget.setScreen(monitor)
134
145
  video_widget.move(monitor.availableGeometry().topLeft())
135
- video_widget.showMaximized()
146
+ video_widget.showFullScreen()
136
147
  count = count + 1
137
148
 
138
149
  def choose_and_copy_file_to_cwd_gif_dir_then_play(self) -> None:
@@ -1,8 +1,9 @@
1
- from PySide6.QtCore import Qt
1
+ from PySide6.QtCore import Qt, QEvent
2
2
  from PySide6.QtGui import QScreen
3
- from PySide6.QtWidgets import QWidget, QGridLayout, QLabel, QSlider, QLineEdit, QPushButton, QCheckBox
3
+ from PySide6.QtWidgets import QWidget, QGridLayout, QLabel, QSlider, QLineEdit, QPushButton, QCheckBox, QDialog
4
4
 
5
5
  from frontengine.show.web.webview import WebWidget
6
+ from frontengine.ui.page.utils import monitor_choose_dialog
6
7
  from frontengine.utils.logging.loggin_instance import front_engine_logger
7
8
  from frontengine.utils.multi_language.language_wrapper import language_wrapper
8
9
 
@@ -87,18 +88,31 @@ class WEBSettingUI(QWidget):
87
88
  self.show_on_bottom_checkbox.isChecked()
88
89
  )
89
90
  self.web_widget_list.append(web_widget)
91
+
90
92
  return web_widget
91
93
 
94
+
92
95
  def opacity_trick(self) -> None:
93
96
  self.opacity_slider_value_label.setText(str(self.opacity_slider.value()))
94
97
 
95
98
  def start_open_web_with_url(self) -> None:
96
- if not self.show_all_screen:
99
+ monitors = QScreen.virtualSiblings(self.screen())
100
+ if self.show_all_screen is False and len(monitors) <= 1:
97
101
  web_widget = self._create_web_widget()
98
- web_widget.showMaximized()
102
+ web_widget.showFullScreen()
103
+ elif self.show_all_screen is False and len(monitors) >= 2:
104
+ input_dialog, combobox = monitor_choose_dialog(self, monitors)
105
+ result = input_dialog.exec_()
106
+ if result == QDialog.DialogCode.Accepted:
107
+ select_monitor_index = int(combobox.currentText())
108
+ if len(monitors) > select_monitor_index:
109
+ monitor = monitors[select_monitor_index]
110
+ gif_widget = self._create_web_widget()
111
+ gif_widget.setScreen(monitor)
112
+ gif_widget.move(monitor.availableGeometry().topLeft())
113
+ gif_widget.showFullScreen()
99
114
  else:
100
115
  front_engine_logger.info("start_open_web_with_url")
101
- monitors = QScreen.virtualSiblings(self.screen())
102
116
  for monitor in monitors:
103
117
  web_widget = self._create_web_widget()
104
118
  web_widget.setScreen(monitor)
@@ -0,0 +1,34 @@
1
+ import os
2
+
3
+ from PySide6.QtWidgets import QWidget, QFileDialog
4
+
5
+ from frontengine.ui.dialog.choose_file_dialog import choose_file
6
+ from frontengine.utils.json.json_file import write_json, read_json
7
+ from frontengine.utils.logging.loggin_instance import front_engine_logger
8
+ from frontengine.utils.multi_language.language_wrapper import language_wrapper
9
+
10
+ scene_json = {
11
+
12
+ }
13
+
14
+
15
+ def choose_scene_json(
16
+ trigger_ui: QWidget, file_filter: str = "Json (*.json;)", extensions: list = None) -> str:
17
+ front_engine_logger.info("choose_scene_json")
18
+ extensions = extensions or [".json"]
19
+ file_path = choose_file(
20
+ trigger_ui=trigger_ui, file_filter=file_filter, extensions=extensions,
21
+ warning_message=language_wrapper.language_word_dict.get("scene_choose_message_box"))
22
+ if file_path:
23
+ scene_json.update(read_json(file_path))
24
+
25
+
26
+ def write_scene_file(parent_qt_instance: QWidget, file_filter: str = "Json (*.json;)"):
27
+ file_path = QFileDialog().getSaveFileName(
28
+ parent=parent_qt_instance,
29
+ dir=os.getcwd(),
30
+ filter=file_filter
31
+ )
32
+ if file_path:
33
+ file_path = file_path[0]
34
+ write_json(str(file_path), scene_json)
@@ -5,6 +5,11 @@ english_word_dict = {
5
5
  # Language Menubar
6
6
  "language_menu_bar_english": "English",
7
7
  "language_menu_bar_traditional_chinese": "Traditional Chinese",
8
+ "language_menu_bar_simplified_chinese": "Simplified Chinese",
9
+ "language_menu_bar_germany": "Deutsch",
10
+ "language_menu_bar_russian": "Russian",
11
+ "language_menu_bar_french": "French",
12
+ "language_menu_bar_italian": "Italian",
8
13
  "language_menu_bar_please_restart_messagebox": "Please restart",
9
14
  # Tab text
10
15
  "tab_video_text": "Video",
@@ -54,6 +59,9 @@ english_word_dict = {
54
59
  "seconds": "sec",
55
60
  "close_delay": "Message disappear time sec",
56
61
  "country_code": "locale code",
62
+ "show_on_which_monitor": "Show on which monitor",
63
+ "ok": "ok",
64
+ "no": "no",
57
65
  # GIF setting ui
58
66
  "gif_setting_ui_choose_file": "Choose GIF or WEBP file",
59
67
  "gif_setting_ui_play": "Start Play GIF or WEBP",
@@ -71,6 +79,7 @@ english_word_dict = {
71
79
  "sound_player_setting_message_box_sound": "Please choose a sound file",
72
80
  # Text setting ui
73
81
  "text_setting_start_draw": "Start draw text on screen",
82
+ "text_setting_choose_position": "Choose text alignment",
74
83
  # Video setting ui
75
84
  "video_setting_choose_file": "Choose video file",
76
85
  "video_setting_start_play": "Start Play Video",
@@ -81,6 +90,7 @@ english_word_dict = {
81
90
  "web_setting_open_enable_input": "Enable input",
82
91
  # Scene UI
83
92
  "tab_scene_text": "Scene",
93
+ "scene_start": "Start scene",
84
94
  "scene_table_view_type": "Type",
85
95
  "scene_file_path": "File path",
86
96
  "scene_setting_start_scene_button": "Start Scene",
@@ -90,13 +100,14 @@ english_word_dict = {
90
100
  "scene_add_text": "Add text to scene",
91
101
  "scene_add_video": "Add video to scene",
92
102
  "scene_add_web": "Add web to scene",
103
+ "scene_url_label": "URL",
93
104
  "scene_add_UI": "Add ui to scene",
94
105
  "scene_choose_message_box": "Please choose a scene file",
95
106
  "scene_choose_output_path_message_box": "Please choose a scene file output path",
96
107
  "scene_output": "output scene file",
97
108
  "scene_input": "load scene file",
98
- "tableview_clear": "clear all setting",
99
- "scene_control_panel": "Scene control panel",
109
+ "scene_script_clear": "clear all script",
110
+ "scene_script": "Scene script",
100
111
  # Chat scene input
101
112
  "chat_scene_input_title": "input chat content",
102
113
  "chat_scene_send_chat": "send text",
@@ -120,5 +131,6 @@ english_word_dict = {
120
131
  "help_menu_label": "Help menu",
121
132
  "help_menu_open_issue": "Open issue tracker",
122
133
  # HowTo Menu
123
- "how_to_menu_label": "How to menu",
134
+ "doc_menu_label": "Doc menu",
135
+ "doc_menu_open_doc": "Open doc",
124
136
  }
@@ -0,0 +1,137 @@
1
+ french_word_dict = {
2
+ # Menubar
3
+ "menu_bar_language": "Choisir la langue",
4
+ "menu_bar_ui_style": "Choisir le style d'interface",
5
+ # Language Menubar
6
+ "language_menu_bar_english": "Anglais",
7
+ "language_menu_bar_traditional_chinese": "Chinois traditionnel",
8
+ "language_menu_bar_simplified_chinese": "Chinois simplifié",
9
+ "language_menu_bar_germany": "allemand",
10
+ "language_menu_bar_russian": "russe",
11
+ "language_menu_bar_french": "français",
12
+ "language_menu_bar_italian": "italien",
13
+ "language_menu_bar_please_restart_messagebox": "Veuillez redémarrer pour appliquer les changements",
14
+ # Tab text
15
+ "tab_video_text": "Vidéo",
16
+ "tab_image_text": "Image",
17
+ "tab_web_text": "Web",
18
+ "tab_gif_text": "GIF et WEBP",
19
+ "tab_sound_text": "Musique",
20
+ "tab_text_text": "Texte",
21
+ "tab_external_ui": "UI externe",
22
+ "tab_control_center_text": "Centre de contrôle",
23
+ "chat_ui_text": "Chat",
24
+ # Messagebox text
25
+ "paint_gif_message_text": "Erreur dans le fichier GIF ou WEBP",
26
+ "paint_image_message_box_text": "Erreur d'image",
27
+ "sound_effect_message_box_text": "Erreur de musique",
28
+ "sound_player_message_box_text": "Erreur de musique",
29
+ "video_player_message_box_text": "Erreur de vidéo",
30
+ "webview_message_box_text": "Erreur de page web",
31
+ "cant_find_extend_ui_message_box_text": "UI introuvable",
32
+ # Control Center UI
33
+ "control_center_close_all_video": "Fermer toutes les vidéos",
34
+ "control_center_close_all_image": "Fermer toutes les images",
35
+ "control_center_close_all_gif": "Fermer tous les GIF",
36
+ "control_center_close_all_web": "Fermer toutes les pages web",
37
+ "control_center_close_all_sound": "Fermer toute la musique",
38
+ "control_center_close_all_text": "Fermer tout le texte",
39
+ "control_center_scene": "Fermer la scène",
40
+ "control_center_clear_log_panel": "Effacer le journal",
41
+ "chat_scene_close": "Fermer toutes les discussions",
42
+ "control_center_close_all": "Fermer tout",
43
+ # General
44
+ "Opacity": "Opacité",
45
+ "Speed": "Vitesse",
46
+ "Not Ready": "Pas prêt",
47
+ "Ready": "Prêt",
48
+ "Show on all screen": "Afficher sur tous les écrans",
49
+ "Volume": "Volume",
50
+ "Font size": "Taille de police",
51
+ "Play rate": "Vitesse de lecture",
52
+ "not_prepare": "Pas prêt",
53
+ "Show on bottom": "Afficher en bas de toutes les fenêtres",
54
+ "url": "Lien",
55
+ "text": "Texte",
56
+ "ui_path": "Chemin UI",
57
+ "position_x": "Coordonnée X",
58
+ "position_y": "Coordonnée Y",
59
+ "seconds": "Secondes",
60
+ "close_delay": "Temps avant disparition des sous-titres en secondes",
61
+ "country_code": "Code de pays",
62
+ "show_on_which_monitor": "Afficher sur quel écran",
63
+ "ok": "OK",
64
+ "no": "Non",
65
+ # GIF setting ui
66
+ "gif_setting_ui_choose_file": "Choisir un fichier GIF ou WEBP",
67
+ "gif_setting_ui_play": "Lancer la lecture du GIF ou WEBP",
68
+ "gif_setting_message_box": "Veuillez choisir un fichier GIF ou WEBP",
69
+ # Image setting ui
70
+ "image_setting_choose_file": "Choisir une image",
71
+ "image_setting_ui_play": "Lancer la lecture de l'image",
72
+ "image_setting_message_box": "Veuillez choisir une image",
73
+ # Sound player setting ui
74
+ "sound_player_setting_choose_wav_file": "Choisir un fichier wav",
75
+ "sound_player_setting_choose_sound_file": "Veuillez choisir un fichier audio",
76
+ "sound_player_setting_play_wav": "Lancer la lecture du wav",
77
+ "sound_player_setting_play_sound": "Lancer la lecture du fichier audio",
78
+ "sound_player_setting_message_box_wav": "Veuillez choisir un fichier wav",
79
+ "sound_player_setting_message_box_sound": "Veuillez choisir un fichier audio",
80
+ # Text setting ui
81
+ "text_setting_start_draw": "Commencer à dessiner le texte sur l'écran",
82
+ "text_setting_choose_alignment": "Choisir l'alignement du texte",
83
+ "text_setting_alignment_Top": "En haut",
84
+ # Video setting ui
85
+ "video_setting_choose_file": "Choisir un fichier vidéo",
86
+ "video_setting_start_play": "Lancer la lecture de la vidéo",
87
+ "video_setting_message_box": "Veuillez choisir un fichier vidéo",
88
+ # Web setting ui
89
+ "web_setting_open_url": "Ouvrir une page web avec une URL",
90
+ "web_setting_open_local_file": "Ouvrir une page web locale",
91
+ "web_setting_open_enable_input": "Activer l'entrée",
92
+ # Scene UI
93
+ "tab_scene_text": "Scène",
94
+ "scene_start": "Commencer la scène",
95
+ "scene_table_view_type": "Type",
96
+ "scene_file_path": "Chemin du fichier",
97
+ "scene_setting_start_scene_button": "Commencer la scène",
98
+ "scene_add_image": "Ajouter une image à la scène",
99
+ "scene_add_gif": "Ajouter un GIF à la scène",
100
+ "scene_add_sound": "Ajouter un son à la scène",
101
+ "scene_add_text": "Ajouter du texte à la scène",
102
+ "scene_add_video": "Ajouter une vidéo à la scène",
103
+ "scene_add_web": "Ajouter une page web à la scène",
104
+ "scene_url_label": "URL",
105
+ "scene_add_UI": "Ajouter UI à la scène",
106
+ "scene_choose_message_box": "Veuillez choisir un fichier de scène",
107
+ "scene_choose_output_path_message_box": "Veuillez choisir un chemin de sortie pour le fichier de scène",
108
+ "scene_output": "Exporter le fichier de scène",
109
+ "scene_input": "Charger le fichier de scène",
110
+ "scene_script_clear": "Effacer tous les scripts",
111
+ "scene_script": "Script de scène",
112
+ # Chat scene input
113
+ "chat_scene_input_title": "Entrer le contenu de la discussion",
114
+ "chat_scene_send_chat": "Envoyer le texte",
115
+ # Chat scene
116
+ "chat_scene_start_button": "Commencer à discuter",
117
+ "chat_scene_new_topic": "Commencer un nouveau sujet",
118
+ "chat_scene_creative": "Créatif",
119
+ "chat_scene_precise": "Précis",
120
+ "chat_scene_balanced": "Équilibré",
121
+ "chat_gpt_exception": "Erreur GPT, veuillez réessayer ou commencer un nouveau sujet",
122
+ "should_we_show_toast": "Afficher la conversation ?",
123
+ # Chat voice input
124
+ "start_chat_voice_input_ui": "Ouvrir l'interface d'entrée vocale",
125
+ "chat_recognizer_voice_button": "Commencer l'enregistrement vocal",
126
+ # Image Generation
127
+ "image_generation_tab": "Génération d'images",
128
+ "start_generate_image": "Commencer la génération d'images",
129
+ "input_error": "Veuillez éviter les entrées vides ou les espaces",
130
+ "save_generation_image": "Sauvegarder l'image",
131
+ # Help Menu
132
+ "help_menu_label": "Menu Aide",
133
+ "help_menu_open_issue": "Ouvrir un rapport de problème",
134
+ # HowTo Menu
135
+ "doc_menu_label": "Menu Documentation",
136
+ "doc_menu_open_doc": "Ouvrir la documentation",
137
+ }
@@ -0,0 +1,137 @@
1
+ germany_word_dict = {
2
+ # Menüleiste
3
+ "menu_bar_language": "Sprache auswählen",
4
+ "menu_bar_ui_style": "UI-Stil auswählen",
5
+ # Sprache Menüleiste
6
+ "language_menu_bar_english": "Englisch",
7
+ "language_menu_bar_traditional_chinese": "Traditionelles Chinesisch",
8
+ "language_menu_bar_simplified_chinese": "Vereinfachtes Chinesisch",
9
+ "language_menu_bar_germany": "Deutsch",
10
+ "language_menu_bar_russian": "Russisch",
11
+ "language_menu_bar_french": "Französisch",
12
+ "language_menu_bar_italian": "Italienisch",
13
+ "language_menu_bar_please_restart_messagebox": "Bitte neustarten, um Änderungen zu übernehmen",
14
+ # Tab-Text
15
+ "tab_video_text": "Video",
16
+ "tab_image_text": "Bild",
17
+ "tab_web_text": "Webseite",
18
+ "tab_gif_text": "GIF und WEBP",
19
+ "tab_sound_text": "Musik",
20
+ "tab_text_text": "Text",
21
+ "tab_external_ui": "Externes UI",
22
+ "tab_control_center_text": "Kontrollzentrum",
23
+ "chat_ui_text": "Chat",
24
+ # Meldungsfeld-Text
25
+ "paint_gif_message_text": "GIF- oder WEBP-Datei ist fehlerhaft",
26
+ "paint_image_message_box_text": "Bildfehler",
27
+ "sound_effect_message_box_text": "Musikfehler",
28
+ "sound_player_message_box_text": "Musikfehler",
29
+ "video_player_message_box_text": "Videofehler",
30
+ "webview_message_box_text": "Webseitenfehler",
31
+ "cant_find_extend_ui_message_box_text": "UI nicht gefunden",
32
+ # Kontrollzentrum UI
33
+ "control_center_close_all_video": "Alle Videos schließen",
34
+ "control_center_close_all_image": "Alle Bilder schließen",
35
+ "control_center_close_all_gif": "Alle GIFs schließen",
36
+ "control_center_close_all_web": "Alle Webseiten schließen",
37
+ "control_center_close_all_sound": "Alle Musik schließen",
38
+ "control_center_close_all_text": "Allen Text schließen",
39
+ "control_center_scene": "Szene schließen",
40
+ "control_center_clear_log_panel": "Log löschen",
41
+ "chat_scene_close": "Alle Chats schließen",
42
+ "control_center_close_all": "Alles schließen",
43
+ # Allgemein
44
+ "Opacity": "Deckkraft",
45
+ "Speed": "Geschwindigkeit",
46
+ "Not Ready": "Nicht bereit",
47
+ "Ready": "Bereit",
48
+ "Show on all screen": "Auf allen Bildschirmen anzeigen",
49
+ "Volume": "Lautstärke",
50
+ "Font size": "Schriftgröße",
51
+ "Play rate": "Wiedergabegeschwindigkeit",
52
+ "not_prepare": "Noch nicht bereit",
53
+ "Show on bottom": "Unten auf allen Fenstern anzeigen",
54
+ "url": "URL",
55
+ "text": "Text",
56
+ "ui_path": "UI-Pfad",
57
+ "position_x": "X-Position",
58
+ "position_y": "Y-Position",
59
+ "seconds": "Sekunden",
60
+ "close_delay": "Untertitel Ausblendzeit Sekunden",
61
+ "country_code": "Ländercode",
62
+ "show_on_which_monitor": "Auf welchem Monitor anzeigen",
63
+ "ok": "OK",
64
+ "no": "Nein",
65
+ # GIF-Einstellungs-UI
66
+ "gif_setting_ui_choose_file": "GIF- oder WEBP-Datei auswählen",
67
+ "gif_setting_ui_play": "GIF oder WEBP abspielen",
68
+ "gif_setting_message_box": "Bitte GIF- oder WEBP-Datei auswählen",
69
+ # Bild-Einstellungs-UI
70
+ "image_setting_choose_file": "Bild auswählen",
71
+ "image_setting_ui_play": "Bild abspielen",
72
+ "image_setting_message_box": "Bitte Bild auswählen",
73
+ # Sound-Player-Einstellungs-UI
74
+ "sound_player_setting_choose_wav_file": "WAV-Datei auswählen",
75
+ "sound_player_setting_choose_sound_file": "Bitte Audiodatei auswählen",
76
+ "sound_player_setting_play_wav": "WAV abspielen",
77
+ "sound_player_setting_play_sound": "Audiodatei abspielen",
78
+ "sound_player_setting_message_box_wav": "Bitte WAV-Datei auswählen",
79
+ "sound_player_setting_message_box_sound": "Bitte Audiodatei auswählen",
80
+ # Text-Einstellungs-UI
81
+ "text_setting_start_draw": "Text auf Bildschirm zeichnen",
82
+ "text_setting_choose_alignment": "Textausrichtung auswählen",
83
+ "text_setting_alignment_Top": "Oben",
84
+ # Video-Einstellungs-UI
85
+ "video_setting_choose_file": "Videodatei auswählen",
86
+ "video_setting_start_play": "Video abspielen",
87
+ "video_setting_message_box": "Bitte Videodatei auswählen",
88
+ # Web-Einstellungs-UI
89
+ "web_setting_open_url": "Webseite über URL öffnen",
90
+ "web_setting_open_local_file": "Lokale Webseite öffnen",
91
+ "web_setting_open_enable_input": "Eingabe aktivieren",
92
+ # Szenen-UI
93
+ "tab_scene_text": "Szene",
94
+ "scene_start": "Szene starten",
95
+ "scene_table_view_type": "Typ",
96
+ "scene_file_path": "Dateipfad",
97
+ "scene_setting_start_scene_button": "Szene starten",
98
+ "scene_add_image": "Bild zur Szene hinzufügen",
99
+ "scene_add_gif": "Gif zur Szene hinzufügen",
100
+ "scene_add_sound": "Ton zur Szene hinzufügen",
101
+ "scene_add_text": "Text zur Szene hinzufügen",
102
+ "scene_add_video": "Video zur Szene hinzufügen",
103
+ "scene_add_web": "Webseite zur Szene hinzufügen",
104
+ "scene_url_label": "URL",
105
+ "scene_add_UI": "UI zur Szene hinzufügen",
106
+ "scene_choose_message_box": "Bitte Szenendatei auswählen",
107
+ "scene_choose_output_path_message_box": "Bitte Ausgabepfad für Szenendatei auswählen",
108
+ "scene_output": "Szenendatei ausgeben",
109
+ "scene_input": "Szenendatei laden",
110
+ "scene_script_clear": "Alle Skripte löschen",
111
+ "scene_script": "Szenen-Skript",
112
+ # Chat-Szenen-Eingabe
113
+ "chat_scene_input_title": "Chat-Inhalt eingeben",
114
+ "chat_scene_send_chat": "Text senden",
115
+ # Chat-Szene
116
+ "chat_scene_start_button": "Chat starten",
117
+ "chat_scene_new_topic": "Neues Thema starten",
118
+ "chat_scene_creative": "Kreativ",
119
+ "chat_scene_precise": "Präzise",
120
+ "chat_scene_balanced": "Ausgeglichen",
121
+ "chat_gpt_exception": "GPT-Fehler, bitte erneut versuchen oder neues Thema starten",
122
+ "should_we_show_toast": "Dialog anzeigen?",
123
+ # Chat-Spracheingabe
124
+ "start_chat_voice_input_ui": "Spracheingabe-Oberfläche öffnen",
125
+ "chat_recognizer_voice_button": "Sprachaufnahme starten",
126
+ # Bild-Generierung
127
+ "image_generation_tab": "Bild generieren",
128
+ "start_generate_image": "Bild generieren starten",
129
+ "input_error": "Bitte geben Sie etwas ein (keine Leerzeichen)",
130
+ "save_generation_image": "Generiertes Bild speichern",
131
+ # Hilfe-Menü
132
+ "help_menu_label": "Hilfe-Menü",
133
+ "help_menu_open_issue": "Problem melden",
134
+ # HowTo-Menü
135
+ "doc_menu_label": "Dokumentations-Menü",
136
+ "doc_menu_open_doc": "Dokumentation öffnen",
137
+ }