├── data ├── style-hc.css ├── style-dark.css ├── icon.png ├── shot.png ├── shot-dark.png ├── icons │ ├── hicolor │ │ ├── meson.build │ │ ├── symbolic │ │ │ └── clock-alt-symbolic.svg │ │ └── scalable │ │ │ └── actions │ │ │ └── stopwatch-symbolic.svg │ ├── meson.build │ ├── io.github.lainsce.Khronos.svg │ ├── io.github.lainsce.Khronos-symbolic.svg │ └── io.github.lainsce.Khronos.Devel.svg ├── io.github.lainsce.Khronos.desktop.in ├── ui │ ├── logrow.ui │ ├── logrowcontent.ui │ └── loglistview.ui ├── io.github.lainsce.Khronos.gschema.xml ├── style.css ├── io.github.lainsce.Khronos.gresource.xml ├── meson.build └── io.github.lainsce.Khronos.metainfo.xml.in ├── AUTHORS ├── po ├── meson.build ├── LINGUAS ├── POTFILES ├── README.md ├── da.po ├── ca.po ├── lt.po ├── ja.po ├── io.github.lainsce.Khronos.pot ├── pt.po ├── sk.po ├── id.po ├── sr@latin.po ├── sr.po ├── he.po ├── cs.po ├── it.po ├── hr.po ├── sv.po ├── ru_RU.po ├── de.po ├── fr.po ├── tr.po ├── zh_CN.po ├── pt_BR.po └── es.po ├── .github ├── FUNDING.yml └── workflows │ └── flatpak.yml ├── meson_options.txt ├── .gitignore ├── src ├── Config.vapi ├── Utils │ ├── MiscUtils.vala │ ├── ThreadUtils.vala │ ├── ObservableList.vala │ └── FileUtils.vala ├── Services │ ├── SettingsManager.vala │ ├── MigrationManager.vala │ ├── Dialog.vala │ └── FileManager.vala ├── Views │ ├── View.vala │ └── LogListView.vala ├── Widgets │ ├── TagHolder.vala │ └── LogRowContent.vala ├── Application.vala ├── Models │ └── Log.vala ├── ViewModels │ └── LogViewModel.vala └── Repositories │ └── LogRepository.vala ├── ISSUE_TEMPLATE.md ├── khronos.doap ├── io.github.lainsce.Khronos.Devel.json ├── README.md └── meson.build /data/style-hc.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/style-dark.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | Lains 2 | -------------------------------------------------------------------------------- /po/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext(app_id, preset: 'glib') 2 | -------------------------------------------------------------------------------- /data/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lainsce/khronos/HEAD/data/icon.png -------------------------------------------------------------------------------- /data/shot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lainsce/khronos/HEAD/data/shot.png -------------------------------------------------------------------------------- /data/shot-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lainsce/khronos/HEAD/data/shot-dark.png -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | patreon: lainsce 4 | github: lainsce 5 | -------------------------------------------------------------------------------- /meson_options.txt: -------------------------------------------------------------------------------- 1 | option('development', type: 'boolean', value: false, description: 'If this is a development build') 2 | -------------------------------------------------------------------------------- /data/icons/hicolor/meson.build: -------------------------------------------------------------------------------- 1 | install_subdir('scalable', install_dir: icondir) 2 | install_subdir('symbolic', install_dir: icondir) -------------------------------------------------------------------------------- /po/LINGUAS: -------------------------------------------------------------------------------- 1 | ca 2 | cs 3 | da 4 | de 5 | es 6 | fr 7 | he 8 | hr 9 | id 10 | it 11 | ja 12 | lt 13 | nl 14 | pt 15 | pt_BR 16 | ru_RU 17 | sk 18 | sr 19 | sr@latin 20 | sv 21 | tr 22 | zh_CN 23 | -------------------------------------------------------------------------------- /po/POTFILES: -------------------------------------------------------------------------------- 1 | data/io.github.lainsce.Khronos.metainfo.xml.in 2 | data/io.github.lainsce.Khronos.desktop.in 3 | data/io.github.lainsce.Khronos.gschema.xml 4 | 5 | data/ui/main_window.ui 6 | 7 | src/MainWindow.vala 8 | 9 | src/Services/Dialog.vala 10 | 11 | src/ViewModels/LogViewModel.vala 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | _build/ 3 | ~* 4 | *~ 5 | debian/com.github.lainsce.quilter.debhelper.log 6 | debian/com.github.lainsce.quilter.substvars 7 | debian/com.github.lainsce.quilter/ 8 | debian/debhelper-build-stamp 9 | debian/files 10 | obj-x86_64-linux-gnu/ 11 | .vscode 12 | .buildconfig 13 | builddir/ 14 | .flatpak/ 15 | .flatpak-builder/ -------------------------------------------------------------------------------- /data/io.github.lainsce.Khronos.desktop.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Khronos 3 | Comment=Track each task time in a simple inobtrusive way 4 | Exec=io.github.lainsce.Khronos 5 | Icon=@app_id@ 6 | Keywords=Plot;Planning;Time Tracking; 7 | Terminal=false 8 | Type=Application 9 | StartupNotify=true 10 | Categories=GNOME;GTK;Office; 11 | NoDisplay=false 12 | -------------------------------------------------------------------------------- /data/ui/logrow.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | -------------------------------------------------------------------------------- /src/Config.vapi: -------------------------------------------------------------------------------- 1 | [CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = "config.h")] 2 | namespace Config { 3 | public const string APP_ID; 4 | public const string NAME_SUFFIX; 5 | public const string VERSION; 6 | public const string GETTEXT_PACKAGE; 7 | public const string LOCALEDIR; 8 | public const bool DEVELOPMENT; 9 | } 10 | -------------------------------------------------------------------------------- /data/icons/meson.build: -------------------------------------------------------------------------------- 1 | icondir = join_paths(get_option('datadir'), 'icons/hicolor') 2 | 3 | install_data( 4 | '@0@.svg'.format(app_id), 5 | install_dir: join_paths(icondir, 'scalable/apps'), 6 | ) 7 | 8 | install_data( 9 | meson.project_name() + '-symbolic.svg', 10 | install_dir: join_paths(icondir, 'symbolic/apps'), 11 | rename: '@0@-symbolic.svg'.format(app_id), 12 | ) 13 | 14 | subdir('hicolor') 15 | -------------------------------------------------------------------------------- /ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Hello! If you found an error in this app, follow this template: 2 | 3 | * Use a descriptive title 4 | * Describe the issue 5 | * State what version you're using 6 | * Take a screenshot of the problem, then use the Markdown property for it: 7 | `![any_name_here](url_here)` 8 | * If the problem needs it, show me a video of the problem with Screenkey running in the background. 9 | 10 | 11 | Thanks! -------------------------------------------------------------------------------- /data/io.github.lainsce.Khronos.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | Migration Version 6 | The version of migration to use; Do not change. 7 | 8 | 9 | 1800 10 | Delay between notifications 11 | The delay between two notifications, default is 30min. in seconds. 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.github/workflows/flatpak.yml: -------------------------------------------------------------------------------- 1 | on: 2 | push: 3 | branches: [main] 4 | pull_request: 5 | name: CI 6 | jobs: 7 | flatpak-builder: 8 | name: Flatpak 9 | runs-on: ubuntu-latest 10 | container: 11 | image: bilelmoussaoui/flatpak-github-actions:gnome-42 12 | options: --privileged 13 | steps: 14 | - uses: actions/checkout@v2 15 | - uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@v4 16 | with: 17 | bundle: io.github.lainsce.Khronos.Devel.flatpak 18 | manifest-path: io.github.lainsce.Khronos.Devel.json 19 | cache-key: flatpak-builder-${{ github.sha }} 20 | run-tests: true 21 | -------------------------------------------------------------------------------- /data/icons/hicolor/symbolic/clock-alt-symbolic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /data/style.css: -------------------------------------------------------------------------------- 1 | .solid-csd { 2 | box-shadow: none; 3 | outline: 1px solid @borders; 4 | } 5 | 6 | .search-bar { 7 | border-radius: 999px; 8 | } 9 | 10 | .kh-title { 11 | font-size: 400%; 12 | font-weight: 300; 13 | } 14 | 15 | .content-sidebar { 16 | border-radius: 8px; 17 | } 18 | 19 | .kh-tag { 20 | background: alpha(@view_fg_color, 0.1); 21 | border-radius: 8px; 22 | padding: 4px 12px; 23 | } 24 | 25 | .floating { 26 | padding: 0; 27 | margin: 0 16px 16px 0; 28 | min-width: 56px; 29 | min-height: 56px; 30 | border-radius: 16px; 31 | box-shadow: 0 2px 4px 2px alpha(@view_fg_color, 0.15), 32 | 0 1px 2px 1px alpha(@view_fg_color, 0.3); 33 | } 34 | 35 | .floating-secondary { 36 | padding: 0; 37 | margin: 0 16px 16px 0; 38 | min-width: 42px; 39 | min-height: 42px; 40 | border-radius: 16px; 41 | } 42 | -------------------------------------------------------------------------------- /data/io.github.lainsce.Khronos.gresource.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | style.css 5 | style-dark.css 6 | style-hc.css 7 | 8 | ui/logrow.ui 9 | ui/loglistview.ui 10 | ui/logrowcontent.ui 11 | ui/main_window.ui 12 | 13 | 14 | 15 | icons/hicolor/symbolic/clock-alt-symbolic.svg 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/Utils/MiscUtils.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2022 Lains 3 | * 4 | * This program is free software; you can redistribute it &&/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | */ 19 | namespace Khronos.MiscUtils { 20 | public T find_ancestor_of_type (Gtk.Widget? ancestor) { 21 | while ((ancestor = ancestor.get_parent ()) != null) { 22 | if (ancestor.get_type ().is_a (typeof (T))) 23 | return (T) ancestor; 24 | } 25 | 26 | return (T) ancestor; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /khronos.doap: -------------------------------------------------------------------------------- 1 | 2 | 7 | Khronos 8 | 9 | Track each task's time in a simple inobtrusive way 10 | 11 | 12 |

Start tracking any task's "during" time and start & stop as you go, with notifications.

13 |
    14 |
  • Quit anytime with the shortcut Ctrl + Q
  • 15 |
