frontengine 1.0.50__tar.gz → 1.0.51__tar.gz

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 (263) hide show
  1. {frontengine-1.0.50 → frontengine-1.0.51}/PKG-INFO +1 -1
  2. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/tools/tools_setting_ui.py +3 -2
  3. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/multi_language/english.py +1 -1
  4. frontengine-1.0.51/frontengine/utils/multi_language/france.py +552 -0
  5. frontengine-1.0.51/frontengine/utils/multi_language/germany.py +555 -0
  6. frontengine-1.0.51/frontengine/utils/multi_language/italy.py +552 -0
  7. frontengine-1.0.51/frontengine/utils/multi_language/russian.py +552 -0
  8. frontengine-1.0.51/frontengine/utils/multi_language/simplified_chinese.py +554 -0
  9. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine.egg-info/PKG-INFO +1 -1
  10. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine.egg-info/SOURCES.txt +1 -11
  11. {frontengine-1.0.50 → frontengine-1.0.51}/pyproject.toml +1 -1
  12. frontengine-1.0.50/frontengine/ui/dialog/save_file_dialog.py +0 -26
  13. frontengine-1.0.50/frontengine/utils/file/open/__init__.py +0 -1
  14. frontengine-1.0.50/frontengine/utils/file/open/open_file.py +0 -36
  15. frontengine-1.0.50/frontengine/utils/file/save/__init__.py +0 -1
  16. frontengine-1.0.50/frontengine/utils/file/save/save_file.py +0 -33
  17. frontengine-1.0.50/frontengine/utils/json_format/__init__.py +0 -1
  18. frontengine-1.0.50/frontengine/utils/json_format/json_process.py +0 -42
  19. frontengine-1.0.50/frontengine/utils/multi_language/france.py +0 -147
  20. frontengine-1.0.50/frontengine/utils/multi_language/germany.py +0 -147
  21. frontengine-1.0.50/frontengine/utils/multi_language/italy.py +0 -147
  22. frontengine-1.0.50/frontengine/utils/multi_language/russian.py +0 -147
  23. frontengine-1.0.50/frontengine/utils/multi_language/simplified_chinese.py +0 -147
  24. frontengine-1.0.50/frontengine/utils/workshop/__init__.py +0 -0
  25. frontengine-1.0.50/frontengine/worker/__init__.py +0 -0
  26. frontengine-1.0.50/frontengine/worker/qthread_worker.py +0 -60
  27. {frontengine-1.0.50 → frontengine-1.0.51}/LICENSE +0 -0
  28. {frontengine-1.0.50 → frontengine-1.0.51}/README.md +0 -0
  29. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/__init__.py +0 -0
  30. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/__main__.py +0 -0
  31. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/__init__.py +0 -0
  32. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/base_widget.py +0 -0
  33. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/camera/__init__.py +0 -0
  34. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/camera/camera_widget.py +0 -0
  35. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/canvas/__init__.py +0 -0
  36. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/canvas/whiteboard_widget.py +0 -0
  37. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/capture/__init__.py +0 -0
  38. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/capture/region_capture.py +0 -0
  39. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/focus_shield/__init__.py +0 -0
  40. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/focus_shield/focus_shield_widget.py +0 -0
  41. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/gif/__init__.py +0 -0
  42. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/gif/paint_gif.py +0 -0
  43. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/image/__init__.py +0 -0
  44. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/image/paint_image.py +0 -0
  45. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/load/__init__.py +0 -0
  46. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/load/load_someone_make_ui.py +0 -0
  47. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/measure/__init__.py +0 -0
  48. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/measure/measure_widget.py +0 -0
  49. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/monitor/__init__.py +0 -0
  50. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/monitor/monitor_widget.py +0 -0
  51. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/notes/__init__.py +0 -0
  52. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/notes/sticky_note_widget.py +0 -0
  53. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/overlay_factory.py +0 -0
  54. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/particle/__init__.py +0 -0
  55. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/particle/particle_ui.py +0 -0
  56. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/pet/__init__.py +0 -0
  57. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/pet/desktop_pet.py +0 -0
  58. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/presentation/__init__.py +0 -0
  59. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/presentation/annotation_overlay.py +0 -0
  60. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/presentation/cursor_effects.py +0 -0
  61. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/presentation/keystroke_display.py +0 -0
  62. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/presentation/magnifier.py +0 -0
  63. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/scene/__init__.py +0 -0
  64. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/scene/extend_graphic_scene.py +0 -0
  65. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/scene/extend_graphic_view.py +0 -0
  66. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/scene/scene.py +0 -0
  67. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/screen_care/__init__.py +0 -0
  68. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/screen_care/color_vision_widget.py +0 -0
  69. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/screen_care/screen_filter.py +0 -0
  70. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/sound_player/__init__.py +0 -0
  71. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/sound_player/sound_effect.py +0 -0
  72. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/sound_player/sound_player.py +0 -0
  73. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/spectrum/__init__.py +0 -0
  74. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/spectrum/spectrum_widget.py +0 -0
  75. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/text/__init__.py +0 -0
  76. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/text/draw_text.py +0 -0
  77. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/toast/__init__.py +0 -0
  78. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/toast/toast_widget.py +0 -0
  79. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/video/__init__.py +0 -0
  80. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/video/video_player.py +0 -0
  81. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/wallpaper/__init__.py +0 -0
  82. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/wallpaper/wallpaper_widget.py +0 -0
  83. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/web/__init__.py +0 -0
  84. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/web/webview.py +0 -0
  85. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/show/window_helpers.py +0 -0
  86. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/system_tray/__init__.py +0 -0
  87. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/system_tray/extend_system_tray.py +0 -0
  88. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/__init__.py +0 -0
  89. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/color/__init__.py +0 -0
  90. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/color/global_color.py +0 -0
  91. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/dialog/__init__.py +0 -0
  92. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/dialog/app_profile_dialog.py +0 -0
  93. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/dialog/choose_file_dialog.py +0 -0
  94. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/dialog/clipboard_dialog.py +0 -0
  95. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/dialog/hotkey_settings_dialog.py +0 -0
  96. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/dialog/reminder_dialog.py +0 -0
  97. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/dialog/remote_control_dialog.py +0 -0
  98. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/dialog/screen_privacy_dialog.py +0 -0
  99. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/dialog/screen_text_dialog.py +0 -0
  100. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/dialog/signage_dialog.py +0 -0
  101. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/dialog/smart_pause_dialog.py +0 -0
  102. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/dialog/usage_report_dialog.py +0 -0
  103. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/dialog/window_pin_dialog.py +0 -0
  104. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/main_ui.py +0 -0
  105. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/menu/__init__.py +0 -0
  106. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/menu/help_menu.py +0 -0
  107. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/menu/how_to_menu.py +0 -0
  108. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/menu/language_menu.py +0 -0
  109. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/menu/preset_menu.py +0 -0
  110. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/menu/settings_menu.py +0 -0
  111. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/__init__.py +0 -0
  112. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/control_center/__init__.py +0 -0
  113. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/control_center/control_center_ui.py +0 -0
  114. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/focus/__init__.py +0 -0
  115. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/focus/focus_setting_ui.py +0 -0
  116. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/gif/__init__.py +0 -0
  117. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/gif/gif_setting_ui.py +0 -0
  118. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/image/__init__.py +0 -0
  119. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/image/image_setting_ui.py +0 -0
  120. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/particle/__init__.py +0 -0
  121. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/particle/particle_setting_ui.py +0 -0
  122. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/pet/__init__.py +0 -0
  123. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/pet/pet_setting_ui.py +0 -0
  124. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/presentation/__init__.py +0 -0
  125. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/presentation/presentation_setting_ui.py +0 -0
  126. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/scene_setting/__init__.py +0 -0
  127. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/scene_setting/scene_manager.py +0 -0
  128. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/scene_setting/scene_page/__init__.py +0 -0
  129. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/scene_setting/scene_page/base_scene_page.py +0 -0
  130. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/scene_setting/scene_page/gif.py +0 -0
  131. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/scene_setting/scene_page/image.py +0 -0
  132. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/scene_setting/scene_page/registry.py +0 -0
  133. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/scene_setting/scene_page/sound.py +0 -0
  134. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/scene_setting/scene_page/text.py +0 -0
  135. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/scene_setting/scene_page/video.py +0 -0
  136. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/scene_setting/scene_page/web.py +0 -0
  137. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/scene_setting/scene_setting_ui.py +0 -0
  138. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/screen_care/__init__.py +0 -0
  139. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/screen_care/screen_care_setting_ui.py +0 -0
  140. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/sound_player/__init__.py +0 -0
  141. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/sound_player/sound_player_setting_ui.py +0 -0
  142. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/text/__init__.py +0 -0
  143. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/text/text_setting_ui.py +0 -0
  144. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/tools/__init__.py +0 -0
  145. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/utils.py +0 -0
  146. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/video/__init__.py +0 -0
  147. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/video/video_setting_ui.py +0 -0
  148. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/wallpaper/__init__.py +0 -0
  149. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/wallpaper/wallpaper_setting_ui.py +0 -0
  150. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/web/__init__.py +0 -0
  151. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/web/web_setting_ui.py +0 -0
  152. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/widgets/__init__.py +0 -0
  153. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/ui/page/widgets/widgets_setting_ui.py +0 -0
  154. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/user_setting/__init__.py +0 -0
  155. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/user_setting/preset_repository.py +0 -0
  156. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/user_setting/scene_setting.py +0 -0
  157. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/user_setting/user_setting_file.py +0 -0
  158. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/__init__.py +0 -0
  159. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/app_profile/__init__.py +0 -0
  160. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/app_profile/app_profile_service.py +0 -0
  161. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/audio_meter/__init__.py +0 -0
  162. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/audio_meter/audio_envelope.py +0 -0
  163. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/audio_meter/loopback_capture.py +0 -0
  164. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/audio_meter/microphone_meter.py +0 -0
  165. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/audio_meter/screen_audio.py +0 -0
  166. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/audio_meter/spectrum_analyzer.py +0 -0
  167. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/audio_meter/system_audio_meter.py +0 -0
  168. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/autostart/__init__.py +0 -0
  169. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/autostart/autostart_service.py +0 -0
  170. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/break_reminder/__init__.py +0 -0
  171. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/break_reminder/break_reminder.py +0 -0
  172. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/browser/__init__.py +0 -0
  173. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/browser/browser.py +0 -0
  174. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/clipboard/__init__.py +0 -0
  175. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/clipboard/clipboard_history.py +0 -0
  176. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/clipboard/clipboard_watcher.py +0 -0
  177. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/color_vision/__init__.py +0 -0
  178. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/color_vision/color_vision.py +0 -0
  179. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/critical_exit/__init__.py +0 -0
  180. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/critical_exit/check_key_is_press.py +0 -0
  181. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/critical_exit/critical_exit.py +0 -0
  182. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/critical_exit/win32_vk.py +0 -0
  183. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/exception/__init__.py +0 -0
  184. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/exception/exception_tags.py +0 -0
  185. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/exception/exceptions.py +0 -0
  186. {frontengine-1.0.50/frontengine/utils/file → frontengine-1.0.51/frontengine/utils/focus_shield}/__init__.py +0 -0
  187. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/focus_shield/focus_shield.py +0 -0
  188. {frontengine-1.0.50/frontengine/utils/focus_shield → frontengine-1.0.51/frontengine/utils/focus_timer}/__init__.py +0 -0
  189. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/focus_timer/focus_timer.py +0 -0
  190. {frontengine-1.0.50/frontengine/utils/focus_timer → frontengine-1.0.51/frontengine/utils/hotkey}/__init__.py +0 -0
  191. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/hotkey/hotkey_service.py +0 -0
  192. {frontengine-1.0.50/frontengine/utils/hotkey → frontengine-1.0.51/frontengine/utils/input_watch}/__init__.py +0 -0
  193. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/input_watch/input_watch_service.py +0 -0
  194. {frontengine-1.0.50/frontengine/utils/input_watch → frontengine-1.0.51/frontengine/utils/json}/__init__.py +0 -0
  195. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/json/json_file.py +0 -0
  196. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/json/json_repository.py +0 -0
  197. {frontengine-1.0.50/frontengine/utils/json → frontengine-1.0.51/frontengine/utils/logging}/__init__.py +0 -0
  198. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/logging/loggin_instance.py +0 -0
  199. {frontengine-1.0.50/frontengine/utils/logging → frontengine-1.0.51/frontengine/utils/measure}/__init__.py +0 -0
  200. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/measure/measure.py +0 -0
  201. {frontengine-1.0.50/frontengine/utils/measure → frontengine-1.0.51/frontengine/utils/midi}/__init__.py +0 -0
  202. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/midi/midi_input.py +0 -0
  203. {frontengine-1.0.50/frontengine/utils/midi → frontengine-1.0.51/frontengine/utils/multi_language}/__init__.py +0 -0
  204. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/multi_language/language_wrapper.py +0 -0
  205. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/multi_language/traditional_chinese.py +0 -0
  206. {frontengine-1.0.50/frontengine/utils/multi_language → frontengine-1.0.51/frontengine/utils/now_playing}/__init__.py +0 -0
  207. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/now_playing/now_playing.py +0 -0
  208. {frontengine-1.0.50/frontengine/utils/now_playing → frontengine-1.0.51/frontengine/utils/pet_chat}/__init__.py +0 -0
  209. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/pet_chat/pet_chat_service.py +0 -0
  210. {frontengine-1.0.50/frontengine/utils/pet_chat → frontengine-1.0.51/frontengine/utils/platform_info}/__init__.py +0 -0
  211. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/platform_info/platform_info.py +0 -0
  212. {frontengine-1.0.50/frontengine/utils/platform_info → frontengine-1.0.51/frontengine/utils/playlist}/__init__.py +0 -0
  213. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/playlist/playlist.py +0 -0
  214. {frontengine-1.0.50/frontengine/utils/playlist → frontengine-1.0.51/frontengine/utils/plugins}/__init__.py +0 -0
  215. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/plugins/plugin_loader.py +0 -0
  216. {frontengine-1.0.50/frontengine/utils/plugins → frontengine-1.0.51/frontengine/utils/power_mode}/__init__.py +0 -0
  217. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/power_mode/power_mode.py +0 -0
  218. {frontengine-1.0.50/frontengine/utils/power_mode → frontengine-1.0.51/frontengine/utils/preset_schedule}/__init__.py +0 -0
  219. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/preset_schedule/preset_schedule_service.py +0 -0
  220. {frontengine-1.0.50/frontengine/utils/preset_schedule → frontengine-1.0.51/frontengine/utils/recording}/__init__.py +0 -0
  221. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/recording/frame_recorder.py +0 -0
  222. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/recording/gif_writer.py +0 -0
  223. {frontengine-1.0.50/frontengine/utils/recording → frontengine-1.0.51/frontengine/utils/redirect_manager}/__init__.py +0 -0
  224. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/redirect_manager/redirect_manager_class.py +0 -0
  225. {frontengine-1.0.50/frontengine/utils/redirect_manager → frontengine-1.0.51/frontengine/utils/reminder}/__init__.py +0 -0
  226. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/reminder/reminder_service.py +0 -0
  227. {frontengine-1.0.50/frontengine/utils/reminder → frontengine-1.0.51/frontengine/utils/remote}/__init__.py +0 -0
  228. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/remote/remote_server.py +0 -0
  229. {frontengine-1.0.50/frontengine/utils/remote → frontengine-1.0.51/frontengine/utils/screen_privacy}/__init__.py +0 -0
  230. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/screen_privacy/capture_affinity.py +0 -0
  231. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/screen_privacy/share_watch.py +0 -0
  232. {frontengine-1.0.50/frontengine/utils/screen_privacy → frontengine-1.0.51/frontengine/utils/screen_text}/__init__.py +0 -0
  233. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/screen_text/screen_text_service.py +0 -0
  234. {frontengine-1.0.50/frontengine/utils/screen_text → frontengine-1.0.51/frontengine/utils/signage}/__init__.py +0 -0
  235. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/signage/signage_service.py +0 -0
  236. {frontengine-1.0.50/frontengine/utils/signage → frontengine-1.0.51/frontengine/utils/smart_pause}/__init__.py +0 -0
  237. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/smart_pause/pause_rules.py +0 -0
  238. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/smart_pause/smart_pause_service.py +0 -0
  239. {frontengine-1.0.50/frontengine/utils/smart_pause → frontengine-1.0.51/frontengine/utils/system_stats}/__init__.py +0 -0
  240. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/system_stats/system_stats.py +0 -0
  241. {frontengine-1.0.50/frontengine/utils/system_stats → frontengine-1.0.51/frontengine/utils/text_source}/__init__.py +0 -0
  242. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/text_source/text_source.py +0 -0
  243. {frontengine-1.0.50/frontengine/utils/text_source → frontengine-1.0.51/frontengine/utils/theme_schedule}/__init__.py +0 -0
  244. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/theme_schedule/theme_schedule_service.py +0 -0
  245. {frontengine-1.0.50/frontengine/utils/theme_schedule → frontengine-1.0.51/frontengine/utils/usage_tracking}/__init__.py +0 -0
  246. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/usage_tracking/usage_service.py +0 -0
  247. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/usage_tracking/usage_tracker.py +0 -0
  248. {frontengine-1.0.50/frontengine/utils/usage_tracking → frontengine-1.0.51/frontengine/utils/virtual_camera}/__init__.py +0 -0
  249. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/virtual_camera/camera_feed.py +0 -0
  250. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/virtual_camera/virtual_camera.py +0 -0
  251. {frontengine-1.0.50/frontengine/utils/virtual_camera → frontengine-1.0.51/frontengine/utils/weather}/__init__.py +0 -0
  252. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/weather/weather_service.py +0 -0
  253. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/web_url.py +0 -0
  254. {frontengine-1.0.50/frontengine/utils/weather → frontengine-1.0.51/frontengine/utils/window_pin}/__init__.py +0 -0
  255. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/window_pin/window_layout.py +0 -0
  256. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/window_pin/window_pin.py +0 -0
  257. {frontengine-1.0.50/frontengine/utils/window_pin → frontengine-1.0.51/frontengine/utils/workshop}/__init__.py +0 -0
  258. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine/utils/workshop/workshop_content.py +0 -0
  259. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine.egg-info/dependency_links.txt +0 -0
  260. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine.egg-info/entry_points.txt +0 -0
  261. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine.egg-info/requires.txt +0 -0
  262. {frontengine-1.0.50 → frontengine-1.0.51}/frontengine.egg-info/top_level.txt +0 -0
  263. {frontengine-1.0.50 → frontengine-1.0.51}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: frontengine
