Compare commits

...

279 Commits

Author SHA1 Message Date
aerowolf 00c33908a3
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/zh_Hans/
2024-02-21 11:01:57 +01:00
Сергій 766e9a9795
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/uk/
2024-02-15 14:01:56 +01:00
Salif Mehmed 4f7cbc4d93
Translated using Weblate (Bulgarian)
Currently translated at 37.0% (43 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/bg/
2024-02-07 06:56:10 +01:00
Hosted Weblate c8f815345d
Merge branch 'origin/master' into Weblate. 2024-01-30 15:01:51 +01:00
麋悟BigELK176 a59f3770dc
Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/zh_Hant/
2024-01-30 15:01:49 +01:00
AdamPS 3e89aa4fcf Improvements to "interpret idle as break" #551 (correction) 2023-12-20 20:08:11 +00:00
AdamPS 903d407faf Improvements to "interpret idle as break" #551 2023-11-30 18:04:44 +00:00
Alyssa Rosenzweig 777d48603d
Fix with python3.12 (#544)
imp is deprecated in 3.4 and removed in 3.12. this caused safe eyes to
break on upgrading to fedora 39

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2023-11-30 18:01:58 +00:00
AdamPS cbfc0cc133 Local function names should match #550 2023-11-30 14:57:37 +00:00
AdamPS edb5b70b53 Improvements to health statistics #549 2023-11-29 14:00:29 +00:00
AdamPS dd190d0543 Update comment with list of methods 2023-11-29 14:00:29 +00:00
AdamPS 9d30def057 Display next long break #374 2023-11-29 14:00:29 +00:00
Almaz Mannanov 0cce71070b
Translated using Weblate (Russian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ru/
2023-11-26 00:02:15 +00:00
Hosted Weblate e8bf389da8
Merge branch 'origin/master' into Weblate. 2023-10-31 16:04:52 +00:00
Eryk Michalak e8a254d74e
Translated using Weblate (Polish)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/pl/
2023-10-31 16:04:50 +00:00
Kryštof Jelínek c37e9db6db
Translated using Weblate (Czech)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/cs/
2023-10-31 16:04:49 +00:00
akhil_s 776a8b81de Fix 'initialize_logging' function spelling 2023-10-16 10:17:56 -04:00
Hosted Weblate c4675b743d
Merge branch 'origin/master' into Weblate. 2023-10-13 04:15:40 +00:00
Novak Urosevic a33f317241
Translated using Weblate (Serbian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/sr/
2023-10-13 06:15:38 +02:00
Ilario Gelmetti 5a993a4d60
Fix broken startup symlinks (#531)
* utility: create_startup_entry check link health

* model: init always run create_startup_entry

* utility: initialize_safeeyes don't call create_startup_entry

* utility: add force option to create_startup_entry

* model: do not create autostart, only repair broken

* utility: fix comment
2023-08-18 11:15:30 -04:00
Milan Šalka 068771d5fd
Translated using Weblate (Slovak)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/sk/
2023-08-10 21:53:26 +02:00
Hosted Weblate 20db0432b9
Merge branch 'origin/master' into Weblate. 2023-08-05 20:48:06 +02:00
Salif Mehmed b04d49ed34
Translated using Weblate (Bulgarian)
Currently translated at 7.7% (9 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/bg/
2023-08-05 20:48:05 +02:00
Sebastian Pipping dc0a470c34
Make GitHub Actions check translation files (#534)
* validate_po.py: Fix typo "varialbes"

* validate_po.py: Exit with code 1 on error

* validate_po.py: Process locales in alphabetical order

* validate_po.py: Report on progress

* Make GitHub Actions check translation files
2023-08-03 11:16:06 -04:00
Hosted Weblate e6112a87a9
Merge branch 'origin/master' into Weblate. 2023-07-08 20:48:00 +02:00
Dmitriy Q b838f3c5fe
Translated using Weblate (Russian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ru/
2023-07-08 20:47:58 +02:00
Gobinath ae88ad3386
Merge pull request #529 from slgobinath/master
Release 2.1.6
2023-07-04 20:10:57 -04:00
Gobinath Loganathan bd18d33c90 Prepare v2.1.6 2023-07-04 20:09:53 -04:00
Hosted Weblate 1a9ebfb2db
Merge branch 'origin/master' into Weblate. 2023-07-04 22:53:46 +02:00
Sebastian Pipping f26bcc5af2
Translated using Weblate (German)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/de/
2023-07-04 22:53:44 +02:00
Onur Alp Akin 684d16265a
Reverse-DNS scheme for icons & Broken initialize logic fix & Add appstream (#519)
* Add appstream

* rename platform files reverse-dns format

* rename debian install file reverse-dns format

* rename usages reverse-dns format

* Respect XDG_CONFIG while initializing safeeyes

Instead of using custom variable to define target; Continue respecting XDG specs
https://github.com/slgobinath/SafeEyes/issues/432#issuecomment-883829334

* move appstream under platform

* add flathub badge

* update flathub badge & flatpak installation
2023-05-10 05:45:38 -04:00
Sebastian Pipping 45a633d31f
Display a traceback of plugin loading errors when --debug is given (#506) 2023-04-17 20:06:26 -04:00
Sebastian Pipping 06d8f491c4
Fix support for Python 3.11 (fixes #491) (#505)
Co-authored-by: tibequadorian <tibequadorian@posteo.de>
2023-04-17 20:06:11 -04:00
Ilario Gelmetti 682a027d04
Remove executable permission from safeeyes.desktop (#512) 2023-04-17 20:02:26 -04:00
AHOHNMYC cae19b0f28
Translated using Weblate (Russian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ru/
2023-03-22 17:41:13 +01:00
Yi Yunseok 0874be58c2
Translated using Weblate (Korean)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ko/
2023-02-17 06:35:26 +01:00
Luna Jernberg d1a9f7d0b5
Translated using Weblate (Swedish)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/sv/
2023-02-11 12:39:43 +01:00
Hosted Weblate 339ed40f4a
Merge branch 'origin/master' into Weblate. 2023-02-03 07:02:34 +01:00
Yi Yunseok 7bde5d0368
Translated using Weblate (Korean)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ko/
2023-02-03 07:02:32 +01:00
AdamPS 201e6d2982
Fix incorrectly skipped long breaks #443 (#444)
* Improve error message to include information from the exception

* #347 Take short or long breaks from tray

Correction: get_break() should not alter the break queue.

* Fix incorrectly skipped long breaks
2023-01-24 17:22:51 +00:00
AdamPS 9a76aa4211 #347 Take short or long breaks from tray
Correction: get_break() should not alter the break queue.
2023-01-24 16:49:30 +00:00
AdamPS 788e2b43af Improve error message to include information from the exception 2023-01-23 15:51:52 +00:00
AdamPS d20894a7c4
Merge pull request #504 from slgobinath/feature-long-break-friendly-tray-icon
#347 Take short or long breaks from tray
2023-01-23 15:46:53 +00:00
Gobinath 9e64e65fce Add sub-menu to take any, short or long breaks 2023-01-23 15:28:57 +00:00
Hosted Weblate b90349ab10
Merge branch 'origin/master' into Weblate. 2023-01-07 12:49:30 +01:00
Porrumentzio a158587311
Translated using Weblate (Basque)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/eu/
2023-01-07 12:49:28 +01:00
Gobinath Loganathan 4799518354 Install wheel in dependencies 2023-01-05 19:18:51 -05:00
Gobinath e495bf5652
Merge pull request #501 from slgobinath/master
Release 2.1.5
2023-01-05 19:15:48 -05:00
Gobinath Loganathan e79444c699 Fix GH secret 2023-01-05 19:15:26 -05:00
Gobinath Loganathan 95da9334e0 Update GH workflow to synchronize after release 2023-01-05 19:13:58 -05:00
Gobinath Loganathan 375bd9d737 Bump the version to 2.1.5 2023-01-05 19:11:06 -05:00
Gobinath Loganathan d6a3596faa Add CICD to automatic release 2023-01-05 19:08:29 -05:00
meztihn bcecc016dd DND: Fix window class matching for names with spaces 2023-01-05 19:02:54 -05:00
Dmitriy Q 32cfc401f3
Translated using Weblate (Russian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ru/
2022-12-21 06:47:11 +01:00
Hosted Weblate 9123562d5e
Merge branch 'origin/master' into Weblate. 2022-11-27 00:54:41 +01:00
Minh P 06d4aa5afe
Translated using Weblate (Vietnamese)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/vi/
2022-11-27 00:54:37 +01:00
Gobinath Loganathan 5e844553dd Change release target to Ubuntu lunar 2022-11-20 18:54:43 -05:00
Gobinath Loganathan b89fd61cdf Fix deb build 2022-11-20 17:53:33 -05:00
Gobinath Loganathan 7f17dabbfe Bump version to 2.1.4 2022-11-20 17:22:47 -05:00
Anjan Momi 44e4a0a6ac
README: add alpine package (#486) 2022-10-13 11:56:00 -04:00
Anjan Momi d3594bdb8f
Do not fail if gettext.bindtextdomain not working (#485) 2022-10-13 11:53:26 -04:00
Anjan Momi dd16395471
Check if using wayland via WAYLAND_DISPLAY env variable (#484)
My distro does not install loginctl. I have implemented another easy
condition for wayland.

https://stackoverflow.com/questions/45536141/how-i-can-find-out-if-a-linux-system-uses-wayland-or-x11/45537237#45537237
2022-10-13 11:52:47 -04:00
Gontzal Manuel Pujana Onaindia 29a1e15192
Translated using Weblate (Basque)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/eu/
2022-09-29 00:17:19 +02:00
Dmitriy Q 6ac60ec17c
Translated using Weblate (Russian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ru/
2022-09-08 06:17:43 +02:00
calbasi 2f83647d74
Translated using Weblate (Catalan)
Currently translated at 60.3% (70 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ca/
2022-08-08 23:25:26 +02:00
Danial Behzadi 71df387773
Translated using Weblate (Persian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/fa/
2022-07-07 12:18:56 +02:00
AHOHNMYC 6d66941058
Translated using Weblate (Russian)
Currently translated at 99.1% (115 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ru/
2022-06-01 14:19:39 +02:00
Mohamed Omran 01f247328e
Translated using Weblate (Arabic)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ar/
2022-05-24 19:15:11 +02:00
Mohamed Omran c04a2d2009
Translated using Weblate (Arabic)
Currently translated at 83.6% (97 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ar/
2022-05-23 18:19:42 +02:00
Hosted Weblate 43ed01d3e4
Merge branch 'origin/master' into Weblate. 2022-04-17 18:06:45 +02:00
menom cdcf5d7918
Translated using Weblate (Slovak)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/sk/
2022-04-17 18:06:44 +02:00
Karl-Philipp Richter 292ad62729
Use HTTPS where users potentially open the URL in a browser (#475) 2022-04-01 09:23:36 -04:00
Pavel Borecki ed69ddde36
Translated using Weblate (Czech)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/cs/
2022-03-06 21:59:25 +01:00
Danial Behzadi 4b318e4895
Translated using Weblate (Persian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/fa/
2022-01-21 09:56:33 +01:00
albanobattistella 8483a3db87
Translated using Weblate (Italian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/it/
2022-01-16 13:55:20 +01:00
AO Localisation Lab 08dc41f352
Translated using Weblate (French)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/fr/
2022-01-11 16:55:08 +01:00
albanobattistella 7ef644e6a2
Translated using Weblate (Italian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/it/
2022-01-02 17:53:28 +01:00
Hosted Weblate 5489d952cf
Merge branch 'origin/master' into Weblate. 2021-11-26 02:51:35 +01:00
Gralias 846022b8e2
Translated using Weblate (Vietnamese)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/vi/
2021-11-26 02:51:33 +01:00
Ankit Raj Pandey ed60dd1970
Directly track running swayidle process (#470)
We actually don't need to use a separate variable to track the status of
the spawned swayidle process, since we can poll the status directly from
the process object. This increases robustness against e.g. a killed
swayidle process, which would cause safeeyes to be permanently disabled
until a restart.
2021-11-16 08:52:12 -05:00
Itrych 2e7df5c880
Translated using Weblate (Russian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ru/
2021-11-03 15:15:27 +01:00
Hosted Weblate b673752f8b
Merge branch 'origin/master' into Weblate. 2021-10-10 07:05:36 +02:00
Frank.wu b70241ddda
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/zh_Hans/
2021-10-10 07:05:35 +02:00
Ankit Raj Pandey ad041c7855
Add smartpause support for swaywm (#464)
If the current desktop environment is sway, the smartpause plugin will
spawn a swayidle process that outputs the current time on idle and
resume. Using that info, we can determine:

1. Whether the system is currently idle (idle timestamp > active timestamp)
2. How many seconds the system has been idle (current timestamp - idle timestamp)

Since swayidle uses the KDE idle protocol, it might be possible to
extend this to Wayland KDE as well.
2021-09-29 07:53:08 -04:00
mullerdavid c784000e69
Fix broken tray icon on Debian 11 (#461)
* Tryicon plugin Ayatana library fallback

* Updating debian dependencies

* Updated readme, adding Ayataha Appindicator
2021-09-21 08:20:23 -04:00
Federico Ceratto 8f4b9f2b10
Simplify Debian installation instructions (#460) 2021-09-04 15:37:38 -04:00
Luna Jernberg a257c0993d
Translated using Weblate (Swedish)
Currently translated at 99.1% (115 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/sv/
2021-08-18 02:37:20 +02:00
Tymofii Lytvynenko c61da87600
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/uk/
2021-08-18 02:37:19 +02:00
Tymofii Lytvynenko 583471c9a0
Translated using Weblate (Ukrainian)
Currently translated at 97.4% (113 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/uk/
2021-08-16 00:33:21 +02:00
Yogesh 541f39fdc0
Translated using Weblate (Kannada)
Currently translated at 16.3% (19 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/kn/
2021-07-30 19:35:18 +02:00
Allan Nordhøy 858e8288df
Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.5% (112 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/nb_NO/
2021-07-30 19:35:18 +02:00
Hosted Weblate cbc29334ac
Merge branch 'origin/master' into Weblate. 2021-07-04 09:32:42 +02:00
J. Lavoie 330e343a04
Translated using Weblate (English (United States))
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/en_US/
2021-07-04 09:32:41 +02:00
Gobinath 4638e075ca
Create FUNDING.yml 2021-05-28 08:07:59 -04:00
Gobinath 5c0c92a8f3 Update issue templates 2021-05-26 17:18:27 -04:00
Yaron Shahrabani f26fb07ffc
Translated using Weblate (Hebrew)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/he/
2021-05-23 11:32:10 +02:00
Hosted Weblate 54eab4eba0
Merge branch 'origin/master' into Weblate. 2021-05-21 17:32:51 +02:00
Jorge Maldonado Ventura e65426ece4
Translated using Weblate (Esperanto)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/eo/
2021-05-21 17:32:49 +02:00
Porrumentzio 90458a8ce4
Add parameters on Basque translation (#447)
fixes #441
2021-05-17 07:22:32 -04:00
Gobinath b72ccaa2ea Add a script to validate po files before release 2021-05-10 07:26:30 -04:00
Gobinath 736f15e907 Release v2.1.3 2021-04-19 21:32:50 -04:00
Cyrinux 6e07de7c22
donotdisturb: Add wayland fullscreen detection (#427)
* [wayland] detect fullscreen with wlrctl

Will work with the next sway release or current master branch.

* Add dependency_checker
2021-04-18 15:47:53 -04:00
José Vieira f1cf3c01b7
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/pt_BR/
2021-04-18 12:26:52 +02:00
José Vieira 2959a2acac
Translated using Weblate (Portuguese)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/pt/
2021-04-18 12:26:50 +02:00
Gobinath fbff54462c Add Portuguese (Brazil) language 2021-04-15 20:27:15 -04:00
Porrumentzio 8b820a855a
Translated using Weblate (Basque)
Currently translated at 99.1% (115 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/eu/
2021-04-15 14:26:51 +02:00
Porrumentzio 0b66e17648
Translated using Weblate (Basque)
Currently translated at 21.5% (25 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/eu/
2021-04-04 19:26:46 +02:00
Gobinath 4b72a024cc Add Basque language support 2021-03-31 17:39:01 -04:00
Adolfo Jayme Barrientos 9b3e7b247d
Translated using Weblate (Spanish)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/es/
2021-03-25 09:29:35 +01:00
jan madsen 7e53d7d68b
Translated using Weblate (Danish)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/da/
2021-03-16 21:02:57 +01:00
Dmitriy Q 727968d56d
Translated using Weblate (Russian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ru/
2021-03-11 13:02:49 +01:00
Eric d866130058
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/zh_Hans/
2021-03-07 10:50:30 +01:00
J. Lavoie 28160343f8
Translated using Weblate (German)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/de/
2021-03-07 10:50:30 +01:00
Lee Yunseok 79765dd310
Translated using Weblate (Korean)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ko/
2021-02-24 08:50:28 +01:00
ssantos a289786992
Translated using Weblate (Portuguese)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/pt/
2021-02-24 08:50:28 +01:00
bortox 075737926a
Translated using Weblate (Italian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/it/
2021-02-24 08:50:28 +01:00
Hosted Weblate a69d67456c
Merge branch 'origin/master' into Weblate. 2021-02-18 01:50:28 +01:00
Reza Almanda e31301c80d
Translated using Weblate (Indonesian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/id/
2021-02-18 01:50:25 +01:00
Kristjan Räts 89e46ec3ee
Translated using Weblate (Estonian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/et/
2021-02-18 01:50:24 +01:00
Gobinath bd4be002e1 Fix error if there are no long breaks 2021-02-17 09:57:41 -05:00
Hosted Weblate d62d44553c
Merge branch 'origin/master' into Weblate. 2021-02-15 01:50:31 +01:00
Reza Almanda 09f4bfbef4
Translated using Weblate (Indonesian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/id/
2021-02-15 01:50:29 +01:00
Gobinath 8f58871b72 Release v2.1.2 2021-02-13 18:43:46 -05:00
Hosted Weblate 25222dbc59
Merge branch 'origin/master' into Weblate. 2021-02-12 18:50:28 +01:00
albanobattistella 08245a4753
Translated using Weblate (Italian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/it/
2021-02-12 18:50:26 +01:00
Gobinath 93d72cec72 Fix replacing breaks with config version upgrade 2021-02-11 08:56:19 -05:00
Jorge Maldonado Ventura 8ad67f88f8
Translated using Weblate (Esperanto)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/eo/
2021-02-10 16:50:28 +01:00
Moo f1d9462a5b
Translated using Weblate (Lithuanian)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/lt/
2021-02-10 16:50:28 +01:00
Allan Nordhøy 6e051d8843
Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.5% (112 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/nb_NO/
2021-02-10 16:50:28 +01:00
Oğuz Ersen 87c0492270
Translated using Weblate (Turkish)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/tr/
2021-02-10 16:50:27 +01:00
Heimen Stoffels 3aca329b74
Translated using Weblate (Dutch)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/nl/
2021-02-10 16:50:27 +01:00
AO Localisation Lab 6eda942abd
Translated using Weblate (French)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/fr/
2021-02-10 16:50:27 +01:00
Jorge Maldonado Ventura a0dc12546e
Translated using Weblate (Spanish)
Currently translated at 100.0% (116 of 116 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/es/
2021-02-10 16:50:27 +01:00
Gobinath 2eaa4f812a Update po files with Show breaks in random order 2021-02-08 14:33:41 -05:00
ACactUs f9665b03ae
Add random order of breaks (#418)
* Added glade switch

* Added random order setting, reimplemented queue

* new_cycle fix

* build queue randomly

* Glade. Moved switch up

* added .pot translation

* trigger new_cycle each long break interval

* fix long break time

* shuffle queue when all breaks taken
2021-02-08 11:54:56 -05:00
Gobinath e71a10bf53 Fix description translation 2021-02-08 11:24:19 -05:00
Gobinath c1de214ef1 Fix postponement duration 2021-02-08 11:19:01 -05:00
Kristjan Räts 509e214ce8
Translated using Weblate (Estonian)
Currently translated at 100.0% (115 of 115 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/et/
2021-02-08 11:50:25 +01:00
Lee Yunseok f7b9259495
Translated using Weblate (Korean)
Currently translated at 100.0% (115 of 115 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ko/
2021-01-31 15:41:59 +01:00
Moo adb7f34cce
Translated using Weblate (Lithuanian)
Currently translated at 100.0% (115 of 115 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/lt/
2021-01-31 15:41:59 +01:00
Hosted Weblate 147f4aaeb1
Merge branch 'origin/master' into Weblate. 2021-01-27 10:32:16 +01:00
Dmitriy Q a981f15003
Translated using Weblate (Ukrainian)
Currently translated at 98.2% (113 of 115 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/uk/
2021-01-27 10:32:13 +01:00
Dmitriy Q e7cc545433
Translated using Weblate (Russian)
Currently translated at 100.0% (115 of 115 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ru/
2021-01-27 10:32:13 +01:00
freddii 7d582c2720
Fix typos in comments (#419) 2021-01-26 22:55:59 -05:00
michaelskyf 53a66a9aa1
Add window title for break screen (#413)
* Add support for DWM's rules
2021-01-18 08:10:18 -05:00
AO Localisation Lab 1ed5f05f25
Translated using Weblate (French)
Currently translated at 100.0% (115 of 115 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/fr/
2021-01-12 15:32:06 +01:00
Gobinath 229c432afb Add Serbian translation 2021-01-10 21:48:04 -05:00
Gobinath 6ae4c95315 Refactor the stats reset interval label 2021-01-10 21:43:36 -05:00
Gobinath e90d71f9db Create startup entry only at the first time or if Safe Eyes is reset 2021-01-10 21:39:39 -05:00
Gobinath a69debf8ff Fix next break being postponed forever 2021-01-10 21:32:46 -05:00
Allan Nordhøy 5b02f0e3d8
Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.5% (111 of 115 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/nb_NO/
2021-01-10 08:32:05 +01:00
Hosted Weblate 38f6d9881d
Merge branch 'origin/master' into Weblate. 2021-01-06 14:14:37 +01:00
麋悟BigELK176 eb5ff36d7e
Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (115 of 115 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/zh_Hant/
2021-01-06 14:14:35 +01:00
AO Localisation Lab 086e6e2182
Translated using Weblate (French)
Currently translated at 100.0% (115 of 115 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/fr/
2021-01-06 14:14:35 +01:00
Gobinath a51ff8bff0
Fix icons and desktop file installation (#408) 2020-12-31 08:34:27 -05:00
Gobinath 41464e4ebc Release v2.1.1 2020-12-25 19:28:38 -05:00
Gobinath 12b2b0b2a4 Create desktop entries from the code 2020-12-25 19:22:57 -05:00
Gobinath 40349dc6aa Change Python 3.4.0 to 3.5.0 2020-12-25 12:12:07 -05:00
Eric 0600b347bc
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (115 of 115 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/zh_Hans/
2020-12-25 18:09:04 +01:00
Jorge Maldonado Ventura e4cde050e9
Translated using Weblate (Esperanto)
Currently translated at 100.0% (115 of 115 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/eo/
2020-12-24 14:29:18 +01:00
Jorge Maldonado Ventura ce63892f75
Translated using Weblate (Spanish)
Currently translated at 100.0% (115 of 115 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/es/
2020-12-24 14:29:17 +01:00
Yogesh d7df23ee13
Translated using Weblate (Kannada)
Currently translated at 6.0% (7 of 115 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/kn/
2020-12-23 12:29:12 +01:00
jan madsen 3c4c4f7b26
Translated using Weblate (Danish)
Currently translated at 98.2% (113 of 115 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/da/
2020-12-23 12:29:12 +01:00
Muhammad Hegab b7bcf72e5d
Translated using Weblate (Arabic)
Currently translated at 76.5% (88 of 115 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ar/
2020-12-23 12:29:12 +01:00
Oğuz Ersen 389323f7f2
Translated using Weblate (Turkish)
Currently translated at 100.0% (115 of 115 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/tr/
2020-12-23 12:29:12 +01:00
Heimen Stoffels 8968619c22
Translated using Weblate (Dutch)
Currently translated at 100.0% (115 of 115 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/nl/
2020-12-23 12:29:11 +01:00
AO Localisation Lab e4b675fbf1
Translated using Weblate (French)
Currently translated at 99.1% (114 of 115 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/fr/
2020-12-23 12:29:11 +01:00
Gobinath 80bf5919a8 Add python3-croniter dependency to debian 2020-12-20 10:07:55 -05:00
Gobinath f1fbbbbc88 Add debug logs to Health Stats plugin 2020-12-20 10:06:34 -05:00
Gobinath 25f4aa626f Add cron expression to reset health stats 2020-12-20 10:06:34 -05:00
Gobinath 3295ec4473 Update release badge 2020-12-20 10:00:50 -05:00
Gobinath 7f5a840f9d Add AUR badge 2020-12-20 09:34:51 -05:00
Gobinath 56ebbf900b Add Awesome Humane Tech badge 2020-12-20 09:28:49 -05:00
Serhii Khoma 4939d1ff6c
fix(#402): fix config files cannot be written if copied from /nix/store (#403) 2020-12-20 09:25:30 -05:00
Gobinath a29d027852 Support Python 3.8 and 3.9 and release v2.1.0 2020-12-17 17:37:53 -05:00
Hosted Weblate 9c7e761de5
Merge branch 'origin/master' into Weblate. 2020-12-10 20:29:13 +01:00
ssantos 507cfc9376
Translated using Weblate (Portuguese)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/pt/
2020-12-10 20:29:11 +01:00
Muazam Kamal 08001f9cab
Fix restarting/crashing Gnome and switching to new workspace in Elementary OS (#393) 2020-11-15 16:11:16 -05:00
AdamPS d3bcb9de73
Smart Pause count as long break #373 - correction to original fix (#388)
Co-authored-by: AdamPS <AdamPS@2650563.no-reply.drupal.org>
2020-11-01 20:21:22 -05:00
Gobinath ebe6f1aafb Fix idle start time calculation 2020-10-29 08:49:40 -04:00
Gobinath 2736321048
Reset breaks after being idle longer than a long break duration (#386) 2020-10-25 08:44:29 -04:00
Hosted Weblate f0daa0ee96
Merge branch 'origin/master' into Weblate. 2020-10-23 19:20:30 +02:00
mohammadbagher fakouri 10f906d0ed
Translated using Weblate (Persian)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/fa/
2020-10-23 19:20:28 +02:00
albanobattistella ba1224a11e
Add IT comment to safeeyes.desktop (#380) 2020-10-19 17:34:15 -04:00
Eric 3997f30302
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/zh_Hans/
2020-10-18 09:26:51 +02:00
Localisation Lab 0b512e19a4
Translated using Weblate (French)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/fr/
2020-10-16 05:26:51 +02:00
Hosted Weblate 979598e00c
Merge branch 'origin/master' into Weblate. 2020-10-13 17:27:08 +02:00
Yaron Shahrabani f286fbf4e1
Translated using Weblate (Hebrew)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/he/
2020-10-13 17:27:05 +02:00
ssantos b5d927d8df
Translated using Weblate (Portuguese)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/pt/
2020-10-13 17:27:04 +02:00
Chris Coutinho 448e11fe7d
Fix UnboundLocalError in smartpause plugin (#378)
* Add UnboundLocalError check in smartpause plugin

Running this package for the first time locally, I see the following error in my gnome logs:

```
Sep 28 10:31:53 x1carbon safeeyes.desktop[13687]: Exception in thread WorkThread:
Sep 28 10:31:53 x1carbon safeeyes.desktop[13687]: Traceback (most recent call last):
Sep 28 10:31:53 x1carbon safeeyes.desktop[13687]:   File "/usr/lib64/python3.8/threading.py", line 932, in _bootstrap_inner
Sep 28 10:31:53 x1carbon safeeyes.desktop[13687]:     self.run()
Sep 28 10:31:53 x1carbon safeeyes.desktop[13687]:   File "/usr/lib64/python3.8/threading.py", line 870, in run
Sep 28 10:31:53 x1carbon safeeyes.desktop[13687]:     self._target(*self._args, **self._kwargs)
Sep 28 10:31:53 x1carbon safeeyes.desktop[13687]:   File "/usr/lib/python3.8/site-packages/safeeyes/plugins/smartpause/plugin.py", line 163, in __start_idle_monitor
Sep 28 10:31:53 x1carbon safeeyes.desktop[13687]:     if next_break is not None:
Sep 28 10:31:53 x1carbon safeeyes.desktop[13687]: UnboundLocalError: local variable next_break referenced before assignment
```

This is a quick fix to solve that error

* Set next_break to None before while loop
2020-10-03 07:58:31 -04:00
Ngô Ngọc Đức Huy 2b0af6e5e2
Add installation instruction for openSUSE Tumbleweed, resolve #376 (#377)
* Add installation instruction for openSUSE Tumbleweed

* Remove dependencies that will be resolved by zypper
2020-09-29 20:19:59 -04:00
Mattias Münster 51d1b6cd4b
Translated using Weblate (Swedish)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/sv/
2020-09-28 09:40:58 +02:00
Radhika Bhagwan Jadhav a3b957d3ae
Translated using Weblate (Marathi)
Currently translated at 16.6% (19 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/mr/
2020-09-07 12:36:08 +02:00
mohammadA ddf573320a
Translated using Weblate (Arabic)
Currently translated at 78.0% (89 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ar/
2020-08-30 21:37:21 +02:00
openSUSE Lietuviškai e796f009df
Translated using Weblate (Lithuanian)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/lt/
2020-08-30 21:37:20 +02:00
marklin0913da248e4cdada422a 55c4c83633
Translated using Weblate (Chinese (Traditional))
Currently translated at 64.9% (74 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/zh_Hant/
2020-08-30 21:37:20 +02:00
Luna Jernberg 0462a41b4f
Translated using Weblate (Swedish)
Currently translated at 98.2% (112 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/sv/
2020-08-20 18:26:12 +02:00
ssantos e3e49c47d0
Translated using Weblate (Portuguese)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/pt/
2020-08-15 08:32:49 +02:00
Prachi Joshi 0d3f2fe0c5
Translated using Weblate (Marathi)
Currently translated at 8.7% (10 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/mr/
2020-07-24 19:41:53 +02:00
Hosted Weblate 75c5bbbf04
Merge branch 'origin/master' into Weblate. 2020-07-14 18:41:51 +02:00
ssantos f656a85084
Translated using Weblate (Portuguese)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/pt/
2020-07-14 18:41:49 +02:00
Asif Talybov a831b5239f
Fix typo in readme (#368) 2020-07-10 08:20:17 -04:00
Gobinath 33f744f21c Fix UnknownLocaleError thrown from babel 2020-07-08 18:35:51 -04:00
Gobinath 0953abe855 Fix the error NoneType added with timedelta 2020-07-08 18:29:36 -04:00
Adolfo Jayme Barrientos c06375a62f
Translated using Weblate (Spanish)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/es/
2020-06-26 13:41:45 +02:00
Aanand Kainth 1b6860df43
Translated using Weblate (English (United States))
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/en_US/
2020-06-17 20:41:43 +02:00
Gobinath fb1042540f Add Kannada locale support 2020-06-10 17:13:52 -04:00
Hosted Weblate 6d97187e00
Merge branch 'origin/master' into Weblate. 2020-05-28 20:41:39 +02:00
Oğuz Ersen bb4190b53f
Translated using Weblate (Turkish)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/tr/
2020-05-28 20:41:37 +02:00
Gobinath 40dc69883f Resize break screen before and after present 2020-05-15 20:15:18 -04:00
Gobinath ab8b59a76f Update install in venv instructions 2020-05-14 19:08:23 -04:00
Eric 2f7729a4d8
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/zh_Hans/
2020-05-14 02:41:32 +02:00
Anonymous 1c939c58ac
Translated using Weblate (German)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/de/
2020-05-03 11:11:53 +02:00
Hosted Weblate 97ef213482
Merge branch 'origin/master' into Weblate. 2020-05-02 11:01:53 +02:00
Martin Beer 6717cd2128
Translated using Weblate (German)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/de/
2020-05-02 11:01:53 +02:00
Anonymous 188aa9b5cf
Translated using Weblate (German)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/de/
2020-05-02 11:01:51 +02:00
Martin Beer 8e8227a8f2
Translated using Weblate (German)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/de/
2020-05-02 11:01:51 +02:00
Gobinath 9128e8b1fb Refactor the plugin_manager.py 2020-04-15 17:52:14 -04:00
Hosted Weblate fbaed596aa
Merge branch 'origin/master' into Weblate. 2020-04-13 10:11:18 +02:00
Kristjan Räts 238560d282
Translated using Weblate (Estonian)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/et/
2020-04-13 10:11:16 +02:00
Dmitry Svobodiannikov 9a92edd107
Fix menu locked only during pre break notification issue #362 2020-04-12 08:39:24 -04:00
Manuela Silva 7ae840997d
Translated using Weblate (Portuguese)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/pt/
2020-04-07 19:14:15 +02:00
anonymous 5c85dd8012
Translated using Weblate (Portuguese)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/pt/
2020-04-07 16:36:41 +02:00
Manuela Silva ca63bef5f7
Translated using Weblate (Portuguese)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/pt/
2020-04-07 16:36:41 +02:00
Michal Biesiada 3866d64dd2
Translated using Weblate (Polish)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/pl/
2020-04-03 12:36:46 +02:00
Hosted Weblate cbf7677ebe
Merge branch 'origin/master' into Weblate. 2020-03-30 17:07:31 +02:00
José Vieira dbdebf2aa0
Translated using Weblate (Portuguese)
Currently translated at 98.2% (112 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/pt/
2020-03-30 17:07:31 +02:00
anonymous 1b733073fa
Translated using Weblate (Portuguese)
Currently translated at 98.2% (112 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/pt/
2020-03-30 17:07:29 +02:00
Gobinath 5c554fffc1 Refactor modules and classes 2020-03-18 08:33:11 -04:00
Riceball LEE 9bcd0122ef
Translated using Weblate (Chinese (Simplified))
Currently translated at 98.2% (112 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/zh_Hans/
2020-03-08 14:32:57 +01:00
649756477994 06b1f28998
Translated using Weblate (Chinese (Traditional))
Currently translated at 35.9% (41 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/zh_Hant/
2020-03-03 04:33:09 +01:00
Jorge Maldonado Ventura b7b80fba18
Translated using Weblate (Esperanto)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/eo/
2020-03-02 00:33:03 +01:00
riesp 23bfb4947e
Translated using Weblate (Spanish)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/es/
2020-02-23 12:33:03 +01:00
Lee Yunseok dbc1aa96d3
Translated using Weblate (Korean)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ko/
2020-02-20 06:33:02 +01:00
Gobinath 4d8b49ee92 Add Korean locale support 2020-02-16 20:12:43 -05:00
riesp 039614c842
Translated using Weblate (Spanish)
Currently translated at 99.1% (113 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/es/
2020-02-17 02:10:08 +01:00
Gobinath 08cb1a25ca Add Marathi locale support 2020-02-10 23:16:29 -05:00
Moo ae803177ae
Translated using Weblate (Lithuanian)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/lt/
2020-01-31 23:50:20 +01:00
Dmitriy Bogdanov 84529901dd
Translated using Weblate (Russian)
Currently translated at 96.5% (110 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ru/
2020-01-22 11:21:34 +01:00
Jorge Maldonado Ventura c9889088d0
Translated using Weblate (Esperanto)
Currently translated at 58.8% (67 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/eo/
2019-12-31 18:21:19 +01:00
Jorge Maldonado Ventura 701e17d15e Add Esperanto translation (#354)
* Add Esperanto translation

* Some progress with the Esperanto translation
2019-12-28 10:18:24 -05:00
Heimen Stoffels dbb320edb7
Translated using Weblate (Dutch)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/nl/
2019-12-18 15:21:11 +01:00
Gobinath b4114f4f6d Improve RPC message 2019-12-16 20:46:37 -05:00
Allan Nordhøy 33715f74a6 Spelling: RPC server (#352) 2019-12-16 20:39:06 -05:00
Tymofij Lytvynenko 7b4cba6a3d
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/uk/
2019-12-10 15:22:46 +01:00
Allan Nordhøy a003ade51e
Translated using Weblate (Norwegian Bokmål)
Currently translated at 97.4% (111 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/nb_NO/
2019-12-03 01:05:26 +01:00
Hosted Weblate 3e0dddcbba
Merge branch 'origin/master' into Weblate. 2019-11-26 17:05:04 +01:00
LocLab fr 9f80a7ee64
Translated using Weblate (French)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/fr/
2019-11-26 17:05:02 +01:00
Pavel Borecki 75d131fbed
Translated using Weblate (Czech)
Currently translated at 100.0% (114 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/cs/
2019-11-26 17:05:02 +01:00
jan madsen dfea842f30
Translated using Weblate (Danish)
Currently translated at 99.1% (113 of 114 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/da/
2019-11-26 17:05:01 +01:00
Gobinath 9c4982a949 Add scrollbar to settings dialog 2019-11-25 06:14:00 -05:00
Gobinath b079f45e96 Update translation files 2019-11-24 20:45:31 -05:00
Gobinath 020dea888c Add option to disable RPC server 2019-11-24 20:39:28 -05:00
Jorge Maldonado Ventura ebd92a3a43
Translated using Weblate (Spanish)
Currently translated at 100.0% (111 of 111 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/es/
2019-11-11 12:04:17 +01:00
Mattias Münster 75afe7eafd
Translated using Weblate (Swedish)
Currently translated at 100.0% (111 of 111 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/sv/
2019-10-24 18:53:15 +02:00
Gobinath ccef830267 Fix translation in reset confirmation 2019-10-18 21:34:50 -04:00
Gobinath 9bb074b078 Update installation instructions 2019-10-18 21:25:57 -04:00
Mattias Münster eafdd46ebb
Translated using Weblate (Swedish)
Currently translated at 64.0% (71 of 111 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/sv/
2019-10-17 20:52:54 +02:00
Hosted Weblate fe02945466
Merge branch 'origin/master' into Weblate. 2019-10-12 11:52:41 +02:00
Muhammad Fauzi 74b16e2f1f
Translated using Weblate (Indonesian)
Currently translated at 100.0% (111 of 111 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/id/
2019-10-12 11:52:39 +02:00
IArny b7a7fcf386 Installing on Fedora Silverblue (#341)
* Update README.md

We also need cairo-devel package on Fedora

* Update README.md

also need python3-devel gobject-introspection-devel cairo-gobject-devel
2019-10-09 05:47:27 -04:00
warkadiusz 9f75635eac
Translated using Weblate (Polish)
Currently translated at 100.0% (111 of 111 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/pl/
2019-09-05 14:24:39 +02:00
Hosted Weblate b4134be768
Merge branch 'origin/master' into Weblate. 2019-08-06 19:23:30 +02:00
Andreas Kleinert cda4af1ff8
Translated using Weblate (German)
Currently translated at 100.0% (111 of 111 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/de/
2019-08-06 19:23:27 +02:00
Dennis Schridde 1e3786667c Fix installation into user directory (#334)
Allows `pip install --user SafeEyes` or `python setup.py install --user` to work.
2019-07-30 19:19:55 -04:00
Gobinath 098f320aa1 Optimize smart pause in wayland feature 2019-07-13 22:08:15 -04:00
Filip Kilibarda d4e732a7f0 Added idle time support for gnome/wayland (#332)
* Added idle time support for gnome/wayland

* Removed is_gnome, using Utility.DESKTOP_ENVIRONMENT instead
2019-07-13 19:08:41 -04:00
Hosted Weblate 32adc59f00
Merge branch 'origin/master' into Weblate. 2019-07-01 14:02:00 +02:00
mjmoreira c191bc9d64
Translated using Weblate (Portuguese)
Currently translated at 100.0% (111 of 111 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/pt/
2019-07-01 14:01:58 +02:00
Gobinath 77770313cb Separate keyboard shortcuts from strict mode 2019-06-24 19:56:11 -04:00
Andrew Jong 6ea693e5fe Decouple strict breaks and postponing breaks. (#326)
Fix #316
2019-06-24 19:44:34 -04:00
ssantos f05bb53f25
Translated using Weblate (Portuguese)
Currently translated at 100.0% (111 of 111 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/pt/
2019-06-18 21:04:39 +02:00
Gobinath de0e9361f9 Add Hebrew language 2019-05-27 19:16:08 -04:00
Kristjan Räts 8644f00aab
Translated using Weblate (Estonian)
Currently translated at 100.0% (111 of 111 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/et/
2019-04-16 21:06:11 +02:00
___ a393d500f6
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (111 of 111 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/uk/
2019-04-13 15:04:57 +02:00
Ruhollah 436cc8ed3a
Translated using Weblate (Persian)
Currently translated at 20.7% (23 of 111 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/fa/
2019-04-09 22:05:13 +02:00
Hosted Weblate 04ae3932d0
Merge branch 'origin/master' into Weblate. 2019-04-05 07:05:10 +02:00
Georgiy 421284eb00
Translated using Weblate (Russian)
Currently translated at 96.4% (107 of 111 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/ru/
2019-04-05 07:05:08 +02:00
aerowolf 58276f3153
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (111 of 111 strings)

Translation: Safe Eyes/Translations
Translate-URL: https://hosted.weblate.org/projects/safe-eyes/translations/zh_Hans/
2019-04-05 07:05:07 +02:00
105 changed files with 8586 additions and 2592 deletions

12
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,12 @@
# These are supported funding model platforms
github: slgobinath
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: 'https://www.paypal.com/paypalme/slgobinath'

32
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,32 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Desktop (please complete the following information):**
- OS: [e.g. Ubuntu 20.04, Manjaro]
- Desktop Env [e.g. Gnome, KDE]
- Version [e.g. 2.0.3]
**Debug Log**
Run the Safe Eyes using `safeeyes --debug` command attach the ~/safeeyes.log` file.
**Screenshots**
If applicable, add screenshots to help explain your problem.

View File

@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: feature
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@ -0,0 +1,20 @@
---
name: Plugin request
about: Suggest an idea for a plugin
title: ''
labels: plugin
assignees: ''
---
**Is your plugin request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the plugin you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

68
.github/workflows/release.yml vendored Normal file
View File

@ -0,0 +1,68 @@
name: Release
on:
push:
branches: [ release ]
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
token: ${{ secrets.GH_API_SECRET }}
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build
pip install wheel
- name: Get Current Version
run: |
project_version=$(python3 setup.py --version)
echo "project_version=$project_version" >> $GITHUB_OUTPUT
id: get_current_version
- name: Create Tag
uses: mathieudutour/github-tag-action@v6.1
with:
custom_tag: "v${{steps.get_current_version.outputs.project_version}}"
github_token: ${{ secrets.GH_API_SECRET }}
- name: Build Changelog
id: build_changelog
uses: mikepenz/release-changelog-builder-action@v3.4.0
env:
GITHUB_TOKEN: ${{ secrets.GH_API_SECRET }}
- name: Create Release
uses: softprops/action-gh-release@v1
with:
tag_name: 'v${{steps.get_current_version.outputs.project_version}}'
body: ${{steps.build_changelog.outputs.changelog}}
token: ${{ secrets.GH_API_SECRET }}
- name: Build Python Package
run: rm -Rf build *.egg-info/ && python3 setup.py sdist bdist_wheel
- name: Publish to PyPi
uses: pypa/gh-action-pypi-publish@v1.6.4
with:
password: ${{ secrets.PYPI_API_TOKEN }}
- name: Sync Release with Master
run: |
git fetch origin
git checkout release
git pull origin release
git checkout master
git pull origin master
git merge release --ff-only
git push origin master

31
.github/workflows/translations.yml vendored Normal file
View File

@ -0,0 +1,31 @@
name: Check translations
# Drop permissions to minimum for security
permissions:
contents: read
on:
pull_request:
push:
workflow_dispatch:
jobs:
check_translations:
name: Check translations
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.11
uses: actions/setup-python@v4
with:
python-version: 3.11
- name: Install runtime dependencies
run: |
python3 -m pip install --upgrade pip setuptools wheel
python3 -m pip install polib
- name: Check translations
run: |
python3 validate_po.py

14
.gitignore vendored
View File

@ -101,4 +101,16 @@ ENV/
safeeyes/config/locale/*/LC_MESSAGES/safeeyes.po~
node_modules/
node_modules/
# PyCharm
.idea
# Debian Build
.pybuild/
debian/safeeyes
debian/.debhelper
debian/files
debian/safeeyes.substvars
debian/safeeyes.prerm.debhelper
debian/safeeyes.postinst.debhelper

View File

@ -1,7 +1,7 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
<https://www.gnu.org/philosophy/why-not-lgpl.html>.

115
README.md
View File

@ -1,16 +1,19 @@
# Safe Eyes
[![GitHub version](https://badge.fury.io/gh/slgobinath%2FSafeEyes.svg)](https://badge.fury.io/gh/slgobinath%2FSafeEyes)
[![Release](https://img.shields.io/github/v/release/slgobinath/SafeEyes)](https://github.com/slgobinath/SafeEyes/releases)
[![PyPI version](https://badge.fury.io/py/safeeyes.svg)](https://badge.fury.io/py/safeeyes)
[![Debian](https://badges.debian.net/badges/debian/unstable/safeeyes/version.svg)](https://packages.debian.org/unstable/safeeyes)
[![AUR](https://img.shields.io/aur/version/safeeyes)](https://aur.archlinux.org/packages/safeeyes)
[![Flathub](https://img.shields.io/flathub/v/io.github.slgobinath.SafeEyes)](https://flathub.org/apps/details/io.github.slgobinath.SafeEyes)
[![Translation status](https://hosted.weblate.org/widgets/safe-eyes/-/translations/svg-badge.svg)](https://hosted.weblate.org/engage/safe-eyes/?utm_source=widget)
[![Awesome Humane Tech](https://raw.githubusercontent.com/humanetech-community/awesome-humane-tech/main/humane-tech-badge.svg?sanitize=true)](https://github.com/humanetech-community/awesome-humane-tech)
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/slgobinath)
<!-- [![Badge](https://badges.debian.net/badges/debian/unstable/safeeyes/version.svg)](https://packages.debian.org/unstable/safeeyes) -->
Protect your eyes from eye strain using this simple and beautiful, yet extensible break reminder. A Free and Open Source Linux alternative to EyeLeo.
Protect your eyes from eye strain using this simple and beautiful, yet extensible break reminder.
Visit the official site: http://slgobinath.github.io/SafeEyes/ for more details.
Visit the official site: https://slgobinath.github.io/SafeEyes/ for more details.
## Safe Eyes command-line arguements
## Safe Eyes command-line arguments
```text
usage: safeeyes [-h] [-a | -d | -e | -q | -s | -t] [--debug] [--version]
@ -46,7 +49,7 @@ sudo apt install safeeyes
### Arch
```bash
yaourt -S safeeyes
yay -S safeeyes
```
### Gentoo
@ -57,14 +60,6 @@ sudo emerge -av x11-misc/safeeyes
### Debian
```bash
sudo apt-get install gir1.2-appindicator3-0.1 gir1.2-notify-0.7 python3-psutil python3-xlib xprintidle python3-pip
sudo pip3 install safeeyes
sudo update-icon-caches /usr/share/icons/hicolor
```
People using unstable/testing Debian can install Safe Eyes from the official repository using the following command:
```bash
sudo apt-get install safeeyes
```
@ -72,20 +67,40 @@ sudo apt-get install safeeyes
### Fedora
```bash
sudo dnf install libappindicator-gtk3 python3-psutil
sudo dnf install libappindicator-gtk3 python3-psutil cairo-devel python3-devel gobject-introspection-devel cairo-gobject-devel
sudo pip3 install safeeyes
sudo gtk-update-icon-cache /usr/share/icons/hicolor
```
### OpenSUSE Tumbleweed
```bash
sudo zypper refresh
sudo zypper install safeeyes
```
### Alpine Linux
```bash
sudo apk add safeeyes
```
### Flatpak
```bash
flatpak install flathub io.github.slgobinath.SafeEyes
```
### Other Linux & Run from source
Ensure to meet the following dependencies:
- gir1.2-appindicator3-0.1
- gir1.2-appindicator3-0.1 or gir1.2-ayatanaappindicator3-0.1
- gir1.2-notify-0.7
- libappindicator-gtk3
- python3-psutil
- xprintidle (optional)
- wlrctl (wayland optional)
**To install Safe Eyes:**
@ -105,22 +120,70 @@ python3 -m safeeyes
Safe Eyes installers install the required icons to `/usr/share/icons/hicolor`. When you run Safe Eyes from source without, some icons may not appear.
### Install in Virtual Environment
Some Linux systems like Cent OS do not have matching dependencies available in their repository. In such systems, you can install and use Safe Eyes in a Python Virtual Environment. The following instruction was tested on Cent OS 7.
1. Install the necessary dependencies
```bash
sudo yum install python3-devel dbus dbus-devel cairo cairo-devel cairomm-devel libjpeg-turbo-devel pango pango-devel pangomm pangomm-devel gobject-introspection-devel cairo-gobject-devel
```
2. Create a virtual environment in your home folder
```bash
mkdir ~/safeeyes
cd ~/safeeyes/
pip3 install virtualenv --user
virtualenv --no-site-packages venv
source venv/bin/activate
pip3 install dbus-python safeeyes
```
3. Start Safe Eyes from terminal
```bash
cd ~/safeeyes & source venv/bin/activate
python3 -m safeeyes
```
For more details, please check the issue: [#329](https://github.com/slgobinath/SafeEyes/issues/329)
## Features
- Remind you to take breaks with exercises to reduce RSI
- Disable keyboard during breaks
- Notification before and after breaks
- Smart pause if system is idle
- Multi-screen support
- Customizable user interface
- RPC API to control externally
- Command-line arguments to control the running instance
- Customizable using plug-ins
- Remind you to take breaks with exercises to reduce RSI
- Disable keyboard during breaks
- Notification before and after breaks
- Smart pause if system is idle
- Multi-screen support
- Customizable user interface
- RPC API to control externally
- Command-line arguments to control the running instance
- Customizable using plug-ins
## Third-party Plugins
Thirdparty plugins are available at another GitHub repository: [safeeyes-plugins](https://github.com/slgobinath/safeeyes-plugins). More details about how to write your own plugin and how to install third-party plugin are available there.
## How to Release?
1. Checkout the latest commits from the `master` branch
2. Run `python3 -m safeeyes` to make sure nothing is broken
3. Update the Safe Eyes version in the following places (Open the project in VSCode and search for the current version):
- [setup.py](https://github.com/slgobinath/SafeEyes/blob/master/setup.py#L81)
- [setup.py](https://github.com/slgobinath/SafeEyes/blob/master/setup.py#L88)
- [safeeyes.py](https://github.com/slgobinath/SafeEyes/blob/master/safeeyes/safeeyes.py#L43)
- [io.github.slgobinath.SafeEyes.metainfo.xml](https://github.com/slgobinath/SafeEyes/blob/master/safeeyes/platform/io.github.slgobinath.SafeEyes.metainfo.xml#L50)
- [about_dialog.glade](https://github.com/slgobinath/SafeEyes/blob/master/safeeyes/glade/about_dialog.glade#L74)
4. Update the [changelog](https://github.com/slgobinath/SafeEyes/blob/master/debian/changelog) (for Ubuntu release)
5. Commit the changes to `master`
6. Create a pull-request from `master` to `release`
7. Merge the PR to release **with merge commit** (Important to merge with merge commit)
## License
GNU General Public License v3
@ -129,4 +192,4 @@ GNU General Public License v3
<p align="center">Thanks to JetBrains for offering IDE support to develop this Open Source project.</p>
<p align="center"><a href="https://www.jetbrains.com/?from=SafeEyes"><img src="https://raw.githubusercontent.com/JetBrains/logos/master/web/jetbrains/jetbrains.svg?sanitize=true" width="64" align="center"></a></p>
<p align="center"><a href="https://www.jetbrains.com/?from=SafeEyes"><img src="https://raw.githubusercontent.com/JetBrains/logos/master/web/jetbrains/jetbrains.svg?sanitize=true" width="64" align="center"></a></p>

16
debian/changelog vendored
View File

@ -1,4 +1,18 @@
safeeyes (2.0.9-1) xenial; urgency=high
safeeyes (2.1.6-0) lunar; urgency=high
* Support Python 3.11
* Minor bug fixes
* Fix the ecd ..rror if there is no long break
* Add wayland support for do not disturb me plugin
* Fix missing icons and add random order of breaks
* Create desktop entries from the code
* Add Python 3.8 and 3.9 support
* Redesigned settings dialog
* Add tray action buttons to the break screen

2
debian/compat vendored
View File

@ -1 +1 @@
9
10

6
debian/control vendored
View File

@ -2,14 +2,14 @@ Source: safeeyes
Section: utils
Priority: optional
Maintainer: Gobinath Loganathan <slgobinath@gmail.com>
Build-Depends: debhelper (>= 9), python3, python3-setuptools
Build-Depends: debhelper (>= 10), dh-python, python3, python3-setuptools
Standards-Version: 3.9.6
X-Python3-Version: >= 3.4
X-Python3-Version: >= 3.5
Homepage: https://github.com/slgobinath/SafeEyes/
Package: safeeyes
Architecture: all
Depends: ${misc:Depends}, ${python3:Depends}, gir1.2-appindicator3-0.1, python3 (>= 3.4.0), python3-xlib, python3-dbus, gir1.2-notify-0.7, python3-babel, x11-utils, xprintidle, alsa-utils, python3-psutil
Depends: ${misc:Depends}, ${python3:Depends}, gir1.2-ayatanaappindicator3-0.1, python3 (>= 3.5.0), python3-xlib, python3-dbus, gir1.2-notify-0.7, python3-babel, x11-utils, xprintidle, alsa-utils, python3-psutil, python3-croniter
Description: Safe Eyes
Safe Eyes is a simple tool to remind you to take periodic breaks for your eyes. This is essential for anyone spending more time on the computer to avoid eye strain and other physical problems.
.

17
debian/safeeyes.install vendored Normal file
View File

@ -0,0 +1,17 @@
safeeyes/platform/io.github.slgobinath.SafeEyes.desktop usr/share/applications
safeeyes/platform/icons/hicolor/128x128/apps/io.github.slgobinath.SafeEyes.png usr/share/icons/hicolor/128x128/apps
safeeyes/platform/icons/hicolor/16x16/apps/io.github.slgobinath.SafeEyes.png usr/share/icons/hicolor/16x16/apps
safeeyes/platform/icons/hicolor/16x16/status/io.github.slgobinath.SafeEyes-disabled.png usr/share/icons/hicolor/16x16/status
safeeyes/platform/icons/hicolor/16x16/status/io.github.slgobinath.SafeEyes-enabled.png usr/share/icons/hicolor/16x16/status
safeeyes/platform/icons/hicolor/16x16/status/io.github.slgobinath.SafeEyes-timer.png usr/share/icons/hicolor/16x16/status
safeeyes/platform/icons/hicolor/24x24/apps/io.github.slgobinath.SafeEyes.png usr/share/icons/hicolor/24x24/apps
safeeyes/platform/icons/hicolor/24x24/status/io.github.slgobinath.SafeEyes-disabled.png usr/share/icons/hicolor/24x24/status
safeeyes/platform/icons/hicolor/24x24/status/io.github.slgobinath.SafeEyes-enabled.png usr/share/icons/hicolor/24x24/status
safeeyes/platform/icons/hicolor/24x24/status/io.github.slgobinath.SafeEyes-timer.png usr/share/icons/hicolor/24x24/status
safeeyes/platform/icons/hicolor/32x32/apps/io.github.slgobinath.SafeEyes.png usr/share/icons/hicolor/32x32/apps
safeeyes/platform/icons/hicolor/32x32/status/io.github.slgobinath.SafeEyes-disabled.png usr/share/icons/hicolor/32x32/status
safeeyes/platform/icons/hicolor/32x32/status/io.github.slgobinath.SafeEyes-enabled.png usr/share/icons/hicolor/32x32/status
safeeyes/platform/icons/hicolor/48x48/apps/io.github.slgobinath.SafeEyes.png usr/share/icons/hicolor/48x48/apps
safeeyes/platform/icons/hicolor/48x48/status/io.github.slgobinath.SafeEyes-disabled.png usr/share/icons/hicolor/48x48/status
safeeyes/platform/icons/hicolor/48x48/status/io.github.slgobinath.SafeEyes-enabled.png usr/share/icons/hicolor/48x48/status
safeeyes/platform/icons/hicolor/64x64/apps/io.github.slgobinath.SafeEyes.png usr/share/icons/hicolor/64x64/apps

View File

@ -29,16 +29,16 @@ from threading import Timer
import gi
import psutil
from safeeyes import Utility
from safeeyes import utility
from safeeyes.model import Config
from safeeyes.SafeEyes import SafeEyes
from safeeyes.SafeEyes import SAFE_EYES_VERSION
from safeeyes.safeeyes import SafeEyes
from safeeyes.safeeyes import SAFE_EYES_VERSION
from safeeyes.rpc import RPCClient
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
gettext.install('safeeyes', Utility.LOCALE_PATH)
gettext.install('safeeyes', utility.LOCALE_PATH)
def __running():
@ -73,26 +73,29 @@ def __evaluate_arguments(args, safe_eyes):
Evaluate the arguments and execute the operations.
"""
if args.about:
Utility.execute_main_thread(safe_eyes.show_about)
utility.execute_main_thread(safe_eyes.show_about)
elif args.disable:
Utility.execute_main_thread(safe_eyes.disable_safeeyes)
utility.execute_main_thread(safe_eyes.disable_safeeyes)
elif args.enable:
Utility.execute_main_thread(safe_eyes.enable_safeeyes)
utility.execute_main_thread(safe_eyes.enable_safeeyes)
elif args.settings:
Utility.execute_main_thread(safe_eyes.show_settings)
utility.execute_main_thread(safe_eyes.show_settings)
elif args.take_break:
Utility.execute_main_thread(safe_eyes.take_break)
utility.execute_main_thread(safe_eyes.take_break)
def main():
"""
Start the Safe Eyes.
"""
system_locale = gettext.translation('safeeyes', localedir=Utility.LOCALE_PATH, languages=[Utility.system_locale(), 'en_US'], fallback=True)
system_locale = gettext.translation('safeeyes', localedir=utility.LOCALE_PATH, languages=[utility.system_locale(), 'en_US'], fallback=True)
system_locale.install()
# locale.bindtextdomain is required for Glade files
# gettext.bindtextdomain(gettext.textdomain(), Utility.LOCALE_PATH)
locale.bindtextdomain('safeeyes', Utility.LOCALE_PATH)
try:
# locale.bindtextdomain is required for Glade files
locale.bindtextdomain('safeeyes', utility.LOCALE_PATH)
except AttributeError:
logging.warning('installed python\'s gettext module does not support locale.bindtextdomain. locale.bindtextdomain is required for Glade files')
parser = argparse.ArgumentParser(prog='safeeyes', description=_('description'))
group = parser.add_mutually_exclusive_group()
@ -108,11 +111,17 @@ def main():
args = parser.parse_args()
# Initialize the logging
Utility.intialize_logging(args.debug)
utility.initialize_logging(args.debug)
utility.initialize_platform()
config = Config()
if __running():
logging.info("Safe Eyes is already running")
if not config.get("use_rpc_server", True):
# RPC sever is disabled
print(_('Safe Eyes is running without an RPC server. Turn it on to use command-line arguments.'))
sys.exit(0)
return
rpc_client = RPCClient(config.get('rpc_port'))
if args.about:
rpc_client.show_about()
@ -138,9 +147,9 @@ def main():
sys.exit(0)
elif not args.quit:
logging.info("Starting Safe Eyes")
safeeyes = SafeEyes(system_locale, config)
safeeyes.start()
Timer(1.0, lambda: __evaluate_arguments(args, safeeyes)).start()
safe_eyes = SafeEyes(system_locale, config)
safe_eyes.start()
Timer(1.0, lambda: __evaluate_arguments(args, safe_eyes)).start()
Gtk.main()

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2019-02-13 16:11+0000\n"
"Last-Translator: Hatem Ghouthi <hatemghouthi@yahoo.com>\n"
"PO-Revision-Date: 2022-05-24 17:15+0000\n"
"Last-Translator: Mohamed Omran <mohamedgomran@gmail.com>\n"
"Language-Team: Arabic <https://hosted.weblate.org/projects/safe-eyes/"
"translations/ar/>\n"
"Language: ar\n"
@ -16,7 +16,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Weblate 3.5-dev\n"
"X-Generator: Weblate 4.13-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -48,7 +48,7 @@ msgstr "اشرب قليلا من الماء"
# Long break
msgid "Walk for a while"
msgstr "إمشي قليلا"
msgstr "امش قليلا"
# Long break
msgid "Lean back at your seat and relax"
@ -56,7 +56,7 @@ msgstr "تمدد إلى الخلف على كرسيك واسترح"
# Commandline arg description
msgid "show the about dialog"
msgstr "أظهر نافذة عن البرنامج"
msgstr "أظهر نافذة \"عن البرنامج\""
# Commandline arg description
msgid "disable the currently running safeeyes instance"
@ -72,7 +72,7 @@ msgstr "غادر برنامج safeeyes المشتغل حاليّا"
# Commandline arg description
msgid "show the settings dialog"
msgstr "أظهر مربع الإعدادات"
msgstr "إظهار لوحة اﻹعدادات"
# Commandline arg description
msgid "start safeeyes in debug mode"
@ -84,7 +84,13 @@ msgstr "أظهر حالة برنامج safeeyes المشتغل حاليا و أ
# Status message
msgid "Safe Eyes is not running"
msgstr "SafeEyes غير مشغل"
msgstr "SafeEyes لا يعمل"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr "يعمل Safe Eyes الآن دون خادوم RPC. شغِّله لكي تستعمل معطيات سطر الأوامر."
# About dialog
msgid "Close"
@ -92,7 +98,9 @@ msgstr "أغلق"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr "الوصف"
# About dialog
@ -124,9 +132,13 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "مدة تعطيل اختصارات لوحة المفاتيح (ثوان)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "مدة التأخير (دقائق)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "اظهِّر الاستراحات بترتيب عشوائي"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "استراحة إجبارية (لا يمكن تجاوزها)"
@ -139,13 +151,21 @@ msgstr "مكّن تأخير الاستراحات"
msgid "Persist the internal state"
msgstr "ثبّت الحالة الداخلية"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "استعمل خادوم RPC لاستقبال الأوامر في وقت التشغيل"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "قد لا تعمل أوامر سطر الأوامر من غير خادوم RPC"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr "الاستراحات الطويلة يجب أن تكون من مضاعفات مدة الاستراحات القصيرة"
# Settings dialog
msgid "Reset"
msgstr "إعادة تعيين"
msgstr "صفِّر"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
@ -166,11 +186,11 @@ msgstr "استراحات طويلة"
# Settings dialog
msgid "Delete"
msgstr "حذف"
msgstr "احذف"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr "هل أنت متأكد أنك تريد حذف هذا الانفصال؟"
msgstr "هل أنت متأكد أنك تريد حذف هذه الاستراحة؟"
# Settings dialog
msgid "You can't undo this action."
@ -246,15 +266,19 @@ msgstr "لا تدعم الإضافة بيئة سطح المكتب %s"
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr "من فضلك ثبّت وحدة Python '%s'"
msgstr "من فضلك ثبّت وحدة بايثون باسم '%s'"
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr "رجاءا ثبّت أداة سطر الأوامر '%s'"
msgstr "من فضلك ثبّت أداة سطر الأوامر '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "تعبير الوظيفة المجدولة غير صحيح '%s'"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "رجاءا أضف المورد %(resource)s إلى دليل %(config_resource)s"
msgstr "من فضلك أضف المورد %(resource)s إلى الدليل %(config_resource)"
# Settings dialog
msgid "New Break"
@ -266,15 +290,15 @@ msgstr "إزالة"
# Settings dialog
msgid "Discard"
msgstr "إلغاء"
msgstr "تجاهل"
# Settings dialog
msgid "Save"
msgstr "حفظ"
msgstr "احفظ"
# plugin/audiblealert
msgid "Audible Alert"
msgstr "تنبيه"
msgstr "إنذار مسموع"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
@ -282,11 +306,11 @@ msgstr "تشغيل تنبيه مسموع قبل وبعد الراحة"
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr "تشغيل تنبيه مسموع قبل فواصل"
msgstr "شغِّل تنبيها مسموعا قبل الراحة"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr "تشغيل تنبيه مسموع بعد الراحة"
msgstr "شغِّل تنبيها مسموعا بعد الراحة"
# plugin/donotdisturb
msgid "Do Not Disturb"
@ -294,23 +318,23 @@ msgstr "عدم الإزعاج"
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr "تجاهل الراحة إذا كان الإطار النشط في وضع ملء الشاشة"
msgstr "تجاهل الراحة إذا كانت النافذة النشطة في وضع ملء الشاشة"
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr "لا تقم بإيقاف هذه الإطارات في أي وقت"
msgstr "لا تقاطع هذه النوافذ في أي وقت"
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr "مقاطعة هذه النوافذ بغض النظر عن حالتها"
msgstr "قاطع هذه النوافذ بغض النظر عن حالتها"
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr "تبديل النوافذ المقاطعة إلى الوضع العادي"
msgstr "بدِّل النوافذ المقاطعة إلى الوضع العادي"
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr "عدم الإزعاج بينما على البطارية"
msgstr "عدم الإزعاج أثناء شحن البطارية"
# plugin/healthstats
msgid "Health Statistics"
@ -318,11 +342,11 @@ msgstr "الإحصاءات الصحية"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr "وتظهر الإحصاءات استناداً إلى كيفية استخدام \"safe eyes\""
msgstr "أظهر الإحصاءات بناءً على كيفية استخدامك ل \"Safe Eyes\""
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr ""
msgid "Statistics reset interval (cron expression)"
msgstr "فاصل إعادة ضبط الإحصائيات (تعبير وظيفة مجدولة)"
# plugin/notification
msgid "Notification"
@ -330,154 +354,158 @@ msgstr "الإشعارات"
# plugin/notification
msgid "Show a system notification before breaks"
msgstr "اظهار اشعار النظام قبل الراحة"
msgstr "أظهر إشعار نظام قبل الراحة"
# plugin/notification
msgid "Ready for a short break in %s seconds"
msgstr "استعداد لاستراحة قصيرة في %s ثانية"
msgstr "استعد لاستراحة قصيرة في %s من الثواني"
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr ""
msgstr "استعد لراحة طويلة بعد %s من الثواني"
# plugin/screensaver
msgid "Screensaver"
msgstr ""
msgstr "شاشة التوقف"
# plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
msgstr ""
msgstr "اغلق الشاشة بعد فترة استراحة طويلة عن طريق بدأ شاشة التوقف"
# plugin/screensaver
msgid "Custom screensaver command"
msgstr ""
msgstr "أمر شاشة التوقف مخصص"
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr ""
msgstr "أقل عدد ثواني للتخطي بدون شاشة التوقف"
# plugin/screensaver
msgid "Lock screen"
msgstr ""
msgstr "اغلق الشاشة"
# plugin/smartpause
msgid "Smart Pause"
msgstr ""
msgstr "التوقف الذكي"
# plugin/smartpause
msgid "Pause Safe Eyes if the system is idle"
msgstr ""
msgstr "اوقف Safe Eyes إذا كان النظام خاملاً"
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr ""
msgstr "أقل مدة خمول لإيقاف Safe Eyes (بالثوان)"
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr ""
msgstr "تفسير وقت الخمول المكافئ لفترة الاستراحة القادمة على أنه استراحة"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr ""
msgstr "اجًّل فترة الاستراحة القادمة حتى يصبح النظام خاملاً"
#: plugins/trayicon
msgid "Tray Icon"
msgstr ""
msgstr "الأيقونة"
#: plugins/trayicon
msgid "Show a tray icon in the notification area"
msgstr ""
msgstr "أظهِّر الأيقونة في منطقة الإشعارات"
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr ""
msgstr "أظهِّر وقت الاستراحة القادمة في درج الأيقونة"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr ""
msgstr "اسمح بتعطيل Safe Eyes"
#: plugins/trayicon
msgid "About"
msgstr ""
msgstr "عن البرنامج"
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr ""
msgstr "عطّل Safe Eyes"
#: plugins/trayicon
msgid "Disabled until %s"
msgstr ""
msgstr "معطّل إلى %s"
#: plugins/trayicon
msgid "Disabled until restart"
msgstr ""
msgstr "معطّل إلى حين إعادة التشغيل"
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr ""
msgstr "فعِّل Safe Eyes"
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
msgstr[0] "لمدة %d ساعة"
msgstr[1] "لمدة ساعة"
msgstr[2] "لمدة ساعتين"
msgstr[3] "لمدة %d ساعات"
msgstr[4] "لمدة %d ساعة"
msgstr[5] "لمدة %d ساعة"
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
msgstr[0] "لمدة %d دقيقة"
msgstr[1] "لمدة دقيقة"
msgstr[2] "لمدة دقيقتين"
msgstr[3] "لمدة %d دقائق"
msgstr[4] "لمدة %d دقيقة"
msgstr[5] "لمدة %d دقيقة"
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
msgstr[0] "لمدة %d ثانية"
msgstr[1] "لمدة ثانية"
msgstr[2] "لمدة ثانيتين"
msgstr[3] "لمدة %d ثوان"
msgstr[4] "لمدة %d ثانية"
msgstr[5] "لمدة %d ثانية"
#: plugins/trayicon
msgid "Next break at %s"
msgstr ""
msgstr "فترة الاستراحة القادمة بعد %s"
#: plugins/trayicon
msgid "No Breaks Available"
msgstr ""
msgstr "لا يوجد فترات استراحة متاحة"
#: plugins/trayicon
msgid "Settings"
msgstr ""
msgstr "الإعدادات"
#: plugins/trayicon
msgid "Take a break now"
msgstr ""
msgstr "خُذ استراحة الآن"
#: plugins/trayicon
msgid "Until restart"
msgstr ""
msgstr "حتى إعادة التشغيل"
#: plugins/trayicon
msgid "Quit"
msgstr ""
msgstr "اخرج"
# plugin/mediacontrol
msgid "Media Control"
msgstr ""
msgstr "تحكم الوسائط"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr ""
msgstr "أوقِف مشغلات الوسائط في شاشة فترة الاستراحة"
# plugin/mediacontrol
msgid "Pause media"
msgstr ""
msgstr "أوقِف الوسائط"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "مهلة تصفير الإعدادات (ساعات)"

View File

@ -6,51 +6,52 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"PO-Revision-Date: 2024-02-07 05:56+0000\n"
"Last-Translator: Salif Mehmed <mail@salif.eu>\n"
"Language-Team: Bulgarian <https://hosted.weblate.org/projects/safe-eyes/"
"translations/bg/>\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.7.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.4-dev\n"
# Short break
msgid "Tightly close your eyes"
msgstr ""
msgstr "Затворете плътно очи"
# Short break
msgid "Roll your eyes a few times to each side"
msgstr ""
msgstr "Завъртете очи няколко пъти на всяка страна"
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr ""
msgstr "Завъртете очите си по посока на часовниковата стрелка"
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr ""
msgstr "Завъртете очите си обратно на часовниковата стрелка"
# Short break
msgid "Blink your eyes"
msgstr ""
msgstr "Мигайте с очи"
# Short break
msgid "Focus on a point in the far distance"
msgstr ""
msgstr "Фокусирайте се върху точка в далечината"
# Short break
msgid "Have some water"
msgstr ""
msgstr "Пийте вода"
# Long break
msgid "Walk for a while"
msgstr ""
msgstr "Разходете се известно време"
# Long break
msgid "Lean back at your seat and relax"
msgstr ""
msgstr "Облегнете се и се отпуснете"
# Commandline arg description
msgid "show the about dialog"
@ -84,34 +85,42 @@ msgstr ""
msgid "Safe Eyes is not running"
msgstr ""
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
# About dialog
msgid "Close"
msgstr ""
msgstr "Затваряне"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
# About dialog
msgid "License"
msgstr ""
msgstr "Лиценз"
# Break screen
msgid "Skip"
msgstr ""
msgstr "Пропускане"
# Break screen
msgid "Postpone"
msgstr ""
msgstr "Отлагане"
# Settings dialog
msgid "Break duration (in seconds)"
msgstr ""
msgstr "Продължителност на почивките (в секунди)"
# Settings dialog
msgid "Interval between two breaks (in minutes)"
msgstr ""
msgstr "Интервал между две почивки (в минути)"
# Settings dialog
msgid "Time to prepare for a break (in seconds)"
@ -122,7 +131,11 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr ""
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr ""
# Settings dialog
msgid "Show breaks in random order"
msgstr ""
# Settings dialog
@ -137,6 +150,14 @@ msgstr ""
msgid "Persist the internal state"
msgstr ""
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr ""
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr ""
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
@ -151,19 +172,19 @@ msgstr ""
# Settings dialog
msgid "Options"
msgstr ""
msgstr "Опции"
# Settings dialog
msgid "Short Breaks"
msgstr ""
msgstr "Кратки почивки"
# Settings dialog
msgid "Long Breaks"
msgstr ""
msgstr "Дълги почивки"
# Settings dialog
msgid "Delete"
msgstr ""
msgstr "Изтриване"
# Settings dialog
msgid "Are you sure you want to delete this break?"
@ -175,11 +196,11 @@ msgstr ""
# Settings dialog
msgid "Break"
msgstr ""
msgstr "Почивка"
# Settings dialog
msgid "Breaks"
msgstr ""
msgstr "Почивки"
# Settings dialog
msgid "Plugins"
@ -223,11 +244,11 @@ msgstr ""
# Settings dialog
msgid "Time (in seconds)"
msgstr ""
msgstr "Време (в секунди)"
# Settings dialog
msgid "Time (in minutes)"
msgstr ""
msgstr "Време (в минути)"
# Settings dialog
msgid "Break Settings"
@ -249,25 +270,29 @@ msgstr ""
msgid "Please install the command-line tool '%s'"
msgstr ""
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr ""
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
# Settings dialog
msgid "New Break"
msgstr ""
msgstr "Нова почивка"
# Settings dialog
msgid "Remove"
msgstr ""
msgstr "Премахване"
# Settings dialog
msgid "Discard"
msgstr ""
msgstr "Отхвърляне"
# Settings dialog
msgid "Save"
msgstr ""
msgstr "Запазване"
# plugin/audiblealert
msgid "Audible Alert"
@ -287,7 +312,7 @@ msgstr ""
# plugin/donotdisturb
msgid "Do Not Disturb"
msgstr ""
msgstr "Не безпокой"
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
@ -318,12 +343,12 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgid "Statistics reset interval (cron expression)"
msgstr ""
# plugin/notification
msgid "Notification"
msgstr ""
msgstr "Известие"
# plugin/notification
msgid "Show a system notification before breaks"
@ -395,65 +420,65 @@ msgstr ""
#: plugins/trayicon
msgid "About"
msgstr ""
msgstr "Относно"
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr ""
msgstr "Изключване на Safe Eyes"
#: plugins/trayicon
msgid "Disabled until %s"
msgstr ""
msgstr "Изключено до %s"
#: plugins/trayicon
msgid "Disabled until restart"
msgstr ""
msgstr "Изключено до рестартиране"
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr ""
msgstr "Включване на Safe Eyes"
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] ""
msgstr[1] ""
msgstr[0] "За %d Час"
msgstr[1] "За %d Часа"
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] ""
msgstr[1] ""
msgstr[0] "За %d Минута"
msgstr[1] "За %d Минути"
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] ""
msgstr[1] ""
msgstr[0] "За %d Секунда"
msgstr[1] "За %d Секунди"
#: plugins/trayicon
msgid "Next break at %s"
msgstr ""
msgstr "Следваща почивка в %s"
#: plugins/trayicon
msgid "No Breaks Available"
msgstr ""
msgstr "Няма налични почивки"
#: plugins/trayicon
msgid "Settings"
msgstr ""
msgstr "Настройки"
#: plugins/trayicon
msgid "Take a break now"
msgstr ""
msgstr "Направете почивка сега"
#: plugins/trayicon
msgid "Until restart"
msgstr ""
msgstr "До рестартиране"
#: plugins/trayicon
msgid "Quit"
msgstr ""
msgstr "Изход"
# plugin/mediacontrol
msgid "Media Control"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2018-02-01 11:34+0000\n"
"Last-Translator: Joan Montané <joan@montane.cat>\n"
"PO-Revision-Date: 2022-08-08 21:25+0000\n"
"Last-Translator: calbasi <joan@calbasi.net>\n"
"Language-Team: Catalan <https://hosted.weblate.org/projects/safe-eyes/"
"translations/ca/>\n"
"Language: ca\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2.19-dev\n"
"X-Generator: Weblate 4.14-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -55,43 +55,51 @@ msgstr "Reclineu-vos sobre la cadira i relaxeu-vos"
# Commandline arg description
msgid "show the about dialog"
msgstr ""
msgstr "Mostra la informació Naltros"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr ""
msgstr "Inhabilita la instància de safeeyes en funcionament"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr ""
msgstr "Habilita la instància de safeeyes en funcionament"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr ""
msgstr "Tanca de la instància de safeeyes en funcionament i surt"
# Commandline arg description
msgid "show the settings dialog"
msgstr ""
msgstr "Mostra la finestra de preferències"
# Commandline arg description
msgid "start safeeyes in debug mode"
msgstr ""
msgstr "Inicia safeeyes en mode de depuració"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr ""
msgstr "Mostra l'estat de la instància de safeeyes en funcionament i surt"
# Status message
msgid "Safe Eyes is not running"
msgstr "Safe Eyes no s'està executant"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
# About dialog
msgid "Close"
msgstr "Tanca"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes protegeix els vostres ulls de la fatiga visual (astenopia) "
"recordant-vos que feu petits descansos mentre esteu treballant amb "
@ -126,12 +134,16 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr ""
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Durada d'una posposició (en minuts)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Mostra les pauses en ordre aleatori"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr ""
msgstr "Pauses estrictes (sense possibilitat de saltar-se-les)"
# Settings dialog
msgid "Allow postponing breaks"
@ -141,105 +153,113 @@ msgstr "Permet posposar les pauses"
msgid "Persist the internal state"
msgstr ""
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr ""
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr ""
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
# Settings dialog
msgid "Reset"
msgstr ""
msgstr "Restablir"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
msgstr "De veritat que voleu restablir les preferències als valors per defecte?"
# Settings dialog
msgid "Options"
msgstr ""
msgstr "Opcions"
# Settings dialog
msgid "Short Breaks"
msgstr ""
msgstr "Pauses curtes"
# Settings dialog
msgid "Long Breaks"
msgstr ""
msgstr "Pauses llargues"
# Settings dialog
msgid "Delete"
msgstr ""
msgstr "Suprimeix"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr ""
msgstr "De veritat que voleu suprimir aquesta pausa?"
# Settings dialog
msgid "You can't undo this action."
msgstr ""
msgstr "Aquesta acció no podrà revertir-se."
# Settings dialog
msgid "Break"
msgstr ""
msgstr "Pausa"
# Settings dialog
msgid "Breaks"
msgstr ""
msgstr "Pauses"
# Settings dialog
msgid "Plugins"
msgstr ""
msgstr "Complements"
# Settings dialog
msgid "Type"
msgstr ""
msgstr "Tipus"
# Settings dialog
msgid "Short"
msgstr ""
msgstr "Curta"
# Settings dialog
msgid "Long"
msgstr ""
msgstr "Llarga"
# Settings dialog
msgid "Image"
msgstr ""
msgstr "Imatge"
# Settings dialog
msgid "Select"
msgstr ""
msgstr "Trieu"
# Settings dialog
msgid "Please select an image"
msgstr ""
msgstr "Si us plau, trieu una imatge"
# Settings dialog
msgid "Duration"
msgstr ""
msgstr "Durada"
# Settings dialog
msgid "Time to wait"
msgstr ""
msgstr "Temps d'espera"
# Settings dialog
msgid "Override"
msgstr ""
msgstr "Sobreescriu"
# Settings dialog
msgid "Time (in seconds)"
msgstr ""
msgstr "Temps (en segons)"
# Settings dialog
msgid "Time (in minutes)"
msgstr ""
msgstr "Temps (en minuts)"
# Settings dialog
msgid "Break Settings"
msgstr ""
msgstr "Preferències de la pausa"
# Settings dialog
msgid "Plugin Settings"
msgstr ""
msgstr "Preferències del complement"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
@ -253,21 +273,25 @@ msgstr ""
msgid "Please install the command-line tool '%s'"
msgstr ""
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr ""
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
# Settings dialog
msgid "New Break"
msgstr ""
msgstr "Nova Pausa"
# Settings dialog
msgid "Remove"
msgstr ""
msgstr "Suprimeix"
# Settings dialog
msgid "Discard"
msgstr ""
msgstr "Descarta-ho"
# Settings dialog
msgid "Save"
@ -275,7 +299,7 @@ msgstr "Desa"
# plugin/audiblealert
msgid "Audible Alert"
msgstr ""
msgstr "Alerta audible"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
@ -291,7 +315,7 @@ msgstr ""
# plugin/donotdisturb
msgid "Do Not Disturb"
msgstr ""
msgstr "No molesteu"
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
@ -315,14 +339,14 @@ msgstr ""
# plugin/healthstats
msgid "Health Statistics"
msgstr ""
msgstr "Estadístiques de salut"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgid "Statistics reset interval (cron expression)"
msgstr ""
# plugin/notification

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2019-03-04 09:58+0000\n"
"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>\n"
"PO-Revision-Date: 2023-10-31 16:04+0000\n"
"Last-Translator: Kryštof Jelínek <krystof186@gmail.com>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/safe-eyes/"
"translations/cs/>\n"
"Language: cs\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 3.5\n"
"X-Generator: Weblate 5.2-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -23,15 +23,15 @@ msgstr "Zavřete oči"
# Short break
msgid "Roll your eyes a few times to each side"
msgstr "Zakroete očima (několikrát na každou stranu)"
msgstr "Zakružte očima (několikrát na každou stranu)"
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr "Zakroete očima ve směru hodinových ručiček"
msgstr "Zakružte očima ve směru hodinových ručiček"
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr "Zakroete očima proti směru hodinových ručiček"
msgstr "Zakružte očima proti směru hodinových ručiček"
# Short break
msgid "Blink your eyes"
@ -85,13 +85,23 @@ msgstr "Popis argumentu příkazového řádku"
msgid "Safe Eyes is not running"
msgstr "Stavová zpráva"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes je spuštěné s tím, že RPC server je vypnutý. Aby bylo možné "
"používat argumenty příkazového řádku, je třeba RPC server zapnout."
# About dialog
msgid "Close"
msgstr "Zavřít"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes chrání vaše oči před následky přetěžování (asthenopie), když "
"dlouho hledíte do obrazovky počítače připomínáním potřebných přestávek"
@ -125,9 +135,13 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Vypnout klávesové zkratky po dobu (v sekundách)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Odložit trvání (v minutách)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Zobrazovat přestávky v náhodném pořadí"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Přísné přestávky (nelze je přeskočit)"
@ -140,6 +154,14 @@ msgstr "Umožnit přeskakování přestávek"
msgid "Persist the internal state"
msgstr "Zachovat vnitřní stav"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Použít RPC server pro obdržení příkazů za chodu"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "Bez RPC serveru, argumenty na příkazovém řádku nemusí fungovat"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr "Je třeba, aby dlouhé přestávky byly násobkem krátkých přestávek"
@ -252,6 +274,10 @@ msgstr "Nainstalujte si modul pro Python „%s“"
msgid "Please install the command-line tool '%s'"
msgstr "Nainstalujte si nástroj pro příkazový řádek „%s“"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Neplatný výraz pro plánovač (cron) „%s“"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "Přidejte prostředek %(resource)s do složky %(config_resource)s"
@ -322,8 +348,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Zobrazit zdravotní statistiky založené na používání Safe Eyes"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr "Interval pro resetování statistik (v hodinách)"
msgid "Statistics reset interval (cron expression)"
msgstr "Interval vynulování statistik (výraz pro plánovač cron)"
# plugin/notification
msgid "Notification"
@ -475,3 +501,7 @@ msgstr "Pozastavit přehrávače médií z obrazovky přestávky"
# plugin/mediacontrol
msgid "Pause media"
msgstr "Pozastavit média"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Interval pro resetování statistik (v hodinách)"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2019-02-26 19:18+0000\n"
"PO-Revision-Date: 2021-03-16 20:02+0000\n"
"Last-Translator: jan madsen <jsm@janz.dk>\n"
"Language-Team: Danish <https://hosted.weblate.org/projects/safe-eyes/"
"translations/da/>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.5-dev\n"
"X-Generator: Weblate 4.5.2-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -85,13 +85,23 @@ msgstr "print status for at køre Safe Eyes instans og afslut"
msgid "Safe Eyes is not running"
msgstr "Safe Eyes kører ikke"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes kører med RPC-server deaktiveret. Aktivér RPC-serveren for at "
"bruge kommandolinjeargumenter."
# About dialog
msgid "Close"
msgstr "Luk"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr "beskrivelse"
# About dialog
@ -123,9 +133,13 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Tastaturgenveje deaktiveret tidsrum (i sekunder)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Udskyd varighed (i minutter)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Vis pauser i tilfældig rækkefølge"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Fast pause (ingen måde at springe over)"
@ -138,6 +152,14 @@ msgstr "Tillad at udskyde pauser"
msgid "Persist the internal state"
msgstr "Fortsætter i interntilstand"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Brug RPC-server til at modtage runtime-kommandoer"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "Uden RPC-serveren fungerer kommandolinjekommandoer muligvis ikke"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
@ -251,6 +273,10 @@ msgstr "Installer Python-modul '%s'"
msgid "Please install the command-line tool '%s'"
msgstr "Installer kommandolinjeværktøjet '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Ugyldigt cron-udtryk '%s'"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "Tilføj ressource %(ressource)s til %(config_resource)s bibliotek"
@ -284,7 +310,6 @@ msgid "Play audible alert before breaks"
msgstr "Afspil lydvarsling før pauser"
# plugin/audiblealert
#, fuzzy
msgid "Play audible alert after breaks"
msgstr "Afspil lydvarsling efter pauser"
@ -321,8 +346,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Vis statistikker baseret på brug af Safe Eyes"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr ""
msgid "Statistics reset interval (cron expression)"
msgstr "Nulstillingsinterval for statistik (cron-udtryk)"
# plugin/notification
msgid "Notification"
@ -393,9 +418,8 @@ msgid "Show next break time in tray icon"
msgstr "Vis næste pausetid i bakkeikon"
#: plugins/trayicon
#, fuzzy
msgid "Allow disabling Safe Eyes"
msgstr "Tillad deaktivering af Safe Eyes"
msgstr "Tillad at deaktivere Safe Eyes"
#: plugins/trayicon
msgid "About"
@ -470,3 +494,7 @@ msgstr "Pause multimedieafspillere fra pause skærm"
# plugin/mediacontrol
msgid "Pause media"
msgstr "Pause medier"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Interval for nulstilling af statistik (i timer)"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2018-12-01 02:08+0000\n"
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
"PO-Revision-Date: 2023-07-04 20:53+0000\n"
"Last-Translator: Sebastian Pipping <sebastian@pipping.org>\n"
"Language-Team: German <https://hosted.weblate.org/projects/safe-eyes/"
"translations/de/>\n"
"Language: de\n"
@ -15,23 +15,23 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.3\n"
"X-Generator: Weblate 5.0-dev\n"
# Short break
msgid "Tightly close your eyes"
msgstr "Schließen Sie fest die Augen"
msgstr "Augen fest schließen"
# Short break
msgid "Roll your eyes a few times to each side"
msgstr "Bewegen Sie die Augen mehrere Male von links nach rechts und zurück"
msgstr "Rollen Sie die Augen ein paar Mal auf jede Seite"
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr "Kreisen Sie im Uhrzeigersinn mit den Augen"
msgstr "Lassen Sie Ihre Augen im Uhrzeigersinn kreisen"
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr "Kreisen Sie gegen den Uhrzeigersinn mit den Augen"
msgstr "Lassen Sie Ihre Augen entgegen dem Uhrzeigersinn kreisen"
# Short break
msgid "Blink your eyes"
@ -39,7 +39,7 @@ msgstr "Blinzeln Sie mit den Augen"
# Short break
msgid "Focus on a point in the far distance"
msgstr "Fokussieren Sie mit den Augen einen Punkt in der Ferne"
msgstr "Fokussieren Sie einen Punkt in der Ferne"
# Short break
msgid "Have some water"
@ -59,15 +59,15 @@ msgstr "Info-Dialog anzeigen"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "Laufende Instanz von Safe Eyes deaktivieren"
msgstr "Aktuelle Instanz von Safe Eyes deaktivieren"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "Laufende Instanz von Safe Eyes aktivieren"
msgstr "Aktuelle Instanz von Safe Eyes aktivieren"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "Laufende Instanz von Safe Eyes schließen und dann selbst beenden"
msgstr "Aktuelle Instanz von Safe Eyes beenden und Anwendung schließen"
# Commandline arg description
msgid "show the settings dialog"
@ -79,11 +79,19 @@ msgstr "Im Debug-Modus starten"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr ""
msgstr "Status der laufenden Safe Eyes-Instanz ausgeben und beenden"
# Status message
msgid "Safe Eyes is not running"
msgstr "Safe Eyes läuft nicht"
msgstr "Safe Eyes wird nicht ausgeführt"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes läuft ohne RPC-Server. Aktivieren Sie ihn, um Kommandozeilen-"
"Befehle während der Laufzeit nutzen zu können."
# About dialog
msgid "Close"
@ -91,10 +99,13 @@ msgstr "Schließen"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes schützt Ihre Augen vor Überlastung (Asthenopie), indem es Sie bei "
"längerer Arbeit am Computer an regelmäßige Pausen erinnert"
"Safe Eyes schützt Ihre Augen vor Beschwerden (Asthenopie), indem es Sie "
"regelmäßig erinnert, Pausen zu machen, wenn Sie längere Zeit am Bildschirm "
"verbringen"
# About dialog
msgid "License"
@ -106,7 +117,7 @@ msgstr "Überspringen"
# Break screen
msgid "Postpone"
msgstr "Verzögern"
msgstr "Aufschieben"
# Settings dialog
msgid "Break duration (in seconds)"
@ -118,39 +129,55 @@ msgstr "Intervall zwischen zwei Pausen (in Minuten)"
# Settings dialog
msgid "Time to prepare for a break (in seconds)"
msgstr "Zeit zur Vorbereitung für die Pause (in Sekunden)"
msgstr "Zeit zur Vorbereitung auf eine Pause (in Sekunden)"
# Settings dialog
msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Dauer mit deaktivierten Tastatur-Kürzeln (in Sekunden)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgstr "Verzögerungsdauer (in Minuten)"
msgid "Postponement duration (in minutes)"
msgstr "Aufschubdauer (in Minuten)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Pausen in zufälliger Reihenfolge anzeigen"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Strenge Pause (ohne Möglichkeit zu umgehen)"
msgstr "Strenge Unterbrechung (ohne Möglichkeit sie zu überspringen)"
# Settings dialog
msgid "Allow postponing breaks"
msgstr "Erlaube Verschieben von Pausen"
msgstr "Aufschieben von Pausen zulassen"
# Settings dialog
msgid "Persist the internal state"
msgstr "Internen Zustand persistieren"
msgstr "Internen Zustand beibehalten"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr ""
"RPC-Server benutzen, um Befehle während der Laufzeit empfangen zu können"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "Ohne RPC-Server werden Kommandozeilen-Befehle nicht funktionieren"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr "Lange Pausen müssen ein Vielfaches von kurzen Pausen lang dauern"
msgstr ""
"Das längere Pausenintervall muss ein Vielfaches des kurzen Pausenintervalls "
"betragen"
# Settings dialog
msgid "Reset"
msgstr ""
msgstr "Zurücksetzen"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
"Möchten Sie wirklich alle Einstellungen auf ihre Standardwerte zurücksetzen?"
# Settings dialog
msgid "Options"
@ -166,15 +193,15 @@ msgstr "Lange Pausen"
# Settings dialog
msgid "Delete"
msgstr ""
msgstr "Löschen"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr ""
msgstr "Sind Sie sicher, dass Sie diese Pause löschen möchten?"
# Settings dialog
msgid "You can't undo this action."
msgstr ""
msgstr "Dies kann nicht rückgängig gemacht werden."
# Settings dialog
msgid "Break"
@ -194,15 +221,15 @@ msgstr "Typ"
# Settings dialog
msgid "Short"
msgstr "kurz"
msgstr "Kurz"
# Settings dialog
msgid "Long"
msgstr "lang"
msgstr "Lang"
# Settings dialog
msgid "Image"
msgstr "Bild"
msgstr "Grafik"
# Settings dialog
msgid "Select"
@ -210,7 +237,7 @@ msgstr "Auswählen"
# Settings dialog
msgid "Please select an image"
msgstr "Bitte Bild auswählen"
msgstr "Bitte Grafik auswählen"
# Settings dialog
msgid "Duration"
@ -218,7 +245,7 @@ msgstr "Dauer"
# Settings dialog
msgid "Time to wait"
msgstr ""
msgstr "Wartezeit"
# Settings dialog
msgid "Override"
@ -234,28 +261,33 @@ msgstr "Zeit (in Minuten)"
# Settings dialog
msgid "Break Settings"
msgstr "Einstelllungen Pause"
msgstr "Pauseneinstellungen"
# Settings dialog
msgid "Plugin Settings"
msgstr "Einstellungen Plugin"
msgstr "Plugin-Einstellungen"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr "Plugin unterstützt Desktop-Umgebung %s nicht"
msgstr "Das Plugin unterstützt die Desktop-Umgebung %s nicht"
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr "Bitte Python-Module '%s' installieren"
msgstr "Bitte Python-Modul '%s' installieren"
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr "Bitte Programm '%s' für die Kommandozeile installieren"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Ungültiger Cron-Ausdruck „%s“"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
"Bitte in Verzeichnis %(config_resource)s Ressource %(resource)s hinzufügen"
"Bitte in Verzeichnis %(config_resource)s die Ressource %(resource)s "
"hinzufügen"
# Settings dialog
msgid "New Break"
@ -279,15 +311,15 @@ msgstr "Akustischer Alarm"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr ""
msgstr "Akustisches Signal vor und nach Pausen wiedergeben"
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr ""
msgstr "Akustisches Signal vor Pausen wiedergeben"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr ""
msgstr "Akustisches Signal nach Pausen wiedergeben"
# plugin/donotdisturb
msgid "Do Not Disturb"
@ -295,7 +327,8 @@ msgstr "Nicht stören"
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr "Pause überschringen wenn aktives Fenster im Vollbild-Modus"
msgstr ""
"Pause überspringen wenn sich aktives Fenster im Vollbild-Modus befindet"
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
@ -311,19 +344,19 @@ msgstr "Unterbrechbare Fenster in normalen Modus umschalten"
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr ""
msgstr "Nicht stören, solange das Gerät im Akkubetrieb ist"
# plugin/healthstats
msgid "Health Statistics"
msgstr "Statistik Gesundheit"
msgstr "Gesundheitsstatistik"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr "Statistik Gesundheit anzeigen"
msgstr "Gesundheitsstatistik anzeigen"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr ""
msgid "Statistics reset interval (cron expression)"
msgstr "Statistik-Rücksetzintervall (Cron-Ausdruck)"
# plugin/notification
msgid "Notification"
@ -351,7 +384,7 @@ msgstr "Nach langer Pause Bildschirm mit Bildschirmschoner sperren"
# plugin/screensaver
msgid "Custom screensaver command"
msgstr "Benutzerdefinierter Bezehl Bidschirmschoner"
msgstr "Benutzerdefinierter Bildschirmschoner-Befehl"
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
@ -359,7 +392,7 @@ msgstr "Mindestdauer Überspringen ohne Bildschirmschoner (in Sekunden)"
# plugin/screensaver
msgid "Lock screen"
msgstr ""
msgstr "Sperrbildschirm"
# plugin/smartpause
msgid "Smart Pause"
@ -379,7 +412,7 @@ msgstr "Mit Pausendauer gleiche Leerlaufdauer als Pause interpretieren"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr ""
msgstr "Nächste Pause verschieben, bis sich das System im Leerlauf befindet"
#: plugins/trayicon
msgid "Tray Icon"
@ -395,7 +428,7 @@ msgstr "Nächsten Pausen-Termin im Tray-Symbol anzeigen"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr ""
msgstr "Erlaube Safe Eyes zu deaktivieren"
#: plugins/trayicon
msgid "About"
@ -461,12 +494,16 @@ msgstr "Schließen"
# plugin/mediacontrol
msgid "Media Control"
msgstr ""
msgstr "Medienverwaltung"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr ""
msgstr "Medienwiedergabe im Pausenbildschirm anhalten"
# plugin/mediacontrol
msgid "Pause media"
msgstr ""
msgstr "Medien anhalten"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Zeit bis die Statistik zurückgesetzt wird (in Stunden)"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2017-09-17 07:59-0400\n"
"PO-Revision-Date: 2017-10-08 12:42+0000\n"
"Last-Translator: Gobinath L <lgobi20@gmail.com>\n"
"PO-Revision-Date: 2021-07-04 07:32+0000\n"
"Last-Translator: J. Lavoie <j.lavoie@net-c.ca>\n"
"Language-Team: English (United States) <https://hosted.weblate.org/projects/"
"safe-eyes/translations/en_US/>\n"
"Language: en_US\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2.17-dev\n"
"X-Generator: Weblate 4.8-dev\n"
"Generated-By: pygettext.py 1.5\n"
# Short break
@ -86,13 +86,23 @@ msgstr "print the status of running safeeyes instance and exit"
msgid "Safe Eyes is not running"
msgstr "Safe Eyes is not running"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
# About dialog
msgid "Close"
msgstr "Close"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
@ -126,8 +136,12 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Keyboard shortcuts disabled period (in seconds)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgstr "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Postponement duration (in minutes)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Show breaks in random order"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
@ -141,17 +155,25 @@ msgstr "Allow postponing breaks"
msgid "Persist the internal state"
msgstr "Persist the internal state"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Use RPC server to receive runtime commands"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "Without the RPC server, command-line commands may not work"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr "Long break interval must be a multiple of short break interval"
# Settings dialog
msgid "Reset"
msgstr ""
msgstr "Reset"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr "Are you sure you want to delete this break?"
msgstr "Are you sure you want to reset all settings to default?"
# Settings dialog
msgid "Options"
@ -253,6 +275,10 @@ msgstr "Please install the Python module '%s'"
msgid "Please install the command-line tool '%s'"
msgstr "Please install the command-line tool '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Invalid cron expression “%s”"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "Please add the resource %(resource)s to %(config_resource)s directory"
@ -322,8 +348,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Show statistics based on how you use Safe Eyes"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr "Interval to reset statistics (in hours)"
msgid "Statistics reset interval (cron expression)"
msgstr "Statistics reset interval (cron expression)"
# plugin/notification
msgid "Notification"
@ -359,7 +385,7 @@ msgstr "Minimum seconds to skip without screensaver"
# plugin/screensaver
msgid "Lock screen"
msgstr ""
msgstr "Lock screen"
# plugin/smartpause
msgid "Smart Pause"
@ -379,7 +405,7 @@ msgstr "Interpret idle time equivalent to upcoming break duration as a break"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr ""
msgstr "Postpone the next break until the system becomes idle"
#: plugins/trayicon
msgid "Tray Icon"
@ -461,12 +487,16 @@ msgstr "Quit"
# plugin/mediacontrol
msgid "Media Control"
msgstr ""
msgstr "Media Control"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr ""
msgstr "Pause media players from the break screen"
# plugin/mediacontrol
msgid "Pause media"
msgstr ""
msgstr "Pause media"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Interval to reset statistics (in hours)"

View File

@ -0,0 +1,502 @@
# SAFE EYES ESPERANTO TRANSLATION.
# Copyright (C) 2019 Jorge Maldonado Ventura
# Jorge Maldonado Ventura jorgesumle@freakspot.net, 2019.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2017-09-17 07:59-0400\n"
"PO-Revision-Date: 2021-05-21 15:32+0000\n"
"Last-Translator: Jorge Maldonado Ventura <jorgesumle@freakspot.net>\n"
"Language-Team: Esperanto <https://hosted.weblate.org/projects/safe-eyes/"
"translations/eo/>\n"
"Language: eo\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.7-dev\n"
"Generated-By: pygettext.py 1.5\n"
# Short break
msgid "Tightly close your eyes"
msgstr "Streĉe malfermu viajn okulojn"
# Short break
msgid "Roll your eyes a few times to each side"
msgstr "Movu viajn okulojn kelkfoje al ĉiu flanko"
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr "Turnu viajn okulojn horloĝdirekte"
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr "Turnu viajn okulojn kontraŭhorloĝdirekte"
# Short break
msgid "Blink your eyes"
msgstr "Palpebrumu"
# Short break
msgid "Focus on a point in the far distance"
msgstr "Fokusu malfermegan punkton"
# Short break
msgid "Have some water"
msgstr "Trinku kelke da akvo"
# Long break
msgid "Walk for a while"
msgstr "Promenu dum mallonga tempo"
# Long break
msgid "Lean back at your seat and relax"
msgstr "Klinu vin malantaŭen en via seĝo kaj malstreĉu"
# Commandline arg description
msgid "show the about dialog"
msgstr "montri la pri-dialogon"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "malebligi la nunan rulantan aperon de safeeyes"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "ebligi la nunan rulantan aperon de safeeyes"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "ĉesi la rulantan aperon de safeeyes kaj eliri"
# Commandline arg description
msgid "show the settings dialog"
msgstr "montri la dialogon de agordoj"
# Commandline arg description
msgid "start safeeyes in debug mode"
msgstr "komenci safeeyes-on en sencimiga reĝimo"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr "montri la staton de la rulanta apero de safeeyes kaj eliri"
# Status message
msgid "Safe Eyes is not running"
msgstr "Safe Eyes nun ne rulas"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes estas rulanta sen RPC-servilo. Ŝaltu ĝin por uzi komandliniajn "
"argumentojn."
# About dialog
msgid "Close"
msgstr "Malfemi"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr "Priskribo"
# About dialog
msgid "License"
msgstr "Licenco"
# Break screen
msgid "Skip"
msgstr "Preterpasi"
# Break screen
msgid "Postpone"
msgstr "Prokrasti"
# Settings dialog
msgid "Break duration (in seconds)"
msgstr "Daŭro de paŭzo (en sekundoj)"
# Settings dialog
msgid "Interval between two breaks (in minutes)"
msgstr "Intertempo inter du paŭzoj (en minutoj)"
# Settings dialog
msgid "Time to prepare for a break (in seconds)"
msgstr "Tempo por prepari por paŭzon (en sekundoj)"
# Settings dialog
msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Daŭro de malebligo de fulmoklavoj (en sekundoj)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgstr "Daŭro de prokrasto (en minutoj)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Montri paŭzojn en hazarda ordo"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Severa paŭzo (Ne eblas preterpasi paŭzojn)"
# Settings dialog
msgid "Allow postponing breaks"
msgstr "Lasi prokrasti paŭzojn"
# Settings dialog
msgid "Persist the internal state"
msgstr "Daŭri la internan staton"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Uzi RPC-servilon por ricevi rultempajn komandojn"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "Sen la RPC-servilo, komandliniaj komandoj eble ne funkcias"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr "Longa paŭza intertempo devas esti oblo de mallonga paŭza intertempo"
# Settings dialog
msgid "Reset"
msgstr "Restartigi"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr "Ĉu vi certe volas restarigi ĉiujn agordojn al defaŭlta?"
# Settings dialog
msgid "Options"
msgstr "Agordoj"
# Settings dialog
msgid "Short Breaks"
msgstr "Mallongaj Paŭzoj"
# Settings dialog
msgid "Long Breaks"
msgstr "Longaj Paŭzoj"
# Settings dialog
msgid "Delete"
msgstr "Forigi"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr "Ĉu vi certas, ke vi volas forigi ĉi tiun paŭzon?"
# Settings dialog
msgid "You can't undo this action."
msgstr "Vi ne povas malfari ĉi tiun agon."
# Settings dialog
msgid "Break"
msgstr "Paŭzo"
# Settings dialog
msgid "Breaks"
msgstr "Paŭzoj"
# Settings dialog
msgid "Plugins"
msgstr "Kromaĵoj"
# Settings dialog
msgid "Type"
msgstr "Tipo"
# Settings dialog
msgid "Short"
msgstr "Mallonga"
# Settings dialog
msgid "Long"
msgstr "Longa"
# Settings dialog
msgid "Image"
msgstr "Bildo"
# Settings dialog
msgid "Select"
msgstr "Elekti"
# Settings dialog
msgid "Please select an image"
msgstr "Bonvolu elekti bildon"
# Settings dialog
msgid "Duration"
msgstr "Daŭro"
# Settings dialog
msgid "Time to wait"
msgstr "Tempo por atendi"
# Settings dialog
msgid "Override"
msgstr "Transpasi"
# Settings dialog
msgid "Time (in seconds)"
msgstr "Tempo (sekunde)"
# Settings dialog
msgid "Time (in minutes)"
msgstr "Tempo (minute)"
# Settings dialog
msgid "Break Settings"
msgstr "Paŭzaj Agordoj"
# Settings dialog
msgid "Plugin Settings"
msgstr "Kromaĵaj Agordoj"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr "Kromaĵo ne subtenas %s-fenestrilon"
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr "Bonvolu instali la modulo de Python '%s'"
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr "Bonvolu instali la ilo de komanda linio '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Nevalida esprimo de cron '%s'"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
"Bonvolu aldoni la rimedon %(resource)s al %(config_resource)s-dosierujo"
# Settings dialog
msgid "New Break"
msgstr "Nova Paŭzo"
# Settings dialog
msgid "Remove"
msgstr "Forigi"
# Settings dialog
msgid "Discard"
msgstr "Forĵeti"
# Settings dialog
msgid "Save"
msgstr "Konservi"
# plugin/audiblealert
msgid "Audible Alert"
msgstr "Aŭdebla Alarmo"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr "Ludi aŭdeblan alarmon antaŭ kaj post paŭzoj"
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr "Ludi aŭdeblan alarmon antaŭ paŭzoj"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr "Ludi aŭdeblan alarmon post paŭzoj"
# plugin/donotdisturb
msgid "Do Not Disturb"
msgstr "Ne Interrompi"
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr "Preterpasi paŭzon, se la aktiva fenestro estas en plenekrana reĝimo"
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr "Ne interrompi ĉi tiujn fenestrojn iutempe"
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr "Interrompi ĉi tiujn fenestrojn senrespekte al ilia stato"
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr "Komuti la interrompeblan fenestron al normala reĝimo"
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr "Ne ĝeni dum bateria reĝimo"
# plugin/healthstats
msgid "Health Statistics"
msgstr "Sanaj Statistikoj"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr "Montri statistikojn bazita sur kiel vi uzas Safe Eyes"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "Daŭro por restarigi statistikojn (esprimo de cron)"
# plugin/notification
msgid "Notification"
msgstr "Sciigo"
# plugin/notification
msgid "Show a system notification before breaks"
msgstr "Montri sisteman sciigon antaŭ paŭzoj"
# plugin/notification
msgid "Ready for a short break in %s seconds"
msgstr "Preta por mallonga paŭzo en %s sekundoj"
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr "Preta por longa paŭzo en %s sekundoj"
# plugin/screensaver
msgid "Screensaver"
msgstr "Ekrankurteno"
# plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
msgstr "Bloki la ekranon post longaj paŭzoj ekigante ekrankurtenon"
# plugin/screensaver
msgid "Custom screensaver command"
msgstr "Propra ekrankurtena komando"
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr "Minimumaj sekundoj por preterpasi sen ekrankurteno"
# plugin/screensaver
msgid "Lock screen"
msgstr "Ŝlosi ekranon"
# plugin/smartpause
msgid "Smart Pause"
msgstr "Inteligenta Paŭzo"
# plugin/smartpause
msgid "Pause Safe Eyes if the system is idle"
msgstr "Paŭzi je Safe Eyes, se la sistemo estas senokupa"
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr "Minimuma senokupa tempo por paŭzi je Safe Eyes (en sekundoj)"
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr ""
"Interpreti senokupan tempon ekvivalentan al venonta daŭro de paŭzo kiel paŭzo"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr "Prokrasti la sekvan paŭzon ĝis la sistemo iĝas senokupa"
#: plugins/trayicon
msgid "Tray Icon"
msgstr "Trava Bildsimbolo"
#: plugins/trayicon
msgid "Show a tray icon in the notification area"
msgstr "Montri travan bildsimbolon en la sciiga zono"
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr "Montri sekvan tempon de paŭzo en pleta bildeto"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr "Permesi malebligi je Safe Eyes"
#: plugins/trayicon
msgid "About"
msgstr "Pri"
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr "Malebligi je Safe Eyes"
#: plugins/trayicon
msgid "Disabled until %s"
msgstr "Malebligita ĝis %s"
#: plugins/trayicon
msgid "Disabled until restart"
msgstr "Malebligita ĝis restartigo"
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr "Malebligi je Safe Eyes"
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] "Dum %d Horo"
msgstr[1] "Dum %d Horoj"
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] "Dum %d Minuto"
msgstr[1] "Dum %d Minutoj"
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] "Dum %d Sekundo"
msgstr[1] "Dum %d Sekundoj"
#: plugins/trayicon
msgid "Next break at %s"
msgstr "Sekva paŭzo je %s"
#: plugins/trayicon
msgid "No Breaks Available"
msgstr "Neniu Paŭzo Disponebla"
#: plugins/trayicon
msgid "Settings"
msgstr "Agordoj"
#: plugins/trayicon
msgid "Take a break now"
msgstr "Paŭzi nun"
#: plugins/trayicon
msgid "Until restart"
msgstr "Ĝis restarto"
#: plugins/trayicon
msgid "Quit"
msgstr "Forlasi"
# plugin/mediacontrol
msgid "Media Control"
msgstr "Aŭdovidaĵa Stiro"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr "Paŭzi plurmediajn ludilojn ene de la paŭza ekrano"
# plugin/mediacontrol
msgid "Pause media"
msgstr "Paŭzi aŭdovidaĵon"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Intertempo por restarigi statistikojn (en horoj)"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2019-02-28 11:53+0000\n"
"Last-Translator: Gobinath L <lgobi20@gmail.com>\n"
"PO-Revision-Date: 2021-03-25 08:29+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fitojb@ubuntu.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/safe-eyes/"
"translations/es/>\n"
"Language: es\n"
@ -15,63 +15,63 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.5-dev\n"
"X-Generator: Weblate 4.5.2-dev\n"
# Short break
msgid "Tightly close your eyes"
msgstr "Cierra fuertemente tus ojos"
msgstr "Cierre fuertemente los ojos"
# Short break
msgid "Roll your eyes a few times to each side"
msgstr "Pon los ojos en blanco hacia cada lado"
msgstr "Mueva los ojos de lado a lado varias veces"
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr "Mueve tus ojos en círculos en sentido horario"
msgstr "Gire los ojos en sentido horario"
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr "Mueve tus ojos en círculos en sentido antihorario"
msgstr "Gire los ojos en sentido antihorario"
# Short break
msgid "Blink your eyes"
msgstr "Parpadea tus ojos"
msgstr "Parpadee"
# Short break
msgid "Focus on a point in the far distance"
msgstr "Enfoca un punto lejano"
msgstr "Enfóquese en un punto distante"
# Short break
msgid "Have some water"
msgstr "Bebe un poco de agua"
msgstr "Beba un poco de agua"
# Long break
msgid "Walk for a while"
msgstr "Vete a andar un rato"
msgstr "Camine un rato"
# Long break
msgid "Lean back at your seat and relax"
msgstr "Reclínate sobre tu silla y relájate"
msgstr "Reclínese sobre su silla y relájese"
# Commandline arg description
msgid "show the about dialog"
msgstr "mostrar dialogo acerca de safeeyes"
msgstr "mostrar el cuadro de diálogo Acerca de"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "deshabilitar la instancia actual de safeeyes"
msgstr "desactivar el ejemplar de safeeyes en ejecución"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "habilitar la instancia actual de safeeyes"
msgstr "activar el ejemplar de safeeyes en ejecución"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "abandonar la instancia en curso de safeeyes"
msgstr "abandonar el ejemplar de safeeyes en ejecución y salir"
# Commandline arg description
msgid "show the settings dialog"
msgstr "muestra dialogo de configuraciones"
msgstr "mostrar el cuadro de diálogo Configuración"
# Commandline arg description
msgid "start safeeyes in debug mode"
@ -79,22 +79,32 @@ msgstr "iniciar safeeyes en modo de depuración"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr ""
msgstr "mostrar el estado del ejemplar de safeeyes en ejecución y salir"
# Status message
msgid "Safe Eyes is not running"
msgstr "Safe Eyes no se está ejecutando"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes está funcionando sin un servidor RPC. Actívelo para usar "
"argumentos de línea de órdenes."
# About dialog
msgid "Close"
msgstr "Cerrar"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes protege tus ojos de la fatiga visual (astenopía), recordándote "
"tomar descansos cuando estás trabajando muchas horas en el ordenador"
"Safe Eyes protege sus ojos de la fatiga visual (astenopía), recordándole "
"tomar descansos cuando ha trabajando muchas horas en el ordenador"
# About dialog
msgid "License"
@ -125,9 +135,13 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Período de desactivación de los atajos de teclado (en segundos)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Duración de cada posposición (en minutos)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Mostrar descansos al azar"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Descanso estricto (no hay forma de saltarlo)"
@ -138,19 +152,33 @@ msgstr "Permitir posponer los descansos"
# Settings dialog
msgid "Persist the internal state"
msgstr "Estado interno persistente"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Utilizar el servidor RPC para recibir órdenes en tiempo de ejecución"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr ""
"Sin el servidor RPC, las órdenes ejecutadas en el terminal pueden no "
"funcionar"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
"El intervalo de descanso largo debe ser un múltiplo del intervalo de "
"descanso corto"
# Settings dialog
msgid "Reset"
msgstr ""
msgstr "Restablecer"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
"¿Confirma que quiere restablecer todos los ajustes a sus valores "
"predeterminados?"
# Settings dialog
msgid "Options"
@ -162,27 +190,27 @@ msgstr "Descansos cortos"
# Settings dialog
msgid "Long Breaks"
msgstr ""
msgstr "Descansos largos"
# Settings dialog
msgid "Delete"
msgstr ""
msgstr "Eliminar"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr ""
msgstr "¿Confirma que quiere eliminar este descanso?"
# Settings dialog
msgid "You can't undo this action."
msgstr ""
msgstr "Esta acción no se puede deshacer."
# Settings dialog
msgid "Break"
msgstr ""
msgstr "Descanso"
# Settings dialog
msgid "Breaks"
msgstr ""
msgstr "Descansos"
# Settings dialog
msgid "Plugins"
@ -210,19 +238,19 @@ msgstr "Seleccionar"
# Settings dialog
msgid "Please select an image"
msgstr "Por favor seleccione una imagen"
msgstr "Seleccione una imagen"
# Settings dialog
msgid "Duration"
msgstr "Duracion"
msgstr "Duración"
# Settings dialog
msgid "Time to wait"
msgstr ""
msgstr "Tiempo de espera"
# Settings dialog
msgid "Override"
msgstr ""
msgstr "Anular"
# Settings dialog
msgid "Time (in seconds)"
@ -234,35 +262,39 @@ msgstr "Tiempo (en minutos)"
# Settings dialog
msgid "Break Settings"
msgstr ""
msgstr "Configuración de descansos"
# Settings dialog
msgid "Plugin Settings"
msgstr "Ajustes de plugins"
msgstr "Configuración de complementos"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr "El complemento no es compatible %s con el entorno de escritorio"
msgstr "El complemento no admite el entorno de escritorio %s"
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr "Por favor instale el módulo de Python '%s'"
msgstr "Instale el módulo de Python «%s»"
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr "Por favor, instale la herramienta línea de comandos '%s'"
msgstr "Instale la herramienta de línea de órdenes «%s»"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "La expresión de cron «%s» no es válida"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
msgstr "Añada el recurso %(resource)s al directorio %(config_resource)s"
# Settings dialog
msgid "New Break"
msgstr "Nueva pausa"
msgstr "Descanso nuevo"
# Settings dialog
msgid "Remove"
msgstr "Eliminar"
msgstr "Quitar"
# Settings dialog
msgid "Discard"
@ -274,19 +306,19 @@ msgstr "Guardar"
# plugin/audiblealert
msgid "Audible Alert"
msgstr ""
msgstr "Alerta audible"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr ""
msgstr "Reproducir una alerta audible antes y después de los descansos"
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr ""
msgstr "Reproducir una alerta audible antes de los descansos"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr ""
msgstr "Reproducir una alerta audible después de los descansos"
# plugin/donotdisturb
msgid "Do Not Disturb"
@ -298,19 +330,19 @@ msgstr "Saltar descanso si la ventana activa está en modo pantalla completa"
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr ""
msgstr "Nunca interrumpir estas ventanas"
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr ""
msgstr "Interrumpir estas ventanas sin importar su estado"
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr ""
msgstr "Cambiar las ventanas interrumplibles al modo normal"
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr ""
msgstr "No molestar mientras se usa la batería"
# plugin/healthstats
msgid "Health Statistics"
@ -321,8 +353,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Mostrar estadísticas basadas en cómo usa Safe Eyes"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr ""
msgid "Statistics reset interval (cron expression)"
msgstr "Tiempo para restablecer estadísticas (expresión cron)"
# plugin/notification
msgid "Notification"
@ -347,18 +379,19 @@ msgstr "Salvapantallas"
# plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
msgstr ""
"Bloquear la pantalla después de descansos largos iniciando el salvapantallas"
# plugin/screensaver
msgid "Custom screensaver command"
msgstr ""
msgstr "Orden personalizada del salvapantallas"
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr ""
msgstr "Mínimo de segundos para saltar sin salvapantallas"
# plugin/screensaver
msgid "Lock screen"
msgstr ""
msgstr "Bloquear pantalla"
# plugin/smartpause
msgid "Smart Pause"
@ -375,10 +408,12 @@ msgstr "Tiempo minimo inactivo para pausar Safe Eyes (en segundos)"
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr ""
"Interpretar como un descanso el tiempo de inactividad equivalente a la "
"duración del próximo descanso"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr ""
msgstr "Posponer el siguiente descanso hasta que el sistema quede inactivo"
#: plugins/trayicon
msgid "Tray Icon"
@ -390,11 +425,11 @@ msgstr "Mostrar un icono de bandeja en el área de notificacion"
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr ""
msgstr "Mostrar el tiempo del siguiente descanso en la barra de tareas"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr ""
msgstr "Permitir desactivar Safe Eyes"
#: plugins/trayicon
msgid "About"
@ -402,37 +437,37 @@ msgstr "Acerca de"
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr "Deshabilitar Safe Eyes"
msgstr "Desactivar Safe Eyes"
#: plugins/trayicon
msgid "Disabled until %s"
msgstr "Deshabilitado hasta"
msgstr "Desactivado hasta %s"
#: plugins/trayicon
msgid "Disabled until restart"
msgstr "Deshabilitado hasta reiniciar"
msgstr "Desactivado hasta reiniciar"
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr "Habilitar Safe Eyes"
msgstr "Activar Safe Eyes"
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] ""
msgstr[1] ""
msgstr[0] "Por %d hora"
msgstr[1] "Por %d horas"
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] ""
msgstr[1] ""
msgstr[0] "Por %d minuto"
msgstr[1] "Por %d minutos"
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] ""
msgstr[1] ""
msgstr[0] "Por %d segundo"
msgstr[1] "Por %d segundos"
#: plugins/trayicon
msgid "Next break at %s"
@ -444,7 +479,7 @@ msgstr "No hay pausas disponibles"
#: plugins/trayicon
msgid "Settings"
msgstr "Ajustes"
msgstr "Configuración"
#: plugins/trayicon
msgid "Take a break now"
@ -460,12 +495,16 @@ msgstr "Salir"
# plugin/mediacontrol
msgid "Media Control"
msgstr ""
msgstr "Control multimedia"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr ""
msgstr "Pausar los reproductores de medios desde la pantalla de descanso"
# plugin/mediacontrol
msgid "Pause media"
msgstr ""
msgstr "Pausar multimedia"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Intervalo para restablecer estadísticas (en horas)"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2019-01-19 13:21+0000\n"
"PO-Revision-Date: 2021-02-18 00:50+0000\n"
"Last-Translator: Kristjan Räts <kristjanrats@gmail.com>\n"
"Language-Team: Estonian <https://hosted.weblate.org/projects/safe-eyes/"
"translations/et/>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.4-dev\n"
"X-Generator: Weblate 4.5\n"
# Short break
msgid "Tightly close your eyes"
@ -85,13 +85,23 @@ msgstr "väljasta hetkel töötava safeeyes instantsi staatus ja välju"
msgid "Safe Eyes is not running"
msgstr "Safe Eyes ei tööta hetkel"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes töötab RPC serverita. Käsurea parameetrite kasutamiseks lülita ta "
"sisse."
# About dialog
msgid "Close"
msgstr "Sulge"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes aitab vähendada arvutiga töötamisel silmade väsimust, tuletades "
"meelde puhkepause"
@ -125,9 +135,13 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Klaviatuurikäskude eiramise aeg (sekundit)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Edasilükkamise aeg (minutites)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Kuva pausid juhuslikus järjekorras"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Range paus (ei ole võimalik vahele jätta)"
@ -140,17 +154,25 @@ msgstr "Pauside edasilükkamine lubatud"
msgid "Persist the internal state"
msgstr "Sisemise seisundi säilitamine"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Kasuta RPC serverit käitusaja käskude vastuvõtuks"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "Käsurea parameetrid ei pruugi töötada RPC serverita"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr "Pika pausi intervall peab olema lühikese pausi pikkuse kordne"
# Settings dialog
msgid "Reset"
msgstr ""
msgstr "Lähtesta"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
msgstr "Kas sa oled kõigi seadete lähtestamises kindel?"
# Settings dialog
msgid "Options"
@ -252,6 +274,10 @@ msgstr "Palun paigalda järgnev Pythoni moodul: '%s'"
msgid "Please install the command-line tool '%s'"
msgstr "Palun paigalda järgnev käsurea tööriist: '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Vigane croni väljend '%s'"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "Palun lisa ressurss %(resource)s kataloogi %(config_resource)s"
@ -286,7 +312,7 @@ msgstr "Mängi helisignaali enne pausi"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr ""
msgstr "Mängi pauside järel kuuldavad märguanded"
# plugin/donotdisturb
msgid "Do Not Disturb"
@ -321,8 +347,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Programmikasutuse statistika kuvamine"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr ""
msgid "Statistics reset interval (cron expression)"
msgstr "Statistika lähtestamise intervall (croni väljend)"
# plugin/notification
msgid "Notification"
@ -394,7 +420,7 @@ msgstr "Näita järgmise pausi aega paneeliikooni kõrval"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr ""
msgstr "Luba Safe Eyes keelamine"
#: plugins/trayicon
msgid "About"
@ -469,3 +495,7 @@ msgstr "Peata meediapleiereid pausikuvalt"
# plugin/mediacontrol
msgid "Pause media"
msgstr "Peata meedia"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Statistika lähtestamise intervall (tundides)"

View File

@ -0,0 +1,502 @@
# SAFE EYES ENGLISH TRANSLATION.
# Copyright (C) 2017 Gobinath
# Gobinath slgobinath@gmail.com, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2023-01-07 11:49+0000\n"
"Last-Translator: Porrumentzio <porrumentzio@riseup.net>\n"
"Language-Team: Basque <https://hosted.weblate.org/projects/safe-eyes/"
"translations/eu/>\n"
"Language: eu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.15.1-dev\n"
# Short break
msgid "Tightly close your eyes"
msgstr "Itxi begiak indarrez"
# Short break
msgid "Roll your eyes a few times to each side"
msgstr "Mugitu begiak aldez alde"
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr "Biratu begiak erloju-orratzen noranzkoan"
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr "Biratu begiak erloju-orratzen kontrako noranzkoan"
# Short break
msgid "Blink your eyes"
msgstr "Kliskatu begiak"
# Short break
msgid "Focus on a point in the far distance"
msgstr "Fokuratu urruneko puntu bat"
# Short break
msgid "Have some water"
msgstr "Edan ur pixka bat"
# Long break
msgid "Walk for a while"
msgstr "Ibili pixka batean"
# Long break
msgid "Lean back at your seat and relax"
msgstr "Jarri bizkarra aulkiaren kontra eta erlaxatu"
# Commandline arg description
msgid "show the about dialog"
msgstr "erakutsi \"honi buruz\" elkarrizketa-koadroa"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "desgaitu uneko safeeyes instantzia"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "gaitu uneko safeeyes instantzia"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "itxi uneko safeeyes instantzia eta irten"
# Commandline arg description
msgid "show the settings dialog"
msgstr "erakutsi ezarpenak"
# Commandline arg description
msgid "start safeeyes in debug mode"
msgstr "abiarazi safeeyes arazketa moduan"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr "inprimatu uneko safeeyes instantziaren egoera eta irten"
# Status message
msgid "Safe Eyes is not running"
msgstr "Safe Eyes ez dago martxan"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"RPC zerbitzaririk gabe ari da exekutatzen Safe Eyes. Piztu zerbitzaria "
"komando-lerroko argumentuak erabiltzeko."
# About dialog
msgid "Close"
msgstr "Itxi"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes-ek begi-neketik (astenopiatik) babesten zaitu ordenagailuan ordu "
"luzez zabiltzanean etenaldiak egiteko gogoraraziz"
# About dialog
msgid "License"
msgstr "Lizentzia"
# Break screen
msgid "Skip"
msgstr "Saltatu"
# Break screen
msgid "Postpone"
msgstr "Atzeratu"
# Settings dialog
msgid "Break duration (in seconds)"
msgstr "Etenaldiaren iraupena (segundotan)"
# Settings dialog
msgid "Interval between two breaks (in minutes)"
msgstr "Bi etenaldiren arteko tartea (minututan)"
# Settings dialog
msgid "Time to prepare for a break (in seconds)"
msgstr "Etenaldirako prestatzeko denbora (segundotan)"
# Settings dialog
msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Laster-teklak desgaitutako aldia (segundotan)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgstr "Atzerapenaren iraupena (minututan)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Erakutsi etenaldiak ausazko ordenan"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Etenaldi zorrotza (saltatzeko modurik ez)"
# Settings dialog
msgid "Allow postponing breaks"
msgstr "Baimendu etenaldiak atzeratzea"
# Settings dialog
msgid "Persist the internal state"
msgstr "Eutsi barruko egoerari"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Erabili RPC zerbitzaria exekuzio-denboraren komanduak jasotzeko"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "RPC zerbitzaririk gabe, komandu-lineako komanduek ez dute funtzionatuko"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
"Etenaldi luzeen arteko tarteak motzen arteko tartearen multiploa izan behar "
"du"
# Settings dialog
msgid "Reset"
msgstr "Berrezarri"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr "Ziur ezarpen guztiak lehenetsietara berrezarri nahi dituzula?"
# Settings dialog
msgid "Options"
msgstr "Aukerak"
# Settings dialog
msgid "Short Breaks"
msgstr "Etenaldi motzak"
# Settings dialog
msgid "Long Breaks"
msgstr "Etenaldi luzeak"
# Settings dialog
msgid "Delete"
msgstr "Ezabatu"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr "Ziur etenaldi hau ezabatu nahi duzula?"
# Settings dialog
msgid "You can't undo this action."
msgstr "Ekintza hau ezin da desegin."
# Settings dialog
msgid "Break"
msgstr "Etenaldia"
# Settings dialog
msgid "Breaks"
msgstr "Etenaldiak"
# Settings dialog
msgid "Plugins"
msgstr "Gehigarriak"
# Settings dialog
msgid "Type"
msgstr "Mota"
# Settings dialog
msgid "Short"
msgstr "Motza"
# Settings dialog
msgid "Long"
msgstr "Luzea"
# Settings dialog
msgid "Image"
msgstr "Irudia"
# Settings dialog
msgid "Select"
msgstr "Aukeratu"
# Settings dialog
msgid "Please select an image"
msgstr "Aukeratu irudi bat"
# Settings dialog
msgid "Duration"
msgstr "Iraupena"
# Settings dialog
msgid "Time to wait"
msgstr "Itxaroteko denbora"
# Settings dialog
msgid "Override"
msgstr "Ezikusi"
# Settings dialog
msgid "Time (in seconds)"
msgstr "Denbora (segundotan)"
# Settings dialog
msgid "Time (in minutes)"
msgstr "Denbora (minututan)"
# Settings dialog
msgid "Break Settings"
msgstr "Etenaldien ezarpenak"
# Settings dialog
msgid "Plugin Settings"
msgstr "Gehigarriaren ezarpenak"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr "Gehigarriak ez du %s ingurune-grafikoa onartzen"
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr "Instalatu '%s' Python modulua"
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr "Instalatu '%s' komandu-lerroko tresna"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Baliogabeko '%s' cron adierazpena"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "Gehitu %(resource)s baliabidea %(config_resource)s direktorioan"
# Settings dialog
msgid "New Break"
msgstr "Etenaldi berria"
# Settings dialog
msgid "Remove"
msgstr "Kendu"
# Settings dialog
msgid "Discard"
msgstr "Baztertu"
# Settings dialog
msgid "Save"
msgstr "Gorde"
# plugin/audiblealert
msgid "Audible Alert"
msgstr "Abisu entzungarria"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr "Erreproduzitu abisu entzungarri bat etenaldien aurretik eta ondoren"
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr "Erreproduzitu abisu entzungarria etenaldien aurretik"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr "Erreproduzitu abisu entzungarria etenaldien ondoren"
# plugin/donotdisturb
msgid "Do Not Disturb"
msgstr "Ez molestatu"
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr "Saltatu etenaldia leiho aktiboa pantaila osoan badago"
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr "Ez eten honako leihoetan inoiz ere"
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr "Eten honako leihoetan haien egoerari erreparatu gabe"
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr "Aldatu leiho etenezinak modu normalera"
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr "Ez molestatu bateriarekin nagoenean"
# plugin/healthstats
msgid "Health Statistics"
msgstr "Osasun estatistikak"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr "Erakutsi estatistikak Safe Eyes nola erabiltzen duzun ikusita"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "Estatistikak berrezartzeko tartea (cron adierazpena)"
# plugin/notification
msgid "Notification"
msgstr "Jakinarazpena"
# plugin/notification
msgid "Show a system notification before breaks"
msgstr "Erakutsi sistemako jakinarazpen bat etenaldien aurretik"
# plugin/notification
msgid "Ready for a short break in %s seconds"
msgstr "Prestatu %s segundo barru etenaldi motza egiteko"
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr "Prestatu %s segundo barru etenaldi luzea egiteko"
# plugin/screensaver
msgid "Screensaver"
msgstr "Pantaila babeslea"
# plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
msgstr ""
"Blokeatu pantaila etenaldi luzeen ondoren eta erakutsi pantaila-babeslea"
# plugin/screensaver
msgid "Custom screensaver command"
msgstr "Pantaila-babeslearentzako komando pertsonalizatua"
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr "Pantaila-babesle erakutsi gabe saltatzeko segundoak"
# plugin/screensaver
msgid "Lock screen"
msgstr "Blokeatu pantaila"
# plugin/smartpause
msgid "Smart Pause"
msgstr "Geldialdi adimenduna"
# plugin/smartpause
msgid "Pause Safe Eyes if the system is idle"
msgstr "Pausatu Safe Eyes sistema inaktibo badago"
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr "Safe Eyes pausatzeko pasa behar den denbora inaktiboa (segundotan)"
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr ""
"Tratatu denbora inaktiboa etenaldi gisa, inaktibo emandako denbora datorren "
"etenaldiaren iraupen berekoa izan bada"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr "Atzeratu hurrengo etenaldia sistema inaktibo egon arte"
#: plugins/trayicon
msgid "Tray Icon"
msgstr "Erretiluko ikonoa"
#: plugins/trayicon
msgid "Show a tray icon in the notification area"
msgstr "Erakutsi erretiluko ikonoa jakinarazpenen eremuan"
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr "Erakutsi hurrengo etenaldia erretiluko ikonoan"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr "Baimendu Safe Eyes desgaitzea"
#: plugins/trayicon
msgid "About"
msgstr "Honi buruz"
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr "Desgaitu Safe Eyes"
#: plugins/trayicon
msgid "Disabled until %s"
msgstr "%s arte desgaituta"
#: plugins/trayicon
msgid "Disabled until restart"
msgstr "Berrabiarazi arte desgaituta"
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr "Gaitu Safe Eyes"
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] "Ordu %dez"
msgstr[1] "%d orduz"
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] "Minutu %dez"
msgstr[1] "%d minutuz"
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] "Segundo %dez"
msgstr[1] "%d segundoz"
#: plugins/trayicon
msgid "Next break at %s"
msgstr "Hurrengo etenaldia: %s"
#: plugins/trayicon
msgid "No Breaks Available"
msgstr "Etenaldirik ez erabilgarri"
#: plugins/trayicon
msgid "Settings"
msgstr "Ezarpenak"
#: plugins/trayicon
msgid "Take a break now"
msgstr "Egin orain etenaldia"
#: plugins/trayicon
msgid "Until restart"
msgstr "Berrabiarazi arte"
#: plugins/trayicon
msgid "Quit"
msgstr "Irten"
# plugin/mediacontrol
msgid "Media Control"
msgstr "Multimediaren kontrola"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr "Pausatu multimedia etenaldiaren pantailatik"
# plugin/mediacontrol
msgid "Pause media"
msgstr "Pausatu multimedia"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2017-11-03 06:48+0000\n"
"Last-Translator: Misagh <misaghlb@gmail.com>\n"
"PO-Revision-Date: 2022-07-07 10:18+0000\n"
"Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
"Language-Team: Persian <https://hosted.weblate.org/projects/safe-eyes/"
"translations/fa/>\n"
"Language: fa\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 2.18-dev\n"
"X-Generator: Weblate 4.13.1-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -27,11 +27,11 @@ msgstr "چندبار چشمانتان را به اطراف بچرخانید"
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr "]چشم هایتان را در جهت عقربه های ساعت بچرخانید"
msgstr "چشمانتان را ساعتگرد بچرخانید"
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr "چشم هایتان را در خلاف جهت عقربه های ساعت بچرخانید"
msgstr "چشمانتان را پادساعتگرد بچرخانید"
# Short break
msgid "Blink your eyes"
@ -59,31 +59,39 @@ msgstr "نشان دادن پنجره درباره"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "غیرفعال کردن نمونه safeeyes درحال اجرا"
msgstr "از کار انداختن نمونهٔ محافظ چشم در حال اجرا"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "فعال کردن نمونه safeeyes درحال اجرا"
msgstr "به کار انداختن نمونهٔ محافظ چشم در حال اجرا"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "بستن و خروج از safeeyes در حال اجرا"
msgstr "بستن و خروج از نمونهٔ محافظ چشم در حال اجرا"
# Commandline arg description
msgid "show the settings dialog"
msgstr "نشان دادن پنجره تنظیمات"
msgstr "نمایش گفت‌وگوی تنظیمات"
# Commandline arg description
msgid "start safeeyes in debug mode"
msgstr "اجرا کردن safeeyes در حالت دیباگ"
msgstr "اجرای محافظ چشم در حالت رفع اشکال"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr ""
msgstr "چاپ وضعیت نمونهٔ محافظ چشم در جال اجرا و خروج"
# Status message
msgid "Safe Eyes is not running"
msgstr "محافظ چشم اجرا نمی‌شود"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"محافظ چشم دارد بدون کارساز RPC اجرا می‌شود. برای استفاده از آرگومان‌های خط "
"فرمان، روشنش کنید."
# About dialog
msgid "Close"
@ -91,378 +99,403 @@ msgstr "بستن"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes .با یاد آوری شما برای استراحت کردن، وقتی ساعت های طولانی را در "
"پشت کامپیوتر سپری میکنید. از تضعیف چشم های شما جلوگیری میکند"
"محافظ چشم با یادآوردی استراحت هنگام کار طولانی با رایانه، از چشمانتان در "
"برابر خشتگی جشم (استنوپیا) محافظت می‌کند"
# About dialog
msgid "License"
msgstr "لایسنس"
msgstr "پروانه"
# Break screen
msgid "Skip"
msgstr "رد کردن"
msgstr "پرش"
# Break screen
msgid "Postpone"
msgstr ""
msgstr "تعویق"
# Settings dialog
msgid "Break duration (in seconds)"
msgstr ""
msgstr "زمان استراحت (به ثانیه)"
# Settings dialog
msgid "Interval between two breaks (in minutes)"
msgstr ""
msgstr "بازهٔ بین دو استراحت (به دقیقه)"
# Settings dialog
msgid "Time to prepare for a break (in seconds)"
msgstr ""
msgstr "زمان آمادگی برای استراحت (به ثانیه)"
# Settings dialog
msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr ""
msgstr "دورهٔ از کار افتادن میان‌برهای صفحه کلید (به ثانیه)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgstr ""
msgid "Postponement duration (in minutes)"
msgstr "زمان تعویق (به دقیقه)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "نمایش استراحت‌ها به ترتیب کاتوره‌ای"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr ""
msgstr "استراحت قاطع ( بدون راهی برای پرش از استراحت)"
# Settings dialog
msgid "Allow postponing breaks"
msgstr ""
msgstr "اجازه به تعویق استراحت‌ها"
# Settings dialog
msgid "Persist the internal state"
msgstr ""
msgstr "ادامه وضعیت داخلی"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "استفاده از کارساز RPC برای دریافت دستورات زمان اجرا"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "بدون کارساز RPC ممکن است دستورات خط فرمان نکنند"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
msgstr "دورهٔ استراحت طولانی باید مضربی از دوره‌های استراحت کوتاه باشد"
# Settings dialog
msgid "Reset"
msgstr ""
msgstr "بازنشانی"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
msgstr "مطمئنید که می‌خواهید تمامی تنظیمات را به پیش‌گزیده بازنشانی کنید؟"
# Settings dialog
msgid "Options"
msgstr ""
msgstr "گزینه‌ها"
# Settings dialog
msgid "Short Breaks"
msgstr ""
msgstr "استراحت‌های کوتاه"
# Settings dialog
msgid "Long Breaks"
msgstr ""
msgstr "استراحت‌های طولانی"
# Settings dialog
msgid "Delete"
msgstr ""
msgstr "حذف"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr ""
msgstr "مطمئنید که می‌خواهید این استراحت را حذف کنید؟"
# Settings dialog
msgid "You can't undo this action."
msgstr ""
msgstr "نمی توانید این عملکرد را واگرد کنید."
# Settings dialog
msgid "Break"
msgstr ""
msgstr "استراحت"
# Settings dialog
msgid "Breaks"
msgstr ""
msgstr "استراحت‌ها"
# Settings dialog
msgid "Plugins"
msgstr ""
msgstr "افزایه‌ها"
# Settings dialog
msgid "Type"
msgstr ""
msgstr "گونه"
# Settings dialog
msgid "Short"
msgstr ""
msgstr "کوتاه"
# Settings dialog
msgid "Long"
msgstr ""
msgstr "طولانی"
# Settings dialog
msgid "Image"
msgstr ""
msgstr "تصویر"
# Settings dialog
msgid "Select"
msgstr ""
msgstr "گزینش"
# Settings dialog
msgid "Please select an image"
msgstr ""
msgstr "لطفاً تصویری برگزینید"
# Settings dialog
msgid "Duration"
msgstr ""
msgstr "طول"
# Settings dialog
msgid "Time to wait"
msgstr ""
msgstr "زمان انتظار"
# Settings dialog
msgid "Override"
msgstr ""
msgstr "پایمالی"
# Settings dialog
msgid "Time (in seconds)"
msgstr ""
msgstr "زمان (به ثانیه)"
# Settings dialog
msgid "Time (in minutes)"
msgstr ""
msgstr "زمان (به دقیقه)"
# Settings dialog
msgid "Break Settings"
msgstr ""
msgstr "تنظیمات استراحت"
# Settings dialog
msgid "Plugin Settings"
msgstr ""
msgstr "تنظیمات افزایه"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr ""
msgstr "افزایه از محیط میزکار %s پشتیبانی نمی‌کند"
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr ""
msgstr "لطفاً پیمانهٔ %s پایتون را نصب کنید"
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr ""
msgstr "لطفاً ابزار خط فرمان %s را نصب کنید"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "عبارت کرون نامعتبر «%s»"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
msgstr "لطفا منبع %(resource)s را به شاخهٔ %(config_resource)s بیفزایید"
# Settings dialog
msgid "New Break"
msgstr ""
msgstr "استراحت جدید"
# Settings dialog
msgid "Remove"
msgstr ""
msgstr "برداشتن"
# Settings dialog
msgid "Discard"
msgstr ""
msgstr "دور انداختن"
# Settings dialog
msgid "Save"
msgstr ""
msgstr "ذخیره"
# plugin/audiblealert
msgid "Audible Alert"
msgstr ""
msgstr "هشدار شنیدنی"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr ""
msgstr "پخش هشدار صوتی پیش و پس از استراحت‌ها"
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr ""
msgstr "پخش هشدار صوتی پیش از استراحت‌ها"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr ""
msgstr "پخش هشدار صوتی پس از استراحت‌ها"
# plugin/donotdisturb
msgid "Do Not Disturb"
msgstr ""
msgstr "مزاحم نشوید"
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr ""
msgstr "اگر پنجره فعال در حالت تمام صفحه است ، از پرش صرف نظر کنید"
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr ""
msgstr "این پنجره‌ها هرگز دچار وقفه نشوند"
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr ""
msgstr "وقفه دادن این پنجره‌ها فارغ از وضعیتشان"
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr ""
msgstr "تغییر پنچره‌های وقفه‌پذیر به حالت عادی"
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr ""
msgstr "در هنگام شارژ باتری مزاحم نشوید"
# plugin/healthstats
msgid "Health Statistics"
msgstr ""
msgstr "آمار سلامتی"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
msgstr "نمایش آماری بر پایهٔ چگونگی استفاده‌تان از محافظ چشم"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr ""
msgid "Statistics reset interval (cron expression)"
msgstr "بازهٔ بازنشانی آمار (عبارت کرون)"
# plugin/notification
msgid "Notification"
msgstr ""
msgstr "آگاهی"
# plugin/notification
msgid "Show a system notification before breaks"
msgstr ""
msgstr "نمایش یک آگاهی سامانه پیش از استراحت‌ها"
# plugin/notification
msgid "Ready for a short break in %s seconds"
msgstr ""
msgstr "آماده برای استراحتی کوتاه در %s ثانیه"
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr ""
msgstr "آماده برای استراحتی طولانی در %s ثانیه"
# plugin/screensaver
msgid "Screensaver"
msgstr ""
msgstr "محافظ صفحه"
# plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
msgstr ""
msgstr "قفل صفحه پس از استراحت‌های طولانی با آغاز محافظ صفحه"
# plugin/screensaver
msgid "Custom screensaver command"
msgstr ""
msgstr "دستور محافظ صفحه نمایش سفارشی"
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr ""
msgstr "کمینهٔ ثانیه‌ها برای پرش بدون محافظ صفحه"
# plugin/screensaver
msgid "Lock screen"
msgstr ""
msgstr "صفحه قفل"
# plugin/smartpause
msgid "Smart Pause"
msgstr ""
msgstr "مکث هوشمند"
# plugin/smartpause
msgid "Pause Safe Eyes if the system is idle"
msgstr ""
msgstr "مکث محافظ چشم در صورت بی‌کاری سامانه"
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr ""
msgstr "کمینهٔ زمان بیکاری برای مکث محافظ چشم (به ثانیه)"
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr ""
msgstr "وقفهٔ زمان بیکاری معادل زمان استراحت پیش رو به عنوان یک استراحت"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr ""
msgstr "تعویق استراحت بعدی تا زمان بیکار شدن سامانه"
#: plugins/trayicon
msgid "Tray Icon"
msgstr ""
msgstr "نقشک سینی"
#: plugins/trayicon
msgid "Show a tray icon in the notification area"
msgstr ""
msgstr "نمایش نقشک سینی در ناحیهٔ آگاهی"
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr ""
msgstr "نمایش زمان استراحت بعدی در نقشک سینی"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr ""
msgstr "اجازه به از کار انداختن محافظ چشم"
#: plugins/trayicon
msgid "About"
msgstr ""
msgstr "درباره"
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr ""
msgstr "از کار انداختن محافظ چشم"
#: plugins/trayicon
msgid "Disabled until %s"
msgstr ""
msgstr "از کار افتاده تا %s"
#: plugins/trayicon
msgid "Disabled until restart"
msgstr ""
msgstr "از کار افتاده تا آغاز دوباره"
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr ""
msgstr "به کار انداختن محافظ چشم"
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] ""
msgstr[0] "برای ۱ ساعت"
msgstr[1] "برای %Id ساعت"
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] ""
msgstr[0] "برای ۱ دقیقه"
msgstr[1] "برای %Id دقیقه"
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] ""
msgstr[0] "برای ۱ ثانیه"
msgstr[1] "برای %dI ثانیه"
#: plugins/trayicon
msgid "Next break at %s"
msgstr ""
msgstr "استراحت بعدی در %s"
#: plugins/trayicon
msgid "No Breaks Available"
msgstr ""
msgstr "هیچ استراحتی موجود نیست"
#: plugins/trayicon
msgid "Settings"
msgstr ""
msgstr "تنظیمات"
#: plugins/trayicon
msgid "Take a break now"
msgstr ""
msgstr "اکنون استراحت کنید"
#: plugins/trayicon
msgid "Until restart"
msgstr ""
msgstr "تا آغاز دوباره"
#: plugins/trayicon
msgid "Quit"
msgstr ""
msgstr "خروج"
# plugin/mediacontrol
msgid "Media Control"
msgstr ""
msgstr "واپایش رسانه"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr ""
msgstr "مکث پخش‌کننده‌های رسانه در صفحهٔ استراحت"
# plugin/mediacontrol
msgid "Pause media"
msgstr ""
msgstr "مکث رسانه"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "فاصله برای تنظیم مجدد آمار (در چند ساعت)"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2019-03-06 09:58+0000\n"
"Last-Translator: LocLab fr <ao@localizationlab.org>\n"
"PO-Revision-Date: 2022-01-11 15:55+0000\n"
"Last-Translator: AO Localisation Lab <ao@localizationlab.org>\n"
"Language-Team: French <https://hosted.weblate.org/projects/safe-eyes/"
"translations/fr/>\n"
"Language: fr\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.5\n"
"X-Generator: Weblate 4.10.1\n"
# Short break
msgid "Tightly close your eyes"
@ -59,15 +59,15 @@ msgstr "afficher la boîte de dialogue À propos"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "désactiver linstance de safeyes en cours de fonctionnement"
msgstr "désactiver linstance de safeeyes en cours"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "activer linstance de safeyes en cours de fonctionnement"
msgstr "activer linstance de safeyes en cours"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "quitter linstance de safeyes en cours de fonctionnement et sortir"
msgstr "fermer linstance de safeyes en cours et fermer"
# Commandline arg description
msgid "show the settings dialog"
@ -79,11 +79,19 @@ msgstr "démarrer safeeyes en mode de débogage"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr "imprimer létat de linstance safeeyes en cours dexécution et quitter"
msgstr "imprimer létat de linstance safeeyes en cours et fermer"
# Status message
msgid "Safe Eyes is not running"
msgstr "Safe Eyes nest pas en cours dexécution"
msgstr "Safe Eyes nest pas en fonction"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes est en fonction alors que le serveur RPC est désactivé. Activez le "
"serveur RPC afin dutiliser des arguments en ligne de commande."
# About dialog
msgid "Close"
@ -91,9 +99,11 @@ msgstr "Fermer"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes protège vos yeux contre la fatigue de l'œil (asthénopie) en vous "
"Safe Eyes protège vos yeux contre la fatigue de lœil (asthénopie) en vous "
"rappelant de prendre des pauses lors de vos longues heures de travail sur un "
"ordinateur"
@ -126,8 +136,12 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Période de désactivation des raccourcis (en secondes)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgstr "Durée de report (en minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Durée du report (en minutes)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Afficher les pauses en ordre aléatoire"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
@ -141,6 +155,16 @@ msgstr "Permettre le report des pauses"
msgid "Persist the internal state"
msgstr "Conserver létat interne"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Utiliser le serveur RPC pour recevoir des commandes dexécution"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr ""
"Sans le serveur RPC, les commandes en ligne de commande pourraient ne pas "
"fonctionner"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
@ -175,11 +199,11 @@ msgstr "Supprimer"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr "Voulez-vous vraiment supprimer cette pause ?"
msgstr "Voulez-vous vraiment supprimer cette pause?"
# Settings dialog
msgid "You can't undo this action."
msgstr "Vous ne pouvez-pas annuler cette action."
msgstr "Vous ne pouvez pas annuler cette action."
# Settings dialog
msgid "Break"
@ -211,11 +235,11 @@ msgstr "Image"
# Settings dialog
msgid "Select"
msgstr "Choisir"
msgstr "Sélectionner"
# Settings dialog
msgid "Please select an image"
msgstr "Veuillez choisir une image"
msgstr "Veuillez sélectionner une image"
# Settings dialog
msgid "Duration"
@ -257,6 +281,10 @@ msgstr "Veuillez installer le module Python « %s »"
msgid "Please install the command-line tool '%s'"
msgstr "Veuillez installer loutil de ligne de commande « %s »"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Lexpression cron « %s » est invalide"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
@ -324,11 +352,11 @@ msgstr "Statistiques de santé"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr "Afficher des statistiques basées sur votre utilisation de Safe Eyes"
msgstr "Afficher des statistiques daprès votre utilisation de Safe Eyes"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr "Fréquence de réinitialisation (en heures)"
msgid "Statistics reset interval (cron expression)"
msgstr "Intervalle de réinitialisation des statistiques (expression cron)"
# plugin/notification
msgid "Notification"
@ -348,7 +376,7 @@ msgstr "Préparez-vous à une pause longue dans %s secondes"
# plugin/screensaver
msgid "Screensaver"
msgstr "Économiseur d'écran"
msgstr "Économiseur décran"
# plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
@ -379,7 +407,7 @@ msgstr "Mettre Safe Eyes en pause si le système est inactif"
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr ""
"Durée d'inactivité minimale pour mettre Safe Eyes en pause (en secondes)"
"Durée dinactivité minimale pour mettre Safe Eyes en pause (en secondes)"
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
@ -451,7 +479,7 @@ msgstr "Prochaine pause à %s"
#: plugins/trayicon
msgid "No Breaks Available"
msgstr "Aucune pause n'est prévue"
msgstr "Aucune pause n'est proposée"
#: plugins/trayicon
msgid "Settings"
@ -467,7 +495,7 @@ msgstr "Jusquau redémarrage"
#: plugins/trayicon
msgid "Quit"
msgstr "Quitter"
msgstr "Fermer"
# plugin/mediacontrol
msgid "Media Control"
@ -480,3 +508,7 @@ msgstr "Mettre les lecteurs multimédias en pause à partir de lécran de pau
# plugin/mediacontrol
msgid "Pause media"
msgstr "Mettre le contenu multimédia en pause"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Fréquence de réinitialisation (en heures)"

View File

@ -0,0 +1,499 @@
# SAFE EYES ENGLISH TRANSLATION.
# Copyright (C) 2017 Gobinath
# Gobinath slgobinath@gmail.com, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-05-23 09:32+0000\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"Language-Team: Hebrew <https://hosted.weblate.org/projects/safe-eyes/"
"translations/he/>\n"
"Language: he\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Weblate 4.7-dev\n"
# Short break
msgid "Tightly close your eyes"
msgstr "לעצום עיניים היטב"
# Short break
msgid "Roll your eyes a few times to each side"
msgstr "לגלגל את העיניים מספר פעמים לכל צד"
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr "לסובב את העיניים עם כיוון השעון"
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr "לסובב את העיניים נגד כיוון השעון"
# Short break
msgid "Blink your eyes"
msgstr "למצמץ את העיניים"
# Short break
msgid "Focus on a point in the far distance"
msgstr "להתמקד על נקודה רחוקה באופק"
# Short break
msgid "Have some water"
msgstr "לשתות קצת מים"
# Long break
msgid "Walk for a while"
msgstr "ללכת הליכה קצרה"
# Long break
msgid "Lean back at your seat and relax"
msgstr "להישען אחורה בכיסא ולהירגע"
# Commandline arg description
msgid "show the about dialog"
msgstr "show the about dialog"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "disable the currently running safeeyes instance"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "enable the currently running safeeyes instance"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "quit the running safeeyes instance and exit"
# Commandline arg description
msgid "show the settings dialog"
msgstr "show the settings dialog"
# Commandline arg description
msgid "start safeeyes in debug mode"
msgstr "start safeeyes in debug mode"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr "print the status of running safeeyes instance and exit"
# Status message
msgid "Safe Eyes is not running"
msgstr "הגנה על העיניים אינה פעילה"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"הגנה על העיניים מופעלת ללא שרת RPC. יש להפעיל אותו כדי להשתמש במשתנים משורת "
"הפקודה."
# About dialog
msgid "Close"
msgstr "סגירה"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr "תיאור"
# About dialog
msgid "License"
msgstr "רישיון"
# Break screen
msgid "Skip"
msgstr "מסך הפסקה"
# Break screen
msgid "Postpone"
msgstr "עיכוב"
# Settings dialog
msgid "Break duration (in seconds)"
msgstr "משך הפסקה (בשניות)"
# Settings dialog
msgid "Interval between two breaks (in minutes)"
msgstr "מרווח בין הפסקות (בדקות)"
# Settings dialog
msgid "Time to prepare for a break (in seconds)"
msgstr "זמן ההכנה להפסקה (בשניות)"
# Settings dialog
msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "משך השבתת קיצורי המקלדת (בשניות)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgstr "משך עיכוב (בשניות)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "להציג הפסקות בסדר אקראי"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "הפסקה קשיחה (אין דרך לדלג על הפסקות)"
# Settings dialog
msgid "Allow postponing breaks"
msgstr "לאפשר לעכב הפסקות"
# Settings dialog
msgid "Persist the internal state"
msgstr "לשמור על המצב הפנימי"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "להשתמש בשרת RPC כדי לקבל פקודות זמן ריצה"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "ללא שרת RPC, פקודות שורת פקודה עשויות לא לעבוד"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr "הפרש ארוך בין הפסקות חייב להיות מכפלות של הפרש קצר בין הפסקות"
# Settings dialog
msgid "Reset"
msgstr "איפוס"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr "לאפס את כל ההגדרות לבררת מחדל?"
# Settings dialog
msgid "Options"
msgstr "אפשרויות"
# Settings dialog
msgid "Short Breaks"
msgstr "הפסקות קצרות"
# Settings dialog
msgid "Long Breaks"
msgstr "הפסקות ארוכות"
# Settings dialog
msgid "Delete"
msgstr "מחיקה"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr "למחוק את ההפסקה הזאת?"
# Settings dialog
msgid "You can't undo this action."
msgstr "זו פעולה בלתי הפיכה."
# Settings dialog
msgid "Break"
msgstr "הפסקה"
# Settings dialog
msgid "Breaks"
msgstr "הפסקות"
# Settings dialog
msgid "Plugins"
msgstr "תוספים"
# Settings dialog
msgid "Type"
msgstr "סוג"
# Settings dialog
msgid "Short"
msgstr "קצרה"
# Settings dialog
msgid "Long"
msgstr "ארוכה"
# Settings dialog
msgid "Image"
msgstr "תמונה"
# Settings dialog
msgid "Select"
msgstr "בחירה"
# Settings dialog
msgid "Please select an image"
msgstr "נא לבחור תמונה"
# Settings dialog
msgid "Duration"
msgstr "משך"
# Settings dialog
msgid "Time to wait"
msgstr "זמן להמתנה"
# Settings dialog
msgid "Override"
msgstr "דריסה"
# Settings dialog
msgid "Time (in seconds)"
msgstr "זמן (בשניות)"
# Settings dialog
msgid "Time (in minutes)"
msgstr "זמן (בדקות)"
# Settings dialog
msgid "Break Settings"
msgstr "הגדרות הפסקה"
# Settings dialog
msgid "Plugin Settings"
msgstr "הגדרות תוסף"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr "התוסף אינו תומך בסביבת שולחן העבודה %s"
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr "נא להתקין את מודול ה־Python %s"
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr "נא להתקין את כלי שורת הפקודה %s"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "ביטוי cron שגוי %s"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "נא להוסיף את המשאב %(resource)s לתיקייה %(config_resource)s"
# Settings dialog
msgid "New Break"
msgstr "הפסקה חדשה"
# Settings dialog
msgid "Remove"
msgstr "הסרה"
# Settings dialog
msgid "Discard"
msgstr "התעלמות"
# Settings dialog
msgid "Save"
msgstr "שמירה"
# plugin/audiblealert
msgid "Audible Alert"
msgstr "צליל התראה"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr "להשמיע צלצול לפני ואחרי הפסקות"
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr "להשמיע צלצול התראה לפני הפסקות"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr "להשמיע צלצול התראה אחרי הפסקות"
# plugin/donotdisturb
msgid "Do Not Disturb"
msgstr "לא להפריע"
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr "לדלג על הפסקה אם החלון הפעיל הוא על כל המסך"
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr "לא להפריע לחלונות האלו אף פעם"
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr "להפריע לחלונות האלו ללא תלות במצבם"
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr "להחליף את החלונות הבלתי הכרחיים למצב רגיל"
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr "לא להפריע בעת שימוש בסוללה"
# plugin/healthstats
msgid "Health Statistics"
msgstr "סטטיסטיקת בריאות"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr "להציג סטטיסטיקה על אופן השימוש שלך בהגנה על העיניים"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "הפרשים בין איפוסי סטטיסטיקה (ביטוי cron)"
# plugin/notification
msgid "Notification"
msgstr "התראה"
# plugin/notification
msgid "Show a system notification before breaks"
msgstr "להציג התראות מערכת לפני הפסקות"
# plugin/notification
msgid "Ready for a short break in %s seconds"
msgstr "להתכונן להפסקה קצרה בעוד %s שניות"
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr "להתכונן להפסקה ארוכה בעוד %s שניות"
# plugin/screensaver
msgid "Screensaver"
msgstr "שומר מסך"
# plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
msgstr "לנעול את המסך אחרי הפסקות ארוכות על ידי הפעלת שומר המסך"
# plugin/screensaver
msgid "Custom screensaver command"
msgstr "פקודת שומר מסך מותאמת אישית"
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr "כמות שניות מזערית לדילוג בלי שומר מסך"
# plugin/screensaver
msgid "Lock screen"
msgstr "נעילת מסך"
# plugin/smartpause
msgid "Smart Pause"
msgstr "השהיה חכמה"
# plugin/smartpause
msgid "Pause Safe Eyes if the system is idle"
msgstr "להשהות את ההגנה על העיניים אם המערכת בהמתנה"
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr "זמן חוסר פעילות מזערי להשהיית ההגנה על העיניים (בשניות)"
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr "לפרש את זמן ההמתנה שווה הערך למשך ההפסקה הבאה כהפסקה"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr "לעכב את ההפסקה הבאה עד שהמערכת הופכת לבלתי פעילה"
#: plugins/trayicon
msgid "Tray Icon"
msgstr "סמל מערכת"
#: plugins/trayicon
msgid "Show a tray icon in the notification area"
msgstr "להציג סמל מערכת באזור ההתראות"
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr "להציג את מועד ההתראה הבאה בסמל המערכת"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr "לאפשר את השבתת ההגנה על העיניים"
#: plugins/trayicon
msgid "About"
msgstr "על אודות"
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr "השבתת ההגנה על העיניים"
#: plugins/trayicon
msgid "Disabled until %s"
msgstr "להשבית עד %s"
#: plugins/trayicon
msgid "Disabled until restart"
msgstr "להשבית עד להפעלה מחדש"
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr "להפעיל את ההגנה על העיניים"
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] "למשך שעה"
msgstr[1] "למשך %s שעות"
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] "למשך דקה"
msgstr[1] "למשך %s דקות"
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] "למשך שנייה"
msgstr[1] "למשך %s שניות"
#: plugins/trayicon
msgid "Next break at %s"
msgstr "ההפסקה הבאה ב־%s"
#: plugins/trayicon
msgid "No Breaks Available"
msgstr "אין הפסקות זמינות"
#: plugins/trayicon
msgid "Settings"
msgstr "הגדרות"
#: plugins/trayicon
msgid "Take a break now"
msgstr "לקחת הפסקה עכשיו"
#: plugins/trayicon
msgid "Until restart"
msgstr "עד להפעלה מחדש"
#: plugins/trayicon
msgid "Quit"
msgstr "יציאה"
# plugin/mediacontrol
msgid "Media Control"
msgstr "בקרת מדיה"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr "להשהות נגני מדיה ממסך ההפסקה"
# plugin/mediacontrol
msgid "Pause media"
msgstr "השהיית מדיה"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "הפרש בין איפוסי סטטיסטיקה (בשעות)"

View File

@ -85,13 +85,21 @@ msgstr "सेफ आईज दृष्टांत स्थिति को
msgid "Safe Eyes is not running"
msgstr "सेफ आईज नहीं चल रहा है"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
# About dialog
msgid "Close"
msgstr "बंद करें"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr "विवरण"
# About dialog
@ -123,9 +131,13 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "कीबोर्ड शॉर्टकट अक्षम अवधि (सेकंड में)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "पोस्टपोन अवधि (मिनटों में)"
# Settings dialog
msgid "Show breaks in random order"
msgstr ""
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "सख्त ब्रेक (ब्रेक को छोड़ने का कोई तरीका नहीं)"
@ -138,6 +150,14 @@ msgstr "ब्रेक स्थगित करने की अनुमत
msgid "Persist the internal state"
msgstr "आंतरिक अवस्था को जारी रखें"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr ""
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr ""
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr "लम्बी ब्रेक अंतराल लघु ब्रेक अंतराल के एक बहुमान होना चाहिए"
@ -250,6 +270,10 @@ msgstr ""
msgid "Please install the command-line tool '%s'"
msgstr ""
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr ""
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
@ -319,7 +343,7 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgid "Statistics reset interval (cron expression)"
msgstr ""
# plugin/notification

View File

@ -85,13 +85,21 @@ msgstr ""
msgid "Safe Eyes is not running"
msgstr ""
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
# About dialog
msgid "Close"
msgstr "Bezárás"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr "leírás"
# About dialog
@ -123,9 +131,13 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Gyorsbillentyűk letiltásának hossza (másodpercben)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Elhalasztás időtartama (percben)"
# Settings dialog
msgid "Show breaks in random order"
msgstr ""
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Szigorú pihenő (nincs mód kihagyásra)"
@ -138,6 +150,14 @@ msgstr "Engedi a pihenők elhalasztását"
msgid "Persist the internal state"
msgstr "Belső állapot elmentése"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr ""
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr ""
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr "Hosszú pihenő fel kell legyen bontva több kicsire"
@ -250,6 +270,10 @@ msgstr "Kérem telepítse a '%s' Python modul-t"
msgid "Please install the command-line tool '%s'"
msgstr "Kérem telepítse a '%s' parancssori eszközt"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr ""
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
@ -320,7 +344,7 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Mutass statisztikákat arról, ahogy a Safe Eyes-t használod"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgid "Statistics reset interval (cron expression)"
msgstr ""
# plugin/notification

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2019-02-10 11:10+0000\n"
"Last-Translator: Imam Ali Mustofa <d.darkterminal@gmail.com>\n"
"PO-Revision-Date: 2021-02-18 00:50+0000\n"
"Last-Translator: Reza Almanda <rezaalmanda27@gmail.com>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/safe-eyes/"
"translations/id/>\n"
"Language: id\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.5-dev\n"
"X-Generator: Weblate 4.5\n"
# Short break
msgid "Tightly close your eyes"
@ -85,13 +85,23 @@ msgstr "cetak status menjalankan instance safeeyes dan keluar"
msgid "Safe Eyes is not running"
msgstr "Safe Eyes tidak berjalan"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes berjalan tanpa server RPC. Aktifkan untuk menggunakan command-line "
"arguments."
# About dialog
msgid "Close"
msgstr "Tutup"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr "Deskripsi"
# About dialog
@ -123,344 +133,370 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Pintasan keyboard dinonaktifkan periode (dalam detik)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Menunda durasi (dalam beberapa menit)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Tampilkan jeda dalam urutan acak"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Istirahat ketat (Tidak ada cara untuk melewati istirahat)"
# Settings dialog
msgid "Allow postponing breaks"
msgstr ""
msgstr "Izinkan penundaan istirahat"
# Settings dialog
msgid "Persist the internal state"
msgstr ""
msgstr "Pertahankan kondisi internal"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Gunakan server RPC untuk menerima perintah runtime"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "Tanpa server RPC, perintah command-line mungkin tidak akan berfungsi"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
"Interval istirahat panjang harus dua kali lebih panjang dari istirahat pendek"
# Settings dialog
msgid "Reset"
msgstr ""
msgstr "Atur ulang"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
"Apakah Anda yakin ingin mengatur ulang semua pengaturan ke pengaturan awal?"
# Settings dialog
msgid "Options"
msgstr ""
msgstr "Pilihan"
# Settings dialog
msgid "Short Breaks"
msgstr ""
msgstr "Istirahat Pendek"
# Settings dialog
msgid "Long Breaks"
msgstr ""
msgstr "Istirahat Panjang"
# Settings dialog
msgid "Delete"
msgstr ""
msgstr "Hapus"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr ""
msgstr "Apakah Anda yakin ingin menghapus istirahat ini?"
# Settings dialog
msgid "You can't undo this action."
msgstr ""
msgstr "Anda tidak bisa mengembalikan ulang aksi ini."
# Settings dialog
msgid "Break"
msgstr ""
msgstr "Istirahat"
# Settings dialog
msgid "Breaks"
msgstr ""
msgstr "Istirahat"
# Settings dialog
msgid "Plugins"
msgstr ""
msgstr "Plugin"
# Settings dialog
msgid "Type"
msgstr ""
msgstr "Tipe"
# Settings dialog
msgid "Short"
msgstr ""
msgstr "Pendek"
# Settings dialog
msgid "Long"
msgstr ""
msgstr "Panjang"
# Settings dialog
msgid "Image"
msgstr ""
msgstr "Gambar"
# Settings dialog
msgid "Select"
msgstr ""
msgstr "Pilih"
# Settings dialog
msgid "Please select an image"
msgstr ""
msgstr "Silakan pilih sebuah gambar"
# Settings dialog
msgid "Duration"
msgstr ""
msgstr "Durasi"
# Settings dialog
msgid "Time to wait"
msgstr ""
msgstr "Waktu tunggu"
# Settings dialog
msgid "Override"
msgstr ""
msgstr "Kesampingkan"
# Settings dialog
msgid "Time (in seconds)"
msgstr ""
msgstr "Waktu (dalam detik)"
# Settings dialog
msgid "Time (in minutes)"
msgstr ""
msgstr "Waktu (dalam menit)"
# Settings dialog
msgid "Break Settings"
msgstr ""
msgstr "Pengaturan Istirahat"
# Settings dialog
msgid "Plugin Settings"
msgstr ""
msgstr "Pengaturan Plugin"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr ""
msgstr "Plugin tidak mendukung %s lingkungan desktop"
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr ""
msgstr "Silakan lakukan pemasangan Python module '%s'"
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr ""
msgstr "Silakan lakukan pemasangan alat command-line '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Ekspresi cron tidak valid '%s'"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
msgstr "Silakan tambahkan sumber %(resource)s ke direktori %(config_resource)s"
# Settings dialog
msgid "New Break"
msgstr ""
msgstr "Istirahat Baru"
# Settings dialog
msgid "Remove"
msgstr ""
msgstr "Hapus"
# Settings dialog
msgid "Discard"
msgstr ""
msgstr "Buang"
# Settings dialog
msgid "Save"
msgstr ""
msgstr "Simpan"
# plugin/audiblealert
msgid "Audible Alert"
msgstr ""
msgstr "Peringatan Bersuara"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr ""
msgstr "Mainkan peringatan bersuara sebelum dan setelah istirahat"
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr ""
msgstr "Mainkan peringatan bersuara sebelum istirahat"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr ""
msgstr "Mainkan peringatan bersuara setelah istirahat"
# plugin/donotdisturb
msgid "Do Not Disturb"
msgstr ""
msgstr "Jangan Ganggu"
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr ""
msgstr "Lewati istirahat jika jendela aktif dalam kondisi layar penuh"
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr ""
msgstr "Jangan interupsi jendela-jendela ini kapanpun"
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr ""
msgstr "Interupsi jendela-jendela terlepas dari kondisinya"
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr ""
msgstr "Pindahkan jendela-jendela yang bisa diinterupsi ke kondisi normal"
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr ""
msgstr "Jangan ganggu selagi menggunakan baterai"
# plugin/healthstats
msgid "Health Statistics"
msgstr ""
msgstr "Statistik Kesehatan"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
"Tampilkan statistik kesehatan berdasarkan bagaimana Anda menggunakan Safe "
"Eyes"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr ""
msgid "Statistics reset interval (cron expression)"
msgstr "Interval reset statistik (ekspresi cron)"
# plugin/notification
msgid "Notification"
msgstr ""
msgstr "Notifikasi"
# plugin/notification
msgid "Show a system notification before breaks"
msgstr ""
msgstr "Tampilkan sebuah sistem notifikasi sebelum istirahat"
# plugin/notification
msgid "Ready for a short break in %s seconds"
msgstr ""
msgstr "Bersiap untuk istirahat singkat dalam %s detik"
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr ""
msgstr "Bersiap untuk istirahat panjang dalam %s detik"
# plugin/screensaver
msgid "Screensaver"
msgstr ""
msgstr "Screensaver"
# plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
msgstr ""
msgstr "Kunci layar setlah istirahat panjang dengan memulai screensaver"
# plugin/screensaver
msgid "Custom screensaver command"
msgstr ""
msgstr "Atur perintah screensaver"
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr ""
msgstr "Minimal detik untuk melewati tanpa screensaver"
# plugin/screensaver
msgid "Lock screen"
msgstr ""
msgstr "Kunci layar"
# plugin/smartpause
msgid "Smart Pause"
msgstr ""
msgstr "Jeda Pintar"
# plugin/smartpause
msgid "Pause Safe Eyes if the system is idle"
msgstr ""
msgstr "Jeda Safe Eyes jika sistem menganggur"
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr ""
msgstr "Minimal waktu menganggur untuk jeda Safe Eyes (dalam detik)"
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr ""
"Tafsirkan waktu menganggur sepadan untuk waktu istirahat selanjutnya sebagai "
"sebuah istirahat"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr ""
msgstr "Tunda istirahat selanjutnya sampai sistem menjadi menganggur"
#: plugins/trayicon
msgid "Tray Icon"
msgstr ""
msgstr "Penampan Ikon"
#: plugins/trayicon
msgid "Show a tray icon in the notification area"
msgstr ""
msgstr "Tampilkan sebuah penampan ikon dalam bagian notifikasi"
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr ""
msgstr "Tampilkan waktu istirahat selanjutnya dalam penampan ikon"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr ""
msgstr "Izinkan mematikan Safe Eyes"
#: plugins/trayicon
msgid "About"
msgstr ""
msgstr "Tentang"
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr ""
msgstr "Matikan Safe Eyes"
#: plugins/trayicon
msgid "Disabled until %s"
msgstr ""
msgstr "Mati dalam %s"
#: plugins/trayicon
msgid "Disabled until restart"
msgstr ""
msgstr "Mati setelah restart"
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr ""
msgstr "Hidupkan Safe Eyes"
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] ""
msgstr[0] "Selama %d jam"
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] ""
msgstr[0] "Selama %d menit"
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] ""
msgstr[0] "Selama %d detik"
#: plugins/trayicon
msgid "Next break at %s"
msgstr ""
msgstr "Istirahat selanjutnya pada %s"
#: plugins/trayicon
msgid "No Breaks Available"
msgstr ""
msgstr "Tidak istirahat yang tersedia"
#: plugins/trayicon
msgid "Settings"
msgstr ""
msgstr "Pengaturan"
#: plugins/trayicon
msgid "Take a break now"
msgstr ""
msgstr "Ambil istirahat sekarang"
#: plugins/trayicon
msgid "Until restart"
msgstr ""
msgstr "Sampai restart"
#: plugins/trayicon
msgid "Quit"
msgstr ""
msgstr "Keluar"
# plugin/mediacontrol
msgid "Media Control"
msgstr ""
msgstr "Kontrol Media"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr ""
msgstr "Jeda pemutar media dari pengistirahatan layar"
# plugin/mediacontrol
msgid "Pause media"
msgstr ""
msgstr "Jeda media"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Interval untuk mengatur ulang statistik (dalam jam)"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2019-02-26 19:18+0000\n"
"Last-Translator: Guglielmo Wilmup <wilmup67@gmail.com>\n"
"PO-Revision-Date: 2022-01-16 12:55+0000\n"
"Last-Translator: albanobattistella <albano_battistella@hotmail.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/safe-eyes/"
"translations/it/>\n"
"Language: it\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.5-dev\n"
"X-Generator: Weblate 4.10.1\n"
# Short break
msgid "Tightly close your eyes"
@ -85,13 +85,23 @@ msgstr "stampa lo stato di esecuzione di Safe Eyes ed esci"
msgid "Safe Eyes is not running"
msgstr "Safe Eyes non è avviato"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes è in esecuzione senza un server RPC. Apri Safe Eyes per utilizzare "
"la linea di comando."
# About dialog
msgid "Close"
msgstr "Chiudi"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes protegge gli occhi dall'asthenopia ricordandoti di fare una pausa "
"mentre lavori per ore al computer"
@ -126,9 +136,13 @@ msgstr ""
"Durata della disattivazione per le scorciatoie da tastiera (in secondi)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Durata del rinvio (in minuti)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Mostra interruzioni in ordine casuale"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Pausa ferrea (non c'è modo di saltarla)"
@ -141,6 +155,14 @@ msgstr "Consenti di posporre le pause"
msgid "Persist the internal state"
msgstr "Persistenza dello stato interno"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Utilizza il server RPC per ricevere i comandi"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "Senza il server RPC, i comandi a riga di comando non possono funzionare"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
@ -255,6 +277,10 @@ msgstr "Devi installare il modulo Python '%s'"
msgid "Please install the command-line tool '%s'"
msgstr "Devi installare lo strumento a riga di comando '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Espressione cron non valida '%s'"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
@ -325,8 +351,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Mostra le statistiche basate sull'uso di Safe Eyes"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr ""
msgid "Statistics reset interval (cron expression)"
msgstr "Intervallo di ripristino delle statistiche (espressione cron)"
# plugin/notification
msgid "Notification"
@ -362,7 +388,7 @@ msgstr "Tempo minimo per il salto senza salvaschermo (in secondi)"
# plugin/screensaver
msgid "Lock screen"
msgstr "Schermo bloccato"
msgstr "Blocca schermo"
# plugin/smartpause
msgid "Smart Pause"
@ -442,7 +468,7 @@ msgstr[1] "Per %d secondi"
#: plugins/trayicon
msgid "Next break at %s"
msgstr "Prossima pausa tra %s"
msgstr "Prossima pausa alle ore %s"
#: plugins/trayicon
msgid "No Breaks Available"

View File

@ -0,0 +1,492 @@
# SAFE EYES KANNADA TRANSLATION.
# Copyright (C) 2020 Gobinath
# Gobinath slgobinath@gmail.com, 2020.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-07-30 17:35+0000\n"
"Last-Translator: Yogesh <yogesh@karnatakaeducation.org.in>\n"
"Language-Team: Kannada <https://hosted.weblate.org/projects/safe-eyes/"
"translations/kn/>\n"
"Language: kn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.7.2-dev\n"
# Short break
msgid "Tightly close your eyes"
msgstr "ಕಣ್ಣನ್ನು ಗಟ್ಟಿಯಾಗಿ ಮುಚ್ಚಿರಿ"
# Short break
msgid "Roll your eyes a few times to each side"
msgstr ""
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr ""
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr ""
# Short break
msgid "Blink your eyes"
msgstr "ಕಣ್ಣನ್ನು ಮಿಟುಕಿಸಿ"
# Short break
msgid "Focus on a point in the far distance"
msgstr ""
# Short break
msgid "Have some water"
msgstr "ಸ್ವಲ್ಪ ನೀರನ್ನು ಕುಡಿಯಿರಿ"
# Long break
msgid "Walk for a while"
msgstr "ಕೆಲ ಸಮಯ ನಡೆದಾಡಿ"
# Long break
msgid "Lean back at your seat and relax"
msgstr "ನಿಮ್ಮ ಆಸನದ ಹಿಂಬದಿಗೆ ಹೊರಗಿ ವಿಶ್ರಮಿಸಿ"
# Commandline arg description
msgid "show the about dialog"
msgstr "ಇದರ ಬಗ್ಗೆ ತೋರಿಸು"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "ನೆಡುಯುತ್ತಿರುವ ಸೇಫ್‌ಐಸ್ಅನ್ನು ನಿಶ್ಕ್ರಿಯ ಗೊಳಿಸು"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "ನೆಡುಯುತ್ತಿರುವ ಸೇಫ್‌ಐಸ್ಅನ್ನು ಸಕ್ರಿಯ ಗೊಳಿಸು"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "ನೆಡುಯುತ್ತಿರುವ ಸೇಫ್‌ಐಸ್ಅನ್ನು ತ್ಯಜಿಸು"
# Commandline arg description
msgid "show the settings dialog"
msgstr "ಸಿದ್ಧತೆಗಳನ್ನು ತೋರಿಸು"
# Commandline arg description
msgid "start safeeyes in debug mode"
msgstr "ಡೀಬಗ್ ಮೋಡ್‌ನಲ್ಲಿ ಸೇಫ್ಐಸ್ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr "ಚಾಲನೆಯಲ್ಲಿರುವ ಸೇಫ್ಐಸ್ ಸ್ಥಿತಿಯನ್ನು ಮುದ್ರಿಸಿ ಮತ್ತು ನಿರ್ಗಮಿಸಿ"
# Status message
msgid "Safe Eyes is not running"
msgstr "ಸೇಫ್‌ಐಸ್ ನೆಡುಯುತ್ತಿಲ್ಲ"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"RPC ಸರ್ವರ್ ಇಲ್ಲದೆ ಸೇಫ್ಐಸ್ ಚಾಲನೆಯಲ್ಲಿದೆ. ಕಮಾಂಡ್ ಲೈನ್ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಬಳಸಲು ಅದನ್ನು ಆನ್ "
"ಮಾಡಿ."
# About dialog
msgid "Close"
msgstr "ಮುಚ್ಚಿರಿ"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr "ವಿವರಣೆ"
# About dialog
msgid "License"
msgstr "ಪರವಾನಿಗೆ"
# Break screen
msgid "Skip"
msgstr ""
# Break screen
msgid "Postpone"
msgstr "ಮುಂದೂಡಿ"
# Settings dialog
msgid "Break duration (in seconds)"
msgstr "ವಿರಾಮದ ಅವಧಿ (ಸೆಕೆಂಡುಗಳಲ್ಲಿ)"
# Settings dialog
msgid "Interval between two breaks (in minutes)"
msgstr ""
# Settings dialog
msgid "Time to prepare for a break (in seconds)"
msgstr ""
# Settings dialog
msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr ""
# Settings dialog
msgid "Postponement duration (in minutes)"
msgstr ""
# Settings dialog
msgid "Show breaks in random order"
msgstr ""
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr ""
# Settings dialog
msgid "Allow postponing breaks"
msgstr ""
# Settings dialog
msgid "Persist the internal state"
msgstr ""
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr ""
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr ""
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog
msgid "Options"
msgstr ""
# Settings dialog
msgid "Short Breaks"
msgstr ""
# Settings dialog
msgid "Long Breaks"
msgstr ""
# Settings dialog
msgid "Delete"
msgstr ""
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr ""
# Settings dialog
msgid "You can't undo this action."
msgstr ""
# Settings dialog
msgid "Break"
msgstr ""
# Settings dialog
msgid "Breaks"
msgstr ""
# Settings dialog
msgid "Plugins"
msgstr ""
# Settings dialog
msgid "Type"
msgstr ""
# Settings dialog
msgid "Short"
msgstr ""
# Settings dialog
msgid "Long"
msgstr ""
# Settings dialog
msgid "Image"
msgstr ""
# Settings dialog
msgid "Select"
msgstr ""
# Settings dialog
msgid "Please select an image"
msgstr ""
# Settings dialog
msgid "Duration"
msgstr ""
# Settings dialog
msgid "Time to wait"
msgstr ""
# Settings dialog
msgid "Override"
msgstr ""
# Settings dialog
msgid "Time (in seconds)"
msgstr ""
# Settings dialog
msgid "Time (in minutes)"
msgstr ""
# Settings dialog
msgid "Break Settings"
msgstr ""
# Settings dialog
msgid "Plugin Settings"
msgstr ""
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr ""
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr ""
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr ""
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr ""
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
# Settings dialog
msgid "New Break"
msgstr ""
# Settings dialog
msgid "Remove"
msgstr ""
# Settings dialog
msgid "Discard"
msgstr ""
# Settings dialog
msgid "Save"
msgstr ""
# plugin/audiblealert
msgid "Audible Alert"
msgstr ""
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr ""
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr ""
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr ""
# plugin/donotdisturb
msgid "Do Not Disturb"
msgstr ""
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr ""
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr ""
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr ""
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr ""
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr ""
# plugin/healthstats
msgid "Health Statistics"
msgstr ""
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr ""
# plugin/notification
msgid "Notification"
msgstr ""
# plugin/notification
msgid "Show a system notification before breaks"
msgstr ""
# plugin/notification
msgid "Ready for a short break in %s seconds"
msgstr ""
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr ""
# plugin/screensaver
msgid "Screensaver"
msgstr ""
# plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
msgstr ""
# plugin/screensaver
msgid "Custom screensaver command"
msgstr ""
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr ""
# plugin/screensaver
msgid "Lock screen"
msgstr ""
# plugin/smartpause
msgid "Smart Pause"
msgstr ""
# plugin/smartpause
msgid "Pause Safe Eyes if the system is idle"
msgstr ""
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr ""
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr ""
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr ""
#: plugins/trayicon
msgid "Tray Icon"
msgstr ""
#: plugins/trayicon
msgid "Show a tray icon in the notification area"
msgstr ""
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr ""
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr ""
#: plugins/trayicon
msgid "About"
msgstr ""
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr ""
#: plugins/trayicon
msgid "Disabled until %s"
msgstr ""
#: plugins/trayicon
msgid "Disabled until restart"
msgstr ""
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr ""
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] ""
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] ""
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] ""
#: plugins/trayicon
msgid "Next break at %s"
msgstr ""
#: plugins/trayicon
msgid "No Breaks Available"
msgstr ""
#: plugins/trayicon
msgid "Settings"
msgstr ""
#: plugins/trayicon
msgid "Take a break now"
msgstr ""
#: plugins/trayicon
msgid "Until restart"
msgstr ""
#: plugins/trayicon
msgid "Quit"
msgstr ""
# plugin/mediacontrol
msgid "Media Control"
msgstr ""
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr ""
# plugin/mediacontrol
msgid "Pause media"
msgstr ""

View File

@ -0,0 +1,496 @@
# SAFE EYES ENGLISH TRANSLATION.
# Copyright (C) 2017 Gobinath
# Gobinath slgobinath@gmail.com, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2023-02-17 05:35+0000\n"
"Last-Translator: Yi Yunseok <ironyunseok@protonmail.com>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/safe-eyes/"
"translations/ko/>\n"
"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.16-dev\n"
# Short break
msgid "Tightly close your eyes"
msgstr "눈을 꼭 감으세요"
# Short break
msgid "Roll your eyes a few times to each side"
msgstr "눈동자를 양끝으로 번갈아 움직여보세요"
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr "시계 방향으로 눈동자를 굴려보세요"
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr "시계 반대 방향으로 눈동자를 굴려보세요"
# Short break
msgid "Blink your eyes"
msgstr "눈을 깜빡이세요"
# Short break
msgid "Focus on a point in the far distance"
msgstr "잠시 먼 곳을 바라보세요"
# Short break
msgid "Have some water"
msgstr "물을 좀 마실까요"
# Long break
msgid "Walk for a while"
msgstr "잠시 걸어보세요"
# Long break
msgid "Lean back at your seat and relax"
msgstr "자리에 기대 잠깐 쉬세요"
# Commandline arg description
msgid "show the about dialog"
msgstr "정보 대화 상자 표시"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "실행 중인 세이프아이즈 객체 비활성화"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "실행 중인 세이브아이즈 객체 활성화"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "실행 중인 세이프아이즈 객체를 끝내고 종료"
# Commandline arg description
msgid "show the settings dialog"
msgstr "설정 대화 상자 표시"
# Commandline arg description
msgid "start safeeyes in debug mode"
msgstr "디버그 모드에서 세이브아이즈 시작"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr "실행 중인 세이프아이즈 객체를 종료하고 상태 출력"
# Status message
msgid "Safe Eyes is not running"
msgstr "세이프 아이즈가 실행 중이 아닙니다"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"세이프 아이즈가 RPC 서버없이 실행 중입니다. 명령줄 인수를 사용하려면 켜주세"
"요."
# About dialog
msgid "Close"
msgstr "닫기"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr "설명"
# About dialog
msgid "License"
msgstr "라이선스"
# Break screen
msgid "Skip"
msgstr "넘기기"
# Break screen
msgid "Postpone"
msgstr "미루기"
# Settings dialog
msgid "Break duration (in seconds)"
msgstr "휴식 시간 (초)"
# Settings dialog
msgid "Interval between two breaks (in minutes)"
msgstr "두 번의 휴식 사이의 간격 (분)"
# Settings dialog
msgid "Time to prepare for a break (in seconds)"
msgstr "휴식 준비 시간 (초)"
# Settings dialog
msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "자판 단축키 비활성 기간 (초)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgstr "미루는 시간 (분)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "무작위 휴식 표시"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "강제 휴식 (넘길 수 없음)"
# Settings dialog
msgid "Allow postponing breaks"
msgstr "휴식 미루기 허용"
# Settings dialog
msgid "Persist the internal state"
msgstr "내부 상태 유지"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "RPC 서버를 사용해 런타임 명령 수신"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "RPC 서버가 없으면 명령줄 명령이 작동하지 않을 수 있습니다"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr "긴 휴식 기간은 짧은 휴식 기간의 배수여야 합니다"
# Settings dialog
msgid "Reset"
msgstr "초기화"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr "모든 설정을 초기화하시겠습니까?"
# Settings dialog
msgid "Options"
msgstr "선택사항"
# Settings dialog
msgid "Short Breaks"
msgstr "짧은 휴식"
# Settings dialog
msgid "Long Breaks"
msgstr "긴 휴식"
# Settings dialog
msgid "Delete"
msgstr "제거"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr "이 휴식을 제거하시겠습니까?"
# Settings dialog
msgid "You can't undo this action."
msgstr "이 행동은 돌이킬 수 없습니다."
# Settings dialog
msgid "Break"
msgstr "휴식"
# Settings dialog
msgid "Breaks"
msgstr "휴식설정"
# Settings dialog
msgid "Plugins"
msgstr "부가기능"
# Settings dialog
msgid "Type"
msgstr "유형"
# Settings dialog
msgid "Short"
msgstr "짧게"
# Settings dialog
msgid "Long"
msgstr "길게"
# Settings dialog
msgid "Image"
msgstr "그림"
# Settings dialog
msgid "Select"
msgstr "고르기"
# Settings dialog
msgid "Please select an image"
msgstr "그림을 골라주세요"
# Settings dialog
msgid "Duration"
msgstr "기간"
# Settings dialog
msgid "Time to wait"
msgstr "대기 시간"
# Settings dialog
msgid "Override"
msgstr "재정의"
# Settings dialog
msgid "Time (in seconds)"
msgstr "시간 (초)"
# Settings dialog
msgid "Time (in minutes)"
msgstr "시간 (분)"
# Settings dialog
msgid "Break Settings"
msgstr "휴식 설정"
# Settings dialog
msgid "Plugin Settings"
msgstr "부가기능 설정"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr "부가기능이 %s 데스크톱 환경을 지원하지 않습니다"
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr "'%s' 파이썬 모듈을 설치해주세요"
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr "'%s' 명령줄 도구를 설치해주세요"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "잘못된 크론 표현식 '%s'"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "%(resource)s를 %(config_resource)s 디렉토리에 추가해주세요"
# Settings dialog
msgid "New Break"
msgstr "새 휴식 만들기"
# Settings dialog
msgid "Remove"
msgstr "제거"
# Settings dialog
msgid "Discard"
msgstr "취소"
# Settings dialog
msgid "Save"
msgstr "저장"
# plugin/audiblealert
msgid "Audible Alert"
msgstr "알림음"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr "휴식 전후로 알림음 재생"
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr "휴식 전 알림음 재생"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr "휴식 후 알림음 재생"
# plugin/donotdisturb
msgid "Do Not Disturb"
msgstr "방해 금지"
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr "활성 창이 전체 화면이면 휴식 넘기기"
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr "이 창은 중단하지 않기"
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr "상태에 관계없이 이러한 창은 중단"
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr "중단 가능한 창을 일반으로 전환"
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr "배터리를 사용하는 동안은 방해 금지"
# plugin/healthstats
msgid "Health Statistics"
msgstr "건강 통계"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr "세이프 아이즈 사용에 기반한 통계 표시"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "통계 초기화 간격 (크론 표현식)"
# plugin/notification
msgid "Notification"
msgstr "알림"
# plugin/notification
msgid "Show a system notification before breaks"
msgstr "휴식 전 시스템 알림 표시"
# plugin/notification
msgid "Ready for a short break in %s seconds"
msgstr "%s초 안에 짧은 휴식 준비"
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr "%s초 안에 긴 휴식 준비"
# plugin/screensaver
msgid "Screensaver"
msgstr "화면 보호기"
# plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
msgstr "화면 보호기 시작으로 긴 휴식 후 화면 잠금"
# plugin/screensaver
msgid "Custom screensaver command"
msgstr "화면 보호기 명령 정의"
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr "화면 보호기 없이 넘길 최소 초단위 시간"
# plugin/screensaver
msgid "Lock screen"
msgstr "화면 잠금"
# plugin/smartpause
msgid "Smart Pause"
msgstr "스마트 일시 중지"
# plugin/smartpause
msgid "Pause Safe Eyes if the system is idle"
msgstr "시스템이 유휴 상태일 때 세이프 아이즈 일시 중지"
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr "세이프 아이즈를 일시 중지하는 최소 유휴 시간 (초)"
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr "다음 휴식 기간에 해당하는 유휴 시간을 휴식으로 해석"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr "시스템이 유휴 상태가 될 때까지 다음 휴식 미루기"
#: plugins/trayicon
msgid "Tray Icon"
msgstr "트레이 아이콘"
#: plugins/trayicon
msgid "Show a tray icon in the notification area"
msgstr "알림 영역에 트레이 아이콘 표시"
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr "트레이 아이콘에 다음 휴식 시간 표시"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr "세이프 아이즈 비활성화 허용"
#: plugins/trayicon
msgid "About"
msgstr "정보"
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr "세이프 아이즈 비활성화"
#: plugins/trayicon
msgid "Disabled until %s"
msgstr "%s까지 비활성화됨"
#: plugins/trayicon
msgid "Disabled until restart"
msgstr "다시 시작할 때까지 비활성화됨"
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr "세이프 아이즈 활성화"
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] "%d시간"
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] "%d분"
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] "%d초"
#: plugins/trayicon
msgid "Next break at %s"
msgstr "%s에 다음 휴식"
#: plugins/trayicon
msgid "No Breaks Available"
msgstr "사용 가능한 휴식 없음"
#: plugins/trayicon
msgid "Settings"
msgstr "설정"
#: plugins/trayicon
msgid "Take a break now"
msgstr "지금 휴식"
#: plugins/trayicon
msgid "Until restart"
msgstr "다시 시작할 때까지"
#: plugins/trayicon
msgid "Quit"
msgstr "종료"
# plugin/mediacontrol
msgid "Media Control"
msgstr "미디어 제어"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr "휴식 상태일 때 미디어 플레이어 일시 정지"
# plugin/mediacontrol
msgid "Pause media"
msgstr "미디어 일시 정지"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "통계 초기화 간격 (시)"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2019-03-06 09:58+0000\n"
"PO-Revision-Date: 2021-02-10 15:50+0000\n"
"Last-Translator: Moo <hazap@hotmail.com>\n"
"Language-Team: Lithuanian <https://hosted.weblate.org/projects/safe-eyes/"
"translations/lt/>\n"
@ -14,10 +14,9 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n % 10 == 1 && (n % 100 < 11 || n % 100 > "
"19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) ? "
"1 : 2);\n"
"X-Generator: Weblate 3.5\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
"%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Weblate 4.5-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -41,7 +40,7 @@ msgstr "Pamirksėkite"
# Short break
msgid "Focus on a point in the far distance"
msgstr "Susitelkite į tolumoje esantį objektą"
msgstr "Žiūrėkite į tolumoje esantį tašką"
# Short break
msgid "Have some water"
@ -57,23 +56,23 @@ msgstr "Atsiloškite į kėdę ir atsipalaiduokite"
# Commandline arg description
msgid "show the about dialog"
msgstr "rodyti dialogą apie programą"
msgstr "rodyti informaciją apie programą"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "išjungti šiuo metu paleistą safeeyes egzempliorių"
msgstr "išjungti šiuo metu paleistą safeeyes"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "įjungti šiuo metu paleistą safeeyes egzempliorių"
msgstr "įjungti šiuo metu paleistą safeeyes"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "baigti paleisto safeeyes egzemplioriaus darbą ir išeiti"
msgstr "baigti paleisto safeeyes darbą ir išeiti"
# Commandline arg description
msgid "show the settings dialog"
msgstr "rodyti nustatymų dialogą"
msgstr "rodyti nuostatų langą"
# Commandline arg description
msgid "start safeeyes in debug mode"
@ -87,13 +86,23 @@ msgstr "išvesti paleisto safeeyes egzemplioriaus būseną ir išeiti"
msgid "Safe Eyes is not running"
msgstr "Safe Eyes nėra paleista"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes veikia be RPC serverio. Įjunkite jį norėdami naudoti komandų "
"eilutės argumentus."
# About dialog
msgid "Close"
msgstr "Užverti"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Programa Safe Eyes, primindama jums apie pertraukas, apsaugo jūsų akis nuo "
"akių nuovargio (astenopijos)"
@ -127,12 +136,16 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Išjungtų klaviatūros trumpinių laikotarpis (sekundėmis)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Atidėjimo trukmė (minutėmis)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Rodyti pertraukas atsitiktine tvarka"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Griežta pertrauka (Neįmanoma praleisti pertraukų)"
msgstr "Griežta pertrauka (neįmanoma praleisti pertraukų)"
# Settings dialog
msgid "Allow postponing breaks"
@ -142,6 +155,14 @@ msgstr "Leisti atidėti pertraukas"
msgid "Persist the internal state"
msgstr "Išlaikyti vidinę būseną"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Naudoti RPC serverį, siekiant gauti vykdymo aplinkos komandas"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "Be RPC serverio, komandų eilutės komandos gali neveikti"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
@ -157,7 +178,7 @@ msgstr "Ar tikrai norite atstatyti visus nustatymus į numatytuosius?"
# Settings dialog
msgid "Options"
msgstr "Parametrai"
msgstr "Parinktys"
# Settings dialog
msgid "Short Breaks"
@ -189,7 +210,7 @@ msgstr "Pertraukos"
# Settings dialog
msgid "Plugins"
msgstr "Įskiepiai"
msgstr "Papildiniai"
# Settings dialog
msgid "Type"
@ -237,23 +258,27 @@ msgstr "Laikas (minutėmis)"
# Settings dialog
msgid "Break Settings"
msgstr "Pertraukos nustatymai"
msgstr "Pertraukos nuostatos"
# Settings dialog
msgid "Plugin Settings"
msgstr "Įskiepio nustatymai"
msgstr "Papildinio nuostatos"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr "Įskiepis nepalaiko %s darbalaukio aplinkos"
msgstr "Papildinys nepalaiko %s darbalaukio aplinkos"
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr "Įdiekite Python modulį \"%s\""
msgstr "Įdiekite Python modulį „%s“"
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr "Įdiekite komandų eilutės įrankį \"%s\""
msgstr "Įdiekite komandų eilutės įrankį „%s“"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Neteisingas cron reiškinys „%s“"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
@ -313,7 +338,7 @@ msgstr "Perjungti nepertraukiamus langus į normalią veikseną"
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr "Netrukdyti, naudojant bateriją"
msgstr "Netrukdyti naudojant bateriją"
# plugin/healthstats
msgid "Health Statistics"
@ -324,8 +349,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Rodyti statistiką pagal tai, kaip naudojate Safe Eyes"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr "Statistikos atstatymo intervalas (valandomis)"
msgid "Statistics reset interval (cron expression)"
msgstr "Statistikos atstatymo intervalas (cron reiškinys)"
# plugin/notification
msgid "Notification"
@ -396,7 +421,7 @@ msgstr "Rodyti dėklo piktogramą pranešimų srityje"
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr "Rodyti dėklo piktogramoje kitos pertraukos laiką"
msgstr "Sistemos dėklo ženkliuke rodyti kitos pertraukos laiką"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
@ -445,7 +470,7 @@ msgstr[2] "%d sekundžių"
#: plugins/trayicon
msgid "Next break at %s"
msgstr "Kita pertrauka ties %s"
msgstr "Kita pertrauka %s"
#: plugins/trayicon
msgid "No Breaks Available"
@ -453,7 +478,7 @@ msgstr "Nėra prieinamų pertraukų"
#: plugins/trayicon
msgid "Settings"
msgstr "Nustatymai"
msgstr "Nuostatos"
#: plugins/trayicon
msgid "Take a break now"
@ -478,3 +503,7 @@ msgstr "Pristabdyti medijos leistuves iš pertraukos ekrano"
# plugin/mediacontrol
msgid "Pause media"
msgstr "Pristabdyti mediją"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Statistikos atstatymo intervalas (valandomis)"

View File

@ -19,370 +19,304 @@ msgstr ""
"19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n"
"X-Generator: Poedit 2.2\n"
#. Short break
msgid "Tightly close your eyes"
msgstr "Cieši aizver acis"
#. Short break
msgid "Roll your eyes a few times to each side"
msgstr "Apļo acis dažas reizes uz katru pusi"
#. Short break
msgid "Rotate your eyes in clockwise direction"
msgstr "Apļo acis pulksteņrādītāja virzienā"
#. Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr "Apļo acis pretēji pulksteņrādītāja virzienam"
#. Short break
msgid "Blink your eyes"
msgstr "Mirkšķini acis"
#. Short break
msgid "Focus on a point in the far distance"
msgstr "Fokusējies uz punktu lielā attālumā"
#. Short break
msgid "Have some water"
msgstr "Padzeries ūdeni"
#. Long break
msgid "Walk for a while"
msgstr "Pastaigājies kādu brīdi"
#. Long break
msgid "Lean back at your seat and relax"
msgstr "Atlaidies krēslā un atslābinies"
#. Commandline arg description
msgid "show the about dialog"
msgstr "rādīt apraksta dialogu"
#. Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "atspējot pašlaik darbojošos safeeyes instanci"
#. Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "iespējot pašlaik darbojošos safeeyes instanci"
#. Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "izslēgt darbojošos safeeyes instanci un iziet"
#. Commandline arg description
msgid "show the settings dialog"
msgstr "rādīt iestatījumu dialogu"
#. Commandline arg description
msgid "start safeeyes in debug mode"
msgstr "palaist safeeyes atkļūdošanas režīmā"
#. Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr "drukāt darbojošās safeeyes instances statusu un iziet"
#. Status message
msgid "Safe Eyes is not running"
msgstr "Safe Eyes nav palaists"
#. About dialog
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
msgid "Close"
msgstr "Aizvērt"
#. Description in about dialog
#. Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes aizsargā Jūsu acis no redzes pārslodzes (asthenopia), atgādinot "
"ņemt pārtraukumus, kamēr strādājat garas stundas pie datora."
#. About dialog
msgid "License"
msgstr "Licence"
#. Break screen
msgid "Skip"
msgstr "Izlaist"
#. Break screen
msgid "Postpone"
msgstr "Atlikt"
#. Settings dialog
msgid "Break duration (in seconds)"
msgstr "Pārtraukuma ilgums (sekundēs)"
#. Settings dialog
msgid "Interval between two breaks (in minutes)"
msgstr "Intervāls starp diviem pārtraukumiem (minūtēs)"
#. Settings dialog
msgid "Time to prepare for a break (in seconds)"
msgstr "Laiks, lai sagatavotos pārtraukumam (sekundēs)"
#. Settings dialog
msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Īsinājumtaustiņu atspējošanas laiks (sekundēs)"
#. Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Atlikšanas laiks (minūtēs)"
#. Settings dialog
# Settings dialog
msgid "Show breaks in random order"
msgstr ""
msgid "Strict break (No way to skip breaks)"
msgstr "Striktie pārtraukumi (nav iespējas izlaist pārtraukumus)"
#. Settings dialog
msgid "Allow postponing breaks"
msgstr "Ļaut atlikt pārtraukumus"
#. Settings dialog
msgid "Persist the internal state"
msgstr "Saglabāt iekšējo stāvokli"
#. Settings dialog
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr ""
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr ""
msgid "Long break interval must be a multiple of short break interval"
msgstr "Garā pārtraukuma laikam jādalās ar īsā pārtraukuma laiku"
#. Settings dialog
msgid "Reset"
msgstr "Atgriezt"
#. Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
"Vai esat pārliecināts, ka vēlaties atgriezt visus iestatījumus uz to "
"noklusētajām vērtībām?"
#. Settings dialog
msgid "Options"
msgstr "Iestatījumi"
#. Settings dialog
msgid "Short Breaks"
msgstr "Īsie pārtraukumi"
#. Settings dialog
msgid "Long Breaks"
msgstr "Garie pārtraukumi"
#. Settings dialog
msgid "Delete"
msgstr "Dzēst"
#. Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr "Vai esat pārliecināts, ka vēlaties dzēst šo pārtraukumu?"
#. Settings dialog
msgid "You can't undo this action."
msgstr "Šo darbību nevar atdarīt."
#. Settings dialog
msgid "Break"
msgstr "Pārtraukums"
#. Settings dialog
msgid "Breaks"
msgstr "Pārtraukumi"
#. Settings dialog
msgid "Plugins"
msgstr "Spraudņi"
#. Settings dialog
msgid "Type"
msgstr "Tips"
#. Settings dialog
msgid "Short"
msgstr "Īsais"
#. Settings dialog
msgid "Long"
msgstr "Garais"
#. Settings dialog
msgid "Image"
msgstr "Attēls"
#. Settings dialog
msgid "Select"
msgstr "Izvēlēties"
#. Settings dialog
msgid "Please select an image"
msgstr "Lūdzu izvēlieties attēlu"
#. Settings dialog
msgid "Duration"
msgstr "Ilgums"
#. Settings dialog
msgid "Time to wait"
msgstr "Gaidīšanas laiks"
#. Settings dialog
msgid "Override"
msgstr "Mainīt"
#. Settings dialog
msgid "Time (in seconds)"
msgstr "Laiks (sekundēs)"
#. Settings dialog
msgid "Time (in minutes)"
msgstr "Laiks (minūtēs)"
#. Settings dialog
msgid "Break Settings"
msgstr "Pārtraukuma iestatījumi"
#. Settings dialog
msgid "Plugin Settings"
msgstr "Spraudņu iestatījumi"
#. Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr "Spraudnis neatbalsta %s darbvirsmas vidi"
#. Settings dialog
msgid "Please install the Python module '%s'"
msgstr "Lūdzu instalējiet Python moduli '%s'"
#. Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr "Lūdzu instalējiet komandrindas rīku '%s'"
#. Settings dialog
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr ""
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "Lūdzu ievietojiet artefaktu %(resource)s mapē %(config_resource)s"
#. Settings dialog
msgid "New Break"
msgstr "Jauns pārtraukums"
#. Settings dialog
msgid "Remove"
msgstr "Noņemt"
#. Settings dialog
msgid "Discard"
msgstr "Atmest"
#. Settings dialog
msgid "Save"
msgstr "Saglabāt"
#. plugin/audiblealert
msgid "Audible Alert"
msgstr "Skaņas signāls"
#. plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr "Spēlēt skaņas signālu pirms un pēc pārtraukuma"
#. plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr "Spēlēt skaņas signālu pirms pārtraukumiem"
#. plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr "Spēlēt skaņas signālu pēc pārtraukumiem"
#. plugin/donotdisturb
msgid "Do Not Disturb"
msgstr "Netraucēt"
#. plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr "Izlaist pārtraukumu, ja aktīvais logs ir pilnekrāna režīmā"
#. plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr "Nekad nepārtraukt šos logus"
#. plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr "Pārtraukt šos logus neatkarīgi no to režīma"
#. plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr "Pārslēgt pārtraucamos logus uz normālo režīmu"
#. plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr "Netraucēt, ja darbojas uz baterijas"
#. plugin/healthstats
msgid "Health Statistics"
msgstr "Veselības statistika"
#. plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr "Rādīt statistiku pamatojoties uz Safe Eyes lietošanas vēsturi"
#. plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr "Statistikas atstatīšanas intervāls (stundās)"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr ""
#. plugin/notification
msgid "Notification"
msgstr "Paziņojumi"
#. plugin/notification
msgid "Show a system notification before breaks"
msgstr "Rādīt sistēmas paziņojumus pirms pārtraukumiem"
#. plugin/notification
msgid "Ready for a short break in %s seconds"
msgstr "Gatavojies īsam pārtraukumam pēc %s sekundēm"
#. plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr "Gatavojies garam pārtraukumam pēc %s sekundēm"
#. plugin/screensaver
msgid "Screensaver"
msgstr "Ekrāna saudzētājs"
#. plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
msgstr "Slēgt ekrānu (ar ekrāna saudzētāju) pēc garajiem pārtraukumiem"
#. plugin/screensaver
msgid "Custom screensaver command"
msgstr "Pielāgota ekrāna saudzētāja komanda"
#. plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr "Mazākais laiks (s), ko izlaist bez ekrāna saudzētāja"
#. plugin/screensaver
msgid "Lock screen"
msgstr "Aizslēgt ekrānu"
#. plugin/smartpause
msgid "Smart Pause"
msgstr "Viedā pauze"
#. plugin/smartpause
msgid "Pause Safe Eyes if the system is idle"
msgstr "Apturēt Safe Eyes, ja sistēma ir dīkstāvē"
#. plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr "Minimālais dīkstāves laiks, lai apturētu Safe Eyes (sekundēs)"
#. plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr ""
"Dīkstāves laiku, kas ekvivalents nākamajam pārtraukumam, interpretēt kā "
"pārtraukumu"
#. plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr "Atlikt nākamo pārtraukumu līdz sistēma ir dīkstāvē"
@ -467,14 +401,14 @@ msgstr "Līdz restartam"
msgid "Quit"
msgstr "Iziet"
#. plugin/mediacontrol
msgid "Media Control"
msgstr "Multivides kontroles"
#. plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr "Pauzēt multivides atskaņotājus no pārtraukuma ekrāna"
#. plugin/mediacontrol
msgid "Pause media"
msgstr "Apturēt atskaņošanu"
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Statistikas atstatīšanas intervāls (stundās)"

View File

@ -85,13 +85,21 @@ msgstr ""
msgid "Safe Eyes is not running"
msgstr ""
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
# About dialog
msgid "Close"
msgstr ""
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes ве штити од замор на очите (asthenophobia) така што ве потсетува "
"да правите паузи додека работите долги часови на компјутер"
@ -125,7 +133,11 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr ""
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr ""
# Settings dialog
msgid "Show breaks in random order"
msgstr ""
# Settings dialog
@ -140,6 +152,14 @@ msgstr ""
msgid "Persist the internal state"
msgstr ""
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr ""
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr ""
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
@ -252,6 +272,10 @@ msgstr ""
msgid "Please install the command-line tool '%s'"
msgstr ""
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr ""
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
@ -321,7 +345,7 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgid "Statistics reset interval (cron expression)"
msgstr ""
# plugin/notification

View File

@ -0,0 +1,494 @@
# SAFE EYES ENGLISH TRANSLATION.
# Copyright (C) 2017 Gobinath
# Gobinath slgobinath@gmail.com, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2020-09-07 10:36+0000\n"
"Last-Translator: Radhika Bhagwan Jadhav <radhikajadhav014@gmail.com>\n"
"Language-Team: Marathi <https://hosted.weblate.org/projects/safe-eyes/"
"translations/mr/>\n"
"Language: mr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.3-dev\n"
# Short break
msgid "Tightly close your eyes"
msgstr "डोळे घट्ट बंद करा"
# Short break
msgid "Roll your eyes a few times to each side"
msgstr "प्रत्येक बाजूला काही वेळा डोळे फिरवा"
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr "आपले डोळे घड्याळाच्या काट्याच्या दिशेने फिरवा"
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr "आपले डोळे घड्याळाच्या काट्याच्या विरुद्ध फिरवा"
# Short break
msgid "Blink your eyes"
msgstr "डोळे मिचका"
# Short break
msgid "Focus on a point in the far distance"
msgstr "दूरवर असलेल्या बिंदूवर लक्ष केंद्रित करा"
# Short break
msgid "Have some water"
msgstr "थोडे पाणी प्या"
# Long break
msgid "Walk for a while"
msgstr "थोडावेळ चाला"
# Long break
msgid "Lean back at your seat and relax"
msgstr "आपल्या सीटवर मागे झुकून आराम करा"
# Commandline arg description
msgid "show the about dialog"
msgstr "बद्दल संवाद दर्शवा"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "सध्या चालू असलेल्या डोळ्यांचा देखावा अक्षम करा"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "सध्या चालू असलेल्या सुरक्षित डोळ्यांचा दृष्टांत सक्षम करा"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "चालू असणार्‍या डोळ्यांची उदाहरणे सोडून बाहेर पडा"
# Commandline arg description
msgid "show the settings dialog"
msgstr "सेटिंग्ज संवाद दर्शवा"
# Commandline arg description
msgid "start safeeyes in debug mode"
msgstr "डीबग मोडमध्ये सुरक्षित डोळे प्रारंभ करा"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr "सुरक्षित डोळ्यांची उदाहरणे चालविण्याची स्थिती प्रिंट करा आणि बाहेर पडा"
# Status message
msgid "Safe Eyes is not running"
msgstr "सेफ डोळे चालत नाहीत"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"सेफ डोळे आरपीसी सर्व्हरविना चालू आहेत. कमांड-लाइन वितर्क वापरण्यासाठी ते चालू करा."
# About dialog
msgid "Close"
msgstr "बंद"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
# About dialog
msgid "License"
msgstr ""
# Break screen
msgid "Skip"
msgstr ""
# Break screen
msgid "Postpone"
msgstr ""
# Settings dialog
msgid "Break duration (in seconds)"
msgstr ""
# Settings dialog
msgid "Interval between two breaks (in minutes)"
msgstr ""
# Settings dialog
msgid "Time to prepare for a break (in seconds)"
msgstr ""
# Settings dialog
msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr ""
# Settings dialog
msgid "Postponement duration (in minutes)"
msgstr ""
# Settings dialog
msgid "Show breaks in random order"
msgstr ""
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr ""
# Settings dialog
msgid "Allow postponing breaks"
msgstr ""
# Settings dialog
msgid "Persist the internal state"
msgstr ""
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr ""
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr ""
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog
msgid "Options"
msgstr ""
# Settings dialog
msgid "Short Breaks"
msgstr ""
# Settings dialog
msgid "Long Breaks"
msgstr ""
# Settings dialog
msgid "Delete"
msgstr ""
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr ""
# Settings dialog
msgid "You can't undo this action."
msgstr ""
# Settings dialog
msgid "Break"
msgstr ""
# Settings dialog
msgid "Breaks"
msgstr ""
# Settings dialog
msgid "Plugins"
msgstr ""
# Settings dialog
msgid "Type"
msgstr ""
# Settings dialog
msgid "Short"
msgstr ""
# Settings dialog
msgid "Long"
msgstr ""
# Settings dialog
msgid "Image"
msgstr ""
# Settings dialog
msgid "Select"
msgstr ""
# Settings dialog
msgid "Please select an image"
msgstr ""
# Settings dialog
msgid "Duration"
msgstr ""
# Settings dialog
msgid "Time to wait"
msgstr ""
# Settings dialog
msgid "Override"
msgstr ""
# Settings dialog
msgid "Time (in seconds)"
msgstr ""
# Settings dialog
msgid "Time (in minutes)"
msgstr ""
# Settings dialog
msgid "Break Settings"
msgstr ""
# Settings dialog
msgid "Plugin Settings"
msgstr ""
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr ""
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr ""
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr ""
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr ""
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
# Settings dialog
msgid "New Break"
msgstr ""
# Settings dialog
msgid "Remove"
msgstr ""
# Settings dialog
msgid "Discard"
msgstr ""
# Settings dialog
msgid "Save"
msgstr ""
# plugin/audiblealert
msgid "Audible Alert"
msgstr ""
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr ""
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr ""
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr ""
# plugin/donotdisturb
msgid "Do Not Disturb"
msgstr ""
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr ""
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr ""
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr ""
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr ""
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr ""
# plugin/healthstats
msgid "Health Statistics"
msgstr ""
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr ""
# plugin/notification
msgid "Notification"
msgstr ""
# plugin/notification
msgid "Show a system notification before breaks"
msgstr ""
# plugin/notification
msgid "Ready for a short break in %s seconds"
msgstr ""
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr ""
# plugin/screensaver
msgid "Screensaver"
msgstr ""
# plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
msgstr ""
# plugin/screensaver
msgid "Custom screensaver command"
msgstr ""
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr ""
# plugin/screensaver
msgid "Lock screen"
msgstr ""
# plugin/smartpause
msgid "Smart Pause"
msgstr ""
# plugin/smartpause
msgid "Pause Safe Eyes if the system is idle"
msgstr ""
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr ""
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr ""
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr ""
#: plugins/trayicon
msgid "Tray Icon"
msgstr ""
#: plugins/trayicon
msgid "Show a tray icon in the notification area"
msgstr ""
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr ""
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr ""
#: plugins/trayicon
msgid "About"
msgstr ""
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr ""
#: plugins/trayicon
msgid "Disabled until %s"
msgstr ""
#: plugins/trayicon
msgid "Disabled until restart"
msgstr ""
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr ""
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] ""
msgstr[1] ""
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] ""
msgstr[1] ""
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] ""
msgstr[1] ""
#: plugins/trayicon
msgid "Next break at %s"
msgstr ""
#: plugins/trayicon
msgid "No Breaks Available"
msgstr ""
#: plugins/trayicon
msgid "Settings"
msgstr ""
#: plugins/trayicon
msgid "Take a break now"
msgstr ""
#: plugins/trayicon
msgid "Until restart"
msgstr ""
#: plugins/trayicon
msgid "Quit"
msgstr ""
# plugin/mediacontrol
msgid "Media Control"
msgstr ""
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr ""
# plugin/mediacontrol
msgid "Pause media"
msgstr ""

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2019-03-02 23:28+0000\n"
"PO-Revision-Date: 2021-07-30 17:35+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
"safe-eyes/translations/nb_NO/>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.5-dev\n"
"X-Generator: Weblate 4.7.2-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -85,13 +85,24 @@ msgstr "skriv ut status for kjørende Øyetrygg-instans og avslutt"
msgid "Safe Eyes is not running"
msgstr "Øyetrygg kjører ikke"
# RPC not enabled message
#, fuzzy
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Øyetrygg kjører uten RPC-tjener. Slå den på for å bruke kommandolinje-"
"argumenter."
# About dialog
msgid "Close"
msgstr "Lukk"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr "Øyetrygg beskytter øyene dine fra belastning"
# About dialog
@ -123,9 +134,13 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Tastatursnarveier avskrudd i periode (i sekunder)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Utsettelsesvarighet (i minutter)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Vis pauser i tilfeldig rekkefølge"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Fastsatte pauser (ingen måte å hoppe over)"
@ -138,9 +153,17 @@ msgstr "Tillat utsettelse av pauser"
msgid "Persist the internal state"
msgstr "Fortsett i inngangstilstand"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Bruk RPC-tjener for å motta kjøremiljøkommandoer"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "Uten RPC-tjeneren, vil ikke kommandolinje-argumenter virke"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr "Tiden mellom lange pauser må være være en inndeling av de små pausene"
msgstr "Tiden mellom lange pauser må være en inndeling av de små pausene"
# Settings dialog
msgid "Reset"
@ -251,6 +274,11 @@ msgstr "Installer Python-modulen \"%s\""
msgid "Please install the command-line tool '%s'"
msgstr "Installer kommandolinjeverktøyet \"%s\""
# Settings dialog
#, fuzzy
msgid "Invalid cron expression '%s'"
msgstr "Ugyldig Cron-uttrykk «%s»"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "Legg til ressursen %(resource)s i %(config_resource)s-mappen"
@ -322,8 +350,8 @@ msgstr "Vis statistikk basert på din bruk av Øyetrygg"
# plugin/healthstats
#, fuzzy
msgid "Interval to reset statistics (in hours)"
msgstr "Intervall for tilbakestilling av statistikk (i timer)"
msgid "Statistics reset interval (cron expression)"
msgstr "Tid for tilbakestilling av statistikk (Cron-uttrykk)"
# plugin/notification
msgid "Notification"
@ -470,3 +498,8 @@ msgstr "Sett mediaspillere på pause fra pauseskjermen"
# plugin/mediacontrol
msgid "Pause media"
msgstr "Pause media"
# plugin/healthstats
#, fuzzy
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Intervall for tilbakestilling av statistikk (i timer)"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2019-03-02 23:28+0000\n"
"PO-Revision-Date: 2021-02-10 15:50+0000\n"
"Last-Translator: Heimen Stoffels <vistausss@outlook.com>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/safe-eyes/"
"translations/nl/>\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.5-dev\n"
"X-Generator: Weblate 4.5-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -85,13 +85,23 @@ msgstr "de status van de draaiende safeeyes-instantie printen en afsluiten"
msgid "Safe Eyes is not running"
msgstr "Safe Eyes draait niet"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes draait zonder RPC-server. Schakel dit in om opdrachtregelopties te "
"gebruiken."
# About dialog
msgid "Close"
msgstr "Sluiten"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes beschermt uw ogen tegen vermoeidheid (asthenopie) door u eraan te "
"herinneren tijdig een pauze in te lassen wanneer u langere tijd aan de "
@ -126,9 +136,13 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Tijd dat sneltoetsen uitgeschakeld zijn (in seconden)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Uitstelduur (in minuten)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Pauzes in willekeurige volgorde tonen"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Verplichte pauze (geen mogelijkheid tot overslaan)"
@ -141,6 +155,14 @@ msgstr "Overslaan van pauzes toestaan"
msgid "Persist the internal state"
msgstr "Interne status aanhouden"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "RPC-server gebruiken om opdrachten te ontvangen"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "Zonder RPC-server werken opdrachtregelopties mogelijk niet"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
@ -257,6 +279,10 @@ msgstr "Installeer de Python-module '%s'"
msgid "Please install the command-line tool '%s'"
msgstr "Installeer het terminalprogramma '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Ongeldige cron-uitdrukking '%s'"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "Voeg de bron %(resource)s toe aan de %(config_resource)s-map"
@ -327,8 +353,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Toon statistieken, gebaseerd op hoe je Safe Eyes gebruikt"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr "Tussenpoos om statistieken te herstellen (in uren)"
msgid "Statistics reset interval (cron expression)"
msgstr "Tijd waarna statistieken worden hersteld (cron-uitdrukking)"
# plugin/notification
msgid "Notification"
@ -475,3 +501,7 @@ msgstr "Mediaspelers pauzeren via het pauzescherm"
# plugin/mediacontrol
msgid "Pause media"
msgstr "Media pauzeren"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Tussenpoos om statistieken te herstellen (in uren)"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2018-09-08 20:23+0000\n"
"Last-Translator: WaldiS <admin@sto.ugu.pl>\n"
"PO-Revision-Date: 2023-10-31 16:04+0000\n"
"Last-Translator: Eryk Michalak <gnu.ewm@protonmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/safe-eyes/"
"translations/pl/>\n"
"Language: pl\n"
@ -16,7 +16,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 3.2-dev\n"
"X-Generator: Weblate 5.2-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -86,13 +86,23 @@ msgstr "wydrukuj status uruchomionej instancji safeeyes i zakończ"
msgid "Safe Eyes is not running"
msgstr "Safe Eyes nie jest uruchomiony"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes działa bez serwera RPC. Włącz, aby używać argumentów wiersza "
"polecenia."
# About dialog
msgid "Close"
msgstr "Zamknij"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes chroni Twoje oczy przed przemęczeniem i astenopią, przypominając "
"Ci o robieniu przerw podczas długotrwałej pracy przy komputerze"
@ -126,9 +136,13 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Okres wyłączenia skrótów klawiszowych (w sekundach)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Czas przełożenia (w minutach)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Wyświetlaj przerwy w losowej kolejności"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Przerwy ścisłe (Bez sposobu na ich ominięcie)"
@ -141,17 +155,25 @@ msgstr "Pozwól na przełożenie przerw"
msgid "Persist the internal state"
msgstr "Utrzymaj stan wewnętrzny"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Użyj serwera RPC, aby odbierać polecenia środowiska wykonawczego"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "Bez serwera RPC polecenia wiersza polecenia mogą nie działać"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr "Długa przerwa musi być poprzedzona kilkoma krótkimi"
# Settings dialog
msgid "Reset"
msgstr ""
msgstr "Resetuj"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
msgstr "Czy chcesz przywrócić ustawienia domyślne?"
# Settings dialog
msgid "Options"
@ -167,15 +189,15 @@ msgstr "Długie Przerwy"
# Settings dialog
msgid "Delete"
msgstr ""
msgstr "Usuń"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr ""
msgstr "Czy na pewno chcesz usunąć tę przerwę?"
# Settings dialog
msgid "You can't undo this action."
msgstr ""
msgstr "Nie można cofnąć tej operacji."
# Settings dialog
msgid "Break"
@ -219,7 +241,7 @@ msgstr "Czas trwania"
# Settings dialog
msgid "Time to wait"
msgstr ""
msgstr "Czas oczekiwania"
# Settings dialog
msgid "Override"
@ -253,6 +275,10 @@ msgstr "Proszę zainstalować moduł Pythona '%s'"
msgid "Please install the command-line tool '%s'"
msgstr "Proszę zainstalować wiersz poleceń '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Nieprawidłowe wyrażenie cron '%s'"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "Proszę dodać źródło %(resource)s do katalogu %(config_resource)s"
@ -287,7 +313,7 @@ msgstr "Odtwórz dźwięk przed przerwami"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr ""
msgstr "Odtwarzaj alarm dźwiękowy po przerwach"
# plugin/donotdisturb
msgid "Do Not Disturb"
@ -322,8 +348,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Pokaż statystyki oparte o Safe Eyes"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr ""
msgid "Statistics reset interval (cron expression)"
msgstr "Okres resetowania statystyk (wyrażenie cron)"
# plugin/notification
msgid "Notification"
@ -359,7 +385,7 @@ msgstr "Minimalna ilość sekund do pominięcia wygaszacza ekranu"
# plugin/screensaver
msgid "Lock screen"
msgstr ""
msgstr "Ekran blokady"
# plugin/smartpause
msgid "Smart Pause"
@ -381,7 +407,7 @@ msgstr ""
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr ""
msgstr "Odłóż następną przerwę do czasu, gdy system będzie bezczynny"
#: plugins/trayicon
msgid "Tray Icon"
@ -397,7 +423,7 @@ msgstr "Pokaż następny czas przerwy w obszarze powiadomień"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr ""
msgstr "Pozwól na zablokowanie Safe Eyes"
#: plugins/trayicon
msgid "About"
@ -454,7 +480,7 @@ msgstr "Ustawienia"
#: plugins/trayicon
msgid "Take a break now"
msgstr "Przerwa"
msgstr "Zrób sobie teraz przerwę"
#: plugins/trayicon
msgid "Until restart"
@ -466,12 +492,16 @@ msgstr "Wyjście"
# plugin/mediacontrol
msgid "Media Control"
msgstr ""
msgstr "Kontrola multimediów"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr ""
msgstr "Możliwość zatrzymania odtwarzaczy multimedialnych z ekranu blokady"
# plugin/mediacontrol
msgid "Pause media"
msgstr ""
msgstr "Wstrzymaj odtwarzanie"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Czas do wyzerowania statystyk (w godzinach)"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2017-10-28 07:15+0000\n"
"Last-Translator: Romulo do Vale <dovale.am@gmail.com>\n"
"PO-Revision-Date: 2021-04-18 10:26+0000\n"
"Last-Translator: José Vieira <jvieira33@sapo.pt>\n"
"Language-Team: Portuguese <https://hosted.weblate.org/projects/safe-eyes/"
"translations/pt/>\n"
"Language: pt\n"
@ -15,59 +15,59 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2.17\n"
"X-Generator: Weblate 4.6-dev\n"
# Short break
msgid "Tightly close your eyes"
msgstr "Feche bem forte seus olhos"
msgstr "Fechar os olhos com força"
# Short break
msgid "Roll your eyes a few times to each side"
msgstr "Gire seus olhos algumas vezes para cada lado"
msgstr "Mover os olhos algumas vezes para cada lado"
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr "Gire seus olhos no sentido horário"
msgstr "Rodar os olhos no sentido horário"
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr "Gire seus olhos no sentido anti-horário"
msgstr "Rodar os olhos no sentido anti-horário"
# Short break
msgid "Blink your eyes"
msgstr "Pisque seus olhos"
msgstr "Piscar os olhos"
# Short break
msgid "Focus on a point in the far distance"
msgstr "Concentre-se em um ponto em uma longa distância"
msgstr "Olhar para um ponto a longa distância"
# Short break
msgid "Have some water"
msgstr "Tome um pouco de água"
msgstr "Tomar um pouco de água"
# Long break
msgid "Walk for a while"
msgstr "Caminhe por um tempo"
msgstr "Andar um pouco"
# Long break
msgid "Lean back at your seat and relax"
msgstr "Se encoste na sua cadeira e relaxe"
msgstr "Encostar-se na cadeira e relaxar"
# Commandline arg description
msgid "show the about dialog"
msgstr "mostrar a janela sobre"
msgstr "mostrar a janela 'Sobre'"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "desabilitar a instância do safeeyes que está rodando"
msgstr "inativar a instância do safeeyes em execução"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "habilitar a instância do safeeyes que está em execução"
msgstr "reativar a instância do safeeyes em execução"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "fechar a instância atual do do safeeyes e sair"
msgstr "fechar a instância do safeeyes em execução e sair"
# Commandline arg description
msgid "show the settings dialog"
@ -75,15 +75,23 @@ msgstr "mostrar a janela de configuração"
# Commandline arg description
msgid "start safeeyes in debug mode"
msgstr "iniciar o safeeyes em modo de debug"
msgstr "iniciar o safeeyes em modo de depuração"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr ""
msgstr "mostrar o estado de execução do Safe Eyes e sair"
# Status message
msgid "Safe Eyes is not running"
msgstr "O Safe Eyes não está em execução"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"O Safe Eyes está em execução sem um servidor RPC (interno). Acionar um "
"servidor RPC para usar argumentos de linha de comando."
# About dialog
msgid "Close"
@ -91,18 +99,21 @@ msgstr "Fechar"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes protege seus olhos da fadiga ocular (astenopia) ao lembrá-lo de "
"dar uma pausa enquando você trabalha por horas no computador"
"O Safe Eyes ajuda a proteger os olhos da fadiga ocular (astenopia) ao "
"interromper periodicamente a utilização do computador quando é usado por "
"longos períodos, para que sejam feitas pausas para descanso"
# About dialog
msgid "License"
msgstr "Lecença"
msgstr "Licença"
# Break screen
msgid "Skip"
msgstr "Pular"
msgstr "Ignorar"
# Break screen
msgid "Postpone"
@ -110,49 +121,62 @@ msgstr "Adiar"
# Settings dialog
msgid "Break duration (in seconds)"
msgstr "Duração da parada (em segundos)"
msgstr "Duração da pausa (em segundos)"
# Settings dialog
msgid "Interval between two breaks (in minutes)"
msgstr "Intervalo entre duas paradas (em minutos)"
msgstr "Intervalo entre duas pausas (em minutos)"
# Settings dialog
msgid "Time to prepare for a break (in seconds)"
msgstr "Tempo de preparo para uma parada (em segundos)"
msgstr "Tempo de aviso de pausa (em segundos)"
# Settings dialog
msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Período para desabilitar atalhos de teclado (em segundos)"
msgstr "Período de desativação dos atalhos de teclado (em segundos)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Duração do adiamento (em minutos)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Mostrar as pausas aleatoriamente"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Parada forçada (Não tem como pular a parada)"
msgstr "Forçar pausas (não podem ser ignoradas)"
# Settings dialog
msgid "Allow postponing breaks"
msgstr "Permitir quebra de adiamentos"
msgstr "Permitir adiamento de pausas"
# Settings dialog
msgid "Persist the internal state"
msgstr "Persistir o estado interno"
msgstr "Manter o estado interno"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Utilizar um servidor RPC (interno) para receber comandos de runtime"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr ""
"Sem o servidor RPC, os comandos da linha de comandos podem não funcionar"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
"O intervalo de uma parada longa deve ser um múltiplo do intervalo de uma "
"parada curta"
"A duração de uma pausa longa tem que ser um múltiplo da duração de uma pausa "
"curta"
# Settings dialog
msgid "Reset"
msgstr ""
msgstr "Restabelecer"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
msgstr "Restabelecer realmente todas as definições para a predefinição?"
# Settings dialog
msgid "Options"
@ -160,35 +184,35 @@ msgstr "Opções"
# Settings dialog
msgid "Short Breaks"
msgstr "Paradas Curtas"
msgstr "Pausas curtas"
# Settings dialog
msgid "Long Breaks"
msgstr "Paradas Longas"
msgstr "Pausas longas"
# Settings dialog
msgid "Delete"
msgstr ""
msgstr "Eliminar"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr ""
msgstr "Remover efectivamente esta pausa?"
# Settings dialog
msgid "You can't undo this action."
msgstr ""
msgstr "Esta ação não pode ser anulada."
# Settings dialog
msgid "Break"
msgstr "Parada"
msgstr "Pausa"
# Settings dialog
msgid "Breaks"
msgstr "Paradas"
msgstr "Pausas"
# Settings dialog
msgid "Plugins"
msgstr "Plugins"
msgstr "Acrescentos"
# Settings dialog
msgid "Type"
@ -196,11 +220,11 @@ msgstr "Tipo"
# Settings dialog
msgid "Short"
msgstr "Curto"
msgstr "Curta"
# Settings dialog
msgid "Long"
msgstr "Longo"
msgstr "Longa"
# Settings dialog
msgid "Image"
@ -212,7 +236,7 @@ msgstr "Selecionar"
# Settings dialog
msgid "Please select an image"
msgstr "Por favor, selecione uma imagem"
msgstr "Selecionar uma imagem"
# Settings dialog
msgid "Duration"
@ -220,7 +244,7 @@ msgstr "Duração"
# Settings dialog
msgid "Time to wait"
msgstr ""
msgstr "Tempo de espera"
# Settings dialog
msgid "Override"
@ -236,32 +260,35 @@ msgstr "Tempo (em minutos)"
# Settings dialog
msgid "Break Settings"
msgstr "Configurações da Parada"
msgstr "Configurações da Pausa"
# Settings dialog
msgid "Plugin Settings"
msgstr "Configurações de Plugins"
msgstr "Definições do Acrescento"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr "Plugin não é suportado no ambiente de trabalho %s"
msgstr "O acrescento não funciona no ambiente de trabalho %s"
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr "Por favor instale o módulo Pynthon '%s'"
msgstr "Instalar o módulo Python '%s'"
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr "Por favor instale a ferramenta de linha de comando '%s'"
msgstr "Instalar a ferramenta de linha de comando '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "A expressão cron '%s' é inválida"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
"Por favor, adicione o recurso %(resource)s para %(config_resources)s pasta"
msgstr "Adicionar o recurso %(resource)s à pasta %(config_resources)s"
# Settings dialog
msgid "New Break"
msgstr "Nova Parada"
msgstr "Nova Pausa"
# Settings dialog
msgid "Remove"
@ -273,47 +300,47 @@ msgstr "Descartar"
# Settings dialog
msgid "Save"
msgstr "Salvar"
msgstr "Guardar"
# plugin/audiblealert
msgid "Audible Alert"
msgstr "Alerta Sonoro"
msgstr "Alerta sonoro"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr ""
msgstr "Reproduzir alerta sonoro antes e depois das pausas"
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr ""
msgstr "Reproduzir alerta sonoro antes das pausas"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr ""
msgstr "Reproduzir alerta sonoro depois das pausas"
# plugin/donotdisturb
msgid "Do Not Disturb"
msgstr "Não Perturbe"
msgstr "Não perturbar"
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr "Pular a parada se a janela ativa estiver em modo tela cheia"
msgstr "Ignorar a pausa se a janela ativa estiver em modo ecrã completo"
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr "Não interromper estas janelas nunca"
msgstr "Nunca interromper estas janelas"
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr "Interrompa essas janelas, independentemente do seu estado"
msgstr "Interromper estas janelas, independentemente do seu estado"
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr "Mude as janelas interruptíveis para o modo normal"
msgstr "Mudar as janelas interrompíveis para o modo normal"
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr ""
msgstr "Quando a usar a bateria, não perturbar"
# plugin/healthstats
msgid "Health Statistics"
@ -321,11 +348,11 @@ msgstr "Estatísticas de saúde"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr "Mostrar estatísticas baseadas em como você usa o Safe Eyes"
msgstr "Mostrar estatísticas com base na utilização do Safe Eyes"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr ""
msgid "Statistics reset interval (cron expression)"
msgstr "Intervalo para reiniciação da estatística (expressão cron)"
# plugin/notification
msgid "Notification"
@ -333,57 +360,55 @@ msgstr "Notificação"
# plugin/notification
msgid "Show a system notification before breaks"
msgstr "Mostrar uma notificação do sistema antes da parada"
msgstr "Mostrar notificações do sistema antes das pausas"
# plugin/notification
msgid "Ready for a short break in %s seconds"
msgstr "Prepare-se para uma parada curta em %s segundos"
msgstr "Pausa curta em %s segundos"
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr "Prepare-se para uma parada longa em %s segundos"
msgstr "Pausa longa em %s segundos"
# plugin/screensaver
msgid "Screensaver"
msgstr "Proteção de tela"
msgstr "Proteção de ecrã"
# plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
msgstr "Bloquear a tela após paradas longas iniciando a proteção de tela"
msgstr "Bloquear o ecrã após pausas longas, acionando a proteção de ecrã"
# plugin/screensaver
msgid "Custom screensaver command"
msgstr "Comando para proteção de tela personalizada"
msgstr "Comando personalizado para proteção de ecrã"
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr "Segundos mínimos para pular sem a proteção de tela"
msgstr "Tempo mínimo em segundos para ignorar sem acionar a proteção de ecrã"
# plugin/screensaver
msgid "Lock screen"
msgstr ""
msgstr "Bloquear ecrã"
# plugin/smartpause
msgid "Smart Pause"
msgstr "Pausa Inteligente"
msgstr "Pausa com critério"
# plugin/smartpause
msgid "Pause Safe Eyes if the system is idle"
msgstr "Pausar o Safe Eyes se o sistema estiver ocioso"
msgstr "Suspender o Safe Eyes se o sistema estiver inativo"
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr "Tempo ocioso mínimo para pausar o Safe Eyes (em segundos)"
msgstr "Tempo mínimo inativo para suspender o Safe Eyes (em segundos)"
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr ""
"Interprete o tempo ocioso equivalente à duração da próxima parada como uma "
"parada"
msgstr "Interpretar o tempo inativo equivalente à próxima pausa como uma pausa"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr ""
msgstr "Adiar a próxima pausa até que o sistema fique inativo"
#: plugins/trayicon
msgid "Tray Icon"
@ -395,11 +420,11 @@ msgstr "Mostrar um ícone de bandeja na área de notificação"
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr "Mostrar a próxima hora de parada no ícone de bandeja"
msgstr "Mostrar o horário da próxima pausa no ícone de bandeja"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr ""
msgstr "Permitir a desativação do Safe Eyes"
#: plugins/trayicon
msgid "About"
@ -407,53 +432,53 @@ msgstr "Sobre"
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr "Desabilitar o Safe Eyes"
msgstr "Desativar o Safe Eyes"
#: plugins/trayicon
msgid "Disabled until %s"
msgstr "Desabilitado até %s"
msgstr "Desativado até %s"
#: plugins/trayicon
msgid "Disabled until restart"
msgstr "Desabilitado até reiniciar"
msgstr "Desativado até reiniciar"
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr "Habilitar o Safe Eyes"
msgstr "Ativar o Safe Eyes"
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] "Para %d Hora"
msgstr[1] "Para %d Horas"
msgstr[0] "Por %d Hora"
msgstr[1] "Por %d Horas"
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] "Para %d Minuto"
msgstr[1] "Para %d Minutos"
msgstr[0] "Por %d Minuto"
msgstr[1] "Por %d Minutos"
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] "Para %d Segundo"
msgstr[1] "Para %d Segundos"
msgstr[0] "Por %d Segundo"
msgstr[1] "Por %d Segundos"
#: plugins/trayicon
msgid "Next break at %s"
msgstr "Próxima parada as %s"
msgstr "Próxima pausa às %s"
#: plugins/trayicon
msgid "No Breaks Available"
msgstr "Sem Paradas Disponíveis"
msgstr "Sem Pausas disponíveis"
#: plugins/trayicon
msgid "Settings"
msgstr "Configurações"
msgstr "Definições"
#: plugins/trayicon
msgid "Take a break now"
msgstr "Faça uma parada agora"
msgstr "Fazer uma pausa agora"
#: plugins/trayicon
msgid "Until restart"
@ -465,12 +490,16 @@ msgstr "Sair"
# plugin/mediacontrol
msgid "Media Control"
msgstr ""
msgstr "Controlo multimédia"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr ""
msgstr "Suspender reprodutores multimédia a partir do ecrã de pausa"
# plugin/mediacontrol
msgid "Pause media"
msgstr ""
msgstr "Suspender a reprodução"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Intervalo para reiniciar estatísticas (em horas)"

View File

@ -0,0 +1,505 @@
# SAFE EYES ENGLISH TRANSLATION.
# Copyright (C) 2017 Gobinath
# Gobinath slgobinath@gmail.com, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-04-18 10:26+0000\n"
"Last-Translator: José Vieira <jvieira33@sapo.pt>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"safe-eyes/translations/pt_BR/>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.6-dev\n"
# Short break
msgid "Tightly close your eyes"
msgstr "Feche firmemente seus olhos"
# Short break
msgid "Roll your eyes a few times to each side"
msgstr "Gire seus olhos algumas vezes para cada lado"
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr "Gire seus olhos no sentido horário"
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr "Gire seus olhos no sentido anti-horário"
# Short break
msgid "Blink your eyes"
msgstr "Pisque seus olhos"
# Short break
msgid "Focus on a point in the far distance"
msgstr "Concentre-se em um ponto em uma longa distância"
# Short break
msgid "Have some water"
msgstr "Tome um pouco de água"
# Long break
msgid "Walk for a while"
msgstr "Caminhe por um tempo"
# Long break
msgid "Lean back at your seat and relax"
msgstr "Se encoste na sua cadeira e relaxe"
# Commandline arg description
msgid "show the about dialog"
msgstr "mostrar a janela 'Sobre'"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "desabilitar a instância do safeeyes que está rodando"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "habilitar a instância do safeeyes que está em execução"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "fechar a instância atual do safeeyes e sair"
# Commandline arg description
msgid "show the settings dialog"
msgstr "mostrar a janela de configuração"
# Commandline arg description
msgid "start safeeyes in debug mode"
msgstr "iniciar o safeeyes em modo de debug"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr "mostrar o estado de execução do safeeyes e sair"
# Status message
msgid "Safe Eyes is not running"
msgstr "O Safe Eyes não está em execução"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"O Safe Eyes está em execução sem um servidor RPC ligado. Ligar para usar "
"argumentos de linha de comando."
# About dialog
msgid "Close"
msgstr "Fechar"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes protege seus olhos da fadiga ocular (astenopia) ao lembrá-lo de "
"dar uma pausa enquando você trabalha por horas no computador"
# About dialog
msgid "License"
msgstr "Licença"
# Break screen
msgid "Skip"
msgstr "Pular"
# Break screen
msgid "Postpone"
msgstr "Adiar"
# Settings dialog
msgid "Break duration (in seconds)"
msgstr "Duração da parada (em segundos)"
# Settings dialog
msgid "Interval between two breaks (in minutes)"
msgstr "Intervalo entre duas paradas (em minutos)"
# Settings dialog
msgid "Time to prepare for a break (in seconds)"
msgstr "Tempo de preparo para uma parada (em segundos)"
# Settings dialog
msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Período para desabilitar atalhos de teclado (em segundos)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgstr "Duração do adiamento (em minutos)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Mostrar pausas em ordem aleatória"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Pausa estrita (Não há como ignorar as pausas)"
# Settings dialog
msgid "Allow postponing breaks"
msgstr "Permitir adiamento de pausas"
# Settings dialog
msgid "Persist the internal state"
msgstr "Persistir o estado interno"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Utilize o servidor RPC para receber comandos de tempo de execução"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr ""
"Sem o servidor RPC, os comandos da linha de comandos podem não funcionar"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
"O intervalo de uma pausa longa deve ser um múltiplo do intervalo de uma "
"pausa curta"
# Settings dialog
msgid "Reset"
msgstr "Reiniciar"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
"Tem certeza que deseja reiniciar todas as definições para a predefinição?"
# Settings dialog
msgid "Options"
msgstr "Opções"
# Settings dialog
msgid "Short Breaks"
msgstr "Pausas Curtas"
# Settings dialog
msgid "Long Breaks"
msgstr "Pausas Longas"
# Settings dialog
msgid "Delete"
msgstr "Eliminar"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr "Tem certeza que deseja remover esta pausa?"
# Settings dialog
msgid "You can't undo this action."
msgstr "Não pode anular esta ação."
# Settings dialog
msgid "Break"
msgstr "Pausa"
# Settings dialog
msgid "Breaks"
msgstr "Pausas"
# Settings dialog
msgid "Plugins"
msgstr "Plug-ins"
# Settings dialog
msgid "Type"
msgstr "Tipo"
# Settings dialog
msgid "Short"
msgstr "Curto"
# Settings dialog
msgid "Long"
msgstr "Longo"
# Settings dialog
msgid "Image"
msgstr "Imagem"
# Settings dialog
msgid "Select"
msgstr "Selecionar"
# Settings dialog
msgid "Please select an image"
msgstr "Por favor, selecione uma imagem"
# Settings dialog
msgid "Duration"
msgstr "Duração"
# Settings dialog
msgid "Time to wait"
msgstr "Tempo de espera"
# Settings dialog
msgid "Override"
msgstr "Sobrepor"
# Settings dialog
msgid "Time (in seconds)"
msgstr "Tempo (em segundos)"
# Settings dialog
msgid "Time (in minutes)"
msgstr "Tempo (em minutos)"
# Settings dialog
msgid "Break Settings"
msgstr "Definições de Pausa"
# Settings dialog
msgid "Plugin Settings"
msgstr "Definições de Plug-in"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr "O plug-in não suporta o ambiente da área de trabalho %s"
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr "Por favor, instale o módulo '%s' do Pynthon"
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr "Por favor, instale a ferramenta '%s' da linha de comandos"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "A expressão de cron '%s' é inválida"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
"Por favor, adicione o recurso %(resource)s para a diretoria "
"%(config_resources)s"
# Settings dialog
msgid "New Break"
msgstr "Nova Pausa"
# Settings dialog
msgid "Remove"
msgstr "Remover"
# Settings dialog
msgid "Discard"
msgstr "Descartar"
# Settings dialog
msgid "Save"
msgstr "Guardar/Salvar"
# plugin/audiblealert
msgid "Audible Alert"
msgstr "Alerta Sonoro"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr "Alerta sonoro antes e depois das pausas"
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr "Alerta sonoro antes das pausas"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr "Alerta sonoro depois das pausas"
# plugin/donotdisturb
msgid "Do Not Disturb"
msgstr "Não Perturbe"
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr "Pular a parada se a janela ativa estiver em modo tela cheia"
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr "Não interromper estas janelas nunca"
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr "Interrompa essas janelas, independentemente do seu estado"
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr "Mude as janelas interruptíveis para o modo normal"
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr "Não perturbar enquanto a bateria estiver em uso"
# plugin/healthstats
msgid "Health Statistics"
msgstr "Estatísticas de saúde"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr "Mostrar estatísticas baseadas em como você usa o Safe Eyes"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "Intervalo de reinicialização da estatística (expressão cron)"
# plugin/notification
msgid "Notification"
msgstr "Notificação"
# plugin/notification
msgid "Show a system notification before breaks"
msgstr "Mostrar uma notificação do sistema antes da parada"
# plugin/notification
msgid "Ready for a short break in %s seconds"
msgstr "Prepare-se para uma parada curta em %s segundos"
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr "Prepare-se para uma parada longa em %s segundos"
# plugin/screensaver
msgid "Screensaver"
msgstr "Proteção de tela"
# plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
msgstr "Bloquear a tela após paradas longas iniciando a proteção de tela"
# plugin/screensaver
msgid "Custom screensaver command"
msgstr "Comando para proteção de tela personalizada"
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr "Segundos mínimos para pular sem a proteção de tela"
# plugin/screensaver
msgid "Lock screen"
msgstr "Bloquear a tela"
# plugin/smartpause
msgid "Smart Pause"
msgstr "Pausa Inteligente"
# plugin/smartpause
msgid "Pause Safe Eyes if the system is idle"
msgstr "Pausar o Safe Eyes se o sistema estiver ocioso"
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr "Tempo ocioso mínimo para pausar o Safe Eyes (em segundos)"
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr ""
"Interprete o tempo ocioso equivalente à duração da próxima parada como uma "
"parada"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr "Adiar a próxima parada até que o sistema se torne ocioso"
#: plugins/trayicon
msgid "Tray Icon"
msgstr "Ícone de bandeja"
#: plugins/trayicon
msgid "Show a tray icon in the notification area"
msgstr "Mostrar um ícone de bandeja na área de notificação"
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr "Mostrar a próxima hora de parada no ícone de bandeja"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr "Permitir a desabilitação do Safe Eyes"
#: plugins/trayicon
msgid "About"
msgstr "Sobre"
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr "Desabilitar o Safe Eyes"
#: plugins/trayicon
msgid "Disabled until %s"
msgstr "Desabilitado até %s"
#: plugins/trayicon
msgid "Disabled until restart"
msgstr "Desabilitado até reiniciar"
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr "Habilitar o Safe Eyes"
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] "Para %d Hora"
msgstr[1] "Para %d Horas"
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] "Para %d Minuto"
msgstr[1] "Para %d Minutos"
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] "Para %d Segundo"
msgstr[1] "Para %d Segundos"
#: plugins/trayicon
msgid "Next break at %s"
msgstr "Próxima parada as %s"
#: plugins/trayicon
msgid "No Breaks Available"
msgstr "Sem Paradas Disponíveis"
#: plugins/trayicon
msgid "Settings"
msgstr "Configurações"
#: plugins/trayicon
msgid "Take a break now"
msgstr "Faça uma parada agora"
#: plugins/trayicon
msgid "Until restart"
msgstr "Até reiniciar"
#: plugins/trayicon
msgid "Quit"
msgstr "Sair"
# plugin/mediacontrol
msgid "Media Control"
msgstr "Controle de Mídia"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr "Pausar reprodutores de mídia na tela de pausa"
# plugin/mediacontrol
msgid "Pause media"
msgstr "Pausar mídia"

View File

@ -6,17 +6,17 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2018-06-28 01:42+0000\n"
"Last-Translator: Anton Bolshakov <blshkv@pentoo.ch>\n"
"PO-Revision-Date: 2023-11-26 00:02+0000\n"
"Last-Translator: Almaz Mannanov <AlmazWorks@gmail.com>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/safe-eyes/"
"translations/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 3.1-dev\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 5.2.1-rc\n"
# Short break
msgid "Tightly close your eyes"
@ -56,15 +56,15 @@ msgstr "Откиньтесь на спинку стула и расслабьт
# Commandline arg description
msgid "show the about dialog"
msgstr "О программе"
msgstr "показать окно \"о программе\""
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "Отключить Safe Eyes"
msgstr "отключить текущий запущенный экземпляр Safe Eyes"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "Активировать Safe Eyes"
msgstr "активировать текущий запущенный экземпляр Safe Eyes"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
@ -72,7 +72,7 @@ msgstr "Закрыть Safe Eyes и выйти"
# Commandline arg description
msgid "show the settings dialog"
msgstr "Настройки"
msgstr "показать окно настроек"
# Commandline arg description
msgid "start safeeyes in debug mode"
@ -86,14 +86,26 @@ msgstr "вывести статус запущенного экземпляра
msgid "Safe Eyes is not running"
msgstr "Safe Eyes не запущен"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Программа Safe Eyes запущена без RPC сервера. Для использования аргументов "
"командной строки запустите RPC сервер."
# About dialog
msgid "Close"
msgstr "Закрыть"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgstr "Описание"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes защищает ваши глаза от перенапряжения (астенопии), напоминая о "
"необходимости сделать перерыв во время долгих часов за ПК"
# About dialog
msgid "License"
@ -124,12 +136,16 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Период блокировки горячих клавиш (в секундах)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Длительность откладывания (в минутах)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Показывать перерывы в случайном порядке"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Обязательный перерыв (Невозможно отменить перерывы)"
msgstr "Обязательный перерыв (без возможности пропуска)"
# Settings dialog
msgid "Allow postponing breaks"
@ -139,17 +155,26 @@ msgstr "Разрешить откладывание перерывов"
msgid "Persist the internal state"
msgstr "Сохранять внутреннее состояние"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Используйте RPC сервер для получения команд во время работы приложения"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "Без RPC сервера команды из командной строки могут не сработать"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr "Время длинного перерыва должно быть кратно времени короткого перерыва"
# Settings dialog
msgid "Reset"
msgstr ""
msgstr "Сбросить"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
"Вы действительно хотите сбросить все настройки на значения по умолчанию?"
# Settings dialog
msgid "Options"
@ -165,15 +190,15 @@ msgstr "Длинные перерывы"
# Settings dialog
msgid "Delete"
msgstr ""
msgstr "Удалить"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr ""
msgstr "Вы действительно хотите удалить это перерыв?"
# Settings dialog
msgid "You can't undo this action."
msgstr ""
msgstr "Вы не можете отменить это действие."
# Settings dialog
msgid "Break"
@ -209,7 +234,7 @@ msgstr "Выбрать"
# Settings dialog
msgid "Please select an image"
msgstr "Пожалуйста выберите изображение"
msgstr "Пожалуйста, выберите изображение"
# Settings dialog
msgid "Duration"
@ -217,7 +242,7 @@ msgstr "Длительность"
# Settings dialog
msgid "Time to wait"
msgstr ""
msgstr "Время ожидания"
# Settings dialog
msgid "Override"
@ -245,15 +270,19 @@ msgstr "Дополнение не поддерживает окружение р
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr "Пожалуйста установите модуль Python: %s"
msgstr "Пожалуйста, установите модуль Python: %s"
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr "Пожалуйста установите инструмент командной строки '%s'"
msgstr "Пожалуйста, установите инструмент командной строки '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Недопустимое выражение cron '%s'"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "Пожалуйста добавьте источник %(resource)s в папку %(config_resource)"
msgstr "Пожалуйста, добавьте источник %(resource)s в папку %(config_resource)"
# Settings dialog
msgid "New Break"
@ -261,7 +290,7 @@ msgstr "Новый перерыв"
# Settings dialog
msgid "Remove"
msgstr "Удалить"
msgstr "Стереть"
# Settings dialog
msgid "Discard"
@ -285,7 +314,7 @@ msgstr "Подавать звуковой сигнал перед перерыв
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr ""
msgstr "Проигрывать звуковой сигнал после перерывов"
# plugin/donotdisturb
msgid "Do Not Disturb"
@ -293,7 +322,7 @@ msgstr "Не беспокоить"
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr "Пропустить перерыв, если активое окно в полнооконном режиме"
msgstr "Пропустить перерыв, если активное окно в полноэкранном режиме"
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
@ -305,11 +334,11 @@ msgstr "Прерывать эти окна независимо от их сос
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr "Преключать прерываемые окна в нормальный режим"
msgstr "Переключать прерываемые окна в нормальный режим"
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr "Не прерывать на автономном питании"
msgstr "Не беспокоить при работе от батареи"
# plugin/healthstats
msgid "Health Statistics"
@ -317,11 +346,11 @@ msgstr "Статистика здоровья"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr "Показывать статистику основанную на использовании Safe Eyes"
msgstr "Показывать статистику, основанную на использовании Safe Eyes"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr ""
msgid "Statistics reset interval (cron expression)"
msgstr "Интервал сброса статистики (выражение cron)"
# plugin/notification
msgid "Notification"
@ -357,7 +386,7 @@ msgstr "Минимальное время (в секундах) для проп
# plugin/screensaver
msgid "Lock screen"
msgstr ""
msgstr "Заблокировать экран"
# plugin/smartpause
msgid "Smart Pause"
@ -374,12 +403,12 @@ msgstr "Минимальное время простоя для приостан
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr ""
"Интерпретировать время простоя равное продолжительности предстоящего "
"перерыва как перерыв"
"Интерпретировать время простоя, равное продолжительности предстоящего "
"перерыва, как перерыв"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr ""
msgstr "Отложить следующий перерыв до простаивания системы"
#: plugins/trayicon
msgid "Tray Icon"
@ -395,7 +424,7 @@ msgstr "Показывать время до следующего перерыв
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr ""
msgstr "Разрешить выключение Safe Eyes"
#: plugins/trayicon
msgid "About"
@ -464,12 +493,16 @@ msgstr "Выход"
# plugin/mediacontrol
msgid "Media Control"
msgstr ""
msgstr "Управление мультимедиа"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr ""
msgstr "Приостановить воспроизведение медиаплееров с экрана паузы"
# plugin/mediacontrol
msgid "Pause media"
msgstr ""
msgstr "Приостановить воспроизведение"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Интервал для сброса статистики (в часах)"

View File

@ -73,13 +73,17 @@ msgstr ""
msgid "Safe Eyes is not running"
msgstr ""
# RPC not enabled message
msgid "Safe Eyes is running without an RPC server. Turn it on to use command-line arguments."
msgstr ""
# About dialog
msgid "Close"
msgstr ""
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid "Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer"
msgstr ""
# About dialog
@ -111,7 +115,11 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr ""
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr ""
# Settings dialog
msgid "Show breaks in random order"
msgstr ""
# Settings dialog
@ -126,6 +134,14 @@ msgstr ""
msgid "Persist the internal state"
msgstr ""
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr ""
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr ""
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
@ -238,6 +254,10 @@ msgstr ""
msgid "Please install the command-line tool '%s'"
msgstr ""
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr ""
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
@ -307,7 +327,7 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgid "Statistics reset interval (cron expression)"
msgstr ""
# plugin/notification
@ -436,6 +456,18 @@ msgstr ""
msgid "Take a break now"
msgstr ""
#: plugins/trayicon
msgid "Any break"
msgstr ""
#: plugins/trayicon
msgid "Short break"
msgstr ""
#: plugins/trayicon
msgid "Long break"
msgstr ""
#: plugins/trayicon
msgid "Until restart"
msgstr ""
@ -454,4 +486,4 @@ msgstr ""
# plugin/mediacontrol
msgid "Pause media"
msgstr ""
msgstr ""

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2019-02-17 23:26+0000\n"
"Last-Translator: Jose Riha <jose1711@gmail.com>\n"
"PO-Revision-Date: 2023-08-10 19:53+0000\n"
"Last-Translator: Milan Šalka <salka.milan@googlemail.com>\n"
"Language-Team: Slovak <https://hosted.weblate.org/projects/safe-eyes/"
"translations/sk/>\n"
"Language: sk\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 3.5-dev\n"
"X-Generator: Weblate 5.0-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -85,17 +85,27 @@ msgstr "vypíše, či safeeyes beží a skončí"
msgid "Safe Eyes is not running"
msgstr "SafeEyes nebeží"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes je spustený bez RPC serveru. Zapnite ho pre použitie argumentov v "
"príkazovom riadku."
# About dialog
msgid "Close"
msgstr "Zavrieť"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes vám pripomenie, aby ste si urobili prestávku počas dlhých hodín "
"stravených za počítačom. Chráni tak vaše oči pred prílišným namáhaním "
"(asthenopiou)."
"(asthenopiou)"
# About dialog
msgid "License"
@ -126,9 +136,13 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Čas, počas ktorého budú zakázané klávesové skratky (v sekundách)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Odložiť o (v minútach)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Ukazovať prestávky v náhodnom poradí"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Povinná prestávka (nie je možné ju preskočiť)"
@ -141,6 +155,14 @@ msgstr "Povoliť odkladanie prestávok"
msgid "Persist the internal state"
msgstr "Zachovať vnútorný stav"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Použiť RPC server na prijatie spúšťacích príkazov"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "Bez RPC serveru príkazy v príkazovom riadku nemusia fungovať"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr "Dlhá prestávka musí byť násobkom krátkej prestávky"
@ -253,6 +275,10 @@ msgstr "Prosím naištalujte si Python modul '%s'"
msgid "Please install the command-line tool '%s'"
msgstr "Prosím nainštalujte si nástroj '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Neplatný výraz pre cron '%s'"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "Prosím pridajte zdroj %(resource)s do adresára %(config_resource)s"
@ -322,8 +348,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Zobraziť štatistiky o tom, ako používate Safe Eyes"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr ""
msgid "Statistics reset interval (cron expression)"
msgstr "Interval vynulovania štatistík (výraz pre plánovač cron)"
# plugin/notification
msgid "Notification"
@ -379,7 +405,7 @@ msgstr "Započítaj čas, kedy počítač nie je používaný, do prestávky"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr ""
msgstr "Odložiť ďalšiu prestávku až dokiaľ bude systém nečinný"
#: plugins/trayicon
msgid "Tray Icon"
@ -395,7 +421,7 @@ msgstr "Zobraziť čas nasledujúcej prestávku v ikone"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr ""
msgstr "Povoliť vypnutie Safe Eyes"
#: plugins/trayicon
msgid "About"
@ -464,12 +490,12 @@ msgstr "Koniec"
# plugin/mediacontrol
msgid "Media Control"
msgstr ""
msgstr "Ovládanie médií"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr ""
msgstr "Pozastaviť prehrávače médií z obrazovky prestávky"
# plugin/mediacontrol
msgid "Pause media"
msgstr ""
msgstr "Pozastaviť média"

View File

@ -0,0 +1,508 @@
# SAFE EYES ENGLISH TRANSLATION.
# Copyright (C) 2017 Gobinath
# Gobinath slgobinath@gmail.com, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2023-10-13 04:15+0000\n"
"Last-Translator: Novak Urosevic <novak_urosevic@yahoo.com>\n"
"Language-Team: Serbian <https://hosted.weblate.org/projects/safe-eyes/"
"translations/sr/>\n"
"Language: sr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 5.1-dev\n"
# Short break
msgid "Tightly close your eyes"
msgstr "Чврсто затворите очи"
# Short break
msgid "Roll your eyes a few times to each side"
msgstr "Колутајте очима „исцртавајући“ број 8 неколико пута"
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr "Колутајте очи у круг у смеру казаљке на сату"
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr "Колутајте очи у круг у смеру супротном од казаљке на сату"
# Short break
msgid "Blink your eyes"
msgstr "Трепћите очима"
# Short break
msgid "Focus on a point in the far distance"
msgstr "Усмерите поглед на тачку у даљини"
# Short break
msgid "Have some water"
msgstr "Попијте воду"
# Long break
msgid "Walk for a while"
msgstr "Протегните се"
# Long break
msgid "Lean back at your seat and relax"
msgstr "Завалите се у фотељу и опустите се"
# Commandline arg description
msgid "show the about dialog"
msgstr "Прикажи о нама прозор"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "Онемогућите тренутну сесију safeeyes-a"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "Омогућите тренутну сесију safeeyes-a"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "Искључите тренутну сесију safeeyes-а и затворите програм"
# Commandline arg description
msgid "show the settings dialog"
msgstr "Прикажи прозор са подешавањима"
# Commandline arg description
msgid "start safeeyes in debug mode"
msgstr "Покрените safeeyes у режиму за исправљање грешака"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr "Одштампајте статус тренутне сесије safeeyes-a и напустите"
# Status message
msgid "Safe Eyes is not running"
msgstr "Safe Eyes није укључен"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes ради без RPC (Remote Procedure Call) сервера. Укључите га како "
"бисте користили командне-линије."
# About dialog
msgid "Close"
msgstr "Затворите"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes штити Ваше очи од напрезања (astenopija) подсећајући Вас да "
"правите паузе током вишесатне употребе компјутера"
# About dialog
msgid "License"
msgstr "Лиценца"
# Break screen
msgid "Skip"
msgstr "Прескочите"
# Break screen
msgid "Postpone"
msgstr "Одложите"
# Settings dialog
msgid "Break duration (in seconds)"
msgstr "Време трајања паузе (у секундама)"
# Settings dialog
msgid "Interval between two breaks (in minutes)"
msgstr "Временски период између две паузе (у минутима)"
# Settings dialog
msgid "Time to prepare for a break (in seconds)"
msgstr "Време припреме за паузу (у секундама)"
# Settings dialog
msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Временски период искључења пречица тастатуре (у секундама)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgstr "Дужина трајања Одлагања (у минутима)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Прикажите паузе насумичним редоследом"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Обавезна пауза (без могућности одлагања пауза)"
# Settings dialog
msgid "Allow postponing breaks"
msgstr "Дозволи одлагање пауза"
# Settings dialog
msgid "Persist the internal state"
msgstr "Задржи интерни статус"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Користите RPC сервер како бисте примили runtime команде"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "Без RPC сервера, унос путем командних-линија можда неће бити успешан"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
"Интервали између дугих пауза морају бити неколико пута дужи од интервала "
"између кратких пауза"
# Settings dialog
msgid "Reset"
msgstr "Поново покрените"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
"Да ли сигурно желите да вратите сва подешавања на подразумевана подешавања?"
# Settings dialog
msgid "Options"
msgstr "Опције"
# Settings dialog
msgid "Short Breaks"
msgstr "Кратке Паузе"
# Settings dialog
msgid "Long Breaks"
msgstr "Дуге Паузе"
# Settings dialog
msgid "Delete"
msgstr "Обришите"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr "Да ли сигурно желите да обришете ову паузу?"
# Settings dialog
msgid "You can't undo this action."
msgstr "Не можете опозвати радњу."
# Settings dialog
msgid "Break"
msgstr "Пауза"
# Settings dialog
msgid "Breaks"
msgstr "Паузе"
# Settings dialog
msgid "Plugins"
msgstr "Додаци"
# Settings dialog
msgid "Type"
msgstr "Укуцајте"
# Settings dialog
msgid "Short"
msgstr "Кратка"
# Settings dialog
msgid "Long"
msgstr "Дуга"
# Settings dialog
msgid "Image"
msgstr "Слика"
# Settings dialog
msgid "Select"
msgstr "Изаберите"
# Settings dialog
msgid "Please select an image"
msgstr "Молимо Вас изаберите слику"
# Settings dialog
msgid "Duration"
msgstr "Дужина трајања"
# Settings dialog
msgid "Time to wait"
msgstr "Време чекања"
# Settings dialog
msgid "Override"
msgstr "Преписати"
# Settings dialog
msgid "Time (in seconds)"
msgstr "Време (у секундама)"
# Settings dialog
msgid "Time (in minutes)"
msgstr "Време (у минутима)"
# Settings dialog
msgid "Break Settings"
msgstr "Подешавање паузе"
# Settings dialog
msgid "Plugin Settings"
msgstr "Подешавање додатака"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr "Додатак не подржава % радну површину"
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr "Молимо Вас, преузмите модул '%s' за Пајтон"
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr "Молимо Вас, преузмите алатку командне-линије '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Неправилан формат за извршавање cron посла '%s'"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
"Молимо Вас, додајте ресурс %(resource)s у %(config_resource)s директоријум"
# Settings dialog
msgid "New Break"
msgstr "Нова Пауза"
# Settings dialog
msgid "Remove"
msgstr "Уклоните"
# Settings dialog
msgid "Discard"
msgstr "Одбаците"
# Settings dialog
msgid "Save"
msgstr "Сачувајте"
# plugin/audiblealert
msgid "Audible Alert"
msgstr "Звучно Обавештење"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr "Пустите звучно обавештење пре и после пауза"
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr "Пустите звучно обавештење пре пауза"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr "Пустите звучно овавештење након пауза"
# plugin/donotdisturb
msgid "Do Not Disturb"
msgstr "Не Узнемиравај"
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr "Прескочите паузу уколико је тренутни радни прозор у пуном екрану"
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr "Никада не ометајте ове радне прозоре"
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr "Ометајте ове радне прозоре без обзира на њихово стање"
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr "Промените променљив радни прозор у нормалан режим"
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr "Не Узнемиравај док компјутер ради са батерије"
# plugin/healthstats
msgid "Health Statistics"
msgstr "Здравствена статистика"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr "Покажи статистику на основу Ваше употребе Safe Eyes-a"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "Интервал ресетовања Података (cron послова)"
# plugin/notification
msgid "Notification"
msgstr "Обавештење"
# plugin/notification
msgid "Show a system notification before breaks"
msgstr "Покажите системско обавештење пре почетка пауза"
# plugin/notification
msgid "Ready for a short break in %s seconds"
msgstr "Спремите се за кратку паузу у року од %s секунди"
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr "Спремите се за дугу паузу у року од %s секунди"
# plugin/screensaver
msgid "Screensaver"
msgstr "Чувар екрана"
# plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
msgstr ""
"Закључајте екран за време дугих паузи тако што ћете укључити чувар екрана"
# plugin/screensaver
msgid "Custom screensaver command"
msgstr "Команда за чувар екрана по жељи"
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr "Најмањи број секунди за прескакање без чувара екрана"
# plugin/screensaver
msgid "Lock screen"
msgstr "Закључајте екран"
# plugin/smartpause
msgid "Smart Pause"
msgstr "Паметна Пауза"
# plugin/smartpause
msgid "Pause Safe Eyes if the system is idle"
msgstr "Зауставите Safe-Eyes уколико систем мирује"
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr ""
"Најкраћи временски период потребан за заустављање Safe Eyes-a (у секундама)"
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr ""
"Протумачите време мировања еквивалентно трајању предстојеће паузе као паузу"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr "Одложите наредну паузу док систем не постане неактиван"
#: plugins/trayicon
msgid "Tray Icon"
msgstr "Иконица на панелу"
#: plugins/trayicon
msgid "Show a tray icon in the notification area"
msgstr "Покажите иконицу на панелу у Обавештењима"
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr "Покажите време следеће паузе на иконици на панелу"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr "Дозволи онемогућавање Safe Eyes-a"
#: plugins/trayicon
msgid "About"
msgstr "О програму"
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr "Онемогући Safe Eyes"
#: plugins/trayicon
msgid "Disabled until %s"
msgstr "Онемогућено до %s"
#: plugins/trayicon
msgid "Disabled until restart"
msgstr "Онемогућено до ресетовања"
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr "Омогући Safe Eyes"
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] "сат"
msgstr[1] "сати"
msgstr[2] "сати"
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] "минут"
msgstr[1] "минута"
msgstr[2] "минута"
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] "секунда"
msgstr[1] "секунде"
msgstr[2] "секунди"
#: plugins/trayicon
msgid "Next break at %s"
msgstr "Наредна пауза је у %s"
#: plugins/trayicon
msgid "No Breaks Available"
msgstr "Нема доступних Пауза"
#: plugins/trayicon
msgid "Settings"
msgstr "Подешавања"
#: plugins/trayicon
msgid "Take a break now"
msgstr "Сада направи паузу"
#: plugins/trayicon
msgid "Until restart"
msgstr "До ресетовања"
#: plugins/trayicon
msgid "Quit"
msgstr "Изађите"
# plugin/mediacontrol
msgid "Media Control"
msgstr "Контрола медија"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr "Зауставите рад медијских плејера са екрана Паузе"
# plugin/mediacontrol
msgid "Pause media"
msgstr "Паузирај медије"

View File

@ -6,463 +6,496 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"PO-Revision-Date: 2023-02-11 11:39+0000\n"
"Last-Translator: Luna Jernberg <droidbittin@gmail.com>\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/safe-eyes/"
"translations/sv/>\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.7.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.16-dev\n"
# Short break
msgid "Tightly close your eyes"
msgstr ""
msgstr "Stäng ögonen tätt"
# Short break
msgid "Roll your eyes a few times to each side"
msgstr ""
msgstr "Rulla ögonen några gånger åt varje sida"
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr ""
msgstr "Vrid ögonen i medurs riktning"
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr ""
msgstr "Vrid ögonen i moturs riktning"
# Short break
msgid "Blink your eyes"
msgstr ""
msgstr "Blinka med ögonen"
# Short break
msgid "Focus on a point in the far distance"
msgstr ""
msgstr "Fokusera på en punkt på långt avstånd"
# Short break
msgid "Have some water"
msgstr ""
msgstr "Drick lite vatten"
# Long break
msgid "Walk for a while"
msgstr ""
msgstr "Promenera en stund"
# Long break
msgid "Lean back at your seat and relax"
msgstr ""
msgstr "Luta dig tillbaka på din plats och slappna av"
# Commandline arg description
msgid "show the about dialog"
msgstr ""
msgstr "visa dialogrutan om"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr ""
msgstr "inaktivera den för närvarande körande safeeyes-instansen"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr ""
msgstr "aktivera den för närvarande körande safeeyes-instansen"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr ""
msgstr "avbryt den körande safeeyes-instansen och avsluta"
# Commandline arg description
msgid "show the settings dialog"
msgstr ""
msgstr "visa dialogrutan inställningar"
# Commandline arg description
msgid "start safeeyes in debug mode"
msgstr ""
msgstr "starta safeeyes i felsökningsläge"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr ""
msgstr "skriv ut status för körning av safeeyes-instansen och avsluta"
# Status message
msgid "Safe Eyes is not running"
msgstr "Safe Eyes körs inte"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes kör utan \"RPC\"-server. Slå på den för att kunna använda "
"kommandoradsargument."
# About dialog
msgid "Close"
msgstr ""
msgstr "Stäng"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgstr ""
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr "beskrivning"
# About dialog
msgid "License"
msgstr ""
msgstr "Licens"
# Break screen
msgid "Skip"
msgstr ""
msgstr "Hoppa över"
# Break screen
msgid "Postpone"
msgstr ""
msgstr "Skjut upp"
# Settings dialog
msgid "Break duration (in seconds)"
msgstr ""
msgstr "Avbrottslängd (i sekunder)"
# Settings dialog
msgid "Interval between two breaks (in minutes)"
msgstr ""
msgstr "Intervall mellan två raster (i minuter)"
# Settings dialog
msgid "Time to prepare for a break (in seconds)"
msgstr ""
msgstr "Dags att förbereda sig för en paus (i sekunder)"
# Settings dialog
msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr ""
msgstr "Kortkommandon inaktiverad period (i sekunder)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgstr ""
msgid "Postponement duration (in minutes)"
msgstr "Uppskjutningsvaraktighet (i minuter)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Visa avbrott i slumpmässig ordning"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr ""
msgstr "Strikt paus (inget sätt att hoppa över pauser)"
# Settings dialog
msgid "Allow postponing breaks"
msgstr ""
msgstr "Tillåt att skjuta upp pauser"
# Settings dialog
msgid "Persist the internal state"
msgstr ""
msgstr "Bevara det interna tillståndet"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Använd RPC-server för att ta emot runtime-kommandon"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "Utan RPC-servern kanske kommandoradskommandon inte fungerar"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
msgstr "Lång paus intervall måste vara en multipel av kort paus intervall"
# Settings dialog
msgid "Reset"
msgstr ""
msgstr "Återställ"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
"Är du säker på att du vill återställa alla inställningar till standard?"
# Settings dialog
msgid "Options"
msgstr ""
msgstr "Alternativ"
# Settings dialog
msgid "Short Breaks"
msgstr ""
msgstr "Korta pauser"
# Settings dialog
msgid "Long Breaks"
msgstr ""
msgstr "Långa pauser"
# Settings dialog
msgid "Delete"
msgstr ""
msgstr "Radera"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr ""
msgstr "Är du säker på att du vill ta bort denna paus?"
# Settings dialog
msgid "You can't undo this action."
msgstr ""
msgstr "Du kan inte ångra den här åtgärden."
# Settings dialog
msgid "Break"
msgstr ""
msgstr "Rast"
# Settings dialog
msgid "Breaks"
msgstr ""
msgstr "Raster"
# Settings dialog
msgid "Plugins"
msgstr ""
msgstr "Insticksmoduler"
# Settings dialog
msgid "Type"
msgstr ""
msgstr "Typ"
# Settings dialog
msgid "Short"
msgstr ""
msgstr "Kort"
# Settings dialog
msgid "Long"
msgstr ""
msgstr "Lång"
# Settings dialog
msgid "Image"
msgstr ""
msgstr "Bild"
# Settings dialog
msgid "Select"
msgstr ""
msgstr "Välj"
# Settings dialog
msgid "Please select an image"
msgstr ""
msgstr "Välj en bild"
# Settings dialog
msgid "Duration"
msgstr ""
msgstr "Varaktighet"
# Settings dialog
msgid "Time to wait"
msgstr ""
msgstr "Tid att vänta"
# Settings dialog
msgid "Override"
msgstr ""
msgstr "Åsidosätt"
# Settings dialog
msgid "Time (in seconds)"
msgstr ""
msgstr "Tid (i sekunder)"
# Settings dialog
msgid "Time (in minutes)"
msgstr ""
msgstr "Tid (i minuter)"
# Settings dialog
msgid "Break Settings"
msgstr ""
msgstr "Rast inställningar"
# Settings dialog
msgid "Plugin Settings"
msgstr ""
msgstr "Tilläggsinställningar"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr ""
msgstr "Insticksmodul stöder inte %s skrivbordsmiljö"
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr ""
msgstr "Installera Python-modulen '%s'"
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr ""
msgstr "Installera kommandoradsverktyget '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Ogiltigt cron uttryck '%s'"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
msgstr "Lägg till resursen %(resource)s till %(config_resource)s katalog"
# Settings dialog
msgid "New Break"
msgstr ""
msgstr "Ny Paus"
# Settings dialog
msgid "Remove"
msgstr ""
msgstr "Ta bort"
# Settings dialog
msgid "Discard"
msgstr ""
msgstr "Förkasta"
# Settings dialog
msgid "Save"
msgstr ""
msgstr "Spara"
# plugin/audiblealert
msgid "Audible Alert"
msgstr ""
msgstr "Hörbar varning"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr ""
msgstr "Spela hörbar varning före och efter pauser"
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr ""
msgstr "Spela hörbar varning före pauser"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr ""
msgstr "Spela hörbar varning efter pauser"
# plugin/donotdisturb
msgid "Do Not Disturb"
msgstr ""
msgstr "Stör ej"
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr ""
msgstr "Hoppa över paus om det aktiva fönstret är i fullskärmsläge"
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr ""
msgstr "Avbryt helst inte dessa fönster"
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr ""
msgstr "Avbryta dessa fönster oavsett tillstånd"
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr ""
msgstr "Växla de avbrytbara fönstren till normalt läge"
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr ""
msgstr "Stör ej vid batteridrift"
# plugin/healthstats
msgid "Health Statistics"
msgstr ""
msgstr "Hälsostatistik"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
msgstr "Visa statistik baserat på hur du använder Safe Eyes"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr ""
msgid "Statistics reset interval (cron expression)"
msgstr "Återställningsintervall för statistik (cron-uttryck)"
# plugin/notification
msgid "Notification"
msgstr ""
msgstr "Avisering"
# plugin/notification
msgid "Show a system notification before breaks"
msgstr ""
msgstr "Visa ett systemmeddelande före pauser"
# plugin/notification
msgid "Ready for a short break in %s seconds"
msgstr ""
msgstr "Redo för en kort paus på %s sekunder"
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr ""
msgstr "Redo för en lång paus på %s sekunder"
# plugin/screensaver
msgid "Screensaver"
msgstr ""
msgstr "Skärmsläckare"
# plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
msgstr ""
msgstr "Lås skärmen efter långa pauser genom att starta skärmsläckaren"
# plugin/screensaver
msgid "Custom screensaver command"
msgstr ""
msgstr "Anpassat skärmsläckarkommando"
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr ""
msgstr "Minsta sekunder för att hoppa över utan skärmsläckare"
# plugin/screensaver
msgid "Lock screen"
msgstr ""
msgstr "Låsskärm"
# plugin/smartpause
msgid "Smart Pause"
msgstr ""
msgstr "Smart paus"
# plugin/smartpause
msgid "Pause Safe Eyes if the system is idle"
msgstr ""
msgstr "Pausa Safe Eyes om systemet är inaktivt"
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr ""
msgstr "Minsta inaktivitetstid för att pausa Safe Eyes (i sekunder)"
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr ""
"Tolka inaktiv tid som motsvarar kommande avbrottsvaraktighet som en paus"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr ""
msgstr "Skjut upp nästa paus tills systemet blir inaktivt"
#: plugins/trayicon
msgid "Tray Icon"
msgstr ""
msgstr "Aktivitetsfältsikon"
#: plugins/trayicon
msgid "Show a tray icon in the notification area"
msgstr ""
msgstr "Visa en aktivitetsfältsikon i meddelandefältet"
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr ""
msgstr "Visa nästa paustid i aktivitetsikonen"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr ""
msgstr "Tillåt inaktivering av Safe Eyes"
#: plugins/trayicon
msgid "About"
msgstr ""
msgstr "Om"
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr ""
msgstr "Inaktivera Safe Eyes"
#: plugins/trayicon
msgid "Disabled until %s"
msgstr ""
msgstr "Inaktiverad tills %s"
#: plugins/trayicon
msgid "Disabled until restart"
msgstr ""
msgstr "Inaktiverad tills omstart"
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr ""
msgstr "Aktivera Safe Eyes"
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] ""
msgstr[1] ""
msgstr[0] "För %d timme"
msgstr[1] "För %d timmar"
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] ""
msgstr[1] ""
msgstr[0] "För %d minut"
msgstr[1] "För %d minuter"
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] ""
msgstr[1] ""
msgstr[0] "För %d sekund"
msgstr[1] "För %d sekunder"
#: plugins/trayicon
msgid "Next break at %s"
msgstr ""
msgstr "Nästa paus vid %s"
#: plugins/trayicon
msgid "No Breaks Available"
msgstr ""
msgstr "Inga pauser tillgängliga"
#: plugins/trayicon
msgid "Settings"
msgstr ""
msgstr "Inställningar"
#: plugins/trayicon
msgid "Take a break now"
msgstr ""
msgstr "Ta en paus nu"
#: plugins/trayicon
msgid "Until restart"
msgstr ""
msgstr "Tills omstart"
#: plugins/trayicon
msgid "Quit"
msgstr ""
msgstr "Avsluta"
# plugin/mediacontrol
msgid "Media Control"
msgstr ""
msgstr "Mediekontroll"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr ""
msgstr "Pausa mediespelare från avbrottsskärmen"
# plugin/mediacontrol
msgid "Pause media"
msgstr ""
msgstr "Pausa media"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Intervall för att återställa statistik (i timmar)"

View File

@ -86,13 +86,23 @@ msgstr "இயங்கும் Safe Eyes நிலையை காண்பி
msgid "Safe Eyes is not running"
msgstr "Safe Eyes தற்போது இயங்கவில்லை"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes RPC சேவையகம் இன்றி இயங்குகிறது.\n"
"முனைய கட்டளைகளைப் பயன்படுத்த RPC சேவையகத்தை இயக்கவும்."
# About dialog
msgid "Close"
msgstr "மூடு"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"அடிக்கடி ஓய்வெடுக்க அறிவுறுத்துவதன் மூலம் Safe Eyes கணனியில் நீண்ட நேரம் பணியாற்றுவதால் "
"ஏற்படும் கண் சோர்வை தடுக்கிறது"
@ -126,9 +136,13 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "விசைப்பலகை குறுக்குவழிகள் முடக்கப்பட்டிருக்கும் காலம் (விநாடிகளில்)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "இடைவேளையை ஒத்தி வைக்கும் காலம் (நிமிடங்களில்)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "எழுமாறான வரிசையில் இடைவேளைகளை காண்பிக்கவும்"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "கட்டாய இடைவேளை (இடைவேளையை தவிர்க்க முடியாது)"
@ -141,6 +155,14 @@ msgstr "இடைவேளையை ஒத்திவைக்க அனும
msgid "Persist the internal state"
msgstr "உள்ளக நிலையை தக்கவைத்து கொள்ளவும்"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "இயக்க நேர கட்டளைகளைப் பெற RPC சேவையகத்தைப் செயற்படுத்தவும்"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "RPC சேவையகம் இல்லாமல், முனைய கட்டளைகள் இயங்காது"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
@ -255,6 +277,10 @@ msgstr "தயவுசெய்து '%s' Python தொகுப்பை ந
msgid "Please install the command-line tool '%s'"
msgstr "தயவுசெய்து '%s' முனைய கட்டளையை நிறுவுக"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr ""
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "தயவுசெய்து %(resource)s வளத்தை %(config_resource)s கோப்புறையில் சேர்க்கவும்"
@ -324,8 +350,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Safe Eyes பயன்பாடு அடிப்படையிலான ஆரோக்கிய புள்ளிவிவரங்கள்"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr "திரை நேரத்தை மீட்டமைப்பதற்கான இடைவேளை (மணித்தியாலங்களில்)"
msgid "Statistics reset interval (cron expression)"
msgstr ""
# plugin/notification
msgid "Notification"
@ -341,7 +367,7 @@ msgstr "%s விநாடிகளில் குறுகிய இடைவ
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr "{} விநாடிகளில் நீண்ட இடைவேளைக்கு தயாராகுங்கள்"
msgstr "%s விநாடிகளில் நீண்ட இடைவேளைக்கு தயாராகுங்கள்"
# plugin/screensaver
msgid "Screensaver"
@ -472,3 +498,7 @@ msgstr "இடைவேளை திரையில் இருந்து ப
# plugin/mediacontrol
msgid "Pause media"
msgstr "பல்லூடகத்தை இடைநிறுத்து"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "திரை நேரத்தை மீட்டமைப்பதற்கான இடைவேளை (மணித்தியாலங்களில்)"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2019-03-17 23:04+0000\n"
"Last-Translator: Serdar Sağlam <teknomobil@msn.com>\n"
"PO-Revision-Date: 2021-02-10 15:50+0000\n"
"Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/safe-eyes/"
"translations/tr/>\n"
"Language: tr\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.6-dev\n"
"X-Generator: Weblate 4.5-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -85,13 +85,23 @@ msgstr "çalışan Safe Eyes örneğinin durumunu yaz ve çık"
msgid "Safe Eyes is not running"
msgstr "Safe Eyes çalışmıyor"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes bir RPC sunucusu olmadan çalışıyor. Komut satırı argümanlarını "
"kullanmak için açın."
# About dialog
msgid "Close"
msgstr "Kapat"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes uzun bir süre boyunca bilgisayar başında çalışmanız gerektiği "
"zamanlarda size mola vermeyi hatırlatmak suretiyle gözlerinizi göz "
@ -126,9 +136,13 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Klavye kısayollarının etkisiz kalma süresi (saniye)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Erteleme süresi (dakika)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Molaları rastgele sırayla göster"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Kesin mola (Molayı geçmek için hiçbir yol yoktur)"
@ -141,6 +155,14 @@ msgstr "Molaları ertelemeye izin ver"
msgid "Persist the internal state"
msgstr "İç durum kalıcı olsun"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Çalışma zamanı komutlarını almak için RPC sunucusu kullan"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "RPC sunucusu olmadan, komut satırı komutları çalışmayabilir"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr "Uzun mola aralığı, kısa mola aralığının katı olmalıdır"
@ -253,6 +275,10 @@ msgstr "Lütfen '%s' Python modülünü kurun"
msgid "Please install the command-line tool '%s'"
msgstr "Lütfen '%s' komut satırı aracını kurunuz"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Geçersiz cron ifadesi '%s'"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "Lütfen %(resource)s kaynağını %(config_resource)s klasörüne ekleyiniz"
@ -322,8 +348,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Safe Eyes kullanımınıza ait istatistikler"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr "İstatistikleri sıfırlama aralığı (saat olarak)"
msgid "Statistics reset interval (cron expression)"
msgstr "İstatistikleri sıfırlama zamanı (cron ifadesi)"
# plugin/notification
msgid "Notification"
@ -473,3 +499,7 @@ msgstr "Ortam oynatıcıları ara ekrandan duraklat"
# plugin/mediacontrol
msgid "Pause media"
msgstr "Ortamı duraklat"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "İstatistikleri sıfırlama aralığı (saat olarak)"

View File

@ -84,13 +84,21 @@ msgstr ""
msgid "Safe Eyes is not running"
msgstr ""
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
# About dialog
msgid "Close"
msgstr ""
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
# About dialog
@ -122,7 +130,11 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr ""
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr ""
# Settings dialog
msgid "Show breaks in random order"
msgstr ""
# Settings dialog
@ -137,6 +149,14 @@ msgstr ""
msgid "Persist the internal state"
msgstr ""
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr ""
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr ""
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
@ -249,6 +269,10 @@ msgstr ""
msgid "Please install the command-line tool '%s'"
msgstr ""
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr ""
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
@ -318,7 +342,7 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgid "Statistics reset interval (cron expression)"
msgstr ""
# plugin/notification

View File

@ -6,17 +6,17 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2019-02-10 11:10+0000\n"
"Last-Translator: Kyrill <kapa76@gmail.com>\n"
"PO-Revision-Date: 2024-02-15 13:01+0000\n"
"Last-Translator: Сергій <sergiy.goncharuk.1@gmail.com>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/safe-eyes/"
"translations/uk/>\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 3.5-dev\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 5.4-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -24,7 +24,7 @@ msgstr "Щільно заплющіть очі"
# Short break
msgid "Roll your eyes a few times to each side"
msgstr "Закотіть очі кілька разів в у різні боки"
msgstr "Закотіть очі кілька разів у різні боки"
# Short break
msgid "Rotate your eyes in clockwise direction"
@ -48,7 +48,7 @@ msgstr "Випийте води"
# Long break
msgid "Walk for a while"
msgstr "Трохи походіть"
msgstr "Прогуляйтесь"
# Long break
msgid "Lean back at your seat and relax"
@ -80,22 +80,30 @@ msgstr "запуск safeeyes в режимі зневадження"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr "виведення стану виконання safeeyes та вихід"
msgstr "виведення стану виконуваного екземпляру програми safeeyes та вихід"
# Status message
msgid "Safe Eyes is not running"
msgstr "Safe Eyes не працює"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes працює з відключеним сервером RPC. Увімкніть сервер RPC для "
"використання аргументів вказівкового рядка."
# About dialog
msgid "Close"
msgstr "Закрити"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgstr ""
"Safe Eyes нагадує вам робити перерви, при довгій роботі за комп'ютером, "
"захищаючи ваші очі від втоми (asthenopia)"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr "Опис"
# About dialog
msgid "License"
@ -111,23 +119,27 @@ msgstr "Відкласти"
# Settings dialog
msgid "Break duration (in seconds)"
msgstr "Тривалість перерви (сек)"
msgstr "Тривалість перерви (в секундах)"
# Settings dialog
msgid "Interval between two breaks (in minutes)"
msgstr "Інтервал між двома перервами (хв)"
msgstr "Інтервал між двома перервами (в хвилинах)"
# Settings dialog
msgid "Time to prepare for a break (in seconds)"
msgstr "Час для підготовки до перерви (сек)"
msgstr "Час для підготовки до перерви (в секундах)"
# Settings dialog
msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Період вимикання комбінацій клавіш (сек)"
msgstr "Період вимикання комбінацій клавіш (в секундах)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgstr "Тривалість перенесення (хв)"
msgid "Postponement duration (in minutes)"
msgstr "Тривалість відкладення (в хвилинах)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Показувати перерви у випадковому порядку"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
@ -141,6 +153,14 @@ msgstr "Дозволити перенесення перерв"
msgid "Persist the internal state"
msgstr "Утримувати внутрішній стан"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Використовувати RPC-сервер для отримання вказівок виконання"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "Без сервера RPC вказівки вказівкового рядка можуть не працювати"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
@ -148,11 +168,11 @@ msgstr ""
# Settings dialog
msgid "Reset"
msgstr ""
msgstr "Скинути"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
msgstr "Справді хочете відновити типові налаштування?"
# Settings dialog
msgid "Options"
@ -176,7 +196,7 @@ msgstr "Ви упевнені, що хочете видалити цю пере
# Settings dialog
msgid "You can't undo this action."
msgstr "Цю дію не можливо відмінити."
msgstr "Цю дію неможливо скасувати."
# Settings dialog
msgid "Break"
@ -212,7 +232,7 @@ msgstr "Вибір"
# Settings dialog
msgid "Please select an image"
msgstr "Будь ласка, виберіть зображення"
msgstr "Виберіть зображення"
# Settings dialog
msgid "Duration"
@ -220,19 +240,19 @@ msgstr "Тривалість"
# Settings dialog
msgid "Time to wait"
msgstr "Час зачекати"
msgstr "Час очікування"
# Settings dialog
msgid "Override"
msgstr "Перевизначити"
msgstr "Перезаписати"
# Settings dialog
msgid "Time (in seconds)"
msgstr "Час (сек)"
msgstr "Час (в секундах)"
# Settings dialog
msgid "Time (in minutes)"
msgstr "Час (хв)"
msgstr "Час (в хвилинах)"
# Settings dialog
msgid "Break Settings"
@ -252,7 +272,11 @@ msgstr "Будь ласка, встановіть модуль Python «%s»"
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr "Будь ласка, встановіть засіб командного рядка «%s»"
msgstr "Будь ласка, встановіть засіб вказівкового рядка «%s»"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Неприпустимий вираз cron '%s'"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
@ -269,7 +293,7 @@ msgstr "Вилучити"
# Settings dialog
msgid "Discard"
msgstr "Скинути"
msgstr "Скасувати"
# Settings dialog
msgid "Save"
@ -277,19 +301,19 @@ msgstr "Зберегти"
# plugin/audiblealert
msgid "Audible Alert"
msgstr "Звукове попередження"
msgstr "Звукове сповіщення"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr "Відтворювати звукове попередження до і після перерв"
msgstr "Відтворювати звукове сповіщення до і після перерв"
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr "Відтворювати звукове попередження перед перервами"
msgstr "Відтворювати звукове сповіщення перед перервами"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr ""
msgstr "Відтворювати звукове сповіщення після перерв"
# plugin/donotdisturb
msgid "Do Not Disturb"
@ -302,15 +326,15 @@ msgstr ""
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr "Не переривати ці вікна в будь якому разі"
msgstr "Не перекривати ці вікна в жодному разі"
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr "Переривати ці вікна незалежно від їх стану"
msgstr "Перекривати ці вікна незалежно від їхнього стану"
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr "Перемикати ці недоступні для переривання вікна в нормальний режим"
msgstr "Перемикати недоступні для перекривання вікна в нормальний режим"
# plugin/donotdisturb
msgid "Do not disturb while on battery"
@ -325,8 +349,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Показувати статистику на основі використання вами програми Safe Eyes"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr ""
msgid "Statistics reset interval (cron expression)"
msgstr "Інтервал скидання статистики (вираз cron)"
# plugin/notification
msgid "Notification"
@ -334,15 +358,15 @@ msgstr "Сповіщення"
# plugin/notification
msgid "Show a system notification before breaks"
msgstr "Показувати сповіщення системи перед перервою"
msgstr "Показувати системне сповіщення перед перервами"
# plugin/notification
msgid "Ready for a short break in %s seconds"
msgstr "Приготуйтесь до короткої перерви за %sс"
msgstr "Приготуйтесь до короткої перерви через %s секунд"
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr "Приготуйтесь до довгої переви за %sс"
msgstr "Приготуйтесь до довгої переви через %s секунд"
# plugin/screensaver
msgid "Screensaver"
@ -354,11 +378,11 @@ msgstr "Блокувати екран після довгих перерв шл
# plugin/screensaver
msgid "Custom screensaver command"
msgstr "Команда власної заставки"
msgstr "Вказівка власної заставки"
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr "Мінімум секунд для пропуску без заставки"
msgstr "Мінімальний час (в секундах) для скасування запуску заставки"
# plugin/screensaver
msgid "Lock screen"
@ -370,17 +394,17 @@ msgstr "Розумна пауза"
# plugin/smartpause
msgid "Pause Safe Eyes if the system is idle"
msgstr "Зупиняти роботу Safe Eyes під час бездіяльності системи"
msgstr "Призупинити роботу Safe Eyes під час бездіяльності системи"
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr "Мінімальний час бездіяльності до припинення роботи Safe Eyes (сек)"
msgstr ""
"Мінімальний час бездіяльності до призупинення роботи Safe Eyes (в секундах)"
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr ""
"Інтерпретувати час простою, що дорівнює часу до найближчої перерви, як "
"перерву"
"Вважати перервою час бездіяльності, що дорівнює тривалості найближчої перерви"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
@ -388,19 +412,19 @@ msgstr "Відкласти наступну перерву до переходу
#: plugins/trayicon
msgid "Tray Icon"
msgstr "Значок в лотку"
msgstr "Піктограма в області сповіщень"
#: plugins/trayicon
msgid "Show a tray icon in the notification area"
msgstr "Показувати значок в панелі завдань в області сповіщень"
msgstr "Показувати піктограму в області сповіщень"
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr "Показувати час наступної перерви на значку"
msgstr "Показувати час наступної перерви на піктограмі в області сповіщень"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr ""
msgstr "Дозволити вимкнення Safe Eyes"
#: plugins/trayicon
msgid "About"
@ -425,23 +449,23 @@ msgstr "Увімкнути Safe Eyes"
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] "Протягом %d години"
msgstr[1] "Протягом %d годин"
msgstr[2] "Протягом %d годин"
msgstr[0] "На %d годину"
msgstr[1] "На %d годин"
msgstr[2] "На %d годин"
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] "Протягом %d хвилини"
msgstr[1] "Протягом %d хвилин"
msgstr[2] "Протягом %d хвилин"
msgstr[0] "На %d хвилину"
msgstr[1] "На %d хвилин"
msgstr[2] "На %d хвилин"
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] "Протягом %d секунди"
msgstr[1] "Протягом %d секунд"
msgstr[2] "Протягом %d секунд"
msgstr[0] "На %d секунду"
msgstr[1] "На %d секунд"
msgstr[2] "На %d секунд"
#: plugins/trayicon
msgid "Next break at %s"
@ -449,7 +473,7 @@ msgstr "Наступна перерва о %s"
#: plugins/trayicon
msgid "No Breaks Available"
msgstr "Жодних перерв"
msgstr "Перерви недоступні"
#: plugins/trayicon
msgid "Settings"
@ -469,12 +493,16 @@ msgstr "Вихід"
# plugin/mediacontrol
msgid "Media Control"
msgstr "Медіа керування"
msgstr "Керування медіа"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr "Зупинити медіа програвачи на екрані блокування"
msgstr "Призупиняти медіапрогравачі з екрану блокування"
# plugin/mediacontrol
msgid "Pause media"
msgstr "Призупинення медіа"
msgstr "Призупинити медіа"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Інтервал скидання статистики (в годинах)"

View File

@ -84,13 +84,21 @@ msgstr ""
msgid "Safe Eyes is not running"
msgstr ""
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
# About dialog
msgid "Close"
msgstr ""
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
# About dialog
@ -122,7 +130,11 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr ""
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr ""
# Settings dialog
msgid "Show breaks in random order"
msgstr ""
# Settings dialog
@ -137,6 +149,14 @@ msgstr ""
msgid "Persist the internal state"
msgstr ""
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr ""
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr ""
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
@ -249,6 +269,10 @@ msgstr ""
msgid "Please install the command-line tool '%s'"
msgstr ""
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr ""
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
@ -318,7 +342,7 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgid "Statistics reset interval (cron expression)"
msgstr ""
# plugin/notification

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2018-08-26 03:45+0000\n"
"Last-Translator: Hoàng Trần <hoangtk102@gmail.com>\n"
"PO-Revision-Date: 2022-11-26 23:54+0000\n"
"Last-Translator: Minh P <phandinhminh@protonmail.ch>\n"
"Language-Team: Vietnamese <https://hosted.weblate.org/projects/safe-eyes/"
"translations/vi/>\n"
"Language: vi\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.2-dev\n"
"X-Generator: Weblate 4.15-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -79,19 +79,29 @@ msgstr "Chạy Safe Eyes trong chế độ gỡ rối"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr ""
msgstr "in trạng thái chạy phiên bản Safe Eyes và thoát"
# Status message
msgid "Safe Eyes is not running"
msgstr "Safe Eyes không hoạt động"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr ""
"Safe Eyes đang chạy mà không có máy chủ RPC. Bạn hãy bật nó lên để sử dụng "
"tham số dòng lệnh nhé."
# About dialog
msgid "Close"
msgstr "Đóng"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"Safe Eyes bảo vệ đôi mắt của bạn khỏi sự mệt mỏi (asthenopia) bằng cách nhắc "
"nhở bạn nghỉ ngơi khi bạn đang làm việc trong một thời gian dài bên máy tính"
@ -126,9 +136,13 @@ msgstr ""
"Th.gian khóa phím tắt để tránh tắt nhầm Nhắc nhở khi nó hiện lên (bằng giây)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "Thời gian tạm hoãn (bằng phút)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Hiển thị theo thứ tự ngẫu nhiên"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Nghỉ ngơi nghiêm túc (Không cho phép bỏ qua)"
@ -139,7 +153,15 @@ msgstr "Cho phép tạm hoãn nghỉ ngơi"
# Settings dialog
msgid "Persist the internal state"
msgstr "Persist the internal state"
msgstr "Duy trì nội trạng thái"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "Sử dụng máy chủ RPC để nhận lệnh thời gian chạy"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "Nếu không có máy chủ RPC, các lệnh dòng lệnh có thể không hoạt động"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
@ -147,11 +169,11 @@ msgstr "Thời gian nghỉ dài phải là bội số của thời gian nghỉ n
# Settings dialog
msgid "Reset"
msgstr ""
msgstr "Đặt lại"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
msgstr "Bạn có chắc chắn muốn đặt lại tất cả cài đặt về mặc định không?"
# Settings dialog
msgid "Options"
@ -167,15 +189,15 @@ msgstr "Nghỉ ngơi dài"
# Settings dialog
msgid "Delete"
msgstr ""
msgstr "Xóa"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr ""
msgstr "Bạn có chắc chắn muốn xóa thời gian nghỉ này không?"
# Settings dialog
msgid "You can't undo this action."
msgstr ""
msgstr "Bạn không thể hoàn tác hành động này."
# Settings dialog
msgid "Break"
@ -219,7 +241,7 @@ msgstr "Thời gian"
# Settings dialog
msgid "Time to wait"
msgstr ""
msgstr "Thời gian chờ"
# Settings dialog
msgid "Override"
@ -253,6 +275,10 @@ msgstr "Vui lòng cài đặt Python module '%s'"
msgid "Please install the command-line tool '%s'"
msgstr "Vui lòng cài đặt công cụ dòng lệnh (command-line tool) '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Biểu thức cron '%s' không hợp lệ"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "Vui lòng thêm tài nguyên %(resource) vào thư mục %(config_resource)"
@ -279,15 +305,15 @@ msgstr "Thông báo âm thanh"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr ""
msgstr "Phát âm thanh cảnh báo trước và sau khi nghỉ giải lao"
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr ""
msgstr "Phát âm thanh cảnh báo trước khi nghỉ giải lao"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr ""
msgstr "Phát âm thanh cảnh báo sau khi nghỉ giải lao"
# plugin/donotdisturb
msgid "Do Not Disturb"
@ -312,7 +338,7 @@ msgstr "Chuyển các cửa sổ có thể ngắt được sang chế độ bìn
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr ""
msgstr "Không làm phiền khi đang sử dụng pin"
# plugin/healthstats
msgid "Health Statistics"
@ -323,8 +349,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Hiện thống kê dựa trên việc bạn sử dụng Safe Eyes như thế nào"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr ""
msgid "Statistics reset interval (cron expression)"
msgstr "Khoảng thời gian đặt lại thống kê (biểu thức cron)"
# plugin/notification
msgid "Notification"
@ -360,7 +386,7 @@ msgstr "Số giây thối thiểu để bỏ qua mà không có màn hình chờ
# plugin/screensaver
msgid "Lock screen"
msgstr ""
msgstr "Khóa màn hình"
# plugin/smartpause
msgid "Smart Pause"
@ -382,7 +408,7 @@ msgstr ""
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr ""
msgstr "Hoãn lần nghỉ tiếp theo cho đến khi hệ thống không hoạt động"
#: plugins/trayicon
msgid "Tray Icon"
@ -398,7 +424,7 @@ msgstr "Hiện thời gian nghỉ tiếp theo ở biểu tượng khay"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr ""
msgstr "Cho phép tắt Safe Eyes"
#: plugins/trayicon
msgid "About"
@ -461,12 +487,12 @@ msgstr "Thoát"
# plugin/mediacontrol
msgid "Media Control"
msgstr ""
msgstr "Kiểm soát phương tiện"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr ""
msgstr "Tạm dừng trình phát đa phương tiện từ màn hình nghỉ"
# plugin/mediacontrol
msgid "Pause media"
msgstr ""
msgstr "Tạm dừng media"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2019-01-08 11:07+0000\n"
"Last-Translator: wcy <m895686@163.com>\n"
"PO-Revision-Date: 2024-02-21 10:01+0000\n"
"Last-Translator: aerowolf <aerowolf@tom.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"safe-eyes/translations/zh_Hans/>\n"
"Language: zh_CN\n"
@ -15,23 +15,23 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.4-dev\n"
"X-Generator: Weblate 5.5-dev\n"
# Short break
msgid "Tightly close your eyes"
msgstr "闭上您的眼睛休息一会"
msgstr "闭上眼睛休息一下"
# Short break
msgid "Roll your eyes a few times to each side"
msgstr "左右滚动您的眼珠"
msgstr "左右转动眼球"
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr "顺时针方向转动您的眼珠"
msgstr "顺时针方向转动眼球"
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr "逆时针方向转动您的眼珠"
msgstr "逆时针方向转动眼球"
# Short break
msgid "Blink your eyes"
@ -39,11 +39,11 @@ msgstr "眨眨眼"
# Short break
msgid "Focus on a point in the far distance"
msgstr "望远:将视线聚焦到远处物体上"
msgstr "远眺:看看尽可能远的远处"
# Short break
msgid "Have some water"
msgstr "喝点水"
msgstr "喝点水"
# Long break
msgid "Walk for a while"
@ -51,7 +51,7 @@ msgstr "站起来走走"
# Long break
msgid "Lean back at your seat and relax"
msgstr "靠在椅背上休息一"
msgstr "靠在椅背上休息一"
# Commandline arg description
msgid "show the about dialog"
@ -59,15 +59,15 @@ msgstr "显示“关于”对话框"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "禁用当前正在运行的Safeeyes"
msgstr "暂停当前正在运行的Safe Eyes"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "启用当前正在运行的Safeeyes"
msgstr "恢复当前正在运行的Safe Eyes"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "退出正在运行的Safeeyes"
msgstr "退出Safe Eeyes"
# Commandline arg description
msgid "show the settings dialog"
@ -75,15 +75,21 @@ msgstr "显示“设置”对话框"
# Commandline arg description
msgid "start safeeyes in debug mode"
msgstr "以调试模式运行Safeeyes"
msgstr "以调试模式运行Safe Eyes"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr "打印Safeeyes运行状态后退出"
msgstr "显示Safe Eyes运行状态后退出"
# Status message
msgid "Safe Eyes is not running"
msgstr "SafeEyes还未启动"
msgstr "Safe Eyes 没有运行"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr "Safe Eyes 正在没有RPC服务器的情况下运行。打开RPC服务器可以使用命令行参数。"
# About dialog
msgid "Close"
@ -91,14 +97,16 @@ msgstr "关闭"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr ""
"当您持续使用电脑办公太长时间时Safe Eyes 会提醒您休息一下,通过这种方式来保"
"护您的眼睛,使您远离视疲劳"
"长时间使用电脑办公时Safe Eyes 会适时提醒您休息一下,以便帮助您保护好眼睛、"
"远离视疲劳"
# About dialog
msgid "License"
msgstr "许可"
msgstr "许可"
# Break screen
msgid "Skip"
@ -114,7 +122,7 @@ msgstr "休息时长(秒)"
# Settings dialog
msgid "Interval between two breaks (in minutes)"
msgstr "相邻休息之间的时间间隔(分钟)"
msgstr "前后休息的间隔时间(分钟)"
# Settings dialog
msgid "Time to prepare for a break (in seconds)"
@ -125,12 +133,16 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "禁用键盘快捷键的时长(秒)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgid "Postponement duration (in minutes)"
msgstr "推迟休息时长(分钟)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "以随机顺序显示休息"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "严格休息(无法跳过休息)"
msgstr "坚持休息(不允许跳过"
# Settings dialog
msgid "Allow postponing breaks"
@ -138,19 +150,27 @@ msgstr "允许推迟休息"
# Settings dialog
msgid "Persist the internal state"
msgstr "维持内部状态"
msgstr "支持内部状态"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "使用RPC服务器接收运行时命令"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "没有RPC服务器命令行命令可能无法正常工作"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr "长休息时间间隔必须是短休息间隔的倍数"
msgstr "长休息的间隔时间必须是短休息间隔时间的倍数"
# Settings dialog
msgid "Reset"
msgstr ""
msgstr "重置"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
msgstr "确定要删除当前设置,重置为默认设置吗?"
# Settings dialog
msgid "Options"
@ -170,11 +190,11 @@ msgstr "删除"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr "确定要删除此休息吗?"
msgstr "确定要删除此休息吗?"
# Settings dialog
msgid "You can't undo this action."
msgstr "你无法撤销这个命令。"
msgstr "无法撤销此动作。"
# Settings dialog
msgid "Break"
@ -218,7 +238,7 @@ msgstr "时长"
# Settings dialog
msgid "Time to wait"
msgstr ""
msgstr "等候时间"
# Settings dialog
msgid "Override"
@ -242,7 +262,7 @@ msgstr "插件设置"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr "插件不支持%s桌面环境"
msgstr "插件不支持 %s 桌面环境"
# Settings dialog
msgid "Please install the Python module '%s'"
@ -252,13 +272,17 @@ msgstr "请安装Python模块“%s\""
msgid "Please install the command-line tool '%s'"
msgstr "请安装命令行工具”%s“"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "无效的 cron 正则表达式 '%s'"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "请把资源%(resource)添加到%(config_resource)文件夹"
msgstr "请将资源 %(resource) 添加到 %(config_resource) 目录"
# Settings dialog
msgid "New Break"
msgstr "新休息"
msgstr "新休息"
# Settings dialog
msgid "Remove"
@ -278,15 +302,15 @@ msgstr "声音提示"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr "休息前后播放声音"
msgstr "休息前后播放声音提示"
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr "休息前播放声音"
msgstr "休息前播放声音提示"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr ""
msgstr "休息后播放声音提示"
# plugin/donotdisturb
msgid "Do Not Disturb"
@ -294,7 +318,7 @@ msgstr "免打扰"
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr "当前活跃窗口是全屏时跳过休息"
msgstr "如活跃窗口处于全屏模式,则跳过休息"
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
@ -302,7 +326,7 @@ msgstr "任何时候都不要中断这些窗口"
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr "中断这些窗口无视其状态"
msgstr "中断这些窗口无视其状态"
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
@ -318,11 +342,11 @@ msgstr "健康统计"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr "基于你如何使用 Safe Eyes 展示统计数据"
msgstr "统计数据取决于您如何使用Safe Eyes"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr ""
msgid "Statistics reset interval (cron expression)"
msgstr "重置统计数据的时间 (cron expr)"
# plugin/notification
msgid "Notification"
@ -330,7 +354,7 @@ msgstr "通知"
# plugin/notification
msgid "Show a system notification before breaks"
msgstr "在休息之前显示一个系统通知"
msgstr "在休息之前显示系统通知"
# plugin/notification
msgid "Ready for a short break in %s seconds"
@ -342,23 +366,23 @@ msgstr "%s 秒后将进入一个长休息"
# plugin/screensaver
msgid "Screensaver"
msgstr "屏程序"
msgstr "屏保程序"
# plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
msgstr "在长休息之后通过开启屏程序来锁定屏幕"
msgstr "在长休息之后开启屏保程序来锁定屏幕"
# plugin/screensaver
msgid "Custom screensaver command"
msgstr "自定义屏程序命令"
msgstr "自定义屏保程序命令"
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr "在没有屏保的情况下允许跳过的最短时间(秒)"
msgstr "无屏保时允许跳过的最短时间(秒)"
# plugin/screensaver
msgid "Lock screen"
msgstr ""
msgstr "锁屏"
# plugin/smartpause
msgid "Smart Pause"
@ -374,11 +398,11 @@ msgstr "暂停 Safe Eyes 的最短时间(秒)"
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr "将系统空闲时间作为下次休息时长来对待"
msgstr "将系统空闲时间视作此后休息时长"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr "推迟下次休息直到系统进入空闲"
msgstr "推迟下次休息直到系统空闲"
#: plugins/trayicon
msgid "Tray Icon"
@ -386,15 +410,15 @@ msgstr "托盘图标"
#: plugins/trayicon
msgid "Show a tray icon in the notification area"
msgstr "在通知区域显示一个托盘图标"
msgstr "在通知区域显示托盘图标"
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr "在托盘图标上显示下次休息的时间"
msgstr "在托盘图标中显示下次休息时间"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr ""
msgstr "允许暂停Safe Eyes"
#: plugins/trayicon
msgid "About"
@ -402,19 +426,19 @@ msgstr "关于"
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr "禁用 Safe Eyes"
msgstr "暂停 Safe Eyes"
#: plugins/trayicon
msgid "Disabled until %s"
msgstr "禁用软件直到 %s"
msgstr "暂停,直到 %s"
#: plugins/trayicon
msgid "Disabled until restart"
msgstr "禁用软件直到重新启动"
msgstr "暂停,直到重启"
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr "启用 Safe Eyes"
msgstr "恢复 Safe Eyes"
#: plugins/trayicon
msgid "For %d Hour"
@ -433,11 +457,11 @@ msgstr[0] "%d 秒"
#: plugins/trayicon
msgid "Next break at %s"
msgstr "下次休息在 %s"
msgstr "下次休息在 %s"
#: plugins/trayicon
msgid "No Breaks Available"
msgstr "没有可用的休息"
msgstr "可用的休息"
#: plugins/trayicon
msgid "Settings"
@ -457,12 +481,16 @@ msgstr "退出"
# plugin/mediacontrol
msgid "Media Control"
msgstr ""
msgstr "媒体控制"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr ""
msgstr "休息时暂停媒体播放"
# plugin/mediacontrol
msgid "Pause media"
msgstr ""
msgstr "暂停媒体"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "重置统计间隔(小时)"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2018-07-02 15:36+0000\n"
"Last-Translator: ezjerry liao <ezjerry@gmail.com>\n"
"PO-Revision-Date: 2024-01-30 14:01+0000\n"
"Last-Translator: 麋悟BigELK176 <bigelk176@gmail.com>\n"
"Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/"
"safe-eyes/translations/zh_Hant/>\n"
"Language: zh_TW\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.1-dev\n"
"X-Generator: Weblate 5.4-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -83,7 +83,13 @@ msgstr "顯示目前正在執行的 safeeyes 狀態並離開"
# Status message
msgid "Safe Eyes is not running"
msgstr "Safe Eyes 沒有正在執行"
msgstr "Safe Eyes 未啟動"
# RPC not enabled message
msgid ""
"Safe Eyes is running without an RPC server. Turn it on to use command-line "
"arguments."
msgstr "Safe Eyes 運行中不使用 RPC 伺服器。使用終端指令參數進行開啟。"
# About dialog
msgid "Close"
@ -91,7 +97,9 @@ msgstr "關閉"
# Description in about dialog
# Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer
msgid "description"
msgid ""
"Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
msgstr "描述"
# About dialog
@ -108,359 +116,379 @@ msgstr "延遲"
# Settings dialog
msgid "Break duration (in seconds)"
msgstr ""
msgstr "休息時長(秒)"
# Settings dialog
msgid "Interval between two breaks (in minutes)"
msgstr ""
msgstr "休息間隔(分鐘)"
# Settings dialog
msgid "Time to prepare for a break (in seconds)"
msgstr ""
msgstr "休息前準備時間(秒)"
# Settings dialog
msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr ""
msgstr "鍵盤快速鍵停用期間(秒)"
# Settings dialog
msgid "Postpone duration (in minutes)"
msgstr ""
msgid "Postponement duration (in minutes)"
msgstr "推遲休息時長(分鐘)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "顯示休息隨機順序"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr ""
msgstr "強制休息(無法跳過)"
# Settings dialog
msgid "Allow postponing breaks"
msgstr ""
msgstr "允許推遲休息"
# Settings dialog
msgid "Persist the internal state"
msgstr ""
msgstr "維持內部計算狀態"
# Settings dialog
msgid "Use RPC server to receive runtime commands"
msgstr "使用 RPC 伺服器來接收運行時指令"
# Settings dialog
msgid "Without the RPC server, command-line commands may not work"
msgstr "不使用 RPC 伺服器,終端指令可能法作用"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
msgstr "長休息間隔須為短休息間隔的倍數"
# Settings dialog
msgid "Reset"
msgstr ""
msgstr "重設"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
msgstr "確定重設為預設設定?"
# Settings dialog
msgid "Options"
msgstr ""
msgstr "選項"
# Settings dialog
msgid "Short Breaks"
msgstr ""
msgstr "短休息"
# Settings dialog
msgid "Long Breaks"
msgstr ""
msgstr "長休息"
# Settings dialog
msgid "Delete"
msgstr ""
msgstr "刪除"
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr ""
msgstr "確定刪除此休息?"
# Settings dialog
msgid "You can't undo this action."
msgstr ""
msgstr "無法取消動作。"
# Settings dialog
msgid "Break"
msgstr ""
msgstr "休息"
# Settings dialog
msgid "Breaks"
msgstr ""
msgstr "休息"
# Settings dialog
msgid "Plugins"
msgstr ""
msgstr "外掛"
# Settings dialog
msgid "Type"
msgstr ""
msgstr "類型"
# Settings dialog
msgid "Short"
msgstr ""
msgstr ""
# Settings dialog
msgid "Long"
msgstr ""
msgstr ""
# Settings dialog
msgid "Image"
msgstr ""
msgstr "圖片"
# Settings dialog
msgid "Select"
msgstr ""
msgstr "選擇"
# Settings dialog
msgid "Please select an image"
msgstr ""
msgstr "請選擇一張照片"
# Settings dialog
msgid "Duration"
msgstr ""
msgstr "期間"
# Settings dialog
msgid "Time to wait"
msgstr ""
msgstr "等侯時間"
# Settings dialog
msgid "Override"
msgstr ""
msgstr "覆蓋"
# Settings dialog
msgid "Time (in seconds)"
msgstr ""
msgstr "時間(秒)"
# Settings dialog
msgid "Time (in minutes)"
msgstr ""
msgstr "時間(分)"
# Settings dialog
msgid "Break Settings"
msgstr ""
msgstr "休息設定"
# Settings dialog
msgid "Plugin Settings"
msgstr ""
msgstr "外掛設定"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr ""
msgstr "外掛未支持 %s 桌機環境"
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr ""
msgstr "請安裝 Python 模組 '%s'"
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr ""
msgstr "請安裝終端指令工具 '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "無效的 cron 表述式 '%s'"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr ""
msgstr "請將資源 %(resource)s 加入至 %(config_resource) 的路徑"
# Settings dialog
msgid "New Break"
msgstr ""
msgstr "新建休息"
# Settings dialog
msgid "Remove"
msgstr ""
msgstr "移除"
# Settings dialog
msgid "Discard"
msgstr ""
msgstr "拋棄"
# Settings dialog
msgid "Save"
msgstr ""
msgstr "儲存"
# plugin/audiblealert
msgid "Audible Alert"
msgstr ""
msgstr "音響提示"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr ""
msgstr "在休息前後播放音響提示"
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr ""
msgstr "在休息之前播放音響提示"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr ""
msgstr "在休息之後播放音響提示"
# plugin/donotdisturb
msgid "Do Not Disturb"
msgstr ""
msgstr "勿擾模式"
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr ""
msgstr "全螢幕模式作用時跳過休息"
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr ""
msgstr "任何時間下不要中斷這些視窗"
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr ""
msgstr "無論任何狀態下中斷這些視窗"
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr ""
msgstr "將可以中斷的視窗切換到正常模式"
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr ""
msgstr "使用電池時不要打擾"
# plugin/healthstats
msgid "Health Statistics"
msgstr ""
msgstr "健康統計"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
msgstr "依您使用 Safe Eyes 方式來顯示統計"
# plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr ""
msgid "Statistics reset interval (cron expression)"
msgstr "重設統計的時間 (cron expr)"
# plugin/notification
msgid "Notification"
msgstr ""
msgstr "通知"
# plugin/notification
msgid "Show a system notification before breaks"
msgstr ""
msgstr "在休息之前顯示系統通知"
# plugin/notification
msgid "Ready for a short break in %s seconds"
msgstr ""
msgstr "在 %s 秒後準備進入一個短休息"
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr ""
msgstr "在 %s 秒後準備進入一個長休息"
# plugin/screensaver
msgid "Screensaver"
msgstr ""
msgstr "螢幕保護"
# plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
msgstr ""
msgstr "在長休息之後啟動螢幕保護之前進行鎖定螢幕"
# plugin/screensaver
msgid "Custom screensaver command"
msgstr ""
msgstr "自訂螢幕保護指令"
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr ""
msgstr "不使用螢幕保護時進行跳過的最短時間(秒)"
# plugin/screensaver
msgid "Lock screen"
msgstr ""
msgstr "鎖定螢幕"
# plugin/smartpause
msgid "Smart Pause"
msgstr ""
msgstr "智慧暫停"
# plugin/smartpause
msgid "Pause Safe Eyes if the system is idle"
msgstr ""
msgstr "如果系統閒置時則暫停 Safe Eyes"
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr ""
msgstr "暫停 Safe Eyes 的最短閒置時間(秒)"
# plugin/smartpause
msgid "Interpret idle time equivalent to upcoming break duration as a break"
msgstr ""
msgstr "將系統閒置時間視為下一個休息的期間"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr ""
msgstr "延後下次休息直到系統進入閒置"
#: plugins/trayicon
msgid "Tray Icon"
msgstr ""
msgstr "面板圖示"
#: plugins/trayicon
msgid "Show a tray icon in the notification area"
msgstr ""
msgstr "在通知區域顯示面板圖示"
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr ""
msgstr "在面板圖示中顯示下次休息時間"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr ""
msgstr "允許關閉 Safe Eyes"
#: plugins/trayicon
msgid "About"
msgstr ""
msgstr "關於"
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr ""
msgstr "關閉 Safe Eyes"
#: plugins/trayicon
msgid "Disabled until %s"
msgstr ""
msgstr "關閉直到 %s"
#: plugins/trayicon
msgid "Disabled until restart"
msgstr ""
msgstr "關閉直到重新啟動"
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr ""
msgstr "開啟 Safe Eyes"
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] ""
msgstr[0] "%d 小時"
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] ""
msgstr[0] "%d 分鐘"
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] ""
msgstr[0] "%d 秒"
#: plugins/trayicon
msgid "Next break at %s"
msgstr ""
msgstr "下次休息在 %s"
#: plugins/trayicon
msgid "No Breaks Available"
msgstr ""
msgstr "無休息等待使用"
#: plugins/trayicon
msgid "Settings"
msgstr ""
msgstr "設定"
#: plugins/trayicon
msgid "Take a break now"
msgstr ""
msgstr "立即休息"
#: plugins/trayicon
msgid "Until restart"
msgstr ""
msgstr "直到重新啟動"
#: plugins/trayicon
msgid "Quit"
msgstr ""
msgstr "退出"
# plugin/mediacontrol
msgid "Media Control"
msgstr ""
msgstr "多媒體控制"
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr ""
msgstr "休息畫面起暫停多媒體播放"
# plugin/mediacontrol
msgid "Pause media"
msgstr ""
msgstr "暫停多媒體"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "重置數據間隔(時)"

View File

@ -1,7 +1,8 @@
{
"meta": {
"config_version": "6.0.1"
"config_version": "6.0.3"
},
"random_order": true,
"allow_postpone": false,
"short_break_interval": 15,
"long_break_interval": 75,
@ -10,6 +11,7 @@
"short_break_duration": 15,
"persist_state": false,
"postpone_duration": 5,
"use_rpc_server": true,
"rpc_port": 7200,
"shortcut_disable_time": 2,
"shortcut_skip": 9,
@ -75,6 +77,7 @@
"version": "0.0.3",
"settings": {
"show_time_in_tray": false,
"show_long_time_in_tray": false,
"allow_disabling": true,
"disable_options": [{
"time": 30,
@ -101,7 +104,6 @@
"version": "0.0.3",
"settings": {
"idle_time": 5,
"interpret_idle_as_break": false,
"postpone_if_active": false
}
},
@ -119,7 +121,7 @@
"enabled": false,
"version": "0.0.2",
"settings": {
"statistics_reset_interval": 24
"statistics_reset_cron": "0 0 * * *"
}
},
{
@ -128,4 +130,4 @@
"version": "0.0.1"
}
]
}
}

View File

@ -95,6 +95,11 @@
border-radius: 5px;
}
.warn_bar_rpc_server {
opacity: 0.9;
border-radius: 5px;
}
.toolbar {
background: black;
opacity: 0.9;

View File

@ -25,7 +25,7 @@ import logging
import threading
import time
from safeeyes import Utility
from safeeyes import utility
from safeeyes.model import Break
from safeeyes.model import BreakType
from safeeyes.model import BreakQueue
@ -33,7 +33,7 @@ from safeeyes.model import EventHook
from safeeyes.model import State
class SafeEyesCore(object):
class SafeEyesCore:
"""
Core of Safe Eyes runs the scheduler and notifies the breaks.
"""
@ -79,7 +79,7 @@ class SafeEyesCore(object):
self.default_postpone_duration = config.get('postpone_duration') * 60 # Convert to seconds
self.postpone_duration = self.default_postpone_duration
def start(self, next_break_time=-1):
def start(self, next_break_time=-1, reset_breaks=False):
"""
Start Safe Eyes is it is not running already.
"""
@ -88,11 +88,15 @@ class SafeEyesCore(object):
with self.lock:
if not self.running:
logging.info("Start Safe Eyes core")
if reset_breaks:
logging.info("Reset breaks to start from the beginning")
self.break_queue.reset()
self.running = True
self.scheduled_next_break_timestamp = int(next_break_time)
Utility.start_thread(self.__scheduler_job)
utility.start_thread(self.__scheduler_job)
def stop(self):
def stop(self, is_resting=False):
"""
Stop Safe Eyes if it is running.
"""
@ -100,13 +104,13 @@ class SafeEyesCore(object):
if not self.running:
return
logging.info("Stop Safe Eye core")
logging.info("Stop Safe Eyes core")
self.paused_time = datetime.datetime.now().timestamp()
# Stop the break thread
self.waiting_condition.acquire()
self.running = False
if self.context['state'] != State.QUIT:
self.context['state'] = State.STOPPED
self.context['state'] = State.RESTING if (is_resting) else State.STOPPED
self.waiting_condition.notify_all()
self.waiting_condition.release()
@ -127,7 +131,17 @@ class SafeEyesCore(object):
logging.debug("Postpone the break for %d seconds", self.postpone_duration)
self.context['postponed'] = True
def take_break(self):
def get_break_time(self, break_type = None):
"""
Returns the next break time
"""
break_obj = self.break_queue.get_break(break_type)
if not break_obj:
return False
time = self.scheduled_next_break_time + datetime.timedelta(minutes=break_obj.time - self.break_queue.get_break().time)
return time
def take_break(self, break_type = None):
"""
Calling this method stops the scheduler and show the next break screen
"""
@ -135,15 +149,15 @@ class SafeEyesCore(object):
return
if not self.context['state'] == State.WAITING:
return
Utility.start_thread(self.__take_break)
utility.start_thread(self.__take_break, break_type=break_type)
def has_breaks(self):
def has_breaks(self, break_type = None):
"""
Check whether Safe Eyes has breaks or not.
Check whether Safe Eyes has breaks or not. Use the break_type to check for either short or long break.
"""
return not self.break_queue.is_empty()
return not self.break_queue.is_empty(break_type)
def __take_break(self):
def __take_break(self, break_type = None):
"""
Show the next break screen
"""
@ -160,10 +174,12 @@ class SafeEyesCore(object):
self.running = False
self.waiting_condition.notify_all()
self.waiting_condition.release()
time.sleep(1) # Wait for 1 sec to ensure the sceduler is dead
time.sleep(1) # Wait for 1 sec to ensure the scheduler is dead
self.running = True
Utility.execute_main_thread(self.__fire_start_break)
if break_type is not None and self.break_queue.get_break().type != break_type:
self.break_queue.next(break_type)
utility.execute_main_thread(self.__fire_start_break)
def __scheduler_job(self):
"""
@ -172,33 +188,34 @@ class SafeEyesCore(object):
if not self.running:
return
self.context['state'] = State.WAITING
# Convert to seconds
time_to_wait = self.break_queue.get_break().time * 60
current_time = datetime.datetime.now()
current_timestamp = current_time.timestamp()
if self.context['state'] == State.RESTING and self.paused_time > -1:
# Safe Eyes was resting
paused_duration = int(current_timestamp - self.paused_time)
self.paused_time = -1
if paused_duration > self.break_queue.get_break(BreakType.LONG_BREAK).duration:
logging.info('Skip next long break due to the pause %ds longer than break duration', paused_duration)
# Skip the next long break
self.break_queue.reset()
if self.context['postponed']:
# Previous break was postponed
logging.info('Prepare for postponed break')
time_to_wait = self.postpone_duration
self.context['postponed'] = False
elif self.paused_time > -1 and self.break_queue.is_long_break():
# Safe Eyes was paused earlier and next break is long
paused_duration = int(current_timestamp - self.paused_time)
self.paused_time = -1
if paused_duration > self.break_queue.get_break().duration:
logging.info('Skip next long break due to the pause longer than break duration')
# Skip the next long break
self.break_queue.next()
if current_timestamp < self.scheduled_next_break_timestamp:
elif current_timestamp < self.scheduled_next_break_timestamp:
# Non-standard break was set.
time_to_wait = round(self.scheduled_next_break_timestamp - current_timestamp)
self.scheduled_next_break_timestamp = -1
else:
# Use next break, convert to seconds
time_to_wait = self.break_queue.get_break().time * 60
self.scheduled_next_break_time = current_time + datetime.timedelta(seconds=time_to_wait)
Utility.execute_main_thread(self.__fire_on_update_next_break, self.scheduled_next_break_time)
self.context['state'] = State.WAITING
utility.execute_main_thread(self.__fire_on_update_next_break, self.scheduled_next_break_time)
# Wait for the pre break warning period
logging.info("Waiting for %d minutes until next break", (time_to_wait / 60))
@ -208,7 +225,7 @@ class SafeEyesCore(object):
if not self.running:
return
Utility.execute_main_thread(self.__fire_pre_break)
utility.execute_main_thread(self.__fire_pre_break)
def __fire_on_update_next_break(self, next_break_time):
"""
@ -225,7 +242,7 @@ class SafeEyesCore(object):
# Plugins wanted to ignore this break
self.__start_next_break()
return
Utility.start_thread(self.__wait_until_prepare)
utility.start_thread(self.__wait_until_prepare)
def __wait_until_prepare(self):
logging.info("Wait for %d seconds before the break", self.pre_break_warning_time)
@ -233,15 +250,16 @@ class SafeEyesCore(object):
self.__wait_for(self.pre_break_warning_time)
if not self.running:
return
Utility.execute_main_thread(self.__fire_start_break)
utility.execute_main_thread(self.__fire_start_break)
def __postpone_break(self):
self.__wait_for(self.postpone_duration)
Utility.execute_main_thread(self.__fire_start_break)
utility.execute_main_thread(self.__fire_start_break)
def __fire_start_break(self):
break_obj = self.break_queue.get_break()
# Show the break screen
if not self.on_start_break.fire(self.break_queue.get_break()):
if not self.on_start_break.fire(break_obj):
# Plugins want to ignore this break
self.__start_next_break()
return
@ -252,10 +270,10 @@ class SafeEyesCore(object):
self.scheduled_next_break_time = self.scheduled_next_break_time + datetime.timedelta(seconds=self.postpone_duration)
self.__fire_on_update_next_break(self.scheduled_next_break_time)
# Wait in user thread
Utility.start_thread(self.__postpone_break)
utility.start_thread(self.__postpone_break)
else:
self.start_break.fire(self.break_queue.get_break())
Utility.start_thread(self.__start_break)
self.start_break.fire(break_obj)
utility.start_thread(self.__start_break)
def __start_break(self):
"""
@ -271,7 +289,7 @@ class SafeEyesCore(object):
self.on_count_down.fire(countdown, seconds)
time.sleep(1) # Sleep for 1 second
countdown -= 1
Utility.execute_main_thread(self.__fire_stop_break)
utility.execute_main_thread(self.__fire_stop_break)
def __fire_stop_break(self):
# Loop terminated because of timeout (not skipped) -> Close the break alert
@ -297,4 +315,4 @@ class SafeEyesCore(object):
if self.running:
# Schedule the break again
Utility.start_thread(self.__scheduler_job)
utility.start_thread(self.__scheduler_job)

View File

@ -33,7 +33,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</property>
along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</property>
</object>
<object class="GtkWindow" id="window_about">
<property name="can_focus">False</property>
@ -71,7 +71,7 @@ along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</pro
<property name="valign">center</property>
<property name="margin_top">10</property>
<property name="margin_bottom">10</property>
<property name="label" translatable="yes">Safe Eyes 2.0.9</property>
<property name="label" translatable="yes">Safe Eyes 2.1.5</property>
<property name="justify">center</property>
<attributes>
<attribute name="style" value="normal"/>
@ -89,7 +89,7 @@ along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</pro
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_top">4</property>
<property name="label" translatable="yes">Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer.</property>
<property name="label" translatable="yes">Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer</property>
<property name="justify">fill</property>
<property name="wrap">True</property>
<property name="width_chars">60</property>
@ -135,14 +135,14 @@ along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</pro
</child>
<child>
<object class="GtkLinkButton" id="btn_url">
<property name="label" translatable="yes">http://slgobinath.github.io/SafeEyes</property>
<property name="label" translatable="yes">https://slgobinath.github.io/SafeEyes</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="focus_on_click">False</property>
<property name="receives_default">True</property>
<property name="halign">center</property>
<property name="relief">none</property>
<property name="uri">http://slgobinath.github.io/SafeEyes</property>
<property name="uri">https://slgobinath.github.io/SafeEyes</property>
</object>
<packing>
<property name="expand">False</property>

File diff suppressed because it is too large Load Diff

View File

@ -20,13 +20,15 @@
This module contains the entity classes used by Safe Eyes and its plugins.
"""
import logging
import random
from distutils.version import LooseVersion
from enum import Enum
import logging
from safeeyes import Utility
from safeeyes import utility
class Break(object):
class Break:
"""
An entity class which represents a break.
"""
@ -76,94 +78,150 @@ class BreakType(Enum):
LONG_BREAK = 2
class BreakQueue(object):
class BreakQueue:
def __init__(self, config, context):
self.context = context
self.__current_break = None
self.__first_break = None
self.__current_long = 0
self.__current_short = 0
self.__short_break_time = config.get('short_break_interval')
self.__long_break_time = config.get('long_break_interval')
self.__short_pointer = self.__build_queue(BreakType.SHORT_BREAK,
config.get('short_breaks'),
self.__short_break_time,
config.get('short_break_duration'))
self.__long_pointer = self.__build_queue(BreakType.LONG_BREAK,
config.get('long_breaks'),
self.__long_break_time,
config.get('long_break_duration'))
self.__is_random_order = config.get('random_order')
self.__config = config
self.__build_longs()
self.__build_shorts()
# Interface guarantees that short_interval >= 1
# And that long_interval is a multiple of short_interval
short_interval = config.get('short_break_interval')
long_interval = config.get('long_break_interval')
self.__cycle_len = int(long_interval / short_interval)
# To count every long break as a cycle in .next() if there are no short breaks
if self.__short_queue is None:
self.__cycle_len = 1
# Restore the last break from session
if not self.is_empty():
last_break = context['session'].get('break')
if last_break is not None:
current_break = self.get_break()
if last_break != current_break.name:
pointer = self.next()
while(pointer != current_break and pointer.name != last_break):
pointer = self.next()
brk = self.next()
while brk != current_break and brk.name != last_break:
brk = self.next()
def get_break(self):
def get_break(self, break_type = None):
if self.__current_break is None:
self.__current_break = self.next()
return self.__current_break
if break_type is None or self.__current_break.type == break_type:
return self.__current_break
if break_type == BreakType.LONG_BREAK:
if self.__long_queue is None:
return None;
return self.__long_queue[self.__current_long]
if self.__short_queue is None:
return None;
return self.__short_queue[self.__current_short]
def is_long_break(self):
return self.__current_break is not None and self.__current_break.type == BreakType.LONG_BREAK
def next(self):
def next(self, break_type = None):
break_obj = None
shorts = self.__short_queue
longs = self.__long_queue
# Reset break that has just ended
if self.is_long_break():
self.__current_break.time = self.__long_break_time
if self.__current_long == 0 and self.__is_random_order:
# Shuffle queue
self.__build_longs()
elif self.__current_break:
# Reduce the break time from the next long break (default)
if longs:
longs[self.__current_long].time -= shorts[self.__current_short].time
if self.__current_short == 0 and self.__is_random_order:
self.__build_shorts()
if self.is_empty():
return None
break_obj = None
if self.__short_pointer is None:
# No short breaks
break_obj = self.__long_pointer
self.context['break_type'] = 'long'
# Update the pointer to next
self.__long_pointer = self.__long_pointer.next
elif self.__long_pointer is None:
# No long breaks
break_obj = self.__short_pointer
self.context['break_type'] = 'short'
# Update the pointer to next
self.__short_pointer = self.__short_pointer.next
elif self.__long_pointer.time <= self.__short_pointer.time:
# Time for a long break
break_obj = self.__long_pointer
self.context['break_type'] = 'long'
# Update the pointer to next
self.__long_pointer = self.__long_pointer.next
else:
# Time for a short break
break_obj = self.__short_pointer
self.context['break_type'] = 'short'
# Reduce the break time from the next long break
self.__long_pointer.time -= self.__short_pointer.time
# Update the pointer to next
self.__short_pointer = self.__short_pointer.next
if self.__first_break is None:
self.__first_break = break_obj
self.context['new_cycle'] = self.__first_break == break_obj
if self.__current_break is not None:
# Reset the time of long breaks
if self.__current_break.type == BreakType.LONG_BREAK:
self.__current_break.time = self.__long_break_time
if shorts is None:
break_obj = self.__next_long()
elif longs is None:
break_obj = self.__next_short()
elif break_type == BreakType.LONG_BREAK or longs[self.__current_long].time <= shorts[self.__current_short].time:
break_obj = self.__next_long()
else:
break_obj = self.__next_short()
self.__current_break = break_obj
self.context['session']['break'] = self.__current_break.name
return break_obj
def is_empty(self):
return self.__short_pointer is None and self.__long_pointer is None
def reset(self):
for break_object in self.__short_queue:
break_object.time = self.__short_break_time
for break_object in self.__long_queue:
break_object.time = self.__long_break_time
def is_empty(self, break_type = None):
"""
Check if the given break type is empty or not. If the break_type is None, check for both short and long breaks.
"""
if break_type == BreakType.SHORT_BREAK:
return self.__short_queue is None
elif break_type == BreakType.LONG_BREAK:
return self.__long_queue is None
else:
return self.__short_queue is None and self.__long_queue is None
def __next_short(self):
longs = self.__long_queue
shorts = self.__short_queue
break_obj = shorts[self.__current_short]
self.context['break_type'] = 'short'
# Update the index to next
self.__current_short = (self.__current_short + 1) % len(shorts)
return break_obj
def __next_long(self):
longs = self.__long_queue
break_obj = longs[self.__current_long]
self.context['break_type'] = 'long'
# Update the index to next
self.__current_long = (self.__current_long + 1) % len(longs)
return break_obj
def __build_queue(self, break_type, break_configs, break_time, break_duration):
"""
Build a circular queue of breaks.
Build a queue of breaks.
"""
head = None
tail = None
for break_config in break_configs:
size = len(break_configs)
if 0 == size:
# No breaks
return None
if self.__is_random_order:
breaks_order = random.sample(break_configs, size)
else:
breaks_order = break_configs
queue = [None] * size
for i, break_config in enumerate(breaks_order):
name = _(break_config['name'])
duration = break_config.get('duration', break_duration)
image = break_config.get('image')
@ -178,32 +236,38 @@ class BreakQueue(object):
break_obj = Break(break_type, name, interval,
duration, image, plugins)
if head is None:
head = break_obj
tail = break_obj
else:
tail.next = break_obj
tail = break_obj
queue[i] = break_obj
return queue
def __build_shorts(self):
self.__short_queue = self.__build_queue(BreakType.SHORT_BREAK,
self.__config.get('short_breaks'),
self.__short_break_time,
self.__config.get('short_break_duration'))
def __build_longs(self):
self.__long_queue = self.__build_queue(BreakType.LONG_BREAK,
self.__config.get('long_breaks'),
self.__long_break_time,
self.__config.get('long_break_duration'))
# Connect the tail to the head
if tail is not None:
tail.next = head
return head
class State(Enum):
"""
Possible states of Safe Eyes.
"""
START = 0,
WAITING = 1,
PRE_BREAK = 2,
BREAK = 3,
STOPPED = 4,
QUIT = 5
START = 0, # Starting scheduler
WAITING = 1, # User is working (waiting for next break)
PRE_BREAK = 2, # Preparing for break
BREAK = 3, # Break
STOPPED = 4, # Disabled
QUIT = 5, # Quitting
RESTING = 6 # Resting (natural break)
class EventHook(object):
class EventHook:
"""
Hook to attach and detach listeners to system events.
"""
@ -229,21 +293,25 @@ class EventHook(object):
return True
class Config(object):
class Config:
"""
The configuration of Safe Eyes.
"""
def __init__(self, init=True):
# Read the config files
self.__user_config = Utility.load_json(Utility.CONFIG_FILE_PATH)
self.__system_config = Utility.load_json(
Utility.SYSTEM_CONFIG_FILE_PATH)
self.__force_upgrade = ['long_breaks', 'short_breaks']
self.__user_config = utility.load_json(utility.CONFIG_FILE_PATH)
self.__system_config = utility.load_json(
utility.SYSTEM_CONFIG_FILE_PATH)
# If there any breaking changes in long_breaks, short_breaks or any other keys, use the __force_upgrade list
self.__force_upgrade = []
# self.__force_upgrade = ['long_breaks', 'short_breaks']
if init:
# if create_startup_entry finds a broken autostart symlink, it will repair it
utility.create_startup_entry(force=False)
if self.__user_config is None:
Utility.initialize_safeeyes()
utility.initialize_safeeyes()
self.__user_config = self.__system_config
self.save()
else:
@ -261,9 +329,9 @@ class Config(object):
self.__user_config, self.__system_config)
self.__user_config = self.__system_config
# Update the style sheet
Utility.replace_style_sheet()
utility.replace_style_sheet()
Utility.merge_plugins(self.__user_config)
utility.merge_plugins(self.__user_config)
self.save()
def __merge_dictionary(self, old_dict, new_dict):
@ -291,7 +359,7 @@ class Config(object):
"""
Save the configuration to file.
"""
Utility.write_json(Utility.CONFIG_FILE_PATH, self.__user_config)
utility.write_json(utility.CONFIG_FILE_PATH, self.__user_config)
def get(self, key, default_value=None):
"""
@ -315,7 +383,7 @@ class Config(object):
return self.__user_config != config.__user_config
class TrayAction(object):
class TrayAction:
"""
Data object wrapping name, icon and action.
"""
@ -331,7 +399,7 @@ class TrayAction(object):
if self.system_icon:
return self.__icon
else:
image = Utility.load_and_scale_image(self.__icon, 16, 16)
image = utility.load_and_scale_image(self.__icon, 16, 16)
image.show()
return image
@ -345,7 +413,7 @@ class TrayAction(object):
@classmethod
def build(cls, name, icon_path, icon_id, action):
image = Utility.load_and_scale_image(icon_path, 12, 12)
image = utility.load_and_scale_image(icon_path, 12, 12)
if image is None:
return TrayAction(name, icon_id, action, True)
else:

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -12,6 +12,7 @@ Comment[ge]=დაიცავით თქვენი თვალები
Comment[hi]=तनाव से आंखों की रक्षा
Comment[hu]=Protect your eyes from eye strain
Comment[id]=Melindungi mata Anda dari kelelahan
Comment[it]=Proteggi i tuoi occhi dalla stanchezza
Comment[lt]=Apsaugokite savo akis nuo įtampos
Comment[lv]=Aizsargājiet savas acis no pārslodzes
Comment[mk]=Заштитете се од замор на очите
@ -24,7 +25,7 @@ Comment[tr]=Gözünüzü yorgunluğa karşı koruyun
Comment[uk]=Захистіть свої очі від втоми
Comment[vi]=Bảo vệ đôi mắt của bạn khỏi sự mệt mỏi
Exec=env GDK_BACKEND=x11 safeeyes
Icon=safeeyes
Icon=io.github.slgobinath.SafeEyes
Terminal=false
Type=Application
Categories=Utility;

View File

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>io.github.slgobinath.SafeEyes</id>
<name>Safe Eyes</name>
<developer_name>Gobinath</developer_name>
<summary>A Free and Open Source tool for Linux users to reduce and prevent repetitive strain
injury (RSI).</summary>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0</project_license>
<categories>
<category>Utility</category>
<category>Accessibility</category>
</categories>
<description>
<p>
Protect your eyes from eye strain using this simple and beautiful, yet extensible break
reminder
</p>
<p>
Features:
</p>
<p>
Remind you to take breaks with exercises to reduce RSI, Disable keyboard during breaks,
Notification before and after breaks, Smart pause if system is idle, Multi-screen
support, Customizable user interface, RPC API to control externally, Command-line
arguments to control the running instance, Customizable using plug-ins
</p>
</description>
<launchable type="desktop-id">io.github.slgobinath.SafeEyes.desktop</launchable>
<screenshots>
<screenshot type="default">
<image>https://slgobinath.github.io/SafeEyes/assets/screenshots/safeeyes_1.png</image>
</screenshot>
<screenshot>
<image>https://slgobinath.github.io/SafeEyes/assets/screenshots/safeeyes_3.png</image>
</screenshot>
<screenshot>
<image>https://slgobinath.github.io/SafeEyes/assets/screenshots/safeeyes_6.png</image>
</screenshot>
</screenshots>
<url type="homepage">https://slgobinath.github.io/SafeEyes/</url>
<releases>
<release version="2.1.6" date="2023-06-04" />
</releases>
<content_rating type="oars-1.1" />
</component>

View File

@ -27,40 +27,49 @@ A plugin must have the following directory structure:
The plugin.py can have following methods but all are optional:
- description()
If a custom description has to be displayed, use this function
- on_init(context, safeeyes_config, plugin_config)
- init(context, safeeyes_config, plugin_config)
Initialize the plugin. Will be called after loading and after every changes in configuration
- on_start()
Executes when Safe Eyes is enabled
- on_stop()
Executes when Safe Eyes is disabled
- on_exit()
Executes before Safe Eyes exits
- on_pre_break(break_obj)
Executes at the start of the prepare time for a break
- on_start_break(break_obj)
Executes when a break starts
- on_stop_break()
Executes when a break stops
- on_countdown(countdown, seconds)
Executes every second throughout a break
- update_next_break(break_obj, break_time)
Executes when the next break changes
- enable()
Executes once the plugin.py is loaded as a module
- disable()
Executes if the plugin is disabled at the runtime by the user
- on_exit()
Executes before Safe Eyes exits
"""
import importlib
import inspect
import logging
import os
import sys
from safeeyes import Utility
from safeeyes import utility
sys.path.append(os.path.abspath(Utility.SYSTEM_PLUGINS_DIR))
sys.path.append(os.path.abspath(Utility.USER_PLUGINS_DIR))
sys.path.append(os.path.abspath(utility.SYSTEM_PLUGINS_DIR))
sys.path.append(os.path.abspath(utility.USER_PLUGINS_DIR))
HORIZONTAL_LINE_LENGTH = 64
class PluginManager(object):
class PluginManager:
"""
Imports the Safe Eyes plugins and calls the methods defined in those plugins.
"""
def __init__(self, context, config):
def __init__(self):
logging.info('Load all the plugins')
self.__plugins = {}
self.__plugins_on_init = []
@ -79,14 +88,18 @@ class PluginManager(object):
def init(self, context, config):
"""
Initialize all the plugins with init(context, safeeyes_config, plugin_config) function.
Initialize all the plugins with init(context, safe_eyes_config, plugin_config) function.
"""
# Load the plugins
for plugin in config.get('plugins'):
try:
self.__load_plugin(plugin, context)
except BaseException:
logging.error('Error in loading the plugin: %s', plugin['id'])
self.__load_plugin(plugin)
except BaseException as e:
traceback_wanted = logging.getLogger().getEffectiveLevel() == logging.DEBUG
if traceback_wanted:
import traceback
traceback.print_exc()
logging.error('Error in loading the plugin %s: %s', plugin['id'], e)
continue
# Initialize the plugins
for plugin in self.__plugins_on_init:
@ -196,23 +209,7 @@ class PluginManager(object):
return actions
def __has_method(self, module, method_name, no_of_args=0):
"""
Check whether the given function is defined in the module or not.
"""
if hasattr(module, method_name):
if len(inspect.getargspec(getattr(module, method_name)).args) == no_of_args:
return True
return False
def __remove_if_exists(self, list_of_items, item):
"""
Remove the item from the list_of_items it it exists.
"""
if item in list_of_items:
list_of_items.remove(item)
def __load_plugin(self, plugin, context):
def __load_plugin(self, plugin):
"""
Load the given plugin.
"""
@ -223,51 +220,68 @@ class PluginManager(object):
if plugin_obj['enabled']:
# Previously enabled but now disabled
plugin_obj['enabled'] = False
self.__remove_if_exists(self.__plugins_on_start, plugin_obj)
self.__remove_if_exists(self.__plugins_on_stop, plugin_obj)
self.__remove_if_exists(self.__plugins_on_exit, plugin_obj)
self.__remove_if_exists(self.__plugins_update_next_break, plugin_obj)
utility.remove_if_exists(self.__plugins_on_start, plugin_obj)
utility.remove_if_exists(self.__plugins_on_stop, plugin_obj)
utility.remove_if_exists(self.__plugins_on_exit, plugin_obj)
utility.remove_if_exists(self.__plugins_update_next_break, plugin_obj)
# Call the plugin.disable method if available
if self.__has_method(plugin_obj['module'], 'disable'):
if utility.has_method(plugin_obj['module'], 'disable'):
plugin_obj['module'].disable()
logging.info("Successfully unloaded the plugin '%s'", plugin['id'])
if not plugin_obj['break_override_allowed']:
# Remaining methods also should be removed
self.__remove_if_exists(self.__plugins_on_init, plugin_obj)
self.__remove_if_exists(self.__plugins_on_pre_break, plugin_obj)
self.__remove_if_exists(self.__plugins_on_start_break, plugin_obj)
self.__remove_if_exists(self.__plugins_on_stop_break, plugin_obj)
self.__remove_if_exists(self.__plugins_on_countdown, plugin_obj)
self.__remove_if_exists(self.__widget_plugins, plugin_obj)
self.__remove_if_exists(self.__tray_actions_plugins, plugin_obj)
utility.remove_if_exists(self.__plugins_on_init, plugin_obj)
utility.remove_if_exists(self.__plugins_on_pre_break, plugin_obj)
utility.remove_if_exists(self.__plugins_on_start_break, plugin_obj)
utility.remove_if_exists(self.__plugins_on_stop_break, plugin_obj)
utility.remove_if_exists(self.__plugins_on_countdown, plugin_obj)
utility.remove_if_exists(self.__widget_plugins, plugin_obj)
utility.remove_if_exists(self.__tray_actions_plugins, plugin_obj)
del self.__plugins[plugin['id']]
return
# Look for plugin.py
plugin_dir = None
if os.path.isfile(os.path.join(Utility.SYSTEM_PLUGINS_DIR, plugin['id'], 'plugin.py')):
plugin_dir = Utility.SYSTEM_PLUGINS_DIR
elif os.path.isfile(os.path.join(Utility.USER_PLUGINS_DIR, plugin['id'], 'plugin.py')):
plugin_dir = Utility.USER_PLUGINS_DIR
if os.path.isfile(os.path.join(utility.SYSTEM_PLUGINS_DIR, plugin['id'], 'plugin.py')):
plugin_dir = utility.SYSTEM_PLUGINS_DIR
elif os.path.isfile(os.path.join(utility.USER_PLUGINS_DIR, plugin['id'], 'plugin.py')):
plugin_dir = utility.USER_PLUGINS_DIR
else:
logging.error('plugin.py not found for the plugin: %s', plugin['id'])
return
# Look for config.json
plugin_config_path = os.path.join(plugin_dir, plugin['id'], 'config.json')
plugin_path = os.path.join(plugin_dir, plugin['id'])
plugin_config_path = os.path.join(plugin_path, 'config.json')
if not os.path.isfile(plugin_config_path):
logging.error('config.json not found for the plugin: %s', plugin['id'])
return
plugin_config = Utility.load_json(plugin_config_path)
plugin_config = utility.load_json(plugin_config_path)
if plugin_config is None:
return
if (plugin_enabled or plugin_config.get('break_override_allowed', False)):
if plugin_enabled or plugin_config.get('break_override_allowed', False):
if plugin['id'] in self.__plugins:
# The plugin is already enabled or partially loaded due to break_override_allowed
# Validate the dependencies again
if utility.check_plugin_dependencies(plugin['id'], plugin_config, plugin.get('settings', {}), plugin_path):
plugin_obj['enabled'] = False
utility.remove_if_exists(self.__plugins_on_start, plugin_obj)
utility.remove_if_exists(self.__plugins_on_stop, plugin_obj)
utility.remove_if_exists(self.__plugins_on_exit, plugin_obj)
utility.remove_if_exists(self.__plugins_update_next_break, plugin_obj)
utility.remove_if_exists(self.__plugins_on_init, plugin_obj)
utility.remove_if_exists(self.__plugins_on_pre_break, plugin_obj)
utility.remove_if_exists(self.__plugins_on_start_break, plugin_obj)
utility.remove_if_exists(self.__plugins_on_stop_break, plugin_obj)
utility.remove_if_exists(self.__plugins_on_countdown, plugin_obj)
utility.remove_if_exists(self.__widget_plugins, plugin_obj)
utility.remove_if_exists(self.__tray_actions_plugins, plugin_obj)
del self.__plugins[plugin['id']]
# Use the existing plugin object
plugin_obj = self.__plugins[plugin['id']]
# Update the config
plugin_obj['config'] = dict(plugin.get('settings', {}))
plugin_obj['config']['path'] = os.path.join(plugin_dir, plugin['id'])
@ -280,50 +294,51 @@ class PluginManager(object):
# Load the rest of the methods
plugin_obj['enabled'] = True
module = plugin_obj['module']
if self.__has_method(module, 'on_start'):
self.__plugins_on_start.append(plugin_obj)
if self.__has_method(module, 'on_stop'):
self.__plugins_on_stop.append(plugin_obj)
if self.__has_method(module, 'on_exit'):
self.__plugins_on_exit.append(plugin_obj)
if self.__has_method(module, 'update_next_break', 2):
self.__plugins_update_next_break.append(plugin_obj)
self.__init_plugin(module, plugin_obj)
else:
# This is the first time to load the plugin
# Check for dependencies
if Utility.check_plugin_dependencies(plugin_config):
if utility.check_plugin_dependencies(plugin['id'], plugin_config, plugin.get('settings', {}), plugin_path):
return
# Load the plugin module
module = importlib.import_module((plugin['id'] + '.plugin'))
logging.info("Successfully loaded %s", str(module))
plugin_obj = {'id': plugin['id'], 'module': module, 'config': dict(plugin.get(
'settings', {})), 'enabled': plugin_enabled, 'break_override_allowed': plugin_config.get('break_override_allowed', False)}
'settings', {})), 'enabled': plugin_enabled,
'break_override_allowed': plugin_config.get('break_override_allowed', False)}
# Inject the plugin directory into the config
plugin_obj['config']['path'] = os.path.join(plugin_dir, plugin['id'])
self.__plugins[plugin['id']] = plugin_obj
if self.__has_method(module, 'enable'):
if utility.has_method(module, 'enable'):
module.enable()
if plugin_enabled:
if self.__has_method(module, 'on_start'):
self.__plugins_on_start.append(plugin_obj)
if self.__has_method(module, 'on_stop'):
self.__plugins_on_stop.append(plugin_obj)
if self.__has_method(module, 'on_exit'):
self.__plugins_on_exit.append(plugin_obj)
if self.__has_method(module, 'update_next_break', 2):
self.__plugins_update_next_break.append(plugin_obj)
if self.__has_method(module, 'init', 3):
self.__init_plugin(module, plugin_obj)
if utility.has_method(module, 'init', 3):
self.__plugins_on_init.append(plugin_obj)
if self.__has_method(module, 'on_pre_break', 1):
if utility.has_method(module, 'on_pre_break', 1):
self.__plugins_on_pre_break.append(plugin_obj)
if self.__has_method(module, 'on_start_break', 1):
if utility.has_method(module, 'on_start_break', 1):
self.__plugins_on_start_break.append(plugin_obj)
if self.__has_method(module, 'on_stop_break', 0):
if utility.has_method(module, 'on_stop_break', 0):
self.__plugins_on_stop_break.append(plugin_obj)
if self.__has_method(module, 'on_countdown', 2):
if utility.has_method(module, 'on_countdown', 2):
self.__plugins_on_countdown.append(plugin_obj)
if self.__has_method(module, 'get_widget_title', 1) and self.__has_method(module, 'get_widget_content', 1):
if utility.has_method(module, 'get_widget_title', 1) and utility.has_method(module,
'get_widget_content', 1):
self.__widget_plugins.append(plugin_obj)
if self.__has_method(module, 'get_tray_action', 1):
if utility.has_method(module, 'get_tray_action', 1):
self.__tray_actions_plugins.append(plugin_obj)
def __init_plugin(self, module, plugin_obj):
"""
Collect mandatory methods from the plugin and add them to the life cycle methods list.
"""
if utility.has_method(module, 'on_start'):
self.__plugins_on_start.append(plugin_obj)
if utility.has_method(module, 'on_stop'):
self.__plugins_on_stop.append(plugin_obj)
if utility.has_method(module, 'on_exit'):
self.__plugins_on_exit.append(plugin_obj)
if utility.has_method(module, 'update_next_break', 2):
self.__plugins_update_next_break.append(plugin_obj)

View File

@ -21,7 +21,7 @@ Audible Alert plugin plays a sound after each breaks to notify the user that the
"""
import logging
from safeeyes import Utility
from safeeyes import utility
context = None
pre_break_alert = False
@ -37,10 +37,10 @@ def play_sound(resource_name):
logging.info('Playing audible alert %s', resource_name)
try:
# Open the sound file
path = Utility.get_resource_path(resource_name)
path = utility.get_resource_path(resource_name)
if path is None:
return
Utility.execute_command('aplay', ['-q', path])
utility.execute_command('aplay', ['-q', path])
except BaseException:
logging.error('Failed to play audible alert %s', resource_name)

View File

@ -6,7 +6,7 @@
},
"dependencies": {
"python_modules": [],
"shell_commands": ["xprop"],
"shell_commands": [],
"operating_systems": [],
"desktop_environments": [],
"resources": []
@ -37,4 +37,4 @@
}
],
"break_override_allowed": true
}
}

View File

@ -0,0 +1,31 @@
# Safe Eyes is a utility to remind you to take break frequently
# to protect your eyes from eye strain.
# Copyright (C) 2017 Gobinath
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from safeeyes import utility
def validate(plugin_config, plugin_settings):
command = None
if utility.IS_WAYLAND:
command = "wlrctl"
else:
command = "xprop"
if not utility.command_exist(command):
return _("Please install the command-line tool '%s'") % command
else:
return None

View File

@ -18,7 +18,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
Skip Fullscreen plugin skips the break if the active window is fullscreen.
NOTE: Do not remove the unused import 'GdkX11' becuase it is required in Ubuntu 14.04
NOTE: Do not remove the unused import 'GdkX11' because it is required in Ubuntu 14.04
"""
import os
@ -30,6 +30,7 @@ import gi
gi.require_version('Gdk', '3.0')
from gi.repository import Gdk
from gi.repository import GdkX11 # noqa F401
from safeeyes import utility
context = None
skip_break_window_classes = []
@ -38,7 +39,24 @@ unfullscreen_allowed = True
dnd_while_on_battery = False
def is_active_window_skipped(pre_break):
def is_active_window_skipped_wayland(pre_break):
cmdlist = ['wlrctl', 'toplevel', 'find', 'state:fullscreen']
try:
process = subprocess.Popen(cmdlist, stdout=subprocess.PIPE)
process.communicate()[0]
if process.returncode == 0:
return True
elif process.returncode == 1:
return False
elif process.returncode == 127:
logging.warning('Could not find wlrctl needed to detect fullscreen under wayland')
return False
except subprocess.CalledProcessError:
logging.warning('Error in finding full-screen application')
return False
def is_active_window_skipped_xorg(pre_break):
"""
Check for full-screen applications.
This method must be executed by the main thread. If not, it will cause random failure.
@ -62,16 +80,15 @@ def is_active_window_skipped(pre_break):
# Extract the process name
process_names = re.findall('"(.+?)"', stdout)
if process_names:
process = process_names[1].lower()
if process in skip_break_window_classes:
process_name = process_names[1].lower()
if _window_class_matches(process_name, skip_break_window_classes):
return True
elif process in take_break_window_classes:
elif _window_class_matches(process_name, take_break_window_classes):
if is_fullscreen and unfullscreen_allowed and not pre_break:
try:
active_window.unfullscreen()
except BaseException:
logging.error(
'Error in unfullscreen the window ' + process)
except BaseException as e:
logging.error('Error in unfullscreen the window ' + process_name, exc_info=e)
return False
return is_fullscreen
@ -79,6 +96,10 @@ def is_active_window_skipped(pre_break):
return False
def _window_class_matches(window_class: str, classes: list) -> bool:
return any(map(lambda w: w in classes, window_class.split()))
def is_on_battery():
"""
Check if the computer is running on battery.
@ -113,17 +134,24 @@ def init(ctx, safeeyes_config, plugin_config):
global dnd_while_on_battery
logging.debug('Initialize Skip Fullscreen plugin')
context = ctx
skip_break_window_classes = plugin_config['skip_break_windows'].split()
take_break_window_classes = plugin_config['take_break_windows'].split()
skip_break_window_classes = _normalize_window_classes(plugin_config['skip_break_windows'])
take_break_window_classes = _normalize_window_classes(plugin_config['take_break_windows'])
unfullscreen_allowed = plugin_config['unfullscreen']
dnd_while_on_battery = plugin_config['while_on_battery']
def _normalize_window_classes(classes_as_str: str):
return [w.lower() for w in classes_as_str.split()]
def on_pre_break(break_obj):
"""
Lifecycle method executes before the pre-break period.
"""
skip_break = is_active_window_skipped(True)
if utility.IS_WAYLAND:
skip_break = is_active_window_skipped_wayland(True)
else:
skip_break = is_active_window_skipped_xorg(True)
if dnd_while_on_battery and not skip_break:
skip_break = is_on_battery()
return skip_break
@ -133,7 +161,10 @@ def on_start_break(break_obj):
"""
Lifecycle method executes just before the break.
"""
skip_break = is_active_window_skipped(False)
if utility.IS_WAYLAND:
skip_break = is_active_window_skipped_wayland(True)
else:
skip_break = is_active_window_skipped_xorg(True)
if dnd_while_on_battery and not skip_break:
skip_break = is_on_battery()
return skip_break

View File

@ -2,22 +2,20 @@
"meta": {
"name": "Health Statistics",
"description": "Show statistics based on how you use Safe Eyes",
"version": "0.0.2"
"version": "0.0.3"
},
"dependencies": {
"python_modules": [],
"python_modules": ["croniter"],
"shell_commands": [],
"operating_systems": [],
"desktop_environments": [],
"resources": []
},
"settings": [{
"id": "statistics_reset_interval",
"label": "Interval to reset statistics (in hours)",
"type": "INT",
"default": 24,
"max": 168,
"min": 1
"id": "statistics_reset_cron",
"label": "Statistics reset interval (cron expression)",
"type": "TEXT",
"default": "0 0 * * *"
}],
"break_override_allowed": true
}

View File

@ -0,0 +1,24 @@
# Safe Eyes is a utility to remind you to take break frequently
# to protect your eyes from eye strain.
# Copyright (C) 2017 Gobinath
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import datetime
from safeeyes import utility
def validate(plugin_config, plugin_settings):
if not utility.module_exist("croniter"):
return _("Please install the Python module '%s'") % "croniter"

View File

@ -20,19 +20,16 @@
Show health statistics on the break screen.
"""
import croniter
import datetime
import logging
context = None
no_of_skipped_breaks = 0
no_of_breaks = 0
no_of_cycles = -1
session = None
safe_eyes_start_time = datetime.datetime.now()
total_idle_time = 0
last_screen_time = -1
reset_interval = 86400 # 24 hours in seconds
statistics_reset_cron = None
default_statistics_reset_cron = '0 0 * * *' # Every midnight
next_reset_time = None
start_time = None
def init(ctx, safeeyes_config, plugin_config):
"""
@ -40,125 +37,144 @@ def init(ctx, safeeyes_config, plugin_config):
"""
global context
global session
global no_of_skipped_breaks
global no_of_breaks
global no_of_cycles
global reset_interval
global safe_eyes_start_time
global total_idle_time
global last_screen_time
global statistics_reset_cron
logging.debug('Initialize Health Stats plugin')
context = ctx
reset_interval = plugin_config.get('statistics_reset_interval', 24) * 3600
statistics_reset_cron = plugin_config.get('statistics_reset_cron', default_statistics_reset_cron)
if session is None:
session = context['session']['plugin'].get('healthstats', None)
if session is None:
session = {'no_of_skipped_breaks': 0,
'no_of_breaks': 0,
'no_of_cycles': -1,
'safe_eyes_start_time': safe_eyes_start_time.strftime("%Y-%m-%d %H:%M:%S"),
'total_idle_time': 0,
'last_screen_time': -1}
context['session']['plugin']['healthstats'] = session
no_of_skipped_breaks = session.get('no_of_skipped_breaks', 0)
no_of_breaks = session.get('no_of_breaks', 0)
no_of_cycles = session.get('no_of_cycles', -1)
total_idle_time = session.get('total_idle_time', 0)
last_screen_time = session.get('last_screen_time', -1)
str_time = session.get('safe_eyes_start_time', None)
if str_time:
safe_eyes_start_time = datetime.datetime.strptime(str_time, "%Y-%m-%d %H:%M:%S")
_reset_stats()
# Read the session
defaults = {
'breaks': 0,
'skipped_breaks': 0,
'screen_time': 0,
'total_breaks': 0,
'total_skipped_breaks': 0,
'total_screen_time': 0,
'total_resets': 0,
}
session = context['session']['plugin'].get('healthstats', {}) | defaults
if 'no_of_breaks' in session:
# Ignore old format session.
session = defaults
context['session']['plugin']['healthstats'] = session
_get_next_reset_time()
def on_stop_break():
"""
After the break, check if it is skipped.
"""
global no_of_skipped_breaks
# Check if break was skipped.
global session
if context['skipped']:
no_of_skipped_breaks += 1
session['no_of_skipped_breaks'] = no_of_skipped_breaks
session['skipped_breaks'] += 1
# Screen time is starting again.
on_start()
def on_start_break(break_obj):
global session
session['breaks'] += 1
# Screen time has stoped.
on_stop()
def on_stop():
global start_time
_reset_stats()
if start_time:
screen_time = datetime.datetime.now() - start_time
session['screen_time'] += round(screen_time.total_seconds())
start_time = None
def get_widget_title(break_obj):
"""
Return the widget title.
"""
global no_of_breaks
global no_of_cycles
no_of_breaks += 1
if context['new_cycle']:
no_of_cycles += 1
session['no_of_breaks'] = no_of_breaks
session['no_of_cycles'] = no_of_cycles
session['safe_eyes_start_time'] = safe_eyes_start_time.strftime("%Y-%m-%d %H:%M:%S")
session['total_idle_time'] = total_idle_time
session['last_screen_time'] = last_screen_time
return _('Health Statistics')
def _reset_stats():
global no_of_breaks
global no_of_cycles
global safe_eyes_start_time
global total_idle_time
global no_of_skipped_breaks
global last_screen_time
current_time = datetime.datetime.now()
total_duration_sec = (current_time - safe_eyes_start_time).total_seconds()
if total_duration_sec >= reset_interval:
total_duration_sec -= reset_interval
safe_eyes_start_time = current_time - \
datetime.timedelta(seconds=total_duration_sec)
last_screen_time = round((total_duration_sec - total_idle_time) / 60)
total_idle_time = 0
no_of_breaks = 0
no_of_cycles = 0
no_of_skipped_breaks = 0
session['no_of_breaks'] = 0
session['no_of_cycles'] = 0
session['no_of_skipped_breaks'] = 0
session['safe_eyes_start_time'] = safe_eyes_start_time.strftime("%Y-%m-%d %H:%M:%S")
session['total_idle_time'] = total_idle_time
session['last_screen_time'] = last_screen_time
global session
return total_duration_sec
# Check if the reset time has passed
if next_reset_time and datetime.datetime.now() >= next_reset_time:
logging.info("Resetting the health statistics")
# Update the next_reset_time
_get_next_reset_time()
# Reset statistics
session['total_breaks'] += session['breaks']
session['total_skipped_breaks'] += session['skipped_breaks']
session['total_screen_time'] += session['screen_time']
session['total_resets'] += 1
session['breaks'] = 0
session['skipped_breaks'] = 0
session['screen_time'] = 0
def get_widget_content(break_obj):
"""
Return the statistics.
"""
total_duration_sec = _reset_stats()
screen_time = round((total_duration_sec - total_idle_time) / 60)
hours, minutes = divmod(screen_time, 60)
time_format = '{:02d}:{:02d}'.format(hours, minutes)
if hours > 6 or round((no_of_skipped_breaks / no_of_breaks), 1) >= 0.2:
global next_reset_time
resets = session['total_resets']
if session['screen_time'] > 21600 or (session['breaks'] and session['skipped_breaks'] / session['breaks']) >= 0.2:
# Unhealthy behavior -> Red broken heart
heart = '💔️'
else:
# Healthy behavior -> Green heart
heart = '💚'
if last_screen_time < 0:
screen_time_diff = ''
else:
hrs_diff, mins_diff = divmod(abs(screen_time - last_screen_time), 60)
symbol = ''
if screen_time > last_screen_time:
symbol = '+'
elif screen_time < last_screen_time:
symbol = '-'
screen_time_diff = ' ( {}{:02d}:{:02d} )'.format(symbol, hrs_diff, mins_diff)
return "{}\tBREAKS: {}\tSKIPPED: {}\tCYCLES: {}\tSCREEN TIME: {}{}".format(heart, no_of_breaks, no_of_skipped_breaks, no_of_cycles, time_format, screen_time_diff)
content = [
heart,
f"BREAKS: {session['breaks']}",
f"SKIPPED: {session['skipped_breaks']}",
f"SCREEN TIME: {_format_interval(session['screen_time'])}",
]
if resets:
content[1] += f" [{round(session['total_breaks'] / resets, 1)}]"
content[2] += f" [{round(session['total_skipped_breaks'] / resets, 1)}]"
content[3] += f" [{_format_interval(session['total_screen_time'] / resets)}]"
content = "\t".join(content)
if resets:
content += f"\n\t[] = average of {resets} reset(s)"
if next_reset_time is None:
content += f"\n\tSettings error in statistics reset interval: {statistics_reset_cron}"
return content
def on_start():
"""
Add the idle period to the total idle time.
Track the start time.
"""
global start_time
_reset_stats()
global total_idle_time
# idle_period is provided by Smart Pause plugin
total_idle_time += context.get('idle_period', 0)
session['total_idle_time'] = total_idle_time
start_time = datetime.datetime.now()
def _get_next_reset_time():
global next_reset_time
global session
try:
cron = croniter.croniter(statistics_reset_cron, datetime.datetime.now())
next_reset_time = cron.get_next(datetime.datetime)
session['next_reset_time'] = next_reset_time.strftime("%Y-%m-%d %H:%M:%S")
logging.debug("Health stats will be reset at " + session['next_reset_time'])
except:
logging.error("Error in statistics reset expression: " + statistics_reset_cron)
next_reset_time = None
def _format_interval(seconds):
screen_time = round(seconds / 60)
hours, minutes = divmod(screen_time, 60)
return '{:02d}:{:02d}'.format(hours, minutes)

View File

@ -17,7 +17,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
Media Control plugin lets users to pause currntly playing media player from the break screen.
Media Control plugin lets users to pause currently playing media player from the break screen.
"""
import logging

View File

@ -60,7 +60,7 @@ def on_pre_break(break_obj):
else:
message += (_('Ready for a long break in %s seconds') % warning_time)
notification = Notify.Notification.new('Safe Eyes', message, icon='safeeyes_enabled')
notification = Notify.Notification.new('Safe Eyes', message, icon='io.github.slgobinath.SafeEyes-enabled')
try:
notification.show()
except BaseException:

View File

@ -24,7 +24,7 @@ import gi
import logging
import os
from safeeyes import Utility
from safeeyes import utility
from safeeyes.model import TrayAction
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
@ -54,23 +54,23 @@ def __lock_screen_command():
current_desktop = os.environ.get('XDG_CURRENT_DESKTOP')
if desktop_session is not None:
desktop_session = desktop_session.lower()
if ('xfce' in desktop_session or desktop_session.startswith('xubuntu') or (current_desktop is not None and 'xfce' in current_desktop)) and Utility.command_exist('xflock4'):
if ('xfce' in desktop_session or desktop_session.startswith('xubuntu') or (current_desktop is not None and 'xfce' in current_desktop)) and utility.command_exist('xflock4'):
return ['xflock4']
elif desktop_session == 'cinnamon' and Utility.command_exist('cinnamon-screensaver-command'):
elif desktop_session == 'cinnamon' and utility.command_exist('cinnamon-screensaver-command'):
return ['cinnamon-screensaver-command', '--lock']
elif (desktop_session == 'pantheon' or desktop_session.startswith('lubuntu')) and Utility.command_exist('light-locker-command'):
elif (desktop_session == 'pantheon' or desktop_session.startswith('lubuntu')) and utility.command_exist('light-locker-command'):
return ['light-locker-command', '--lock']
elif desktop_session == 'mate' and Utility.command_exist('mate-screensaver-command'):
elif desktop_session == 'mate' and utility.command_exist('mate-screensaver-command'):
return ['mate-screensaver-command', '--lock']
elif desktop_session == 'kde' or 'plasma' in desktop_session or desktop_session.startswith('kubuntu') or os.environ.get('KDE_FULL_SESSION') == 'true':
return ['qdbus', 'org.freedesktop.ScreenSaver', '/ScreenSaver', 'Lock']
elif desktop_session in ['gnome', 'unity', 'budgie-desktop'] or desktop_session.startswith('ubuntu'):
if Utility.command_exist('gnome-screensaver-command'):
if utility.command_exist('gnome-screensaver-command'):
return ['gnome-screensaver-command', '--lock']
# From Gnome 3.8 no gnome-screensaver-command
return ['dbus-send', '--type=method_call', '--dest=org.gnome.ScreenSaver', '/org/gnome/ScreenSaver', 'org.gnome.ScreenSaver.Lock']
elif os.environ.get('GNOME_DESKTOP_SESSION_ID'):
if 'deprecated' not in os.environ.get('GNOME_DESKTOP_SESSION_ID') and Utility.command_exist('gnome-screensaver-command'):
if 'deprecated' not in os.environ.get('GNOME_DESKTOP_SESSION_ID') and utility.command_exist('gnome-screensaver-command'):
# Gnome 2
return ['gnome-screensaver-command', '--lock']
return None
@ -125,7 +125,7 @@ def on_stop_break():
Lock the screen after a long break if the user has not skipped within min_seconds.
"""
if user_locked_screen or (lock_screen and seconds_passed >= min_seconds):
Utility.execute_command(lock_screen_command)
utility.execute_command(lock_screen_command)
def get_tray_action(break_obj):

View File

@ -6,7 +6,7 @@
},
"dependencies": {
"python_modules": [],
"shell_commands": ["xprintidle"],
"shell_commands": [],
"operating_systems": [],
"desktop_environments": [],
"resources": []
@ -20,12 +20,6 @@
"max": 3600,
"min": 5
},
{
"id": "interpret_idle_as_break",
"label": "Interpret idle time equivalent to upcoming break duration as a break",
"type": "BOOL",
"default": false
},
{
"id": "postpone_if_active",
"label": "Postpone the next break until the system becomes idle",

View File

@ -0,0 +1,33 @@
# Safe Eyes is a utility to remind you to take break frequently
# to protect your eyes from eye strain.
# Copyright (C) 2017 Gobinath
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from safeeyes import utility
def validate(plugin_config, plugin_settings):
command = None
if utility.DESKTOP_ENVIRONMENT == "gnome" and utility.IS_WAYLAND:
command = "dbus-send"
elif utility.DESKTOP_ENVIRONMENT == "sway":
command = "swayidle"
else:
command = "xprintidle"
if not utility.command_exist(command):
return _("Please install the command-line tool '%s'") % command
else:
return None

View File

@ -20,8 +20,10 @@ import datetime
import logging
import subprocess
import threading
import re
import os
from safeeyes import Utility
from safeeyes import utility
from safeeyes.model import State
"""
@ -33,15 +35,78 @@ idle_condition = threading.Condition()
lock = threading.Lock()
active = False
idle_time = 0
enable_safe_eyes = None
disable_safe_eyes = None
enable_safeeyes = None
disable_safeeyes = None
smart_pause_activated = False
idle_start_time = None
next_break_time = None
next_break_duration = 0
break_interval = 0
short_break_interval = 0
waiting_time = 2
interpret_idle_as_break = False
is_wayland_and_gnome = False
use_swayidle = False
swayidle_process = None
swayidle_lock = threading.Lock()
swayidle_idle = 0
swayidle_active = 0
def __swayidle_running():
return (swayidle_process is not None and
swayidle_process.poll() is None)
def __start_swayidle_monitor():
global swayidle_process
global swayidle_start
global swayidle_idle
global swayidle_active
logging.debug('Starting swayidle subprocess')
swayidle_process = subprocess.Popen([
"swayidle", "timeout", "1", "date +S%s", "resume", "date +R%s"
], stdout=subprocess.PIPE, bufsize=1, universal_newlines=True, encoding='utf-8')
for line in swayidle_process.stdout:
with swayidle_lock:
typ = line[0]
timestamp = int(line[1:])
if typ == 'S':
swayidle_idle = timestamp
elif typ == 'R':
swayidle_active = timestamp
def __stop_swayidle_monitor():
if __swayidle_running():
logging.debug('Stopping swayidle subprocess')
swayidle_process.terminate()
def __swayidle_idle_time():
with swayidle_lock:
if not __swayidle_running():
utility.start_thread(__start_swayidle_monitor)
# Idle more recently than active, meaning idle time isn't stale.
if swayidle_idle > swayidle_active:
idle_time = int(datetime.datetime.now().timestamp()) - swayidle_idle
return idle_time
return 0
def __gnome_wayland_idle_time():
"""
Determine system idle time in seconds, specifically for gnome with wayland.
If there's a failure, return 0.
https://unix.stackexchange.com/a/492328/222290
"""
try:
output = subprocess.check_output([
'dbus-send',
'--print-reply',
'--dest=org.gnome.Mutter.IdleMonitor',
'/org/gnome/Mutter/IdleMonitor/Core',
'org.gnome.Mutter.IdleMonitor.GetIdletime'
])
return int(re.search(rb'\d+$', output).group(0)) / 1000
except BaseException as e:
logging.warning("Failed to get system idle time for gnome/wayland.")
logging.warning(str(e))
return 0
def __system_idle_time():
@ -50,6 +115,10 @@ def __system_idle_time():
Return the idle time if xprintidle is available, otherwise return 0.
"""
try:
if is_wayland_and_gnome:
return __gnome_wayland_idle_time()
elif use_swayidle:
return __swayidle_idle_time()
# Convert to seconds
return int(subprocess.check_output(['xprintidle']).decode('utf-8')) / 1000
except BaseException:
@ -80,25 +149,29 @@ def init(ctx, safeeyes_config, plugin_config):
Initialize the plugin.
"""
global context
global enable_safe_eyes
global disable_safe_eyes
global enable_safeeyes
global disable_safeeyes
global postpone
global idle_time
global break_interval
global short_break_interval
global long_break_duration
global waiting_time
global interpret_idle_as_break
global postpone_if_active
global is_wayland_and_gnome
global use_swayidle
logging.debug('Initialize Smart Pause plugin')
context = ctx
enable_safe_eyes = context['api']['enable_safeeyes']
disable_safe_eyes = context['api']['disable_safeeyes']
enable_safeeyes = context['api']['enable_safeeyes']
disable_safeeyes = context['api']['disable_safeeyes']
postpone = context['api']['postpone']
idle_time = plugin_config['idle_time']
interpret_idle_as_break = plugin_config['interpret_idle_as_break']
postpone_if_active = plugin_config['postpone_if_active']
break_interval = safeeyes_config.get(
short_break_interval = safeeyes_config.get(
'short_break_interval') * 60 # Convert to seconds
long_break_duration = safeeyes_config.get('long_break_duration')
waiting_time = min(2, idle_time) # If idle time is 1 sec, wait only 1 sec
is_wayland_and_gnome = context['desktop'] == 'gnome' and context['is_wayland']
use_swayidle = context['desktop'] == 'sway'
def __start_idle_monitor():
@ -107,6 +180,7 @@ def __start_idle_monitor():
"""
global smart_pause_activated
global idle_start_time
while __is_active():
# Wait for waiting_time seconds
idle_condition.acquire()
@ -118,25 +192,27 @@ def __start_idle_monitor():
system_idle_time = __system_idle_time()
if system_idle_time >= idle_time and context['state'] == State.WAITING:
smart_pause_activated = True
idle_start_time = datetime.datetime.now()
idle_start_time = datetime.datetime.now() - datetime.timedelta(seconds=system_idle_time)
logging.info('Pause Safe Eyes due to system idle')
disable_safe_eyes(None)
elif system_idle_time < idle_time and context['state'] == State.STOPPED:
disable_safeeyes(None, True)
elif system_idle_time < idle_time and context['state'] == State.RESTING and idle_start_time is not None:
logging.info('Resume Safe Eyes due to user activity')
smart_pause_activated = False
idle_period = (datetime.datetime.now() - idle_start_time)
idle_seconds = idle_period.total_seconds()
context['idle_period'] = idle_seconds
if interpret_idle_as_break and idle_seconds >= next_break_duration:
# User is idle for break duration and wants to consider it as a break
enable_safe_eyes()
elif idle_seconds < break_interval:
if idle_seconds < short_break_interval:
# Credit back the idle time
next_break = next_break_time + idle_period
enable_safe_eyes(next_break.timestamp())
if next_break_time is not None:
# This method runs in a thread since the start.
# It may run before next_break is initialized in the update_next_break method
next_break = next_break_time + idle_period
enable_safeeyes(next_break.timestamp())
else:
enable_safeeyes()
else:
# User is idle for more than the time between two breaks
enable_safe_eyes()
enable_safeeyes()
def on_start():
@ -148,7 +224,7 @@ def on_start():
# If SmartPause is already started, do not start it again
logging.debug('Start Smart Pause plugin')
__set_active(True)
Utility.start_thread(__start_idle_monitor)
utility.start_thread(__start_idle_monitor)
def on_stop():
@ -162,6 +238,8 @@ def on_stop():
smart_pause_activated = False
return
logging.debug('Stop Smart Pause plugin')
if use_swayidle:
__stop_swayidle_monitor()
__set_active(False)
idle_condition.acquire()
idle_condition.notify_all()

View File

@ -18,6 +18,12 @@
"type": "BOOL",
"default": false
},
{
"id": "show_long_time_in_tray",
"label": "Show only long breaks for tray icon time",
"type": "BOOL",
"default": false
},
{
"id": "allow_disabling",
"label": "Allow disabling Safe Eyes",
@ -48,4 +54,4 @@
]
}
]
}
}

View File

@ -17,13 +17,19 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import datetime
from safeeyes.model import BreakType
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('AppIndicator3', '0.1')
from gi.repository import AppIndicator3 as appindicator
try:
gi.require_version('AppIndicator3', '0.1')
from gi.repository import AppIndicator3 as appindicator
except:
#fall back to Ayatana
gi.require_version('AyatanaAppIndicator3', '0.1')
from gi.repository import AyatanaAppIndicator3 as appindicator
from gi.repository import Gtk
import logging
from safeeyes import Utility
from safeeyes import utility
import threading
import time
@ -37,7 +43,7 @@ tray_icon = None
safeeyes_config = None
class TrayIcon(object):
class TrayIcon:
"""
Create and show the tray icon along with the tray menu.
"""
@ -47,10 +53,11 @@ class TrayIcon(object):
self.on_show_settings = context['api']['show_settings']
self.on_show_about = context['api']['show_about']
self.quit = context['api']['quit']
self.on_enable = context['api']['enable_safeeyes']
self.on_disable = context['api']['disable_safeeyes']
self.enable_safeeyes = context['api']['enable_safeeyes']
self.disable_safeeyes = context['api']['disable_safeeyes']
self.take_break = context['api']['take_break']
self.has_breaks = context['api']['has_breaks']
self.get_break_time = context['api']['get_break_time']
self.plugin_config = plugin_config
self.date_time = None
self.active = True
@ -62,7 +69,7 @@ class TrayIcon(object):
# Construct the tray icon
self.indicator = appindicator.Indicator.new(
APPINDICATOR_ID, "safeeyes_enabled", appindicator.IndicatorCategory.APPLICATION_STATUS)
APPINDICATOR_ID, "io.github.slgobinath.SafeEyes-enabled", appindicator.IndicatorCategory.APPLICATION_STATUS)
self.indicator.set_status(appindicator.IndicatorStatus.ACTIVE)
# Construct the context menu
@ -71,7 +78,7 @@ class TrayIcon(object):
# Next break info menu item
self.item_info = Gtk.ImageMenuItem()
img_timer = Gtk.Image()
img_timer.set_from_icon_name("safeeyes_timer", 16)
img_timer.set_from_icon_name("io.github.slgobinath.SafeEyes-timer", 16)
self.item_info.set_image(img_timer)
self.item_separator = Gtk.SeparatorMenuItem()
@ -80,10 +87,8 @@ class TrayIcon(object):
self.item_enable.connect('activate', self.on_enable_clicked)
self.item_disable = Gtk.MenuItem()
self.item_disable.connect('activate', self.on_disable_clicked)
self.sub_menu_disable = Gtk.Menu()
self.sub_menu_items = []
self.sub_menu_disable_items = []
# Read disable options and build the sub menu
for disable_option in plugin_config['disable_options']:
@ -111,7 +116,7 @@ class TrayIcon(object):
# Create submenu
sub_menu_item = Gtk.MenuItem()
sub_menu_item.connect('activate', self.on_disable_clicked, time_in_minutes)
self.sub_menu_items.append([sub_menu_item, label, disable_option['time']])
self.sub_menu_disable_items.append([sub_menu_item, label, disable_option['time']])
self.sub_menu_disable.append(sub_menu_item)
# Disable until restart submenu
@ -122,9 +127,21 @@ class TrayIcon(object):
# Add the sub menu to the enable/disable menu
self.item_disable.set_submenu(self.sub_menu_disable)
# Settings menu item
# Manual break menu item
self.item_manual_break = Gtk.MenuItem()
self.item_manual_break.connect('activate', self.on_manual_break_clicked)
self.sub_menu_manual_next_break = Gtk.MenuItem()
self.sub_menu_manual_next_break.connect('activate', self.on_manual_break_clicked, None)
self.sub_menu_manual_next_short_break = Gtk.MenuItem()
self.sub_menu_manual_next_short_break.connect('activate', self.on_manual_break_clicked, BreakType.SHORT_BREAK)
self.sub_menu_manual_next_long_break = Gtk.MenuItem()
self.sub_menu_manual_next_long_break.connect('activate', self.on_manual_break_clicked, BreakType.LONG_BREAK)
self.sub_menu_manual_break = Gtk.Menu()
self.sub_menu_manual_break.append(self.sub_menu_manual_next_break)
self.sub_menu_manual_break.append(self.sub_menu_manual_next_short_break)
self.sub_menu_manual_break.append(self.sub_menu_manual_next_long_break)
self.item_manual_break.set_submenu(self.sub_menu_manual_break)
# Settings menu item
self.item_settings = Gtk.MenuItem()
@ -177,7 +194,7 @@ class TrayIcon(object):
"""
Update the text of menu items based on the selected language.
"""
for entry in self.sub_menu_items:
for entry in self.sub_menu_disable_items:
# print(self.context['locale'].ngettext('For %d Hour', 'For %d Hours', 1) % 1)
entry[0].set_label(self.context['locale'].ngettext(entry[1][0], entry[1][1], entry[2]) % entry[2])
@ -190,24 +207,27 @@ class TrayIcon(object):
if self.active:
if self.date_time:
self.__set_next_break_info()
self.indicator.set_icon("safeeyes_enabled")
self.indicator.set_icon("io.github.slgobinath.SafeEyes-enabled")
else:
if self.wakeup_time:
self.item_info.set_label(_('Disabled until %s') % Utility.format_time(self.wakeup_time))
self.item_info.set_label(_('Disabled until %s') % utility.format_time(self.wakeup_time))
else:
self.item_info.set_label(_('Disabled until restart'))
self.indicator.set_label('', '')
self.indicator.set_icon("safeeyes_disabled")
self.indicator.set_icon("io.github.slgobinath.SafeEyes-disabled")
else:
self.item_info.set_label(_('No Breaks Available'))
self.item_info.set_label(_('No breaks available'))
self.indicator.set_label('', '')
self.indicator.set_icon("safeeyes_disabled")
self.indicator.set_icon("io.github.slgobinath.SafeEyes-disabled")
self.item_info.set_sensitive(breaks_found and self.active)
self.item_enable.set_sensitive(breaks_found and not self.active)
self.item_disable.set_sensitive(breaks_found and self.active)
self.item_manual_break.set_sensitive(breaks_found and self.active)
self.item_manual_break.set_label(_('Take a break now'))
self.sub_menu_manual_next_break.set_label(_('Any break'))
self.sub_menu_manual_next_short_break.set_label(_('Short break'))
self.sub_menu_manual_next_long_break.set_label(_('Long break'))
self.item_settings.set_label(_('Settings'))
self.item_about.set_label(_('About'))
self.item_quit.set_label(_('Quit'))
@ -263,13 +283,25 @@ class TrayIcon(object):
"""
A private method to be called within this class to update the next break information using self.dateTime.
"""
formatted_time = Utility.format_time(self.date_time)
message = _('Next break at %s') % (formatted_time)
formatted_time = utility.format_time(self.get_break_time())
long_time = self.get_break_time(BreakType.LONG_BREAK)
if long_time:
long_time = utility.format_time(long_time)
if long_time == formatted_time:
message = _('Next long break at %s') % (long_time)
else:
message = _('Next breaks at %s/%s') % (formatted_time, long_time)
else:
message = _('Next break at %s') % (formatted_time)
# Update the menu item label
Utility.execute_main_thread(self.item_info.set_label, message)
utility.execute_main_thread(self.item_info.set_label, message)
# Update the tray icon label
if self.plugin_config.get('show_time_in_tray', False):
self.indicator.set_label(formatted_time, '')
show_long = long_time and self.plugin_config.get('show_long_time_in_tray', False)
self.indicator.set_label(long_time if show_long else formatted_time, '')
else:
self.indicator.set_label('', '')
@ -277,7 +309,11 @@ class TrayIcon(object):
"""
Trigger a break manually.
"""
self.take_break()
if len(args) > 1:
break_type = args[1]
self.take_break(break_type)
else:
self.take_break()
def on_enable_clicked(self, *args):
"""
@ -288,7 +324,7 @@ class TrayIcon(object):
if not self.active:
with self.lock:
self.enable_ui()
self.on_enable()
self.enable_safeeyes()
# Notify all schedulers
self.idle_condition.acquire()
self.idle_condition.notify_all()
@ -306,15 +342,15 @@ class TrayIcon(object):
time_to_wait = args[1]
if time_to_wait <= 0:
info = _('Disabled until restart')
self.on_disable(info)
self.disable_safeeyes(info)
self.wakeup_time = None
self.item_info.set_label(info)
else:
self.wakeup_time = datetime.datetime.now() + datetime.timedelta(minutes=time_to_wait)
info = _('Disabled until %s') % Utility.format_time(self.wakeup_time)
self.on_disable(info)
info = _('Disabled until %s') % utility.format_time(self.wakeup_time)
self.disable_safeeyes(info)
self.item_info.set_label(info)
Utility.start_thread(self.__schedule_resume, time_minutes=time_to_wait)
utility.start_thread(self.__schedule_resume, time_minutes=time_to_wait)
def lock_menu(self):
"""
@ -337,7 +373,7 @@ class TrayIcon(object):
if self.active:
logging.info('Disable Safe Eyes')
self.active = False
self.indicator.set_icon("safeeyes_disabled")
self.indicator.set_icon("io.github.slgobinath.SafeEyes-disabled")
self.item_info.set_label(_('Disabled until restart'))
self.indicator.set_label('', '')
self.item_info.set_sensitive(False)
@ -352,7 +388,7 @@ class TrayIcon(object):
if not self.active:
logging.info('Enable Safe Eyes')
self.active = True
self.indicator.set_icon("safeeyes_enabled")
self.indicator.set_icon("io.github.slgobinath.SafeEyes-enabled")
self.item_info.set_sensitive(True)
self.item_enable.set_sensitive(False)
self.item_disable.set_sensitive(True)
@ -368,25 +404,25 @@ class TrayIcon(object):
with self.lock:
if not self.active:
Utility.execute_main_thread(self.item_enable.activate)
utility.execute_main_thread(self.item_enable.activate)
def start_animation(self):
if not self.active or not self.animate:
return
Utility.execute_main_thread(lambda: self.indicator.set_icon("safeeyes_disabled"))
utility.execute_main_thread(lambda: self.indicator.set_icon("io.github.slgobinath.SafeEyes-disabled"))
time.sleep(0.5)
Utility.execute_main_thread(lambda: self.indicator.set_icon("safeeyes_enabled"))
utility.execute_main_thread(lambda: self.indicator.set_icon("io.github.slgobinath.SafeEyes-enabled"))
if self.animate and self.active:
time.sleep(0.5)
if self.animate and self.active:
Utility.start_thread(self.start_animation)
utility.start_thread(self.start_animation)
def stop_animation(self):
self.animate = False
if self.active:
Utility.execute_main_thread(lambda: self.indicator.set_icon("safeeyes_enabled"))
utility.execute_main_thread(lambda: self.indicator.set_icon("io.github.slgobinath.SafeEyes-enabled"))
else:
Utility.execute_main_thread(lambda: self.indicator.set_icon("safeeyes_disabled"))
utility.execute_main_thread(lambda: self.indicator.set_icon("io.github.slgobinath.SafeEyes-disabled"))
def init(ctx, safeeyes_cfg, plugin_config):
"""
@ -417,7 +453,6 @@ def on_pre_break(break_obj):
"""
if safeeyes_config.get('strict_break'):
tray_icon.lock_menu()
threading.Timer(safeeyes_config.get('pre_break_warning_time'), __unlock_menu).start()
tray_icon.animate = True
tray_icon.start_animation()
@ -425,11 +460,9 @@ def on_pre_break(break_obj):
def on_start_break(break_obj):
tray_icon.stop_animation()
def __unlock_menu():
"""
Unlock the menu
"""
Utility.execute_main_thread(tray_icon.unlock_menu)
def on_stop_break():
tray_icon.unlock_menu()
def on_start():

View File

@ -26,7 +26,7 @@ from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.client import ServerProxy
class RPCServer(object):
class RPCServer:
"""
An aynchronous RPC server.
"""
@ -62,7 +62,7 @@ class RPCServer(object):
self.__server.shutdown()
class RPCClient(object):
class RPCClient:
"""
An RPC client to communicate with the RPC server.
"""

View File

@ -28,22 +28,22 @@ from threading import Timer
import dbus
import gi
from dbus.mainloop.glib import DBusGMainLoop
from safeeyes import Utility
from safeeyes.AboutDialog import AboutDialog
from safeeyes.BreakScreen import BreakScreen
from safeeyes import utility
from safeeyes.ui.about_dialog import AboutDialog
from safeeyes.ui.break_screen import BreakScreen
from safeeyes.model import State
from safeeyes.rpc import RPCServer
from safeeyes.PluginManager import PluginManager
from safeeyes.SafeEyesCore import SafeEyesCore
from safeeyes.settings import SettingsDialog
from safeeyes.plugin_manager import PluginManager
from safeeyes.core import SafeEyesCore
from safeeyes.ui.settings_dialog import SettingsDialog
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
SAFE_EYES_VERSION = "2.0.9"
SAFE_EYES_VERSION = "2.1.6"
class SafeEyes(object):
class SafeEyes:
"""
This class represents a runnable Safe Eyes instance.
"""
@ -61,29 +61,30 @@ class SafeEyes(object):
# Initialize the Safe Eyes Context
self.context['version'] = SAFE_EYES_VERSION
self.context['desktop'] = Utility.desktop_environment()
self.context['desktop'] = utility.desktop_environment()
self.context['is_wayland'] = utility.is_wayland()
self.context['locale'] = system_locale
self.context['api'] = {}
self.context['api']['show_settings'] = lambda: Utility.execute_main_thread(
self.context['api']['show_settings'] = lambda: utility.execute_main_thread(
self.show_settings)
self.context['api']['show_about'] = lambda: Utility.execute_main_thread(
self.context['api']['show_about'] = lambda: utility.execute_main_thread(
self.show_about)
self.context['api']['enable_safeeyes'] = lambda next_break_time=- \
1: Utility.execute_main_thread(self.enable_safeeyes, next_break_time)
self.context['api']['disable_safeeyes'] = lambda status: Utility.execute_main_thread(
self.context['api']['enable_safeeyes'] = lambda next_break_time=-1, reset_breaks=False: \
utility.execute_main_thread(self.enable_safeeyes, next_break_time, reset_breaks)
self.context['api']['disable_safeeyes'] = lambda status: utility.execute_main_thread(
self.disable_safeeyes, status)
self.context['api']['status'] = self.status
self.context['api']['quit'] = lambda: Utility.execute_main_thread(
self.context['api']['quit'] = lambda: utility.execute_main_thread(
self.quit)
if self.config.get('persist_state'):
self.context['session'] = Utility.open_session()
self.context['session'] = utility.open_session()
else:
self.context['session'] = {'plugin': {}}
self.break_screen = BreakScreen(
self.context, self.on_skipped, self.on_postponed, Utility.STYLE_SHEET_PATH)
self.context, self.on_skipped, self.on_postponed, utility.STYLE_SHEET_PATH)
self.break_screen.initialize(self.config)
self.plugins_manager = PluginManager(self.context, self.config)
self.plugins_manager = PluginManager()
self.safe_eyes_core = SafeEyesCore(self.context)
self.safe_eyes_core.on_pre_break += self.plugins_manager.pre_break
self.safe_eyes_core.on_start_break += self.on_start_break
@ -92,19 +93,20 @@ class SafeEyes(object):
self.safe_eyes_core.on_stop_break += self.stop_break
self.safe_eyes_core.on_update_next_break += self.update_next_break
self.safe_eyes_core.initialize(self.config)
self.context['api']['take_break'] = lambda: Utility.execute_main_thread(
self.safe_eyes_core.take_break)
self.context['api']['take_break'] = self.take_break
self.context['api']['has_breaks'] = self.safe_eyes_core.has_breaks
self.context['api']['postpone'] = self.safe_eyes_core.postpone
self.context['api']['get_break_time'] = self.safe_eyes_core.get_break_time
self.plugins_manager.init(self.context, self.config)
atexit.register(self.persist_session)
self.rpc_server = RPCServer(self.config.get('rpc_port'), self.context)
self.rpc_server.start()
def start(self):
"""
Start Safe Eyes
"""
if self.config.get('use_rpc_server', True):
self.__start_rpc_server()
if self.safe_eyes_core.has_breaks():
self.active = True
self.context['state'] = State.START
@ -140,7 +142,7 @@ class SafeEyes(object):
self.plugins_manager.stop()
self.safe_eyes_core.stop()
self.plugins_manager.exit()
self.rpc_server.stop()
self.__stop_rpc_server()
self.persist_session()
Gtk.main_quit()
# Exit all threads
@ -156,7 +158,7 @@ class SafeEyes(object):
if self.active:
logging.info("Stop Safe Eyes due to system suspend")
self.plugins_manager.stop()
self.safe_eyes_core.stop()
self.safe_eyes_core.stop(True)
else:
# Resume from sleep
if self.active and self.safe_eyes_core.has_breaks():
@ -211,7 +213,14 @@ class SafeEyes(object):
logging.info("Initialize SafeEyesCore with modified settings")
# Restart the core and intialize the components
if self.rpc_server is None and config.get('use_rpc_server'):
# RPC server wasn't running but now enabled
self.__start_rpc_server()
elif self.rpc_server is not None and not config.get('use_rpc_server'):
# RPC server was running but now disabled
self.__stop_rpc_server()
# Restart the core and initialize the components
self.config = config
self.safe_eyes_core.initialize(config)
self.break_screen.initialize(config)
@ -221,23 +230,23 @@ class SafeEyes(object):
Timer(1.0, self.safe_eyes_core.start).start()
self.plugins_manager.start()
def enable_safeeyes(self, scheduled_next_break_time=-1):
def enable_safeeyes(self, scheduled_next_break_time=-1, reset_breaks=False):
"""
Listen to tray icon enable action and send the signal to core.
"""
if not self.active and self.safe_eyes_core.has_breaks():
self.active = True
self.safe_eyes_core.start(scheduled_next_break_time)
self.safe_eyes_core.start(scheduled_next_break_time, reset_breaks)
self.plugins_manager.start()
def disable_safeeyes(self, status=None):
def disable_safeeyes(self, status=None, is_resting = False):
"""
Listen to tray icon disable action and send the signal to core.
"""
if self.active:
self.active = False
self.plugins_manager.stop()
self.safe_eyes_core.stop()
self.safe_eyes_core.stop(is_resting)
if status is None:
status = _('Disabled until restart')
self._status = status
@ -273,9 +282,9 @@ class SafeEyes(object):
"""
self.plugins_manager.update_next_break(break_obj, break_time)
self._status = _('Next break at %s') % (
Utility.format_time(break_time))
utility.format_time(break_time))
if self.config.get('persist_state'):
Utility.write_json(Utility.SESSION_FILE_PATH,
utility.write_json(utility.SESSION_FILE_PATH,
self.context['session'])
def stop_break(self):
@ -286,11 +295,11 @@ class SafeEyes(object):
self.plugins_manager.stop_break()
return True
def take_break(self):
def take_break(self, break_type = None):
"""
Take a break now.
"""
self.safe_eyes_core.take_break()
utility.execute_main_thread(self.safe_eyes_core.take_break, break_type)
def status(self):
"""
@ -303,7 +312,17 @@ class SafeEyes(object):
Save the session object to the session file.
"""
if self.config.get('persist_state'):
Utility.write_json(Utility.SESSION_FILE_PATH,
utility.write_json(utility.SESSION_FILE_PATH,
self.context['session'])
else:
Utility.delete(Utility.SESSION_FILE_PATH)
utility.delete(utility.SESSION_FILE_PATH)
def __start_rpc_server(self):
if self.rpc_server is None:
self.rpc_server = RPCServer(self.config.get('rpc_port'), self.context)
self.rpc_server.start()
def __stop_rpc_server(self):
if self.rpc_server is not None:
self.rpc_server.stop()
self.rpc_server = None

0
safeeyes/ui/__init__.py Normal file
View File

View File

@ -22,22 +22,22 @@ This module creates the AboutDialog which shows the version and license.
import os
from safeeyes import Utility
from safeeyes import utility
ABOUT_DIALOG_GLADE = os.path.join(Utility.BIN_DIRECTORY, "glade/about_dialog.glade")
ABOUT_DIALOG_GLADE = os.path.join(utility.BIN_DIRECTORY, "glade/about_dialog.glade")
class AboutDialog(object):
class AboutDialog:
"""
AboutDialog reads the about_dialog.glade and build the user interface using that file.
It shows the application name with version, a small description, license and the GitHub url.
"""
def __init__(self, version):
builder = Utility.create_gtk_builder(ABOUT_DIALOG_GLADE)
builder = utility.create_gtk_builder(ABOUT_DIALOG_GLADE)
builder.connect_signals(self)
self.window = builder.get_object('window_about')
builder.get_object('lbl_decription').set_label(_('description'))
builder.get_object('lbl_decription').set_label(_("Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to take breaks while you're working long hours at the computer"))
builder.get_object('lbl_license').set_label(_('License') + ':')
# Set the version at the runtime

Some files were not shown because too many files have changed in this diff Show More