Hi! With no response to the RC bug in 7 days, I've just uploaded an NMU to DELAYED/7-days.
I have also fixed #1006942 at the same time by upgrading to version 2.1.5 and updating the Depends field; the differences between 2.1.3 and 2.1.5 are only minor. (The diff-file attached is large primarily because the new version has updated the translation files.) The only file differences shown by debdiff on the generated debs is that the egg-info files are now 2.1.5 rather than 2.1.3. If you are happy with this new version, I will push the changes to salsa once it is accepted into unstable. If you would like me to skip the delayed queue, I'm happy to do that, and if you would prefer me to delete the updated version and fix it yourself, I can do that too. Best wishes, Julian On Fri, Mar 17, 2023 at 12:25:22PM +0000, Julian Gilbey wrote: > Package: safeeyes > Version: 2.1.3-1 > Severity: serious > Tags: patch upstream > > Safeeyes uses the deprecated inspect.getargspec() function, which was > dropped in Python 3.11, so no plugins are loaded, significantly > impairing the functionality of this package. > > There is a one-line patch at > https://github.com/slgobinath/SafeEyes/pull/505 (and a discussion at > https://github.com/slgobinath/SafeEyes/issues/491) > > Please could you apply it for bookworm? > > Many thanks, > > Julian
diff -Nru safeeyes-2.1.3/debian/changelog safeeyes-2.1.5/debian/changelog --- safeeyes-2.1.3/debian/changelog 2021-09-04 19:00:04.000000000 +0100 +++ safeeyes-2.1.5/debian/changelog 2023-03-24 12:32:08.000000000 +0000 @@ -1,3 +1,12 @@ +safeeyes (2.1.5-0.1) unstable; urgency=medium + + * Non-maintainer upload + * New upstream version makes icon appear in KDE/Plasma and XFCE4 system + tray once again (Closes: #1006942) + * Support Python 3.11 (Closes: #1033106) + + -- Julian Gilbey <j...@debian.org> Fri, 24 Mar 2023 12:32:08 +0000 + safeeyes (2.1.3-1) unstable; urgency=medium * New upstream release diff -Nru safeeyes-2.1.3/debian/control safeeyes-2.1.5/debian/control --- safeeyes-2.1.3/debian/control 2021-09-04 19:00:04.000000000 +0100 +++ safeeyes-2.1.5/debian/control 2023-03-24 12:32:08.000000000 +0000 @@ -13,8 +13,8 @@ Package: safeeyes Architecture: all -Depends: ${misc:Depends}, ${python3:Depends}, python3-gi, python3-dbus, gir1.2-gtk-3.0 -Recommends: gir1.2-appindicator3-0.1, xprintidle +Depends: ${misc:Depends}, ${python3:Depends}, python3-gi, python3-dbus, gir1.2-gtk-3.0, gir1.2-notify-0.7 +Recommends: gir1.2-ayatanaappindicator3-0.1, xprintidle Description: Protect your eyes from eye strain using this continuous breaks 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 diff -Nru safeeyes-2.1.3/debian/patches/series safeeyes-2.1.5/debian/patches/series --- safeeyes-2.1.3/debian/patches/series 1970-01-01 01:00:00.000000000 +0100 +++ safeeyes-2.1.5/debian/patches/series 2023-03-24 12:32:08.000000000 +0000 @@ -0,0 +1 @@ +support-python311.patch diff -Nru safeeyes-2.1.3/debian/patches/support-python311.patch safeeyes-2.1.5/debian/patches/support-python311.patch --- safeeyes-2.1.3/debian/patches/support-python311.patch 1970-01-01 01:00:00.000000000 +0100 +++ safeeyes-2.1.5/debian/patches/support-python311.patch 2023-03-24 12:32:08.000000000 +0000 @@ -0,0 +1,11 @@ +--- a/safeeyes/utility.py ++++ b/safeeyes/utility.py +@@ -666,7 +666,7 @@ + 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: ++ if len(inspect.getfullargspec(getattr(module, method_name)).args) == no_of_args: + return True + return False + diff -Nru safeeyes-2.1.3/.github/FUNDING.yml safeeyes-2.1.5/.github/FUNDING.yml --- safeeyes-2.1.3/.github/FUNDING.yml 1970-01-01 01:00:00.000000000 +0100 +++ safeeyes-2.1.5/.github/FUNDING.yml 2023-03-09 12:28:03.000000000 +0000 @@ -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' diff -Nru safeeyes-2.1.3/.github/ISSUE_TEMPLATE/bug_report.md safeeyes-2.1.5/.github/ISSUE_TEMPLATE/bug_report.md --- safeeyes-2.1.3/.github/ISSUE_TEMPLATE/bug_report.md 1970-01-01 01:00:00.000000000 +0100 +++ safeeyes-2.1.5/.github/ISSUE_TEMPLATE/bug_report.md 2023-03-09 12:28:03.000000000 +0000 @@ -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. diff -Nru safeeyes-2.1.3/.github/ISSUE_TEMPLATE/feature_request.md safeeyes-2.1.5/.github/ISSUE_TEMPLATE/feature_request.md --- safeeyes-2.1.3/.github/ISSUE_TEMPLATE/feature_request.md 1970-01-01 01:00:00.000000000 +0100 +++ safeeyes-2.1.5/.github/ISSUE_TEMPLATE/feature_request.md 2023-03-09 12:28:03.000000000 +0000 @@ -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. diff -Nru safeeyes-2.1.3/.github/ISSUE_TEMPLATE/plugin-request.md safeeyes-2.1.5/.github/ISSUE_TEMPLATE/plugin-request.md --- safeeyes-2.1.3/.github/ISSUE_TEMPLATE/plugin-request.md 1970-01-01 01:00:00.000000000 +0100 +++ safeeyes-2.1.5/.github/ISSUE_TEMPLATE/plugin-request.md 2023-03-09 12:28:03.000000000 +0000 @@ -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. diff -Nru safeeyes-2.1.3/.github/workflows/release.yml safeeyes-2.1.5/.github/workflows/release.yml --- safeeyes-2.1.3/.github/workflows/release.yml 1970-01-01 01:00:00.000000000 +0100 +++ safeeyes-2.1.5/.github/workflows/release.yml 2023-03-09 12:28:03.000000000 +0000 @@ -0,0 +1,67 @@ +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 + + - 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 diff -Nru safeeyes-2.1.3/.gitignore safeeyes-2.1.5/.gitignore --- safeeyes-2.1.3/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ safeeyes-2.1.5/.gitignore 2023-03-09 12:28:03.000000000 +0000 @@ -0,0 +1,116 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Glade temporary files +*.glade~ + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover +.hypothesis/ + +# Translations +*.mo +# *.pot + +# Django stuff: +*.log +local_settings.py + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# dotenv +.env + +# virtualenv +.venv +venv/ +ENV/ + +# Spyder project settings +.spyderproject + +# Rope project settings +.ropeproject + +# Visual Studio Code settings +.vscode/ + +safeeyes/config/locale/*/LC_MESSAGES/safeeyes.po~ + +node_modules/ + +# PyCharm +.idea + +# Debian Build +.pybuild/ +debian/safeeyes +debian/.debhelper +debian/files +debian/safeeyes.substvars +debian/safeeyes.prerm.debhelper +debian/safeeyes.postinst.debhelper \ No newline at end of file diff -Nru safeeyes-2.1.3/LICENSE safeeyes-2.1.5/LICENSE --- safeeyes-2.1.3/LICENSE 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/LICENSE 2023-03-09 12:28:03.000000000 +0000 @@ -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 @@ 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 @@ 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>. diff -Nru safeeyes-2.1.3/README.md safeeyes-2.1.5/README.md --- safeeyes-2.1.3/README.md 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/README.md 2023-03-09 12:28:03.000000000 +0000 @@ -10,7 +10,7 @@ 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 arguments @@ -60,14 +60,6 @@ ### Debian ```bash -sudo apt-get install gir1.2-appindicator3-0.1 gir1.2-notify-0.7 python3-psutil python3-xlib xprintidle python3-pip python3-babel python3-croniter -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 ``` @@ -86,11 +78,17 @@ sudo zypper install safeeyes ``` +### Alpine Linux + +```bash +sudo apk add 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 diff -Nru safeeyes-2.1.3/safeeyes/config/locale/ar/LC_MESSAGES/safeeyes.po safeeyes-2.1.5/safeeyes/config/locale/ar/LC_MESSAGES/safeeyes.po --- safeeyes-2.1.3/safeeyes/config/locale/ar/LC_MESSAGES/safeeyes.po 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/config/locale/ar/LC_MESSAGES/safeeyes.po 2023-03-09 12:28:03.000000000 +0000 @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-12-23 11:29+0000\n" -"Last-Translator: Muhammad Hegab <mhe...@hotmail.com>\n" +"PO-Revision-Date: 2022-05-24 17:15+0000\n" +"Last-Translator: Mohamed Omran <mohamedgom...@gmail.com>\n" "Language-Team: Arabic <https://hosted.weblate.org/projects/safe-eyes/" "translations/ar/>\n" "Language: ar\n" @@ -16,7 +16,7 @@ "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 4.4.1-dev\n" +"X-Generator: Weblate 4.13-dev\n" # Short break msgid "Tightly close your eyes" @@ -72,7 +72,7 @@ # Commandline arg description msgid "show the settings dialog" -msgstr "أظهر مربع الإعدادات" +msgstr "إظهار لوحة اﻹعدادات" # Commandline arg description msgid "start safeeyes in debug mode" @@ -84,7 +84,7 @@ # Status message msgid "Safe Eyes is not running" -msgstr "SafeEyes غير مشغل" +msgstr "SafeEyes لا يعمل" # RPC not enabled message msgid "" @@ -137,7 +137,7 @@ # Settings dialog msgid "Show breaks in random order" -msgstr "" +msgstr "اظهِّر الاستراحات بترتيب عشوائي" # Settings dialog msgid "Strict break (No way to skip breaks)" @@ -274,7 +274,7 @@ # Settings dialog msgid "Invalid cron expression '%s'" -msgstr "" +msgstr "تعبير الوظيفة المجدولة غير صحيح '%s'" # Settings dialog msgid "Please add the resource %(resource)s to %(config_resource)s directory" @@ -290,7 +290,7 @@ # Settings dialog msgid "Discard" -msgstr "اترك" +msgstr "تجاهل" # Settings dialog msgid "Save" @@ -298,7 +298,7 @@ # plugin/audiblealert msgid "Audible Alert" -msgstr "تنبيه مسموع" +msgstr "إنذار مسموع" # plugin/audiblealert msgid "Play audible alert before and after breaks" @@ -346,7 +346,7 @@ # plugin/healthstats msgid "Statistics reset interval (cron expression)" -msgstr "" +msgstr "فاصل إعادة ضبط الإحصائيات (تعبير وظيفة مجدولة)" # plugin/notification msgid "Notification" @@ -366,55 +366,55 @@ # 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" @@ -443,68 +443,68 @@ #: 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)" diff -Nru safeeyes-2.1.3/safeeyes/config/locale/ca/LC_MESSAGES/safeeyes.po safeeyes-2.1.5/safeeyes/config/locale/ca/LC_MESSAGES/safeeyes.po --- safeeyes-2.1.3/safeeyes/config/locale/ca/LC_MESSAGES/safeeyes.po 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/config/locale/ca/LC_MESSAGES/safeeyes.po 2023-03-09 12:28:03.000000000 +0000 @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-02-01 11:34+0000\n" -"Last-Translator: Joan Montané <j...@montane.cat>\n" +"PO-Revision-Date: 2022-08-08 21:25+0000\n" +"Last-Translator: calbasi <j...@calbasi.net>\n" "Language-Team: Catalan <https://hosted.weblate.org/projects/safe-eyes/" "translations/ca/>\n" "Language: ca\n" @@ -15,7 +15,7 @@ "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,31 +55,31 @@ # 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" @@ -139,11 +139,11 @@ # Settings dialog msgid "Show breaks in random order" -msgstr "" +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" @@ -167,99 +167,99 @@ # 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" @@ -283,15 +283,15 @@ # 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" @@ -299,7 +299,7 @@ # plugin/audiblealert msgid "Audible Alert" -msgstr "" +msgstr "Alerta audible" # plugin/audiblealert msgid "Play audible alert before and after breaks" @@ -315,7 +315,7 @@ # plugin/donotdisturb msgid "Do Not Disturb" -msgstr "" +msgstr "No molesteu" # plugin/donotdisturb msgid "Skip break if the active window is in fullscreen mode" @@ -339,7 +339,7 @@ # plugin/healthstats msgid "Health Statistics" -msgstr "" +msgstr "Estadístiques de salut" # plugin/healthstats msgid "Show statistics based on how you use Safe Eyes" diff -Nru safeeyes-2.1.3/safeeyes/config/locale/cs/LC_MESSAGES/safeeyes.po safeeyes-2.1.5/safeeyes/config/locale/cs/LC_MESSAGES/safeeyes.po --- safeeyes-2.1.3/safeeyes/config/locale/cs/LC_MESSAGES/safeeyes.po 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/config/locale/cs/LC_MESSAGES/safeeyes.po 2023-03-09 12:28:03.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-11-26 16:05+0000\n" +"PO-Revision-Date: 2022-03-06 20:59+0000\n" "Last-Translator: Pavel Borecki <pavel.bore...@gmail.com>\n" "Language-Team: Czech <https://hosted.weblate.org/projects/safe-eyes/" "translations/cs/>\n" @@ -15,7 +15,7 @@ "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.10-dev\n" +"X-Generator: Weblate 4.12-dev\n" # Short break msgid "Tightly close your eyes" @@ -140,7 +140,7 @@ # Settings dialog msgid "Show breaks in random order" -msgstr "" +msgstr "Zobrazovat přestávky v náhodném pořadí" # Settings dialog msgid "Strict break (No way to skip breaks)" @@ -276,7 +276,7 @@ # Settings dialog msgid "Invalid cron expression '%s'" -msgstr "" +msgstr "Neplatný výraz pro plánovač (cron) „%s“" # Settings dialog msgid "Please add the resource %(resource)s to %(config_resource)s directory" @@ -349,7 +349,7 @@ # plugin/healthstats msgid "Statistics reset interval (cron expression)" -msgstr "" +msgstr "Interval vynulování statistik (výraz pro plánovač cron)" # plugin/notification msgid "Notification" diff -Nru safeeyes-2.1.3/safeeyes/config/locale/en_US/LC_MESSAGES/safeeyes.po safeeyes-2.1.5/safeeyes/config/locale/en_US/LC_MESSAGES/safeeyes.po --- safeeyes-2.1.3/safeeyes/config/locale/en_US/LC_MESSAGES/safeeyes.po 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/config/locale/en_US/LC_MESSAGES/safeeyes.po 2023-03-09 12:28:03.000000000 +0000 @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: 2017-09-17 07:59-0400\n" -"PO-Revision-Date: 2020-06-17 18:41+0000\n" -"Last-Translator: Aanand Kainth <akainth...@gmail.com>\n" +"PO-Revision-Date: 2021-07-04 07:32+0000\n" +"Last-Translator: J. Lavoie <j.lav...@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 @@ "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.1.1-dev\n" +"X-Generator: Weblate 4.8-dev\n" "Generated-By: pygettext.py 1.5\n" # Short break @@ -277,7 +277,7 @@ # Settings dialog msgid "Invalid cron expression '%s'" -msgstr "" +msgstr "Invalid cron expression “%s”" # Settings dialog msgid "Please add the resource %(resource)s to %(config_resource)s directory" diff -Nru safeeyes-2.1.3/safeeyes/config/locale/eo/LC_MESSAGES/safeeyes.po safeeyes-2.1.5/safeeyes/config/locale/eo/LC_MESSAGES/safeeyes.po --- safeeyes-2.1.3/safeeyes/config/locale/eo/LC_MESSAGES/safeeyes.po 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/config/locale/eo/LC_MESSAGES/safeeyes.po 2023-03-09 12:28:03.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: 2017-09-17 07:59-0400\n" -"PO-Revision-Date: 2021-02-10 15:50+0000\n" +"PO-Revision-Date: 2021-05-21 15:32+0000\n" "Last-Translator: Jorge Maldonado Ventura <jorgesu...@freakspot.net>\n" "Language-Team: Esperanto <https://hosted.weblate.org/projects/safe-eyes/" "translations/eo/>\n" @@ -15,7 +15,7 @@ "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.5-dev\n" +"X-Generator: Weblate 4.7-dev\n" "Generated-By: pygettext.py 1.5\n" # Short break @@ -44,7 +44,7 @@ # Short break msgid "Have some water" -msgstr "Trinku kelke da akvon" +msgstr "Trinku kelke da akvo" # Long break msgid "Walk for a while" diff -Nru safeeyes-2.1.3/safeeyes/config/locale/eu/LC_MESSAGES/safeeyes.po safeeyes-2.1.5/safeeyes/config/locale/eu/LC_MESSAGES/safeeyes.po --- safeeyes-2.1.3/safeeyes/config/locale/eu/LC_MESSAGES/safeeyes.po 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/config/locale/eu/LC_MESSAGES/safeeyes.po 2023-03-09 12:28:03.000000000 +0000 @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-04-15 12:26+0000\n" -"Last-Translator: Porrumentzio <porrument...@riseup.net>\n" +"PO-Revision-Date: 2022-09-28 22:17+0000\n" +"Last-Translator: Gontzal Manuel Pujana Onaindia <thadahden...@gmail.com>\n" "Language-Team: Basque <https://hosted.weblate.org/projects/safe-eyes/" "translations/eu/>\n" "Language: eu\n" @@ -15,7 +15,7 @@ "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" +"X-Generator: Weblate 4.14.1\n" # Short break msgid "Tightly close your eyes" @@ -400,11 +400,10 @@ msgstr "Safe Eyes pausatzeko gutxieneko denbora inaktiboa (segundotan)" # plugin/smartpause -#, fuzzy msgid "Interpret idle time equivalent to upcoming break duration as a break" msgstr "" -"Interpretatu denbora inaktiboa hurrengo atsedenaldiaren iraupenaren " -"baliokide, atsedenaldi gisa" +"Interpretatu hurrengo atsedenaldiaren iraupenaren baliokidea den denbora " +"inaktiboa atsedenaldi gisa" # plugin/smartpause msgid "Postpone the next break until the system becomes idle" @@ -449,19 +448,19 @@ #: plugins/trayicon msgid "For %d Hour" msgid_plural "For %d Hours" -msgstr[0] "Ordubeterako" +msgstr[0] "Ordu %derako" msgstr[1] "%d ordurako" #: plugins/trayicon msgid "For %d Minute" msgid_plural "For %d Minutes" -msgstr[0] "Minutu baterako" +msgstr[0] "Minutu %derako" msgstr[1] "%d minuturako" #: plugins/trayicon msgid "For %d Second" msgid_plural "For %d Seconds" -msgstr[0] "Segundo baterako" +msgstr[0] "Segundo %derako" msgstr[1] "%d segundorako" #: plugins/trayicon diff -Nru safeeyes-2.1.3/safeeyes/config/locale/fa/LC_MESSAGES/safeeyes.po safeeyes-2.1.5/safeeyes/config/locale/fa/LC_MESSAGES/safeeyes.po --- safeeyes-2.1.3/safeeyes/config/locale/fa/LC_MESSAGES/safeeyes.po 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/config/locale/fa/LC_MESSAGES/safeeyes.po 2023-03-09 12:28:03.000000000 +0000 @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-10-23 17:20+0000\n" -"Last-Translator: mohammadbagher fakouri <mbfakou...@gmail.com>\n" +"PO-Revision-Date: 2022-07-07 10:18+0000\n" +"Last-Translator: Danial Behzadi <dani.be...@ubuntu.com>\n" "Language-Team: Persian <https://hosted.weblate.org/projects/safe-eyes/" "translations/fa/>\n" "Language: fa\n" @@ -15,7 +15,7 @@ "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.1\n" +"X-Generator: Weblate 4.13.1-dev\n" # Short break msgid "Tightly close your eyes" @@ -27,11 +27,11 @@ # 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,39 +59,39 @@ # 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 "وضعیت اجرای safeeyes را چاپ کرده و از آن خارج شوید" +msgstr "چاپ وضعیت نمونهٔ محافظ چشم در جال اجرا و خروج" # Status message msgid "Safe Eyes is not running" -msgstr "محافظ چشم در حال اجرا نیست" +msgstr "محافظ چشم اجرا نمیشود" # 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" @@ -102,19 +102,21 @@ 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 "شرح" +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)" @@ -122,31 +124,31 @@ # 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 "Postponement duration (in minutes)" -msgstr "به تعویق انداختن مدت زمان (در چند دقیقه)" +msgstr "زمان تعویق (به دقیقه)" # Settings dialog msgid "Show breaks in random order" -msgstr "" +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" @@ -154,36 +156,35 @@ # Settings dialog msgid "Use RPC server to receive runtime commands" -msgstr "برای دریافت دستورات زمان اجرا از سرور RPC استفاده کنید" +msgstr "استفاده از کارساز RPC برای دریافت دستورات زمان اجرا" # Settings dialog msgid "Without the RPC server, command-line commands may not work" -msgstr "بدون سرور RPC ، دستورات خط فرمان ممکن است کار نکنند" +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" @@ -191,7 +192,7 @@ # Settings dialog msgid "Are you sure you want to delete this break?" -msgstr "آیا مطمئن هستید که می خواهید این وقفه را حذف کنید؟" +msgstr "مطمئنید که میخواهید این استراحت را حذف کنید؟" # Settings dialog msgid "You can't undo this action." @@ -203,15 +204,15 @@ # Settings dialog msgid "Breaks" -msgstr "می شکند" +msgstr "استراحتها" # Settings dialog msgid "Plugins" -msgstr "پلاگین ها" +msgstr "افزایهها" # Settings dialog msgid "Type" -msgstr "نوع" +msgstr "گونه" # Settings dialog msgid "Short" @@ -227,59 +228,59 @@ # 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 "پلاگین پشتیبانی نمی کند %s محیط دسک تاپ" +msgstr "افزایه از محیط میزکار %s پشتیبانی نمیکند" # Settings dialog msgid "Please install the Python module '%s'" -msgstr "لطفاً ماژول پایتون را نصب کنید '%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 "" +msgstr "عبارت کرون نامعتبر «%s»" # Settings dialog msgid "Please add the resource %(resource)s to %(config_resource)s directory" -msgstr "لطفا منبع را اضافه کنید %(resource) در %(config_resource)پوشه ها" +msgstr "لطفا منبع %(resource)s را به شاخهٔ %(config_resource)s بیفزایید" # Settings dialog msgid "New Break" @@ -303,15 +304,15 @@ # 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" @@ -323,15 +324,15 @@ # 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" @@ -339,31 +340,31 @@ # plugin/healthstats msgid "Health Statistics" -msgstr "آمار بهداشت" +msgstr "آمار سلامتی" # plugin/healthstats msgid "Show statistics based on how you use Safe Eyes" -msgstr "آماری را براساس نحوه استفاده از Safe Eyes نشان دهید" +msgstr "نمایش آماری بر پایهٔ چگونگی استفادهتان از محافظ چشم" # plugin/healthstats msgid "Statistics reset interval (cron expression)" -msgstr "" +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 "آماده برای یک استراحت کوتاه در %s ثانیه" +msgstr "آماده برای استراحتی کوتاه در %s ثانیه" # plugin/notification msgid "Ready for a long break in %s seconds" -msgstr "آماده برای یک استراحت طولانی در %s ثانیه" +msgstr "آماده برای استراحتی طولانی در %s ثانیه" # plugin/screensaver msgid "Screensaver" @@ -371,7 +372,7 @@ # plugin/screensaver msgid "Lock the screen after long breaks by starting screensaver" -msgstr "با اسکرین سیور ، صفحه را پس از وقفه های طولانی قفل کن" +msgstr "قفل صفحه پس از استراحتهای طولانی با آغاز محافظ صفحه" # plugin/screensaver msgid "Custom screensaver command" @@ -379,7 +380,7 @@ # plugin/screensaver msgid "Minimum seconds to skip without screensaver" -msgstr "حداقل ثانیه برای پرش بدون محافظ صفحه نمایش" +msgstr "کمینهٔ ثانیهها برای پرش بدون محافظ صفحه" # plugin/screensaver msgid "Lock screen" @@ -391,73 +392,73 @@ # plugin/smartpause msgid "Pause Safe Eyes if the system is idle" -msgstr "اگر سیستم بیکار است ، Safe Eyes را مکث کنید" +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 "Tray Icon" +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 "غیر فعال سازی Safe Eyes" +msgstr "از کار انداختن محافظ چشم" #: 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 "به کار انداختن محافظ چشم" #: plugins/trayicon msgid "For %d Hour" msgid_plural "For %d Hours" -msgstr[0] "به مدت %d ساعت ها" -msgstr[1] "به مدت %d ساعت" +msgstr[0] "برای ۱ ساعت" +msgstr[1] "برای %Id ساعت" #: plugins/trayicon msgid "For %d Minute" msgid_plural "For %d Minutes" -msgstr[0] "برای %d دقیقه" -msgstr[1] "برای %d دقیقه ها" +msgstr[0] "برای ۱ دقیقه" +msgstr[1] "برای %Id دقیقه" #: plugins/trayicon msgid "For %d Second" msgid_plural "For %d Seconds" -msgstr[0] "برای %d ثانیه" -msgstr[1] "برای %d ثانیه ها" +msgstr[0] "برای ۱ ثانیه" +msgstr[1] "برای %dI ثانیه" #: plugins/trayicon msgid "Next break at %s" @@ -465,7 +466,7 @@ #: plugins/trayicon msgid "No Breaks Available" -msgstr "هیچ وقفه ای موجود نیست" +msgstr "هیچ استراحتی موجود نیست" #: plugins/trayicon msgid "Settings" @@ -473,23 +474,23 @@ #: 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" diff -Nru safeeyes-2.1.3/safeeyes/config/locale/fr/LC_MESSAGES/safeeyes.po safeeyes-2.1.5/safeeyes/config/locale/fr/LC_MESSAGES/safeeyes.po --- safeeyes-2.1.3/safeeyes/config/locale/fr/LC_MESSAGES/safeeyes.po 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/config/locale/fr/LC_MESSAGES/safeeyes.po 2023-03-09 12:28:03.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-10 15:50+0000\n" +"PO-Revision-Date: 2022-01-11 15:55+0000\n" "Last-Translator: AO Localisation Lab <a...@localizationlab.org>\n" "Language-Team: French <https://hosted.weblate.org/projects/safe-eyes/" "translations/fr/>\n" @@ -15,7 +15,7 @@ "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.5-dev\n" +"X-Generator: Weblate 4.10.1\n" # Short break msgid "Tightly close your eyes" @@ -59,7 +59,7 @@ # Commandline arg description msgid "disable the currently running safeeyes instance" -msgstr "désactiver l’instance de safeyes en cours" +msgstr "désactiver l’instance de safeeyes en cours" # Commandline arg description msgid "enable the currently running safeeyes instance" @@ -67,7 +67,7 @@ # Commandline arg description msgid "quit the running safeeyes instance and exit" -msgstr "fermer l’instance de safeyes en cours et sortir" +msgstr "fermer l’instance de safeyes en cours et fermer" # Commandline arg description msgid "show the settings dialog" @@ -79,7 +79,7 @@ # Commandline arg description msgid "print the status of running safeeyes instance and exit" -msgstr "imprimer l’état de l’instance safeeyes en cours et sortir" +msgstr "imprimer l’état de l’instance safeeyes en cours et fermer" # Status message msgid "Safe Eyes is not running" @@ -103,7 +103,7 @@ "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" @@ -203,7 +203,7 @@ # 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" @@ -235,11 +235,11 @@ # 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" @@ -352,7 +352,7 @@ # 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 d’après votre utilisation de Safe Eyes" # plugin/healthstats msgid "Statistics reset interval (cron expression)" @@ -376,7 +376,7 @@ # plugin/screensaver msgid "Screensaver" -msgstr "Économiseur d'écran" +msgstr "Économiseur d’écran" # plugin/screensaver msgid "Lock the screen after long breaks by starting screensaver" @@ -407,7 +407,7 @@ # 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 d’inactivité minimale pour mettre Safe Eyes en pause (en secondes)" # plugin/smartpause msgid "Interpret idle time equivalent to upcoming break duration as a break" @@ -479,7 +479,7 @@ #: plugins/trayicon msgid "No Breaks Available" -msgstr "Aucune pause n'est prévue" +msgstr "Aucune pause n'est proposée" #: plugins/trayicon msgid "Settings" diff -Nru safeeyes-2.1.3/safeeyes/config/locale/he/LC_MESSAGES/safeeyes.po safeeyes-2.1.5/safeeyes/config/locale/he/LC_MESSAGES/safeeyes.po --- safeeyes-2.1.3/safeeyes/config/locale/he/LC_MESSAGES/safeeyes.po 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/config/locale/he/LC_MESSAGES/safeeyes.po 2023-03-09 12:28:03.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-10-13 15:27+0000\n" +"PO-Revision-Date: 2021-05-23 09:32+0000\n" "Last-Translator: Yaron Shahrabani <sh.ya...@gmail.com>\n" "Language-Team: Hebrew <https://hosted.weblate.org/projects/safe-eyes/" "translations/he/>\n" @@ -15,7 +15,7 @@ "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" +"X-Generator: Weblate 4.7-dev\n" # Short break msgid "Tightly close your eyes" @@ -138,7 +138,7 @@ # Settings dialog msgid "Show breaks in random order" -msgstr "" +msgstr "להציג הפסקות בסדר אקראי" # Settings dialog msgid "Strict break (No way to skip breaks)" @@ -274,7 +274,7 @@ # Settings dialog msgid "Invalid cron expression '%s'" -msgstr "" +msgstr "ביטוי cron שגוי ‚%s’" # Settings dialog msgid "Please add the resource %(resource)s to %(config_resource)s directory" @@ -346,7 +346,7 @@ # plugin/healthstats msgid "Statistics reset interval (cron expression)" -msgstr "" +msgstr "הפרשים בין איפוסי סטטיסטיקה (ביטוי cron)" # plugin/notification msgid "Notification" diff -Nru safeeyes-2.1.3/safeeyes/config/locale/it/LC_MESSAGES/safeeyes.po safeeyes-2.1.5/safeeyes/config/locale/it/LC_MESSAGES/safeeyes.po --- safeeyes-2.1.3/safeeyes/config/locale/it/LC_MESSAGES/safeeyes.po 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/config/locale/it/LC_MESSAGES/safeeyes.po 2023-03-09 12:28:03.000000000 +0000 @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-24 07:50+0000\n" -"Last-Translator: bortox <broto...@zoho.com>\n" +"PO-Revision-Date: 2022-01-16 12:55+0000\n" +"Last-Translator: albanobattistella <albano_battiste...@hotmail.com>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/safe-eyes/" "translations/it/>\n" "Language: it\n" @@ -15,7 +15,7 @@ "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.5\n" +"X-Generator: Weblate 4.10.1\n" # Short break msgid "Tightly close your eyes" @@ -90,8 +90,8 @@ "Safe Eyes is running without an RPC server. Turn it on to use command-line " "arguments." msgstr "" -"Safe Eyes funziona senza un server RPC. Attivalo per utilizzare gli " -"argomenti della riga di comando." +"Safe Eyes è in esecuzione senza un server RPC. Apri Safe Eyes per utilizzare " +"la linea di comando." # About dialog msgid "Close" @@ -388,7 +388,7 @@ # plugin/screensaver msgid "Lock screen" -msgstr "Schermo bloccato" +msgstr "Blocca schermo" # plugin/smartpause msgid "Smart Pause" diff -Nru safeeyes-2.1.3/safeeyes/config/locale/kn/LC_MESSAGES/safeeyes.po safeeyes-2.1.5/safeeyes/config/locale/kn/LC_MESSAGES/safeeyes.po --- safeeyes-2.1.3/safeeyes/config/locale/kn/LC_MESSAGES/safeeyes.po 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/config/locale/kn/LC_MESSAGES/safeeyes.po 2023-03-09 12:28:03.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-12-23 11:29+0000\n" +"PO-Revision-Date: 2021-07-30 17:35+0000\n" "Last-Translator: Yogesh <yog...@karnatakaeducation.org.in>\n" "Language-Team: Kannada <https://hosted.weblate.org/projects/safe-eyes/" "translations/kn/>\n" @@ -15,11 +15,11 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.4.1-dev\n" +"X-Generator: Weblate 4.7.2-dev\n" # Short break msgid "Tightly close your eyes" -msgstr "" +msgstr "ಕಣ್ಣನ್ನು ಗಟ್ಟಿಯಾಗಿ ಮುಚ್ಚಿರಿ" # Short break msgid "Roll your eyes a few times to each side" @@ -35,7 +35,7 @@ # Short break msgid "Blink your eyes" -msgstr "" +msgstr "ಕಣ್ಣನ್ನು ಮಿಟುಕಿಸಿ" # Short break msgid "Focus on a point in the far distance" @@ -43,35 +43,35 @@ # 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" -msgstr "" +msgstr "ಇದರ ಬಗ್ಗೆ ತೋರಿಸು" # Commandline arg description msgid "disable the currently running safeeyes instance" -msgstr "" +msgstr "ನೆಡುಯುತ್ತಿರುವ ಸೇಫ್ಐಸ್ಅನ್ನು ನಿಶ್ಕ್ರಿಯ ಗೊಳಿಸು" # Commandline arg description msgid "enable the currently running safeeyes instance" -msgstr "" +msgstr "ನೆಡುಯುತ್ತಿರುವ ಸೇಫ್ಐಸ್ಅನ್ನು ಸಕ್ರಿಯ ಗೊಳಿಸು" # Commandline arg description msgid "quit the running safeeyes instance and exit" -msgstr "" +msgstr "ನೆಡುಯುತ್ತಿರುವ ಸೇಫ್ಐಸ್ಅನ್ನು ತ್ಯಜಿಸು" # Commandline arg description msgid "show the settings dialog" -msgstr "" +msgstr "ಸಿದ್ಧತೆಗಳನ್ನು ತೋರಿಸು" # Commandline arg description msgid "start safeeyes in debug mode" @@ -83,7 +83,7 @@ # Status message msgid "Safe Eyes is not running" -msgstr "" +msgstr "ಸೇಫ್ಐಸ್ ನೆಡುಯುತ್ತಿಲ್ಲ" # RPC not enabled message msgid "" @@ -95,7 +95,7 @@ # 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 diff -Nru safeeyes-2.1.3/safeeyes/config/locale/nb/LC_MESSAGES/safeeyes.po safeeyes-2.1.5/safeeyes/config/locale/nb/LC_MESSAGES/safeeyes.po --- safeeyes-2.1.3/safeeyes/config/locale/nb/LC_MESSAGES/safeeyes.po 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/config/locale/nb/LC_MESSAGES/safeeyes.po 2023-03-09 12:28:03.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-02-10 15:50+0000\n" +"PO-Revision-Date: 2021-07-30 17:35+0000\n" "Last-Translator: Allan Nordhøy <ep...@anotheragency.no>\n" "Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/" "safe-eyes/translations/nb_NO/>\n" @@ -15,7 +15,7 @@ "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.5-dev\n" +"X-Generator: Weblate 4.7.2-dev\n" # Short break msgid "Tightly close your eyes" @@ -163,7 +163,7 @@ # 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" diff -Nru safeeyes-2.1.3/safeeyes/config/locale/ru/LC_MESSAGES/safeeyes.po safeeyes-2.1.5/safeeyes/config/locale/ru/LC_MESSAGES/safeeyes.po --- safeeyes-2.1.3/safeeyes/config/locale/ru/LC_MESSAGES/safeeyes.po 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/config/locale/ru/LC_MESSAGES/safeeyes.po 2023-03-09 12:28:03.000000000 +0000 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-03-11 12:02+0000\n" +"PO-Revision-Date: 2022-12-21 05:47+0000\n" "Last-Translator: Dmitriy Q <krot...@mail.ru>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/safe-eyes/" "translations/ru/>\n" @@ -14,9 +14,9 @@ "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 4.5.2-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 4.15.1-dev\n" # Short break msgid "Tightly close your eyes" @@ -91,8 +91,8 @@ "Safe Eyes is running without an RPC server. Turn it on to use command-line " "arguments." msgstr "" -"Safe Eyes работает без RPC-сервера. Включите его чтобы использовать " -"аргументы командной строки." +"Программа Safe Eyes запущена без RPC сервера. Для использования аргументов " +"командной строки запустите RPC сервер." # About dialog msgid "Close" @@ -103,7 +103,9 @@ 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 "Описание" +msgstr "" +"Safe Eyes защищает ваши глаза от перенапряжения (астенопии), напоминая о " +"необходимости сделать перерыв во время долгих часов за ПК" # About dialog msgid "License" @@ -143,7 +145,7 @@ # Settings dialog msgid "Strict break (No way to skip breaks)" -msgstr "Обязательный перерыв (Невозможно отменить перерывы)" +msgstr "Обязательный перерыв (без возможности пропуска)" # Settings dialog msgid "Allow postponing breaks" @@ -155,11 +157,11 @@ # Settings dialog msgid "Use RPC server to receive runtime commands" -msgstr "Используйте RPC-сервер для получения запущенных команд" +msgstr "Использовать RPC-сервер для получения запущенных команд" # Settings dialog msgid "Without the RPC server, command-line commands may not work" -msgstr "Команды из командной строки могут не работать без RPC сервера" +msgstr "Без RPC сервера команды из командной строки могут не работать" # Settings dialog msgid "Long break interval must be a multiple of short break interval" @@ -232,7 +234,7 @@ # Settings dialog msgid "Please select an image" -msgstr "Пожалуйста выберите изображение" +msgstr "Пожалуйста, выберите изображение" # Settings dialog msgid "Duration" @@ -268,11 +270,11 @@ # 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'" @@ -280,7 +282,7 @@ # 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" @@ -320,7 +322,7 @@ # plugin/donotdisturb msgid "Skip break if the active window is in fullscreen mode" -msgstr "Пропустить перерыв, если активое окно в полнооконном режиме" +msgstr "Пропустить перерыв, если активное окно в полноэкранном режиме" # plugin/donotdisturb msgid "Do not interrupt these windows anytime" @@ -336,7 +338,7 @@ # plugin/donotdisturb msgid "Do not disturb while on battery" -msgstr "Не прерывать на автономном питании" +msgstr "Не беспокоить при работе от батареи" # plugin/healthstats msgid "Health Statistics" @@ -344,7 +346,7 @@ # plugin/healthstats msgid "Show statistics based on how you use Safe Eyes" -msgstr "Показывать статистику основанную на использовании Safe Eyes" +msgstr "Показывать статистику, основанную на использовании Safe Eyes" # plugin/healthstats msgid "Statistics reset interval (cron expression)" @@ -401,8 +403,8 @@ # 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" @@ -422,7 +424,7 @@ #: plugins/trayicon msgid "Allow disabling Safe Eyes" -msgstr "Разрешить запрет Safe Eyes" +msgstr "Разрешить выключение Safe Eyes" #: plugins/trayicon msgid "About" diff -Nru safeeyes-2.1.3/safeeyes/config/locale/sk/LC_MESSAGES/safeeyes.po safeeyes-2.1.5/safeeyes/config/locale/sk/LC_MESSAGES/safeeyes.po --- safeeyes-2.1.3/safeeyes/config/locale/sk/LC_MESSAGES/safeeyes.po 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/config/locale/sk/LC_MESSAGES/safeeyes.po 2023-03-09 12:28:03.000000000 +0000 @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-02-17 23:26+0000\n" -"Last-Translator: Jose Riha <jose1...@gmail.com>\n" +"PO-Revision-Date: 2022-04-17 16:06+0000\n" +"Last-Translator: menom <men...@protonmail.com>\n" "Language-Team: Slovak <https://hosted.weblate.org/projects/safe-eyes/" "translations/sk/>\n" "Language: sk\n" @@ -15,7 +15,7 @@ "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 4.12-dev\n" # Short break msgid "Tightly close your eyes" @@ -90,6 +90,8 @@ "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" @@ -139,7 +141,7 @@ # Settings dialog msgid "Show breaks in random order" -msgstr "" +msgstr "Ukazovať prestávky v náhodnom poradí" # Settings dialog msgid "Strict break (No way to skip breaks)" @@ -155,11 +157,11 @@ # Settings dialog msgid "Use RPC server to receive runtime commands" -msgstr "" +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 "" +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" @@ -275,7 +277,7 @@ # Settings dialog msgid "Invalid cron expression '%s'" -msgstr "" +msgstr "Neplatný výraz pre cron '%s'" # Settings dialog msgid "Please add the resource %(resource)s to %(config_resource)s directory" @@ -347,7 +349,7 @@ # plugin/healthstats msgid "Statistics reset interval (cron expression)" -msgstr "" +msgstr "Interval vynulovania štatistík (výraz pre plánovač cron)" # plugin/notification msgid "Notification" @@ -403,7 +405,7 @@ # 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" @@ -419,7 +421,7 @@ #: plugins/trayicon msgid "Allow disabling Safe Eyes" -msgstr "" +msgstr "Povoliť vypnutie Safe Eyes" #: plugins/trayicon msgid "About" @@ -488,12 +490,12 @@ # 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" diff -Nru safeeyes-2.1.3/safeeyes/config/locale/sv/LC_MESSAGES/safeeyes.po safeeyes-2.1.5/safeeyes/config/locale/sv/LC_MESSAGES/safeeyes.po --- safeeyes-2.1.3/safeeyes/config/locale/sv/LC_MESSAGES/safeeyes.po 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/config/locale/sv/LC_MESSAGES/safeeyes.po 2023-03-09 12:28:03.000000000 +0000 @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-09-28 07:40+0000\n" -"Last-Translator: Mattias Münster <mattias...@gmail.com>\n" +"PO-Revision-Date: 2021-08-18 00:37+0000\n" +"Last-Translator: Luna Jernberg <droidbit...@gmail.com>\n" "Language-Team: Swedish <https://hosted.weblate.org/projects/safe-eyes/" "translations/sv/>\n" "Language: sv\n" @@ -15,7 +15,7 @@ "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" +"X-Generator: Weblate 4.8-dev\n" # Short break msgid "Tightly close your eyes" @@ -275,7 +275,7 @@ # Settings dialog msgid "Invalid cron expression '%s'" -msgstr "" +msgstr "Ogiltigt cron uttryck '%s'" # Settings dialog msgid "Please add the resource %(resource)s to %(config_resource)s directory" @@ -347,7 +347,7 @@ # plugin/healthstats msgid "Statistics reset interval (cron expression)" -msgstr "" +msgstr "Återställningsintervall för statistik (cron-uttryck)" # plugin/notification msgid "Notification" diff -Nru safeeyes-2.1.3/safeeyes/config/locale/uk/LC_MESSAGES/safeeyes.po safeeyes-2.1.5/safeeyes/config/locale/uk/LC_MESSAGES/safeeyes.po --- safeeyes-2.1.3/safeeyes/config/locale/uk/LC_MESSAGES/safeeyes.po 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/config/locale/uk/LC_MESSAGES/safeeyes.po 2023-03-09 12:28:03.000000000 +0000 @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-01-27 09:32+0000\n" -"Last-Translator: Dmitriy Q <krot...@mail.ru>\n" +"PO-Revision-Date: 2021-08-18 00:37+0000\n" +"Last-Translator: Tymofii Lytvynenko <till.s...@gmail.com>\n" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/safe-eyes/" "translations/uk/>\n" "Language: uk\n" @@ -16,7 +16,7 @@ "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 4.5-dev\n" +"X-Generator: Weblate 4.8-dev\n" # Short break msgid "Tightly close your eyes" @@ -139,7 +139,7 @@ # Settings dialog msgid "Show breaks in random order" -msgstr "" +msgstr "Показувати перерви у випадковому порядку" # Settings dialog msgid "Strict break (No way to skip breaks)" @@ -196,7 +196,7 @@ # Settings dialog msgid "You can't undo this action." -msgstr "Цю дію неможливо відмінити." +msgstr "Цю дію неможливо скасувати." # Settings dialog msgid "Break" @@ -275,9 +275,8 @@ msgstr "Будь ласка, встановіть засіб вказівкового рядка «%s»" # Settings dialog -#, fuzzy msgid "Invalid cron expression '%s'" -msgstr "Неприпустимий вираз cron '% s'" +msgstr "Неприпустимий вираз cron '%s'" # Settings dialog msgid "Please add the resource %(resource)s to %(config_resource)s directory" @@ -351,7 +350,7 @@ # plugin/healthstats msgid "Statistics reset interval (cron expression)" -msgstr "" +msgstr "Інтервал скидання статистики (вираз cron)" # plugin/notification msgid "Notification" diff -Nru safeeyes-2.1.3/safeeyes/config/locale/vi/LC_MESSAGES/safeeyes.po safeeyes-2.1.5/safeeyes/config/locale/vi/LC_MESSAGES/safeeyes.po --- safeeyes-2.1.3/safeeyes/config/locale/vi/LC_MESSAGES/safeeyes.po 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/config/locale/vi/LC_MESSAGES/safeeyes.po 2023-03-09 12:28:03.000000000 +0000 @@ -6,8 +6,8 @@ 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 <hoangtk...@gmail.com>\n" +"PO-Revision-Date: 2022-11-26 23:54+0000\n" +"Last-Translator: Minh P <phandinhm...@protonmail.ch>\n" "Language-Team: Vietnamese <https://hosted.weblate.org/projects/safe-eyes/" "translations/vi/>\n" "Language: vi\n" @@ -15,7 +15,7 @@ "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,7 +79,7 @@ # 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" @@ -90,6 +90,8 @@ "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" @@ -139,7 +141,7 @@ # Settings dialog msgid "Show breaks in random order" -msgstr "" +msgstr "Hiển thị theo thứ tự ngẫu nhiên" # Settings dialog msgid "Strict break (No way to skip breaks)" @@ -151,15 +153,15 @@ # 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 "" +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 "" +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" @@ -167,11 +169,11 @@ # 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" @@ -187,15 +189,15 @@ # 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" @@ -239,7 +241,7 @@ # Settings dialog msgid "Time to wait" -msgstr "" +msgstr "Thời gian chờ" # Settings dialog msgid "Override" @@ -275,7 +277,7 @@ # Settings dialog msgid "Invalid cron expression '%s'" -msgstr "" +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" @@ -303,15 +305,15 @@ # 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" @@ -336,7 +338,7 @@ # 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" @@ -348,7 +350,7 @@ # plugin/healthstats msgid "Statistics reset interval (cron expression)" -msgstr "" +msgstr "Khoảng thời gian đặt lại thống kê (biểu thức cron)" # plugin/notification msgid "Notification" @@ -384,7 +386,7 @@ # plugin/screensaver msgid "Lock screen" -msgstr "" +msgstr "Khóa màn hình" # plugin/smartpause msgid "Smart Pause" @@ -406,7 +408,7 @@ # 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" @@ -422,7 +424,7 @@ #: plugins/trayicon msgid "Allow disabling Safe Eyes" -msgstr "" +msgstr "Cho phép tắt Safe Eyes" #: plugins/trayicon msgid "About" @@ -485,12 +487,12 @@ # 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" diff -Nru safeeyes-2.1.3/safeeyes/config/locale/zh_CN/LC_MESSAGES/safeeyes.po safeeyes-2.1.5/safeeyes/config/locale/zh_CN/LC_MESSAGES/safeeyes.po --- safeeyes-2.1.3/safeeyes/config/locale/zh_CN/LC_MESSAGES/safeeyes.po 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/config/locale/zh_CN/LC_MESSAGES/safeeyes.po 2023-03-09 12:28:03.000000000 +0000 @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2021-03-07 09:50+0000\n" -"Last-Translator: Eric <spice2w...@gmail.com>\n" +"PO-Revision-Date: 2021-10-10 05:05+0000\n" +"Last-Translator: Frank.wu <m...@wuzhiping.top>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "safe-eyes/translations/zh_Hans/>\n" "Language: zh_CN\n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.5.1\n" +"X-Generator: Weblate 4.9-dev\n" # Short break msgid "Tightly close your eyes" @@ -23,15 +23,15 @@ # 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" @@ -83,7 +83,7 @@ # Status message msgid "Safe Eyes is not running" -msgstr "Safe Eyes尚未运行" +msgstr "Safe Eyes 尚未运行" # RPC not enabled message msgid "" diff -Nru safeeyes-2.1.3/safeeyes/glade/about_dialog.glade safeeyes-2.1.5/safeeyes/glade/about_dialog.glade --- safeeyes-2.1.3/safeeyes/glade/about_dialog.glade 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/glade/about_dialog.glade 2023-03-09 12:28:03.000000000 +0000 @@ -33,7 +33,7 @@ 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/>.</property> +along with this program. If not, see <https://www.gnu.org/licenses/>.</property> </object> <object class="GtkWindow" id="window_about"> <property name="can_focus">False</property> @@ -71,7 +71,7 @@ <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.1.3</property> + <property name="label" translatable="yes">Safe Eyes 2.1.5</property> <property name="justify">center</property> <attributes> <attribute name="style" value="normal"/> @@ -135,14 +135,14 @@ </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> diff -Nru safeeyes-2.1.3/safeeyes/__main__.py safeeyes-2.1.5/safeeyes/__main__.py --- safeeyes-2.1.3/safeeyes/__main__.py 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/__main__.py 2023-03-09 12:28:03.000000000 +0000 @@ -90,9 +90,12 @@ """ 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() diff -Nru safeeyes-2.1.3/safeeyes/plugins/donotdisturb/plugin.py safeeyes-2.1.5/safeeyes/plugins/donotdisturb/plugin.py --- safeeyes-2.1.3/safeeyes/plugins/donotdisturb/plugin.py 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/plugins/donotdisturb/plugin.py 2023-03-09 12:28:03.000000000 +0000 @@ -80,16 +80,15 @@ # 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 @@ -97,6 +96,10 @@ 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. @@ -131,12 +134,16 @@ 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. diff -Nru safeeyes-2.1.3/safeeyes/plugins/smartpause/dependency_checker.py safeeyes-2.1.5/safeeyes/plugins/smartpause/dependency_checker.py --- safeeyes-2.1.3/safeeyes/plugins/smartpause/dependency_checker.py 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/plugins/smartpause/dependency_checker.py 2023-03-09 12:28:03.000000000 +0000 @@ -23,6 +23,8 @@ 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): diff -Nru safeeyes-2.1.3/safeeyes/plugins/smartpause/plugin.py safeeyes-2.1.5/safeeyes/plugins/smartpause/plugin.py --- safeeyes-2.1.3/safeeyes/plugins/smartpause/plugin.py 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/plugins/smartpause/plugin.py 2023-03-09 12:28:03.000000000 +0000 @@ -46,6 +46,48 @@ 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(): """ @@ -76,6 +118,8 @@ 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: @@ -116,6 +160,7 @@ 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'] @@ -129,6 +174,7 @@ 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(): @@ -199,6 +245,8 @@ 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() diff -Nru safeeyes-2.1.3/safeeyes/plugins/trayicon/plugin.py safeeyes-2.1.5/safeeyes/plugins/trayicon/plugin.py --- safeeyes-2.1.3/safeeyes/plugins/trayicon/plugin.py 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/plugins/trayicon/plugin.py 2023-03-09 12:28:03.000000000 +0000 @@ -19,8 +19,13 @@ import datetime 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 diff -Nru safeeyes-2.1.3/safeeyes/safeeyes.py safeeyes-2.1.5/safeeyes/safeeyes.py --- safeeyes-2.1.3/safeeyes/safeeyes.py 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/safeeyes.py 2023-03-09 12:28:03.000000000 +0000 @@ -40,7 +40,7 @@ gi.require_version('Gtk', '3.0') from gi.repository import Gtk -SAFE_EYES_VERSION = "2.1.3" +SAFE_EYES_VERSION = "2.1.5" class SafeEyes: diff -Nru safeeyes-2.1.3/safeeyes/utility.py safeeyes-2.1.5/safeeyes/utility.py --- safeeyes-2.1.3/safeeyes/utility.py 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/safeeyes/utility.py 2023-03-09 12:28:03.000000000 +0000 @@ -290,6 +290,9 @@ env = 'gnome' elif desktop_session.startswith('ubuntu'): env = 'unity' + elif current_desktop is not None: + if current_desktop.startswith('sway'): + env = 'sway' DESKTOP_ENVIRONMENT = env return env @@ -299,6 +302,13 @@ https://unix.stackexchange.com/a/325972/222290 """ global IS_WAYLAND + + # Easy method. Does not depend on loginctl + # https://stackoverflow.com/questions/45536141/how-i-can-find-out-if-a-linux-system-uses-wayland-or-x11/45537237#45537237 + if "WAYLAND_DISPLAY" in os.environ: + IS_WAYLAND = True + return IS_WAYLAND + try: session_id = subprocess.check_output(['loginctl']).split(b'\n')[1].split()[0] output = subprocess.check_output( diff -Nru safeeyes-2.1.3/setup.py safeeyes-2.1.5/setup.py --- safeeyes-2.1.3/setup.py 2021-09-04 18:58:52.000000000 +0100 +++ safeeyes-2.1.5/setup.py 2023-03-09 12:28:03.000000000 +0000 @@ -78,14 +78,14 @@ setuptools.setup( name="safeeyes", - version="2.1.3", + version="2.1.5", description="Protect your eyes from eye strain using this continuous breaks reminder.", long_description=long_description, long_description_content_type="text/markdown", author="Gobinath Loganathan", author_email="slgobin...@gmail.com", url="https://github.com/slgobinath/SafeEyes", - download_url="https://github.com/slgobinath/SafeEyes/archive/v2.1.3.tar.gz", + download_url="https://github.com/slgobinath/SafeEyes/archive/v2.1.5.tar.gz", packages=setuptools.find_packages(), package_data={'safeeyes': __package_data()}, data_files=__data_files(), diff -Nru safeeyes-2.1.3/validate_po.py safeeyes-2.1.5/validate_po.py --- safeeyes-2.1.3/validate_po.py 1970-01-01 01:00:00.000000000 +0100 +++ safeeyes-2.1.5/validate_po.py 2023-03-09 12:28:03.000000000 +0000 @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 +# Safe Eyes is a utility to remind you to take break frequently +# to protect your eyes from eye strain. + +# Copyright (C) 2021 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 os +import polib + +def validate_po(locale, path): + po = polib.pofile(path) + for entry in po: + if entry.msgstr and (entry.msgid.count("%") != entry.msgstr.count("%")): + print("Number of varialbes mismatched in " + locale) + print(entry.msgid + " -> " + entry.msgstr) + print() + +locales = os.listdir('safeeyes/config/locale') +for locale in locales: + path = os.path.join('safeeyes/config/locale', locale, "LC_MESSAGES/safeeyes.po") + if os.path.isfile(path): + validate_po(locale, path) \ No newline at end of file