3
- Version: 1.0.50
3
+ Version: 1.0.51
4
4
  Summary: FrontEngine is use-define frontview or only use like screen saver
5
5
  Author-email: JE-Chen <jechenmailman@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/Intergration-Automation-Testing/FrontEngine
@@ -52,6 +52,7 @@ from frontengine.utils.window_pin.window_layout import capture_layout, restore_l
52
52
  # The English fallback shared by three call sites, seen only when a
53
53
  # translation is missing.
54
54
  _RECORD_AREA = "Record area"
55
+ _RECORD_AN_AREA = "Record an area"
55
56
 
56
57
 
57
58
  def _t(key: str, fallback: str) -> str:
@@ -191,7 +192,7 @@ class ToolsSettingUI(QWidget):
191
192
  self.record_seconds_spinbox.setRange(1, 120)
192
193
  self.record_seconds_spinbox.setValue(DEFAULT_MAX_SECONDS)
193
194
  self.record_camera_checkbox = QCheckBox(_t("tools_record_camera", "Include camera"))
194
- self.record_button = QPushButton(_t("tools_record_start", _RECORD_AREA))
195
+ self.record_button = QPushButton(_t("tools_record_start", _RECORD_AN_AREA))
195
196
  self.record_button.clicked.connect(self.toggle_recording)