16 |
17 | 18 | 19 | Vala 20 | GTK 4 21 | Libadwaita 22 | 23 | 24 | Lains 25 | 26 | lainsce 27 | 28 | 29 |
30 | -------------------------------------------------------------------------------- /src/Services/SettingsManager.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2021 Lains 3 | * 4 | * This program is free software; you can redistribute it &&/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | */ 19 | [SingleInstance] 20 | public class Khronos.Settings : Object { 21 | private GLib.Settings settings = new GLib.Settings ("io.github.lainsce.Khronos"); 22 | public int schema_version { get; set; } 23 | 24 | construct { 25 | settings.bind ("schema-version", this, "schema-version", DEFAULT); 26 | } 27 | 28 | public Action create_action (string key) { 29 | return settings.create_action (key); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /io.github.lainsce.Khronos.Devel.json: -------------------------------------------------------------------------------- 1 | { 2 | "app-id" : "io.github.lainsce.Khronos.Devel", 3 | "runtime" : "org.gnome.Platform", 4 | "runtime-version" : "master", 5 | "sdk" : "org.gnome.Sdk", 6 | "command" : "io.github.lainsce.Khronos", 7 | "finish-args" : [ 8 | "--filesystem=xdg-run/gvfsd", 9 | "--socket=wayland", 10 | "--socket=fallback-x11", 11 | "--share=ipc" 12 | ], 13 | "desktop-file-name-suffix" : " (Development)", 14 | "cleanup" : [ 15 | "/cache", 16 | "/man", 17 | "/share/aclocal", 18 | "/share/devhelp", 19 | "/lib/systemd", 20 | "/include", 21 | "/lib/pkgconfig", 22 | "/lib/libvala*", 23 | "/share/gtk-doc", 24 | "/share/man", 25 | "/share/vala", 26 | "*.a", 27 | "*.la" 28 | ], 29 | "modules" : [ 30 | { 31 | "name" : "khronos", 32 | "buildsystem" : "meson", 33 | "run-tests" : true, 34 | "config-opts" : [ 35 | "-Ddevelopment=true" 36 | ], 37 | "sources" : [ 38 | { 39 | "type" : "dir", 40 | "path" : "." 41 | } 42 | ] 43 | } 44 | ] 45 | } 46 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # Khronos 4 | 5 | Track each task's time in a simple inobtrusive way 6 | 7 | ### 8 | 9 | [![GNOME Circle](https://gitlab.gnome.org/Teams/Circle/-/raw/master/assets/button/badge.svg)](https://circle.gnome.org) 10 | [![Please do not theme this app](https://stopthemingmy.app/badge.svg)](https://stopthemingmy.app) 11 | [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](http://www.gnu.org/licenses/gpl-3.0) 12 | 13 | ![Light screenshot](data/shot.png#gh-light-mode-only) 14 | ![Dark screenshot](data/shot-dark.png#gh-dark-mode-only) 15 | 16 |

Download on Flathub

17 | 18 | ## 💝 Donations 19 | 20 | Would you like to support the development of this app to new heights? 21 | Then become a GitHub Sponsor or check my Patreon, buttons in the sidebar. 22 | 23 | ## 🛠️ Dependencies 24 | 25 | Please make sure you have these dependencies first before building. 26 | 27 | ```bash 28 | gtk4 29 | libadwaita-1 30 | libgee-0.8 31 | libjson-glib 32 | meson 33 | vala 34 | ``` 35 | 36 | ## 🏗️ Building 37 | 38 | Simply clone this repo, then: 39 | 40 | ```bash 41 | meson _build --prefix=/usr && cd _build 42 | sudo ninja install 43 | ``` 44 | -------------------------------------------------------------------------------- /src/Views/View.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2021 Lains 3 | * 4 | * This program is free software; you can redistribute it &&/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | */ 19 | public abstract class Khronos.View : Gtk.Widget, Gtk.Buildable { 20 | Adw.Bin? child_bin = new Adw.Bin () { vexpand = true }; 21 | 22 | public Gtk.Widget? child { 23 | get { return child_bin.child; } 24 | set { child_bin.child = value; } 25 | } 26 | 27 | construct { 28 | layout_manager = new Gtk.BoxLayout (VERTICAL); 29 | 30 | child_bin?.set_parent (this); 31 | } 32 | 33 | protected override void dispose () { 34 | child_bin?.unparent (); 35 | child_bin = null; 36 | 37 | base.dispose (); 38 | } 39 | 40 | void add_child (Gtk.Builder builder, Object child, string? type) { 41 | if (child is Gtk.Widget) { 42 | this.child = (Gtk.Widget) child; 43 | return; 44 | } 45 | 46 | base.add_child (builder, child, type); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/Widgets/TagHolder.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2022 Lains 3 | * 4 | * This program is free software; you can redistribute it &&/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | */ 19 | public class Khronos.TagHolder : Gtk.Widget { 20 | public List children; 21 | 22 | static construct { 23 | set_layout_manager_type (typeof (Gtk.BoxLayout)); 24 | } 25 | construct { 26 | ((Gtk.BoxLayout) layout_manager).spacing = 6; 27 | } 28 | 29 | public void append (Gtk.Widget child) { 30 | child.set_parent (this); 31 | children.append (child); 32 | } 33 | 34 | public override void dispose () { 35 | foreach (var child in children) { 36 | child.unparent (); 37 | } 38 | 39 | base.dispose (); 40 | } 41 | 42 | public void remove (Gtk.Widget child) { 43 | if (children.find (child) == null) { 44 | return; 45 | } 46 | 47 | child.unparent (); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /data/meson.build: -------------------------------------------------------------------------------- 1 | conf = configuration_data() 2 | conf.set('app_id', app_id) 3 | 4 | desktop_conf = configure_file( 5 | input: meson.project_name() + '.desktop.in', 6 | output: '@0@.desktop.in'.format(app_id), 7 | configuration: conf 8 | ) 9 | 10 | desktop_file = i18n.merge_file( 11 | input: desktop_conf, 12 | output: '@0@.desktop'.format(app_id), 13 | type: 'desktop', 14 | po_dir: '../po', 15 | install: true, 16 | install_dir: join_paths(get_option('datadir'), 'applications') 17 | ) 18 | 19 | # Validate Desktop file 20 | desktop_file_validate = find_program('desktop-file-validate', required: false) 21 | if desktop_file_validate.found() 22 | test('validate-desktop', desktop_file_validate, 23 | args: [desktop_file] 24 | ) 25 | endif 26 | 27 | appstream_conf = configure_file( 28 | input: meson.project_name() + '.metainfo.xml.in', 29 | output: '@0@.metainfo.xml.in'.format(app_id), 30 | configuration: conf 31 | ) 32 | 33 | appstream_file = i18n.merge_file( 34 | input: appstream_conf, 35 | output: '@0@.metainfo.xml'.format(app_id), 36 | po_dir: '../po', 37 | install: true, 38 | install_dir: join_paths(get_option('datadir'), 'metainfo') 39 | ) 40 | 41 | #Validate Appstream file 42 | appstreamcli = find_program('appstreamcli', required: false) 43 | if appstreamcli.found() 44 | test('validate-appstream', 45 | appstreamcli, 46 | args: ['validate', '--no-net', '--explain', appstream_file], 47 | workdir: meson.current_build_dir() 48 | ) 49 | endif 50 | 51 | gnome.compile_schemas(build_by_default: true) 52 | install_data( 53 | meson.project_name() + '.gschema.xml', 54 | install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas') 55 | ) 56 | 57 | subdir('icons') 58 | -------------------------------------------------------------------------------- /po/README.md: -------------------------------------------------------------------------------- 1 | # 🌐 How to Translate Khronos 2 | 3 | ## ✏️ First Things First 4 | 5 | * Fork the repository here on github with the Fork button at the top-right. 6 | * Clone this repository by opening the terminal in a folder of your choice and typing `git clone https://github.com//khronos` 7 | * (Optional) Check [Regenerate translations files](https://github.com/lainsce/khronos/tree/main/po#-regenerate-translations-files) section if files haven't been recently updated. 8 | 9 | ## 📃 Basics 10 | 11 | * You'll need to know your language's code (ex. en = English). 12 | * Add that code to the LINGUAS file, in a new line, after the last line. 13 | * Translate the .pot file using the PO editor of your choice (I recommend POEdit). 14 | * Save it as .po in this folder. 15 | 16 | ## 📝 Not so Basics 17 | 18 | * Next, in the folder you've cloned this repo in, open a terminal and type: ```git checkout -b "Translation ``` 19 | * Then, type ```git add *``` 20 | * Finally, ```git commit -m "Translated your app for " && git push```, follow the instructions in the terminal if need be, then type your github username and password. 21 | 22 | And that's it! You've successfully translated Khronos for your language! 23 | 24 | ## 🔁 Regenerate translations files 25 | * Initialize the project build by typing `meson _build` (make sure you have [dependencies](https://github.com/lainsce/khronos#%EF%B8%8F-dependencies) installed!). 26 | * Compile .pot files, type `meson compile -C _build io.github.lainsce.Khronos-pot`. 27 | * (Optional) Compile .po files instead replacing `-pot` with `-update-po` in the previous command. 28 | 29 | Note: install `appstream` package in order to generate release strings. 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/Application.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020-2022 Lains 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | */ 20 | public class Khronos.Application : Adw.Application { 21 | private const GLib.ActionEntry app_entries[] = { 22 | { "quit", quit }, 23 | }; 24 | 25 | public Application () { 26 | Object (application_id: Config.APP_ID); 27 | } 28 | public static int main (string[] args) { 29 | Intl.bindtextdomain (Config.GETTEXT_PACKAGE, Config.LOCALEDIR); 30 | Intl.textdomain (Config.GETTEXT_PACKAGE); 31 | 32 | var app = new Khronos.Application (); 33 | return app.run (args); 34 | } 35 | protected override void startup () { 36 | resource_base_path = "/io/github/lainsce/Khronos"; 37 | 38 | base.startup (); 39 | 40 | add_action_entries (app_entries, this); 41 | 42 | typeof (LogListView).ensure (); 43 | typeof (LogRowContent).ensure (); 44 | 45 | var repo = new LogRepository (); 46 | var view_model = new LogViewModel (repo); 47 | 48 | new MainWindow (this, view_model); 49 | } 50 | protected override void activate () { 51 | active_window?.present (); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /data/ui/logrowcontent.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | 49 | 50 | -------------------------------------------------------------------------------- /src/Views/LogListView.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2021 Lains 3 | * 4 | * This program is free software; you can redistribute it &&/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | */ 19 | [GtkTemplate (ui = "/io/github/lainsce/Khronos/loglistview.ui")] 20 | public class Khronos.LogListView : View { 21 | [GtkChild] 22 | unowned Gtk.SingleSelection selection_model; 23 | 24 | public ObservableList? logs { get; set; } 25 | public Log? selected_log { get; set;} 26 | public LogViewModel? view_model { get; set; } 27 | public MainWindow window { get; set; } 28 | 29 | construct { 30 | selection_model.bind_property ("selected", this, "selected-log", DEFAULT, (_, from, ref to) => { 31 | var pos = (uint) from; 32 | 33 | if (pos != Gtk.INVALID_LIST_POSITION) 34 | to.set_object (selection_model.model.get_item (pos)); 35 | 36 | return true; 37 | }); 38 | } 39 | 40 | public signal void new_log_requested (); 41 | public signal void log_update_requested (Log log); 42 | public signal void log_removal_requested (Log log); 43 | 44 | [GtkCallback] 45 | public void on_log_update_requested (Log log) { 46 | view_model.update_log (log); 47 | } 48 | 49 | [GtkCallback] 50 | public void on_log_removal_requested (Log log) { 51 | view_model.delete_log (log); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /data/icons/hicolor/scalable/actions/stopwatch-symbolic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Utils/ThreadUtils.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2021 Lains 3 | * 4 | * This program is free software; you can redistribute it &&/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | */ 19 | delegate void Khronos.WorkerFunc (); 20 | delegate G Khronos.ThreadFunc () throws Error; 21 | 22 | [Compact (opaque = true)] 23 | class Khronos.Worker { 24 | WorkerFunc func; 25 | 26 | public Worker (owned WorkerFunc func) { 27 | this.func = (owned) func; 28 | } 29 | 30 | public void run () { 31 | func (); 32 | } 33 | } 34 | 35 | namespace Khronos.ThreadUtils { 36 | Once> _once; 37 | 38 | unowned ThreadPool _get_thread_pool () { 39 | return _once.once (() => { 40 | var tp = new ThreadPool.with_owned_data (worker => worker.run (), 1, false); 41 | return tp; 42 | }); 43 | } 44 | 45 | async G run_in_thread (owned ThreadFunc func) throws Error { 46 | unowned var thread_pool = _get_thread_pool (); 47 | 48 | G result = null; 49 | Error? error = null; 50 | 51 | thread_pool.add (new Worker (() => { 52 | try { 53 | result = func (); 54 | } catch (Error err) { 55 | error = err; 56 | } 57 | 58 | Idle.add (run_in_thread.callback); 59 | })); 60 | 61 | yield; 62 | 63 | if (error != null) 64 | throw error; 65 | 66 | return result; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/Utils/ObservableList.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2021 Lains 3 | * 4 | * This program is free software; you can redistribute it &&/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | */ 19 | public class Khronos.ObservableList : Object, ListModel { 20 | List data = new List (); 21 | 22 | public void add (T item) { 23 | var position = data.length (); 24 | 25 | data.append (item); 26 | 27 | items_changed (position, 0, 1); 28 | } 29 | 30 | public void add_all (List items) { 31 | var position = data.length (); 32 | 33 | foreach (var item in items) 34 | data.append (item); 35 | 36 | items_changed (position, 0, items.length ()); 37 | } 38 | 39 | public void remove_all () { 40 | var current_size = data.length (); 41 | data = new List (); 42 | items_changed (0, current_size, 0); 43 | } 44 | 45 | public new T @get (uint index) { 46 | return data.nth_data (index); 47 | } 48 | 49 | public bool remove (T item) { 50 | var position = data.index (item); 51 | 52 | if (position == -1) 53 | return false; 54 | 55 | data.remove (item); 56 | items_changed (position, 1, 0); 57 | 58 | return true; 59 | } 60 | 61 | Object? get_item (uint position) { 62 | return this[position] as Object; 63 | } 64 | 65 | Type get_item_type () { 66 | return typeof (T); 67 | } 68 | 69 | uint get_n_items () { 70 | return data.length (); 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /data/ui/loglistview.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | 49 | 50 | -------------------------------------------------------------------------------- /src/Utils/FileUtils.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2021 Lains 3 | * 4 | * This program is free software; you can redistribute it &&/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | */ 19 | namespace Khronos.FileUtils { 20 | async bool create_text_file (string filename, string contents, Cancellable? cancellable = null) throws Error { 21 | return yield ThreadUtils.run_in_thread (() => { 22 | var dir_path = Path.build_filename (Environment.get_user_data_dir (), "/io.github.lainsce.Khronos/"); 23 | 24 | if (DirUtils.create_with_parents (dir_path, 0755) != 0) { 25 | throw new Error (FileError.quark (), GLib.FileUtils.error_from_errno (errno), "%s", strerror (errno)); 26 | } 27 | 28 | var file_path = Path.build_filename (dir_path, filename); 29 | GLib.FileUtils.set_contents (file_path, contents); 30 | 31 | return true; 32 | }); 33 | } 34 | 35 | async string? read_text_file (string filename, Cancellable? cancellable = null) throws Error { 36 | return yield ThreadUtils.run_in_thread (() => { 37 | var file_path = Path.build_filename (Environment.get_user_data_dir (), "/io.github.lainsce.Khronos/", filename); 38 | 39 | string contents = ""; 40 | 41 | try { 42 | GLib.FileUtils.get_contents (file_path, out contents); 43 | } catch (Error err) { 44 | if (err is FileError.NOENT) 45 | return null; 46 | 47 | throw err; 48 | } 49 | 50 | return contents; 51 | }); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/Models/Log.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020-2021 Lains 3 | * 4 | * This program is free software; you can redistribute it &&/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | */ 19 | namespace Khronos { 20 | public class Log : Object, Json.Serializable { 21 | public string id { get; set; default = Uuid.string_random (); } 22 | public string name { get; set; } 23 | public string timedate { get; set; } 24 | public string tags { get; set; } 25 | 26 | public static Log from_json (Json.Node node) requires (node.get_node_type () == OBJECT) { 27 | return (Log) Json.gobject_deserialize (typeof (Log), node); 28 | } 29 | 30 | public static List list_from_json (Json.Node node) requires (node.get_node_type () == ARRAY) { 31 | var result = new List (); 32 | 33 | var json_array = node.get_array (); 34 | json_array.foreach_element ((_, __, element_node) => { 35 | result.append (Log.from_json (element_node)); 36 | }); 37 | 38 | return (owned) result; 39 | } 40 | 41 | public Json.Node to_json () { 42 | return Json.gobject_serialize (this); 43 | } 44 | 45 | bool deserialize_property (string property_name, out Value @value, ParamSpec pspec, Json.Node property_node) { 46 | return default_deserialize_property (property_name, out @value, pspec, property_node); 47 | } 48 | 49 | Json.Node serialize_property (string property_name, Value @value, ParamSpec pspec) { 50 | return default_serialize_property (property_name, @value, pspec); 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/Services/MigrationManager.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020-2022 Lains 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | */ 19 | 20 | namespace Khronos { 21 | public class MigrationManager { 22 | public unowned MainWindow win = null; 23 | public unowned Json.Builder builder; 24 | private string app_dir = Environment.get_user_data_dir () + "/io.github.lainsce.Khronos"; 25 | private string file_name; 26 | 27 | public MigrationManager (MainWindow win) { 28 | this.win = win; 29 | file_name = this.app_dir + "/saved_logged_tasks.json"; 30 | } 31 | 32 | public void load_from_file() { 33 | try { 34 | var file = File.new_for_path(file_name); 35 | var json_string = ""; 36 | if (file.query_exists()) { 37 | GLib.FileUtils.get_contents (file.get_path (), out json_string); 38 | var parser = new Json.Parser(); 39 | parser.load_from_data(json_string); 40 | var root = parser.get_root(); 41 | var array = root.get_array(); 42 | foreach (var tasks in array.get_elements()) { 43 | var task = tasks.get_array (); 44 | string name = task.get_string_element(0); 45 | string timedate = task.get_string_element(1); 46 | 47 | win.add_task (Uuid.string_random (), name, timedate, ""); 48 | } 49 | } 50 | } catch (Error e) { 51 | warning ("Failed to load file: %s\n", e.message); 52 | } 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/Widgets/LogRowContent.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2022 Lains 3 | * 4 | * This program is free software; you can redistribute it &&/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | */ 19 | [GtkTemplate (ui = "/io/github/lainsce/Khronos/logrowcontent.ui")] 20 | public class Khronos.LogRowContent : Adw.Bin { 21 | public signal void clicked (); 22 | public LogViewModel? logs {get; set;} 23 | 24 | [GtkChild] 25 | public unowned Gtk.Box log_tag_holder; 26 | [GtkChild] 27 | public unowned Adw.ActionRow row; 28 | 29 | Binding? text_binding; 30 | Binding? text2_binding; 31 | 32 | Log? _log; 33 | public Log? log { 34 | get { return _log; } 35 | set { 36 | if (value == _log) 37 | return; 38 | 39 | text_binding?.unbind (); 40 | text2_binding?.unbind (); 41 | 42 | _log = value; 43 | 44 | text_binding = _log?.bind_property ( 45 | "name", row, "title", SYNC_CREATE | BIDIRECTIONAL); 46 | text2_binding = _log?.bind_property ( 47 | "timedate", row, "subtitle", SYNC_CREATE | BIDIRECTIONAL); 48 | 49 | string[] tags = _log.tags.split (":"); 50 | foreach (var t in tags) { 51 | var build = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 0); 52 | build.add_css_class ("kh-tag"); 53 | var tagobj = new Gtk.Label (t); 54 | build.append (tagobj); 55 | log_tag_holder.append (build); 56 | } 57 | } 58 | } 59 | 60 | construct { 61 | } 62 | 63 | [GtkCallback] 64 | void on_delete_button_clicked () { 65 | ((LogListView) MiscUtils.find_ancestor_of_type (this)).log_removal_requested (log); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /meson.build: -------------------------------------------------------------------------------- 1 | project('io.github.lainsce.Khronos', 'vala', 2 | version: '4.0.0', 3 | meson_version: '>= 0.59.0' 4 | ) 5 | 6 | gnome = import('gnome') 7 | i18n = import('i18n') 8 | 9 | add_project_arguments([ 10 | '--target-glib=2.68', 11 | ], 12 | language: 'vala', 13 | ) 14 | 15 | if get_option('development') 16 | app_id = 'io.github.lainsce.Khronos.Devel' 17 | name_suffix = ' (Development)' 18 | else 19 | app_id = 'io.github.lainsce.Khronos' 20 | name_suffix = '' 21 | endif 22 | 23 | conf = configuration_data() 24 | conf.set_quoted('APP_ID', app_id) 25 | conf.set_quoted('NAME_SUFFIX', name_suffix) 26 | conf.set_quoted('VERSION', meson.project_version()) 27 | conf.set_quoted('GETTEXT_PACKAGE', app_id) 28 | conf.set_quoted('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir'))) 29 | conf.set10('DEVELOPMENT', get_option('development')) 30 | configure_file(output: 'config.h', configuration: conf) 31 | config_h_dir = include_directories('.') 32 | 33 | add_project_arguments( 34 | '-include', 'config.h', 35 | '-DGETTEXT_PACKAGE="@0@"'.format(app_id), 36 | language: 'c' 37 | ) 38 | 39 | asresources = gnome.compile_resources( 40 | 'as-resources', 'data/io.github.lainsce.Khronos.gresource.xml', 41 | source_dir: 'data', 42 | c_name: 'as' 43 | ) 44 | 45 | sources = [ 46 | 'src/Application.vala', 47 | 'src/MainWindow.vala', 48 | 'src/Models/Log.vala', 49 | 'src/Repositories/LogRepository.vala', 50 | 'src/Views/LogListView.vala', 51 | 'src/Views/View.vala', 52 | 'src/ViewModels/LogViewModel.vala', 53 | 'src/Utils/FileUtils.vala', 54 | 'src/Utils/MiscUtils.vala', 55 | 'src/Utils/ThreadUtils.vala', 56 | 'src/Utils/ObservableList.vala', 57 | 'src/Services/SettingsManager.vala', 58 | 'src/Services/MigrationManager.vala', 59 | 'src/Services/FileManager.vala', 60 | 'src/Services/Dialog.vala', 61 | 'src/Widgets/LogRowContent.vala', 62 | 'src/Widgets/TagHolder.vala', 63 | ] 64 | 65 | dependencies = [ 66 | dependency('gio-2.0'), 67 | dependency('gtk4'), 68 | dependency('glib-2.0'), 69 | dependency('gobject-2.0'), 70 | dependency('gee-0.8'), 71 | dependency('libadwaita-1'), 72 | dependency('json-glib-1.0'), 73 | meson.get_compiler('c').find_library('m', required: true) 74 | ] 75 | 76 | executable( 77 | meson.project_name(), 78 | sources, 79 | asresources, 80 | dependencies: dependencies, 81 | vala_args: [meson.project_source_root() + '/src/Config.vapi'], 82 | install : true 83 | ) 84 | 85 | subdir('data') 86 | subdir('po') 87 | 88 | gnome.post_install( 89 | glib_compile_schemas: true, 90 | gtk_update_icon_cache: true, 91 | update_desktop_database: true 92 | ) 93 | -------------------------------------------------------------------------------- /src/Services/Dialog.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020-2021 Lains 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | namespace Khronos.Dialog { 18 | public unowned MainWindow win; 19 | public async File? display_save_dialog () { 20 | var chooser = new Gtk.FileChooserNative (null, win, Gtk.FileChooserAction.SAVE, null, null); 21 | chooser.set_transient_for(win); 22 | var filter1 = new Gtk.FileFilter (); 23 | filter1.set_filter_name (_("CSV files")); 24 | filter1.add_pattern ("*.csv"); 25 | chooser.add_filter (filter1); 26 | var filter = new Gtk.FileFilter (); 27 | filter.set_filter_name (_("All files")); 28 | filter.add_pattern ("*"); 29 | chooser.add_filter (filter); 30 | 31 | var response = yield run_dialog_async (chooser); 32 | 33 | if (response == Gtk.ResponseType.ACCEPT) { 34 | return chooser.get_file (); 35 | } 36 | 37 | return null; 38 | } 39 | 40 | public async File? display_open_dialog () { 41 | var chooser = new Gtk.FileChooserNative (null, win, Gtk.FileChooserAction.OPEN, null, null); 42 | chooser.set_transient_for(win); 43 | var filter1 = new Gtk.FileFilter (); 44 | filter1.set_filter_name (_("CSV files")); 45 | filter1.add_pattern ("*.csv"); 46 | chooser.add_filter (filter1); 47 | var filter = new Gtk.FileFilter (); 48 | filter.set_filter_name (_("All files")); 49 | filter.add_pattern ("*"); 50 | chooser.add_filter (filter); 51 | 52 | var response = yield run_dialog_async (chooser); 53 | 54 | if (response == Gtk.ResponseType.ACCEPT) { 55 | return chooser.get_file (); 56 | } 57 | 58 | return null; 59 | } 60 | 61 | private async Gtk.ResponseType run_dialog_async (Gtk.FileChooserNative dialog) { 62 | var response = Gtk.ResponseType.CANCEL; 63 | 64 | dialog.response.connect (r => { 65 | response = (Gtk.ResponseType) r; 66 | 67 | run_dialog_async.callback (); 68 | }); 69 | 70 | dialog.show (); 71 | 72 | yield; 73 | return response; 74 | } 75 | 76 | } 77 | -------------------------------------------------------------------------------- /src/Services/FileManager.vala: -------------------------------------------------------------------------------- 1 | namespace Khronos.FileManager { 2 | public async void save_logs (LogViewModel view_model) throws Error { 3 | debug ("Save as button pressed."); 4 | string tasks = ""; 5 | var file = yield Dialog.display_save_dialog (); 6 | uint i, n = view_model.logs.get_n_items (); 7 | 8 | tasks += "task,timedate,tags\n"; 9 | for (i = 0; i < n; i++) { 10 | var item = view_model.logs.get_item (i); 11 | tasks += "\"" + ((Log)item).name.replace("\"", "") + 12 | "\",\"" + ((Log)item).timedate.replace("\"", "").replace("\n", "") + 13 | "\",\"" + ((Log)item).tags + "\"\n"; 14 | } 15 | 16 | GLib.FileUtils.set_contents (file.get_path(), tasks); 17 | } 18 | 19 | public async Gee.ArrayList load_as () throws Error { 20 | debug ("Open button pressed."); 21 | var file = yield Dialog.display_open_dialog (); 22 | string file_path = file.get_path (); 23 | string text; 24 | try { 25 | GLib.FileUtils.get_contents (file_path, out text); 26 | } catch (Error err) { 27 | print (err.message); 28 | } 29 | 30 | var logs = new Gee.ArrayList (); 31 | Log? current_log = null; 32 | 33 | int i = 0; 34 | string[] tokens = text.split ("\n"); 35 | foreach (string line in tokens) { 36 | line = line.strip (); 37 | if (line.has_prefix ("\"")) { 38 | GLib.DateTime dt = new GLib.DateTime.now_local (); 39 | string[] logged = line.replace ("\"", "").strip().split(","); 40 | 41 | GLib.DateTime taskdt = new GLib.DateTime.local (dt.get_year (), 42 | int.parse(logged[2].substring(1,2)), 43 | int.parse(logged[2].substring(4,2)), 44 | int.parse(logged[2].substring(7,2)), 45 | int.parse(logged[2].substring(12,2)), 46 | double.parse(logged[2].substring(17,2))); 47 | 48 | current_log = new Log (); 49 | current_log.name = logged[0]; 50 | current_log.timedate = "%s\n%s – %s".printf(logged[1].substring(0,12), 51 | ("%s").printf (logged[1].substring(13,3) + ", " + logged[2].substring(0,20)), 52 | ("%s").printf (taskdt.add_full (dt.get_year (), 53 | int.parse(logged[2].substring(1,2)), 54 | int.parse(logged[2].substring(4,2)), 55 | int.parse(logged[1].substring(1,2)), 56 | int.parse(logged[1].substring(5,2)), 57 | double.parse(logged[1].substring(10,2))).format ("%H∶%M∶%S"))); 58 | 59 | current_log.tags = logged[3]; 60 | logs.add (current_log); 61 | } 62 | 63 | i++; 64 | } 65 | 66 | return logs; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /data/icons/io.github.lainsce.Khronos.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/ViewModels/LogViewModel.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2022 Lains 3 | * 4 | * This program is free software; you can redistribute it &&/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | */ 19 | public class Khronos.LogViewModel : Object { 20 | uint timeout_id = 0; 21 | public ObservableList logs { get; default = new ObservableList (); } 22 | public LogRepository? repository { private get; construct; } 23 | 24 | public LogViewModel (LogRepository repository) { 25 | Object (repository: repository); 26 | } 27 | 28 | construct { 29 | populate_logs.begin (); 30 | } 31 | 32 | public void create_new_log (Log? log) { 33 | logs.add (log); 34 | repository.insert_log (log); 35 | save_logs (); 36 | } 37 | 38 | public void update_log (Log log) { 39 | repository.update_log (log); 40 | save_logs (); 41 | } 42 | 43 | public void delete_log (Log log) { 44 | logs.remove (log); 45 | repository.delete_log (log.id); 46 | save_logs (); 47 | } 48 | 49 | public async void delete_trash (MainWindow win) { 50 | var dialog = new Adw.MessageDialog (win, _("Clear Logs?"), null); 51 | dialog.set_body (_("Clearing means the logs here will be permanently lost with no recovery.")); 52 | dialog.add_response ("cancel", _("Cancel")); 53 | dialog.add_response ("clear", _("Clear")); 54 | dialog.set_response_appearance ("clear", Adw.ResponseAppearance.DESTRUCTIVE); 55 | dialog.set_default_response ("clear"); 56 | dialog.set_close_response ("cancel"); 57 | dialog.response.connect ((response) => { 58 | switch (response) { 59 | case "clear": 60 | depopulate_trashs.begin (); 61 | dialog.close (); 62 | break; 63 | case "cancel": 64 | default: 65 | dialog.close (); 66 | return; 67 | } 68 | }); 69 | dialog.present (); 70 | } 71 | 72 | async void populate_logs () { 73 | var logs = yield repository.get_logs (); 74 | this.logs.add_all (logs); 75 | } 76 | 77 | public async List list_logs () { 78 | var logs = yield repository.get_logs (); 79 | return logs; 80 | } 81 | 82 | async void depopulate_trashs () { 83 | logs.remove_all (); 84 | 85 | var rlogs = yield repository.get_logs (); 86 | foreach (var l in rlogs) { 87 | repository.delete_log (l.id); 88 | } 89 | 90 | save_logs (); 91 | } 92 | 93 | void save_logs () { 94 | if (timeout_id != 0) 95 | Source.remove (timeout_id); 96 | 97 | timeout_id = Timeout.add (500, () => { 98 | timeout_id = 0; 99 | repository.save.begin (); 100 | return Source.REMOVE; 101 | }); 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /src/Repositories/LogRepository.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020-2021 Lains 3 | * 4 | * This program is free software; you can redistribute it &&/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 3 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | */ 19 | public class Khronos.LogRepository : Object { 20 | const string FILENAME = "saved_logged_tasks.json"; 21 | 22 | Queue insert_queue = new Queue (); 23 | public Queue update_queue = new Queue (); 24 | Queue delete_queue = new Queue (); 25 | 26 | public async List get_logs () { 27 | try { 28 | var settings = new Settings (); 29 | if (settings.schema_version == 1) { 30 | var contents = yield FileUtils.read_text_file (FILENAME); 31 | 32 | if (contents == null) 33 | return new List (); 34 | 35 | var json = Json.from_string (contents); 36 | 37 | if (json.get_node_type () != ARRAY) 38 | return new List (); 39 | 40 | return Log.list_from_json (json); 41 | } 42 | return new List (); 43 | } catch (Error err) { 44 | critical ("Error: %s", err.message); 45 | return new List (); 46 | } 47 | } 48 | 49 | public void insert_log (Log log) { 50 | insert_queue.push_tail (log); 51 | } 52 | 53 | public void update_log (Log log) { 54 | update_queue.push_tail (log); 55 | } 56 | 57 | public void delete_log (string id) { 58 | delete_queue.push_tail (id); 59 | } 60 | 61 | public async bool save () { 62 | var logs = yield get_logs (); 63 | 64 | Log? log = null; 65 | while ((log = update_queue.pop_head ()) != null) { 66 | var current_log = search_log_by_id (logs, log.id); 67 | 68 | if (current_log == null) { 69 | insert_queue.push_tail (log); 70 | continue; 71 | } 72 | current_log.name = log.name; 73 | current_log.timedate = log.timedate; 74 | current_log.tags = log.tags; 75 | } 76 | 77 | string? log_id = null; 78 | while ((log_id = delete_queue.pop_head ()) != null) { 79 | log = search_log_by_id (logs, log_id); 80 | 81 | if (log == null) 82 | continue; 83 | 84 | logs.remove (log); 85 | } 86 | 87 | log = null; 88 | while ((log = insert_queue.pop_head ()) != null) 89 | logs.append (log); 90 | 91 | var json_array = new Json.Array (); 92 | foreach (var item in logs) 93 | json_array.add_element (item.to_json ()); 94 | 95 | var node = new Json.Node (ARRAY); 96 | node.set_array (json_array); 97 | 98 | var str = Json.to_string (node, false); 99 | 100 | try { 101 | return yield FileUtils.create_text_file (FILENAME, str); 102 | } catch (Error err) { 103 | critical ("Error: %s", err.message); 104 | return false; 105 | } 106 | } 107 | 108 | public inline Log? search_log_by_id (List logs, string id) { 109 | unowned var link = logs.search (id, (log, id) => strcmp (log.id, id)); 110 | return link?.data; 111 | } 112 | } 113 | -------------------------------------------------------------------------------- /po/da.po: -------------------------------------------------------------------------------- 1 | # Danish translations for extra package. 2 | # Copyright (C) 2020 THE extra'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the extra package. 4 | # Siigdev, 2020. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: extra\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-11-29 23:06+0100\n" 11 | "PO-Revision-Date: 2021-11-29 23:07+0100\n" 12 | "Last-Translator: Siigdev\n" 13 | "Language-Team: none\n" 14 | "Language: da\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | "X-Generator: Poedit 3.0\n" 20 | 21 | #: data/io.github.lainsce.Khronos.appdata.xml.in:6 22 | #: data/io.github.lainsce.Khronos.desktop.in:3 23 | msgid "Khronos" 24 | msgstr "Tidsplan" 25 | 26 | #: data/io.github.lainsce.Khronos.appdata.xml.in:7 27 | msgid "Log the time it took to do tasks" 28 | msgstr "" 29 | 30 | #: data/io.github.lainsce.Khronos.appdata.xml.in:9 31 | msgid "" 32 | "Start logging any task's time to completion, with the ability to stop the " 33 | "timer at any moment, with notifications for longer task sessions." 34 | msgstr "" 35 | 36 | #: data/io.github.lainsce.Khronos.appdata.xml.in:11 37 | msgid "Quit anytime with the shortcut Ctrl + Q" 38 | msgstr "Luk på ethvert tidspunkt med genvejen Ctrl + Q" 39 | 40 | #: data/io.github.lainsce.Khronos.appdata.xml.in:21 41 | msgid "Lains" 42 | msgstr "Lains" 43 | 44 | #: data/io.github.lainsce.Khronos.appdata.xml.in:47 45 | msgid "Release: UI Refreshments" 46 | msgstr "" 47 | 48 | #: data/io.github.lainsce.Khronos.appdata.xml.in:49 49 | msgid "Changed: The UI is now with a better layout." 50 | msgstr "" 51 | 52 | #: data/io.github.lainsce.Khronos.appdata.xml.in:55 53 | msgid "Release: Port to GTK4" 54 | msgstr "" 55 | 56 | #: data/io.github.lainsce.Khronos.appdata.xml.in:57 57 | msgid "Changed: Rewritten for GTK4." 58 | msgstr "" 59 | 60 | #: data/io.github.lainsce.Khronos.desktop.in:4 61 | msgid "Track each task time in a simple inobtrusive way" 62 | msgstr "" 63 | 64 | #: data/io.github.lainsce.Khronos.desktop.in:11 65 | #, fuzzy 66 | msgid "Plot;Planning;Time Tracking;" 67 | msgstr "Plot;Uge;Planlægning;Tidsplan;" 68 | 69 | #: data/io.github.lainsce.Khronos.gschema.xml:5 70 | msgid "Delay between notifications" 71 | msgstr "" 72 | 73 | #: data/io.github.lainsce.Khronos.gschema.xml:6 74 | msgid "The delay between two notifications, default is 30min. in seconds." 75 | msgstr "" 76 | 77 | #: data/ui/main_window.ui:6 78 | msgid "Export Logs as CSV…" 79 | msgstr "" 80 | 81 | #: data/ui/main_window.ui:10 82 | msgid "Import Logs from CSV…" 83 | msgstr "" 84 | 85 | #: data/ui/main_window.ui:16 86 | #, fuzzy 87 | msgid "About Khronos" 88 | msgstr "Tidsplan" 89 | 90 | #: data/ui/main_window.ui:53 91 | msgid "Timer" 92 | msgstr "" 93 | 94 | #: data/ui/main_window.ui:77 95 | msgid "Log name…" 96 | msgstr "" 97 | 98 | #: data/ui/main_window.ui:96 99 | msgid "Adds a log to the list" 100 | msgstr "" 101 | 102 | #: data/ui/main_window.ui:106 src/MainWindow.vala:161 103 | msgid "Starts the timer for a log" 104 | msgstr "" 105 | 106 | #: data/ui/main_window.ui:122 107 | msgid "Logs" 108 | msgstr "" 109 | 110 | #: data/ui/main_window.ui:148 111 | msgid "Removes all logs from the list" 112 | msgstr "" 113 | 114 | #: data/ui/main_window.ui:180 115 | msgid "No Logs" 116 | msgstr "" 117 | 118 | #: data/ui/main_window.ui:188 119 | msgid "Add a log on Timer tab and check later." 120 | msgstr "" 121 | 122 | #: src/MainWindow.vala:153 123 | msgid "Stops the timer for a log" 124 | msgstr "" 125 | 126 | #: src/MainWindow.vala:186 127 | msgid "Empty the Logs List?" 128 | msgstr "" 129 | 130 | #: src/MainWindow.vala:187 131 | msgid "" 132 | "Emptying this list means all the logs in it will be permanently lost with no " 133 | "recovery." 134 | msgstr "" 135 | 136 | #: src/MainWindow.vala:189 137 | msgid "Cancel" 138 | msgstr "" 139 | 140 | #: src/MainWindow.vala:190 141 | msgid "Empty List" 142 | msgstr "" 143 | 144 | #: src/MainWindow.vala:307 145 | msgid "Go rest for a while before continuing." 146 | msgstr "" 147 | 148 | #: src/MainWindow.vala:316 149 | msgid "Maybe grab a snack before continuing." 150 | msgstr "" 151 | 152 | #: src/MainWindow.vala:325 153 | msgid "Perhaps go get some coffee or tea before continuing." 154 | msgstr "" 155 | 156 | #: src/MainWindow.vala:334 157 | msgid "That's a big task. Let's rest a bit before continuing." 158 | msgstr "" 159 | 160 | #: src/MainWindow.vala:343 161 | msgid "Amazing work! But please rest a bit before continuing." 162 | msgstr "" 163 | 164 | #: src/MainWindow.vala:387 165 | msgid "Track each task's time in a simple inobtrusive way." 166 | msgstr "" 167 | 168 | #: src/MainWindow.vala:393 169 | msgid "translator-credits" 170 | msgstr "" 171 | 172 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 173 | msgid "CSV files" 174 | msgstr "" 175 | 176 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 177 | msgid "All files" 178 | msgstr "" 179 | -------------------------------------------------------------------------------- /po/ca.po: -------------------------------------------------------------------------------- 1 | # Catalan translations for com.github.lainsce.khronos package. 2 | # Copyright (C) 2020 THE com.github.lainsce.khronos'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.lainsce.khronos package. 4 | # Adolfo Jayme Barrientos , 2020. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: com.github.lainsce.khronos\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-11-29 23:06+0100\n" 11 | "PO-Revision-Date: 2021-11-29 23:07+0100\n" 12 | "Last-Translator: Adolfo Jayme Barrientos \n" 13 | "Language-Team: none\n" 14 | "Language: ca\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Poedit 3.0\n" 19 | 20 | #: data/io.github.lainsce.Khronos.appdata.xml.in:6 21 | #: data/io.github.lainsce.Khronos.desktop.in:3 22 | msgid "Khronos" 23 | msgstr "Horari" 24 | 25 | #: data/io.github.lainsce.Khronos.appdata.xml.in:7 26 | msgid "Log the time it took to do tasks" 27 | msgstr "" 28 | 29 | #: data/io.github.lainsce.Khronos.appdata.xml.in:9 30 | msgid "" 31 | "Start logging any task's time to completion, with the ability to stop the " 32 | "timer at any moment, with notifications for longer task sessions." 33 | msgstr "" 34 | 35 | #: data/io.github.lainsce.Khronos.appdata.xml.in:11 36 | msgid "Quit anytime with the shortcut Ctrl + Q" 37 | msgstr "" 38 | 39 | #: data/io.github.lainsce.Khronos.appdata.xml.in:21 40 | msgid "Lains" 41 | msgstr "" 42 | 43 | #: data/io.github.lainsce.Khronos.appdata.xml.in:47 44 | msgid "Release: UI Refreshments" 45 | msgstr "" 46 | 47 | #: data/io.github.lainsce.Khronos.appdata.xml.in:49 48 | msgid "Changed: The UI is now with a better layout." 49 | msgstr "" 50 | 51 | #: data/io.github.lainsce.Khronos.appdata.xml.in:55 52 | msgid "Release: Port to GTK4" 53 | msgstr "" 54 | 55 | #: data/io.github.lainsce.Khronos.appdata.xml.in:57 56 | msgid "Changed: Rewritten for GTK4." 57 | msgstr "" 58 | 59 | #: data/io.github.lainsce.Khronos.desktop.in:4 60 | msgid "Track each task time in a simple inobtrusive way" 61 | msgstr "" 62 | 63 | #: data/io.github.lainsce.Khronos.desktop.in:11 64 | msgid "Plot;Planning;Time Tracking;" 65 | msgstr "" 66 | 67 | #: data/io.github.lainsce.Khronos.gschema.xml:5 68 | msgid "Delay between notifications" 69 | msgstr "" 70 | 71 | #: data/io.github.lainsce.Khronos.gschema.xml:6 72 | msgid "The delay between two notifications, default is 30min. in seconds." 73 | msgstr "" 74 | 75 | #: data/ui/main_window.ui:6 76 | msgid "Export Logs as CSV…" 77 | msgstr "" 78 | 79 | #: data/ui/main_window.ui:10 80 | msgid "Import Logs from CSV…" 81 | msgstr "" 82 | 83 | #: data/ui/main_window.ui:16 84 | #, fuzzy 85 | msgid "About Khronos" 86 | msgstr "Horari" 87 | 88 | #: data/ui/main_window.ui:53 89 | #, fuzzy 90 | msgid "Timer" 91 | msgstr "Hora de la tasca" 92 | 93 | #: data/ui/main_window.ui:77 94 | #, fuzzy 95 | msgid "Log name…" 96 | msgstr "No hi ha cap tasca…" 97 | 98 | #: data/ui/main_window.ui:96 99 | msgid "Adds a log to the list" 100 | msgstr "" 101 | 102 | #: data/ui/main_window.ui:106 src/MainWindow.vala:161 103 | msgid "Starts the timer for a log" 104 | msgstr "" 105 | 106 | #: data/ui/main_window.ui:122 107 | msgid "Logs" 108 | msgstr "" 109 | 110 | #: data/ui/main_window.ui:148 111 | msgid "Removes all logs from the list" 112 | msgstr "" 113 | 114 | #: data/ui/main_window.ui:180 115 | msgid "No Logs" 116 | msgstr "" 117 | 118 | #: data/ui/main_window.ui:188 119 | msgid "Add a log on Timer tab and check later." 120 | msgstr "" 121 | 122 | #: src/MainWindow.vala:153 123 | msgid "Stops the timer for a log" 124 | msgstr "" 125 | 126 | #: src/MainWindow.vala:186 127 | msgid "Empty the Logs List?" 128 | msgstr "" 129 | 130 | #: src/MainWindow.vala:187 131 | msgid "" 132 | "Emptying this list means all the logs in it will be permanently lost with no " 133 | "recovery." 134 | msgstr "" 135 | 136 | #: src/MainWindow.vala:189 137 | msgid "Cancel" 138 | msgstr "" 139 | 140 | #: src/MainWindow.vala:190 141 | msgid "Empty List" 142 | msgstr "" 143 | 144 | #: src/MainWindow.vala:307 145 | msgid "Go rest for a while before continuing." 146 | msgstr "" 147 | 148 | #: src/MainWindow.vala:316 149 | msgid "Maybe grab a snack before continuing." 150 | msgstr "" 151 | 152 | #: src/MainWindow.vala:325 153 | msgid "Perhaps go get some coffee or tea before continuing." 154 | msgstr "" 155 | 156 | #: src/MainWindow.vala:334 157 | msgid "That's a big task. Let's rest a bit before continuing." 158 | msgstr "" 159 | 160 | #: src/MainWindow.vala:343 161 | msgid "Amazing work! But please rest a bit before continuing." 162 | msgstr "" 163 | 164 | #: src/MainWindow.vala:387 165 | msgid "Track each task's time in a simple inobtrusive way." 166 | msgstr "" 167 | 168 | #: src/MainWindow.vala:393 169 | msgid "translator-credits" 170 | msgstr "" 171 | 172 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 173 | msgid "CSV files" 174 | msgstr "" 175 | 176 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 177 | msgid "All files" 178 | msgstr "" 179 | -------------------------------------------------------------------------------- /po/lt.po: -------------------------------------------------------------------------------- 1 | # Lithuanian translations for extra package. 2 | # Copyright (C) 2020 THE extra'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the extra package. 4 | # Moo, 2020. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: extra\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-11-29 23:06+0100\n" 11 | "PO-Revision-Date: 2021-11-29 23:08+0100\n" 12 | "Last-Translator: Moo\n" 13 | "Language-Team: none\n" 14 | "Language: lt\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" 19 | "%100<10 || n%100>=20) ? 1 : 2);\n" 20 | "X-Generator: Poedit 3.0\n" 21 | 22 | #: data/io.github.lainsce.Khronos.appdata.xml.in:6 23 | #: data/io.github.lainsce.Khronos.desktop.in:3 24 | msgid "Khronos" 25 | msgstr "Tvarkaraštis" 26 | 27 | #: data/io.github.lainsce.Khronos.appdata.xml.in:7 28 | msgid "Log the time it took to do tasks" 29 | msgstr "" 30 | 31 | #: data/io.github.lainsce.Khronos.appdata.xml.in:9 32 | msgid "" 33 | "Start logging any task's time to completion, with the ability to stop the " 34 | "timer at any moment, with notifications for longer task sessions." 35 | msgstr "" 36 | 37 | #: data/io.github.lainsce.Khronos.appdata.xml.in:11 38 | msgid "Quit anytime with the shortcut Ctrl + Q" 39 | msgstr "Išeikite bet kuriuo metu, naudodami klavišų susiejimą Ctrl (Vald) + Q" 40 | 41 | #: data/io.github.lainsce.Khronos.appdata.xml.in:21 42 | msgid "Lains" 43 | msgstr "Lains" 44 | 45 | #: data/io.github.lainsce.Khronos.appdata.xml.in:47 46 | msgid "Release: UI Refreshments" 47 | msgstr "" 48 | 49 | #: data/io.github.lainsce.Khronos.appdata.xml.in:49 50 | msgid "Changed: The UI is now with a better layout." 51 | msgstr "" 52 | 53 | #: data/io.github.lainsce.Khronos.appdata.xml.in:55 54 | msgid "Release: Port to GTK4" 55 | msgstr "" 56 | 57 | #: data/io.github.lainsce.Khronos.appdata.xml.in:57 58 | msgid "Changed: Rewritten for GTK4." 59 | msgstr "" 60 | 61 | #: data/io.github.lainsce.Khronos.desktop.in:4 62 | msgid "Track each task time in a simple inobtrusive way" 63 | msgstr "" 64 | 65 | #: data/io.github.lainsce.Khronos.desktop.in:11 66 | #, fuzzy 67 | msgid "Plot;Planning;Time Tracking;" 68 | msgstr "Planuoti;Savaitė;Planavimas;Tvarkaraštis;" 69 | 70 | #: data/io.github.lainsce.Khronos.gschema.xml:5 71 | msgid "Delay between notifications" 72 | msgstr "" 73 | 74 | #: data/io.github.lainsce.Khronos.gschema.xml:6 75 | msgid "The delay between two notifications, default is 30min. in seconds." 76 | msgstr "" 77 | 78 | #: data/ui/main_window.ui:6 79 | msgid "Export Logs as CSV…" 80 | msgstr "" 81 | 82 | #: data/ui/main_window.ui:10 83 | msgid "Import Logs from CSV…" 84 | msgstr "" 85 | 86 | #: data/ui/main_window.ui:16 87 | #, fuzzy 88 | msgid "About Khronos" 89 | msgstr "Tvarkaraštis" 90 | 91 | #: data/ui/main_window.ui:53 92 | msgid "Timer" 93 | msgstr "" 94 | 95 | #: data/ui/main_window.ui:77 96 | msgid "Log name…" 97 | msgstr "" 98 | 99 | #: data/ui/main_window.ui:96 100 | msgid "Adds a log to the list" 101 | msgstr "" 102 | 103 | #: data/ui/main_window.ui:106 src/MainWindow.vala:161 104 | msgid "Starts the timer for a log" 105 | msgstr "" 106 | 107 | #: data/ui/main_window.ui:122 108 | msgid "Logs" 109 | msgstr "" 110 | 111 | #: data/ui/main_window.ui:148 112 | msgid "Removes all logs from the list" 113 | msgstr "" 114 | 115 | #: data/ui/main_window.ui:180 116 | msgid "No Logs" 117 | msgstr "" 118 | 119 | #: data/ui/main_window.ui:188 120 | msgid "Add a log on Timer tab and check later." 121 | msgstr "" 122 | 123 | #: src/MainWindow.vala:153 124 | msgid "Stops the timer for a log" 125 | msgstr "" 126 | 127 | #: src/MainWindow.vala:186 128 | msgid "Empty the Logs List?" 129 | msgstr "" 130 | 131 | #: src/MainWindow.vala:187 132 | msgid "" 133 | "Emptying this list means all the logs in it will be permanently lost with no " 134 | "recovery." 135 | msgstr "" 136 | 137 | #: src/MainWindow.vala:189 138 | msgid "Cancel" 139 | msgstr "" 140 | 141 | #: src/MainWindow.vala:190 142 | msgid "Empty List" 143 | msgstr "" 144 | 145 | #: src/MainWindow.vala:307 146 | msgid "Go rest for a while before continuing." 147 | msgstr "" 148 | 149 | #: src/MainWindow.vala:316 150 | msgid "Maybe grab a snack before continuing." 151 | msgstr "" 152 | 153 | #: src/MainWindow.vala:325 154 | msgid "Perhaps go get some coffee or tea before continuing." 155 | msgstr "" 156 | 157 | #: src/MainWindow.vala:334 158 | msgid "That's a big task. Let's rest a bit before continuing." 159 | msgstr "" 160 | 161 | #: src/MainWindow.vala:343 162 | msgid "Amazing work! But please rest a bit before continuing." 163 | msgstr "" 164 | 165 | #: src/MainWindow.vala:387 166 | msgid "Track each task's time in a simple inobtrusive way." 167 | msgstr "" 168 | 169 | #: src/MainWindow.vala:393 170 | msgid "translator-credits" 171 | msgstr "" 172 | 173 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 174 | msgid "CSV files" 175 | msgstr "" 176 | 177 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 178 | msgid "All files" 179 | msgstr "" 180 | -------------------------------------------------------------------------------- /po/ja.po: -------------------------------------------------------------------------------- 1 | # Japanese translations for com.github.lainsce.khronos package. 2 | # Copyright (C) 2020 THE com.github.lainsce.khronos'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.lainsce.khronos package. 4 | # Ryo Nakano , 2020. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: com.github.lainsce.khronos\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-11-29 23:06+0100\n" 11 | "PO-Revision-Date: 2021-11-29 23:08+0100\n" 12 | "Last-Translator: Ryo Nakano \n" 13 | "Language-Team: none\n" 14 | "Language: ja\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=1; plural=0;\n" 19 | "X-Generator: Poedit 3.0\n" 20 | 21 | #: data/io.github.lainsce.Khronos.appdata.xml.in:6 22 | #: data/io.github.lainsce.Khronos.desktop.in:3 23 | msgid "Khronos" 24 | msgstr "Khronos" 25 | 26 | #: data/io.github.lainsce.Khronos.appdata.xml.in:7 27 | msgid "Log the time it took to do tasks" 28 | msgstr "" 29 | 30 | #: data/io.github.lainsce.Khronos.appdata.xml.in:9 31 | msgid "" 32 | "Start logging any task's time to completion, with the ability to stop the " 33 | "timer at any moment, with notifications for longer task sessions." 34 | msgstr "" 35 | 36 | #: data/io.github.lainsce.Khronos.appdata.xml.in:11 37 | msgid "Quit anytime with the shortcut Ctrl + Q" 38 | msgstr "ショートカット Ctrl + Q で、いつでも終了できます" 39 | 40 | #: data/io.github.lainsce.Khronos.appdata.xml.in:21 41 | msgid "Lains" 42 | msgstr "Lains" 43 | 44 | #: data/io.github.lainsce.Khronos.appdata.xml.in:47 45 | msgid "Release: UI Refreshments" 46 | msgstr "" 47 | 48 | #: data/io.github.lainsce.Khronos.appdata.xml.in:49 49 | msgid "Changed: The UI is now with a better layout." 50 | msgstr "" 51 | 52 | #: data/io.github.lainsce.Khronos.appdata.xml.in:55 53 | msgid "Release: Port to GTK4" 54 | msgstr "" 55 | 56 | #: data/io.github.lainsce.Khronos.appdata.xml.in:57 57 | msgid "Changed: Rewritten for GTK4." 58 | msgstr "" 59 | 60 | #: data/io.github.lainsce.Khronos.desktop.in:4 61 | msgid "Track each task time in a simple inobtrusive way" 62 | msgstr "シンプルで目障りにならない方法で、タスクにかかった時間を計測しましょう" 63 | 64 | #: data/io.github.lainsce.Khronos.desktop.in:11 65 | msgid "Plot;Planning;Time Tracking;" 66 | msgstr "Plot;Planning;Time Tracking;計画;プラン;時間管理;" 67 | 68 | #: data/io.github.lainsce.Khronos.gschema.xml:5 69 | msgid "Delay between notifications" 70 | msgstr "" 71 | 72 | #: data/io.github.lainsce.Khronos.gschema.xml:6 73 | msgid "The delay between two notifications, default is 30min. in seconds." 74 | msgstr "" 75 | 76 | #: data/ui/main_window.ui:6 77 | msgid "Export Logs as CSV…" 78 | msgstr "" 79 | 80 | #: data/ui/main_window.ui:10 81 | msgid "Import Logs from CSV…" 82 | msgstr "" 83 | 84 | #: data/ui/main_window.ui:16 85 | #, fuzzy 86 | msgid "About Khronos" 87 | msgstr "Khronos" 88 | 89 | #: data/ui/main_window.ui:53 90 | #, fuzzy 91 | msgid "Timer" 92 | msgstr "タイマーを停止" 93 | 94 | #: data/ui/main_window.ui:77 95 | #, fuzzy 96 | msgid "Log name…" 97 | msgstr "新しいタスク名…" 98 | 99 | #: data/ui/main_window.ui:96 100 | msgid "Adds a log to the list" 101 | msgstr "" 102 | 103 | #: data/ui/main_window.ui:106 src/MainWindow.vala:161 104 | msgid "Starts the timer for a log" 105 | msgstr "" 106 | 107 | #: data/ui/main_window.ui:122 108 | msgid "Logs" 109 | msgstr "" 110 | 111 | #: data/ui/main_window.ui:148 112 | msgid "Removes all logs from the list" 113 | msgstr "" 114 | 115 | #: data/ui/main_window.ui:180 116 | msgid "No Logs" 117 | msgstr "" 118 | 119 | #: data/ui/main_window.ui:188 120 | msgid "Add a log on Timer tab and check later." 121 | msgstr "" 122 | 123 | #: src/MainWindow.vala:153 124 | msgid "Stops the timer for a log" 125 | msgstr "" 126 | 127 | #: src/MainWindow.vala:186 128 | msgid "Empty the Logs List?" 129 | msgstr "" 130 | 131 | #: src/MainWindow.vala:187 132 | msgid "" 133 | "Emptying this list means all the logs in it will be permanently lost with no " 134 | "recovery." 135 | msgstr "" 136 | 137 | #: src/MainWindow.vala:189 138 | msgid "Cancel" 139 | msgstr "" 140 | 141 | #: src/MainWindow.vala:190 142 | msgid "Empty List" 143 | msgstr "" 144 | 145 | #: src/MainWindow.vala:307 146 | msgid "Go rest for a while before continuing." 147 | msgstr "" 148 | 149 | #: src/MainWindow.vala:316 150 | msgid "Maybe grab a snack before continuing." 151 | msgstr "" 152 | 153 | #: src/MainWindow.vala:325 154 | msgid "Perhaps go get some coffee or tea before continuing." 155 | msgstr "" 156 | 157 | #: src/MainWindow.vala:334 158 | msgid "That's a big task. Let's rest a bit before continuing." 159 | msgstr "" 160 | 161 | #: src/MainWindow.vala:343 162 | msgid "Amazing work! But please rest a bit before continuing." 163 | msgstr "" 164 | 165 | #: src/MainWindow.vala:387 166 | msgid "Track each task's time in a simple inobtrusive way." 167 | msgstr "" 168 | 169 | #: src/MainWindow.vala:393 170 | msgid "translator-credits" 171 | msgstr "" 172 | 173 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 174 | msgid "CSV files" 175 | msgstr "" 176 | 177 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 178 | msgid "All files" 179 | msgstr "" 180 | -------------------------------------------------------------------------------- /po/io.github.lainsce.Khronos.pot: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2023-10-29 16:03+0300\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:7 21 | msgid "Log the time it took to do tasks" 22 | msgstr "" 23 | 24 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:9 25 | msgid "" 26 | "Start logging any task's time to completion, with the ability to stop the " 27 | "timer at any moment, with notifications for longer task sessions." 28 | msgstr "" 29 | 30 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:11 31 | msgid "Quit anytime with the shortcut Ctrl + Q" 32 | msgstr "" 33 | 34 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:20 35 | msgid "Plot" 36 | msgstr "" 37 | 38 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:21 39 | msgid "Planning" 40 | msgstr "" 41 | 42 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:22 43 | msgid "Time Tracking" 44 | msgstr "" 45 | 46 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:59 47 | msgid "Release: Day 2" 48 | msgstr "" 49 | 50 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:61 51 | msgid "Changed: Overall refinements to match the updated looks of GNOME apps." 52 | msgstr "" 53 | 54 | #: data/io.github.lainsce.Khronos.desktop.in:3 55 | msgid "Khronos" 56 | msgstr "" 57 | 58 | #: data/io.github.lainsce.Khronos.desktop.in:4 59 | msgid "Track each task time in a simple inobtrusive way" 60 | msgstr "" 61 | 62 | #: data/io.github.lainsce.Khronos.desktop.in:7 63 | msgid "Plot;Planning;Time Tracking;" 64 | msgstr "" 65 | 66 | #: data/io.github.lainsce.Khronos.gschema.xml:5 67 | msgid "Migration Version" 68 | msgstr "" 69 | 70 | #: data/io.github.lainsce.Khronos.gschema.xml:6 71 | msgid "The version of migration to use; Do not change." 72 | msgstr "" 73 | 74 | #: data/io.github.lainsce.Khronos.gschema.xml:10 75 | msgid "Delay between notifications" 76 | msgstr "" 77 | 78 | #: data/io.github.lainsce.Khronos.gschema.xml:11 79 | msgid "The delay between two notifications, default is 30min. in seconds." 80 | msgstr "" 81 | 82 | #: data/ui/main_window.ui:6 83 | msgid "Export Logs as CSV…" 84 | msgstr "" 85 | 86 | #: data/ui/main_window.ui:10 87 | msgid "Import Logs from CSV…" 88 | msgstr "" 89 | 90 | #: data/ui/main_window.ui:16 91 | msgid "About Khronos" 92 | msgstr "" 93 | 94 | #: data/ui/main_window.ui:58 95 | msgid "• events" 96 | msgstr "" 97 | 98 | #: data/ui/main_window.ui:70 99 | msgid "Timer" 100 | msgstr "" 101 | 102 | #: data/ui/main_window.ui:94 103 | msgid "Log name…" 104 | msgstr "" 105 | 106 | #: data/ui/main_window.ui:102 107 | msgid "Tags (split by colons)…" 108 | msgstr "" 109 | 110 | #: data/ui/main_window.ui:144 111 | msgid "Logs" 112 | msgstr "" 113 | 114 | #: data/ui/main_window.ui:195 src/MainWindow.vala:191 src/MainWindow.vala:205 115 | msgid "Starts the timer for a log" 116 | msgstr "" 117 | 118 | #: data/ui/main_window.ui:209 119 | msgid "Stops the timer for a log" 120 | msgstr "" 121 | 122 | #: data/ui/main_window.ui:220 123 | msgid "Resets the timer" 124 | msgstr "" 125 | 126 | #: data/ui/main_window.ui:231 127 | msgid "Adds a log to the list" 128 | msgstr "" 129 | 130 | #: data/ui/main_window.ui:248 131 | msgid "Cleans the logs list" 132 | msgstr "" 133 | 134 | #: src/MainWindow.vala:142 src/MainWindow.vala:235 src/MainWindow.vala:303 135 | #: src/MainWindow.vala:317 136 | msgid "events" 137 | msgstr "" 138 | 139 | #: src/MainWindow.vala:157 140 | msgid "Pauses the timer for a log" 141 | msgstr "" 142 | 143 | #: src/MainWindow.vala:359 144 | msgid "translator-credits" 145 | msgstr "" 146 | 147 | #: src/MainWindow.vala:450 148 | msgid "Go rest for a while before continuing." 149 | msgstr "" 150 | 151 | #: src/MainWindow.vala:459 152 | msgid "Maybe grab a snack before continuing." 153 | msgstr "" 154 | 155 | #: src/MainWindow.vala:468 156 | msgid "Perhaps go get some coffee or tea before continuing." 157 | msgstr "" 158 | 159 | #: src/MainWindow.vala:477 160 | msgid "That's a big task. Let's rest a bit before continuing." 161 | msgstr "" 162 | 163 | #: src/MainWindow.vala:486 164 | msgid "Amazing work! But please rest a bit before continuing." 165 | msgstr "" 166 | 167 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 168 | msgid "CSV files" 169 | msgstr "" 170 | 171 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 172 | msgid "All files" 173 | msgstr "" 174 | 175 | #: src/ViewModels/LogViewModel.vala:50 176 | msgid "Clear Logs?" 177 | msgstr "" 178 | 179 | #: src/ViewModels/LogViewModel.vala:51 180 | msgid "Clearing means the logs here will be permanently lost with no recovery." 181 | msgstr "" 182 | 183 | #: src/ViewModels/LogViewModel.vala:52 184 | msgid "Cancel" 185 | msgstr "" 186 | 187 | #: src/ViewModels/LogViewModel.vala:53 188 | msgid "Clear" 189 | msgstr "" 190 | -------------------------------------------------------------------------------- /po/pt.po: -------------------------------------------------------------------------------- 1 | # Portuguese (Portugal) translations for com.github.lainsce.khronos package. 2 | # Copyright (C) 2020 THE com.github.lainsce.khronos'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.lainsce.khronos package. 4 | # André Barata , 2020. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: com.github.lainsce.khronos\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-11-29 23:06+0100\n" 11 | "PO-Revision-Date: 2021-11-29 23:09+0100\n" 12 | "Last-Translator: André Barata \n" 13 | "Language-Team: none\n" 14 | "Language: pt\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Poedit 3.0\n" 19 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 20 | 21 | #: data/io.github.lainsce.Khronos.appdata.xml.in:6 22 | #: data/io.github.lainsce.Khronos.desktop.in:3 23 | msgid "Khronos" 24 | msgstr "Khronos" 25 | 26 | #: data/io.github.lainsce.Khronos.appdata.xml.in:7 27 | msgid "Log the time it took to do tasks" 28 | msgstr "" 29 | 30 | #: data/io.github.lainsce.Khronos.appdata.xml.in:9 31 | msgid "" 32 | "Start logging any task's time to completion, with the ability to stop the " 33 | "timer at any moment, with notifications for longer task sessions." 34 | msgstr "" 35 | 36 | #: data/io.github.lainsce.Khronos.appdata.xml.in:11 37 | msgid "Quit anytime with the shortcut Ctrl + Q" 38 | msgstr "Saía quando quiser com o atalho Ctrl + Q" 39 | 40 | #: data/io.github.lainsce.Khronos.appdata.xml.in:21 41 | msgid "Lains" 42 | msgstr "Lains" 43 | 44 | #: data/io.github.lainsce.Khronos.appdata.xml.in:47 45 | msgid "Release: UI Refreshments" 46 | msgstr "" 47 | 48 | #: data/io.github.lainsce.Khronos.appdata.xml.in:49 49 | msgid "Changed: The UI is now with a better layout." 50 | msgstr "" 51 | 52 | #: data/io.github.lainsce.Khronos.appdata.xml.in:55 53 | #, fuzzy 54 | msgid "Release: Port to GTK4" 55 | msgstr "Lançamento: Começar a Ordenar" 56 | 57 | #: data/io.github.lainsce.Khronos.appdata.xml.in:57 58 | msgid "Changed: Rewritten for GTK4." 59 | msgstr "" 60 | 61 | #: data/io.github.lainsce.Khronos.desktop.in:4 62 | msgid "Track each task time in a simple inobtrusive way" 63 | msgstr "Siga o tempo de cada tarefa de um modo simples e não intrusivo" 64 | 65 | #: data/io.github.lainsce.Khronos.desktop.in:11 66 | msgid "Plot;Planning;Time Tracking;" 67 | msgstr "Plot;Traçar;Planning;Planear;Time Tracking;Seguir Tempo;" 68 | 69 | #: data/io.github.lainsce.Khronos.gschema.xml:5 70 | msgid "Delay between notifications" 71 | msgstr "" 72 | 73 | #: data/io.github.lainsce.Khronos.gschema.xml:6 74 | msgid "The delay between two notifications, default is 30min. in seconds." 75 | msgstr "" 76 | 77 | #: data/ui/main_window.ui:6 78 | #, fuzzy 79 | msgid "Export Logs as CSV…" 80 | msgstr "Exportar Registo como Ficheiro CSV…" 81 | 82 | #: data/ui/main_window.ui:10 83 | #, fuzzy 84 | msgid "Import Logs from CSV…" 85 | msgstr "Exportar Registo como Ficheiro CSV…" 86 | 87 | #: data/ui/main_window.ui:16 88 | #, fuzzy 89 | msgid "About Khronos" 90 | msgstr "Khronos" 91 | 92 | #: data/ui/main_window.ui:53 93 | #, fuzzy 94 | msgid "Timer" 95 | msgstr "Tempo" 96 | 97 | #: data/ui/main_window.ui:77 98 | #, fuzzy 99 | msgid "Log name…" 100 | msgstr "Novo nome de registo…" 101 | 102 | #: data/ui/main_window.ui:96 103 | msgid "Adds a log to the list" 104 | msgstr "" 105 | 106 | #: data/ui/main_window.ui:106 src/MainWindow.vala:161 107 | msgid "Starts the timer for a log" 108 | msgstr "" 109 | 110 | #: data/ui/main_window.ui:122 111 | msgid "Logs" 112 | msgstr "" 113 | 114 | #: data/ui/main_window.ui:148 115 | msgid "Removes all logs from the list" 116 | msgstr "" 117 | 118 | #: data/ui/main_window.ui:180 119 | msgid "No Logs" 120 | msgstr "" 121 | 122 | #: data/ui/main_window.ui:188 123 | msgid "Add a log on Timer tab and check later." 124 | msgstr "" 125 | 126 | #: src/MainWindow.vala:153 127 | msgid "Stops the timer for a log" 128 | msgstr "" 129 | 130 | #: src/MainWindow.vala:186 131 | msgid "Empty the Logs List?" 132 | msgstr "" 133 | 134 | #: src/MainWindow.vala:187 135 | msgid "" 136 | "Emptying this list means all the logs in it will be permanently lost with no " 137 | "recovery." 138 | msgstr "" 139 | 140 | #: src/MainWindow.vala:189 141 | msgid "Cancel" 142 | msgstr "" 143 | 144 | #: src/MainWindow.vala:190 145 | msgid "Empty List" 146 | msgstr "" 147 | 148 | #: src/MainWindow.vala:307 149 | msgid "Go rest for a while before continuing." 150 | msgstr "Descanse um pouco antes de continuar." 151 | 152 | #: src/MainWindow.vala:316 153 | #, fuzzy 154 | msgid "Maybe grab a snack before continuing." 155 | msgstr "Descanse um pouco antes de continuar." 156 | 157 | #: src/MainWindow.vala:325 158 | #, fuzzy 159 | msgid "Perhaps go get some coffee or tea before continuing." 160 | msgstr "Descanse um pouco antes de continuar." 161 | 162 | #: src/MainWindow.vala:334 163 | #, fuzzy 164 | msgid "That's a big task. Let's rest a bit before continuing." 165 | msgstr "Descanse um pouco antes de continuar." 166 | 167 | #: src/MainWindow.vala:343 168 | #, fuzzy 169 | msgid "Amazing work! But please rest a bit before continuing." 170 | msgstr "Descanse um pouco antes de continuar." 171 | 172 | #: src/MainWindow.vala:387 173 | msgid "Track each task's time in a simple inobtrusive way." 174 | msgstr "" 175 | 176 | #: src/MainWindow.vala:393 177 | msgid "translator-credits" 178 | msgstr "" 179 | 180 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 181 | msgid "CSV files" 182 | msgstr "" 183 | 184 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 185 | msgid "All files" 186 | msgstr "" 187 | -------------------------------------------------------------------------------- /data/icons/io.github.lainsce.Khronos-symbolic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /po/sk.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the io.github.lainsce.Khronos package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: io.github.lainsce.Khronos\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-11-29 23:06+0100\n" 11 | "PO-Revision-Date: 2021-11-29 23:09+0100\n" 12 | "Last-Translator: MartinIIOT \n" 13 | "Language: sk\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Language-Team: \n" 18 | "X-Generator: Poedit 3.0\n" 19 | 20 | #: data/io.github.lainsce.Khronos.appdata.xml.in:6 21 | #: data/io.github.lainsce.Khronos.desktop.in:3 22 | msgid "Khronos" 23 | msgstr "Khronos" 24 | 25 | #: data/io.github.lainsce.Khronos.appdata.xml.in:7 26 | msgid "Log the time it took to do tasks" 27 | msgstr "" 28 | 29 | #: data/io.github.lainsce.Khronos.appdata.xml.in:9 30 | msgid "" 31 | "Start logging any task's time to completion, with the ability to stop the " 32 | "timer at any moment, with notifications for longer task sessions." 33 | msgstr "" 34 | 35 | #: data/io.github.lainsce.Khronos.appdata.xml.in:11 36 | msgid "Quit anytime with the shortcut Ctrl + Q" 37 | msgstr "" 38 | 39 | #: data/io.github.lainsce.Khronos.appdata.xml.in:21 40 | msgid "Lains" 41 | msgstr "" 42 | 43 | #: data/io.github.lainsce.Khronos.appdata.xml.in:47 44 | msgid "Release: UI Refreshments" 45 | msgstr "" 46 | 47 | #: data/io.github.lainsce.Khronos.appdata.xml.in:49 48 | msgid "Changed: The UI is now with a better layout." 49 | msgstr "" 50 | 51 | #: data/io.github.lainsce.Khronos.appdata.xml.in:55 52 | msgid "Release: Port to GTK4" 53 | msgstr "" 54 | 55 | #: data/io.github.lainsce.Khronos.appdata.xml.in:57 56 | msgid "Changed: Rewritten for GTK4." 57 | msgstr "" 58 | 59 | #: data/io.github.lainsce.Khronos.desktop.in:4 60 | #, fuzzy 61 | msgid "Track each task time in a simple inobtrusive way" 62 | msgstr "Sledujte čas každej úlohy jednoduchým a nenápadným spôsobom." 63 | 64 | #: data/io.github.lainsce.Khronos.desktop.in:11 65 | msgid "Plot;Planning;Time Tracking;" 66 | msgstr "" 67 | 68 | #: data/io.github.lainsce.Khronos.gschema.xml:5 69 | msgid "Delay between notifications" 70 | msgstr "" 71 | 72 | #: data/io.github.lainsce.Khronos.gschema.xml:6 73 | msgid "The delay between two notifications, default is 30min. in seconds." 74 | msgstr "" 75 | 76 | #: data/ui/main_window.ui:6 77 | #, fuzzy 78 | msgid "Export Logs as CSV…" 79 | msgstr "Exportovať záznamy (CSV)…" 80 | 81 | #: data/ui/main_window.ui:10 82 | #, fuzzy 83 | msgid "Import Logs from CSV…" 84 | msgstr "Exportovať záznamy (CSV)…" 85 | 86 | #: data/ui/main_window.ui:16 87 | msgid "About Khronos" 88 | msgstr "O Khronose" 89 | 90 | #: data/ui/main_window.ui:53 91 | msgid "Timer" 92 | msgstr "Časovač" 93 | 94 | #: data/ui/main_window.ui:77 95 | msgid "Log name…" 96 | msgstr "Názov záznamu…" 97 | 98 | #: data/ui/main_window.ui:96 99 | msgid "Adds a log to the list" 100 | msgstr "Pridať log do zoznamu" 101 | 102 | #: data/ui/main_window.ui:106 src/MainWindow.vala:161 103 | msgid "Starts the timer for a log" 104 | msgstr "" 105 | 106 | #: data/ui/main_window.ui:122 107 | msgid "Logs" 108 | msgstr "Záznamy" 109 | 110 | #: data/ui/main_window.ui:148 111 | msgid "Removes all logs from the list" 112 | msgstr "Odstrániť všetky záznamy zo zoznamu" 113 | 114 | #: data/ui/main_window.ui:180 115 | msgid "No Logs" 116 | msgstr "Žiadne záznamy" 117 | 118 | #: data/ui/main_window.ui:188 119 | msgid "Add a log on Timer tab and check later." 120 | msgstr "Pridajte záznam na kartu časovača a skontrolujte neskôr." 121 | 122 | #: src/MainWindow.vala:153 123 | msgid "Stops the timer for a log" 124 | msgstr "" 125 | 126 | #: src/MainWindow.vala:186 127 | msgid "Empty the Logs List?" 128 | msgstr "Vymazať zoznam záznamov?" 129 | 130 | #: src/MainWindow.vala:187 131 | msgid "" 132 | "Emptying this list means all the logs in it will be permanently lost with no " 133 | "recovery." 134 | msgstr "" 135 | "Vymazanie tohto zoznamu znamená, že všetky záznamy v ňom budú natrvalo " 136 | "stratené bez možnosti obnovenia." 137 | 138 | #: src/MainWindow.vala:189 139 | msgid "Cancel" 140 | msgstr "Zrušiť" 141 | 142 | #: src/MainWindow.vala:190 143 | msgid "Empty List" 144 | msgstr "Prázdny zoznam" 145 | 146 | #: src/MainWindow.vala:307 147 | msgid "Go rest for a while before continuing." 148 | msgstr "Pred pokračovaním si choďte na chvíľu oddýchnuť." 149 | 150 | #: src/MainWindow.vala:316 151 | #, fuzzy 152 | msgid "Maybe grab a snack before continuing." 153 | msgstr "Pred pokračovaním si choďte na chvíľu oddýchnuť." 154 | 155 | #: src/MainWindow.vala:325 156 | #, fuzzy 157 | msgid "Perhaps go get some coffee or tea before continuing." 158 | msgstr "Pred pokračovaním si choďte na chvíľu oddýchnuť." 159 | 160 | #: src/MainWindow.vala:334 161 | #, fuzzy 162 | msgid "That's a big task. Let's rest a bit before continuing." 163 | msgstr "Pred pokračovaním si choďte na chvíľu oddýchnuť." 164 | 165 | #: src/MainWindow.vala:343 166 | #, fuzzy 167 | msgid "Amazing work! But please rest a bit before continuing." 168 | msgstr "Pred pokračovaním si choďte na chvíľu oddýchnuť." 169 | 170 | #: src/MainWindow.vala:387 171 | msgid "Track each task's time in a simple inobtrusive way." 172 | msgstr "Sledujte čas každej úlohy jednoduchým a nenápadným spôsobom." 173 | 174 | #: src/MainWindow.vala:393 175 | msgid "translator-credits" 176 | msgstr "MartinIIOT" 177 | 178 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 179 | msgid "CSV files" 180 | msgstr "CSV súbory" 181 | 182 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 183 | msgid "All files" 184 | msgstr "Všetky súbory" 185 | -------------------------------------------------------------------------------- /data/io.github.lainsce.Khronos.metainfo.xml.in: -------------------------------------------------------------------------------- 1 | 2 | 3 | @app_id@ 4 | CC0 5 | GPL-3.0+ 6 | Khronos 7 | Log the time it took to do tasks 8 | 9 |

Start logging any task's time to completion, with the ability to stop the timer at any moment, with notifications for longer task sessions.

10 |
    11 |
  • Quit anytime with the shortcut Ctrl + Q
  • 12 |
13 |
14 | 15 | io.github.lainsce.Khronos 16 | 17 | 18 | ModernToolkit 19 | HiDpiIcon 20 | 21 | 22 | Lains 23 | 24 | Lains 25 | 26 | https://github.com/lainsce/khronos/ 27 | https://github.com/lainsce/khronos/issues 28 | https://www.patreon.com/lainsce 29 | https://github.com/lainsce/khronos/blob/main/po/README.md 30 | https://github.com/lainsce/khronos 31 | 32 | 33 | https://raw.githubusercontent.com/lainsce/khronos/main/data/shot.png 34 | 35 | 36 | 37 | 38 | keyboard 39 | pointing 40 | touch 41 | 42 | 43 | 360 44 | 45 | 46 | [(145, 65, 172)] 47 | 48 | @app_id@ 49 | io.github.lainsce.Khronos.desktop 50 | 51 | 52 | 53 |

Release: Day 2

54 |
    55 |
  • Changed: Overall refinements to match the updated looks of GNOME apps.
  • 56 |
57 |
58 |
59 | 60 | 61 |

Release: Day

62 |
    63 |
  • Changed: Overall refinements to match the updated looks of GNOME apps.
  • 64 |
65 |
66 |
67 | 68 | 69 |

Release: Hour

70 |
    71 |
  • Changed: UI is now pure Adwaita following the inclusion of Khronos in GNOME Circle.
  • 72 |
73 |
74 |
75 | 76 | 77 |

Release: Minute

78 |
    79 |
  • Changed: UI now follows my own style that complements that of Adwaita, called Solo.
  • 80 |
81 |
82 |
83 | 84 | 85 |

Release: Second

86 |
    87 |
  • Changed: The UI colors, they are now way less in your face yet are still colored. The Logs are now stylized like cards.
  • 88 |
89 |
90 |
91 | 92 | 93 |

Release: Nanosecond

94 |
    95 |
  • Removed: each log's delete button, as they would be accidentally clicked and would remove the log.
  • 96 |
97 |
98 |
99 | 100 | 101 |

Release: Leap Year

102 |
    103 |
  • Added: Logs now have tags! Add tags in the new entry below log name, by specifying them with colons, like this: "tag1:tag2:tag3".
  • 104 |
105 |
106 |
107 | 108 | 109 |

Release: Tick Tock Clock

110 |
    111 |
  • Changed: UI now sports an experimental design.
  • 112 |
  • Changed: A robust backend rewrite.
  • 113 |
114 |
115 |
116 | 117 | 118 |

Release: UI Refreshments

119 |
    120 |
  • Changed: The UI is now with a better layout.
  • 121 |
122 |
123 |
124 | 125 | 126 |

Release: Port to GTK4

127 |
    128 |
  • Changed: Rewritten for GTK4.
  • 129 |
130 |
131 |
132 |
133 |
134 | -------------------------------------------------------------------------------- /po/id.po: -------------------------------------------------------------------------------- 1 | # Indonesian translations for for com.github.lainsce.khronos package 2 | # Copyright (C) 2021 THE com.github.lainsce.khronos'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the io.github.lainsce.Khronos package. 4 | # Kukuh Syafaat , 2021. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: io.github.lainsce.Khronos\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-11-29 23:06+0100\n" 11 | "PO-Revision-Date: 2021-11-29 23:08+0100\n" 12 | "Last-Translator: Kukuh Syafaat \n" 13 | "Language-Team: \n" 14 | "Language: id\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Poedit 3.0\n" 19 | "Plural-Forms: nplurals=1; plural=0;\n" 20 | 21 | #: data/io.github.lainsce.Khronos.appdata.xml.in:6 22 | #: data/io.github.lainsce.Khronos.desktop.in:3 23 | msgid "Khronos" 24 | msgstr "Khronos" 25 | 26 | #: data/io.github.lainsce.Khronos.appdata.xml.in:7 27 | msgid "Log the time it took to do tasks" 28 | msgstr "" 29 | 30 | #: data/io.github.lainsce.Khronos.appdata.xml.in:9 31 | msgid "" 32 | "Start logging any task's time to completion, with the ability to stop the " 33 | "timer at any moment, with notifications for longer task sessions." 34 | msgstr "" 35 | 36 | #: data/io.github.lainsce.Khronos.appdata.xml.in:11 37 | msgid "Quit anytime with the shortcut Ctrl + Q" 38 | msgstr "Keluar kapan saja dengan pintasan Ctrl + Q" 39 | 40 | #: data/io.github.lainsce.Khronos.appdata.xml.in:21 41 | msgid "Lains" 42 | msgstr "Lains" 43 | 44 | #: data/io.github.lainsce.Khronos.appdata.xml.in:47 45 | msgid "Release: UI Refreshments" 46 | msgstr "" 47 | 48 | #: data/io.github.lainsce.Khronos.appdata.xml.in:49 49 | msgid "Changed: The UI is now with a better layout." 50 | msgstr "" 51 | 52 | #: data/io.github.lainsce.Khronos.appdata.xml.in:55 53 | msgid "Release: Port to GTK4" 54 | msgstr "Rilis: Port ke GTK4" 55 | 56 | #: data/io.github.lainsce.Khronos.appdata.xml.in:57 57 | msgid "Changed: Rewritten for GTK4." 58 | msgstr "Diubah: Ditulis ulang untuk GTK4." 59 | 60 | #: data/io.github.lainsce.Khronos.desktop.in:4 61 | msgid "Track each task time in a simple inobtrusive way" 62 | msgstr "Lacak setiap waktu tugas dengan cara tidak mengganggu yang sederhana" 63 | 64 | #: data/io.github.lainsce.Khronos.desktop.in:11 65 | msgid "Plot;Planning;Time Tracking;" 66 | msgstr "Plot; Perencanaan; Pelacakan Waktu;" 67 | 68 | #: data/io.github.lainsce.Khronos.gschema.xml:5 69 | msgid "Delay between notifications" 70 | msgstr "" 71 | 72 | #: data/io.github.lainsce.Khronos.gschema.xml:6 73 | msgid "The delay between two notifications, default is 30min. in seconds." 74 | msgstr "" 75 | 76 | #: data/ui/main_window.ui:6 77 | #, fuzzy 78 | msgid "Export Logs as CSV…" 79 | msgstr "Ekspor Log (CSV)..." 80 | 81 | #: data/ui/main_window.ui:10 82 | #, fuzzy 83 | msgid "Import Logs from CSV…" 84 | msgstr "Ekspor Log (CSV)..." 85 | 86 | #: data/ui/main_window.ui:16 87 | msgid "About Khronos" 88 | msgstr "Tentang Khronos" 89 | 90 | #: data/ui/main_window.ui:53 91 | msgid "Timer" 92 | msgstr "Pewaktu" 93 | 94 | #: data/ui/main_window.ui:77 95 | msgid "Log name…" 96 | msgstr "Nama log..." 97 | 98 | #: data/ui/main_window.ui:96 99 | msgid "Adds a log to the list" 100 | msgstr "Tambahkan log ke daftar" 101 | 102 | #: data/ui/main_window.ui:106 src/MainWindow.vala:161 103 | msgid "Starts the timer for a log" 104 | msgstr "" 105 | 106 | #: data/ui/main_window.ui:122 107 | msgid "Logs" 108 | msgstr "Log" 109 | 110 | #: data/ui/main_window.ui:148 111 | msgid "Removes all logs from the list" 112 | msgstr "Hapus semua log dari daftar" 113 | 114 | #: data/ui/main_window.ui:180 115 | msgid "No Logs" 116 | msgstr "Tidak ada log" 117 | 118 | #: data/ui/main_window.ui:188 119 | msgid "Add a log on Timer tab and check later." 120 | msgstr "Tambahkan log pada tab Pewaktu dan periksa nanti." 121 | 122 | #: src/MainWindow.vala:153 123 | msgid "Stops the timer for a log" 124 | msgstr "" 125 | 126 | #: src/MainWindow.vala:186 127 | msgid "Empty the Logs List?" 128 | msgstr "Kosongkan Daftar Log?" 129 | 130 | #: src/MainWindow.vala:187 131 | msgid "" 132 | "Emptying this list means all the logs in it will be permanently lost with no " 133 | "recovery." 134 | msgstr "" 135 | "Mengosongkan daftar ini berarti semua log di dalamnya akan hilang secara " 136 | "permanen tanpa pemulihan." 137 | 138 | #: src/MainWindow.vala:189 139 | msgid "Cancel" 140 | msgstr "Batal" 141 | 142 | #: src/MainWindow.vala:190 143 | msgid "Empty List" 144 | msgstr "Daftar Kosong" 145 | 146 | #: src/MainWindow.vala:307 147 | msgid "Go rest for a while before continuing." 148 | msgstr "Beristirahatlah untuk sementara waktu sebelum melanjutkan." 149 | 150 | #: src/MainWindow.vala:316 151 | #, fuzzy 152 | msgid "Maybe grab a snack before continuing." 153 | msgstr "Beristirahatlah untuk sementara waktu sebelum melanjutkan." 154 | 155 | #: src/MainWindow.vala:325 156 | #, fuzzy 157 | msgid "Perhaps go get some coffee or tea before continuing." 158 | msgstr "Beristirahatlah untuk sementara waktu sebelum melanjutkan." 159 | 160 | #: src/MainWindow.vala:334 161 | #, fuzzy 162 | msgid "That's a big task. Let's rest a bit before continuing." 163 | msgstr "Beristirahatlah untuk sementara waktu sebelum melanjutkan." 164 | 165 | #: src/MainWindow.vala:343 166 | #, fuzzy 167 | msgid "Amazing work! But please rest a bit before continuing." 168 | msgstr "Beristirahatlah untuk sementara waktu sebelum melanjutkan." 169 | 170 | #: src/MainWindow.vala:387 171 | msgid "Track each task's time in a simple inobtrusive way." 172 | msgstr "Lacak waktu setiap tugas dengan cara yang tidak mencolok." 173 | 174 | #: src/MainWindow.vala:393 175 | msgid "translator-credits" 176 | msgstr "Kukuh Syafaat , 2021." 177 | 178 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 179 | msgid "CSV files" 180 | msgstr "Berkas CSV" 181 | 182 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 183 | msgid "All files" 184 | msgstr "Semua berkas" 185 | -------------------------------------------------------------------------------- /po/sr@latin.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the io.github.lainsce.Khronos package. 4 | # Dušan Simić , 2021. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: io.github.lainsce.Khronos\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-11-29 23:06+0100\n" 11 | "PO-Revision-Date: 2021-11-29 23:09+0100\n" 12 | "Last-Translator: Dušan Simić \n" 13 | "Language-Team: Serbian \n" 14 | "Language: sr\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n" 19 | "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 20 | "X-Generator: Poedit 3.0\n" 21 | 22 | #: data/io.github.lainsce.Khronos.appdata.xml.in:6 23 | #: data/io.github.lainsce.Khronos.desktop.in:3 24 | msgid "Khronos" 25 | msgstr "Khronos" 26 | 27 | #: data/io.github.lainsce.Khronos.appdata.xml.in:7 28 | msgid "Log the time it took to do tasks" 29 | msgstr "Pratite vreme koje je potrebno da se urade zadaci" 30 | 31 | #: data/io.github.lainsce.Khronos.appdata.xml.in:9 32 | msgid "" 33 | "Start logging any task's time to completion, with the ability to stop the " 34 | "timer at any moment, with notifications for longer task sessions." 35 | msgstr "" 36 | 37 | #: data/io.github.lainsce.Khronos.appdata.xml.in:11 38 | msgid "Quit anytime with the shortcut Ctrl + Q" 39 | msgstr "Izaćite koristeći prečicu Ctrl + Q" 40 | 41 | #: data/io.github.lainsce.Khronos.appdata.xml.in:21 42 | #, fuzzy 43 | msgid "Lains" 44 | msgstr "Trake" 45 | 46 | #: data/io.github.lainsce.Khronos.appdata.xml.in:47 47 | msgid "Release: UI Refreshments" 48 | msgstr "" 49 | 50 | #: data/io.github.lainsce.Khronos.appdata.xml.in:49 51 | msgid "Changed: The UI is now with a better layout." 52 | msgstr "" 53 | 54 | #: data/io.github.lainsce.Khronos.appdata.xml.in:55 55 | msgid "Release: Port to GTK4" 56 | msgstr "Izdanje: Port na GTK4" 57 | 58 | #: data/io.github.lainsce.Khronos.appdata.xml.in:57 59 | msgid "Changed: Rewritten for GTK4." 60 | msgstr "Izmenjeno: Prepisano za GTK4" 61 | 62 | #: data/io.github.lainsce.Khronos.desktop.in:4 63 | msgid "Track each task time in a simple inobtrusive way" 64 | msgstr "Pratite vreme zadataka na jednostavan nenametljiv način" 65 | 66 | #: data/io.github.lainsce.Khronos.desktop.in:11 67 | msgid "Plot;Planning;Time Tracking;" 68 | msgstr "Planiranje;Praćenje vremena;" 69 | 70 | #: data/io.github.lainsce.Khronos.gschema.xml:5 71 | msgid "Delay between notifications" 72 | msgstr "" 73 | 74 | #: data/io.github.lainsce.Khronos.gschema.xml:6 75 | msgid "The delay between two notifications, default is 30min. in seconds." 76 | msgstr "" 77 | 78 | #: data/ui/main_window.ui:6 79 | #, fuzzy 80 | msgid "Export Logs as CSV…" 81 | msgstr "Izvezi zapisnik (CSV)…" 82 | 83 | #: data/ui/main_window.ui:10 84 | #, fuzzy 85 | msgid "Import Logs from CSV…" 86 | msgstr "Izvezi zapisnik (CSV)…" 87 | 88 | #: data/ui/main_window.ui:16 89 | msgid "About Khronos" 90 | msgstr "O Khronos-u" 91 | 92 | #: data/ui/main_window.ui:53 93 | msgid "Timer" 94 | msgstr "Odbrojavač" 95 | 96 | #: data/ui/main_window.ui:77 97 | msgid "Log name…" 98 | msgstr "Ime zapisa…" 99 | 100 | #: data/ui/main_window.ui:96 101 | msgid "Adds a log to the list" 102 | msgstr "Dodaje zapis u listu" 103 | 104 | #: data/ui/main_window.ui:106 src/MainWindow.vala:161 105 | msgid "Starts the timer for a log" 106 | msgstr "" 107 | 108 | #: data/ui/main_window.ui:122 109 | msgid "Logs" 110 | msgstr "Zapisi" 111 | 112 | #: data/ui/main_window.ui:148 113 | msgid "Removes all logs from the list" 114 | msgstr "Obriši sve stavke iz zapisnika" 115 | 116 | #: data/ui/main_window.ui:180 117 | msgid "No Logs" 118 | msgstr "Nema zapisa" 119 | 120 | #: data/ui/main_window.ui:188 121 | msgid "Add a log on Timer tab and check later." 122 | msgstr "Dodaj zapis na Tajmer tab i proveri kasnije." 123 | 124 | #: src/MainWindow.vala:153 125 | msgid "Stops the timer for a log" 126 | msgstr "" 127 | 128 | #: src/MainWindow.vala:186 129 | msgid "Empty the Logs List?" 130 | msgstr "Isprazni zapisnik vremena?" 131 | 132 | #: src/MainWindow.vala:187 133 | msgid "" 134 | "Emptying this list means all the logs in it will be permanently lost with no " 135 | "recovery." 136 | msgstr "" 137 | "Pražnjenjem ovog spiska, svi zapisi će zauvek biti izgubljeni bez mogućnosti " 138 | "povratka." 139 | 140 | #: src/MainWindow.vala:189 141 | msgid "Cancel" 142 | msgstr "Otkaži" 143 | 144 | #: src/MainWindow.vala:190 145 | msgid "Empty List" 146 | msgstr "Isprazni spisak" 147 | 148 | #: src/MainWindow.vala:307 149 | msgid "Go rest for a while before continuing." 150 | msgstr "Idi se odmori malo pre nego što nastaviš." 151 | 152 | #: src/MainWindow.vala:316 153 | #, fuzzy 154 | msgid "Maybe grab a snack before continuing." 155 | msgstr "Idi se odmori malo pre nego što nastaviš." 156 | 157 | #: src/MainWindow.vala:325 158 | #, fuzzy 159 | msgid "Perhaps go get some coffee or tea before continuing." 160 | msgstr "Idi se odmori malo pre nego što nastaviš." 161 | 162 | #: src/MainWindow.vala:334 163 | #, fuzzy 164 | msgid "That's a big task. Let's rest a bit before continuing." 165 | msgstr "Idi se odmori malo pre nego što nastaviš." 166 | 167 | #: src/MainWindow.vala:343 168 | #, fuzzy 169 | msgid "Amazing work! But please rest a bit before continuing." 170 | msgstr "Idi se odmori malo pre nego što nastaviš." 171 | 172 | #: src/MainWindow.vala:387 173 | msgid "Track each task's time in a simple inobtrusive way." 174 | msgstr "Pratite vreme zadataka na jednostavan nenametljiv način." 175 | 176 | #: src/MainWindow.vala:393 177 | msgid "translator-credits" 178 | msgstr "Dušan Simić " 179 | 180 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 181 | msgid "CSV files" 182 | msgstr "CSV datoteke" 183 | 184 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 185 | msgid "All files" 186 | msgstr "Sve datoteke" 187 | -------------------------------------------------------------------------------- /po/sr.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the io.github.lainsce.Khronos package. 4 | # Душан Симић , 2021. 5 | # Dušan Simić , 2021. 6 | # 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: io.github.lainsce.Khronos\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2021-11-29 23:06+0100\n" 12 | "PO-Revision-Date: 2021-11-29 23:09+0100\n" 13 | "Last-Translator: Dušan Simić \n" 14 | "Language-Team: Serbian \n" 15 | "Language: sr\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n" 20 | "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 21 | "X-Generator: Poedit 3.0\n" 22 | 23 | #: data/io.github.lainsce.Khronos.appdata.xml.in:6 24 | #: data/io.github.lainsce.Khronos.desktop.in:3 25 | msgid "Khronos" 26 | msgstr "Khronos" 27 | 28 | #: data/io.github.lainsce.Khronos.appdata.xml.in:7 29 | msgid "Log the time it took to do tasks" 30 | msgstr "Пратите време које је потребно да се ураде задаци" 31 | 32 | #: data/io.github.lainsce.Khronos.appdata.xml.in:9 33 | msgid "" 34 | "Start logging any task's time to completion, with the ability to stop the " 35 | "timer at any moment, with notifications for longer task sessions." 36 | msgstr "" 37 | 38 | #: data/io.github.lainsce.Khronos.appdata.xml.in:11 39 | msgid "Quit anytime with the shortcut Ctrl + Q" 40 | msgstr "Изаћите користећи пречицу Ctrl + Q" 41 | 42 | #: data/io.github.lainsce.Khronos.appdata.xml.in:21 43 | #, fuzzy 44 | msgid "Lains" 45 | msgstr "Траке" 46 | 47 | #: data/io.github.lainsce.Khronos.appdata.xml.in:47 48 | msgid "Release: UI Refreshments" 49 | msgstr "" 50 | 51 | #: data/io.github.lainsce.Khronos.appdata.xml.in:49 52 | msgid "Changed: The UI is now with a better layout." 53 | msgstr "" 54 | 55 | #: data/io.github.lainsce.Khronos.appdata.xml.in:55 56 | msgid "Release: Port to GTK4" 57 | msgstr "Издање: Порт на ГТК4" 58 | 59 | #: data/io.github.lainsce.Khronos.appdata.xml.in:57 60 | msgid "Changed: Rewritten for GTK4." 61 | msgstr "Измењено: Преписано за ГТК4" 62 | 63 | #: data/io.github.lainsce.Khronos.desktop.in:4 64 | msgid "Track each task time in a simple inobtrusive way" 65 | msgstr "Пратите време задатака на једноставан ненаметљив начин" 66 | 67 | #: data/io.github.lainsce.Khronos.desktop.in:11 68 | msgid "Plot;Planning;Time Tracking;" 69 | msgstr "Планирање;Праћење времена;" 70 | 71 | #: data/io.github.lainsce.Khronos.gschema.xml:5 72 | msgid "Delay between notifications" 73 | msgstr "" 74 | 75 | #: data/io.github.lainsce.Khronos.gschema.xml:6 76 | msgid "The delay between two notifications, default is 30min. in seconds." 77 | msgstr "" 78 | 79 | #: data/ui/main_window.ui:6 80 | #, fuzzy 81 | msgid "Export Logs as CSV…" 82 | msgstr "Извези записник (CSV)…" 83 | 84 | #: data/ui/main_window.ui:10 85 | #, fuzzy 86 | msgid "Import Logs from CSV…" 87 | msgstr "Извези записник (CSV)…" 88 | 89 | #: data/ui/main_window.ui:16 90 | msgid "About Khronos" 91 | msgstr "О Khronos-у" 92 | 93 | #: data/ui/main_window.ui:53 94 | msgid "Timer" 95 | msgstr "Одбројавач" 96 | 97 | #: data/ui/main_window.ui:77 98 | msgid "Log name…" 99 | msgstr "Име записа…" 100 | 101 | #: data/ui/main_window.ui:96 102 | msgid "Adds a log to the list" 103 | msgstr "Додаје запис у листу" 104 | 105 | #: data/ui/main_window.ui:106 src/MainWindow.vala:161 106 | msgid "Starts the timer for a log" 107 | msgstr "" 108 | 109 | #: data/ui/main_window.ui:122 110 | msgid "Logs" 111 | msgstr "Записи" 112 | 113 | #: data/ui/main_window.ui:148 114 | msgid "Removes all logs from the list" 115 | msgstr "Обриши све ставке из записника" 116 | 117 | #: data/ui/main_window.ui:180 118 | msgid "No Logs" 119 | msgstr "Нема записа" 120 | 121 | #: data/ui/main_window.ui:188 122 | msgid "Add a log on Timer tab and check later." 123 | msgstr "Додај запис на Тајмер таб и провери касније." 124 | 125 | #: src/MainWindow.vala:153 126 | msgid "Stops the timer for a log" 127 | msgstr "" 128 | 129 | #: src/MainWindow.vala:186 130 | msgid "Empty the Logs List?" 131 | msgstr "Испразни записник времена?" 132 | 133 | #: src/MainWindow.vala:187 134 | msgid "" 135 | "Emptying this list means all the logs in it will be permanently lost with no " 136 | "recovery." 137 | msgstr "" 138 | "Пражњењем овог списка, сви записи ће заувек бити изгубљени без могућности " 139 | "повратка." 140 | 141 | #: src/MainWindow.vala:189 142 | msgid "Cancel" 143 | msgstr "Откажи" 144 | 145 | #: src/MainWindow.vala:190 146 | msgid "Empty List" 147 | msgstr "Испразни списак" 148 | 149 | #: src/MainWindow.vala:307 150 | msgid "Go rest for a while before continuing." 151 | msgstr "Иди се одмори мало пре него што наставиш." 152 | 153 | #: src/MainWindow.vala:316 154 | #, fuzzy 155 | msgid "Maybe grab a snack before continuing." 156 | msgstr "Иди се одмори мало пре него што наставиш." 157 | 158 | #: src/MainWindow.vala:325 159 | #, fuzzy 160 | msgid "Perhaps go get some coffee or tea before continuing." 161 | msgstr "Иди се одмори мало пре него што наставиш." 162 | 163 | #: src/MainWindow.vala:334 164 | #, fuzzy 165 | msgid "That's a big task. Let's rest a bit before continuing." 166 | msgstr "Иди се одмори мало пре него што наставиш." 167 | 168 | #: src/MainWindow.vala:343 169 | #, fuzzy 170 | msgid "Amazing work! But please rest a bit before continuing." 171 | msgstr "Иди се одмори мало пре него што наставиш." 172 | 173 | #: src/MainWindow.vala:387 174 | msgid "Track each task's time in a simple inobtrusive way." 175 | msgstr "Пратите време задатака на једноставан ненаметљив начин." 176 | 177 | #: src/MainWindow.vala:393 178 | msgid "translator-credits" 179 | msgstr "Душан Симић " 180 | 181 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 182 | msgid "CSV files" 183 | msgstr "CSV датотеке" 184 | 185 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 186 | msgid "All files" 187 | msgstr "Све датотеке" 188 | -------------------------------------------------------------------------------- /po/he.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the io.github.lainsce.Khronos package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: io.github.lainsce.Khronos\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-11-29 23:07+0100\n" 11 | "PO-Revision-Date: 2022-05-31 15:53+0300\n" 12 | "Last-Translator: Yaron Shahrabani \n" 13 | "Language-Team: \n" 14 | "Language: he\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n>10 && n%10==0 ? " 19 | "2 : 3);\n" 20 | "X-Generator: Poedit 3.0.1\n" 21 | 22 | #: data/io.github.lainsce.Khronos.appdata.xml.in:6 23 | #: data/io.github.lainsce.Khronos.desktop.in:3 24 | msgid "Khronos" 25 | msgstr "Khronos" 26 | 27 | #: data/io.github.lainsce.Khronos.appdata.xml.in:7 28 | msgid "Log the time it took to do tasks" 29 | msgstr "תיעוד הזמן שנדרש לביצוע משימות" 30 | 31 | #: data/io.github.lainsce.Khronos.appdata.xml.in:9 32 | msgid "" 33 | "Start logging any task's time to completion, with the ability to stop the " 34 | "timer at any moment, with notifications for longer task sessions." 35 | msgstr "" 36 | "אפשר להתחיל לתעד את הזמן שלקח להשלים כל משימה שהיא, עם אפשרות לעצור את " 37 | "המתזמן בכל עת, עם התראות למשימות ארוכות יותר." 38 | 39 | #: data/io.github.lainsce.Khronos.appdata.xml.in:11 40 | msgid "Quit anytime with the shortcut Ctrl + Q" 41 | msgstr "ניתן לצאת בכל עת עם קיצור המקשים Ctrl + Q" 42 | 43 | #: data/io.github.lainsce.Khronos.appdata.xml.in:21 44 | msgid "Lains" 45 | msgstr "Lains" 46 | 47 | #: data/io.github.lainsce.Khronos.appdata.xml.in:47 48 | msgid "Release: UI Refreshments" 49 | msgstr "במהדורה: רענוני מנשק משתמש" 50 | 51 | #: data/io.github.lainsce.Khronos.appdata.xml.in:49 52 | msgid "Changed: The UI is now with a better layout." 53 | msgstr "שינויים: פריסת מנשק המשתמש השתפרה." 54 | 55 | #: data/io.github.lainsce.Khronos.appdata.xml.in:55 56 | msgid "Release: Port to GTK4" 57 | msgstr "במהדורה: הסבה ל־GTK4" 58 | 59 | #: data/io.github.lainsce.Khronos.appdata.xml.in:57 60 | msgid "Changed: Rewritten for GTK4." 61 | msgstr "שינויים: שכתוב מחדש ל־GTK4." 62 | 63 | #: data/io.github.lainsce.Khronos.desktop.in:4 64 | msgid "Track each task time in a simple inobtrusive way" 65 | msgstr "מעקב אחר זמן שלוקח לבצע משימה בצורה פשוטה ולא מתבלטת" 66 | 67 | #: data/io.github.lainsce.Khronos.desktop.in:11 68 | msgid "Plot;Planning;Time Tracking;" 69 | msgstr "תכנון;מעקב;תיעוד זמן;מעקב זמן;מעקב משימות;ביצוע מטלות;ביצוע משימות;" 70 | 71 | #: data/io.github.lainsce.Khronos.gschema.xml:5 72 | msgid "Delay between notifications" 73 | msgstr "השהיה בין התראות" 74 | 75 | #: data/io.github.lainsce.Khronos.gschema.xml:6 76 | msgid "The delay between two notifications, default is 30min. in seconds." 77 | msgstr "ההפרש בין שתי התראות, ברירת המחדל היא 30 דקות, בשניות." 78 | 79 | #: data/ui/main_window.ui:6 80 | msgid "Export Logs as CSV…" 81 | msgstr "ייצוא יומנים כ־CSV…" 82 | 83 | #: data/ui/main_window.ui:10 84 | msgid "Import Logs from CSV…" 85 | msgstr "ייבוא יומנים מ־CSV…" 86 | 87 | #: data/ui/main_window.ui:16 88 | msgid "About Khronos" 89 | msgstr "על Khronos" 90 | 91 | #: data/ui/main_window.ui:53 92 | msgid "Timer" 93 | msgstr "מתזמן" 94 | 95 | #: data/ui/main_window.ui:77 96 | msgid "Log name…" 97 | msgstr "שם היומן…" 98 | 99 | #: data/ui/main_window.ui:96 100 | msgid "Adds a log to the list" 101 | msgstr "מוסיף יומן לרשימה" 102 | 103 | #: data/ui/main_window.ui:106 src/MainWindow.vala:161 104 | msgid "Starts the timer for a log" 105 | msgstr "מתחיל את המתזמן ליומן" 106 | 107 | #: data/ui/main_window.ui:122 108 | msgid "Logs" 109 | msgstr "יומנים" 110 | 111 | #: data/ui/main_window.ui:148 112 | msgid "Removes all logs from the list" 113 | msgstr "מסיר את כל היומנים מהרשימה" 114 | 115 | #: data/ui/main_window.ui:180 116 | msgid "No Logs" 117 | msgstr "אין יומנים" 118 | 119 | #: data/ui/main_window.ui:188 120 | msgid "Add a log on Timer tab and check later." 121 | msgstr "ניתן להוסיף יומן בלשונית המתזמן ולבדוק מאוחר יותר." 122 | 123 | #: src/MainWindow.vala:153 124 | msgid "Stops the timer for a log" 125 | msgstr "עוצר את המתזמן ליומן" 126 | 127 | #: src/MainWindow.vala:186 128 | msgid "Empty the Logs List?" 129 | msgstr "לפנות את רשימת היומנים?" 130 | 131 | #: src/MainWindow.vala:187 132 | msgid "" 133 | "Emptying this list means all the logs in it will be permanently lost with no " 134 | "recovery." 135 | msgstr "" 136 | "פינוי הרשימה הזאת יוביל לכך שכל היומנים יאבדו לחלוטין ללא אפשרות לשחזור." 137 | 138 | #: src/MainWindow.vala:189 139 | msgid "Cancel" 140 | msgstr "ביטול" 141 | 142 | #: src/MainWindow.vala:190 143 | msgid "Empty List" 144 | msgstr "פינוי הרשימה" 145 | 146 | #: src/MainWindow.vala:307 147 | msgid "Go rest for a while before continuing." 148 | msgstr "אפשר ללכת לנוח קצת לפני המשך ביצוע המשימה." 149 | 150 | #: src/MainWindow.vala:316 151 | msgid "Maybe grab a snack before continuing." 152 | msgstr "אפשר ללכת לנשנש משהו לפני המשך ביצוע המשימה." 153 | 154 | #: src/MainWindow.vala:325 155 | msgid "Perhaps go get some coffee or tea before continuing." 156 | msgstr "אולי אפשר ללכת לשתות קפה או תה לפני המשך ביצוע המשימה." 157 | 158 | #: src/MainWindow.vala:334 159 | msgid "That's a big task. Let's rest a bit before continuing." 160 | msgstr "זאת משימה גדולה. עדיף לנוח קצת לפני שממשיכים בה." 161 | 162 | #: src/MainWindow.vala:343 163 | msgid "Amazing work! But please rest a bit before continuing." 164 | msgstr "עבודה מצוינת! אבל בבקשה, עדיף לנוח קצת לפני המשך ביצוע המשימה." 165 | 166 | #: src/MainWindow.vala:387 167 | msgid "Track each task's time in a simple inobtrusive way." 168 | msgstr "מעקב אחר התזמון של כל אחת מהמשימות בצורה פשוטה ולא מתבלטת." 169 | 170 | #: src/MainWindow.vala:393 171 | msgid "translator-credits" 172 | msgstr "ירון שהרבני " 173 | 174 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 175 | msgid "CSV files" 176 | msgstr "קובצי CSV" 177 | 178 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 179 | msgid "All files" 180 | msgstr "כל הקבצים" 181 | -------------------------------------------------------------------------------- /po/cs.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.lainsce.khronos package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: com.github.lainsce.khronos\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2022-07-04 17:36+0100\n" 11 | "PO-Revision-Date: 2022-07-04 17:36+0200\n" 12 | "Last-Translator: vikdevelop \n" 13 | "Language-Team: CZ\n" 14 | "Language: cs\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | "X-Generator: Poedit 3.0.1\n" 20 | 21 | #: data/io.github.lainsce.Khronos.appdata.xml.in:6 22 | #: data/io.github.lainsce.Khronos.desktop.in:3 23 | msgid "Khronos" 24 | msgstr "Khronos" 25 | 26 | #: data/io.github.lainsce.Khronos.appdata.xml.in:7 27 | msgid "Log the time it took to do tasks" 28 | msgstr "Zaznamenávání času potřebného k provedení úkolů" 29 | 30 | #: data/io.github.lainsce.Khronos.appdata.xml.in:9 31 | msgid "" 32 | "Start logging any task's time to completion, with the ability to stop the " 33 | "timer at any moment, with notifications for longer task sessions." 34 | msgstr "" 35 | "Začněte zaznamenávat čas do dokončení jakéhokoli úkolu s možností " 36 | "časovač kdykoli zastavit a s upozorněními na delší úkoly." 37 | 38 | #: data/io.github.lainsce.Khronos.appdata.xml.in:11 39 | msgid "Quit anytime with the shortcut Ctrl + Q" 40 | msgstr "Ukončení kdykoli pomocí klávesové zkratky Ctrl + Q" 41 | 42 | #: data/io.github.lainsce.Khronos.appdata.xml.in:21 43 | msgid "Lains" 44 | msgstr "Lains" 45 | 46 | #: data/io.github.lainsce.Khronos.appdata.xml.in:47 47 | msgid "Release: UI Refreshments" 48 | msgstr "Vydání: občerstvení UL" 49 | 50 | #: data/io.github.lainsce.Khronos.appdata.xml.in:49 51 | msgid "Changed: The UI is now with a better layout." 52 | msgstr "Změněno: UL je nyní s lepším rozvržením." 53 | 54 | #: data/io.github.lainsce.Khronos.appdata.xml.in:55 55 | msgid "Release: Port to GTK4" 56 | msgstr "Vydání: Přechod na GTK4" 57 | 58 | #: data/io.github.lainsce.Khronos.appdata.xml.in:57 59 | msgid "Changed: Rewritten for GTK4." 60 | msgstr "Změněno: Přepsáno pro GTK4." 61 | 62 | #: data/io.github.lainsce.Khronos.desktop.in:4 63 | msgid "Track each task time in a simple inobtrusive way" 64 | msgstr "Sledování času každého úkolu jednoduchým nevtíravým způsobem" 65 | 66 | #: data/io.github.lainsce.Khronos.desktop.in:11 67 | msgid "Plot;Planning;Time Tracking;" 68 | msgstr "Pozemek;Plánování;Sledování času;" 69 | 70 | #: data/io.github.lainsce.Khronos.gschema.xml:5 71 | msgid "Delay between notifications" 72 | msgstr "Prodleva mezi oznámeními" 73 | 74 | #: data/io.github.lainsce.Khronos.gschema.xml:6 75 | msgid "The delay between two notifications, default is 30min. in seconds." 76 | msgstr "" 77 | "Prodleva mezi dvěma oznámeními, výchozí hodnota je 30min. v sekundách." 78 | 79 | #: data/ui/main_window.ui:6 80 | msgid "Export Logs as CSV…" 81 | msgstr "Exportoval prokoly jako CSV…" 82 | 83 | #: data/ui/main_window.ui:10 84 | msgid "Import Logs from CSV…" 85 | msgstr "Importovat protokoly z CSV…" 86 | 87 | #: data/ui/main_window.ui:16 88 | msgid "About Khronos" 89 | msgstr "O programu Khronos" 90 | 91 | #: data/ui/main_window.ui:53 92 | msgid "Timer" 93 | msgstr "Časovač" 94 | 95 | #: data/ui/main_window.ui:77 96 | msgid "Log name…" 97 | msgstr "Název protokolu …" 98 | 99 | #: data/ui/main_window.ui:96 100 | msgid "Adds a log to the list" 101 | msgstr "Přidá protokol do seznamu" 102 | 103 | #: data/ui/main_window.ui:106 src/MainWindow.vala:161 104 | msgid "Starts the timer for a log" 105 | msgstr "Spustí časovač pro prokolování" 106 | 107 | #: data/ui/main_window.ui:122 108 | msgid "Logs" 109 | msgstr "Protokoly" 110 | 111 | #: data/ui/main_window.ui:148 112 | msgid "Removes all logs from the list" 113 | msgstr "Odstraní věechny protokoly ze seznamu" 114 | 115 | #: data/ui/main_window.ui:180 116 | msgid "No Logs" 117 | msgstr "Žádné protokoly" 118 | 119 | #: data/ui/main_window.ui:188 120 | msgid "Add a log on Timer tab and check later." 121 | msgstr "Přidat protokol na kartu Časovač a později zkontrolovat." 122 | 123 | #: src/MainWindow.vala:153 124 | msgid "Stops the timer for a log" 125 | msgstr "Zastaví časovač pro protokolování" 126 | 127 | #: src/MainWindow.vala:186 128 | msgid "Empty the Logs List?" 129 | msgstr "Vyprázdnit seznam protokolů?" 130 | 131 | #: src/MainWindow.vala:187 132 | msgid "" 133 | "Emptying this list means all the logs in it will be permanently lost with no " 134 | "recovery." 135 | msgstr "" 136 | "Vyprázdnění tohoto seznamu znamená, že všechny záznamy v něm budou trvale ztraceny bez " 137 | "možnosti obnovy." 138 | 139 | #: src/MainWindow.vala:189 140 | msgid "Cancel" 141 | msgstr "Zrušit" 142 | 143 | #: src/MainWindow.vala:190 144 | msgid "Empty List" 145 | msgstr "Prázdný seznam" 146 | 147 | #: src/MainWindow.vala:307 148 | msgid "Go rest for a while before continuing." 149 | msgstr "Než budete pokračovat, jděte si na chvíli odpočinout." 150 | 151 | #: src/MainWindow.vala:316 152 | msgid "Maybe grab a snack before continuing." 153 | msgstr "Možná si před pokračováním vezměte svačinu." 154 | 155 | #: src/MainWindow.vala:325 156 | msgid "Perhaps go get some coffee or tea before continuing." 157 | msgstr "Než budete pokračovat, zajděte si na kávu nebo čaj." 158 | 159 | #: src/MainWindow.vala:334 160 | msgid "That's a big task. Let's rest a bit before continuing." 161 | msgstr "To je velký úkol. Než budeme pokračovat, trochu si odpočineme." 162 | 163 | #: src/MainWindow.vala:343 164 | msgid "Amazing work! But please rest a bit before continuing." 165 | msgstr "" 166 | "Úžasná práce! Před pokračováním si ale prosím trochu odpočiňte." 167 | 168 | #: src/MainWindow.vala:387 169 | msgid "Track each task's time in a simple inobtrusive way." 170 | msgstr "Sledujte čas každého úkolu jednoduchým a nevtíravým způsobem." 171 | 172 | #: src/MainWindow.vala:393 173 | msgid "translator-credits" 174 | msgstr "vikdevelop , 2022." 175 | 176 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 177 | msgid "CSV files" 178 | msgstr "Soubory CSV" 179 | 180 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 181 | msgid "All files" 182 | msgstr "Všechny soubory" 183 | -------------------------------------------------------------------------------- /po/it.po: -------------------------------------------------------------------------------- 1 | # ITALIAN TRANSLATION FOR KHRONOS. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.lainsce.khronos package. 4 | # ALBANO BATTISTELLA , 2021,2022. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: com.github.lainsce.khronos\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-11-29 23:06+0100\n" 11 | "PO-Revision-Date: 2022-06-25 25:08+0100\n" 12 | "Last-Translator: albano battistella \n" 13 | "Language-Team: Italian\n" 14 | "Language: it\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Poedit 3.0\n" 19 | 20 | #: data/io.github.lainsce.Khronos.appdata.xml.in:6 21 | #: data/io.github.lainsce.Khronos.desktop.in:3 22 | msgid "Khronos" 23 | msgstr "Khronos" 24 | 25 | #: data/io.github.lainsce.Khronos.appdata.xml.in:7 26 | msgid "Log the time it took to do tasks" 27 | msgstr "Registra il tempo impiegato per svolgere le attività" 28 | 29 | #: data/io.github.lainsce.Khronos.appdata.xml.in:9 30 | msgid "" 31 | "Start logging any task's time to completion, with the ability to stop the " 32 | "timer at any moment, with notifications for longer task sessions." 33 | msgstr "" 34 | "Inizia a registrare il tempo di completamento di qualsiasi attività, con la possibilità di interrompere il " 35 | "timer in qualsiasi momento, con notifiche per sessioni di attività più lunghe." 36 | 37 | #: data/io.github.lainsce.Khronos.appdata.xml.in:11 38 | msgid "Quit anytime with the shortcut Ctrl + Q" 39 | msgstr "Esci in qualsiasi momento con la scorciatoia Ctrl + Q" 40 | 41 | #: data/io.github.lainsce.Khronos.appdata.xml.in:21 42 | msgid "Lains" 43 | msgstr "Lains" 44 | 45 | #: data/io.github.lainsce.Khronos.appdata.xml.in:47 46 | msgid "Release: UI Refreshments" 47 | msgstr "Rilascio: Aggiornamenti all'interfaccia utente" 48 | 49 | #: data/io.github.lainsce.Khronos.appdata.xml.in:49 50 | msgid "Changed: The UI is now with a better layout." 51 | msgstr "Modificato: l'interfaccia utente è ora con un layout migliore." 52 | 53 | #: data/io.github.lainsce.Khronos.appdata.xml.in:55 54 | msgid "Release: Port to GTK4" 55 | msgstr "Versione: port su GTK4" 56 | 57 | #: data/io.github.lainsce.Khronos.appdata.xml.in:57 58 | msgid "Changed: Rewritten for GTK4." 59 | msgstr "Modificato: riscritto per GTK4." 60 | 61 | #: data/io.github.lainsce.Khronos.desktop.in:4 62 | msgid "Track each task time in a simple inobtrusive way" 63 | msgstr "Tieni traccia di ogni attività in modo semplice e non invadente" 64 | 65 | #: data/io.github.lainsce.Khronos.desktop.in:11 66 | msgid "Plot;Planning;Time Tracking;" 67 | msgstr "Tracciare, pianificazione, monitoraggio del tempo;" 68 | 69 | #: data/io.github.lainsce.Khronos.gschema.xml:5 70 | msgid "Delay between notifications" 71 | msgstr "Ritardo tra le notifiche" 72 | 73 | #: data/io.github.lainsce.Khronos.gschema.xml:6 74 | msgid "The delay between two notifications, default is 30min. in seconds." 75 | msgstr "The delay between two notifications, default is 30min. in seconds." 76 | 77 | #: data/ui/main_window.ui:6 78 | msgid "Export Logs as CSV…" 79 | msgstr "Esporta Log come CSV…" 80 | 81 | #: data/ui/main_window.ui:10 82 | msgid "Import Logs from CSV…" 83 | msgstr "Importa Log da CSV…" 84 | 85 | #: data/ui/main_window.ui:16 86 | msgid "About Khronos" 87 | msgstr "Informazioni su Khronos" 88 | 89 | #: data/ui/main_window.ui:53 90 | msgid "Timer" 91 | msgstr "Timer" 92 | 93 | #: data/ui/main_window.ui:77 94 | msgid "Log name…" 95 | msgstr "Nome log…" 96 | 97 | #: data/ui/main_window.ui:96 98 | msgid "Adds a log to the list" 99 | msgstr "Aggiunge un log all'elenco" 100 | 101 | #: data/ui/main_window.ui:106 src/MainWindow.vala:161 102 | msgid "Starts the timer for a log" 103 | msgstr "Avvia il timer per un log" 104 | 105 | #: data/ui/main_window.ui:122 106 | msgid "Logs" 107 | msgstr "Log" 108 | 109 | #: data/ui/main_window.ui:148 110 | msgid "Removes all logs from the list" 111 | msgstr "Rimuove tutti i log dall'elenco" 112 | 113 | #: data/ui/main_window.ui:180 114 | msgid "No Logs" 115 | msgstr "Nessun Log" 116 | 117 | #: data/ui/main_window.ui:188 118 | msgid "Add a log on Timer tab and check later." 119 | msgstr "Aggiungi un log nella scheda Timer e controlla in seguito." 120 | 121 | #: src/MainWindow.vala:153 122 | msgid "Stops the timer for a log" 123 | msgstr "Arresta il timer per un log" 124 | 125 | #: src/MainWindow.vala:186 126 | msgid "Empty the Logs List?" 127 | msgstr "Svuotare l'elenco dei log?" 128 | 129 | #: src/MainWindow.vala:187 130 | msgid "" 131 | "Emptying this list means all the logs in it will be permanently lost with no " 132 | "recovery." 133 | msgstr "" 134 | "Svuotare questo elenco significa che tutti i log in esso contenuti verranno definitivamente persi senza " 135 | "possibilità di recupero." 136 | 137 | #: src/MainWindow.vala:189 138 | msgid "Cancel" 139 | msgstr "Cancella" 140 | 141 | #: src/MainWindow.vala:190 142 | msgid "Empty List" 143 | msgstr "Elenco vuoto" 144 | 145 | #: src/MainWindow.vala:307 146 | msgid "Go rest for a while before continuing." 147 | msgstr "Riposati un po' prima di continuare." 148 | 149 | #: src/MainWindow.vala:316 150 | msgid "Maybe grab a snack before continuing." 151 | msgstr "Magari fai uno spuntino prima di continuare." 152 | 153 | #: src/MainWindow.vala:325 154 | msgid "Perhaps go get some coffee or tea before continuing." 155 | msgstr "Magari vai a prendere un caffè o un tè prima di continuare." 156 | 157 | #: src/MainWindow.vala:334 158 | msgid "That's a big task. Let's rest a bit before continuing." 159 | msgstr "Questo è un grande compito. Riposiamoci un po' prima di continuare." 160 | 161 | #: src/MainWindow.vala:343 162 | msgid "Amazing work! But please rest a bit before continuing." 163 | msgstr "Lavoro fantastico! Ma per favore riposati un po' prima di continuare." 164 | 165 | #: src/MainWindow.vala:387 166 | msgid "Track each task's time in a simple inobtrusive way." 167 | msgstr "Tieni traccia del tempo di ogni attività in modo semplice e non invadente." 168 | 169 | #: src/MainWindow.vala:393 170 | msgid "translator-credits" 171 | msgstr "Albano Battistella" 172 | 173 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 174 | msgid "CSV files" 175 | msgstr "File CSV" 176 | 177 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 178 | msgid "All files" 179 | msgstr "Tutti i file" 180 | -------------------------------------------------------------------------------- /po/hr.po: -------------------------------------------------------------------------------- 1 | # Croatian translation of io.github.lainsce.Khronos. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the io.github.lainsce.Khronos package. 4 | # Milo Ivir , 2021. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: io.github.lainsce.Khronos\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-11-29 23:06+0100\n" 11 | "PO-Revision-Date: 2021-12-28 19:10+0100\n" 12 | "Last-Translator: Milo Ivir \n" 13 | "Language-Team: \n" 14 | "Language: hr\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Poedit 3.0\n" 19 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" 20 | "%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" 21 | 22 | #: data/io.github.lainsce.Khronos.appdata.xml.in:6 23 | #: data/io.github.lainsce.Khronos.desktop.in:3 24 | msgid "Khronos" 25 | msgstr "Khronos" 26 | 27 | #: data/io.github.lainsce.Khronos.appdata.xml.in:7 28 | msgid "Log the time it took to do tasks" 29 | msgstr "Zabilježi vrijeme potrebno za obavljanje zadataka" 30 | 31 | #: data/io.github.lainsce.Khronos.appdata.xml.in:9 32 | msgid "" 33 | "Start logging any task's time to completion, with the ability to stop the " 34 | "timer at any moment, with notifications for longer task sessions." 35 | msgstr "" 36 | "Počni bilježiti vrijeme bilo kojeg zadatka do završetka, s mogućnošću " 37 | "prekidanja štoperice u bilo kojem trenutku, s obavijestima za duže sesije " 38 | "zadataka." 39 | 40 | #: data/io.github.lainsce.Khronos.appdata.xml.in:11 41 | msgid "Quit anytime with the shortcut Ctrl + Q" 42 | msgstr "Zatvori program u bilo kojem trenutku pomoću prečaca Ctrl + Q" 43 | 44 | #: data/io.github.lainsce.Khronos.appdata.xml.in:21 45 | msgid "Lains" 46 | msgstr "Lains" 47 | 48 | #: data/io.github.lainsce.Khronos.appdata.xml.in:47 49 | msgid "Release: UI Refreshments" 50 | msgstr "Izdanje: Poboljšano korisničko sučelje" 51 | 52 | #: data/io.github.lainsce.Khronos.appdata.xml.in:49 53 | msgid "Changed: The UI is now with a better layout." 54 | msgstr "Promjena: Korisničko sučelje sada ima bolji raspored." 55 | 56 | #: data/io.github.lainsce.Khronos.appdata.xml.in:55 57 | msgid "Release: Port to GTK4" 58 | msgstr "Izdanje: Portiranje na GTK4" 59 | 60 | #: data/io.github.lainsce.Khronos.appdata.xml.in:57 61 | msgid "Changed: Rewritten for GTK4." 62 | msgstr "Promjena: Preprogramirano za GTK4." 63 | 64 | #: data/io.github.lainsce.Khronos.desktop.in:4 65 | msgid "Track each task time in a simple inobtrusive way" 66 | msgstr "Mjeri vrijeme za obavljanje zadataka na jednostavan i nesmetan način" 67 | 68 | #: data/io.github.lainsce.Khronos.desktop.in:11 69 | msgid "Plot;Planning;Time Tracking;" 70 | msgstr "Planiranje;Mjerenje vremena;" 71 | 72 | #: data/io.github.lainsce.Khronos.gschema.xml:5 73 | msgid "Delay between notifications" 74 | msgstr "Odgoda između obavještavanja" 75 | 76 | #: data/io.github.lainsce.Khronos.gschema.xml:6 77 | msgid "The delay between two notifications, default is 30min. in seconds." 78 | msgstr "" 79 | "Odgoda između obavještavanja, standardno je postavljeno na 30 min u " 80 | "sekundama." 81 | 82 | #: data/ui/main_window.ui:6 83 | msgid "Export Logs as CSV…" 84 | msgstr "Izvezi zapise kao CSV …" 85 | 86 | #: data/ui/main_window.ui:10 87 | msgid "Import Logs from CSV…" 88 | msgstr "Uvezi zapise iz CSV-a …" 89 | 90 | #: data/ui/main_window.ui:16 91 | msgid "About Khronos" 92 | msgstr "O programu Khronos" 93 | 94 | #: data/ui/main_window.ui:53 95 | msgid "Timer" 96 | msgstr "Štoperica" 97 | 98 | #: data/ui/main_window.ui:77 99 | msgid "Log name…" 100 | msgstr "Ime zapisa …" 101 | 102 | #: data/ui/main_window.ui:96 103 | msgid "Adds a log to the list" 104 | msgstr "Dodaje zapis u popis" 105 | 106 | #: data/ui/main_window.ui:106 src/MainWindow.vala:161 107 | msgid "Starts the timer for a log" 108 | msgstr "Pokreće štopericu za zapis" 109 | 110 | #: data/ui/main_window.ui:122 111 | msgid "Logs" 112 | msgstr "Zapisi" 113 | 114 | #: data/ui/main_window.ui:148 115 | msgid "Removes all logs from the list" 116 | msgstr "Briše sve zapise iz popisa" 117 | 118 | #: data/ui/main_window.ui:180 119 | msgid "No Logs" 120 | msgstr "Nema zapisa" 121 | 122 | #: data/ui/main_window.ui:188 123 | msgid "Add a log on Timer tab and check later." 124 | msgstr "Dodaj zapis u karticu štoperice i kasnije provjeri." 125 | 126 | #: src/MainWindow.vala:153 127 | msgid "Stops the timer for a log" 128 | msgstr "Prekida štopericu za zapis" 129 | 130 | #: src/MainWindow.vala:186 131 | msgid "Empty the Logs List?" 132 | msgstr "Izbrisati popis zapisa?" 133 | 134 | #: src/MainWindow.vala:187 135 | msgid "" 136 | "Emptying this list means all the logs in it will be permanently lost with no " 137 | "recovery." 138 | msgstr "" 139 | "Pražnjenje ovog popisa znači da će svi zapisi u popisu biti nepovratno " 140 | "izbrisani." 141 | 142 | #: src/MainWindow.vala:189 143 | msgid "Cancel" 144 | msgstr "Odustani" 145 | 146 | #: src/MainWindow.vala:190 147 | msgid "Empty List" 148 | msgstr "Prazan popis" 149 | 150 | #: src/MainWindow.vala:307 151 | msgid "Go rest for a while before continuing." 152 | msgstr "Malo se odmori prije nego što nastaviš." 153 | 154 | #: src/MainWindow.vala:316 155 | msgid "Maybe grab a snack before continuing." 156 | msgstr "Nabavi si nešto za grickanje prije nego što nastaviš." 157 | 158 | #: src/MainWindow.vala:325 159 | msgid "Perhaps go get some coffee or tea before continuing." 160 | msgstr "Nabavi si kavu ili čaj prije nego što nastaviš." 161 | 162 | #: src/MainWindow.vala:334 163 | msgid "That's a big task. Let's rest a bit before continuing." 164 | msgstr "Ovo je veliki zadatak. Odmori se malo prije nego što nastaviš." 165 | 166 | #: src/MainWindow.vala:343 167 | msgid "Amazing work! But please rest a bit before continuing." 168 | msgstr "Nevjerojatan posao! Malo se odmori prije nego što nastaviš." 169 | 170 | #: src/MainWindow.vala:387 171 | msgid "Track each task's time in a simple inobtrusive way." 172 | msgstr "Mjeri vrijeme za obavljanje zadataka na jednostavan i nesmetan način." 173 | 174 | #: src/MainWindow.vala:393 175 | msgid "translator-credits" 176 | msgstr "Milo Ivir " 177 | 178 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 179 | msgid "CSV files" 180 | msgstr "CSV datoteke" 181 | 182 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 183 | msgid "All files" 184 | msgstr "Sve datoteke" 185 | -------------------------------------------------------------------------------- /po/sv.po: -------------------------------------------------------------------------------- 1 | # Swedish translation for Khronos. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # Åke Engelbrektson , 2021. 5 | # Luna Jernberg , 2023. 6 | # 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: io.github.lainsce.Khronos\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2021-11-29 23:06+0100\n" 12 | "PO-Revision-Date: 2023-02-19 11:34+0100\n" 13 | "Last-Translator: Luna Jernberg \n" 14 | "Language-Team: Svenska Språkfiler \n" 15 | "Language: sv\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 20 | "X-Generator: Poedit 3.2.2\n" 21 | 22 | #: data/io.github.lainsce.Khronos.appdata.xml.in:6 23 | #: data/io.github.lainsce.Khronos.desktop.in:3 24 | msgid "Khronos" 25 | msgstr "Khronos" 26 | 27 | #: data/io.github.lainsce.Khronos.appdata.xml.in:7 28 | msgid "Log the time it took to do tasks" 29 | msgstr "Logga den tid det tog att utföra uppgifter" 30 | 31 | #: data/io.github.lainsce.Khronos.appdata.xml.in:9 32 | msgid "" 33 | "Start logging any task's time to completion, with the ability to stop the " 34 | "timer at any moment, with notifications for longer task sessions." 35 | msgstr "" 36 | "Börja logga alla uppgifters tid till slutförande, med möjligheten att stoppa " 37 | "timern när som helst, med aviseringar för längre uppgiftssessioner." 38 | 39 | #: data/io.github.lainsce.Khronos.appdata.xml.in:11 40 | msgid "Quit anytime with the shortcut Ctrl + Q" 41 | msgstr "Avsluta när som helst med genvägen Ctrl + Q" 42 | 43 | #: data/io.github.lainsce.Khronos.appdata.xml.in:21 44 | msgid "Lains" 45 | msgstr "Lains" 46 | 47 | #: data/io.github.lainsce.Khronos.appdata.xml.in:47 48 | msgid "Release: UI Refreshments" 49 | msgstr "Release: UI-förfriskningar" 50 | 51 | #: data/io.github.lainsce.Khronos.appdata.xml.in:49 52 | msgid "Changed: The UI is now with a better layout." 53 | msgstr "Ändrad: Användargränssnittet har nu en bättre layout." 54 | 55 | #: data/io.github.lainsce.Khronos.appdata.xml.in:55 56 | msgid "Release: Port to GTK4" 57 | msgstr "Release: Port till GTK4" 58 | 59 | #: data/io.github.lainsce.Khronos.appdata.xml.in:57 60 | msgid "Changed: Rewritten for GTK4." 61 | msgstr "Ändrat: Omskrivet för GTK4." 62 | 63 | #: data/io.github.lainsce.Khronos.desktop.in:4 64 | msgid "Track each task time in a simple inobtrusive way" 65 | msgstr "Logga varje uppgifts tidsåtgång på ett enkelt och diskret sätt" 66 | 67 | #: data/io.github.lainsce.Khronos.desktop.in:11 68 | msgid "Plot;Planning;Time Tracking;" 69 | msgstr "Plot;Planering;Tidsspårning;" 70 | 71 | #: data/io.github.lainsce.Khronos.gschema.xml:5 72 | msgid "Delay between notifications" 73 | msgstr "Fördröjning mellan aviseringar" 74 | 75 | #: data/io.github.lainsce.Khronos.gschema.xml:6 76 | msgid "The delay between two notifications, default is 30min. in seconds." 77 | msgstr "Fördröjningen mellan två aviseringar, standard är 30 min. i sekunder." 78 | 79 | #: data/ui/main_window.ui:6 80 | msgid "Export Logs as CSV…" 81 | msgstr "Exportera loggar som CSV…" 82 | 83 | #: data/ui/main_window.ui:10 84 | msgid "Import Logs from CSV…" 85 | msgstr "Importera loggar från CSV…" 86 | 87 | #: data/ui/main_window.ui:16 88 | msgid "About Khronos" 89 | msgstr "Om Khronos" 90 | 91 | #: data/ui/main_window.ui:53 92 | msgid "Timer" 93 | msgstr "Tidur" 94 | 95 | #: data/ui/main_window.ui:77 96 | msgid "Log name…" 97 | msgstr "Loggnamn…" 98 | 99 | #: data/ui/main_window.ui:96 100 | msgid "Adds a log to the list" 101 | msgstr "Lägger till en logg i listan" 102 | 103 | #: data/ui/main_window.ui:106 src/MainWindow.vala:161 104 | msgid "Starts the timer for a log" 105 | msgstr "Startar timern för en logg" 106 | 107 | #: data/ui/main_window.ui:122 108 | msgid "Logs" 109 | msgstr "Loggar" 110 | 111 | #: data/ui/main_window.ui:148 112 | msgid "Removes all logs from the list" 113 | msgstr "Tar bort alla loggar från listan" 114 | 115 | #: data/ui/main_window.ui:180 116 | msgid "No Logs" 117 | msgstr "Inga loggar" 118 | 119 | #: data/ui/main_window.ui:188 120 | msgid "Add a log on Timer tab and check later." 121 | msgstr "Lägg till en logg under fliken Tidur och kontrollera senare." 122 | 123 | #: src/MainWindow.vala:153 124 | msgid "Stops the timer for a log" 125 | msgstr "Stoppar timern för en logg" 126 | 127 | #: src/MainWindow.vala:186 128 | msgid "Empty the Logs List?" 129 | msgstr "Vill du tömma logglistan?" 130 | 131 | #: src/MainWindow.vala:187 132 | msgid "" 133 | "Emptying this list means all the logs in it will be permanently lost with no " 134 | "recovery." 135 | msgstr "" 136 | "Tömning av listan innebär att alla loggar kommer att förloras permanent utan " 137 | "möjlighet till återställning." 138 | 139 | #: src/MainWindow.vala:189 140 | msgid "Cancel" 141 | msgstr "Avbryt" 142 | 143 | #: src/MainWindow.vala:190 144 | msgid "Empty List" 145 | msgstr "Töm listan" 146 | 147 | #: src/MainWindow.vala:307 148 | msgid "Go rest for a while before continuing." 149 | msgstr "Vila ett tag, innan du fortsätter." 150 | 151 | #: src/MainWindow.vala:316 152 | msgid "Maybe grab a snack before continuing." 153 | msgstr "Kanske ta ett mellanmål innan du fortsätter." 154 | 155 | #: src/MainWindow.vala:325 156 | msgid "Perhaps go get some coffee or tea before continuing." 157 | msgstr "Kanske gå och dricka kaffe eller te innan du fortsätter." 158 | 159 | #: src/MainWindow.vala:334 160 | msgid "That's a big task. Let's rest a bit before continuing." 161 | msgstr "Detta är en stor uppgift. Låt oss vila lite innan vi fortsätter." 162 | 163 | #: src/MainWindow.vala:343 164 | msgid "Amazing work! But please rest a bit before continuing." 165 | msgstr "Fantastiskt jobb! Men vila ett tag innan du fortsätter." 166 | 167 | #: src/MainWindow.vala:387 168 | msgid "Track each task's time in a simple inobtrusive way." 169 | msgstr "Logga varje uppgifts tidsåtgång på ett enkelt och diskret sätt." 170 | 171 | #: src/MainWindow.vala:393 172 | msgid "translator-credits" 173 | msgstr "" 174 | "Åke Engelbrektson \n" 175 | "Luna Jernberg " 176 | 177 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 178 | msgid "CSV files" 179 | msgstr "CSV-filer" 180 | 181 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 182 | msgid "All files" 183 | msgstr "Alla filer" 184 | -------------------------------------------------------------------------------- /po/ru_RU.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the io.github.lainsce.Khronos package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: io.github.lainsce.Khronos\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-11-29 23:07+0100\n" 11 | "PO-Revision-Date: 2022-02-02 03:34+0300\n" 12 | "Last-Translator: Danik2343 a.k.a Aaron \n" 13 | "Language-Team: \n" 14 | "Language: ru_RU\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" 19 | "%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" 20 | "X-Generator: Poedit 3.0.1\n" 21 | 22 | #: data/io.github.lainsce.Khronos.appdata.xml.in:6 23 | #: data/io.github.lainsce.Khronos.desktop.in:3 24 | msgid "Khronos" 25 | msgstr "Khronos" 26 | 27 | #: data/io.github.lainsce.Khronos.appdata.xml.in:7 28 | msgid "Log the time it took to do tasks" 29 | msgstr "Записывайте в журнал время, затраченное на выполнение заданий" 30 | 31 | #: data/io.github.lainsce.Khronos.appdata.xml.in:9 32 | msgid "" 33 | "Start logging any task's time to completion, with the ability to stop the " 34 | "timer at any moment, with notifications for longer task sessions." 35 | msgstr "" 36 | "Начните регистрировать время выполнения любой задачи, с возможностью " 37 | "остановить таймер в любой момент, с уведомлениями о более длительном " 38 | "выполнении задачи." 39 | 40 | #: data/io.github.lainsce.Khronos.appdata.xml.in:11 41 | msgid "Quit anytime with the shortcut Ctrl + Q" 42 | msgstr "Выйти из программы в любое время с помощью сочетания клавиш Ctrl + Q" 43 | 44 | #: data/io.github.lainsce.Khronos.appdata.xml.in:21 45 | msgid "Lains" 46 | msgstr "Lains" 47 | 48 | #: data/io.github.lainsce.Khronos.appdata.xml.in:47 49 | msgid "Release: UI Refreshments" 50 | msgstr "Релиз: Обновление пользовательского интерфейса" 51 | 52 | #: data/io.github.lainsce.Khronos.appdata.xml.in:49 53 | msgid "Changed: The UI is now with a better layout." 54 | msgstr "" 55 | "Изменено: пользовательский интерфейс теперь имеет более удобную компоновку." 56 | 57 | #: data/io.github.lainsce.Khronos.appdata.xml.in:55 58 | msgid "Release: Port to GTK4" 59 | msgstr "Релиз: Перенос на GTK4" 60 | 61 | #: data/io.github.lainsce.Khronos.appdata.xml.in:57 62 | msgid "Changed: Rewritten for GTK4." 63 | msgstr "Изменено: Переписано для GTK4." 64 | 65 | #: data/io.github.lainsce.Khronos.desktop.in:4 66 | msgid "Track each task time in a simple inobtrusive way" 67 | msgstr "" 68 | "Отслеживайте время выполнения каждой задачи простым и ненавязчивым способом" 69 | 70 | #: data/io.github.lainsce.Khronos.desktop.in:11 71 | msgid "Plot;Planning;Time Tracking;" 72 | msgstr "Сюжет;Планирование;Отслеживание времени;" 73 | 74 | #: data/io.github.lainsce.Khronos.gschema.xml:5 75 | msgid "Delay between notifications" 76 | msgstr "Задержка между уведомлениями" 77 | 78 | #: data/io.github.lainsce.Khronos.gschema.xml:6 79 | msgid "The delay between two notifications, default is 30min. in seconds." 80 | msgstr "Задержка между двумя уведомлениями, по умолчанию 30 мин. в секундах." 81 | 82 | #: data/ui/main_window.ui:6 83 | msgid "Export Logs as CSV…" 84 | msgstr "Экспорт журналов в формате CSV…" 85 | 86 | #: data/ui/main_window.ui:10 87 | msgid "Import Logs from CSV…" 88 | msgstr "Импорт журналов из CSV…" 89 | 90 | #: data/ui/main_window.ui:16 91 | msgid "About Khronos" 92 | msgstr "О Khronos" 93 | 94 | #: data/ui/main_window.ui:53 95 | msgid "Timer" 96 | msgstr "Таймер" 97 | 98 | #: data/ui/main_window.ui:77 99 | msgid "Log name…" 100 | msgstr "Имя журнала…" 101 | 102 | #: data/ui/main_window.ui:96 103 | msgid "Adds a log to the list" 104 | msgstr "Добавляет журнал в список" 105 | 106 | #: data/ui/main_window.ui:106 src/MainWindow.vala:161 107 | msgid "Starts the timer for a log" 108 | msgstr "Запускает таймер для журнала" 109 | 110 | #: data/ui/main_window.ui:122 111 | msgid "Logs" 112 | msgstr "Журналы" 113 | 114 | #: data/ui/main_window.ui:148 115 | msgid "Removes all logs from the list" 116 | msgstr "Удаляет все журналы из списка" 117 | 118 | #: data/ui/main_window.ui:180 119 | msgid "No Logs" 120 | msgstr "Нет журналов" 121 | 122 | #: data/ui/main_window.ui:188 123 | msgid "Add a log on Timer tab and check later." 124 | msgstr "Добавить журнал на вкладке Таймер и проверьте позже." 125 | 126 | #: src/MainWindow.vala:153 127 | msgid "Stops the timer for a log" 128 | msgstr "Остановка таймера для журнала" 129 | 130 | #: src/MainWindow.vala:186 131 | msgid "Empty the Logs List?" 132 | msgstr "Опустошить список журналов?" 133 | 134 | #: src/MainWindow.vala:187 135 | msgid "" 136 | "Emptying this list means all the logs in it will be permanently lost with no " 137 | "recovery." 138 | msgstr "" 139 | "Опустошение этого списка означает, что все журналы в нем будут навсегда " 140 | "потеряны без возможности восстановления." 141 | 142 | #: src/MainWindow.vala:189 143 | msgid "Cancel" 144 | msgstr "Отмена" 145 | 146 | #: src/MainWindow.vala:190 147 | msgid "Empty List" 148 | msgstr "Пустой список" 149 | 150 | #: src/MainWindow.vala:307 151 | msgid "Go rest for a while before continuing." 152 | msgstr "Отдохните некоторое время, прежде чем продолжить." 153 | 154 | #: src/MainWindow.vala:316 155 | msgid "Maybe grab a snack before continuing." 156 | msgstr "Может быть, перекусите, прежде чем продолжить." 157 | 158 | #: src/MainWindow.vala:325 159 | msgid "Perhaps go get some coffee or tea before continuing." 160 | msgstr "Возможно, перед тем как продолжить, сходите за кофе или чаем." 161 | 162 | #: src/MainWindow.vala:334 163 | msgid "That's a big task. Let's rest a bit before continuing." 164 | msgstr "Это большая задача. Давайте немного отдохнем, прежде чем продолжить." 165 | 166 | #: src/MainWindow.vala:343 167 | msgid "Amazing work! But please rest a bit before continuing." 168 | msgstr "" 169 | "Потрясающая работа! Но, пожалуйста, отдохните немного перед продолжением." 170 | 171 | #: src/MainWindow.vala:387 172 | msgid "Track each task's time in a simple inobtrusive way." 173 | msgstr "" 174 | "Отслеживайте время выполнения каждой задачи простым ненавязчивым способом." 175 | 176 | #: src/MainWindow.vala:393 177 | msgid "translator-credits" 178 | msgstr "Danik2343" 179 | 180 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 181 | msgid "CSV files" 182 | msgstr "CSV-файлы" 183 | 184 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 185 | msgid "All files" 186 | msgstr "All files" 187 | -------------------------------------------------------------------------------- /po/de.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.lainsce.khronos package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: com.github.lainsce.khronos\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-11-29 23:06+0100\n" 11 | "PO-Revision-Date: 2022-04-20 06:46+0200\n" 12 | "Last-Translator: Milo Ivir \n" 13 | "Language-Team: \n" 14 | "Language: de\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | "X-Generator: Poedit 3.0.1\n" 20 | 21 | #: data/io.github.lainsce.Khronos.appdata.xml.in:6 22 | #: data/io.github.lainsce.Khronos.desktop.in:3 23 | msgid "Khronos" 24 | msgstr "Khronos" 25 | 26 | #: data/io.github.lainsce.Khronos.appdata.xml.in:7 27 | msgid "Log the time it took to do tasks" 28 | msgstr "" 29 | "Erstelle Protokolle über die Zeit, die es braucht um Aufgaben zu erledigen" 30 | 31 | #: data/io.github.lainsce.Khronos.appdata.xml.in:9 32 | msgid "" 33 | "Start logging any task's time to completion, with the ability to stop the " 34 | "timer at any moment, with notifications for longer task sessions." 35 | msgstr "" 36 | "Startet die Protokollierung jeder Aufgabe bis zu ihrer Fertigstellung, mit " 37 | "der Möglichkeit den Timer jeder Zeit zu stoppen, mit Benachrichtigungen für " 38 | "längere Arbeitsabschnitte." 39 | 40 | #: data/io.github.lainsce.Khronos.appdata.xml.in:11 41 | msgid "Quit anytime with the shortcut Ctrl + Q" 42 | msgstr "Programm mit der Tastenkombination Strg + Q beenden" 43 | 44 | #: data/io.github.lainsce.Khronos.appdata.xml.in:21 45 | msgid "Lains" 46 | msgstr "Lains" 47 | 48 | #: data/io.github.lainsce.Khronos.appdata.xml.in:47 49 | msgid "Release: UI Refreshments" 50 | msgstr "Veröffentlichung: UI Erneuerung" 51 | 52 | #: data/io.github.lainsce.Khronos.appdata.xml.in:49 53 | msgid "Changed: The UI is now with a better layout." 54 | msgstr "Änderung: Die UI hat jetzt ein besseres Layout." 55 | 56 | #: data/io.github.lainsce.Khronos.appdata.xml.in:55 57 | msgid "Release: Port to GTK4" 58 | msgstr "Veröffentlichung: Umgestellt auf GTK4" 59 | 60 | #: data/io.github.lainsce.Khronos.appdata.xml.in:57 61 | msgid "Changed: Rewritten for GTK4." 62 | msgstr "Änderung: Umgeschrieben für GTK4." 63 | 64 | #: data/io.github.lainsce.Khronos.desktop.in:4 65 | msgid "Track each task time in a simple inobtrusive way" 66 | msgstr "Zeiterfassung für Aufgaben auf einfache und störungsfreie Weise" 67 | 68 | #: data/io.github.lainsce.Khronos.desktop.in:11 69 | msgid "Plot;Planning;Time Tracking;" 70 | msgstr "Plot;Planung;Zeiterfassung;" 71 | 72 | #: data/io.github.lainsce.Khronos.gschema.xml:5 73 | msgid "Delay between notifications" 74 | msgstr "Abstand zwischen Benachrichtigungen" 75 | 76 | #: data/io.github.lainsce.Khronos.gschema.xml:6 77 | msgid "The delay between two notifications, default is 30min. in seconds." 78 | msgstr "" 79 | "Der Abstand zwischen Benachrichtigungen, Standardmäßig 30min. in Sekunden." 80 | 81 | #: data/ui/main_window.ui:6 82 | msgid "Export Logs as CSV…" 83 | msgstr "Protokolle exportieren (CSV) …" 84 | 85 | #: data/ui/main_window.ui:10 86 | msgid "Import Logs from CSV…" 87 | msgstr "Protokolle importieren (CSV) …" 88 | 89 | #: data/ui/main_window.ui:16 90 | msgid "About Khronos" 91 | msgstr "Über Khronos" 92 | 93 | #: data/ui/main_window.ui:53 94 | msgid "Timer" 95 | msgstr "Timer" 96 | 97 | #: data/ui/main_window.ui:77 98 | msgid "Log name…" 99 | msgstr "Name des Protokolls …" 100 | 101 | #: data/ui/main_window.ui:96 102 | msgid "Adds a log to the list" 103 | msgstr "Fügt ein Protokoll zur Liste hinzu" 104 | 105 | #: data/ui/main_window.ui:106 src/MainWindow.vala:161 106 | msgid "Starts the timer for a log" 107 | msgstr "Startet den Timer für ein Protokoll" 108 | 109 | #: data/ui/main_window.ui:122 110 | msgid "Logs" 111 | msgstr "Protokolle" 112 | 113 | #: data/ui/main_window.ui:148 114 | msgid "Removes all logs from the list" 115 | msgstr "Entfernt alle Protokolle aus der Liste" 116 | 117 | #: data/ui/main_window.ui:180 118 | msgid "No Logs" 119 | msgstr "Keine Protokolle" 120 | 121 | #: data/ui/main_window.ui:188 122 | msgid "Add a log on Timer tab and check later." 123 | msgstr "Füge ein Protokoll im Timer Tab hinzu und überprüfe später." 124 | 125 | #: src/MainWindow.vala:153 126 | msgid "Stops the timer for a log" 127 | msgstr "Stoppt den Timer für ein Protokoll" 128 | 129 | #: src/MainWindow.vala:186 130 | msgid "Empty the Logs List?" 131 | msgstr "Protokolliste leeren?" 132 | 133 | #: src/MainWindow.vala:187 134 | msgid "" 135 | "Emptying this list means all the logs in it will be permanently lost with no " 136 | "recovery." 137 | msgstr "" 138 | "Leeren dieser Liste bedeutet, dass alle Protokolle ohne eine Möglichkeit der " 139 | "Wiederherstellung entgültig verloren gehen." 140 | 141 | #: src/MainWindow.vala:189 142 | msgid "Cancel" 143 | msgstr "Abbrechen" 144 | 145 | #: src/MainWindow.vala:190 146 | msgid "Empty List" 147 | msgstr "Leere Liste" 148 | 149 | #: src/MainWindow.vala:307 150 | msgid "Go rest for a while before continuing." 151 | msgstr "Mach eine Pause, bevor du weiter machst." 152 | 153 | #: src/MainWindow.vala:316 154 | msgid "Maybe grab a snack before continuing." 155 | msgstr "Hol dir vieleicht eine Kleinigkeit zu Essen, bevor du weiter machst." 156 | 157 | #: src/MainWindow.vala:325 158 | msgid "Perhaps go get some coffee or tea before continuing." 159 | msgstr "Hol dir vieleicht einen Kaffee oder Tee, bevor du weiter machst." 160 | 161 | #: src/MainWindow.vala:334 162 | msgid "That's a big task. Let's rest a bit before continuing." 163 | msgstr "" 164 | "Das ist eine große Aufgabe. Lass uns eine Pause machen, bevor du weiter " 165 | "machst." 166 | 167 | #: src/MainWindow.vala:343 168 | msgid "Amazing work! But please rest a bit before continuing." 169 | msgstr "" 170 | "Super Arbeit! Aber bitte entspann dich ein wenig, bevor du weiter machst." 171 | 172 | #: src/MainWindow.vala:387 173 | msgid "Track each task's time in a simple inobtrusive way." 174 | msgstr "" 175 | "Erfasse die benutzte Zeit für deine Aufgaben auf einfache und störungsfreie " 176 | "Weise." 177 | 178 | #: src/MainWindow.vala:393 179 | msgid "translator-credits" 180 | msgstr "Ole Barmeyer <69189702+barmole@users.noreply.github.com>, 2022." 181 | 182 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 183 | msgid "CSV files" 184 | msgstr "CSV Dateien" 185 | 186 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 187 | msgid "All files" 188 | msgstr "Alle Dateien" 189 | -------------------------------------------------------------------------------- /po/fr.po: -------------------------------------------------------------------------------- 1 | # French translations for com.github.lainsce.khronos package. 2 | # Copyright (C) 2020 THE com.github.lainsce.khronos'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.lainsce.khronos package. 4 | # Nathan Bonnemains (@NathanBnm), 2020. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: com.github.lainsce.khronos\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-11-29 23:07+0100\n" 11 | "PO-Revision-Date: 2022-05-17 21:16+0200\n" 12 | "Last-Translator: Nathan Bonnemains (@NathanBnm)\n" 13 | "Language-Team: none\n" 14 | "Language: fr\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" 19 | "X-Generator: Poedit 3.0.1\n" 20 | 21 | #: data/io.github.lainsce.Khronos.appdata.xml.in:6 22 | #: data/io.github.lainsce.Khronos.desktop.in:3 23 | msgid "Khronos" 24 | msgstr "Khronos" 25 | 26 | #: data/io.github.lainsce.Khronos.appdata.xml.in:7 27 | msgid "Log the time it took to do tasks" 28 | msgstr "Consignez le temps nécessaire pour accomplir vos tâches" 29 | 30 | #: data/io.github.lainsce.Khronos.appdata.xml.in:9 31 | msgid "" 32 | "Start logging any task's time to completion, with the ability to stop the " 33 | "timer at any moment, with notifications for longer task sessions." 34 | msgstr "" 35 | "Commencez à enregistrer le temps qu'il vous faut pour exécuter n'importe " 36 | "quelle tâche, avec la possibilité d'arrêter le chronomètre à tout moment, " 37 | "ainsi que des notifications pour les sessions de tâches plus longues." 38 | 39 | #: data/io.github.lainsce.Khronos.appdata.xml.in:11 40 | msgid "Quit anytime with the shortcut Ctrl + Q" 41 | msgstr "Quittez à tout moment avec le raccourci Ctrl + Q" 42 | 43 | #: data/io.github.lainsce.Khronos.appdata.xml.in:21 44 | msgid "Lains" 45 | msgstr "Lains" 46 | 47 | #: data/io.github.lainsce.Khronos.appdata.xml.in:47 48 | msgid "Release: UI Refreshments" 49 | msgstr "Version : Interface rafraîchie" 50 | 51 | #: data/io.github.lainsce.Khronos.appdata.xml.in:49 52 | msgid "Changed: The UI is now with a better layout." 53 | msgstr "Changement : l'interface est désormais mieux agencée." 54 | 55 | #: data/io.github.lainsce.Khronos.appdata.xml.in:55 56 | msgid "Release: Port to GTK4" 57 | msgstr "Version : portage vers GTK4" 58 | 59 | #: data/io.github.lainsce.Khronos.appdata.xml.in:57 60 | msgid "Changed: Rewritten for GTK4." 61 | msgstr "Changement : réécriture en GTK4." 62 | 63 | #: data/io.github.lainsce.Khronos.desktop.in:4 64 | msgid "Track each task time in a simple inobtrusive way" 65 | msgstr "Suivez le déroulement de chaque tâche de manière simple et discrète" 66 | 67 | #: data/io.github.lainsce.Khronos.desktop.in:11 68 | msgid "Plot;Planning;Time Tracking;" 69 | msgstr "Plot;Planning;Time Tracking;Suivi du temps;" 70 | 71 | #: data/io.github.lainsce.Khronos.gschema.xml:5 72 | msgid "Delay between notifications" 73 | msgstr "Délai entre les notifications" 74 | 75 | #: data/io.github.lainsce.Khronos.gschema.xml:6 76 | msgid "The delay between two notifications, default is 30min. in seconds." 77 | msgstr "" 78 | "Le délai entre deux notifications, en secondes, à 30 minutes par défaut." 79 | 80 | #: data/ui/main_window.ui:6 81 | msgid "Export Logs as CSV…" 82 | msgstr "Exporter les tâches en un fichier CSV…" 83 | 84 | #: data/ui/main_window.ui:10 85 | msgid "Import Logs from CSV…" 86 | msgstr "Importer des tâches depuis un fichier CSV…" 87 | 88 | #: data/ui/main_window.ui:16 89 | msgid "About Khronos" 90 | msgstr "À propos de Khronos" 91 | 92 | #: data/ui/main_window.ui:53 93 | msgid "Timer" 94 | msgstr "Chronomètre" 95 | 96 | #: data/ui/main_window.ui:77 97 | msgid "Log name…" 98 | msgstr "Nom de la tâche…" 99 | 100 | #: data/ui/main_window.ui:96 101 | msgid "Adds a log to the list" 102 | msgstr "Ajoute une tâche à la liste" 103 | 104 | #: data/ui/main_window.ui:106 src/MainWindow.vala:161 105 | msgid "Starts the timer for a log" 106 | msgstr "Démarre le chronomètre pour une tâche" 107 | 108 | #: data/ui/main_window.ui:122 109 | msgid "Logs" 110 | msgstr "Tâches" 111 | 112 | #: data/ui/main_window.ui:148 113 | msgid "Removes all logs from the list" 114 | msgstr "Supprime toutes les tâches de la liste" 115 | 116 | #: data/ui/main_window.ui:180 117 | msgid "No Logs" 118 | msgstr "Pas de tâches" 119 | 120 | #: data/ui/main_window.ui:188 121 | msgid "Add a log on Timer tab and check later." 122 | msgstr "Ajoutez une tâche sur l'onglet chronomètre et vérifiez plus tard." 123 | 124 | #: src/MainWindow.vala:153 125 | msgid "Stops the timer for a log" 126 | msgstr "Stoppe le chronomètre d'une tâche" 127 | 128 | #: src/MainWindow.vala:186 129 | msgid "Empty the Logs List?" 130 | msgstr "Vider la liste des tâches ?" 131 | 132 | #: src/MainWindow.vala:187 133 | msgid "" 134 | "Emptying this list means all the logs in it will be permanently lost with no " 135 | "recovery." 136 | msgstr "" 137 | "Vider cette liste signifie que toutes les tâches seront supprimées " 138 | "définitivement sans possibilité de récupération." 139 | 140 | #: src/MainWindow.vala:189 141 | msgid "Cancel" 142 | msgstr "Annuler" 143 | 144 | #: src/MainWindow.vala:190 145 | msgid "Empty List" 146 | msgstr "Vider la liste" 147 | 148 | #: src/MainWindow.vala:307 149 | msgid "Go rest for a while before continuing." 150 | msgstr "Prenez une pause avant de continuer..." 151 | 152 | #: src/MainWindow.vala:316 153 | msgid "Maybe grab a snack before continuing." 154 | msgstr "Allez peut-être prendre une collation avant de continuer..." 155 | 156 | #: src/MainWindow.vala:325 157 | msgid "Perhaps go get some coffee or tea before continuing." 158 | msgstr "Allez peut-être prendre un café ou un thé avant de continuer..." 159 | 160 | #: src/MainWindow.vala:334 161 | msgid "That's a big task. Let's rest a bit before continuing." 162 | msgstr "" 163 | "C'est une grande tâche. Allons prendre un peu de repos avant de continuer..." 164 | 165 | #: src/MainWindow.vala:343 166 | msgid "Amazing work! But please rest a bit before continuing." 167 | msgstr "" 168 | "Excellent travail ! Mais s'il vous plaît, reposez-vous un peu avant de " 169 | "continuer..." 170 | 171 | #: src/MainWindow.vala:387 172 | msgid "Track each task's time in a simple inobtrusive way." 173 | msgstr "Suivez le temps de chaque tâche de manière simple et non-intrusive." 174 | 175 | #: src/MainWindow.vala:393 176 | msgid "translator-credits" 177 | msgstr "Irénée Thirion" 178 | 179 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 180 | msgid "CSV files" 181 | msgstr "Fichiers CSV" 182 | 183 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 184 | msgid "All files" 185 | msgstr "Tous les fichiers" 186 | -------------------------------------------------------------------------------- /po/tr.po: -------------------------------------------------------------------------------- 1 | # Turkish translation for io.github.lainsce.Khronos. 2 | # Copyright (C) 2022-2023 io.github.lainsce.Khronos's COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the io.github.lainsce.Khronos package. 4 | # 5 | # Sabri Ünal , 2022, 2023. 6 | # 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: io.github.lainsce.Khronos\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2023-10-15 12:34+0300\n" 12 | "PO-Revision-Date: 2023-10-15 12:52+0300\n" 13 | "Last-Translator: Sabri Ünal \n" 14 | "Language-Team: Turkish \n" 15 | "Language: tr\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=1; plural=0;\n" 20 | "X-Generator: Poedit 3.4\n" 21 | 22 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:7 23 | msgid "Log the time it took to do tasks" 24 | msgstr "Görevleri yapmak için geçen süreyi günlüğe kaydedin" 25 | 26 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:9 27 | msgid "" 28 | "Start logging any task's time to completion, with the ability to stop the " 29 | "timer at any moment, with notifications for longer task sessions." 30 | msgstr "" 31 | "Kronometreyi her an durdurma özelliğiyle, herhangi bir görevin tamamlanma " 32 | "zamanını, daha uzun görev oturumlarında bildirimlerle, günlüğe kaydetmeye " 33 | "başlayın." 34 | 35 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:11 36 | msgid "Quit anytime with the shortcut Ctrl + Q" 37 | msgstr "Ctrl + Q kısayoluyla istediğiniz zaman çıkın" 38 | 39 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:48 40 | msgid "Release: Day 2" 41 | msgstr "Sürüm: 2. Gün" 42 | 43 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:50 44 | msgid "Changed: Overall refinements to match the updated looks of GNOME apps." 45 | msgstr "" 46 | "Değiştirildi: GNOME uygulamalarının güncellenmiş görünümüyle uyumlu genel " 47 | "iyileştirmeler." 48 | 49 | #: data/io.github.lainsce.Khronos.desktop.in:3 50 | msgid "Khronos" 51 | msgstr "Khronos" 52 | 53 | #: data/io.github.lainsce.Khronos.desktop.in:4 54 | msgid "Track each task time in a simple inobtrusive way" 55 | msgstr "Her görev süresini basit ve göze batmayan bir şekilde takip edin" 56 | 57 | #: data/io.github.lainsce.Khronos.desktop.in:7 58 | msgid "Plot;Planning;Time Tracking;" 59 | msgstr "" 60 | "Plot;Planlama;Süre;Zaman;Zaman Takibi;Süre Takibi;Planning;Time Tracking;" 61 | 62 | #: data/io.github.lainsce.Khronos.gschema.xml:5 63 | msgid "Migration Version" 64 | msgstr "Geçiş Sürümü" 65 | 66 | #: data/io.github.lainsce.Khronos.gschema.xml:6 67 | msgid "The version of migration to use; Do not change." 68 | msgstr "Kullanılacak geçiş sürümü; Değiştirmeyin." 69 | 70 | #: data/io.github.lainsce.Khronos.gschema.xml:10 71 | msgid "Delay between notifications" 72 | msgstr "Bildirimler arasındaki gecikme" 73 | 74 | #: data/io.github.lainsce.Khronos.gschema.xml:11 75 | msgid "The delay between two notifications, default is 30min. in seconds." 76 | msgstr "" 77 | "İki bildirim arasındaki gecikme, varsayılan olarak 30 dakikadır. saniye " 78 | "cinsinden." 79 | 80 | #: data/ui/main_window.ui:6 81 | msgid "Export Logs as CSV…" 82 | msgstr "Günlükleri CSV Olarak Dışa Aktar..." 83 | 84 | #: data/ui/main_window.ui:10 85 | msgid "Import Logs from CSV…" 86 | msgstr "Günlükleri CSV Dosyasından İçe Aktar…" 87 | 88 | #: data/ui/main_window.ui:16 89 | msgid "About Khronos" 90 | msgstr "Khronos Hakkında" 91 | 92 | #: data/ui/main_window.ui:58 93 | msgid "• events" 94 | msgstr "• olay" 95 | 96 | #: data/ui/main_window.ui:70 97 | msgid "Timer" 98 | msgstr "Kronometre" 99 | 100 | #: data/ui/main_window.ui:94 101 | msgid "Log name…" 102 | msgstr "Günlük adı..." 103 | 104 | #: data/ui/main_window.ui:102 105 | msgid "Tags (split by colons)…" 106 | msgstr "Etiketler (iki nokta üst üste ile bölünmüş)…" 107 | 108 | #: data/ui/main_window.ui:144 109 | msgid "Logs" 110 | msgstr "Günlükler" 111 | 112 | #: data/ui/main_window.ui:195 src/MainWindow.vala:191 src/MainWindow.vala:205 113 | msgid "Starts the timer for a log" 114 | msgstr "Günlük için kronometreyi başlat" 115 | 116 | #: data/ui/main_window.ui:209 117 | msgid "Stops the timer for a log" 118 | msgstr "Günlük için kronometreyi durdur" 119 | 120 | #: data/ui/main_window.ui:220 121 | msgid "Resets the timer" 122 | msgstr "Kronometreyi sıfırla" 123 | 124 | #: data/ui/main_window.ui:231 125 | msgid "Adds a log to the list" 126 | msgstr "Listeye günlük ekle" 127 | 128 | #: data/ui/main_window.ui:248 129 | msgid "Cleans the logs list" 130 | msgstr "Günlükler listesini temizle" 131 | 132 | #: src/MainWindow.vala:142 src/MainWindow.vala:235 src/MainWindow.vala:303 133 | #: src/MainWindow.vala:317 134 | msgid "events" 135 | msgstr "olay" 136 | 137 | #: src/MainWindow.vala:157 138 | msgid "Pauses the timer for a log" 139 | msgstr "Günlük için kronometreyi duraklat" 140 | 141 | #: src/MainWindow.vala:359 142 | msgid "translator-credits" 143 | msgstr "Sabri Ünal " 144 | 145 | #: src/MainWindow.vala:450 146 | msgid "Go rest for a while before continuing." 147 | msgstr "Devam etmeden önce bir süre dinlenin." 148 | 149 | # Sağlık için not ekledim. 150 | #: src/MainWindow.vala:459 151 | msgid "Maybe grab a snack before continuing." 152 | msgstr "" 153 | "Belki devam etmeden önce bir şeyler atıştırmak istersiniz\n" 154 | "(Çn: Aburcuburdan uzak durmayı ihmal etmeyin)." 155 | 156 | #: src/MainWindow.vala:468 157 | msgid "Perhaps go get some coffee or tea before continuing." 158 | msgstr "" 159 | "Belki devam etmeden önce belki bir çay veya kahve almak istersiniz\n" 160 | "(Çn: Şekerden uzak durmayı ihmal etmeyin)." 161 | 162 | #: src/MainWindow.vala:477 163 | msgid "That's a big task. Let's rest a bit before continuing." 164 | msgstr "Bu büyük bir görev. Devam etmeden önce biraz dinlenin." 165 | 166 | #: src/MainWindow.vala:486 167 | msgid "Amazing work! But please rest a bit before continuing." 168 | msgstr "Muhteşem bir çalışma! Devam etmeden önce lütfen biraz dinlenin." 169 | 170 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 171 | msgid "CSV files" 172 | msgstr "CSV dosyaları" 173 | 174 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 175 | msgid "All files" 176 | msgstr "Tüm dosyalar" 177 | 178 | #: src/ViewModels/LogViewModel.vala:50 179 | msgid "Clear Logs?" 180 | msgstr "Günlükler Temizlensin Mi?" 181 | 182 | #: src/ViewModels/LogViewModel.vala:51 183 | msgid "Clearing means the logs here will be permanently lost with no recovery." 184 | msgstr "" 185 | "Temizlenme, buradaki günlüklerin kurtarma imkanı olmadan kalıcı olarak " 186 | "kaybedileceği anlamına gelir." 187 | 188 | #: src/ViewModels/LogViewModel.vala:52 189 | msgid "Cancel" 190 | msgstr "İptal" 191 | 192 | #: src/ViewModels/LogViewModel.vala:53 193 | msgid "Clear" 194 | msgstr "Temizle" 195 | -------------------------------------------------------------------------------- /po/zh_CN.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: \n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2022-12-06 22:55+0300\n" 11 | "PO-Revision-Date: 2022-12-17 15:42+0800\n" 12 | "Last-Translator: YUCLing\n" 13 | "Language-Team: \n" 14 | "Language: zh_CN\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=1; plural=0;\n" 19 | "X-Generator: Poedit 3.2.2\n" 20 | 21 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:7 22 | msgid "Log the time it took to do tasks" 23 | msgstr "记录一件事所消耗的时间" 24 | 25 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:9 26 | msgid "" 27 | "Start logging any task's time to completion, with the ability to stop the " 28 | "timer at any moment, with notifications for longer task sessions." 29 | msgstr "开始记录任何任务的完成时间,能够随时停止计时器,并带有长时任务的通知。" 30 | 31 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:11 32 | msgid "Quit anytime with the shortcut Ctrl + Q" 33 | msgstr "在任何时候都可以按 Ctrl + Q 退出" 34 | 35 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:47 36 | msgid "Release: Hour" 37 | msgstr "发布:时" 38 | 39 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:49 40 | msgid "" 41 | "Changed: UI is now pure Adwaita following the inclusion of Khronos in GNOME " 42 | "Circle." 43 | msgstr "变更:在 Khronos 被包含到 GNOME Circle 之后,现在 UI 使用纯 Adwaita。" 44 | 45 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:55 46 | msgid "Release: Minute" 47 | msgstr "发布:分" 48 | 49 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:57 50 | msgid "" 51 | "Changed: UI now follows my own style that complements that of Adwaita, " 52 | "called Solo." 53 | msgstr "变更:UI 现在遵循我自己的风格,与 Adwaita 的风格相辅相成,称为 Solo。" 54 | 55 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:63 56 | msgid "Release: Second" 57 | msgstr "发布:秒" 58 | 59 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:65 60 | msgid "" 61 | "Changed: The UI colors, they are now way less in your face yet are still " 62 | "colored. The Logs are now stylized like cards." 63 | msgstr "变更:UI 颜色,它们现在不再那么碍眼,但仍然是彩色的。记录现在使用卡片风格。" 64 | 65 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:71 66 | msgid "Release: Nanosecond" 67 | msgstr "发布:纳秒" 68 | 69 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:73 70 | msgid "" 71 | "Removed: each log's delete button, as they would be accidentally clicked and " 72 | "would remove the log." 73 | msgstr "移除:每个记录的删除按钮,因为它们会被意外点击导致记录被删除。" 74 | 75 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:79 76 | msgid "Release: Leap Year" 77 | msgstr "发布:闰年" 78 | 79 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:81 80 | msgid "" 81 | "Added: Logs now have tags! Add tags in the new entry below log name, by " 82 | "specifying them with colons, like this: \"tag1:tag2:tag3\"." 83 | msgstr "新增:记录现在拥有了标签!在记录名称下面的新输入框添加标签,用冒号指定标签,像这样:\"tag1:tag2:tag3\"。" 84 | 85 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:87 86 | msgid "Release: Tick Tock Clock" 87 | msgstr "发布:滴答时钟" 88 | 89 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:89 90 | msgid "Changed: UI now sports an experimental design." 91 | msgstr "变更:UI 现在采用了实验性设计。" 92 | 93 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:90 94 | msgid "Changed: A robust backend rewrite." 95 | msgstr "变更:一次强大的后端重写。" 96 | 97 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:96 98 | msgid "Release: UI Refreshments" 99 | msgstr "发布:UI 换貌" 100 | 101 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:98 102 | msgid "Changed: The UI is now with a better layout." 103 | msgstr "变更:现在 UI 拥有更好的布局。" 104 | 105 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:104 106 | msgid "Release: Port to GTK4" 107 | msgstr "发布:移植到 GTK4" 108 | 109 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:106 110 | msgid "Changed: Rewritten for GTK4." 111 | msgstr "变更:为 GTK4 重写。" 112 | 113 | #: data/io.github.lainsce.Khronos.desktop.in:3 114 | msgid "Khronos" 115 | msgstr "Khronos" 116 | 117 | #: data/io.github.lainsce.Khronos.desktop.in:4 118 | msgid "Track each task time in a simple inobtrusive way" 119 | msgstr "以一种简单而不引人注目的方式跟踪每个任务时间" 120 | 121 | #: data/io.github.lainsce.Khronos.desktop.in:7 122 | msgid "Plot;Planning;Time Tracking;" 123 | msgstr "策划;计划;时间跟踪;" 124 | 125 | #: data/io.github.lainsce.Khronos.gschema.xml:5 126 | msgid "Migration Version" 127 | msgstr "迁移版本" 128 | 129 | #: data/io.github.lainsce.Khronos.gschema.xml:6 130 | msgid "The version of migration to use; Do not change." 131 | msgstr "迁移所使用的版本;不要修改。" 132 | 133 | #: data/io.github.lainsce.Khronos.gschema.xml:10 134 | msgid "Delay between notifications" 135 | msgstr "通知之间的延迟" 136 | 137 | #: data/io.github.lainsce.Khronos.gschema.xml:11 138 | msgid "The delay between two notifications, default is 30min. in seconds." 139 | msgstr "两个通知之间的延迟,默认为30分钟。单位为秒。" 140 | 141 | #: data/ui/main_window.ui:6 142 | msgid "Export Logs as CSV…" 143 | msgstr "将记录保存至 CSV…" 144 | 145 | #: data/ui/main_window.ui:10 146 | msgid "Import Logs from CSV…" 147 | msgstr "从 CSV 中导入记录…" 148 | 149 | #: data/ui/main_window.ui:16 150 | msgid "About Khronos" 151 | msgstr "关于 Khronos" 152 | 153 | #: data/ui/main_window.ui:52 154 | msgid "• events" 155 | msgstr "• 个事件" 156 | 157 | #: data/ui/main_window.ui:88 158 | msgid "Log name…" 159 | msgstr "记录名称…" 160 | 161 | #: data/ui/main_window.ui:96 162 | msgid "Tags (separated by colons)…" 163 | msgstr "标签(用冒号分割)…" 164 | 165 | #: data/ui/main_window.ui:189 src/MainWindow.vala:188 src/MainWindow.vala:201 166 | msgid "Starts the timer for a log" 167 | msgstr "为该记录开始计时器" 168 | 169 | #: data/ui/main_window.ui:200 170 | msgid "Stops the timer for a log" 171 | msgstr "为该记录停止计时器" 172 | 173 | #: data/ui/main_window.ui:207 174 | msgid "Resets the timer" 175 | msgstr "重置计时器" 176 | 177 | #: data/ui/main_window.ui:214 178 | msgid "Adds a log to the list" 179 | msgstr "添加记录到列表" 180 | 181 | #: data/ui/main_window.ui:229 182 | msgid "Cleans the logs list" 183 | msgstr "清除记录列表" 184 | 185 | #: src/MainWindow.vala:154 186 | msgid "Pauses the timer for a log" 187 | msgstr "为该记录暂停计时器" 188 | 189 | #: src/MainWindow.vala:232 190 | msgid "events" 191 | msgstr "个事件" 192 | 193 | #: src/MainWindow.vala:433 194 | msgid "Go rest for a while before continuing." 195 | msgstr "继续之前先休息一下吧。" 196 | 197 | #: src/MainWindow.vala:442 198 | msgid "Maybe grab a snack before continuing." 199 | msgstr "也许在继续之前拿些零食也不错。" 200 | 201 | #: src/MainWindow.vala:451 202 | msgid "Perhaps go get some coffee or tea before continuing." 203 | msgstr "在继续之前或许可以去弄些咖啡或者茶。" 204 | 205 | #: src/MainWindow.vala:460 206 | msgid "That's a big task. Let's rest a bit before continuing." 207 | msgstr "真是个大任务啊。先休息一下吧。" 208 | 209 | #: src/MainWindow.vala:469 210 | msgid "Amazing work! But please rest a bit before continuing." 211 | msgstr "干得漂亮!但在你继续工作前先休息一下吧。" 212 | 213 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 214 | msgid "CSV files" 215 | msgstr "CSV 文件" 216 | 217 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 218 | msgid "All files" 219 | msgstr "所有文件" 220 | 221 | #: src/ViewModels/LogViewModel.vala:50 222 | msgid "Clear Logs?" 223 | msgstr "清除记录?" 224 | 225 | #: src/ViewModels/LogViewModel.vala:51 226 | msgid "Clearing means the logs here will be permanently lost with no recovery." 227 | msgstr "清除意味着这里的记录都会永久丢失且无法还原。" 228 | 229 | #: src/ViewModels/LogViewModel.vala:52 230 | msgid "Cancel" 231 | msgstr "取消" 232 | 233 | #: src/ViewModels/LogViewModel.vala:53 234 | msgid "Clear" 235 | msgstr "清除" 236 | -------------------------------------------------------------------------------- /po/pt_BR.po: -------------------------------------------------------------------------------- 1 | # Brazilian Portuguese translation for io.github.lainsce.Khronos package 2 | # Copyright (C) 2019-2021 Paulo "Lains" Galardi 3 | # This file is distributed under the same license as the io.github.lainsce.Khronos package. 4 | # Gustavo Costa , 2021. 5 | # Tiago Lucas Flach , 2023. 6 | # 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: io.github.lainsce.Khronos\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2023-10-31 00:23-0300\n" 12 | "PO-Revision-Date: 2023-10-31 00:51-0300\n" 13 | "Last-Translator: Tiago Lucas Flach \n" 14 | "Language-Team: \n" 15 | "Language: pt_BR\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" 20 | "X-Generator: Poedit 3.4\n" 21 | 22 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:7 23 | msgid "Log the time it took to do tasks" 24 | msgstr "Registre o tempo que levou para realizar as tarefas" 25 | 26 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:9 27 | msgid "" 28 | "Start logging any task's time to completion, with the ability to stop the " 29 | "timer at any moment, with notifications for longer task sessions." 30 | msgstr "" 31 | "Comece a registrar o tempo para conclusão de qualquer tarefa, com a " 32 | "capacidade de parar o cronômetro a qualquer momento, com notificações para " 33 | "sessões de tarefas mais longas." 34 | 35 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:11 36 | msgid "Quit anytime with the shortcut Ctrl + Q" 37 | msgstr "Saia a qualquer momento com o atalho Ctrl + Q" 38 | 39 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:48 40 | msgid "Release: Day 2" 41 | msgstr "Lançamento: Dia 2" 42 | 43 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:50 44 | msgid "Changed: Overall refinements to match the updated looks of GNOME apps." 45 | msgstr "" 46 | "Alterado: Refinamentos gerais para combinar com a aparência atualizada dos " 47 | "aplicativos GNOME." 48 | 49 | #: data/io.github.lainsce.Khronos.desktop.in:3 50 | msgid "Khronos" 51 | msgstr "Khronos" 52 | 53 | #: data/io.github.lainsce.Khronos.desktop.in:4 54 | msgid "Track each task time in a simple inobtrusive way" 55 | msgstr "Monitore o tempo de cada tarefa de uma forma simples e discreta" 56 | 57 | #: data/io.github.lainsce.Khronos.desktop.in:7 58 | msgid "Plot;Planning;Time Tracking;" 59 | msgstr "Plot;Planejamento;Controle de Tempo;" 60 | 61 | #: data/io.github.lainsce.Khronos.gschema.xml:5 62 | msgid "Migration Version" 63 | msgstr "Versão de migração" 64 | 65 | #: data/io.github.lainsce.Khronos.gschema.xml:6 66 | msgid "The version of migration to use; Do not change." 67 | msgstr "A versão da migração a ser usada; Não altere." 68 | 69 | #: data/io.github.lainsce.Khronos.gschema.xml:10 70 | msgid "Delay between notifications" 71 | msgstr "Atraso entre notificações" 72 | 73 | #: data/io.github.lainsce.Khronos.gschema.xml:11 74 | msgid "The delay between two notifications, default is 30min. in seconds." 75 | msgstr "O atraso entre duas notificações, o padrão é 30min. em segundos." 76 | 77 | #: data/ui/main_window.ui:6 78 | msgid "Export Logs as CSV…" 79 | msgstr "Exportar registros como CSV…" 80 | 81 | #: data/ui/main_window.ui:10 82 | msgid "Import Logs from CSV…" 83 | msgstr "Importar registros de CSV…" 84 | 85 | #: data/ui/main_window.ui:16 86 | msgid "About Khronos" 87 | msgstr "Sobre o Khronos" 88 | 89 | #: data/ui/main_window.ui:58 90 | msgid "• events" 91 | msgstr "• eventos" 92 | 93 | #: data/ui/main_window.ui:70 94 | msgid "Timer" 95 | msgstr "Cronômetro" 96 | 97 | #: data/ui/main_window.ui:94 98 | msgid "Log name…" 99 | msgstr "Nome do registro…" 100 | 101 | #: data/ui/main_window.ui:102 102 | msgid "Tags (split by colons)…" 103 | msgstr "Tags (divididas por dois pontos)…" 104 | 105 | #: data/ui/main_window.ui:144 106 | msgid "Logs" 107 | msgstr "Registros" 108 | 109 | #: data/ui/main_window.ui:195 src/MainWindow.vala:191 src/MainWindow.vala:205 110 | msgid "Starts the timer for a log" 111 | msgstr "Inicia o cronômetro para um registro" 112 | 113 | #: data/ui/main_window.ui:209 114 | msgid "Stops the timer for a log" 115 | msgstr "Parar o cronômetro para um registro" 116 | 117 | #: data/ui/main_window.ui:220 118 | msgid "Resets the timer" 119 | msgstr "Reinicia o cronômetro" 120 | 121 | #: data/ui/main_window.ui:231 122 | msgid "Adds a log to the list" 123 | msgstr "Adiciona um registro à lista" 124 | 125 | #: data/ui/main_window.ui:248 126 | msgid "Cleans the logs list" 127 | msgstr "Limpa a lista de registros" 128 | 129 | #: src/MainWindow.vala:142 src/MainWindow.vala:235 src/MainWindow.vala:303 130 | #: src/MainWindow.vala:317 131 | msgid "events" 132 | msgstr "eventos" 133 | 134 | #: src/MainWindow.vala:157 135 | msgid "Pauses the timer for a log" 136 | msgstr "Pausa o cronômetro para um registro" 137 | 138 | #. TRANSLATORS: 'Name ' or 'Name https://website.example' 139 | #: src/MainWindow.vala:359 140 | msgid "translator-credits" 141 | msgstr "" 142 | "Gustavo Costa \n" 143 | "Tiago Lucas Flach " 144 | 145 | #: src/MainWindow.vala:450 146 | msgid "Go rest for a while before continuing." 147 | msgstr "Descanse um pouco antes de continuar." 148 | 149 | #: src/MainWindow.vala:459 150 | msgid "Maybe grab a snack before continuing." 151 | msgstr "Talvez faça um lanche antes de continuar." 152 | 153 | #: src/MainWindow.vala:468 154 | msgid "Perhaps go get some coffee or tea before continuing." 155 | msgstr "Talvez vá tomar um café ou chá antes de continuar." 156 | 157 | #: src/MainWindow.vala:477 158 | msgid "That's a big task. Let's rest a bit before continuing." 159 | msgstr "Essa é uma grande tarefa. Vamos descansar um pouco antes de continuar." 160 | 161 | #: src/MainWindow.vala:486 162 | msgid "Amazing work! But please rest a bit before continuing." 163 | msgstr "Ótimo trabalho! Mas por favor descanse um pouco antes de continuar." 164 | 165 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 166 | msgid "CSV files" 167 | msgstr "Arquivos CSV" 168 | 169 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 170 | msgid "All files" 171 | msgstr "Todos os arquivos" 172 | 173 | #: src/ViewModels/LogViewModel.vala:50 174 | msgid "Clear Logs?" 175 | msgstr "Limpar registros?" 176 | 177 | #: src/ViewModels/LogViewModel.vala:51 178 | msgid "Clearing means the logs here will be permanently lost with no recovery." 179 | msgstr "" 180 | "Esvaziar esta lista significa que os registros nela contidos serão perdidos " 181 | "permanentemente, sem recuperação." 182 | 183 | #: src/ViewModels/LogViewModel.vala:52 184 | msgid "Cancel" 185 | msgstr "Cancelar" 186 | 187 | #: src/ViewModels/LogViewModel.vala:53 188 | msgid "Clear" 189 | msgstr "Limpar" 190 | 191 | #~ msgid "Lains" 192 | #~ msgstr "Lains" 193 | 194 | #~ msgid "Release: UI Refreshments" 195 | #~ msgstr "Lançamento: atualizações da interface do usuário" 196 | 197 | #~ msgid "Changed: The UI is now with a better layout." 198 | #~ msgstr "Alterado: a UI agora está com um layout melhor." 199 | 200 | #~ msgid "Release: Port to GTK4" 201 | #~ msgstr "Lançamento: Mudança para GTK4" 202 | 203 | #~ msgid "Changed: Rewritten for GTK4." 204 | #~ msgstr "Alterado: Reescrito para GTK4." 205 | 206 | #~ msgid "Removes all logs from the list" 207 | #~ msgstr "Remove todos os registros da lista" 208 | 209 | #~ msgid "No Logs" 210 | #~ msgstr "Sem registros" 211 | 212 | #~ msgid "Add a log on Timer tab and check later." 213 | #~ msgstr "Adicione um registro na guia Cronômetro e verifique mais tarde." 214 | 215 | #~ msgid "Empty List" 216 | #~ msgstr "Lista vazia" 217 | 218 | #~ msgid "Track each task's time in a simple inobtrusive way." 219 | #~ msgstr "Monitore o tempo de cada tarefa de uma forma simples e discreta." 220 | -------------------------------------------------------------------------------- /data/icons/io.github.lainsce.Khronos.Devel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /po/es.po: -------------------------------------------------------------------------------- 1 | # Spanish translation. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the io.github.lainsce.Khronos package. 4 | # Óscar Fernández Díaz , 2021. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: io.github.lainsce.Khronos\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2022-02-09 21:03+0100\n" 11 | "PO-Revision-Date: 2022-02-09 21:04+0100\n" 12 | "Last-Translator: Óscar Fernández Díaz \n" 13 | "Language-Team: \n" 14 | "Language: es\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | "X-Generator: Poedit 3.0.1\n" 20 | 21 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:7 22 | msgid "Log the time it took to do tasks" 23 | msgstr "Registre el tiempo que ha tardado en realizar las tareas" 24 | 25 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:9 26 | msgid "" 27 | "Start logging any task's time to completion, with the ability to stop the " 28 | "timer at any moment, with notifications for longer task sessions." 29 | msgstr "" 30 | "Comience a registrar el tiempo de cualquier tarea hasta su finalización, con " 31 | "la posibilidad de detener el temporizador en cualquier momento, con " 32 | "notificaciones para las sesiones de tareas más largas." 33 | 34 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:11 35 | msgid "Quit anytime with the shortcut Ctrl + Q" 36 | msgstr "Salir en cualquier momento con el atajo Ctrl + Q" 37 | 38 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:47 39 | msgid "Release: Second" 40 | msgstr "Versión: Segundo" 41 | 42 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:49 43 | msgid "" 44 | "Changed: The UI colors, they are now way less in your face yet are still " 45 | "colored. The Logs are now stylized like cards." 46 | msgstr "" 47 | "Cambiado: Los colores de la interfaz de usuario, ahora son menos llamativos " 48 | "pero siguen siendo de color. Los registros están ahora estilizados como " 49 | "tarjetas." 50 | 51 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:55 52 | msgid "Release: Nanosecond" 53 | msgstr "Versión: Nanosegundo" 54 | 55 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:57 56 | msgid "" 57 | "Removed: each log's delete button, as they would be accidentally clicked and " 58 | "would remove the log." 59 | msgstr "" 60 | "Eliminado: el botón de borrado de cada registro, ya que al ser pulsado " 61 | "accidentalmente eliminaba el registro." 62 | 63 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:63 64 | msgid "Release: Leap Year" 65 | msgstr "Versión: Año bisiesto" 66 | 67 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:65 68 | msgid "" 69 | "Added: Logs now have tags! Add tags in the new entry below log name, by " 70 | "specifying them with colons, like this: \"tag1:tag2:tag3\"." 71 | msgstr "" 72 | "Añadido: ¡Los registros ahora tienen etiquetas! Añada etiquetas en la " 73 | "entrada nueva debajo del nombre del registro, especificándolas con dos " 74 | "puntos, así \"etiqueta1:etiqueta2:etiqueta3\"." 75 | 76 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:71 77 | msgid "Release: Tick Tock Clock" 78 | msgstr "Versión: Reloj Tick Tock" 79 | 80 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:73 81 | msgid "Changed: UI now sports an experimental design." 82 | msgstr "Cambiado: La interfaz de usuario tiene ahora un diseño experimental." 83 | 84 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:74 85 | msgid "Changed: A robust backend rewrite." 86 | msgstr "Cambiado: Una robusta reescritura del código." 87 | 88 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:80 89 | msgid "Release: UI Refreshments" 90 | msgstr "Versión: Actualizaciones de la interfaz de usuario" 91 | 92 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:82 93 | msgid "Changed: The UI is now with a better layout." 94 | msgstr "Cambiado: La interfaz de usuario tiene ahora un mejor diseño." 95 | 96 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:88 97 | msgid "Release: Port to GTK4" 98 | msgstr "Versión: Portado a GTK4" 99 | 100 | #: data/io.github.lainsce.Khronos.metainfo.xml.in:90 101 | msgid "Changed: Rewritten for GTK4." 102 | msgstr "Cambiado: Reescrito para GTK4." 103 | 104 | #: data/io.github.lainsce.Khronos.desktop.in:3 105 | msgid "Khronos" 106 | msgstr "Khronos" 107 | 108 | #: data/io.github.lainsce.Khronos.desktop.in:4 109 | msgid "Track each task time in a simple inobtrusive way" 110 | msgstr "Controla el tiempo de cada tarea de forma sencilla y no intrusiva" 111 | 112 | #: data/io.github.lainsce.Khronos.desktop.in:7 113 | msgid "Plot;Planning;Time Tracking;" 114 | msgstr "Plot;Planning;Time Tracking;Plan;Tiempo;" 115 | 116 | #: data/io.github.lainsce.Khronos.gschema.xml:5 117 | msgid "Migration Version" 118 | msgstr "Versión de migración" 119 | 120 | #: data/io.github.lainsce.Khronos.gschema.xml:6 121 | msgid "The version of migration to use; Do not change." 122 | msgstr "La versión de migración a usar; No cambiar." 123 | 124 | #: data/io.github.lainsce.Khronos.gschema.xml:10 125 | msgid "Delay between notifications" 126 | msgstr "Retardo entre notificaciones" 127 | 128 | #: data/io.github.lainsce.Khronos.gschema.xml:11 129 | msgid "The delay between two notifications, default is 30min. in seconds." 130 | msgstr "" 131 | "El retardo entre dos notificaciones, el predeterminado es 30min. en segundos." 132 | 133 | #: data/ui/main_window.ui:6 134 | msgid "Export Logs as CSV…" 135 | msgstr "Exportar registros como CSV…" 136 | 137 | #: data/ui/main_window.ui:10 138 | msgid "Import Logs from CSV…" 139 | msgstr "Importar registros desde CSV…" 140 | 141 | #: data/ui/main_window.ui:16 142 | msgid "About Khronos" 143 | msgstr "Acerca de Khronos" 144 | 145 | #: data/ui/main_window.ui:51 146 | msgid "Timer" 147 | msgstr "Temporizador" 148 | 149 | #: data/ui/main_window.ui:84 150 | msgid "Log name…" 151 | msgstr "Nombre del registro…" 152 | 153 | #: data/ui/main_window.ui:92 154 | msgid "Tags (separated by colons)…" 155 | msgstr "Etiquetas (separadas por dos puntos)…" 156 | 157 | #: data/ui/main_window.ui:114 158 | msgid "Adds a log to the list" 159 | msgstr "Añade un registro a la lista" 160 | 161 | #: data/ui/main_window.ui:125 src/MainWindow.vala:127 162 | msgid "Starts the timer for a log" 163 | msgstr "Inicia el temporizador para un registro" 164 | 165 | #: data/ui/main_window.ui:141 166 | msgid "Logs" 167 | msgstr "Registros" 168 | 169 | #: data/ui/main_window.ui:164 170 | msgid "Removes all logs from the list" 171 | msgstr "Elimina todos los registros de la lista" 172 | 173 | #: src/MainWindow.vala:119 174 | msgid "Stops the timer for a log" 175 | msgstr "Detiene el temporizador para un registro" 176 | 177 | #: src/MainWindow.vala:219 178 | msgid "Track each task's time in a simple inobtrusive way." 179 | msgstr "Controle el tiempo de cada tarea de forma sencilla y no intrusiva." 180 | 181 | #. TRANSLATORS: 'Name ' or 'Name https://website.example' 182 | #: src/MainWindow.vala:226 183 | msgid "translator-credits" 184 | msgstr "Óscar Fernández Díaz " 185 | 186 | #: src/MainWindow.vala:315 187 | msgid "Go rest for a while before continuing." 188 | msgstr "Descanse un rato antes de continuar." 189 | 190 | #: src/MainWindow.vala:324 191 | msgid "Maybe grab a snack before continuing." 192 | msgstr "Tal vez pueda tomar un aperitivo antes de continuar." 193 | 194 | #: src/MainWindow.vala:333 195 | msgid "Perhaps go get some coffee or tea before continuing." 196 | msgstr "Quizás pueda ir a tomar un café o un té antes de continuar." 197 | 198 | #: src/MainWindow.vala:342 199 | msgid "That's a big task. Let's rest a bit before continuing." 200 | msgstr "Es una gran tarea. Descanse un poco antes de continuar." 201 | 202 | #: src/MainWindow.vala:351 203 | msgid "Amazing work! But please rest a bit before continuing." 204 | msgstr "" 205 | "¡Increíble trabajo! Pero por favor, descanse un poco antes de continuar." 206 | 207 | #: src/Services/Dialog.vala:23 src/Services/Dialog.vala:44 208 | msgid "CSV files" 209 | msgstr "Archivos CSV" 210 | 211 | #: src/Services/Dialog.vala:27 src/Services/Dialog.vala:48 212 | msgid "All files" 213 | msgstr "Todos los archivos" 214 | 215 | #: src/ViewModels/LogViewModel.vala:53 216 | msgid "Clear Logs?" 217 | msgstr "¿Eliminar los registros?" 218 | 219 | #: src/ViewModels/LogViewModel.vala:54 220 | msgid "Clearing means the logs here will be permanently lost with no recovery." 221 | msgstr "Los registros aquí se perderán permanentemente sin recuperación." 222 | 223 | #: src/ViewModels/LogViewModel.vala:56 224 | msgid "Cancel" 225 | msgstr "Cancelar" 226 | 227 | #: src/ViewModels/LogViewModel.vala:57 228 | msgid "Clear" 229 | msgstr "Eliminar" 230 | --------------------------------------------------------------------------------