Compare commits

..

No commits in common. "master" and "v2.0.9" have entirely different histories.

105 changed files with 2642 additions and 8642 deletions

View File

@ -1,32 +0,0 @@
---
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

@ -1,20 +0,0 @@
---
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

@ -1,20 +0,0 @@
---
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.

View File

@ -1,68 +0,0 @@
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: "${{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

View File

@ -1,31 +0,0 @@
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,16 +101,4 @@ ENV/
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
node_modules/

View File

@ -1,7 +1,7 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Copyright (C) 2007 Free Software Foundation, Inc. <http://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 <https://www.gnu.org/licenses/>.
along with this program. If not, see <http://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
<https://www.gnu.org/licenses/>.
<http://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
<https://www.gnu.org/philosophy/why-not-lgpl.html>.
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

121
README.md
View File

@ -1,18 +1,16 @@
# Safe Eyes
[![Release](https://img.shields.io/github/v/release/slgobinath/SafeEyes)](https://github.com/slgobinath/SafeEyes/releases)
[![GitHub version](https://badge.fury.io/gh/slgobinath%2FSafeEyes.svg)](https://badge.fury.io/gh/slgobinath%2FSafeEyes)
[![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.
Protect your eyes from eye strain using this simple and beautiful, yet extensible break reminder. A Free and Open Source Linux alternative to EyeLeo.
Visit the official site: https://slgobinath.github.io/SafeEyes/ for more details.
Visit the official site: http://slgobinath.github.io/SafeEyes/ for more details.
## Safe Eyes command-line arguments
## Safe Eyes command-line arguements
```text
usage: safeeyes [-h] [-a | -d | -e | -q | -s | -t] [--debug] [--version]
@ -40,7 +38,7 @@ Safe Eyes is available in Ubuntu PPA, Arch AUR, Gentoo and Python PyPI. You can
### Ubuntu, Linux Mint and other Ubuntu Derivatives
```bash
sudo add-apt-repository ppa:safeeyes-team/safeeyes
sudo add-apt-repository ppa:slgobinath/safeeyes
sudo apt update
sudo apt install safeeyes
```
@ -48,7 +46,7 @@ sudo apt install safeeyes
### Arch
```bash
yay -S safeeyes
yaourt -S safeeyes
```
### Gentoo
@ -59,6 +57,14 @@ 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
```
@ -66,40 +72,20 @@ sudo apt-get install safeeyes
### Fedora
```bash
sudo dnf install libappindicator-gtk3 python3-psutil cairo-devel python3-devel gobject-introspection-devel cairo-gobject-devel
sudo dnf install libappindicator-gtk3 python3-psutil
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 or gir1.2-ayatanaappindicator3-0.1
- gir1.2-appindicator3-0.1
- gir1.2-notify-0.7
- libappindicator-gtk3
- python3-psutil
- xprintidle (optional)
- wlrctl (wayland optional)
**To install Safe Eyes:**
@ -119,69 +105,28 @@ 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 a virtual environment
Some Linux systems like CentOS do not have matching dependencies available in their repository. In such systems, you can install and use Safe Eyes in a Python virtual environment.
1. Install the necessary dependencies for CentOS 7
```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/
python3 -m venv venv
source venv/bin/activate
pip3 install dbus-python safeeyes
```
3. Start Safe Eyes from the 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
## IDE Support
<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>

8
build.sh Executable file
View File

@ -0,0 +1,8 @@
#!/bin/bash
rm -rf build/ dist/ safeeyes.egg-info/ .eggs/
python3 setup.py sdist bdist_wheel
twine upload --repository pypitest dist/safeeyes*.tar.gz
clear >$(tty)
twine upload --repository pypitest dist/safeeyes*.whl

28
debian/changelog vendored
View File

@ -1,30 +1,4 @@
safeeyes (2.1.9) noble; urgency=medium
* Fix crash in smartpause
-- Gobinath Loganathan <slgobinath@gmail.com> Tue, 18 Jun 2024 20:25:00 -0400
safeeyes (2.1.8) noble; urgency=medium
* Support Python 3.12
-- Archisman Panigrahi <apandada1@gmail.com> Mon, 29 Apr 2024 02:09:48 -0400
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
safeeyes (2.0.9-1) xenial; urgency=high
* Redesigned settings dialog
* Add tray action buttons to the break screen

2
debian/compat vendored
View File

@ -1 +1 @@
10
9

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 (>= 10), dh-python, python3, python3-setuptools
Build-Depends: debhelper (>= 9), python3, python3-setuptools
Standards-Version: 3.9.6
X-Python3-Version: >= 3.5
X-Python3-Version: >= 3.4
Homepage: https://github.com/slgobinath/SafeEyes/
Package: safeeyes
Architecture: all
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
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
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.
.

View File

@ -1,17 +0,0 @@
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

@ -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:
class AboutDialog(object):
"""
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(_("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_decription').set_label(_('description'))
builder.get_object('lbl_license').set_label(_('License') + ':')
# Set the version at the runtime

View File

@ -23,7 +23,7 @@ import threading
import time
import gi
from safeeyes import utility
from safeeyes import Utility
from Xlib.display import Display
from Xlib.display import X
@ -32,16 +32,16 @@ from gi.repository import Gdk
from gi.repository import GLib
from gi.repository import Gtk
BREAK_SCREEN_GLADE = os.path.join(utility.BIN_DIRECTORY, "glade/break_screen.glade")
BREAK_SCREEN_GLADE = os.path.join(Utility.BIN_DIRECTORY, "glade/break_screen.glade")
class BreakScreen:
class BreakScreen(object):
"""
The fullscreen window which prevents users from using the computer.
This class reads the break_screen.glade and build the user interface.
"""
def __init__(self, context, on_skipped, on_postponed, style_sheet_path):
def __init__(self, context, on_skip, on_postpone, style_sheet_path):
self.context = context
self.count_labels = []
self.display = Display()
@ -50,8 +50,8 @@ class BreakScreen:
self.is_pretified = False
self.keycode_shortcut_postpone = 65
self.keycode_shortcut_skip = 9
self.on_postponed = on_postponed
self.on_skipped = on_skipped
self.on_postpone = on_postpone
self.on_skip = on_skip
self.shortcut_disable_time = 2
self.strict_break = False
self.windows = []
@ -77,8 +77,8 @@ class BreakScreen:
Skip the break from the break screen
"""
logging.info("User skipped the break")
# Must call on_skipped before close to lock screen before closing the break screen
self.on_skipped()
# Must call on_skip before close to lock screen before closing the break screen
self.on_skip()
self.close()
def postpone_break(self):
@ -86,7 +86,7 @@ class BreakScreen:
Postpone the break from the break screen
"""
logging.info("User postponed the break")
self.on_postponed()
self.on_postpone()
self.close()
def on_window_delete(self, *args):
@ -112,7 +112,7 @@ class BreakScreen:
"""
Show/update the count down on all screens.
"""
self.enable_shortcut = self.shortcut_disable_time <= seconds
self.enable_shortcut = not self.strict_break and self.shortcut_disable_time <= seconds
mins, secs = divmod(countdown, 60)
timeformat = '{:02d}:{:02d}'.format(mins, secs)
GLib.idle_add(lambda: self.__update_count_down(timeformat))
@ -123,7 +123,7 @@ class BreakScreen:
"""
message = break_obj.name
image_path = break_obj.image
self.enable_shortcut = self.shortcut_disable_time <= 0
self.enable_shortcut = not self.strict_break and self.shortcut_disable_time <= 0
GLib.idle_add(lambda: self.__show_break_screen(message, image_path, widget, tray_actions))
def close(self):
@ -149,7 +149,7 @@ class BreakScreen:
Show an empty break screen on all screens.
"""
# Lock the keyboard
utility.start_thread(self.__lock_keyboard)
Utility.start_thread(self.__lock_keyboard)
screen = Gtk.Window().get_screen()
no_of_monitors = screen.get_n_monitors()
@ -165,7 +165,6 @@ class BreakScreen:
builder.connect_signals(self)
window = builder.get_object("window_main")
window.set_title("SafeEyes-" + str(monitor))
lbl_message = builder.get_object("lbl_message")
lbl_count = builder.get_object("lbl_count")
lbl_widget = builder.get_object("lbl_widget")
@ -186,15 +185,15 @@ class BreakScreen:
toolbar_button.show()
# Add the buttons
if self.enable_postpone:
# Add postpone button
btn_postpone = Gtk.Button(_('Postpone'))
btn_postpone.get_style_context().add_class('btn_postpone')
btn_postpone.connect('clicked', self.on_postpone_clicked)
btn_postpone.set_visible(True)
box_buttons.pack_start(btn_postpone, True, True, 0)
if not self.strict_break:
# Add postpone button
if self.enable_postpone:
btn_postpone = Gtk.Button(_('Postpone'))
btn_postpone.get_style_context().add_class('btn_postpone')
btn_postpone.connect('clicked', self.on_postpone_clicked)
btn_postpone.set_visible(True)
box_buttons.pack_start(btn_postpone, True, True, 0)
# Add the skip button
btn_skip = Gtk.Button(_('Skip'))
btn_skip.get_style_context().add_class('btn_skip')
@ -219,15 +218,15 @@ class BreakScreen:
# In Unity, move the window before present
window.move(x, y)
window.resize(monitor_gemoetry.width, monitor_gemoetry.height)
window.stick()
window.set_keep_above(True)
window.fullscreen()
window.present()
# In other desktop environments, move the window after present
# if self.context['desktop'] != 'unity':
window.move(x, y)
window.resize(monitor_gemoetry.width, monitor_gemoetry.height)
logging.info("Moved break screen to Display[%d, %d]", x, y)
window.fullscreen()
def __update_count_down(self, count):
"""
@ -254,7 +253,7 @@ class BreakScreen:
# Avoid waiting for next event by checking pending events
event = self.display.next_event()
if self.enable_shortcut and event.type == X.KeyPress:
if event.detail == self.keycode_shortcut_skip and not self.strict_break:
if event.detail == self.keycode_shortcut_skip:
self.skip_break()
break
elif self.enable_postpone and event.detail == self.keycode_shortcut_postpone:

View File

@ -27,49 +27,40 @@ 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
- init(context, safeeyes_config, plugin_config)
- on_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:
class PluginManager(object):
"""
Imports the Safe Eyes plugins and calls the methods defined in those plugins.
"""
def __init__(self):
def __init__(self, context, config):
logging.info('Load all the plugins')
self.__plugins = {}
self.__plugins_on_init = []
@ -88,18 +79,14 @@ class PluginManager:
def init(self, context, config):
"""
Initialize all the plugins with init(context, safe_eyes_config, plugin_config) function.
Initialize all the plugins with init(context, safeeyes_config, plugin_config) function.
"""
# Load the plugins
for plugin in config.get('plugins'):
try:
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)
self.__load_plugin(plugin, context)
except BaseException:
logging.error('Error in loading the plugin: %s', plugin['id'])
continue
# Initialize the plugins
for plugin in self.__plugins_on_init:
@ -209,7 +196,23 @@ class PluginManager:
return actions
def __load_plugin(self, plugin):
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):
"""
Load the given plugin.
"""
@ -220,68 +223,51 @@ class PluginManager:
if plugin_obj['enabled']:
# Previously enabled but now disabled
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)
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)
# Call the plugin.disable method if available
if utility.has_method(plugin_obj['module'], 'disable'):
if self.__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
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)
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)
del self.__plugins[plugin['id']]
return
# Look for plugin.py
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
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
else:
logging.error('plugin.py not found for the plugin: %s', plugin['id'])
return
# Look for config.json
plugin_path = os.path.join(plugin_dir, plugin['id'])
plugin_config_path = os.path.join(plugin_path, 'config.json')
plugin_config_path = os.path.join(plugin_dir, plugin['id'], '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'])
@ -294,51 +280,50 @@ class PluginManager:
# Load the rest of the methods
plugin_obj['enabled'] = True
module = plugin_obj['module']
self.__init_plugin(module, plugin_obj)
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)
else:
# This is the first time to load the plugin
# Check for dependencies
if utility.check_plugin_dependencies(plugin['id'], plugin_config, plugin.get('settings', {}), plugin_path):
if Utility.check_plugin_dependencies(plugin_config):
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 utility.has_method(module, 'enable'):
if self.__has_method(module, 'enable'):
module.enable()
if plugin_enabled:
self.__init_plugin(module, plugin_obj)
if utility.has_method(module, 'init', 3):
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.__plugins_on_init.append(plugin_obj)
if utility.has_method(module, 'on_pre_break', 1):
if self.__has_method(module, 'on_pre_break', 1):
self.__plugins_on_pre_break.append(plugin_obj)
if utility.has_method(module, 'on_start_break', 1):
if self.__has_method(module, 'on_start_break', 1):
self.__plugins_on_start_break.append(plugin_obj)
if utility.has_method(module, 'on_stop_break', 0):
if self.__has_method(module, 'on_stop_break', 0):
self.__plugins_on_stop_break.append(plugin_obj)
if utility.has_method(module, 'on_countdown', 2):
if self.__has_method(module, 'on_countdown', 2):
self.__plugins_on_countdown.append(plugin_obj)
if utility.has_method(module, 'get_widget_title', 1) and utility.has_method(module,
'get_widget_content', 1):
if self.__has_method(module, 'get_widget_title', 1) and self.__has_method(module, 'get_widget_content', 1):
self.__widget_plugins.append(plugin_obj)
if utility.has_method(module, 'get_tray_action', 1):
if self.__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

@ -28,22 +28,22 @@ from threading import Timer
import dbus
import gi
from dbus.mainloop.glib import DBusGMainLoop
from safeeyes import utility
from safeeyes.ui.about_dialog import AboutDialog
from safeeyes.ui.break_screen import BreakScreen
from safeeyes import Utility
from safeeyes.AboutDialog import AboutDialog
from safeeyes.BreakScreen import BreakScreen
from safeeyes.model import State
from safeeyes.rpc import RPCServer
from safeeyes.plugin_manager import PluginManager
from safeeyes.core import SafeEyesCore
from safeeyes.ui.settings_dialog import SettingsDialog
from safeeyes.PluginManager import PluginManager
from safeeyes.SafeEyesCore import SafeEyesCore
from safeeyes.settings import SettingsDialog
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
SAFE_EYES_VERSION = "2.1.9"
SAFE_EYES_VERSION = "2.0.9"
class SafeEyes:
class SafeEyes(object):
"""
This class represents a runnable Safe Eyes instance.
"""
@ -61,30 +61,29 @@ class SafeEyes:
# Initialize the Safe Eyes Context
self.context['version'] = SAFE_EYES_VERSION
self.context['desktop'] = utility.desktop_environment()
self.context['is_wayland'] = utility.is_wayland()
self.context['desktop'] = Utility.desktop_environment()
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, reset_breaks=False: \
utility.execute_main_thread(self.enable_safeeyes, next_break_time, reset_breaks)
self.context['api']['disable_safeeyes'] = lambda status=None, is_resting=False: utility.execute_main_thread(
self.disable_safeeyes, status, is_resting)
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.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.plugins_manager = PluginManager(self.context, self.config)
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
@ -93,20 +92,19 @@ class SafeEyes:
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'] = self.take_break
self.context['api']['take_break'] = lambda: Utility.execute_main_thread(
self.safe_eyes_core.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
@ -142,7 +140,7 @@ class SafeEyes:
self.plugins_manager.stop()
self.safe_eyes_core.stop()
self.plugins_manager.exit()
self.__stop_rpc_server()
self.rpc_server.stop()
self.persist_session()
Gtk.main_quit()
# Exit all threads
@ -158,7 +156,7 @@ class SafeEyes:
if self.active:
logging.info("Stop Safe Eyes due to system suspend")
self.plugins_manager.stop()
self.safe_eyes_core.stop(True)
self.safe_eyes_core.stop()
else:
# Resume from sleep
if self.active and self.safe_eyes_core.has_breaks():
@ -213,14 +211,7 @@ class SafeEyes:
logging.info("Initialize SafeEyesCore with modified settings")
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
# Restart the core and intialize the components
self.config = config
self.safe_eyes_core.initialize(config)
self.break_screen.initialize(config)
@ -230,23 +221,23 @@ class SafeEyes:
Timer(1.0, self.safe_eyes_core.start).start()
self.plugins_manager.start()
def enable_safeeyes(self, scheduled_next_break_time=-1, reset_breaks=False):
def enable_safeeyes(self, scheduled_next_break_time=-1):
"""
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, reset_breaks)
self.safe_eyes_core.start(scheduled_next_break_time)
self.plugins_manager.start()
def disable_safeeyes(self, status=None, is_resting = False):
def disable_safeeyes(self, status=None):
"""
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(is_resting)
self.safe_eyes_core.stop()
if status is None:
status = _('Disabled until restart')
self._status = status
@ -282,9 +273,9 @@ class SafeEyes:
"""
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):
@ -295,11 +286,11 @@ class SafeEyes:
self.plugins_manager.stop_break()
return True
def take_break(self, break_type = None):
def take_break(self):
"""
Take a break now.
"""
utility.execute_main_thread(self.safe_eyes_core.take_break, break_type)
self.safe_eyes_core.take_break()
def status(self):
"""
@ -312,17 +303,7 @@ class SafeEyes:
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)
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
Utility.delete(Utility.SESSION_FILE_PATH)

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:
class SafeEyesCore(object):
"""
Core of Safe Eyes runs the scheduler and notifies the breaks.
"""
@ -79,7 +79,7 @@ class SafeEyesCore:
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, reset_breaks=False):
def start(self, next_break_time=-1):
"""
Start Safe Eyes is it is not running already.
"""
@ -88,15 +88,11 @@ class SafeEyesCore:
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, is_resting=False):
def stop(self):
"""
Stop Safe Eyes if it is running.
"""
@ -104,13 +100,13 @@ class SafeEyesCore:
if not self.running:
return
logging.info("Stop Safe Eyes core")
logging.info("Stop Safe Eye 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.RESTING if (is_resting) else State.STOPPED
self.context['state'] = State.STOPPED
self.waiting_condition.notify_all()
self.waiting_condition.release()
@ -131,17 +127,7 @@ class SafeEyesCore:
logging.debug("Postpone the break for %d seconds", self.postpone_duration)
self.context['postponed'] = True
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):
def take_break(self):
"""
Calling this method stops the scheduler and show the next break screen
"""
@ -149,15 +135,15 @@ class SafeEyesCore:
return
if not self.context['state'] == State.WAITING:
return
utility.start_thread(self.__take_break, break_type=break_type)
Utility.start_thread(self.__take_break)
def has_breaks(self, break_type = None):
def has_breaks(self):
"""
Check whether Safe Eyes has breaks or not. Use the break_type to check for either short or long break.
Check whether Safe Eyes has breaks or not.
"""
return not self.break_queue.is_empty(break_type)
return not self.break_queue.is_empty()
def __take_break(self, break_type = None):
def __take_break(self):
"""
Show the next break screen
"""
@ -174,12 +160,10 @@ class SafeEyesCore:
self.running = False
self.waiting_condition.notify_all()
self.waiting_condition.release()
time.sleep(1) # Wait for 1 sec to ensure the scheduler is dead
time.sleep(1) # Wait for 1 sec to ensure the sceduler is dead
self.running = True
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)
Utility.execute_main_thread(self.__fire_start_break)
def __scheduler_job(self):
"""
@ -188,34 +172,33 @@ class SafeEyesCore:
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 current_timestamp < self.scheduled_next_break_timestamp:
# Non-standard break was set.
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:
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)
self.context['state'] = State.WAITING
utility.execute_main_thread(self.__fire_on_update_next_break, self.scheduled_next_break_time)
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))
@ -225,7 +208,7 @@ class SafeEyesCore:
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):
"""
@ -242,7 +225,7 @@ class SafeEyesCore:
# 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)
@ -250,16 +233,15 @@ class SafeEyesCore:
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(break_obj):
if not self.on_start_break.fire(self.break_queue.get_break()):
# Plugins want to ignore this break
self.__start_next_break()
return
@ -270,10 +252,10 @@ class SafeEyesCore:
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(break_obj)
utility.start_thread(self.__start_break)
self.start_break.fire(self.break_queue.get_break())
Utility.start_thread(self.__start_break)
def __start_break(self):
"""
@ -289,7 +271,7 @@ class SafeEyesCore:
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
@ -315,4 +297,4 @@ class SafeEyesCore:
if self.running:
# Schedule the break again
utility.start_thread(self.__scheduler_job)
Utility.start_thread(self.__scheduler_job)

View File

@ -21,22 +21,17 @@ This module contains utility functions for Safe Eyes and its plugins.
"""
import errno
import inspect
import importlib
import imp
import json
import locale
import logging
import os
import re
import sys
import shutil
import subprocess
import threading
from distutils.version import LooseVersion
from logging.handlers import RotatingFileHandler
from pathlib import Path
import babel.core
import babel.dates
import gi
gi.require_version('Gtk', '3.0')
@ -50,11 +45,10 @@ BIN_DIRECTORY = os.path.dirname(os.path.realpath(__file__))
HOME_DIRECTORY = os.environ.get('HOME') or os.path.expanduser('~')
CONFIG_DIRECTORY = os.path.join(os.environ.get(
'XDG_CONFIG_HOME') or os.path.join(HOME_DIRECTORY, '.config'), 'safeeyes')
STYLE_SHEET_DIRECTORY = os.path.join(CONFIG_DIRECTORY, 'style')
CONFIG_FILE_PATH = os.path.join(CONFIG_DIRECTORY, 'safeeyes.json')
CONFIG_RESOURCE = os.path.join(CONFIG_DIRECTORY, 'resource')
SESSION_FILE_PATH = os.path.join(CONFIG_DIRECTORY, 'session.json')
STYLE_SHEET_PATH = os.path.join(STYLE_SHEET_DIRECTORY, 'safeeyes_style.css')
STYLE_SHEET_PATH = os.path.join(CONFIG_DIRECTORY, 'style/safeeyes_style.css')
SYSTEM_CONFIG_FILE_PATH = os.path.join(BIN_DIRECTORY, "config/safeeyes.json")
SYSTEM_STYLE_SHEET_PATH = os.path.join(
BIN_DIRECTORY, "config/style/safeeyes_style.css")
@ -62,10 +56,7 @@ LOG_FILE_PATH = os.path.join(HOME_DIRECTORY, 'safeeyes.log')
SYSTEM_PLUGINS_DIR = os.path.join(BIN_DIRECTORY, 'plugins')
USER_PLUGINS_DIR = os.path.join(CONFIG_DIRECTORY, 'plugins')
LOCALE_PATH = os.path.join(BIN_DIRECTORY, 'config/locale')
SYSTEM_DESKTOP_FILE = os.path.join(BIN_DIRECTORY, "platform/io.github.slgobinath.SafeEyes.desktop")
SYSTEM_ICONS = os.path.join(BIN_DIRECTORY, "platform/icons")
DESKTOP_ENVIRONMENT = None
IS_WAYLAND = False
def get_resource_path(resource_name):
@ -94,16 +85,15 @@ def start_thread(target_function, **args):
thread.start()
# def execute_main_thread(target_function, *args, **kwargs):
# """
# Execute the given function in main thread, forwarding positional and keyword arguments.
# """
def execute_main_thread(target_function, *args, **kwargs):
def execute_main_thread(target_function, args=None):
"""
Execute the given function in main thread.
"""
GLib.idle_add(lambda: target_function(*args, **kwargs))
if args:
GLib.idle_add(lambda: target_function(args))
else:
GLib.idle_add(target_function)
def system_locale(category=locale.LC_MESSAGES):
"""
@ -125,12 +115,7 @@ def format_time(time):
Format time based on the system time.
"""
sys_locale = system_locale(locale.LC_TIME)
try:
return babel.dates.format_time(time, format='short', locale=sys_locale)
except babel.core.UnknownLocaleError:
# Some locale types are not supported by the babel library.
# Use 'en' locale format if the system locale is not supported.
return babel.dates.format_time(time, format='short', locale='en')
return babel.dates.format_time(time, format='short', locale=sys_locale)
def mkdir(path):
@ -182,7 +167,7 @@ def delete(file_path):
pass
def check_plugin_dependencies(plugin_id, plugin_config, plugin_settings, plugin_path):
def check_plugin_dependencies(plugin_config):
"""
Check the plugin dependencies.
"""
@ -207,12 +192,6 @@ def check_plugin_dependencies(plugin_id, plugin_config, plugin_settings, plugin_
if get_resource_path(resource) is None:
return _('Please add the resource %(resource)s to %(config_resource)s directory') % {'resource': resource, 'config_resource': CONFIG_RESOURCE}
plugin_dependency_checker = os.path.join(plugin_path, 'dependency_checker.py')
if os.path.isfile(plugin_dependency_checker):
dependency_checker = importlib.import_module((plugin_id + '.dependency_checker'))
if dependency_checker and hasattr(dependency_checker, "validate"):
return dependency_checker.validate(plugin_config, plugin_settings)
return None
@ -239,7 +218,7 @@ def load_plugins_config(safeeyes_config):
config = load_json(plugin_config_path)
if config is None:
continue
dependency_description = check_plugin_dependencies(plugin['id'], config, plugin.get('settings', {}), plugin_path)
dependency_description = check_plugin_dependencies(config)
if dependency_description:
plugin['enabled'] = False
config['error'] = True
@ -274,41 +253,13 @@ def desktop_environment():
env = 'lxde'
elif 'plasma' in desktop_session or desktop_session.startswith('kubuntu') or os.environ.get('KDE_FULL_SESSION') == 'true':
env = 'kde'
elif os.environ.get('GNOME_DESKTOP_SESSION_ID') or desktop_session.startswith('gnome'):
elif os.environ.get('GNOME_DESKTOP_SESSION_ID'):
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
def is_wayland():
"""
Determine if Wayland is running
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(
['loginctl', 'show-session', session_id, '-p', 'Type']
)
except BaseException:
logging.warning('Unable to determine if wayland is running. Assuming no.')
IS_WAYLAND = False
else:
IS_WAYLAND = bool(re.search(b'wayland', output, re.IGNORECASE))
return IS_WAYLAND
def execute_command(command, args=[]):
"""
@ -342,7 +293,7 @@ def module_exist(module):
Check wther the given Python module exists or not.
"""
try:
importlib.util.find_spec(module)
imp.find_module(module)
return True
except ImportError:
return False
@ -359,122 +310,37 @@ def merge_configs(new_config, old_config):
def initialize_safeeyes():
"""
Create the config file and style sheet in XDG_CONFIG_HOME(or ~/.config)/safeeyes directory.
Create the config file and style sheet in ~/.config/safeeyes directory.
"""
logging.info('Copy the config files to XDG_CONFIG_HOME(or ~/.config)/safeeyes')
logging.info('Copy the config files to ~/.config/safeeyes')
style_dir_path = os.path.join(HOME_DIRECTORY, '.config/safeeyes/style')
startup_dir_path = os.path.join(HOME_DIRECTORY, '.config/autostart')
# Remove the ~/.config/safeeyes/safeeyes.json file
delete(CONFIG_FILE_PATH)
# Create the XDG_CONFIG_HOME(or ~/.config)/safeeyes/style directory
mkdir(STYLE_SHEET_DIRECTORY)
# Remove the startup file
delete(os.path.join(HOME_DIRECTORY, os.path.join(
startup_dir_path, 'safeeyes.desktop')))
# Create the ~/.config/safeeyes/style directory
mkdir(style_dir_path)
mkdir(startup_dir_path)
# Copy the safeeyes.json
shutil.copy2(SYSTEM_CONFIG_FILE_PATH, CONFIG_FILE_PATH)
os.chmod(CONFIG_FILE_PATH, 0o777)
# Copy the new startup file
try:
os.symlink("/usr/share/applications/safeeyes.desktop",
os.path.join(startup_dir_path, 'safeeyes.desktop'))
except OSError:
pass
# Copy the new style sheet
if not os.path.isfile(STYLE_SHEET_PATH):
shutil.copy2(SYSTEM_STYLE_SHEET_PATH, STYLE_SHEET_PATH)
os.chmod(STYLE_SHEET_PATH, 0o777)
# initialize_safeeyes gets called when the configuration file is not present, which happens just after installation or manual deletion of .config/safeeyes/safeeyes.json file. In these cases, we want to force the creation of a startup entry
create_startup_entry(force=True)
def create_startup_entry(force=False):
"""
Create start up entry.
"""
startup_dir_path = os.path.join(HOME_DIRECTORY, '.config/autostart')
startup_entry = os.path.join(startup_dir_path, 'io.github.slgobinath.SafeEyes.desktop')
# until SafeEyes 2.1.5 the startup entry had another name
# https://github.com/slgobinath/SafeEyes/commit/684d16265a48794bb3fd670da67283fe4e2f591b#diff-0863348c2143a4928518a4d3661f150ba86d042bf5320b462ea2e960c36ed275L398
obsolete_entry = os.path.join(startup_dir_path, 'safeeyes.desktop')
create_link = False
if force:
# if force is True, just create the link
create_link = True
else:
# if force is False, we want to avoid creating the startup symlink if it was manually deleted by the user, we want to create it only if a broken one is found
if os.path.islink(startup_entry):
# if the link exists, check if it is broken
try:
os.stat(startup_entry)
except FileNotFoundError:
# a FileNotFoundError will get thrown if the startup symlink is broken
create_link = True
if os.path.islink(obsolete_entry):
# if a link with the old naming exists, delete it and create a new one
create_link = True
delete(obsolete_entry)
if create_link:
# Create the folder if not exist
mkdir(startup_dir_path)
# Remove existing files
delete(startup_entry)
# Create the new startup entry
try:
os.symlink(SYSTEM_DESKTOP_FILE, startup_entry)
except OSError:
logging.error("Failed to create startup entry at %s" % startup_entry)
def initialize_platform():
"""
Copy icons and generate desktop entries.
"""
logging.debug("Initialize the platform")
applications_dir_path = os.path.join(HOME_DIRECTORY, '.local/share/applications')
icons_dir_path = os.path.join(HOME_DIRECTORY, '.local/share/icons')
desktop_entry = os.path.join(applications_dir_path, 'io.github.slgobinath.SafeEyes.desktop')
# Create the folder if not exist
mkdir(icons_dir_path)
# Create a desktop entry
if not os.path.exists(os.path.join(sys.prefix, "share/applications/io.github.slgobinath.SafeEyes.desktop")):
# Create the folder if not exist
mkdir(applications_dir_path)
# Remove existing file
delete(desktop_entry)
# Create a link
try:
os.symlink(SYSTEM_DESKTOP_FILE, desktop_entry)
except OSError:
logging.error("Failed to create desktop entry at %s" % desktop_entry)
# Add links for all icons
for (path, _, filenames) in os.walk(SYSTEM_ICONS):
for filename in filenames:
system_icon = os.path.join(path, filename)
local_icon = os.path.join(icons_dir_path, os.path.relpath(system_icon, SYSTEM_ICONS))
global_icon = os.path.join(sys.prefix, "share/icons", os.path.relpath(system_icon, SYSTEM_ICONS))
parent_dir = str(Path(local_icon).parent)
if os.path.exists(global_icon):
# This icon is already added to the /usr/share/icons/hicolor folder
continue
# Create the directory if not exists
mkdir(parent_dir)
# Remove the link if already exists
delete(local_icon)
# Add a link for the icon
try:
os.symlink(system_icon, local_icon)
except OSError:
logging.error("Failed to create icon link at %s" % local_icon)
def reset_config():
@ -485,13 +351,6 @@ def reset_config():
# Copy the safeeyes.json and safeeyes_style.css
shutil.copy2(SYSTEM_CONFIG_FILE_PATH, CONFIG_FILE_PATH)
shutil.copy2(SYSTEM_STYLE_SHEET_PATH, STYLE_SHEET_PATH)
# Add write permission (e.g. if original file was stored in /nix/store)
os.chmod(CONFIG_FILE_PATH, 0o777)
os.chmod(STYLE_SHEET_PATH, 0o777)
create_startup_entry()
def replace_style_sheet():
"""
@ -499,10 +358,9 @@ def replace_style_sheet():
"""
delete(STYLE_SHEET_PATH)
shutil.copy2(SYSTEM_STYLE_SHEET_PATH, STYLE_SHEET_PATH)
os.chmod(STYLE_SHEET_PATH, 0o777)
def initialize_logging(debug):
def intialize_logging(debug):
"""
Initialize the logging framework using the Safe Eyes specific configurations.
"""
@ -669,21 +527,3 @@ def load_and_scale_image(path, width, height):
preserve_aspect_ratio=True)
image = Gtk.Image.new_from_pixbuf(pixbuf)
return image
def has_method(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.getfullargspec(getattr(module, method_name)).args) == no_of_args:
return True
return False
def remove_if_exists(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)

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,29 +73,26 @@ 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()
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')
# locale.bindtextdomain is required for Glade files
# gettext.bindtextdomain(gettext.textdomain(), Utility.LOCALE_PATH)
locale.bindtextdomain('safeeyes', Utility.LOCALE_PATH)
parser = argparse.ArgumentParser(prog='safeeyes', description=_('description'))
group = parser.add_mutually_exclusive_group()
@ -111,17 +108,11 @@ def main():
args = parser.parse_args()
# Initialize the logging
utility.initialize_logging(args.debug)
utility.initialize_platform()
Utility.intialize_logging(args.debug)
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()
@ -147,9 +138,9 @@ def main():
sys.exit(0)
elif not args.quit:
logging.info("Starting Safe Eyes")
safe_eyes = SafeEyes(system_locale, config)
safe_eyes.start()
Timer(1.0, lambda: __evaluate_arguments(args, safe_eyes)).start()
safeeyes = SafeEyes(system_locale, config)
safeeyes.start()
Timer(1.0, lambda: __evaluate_arguments(args, safeeyes)).start()
Gtk.main()

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2022-05-24 17:15+0000\n"
"Last-Translator: Mohamed Omran <mohamedgomran@gmail.com>\n"
"PO-Revision-Date: 2019-02-13 16:11+0000\n"
"Last-Translator: Hatem Ghouthi <hatemghouthi@yahoo.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 4.13-dev\n"
"X-Generator: Weblate 3.5-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,13 +84,7 @@ msgstr "أظهر حالة برنامج safeeyes المشتغل حاليا و أ
# Status message
msgid "Safe Eyes is not running"
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. شغِّله لكي تستعمل معطيات سطر الأوامر."
msgstr "SafeEyes غير مشغل"
# About dialog
msgid "Close"
@ -98,9 +92,7 @@ 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"
msgid "description"
msgstr "الوصف"
# About dialog
@ -132,13 +124,9 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "مدة تعطيل اختصارات لوحة المفاتيح (ثوان)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgid "Postpone duration (in minutes)"
msgstr "مدة التأخير (دقائق)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "اظهِّر الاستراحات بترتيب عشوائي"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "استراحة إجبارية (لا يمكن تجاوزها)"
@ -151,21 +139,13 @@ 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?"
@ -186,11 +166,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."
@ -266,19 +246,15 @@ msgstr "لا تدعم الإضافة بيئة سطح المكتب %s"
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr "من فضلك ثبّت وحدة بايثون باسم '%s'"
msgstr "من فضلك ثبّت وحدة Python '%s'"
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr "من فضلك ثبّت أداة سطر الأوامر '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "تعبير الوظيفة المجدولة غير صحيح '%s'"
msgstr "رجاءا ثبّت أداة سطر الأوامر '%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)s"
# Settings dialog
msgid "New Break"
@ -290,15 +266,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"
@ -306,11 +282,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"
@ -318,23 +294,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"
@ -342,11 +318,11 @@ msgstr "الإحصاءات الصحية"
# 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)"
msgstr "فاصل إعادة ضبط الإحصائيات (تعبير وظيفة مجدولة)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification
msgid "Notification"
@ -354,158 +330,154 @@ 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 ""
# 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 "اوقف Safe Eyes إذا كان النظام خاملاً"
msgstr ""
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr "أقل مدة خمول لإيقاف Safe Eyes (بالثوان)"
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 "اسمح بتعطيل Safe Eyes"
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 ""
#: 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] "لمدة ساعة"
msgstr[2] "لمدة ساعتين"
msgstr[3] "لمدة %d ساعات"
msgstr[4] "لمدة %d ساعة"
msgstr[5] "لمدة %d ساعة"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] "لمدة %d دقيقة"
msgstr[1] "لمدة دقيقة"
msgstr[2] "لمدة دقيقتين"
msgstr[3] "لمدة %d دقائق"
msgstr[4] "لمدة %d دقيقة"
msgstr[5] "لمدة %d دقيقة"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] "لمدة %d ثانية"
msgstr[1] "لمدة ثانية"
msgstr[2] "لمدة ثانيتين"
msgstr[3] "لمدة %d ثوان"
msgstr[4] "لمدة %d ثانية"
msgstr[5] "لمدة %d ثانية"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
#: plugins/trayicon
msgid "Next break at %s"
msgstr "فترة الاستراحة القادمة بعد %s"
msgstr ""
#: 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 "أوقِف الوسائط"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "مهلة تصفير الإعدادات (ساعات)"
msgstr ""

View File

@ -6,52 +6,51 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \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"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: bg\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 5.4-dev\n"
"X-Generator: Poedit 1.8.7.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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"
@ -85,42 +84,34 @@ 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 ""
"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 ""
# 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)"
@ -131,11 +122,7 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr ""
# Settings dialog
msgid "Postponement duration (in minutes)"
msgstr ""
# Settings dialog
msgid "Show breaks in random order"
msgid "Postpone duration (in minutes)"
msgstr ""
# Settings dialog
@ -150,14 +137,6 @@ 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 ""
@ -172,19 +151,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?"
@ -196,11 +175,11 @@ msgstr ""
# Settings dialog
msgid "Break"
msgstr "Почивка"
msgstr ""
# Settings dialog
msgid "Breaks"
msgstr "Почивки"
msgstr ""
# Settings dialog
msgid "Plugins"
@ -244,11 +223,11 @@ msgstr ""
# Settings dialog
msgid "Time (in seconds)"
msgstr "Време (в секунди)"
msgstr ""
# Settings dialog
msgid "Time (in minutes)"
msgstr "Време (в минути)"
msgstr ""
# Settings dialog
msgid "Break Settings"
@ -270,29 +249,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 ""
# Settings dialog
msgid "Remove"
msgstr "Премахване"
msgstr ""
# Settings dialog
msgid "Discard"
msgstr "Отхвърляне"
msgstr ""
# Settings dialog
msgid "Save"
msgstr "Запазване"
msgstr ""
# plugin/audiblealert
msgid "Audible Alert"
@ -312,7 +287,7 @@ msgstr ""
# plugin/donotdisturb
msgid "Do Not Disturb"
msgstr "Не безпокой"
msgstr ""
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
@ -343,12 +318,12 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification
msgid "Notification"
msgstr "Известие"
msgstr ""
# plugin/notification
msgid "Show a system notification before breaks"
@ -420,65 +395,65 @@ 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 ""
#: 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] ""
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] "За %d Минута"
msgstr[1] "За %d Минути"
msgstr[0] ""
msgstr[1] ""
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] "За %d Секунда"
msgstr[1] "За %d Секунди"
msgstr[0] ""
msgstr[1] ""
#: plugins/trayicon
msgid "Next break at %s"
msgstr "Следваща почивка в %s"
msgstr ""
#: 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: 2022-08-08 21:25+0000\n"
"Last-Translator: calbasi <joan@calbasi.net>\n"
"PO-Revision-Date: 2018-02-01 11:34+0000\n"
"Last-Translator: Joan Montané <joan@montane.cat>\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 4.14-dev\n"
"X-Generator: Weblate 2.19-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -55,51 +55,43 @@ msgstr "Reclineu-vos sobre la cadira i relaxeu-vos"
# Commandline arg description
msgid "show the about dialog"
msgstr "Mostra la informació Naltros"
msgstr ""
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "Inhabilita la instància de safeeyes en funcionament"
msgstr ""
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "Habilita la instància de safeeyes en funcionament"
msgstr ""
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "Tanca de la instància de safeeyes en funcionament i surt"
msgstr ""
# Commandline arg description
msgid "show the settings dialog"
msgstr "Mostra la finestra de preferències"
msgstr ""
# Commandline arg description
msgid "start safeeyes in debug mode"
msgstr "Inicia safeeyes en mode de depuració"
msgstr ""
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr "Mostra l'estat de la instància de safeeyes en funcionament i surt"
msgstr ""
# 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 ""
"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 protegeix els vostres ulls de la fatiga visual (astenopia) "
"recordant-vos que feu petits descansos mentre esteu treballant amb "
@ -134,16 +126,12 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr ""
# Settings dialog
msgid "Postponement duration (in minutes)"
msgid "Postpone 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 "Pauses estrictes (sense possibilitat de saltar-se-les)"
msgstr ""
# Settings dialog
msgid "Allow postponing breaks"
@ -153,113 +141,105 @@ 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 "Restablir"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr "De veritat que voleu restablir les preferències als valors per defecte?"
msgstr ""
# Settings dialog
msgid "Options"
msgstr "Opcions"
msgstr ""
# Settings dialog
msgid "Short Breaks"
msgstr "Pauses curtes"
msgstr ""
# Settings dialog
msgid "Long Breaks"
msgstr "Pauses llargues"
msgstr ""
# Settings dialog
msgid "Delete"
msgstr "Suprimeix"
msgstr ""
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr "De veritat que voleu suprimir aquesta pausa?"
msgstr ""
# Settings dialog
msgid "You can't undo this action."
msgstr "Aquesta acció no podrà revertir-se."
msgstr ""
# Settings dialog
msgid "Break"
msgstr "Pausa"
msgstr ""
# Settings dialog
msgid "Breaks"
msgstr "Pauses"
msgstr ""
# Settings dialog
msgid "Plugins"
msgstr "Complements"
msgstr ""
# Settings dialog
msgid "Type"
msgstr "Tipus"
msgstr ""
# Settings dialog
msgid "Short"
msgstr "Curta"
msgstr ""
# Settings dialog
msgid "Long"
msgstr "Llarga"
msgstr ""
# Settings dialog
msgid "Image"
msgstr "Imatge"
msgstr ""
# Settings dialog
msgid "Select"
msgstr "Trieu"
msgstr ""
# Settings dialog
msgid "Please select an image"
msgstr "Si us plau, trieu una imatge"
msgstr ""
# Settings dialog
msgid "Duration"
msgstr "Durada"
msgstr ""
# Settings dialog
msgid "Time to wait"
msgstr "Temps d'espera"
msgstr ""
# Settings dialog
msgid "Override"
msgstr "Sobreescriu"
msgstr ""
# Settings dialog
msgid "Time (in seconds)"
msgstr "Temps (en segons)"
msgstr ""
# Settings dialog
msgid "Time (in minutes)"
msgstr "Temps (en minuts)"
msgstr ""
# Settings dialog
msgid "Break Settings"
msgstr "Preferències de la pausa"
msgstr ""
# Settings dialog
msgid "Plugin Settings"
msgstr "Preferències del complement"
msgstr ""
# Settings dialog
msgid "Plugin does not support %s desktop environment"
@ -273,25 +253,21 @@ 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 "Nova Pausa"
msgstr ""
# Settings dialog
msgid "Remove"
msgstr "Suprimeix"
msgstr ""
# Settings dialog
msgid "Discard"
msgstr "Descarta-ho"
msgstr ""
# Settings dialog
msgid "Save"
@ -299,7 +275,7 @@ msgstr "Desa"
# plugin/audiblealert
msgid "Audible Alert"
msgstr "Alerta audible"
msgstr ""
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
@ -315,7 +291,7 @@ msgstr ""
# plugin/donotdisturb
msgid "Do Not Disturb"
msgstr "No molesteu"
msgstr ""
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
@ -339,14 +315,14 @@ msgstr ""
# plugin/healthstats
msgid "Health Statistics"
msgstr "Estadístiques de salut"
msgstr ""
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2023-10-31 16:04+0000\n"
"Last-Translator: Kryštof Jelínek <krystof186@gmail.com>\n"
"PO-Revision-Date: 2019-03-04 09:58+0000\n"
"Last-Translator: Pavel Borecki <pavel.borecki@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 5.2-dev\n"
"X-Generator: Weblate 3.5\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 "Zakružte očima (několikrát na každou stranu)"
msgstr "Zakroete očima (několikrát na každou stranu)"
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr "Zakružte očima ve směru hodinových ručiček"
msgstr "Zakroete očima ve směru hodinových ručiček"
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr "Zakružte očima proti směru hodinových ručiček"
msgstr "Zakroete očima proti směru hodinových ručiček"
# Short break
msgid "Blink your eyes"
@ -85,23 +85,13 @@ 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 ""
"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 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"
@ -135,13 +125,9 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Vypnout klávesové zkratky po dobu (v sekundách)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgid "Postpone 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)"
@ -154,14 +140,6 @@ 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"
@ -274,10 +252,6 @@ 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"
@ -348,8 +322,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 "Statistics reset interval (cron expression)"
msgstr "Interval vynulování statistik (výraz pro plánovač cron)"
msgid "Interval to reset statistics (in hours)"
msgstr "Interval pro resetování statistik (v hodinách)"
# plugin/notification
msgid "Notification"
@ -501,7 +475,3 @@ 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: 2021-03-16 20:02+0000\n"
"PO-Revision-Date: 2019-02-26 19:18+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 4.5.2-dev\n"
"X-Generator: Weblate 3.5-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -85,23 +85,13 @@ 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 ""
"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 "beskrivelse"
# About dialog
@ -133,13 +123,9 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Tastaturgenveje deaktiveret tidsrum (i sekunder)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgid "Postpone 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)"
@ -152,14 +138,6 @@ 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 ""
@ -273,10 +251,6 @@ 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"
@ -310,6 +284,7 @@ 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"
@ -346,8 +321,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Vis statistikker baseret på brug af Safe Eyes"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "Nulstillingsinterval for statistik (cron-udtryk)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification
msgid "Notification"
@ -418,8 +393,9 @@ 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 at deaktivere Safe Eyes"
msgstr "Tillad deaktivering af Safe Eyes"
#: plugins/trayicon
msgid "About"
@ -494,7 +470,3 @@ 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: 2023-07-04 20:53+0000\n"
"Last-Translator: Sebastian Pipping <sebastian@pipping.org>\n"
"PO-Revision-Date: 2018-12-01 02:08+0000\n"
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\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 5.0-dev\n"
"X-Generator: Weblate 3.3\n"
# Short break
msgid "Tightly close your eyes"
msgstr "Augen fest schließen"
msgstr "Schließen Sie fest die Augen"
# Short break
msgid "Roll your eyes a few times to each side"
msgstr "Rollen Sie die Augen ein paar Mal auf jede Seite"
msgstr "Bewegen Sie die Augen mehrere Male von links nach rechts und zurück"
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr "Lassen Sie Ihre Augen im Uhrzeigersinn kreisen"
msgstr "Kreisen Sie im Uhrzeigersinn mit den Augen"
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr "Lassen Sie Ihre Augen entgegen dem Uhrzeigersinn kreisen"
msgstr "Kreisen Sie gegen den Uhrzeigersinn mit den Augen"
# 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 einen Punkt in der Ferne"
msgstr "Fokussieren Sie mit den Augen 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 "Aktuelle Instanz von Safe Eyes deaktivieren"
msgstr "Laufende Instanz von Safe Eyes deaktivieren"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "Aktuelle Instanz von Safe Eyes aktivieren"
msgstr "Laufende Instanz von Safe Eyes aktivieren"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "Aktuelle Instanz von Safe Eyes beenden und Anwendung schließen"
msgstr "Laufende Instanz von Safe Eyes schließen und dann selbst beenden"
# Commandline arg description
msgid "show the settings dialog"
@ -79,19 +79,11 @@ msgstr "Im Debug-Modus starten"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr "Status der laufenden Safe Eyes-Instanz ausgeben und beenden"
msgstr ""
# Status message
msgid "Safe Eyes is not running"
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."
msgstr "Safe Eyes läuft nicht"
# About dialog
msgid "Close"
@ -99,13 +91,10 @@ 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 ""
"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 schützt Ihre Augen vor Beschwerden (Asthenopie), indem es Sie "
"regelmäßig erinnert, Pausen zu machen, wenn Sie längere Zeit am Bildschirm "
"verbringen"
"Safe Eyes schützt Ihre Augen vor Überlastung (Asthenopie), indem es Sie bei "
"längerer Arbeit am Computer an regelmäßige Pausen erinnert"
# About dialog
msgid "License"
@ -117,7 +106,7 @@ msgstr "Überspringen"
# Break screen
msgid "Postpone"
msgstr "Aufschieben"
msgstr "Verzögern"
# Settings dialog
msgid "Break duration (in seconds)"
@ -129,55 +118,39 @@ msgstr "Intervall zwischen zwei Pausen (in Minuten)"
# Settings dialog
msgid "Time to prepare for a break (in seconds)"
msgstr "Zeit zur Vorbereitung auf eine Pause (in Sekunden)"
msgstr "Zeit zur Vorbereitung für die Pause (in Sekunden)"
# Settings dialog
msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Dauer mit deaktivierten Tastatur-Kürzeln (in Sekunden)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgstr "Aufschubdauer (in Minuten)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Pausen in zufälliger Reihenfolge anzeigen"
msgid "Postpone duration (in minutes)"
msgstr "Verzögerungsdauer (in Minuten)"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "Strenge Unterbrechung (ohne Möglichkeit sie zu überspringen)"
msgstr "Strenge Pause (ohne Möglichkeit zu umgehen)"
# Settings dialog
msgid "Allow postponing breaks"
msgstr "Aufschieben von Pausen zulassen"
msgstr "Erlaube Verschieben von Pausen"
# Settings dialog
msgid "Persist the internal state"
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"
msgstr "Internen Zustand persistieren"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
msgstr ""
"Das längere Pausenintervall muss ein Vielfaches des kurzen Pausenintervalls "
"betragen"
msgstr "Lange Pausen müssen ein Vielfaches von kurzen Pausen lang dauern"
# Settings dialog
msgid "Reset"
msgstr "Zurücksetzen"
msgstr ""
# 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"
@ -193,15 +166,15 @@ msgstr "Lange Pausen"
# Settings dialog
msgid "Delete"
msgstr "Löschen"
msgstr ""
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr "Sind Sie sicher, dass Sie diese Pause löschen möchten?"
msgstr ""
# Settings dialog
msgid "You can't undo this action."
msgstr "Dies kann nicht rückgängig gemacht werden."
msgstr ""
# Settings dialog
msgid "Break"
@ -221,15 +194,15 @@ msgstr "Typ"
# Settings dialog
msgid "Short"
msgstr "Kurz"
msgstr "kurz"
# Settings dialog
msgid "Long"
msgstr "Lang"
msgstr "lang"
# Settings dialog
msgid "Image"
msgstr "Grafik"
msgstr "Bild"
# Settings dialog
msgid "Select"
@ -237,7 +210,7 @@ msgstr "Auswählen"
# Settings dialog
msgid "Please select an image"
msgstr "Bitte Grafik auswählen"
msgstr "Bitte Bild auswählen"
# Settings dialog
msgid "Duration"
@ -245,7 +218,7 @@ msgstr "Dauer"
# Settings dialog
msgid "Time to wait"
msgstr "Wartezeit"
msgstr ""
# Settings dialog
msgid "Override"
@ -261,33 +234,28 @@ msgstr "Zeit (in Minuten)"
# Settings dialog
msgid "Break Settings"
msgstr "Pauseneinstellungen"
msgstr "Einstelllungen Pause"
# Settings dialog
msgid "Plugin Settings"
msgstr "Plugin-Einstellungen"
msgstr "Einstellungen Plugin"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr "Das Plugin unterstützt die Desktop-Umgebung %s nicht"
msgstr "Plugin unterstützt Desktop-Umgebung %s nicht"
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr "Bitte Python-Modul '%s' installieren"
msgstr "Bitte Python-Module '%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 die Ressource %(resource)s "
"hinzufügen"
"Bitte in Verzeichnis %(config_resource)s Ressource %(resource)s hinzufügen"
# Settings dialog
msgid "New Break"
@ -311,15 +279,15 @@ msgstr "Akustischer Alarm"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr "Akustisches Signal vor und nach Pausen wiedergeben"
msgstr ""
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr "Akustisches Signal vor Pausen wiedergeben"
msgstr ""
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr "Akustisches Signal nach Pausen wiedergeben"
msgstr ""
# plugin/donotdisturb
msgid "Do Not Disturb"
@ -327,8 +295,7 @@ msgstr "Nicht stören"
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr ""
"Pause überspringen wenn sich aktives Fenster im Vollbild-Modus befindet"
msgstr "Pause überschringen wenn aktives Fenster im Vollbild-Modus"
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
@ -344,19 +311,19 @@ msgstr "Unterbrechbare Fenster in normalen Modus umschalten"
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr "Nicht stören, solange das Gerät im Akkubetrieb ist"
msgstr ""
# plugin/healthstats
msgid "Health Statistics"
msgstr "Gesundheitsstatistik"
msgstr "Statistik Gesundheit"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr "Gesundheitsstatistik anzeigen"
msgstr "Statistik Gesundheit anzeigen"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "Statistik-Rücksetzintervall (Cron-Ausdruck)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification
msgid "Notification"
@ -384,7 +351,7 @@ msgstr "Nach langer Pause Bildschirm mit Bildschirmschoner sperren"
# plugin/screensaver
msgid "Custom screensaver command"
msgstr "Benutzerdefinierter Bildschirmschoner-Befehl"
msgstr "Benutzerdefinierter Bezehl Bidschirmschoner"
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
@ -392,7 +359,7 @@ msgstr "Mindestdauer Überspringen ohne Bildschirmschoner (in Sekunden)"
# plugin/screensaver
msgid "Lock screen"
msgstr "Sperrbildschirm"
msgstr ""
# plugin/smartpause
msgid "Smart Pause"
@ -412,7 +379,7 @@ msgstr "Mit Pausendauer gleiche Leerlaufdauer als Pause interpretieren"
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr "Nächste Pause verschieben, bis sich das System im Leerlauf befindet"
msgstr ""
#: plugins/trayicon
msgid "Tray Icon"
@ -428,7 +395,7 @@ msgstr "Nächsten Pausen-Termin im Tray-Symbol anzeigen"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr "Erlaube Safe Eyes zu deaktivieren"
msgstr ""
#: plugins/trayicon
msgid "About"
@ -494,16 +461,12 @@ msgstr "Schließen"
# plugin/mediacontrol
msgid "Media Control"
msgstr "Medienverwaltung"
msgstr ""
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr "Medienwiedergabe im Pausenbildschirm anhalten"
msgstr ""
# plugin/mediacontrol
msgid "Pause media"
msgstr "Medien anhalten"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Zeit bis die Statistik zurückgesetzt wird (in Stunden)"
msgstr ""

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: 2021-07-04 07:32+0000\n"
"Last-Translator: J. Lavoie <j.lavoie@net-c.ca>\n"
"PO-Revision-Date: 2017-10-08 12:42+0000\n"
"Last-Translator: Gobinath L <lgobi20@gmail.com>\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 4.8-dev\n"
"X-Generator: Weblate 2.17-dev\n"
"Generated-By: pygettext.py 1.5\n"
# Short break
@ -86,23 +86,13 @@ 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 ""
"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 protects your eyes from eye strain (asthenopia) by reminding you "
"to take breaks while you're working long hours at the computer"
@ -136,12 +126,8 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Keyboard shortcuts disabled period (in seconds)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgstr "Postponement duration (in minutes)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Show breaks in random order"
msgid "Postpone duration (in minutes)"
msgstr "Postpone duration (in minutes)"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
@ -155,25 +141,17 @@ 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 "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr "Are you sure you want to reset all settings to default?"
msgstr "Are you sure you want to delete this break?"
# Settings dialog
msgid "Options"
@ -275,10 +253,6 @@ 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"
@ -348,8 +322,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Show statistics based on how you use Safe Eyes"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "Statistics reset interval (cron expression)"
msgid "Interval to reset statistics (in hours)"
msgstr "Interval to reset statistics (in hours)"
# plugin/notification
msgid "Notification"
@ -385,7 +359,7 @@ msgstr "Minimum seconds to skip without screensaver"
# plugin/screensaver
msgid "Lock screen"
msgstr "Lock screen"
msgstr ""
# plugin/smartpause
msgid "Smart Pause"
@ -405,7 +379,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 "Postpone the next break until the system becomes idle"
msgstr ""
#: plugins/trayicon
msgid "Tray Icon"
@ -487,16 +461,12 @@ msgstr "Quit"
# plugin/mediacontrol
msgid "Media Control"
msgstr "Media Control"
msgstr ""
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr "Pause media players from the break screen"
msgstr ""
# plugin/mediacontrol
msgid "Pause media"
msgstr "Pause media"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Interval to reset statistics (in hours)"
msgstr ""

View File

@ -1,502 +0,0 @@
# 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: 2021-03-25 08:29+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fitojb@ubuntu.com>\n"
"PO-Revision-Date: 2019-02-28 11:53+0000\n"
"Last-Translator: Gobinath L <lgobi20@gmail.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 4.5.2-dev\n"
"X-Generator: Weblate 3.5-dev\n"
# Short break
msgid "Tightly close your eyes"
msgstr "Cierre fuertemente los ojos"
msgstr "Cierra fuertemente tus ojos"
# Short break
msgid "Roll your eyes a few times to each side"
msgstr "Mueva los ojos de lado a lado varias veces"
msgstr "Pon los ojos en blanco hacia cada lado"
# Short break
msgid "Rotate your eyes in clockwise direction"
msgstr "Gire los ojos en sentido horario"
msgstr "Mueve tus ojos en círculos en sentido horario"
# Short break
msgid "Rotate your eyes in counterclockwise direction"
msgstr "Gire los ojos en sentido antihorario"
msgstr "Mueve tus ojos en círculos en sentido antihorario"
# Short break
msgid "Blink your eyes"
msgstr "Parpadee"
msgstr "Parpadea tus ojos"
# Short break
msgid "Focus on a point in the far distance"
msgstr "Enfóquese en un punto distante"
msgstr "Enfoca un punto lejano"
# Short break
msgid "Have some water"
msgstr "Beba un poco de agua"
msgstr "Bebe un poco de agua"
# Long break
msgid "Walk for a while"
msgstr "Camine un rato"
msgstr "Vete a andar un rato"
# Long break
msgid "Lean back at your seat and relax"
msgstr "Reclínese sobre su silla y relájese"
msgstr "Reclínate sobre tu silla y relájate"
# Commandline arg description
msgid "show the about dialog"
msgstr "mostrar el cuadro de diálogo Acerca de"
msgstr "mostrar dialogo acerca de safeeyes"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "desactivar el ejemplar de safeeyes en ejecución"
msgstr "deshabilitar la instancia actual de safeeyes"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "activar el ejemplar de safeeyes en ejecución"
msgstr "habilitar la instancia actual de safeeyes"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "abandonar el ejemplar de safeeyes en ejecución y salir"
msgstr "abandonar la instancia en curso de safeeyes"
# Commandline arg description
msgid "show the settings dialog"
msgstr "mostrar el cuadro de diálogo Configuración"
msgstr "muestra dialogo de configuraciones"
# Commandline arg description
msgid "start safeeyes in debug mode"
@ -79,32 +79,22 @@ msgstr "iniciar safeeyes en modo de depuración"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr "mostrar el estado del ejemplar de safeeyes en ejecución y salir"
msgstr ""
# 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 ""
"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 protege sus ojos de la fatiga visual (astenopía), recordándole "
"tomar descansos cuando ha trabajando muchas horas en el ordenador"
"Safe Eyes protege tus ojos de la fatiga visual (astenopía), recordándote "
"tomar descansos cuando estás trabajando muchas horas en el ordenador"
# About dialog
msgid "License"
@ -135,13 +125,9 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Período de desactivación de los atajos de teclado (en segundos)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgid "Postpone 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)"
@ -152,33 +138,19 @@ 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 "Restablecer"
msgstr ""
# 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"
@ -190,27 +162,27 @@ msgstr "Descansos cortos"
# Settings dialog
msgid "Long Breaks"
msgstr "Descansos largos"
msgstr ""
# Settings dialog
msgid "Delete"
msgstr "Eliminar"
msgstr ""
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr "¿Confirma que quiere eliminar este descanso?"
msgstr ""
# Settings dialog
msgid "You can't undo this action."
msgstr "Esta acción no se puede deshacer."
msgstr ""
# Settings dialog
msgid "Break"
msgstr "Descanso"
msgstr ""
# Settings dialog
msgid "Breaks"
msgstr "Descansos"
msgstr ""
# Settings dialog
msgid "Plugins"
@ -238,19 +210,19 @@ msgstr "Seleccionar"
# Settings dialog
msgid "Please select an image"
msgstr "Seleccione una imagen"
msgstr "Por favor seleccione una imagen"
# Settings dialog
msgid "Duration"
msgstr "Duración"
msgstr "Duracion"
# Settings dialog
msgid "Time to wait"
msgstr "Tiempo de espera"
msgstr ""
# Settings dialog
msgid "Override"
msgstr "Anular"
msgstr ""
# Settings dialog
msgid "Time (in seconds)"
@ -262,39 +234,35 @@ msgstr "Tiempo (en minutos)"
# Settings dialog
msgid "Break Settings"
msgstr "Configuración de descansos"
msgstr ""
# Settings dialog
msgid "Plugin Settings"
msgstr "Configuración de complementos"
msgstr "Ajustes de plugins"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr "El complemento no admite el entorno de escritorio %s"
msgstr "El complemento no es compatible %s con el entorno de escritorio"
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr "Instale el módulo de Python «%s»"
msgstr "Por favor instale el módulo de Python '%s'"
# Settings dialog
msgid "Please install the command-line tool '%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"
msgstr "Por favor, instale la herramienta línea de comandos '%s'"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "Añada el recurso %(resource)s al directorio %(config_resource)s"
msgstr ""
# Settings dialog
msgid "New Break"
msgstr "Descanso nuevo"
msgstr "Nueva pausa"
# Settings dialog
msgid "Remove"
msgstr "Quitar"
msgstr "Eliminar"
# Settings dialog
msgid "Discard"
@ -306,19 +274,19 @@ msgstr "Guardar"
# plugin/audiblealert
msgid "Audible Alert"
msgstr "Alerta audible"
msgstr ""
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr "Reproducir una alerta audible antes y después de los descansos"
msgstr ""
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr "Reproducir una alerta audible antes de los descansos"
msgstr ""
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr "Reproducir una alerta audible después de los descansos"
msgstr ""
# plugin/donotdisturb
msgid "Do Not Disturb"
@ -330,19 +298,19 @@ msgstr "Saltar descanso si la ventana activa está en modo pantalla completa"
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr "Nunca interrumpir estas ventanas"
msgstr ""
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr "Interrumpir estas ventanas sin importar su estado"
msgstr ""
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr "Cambiar las ventanas interrumplibles al modo normal"
msgstr ""
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr "No molestar mientras se usa la batería"
msgstr ""
# plugin/healthstats
msgid "Health Statistics"
@ -353,8 +321,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 "Statistics reset interval (cron expression)"
msgstr "Tiempo para restablecer estadísticas (expresión cron)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification
msgid "Notification"
@ -379,19 +347,18 @@ 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 "Orden personalizada del salvapantallas"
msgstr ""
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr "Mínimo de segundos para saltar sin salvapantallas"
msgstr ""
# plugin/screensaver
msgid "Lock screen"
msgstr "Bloquear pantalla"
msgstr ""
# plugin/smartpause
msgid "Smart Pause"
@ -408,12 +375,10 @@ 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 "Posponer el siguiente descanso hasta que el sistema quede inactivo"
msgstr ""
#: plugins/trayicon
msgid "Tray Icon"
@ -425,11 +390,11 @@ msgstr "Mostrar un icono de bandeja en el área de notificacion"
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr "Mostrar el tiempo del siguiente descanso en la barra de tareas"
msgstr ""
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr "Permitir desactivar Safe Eyes"
msgstr ""
#: plugins/trayicon
msgid "About"
@ -437,37 +402,37 @@ msgstr "Acerca de"
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr "Desactivar Safe Eyes"
msgstr "Deshabilitar Safe Eyes"
#: plugins/trayicon
msgid "Disabled until %s"
msgstr "Desactivado hasta %s"
msgstr "Deshabilitado hasta"
#: plugins/trayicon
msgid "Disabled until restart"
msgstr "Desactivado hasta reiniciar"
msgstr "Deshabilitado hasta reiniciar"
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr "Activar Safe Eyes"
msgstr "Habilitar Safe Eyes"
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] "Por %d hora"
msgstr[1] "Por %d horas"
msgstr[0] ""
msgstr[1] ""
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] "Por %d minuto"
msgstr[1] "Por %d minutos"
msgstr[0] ""
msgstr[1] ""
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] "Por %d segundo"
msgstr[1] "Por %d segundos"
msgstr[0] ""
msgstr[1] ""
#: plugins/trayicon
msgid "Next break at %s"
@ -479,7 +444,7 @@ msgstr "No hay pausas disponibles"
#: plugins/trayicon
msgid "Settings"
msgstr "Configuración"
msgstr "Ajustes"
#: plugins/trayicon
msgid "Take a break now"
@ -495,16 +460,12 @@ msgstr "Salir"
# plugin/mediacontrol
msgid "Media Control"
msgstr "Control multimedia"
msgstr ""
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr "Pausar los reproductores de medios desde la pantalla de descanso"
msgstr ""
# plugin/mediacontrol
msgid "Pause media"
msgstr "Pausar multimedia"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Intervalo para restablecer estadísticas (en horas)"
msgstr ""

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-02-18 00:50+0000\n"
"PO-Revision-Date: 2019-01-19 13:21+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 4.5\n"
"X-Generator: Weblate 3.4-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -85,23 +85,13 @@ 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 ""
"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 aitab vähendada arvutiga töötamisel silmade väsimust, tuletades "
"meelde puhkepause"
@ -135,13 +125,9 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Klaviatuurikäskude eiramise aeg (sekundit)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgid "Postpone 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)"
@ -154,25 +140,17 @@ 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 "Lähtesta"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr "Kas sa oled kõigi seadete lähtestamises kindel?"
msgstr ""
# Settings dialog
msgid "Options"
@ -274,10 +252,6 @@ 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"
@ -312,7 +286,7 @@ msgstr "Mängi helisignaali enne pausi"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr "Mängi pauside järel kuuldavad märguanded"
msgstr ""
# plugin/donotdisturb
msgid "Do Not Disturb"
@ -347,8 +321,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Programmikasutuse statistika kuvamine"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "Statistika lähtestamise intervall (croni väljend)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification
msgid "Notification"
@ -420,7 +394,7 @@ msgstr "Näita järgmise pausi aega paneeliikooni kõrval"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr "Luba Safe Eyes keelamine"
msgstr ""
#: plugins/trayicon
msgid "About"
@ -495,7 +469,3 @@ 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

@ -1,502 +0,0 @@
# 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: 2022-07-07 10:18+0000\n"
"Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
"PO-Revision-Date: 2017-11-03 06:48+0000\n"
"Last-Translator: Misagh <misaghlb@gmail.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 4.13.1-dev\n"
"X-Generator: Weblate 2.18-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,39 +59,31 @@ msgstr "نشان دادن پنجره درباره"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "از کار انداختن نمونهٔ محافظ چشم در حال اجرا"
msgstr "غیرفعال کردن نمونه safeeyes درحال اجرا"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "به کار انداختن نمونهٔ محافظ چشم در حال اجرا"
msgstr "فعال کردن نمونه safeeyes درحال اجرا"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "بستن و خروج از نمونهٔ محافظ چشم در حال اجرا"
msgstr "بستن و خروج از safeeyes در حال اجرا"
# Commandline arg description
msgid "show the settings dialog"
msgstr "نمایش گفت‌وگوی تنظیمات"
msgstr "نشان دادن پنجره تنظیمات"
# Commandline arg description
msgid "start safeeyes in debug mode"
msgstr "اجرای محافظ چشم در حالت رفع اشکال"
msgstr "اجرا کردن safeeyes در حالت دیباگ"
# 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"
@ -99,403 +91,378 @@ 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"
msgid "description"
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 "Postponement duration (in minutes)"
msgstr "زمان تعویق (به دقیقه)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "نمایش استراحت‌ها به ترتیب کاتوره‌ای"
msgid "Postpone duration (in minutes)"
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 "ادامه وضعیت داخلی"
# 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 ممکن است دستورات خط فرمان نکنند"
msgstr ""
# 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 "افزایه از محیط میزکار %s پشتیبانی نمی‌کند"
msgstr ""
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr "لطفاً پیمانهٔ %s پایتون را نصب کنید"
msgstr ""
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr "لطفاً ابزار خط فرمان %s را نصب کنید"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "عبارت کرون نامعتبر «%s»"
msgstr ""
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "لطفا منبع %(resource)s را به شاخهٔ %(config_resource)s بیفزایید"
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"
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 "Statistics reset interval (cron expression)"
msgstr "بازهٔ بازنشانی آمار (عبارت کرون)"
msgid "Interval to reset statistics (in hours)"
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 ""
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr "آماده برای استراحتی طولانی در %s ثانیه"
msgstr ""
# 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 "از کار افتاده تا %s"
msgstr ""
#: 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[1] "برای %Id ساعت"
msgstr[0] ""
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] "برای ۱ دقیقه"
msgstr[1] "برای %Id دقیقه"
msgstr[0] ""
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] "برای ۱ ثانیه"
msgstr[1] "برای %dI ثانیه"
msgstr[0] ""
#: plugins/trayicon
msgid "Next break at %s"
msgstr "استراحت بعدی در %s"
msgstr ""
#: 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 "مکث رسانه"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "فاصله برای تنظیم مجدد آمار (در چند ساعت)"
msgstr ""

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2022-01-11 15:55+0000\n"
"Last-Translator: AO Localisation Lab <ao@localizationlab.org>\n"
"PO-Revision-Date: 2019-03-06 09:58+0000\n"
"Last-Translator: LocLab fr <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 4.10.1\n"
"X-Generator: Weblate 3.5\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 safeeyes en cours"
msgstr "désactiver linstance de safeyes en cours de fonctionnement"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "activer linstance de safeyes en cours"
msgstr "activer linstance de safeyes en cours de fonctionnement"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "fermer linstance de safeyes en cours et fermer"
msgstr "quitter linstance de safeyes en cours de fonctionnement et sortir"
# Commandline arg description
msgid "show the settings dialog"
@ -79,19 +79,11 @@ 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 et fermer"
msgstr "imprimer létat de linstance safeeyes en cours dexécution et quitter"
# Status message
msgid "Safe Eyes is not running"
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."
msgstr "Safe Eyes nest pas en cours dexécution"
# About dialog
msgid "Close"
@ -99,11 +91,9 @@ 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 ""
"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 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"
@ -136,12 +126,8 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Période de désactivation des raccourcis (en secondes)"
# Settings dialog
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"
msgid "Postpone duration (in minutes)"
msgstr "Durée de report (en minutes)"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
@ -155,16 +141,6 @@ 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 ""
@ -199,11 +175,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"
@ -235,11 +211,11 @@ msgstr "Image"
# Settings dialog
msgid "Select"
msgstr "Sélectionner"
msgstr "Choisir"
# Settings dialog
msgid "Please select an image"
msgstr "Veuillez sélectionner une image"
msgstr "Veuillez choisir une image"
# Settings dialog
msgid "Duration"
@ -281,10 +257,6 @@ 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 ""
@ -352,11 +324,11 @@ msgstr "Statistiques de santé"
# plugin/healthstats
msgid "Show statistics based on how you use Safe Eyes"
msgstr "Afficher des statistiques daprès votre utilisation de Safe Eyes"
msgstr "Afficher des statistiques basées sur votre utilisation de Safe Eyes"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "Intervalle de réinitialisation des statistiques (expression cron)"
msgid "Interval to reset statistics (in hours)"
msgstr "Fréquence de réinitialisation (en heures)"
# plugin/notification
msgid "Notification"
@ -376,7 +348,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"
@ -407,7 +379,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 dinactivité 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 +451,7 @@ msgstr "Prochaine pause à %s"
#: plugins/trayicon
msgid "No Breaks Available"
msgstr "Aucune pause n'est proposée"
msgstr "Aucune pause n'est prévue"
#: plugins/trayicon
msgid "Settings"
@ -495,7 +467,7 @@ msgstr "Jusquau redémarrage"
#: plugins/trayicon
msgid "Quit"
msgstr "Fermer"
msgstr "Quitter"
# plugin/mediacontrol
msgid "Media Control"
@ -508,7 +480,3 @@ 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

@ -1,499 +0,0 @@
# 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,21 +85,13 @@ 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 ""
"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 "विवरण"
# About dialog
@ -131,13 +123,9 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "कीबोर्ड शॉर्टकट अक्षम अवधि (सेकंड में)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgid "Postpone duration (in minutes)"
msgstr "पोस्टपोन अवधि (मिनटों में)"
# Settings dialog
msgid "Show breaks in random order"
msgstr ""
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "सख्त ब्रेक (ब्रेक को छोड़ने का कोई तरीका नहीं)"
@ -150,14 +138,6 @@ 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 "लम्बी ब्रेक अंतराल लघु ब्रेक अंतराल के एक बहुमान होना चाहिए"
@ -270,10 +250,6 @@ 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 ""
@ -343,7 +319,7 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification

View File

@ -85,21 +85,13 @@ 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 ""
"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 "leírás"
# About dialog
@ -131,13 +123,9 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Gyorsbillentyűk letiltásának hossza (másodpercben)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgid "Postpone 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)"
@ -150,14 +138,6 @@ 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"
@ -270,10 +250,6 @@ 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 ""
@ -344,7 +320,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 "Statistics reset interval (cron expression)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-02-18 00:50+0000\n"
"Last-Translator: Reza Almanda <rezaalmanda27@gmail.com>\n"
"PO-Revision-Date: 2019-02-10 11:10+0000\n"
"Last-Translator: Imam Ali Mustofa <d.darkterminal@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 4.5\n"
"X-Generator: Weblate 3.5-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -85,23 +85,13 @@ 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 ""
"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 "Deskripsi"
# About dialog
@ -133,370 +123,344 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Pintasan keyboard dinonaktifkan periode (dalam detik)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgid "Postpone 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 "Izinkan penundaan istirahat"
msgstr ""
# Settings dialog
msgid "Persist the internal state"
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"
msgstr ""
# 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 "Atur ulang"
msgstr ""
# 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 "Pilihan"
msgstr ""
# Settings dialog
msgid "Short Breaks"
msgstr "Istirahat Pendek"
msgstr ""
# Settings dialog
msgid "Long Breaks"
msgstr "Istirahat Panjang"
msgstr ""
# Settings dialog
msgid "Delete"
msgstr "Hapus"
msgstr ""
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr "Apakah Anda yakin ingin menghapus istirahat ini?"
msgstr ""
# Settings dialog
msgid "You can't undo this action."
msgstr "Anda tidak bisa mengembalikan ulang aksi ini."
msgstr ""
# Settings dialog
msgid "Break"
msgstr "Istirahat"
msgstr ""
# Settings dialog
msgid "Breaks"
msgstr "Istirahat"
msgstr ""
# Settings dialog
msgid "Plugins"
msgstr "Plugin"
msgstr ""
# Settings dialog
msgid "Type"
msgstr "Tipe"
msgstr ""
# Settings dialog
msgid "Short"
msgstr "Pendek"
msgstr ""
# Settings dialog
msgid "Long"
msgstr "Panjang"
msgstr ""
# Settings dialog
msgid "Image"
msgstr "Gambar"
msgstr ""
# Settings dialog
msgid "Select"
msgstr "Pilih"
msgstr ""
# Settings dialog
msgid "Please select an image"
msgstr "Silakan pilih sebuah gambar"
msgstr ""
# Settings dialog
msgid "Duration"
msgstr "Durasi"
msgstr ""
# Settings dialog
msgid "Time to wait"
msgstr "Waktu tunggu"
msgstr ""
# Settings dialog
msgid "Override"
msgstr "Kesampingkan"
msgstr ""
# Settings dialog
msgid "Time (in seconds)"
msgstr "Waktu (dalam detik)"
msgstr ""
# Settings dialog
msgid "Time (in minutes)"
msgstr "Waktu (dalam menit)"
msgstr ""
# Settings dialog
msgid "Break Settings"
msgstr "Pengaturan Istirahat"
msgstr ""
# Settings dialog
msgid "Plugin Settings"
msgstr "Pengaturan Plugin"
msgstr ""
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr "Plugin tidak mendukung %s lingkungan desktop"
msgstr ""
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr "Silakan lakukan pemasangan Python module '%s'"
msgstr ""
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr "Silakan lakukan pemasangan alat command-line '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Ekspresi cron tidak valid '%s'"
msgstr ""
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "Silakan tambahkan sumber %(resource)s ke direktori %(config_resource)s"
msgstr ""
# Settings dialog
msgid "New Break"
msgstr "Istirahat Baru"
msgstr ""
# Settings dialog
msgid "Remove"
msgstr "Hapus"
msgstr ""
# Settings dialog
msgid "Discard"
msgstr "Buang"
msgstr ""
# Settings dialog
msgid "Save"
msgstr "Simpan"
msgstr ""
# plugin/audiblealert
msgid "Audible Alert"
msgstr "Peringatan Bersuara"
msgstr ""
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr "Mainkan peringatan bersuara sebelum dan setelah istirahat"
msgstr ""
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr "Mainkan peringatan bersuara sebelum istirahat"
msgstr ""
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr "Mainkan peringatan bersuara setelah istirahat"
msgstr ""
# plugin/donotdisturb
msgid "Do Not Disturb"
msgstr "Jangan Ganggu"
msgstr ""
# plugin/donotdisturb
msgid "Skip break if the active window is in fullscreen mode"
msgstr "Lewati istirahat jika jendela aktif dalam kondisi layar penuh"
msgstr ""
# plugin/donotdisturb
msgid "Do not interrupt these windows anytime"
msgstr "Jangan interupsi jendela-jendela ini kapanpun"
msgstr ""
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr "Interupsi jendela-jendela terlepas dari kondisinya"
msgstr ""
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
msgstr "Pindahkan jendela-jendela yang bisa diinterupsi ke kondisi normal"
msgstr ""
# plugin/donotdisturb
msgid "Do not disturb while on battery"
msgstr "Jangan ganggu selagi menggunakan baterai"
msgstr ""
# plugin/healthstats
msgid "Health Statistics"
msgstr "Statistik Kesehatan"
msgstr ""
# 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 "Statistics reset interval (cron expression)"
msgstr "Interval reset statistik (ekspresi cron)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification
msgid "Notification"
msgstr "Notifikasi"
msgstr ""
# plugin/notification
msgid "Show a system notification before breaks"
msgstr "Tampilkan sebuah sistem notifikasi sebelum istirahat"
msgstr ""
# plugin/notification
msgid "Ready for a short break in %s seconds"
msgstr "Bersiap untuk istirahat singkat dalam %s detik"
msgstr ""
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr "Bersiap untuk istirahat panjang dalam %s detik"
msgstr ""
# plugin/screensaver
msgid "Screensaver"
msgstr "Screensaver"
msgstr ""
# plugin/screensaver
msgid "Lock the screen after long breaks by starting screensaver"
msgstr "Kunci layar setlah istirahat panjang dengan memulai screensaver"
msgstr ""
# plugin/screensaver
msgid "Custom screensaver command"
msgstr "Atur perintah screensaver"
msgstr ""
# plugin/screensaver
msgid "Minimum seconds to skip without screensaver"
msgstr "Minimal detik untuk melewati tanpa screensaver"
msgstr ""
# plugin/screensaver
msgid "Lock screen"
msgstr "Kunci layar"
msgstr ""
# plugin/smartpause
msgid "Smart Pause"
msgstr "Jeda Pintar"
msgstr ""
# plugin/smartpause
msgid "Pause Safe Eyes if the system is idle"
msgstr "Jeda Safe Eyes jika sistem menganggur"
msgstr ""
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr "Minimal waktu menganggur untuk jeda Safe Eyes (dalam detik)"
msgstr ""
# 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 "Tunda istirahat selanjutnya sampai sistem menjadi menganggur"
msgstr ""
#: plugins/trayicon
msgid "Tray Icon"
msgstr "Penampan Ikon"
msgstr ""
#: plugins/trayicon
msgid "Show a tray icon in the notification area"
msgstr "Tampilkan sebuah penampan ikon dalam bagian notifikasi"
msgstr ""
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr "Tampilkan waktu istirahat selanjutnya dalam penampan ikon"
msgstr ""
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr "Izinkan mematikan Safe Eyes"
msgstr ""
#: plugins/trayicon
msgid "About"
msgstr "Tentang"
msgstr ""
#: plugins/trayicon
msgid "Disable Safe Eyes"
msgstr "Matikan Safe Eyes"
msgstr ""
#: plugins/trayicon
msgid "Disabled until %s"
msgstr "Mati dalam %s"
msgstr ""
#: plugins/trayicon
msgid "Disabled until restart"
msgstr "Mati setelah restart"
msgstr ""
#: plugins/trayicon
msgid "Enable Safe Eyes"
msgstr "Hidupkan Safe Eyes"
msgstr ""
#: plugins/trayicon
msgid "For %d Hour"
msgid_plural "For %d Hours"
msgstr[0] "Selama %d jam"
msgstr[0] ""
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] "Selama %d menit"
msgstr[0] ""
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] "Selama %d detik"
msgstr[0] ""
#: plugins/trayicon
msgid "Next break at %s"
msgstr "Istirahat selanjutnya pada %s"
msgstr ""
#: plugins/trayicon
msgid "No Breaks Available"
msgstr "Tidak istirahat yang tersedia"
msgstr ""
#: plugins/trayicon
msgid "Settings"
msgstr "Pengaturan"
msgstr ""
#: plugins/trayicon
msgid "Take a break now"
msgstr "Ambil istirahat sekarang"
msgstr ""
#: plugins/trayicon
msgid "Until restart"
msgstr "Sampai restart"
msgstr ""
#: plugins/trayicon
msgid "Quit"
msgstr "Keluar"
msgstr ""
# plugin/mediacontrol
msgid "Media Control"
msgstr "Kontrol Media"
msgstr ""
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr "Jeda pemutar media dari pengistirahatan layar"
msgstr ""
# plugin/mediacontrol
msgid "Pause media"
msgstr "Jeda media"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Interval untuk mengatur ulang statistik (dalam jam)"
msgstr ""

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2022-01-16 12:55+0000\n"
"Last-Translator: albanobattistella <albano_battistella@hotmail.com>\n"
"PO-Revision-Date: 2019-02-26 19:18+0000\n"
"Last-Translator: Guglielmo Wilmup <wilmup67@gmail.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 4.10.1\n"
"X-Generator: Weblate 3.5-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -85,23 +85,13 @@ 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 ""
"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 protegge gli occhi dall'asthenopia ricordandoti di fare una pausa "
"mentre lavori per ore al computer"
@ -136,13 +126,9 @@ msgstr ""
"Durata della disattivazione per le scorciatoie da tastiera (in secondi)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgid "Postpone 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)"
@ -155,14 +141,6 @@ 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 ""
@ -277,10 +255,6 @@ 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 ""
@ -351,8 +325,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Mostra le statistiche basate sull'uso di Safe Eyes"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "Intervallo di ripristino delle statistiche (espressione cron)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification
msgid "Notification"
@ -388,7 +362,7 @@ msgstr "Tempo minimo per il salto senza salvaschermo (in secondi)"
# plugin/screensaver
msgid "Lock screen"
msgstr "Blocca schermo"
msgstr "Schermo bloccato"
# plugin/smartpause
msgid "Smart Pause"
@ -468,7 +442,7 @@ msgstr[1] "Per %d secondi"
#: plugins/trayicon
msgid "Next break at %s"
msgstr "Prossima pausa alle ore %s"
msgstr "Prossima pausa tra %s"
#: plugins/trayicon
msgid "No Breaks Available"

View File

@ -1,492 +0,0 @@
# 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

@ -1,496 +0,0 @@
# 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: 2021-02-10 15:50+0000\n"
"PO-Revision-Date: 2019-03-06 09:58+0000\n"
"Last-Translator: Moo <hazap@hotmail.com>\n"
"Language-Team: Lithuanian <https://hosted.weblate.org/projects/safe-eyes/"
"translations/lt/>\n"
@ -14,9 +14,10 @@ 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 ? 0 : n%10>=2 && (n"
"%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Weblate 4.5-dev\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"
# Short break
msgid "Tightly close your eyes"
@ -40,7 +41,7 @@ msgstr "Pamirksėkite"
# Short break
msgid "Focus on a point in the far distance"
msgstr "Žiūrėkite į tolumoje esantį tašką"
msgstr "Susitelkite į tolumoje esantį objektą"
# Short break
msgid "Have some water"
@ -56,23 +57,23 @@ msgstr "Atsiloškite į kėdę ir atsipalaiduokite"
# Commandline arg description
msgid "show the about dialog"
msgstr "rodyti informaciją apie programą"
msgstr "rodyti dialogą apie programą"
# Commandline arg description
msgid "disable the currently running safeeyes instance"
msgstr "išjungti šiuo metu paleistą safeeyes"
msgstr "išjungti šiuo metu paleistą safeeyes egzempliorių"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "įjungti šiuo metu paleistą safeeyes"
msgstr "įjungti šiuo metu paleistą safeeyes egzempliorių"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "baigti paleisto safeeyes darbą ir išeiti"
msgstr "baigti paleisto safeeyes egzemplioriaus darbą ir išeiti"
# Commandline arg description
msgid "show the settings dialog"
msgstr "rodyti nuostatų langą"
msgstr "rodyti nustatymų dialogą"
# Commandline arg description
msgid "start safeeyes in debug mode"
@ -86,23 +87,13 @@ 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 ""
"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 ""
"Programa Safe Eyes, primindama jums apie pertraukas, apsaugo jūsų akis nuo "
"akių nuovargio (astenopijos)"
@ -136,16 +127,12 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Išjungtų klaviatūros trumpinių laikotarpis (sekundėmis)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgid "Postpone 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"
@ -155,14 +142,6 @@ 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 ""
@ -178,7 +157,7 @@ msgstr "Ar tikrai norite atstatyti visus nustatymus į numatytuosius?"
# Settings dialog
msgid "Options"
msgstr "Parinktys"
msgstr "Parametrai"
# Settings dialog
msgid "Short Breaks"
@ -210,7 +189,7 @@ msgstr "Pertraukos"
# Settings dialog
msgid "Plugins"
msgstr "Papildiniai"
msgstr "Įskiepiai"
# Settings dialog
msgid "Type"
@ -258,27 +237,23 @@ msgstr "Laikas (minutėmis)"
# Settings dialog
msgid "Break Settings"
msgstr "Pertraukos nuostatos"
msgstr "Pertraukos nustatymai"
# Settings dialog
msgid "Plugin Settings"
msgstr "Papildinio nuostatos"
msgstr "Įskiepio nustatymai"
# Settings dialog
msgid "Plugin does not support %s desktop environment"
msgstr "Papildinys nepalaiko %s darbalaukio aplinkos"
msgstr "Įskiepis 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“"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Neteisingas cron reiškinys „%s“"
msgstr "Įdiekite komandų eilutės įrankį \"%s\""
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
@ -338,7 +313,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"
@ -349,8 +324,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Rodyti statistiką pagal tai, kaip naudojate Safe Eyes"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "Statistikos atstatymo intervalas (cron reiškinys)"
msgid "Interval to reset statistics (in hours)"
msgstr "Statistikos atstatymo intervalas (valandomis)"
# plugin/notification
msgid "Notification"
@ -421,7 +396,7 @@ msgstr "Rodyti dėklo piktogramą pranešimų srityje"
#: plugins/trayicon
msgid "Show next break time in tray icon"
msgstr "Sistemos dėklo ženkliuke rodyti kitos pertraukos laiką"
msgstr "Rodyti dėklo piktogramoje kitos pertraukos laiką"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
@ -470,7 +445,7 @@ msgstr[2] "%d sekundžių"
#: plugins/trayicon
msgid "Next break at %s"
msgstr "Kita pertrauka %s"
msgstr "Kita pertrauka ties %s"
#: plugins/trayicon
msgid "No Breaks Available"
@ -478,7 +453,7 @@ msgstr "Nėra prieinamų pertraukų"
#: plugins/trayicon
msgid "Settings"
msgstr "Nuostatos"
msgstr "Nustatymai"
#: plugins/trayicon
msgid "Take a break now"
@ -503,7 +478,3 @@ 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,304 +19,370 @@ 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"
# 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 "Aizvērt"
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"
#. 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 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)"
msgid "Postponement duration (in minutes)"
#. Settings dialog
msgid "Postpone duration (in minutes)"
msgstr "Atlikšanas laiks (minūtēs)"
# Settings dialog
msgid "Show breaks in random order"
msgstr ""
#. Settings dialog
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
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 "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
msgid "Invalid cron expression '%s'"
msgstr ""
#. Settings dialog
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 "Statistics reset interval (cron expression)"
msgstr ""
#. plugin/healthstats
msgid "Interval to reset statistics (in hours)"
msgstr "Statistikas atstatīšanas intervāls (stundās)"
#. 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ē"
@ -401,14 +467,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,21 +85,13 @@ 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 ""
"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 ве штити од замор на очите (asthenophobia) така што ве потсетува "
"да правите паузи додека работите долги часови на компјутер"
@ -133,11 +125,7 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr ""
# Settings dialog
msgid "Postponement duration (in minutes)"
msgstr ""
# Settings dialog
msgid "Show breaks in random order"
msgid "Postpone duration (in minutes)"
msgstr ""
# Settings dialog
@ -152,14 +140,6 @@ 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 ""
@ -272,10 +252,6 @@ 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 ""
@ -345,7 +321,7 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification

View File

@ -1,494 +0,0 @@
# 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: 2021-07-30 17:35+0000\n"
"PO-Revision-Date: 2019-03-02 23:28+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 4.7.2-dev\n"
"X-Generator: Weblate 3.5-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -85,24 +85,13 @@ 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 ""
"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 "Øyetrygg beskytter øyene dine fra belastning"
# About dialog
@ -134,13 +123,9 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Tastatursnarveier avskrudd i periode (i sekunder)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgid "Postpone 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)"
@ -153,17 +138,9 @@ 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 en inndeling av de små pausene"
msgstr "Tiden mellom lange pauser må være være en inndeling av de små pausene"
# Settings dialog
msgid "Reset"
@ -274,11 +251,6 @@ 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"
@ -350,8 +322,8 @@ msgstr "Vis statistikk basert på din bruk av Øyetrygg"
# plugin/healthstats
#, fuzzy
msgid "Statistics reset interval (cron expression)"
msgstr "Tid for tilbakestilling av statistikk (Cron-uttrykk)"
msgid "Interval to reset statistics (in hours)"
msgstr "Intervall for tilbakestilling av statistikk (i timer)"
# plugin/notification
msgid "Notification"
@ -498,8 +470,3 @@ 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: 2021-02-10 15:50+0000\n"
"PO-Revision-Date: 2019-03-02 23:28+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 4.5-dev\n"
"X-Generator: Weblate 3.5-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -85,23 +85,13 @@ 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 ""
"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 beschermt uw ogen tegen vermoeidheid (asthenopie) door u eraan te "
"herinneren tijdig een pauze in te lassen wanneer u langere tijd aan de "
@ -136,13 +126,9 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Tijd dat sneltoetsen uitgeschakeld zijn (in seconden)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgid "Postpone 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)"
@ -155,14 +141,6 @@ 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 ""
@ -279,10 +257,6 @@ 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"
@ -353,8 +327,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Toon statistieken, gebaseerd op hoe je Safe Eyes gebruikt"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "Tijd waarna statistieken worden hersteld (cron-uitdrukking)"
msgid "Interval to reset statistics (in hours)"
msgstr "Tussenpoos om statistieken te herstellen (in uren)"
# plugin/notification
msgid "Notification"
@ -501,7 +475,3 @@ 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: 2023-10-31 16:04+0000\n"
"Last-Translator: Eryk Michalak <gnu.ewm@protonmail.com>\n"
"PO-Revision-Date: 2018-09-08 20:23+0000\n"
"Last-Translator: WaldiS <admin@sto.ugu.pl>\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 5.2-dev\n"
"X-Generator: Weblate 3.2-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -86,23 +86,13 @@ 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 ""
"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 chroni Twoje oczy przed przemęczeniem i astenopią, przypominając "
"Ci o robieniu przerw podczas długotrwałej pracy przy komputerze"
@ -136,13 +126,9 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Okres wyłączenia skrótów klawiszowych (w sekundach)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgid "Postpone 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)"
@ -155,25 +141,17 @@ 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 "Resetuj"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr "Czy chcesz przywrócić ustawienia domyślne?"
msgstr ""
# Settings dialog
msgid "Options"
@ -189,15 +167,15 @@ msgstr "Długie Przerwy"
# Settings dialog
msgid "Delete"
msgstr "Usuń"
msgstr ""
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr "Czy na pewno chcesz usunąć tę przerwę?"
msgstr ""
# Settings dialog
msgid "You can't undo this action."
msgstr "Nie można cofnąć tej operacji."
msgstr ""
# Settings dialog
msgid "Break"
@ -241,7 +219,7 @@ msgstr "Czas trwania"
# Settings dialog
msgid "Time to wait"
msgstr "Czas oczekiwania"
msgstr ""
# Settings dialog
msgid "Override"
@ -275,10 +253,6 @@ 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"
@ -313,7 +287,7 @@ msgstr "Odtwórz dźwięk przed przerwami"
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr "Odtwarzaj alarm dźwiękowy po przerwach"
msgstr ""
# plugin/donotdisturb
msgid "Do Not Disturb"
@ -348,8 +322,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Pokaż statystyki oparte o Safe Eyes"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "Okres resetowania statystyk (wyrażenie cron)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification
msgid "Notification"
@ -385,7 +359,7 @@ msgstr "Minimalna ilość sekund do pominięcia wygaszacza ekranu"
# plugin/screensaver
msgid "Lock screen"
msgstr "Ekran blokady"
msgstr ""
# plugin/smartpause
msgid "Smart Pause"
@ -407,7 +381,7 @@ msgstr ""
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr "Odłóż następną przerwę do czasu, gdy system będzie bezczynny"
msgstr ""
#: plugins/trayicon
msgid "Tray Icon"
@ -423,7 +397,7 @@ msgstr "Pokaż następny czas przerwy w obszarze powiadomień"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr "Pozwól na zablokowanie Safe Eyes"
msgstr ""
#: plugins/trayicon
msgid "About"
@ -480,7 +454,7 @@ msgstr "Ustawienia"
#: plugins/trayicon
msgid "Take a break now"
msgstr "Zrób sobie teraz przerwę"
msgstr "Przerwa"
#: plugins/trayicon
msgid "Until restart"
@ -492,16 +466,12 @@ msgstr "Wyjście"
# plugin/mediacontrol
msgid "Media Control"
msgstr "Kontrola multimediów"
msgstr ""
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr "Możliwość zatrzymania odtwarzaczy multimedialnych z ekranu blokady"
msgstr ""
# plugin/mediacontrol
msgid "Pause media"
msgstr "Wstrzymaj odtwarzanie"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Czas do wyzerowania statystyk (w godzinach)"
msgstr ""

View File

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

View File

@ -1,505 +0,0 @@
# 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: 2023-11-26 00:02+0000\n"
"Last-Translator: Almaz Mannanov <AlmazWorks@gmail.com>\n"
"PO-Revision-Date: 2018-06-28 01:42+0000\n"
"Last-Translator: Anton Bolshakov <blshkv@pentoo.ch>\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 5.2.1-rc\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"
# 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,26 +86,14 @@ 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 ""
"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 защищает ваши глаза от перенапряжения (астенопии), напоминая о "
"необходимости сделать перерыв во время долгих часов за ПК"
msgid "description"
msgstr "Описание"
# About dialog
msgid "License"
@ -136,16 +124,12 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Период блокировки горячих клавиш (в секундах)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgid "Postpone 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"
@ -155,26 +139,17 @@ 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"
@ -190,15 +165,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"
@ -234,7 +209,7 @@ msgstr "Выбрать"
# Settings dialog
msgid "Please select an image"
msgstr "Пожалуйста, выберите изображение"
msgstr "Пожалуйста выберите изображение"
# Settings dialog
msgid "Duration"
@ -242,7 +217,7 @@ msgstr "Длительность"
# Settings dialog
msgid "Time to wait"
msgstr "Время ожидания"
msgstr ""
# Settings dialog
msgid "Override"
@ -270,19 +245,15 @@ 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'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "Недопустимое выражение cron '%s'"
msgstr "Пожалуйста установите инструмент командной строки '%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"
@ -290,7 +261,7 @@ msgstr "Новый перерыв"
# Settings dialog
msgid "Remove"
msgstr "Стереть"
msgstr "Удалить"
# Settings dialog
msgid "Discard"
@ -314,7 +285,7 @@ msgstr "Подавать звуковой сигнал перед перерыв
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr "Проигрывать звуковой сигнал после перерывов"
msgstr ""
# plugin/donotdisturb
msgid "Do Not Disturb"
@ -322,7 +293,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"
@ -334,11 +305,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"
@ -346,11 +317,11 @@ msgstr "Статистика здоровья"
# 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)"
msgstr "Интервал сброса статистики (выражение cron)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification
msgid "Notification"
@ -386,7 +357,7 @@ msgstr "Минимальное время (в секундах) для проп
# plugin/screensaver
msgid "Lock screen"
msgstr "Заблокировать экран"
msgstr ""
# plugin/smartpause
msgid "Smart Pause"
@ -403,12 +374,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"
@ -424,7 +395,7 @@ msgstr "Показывать время до следующего перерыв
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr "Разрешить выключение Safe Eyes"
msgstr ""
#: plugins/trayicon
msgid "About"
@ -493,16 +464,12 @@ 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 "Приостановить воспроизведение"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Интервал для сброса статистики (в часах)"
msgstr ""

View File

@ -73,17 +73,13 @@ 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 "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 ""
# About dialog
@ -115,11 +111,7 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr ""
# Settings dialog
msgid "Postponement duration (in minutes)"
msgstr ""
# Settings dialog
msgid "Show breaks in random order"
msgid "Postpone duration (in minutes)"
msgstr ""
# Settings dialog
@ -134,14 +126,6 @@ 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 ""
@ -254,10 +238,6 @@ 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 ""
@ -327,7 +307,7 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification
@ -456,18 +436,6 @@ 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 ""
@ -486,4 +454,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: 2023-08-10 19:53+0000\n"
"Last-Translator: Milan Šalka <salka.milan@googlemail.com>\n"
"PO-Revision-Date: 2019-02-17 23:26+0000\n"
"Last-Translator: Jose Riha <jose1711@gmail.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 5.0-dev\n"
"X-Generator: Weblate 3.5-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -85,27 +85,17 @@ 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 ""
"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 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"
@ -136,13 +126,9 @@ 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 "Postponement duration (in minutes)"
msgid "Postpone 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ť)"
@ -155,14 +141,6 @@ 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"
@ -275,10 +253,6 @@ 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"
@ -348,8 +322,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Zobraziť štatistiky o tom, ako používate Safe Eyes"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "Interval vynulovania štatistík (výraz pre plánovač cron)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification
msgid "Notification"
@ -405,7 +379,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 "Odložiť ďalšiu prestávku až dokiaľ bude systém nečinný"
msgstr ""
#: plugins/trayicon
msgid "Tray Icon"
@ -421,7 +395,7 @@ msgstr "Zobraziť čas nasledujúcej prestávku v ikone"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr "Povoliť vypnutie Safe Eyes"
msgstr ""
#: plugins/trayicon
msgid "About"
@ -490,12 +464,12 @@ msgstr "Koniec"
# plugin/mediacontrol
msgid "Media Control"
msgstr "Ovládanie médií"
msgstr ""
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr "Pozastaviť prehrávače médií z obrazovky prestávky"
msgstr ""
# plugin/mediacontrol
msgid "Pause media"
msgstr "Pozastaviť média"
msgstr ""

View File

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

View File

@ -86,23 +86,13 @@ 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 ""
"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 கணனியில் நீண்ட நேரம் பணியாற்றுவதால் "
"ஏற்படும் கண் சோர்வை தடுக்கிறது"
@ -136,13 +126,9 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "விசைப்பலகை குறுக்குவழிகள் முடக்கப்பட்டிருக்கும் காலம் (விநாடிகளில்)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgid "Postpone duration (in minutes)"
msgstr "இடைவேளையை ஒத்தி வைக்கும் காலம் (நிமிடங்களில்)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "எழுமாறான வரிசையில் இடைவேளைகளை காண்பிக்கவும்"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
msgstr "கட்டாய இடைவேளை (இடைவேளையை தவிர்க்க முடியாது)"
@ -155,14 +141,6 @@ 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 ""
@ -277,10 +255,6 @@ 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 கோப்புறையில் சேர்க்கவும்"
@ -350,8 +324,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Safe Eyes பயன்பாடு அடிப்படையிலான ஆரோக்கிய புள்ளிவிவரங்கள்"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr ""
msgid "Interval to reset statistics (in hours)"
msgstr "திரை நேரத்தை மீட்டமைப்பதற்கான இடைவேளை (மணித்தியாலங்களில்)"
# plugin/notification
msgid "Notification"
@ -367,7 +341,7 @@ msgstr "%s விநாடிகளில் குறுகிய இடைவ
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr "%s விநாடிகளில் நீண்ட இடைவேளைக்கு தயாராகுங்கள்"
msgstr "{} விநாடிகளில் நீண்ட இடைவேளைக்கு தயாராகுங்கள்"
# plugin/screensaver
msgid "Screensaver"
@ -498,7 +472,3 @@ 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: 2021-02-10 15:50+0000\n"
"Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n"
"PO-Revision-Date: 2019-03-17 23:04+0000\n"
"Last-Translator: Serdar Sağlam <teknomobil@msn.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 4.5-dev\n"
"X-Generator: Weblate 3.6-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -85,23 +85,13 @@ 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 ""
"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 uzun bir süre boyunca bilgisayar başında çalışmanız gerektiği "
"zamanlarda size mola vermeyi hatırlatmak suretiyle gözlerinizi göz "
@ -136,13 +126,9 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "Klavye kısayollarının etkisiz kalma süresi (saniye)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgid "Postpone 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)"
@ -155,14 +141,6 @@ 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"
@ -275,10 +253,6 @@ 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"
@ -348,8 +322,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Safe Eyes kullanımınıza ait istatistikler"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "İstatistikleri sıfırlama zamanı (cron ifadesi)"
msgid "Interval to reset statistics (in hours)"
msgstr "İstatistikleri sıfırlama aralığı (saat olarak)"
# plugin/notification
msgid "Notification"
@ -499,7 +473,3 @@ 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,21 +84,13 @@ 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 ""
"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 ""
# About dialog
@ -130,11 +122,7 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr ""
# Settings dialog
msgid "Postponement duration (in minutes)"
msgstr ""
# Settings dialog
msgid "Show breaks in random order"
msgid "Postpone duration (in minutes)"
msgstr ""
# Settings dialog
@ -149,14 +137,6 @@ 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 ""
@ -269,10 +249,6 @@ 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 ""
@ -342,7 +318,7 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification

View File

@ -6,17 +6,17 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2024-02-15 13:01+0000\n"
"Last-Translator: Сергій <sergiy.goncharuk.1@gmail.com>\n"
"PO-Revision-Date: 2019-02-10 11:10+0000\n"
"Last-Translator: Kyrill <kapa76@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 5.4-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 3.5-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,30 +80,22 @@ 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 ""
"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 "Опис"
msgid "description"
msgstr ""
"Safe Eyes нагадує вам робити перерви, при довгій роботі за комп'ютером, "
"захищаючи ваші очі від втоми (asthenopia)"
# About dialog
msgid "License"
@ -119,27 +111,23 @@ 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 "Postponement duration (in minutes)"
msgstr "Тривалість відкладення (в хвилинах)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "Показувати перерви у випадковому порядку"
msgid "Postpone duration (in minutes)"
msgstr "Тривалість перенесення (хв)"
# Settings dialog
msgid "Strict break (No way to skip breaks)"
@ -153,14 +141,6 @@ 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 ""
@ -168,11 +148,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"
@ -196,7 +176,7 @@ msgstr "Ви упевнені, що хочете видалити цю пере
# Settings dialog
msgid "You can't undo this action."
msgstr "Цю дію неможливо скасувати."
msgstr "Цю дію не можливо відмінити."
# Settings dialog
msgid "Break"
@ -232,7 +212,7 @@ msgstr "Вибір"
# Settings dialog
msgid "Please select an image"
msgstr "Виберіть зображення"
msgstr "Будь ласка, виберіть зображення"
# Settings dialog
msgid "Duration"
@ -240,19 +220,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"
@ -272,11 +252,7 @@ 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'"
msgstr "Будь ласка, встановіть засіб командного рядка «%s»"
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
@ -293,7 +269,7 @@ msgstr "Вилучити"
# Settings dialog
msgid "Discard"
msgstr "Скасувати"
msgstr "Скинути"
# Settings dialog
msgid "Save"
@ -301,19 +277,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"
@ -326,15 +302,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"
@ -349,8 +325,8 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr "Показувати статистику на основі використання вами програми Safe Eyes"
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "Інтервал скидання статистики (вираз cron)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification
msgid "Notification"
@ -358,15 +334,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"
@ -378,11 +354,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"
@ -394,17 +370,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"
@ -412,19 +388,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 "Дозволити вимкнення Safe Eyes"
msgstr ""
#: plugins/trayicon
msgid "About"
@ -449,23 +425,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"
@ -473,7 +449,7 @@ msgstr "Наступна перерва о %s"
#: plugins/trayicon
msgid "No Breaks Available"
msgstr "Перерви недоступні"
msgstr "Жодних перерв"
#: plugins/trayicon
msgid "Settings"
@ -493,16 +469,12 @@ 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 "Призупинити медіа"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "Інтервал скидання статистики (в годинах)"
msgstr "Призупинення медіа"

View File

@ -84,21 +84,13 @@ 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 ""
"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 ""
# About dialog
@ -130,11 +122,7 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr ""
# Settings dialog
msgid "Postponement duration (in minutes)"
msgstr ""
# Settings dialog
msgid "Show breaks in random order"
msgid "Postpone duration (in minutes)"
msgstr ""
# Settings dialog
@ -149,14 +137,6 @@ 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 ""
@ -269,10 +249,6 @@ 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 ""
@ -342,7 +318,7 @@ msgid "Show statistics based on how you use Safe Eyes"
msgstr ""
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2022-11-26 23:54+0000\n"
"Last-Translator: Minh P <phandinhminh@protonmail.ch>\n"
"PO-Revision-Date: 2018-08-26 03:45+0000\n"
"Last-Translator: Hoàng Trần <hoangtk102@gmail.com>\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 4.15-dev\n"
"X-Generator: Weblate 3.2-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -79,29 +79,19 @@ msgstr "Chạy Safe Eyes trong chế độ gỡ rối"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr "in trạng thái chạy phiên bản Safe Eyes và thoát"
msgstr ""
# 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 ""
"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 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"
@ -136,13 +126,9 @@ 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 "Postponement duration (in minutes)"
msgid "Postpone 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)"
@ -153,15 +139,7 @@ msgstr "Cho phép tạm hoãn nghỉ ngơi"
# Settings dialog
msgid "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"
msgstr "Persist the internal state"
# Settings dialog
msgid "Long break interval must be a multiple of short break interval"
@ -169,11 +147,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 "Đặt lại"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
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?"
msgstr ""
# Settings dialog
msgid "Options"
@ -189,15 +167,15 @@ msgstr "Nghỉ ngơi dài"
# Settings dialog
msgid "Delete"
msgstr "Xóa"
msgstr ""
# Settings dialog
msgid "Are you sure you want to delete this break?"
msgstr "Bạn có chắc chắn muốn xóa thời gian nghỉ này không?"
msgstr ""
# Settings dialog
msgid "You can't undo this action."
msgstr "Bạn không thể hoàn tác hành động này."
msgstr ""
# Settings dialog
msgid "Break"
@ -241,7 +219,7 @@ msgstr "Thời gian"
# Settings dialog
msgid "Time to wait"
msgstr "Thời gian chờ"
msgstr ""
# Settings dialog
msgid "Override"
@ -275,10 +253,6 @@ 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)"
@ -305,15 +279,15 @@ msgstr "Thông báo âm thanh"
# plugin/audiblealert
msgid "Play audible alert before and after breaks"
msgstr "Phát âm thanh cảnh báo trước và sau khi nghỉ giải lao"
msgstr ""
# plugin/audiblealert
msgid "Play audible alert before breaks"
msgstr "Phát âm thanh cảnh báo trước khi nghỉ giải lao"
msgstr ""
# plugin/audiblealert
msgid "Play audible alert after breaks"
msgstr "Phát âm thanh cảnh báo sau khi nghỉ giải lao"
msgstr ""
# plugin/donotdisturb
msgid "Do Not Disturb"
@ -338,7 +312,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 "Không làm phiền khi đang sử dụng pin"
msgstr ""
# plugin/healthstats
msgid "Health Statistics"
@ -349,8 +323,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 "Statistics reset interval (cron expression)"
msgstr "Khoảng thời gian đặt lại thống kê (biểu thức cron)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification
msgid "Notification"
@ -386,7 +360,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 "Khóa màn hình"
msgstr ""
# plugin/smartpause
msgid "Smart Pause"
@ -408,7 +382,7 @@ msgstr ""
# plugin/smartpause
msgid "Postpone the next break until the system becomes idle"
msgstr "Hoãn lần nghỉ tiếp theo cho đến khi hệ thống không hoạt động"
msgstr ""
#: plugins/trayicon
msgid "Tray Icon"
@ -424,7 +398,7 @@ msgstr "Hiện thời gian nghỉ tiếp theo ở biểu tượng khay"
#: plugins/trayicon
msgid "Allow disabling Safe Eyes"
msgstr "Cho phép tắt Safe Eyes"
msgstr ""
#: plugins/trayicon
msgid "About"
@ -487,12 +461,12 @@ msgstr "Thoát"
# plugin/mediacontrol
msgid "Media Control"
msgstr "Kiểm soát phương tiện"
msgstr ""
# plugin/mediacontrol
msgid "Pause media players from the break screen"
msgstr "Tạm dừng trình phát đa phương tiện từ màn hình nghỉ"
msgstr ""
# plugin/mediacontrol
msgid "Pause media"
msgstr "Tạm dừng media"
msgstr ""

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2024-02-21 10:01+0000\n"
"Last-Translator: aerowolf <aerowolf@tom.com>\n"
"PO-Revision-Date: 2019-01-08 11:07+0000\n"
"Last-Translator: wcy <m895686@163.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 5.5-dev\n"
"X-Generator: Weblate 3.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"
@ -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 "暂停当前正在运行的Safe Eyes"
msgstr "禁用当前正在运行的Safeeyes"
# Commandline arg description
msgid "enable the currently running safeeyes instance"
msgstr "恢复当前正在运行的Safe Eyes"
msgstr "启用当前正在运行的Safeeyes"
# Commandline arg description
msgid "quit the running safeeyes instance and exit"
msgstr "退出Safe Eeyes"
msgstr "退出正在运行的Safeeyes"
# Commandline arg description
msgid "show the settings dialog"
@ -75,21 +75,15 @@ msgstr "显示“设置”对话框"
# Commandline arg description
msgid "start safeeyes in debug mode"
msgstr "以调试模式运行Safe Eyes"
msgstr "以调试模式运行Safeeyes"
# Commandline arg description
msgid "print the status of running safeeyes instance and exit"
msgstr "显示Safe Eyes运行状态后退出"
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服务器可以使用命令行参数。"
msgstr "SafeEyes还未启动"
# About dialog
msgid "Close"
@ -97,16 +91,14 @@ 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"
msgid "description"
msgstr ""
"长时间使用电脑办公时Safe Eyes 会适时提醒您休息一下,以便帮助您保护好眼睛、"
"远离视疲劳"
"当您持续使用电脑办公太长时间时Safe Eyes 会提醒您休息一下,通过这种方式来保"
"护您的眼睛,使您远离视疲劳"
# About dialog
msgid "License"
msgstr "许可"
msgstr "许可"
# Break screen
msgid "Skip"
@ -122,7 +114,7 @@ msgstr "休息时长(秒)"
# Settings dialog
msgid "Interval between two breaks (in minutes)"
msgstr "前后休息的间隔时间(分钟)"
msgstr "相邻休息之间的时间间隔(分钟)"
# Settings dialog
msgid "Time to prepare for a break (in seconds)"
@ -133,16 +125,12 @@ msgid "Keyboard shortcuts disabled period (in seconds)"
msgstr "禁用键盘快捷键的时长(秒)"
# Settings dialog
msgid "Postponement duration (in minutes)"
msgid "Postpone 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"
@ -150,27 +138,19 @@ 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服务器命令行命令可能无法正常工作"
msgstr "维持内部状态"
# 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"
@ -190,11 +170,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"
@ -238,7 +218,7 @@ msgstr "时长"
# Settings dialog
msgid "Time to wait"
msgstr "等候时间"
msgstr ""
# Settings dialog
msgid "Override"
@ -262,7 +242,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'"
@ -272,17 +252,13 @@ 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"
@ -302,15 +278,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"
@ -318,7 +294,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"
@ -326,7 +302,7 @@ msgstr "任何时候都不要中断这些窗口"
# plugin/donotdisturb
msgid "Interrupt these windows regardless of their state"
msgstr "中断这些窗口无视其状态"
msgstr "中断这些窗口无视其状态"
# plugin/donotdisturb
msgid "Switch the interruptible windows to normal mode"
@ -342,11 +318,11 @@ msgstr "健康统计"
# 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)"
msgstr "重置统计数据的时间 (cron expr)"
msgid "Interval to reset statistics (in hours)"
msgstr ""
# plugin/notification
msgid "Notification"
@ -354,7 +330,7 @@ msgstr "通知"
# plugin/notification
msgid "Show a system notification before breaks"
msgstr "在休息之前显示系统通知"
msgstr "在休息之前显示一个系统通知"
# plugin/notification
msgid "Ready for a short break in %s seconds"
@ -366,23 +342,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"
@ -398,11 +374,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"
@ -410,15 +386,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 "允许暂停Safe Eyes"
msgstr ""
#: plugins/trayicon
msgid "About"
@ -426,19 +402,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"
@ -457,11 +433,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"
@ -481,16 +457,12 @@ 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 "暂停媒体"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "重置统计间隔(小时)"
msgstr ""

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2024-01-30 14:01+0000\n"
"Last-Translator: 麋悟BigELK176 <bigelk176@gmail.com>\n"
"PO-Revision-Date: 2018-07-02 15:36+0000\n"
"Last-Translator: ezjerry liao <ezjerry@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 5.4-dev\n"
"X-Generator: Weblate 3.1-dev\n"
# Short break
msgid "Tightly close your eyes"
@ -83,13 +83,7 @@ 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 伺服器。使用終端指令參數進行開啟。"
msgstr "Safe Eyes 沒有正在執行"
# About dialog
msgid "Close"
@ -97,9 +91,7 @@ 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"
msgid "description"
msgstr "描述"
# About dialog
@ -116,379 +108,359 @@ 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 "Postponement duration (in minutes)"
msgstr "推遲休息時長(分鐘)"
# Settings dialog
msgid "Show breaks in random order"
msgstr "顯示休息隨機順序"
msgid "Postpone duration (in minutes)"
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 "維持內部計算狀態"
# 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 伺服器,終端指令可能法作用"
msgstr ""
# 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 "外掛未支持 %s 桌機環境"
msgstr ""
# Settings dialog
msgid "Please install the Python module '%s'"
msgstr "請安裝 Python 模組 '%s'"
msgstr ""
# Settings dialog
msgid "Please install the command-line tool '%s'"
msgstr "請安裝終端指令工具 '%s'"
# Settings dialog
msgid "Invalid cron expression '%s'"
msgstr "無效的 cron 表述式 '%s'"
msgstr ""
# Settings dialog
msgid "Please add the resource %(resource)s to %(config_resource)s directory"
msgstr "請將資源 %(resource)s 加入至 %(config_resource) 的路徑"
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"
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 "依您使用 Safe Eyes 方式來顯示統計"
msgstr ""
# plugin/healthstats
msgid "Statistics reset interval (cron expression)"
msgstr "重設統計的時間 (cron expr)"
msgid "Interval to reset statistics (in hours)"
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 ""
# plugin/notification
msgid "Ready for a long break in %s seconds"
msgstr "在 %s 秒後準備進入一個長休息"
msgstr ""
# 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 "如果系統閒置時則暫停 Safe Eyes"
msgstr ""
# plugin/smartpause
msgid "Minimum idle time to pause Safe Eyes (in seconds)"
msgstr "暫停 Safe Eyes 的最短閒置時間(秒)"
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 "允許關閉 Safe Eyes"
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 ""
#: 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[0] ""
#: plugins/trayicon
msgid "For %d Minute"
msgid_plural "For %d Minutes"
msgstr[0] "%d 分鐘"
msgstr[0] ""
#: plugins/trayicon
msgid "For %d Second"
msgid_plural "For %d Seconds"
msgstr[0] "%d 秒"
msgstr[0] ""
#: plugins/trayicon
msgid "Next break at %s"
msgstr "下次休息在 %s"
msgstr ""
#: 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 "暫停多媒體"
# plugin/healthstats
#~ msgid "Interval to reset statistics (in hours)"
#~ msgstr "重置數據間隔(時)"
msgstr ""

View File

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

View File

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

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;https://www.gnu.org/licenses/&gt;.</property>
along with this program. If not, see &lt;http://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;https://www.gnu.org/licenses/&gt;.</pr
<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.9</property>
<property name="label" translatable="yes">Safe Eyes 2.0.9</property>
<property name="justify">center</property>
<attributes>
<attribute name="style" value="normal"/>
@ -89,7 +89,7 @@ along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</pr
<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;https://www.gnu.org/licenses/&gt;.</pr
</child>
<child>
<object class="GtkLinkButton" id="btn_url">
<property name="label" translatable="yes">https://slgobinath.github.io/SafeEyes</property>
<property name="label" translatable="yes">http://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">https://slgobinath.github.io/SafeEyes</property>
<property name="uri">http://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,15 +20,13 @@
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
from safeeyes import utility
import logging
from safeeyes import Utility
class Break:
class Break(object):
"""
An entity class which represents a break.
"""
@ -78,150 +76,94 @@ class BreakType(Enum):
LONG_BREAK = 2
class BreakQueue:
class BreakQueue(object):
def __init__(self, config, context):
self.context = context
self.__current_break = None
self.__current_long = 0
self.__current_short = 0
self.__first_break = None
self.__short_break_time = config.get('short_break_interval')
self.__long_break_time = config.get('long_break_interval')
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
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'))
# 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:
brk = self.next()
while brk != current_break and brk.name != last_break:
brk = self.next()
pointer = self.next()
while(pointer != current_break and pointer.name != last_break):
pointer = self.next()
def get_break(self, break_type = None):
def get_break(self):
if self.__current_break is None:
self.__current_break = self.next()
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]
return self.__current_break
def is_long_break(self):
return self.__current_break is not None and self.__current_break.type == BreakType.LONG_BREAK
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()
def next(self):
if self.is_empty():
return None
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()
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:
break_obj = self.__next_short()
# 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
self.__current_break = break_obj
self.context['session']['break'] = self.__current_break.name
return break_obj
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 is_empty(self):
return self.__short_pointer is None and self.__long_pointer is None
def __build_queue(self, break_type, break_configs, break_time, break_duration):
"""
Build a queue of breaks.
Build a circular queue of breaks.
"""
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):
head = None
tail = None
for break_config in break_configs:
name = _(break_config['name'])
duration = break_config.get('duration', break_duration)
image = break_config.get('image')
@ -236,38 +178,32 @@ class BreakQueue:
break_obj = Break(break_type, name, interval,
duration, image, plugins)
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'))
if head is None:
head = break_obj
tail = break_obj
else:
tail.next = break_obj
tail = break_obj
# 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, # 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)
START = 0,
WAITING = 1,
PRE_BREAK = 2,
BREAK = 3,
STOPPED = 4,
QUIT = 5
class EventHook:
class EventHook(object):
"""
Hook to attach and detach listeners to system events.
"""
@ -293,25 +229,21 @@ class EventHook:
return True
class Config:
class Config(object):
"""
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)
# 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']
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']
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:
@ -329,9 +261,9 @@ class Config:
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):
@ -359,7 +291,7 @@ class Config:
"""
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):
"""
@ -383,7 +315,7 @@ class Config:
return self.__user_config != config.__user_config
class TrayAction:
class TrayAction(object):
"""
Data object wrapping name, icon and action.
"""
@ -399,7 +331,7 @@ class TrayAction:
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
@ -413,7 +345,7 @@ class TrayAction:
@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

@ -1,55 +0,0 @@
<?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.9" date="2023-06-04" />
</releases>
<content_rating type="oars-1.1" />
</component>

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": [],
"shell_commands": ["xprop"],
"operating_systems": [],
"desktop_environments": [],
"resources": []
@ -37,4 +37,4 @@
}
],
"break_override_allowed": true
}
}

View File

@ -1,33 +0,0 @@
# 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:
if utility.DESKTOP_ENVIRONMENT == "gnome":
return None
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' because it is required in Ubuntu 14.04
NOTE: Do not remove the unused import 'GdkX11' becuase it is required in Ubuntu 14.04
"""
import os
@ -30,8 +30,6 @@ import gi
gi.require_version('Gdk', '3.0')
from gi.repository import Gdk
from gi.repository import GdkX11 # noqa F401
from gi.repository import Gio
from safeeyes import utility
context = None
skip_break_window_classes = []
@ -40,24 +38,7 @@ unfullscreen_allowed = True
dnd_while_on_battery = False
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):
def is_active_window_skipped(pre_break):
"""
Check for full-screen applications.
This method must be executed by the main thread. If not, it will cause random failure.
@ -81,15 +62,16 @@ def is_active_window_skipped_xorg(pre_break):
# Extract the process name
process_names = re.findall('"(.+?)"', stdout)
if process_names:
process_name = process_names[1].lower()
if _window_class_matches(process_name, skip_break_window_classes):
process = process_names[1].lower()
if process in skip_break_window_classes:
return True
elif _window_class_matches(process_name, take_break_window_classes):
elif process in take_break_window_classes:
if is_fullscreen and unfullscreen_allowed and not pre_break:
try:
active_window.unfullscreen()
except BaseException as e:
logging.error('Error in unfullscreen the window ' + process_name, exc_info=e)
except BaseException:
logging.error(
'Error in unfullscreen the window ' + process)
return False
return is_fullscreen
@ -97,35 +79,6 @@ def is_active_window_skipped_xorg(pre_break):
return False
def is_idle_inhibited_gnome():
"""
GNOME Shell doesn't work with wlrctl, and there is no way to enumerate
fullscreen windows, but GNOME does expose whether idle actions like
starting a screensaver are inhibited, which is a close approximation if
not a better metric.
"""
dbus_proxy = Gio.DBusProxy.new_for_bus_sync(
bus_type=Gio.BusType.SESSION,
flags=Gio.DBusProxyFlags.NONE,
info=None,
name='org.gnome.SessionManager',
object_path='/org/gnome/SessionManager',
interface_name='org.gnome.SessionManager',
cancellable=None,
)
result = dbus_proxy.get_cached_property('InhibitedActions').unpack()
# The result is a bitfield, documented here:
# https://gitlab.gnome.org/GNOME/gnome-session/-/blob/9aa419397b7f6d42bee6e66cc5c5aad12902fba0/gnome-session/org.gnome.SessionManager.xml#L155
# The fourth bit indicates that idle is inhibited.
return bool(result & 0b1000)
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.
@ -160,27 +113,17 @@ def init(ctx, safeeyes_config, plugin_config):
global dnd_while_on_battery
logging.debug('Initialize Skip Fullscreen plugin')
context = ctx
skip_break_window_classes = _normalize_window_classes(plugin_config['skip_break_windows'])
take_break_window_classes = _normalize_window_classes(plugin_config['take_break_windows'])
skip_break_window_classes = plugin_config['skip_break_windows'].split()
take_break_window_classes = plugin_config['take_break_windows'].split()
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.
"""
if utility.IS_WAYLAND:
if utility.DESKTOP_ENVIRONMENT == 'gnome':
skip_break = is_idle_inhibited_gnome()
else:
skip_break = is_active_window_skipped_wayland(True)
else:
skip_break = is_active_window_skipped_xorg(True)
skip_break = is_active_window_skipped(True)
if dnd_while_on_battery and not skip_break:
skip_break = is_on_battery()
return skip_break
@ -190,13 +133,7 @@ def on_start_break(break_obj):
"""
Lifecycle method executes just before the break.
"""
if utility.IS_WAYLAND:
if utility.DESKTOP_ENVIRONMENT == 'gnome':
skip_break = is_idle_inhibited_gnome()
else:
skip_break = is_active_window_skipped_wayland(True)
else:
skip_break = is_active_window_skipped_xorg(True)
skip_break = is_active_window_skipped(False)
if dnd_while_on_battery and not skip_break:
skip_break = is_on_battery()
return skip_break

View File

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

View File

@ -1,24 +0,0 @@
# 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,16 +20,19 @@
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
statistics_reset_cron = None
default_statistics_reset_cron = '0 0 * * *' # Every midnight
next_reset_time = None
start_time = None
safe_eyes_start_time = datetime.datetime.now()
total_idle_time = 0
last_screen_time = -1
reset_interval = 86400 # 24 hours in seconds
def init(ctx, safeeyes_config, plugin_config):
"""
@ -37,144 +40,125 @@ def init(ctx, safeeyes_config, plugin_config):
"""
global context
global session
global statistics_reset_cron
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
logging.debug('Initialize Health Stats plugin')
context = ctx
statistics_reset_cron = plugin_config.get('statistics_reset_cron', default_statistics_reset_cron)
reset_interval = plugin_config.get('statistics_reset_interval', 24) * 3600
if session is None:
# 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()
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()
def on_stop_break():
# Check if break was skipped.
global session
"""
After the break, check if it is skipped.
"""
global no_of_skipped_breaks
if context['skipped']:
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
no_of_skipped_breaks += 1
session['no_of_skipped_breaks'] = no_of_skipped_breaks
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 session
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
# 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
return total_duration_sec
def get_widget_content(break_obj):
"""
Return the statistics.
"""
global next_reset_time
resets = session['total_resets']
if session['screen_time'] > 21600 or (session['breaks'] and session['skipped_breaks'] / session['breaks']) >= 0.2:
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:
# Unhealthy behavior -> Red broken heart
heart = '💔️'
else:
# Healthy behavior -> Green heart
heart = '💚'
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
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)
def on_start():
"""
Track the start time.
Add the idle period to the total idle time.
"""
global start_time
_reset_stats()
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)
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

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 currently playing media player from the break screen.
Media Control plugin lets users to pause currntly 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='io.github.slgobinath.SafeEyes-enabled')
notification = Notify.Notification.new('Safe Eyes', message, icon='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') or desktop_session.startswith('gnome'):
if utility.command_exist('gnome-screensaver-command'):
elif desktop_session in ['gnome', 'unity', 'budgie-desktop'] or desktop_session.startswith('ubuntu'):
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": [],
"shell_commands": ["xprintidle"],
"operating_systems": [],
"desktop_environments": [],
"resources": []
@ -20,6 +20,12 @@
"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

@ -1,33 +0,0 @@
# 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,10 +20,8 @@ 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
"""
@ -35,78 +33,15 @@ idle_condition = threading.Condition()
lock = threading.Lock()
active = False
idle_time = 0
enable_safeeyes = None
disable_safeeyes = None
enable_safe_eyes = None
disable_safe_eyes = None
smart_pause_activated = False
idle_start_time = None
next_break_time = None
next_break_duration = 0
short_break_interval = 0
break_interval = 0
waiting_time = 2
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
interpret_idle_as_break = False
def __system_idle_time():
@ -115,10 +50,6 @@ 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:
@ -149,29 +80,25 @@ def init(ctx, safeeyes_config, plugin_config):
Initialize the plugin.
"""
global context
global enable_safeeyes
global disable_safeeyes
global enable_safe_eyes
global disable_safe_eyes
global postpone
global idle_time
global short_break_interval
global long_break_duration
global break_interval
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_safeeyes = context['api']['enable_safeeyes']
disable_safeeyes = context['api']['disable_safeeyes']
enable_safe_eyes = context['api']['enable_safeeyes']
disable_safe_eyes = 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']
short_break_interval = safeeyes_config.get(
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():
@ -180,7 +107,6 @@ def __start_idle_monitor():
"""
global smart_pause_activated
global idle_start_time
while __is_active():
# Wait for waiting_time seconds
idle_condition.acquire()
@ -192,27 +118,25 @@ 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() - datetime.timedelta(seconds=system_idle_time)
idle_start_time = datetime.datetime.now()
logging.info('Pause Safe Eyes due to system idle')
disable_safeeyes(None, True)
elif system_idle_time < idle_time and context['state'] == State.RESTING and idle_start_time is not None:
disable_safe_eyes(None)
elif system_idle_time < idle_time and context['state'] == State.STOPPED:
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 idle_seconds < short_break_interval:
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:
# Credit back the idle time
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()
next_break = next_break_time + idle_period
enable_safe_eyes(next_break.timestamp())
else:
# User is idle for more than the time between two breaks
enable_safeeyes()
enable_safe_eyes()
def on_start():
@ -224,7 +148,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():
@ -238,8 +162,6 @@ 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,12 +18,6 @@
"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",
@ -54,4 +48,4 @@
]
}
]
}
}

View File

@ -17,19 +17,13 @@
# 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')
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
gi.require_version('AppIndicator3', '0.1')
from gi.repository import AppIndicator3 as appindicator
from gi.repository import Gtk
import logging
from safeeyes import utility
from safeeyes import Utility
import threading
import time
@ -43,7 +37,7 @@ tray_icon = None
safeeyes_config = None
class TrayIcon:
class TrayIcon(object):
"""
Create and show the tray icon along with the tray menu.
"""
@ -53,11 +47,10 @@ class TrayIcon:
self.on_show_settings = context['api']['show_settings']
self.on_show_about = context['api']['show_about']
self.quit = context['api']['quit']
self.enable_safeeyes = context['api']['enable_safeeyes']
self.disable_safeeyes = context['api']['disable_safeeyes']
self.on_enable = context['api']['enable_safeeyes']
self.on_disable = 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
@ -69,7 +62,7 @@ class TrayIcon:
# Construct the tray icon
self.indicator = appindicator.Indicator.new(
APPINDICATOR_ID, "io.github.slgobinath.SafeEyes-enabled", appindicator.IndicatorCategory.APPLICATION_STATUS)
APPINDICATOR_ID, "safeeyes_enabled", appindicator.IndicatorCategory.APPLICATION_STATUS)
self.indicator.set_status(appindicator.IndicatorStatus.ACTIVE)
# Construct the context menu
@ -78,7 +71,7 @@ class TrayIcon:
# Next break info menu item
self.item_info = Gtk.ImageMenuItem()
img_timer = Gtk.Image()
img_timer.set_from_icon_name("io.github.slgobinath.SafeEyes-timer", 16)
img_timer.set_from_icon_name("safeeyes_timer", 16)
self.item_info.set_image(img_timer)
self.item_separator = Gtk.SeparatorMenuItem()
@ -87,8 +80,10 @@ class TrayIcon:
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_disable_items = []
self.sub_menu_items = []
# Read disable options and build the sub menu
for disable_option in plugin_config['disable_options']:
@ -116,7 +111,7 @@ class TrayIcon:
# Create submenu
sub_menu_item = Gtk.MenuItem()
sub_menu_item.connect('activate', self.on_disable_clicked, time_in_minutes)
self.sub_menu_disable_items.append([sub_menu_item, label, disable_option['time']])
self.sub_menu_items.append([sub_menu_item, label, disable_option['time']])
self.sub_menu_disable.append(sub_menu_item)
# Disable until restart submenu
@ -127,21 +122,9 @@ class TrayIcon:
# Add the sub menu to the enable/disable menu
self.item_disable.set_submenu(self.sub_menu_disable)
# Manual break menu item
# Settings menu item
self.item_manual_break = Gtk.MenuItem()
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)
self.item_manual_break.connect('activate', self.on_manual_break_clicked)
# Settings menu item
self.item_settings = Gtk.MenuItem()
@ -194,7 +177,7 @@ class TrayIcon:
"""
Update the text of menu items based on the selected language.
"""
for entry in self.sub_menu_disable_items:
for entry in self.sub_menu_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])
@ -207,27 +190,24 @@ class TrayIcon:
if self.active:
if self.date_time:
self.__set_next_break_info()
self.indicator.set_icon("io.github.slgobinath.SafeEyes-enabled")
self.indicator.set_icon("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("io.github.slgobinath.SafeEyes-disabled")
self.indicator.set_icon("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("io.github.slgobinath.SafeEyes-disabled")
self.indicator.set_icon("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'))
@ -283,25 +263,13 @@ class TrayIcon:
"""
A private method to be called within this class to update the next break information using self.dateTime.
"""
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)
formatted_time = Utility.format_time(self.date_time)
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):
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, '')
self.indicator.set_label(formatted_time, '')
else:
self.indicator.set_label('', '')
@ -309,11 +277,7 @@ class TrayIcon:
"""
Trigger a break manually.
"""
if len(args) > 1:
break_type = args[1]
self.take_break(break_type)
else:
self.take_break()
self.take_break()
def on_enable_clicked(self, *args):
"""
@ -324,7 +288,7 @@ class TrayIcon:
if not self.active:
with self.lock:
self.enable_ui()
self.enable_safeeyes()
self.on_enable()
# Notify all schedulers
self.idle_condition.acquire()
self.idle_condition.notify_all()
@ -342,15 +306,15 @@ class TrayIcon:
time_to_wait = args[1]
if time_to_wait <= 0:
info = _('Disabled until restart')
self.disable_safeeyes(info)
self.on_disable(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.disable_safeeyes(info)
info = _('Disabled until %s') % Utility.format_time(self.wakeup_time)
self.on_disable(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):
"""
@ -373,7 +337,7 @@ class TrayIcon:
if self.active:
logging.info('Disable Safe Eyes')
self.active = False
self.indicator.set_icon("io.github.slgobinath.SafeEyes-disabled")
self.indicator.set_icon("safeeyes_disabled")
self.item_info.set_label(_('Disabled until restart'))
self.indicator.set_label('', '')
self.item_info.set_sensitive(False)
@ -388,7 +352,7 @@ class TrayIcon:
if not self.active:
logging.info('Enable Safe Eyes')
self.active = True
self.indicator.set_icon("io.github.slgobinath.SafeEyes-enabled")
self.indicator.set_icon("safeeyes_enabled")
self.item_info.set_sensitive(True)
self.item_enable.set_sensitive(False)
self.item_disable.set_sensitive(True)
@ -404,25 +368,25 @@ class TrayIcon:
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("io.github.slgobinath.SafeEyes-disabled"))
Utility.execute_main_thread(lambda: self.indicator.set_icon("safeeyes_disabled"))
time.sleep(0.5)
utility.execute_main_thread(lambda: self.indicator.set_icon("io.github.slgobinath.SafeEyes-enabled"))
Utility.execute_main_thread(lambda: self.indicator.set_icon("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("io.github.slgobinath.SafeEyes-enabled"))
Utility.execute_main_thread(lambda: self.indicator.set_icon("safeeyes_enabled"))
else:
utility.execute_main_thread(lambda: self.indicator.set_icon("io.github.slgobinath.SafeEyes-disabled"))
Utility.execute_main_thread(lambda: self.indicator.set_icon("safeeyes_disabled"))
def init(ctx, safeeyes_cfg, plugin_config):
"""
@ -453,6 +417,7 @@ 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()
@ -460,9 +425,11 @@ def on_pre_break(break_obj):
def on_start_break(break_obj):
tray_icon.stop_animation()
def on_stop_break():
tray_icon.unlock_menu()
def __unlock_menu():
"""
Unlock the menu
"""
Utility.execute_main_thread(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:
class RPCServer(object):
"""
An aynchronous RPC server.
"""
@ -62,7 +62,7 @@ class RPCServer:
self.__server.shutdown()
class RPCClient:
class RPCClient(object):
"""
An RPC client to communicate with the RPC server.
"""

View File

@ -20,7 +20,7 @@ import math
import os
import gi
from safeeyes import utility
from safeeyes import Utility
from safeeyes.model import Config
gi.require_version('Gtk', '3.0')
@ -28,18 +28,18 @@ from gi.repository import Gtk
from gi.repository import GdkPixbuf
SETTINGS_DIALOG_GLADE = os.path.join(utility.BIN_DIRECTORY, "glade/settings_dialog.glade")
SETTINGS_DIALOG_PLUGIN_GLADE = os.path.join(utility.BIN_DIRECTORY, "glade/settings_plugin.glade")
SETTINGS_DIALOG_BREAK_GLADE = os.path.join(utility.BIN_DIRECTORY, "glade/settings_break.glade")
SETTINGS_DIALOG_NEW_BREAK_GLADE = os.path.join(utility.BIN_DIRECTORY, "glade/new_break.glade")
SETTINGS_BREAK_ITEM_GLADE = os.path.join(utility.BIN_DIRECTORY, "glade/item_break.glade")
SETTINGS_PLUGIN_ITEM_GLADE = os.path.join(utility.BIN_DIRECTORY, "glade/item_plugin.glade")
SETTINGS_ITEM_INT_GLADE = os.path.join(utility.BIN_DIRECTORY, "glade/item_int.glade")
SETTINGS_ITEM_TEXT_GLADE = os.path.join(utility.BIN_DIRECTORY, "glade/item_text.glade")
SETTINGS_ITEM_BOOL_GLADE = os.path.join(utility.BIN_DIRECTORY, "glade/item_bool.glade")
SETTINGS_DIALOG_GLADE = os.path.join(Utility.BIN_DIRECTORY, "glade/settings_dialog.glade")
SETTINGS_DIALOG_PLUGIN_GLADE = os.path.join(Utility.BIN_DIRECTORY, "glade/settings_plugin.glade")
SETTINGS_DIALOG_BREAK_GLADE = os.path.join(Utility.BIN_DIRECTORY, "glade/settings_break.glade")
SETTINGS_DIALOG_NEW_BREAK_GLADE = os.path.join(Utility.BIN_DIRECTORY, "glade/new_break.glade")
SETTINGS_BREAK_ITEM_GLADE = os.path.join(Utility.BIN_DIRECTORY, "glade/item_break.glade")
SETTINGS_PLUGIN_ITEM_GLADE = os.path.join(Utility.BIN_DIRECTORY, "glade/item_plugin.glade")
SETTINGS_ITEM_INT_GLADE = os.path.join(Utility.BIN_DIRECTORY, "glade/item_int.glade")
SETTINGS_ITEM_TEXT_GLADE = os.path.join(Utility.BIN_DIRECTORY, "glade/item_text.glade")
SETTINGS_ITEM_BOOL_GLADE = os.path.join(Utility.BIN_DIRECTORY, "glade/item_bool.glade")
class SettingsDialog:
class SettingsDialog(object):
"""
Create and initialize SettingsDialog instance.
"""
@ -52,9 +52,8 @@ class SettingsDialog:
self.last_short_break_interval = config.get('short_break_interval')
self.initializing = True
self.infobar_long_break_shown = False
self.warn_bar_rpc_server_shown = False
builder = utility.create_gtk_builder(SETTINGS_DIALOG_GLADE)
builder = Utility.create_gtk_builder(SETTINGS_DIALOG_GLADE)
builder.connect_signals(self)
self.window = builder.get_object('window_settings')
@ -71,14 +70,10 @@ class SettingsDialog:
self.spin_postpone_duration = builder.get_object('spin_postpone_duration')
self.spin_disable_keyboard_shortcut = builder.get_object('spin_disable_keyboard_shortcut')
self.switch_strict_break = builder.get_object('switch_strict_break')
self.switch_random_order = builder.get_object('switch_random_order')
self.switch_postpone = builder.get_object('switch_postpone')
self.switch_persist = builder.get_object('switch_persist')
self.switch_rpc_server = builder.get_object('switch_rpc_server')
self.info_bar_long_break = builder.get_object("info_bar_long_break")
self.warn_bar_rpc_server = builder.get_object("warn_bar_rpc_server")
self.info_bar_long_break.hide()
self.warn_bar_rpc_server.hide()
# Set the current values of input fields
self.__initialize(config)
@ -86,12 +81,10 @@ class SettingsDialog:
# Update relative states
# GtkSwitch state-set signal is available only from 3.14
if Gtk.get_minor_version() >= 14:
# Add event listener to postpone switch
self.switch_strict_break.connect('state-set', self.on_switch_strict_break_activate)
self.switch_postpone.connect('state-set', self.on_switch_postpone_activate)
self.on_switch_strict_break_activate(self.switch_strict_break, self.switch_strict_break.get_active())
self.on_switch_postpone_activate(self.switch_postpone, self.switch_postpone.get_active())
# Add event listener to RPC server switch
self.switch_rpc_server.connect('state-set', self.on_switch_rpc_server_activate)
self.on_switch_rpc_server_activate(self.switch_rpc_server, self.switch_rpc_server.get_active())
self.initializing = False
def __initialize(self, config):
@ -102,7 +95,7 @@ class SettingsDialog:
for long_break in config.get('long_breaks'):
self.__create_break_item(long_break, False)
for plugin_config in utility.load_plugins_config(config):
for plugin_config in Utility.load_plugins_config(config):
self.box_plugins.pack_start(self.__create_plugin_item(plugin_config), False, False, 0)
self.spin_short_break_duration.set_value(config.get('short_break_duration'))
@ -113,10 +106,8 @@ class SettingsDialog:
self.spin_postpone_duration.set_value(config.get('postpone_duration'))
self.spin_disable_keyboard_shortcut.set_value(config.get('shortcut_disable_time'))
self.switch_strict_break.set_active(config.get('strict_break'))
self.switch_random_order.set_active(config.get('random_order'))
self.switch_postpone.set_active(config.get('allow_postpone'))
self.switch_postpone.set_active(config.get('allow_postpone') and not config.get('strict_break'))
self.switch_persist.set_active(config.get('persist_state'))
self.switch_rpc_server.set_active(config.get('use_rpc_server'))
self.infobar_long_break_shown = False
def __create_break_item(self, break_config, is_short):
@ -126,7 +117,7 @@ class SettingsDialog:
parent_box = self.box_long_breaks
if is_short:
parent_box = self.box_short_breaks
builder = utility.create_gtk_builder(SETTINGS_BREAK_ITEM_GLADE)
builder = Utility.create_gtk_builder(SETTINGS_BREAK_ITEM_GLADE)
box = builder.get_object('box')
lbl_name = builder.get_object('lbl_name')
lbl_name.set_label(_(break_config['name']))
@ -159,7 +150,7 @@ class SettingsDialog:
self.popover.hide()
def __confirmation_dialog_response(widget, response_id):
if response_id == Gtk.ResponseType.OK:
utility.reset_config()
Utility.reset_config()
self.config = Config()
# Remove breaks from the container
self.box_short_breaks.foreach(lambda element: self.box_short_breaks.remove(element))
@ -208,7 +199,7 @@ class SettingsDialog:
"""
Create an entry for plugin to be listed in the plugin tab.
"""
builder = utility.create_gtk_builder(SETTINGS_PLUGIN_ITEM_GLADE)
builder = Utility.create_gtk_builder(SETTINGS_PLUGIN_ITEM_GLADE)
lbl_plugin_name = builder.get_object('lbl_plugin_name')
lbl_plugin_description = builder.get_object('lbl_plugin_description')
switch_enable = builder.get_object('switch_enable')
@ -256,6 +247,15 @@ class SettingsDialog:
"""
self.window.show_all()
def on_switch_strict_break_activate(self, switch, state):
"""
Event handler to the state change of the postpone switch.
Enable or disable the self.spin_postpone_duration based on the state of the postpone switch.
"""
strict_break_enable = state
self.switch_postpone.set_sensitive(not strict_break_enable)
self.spin_disable_keyboard_shortcut.set_sensitive(not strict_break_enable)
def on_switch_postpone_activate(self, switch, state):
"""
Event handler to the state change of the postpone switch.
@ -269,7 +269,7 @@ class SettingsDialog:
"""
short_break_interval = self.spin_short_break_interval.get_value_as_int()
long_break_interval = self.spin_long_break_interval.get_value_as_int()
self.spin_long_break_interval.set_range(short_break_interval * 2, 120)
self.spin_long_break_interval.set_range(short_break_interval, 120)
self.spin_long_break_interval.set_increments(short_break_interval, short_break_interval * 2)
self.spin_long_break_interval.set_value(short_break_interval * math.ceil(long_break_interval / self.last_short_break_interval))
self.last_short_break_interval = short_break_interval
@ -291,23 +291,6 @@ class SettingsDialog:
"""
self.info_bar_long_break.hide()
def on_switch_rpc_server_activate(self, switch, enabled):
"""
Event handler to the state change of the rpc server switch.
Show or hide the self.warn_bar_rpc_server based on the state of the rpc server.
"""
if not self.initializing and not enabled and not self.warn_bar_rpc_server_shown:
self.warn_bar_rpc_server_shown = True
self.warn_bar_rpc_server.show()
if enabled:
self.warn_bar_rpc_server.hide()
def on_warn_bar_rpc_server_close(self, warnbar, *user_data):
"""
Event handler for warning bar close action.
"""
self.warn_bar_rpc_server.hide()
def add_break(self, button):
"""
Event handler for add break button.
@ -327,10 +310,8 @@ class SettingsDialog:
self.config.set('postpone_duration', self.spin_postpone_duration.get_value_as_int())
self.config.set('shortcut_disable_time', self.spin_disable_keyboard_shortcut.get_value_as_int())
self.config.set('strict_break', self.switch_strict_break.get_active())
self.config.set('random_order', self.switch_random_order.get_active())
self.config.set('allow_postpone', self.switch_postpone.get_active())
self.config.set('persist_state', self.switch_persist.get_active())
self.config.set('use_rpc_server', self.switch_rpc_server.get_active())
for plugin in self.config.get('plugins'):
if plugin['id'] in self.plugin_switches:
plugin['enabled'] = self.plugin_switches[plugin['id']].get_active()
@ -339,7 +320,7 @@ class SettingsDialog:
self.window.destroy()
class PluginSettingsDialog:
class PluginSettingsDialog(object):
"""
Builds a settings dialog based on the configuration of a plugin.
"""
@ -348,7 +329,7 @@ class PluginSettingsDialog:
self.config = config
self.property_controls = []
builder = utility.create_gtk_builder(SETTINGS_DIALOG_PLUGIN_GLADE)
builder = Utility.create_gtk_builder(SETTINGS_DIALOG_PLUGIN_GLADE)
builder.connect_signals(self)
self.window = builder.get_object('dialog_settings_plugin')
box_settings = builder.get_object('box_settings')
@ -365,7 +346,7 @@ class PluginSettingsDialog:
"""
Load the UI control for int property.
"""
builder = utility.create_gtk_builder(SETTINGS_ITEM_INT_GLADE)
builder = Utility.create_gtk_builder(SETTINGS_ITEM_INT_GLADE)
builder.get_object('lbl_name').set_label(_(name))
spin_value = builder.get_object('spin_value')
spin_value.set_range(min_value, max_value)
@ -379,7 +360,7 @@ class PluginSettingsDialog:
"""
Load the UI control for text property.
"""
builder = utility.create_gtk_builder(SETTINGS_ITEM_TEXT_GLADE)
builder = Utility.create_gtk_builder(SETTINGS_ITEM_TEXT_GLADE)
builder.get_object('lbl_name').set_label(_(name))
txt_value = builder.get_object('txt_value')
txt_value.set_text(settings[key])
@ -392,7 +373,7 @@ class PluginSettingsDialog:
"""
Load the UI control for boolean property.
"""
builder = utility.create_gtk_builder(SETTINGS_ITEM_BOOL_GLADE)
builder = Utility.create_gtk_builder(SETTINGS_ITEM_BOOL_GLADE)
builder.get_object('lbl_name').set_label(_(name))
switch_value = builder.get_object('switch_value')
switch_value.set_active(settings[key])
@ -416,7 +397,7 @@ class PluginSettingsDialog:
self.window.show_all()
class BreakSettingsDialog:
class BreakSettingsDialog(object):
"""
Builds a settings dialog based on the configuration of a plugin.
"""
@ -430,7 +411,7 @@ class BreakSettingsDialog:
self.on_add = on_add
self.on_remove = on_remove
builder = utility.create_gtk_builder(SETTINGS_DIALOG_BREAK_GLADE)
builder = Utility.create_gtk_builder(SETTINGS_DIALOG_BREAK_GLADE)
builder.connect_signals(self)
self.window = builder.get_object('dialog_settings_break')
self.txt_break = builder.get_object('txt_break')
@ -586,7 +567,7 @@ class BreakSettingsDialog:
self.window.show_all()
class NewBreakDialog:
class NewBreakDialog(object):
"""
Builds a new break dialog.
"""
@ -595,7 +576,7 @@ class NewBreakDialog:
self.parent_config = parent_config
self.on_add = on_add
builder = utility.create_gtk_builder(SETTINGS_DIALOG_NEW_BREAK_GLADE)
builder = Utility.create_gtk_builder(SETTINGS_DIALOG_NEW_BREAK_GLADE)
builder.connect_signals(self)
self.window = builder.get_object('dialog_new_break')
self.txt_break = builder.get_object('txt_break')

View File

@ -1,4 +1,4 @@
import os, sys, site
import os
import subprocess
import setuptools
@ -6,7 +6,6 @@ import setuptools
requires = [
'babel',
'psutil',
'croniter',
'PyGObject',
'python-xlib'
]
@ -36,22 +35,14 @@ def __compile_po_files():
subprocess.call(msgfmt_cmd, shell=True)
def __data_files():
def _data_files(path):
"""
Collect the data files.
"""
root_dir = sys.prefix
return [(os.path.join(root_dir, "share/applications"), ["safeeyes/platform/io.github.slgobinath.SafeEyes.desktop"]),
(os.path.join(root_dir, "share/icons/hicolor/24x24/status"), ["safeeyes/platform/icons/hicolor/24x24/status/io.github.slgobinath.SafeEyes-disabled.png", "safeeyes/platform/icons/hicolor/24x24/status/io.github.slgobinath.SafeEyes-enabled.png", "safeeyes/platform/icons/hicolor/24x24/status/io.github.slgobinath.SafeEyes-timer.png"]),
(os.path.join(root_dir, "share/icons/hicolor/24x24/apps"), ["safeeyes/platform/icons/hicolor/24x24/apps/io.github.slgobinath.SafeEyes.png"]),
(os.path.join(root_dir, "share/icons/hicolor/16x16/status"), ["safeeyes/platform/icons/hicolor/16x16/status/io.github.slgobinath.SafeEyes-disabled.png", "safeeyes/platform/icons/hicolor/16x16/status/io.github.slgobinath.SafeEyes-enabled.png", "safeeyes/platform/icons/hicolor/16x16/status/io.github.slgobinath.SafeEyes-timer.png"]),
(os.path.join(root_dir, "share/icons/hicolor/16x16/apps"), ["safeeyes/platform/icons/hicolor/16x16/apps/io.github.slgobinath.SafeEyes.png"]),
(os.path.join(root_dir, "share/icons/hicolor/32x32/status"), ["safeeyes/platform/icons/hicolor/32x32/status/io.github.slgobinath.SafeEyes-disabled.png", "safeeyes/platform/icons/hicolor/32x32/status/io.github.slgobinath.SafeEyes-enabled.png"]),
(os.path.join(root_dir, "share/icons/hicolor/32x32/apps"), ["safeeyes/platform/icons/hicolor/32x32/apps/io.github.slgobinath.SafeEyes.png"]),
(os.path.join(root_dir, "share/icons/hicolor/64x64/apps"), ["safeeyes/platform/icons/hicolor/64x64/apps/io.github.slgobinath.SafeEyes.png"]),
(os.path.join(root_dir, "share/icons/hicolor/128x128/apps"), ["safeeyes/platform/icons/hicolor/128x128/apps/io.github.slgobinath.SafeEyes.png"]),
(os.path.join(root_dir, "share/icons/hicolor/48x48/status"), ["safeeyes/platform/icons/hicolor/48x48/status/io.github.slgobinath.SafeEyes-disabled.png", "safeeyes/platform/icons/hicolor/48x48/status/io.github.slgobinath.SafeEyes-enabled.png"]),
(os.path.join(root_dir, "share/icons/hicolor/48x48/apps"), ["safeeyes/platform/icons/hicolor/48x48/apps/io.github.slgobinath.SafeEyes.png"]),]
for root, _, files in os.walk(path):
if not files:
continue
yield (os.path.join('/usr', root), [os.path.join(root, f) for f in files])
def __package_files(directory):
@ -73,22 +64,24 @@ def __package_data():
data = ['glade/*.glade', 'resource/*']
data.extend(__package_files('safeeyes/config'))
data.extend(__package_files('safeeyes/plugins'))
data.extend(__package_files('safeeyes/platform'))
return data
__data_files = list(_data_files('share'))
setuptools.setup(
name="safeeyes",
version="2.1.9",
version="2.0.9",
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="slgobinath@gmail.com",
url="https://github.com/slgobinath/SafeEyes",
download_url="https://github.com/slgobinath/SafeEyes/archive/v2.1.9.tar.gz",
download_url="https://github.com/slgobinath/SafeEyes/archive/v2.0.9.tar.gz",
packages=setuptools.find_packages(),
package_data={'safeeyes': __package_data()},
data_files=__data_files(),
data_files=__data_files,
install_requires=requires,
entry_points={'console_scripts': ['safeeyes = safeeyes.__main__:main']},
keywords='linux utility health eye-strain safe-eyes',
@ -98,5 +91,5 @@ setuptools.setup(
"Development Status :: 5 - Production/Stable",
"Environment :: X11 Applications :: GTK",
"Intended Audience :: End Users/Desktop",
"Topic :: Utilities"] + [('Programming Language :: Python :: %s' % x) for x in '3 3.5 3.6 3.7 3.8 3.9'.split()]
"Topic :: Utilities"] + [('Programming Language :: Python :: %s' % x) for x in '3 3.4 3.5 3.6 3.7'.split()]
)

View File

@ -12,7 +12,6 @@ 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]=Заштитете се од замор на очите
@ -25,7 +24,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=io.github.slgobinath.SafeEyes
Icon=safeeyes
Terminal=false
Type=Application
Categories=Utility;

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

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