196
197
 
197
198
  def _build_virtual_camera_row(self) -> None:
@@ -497,7 +498,7 @@ class ToolsSettingUI(QWidget):
497
498
  def finish_recording(self) -> Optional[str]:
498
499
  """停止錄製並存成 GIF,回傳檔案路徑。"""
499
500
  self.recorder.stop()
500
- self.record_button.setText(_t("tools_record_start", _RECORD_AREA))
501
+ self.record_button.setText(_t("tools_record_start", _RECORD_AN_AREA))
501
502
  if not self.recorder.frames:
502
503
  return None
503
504
  target = QFileDialog.getSaveFileName(
@@ -500,7 +500,7 @@ english_word_dict = {
500
500
  "tools_layout_save": 'Save layout',
501
501
  "tools_layout_restore": 'Restore',
502
502
  "tools_record_label": 'Record area',
503
- "tools_record_start": 'Record area',
503
+ "tools_record_start": 'Record an area',
504
504
  "tools_record_stop": 'Stop recording',
505
505
  "tools_record_camera": 'Include camera',
506
506
  "tools_record_save": 'Save recording',
@@ -0,0 +1,552 @@
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_box_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
+ "fullscreen_checkbox_label": "Plein écran?",
66
+ # GIF setting ui
67
+ "gif_setting_ui_choose_file": "Choisir un fichier GIF ou WEBP",
68
+ "gif_setting_ui_play": "Lancer la lecture du GIF ou WEBP",
69
+ "gif_setting_message_box": "Veuillez choisir un fichier GIF ou WEBP",
70
+ # Image setting ui
71
+ "image_setting_choose_file": "Choisir une image",
72
+ "image_setting_ui_play": "Lancer la lecture de l'image",
73
+ "image_setting_message_box": "Veuillez choisir une image",
74
+ # Sound player setting ui
75
+ "sound_player_setting_choose_wav_file": "Choisir un fichier wav",
76
+ "sound_player_setting_choose_sound_file": "Veuillez choisir un fichier audio",
77
+ "sound_player_setting_play_wav": "Lancer la lecture du wav",
78
+ "sound_player_setting_play_sound": "Lancer la lecture du fichier audio",
79
+ "sound_player_setting_message_box_wav": "Veuillez choisir un fichier wav",
80
+ "sound_player_setting_message_box_sound": "Veuillez choisir un fichier audio",
81
+ # Text setting ui
82
+ "text_setting_start_draw": "Commencer à dessiner le texte sur l'écran",
83
+ "text_setting_choose_alignment": "Choisir l'alignement du texte",
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
+ # Particle ui
113
+ "tab_particle_text": "Particule",
114
+ "choose_particle_direction": "Choisissez la direction des particules",
115
+ "particle_setting_ui_play": "Démarrer la lecture des particules",
116
+ "particle_size": "Taille des particules",
117
+ "particle_count": "Nombre de particules",
118
+ "particle_speed": "Vitesse des particules",
119
+ # Chat scene input
120
+ "chat_scene_input_title": "Entrer le contenu de la discussion",
121
+ "chat_scene_send_chat": "Envoyer le texte",
122
+ # Chat scene
123
+ "chat_scene_start_button": "Commencer à discuter",
124
+ "chat_scene_new_topic": "Commencer un nouveau sujet",
125
+ "chat_scene_creative": "Créatif",
126
+ "chat_scene_precise": "Précis",
127
+ "chat_scene_balanced": "Équilibré",
128
+ "chat_gpt_exception": "Erreur GPT, veuillez réessayer ou commencer un nouveau sujet",
129
+ "should_we_show_toast": "Afficher la conversation ?",
130
+ # Chat voice input
131
+ "start_chat_voice_input_ui": "Ouvrir l'interface d'entrée vocale",
132
+ "chat_recognizer_voice_button": "Commencer l'enregistrement vocal",
133
+ # Image Generation
134
+ "image_generation_tab": "Génération d'images",
135
+ "start_generate_image": "Commencer la génération d'images",
136
+ "input_error": "Veuillez éviter les entrées vides ou les espaces",
137
+ "save_generation_image": "Sauvegarder l'image",
138
+ # Help Menu
139
+ "help_menu_label": "Menu Aide",
140
+ "help_menu_open_issue": "Ouvrir un rapport de problème",
141
+ "how_to_critical_exit_action": " Comment forcer la fermeture",
142
+ "how_to_critical_exit": "Appuyez sur F12 pour fermer d’urgence",
143
+ # HowTo Menu
144
+ "doc_menu_label": "Menu Documentation",
145
+ "doc_menu_open_doc": "Ouvrir la documentation",
146
+ # Prereglages, mascotte, widgets, outils, confidentialite, telecommande et affichage
147
+ "workshop_menu_import": "Importer du contenu Workshop…",
148
+ "workshop_pick_steam": "Où Steam est-il installé ?",
149
+ "workshop_not_found": "Aucun contenu Workshop trouvé pour FrontEngine.",
150
+ "workshop_no_items": "Rien d'abonné pour l'instant — abonnez-vous d'abord dans Steam.",
151
+ "workshop_imported_presets": "Préréglages importés : {count}",
152
+ "workshop_found_packs": "Packs de mascotte disponibles : {count}",
153
+ "settings_menu_plugins": "Charger des extensions (avancé)",
154
+ "settings_plugins_warning": "Les extensions sont du code Python et s'exécutent avec les mêmes droits que FrontEngine. N'installez que des extensions de confiance. Prise en compte au prochain démarrage.",
155
+ "menu_bar_presets": "Préréglages",
156
+ "preset_menu_save": "Enregistrer un préréglage…",
157
+ "preset_menu_load": "Charger un préréglage…",
158
+ "preset_menu_delete": "Supprimer un préréglage…",
159
+ "preset_menu_export": "Exporter un préréglage…",
160
+ "preset_menu_import": "Importer un préréglage…",
161
+ "preset_menu_set_startup": "Définir comme préréglage de démarrage…",
162
+ "preset_menu_clear_startup": "Effacer le préréglage de démarrage",
163
+ "preset_menu_export_package": "Exporter un paquet (+médias)…",
164
+ "preset_menu_import_package": "Importer un paquet (+médias)…",
165
+ "preset_export_package_title": "Exporter un paquet",
166
+ "preset_import_package_title": "Importer un paquet",
167
+ "preset_package_filter": "Paquets de préréglages (*.zip)",
168
+ "preset_overwrite_confirm": "Le préréglage « {name} » existe déjà. Le remplacer ?",
169
+ "preset_startup_title": "Préréglage de démarrage",
170
+ "preset_startup_set": "Préréglage de démarrage défini.",
171
+ "preset_startup_cleared": "Préréglage de démarrage effacé.",
172
+ "preset_save_title": "Enregistrer un préréglage",
173
+ "preset_save_label": "Nom du préréglage :",
174
+ "preset_saved": "Préréglage enregistré.",
175
+ "preset_load_title": "Charger un préréglage",
176
+ "preset_loaded": "Préréglage chargé.",
177
+ "preset_delete_title": "Supprimer un préréglage",
178
+ "preset_delete_confirm": "Supprimer le préréglage « {name} » ?",
179
+ "preset_export_title": "Exporter un préréglage",
180
+ "preset_import_title": "Importer un préréglage",
181
+ "preset_exported": "Préréglage exporté.",
182
+ "preset_imported": "Préréglage importé.",
183
+ "preset_file_filter": "Fichiers de préréglage (*.json)",
184
+ "preset_pick_label": "Préréglage :",
185
+ "preset_no_presets": "Aucun préréglage enregistré pour l'instant.",
186
+ "target_monitor_label": "Écran cible",
187
+ "target_monitor_ask": "Demander",
188
+ "control_center_hide_all": "Tout masquer",
189
+ "control_center_show_all": "Tout afficher",
190
+ "control_center_lock_all": "Verrouiller les calques",
191
+ "control_center_unlock_all": "Déverrouiller les calques",
192
+ "control_center_chroma_key_on": "Fond vert activé",
193
+ "control_center_chroma_key_off": "Fond vert désactivé",
194
+ "control_center_reset_positions": "Réinitialiser la position des calques",
195
+ "hotkey_toggle_lock": "Verrouiller / déverrouiller les calques",
196
+ "settings_menu_autostart": "Lancer au démarrage du système",
197
+ "settings_menu_restore_session": "Restaurer la dernière session",
198
+ "settings_autostart_failed": "Impossible de modifier le réglage de démarrage automatique.",
199
+ "control_center_low_power_on": "Mode économie activé",
200
+ "control_center_low_power_off": "Mode économie désactivé",
201
+ "control_center_mute_all": "Tout couper",
202
+ "control_center_unmute_all": "Rétablir le son",
203
+ "recent_files_label": "Récents",
204
+ "slideshow_label": "Diaporama",
205
+ "slideshow_choose_folder": "Choisir un dossier",
206
+ "slideshow_interval_label": "Intervalle (s)",
207
+ "slideshow_shuffle": "Aléatoire",
208
+ "slideshow_recursive": "Inclure les sous-dossiers",
209
+ "text_color_label": "Couleur",
210
+ "font_family_label": "Police",
211
+ "marquee_label": "Défilement",
212
+ "marquee_speed_label": "Vitesse",
213
+ "outline_label": "Contour",
214
+ "web_dashboard_label": "URL du tableau de bord",
215
+ "web_dashboard_hint": "Une URL par ligne ; les lignes commençant par # sont ignorées.",
216
+ "web_dashboard_start": "Démarrer le tableau de bord",
217
+ "web_dashboard_next": "Page suivante",
218
+ "text_source_label": "Source du texte",
219
+ "text_source_static": "Texte fixe",
220
+ "text_source_clock": "Horloge",
221
+ "text_source_date": "Date",
222
+ "text_source_countdown": "Compte à rebours",
223
+ "text_source_stopwatch": "Chronomètre",
224
+ "text_source_system": "État du système",
225
+ "text_source_weather": "Météo",
226
+ "text_source_hint_static": "Le champ de texte contient exactement ce qui est affiché.",
227
+ "text_source_hint_clock": "Le champ de texte est un format strftime.",
228
+ "text_source_hint_date": "Le champ de texte est un format strftime.",
229
+ "text_source_hint_countdown": "Le champ accepte des minutes, HH:MM ou une date complète.",
230
+ "text_source_hint_stopwatch": "Compte à partir du moment où le calque démarre.",
231
+ "text_source_hint_system": "Champs : {cpu} {ram} {ram_used} {ram_total} {disk} {down} {up}",
232
+ "text_source_hint_weather": "Champs : {temperature} {unit} {description} {humidity} {wind}",
233
+ "weather_location_label": "Ville pour la météo",
234
+ "weather_location_hint": "par ex. Taipei (vide conserve le dernier lieu)",
235
+ "menu_bar_settings": "Réglages",
236
+ "settings_menu_hotkeys": "Raccourcis clavier…",
237
+ "hotkey_settings_title": "Configurer les raccourcis",
238
+ "hotkey_settings_hint": "Syntaxe pynput, par ex. <ctrl>+<shift>+<f12>. Laisser vide pour supprimer.",
239
+ "hotkey_settings_invalid": "Raccourcis invalides : {names}",
240
+ "settings_menu_export": "Exporter les réglages…",
241
+ "settings_menu_import": "Importer les réglages…",
242
+ "settings_file_filter": "Fichiers de réglages (*.json)",
243
+ "settings_exported": "Réglages exportés.",
244
+ "settings_imported": "Réglages importés. Redémarrez pour appliquer le thème et la langue.",
245
+ "settings_menu_theme_schedule": "Thème jour/nuit programmé",
246
+ "hotkey_opacity_up": "Augmenter l'opacité",
247
+ "hotkey_opacity_down": "Diminuer l'opacité",
248
+ "web_zoom_label": "Zoom",
249
+ "web_refresh_label": "Actualisation automatique",
250
+ "web_refresh_off": "Désactivée",
251
+ "tab_presentation_text": "Présentation",
252
+ "annotate_label": "Annotation à l'écran",
253
+ "annotate_tool_pen": "Stylo",
254
+ "annotate_tool_highlighter": "Surligneur",
255
+ "annotate_tool_eraser": "Gomme",
256
+ "annotate_start": "Commencer à dessiner",
257
+ "annotate_stop": "Arrêter de dessiner",
258
+ "annotate_undo": "Annuler",
259
+ "annotate_clear": "Effacer",
260
+ "cursor_effect_label": "Mise en valeur du curseur",
261
+ "cursor_effect_ring": "Halo",
262
+ "cursor_effect_ripple": "Onde au clic",
263
+ "cursor_effect_spotlight": "Projecteur",
264
+ "cursor_effect_start": "Activer les effets de curseur",
265
+ "cursor_effect_stop": "Désactiver les effets de curseur",
266
+ "keystroke_label": "Affichage des touches",
267
+ "keystroke_start": "Afficher les touches",
268
+ "keystroke_stop": "Masquer les touches",
269
+ "magnifier_label": "Loupe",
270
+ "magnifier_start": "Activer la loupe",
271
+ "magnifier_stop": "Désactiver la loupe",
272
+ "presentation_hint": "Le dessin capte la souris tant qu'il est actif ; les autres calques laissent passer les clics.",
273
+ "tab_screen_care_text": "Confort visuel",
274
+ "screen_filter_label": "Filtre d'écran",
275
+ "screen_filter_strength": "Intensité",
276
+ "screen_filter_start": "Activer le filtre",
277
+ "screen_filter_stop": "Désactiver le filtre",
278
+ "screen_filter_color_warm": "Chaud",
279
+ "screen_filter_color_amber": "Ambre",
280
+ "screen_filter_color_rose": "Rosé",
281
+ "screen_filter_color_yellow": "Jaune",
282
+ "screen_filter_color_green": "Vert",
283
+ "screen_filter_color_blue": "Bleu",
284
+ "screen_filter_color_grey": "Gris",
285
+ "reading_ruler_label": "Règle de lecture",
286
+ "reading_ruler_start": "Activer la règle",
287
+ "reading_ruler_stop": "Désactiver la règle",
288
+ "break_reminder_label": "Pauses visuelles (min / s)",
289
+ "break_reminder_start": "Démarrer les pauses",
290
+ "break_reminder_stop": "Arrêter les pauses",
291
+ "screen_care_hint": "Ces calques laissent passer les clics : tout ce qui se trouve dessous continue de fonctionner.",
292
+ "tab_wallpaper_text": "Fond d'écran",
293
+ "tab_focus_text": "Concentration",
294
+ "wallpaper_monitor_label": "Écran",
295
+ "wallpaper_choose_folder": "Choisir un dossier…",
296
+ "wallpaper_no_folder": "Aucun dossier choisi",
297
+ "wallpaper_interval_label": "Changer toutes les",
298
+ "wallpaper_shuffle": "Aléatoire",
299
+ "wallpaper_recursive": "Inclure les sous-dossiers",
300
+ "wallpaper_audio_react": "Réagir au son",
301
+ "wallpaper_start": "Démarrer le fond d'écran",
302
+ "wallpaper_stop": "Arrêter le fond d'écran",
303
+ "wallpaper_next": "Fond d'écran suivant",
304
+ "wallpaper_hint": "Les fonds d'écran se placent sous toutes les fenêtres. Chaque écran peut utiliser son propre dossier.",
305
+ "focus_dim_label": "Assombrir les fenêtres d'arrière-plan",
306
+ "focus_dim_start": "Assombrir l'arrière-plan",
307
+ "focus_dim_stop": "Arrêter l'assombrissement",
308
+ "focus_mask_label": "Masquer une distraction",
309
+ "focus_mask_start": "Masquer",
310
+ "focus_mask_stop": "Démasquer",
311
+ "focus_mask_region_bottom": "Bande inférieure (barre des tâches)",
312
+ "focus_mask_region_bottom_right": "Coin inférieur droit",
313
+ "focus_mask_region_top": "Bande supérieure",
314
+ "focus_mask_region_left": "Bord gauche",
315
+ "focus_mask_region_right": "Bord droit",
316
+ "focus_mask_region_full": "Tout l'écran",
317
+ "focus_hint": "Les deux calques laissent passer les clics — ce qu'ils recouvrent fonctionne toujours, cela cesse simplement de réclamer votre attention.",
318
+ "tab_pet_text": "Mascotte",
319
+ "pet_choose_file": "Choisir l'image de la mascotte",
320
+ "pet_size_label": "Taille",
321
+ "pet_speed_label": "Vitesse",
322
+ "pet_behaviour_label": "Comportement",
323
+ "pet_behaviour_floor": "Marcher au sol",
324
+ "pet_behaviour_wander": "Errer librement",
325
+ "pet_behaviour_chase": "Suivre le curseur",
326
+ "pet_climb_label": "Grimper aux murs",
327
+ "pet_clone": "Cloner",
328
+ "pet_feed": "Nourrir",
329
+ "pet_status": "État",
330
+ "pet_status_level": "Niv.",
331
+ "pet_mood_happy": "heureuse",
332
+ "pet_mood_content": "contente",
333
+ "pet_mood_sad": "triste",
334
+ "pet_hunger_full": "repue",
335
+ "pet_hunger_ok": "ça va",
336
+ "pet_hunger_hungry": "affamée",
337
+ "pet_chatter_hungry": "J'ai faim…|Tu as un en-cas ?|Tu me nourris, s'il te plaît ?|Mon ventre gargouille~",
338
+ "pet_chatter_fed": "Miam !|Merci à toi !|Délicieux !|Miam miam (^o^)",
339
+ "pet_chatter_fed_feast": "Quel festin !|Je suis repue !|C'était une grosse portion !|Je ferais bien une sieste…",
340
+ "pet_chatter_fed_music": "Un goût mélodieux !|Celui-là chante !|Encore !|Mon parfum préféré ♪",
341
+ "pet_chatter_fed_book": "De quoi nourrir l'esprit.|Des mots bien coriaces !|Mmm, une histoire.|J'ai lu chaque bouchée.",
342
+ "pet_chatter_fed_hard": "Trop dur à mâcher !|Aïe, mes dents !|Ce n'est pas de la nourriture !|Beurk (>_<)",
343
+ "pet_chatter_away": "Toujours là ?|Je fais la sieste en t'attendant~|Zzz…|Prends ton temps !",
344
+ "pet_chatter_levelup": "Niveau supérieur !|Je grandis !|On se rapproche !|Youpi, merci !",
345
+ "pet_speech_label": "Lire à voix haute",
346
+ "pet_focus_label": "Minuteur de concentration (min)",
347
+ "pet_focus_start": "Démarrer la concentration",
348
+ "pet_focus_stop": "Arrêter la concentration",
349
+ "pet_chatter_fetch": "Va chercher !|Tout de suite !|Je t'ouvre ça !|Laisse-moi faire !",
350
+ "pet_chatter_focus_start": "C'est parti pour la concentration !|Concentrons-nous !|J'attends ici.|Tu vas y arriver !",
351
+ "pet_chatter_focus_break": "Pause !|Étire-toi un peu !|Repose tes yeux.|Un verre d'eau ?",
352
+ "pet_chatter_focus_back": "On s'y remet !|Deuxième manche !|Continuons.|Prête quand tu l'es.",
353
+ "pet_chatter_focus_done": "Longue pause bien méritée !|Belle séance !|Repose-toi vraiment.|Bravo !",
354
+ "pet_chat_label": "Discussion IA (clé API requise)",
355
+ "pet_chat_hint": "Lit la variable d'environnement ANTHROPIC_API_KEY ; la clé n'est jamais enregistrée.",
356
+ "pet_chat_menu": "Parle-moi…",
357
+ "pet_chat_prompt": "Dis quelque chose :",
358
+ "pet_chat_thinking": "Hmm, laisse-moi réfléchir…",
359
+ "pet_chat_failed": "Je n'arrive pas à rassembler mes idées là.",
360
+ "pet_chatter_costume": "Nouveau look !|Comment tu me trouves ?|Ça me va bien !|J'aime bien celui-là !",
361
+ "pet_chatter_tag": "C'est toi le chat !|Attrapée !|À moi de courir !|Hé, c'est pas juste !",
362
+ "pet_tag_label": "Jouer à chat entre elles",
363
+ "pet_drop_hint": "Astuce : déposez une image ou un pack de mascotte sur la mascotte pour changer son apparence, ou n'importe quel autre fichier pour la nourrir.",
364
+ "pet_set_reminder": "Créer un rappel…",
365
+ "pet_reminder_prompt": "Rappelle-moi de :",
366
+ "pet_reminder_minutes": "Dans combien de minutes ?",
367
+ "pet_choose_pack": "Choisir un pack de mascotte…",
368
+ "pet_choose_sound": "Choisir un son (facultatif)",
369
+ "pet_pack_empty": "Aucune image (walk/idle/sleep/climb/fall/drag) trouvée dans ce dossier.",
370
+ "pet_talk_label": "Bulles de dialogue",
371
+ "pet_sit_label": "S'asseoir sur les fenêtres",
372
+ "pet_volume_label": "Volume",
373
+ "pet_audio_label": "Réagir au son",
374
+ "pet_chatter_morning": "Bonjour !|Debout !|Prête pour la journée ?",
375
+ "pet_chatter_afternoon": "Bon après-midi !|Tu fais une pause ?|Continue comme ça !",
376
+ "pet_chatter_evening": "Bonsoir !|Ta journée s'est bien passée ?|Bientôt fini ?",
377
+ "pet_chatter_night": "Il est tard — va te reposer !|Encore debout ?|Fais de beaux rêves~",
378
+ "pet_chatter_any": "Coucou !|(^_^)|Continue !|Tu vas y arriver !",
379
+ "pet_chatter_happy": "Je suis si heureuse !|Tu es la meilleure !|(^o^)/|La plus belle journée !",
380
+ "pet_chatter_sad": "Je me sens un peu seule…|Tu me caresses ?|(._.)|Ne m'oublie pas~",
381
+ "pet_chatter_meet": "Salut l'amie !|Bonjour !|On joue ?|Quelle bonne surprise de te voir ici !",
382
+ "pet_chatter_battery": "La batterie est faible — tu me branches ?|Peu d'énergie, attention !|On trouve un chargeur ?|Je suis sur la réserve~",
383
+ "pet_start": "Faire apparaître la mascotte",
384
+ "pet_message_box_text": "Image de mascotte introuvable",
385
+ "settings_menu_smart_pause": "Pause intelligente…",
386
+ "settings_menu_app_profiles": "Profils d'application…",
387
+ "settings_menu_reminders": "Rappels…",
388
+ "smart_pause_title": "Pause intelligente",
389
+ "smart_pause_fullscreen": "Mettre en pause quand une application est en plein écran",
390
+ "smart_pause_battery": "Mettre en pause sur batterie",
391
+ "smart_pause_apps_label": "Mettre en pause quand ces applications sont au premier plan :",
392
+ "smart_pause_hint": "Les noms sont comparés sans le dossier ni le .exe : « photoshop » suffit.",
393
+ "app_profile_title": "Profils d'application",
394
+ "app_profile_app_column": "Application",
395
+ "app_profile_preset_column": "Préréglage",
396
+ "app_profile_add": "Ajouter",
397
+ "app_profile_remove": "Retirer",
398
+ "app_profile_hint": "Les préréglages s'enregistrent depuis le menu Préréglages. Sans préréglage enregistré, il n'y a rien à appliquer.",
399
+ "reminder_title": "Rappels",
400
+ "reminder_label_column": "Rappel",
401
+ "reminder_kind_column": "Quand",
402
+ "reminder_value_column": "Minutes / heure",
403
+ "reminder_kind_every": "Toutes les",
404
+ "reminder_kind_at": "À",
405
+ "reminder_add": "Ajouter",
406
+ "reminder_remove": "Retirer",
407
+ "reminder_hint": "Cochez une ligne pour la garder active. « Toutes les » attend des minutes, « À » une heure sur 24 h, par exemple 14:30.",
408
+ "control_center_quality": "Qualité",
409
+ "control_center_quality_high": "Élevée",
410
+ "control_center_quality_balanced": "Équilibrée",
411
+ "control_center_quality_saver": "Économie",
412
+ "wallpaper_quiet_label": "Heures calmes",
413
+ "wallpaper_quiet_folder": "Dossier des heures calmes…",
414
+ "tab_widgets_text": "Widgets",
415
+ "widgets_spectrum_label": "Spectre audio",
416
+ "widgets_spectrum_bars": "Barres",
417
+ "widgets_spectrum_ring": "Anneau",
418
+ "widgets_spectrum_bands": "Bandes",
419
+ "widgets_spectrum_start": "Démarrer le spectre",
420
+ "widgets_spectrum_stop": "Arrêter le spectre",
421
+ "widgets_spectrum_unavailable": "La capture audio n'existe que sous Windows.",
422
+ "widgets_monitor_label": "Moniteur système",
423
+ "widgets_monitor_start": "Démarrer le moniteur",
424
+ "widgets_monitor_stop": "Arrêter le moniteur",
425
+ "widgets_now_playing_start": "Afficher la lecture en cours",
426
+ "widgets_now_playing_stop": "Masquer la lecture en cours",
427
+ "widgets_note_label": "Pense-bête",
428
+ "widgets_note_add": "Nouvelle note",
429
+ "widgets_note_close": "Fermer les notes",
430
+ "widgets_note_restore": "Rouvrir mes notes au démarrage de FrontEngine",
431
+ "widgets_hint": "Le spectre capte le son que jouent vos haut-parleurs afin d'en calculer les fréquences. L'analyse a lieu en mémoire uniquement — rien n'est enregistré ni envoyé — et la capture s'arrête dès que vous arrêtez le spectre.",
432
+ "tab_tools_text": "Outils",
433
+ "tools_measure_label": "Mesurer",
434
+ "tools_measure_color": "Pipette",
435
+ "tools_measure_ruler": "Règle en pixels",
436
+ "tools_measure_angle": "Rapporteur",
437
+ "tools_measure_start": "Commencer à mesurer",
438
+ "tools_measure_stop": "Arrêter de mesurer",
439
+ "tools_color_format": "Copier la couleur en",
440
+ "tools_capture_label": "Capture de zone",
441
+ "tools_capture_start": "Capturer une zone",
442
+ "tools_capture_copy": "Copier la dernière",
443
+ "tools_camera_label": "Caméra",
444
+ "tools_camera_circle": "Cercle",
445
+ "tools_camera_rounded": "Arrondi",
446
+ "tools_camera_rectangle": "Rectangle",
447
+ "tools_camera_mirror": "Miroir",
448
+ "tools_camera_border": "Bordure",
449
+ "tools_camera_start": "Afficher la caméra",
450
+ "tools_camera_stop": "Masquer la caméra",
451
+ "tools_camera_none": "Aucune caméra trouvée",
452
+ "tools_pin_window": "Épingler une fenêtre…",
453
+ "tools_hint": "Cliquez pour mesurer ; le clic droit efface. Ce que vous mesurez est copié dans le presse-papiers. La caméra n'est affichée qu'en local — rien n'est enregistré.",
454
+ "window_pin_title": "Épingler une fenêtre",
455
+ "window_pin_refresh": "Actualiser",
456
+ "window_pin_pin": "Garder au premier plan",
457
+ "window_pin_unpin": "Libérer",
458
+ "window_pin_opacity": "Opacité",
459
+ "window_pin_hint": "L'épinglage modifie l'ordre d'affichage d'une fenêtre et sa transparence. Windows uniquement — les autres systèmes ne le permettent pas.",
460
+ "window_pin_unsupported": "Épingler d'autres fenêtres n'existe que sous Windows.",
461
+ "color_vision_label": "Vision des couleurs",
462
+ "color_vision_protanopia": "Protanopie (rouge)",
463
+ "color_vision_deuteranopia": "Deutéranopie (vert)",
464
+ "color_vision_tritanopia": "Tritanopie (bleu)",
465
+ "color_vision_achromatopsia": "Achromatopsie (aucune)",
466
+ "color_vision_start": "Simuler",
467
+ "color_vision_stop": "Arrêter la simulation",
468
+ "settings_menu_usage": "Temps d'écran…",
469
+ "settings_menu_clipboard": "Historique du presse-papiers…",
470
+ "settings_menu_clipboard_record": "Enregistrer le presse-papiers",
471
+ "usage_title": "Temps d'écran",
472
+ "usage_enable": "Suivre les applications que j'utilise",
473
+ "usage_app_column": "Application",
474
+ "usage_time_column": "Durée",
475
+ "usage_share_column": "Part",
476
+ "usage_total": "Aujourd'hui : {total}",
477
+ "usage_refresh": "Actualiser",
478
+ "usage_clear": "Effacer l'historique",
479
+ "usage_hint": "Ces données restent sur cette machine et ne sont jamais envoyées ailleurs. Les effacer supprime le fichier lui-même.",
480
+ "clipboard_title": "Historique du presse-papiers",
481
+ "clipboard_search": "Rechercher…",
482
+ "clipboard_copy": "Copier",
483
+ "clipboard_pin": "Épingler / détacher",
484
+ "clipboard_remove": "Retirer",
485
+ "clipboard_clear": "Effacer (garder les épinglés)",
486
+ "clipboard_persist": "Conserver cet historique d'une session à l'autre",
487
+ "clipboard_hint": "L'historique reste sur cette machine et n'est jamais envoyé ailleurs. Sauf si vous cochez la case ci-dessus, il n'est gardé qu'en mémoire, car les presse-papiers contiennent souvent des mots de passe.",
488
+ "tools_layout_label": "Disposition des fenêtres",
489
+ "tools_layout_name": "Nom de la disposition",
490
+ "tools_layout_save": "Enregistrer la disposition",
491
+ "tools_layout_restore": "Restaurer",
492
+ "tools_record_label": "Enregistrement de zone",
493
+ "tools_record_start": "Enregistrer une zone",
494
+ "tools_record_stop": "Arrêter l'enregistrement",
495
+ "tools_record_camera": "Incruster la caméra",
496
+ "tools_record_save": "Enregistrer la vidéo",
497
+ "tools_screen_text_label": "Lire du texte",
498
+ "tools_screen_text_extract": "Copier le texte",
499
+ "tools_screen_text_translate": "Traduire",
500
+ "tools_screen_text_ask": "Poser une question",
501
+ "tools_screen_text_input": "Langue, ou votre question",
502
+ "tools_screen_text_start": "Lire une zone",
503
+ "tools_screen_text_empty": "Rien n'est revenu.",
504
+ "screen_text_title": "Texte à l'écran",
505
+ "screen_text_copy": "Copier",
506
+ "screen_text_consent_toggle": "Autoriser l'envoi des captures à Anthropic",
507
+ "screen_text_consent_title": "Envoyer cette capture ?",
508
+ "screen_text_consent_body": "Lire le texte nécessite d'envoyer la zone capturée à l'API d'Anthropic. Elle quitte cette machine, et tout ce qui est visible dans la sélection part avec elle. Votre propre ANTHROPIC_API_KEY est utilisée. Envoyer les captures ?",
509
+ "screen_text_no_key": "Définissez {env} dans votre environnement pour utiliser cette fonction.",
510
+ "screen_text_ready": "Les captures ne sont envoyées à Anthropic que tant que la case ci-dessus est cochée.",
511
+ "control_center_hide_from_capture": "Masquer de la capture",
512
+ "control_center_show_in_capture": "Afficher dans la capture",
513
+ "settings_menu_screen_privacy": "Confidentialité du partage d'écran…",
514
+ "screen_privacy_title": "Confidentialité du partage d'écran",
515
+ "screen_privacy_enable": "Masquer les calques quand l'une de ces applications est ouverte",
516
+ "screen_privacy_apps_label": "Applications de réunion et de capture :",
517
+ "screen_privacy_hint": "La comparaison porte sur les titres de fenêtres, ce qui attrape aussi une réunion tenue dans un onglet de navigateur. Vos calques restent sur votre propre écran — seule la capture est vide. Les caches restent visibles, puisque recouvrir quelque chose est précisément leur raison d'être.",
518
+ "screen_privacy_unsupported": "Masquer les calques de la capture d'écran n'existe que sous Windows.",
519
+ "screen_privacy_toast": "Calques masqués de la capture d'écran",
520
+ "tools_vcam_label": "Caméra virtuelle",
521
+ "tools_vcam_start": "Envoyer une zone",
522
+ "tools_vcam_stop": "Arrêter l'envoi",
523
+ "tools_vcam_ready": "Prête",
524
+ "tools_vcam_sending": "Envoi vers {device}",
525
+ "tools_vcam_failed": "Démarrage impossible : {reason}",
526
+ "tools_vcam_missing": "Installez pyvirtualcam et un pilote de caméra virtuelle",
527
+ "settings_menu_remote": "Télécommande…",
528
+ "remote_title": "Télécommande",
529
+ "remote_enable": "Autoriser mon téléphone à piloter FrontEngine",
530
+ "remote_off": "Désactivée — rien n'est à l'écoute.",
531
+ "remote_copy": "Copier le lien",
532
+ "remote_hint": "Ceci ouvre un port sur cette machine pour votre réseau local. Le lien porte un jeton à usage unique qui change à chaque démarrage, et seuls les boutons de la page peuvent être déclenchés — rien d'autre. C'est du HTTP en clair : quelqu'un d'autre sur le même réseau pourrait lire le jeton et appuyer sur les mêmes boutons. Laissez-la désactivée sur les réseaux auxquels vous ne faites pas confiance.",
533
+ "remote_midi_label": "Contrôleur MIDI",
534
+ "remote_midi_none": "Aucun périphérique MIDI trouvé",
535
+ "remote_midi_learn": "Apprendre",
536
+ "remote_midi_listening": "Actionnez un contrôle…",
537
+ "remote_midi_remove": "Retirer",
538
+ "remote_midi_control_column": "Contrôle",
539
+ "remote_midi_action_column": "Action",
540
+ "settings_menu_signage": "Mode affichage…",
541
+ "signage_title": "Mode affichage",
542
+ "signage_enable": "Faire défiler les préréglages",
543
+ "signage_presets_label": "Préréglages, un par ligne :",
544
+ "signage_interval_label": "Changer toutes les (minutes)",
545
+ "signage_hide_window": "Masquer la fenêtre principale pendant le défilement",
546
+ "signage_hint": "Les préréglages s'enregistrent depuis le menu Préréglages. La rotation reprend au début à la fin de la liste : une machine laissée allumée continue de tourner.",
547
+ "whiteboard_start": "Tableau blanc",
548
+ "whiteboard_stop": "Fermer le tableau blanc",
549
+ "whiteboard_save": "Enregistrer le tableau blanc",
550
+ "pet_audio_speakers": "Haut-parleurs",
551
+ "pet_audio_microphone": "Microphone",
552
+ }