From 864d961a3c4ef30dfe290029b8abf68ee16ded19 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Thu, 21 Jul 2022 10:04:37 +0200 Subject: [PATCH 01/83] chore(flatpak): update blueprint-compiler to 0.2 fixes #167 --- data/ui/password_entry.blp | 1 - dev.Cogitri.Health.Devel.json | 2 +- subprojects/blueprint-compiler.wrap | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/data/ui/password_entry.blp b/data/ui/password_entry.blp index 81be597..6fefbb4 100644 --- a/data/ui/password_entry.blp +++ b/data/ui/password_entry.blp @@ -67,7 +67,6 @@ template HealthPasswordEntry : Adw.Bin { } LevelBar password_strength_bar { - max-value: 5; mode: discrete; margin-start: 6; margin-end: 6; diff --git a/dev.Cogitri.Health.Devel.json b/dev.Cogitri.Health.Devel.json index d95324f..f803236 100644 --- a/dev.Cogitri.Health.Devel.json +++ b/dev.Cogitri.Health.Devel.json @@ -51,7 +51,7 @@ { "type": "git", "url": "https://gitlab.gnome.org/jwestman/blueprint-compiler", - "commit": "93f2a27e35905420e70bfdb5c2f04d6af43b357d" + "commit": "87cedc2c7e48b01dc1b07aef937e2fe02111b18c" } ] }, diff --git a/subprojects/blueprint-compiler.wrap b/subprojects/blueprint-compiler.wrap index 142ed4b..ba837c0 100644 --- a/subprojects/blueprint-compiler.wrap +++ b/subprojects/blueprint-compiler.wrap @@ -1,7 +1,7 @@ [wrap-git] directory = blueprint-compiler url = https://gitlab.gnome.org/jwestman/blueprint-compiler.git -revision = 93f2a27e35905420e70bfdb5c2f04d6af43b357d +revision = 87cedc2c7e48b01dc1b07aef937e2fe02111b18c depth = 1 [provide] -- 2.40.1 From d9236232f66f0c4bbd5173078d0cab57bf2a9d2a Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Thu, 21 Jul 2022 10:18:11 +0200 Subject: [PATCH 02/83] chore(cargo): add metadata --- Cargo.toml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index fe43ce4..cd5e79b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,6 +4,17 @@ version = "0.94.0" edition = "2021" license = "GPL-3.0-or-later" rust-version = "1.58" +authors = ["Rasmus Thomsen "] +description = "Track your fitness goals" +documentation = "https://world.pages.gitlab.gnome.org/Health/libhealth" +readme = "README.md" +homepage = "https://gitlab.gnome.org/World/Health" +repository = "https://gitlab.gnome.org/World/Health" +keywords = ["gnome", "health", "gtk"] +categories = ["visualization", "gui"] + +[badges] +maintenance = { status = "actively-developed" } [lib] name = "libhealth" -- 2.40.1 From 60579a6ffc63033e43b32fa2f97e7415e0245a3b Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Thu, 21 Jul 2022 18:02:24 +0200 Subject: [PATCH 03/83] fix(import_dialog|export_dialog): report error when no file has been selected fixes #141 --- src/windows/export_dialog.rs | 4 ++-- src/windows/import_dialog.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/windows/export_dialog.rs b/src/windows/export_dialog.rs index 2a0675c..9ae8460 100644 --- a/src/windows/export_dialog.rs +++ b/src/windows/export_dialog.rs @@ -72,7 +72,7 @@ mod imp { let handler = CsvHandler::new(); send.resolve(handler.export_activities_csv(&file, pass.as_deref()).await) } else { - send.resolve(Ok(())) + send.resolve(Err(anyhow::anyhow!(i18n("No file selected.")))) } }); })) @@ -106,7 +106,7 @@ mod imp { let handler = CsvHandler::new(); send.resolve(handler.export_weights_csv(&file, pass.as_deref()).await) } else { - send.resolve(Ok(())) + send.resolve(Err(anyhow::anyhow!(i18n("No file selected.")))) } }); })) diff --git a/src/windows/import_dialog.rs b/src/windows/import_dialog.rs index 5915e96..62fff36 100644 --- a/src/windows/import_dialog.rs +++ b/src/windows/import_dialog.rs @@ -65,7 +65,7 @@ mod imp { let handler = CsvHandler::new(); send.resolve(handler.import_activities_csv(&file, pass.as_deref()).await) } else { - send.resolve(Ok(())) + send.resolve(Err(anyhow::anyhow!(i18n("No file selected.")))); } }); })) @@ -94,7 +94,7 @@ mod imp { let handler = CsvHandler::new(); send.resolve(handler.import_weights_csv(&file, pass.as_deref()).await) } else { - send.resolve(Ok(())) + send.resolve(Err(anyhow::anyhow!(i18n("No file selected.")))); } }); })) -- 2.40.1 From ee8881daaa85447d02c0aad9a80d1f3eb533d27b Mon Sep 17 00:00:00 2001 From: Yuri Chornoivan Date: Fri, 22 Jul 2022 06:36:24 +0000 Subject: [PATCH 04/83] Update Ukrainian translation --- po/uk.po | 57 ++++++++++++++------------------------------------------ 1 file changed, 14 insertions(+), 43 deletions(-) diff --git a/po/uk.po b/po/uk.po index 869fbf4..d64d038 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-06 08:12+0000\n" -"PO-Revision-Date: 2022-07-07 19:42+0300\n" +"POT-Creation-Date: 2022-07-21 16:28+0000\n" +"PO-Revision-Date: 2022-07-22 09:35+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -70,9 +70,6 @@ msgid "List of recent activity types" msgstr "Список типів нещодавньої фізичної діяльності" #: data/dev.Cogitri.Health.gschema.xml:42 -#| msgid "" -#| "Activity types the user used recently, to be shown first in the activity " -#| "types selector's list" msgid "" "Activity types the user used recently, to be shown first in the activity " "types selector’s list" @@ -185,22 +182,16 @@ msgid "Track your fitness goals" msgstr "Керуйте вашими цілями у фітнесі" #: data/dev.Cogitri.Health.metainfo.xml.in.in:11 -#| msgid "" -#| "A health tracking app for the GNOME desktop. Health can visualize how " -#| "many steps you've made daily, your weight development over time and your " -#| "daily activities. Data can be synched from Google Fit or manually entered " -#| "into Health. Afterwards, it can be viewed and edited in Health." msgid "" "Health can visualize how many steps you’ve made daily, your weight " "development over time and your daily activities. Data can be synched from " "Google Fit or manually entered into Health. Afterwards, it can be viewed and " "edited in Health." msgstr "" -"«Здоров'я» може " -"візуалізувати кількість кроків, які ви виконуєте щодня, динаміку вашої ваги " -"та ваші щоденні фізичні вправи. Дані може бути синхронізовано із Google Fit " -"або введено вручну до «Здоров'я». Після цього, дані можна буде переглядати і " -"редагувати у «Здоров'ї»." +"«Здоров'я» може візуалізувати кількість кроків, які ви виконуєте щодня, " +"динаміку вашої ваги та ваші щоденні фізичні вправи. Дані може бути " +"синхронізовано із Google Fit або введено вручну до «Здоров'я». Після цього, " +"дані можна буде переглядати і редагувати у «Здоров'ї»." #: data/dev.Cogitri.Health.metainfo.xml.in.in:36 msgid "Rasmus “Cogitri” Thomsen" @@ -497,7 +488,6 @@ msgid "Please enter your weight goal." msgstr "Будь ласка, введіть значення цільової ваги." #: data/ui/setup_window.blp:286 -#| msgid "The WHO recommends a BMI of 18.5-24.9." msgid "The WHO recommends a BMI of 18.5–24.9." msgstr "Рекомендованим ВОЗ значенням ІМТ є від 18,5 до 24,9." @@ -603,15 +593,15 @@ msgstr "_Про «Здоров'я»" msgid "Enable plugin" msgstr "Увімкнути додаток" -#: src/core/application.rs:169 +#: src/core/application.rs:175 msgid "A health tracking app for the GNOME desktop." msgstr "Програма стеження за станом здоров'я для стільниці GNOME." -#: src/core/application.rs:171 +#: src/core/application.rs:177 msgid "translator-credits" msgstr "Юрій Чорноіван , 2021" -#: src/core/application.rs:173 +#: src/core/application.rs:179 msgid "Websites" msgstr "Сайти" @@ -756,7 +746,6 @@ msgstr[2] "Сьогодні спалено {} калорій" msgstr[3] "Сьогодні спалено {} калорію" #: src/plugins/steps/details.rs:186 -#| msgid "Today's steps: {}" msgid "Today’s steps: {}" msgstr "Сьогодні кроків: {}" @@ -768,10 +757,6 @@ msgstr "" "до форми!" #: src/plugins/steps/details.rs:205 -#| msgid "" -#| "You're on a streak for {} day. Reach your step goal today to continue it!" -#| msgid_plural "" -#| "You're on a streak for {} days. Reach your step goal today to continue it!" msgid "" "You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" @@ -790,14 +775,11 @@ msgstr[3] "" "кроків, щоб продовжити перебувати у формі!" #: src/plugins/steps/details.rs:213 -#| msgid "You've reached your step goal today. Keep going to start a streak!" msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "" "Сьогодні ви досягли цільової кількості кроків. Продовжуйте, щоб бути у формі!" #: src/plugins/steps/details.rs:216 -#| msgid "You're on a streak for {} day. Good job!" -#| msgid_plural "You're on a streak for {} days. Good job!" msgid "You’re on a streak for {} day. Good job!" msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Ви у формі уже {} день. Поздоровляємо!" @@ -901,7 +883,6 @@ msgstr[3] "" "наскільки близько ви до досягнення цільової ваги." #: src/plugins/weight/details.rs:284 -#| msgid "You've reached your weight goal. Great job!" msgid "You’ve reached your weight goal. Great job!" msgstr "Вами досягнуто цільової ваги. Поздоровляємо!" @@ -938,7 +919,6 @@ msgstr[2] "Вам лишилося {} кілограмів до досягнен msgstr[3] "Вам лишився {} кілограм до досягнення бажаного результату" #: src/plugins/weight/details.rs:328 -#| msgid "No weight goal set yet. You can set it in Health's preferences." msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" "Цільової ваги ще не встановлено. Ви можете встановити її у налаштуваннях " @@ -1001,28 +981,22 @@ msgid "No weight data available" msgstr "Немає доступних даних щодо ваги" #: src/sync/csv.rs:81 src/sync/csv.rs:370 -#| msgid "No activities added yet; can't create empty export!" msgid "No activities added yet; can’t create empty export!" msgstr "" "Записів фізичної активності ще не додано. Не можна експортувати порожній " "набір даних!" #: src/sync/csv.rs:111 src/sync/csv.rs:388 -#| msgid "No weight measurements added yet; can't create empty export!" msgid "No weight measurements added yet; can’t create empty export!" msgstr "" "Записів ваги ще не додано. Не можна експортувати порожній набір даних!" #: src/sync/csv.rs:184 src/sync/csv.rs:332 -#| msgid "Can't parse encrypted backup without encryption key!" msgid "Can’t parse encrypted backup without encryption key!" msgstr "" "Обробка даних зашифрованої резервної копії без ключа шифрування неможлива!" #: src/sync/csv.rs:195 src/sync/csv.rs:352 -#| msgid "" -#| "Couldn't parse CSV. Are you trying to read an unencrypted backup as an " -#| "encrypted one?" msgid "" "Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " "encrypted one?" @@ -1031,17 +1005,14 @@ msgstr "" "як зашифровану?" #: src/sync/csv.rs:208 -#| msgid "Couldn't decrypt data. Are you sure you're using the right key?" msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" msgstr "Не вдалося розшифрувати дані. Ви певні, що використано належний ключ?" #: src/sync/database_receiver.rs:46 -#| msgid "Couldn't synchronize steps due to error {}" msgid "Couldn’t synchronize steps due to error {}" msgstr "Не вдалося синхронізувати дані щодо кроків через помилку {}" #: src/sync/database_receiver.rs:60 -#| msgid "Couldn't synchronize weight measurements due to error {}" msgid "Couldn’t synchronize weight measurements due to error {}" msgstr "Не вдалося синхронізувати дані щодо вимірів ваги через помилку {}" @@ -1054,9 +1025,6 @@ msgid "Requesting OAuth2 token failed due to error {}" msgstr "Не вдалося здійснити запит щодо жетона OAuth2 через помилку {}" #: src/sync/sync_provider.rs:109 -#| msgid "" -#| "Can't retrieve OAuth2 token when no refresh token is set! Please re-" -#| "authenticate with your sync provider." msgid "" "Can’t retrieve OAuth2 token when no refresh token is set! Please re-" "authenticate with your sync provider." @@ -1074,7 +1042,6 @@ msgid "Successfully authenticated, please return to Health." msgstr "Розпізнавання пройдено. Будь ласка, поверніться до вікна «Здоров'я»." #: src/sync/sync_provider.rs:228 -#| msgid "Couldn't parse OAuth2 response" msgid "Couldn’t parse OAuth2 response" msgstr "Не вдалося обробити відповідь OAuth2" @@ -1208,6 +1175,11 @@ msgstr "Фізична активність.csv.encrypted" msgid "Activities.csv" msgstr "Фізична активність.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Не вибрано жодного файла." + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "Зберегти вимір ваги" @@ -1277,7 +1249,6 @@ msgid "Failed to migrate database to new version due to error {}" msgstr "Не вдалося перенести базу даних до нової версії через помилку {}" #: src/windows/window.rs:267 -#| msgid "Couldn't sync Google Fit data due to error: {}" msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "Не вдалося синхронізувати дані із Google Fit через помилку: {}" -- 2.40.1 From e31d127b82f4a7a79dcba329f12f0f7b44cd8c2a Mon Sep 17 00:00:00 2001 From: Davide Ferracin Date: Fri, 22 Jul 2022 18:35:19 +0000 Subject: [PATCH 05/83] Update Italian translation --- po/it.po | 653 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 360 insertions(+), 293 deletions(-) diff --git a/po/it.po b/po/it.po index b5e4eb2..b4356db 100644 --- a/po/it.po +++ b/po/it.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-01-05 14:48+0000\n" -"PO-Revision-Date: 2022-01-12 18:18+0100\n" +"POT-Creation-Date: 2022-07-17 18:53+0000\n" +"PO-Revision-Date: 2022-07-20 21:45+0200\n" "Last-Translator: Davide Ferracin \n" "Language-Team: Italian \n" "Language: it\n" @@ -70,7 +70,7 @@ msgstr "Lista dei tipi di attività recenti" #: data/dev.Cogitri.Health.gschema.xml:42 msgid "" "Activity types the user used recently, to be shown first in the activity " -"types selector's list" +"types selector’s list" msgstr "" "I tipi di attività che l'utente ha usato recentemente, da mostrare per primi " "nella lista di selezione dei tipi di attività" @@ -167,181 +167,150 @@ msgstr "Larghezza della finestra" msgid "The width of the window." msgstr "La larghezza della finestra." -#: data/dev.Cogitri.Health.Daemon.desktop.in.in:3 src/daemon/main.rs:28 -msgid "Health Daemon" -msgstr "Daemon di Salute" - +#: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 -#: data/dev.Cogitri.Health.metainfo.xml.in.in:4 data/ui/window.ui:51 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:4 data/ui/window.blp:37 #: src/main.rs:31 msgid "Health" msgstr "Salute" -#: data/dev.Cogitri.Health.desktop.in.in:5 -msgid "@APPLICATION_ID@" -msgstr "@APPLICATION_ID@" - -#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 src/core/application.rs:141 -msgid "A health tracking app for the GNOME desktop." -msgstr "Un'applicazione per l'ambiente GNOME per monitorare la salute." +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 +msgid "Track your fitness goals" +msgstr "Tieni traccia dei tuoi obiettivi di forma fisica" #: data/dev.Cogitri.Health.metainfo.xml.in.in:11 msgid "" -"A health tracking app for the GNOME desktop. Health can visualize how many " -"steps you've made daily, your weight development over time and your daily " -"activities." +"Health can visualize how many steps you’ve made daily, your weight " +"development over time and your daily activities. Data can be synched from " +"Google Fit or manually entered into Health. Afterwards, it can be viewed and " +"edited in Health." msgstr "" -"Un'applicazione per l'ambiente GNOME per monitorare la salute. Salute può " -"visualizzare quanti passi vengono compiuti ogni giorno, l'andamento del peso " -"nel tempo e le attività quotidiane." +"Salute può mostrare quanti passi si sono compiuti ogni giorno, l'andamento del " +"proprio peso nel tempo, e le attività quotidiane. I dati possono essere " +"sincronizzati con Google Fit o inseriti manualmente in Salute. Successivamente, " +"possono essere visualizzati e modificati con Salute." -#: data/dev.Cogitri.Health.metainfo.xml.in.in:34 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:36 msgid "Rasmus “Cogitri” Thomsen" msgstr "Rasmus “Cogitri” Thomsen" -#: data/ui/activity_row.ui:70 data/ui/plugins/calories/summary.ui:24 -#: data/ui/view_add_activity.ui:112 -msgid "Calories Burned" -msgstr "Calorie bruciate" - -#: data/ui/activity_row.ui:79 -msgid "Distance in Meters" -msgstr "Distanza in metri" - -#: data/ui/activity_row.ui:88 data/ui/plugins/steps/details.ui:26 -#: data/ui/plugins/steps/summary.ui:24 src/plugins/steps/plugin.rs:39 -msgid "Steps" -msgstr "Passi" - -#: data/ui/activity_row.ui:97 data/ui/view_add_activity.ui:142 -msgid "Average Heart Rate" -msgstr "Battito cardiaco medio" - -#: data/ui/activity_row.ui:106 data/ui/view_add_activity.ui:154 -msgid "Minimum Heart Rate" -msgstr "Battito cardiaco minimo" - -#: data/ui/activity_row.ui:115 data/ui/view_add_activity.ui:166 -msgid "Maximum Heart Rate" -msgstr "Battito cardiaco massimo" - -#: data/ui/data_add_dialog.ui:26 data/ui/preferences_window.ui:72 -msgid "Health Preferences" -msgstr "Preferenze di Salute" - -#: data/ui/data_add_dialog.ui:32 data/ui/import_export_dialog_base.ui:30 +#: data/ui/data_add_dialog.blp:5 data/ui/import_export_dialog_base.blp:5 #: src/windows/export_dialog.rs:53 src/windows/export_dialog.rs:89 #: src/windows/import_dialog.rs:53 src/windows/import_dialog.rs:82 msgid "_Cancel" msgstr "_Annulla" -#: data/ui/data_add_dialog.ui:38 src/windows/export_dialog.rs:52 +#: data/ui/data_add_dialog.blp:10 src/windows/export_dialog.rs:52 #: src/windows/export_dialog.rs:88 msgid "_Save" msgstr "_Salva" -#: data/ui/date_selector.ui:29 +#: data/ui/date_selector.blp:18 msgid "January" msgstr "Gennaio" -#: data/ui/date_selector.ui:30 src/widgets/date_selector.rs:251 +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:223 msgid "February" msgstr "Febbraio" -#: data/ui/date_selector.ui:31 +#: data/ui/date_selector.blp:20 msgid "March" msgstr "Marzo" -#: data/ui/date_selector.ui:32 +#: data/ui/date_selector.blp:21 msgid "April" msgstr "Aprile" -#: data/ui/date_selector.ui:33 +#: data/ui/date_selector.blp:22 msgid "May" msgstr "Maggio" -#: data/ui/date_selector.ui:34 +#: data/ui/date_selector.blp:23 msgid "June" msgstr "Giugno" -#: data/ui/date_selector.ui:35 +#: data/ui/date_selector.blp:24 msgid "July" msgstr "Luglio" -#: data/ui/date_selector.ui:36 +#: data/ui/date_selector.blp:25 msgid "August" msgstr "Agosto" -#: data/ui/date_selector.ui:37 +#: data/ui/date_selector.blp:26 msgid "September" msgstr "Settembre" -#: data/ui/date_selector.ui:38 +#: data/ui/date_selector.blp:27 msgid "October" msgstr "Ottobre" -#: data/ui/date_selector.ui:39 +#: data/ui/date_selector.blp:28 msgid "November" msgstr "Novembre" -#: data/ui/date_selector.ui:40 +#: data/ui/date_selector.blp:29 msgid "December" msgstr "Dicembre" -#: data/ui/date_selector.ui:51 +#: data/ui/date_selector.blp:35 msgid "Day" msgstr "Giorno" -#: data/ui/date_selector.ui:77 +#: data/ui/date_selector.blp:61 msgid "Month" msgstr "Mese" -#: data/ui/date_selector.ui:100 +#: data/ui/date_selector.blp:84 msgid "Year" msgstr "Anno" -#: data/ui/distance_action_row.ui:29 +#: data/ui/distance_action_row.blp:11 src/widgets/activity_row.rs:131 msgid "Distance" msgstr "Distanza" -#: data/ui/import_export_dialog_base.ui:36 +#: data/ui/import_export_dialog_base.blp:10 msgid "_Export" msgstr "_Esporta" -#: data/ui/import_export_dialog_base.ui:84 +#: data/ui/import_export_dialog_base.blp:56 msgid "Export weight measurements" msgstr "Esporta le misure di peso" -#: data/ui/import_export_dialog_base.ui:99 +#: data/ui/import_export_dialog_base.blp:69 msgid "Encrypt export" msgstr "Cifra i dati esportati" -#: data/ui/password_entry.ui:28 +#: data/ui/password_entry.blp:9 msgid "_Password" msgstr "_Password" -#: data/ui/password_entry.ui:59 +#: data/ui/password_entry.blp:40 msgid "_Confirm password" msgstr "_Conferma password" -#: data/ui/plugins/activities/details.ui:24 -#: data/ui/plugins/calories/details.ui:23 data/ui/plugins/steps/details.ui:23 +#: data/ui/plugins/activities/details.blp:5 +#: data/ui/plugins/calories/details.blp:4 data/ui/plugins/steps/details.blp:4 msgid "You can use the + button to add a new activity." msgstr "Usare il pulsante + per aggiungere una nuova attività." -#: data/ui/plugins/activities/details.ui:27 +#: data/ui/plugins/activities/details.blp:8 msgid "Recent Activities" msgstr "Attività recenti" -#: data/ui/plugins/activities/summary.ui:25 data/ui/view_add_activity.ui:129 +#: data/ui/plugins/activities/summary.blp:5 data/ui/view_add_activity.blp:84 msgid "Active Minutes" msgstr "Minuti di attività" -#: data/ui/plugins/calories/details.ui:26 src/plugins/calories/plugin.rs:39 +#: data/ui/plugins/calories/details.blp:7 src/plugins/calories/plugin.rs:39 msgid "Calories" msgstr "Calorie" -#: data/ui/plugins/details.ui:93 +#: data/ui/plugins/calories/summary.blp:5 data/ui/view_add_activity.blp:66 +msgid "Calories Burned" +msgstr "Calorie bruciate" + +#: data/ui/plugins/details.blp:68 msgid "" "This is a preview of how the plugin presents data. Enable the plugin to see " "your actual, live data." @@ -349,247 +318,284 @@ msgstr "" "Questa è un'anteprima di come il plugin rappresenta i dati. Abilitare il " "plugin per vedere i propri dati attuali." -#: data/ui/plugins/weight/details.ui:23 +#: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 +#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +msgid "Steps" +msgstr "Passi" + +#: data/ui/plugins/weight/details.blp:5 msgid "You can use the + button to add a new weight measurement." msgstr "Usare il pulsante + per aggiungere una nuova misura." -#: data/ui/plugins/weight/details.ui:26 +#: data/ui/plugins/weight/details.blp:8 msgid "Weight Measurements" msgstr "Misure di peso" -#: data/ui/plugins/weight/summary.ui:24 data/ui/preferences_window.ui:223 -#: data/ui/view_add_weight.ui:60 src/plugins/weight/plugin.rs:39 +#: data/ui/plugins/weight/summary.blp:5 data/ui/view_add_weight.blp:38 +#: src/plugins/weight/plugin.rs:39 src/views/view_add_weight.rs:87 msgid "Weight" msgstr "Peso" -#: data/ui/preferences_window.ui:55 +#: data/ui/preferences_window.blp:43 msgid "_Every 1 hour" msgstr "Ogni _ora" -#: data/ui/preferences_window.ui:60 +#: data/ui/preferences_window.blp:49 msgid "_Every 4 hours" msgstr "Ogni _4 ore" -#: data/ui/preferences_window.ui:65 +#: data/ui/preferences_window.blp:55 msgid "_Fixed Time" msgstr "A orario _fissato" -#: data/ui/preferences_window.ui:83 data/ui/shortcuts_window.ui:30 +#: data/ui/preferences_window.blp:63 +msgid "Health Preferences" +msgstr "Preferenze di Salute" + +#: data/ui/preferences_window.blp:69 data/ui/shortcuts_window.blp:11 msgid "General" msgstr "Generale" -#: data/ui/preferences_window.ui:86 +#: data/ui/preferences_window.blp:72 msgid "User" msgstr "Utente" -#: data/ui/preferences_window.ui:89 data/ui/setup_window.ui:180 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 msgid "Unit system" msgstr "Sistema di unità" -#: data/ui/preferences_window.ui:98 data/ui/setup_window.ui:189 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 msgid "Imperial" msgstr "Imperiale" -#: data/ui/preferences_window.ui:105 data/ui/setup_window.ui:196 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 msgid "Metric" msgstr "Metrico" -#: data/ui/preferences_window.ui:116 data/ui/setup_window.ui:207 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 msgid "Birthday" msgstr "Data di nascita" -#: data/ui/preferences_window.ui:127 data/ui/setup_window.ui:218 +#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 msgid "Height" msgstr "Altezza" -#: data/ui/preferences_window.ui:144 +#: data/ui/preferences_window.blp:122 msgid "Notifications" msgstr "Notifiche" -#: data/ui/preferences_window.ui:147 +#: data/ui/preferences_window.blp:125 msgid "Enable notifications" msgstr "Attiva le notifiche" -#: data/ui/preferences_window.ui:161 +#: data/ui/preferences_window.blp:136 msgid "Frequency" msgstr "Frequenza" -#: data/ui/preferences_window.ui:178 +#: data/ui/preferences_window.blp:149 msgid "Daily reminder time" msgstr "Orario del promemoria giornaliero" -#: data/ui/preferences_window.ui:202 data/ui/setup_window.ui:284 -#: src/plugins/steps/details.rs:242 +#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 +#: src/plugins/steps/details.rs:240 msgid "Step goal" msgstr "Obiettivo di passi" -#: data/ui/preferences_window.ui:203 data/ui/setup_window.ui:261 -msgid "The WHO recommends 10.000 steps per day." -msgstr "L'OMS raccomanda 10.000 passi al giorno." +#: data/ui/preferences_window.blp:170 +msgid "7,500 steps per day are recommended." +msgstr "Si consigliano 7500 passi al giorno." + +#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +msgid "Weight Goal" +msgstr "Obiettivo di peso" -#: data/ui/preferences_window.ui:224 data/ui/setup_window.ui:325 +#: data/ui/preferences_window.blp:188 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "L'OMS raccomanda un IMC tra 18,5 e 24,9." -#: data/ui/preferences_window.ui:254 +#: data/ui/preferences_window.blp:212 msgid "Sync" msgstr "Sincronizzazione" -#: data/ui/preferences_window.ui:258 +#: data/ui/preferences_window.blp:216 msgid "Start sync with third-party providers." msgstr "Inizia a sincronizzare con provider di terze parti." -#: data/ui/preferences_window.ui:268 +#: data/ui/preferences_window.blp:224 msgid "Importing and exporting data" msgstr "Importazione ed esportazione dei dati" -#: data/ui/preferences_window.ui:271 +#: data/ui/preferences_window.blp:227 msgid "Export data as CSV" msgstr "Esporta dati in un file CSV" -#: data/ui/preferences_window.ui:274 +#: data/ui/preferences_window.blp:230 msgid "Export…" msgstr "Esporta…" -#: data/ui/preferences_window.ui:283 +#: data/ui/preferences_window.blp:237 msgid "Import data from CSV" msgstr "Importa dati da un file CSV" -#: data/ui/preferences_window.ui:286 +#: data/ui/preferences_window.blp:240 msgid "Import…" msgstr "Importa…" -#: data/ui/setup_window.ui:55 +#: data/ui/setup_window.blp:39 msgid "Health Setup" msgstr "Configurazione di Salute" -#: data/ui/setup_window.ui:70 +#: data/ui/setup_window.blp:53 msgid "_Quit" msgstr "_Esci" -#: data/ui/setup_window.ui:83 +#: data/ui/setup_window.blp:62 msgid "_Previous" msgstr "_Precedente" -#: data/ui/setup_window.ui:101 +#: data/ui/setup_window.blp:77 msgid "_Next" msgstr "_Successivo" -#: data/ui/setup_window.ui:116 +#: data/ui/setup_window.blp:90 msgid "_Done" msgstr "_Fatto" -#: data/ui/setup_window.ui:145 +#: data/ui/setup_window.blp:116 msgid "Welcome to Health!" msgstr "Ti diamo il benvenuto in Salute!" -#: data/ui/setup_window.ui:157 +#: data/ui/setup_window.blp:128 msgid "Please enter some information to get setup." msgstr "Inserisci alcune informazioni per cominciare." -#: data/ui/setup_window.ui:249 +#: data/ui/setup_window.blp:212 msgid "Please enter your daily step goal." msgstr "Inserisci il tuo obiettivo di passi giornaliero." -#: data/ui/setup_window.ui:313 +#: data/ui/setup_window.blp:224 +msgid "The WHO recommends 10.000 steps per day." +msgstr "L'OMS raccomanda 10.000 passi al giorno." + +#: data/ui/setup_window.blp:274 msgid "Please enter your weight goal." msgstr "Inserisci il tuo obiettivo di peso." -#: data/ui/setup_window.ui:352 src/plugins/weight/details.rs:222 +#: data/ui/setup_window.blp:286 +msgid "The WHO recommends a BMI of 18.5–24.9." +msgstr "L'OMS raccomanda un IMC tra 18,5 e 24,9." + +#: data/ui/setup_window.blp:314 +msgid "Current weight" +msgstr "Peso attuale" + +#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 msgid "Weight goal" msgstr "Obiettivo di peso" -#: data/ui/setup_window.ui:393 +#: data/ui/setup_window.blp:372 msgid "Setup sync with third-party providers." msgstr "Configura la sincronizzazione con provider di terze parti." -#: data/ui/setup_window.ui:405 +#: data/ui/setup_window.blp:384 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "" "Puoi sincronizzare le misure dei passi e del peso con provider di terze " "parti." -#: data/ui/shortcuts_window.ui:34 +#: data/ui/shortcuts_window.blp:15 msgid "Quit the application" msgstr "Esci dall'applicazione" -#: data/ui/shortcuts_window.ui:40 +#: data/ui/shortcuts_window.blp:20 msgid "Show this shortcuts window" msgstr "Mostra questa finestra delle scorciatoie" -#: data/ui/shortcuts_window.ui:46 +#: data/ui/shortcuts_window.blp:25 msgid "Show help" msgstr "Mostra l'aiuto" -#: data/ui/shortcuts_window.ui:52 +#: data/ui/shortcuts_window.blp:30 msgid "Show primary menu" msgstr "Mostra il menu primario" -#: data/ui/shortcuts_window.ui:58 +#: data/ui/shortcuts_window.blp:35 msgid "Toggle fullscreen mode" msgstr "Attiva la modalità a schermo intero" -#: data/ui/view_add_activity.ui:61 src/views/view_add_activity.rs:237 -msgid "Add new activity" -msgstr "Aggiungi nuova attività" +#: data/ui/sync_list_box.blp:30 +msgid "Google Fit" +msgstr "Google Fit" -#: data/ui/view_add_activity.ui:92 data/ui/view_add_weight.ui:50 +#: data/ui/view_add_activity.blp:45 data/ui/view_add_weight.blp:30 msgid "Date" msgstr "Data" -#: data/ui/view_add_activity.ui:103 +#: data/ui/view_add_activity.blp:57 msgid "Activity Type" msgstr "Tipo di attività" -#: data/ui/view_add_activity.ui:178 +#: data/ui/view_add_activity.blp:97 +msgid "Average Heart Rate" +msgstr "Battito cardiaco medio" + +#: data/ui/view_add_activity.blp:109 +msgid "Minimum Heart Rate" +msgstr "Battito cardiaco minimo" + +#: data/ui/view_add_activity.blp:121 +msgid "Maximum Heart Rate" +msgstr "Battito cardiaco massimo" + +#: data/ui/view_add_activity.blp:133 msgid "Stepcount" msgstr "Conteggio dei passi" -#: data/ui/view_add_weight.ui:31 src/views/view_add_weight.rs:85 -msgid "Add weight record" -msgstr "Aggiungi misura di peso" - -#: data/ui/view_home_page.ui:78 +#: data/ui/view_home_page.blp:61 msgid "For you" msgstr "Per te" -#: data/ui/view_home_page.ui:108 +#: data/ui/view_home_page.blp:86 msgid "" "No plugins enabled. Enable one from the list below to start using Health." msgstr "" -"Nessun plugin abilitato. Abilitarne uno dalla lista qui sotto per iniziare " -"a usare Salute." +"Nessun plugin abilitato. Abilitarne uno dalla lista qui sotto per iniziare a " +"usare Salute." -#: data/ui/view_home_page.ui:131 +#: data/ui/view_home_page.blp:107 msgid "All data" msgstr "Tutti i dati" -#: data/ui/window.ui:27 +#: data/ui/window.blp:8 msgid "_Disable Current Plugin" msgstr "_Disabilita il plugin corrente" -#: data/ui/window.ui:33 +#: data/ui/window.blp:15 msgid "_Preferences" msgstr "_Preferenze" -#: data/ui/window.ui:37 +#: data/ui/window.blp:20 msgid "_Keyboard Shortcuts" msgstr "_Scorciatoie da tastiera" -#: data/ui/window.ui:43 +#: data/ui/window.blp:27 msgid "_About Health" msgstr "_Informazioni su Salute" -#: data/ui/window.ui:84 +#: data/ui/window.blp:69 msgid "Enable plugin" msgstr "Abilita plugin" -#: src/core/application.rs:143 +#: src/core/application.rs:169 +msgid "A health tracking app for the GNOME desktop." +msgstr "Un'applicazione per l'ambiente GNOME per monitorare la salute." + +#: src/core/application.rs:171 msgid "translator-credits" msgstr "Davide Ferracin " -#: src/core/application.rs:145 +#: src/core/application.rs:173 msgid "Websites" msgstr "Pagina Web" @@ -673,35 +679,27 @@ msgstr "Pallavolo" msgid "Walking" msgstr "Camminata" -#: src/model/model_notification.rs:135 +#: src/model/model_notification.rs:234 msgid "Health: walking reminder" msgstr "Salute: promemoria per camminare" -#. TRANSLATORS: First part of message, ends with [...] of {} steps[.] See next source string. -#: src/model/model_notification.rs:158 -msgid "{} step remaining to complete your daily step goal" -msgid_plural "{} steps remaining to complete your daily step goal" -msgstr[0] "{} passo rimanente per completare l'obiettivo giornaliero" -msgstr[1] "{} passi rimanenti per completare l'obiettivo giornaliero" - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/model/model_notification.rs:164 -msgid "of {} step" -msgid_plural "of {} steps" -msgstr[0] "di {} passo" -msgstr[1] "di {} passi" +#: src/model/model_notification.rs:250 +msgid "{} step remaining to complete your daily step goal." +msgid_plural "{} steps remaining to complete your daily step goal." +msgstr[0] "{} passo rimanente per completare l'obiettivo giornaliero." +msgstr[1] "{} passi rimanenti per completare l'obiettivo giornaliero." #: src/plugins/activities/plugin.rs:39 msgid "Activities" msgstr "Attività" -#: src/plugins/activities/summary.rs:97 -msgid "{} active minutes today" +#: src/plugins/activities/summary.rs:91 +msgid "{} active minute today" msgid_plural "{} active minutes today" msgstr[0] "{} minuto di attività oggi" msgstr[1] "{} minuti di attività oggi" -#: src/plugins/calories/details.rs:220 +#: src/plugins/calories/details.rs:217 msgid "" "{}:\n" "{} calorie\n" @@ -719,28 +717,28 @@ msgstr[1] "" "{} calorie\n" "{}" -#: src/plugins/calories/summary.rs:100 src/plugins/calories/summary.rs:107 +#: src/plugins/calories/summary.rs:97 src/plugins/calories/summary.rs:104 msgid "{} calorie burned today" msgid_plural "{} calories burned today" msgstr[0] "{} caloria bruciata oggi" msgstr[1] "{} calorie bruciate oggi" -#: src/plugins/steps/details.rs:188 -msgid "Today's steps: {}" +#: src/plugins/steps/details.rs:186 +msgid "Today’s steps: {}" msgstr "Passi di oggi: {}" -#: src/plugins/steps/details.rs:203 +#: src/plugins/steps/details.rs:201 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" "Ancora nessuna serie. Raggiungi l'obiettivo di passi per più giorni per " "iniziare una serie!" -#: src/plugins/steps/details.rs:207 +#: src/plugins/steps/details.rs:205 msgid "" -"You're on a streak for {} day. Reach your step goal today to continue it!" +"You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" -"You're on a streak for {} days. Reach your step goal today to continue it!" +"You’re on a streak for {} days. Reach your step goal today to continue it!" msgstr[0] "" "La serie corrente è di {} giorno. Raggiungi l'obiettivo di passi oggi per " "proseguirla!" @@ -748,61 +746,63 @@ msgstr[1] "" "La serie corrente è di {} giorni. Raggiungi l'obiettivo di passi oggi per " "proseguirla!" -#: src/plugins/steps/details.rs:215 -msgid "You've reached your step goal today. Keep going to start a streak!" +#: src/plugins/steps/details.rs:213 +msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "" -"L'obiettivo di passi per oggi è stato raggiunto. Continua così per iniziare " -"una serie!" +"Hai raggiunto l'obiettivo di passi per oggi. Continua così per iniziare una serie!" -#: src/plugins/steps/details.rs:218 -msgid "You're on a streak for {} day. Good job!" -msgid_plural "You're on a streak for {} days. Good job!" +#: src/plugins/steps/details.rs:216 +msgid "You’re on a streak for {} day. Good job!" +msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "La serie corrente è di {} giorno. Bel lavoro!" msgstr[1] "La serie corrente è di {} giorni. Bel lavoro!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:235 +#: src/plugins/steps/details.rs:233 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} passo il {}" msgstr[1] "{} passi il {}" -#: src/plugins/steps/summary.rs:101 +#: src/plugins/steps/summary.rs:94 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "{} passo compiuti oggi" msgstr[1] "{} passi compiuti oggi" -#: src/plugins/steps/summary.rs:112 -#, c-format -msgid "Reached {}%% of daily step goal" -msgid_plural "Reached {}%% of daily step goal" +#: src/plugins/steps/summary.rs:105 +msgid "Reached {} percent of daily step goal" +msgid_plural "Reached {} percent of daily step goal" msgstr[0] "Raggiunto {}%% dell'obiettivo giornaliero" -msgstr[1] "Raggiunti {}%% dell'obiettivo giornaliero" +msgstr[1] "Raggiunto {}%% dell'obiettivo giornaliero" + +#: src/plugins/steps/summary.rs:112 +msgid "Well done! You have reached your daily step goal!" +msgstr "Ben fatto! Hai raggiunto l'obiettivo giornaliero di passi!" -#: src/plugins/weight/details.rs:194 +#: src/plugins/weight/details.rs:192 msgid "Current BMI: {}" msgstr "IMC attuale: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:209 +#: src/plugins/weight/details.rs:207 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} libbra il {}" msgstr[1] "{} libbre il {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:212 +#: src/plugins/weight/details.rs:210 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} chilogrammo il {}" msgstr[1] "{} chilogrammi il {}" -#: src/plugins/weight/details.rs:248 src/plugins/weight/details.rs:253 +#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 msgid "Unknown BMI" msgstr "IMC sconosciuto" -#: src/plugins/weight/details.rs:276 +#: src/plugins/weight/details.rs:268 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -816,7 +816,7 @@ msgstr[1] "" "L'obiettivo di peso è di {} libbre. Aggiungere una prima misura per vedere " "quanto manca a raggiungerlo." -#: src/plugins/weight/details.rs:283 +#: src/plugins/weight/details.rs:275 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -830,123 +830,119 @@ msgstr[1] "" "L'obiettivo di peso è di {} chilogrammi. Aggiungere una prima misura per " "vedere quanto manca a raggiungerlo." -#: src/plugins/weight/details.rs:292 -msgid "You've reached your weight goal. Great job!" -msgstr "Obiettivo di peso raggiunto. Ottimo lavoro!" - -#. TRANSLATORS: First part of message, ends with [...] you have {} pound left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:308 -msgid "Your weight goal is {} pound," -msgid_plural "Your weight goal is {} pounds," -msgstr[0] "L'obiettivo di peso è {} libbra, " -msgstr[1] "L'obiettivo di peso è {} libbre, " - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:314 -msgid "you have {} pound left to reach it" -msgid_plural "you have {} pounds left to reach it" -msgstr[0] "manca {} libbra per raggiungerlo" -msgstr[1] "mancano {} libbre per raggiungerlo" - -#. TRANSLATORS: First part of message, ends with [...] you have {} kilogram left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:321 -msgid "Your weight goal is {} kilogram," -msgid_plural "Your weight goal is {} kilograms," -msgstr[0] "L'obiettivo di peso è {} chilogrammo, " -msgstr[1] "L'obiettivo di peso è {} chilogrammi, " - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:327 -msgid "you have {} kilogram left to reach it" -msgid_plural "you have {} kilograms left to reach it" -msgstr[0] "manca {} chilogrammo per raggiungerlo" -msgstr[1] "mancano {} chilogrammi per raggiungerlo" - -#: src/plugins/weight/details.rs:337 -msgid "No weight goal set yet. You can set it in Health's preferences." +#: src/plugins/weight/details.rs:284 +msgid "You’ve reached your weight goal. Great job!" +msgstr "Hai raggiunto il tuo obiettivo di peso. Ottimo lavoro!" + +#: src/plugins/weight/details.rs:300 +msgid "Your weight goal is {} pound." +msgid_plural "Your weight goal is {} pounds." +msgstr[0] "L'obiettivo di peso è {} libbra." +msgstr[1] "L'obiettivo di peso è {} libbre." + +#: src/plugins/weight/details.rs:305 +msgid "You have {} pound left to reach it." +msgid_plural "You have {} pounds left to reach it." +msgstr[0] "Manca {} libbra per raggiungerlo" +msgstr[1] "Mancano {} libbre per raggiungerlo" + +#: src/plugins/weight/details.rs:312 +msgid "Your weight goal is {} kilogram." +msgid_plural "Your weight goal is {} kilograms." +msgstr[0] "L'obiettivo di peso è {} chilogrammo." +msgstr[1] "L'obiettivo di peso è {} chilogrammi." + +#: src/plugins/weight/details.rs:318 +msgid "You have {} kilogram left to reach it" +msgid_plural "You have {} kilograms left to reach it" +msgstr[0] "Manca {} chilogrammo per raggiungerlo" +msgstr[1] "Mancano {} chilogrammi per raggiungerlo" + +#: src/plugins/weight/details.rs:328 +msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" "Nessun obiettivo di peso impostato. Lo si può regolare nelle preferenze di " "Salute." -#: src/plugins/weight/summary.rs:128 +#: src/plugins/weight/summary.rs:119 msgid "{} pound" msgid_plural "{} pounds" msgstr[0] "{} libbra" msgstr[1] "{} libbre" -#: src/plugins/weight/summary.rs:136 +#: src/plugins/weight/summary.rs:127 msgid "{} kilogram" msgid_plural "{} kilograms" msgstr[0] "{} chilogrammo" msgstr[1] "{} chilogrammi" -#: src/plugins/weight/summary.rs:147 +#: src/plugins/weight/summary.rs:138 msgid "+ {} pound compared to previous measurement" msgid_plural "+ {} pounds compared to previous measurement" msgstr[0] "+ {} libbra rispetto alla scorsa rilevazione" msgstr[1] "+ {} libbre rispetto alla scorsa rilevazione" -#: src/plugins/weight/summary.rs:155 +#: src/plugins/weight/summary.rs:146 msgid "+ {} kilogram compared to previous measurement" msgid_plural "+ {} kilograms compared to previous measurement" msgstr[0] "+ {} chilogrammo rispetto alla scorsa rilevazione" msgstr[1] "+ {} chilogrammi rispetto alla scorsa rilevazione" -#: src/plugins/weight/summary.rs:166 +#: src/plugins/weight/summary.rs:157 msgid "{} pound compared to previous measurement" msgid_plural "{} pounds compared to previous measurement" msgstr[0] "{} libbra rispetto alla scorsa rilevazione" msgstr[1] "{} libbre rispetto alla scorsa rilevazione" -#: src/plugins/weight/summary.rs:174 +#: src/plugins/weight/summary.rs:165 msgid "{} kilogram compared to previous measurement" msgid_plural "{} kilograms compared to previous measurement" msgstr[0] "{} chilogrammo rispetto alla scorsa rilevazione" msgstr[1] "{} chilogrammi rispetto alla scorsa rilevazione" -#: src/plugins/weight/summary.rs:182 +#: src/plugins/weight/summary.rs:173 msgid "No change in weight" msgstr "Nessuna variazione di peso" -#: src/plugins/weight/summary.rs:188 +#: src/plugins/weight/summary.rs:178 msgid "No weight data available" msgstr "Nessun dato sul peso disponibile" -#: src/sync/csv.rs:81 src/sync/csv.rs:363 -msgid "No activities added yet; can't create empty export!" +#: src/sync/csv.rs:81 src/sync/csv.rs:370 +msgid "No activities added yet; can’t create empty export!" msgstr "" "Nessuna attività presente; non è possibile creare un file di esportazione " "vuoto!" -#: src/sync/csv.rs:111 src/sync/csv.rs:381 -msgid "No weight measurements added yet; can't create empty export!" +#: src/sync/csv.rs:111 src/sync/csv.rs:388 +msgid "No weight measurements added yet; can’t create empty export!" msgstr "" "Nessuna misura di peso presente; non è possibile creare un file di " "esportazione vuoto!" -#: src/sync/csv.rs:184 src/sync/csv.rs:325 -msgid "Can't parse encrypted backup without encryption key!" +#: src/sync/csv.rs:184 src/sync/csv.rs:332 +msgid "Can’t parse encrypted backup without encryption key!" msgstr "" "Impossibile analizzare il backup cifrato senza una chiave di cifratura!" -#: src/sync/csv.rs:195 src/sync/csv.rs:345 +#: src/sync/csv.rs:195 src/sync/csv.rs:352 msgid "" -"Couldn't parse CSV. Are you trying to read an unencrypted backup as an " +"Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " "encrypted one?" msgstr "" "Non è stato possibile analizzare il file CSV. Si sta provando a leggere un " "backup non cifrato come uno cifrato?" #: src/sync/csv.rs:208 -msgid "Couldn't decrypt data. Are you sure you're using the right key?" -msgstr "Decrittazione dei dati non riuscita. La chiave usata è corretta?" +msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" +msgstr "Decifrazione dei dati non riuscita. La chiave usata è corretta?" #: src/sync/database_receiver.rs:46 -msgid "Couldn't synchronize steps due to error {}" -msgstr "Sincronizzare dei passi non riuscita a causa dell'errore {}" +msgid "Couldn’t synchronize steps due to error {}" +msgstr "Sincronizzazione dei passi non riuscita a causa dell'errore {}" #: src/sync/database_receiver.rs:60 -msgid "Couldn't synchronize weight measurements due to error {}" +msgid "Couldn’t synchronize weight measurements due to error {}" msgstr "Sincronizzazione del peso non riuscita a causa dell'errore {}" #: src/sync/google_fit.rs:211 @@ -959,98 +955,132 @@ msgstr "Richiesta del token OAuth2 non riuscita a causa dell'errore {}" #: src/sync/sync_provider.rs:109 msgid "" -"Can't retrieve OAuth2 token when no refresh token is set! Please re-" +"Can’t retrieve OAuth2 token when no refresh token is set! Please re-" "authenticate with your sync provider." msgstr "" -"Impossibile recuperare il token OAuth2 se non è stato impostato alcun token " +"Non è possibile recuperare il token OAuth2 se non è stato impostato alcun token " "di aggiornamento! Si prega di autenticarsi di nuovo con il provider di " "sincronizzazione." -#: src/sync/sync_provider.rs:225 +#: src/sync/sync_provider.rs:157 +msgid "Token for Health sync provider {}" +msgstr "Token per il provider di sincronizzazione {}" + +#: src/sync/sync_provider.rs:217 msgid "Successfully authenticated, please return to Health." msgstr "Autenticazione riuscita, si prega di ritornare su Salute." -#: src/sync/sync_provider.rs:237 -msgid "Couldn't parse OAuth2 response" +#: src/sync/sync_provider.rs:228 +msgid "Couldn’t parse OAuth2 response" msgstr "Analisi della risposta di OAuth2 non riuscita" -#: src/views/bar_graph_view.rs:588 +#: src/views/bar_graph_view.rs:583 msgid "Enter weight record to calculate idle calories" msgstr "Inserire il peso per calcolare le calorie bruciate a riposo" -#: src/views/bar_graph_view.rs:592 +#: src/views/bar_graph_view.rs:587 msgid "Idle calories" msgstr "Calorie bruciate a riposo" -#: src/widgets/activity_row.rs:130 -msgid "{} Minute" -msgid_plural "{} Minutes" -msgstr[0] "{} minuto" -msgstr[1] "{} minuti" +#: src/views/view_add_activity.rs:236 +msgid "Activity" +msgstr "Attività" -#: src/widgets/activity_row.rs:145 src/widgets/activity_row.rs:263 -msgid "{} Calorie" -msgid_plural "{} Calories" -msgstr[0] "{} caloria" -msgstr[1] "{} calorie" +#: src/widgets/activity_row.rs:79 +msgid "{} for {} Minute" +msgid_plural "{} for {} Minutes" +msgstr[0] "{} per {} minuto" +msgstr[1] "{} per {} minuti" -#: src/widgets/bmi_level_bar.rs:223 src/widgets/bmi_level_bar.rs:259 +#: src/widgets/activity_row.rs:91 +msgid "Calories burned" +msgstr "Calorie bruciate" + +#: src/widgets/activity_row.rs:101 +msgid "Average heart rate" +msgstr "Battito cardiaco medio" + +#: src/widgets/activity_row.rs:107 +msgid "Maximum heart rate" +msgstr "Battito cardiaco massimo" + +#: src/widgets/activity_row.rs:113 +msgid "Minimum heart rate" +msgstr "Battito cardiaco minimo" + +#: src/widgets/activity_row.rs:126 +msgid "{} meter" +msgid_plural "{} meters" +msgstr[0] "{} metro" +msgstr[1] "{} metri" + +#: src/widgets/activity_row.rs:129 +msgid "{} yard" +msgid_plural "{} yards" +msgstr[0] "{} iarda" +msgstr[1] "{} iarde" + +#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 +msgid "Current BMI" +msgstr "IMC attuale" + +#: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "IMC attuale: {}" -#: src/widgets/distance_action_row.rs:307 +#: src/widgets/distance_action_row.rs:303 msgid "KM" msgstr "Chilometri" -#: src/widgets/distance_action_row.rs:308 +#: src/widgets/distance_action_row.rs:304 msgid "Meters" msgstr "Metri" -#: src/widgets/distance_action_row.rs:310 +#: src/widgets/distance_action_row.rs:306 msgid "Miles" msgstr "Miglia" -#: src/widgets/distance_action_row.rs:311 +#: src/widgets/distance_action_row.rs:307 msgid "Feet" msgstr "Piedi" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:478 src/widgets/unit_spinbutton.rs:641 +#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:480 +#: src/widgets/unit_spinbutton.rs:477 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:482 +#: src/widgets/unit_spinbutton.rs:479 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:484 +#: src/widgets/unit_spinbutton.rs:481 msgid "kg" msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:486 src/widgets/unit_spinbutton.rs:643 +#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 msgid "in" msgstr "in" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:488 +#: src/widgets/unit_spinbutton.rs:485 msgid "ft" msgstr "ft" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:490 +#: src/widgets/unit_spinbutton.rs:487 msgid "mi" msgstr "mi" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:492 +#: src/widgets/unit_spinbutton.rs:489 msgid "lb" msgstr "lb" @@ -1100,37 +1130,37 @@ msgstr "Apri Peso" msgid "Import data" msgstr "Importa dati" -#: src/windows/import_export_dialog_base.rs:212 +#: src/windows/import_export_dialog_base.rs:214 msgid "Import activities" msgstr "Importa attività" -#: src/windows/import_export_dialog_base.rs:214 +#: src/windows/import_export_dialog_base.rs:216 msgid "Import is encrypted" msgstr "I dati importati sono cifrati" -#: src/windows/import_export_dialog_base.rs:215 +#: src/windows/import_export_dialog_base.rs:217 msgid "Import weights" msgstr "Importa misure di peso" -#: src/windows/import_export_dialog_base.rs:216 +#: src/windows/import_export_dialog_base.rs:218 msgid "Import" msgstr "Importa" -#: src/windows/import_export_dialog_base.rs:298 +#: src/windows/import_export_dialog_base.rs:296 msgid "Success!" msgstr "Fatto!" -#: src/windows/import_export_dialog_base.rs:302 +#: src/windows/import_export_dialog_base.rs:300 msgid "An error occurred!" msgstr "Si è verificato un errore!" -#: src/windows/import_export_dialog_base.rs:308 +#: src/windows/import_export_dialog_base.rs:305 msgid "Close" msgstr "Chiudi" -#: src/windows/preferences_window.rs:376 -msgid "Remind you of your step goals" -msgstr "Promemoria dell'obiettivo di passi" +#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 +msgid "Target BMI" +msgstr "Obiettivo di IMC" #: src/windows/window.rs:97 msgid "Failed to migrate database to new version due to error {}" @@ -1138,10 +1168,47 @@ msgstr "" "La migrazione del database alla nuova versione non è riuscita a causa " "dell'errore {}" -#: src/windows/window.rs:266 -msgid "Couldn't sync Google Fit data due to error: {}" +#: src/windows/window.rs:267 +msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "" -"Sincronizzazione dei dati di Google Fit non riuscita a causa dell'errore {}" +"Sincronizzazione dei dati di Google Fit non riuscita a causa dell'errore: {}" + +#~ msgid "Health Daemon" +#~ msgstr "Daemon di Salute" + +#~ msgid "@APPLICATION_ID@" +#~ msgstr "@APPLICATION_ID@" + +#~ msgid "" +#~ "A health tracking app for the GNOME desktop. Health can visualize how " +#~ "many steps you've made daily, your weight development over time and your " +#~ "daily activities." +#~ msgstr "" +#~ "Un'applicazione per l'ambiente GNOME per monitorare la salute. Salute può " +#~ "visualizzare quanti passi vengono compiuti ogni giorno, l'andamento del " +#~ "peso nel tempo e le attività quotidiane." + +#~ msgid "Distance in Meters" +#~ msgstr "Distanza in metri" + +#~ msgid "Add new activity" +#~ msgstr "Aggiungi nuova attività" + +#~ msgid "Add weight record" +#~ msgstr "Aggiungi misura di peso" + +#~ msgid "of {} step" +#~ msgid_plural "of {} steps" +#~ msgstr[0] "di {} passo" +#~ msgstr[1] "di {} passi" + +#~ msgid "{} Calorie" +#~ msgid_plural "{} Calories" +#~ msgstr[0] "{} caloria" +#~ msgstr[1] "{} calorie" + +#~ msgid "Remind you of your step goals" +#~ msgstr "Promemoria dell'obiettivo di passi" #~ msgid "Last opened view" #~ msgstr "Ultima vista aperta" -- 2.40.1 From 0a1814cf8c92ec978fe56ce8ef7e6454a8a0aef6 Mon Sep 17 00:00:00 2001 From: Anders Jonsson Date: Fri, 22 Jul 2022 22:14:34 +0000 Subject: [PATCH 06/83] Update Swedish translation --- po/sv.po | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/po/sv.po b/po/sv.po index 4472079..130a0a2 100644 --- a/po/sv.po +++ b/po/sv.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-06 08:12+0000\n" -"PO-Revision-Date: 2022-07-06 18:53+0200\n" +"POT-Creation-Date: 2022-07-21 16:28+0000\n" +"PO-Revision-Date: 2022-07-21 20:49+0200\n" "Last-Translator: Anders Jonsson \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -581,11 +581,11 @@ msgstr "_Om Hälsa" msgid "Enable plugin" msgstr "Aktivera insticksmodul" -#: src/core/application.rs:169 +#: src/core/application.rs:175 msgid "A health tracking app for the GNOME desktop." msgstr "Ett hälsoobservationsprogram för GNOME-skrivbordet." -#: src/core/application.rs:171 +#: src/core/application.rs:177 msgid "translator-credits" msgstr "" "Anders Jonsson \n" @@ -594,7 +594,7 @@ msgstr "" "Skicka synpunkter om översättningen till\n" "." -#: src/core/application.rs:173 +#: src/core/application.rs:179 msgid "Websites" msgstr "Webbplatser" @@ -1091,6 +1091,11 @@ msgstr "Aktiviteter.csv.encrypted" msgid "Activities.csv" msgstr "Aktiviteter.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Ingen fil har valts." + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "Spara viktmätning" -- 2.40.1 From e829e07bd32ae20fe73f0247f2ad442c27e68df2 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Sat, 23 Jul 2022 13:13:51 +0200 Subject: [PATCH 07/83] fix(unit_spinbutton): allow entering data without space between value and unit --- src/widgets/unit_spinbutton.rs | 47 ++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 14 deletions(-) diff --git a/src/widgets/unit_spinbutton.rs b/src/widgets/unit_spinbutton.rs index ccbcf6a..218508b 100644 --- a/src/widgets/unit_spinbutton.rs +++ b/src/widgets/unit_spinbutton.rs @@ -339,6 +339,7 @@ impl UnitSpinButton { pub fn set_value(&self, value: f64) { self.set_property("value", value) } + pub fn value(&self) -> f64 { self.property("value") } @@ -351,6 +352,13 @@ impl UnitSpinButton { obj.emit_by_name::<()>("changed", &[]); })); + imp.spin_button + .connect_text_notify(clone!(@weak self as obj => move |_| { + if obj.handle_spin_button_input().map(|s| s.unwrap_or(0.0)).unwrap_or(0.0) != 0.0 { + obj.imp().spin_button.update(); + } + })); + imp.spin_button .connect_input(clone!(@weak self as obj => @default-panic, move |_| { obj.handle_spin_button_input() @@ -463,14 +471,19 @@ impl UnitSpinButton { fn handle_spin_button_input(&self) -> Option> { self.emit_by_name::<()>("input", &[]); - self.raw_value().map(Ok) + let mut text = self.text().replace(" ", ""); + + if let Some(u) = self.unit_string() { + text = text.replace(&u, ""); + } + + text.parse::().ok().map(Ok) } - fn handle_spin_button_output(&self) -> gtk::Inhibit { - let imp = self.imp(); - let inner = imp.inner.borrow(); + fn unit_string(&self) -> Option { + let inner = self.imp().inner.borrow(); - if let Some(unit_string) = match (inner.current_unit_system, inner.current_unit_kind) { + match (inner.current_unit_system, inner.current_unit_kind) { // TRANSLATORS: Unit abbreviation (centimeters) (Some(UnitSystem::Metric), Some(UnitKind::LikeCentimeters)) => Some(i18n("cm")), // TRANSLATORS: Unit abbreviation (meters) @@ -488,7 +501,13 @@ impl UnitSpinButton { // TRANSLATORS: Unit abbreviation (pounds) (Some(UnitSystem::Imperial), Some(UnitKind::LikeKilogram)) => Some(i18n("lb")), _ => None, - } { + } + } + + fn handle_spin_button_output(&self) -> gtk::Inhibit { + let imp = self.imp(); + + if let Some(unit_string) = self.unit_string() { let text = format!( "{} {unit_string}", imp.spin_button @@ -548,7 +567,7 @@ mod test { UnitSystem::Metric, UnitSystem::Imperial, UnitKind::LikeCentimeters, - 3.9370076656341553 + 3.9 ); } @@ -558,7 +577,7 @@ mod test { UnitSystem::Metric, UnitSystem::Imperial, UnitKind::LikeMeters, - 32.80839920043945 + 32.8 ); } @@ -568,7 +587,7 @@ mod test { UnitSystem::Metric, UnitSystem::Imperial, UnitKind::LikeKilometers, - 6.213711738586426 + 6.2 ); } @@ -578,7 +597,7 @@ mod test { UnitSystem::Metric, UnitSystem::Imperial, UnitKind::LikeKilogram, - 22.04622459411621 + 22.0 ); } @@ -588,7 +607,7 @@ mod test { UnitSystem::Imperial, UnitSystem::Metric, UnitKind::LikeCentimeters, - 25.400001525878906 + 25.4 ); } @@ -598,7 +617,7 @@ mod test { UnitSystem::Imperial, UnitSystem::Metric, UnitKind::LikeMeters, - 3.0480000972747803 + 3.0 ); } @@ -608,7 +627,7 @@ mod test { UnitSystem::Imperial, UnitSystem::Metric, UnitKind::LikeKilometers, - 16.09343910217285 + 16.1 ); } @@ -618,7 +637,7 @@ mod test { UnitSystem::Imperial, UnitSystem::Metric, UnitKind::LikeKilogram, - 4.535923957824707 + 4.5 ); } -- 2.40.1 From e47b152c0cd11ca4e8194cdcba744b2443fb70b0 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Sat, 23 Jul 2022 13:19:21 +0200 Subject: [PATCH 08/83] chore(ci): add Dockerfile --- .gitlab/ci/Dockerfile | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .gitlab/ci/Dockerfile diff --git a/.gitlab/ci/Dockerfile b/.gitlab/ci/Dockerfile new file mode 100644 index 0000000..b239d9a --- /dev/null +++ b/.gitlab/ci/Dockerfile @@ -0,0 +1,13 @@ +FROM fedora:latest + +RUN dnf install -y tracker3-devel gtk4-devel meson git xorg-x11-server-Xvfb \ + gobject-introspection-devel gcc gcc-c++ libsecret-devel libadwaita-devel +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rustup.sh \ + && sh ./rustup.sh -y \ + && rm rustup.sh +RUN echo "/usr/local/lib64" > /etc/ld.so.conf.d/local.conf && ldconfig +RUN source $HOME/.cargo/env \ + && rustup component add clippy \ + && rustup toolchain install nightly \ + && rustup component add llvm-tools-preview --toolchain nightly \ + && cargo install cargo-llvm-cov cargo-makedocs -- 2.40.1 From cb44407216b2a6359b9a15071763e5bfdc8d0d49 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Sat, 23 Jul 2022 14:16:22 +0200 Subject: [PATCH 09/83] fix(setup_window): fix recommended stepcount label --- data/ui/setup_window.blp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/ui/setup_window.blp b/data/ui/setup_window.blp index fd948d2..b844a35 100644 --- a/data/ui/setup_window.blp +++ b/data/ui/setup_window.blp @@ -221,7 +221,7 @@ template HealthSetupWindow : Adw.ApplicationWindow { } Label { - label: _("The WHO recommends 10.000 steps per day."); + label: _("The WHO recommends 7.500 steps per day."); wrap: true; wrap-mode: word_char; -- 2.40.1 From 0aea878848084697ac5ccf34fe867602196703bd Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Sat, 23 Jul 2022 14:18:33 +0200 Subject: [PATCH 10/83] fix(application): don't exit after setup --- src/core/application.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/application.rs b/src/core/application.rs index 7e1bfc9..eea2173 100644 --- a/src/core/application.rs +++ b/src/core/application.rs @@ -77,6 +77,7 @@ mod imp { .replace(Some(glib::ObjectExt::downgrade(&window))); } else { let setup_window = SetupWindow::new(obj); + obj.hold(); setup_window.connect_setup_done(clone!(@weak obj => move |_| { obj.handle_setup_window_setup_done(); @@ -242,6 +243,7 @@ impl Application { window.show(); imp.window .replace(Some(glib::ObjectExt::downgrade(&window))); + self.release(); } fn handle_unit_system(&self, action: &gio::SimpleAction, parameter: Option<&glib::Variant>) { -- 2.40.1 From 7c476cd6f37c6d0a3f0582de7a3a229f40d4b37d Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Sat, 23 Jul 2022 14:23:20 +0200 Subject: [PATCH 11/83] chore(clippy): fix nits --- src/widgets/unit_spinbutton.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/widgets/unit_spinbutton.rs b/src/widgets/unit_spinbutton.rs index 218508b..42e29b4 100644 --- a/src/widgets/unit_spinbutton.rs +++ b/src/widgets/unit_spinbutton.rs @@ -354,7 +354,7 @@ impl UnitSpinButton { imp.spin_button .connect_text_notify(clone!(@weak self as obj => move |_| { - if obj.handle_spin_button_input().map(|s| s.unwrap_or(0.0)).unwrap_or(0.0) != 0.0 { + if obj.handle_spin_button_input().map_or(0.0, |s| s.unwrap_or(0.0)) != 0.0 { obj.imp().spin_button.update(); } })); @@ -471,7 +471,7 @@ impl UnitSpinButton { fn handle_spin_button_input(&self) -> Option> { self.emit_by_name::<()>("input", &[]); - let mut text = self.text().replace(" ", ""); + let mut text = self.text().replace(' ', ""); if let Some(u) = self.unit_string() { text = text.replace(&u, ""); -- 2.40.1 From 15acdd50b9cb40e9f93a41a8305fb73ef39bf4a0 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Sat, 23 Jul 2022 18:02:46 +0200 Subject: [PATCH 12/83] fix(view_add_activity): properly save recent activities --- src/views/view_add_activity.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/views/view_add_activity.rs b/src/views/view_add_activity.rs index 994c7c2..6266712 100644 --- a/src/views/view_add_activity.rs +++ b/src/views/view_add_activity.rs @@ -423,6 +423,7 @@ impl ViewAddActivity { if id == gtk::ResponseType::Ok { let imp = self.imp(); let selected_activity = imp.activity_type_selector.selected_activity(); + imp.inner.borrow_mut().selected_activity = selected_activity.clone(); let distance = if selected_activity .available_data_points .contains(ActivityDataPoints::DISTANCE) -- 2.40.1 From 090f52a6a5efbedef8b9326132c17734bd8a4ea7 Mon Sep 17 00:00:00 2001 From: Aleksandr Melman Date: Mon, 25 Jul 2022 13:22:49 +0000 Subject: [PATCH 13/83] Update Russian translation --- po/ru.po | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/po/ru.po b/po/ru.po index 6359bc8..a81c122 100644 --- a/po/ru.po +++ b/po/ru.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-06 08:12+0000\n" -"PO-Revision-Date: 2022-07-06 19:29+0300\n" +"POT-Creation-Date: 2022-07-24 21:36+0000\n" +"PO-Revision-Date: 2022-07-25 13:30+0300\n" "Last-Translator: Aleksandr Melman \n" "Language-Team: Russian \n" "Language: ru\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Poedit 3.0.1\n" +"X-Generator: Poedit 3.1\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" @@ -475,8 +475,8 @@ msgid "Please enter your daily step goal." msgstr "Пожалуйста, введите свою ежедневную цель в шагах." #: data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." -msgstr "ВОЗ рекомендует делать 10 000 шагов в день." +msgid "The WHO recommends 7.500 steps per day." +msgstr "ВОЗ рекомендует делать 7500 шагов в день." #: data/ui/setup_window.blp:274 msgid "Please enter your weight goal." @@ -587,18 +587,18 @@ msgstr "О _Здоровье" msgid "Enable plugin" msgstr "Включить модуль" -#: src/core/application.rs:169 +#: src/core/application.rs:176 msgid "A health tracking app for the GNOME desktop." msgstr "" "Приложение для отслеживания состояния здоровья для рабочего стола GNOME." -#: src/core/application.rs:171 +#: src/core/application.rs:178 msgid "translator-credits" msgstr "" "Alexey Rubtsov , 2021\n" "Aleksandr Melman , 2022" -#: src/core/application.rs:173 +#: src/core/application.rs:180 msgid "Websites" msgstr "Вебсайты" @@ -1081,42 +1081,42 @@ msgid "Feet" msgstr "Футы" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "см" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "м" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "км" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "кг" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "дюйм" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "фут" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "мили" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "фунт" @@ -1134,6 +1134,11 @@ msgstr "Активности.csv.encrypted" msgid "Activities.csv" msgstr "Активности.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Файл не выбран." + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "Сохранить измерение веса" -- 2.40.1 From fde1578f9e382d8445aeda5fc0ddf93aa056da6e Mon Sep 17 00:00:00 2001 From: Yuri Chornoivan Date: Mon, 25 Jul 2022 19:40:04 +0000 Subject: [PATCH 14/83] Update Ukrainian translation --- po/uk.po | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/po/uk.po b/po/uk.po index d64d038..d8323f1 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-21 16:28+0000\n" -"PO-Revision-Date: 2022-07-22 09:35+0300\n" +"POT-Creation-Date: 2022-07-24 21:36+0000\n" +"PO-Revision-Date: 2022-07-25 22:39+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -480,8 +480,9 @@ msgid "Please enter your daily step goal." msgstr "Будь ласка, введіть щоденну цільову кількість кроків." #: data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." -msgstr "ВОЗ рекомендовано виконувати 10000 кроків щодня." +#| msgid "The WHO recommends 10.000 steps per day." +msgid "The WHO recommends 7.500 steps per day." +msgstr "ВОЗ рекомендовано виконувати 75000 кроків щодня." #: data/ui/setup_window.blp:274 msgid "Please enter your weight goal." @@ -593,15 +594,15 @@ msgstr "_Про «Здоров'я»" msgid "Enable plugin" msgstr "Увімкнути додаток" -#: src/core/application.rs:175 +#: src/core/application.rs:176 msgid "A health tracking app for the GNOME desktop." msgstr "Програма стеження за станом здоров'я для стільниці GNOME." -#: src/core/application.rs:177 +#: src/core/application.rs:178 msgid "translator-credits" msgstr "Юрій Чорноіван , 2021" -#: src/core/application.rs:179 +#: src/core/application.rs:180 msgid "Websites" msgstr "Сайти" @@ -1122,42 +1123,42 @@ msgid "Feet" msgstr "фути" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "см" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "м" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "км" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "кг" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "дюйм" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "фут" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "миля" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "фунт" -- 2.40.1 From 2c7eb7708f15aaf63ab95edcb9b9ed238d0cb37d Mon Sep 17 00:00:00 2001 From: Yuri Chornoivan Date: Mon, 25 Jul 2022 19:41:27 +0000 Subject: [PATCH 15/83] Update Ukrainian translation --- po/uk.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/uk.po b/po/uk.po index d8323f1..699d804 100644 --- a/po/uk.po +++ b/po/uk.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" "POT-Creation-Date: 2022-07-24 21:36+0000\n" -"PO-Revision-Date: 2022-07-25 22:39+0300\n" +"PO-Revision-Date: 2022-07-25 22:40+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -482,7 +482,7 @@ msgstr "Будь ласка, введіть щоденну цільову кіл #: data/ui/setup_window.blp:224 #| msgid "The WHO recommends 10.000 steps per day." msgid "The WHO recommends 7.500 steps per day." -msgstr "ВОЗ рекомендовано виконувати 75000 кроків щодня." +msgstr "ВОЗ рекомендовано виконувати 7500 кроків щодня." #: data/ui/setup_window.blp:274 msgid "Please enter your weight goal." -- 2.40.1 From 8963f90b982059bc01beea2d0913f3435a5781ce Mon Sep 17 00:00:00 2001 From: Hugo Carvalho Date: Tue, 26 Jul 2022 13:31:15 +0000 Subject: [PATCH 16/83] Update Portuguese translation --- po/pt.po | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/po/pt.po b/po/pt.po index 976a68b..ac616cc 100644 --- a/po/pt.po +++ b/po/pt.po @@ -1,5 +1,5 @@ # Portuguese translation for health. -# Copyright (C) 2021 health's COPYRIGHT HOLDER +# Copyright (C) 2021-2022 health. # This file is distributed under the same license as the health package. # Hugo Carvalho , 2021, 2022. # @@ -7,16 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-06 08:12+0000\n" -"PO-Revision-Date: 2022-07-07 12:13+0100\n" +"POT-Creation-Date: 2022-07-24 21:36+0000\n" +"PO-Revision-Date: 2022-07-26 14:30+0100\n" "Last-Translator: Hugo Carvalho \n" -"Language-Team: Portuguese \n" +"Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 3.1\n" +"X-Generator: Poedit 3.1.1\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" @@ -472,8 +472,8 @@ msgid "Please enter your daily step goal." msgstr "Introduza o seu objetivo diário de passos." #: data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." -msgstr "A OMS recomenda 10.000 passos por dia." +msgid "The WHO recommends 7.500 steps per day." +msgstr "A OMS recomenda 7.500 passos por dia." #: data/ui/setup_window.blp:274 msgid "Please enter your weight goal." @@ -583,15 +583,15 @@ msgstr "_Acerca da Saúde" msgid "Enable plugin" msgstr "Ativar plugin" -#: src/core/application.rs:169 +#: src/core/application.rs:176 msgid "A health tracking app for the GNOME desktop." msgstr "Uma aplicação de monitorização de saúde para o ambiente GNOME." -#: src/core/application.rs:171 +#: src/core/application.rs:178 msgid "translator-credits" msgstr "Hugo Carvalho " -#: src/core/application.rs:173 +#: src/core/application.rs:180 msgid "Websites" msgstr "Websites" @@ -1041,42 +1041,42 @@ msgid "Feet" msgstr "Pés" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "in" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "ft" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "mi" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "lb" @@ -1094,6 +1094,11 @@ msgstr "Atividades.csv.encrypted" msgid "Activities.csv" msgstr "Atividades.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Nenhum ficheiro selecionado." + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "Guardar medida de peso" -- 2.40.1 From ee4cbecaa1b3c4a65011e51095ba597332d11bf0 Mon Sep 17 00:00:00 2001 From: Jordi Mas i Hernandez Date: Fri, 29 Jul 2022 17:52:12 +0000 Subject: [PATCH 17/83] Update Catalan translation --- po/ca.po | 301 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 156 insertions(+), 145 deletions(-) diff --git a/po/ca.po b/po/ca.po index c64d841..1ef49e8 100644 --- a/po/ca.po +++ b/po/ca.po @@ -7,16 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-03-15 08:58+0000\n" -"PO-Revision-Date: 2022-03-15 08:58+0000\n" -"Last-Translator: Jordi Mas \n" +"POT-Creation-Date: 2022-07-21 16:28+0000\n" +"PO-Revision-Date: 2022-07-22 16:27+0200\n" +"Last-Translator: maite guix \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 3.0\n" +"X-Generator: Poedit 3.1.1\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" @@ -71,10 +71,10 @@ msgstr "Llista de tipus d'activitat recents" #: data/dev.Cogitri.Health.gschema.xml:42 msgid "" "Activity types the user used recently, to be shown first in the activity " -"types selector's list" +"types selector’s list" msgstr "" -"Tipus d'activitat que l'usuari ha utilitzat recentment, que es mostraran " -"primer a la llista del selector de tipus d'activitat" +"Tipus d'activitat que l'usuari ha fet recentment, que es mostraran primer a " +"la llista del selector de tipus d'activitat" #: data/dev.Cogitri.Health.gschema.xml:46 msgid "Google Fit Sync-Provider setup" @@ -99,8 +99,8 @@ msgstr "Sistema d'unitats utilitzat" #: data/dev.Cogitri.Health.gschema.xml:57 msgid "The unit system the user chose, e.g. for cm vs inch for height" msgstr "" -"El sistema d'unitats que l'usuari va triar, per exemple, per cm vs polzada " -"per a l'alçada" +"El sistema d'unitats que l'usuari ha triat, per exemple, cm vs polzada per a " +"l'alçada" #: data/dev.Cogitri.Health.gschema.xml:61 msgid "User age" @@ -112,7 +112,7 @@ msgstr "Edat de l'usuari (obsoleta)." #: data/dev.Cogitri.Health.gschema.xml:66 msgid "Absolute user age" -msgstr "Edat de l'usuari" +msgstr "Data de naixement" #: data/dev.Cogitri.Health.gschema.xml:67 msgid "The age of the user in absolute terms (like 01/01/1970)" @@ -164,7 +164,7 @@ msgstr "Amplada de la finestra" #: data/dev.Cogitri.Health.gschema.xml:97 msgid "The width of the window." -msgstr "Amplada de la finestra." +msgstr "L'amplada de la finestra." #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -173,31 +173,25 @@ msgstr "Amplada de la finestra." msgid "Health" msgstr "Salut" -#: data/dev.Cogitri.Health.Autostart.desktop.in.in:5 -#: data/dev.Cogitri.Health.desktop.in.in:5 -msgid "@APPLICATION_ID@" -msgstr "@APPLICATION_ID@" - -#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 src/core/application.rs:167 -msgid "A health tracking app for the GNOME desktop." -msgstr "Una aplicació de seguiment de la salut per a l'escriptori GNOME." +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 +msgid "Track your fitness goals" +msgstr "Faci un seguiment dels seus objectius de fitness" #: data/dev.Cogitri.Health.metainfo.xml.in.in:11 msgid "" -"A health tracking app for the GNOME desktop. Health can visualize how many " -"steps you've made daily, your weight development over time and your daily " -"activities. Data can be synched from Google Fit or manually entered into " -"Health. Afterwards, it can be viewed and edited in Health." +"Health can visualize how many steps you’ve made daily, your weight " +"development over time and your daily activities. Data can be synched from " +"Google Fit or manually entered into Health. Afterwards, it can be viewed and " +"edited in Health." msgstr "" -"Una aplicació de seguiment de salut per a l'escriptori GNOME. Salut pot " -"visualitzar quants passos heu fet cada dia, el vostre desenvolupament de pes" -" amb el temps i les vostres activitats diàries. Les dades es poden " -"sincronitzar des de Google Fit o bé introduir-les manualment al Salut. " -"Després, es poden veure i editar al Salut." +"Salut pot visualitzar quants passos heu fet diàriament, el seu canvi de pes " +"al llarg del temps i les seves activitats diàries. Les dades es poden " +"sincronitzar des de Google Fit o introduir-les manualment a Salut. " +"Posteriorment, es poden veure i editar a Salut." -#: data/dev.Cogitri.Health.metainfo.xml.in.in:37 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:36 msgid "Rasmus “Cogitri” Thomsen" -msgstr "Rasmus \"Cogitri\" Thomsen" +msgstr "Rasmus «Cogitri» Thomsen" #: data/ui/data_add_dialog.blp:5 data/ui/import_export_dialog_base.blp:5 #: src/windows/export_dialog.rs:53 src/windows/export_dialog.rs:89 @@ -210,63 +204,63 @@ msgstr "_Cancel·la" msgid "_Save" msgstr "De_sa" -#: data/ui/date_selector.blp:17 +#: data/ui/date_selector.blp:18 msgid "January" msgstr "gener" -#: data/ui/date_selector.blp:18 src/widgets/date_selector.rs:223 +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:223 msgid "February" msgstr "febrer" -#: data/ui/date_selector.blp:19 +#: data/ui/date_selector.blp:20 msgid "March" msgstr "març" -#: data/ui/date_selector.blp:20 +#: data/ui/date_selector.blp:21 msgid "April" msgstr "abril" -#: data/ui/date_selector.blp:21 +#: data/ui/date_selector.blp:22 msgid "May" msgstr "maig" -#: data/ui/date_selector.blp:22 +#: data/ui/date_selector.blp:23 msgid "June" msgstr "juny" -#: data/ui/date_selector.blp:23 +#: data/ui/date_selector.blp:24 msgid "July" msgstr "juliol" -#: data/ui/date_selector.blp:24 +#: data/ui/date_selector.blp:25 msgid "August" msgstr "agost" -#: data/ui/date_selector.blp:25 +#: data/ui/date_selector.blp:26 msgid "September" msgstr "setembre" -#: data/ui/date_selector.blp:26 +#: data/ui/date_selector.blp:27 msgid "October" msgstr "octubre" -#: data/ui/date_selector.blp:27 +#: data/ui/date_selector.blp:28 msgid "November" msgstr "novembre" -#: data/ui/date_selector.blp:28 +#: data/ui/date_selector.blp:29 msgid "December" msgstr "desembre" -#: data/ui/date_selector.blp:34 +#: data/ui/date_selector.blp:35 msgid "Day" msgstr "Dia" -#: data/ui/date_selector.blp:60 +#: data/ui/date_selector.blp:61 msgid "Month" msgstr "Mes" -#: data/ui/date_selector.blp:83 +#: data/ui/date_selector.blp:84 msgid "Year" msgstr "Any" @@ -297,7 +291,7 @@ msgstr "_Confirmeu la contrasenya" #: data/ui/plugins/activities/details.blp:5 #: data/ui/plugins/calories/details.blp:4 data/ui/plugins/steps/details.blp:4 msgid "You can use the + button to add a new activity." -msgstr "Podeu utilitzar el botó + per afegir una activitat nova." +msgstr "Podeu utilitzar el botó + per a afegir una activitat nova." #: data/ui/plugins/activities/details.blp:8 msgid "Recent Activities" @@ -320,8 +314,8 @@ msgid "" "This is a preview of how the plugin presents data. Enable the plugin to see " "your actual, live data." msgstr "" -"Aquesta és una vista prèvia de com el connector presenta dades. Habiliteu el" -" connector per a veure les vostres dades reals i en viu." +"Aquesta és una vista prèvia de com el connector presenta dades. Habiliteu el " +"connector per a veure les vostres dades reals i en viu." #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 #: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 @@ -330,7 +324,7 @@ msgstr "Passos" #: data/ui/plugins/weight/details.blp:5 msgid "You can use the + button to add a new weight measurement." -msgstr "Podeu utilitzar el botó + per afegir una nova mesura de pes." +msgstr "Podeu utilitzar el botó + per a afegir una nova mesura de pes." #: data/ui/plugins/weight/details.blp:8 msgid "Weight Measurements" @@ -407,16 +401,16 @@ msgid "Step goal" msgstr "Passos a fer" #: data/ui/preferences_window.blp:170 -msgid "The WHO recommends 10,000 steps per day." -msgstr "L'OMS recomana fer 10.000 passos al dia." +msgid "7,500 steps per day are recommended." +msgstr "Es recomanen 7.500 passos al dia." #: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 msgid "Weight Goal" msgstr "Objectiu de pes" -#: data/ui/preferences_window.blp:188 data/ui/setup_window.blp:286 +#: data/ui/preferences_window.blp:188 msgid "The WHO recommends a BMI of 18.5-24.9." -msgstr "L'OMS recomana un IMC de 18,5-24,9." +msgstr "L'OMS recomana un IMC entre 18,5-24,9." #: data/ui/preferences_window.blp:212 msgid "Sync" @@ -472,7 +466,7 @@ msgstr "Us donem la benvinguda a Salut!" #: data/ui/setup_window.blp:128 msgid "Please enter some information to get setup." -msgstr "Introduïu informació per a obtenir la configuració." +msgstr "Introduïu informació per a configurar." #: data/ui/setup_window.blp:212 msgid "Please enter your daily step goal." @@ -486,6 +480,10 @@ msgstr "L'OMS recomana fer 10.000 passos al dia." msgid "Please enter your weight goal." msgstr "Introduïu l'objectiu de pes." +#: data/ui/setup_window.blp:286 +msgid "The WHO recommends a BMI of 18.5–24.9." +msgstr "L'OMS recomana un IMC entre 18,5-24,9." + #: data/ui/setup_window.blp:314 msgid "Current weight" msgstr "Pes actual" @@ -561,7 +559,7 @@ msgstr "Per a vós" msgid "" "No plugins enabled. Enable one from the list below to start using Health." msgstr "" -"No s'ha activat cap connector. Habiliteu-ne un de la llista de sota per " +"No s'ha activat cap connector. Habiliteu-ne un de la llista de sota per a " "començar a utilitzar el Salut." #: data/ui/view_home_page.blp:107 @@ -588,14 +586,18 @@ msgstr "_Quant a Salut" msgid "Enable plugin" msgstr "Habilita el connector" -#: src/core/application.rs:169 +#: src/core/application.rs:175 +msgid "A health tracking app for the GNOME desktop." +msgstr "Una aplicació de seguiment de la salut per a l'escriptori GNOME." + +#: src/core/application.rs:177 msgid "translator-credits" msgstr "" "Marc Riera \n" -"Maite Guix \n" +"Maite Guix , 2022\n" "Jordi Mas i Hernàndez " -#: src/core/application.rs:171 +#: src/core/application.rs:179 msgid "Websites" msgstr "Llocs web" @@ -686,8 +688,8 @@ msgstr "Salut: recordatori de caminar" #: src/model/model_notification.rs:250 msgid "{} step remaining to complete your daily step goal." msgid_plural "{} steps remaining to complete your daily step goal." -msgstr[0] "queda {} pas per a completar el vostre objectiu diari" -msgstr[1] "queden {} passos per a completar el vostre objectiu diari" +msgstr[0] "queda {} pas per a completar el vostre objectiu diari." +msgstr[1] "queden {} passos per a completar el vostre objectiu diari." #: src/plugins/activities/plugin.rs:39 msgid "Activities" @@ -724,35 +726,39 @@ msgstr[0] "{} caloria cremada avui" msgstr[1] "{} calories cremades avui" #: src/plugins/steps/details.rs:186 -msgid "Today's steps: {}" +msgid "Today’s steps: {}" msgstr "Passos d'avui: {}" #: src/plugins/steps/details.rs:201 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" -"Encara no esteu en ratxa. Aconseguiu el vostre objectiu de passos durant diversos" -" dies per a començar una ratxa!" +"Encara no esteu en ratxa. Aconseguiu el vostre objectiu de passos durant " +"diversos dies per a començar una ratxa!" #: src/plugins/steps/details.rs:205 msgid "" -"You're on a streak for {} day. Reach your step goal today to continue it!" +"You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" -"You're on a streak for {} days. Reach your step goal today to continue it!" +"You’re on a streak for {} days. Reach your step goal today to continue it!" msgstr[0] "" -"Esteu en ratxa d'{} dia. Assoliu el vostre objectiu d'avui per a continuaren ratxa!" +"Esteu en ratxa d'{} dia. Assoliu el vostre objectiu d'avui per a continuar " +"en ratxa!" msgstr[1] "" -"Esteus en ratxa de {} dies. Assoliu el vostre objectiu d'avui per a continuar en ratxa!" +"Esteus en ratxa de {} dies. Assoliu el vostre objectiu d'avui per a " +"continuar en ratxa!" #: src/plugins/steps/details.rs:213 -msgid "You've reached your step goal today. Keep going to start a streak!" -msgstr "Avui heu aconseguit el vostre objectiu de passos. Continueu per començar a estar en ratxa!" +msgid "You’ve reached your step goal today. Keep going to start a streak!" +msgstr "" +"Avui heu aconseguit el vostre objectiu de passos. Continueu per a estar en " +"ratxa!" #: src/plugins/steps/details.rs:216 -msgid "You're on a streak for {} day. Good job!" -msgid_plural "You're on a streak for {} days. Good job!" -msgstr[0] "Esteu en ratxa d'{} dia. Bon treball!" -msgstr[1] "Esteu en ratxa de {} dies. Bon treball!" +msgid "You’re on a streak for {} day. Good job!" +msgid_plural "You’re on a streak for {} days. Good job!" +msgstr[0] "Esteu en ratxa d'{} dia. Bona feina!" +msgstr[1] "Esteu en ratxa de {} dies. Bona feina!" #. TRANSLATORS: X step(s) on DATE #: src/plugins/steps/details.rs:233 @@ -770,8 +776,8 @@ msgstr[1] "{} passos que s'han fet avui" #: src/plugins/steps/summary.rs:105 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" -msgstr[0] "Heu assolit {}% de l'objectiu de passos diari." -msgstr[1] "Heu assolit {}% de l'objectiu de passos diari." +msgstr[0] "Heu assolit l'{}% de l'objectiu de passos diari" +msgstr[1] "Heu assolit el {}% de l'objectiu de passos diari" #: src/plugins/steps/summary.rs:112 msgid "Well done! You have reached your daily step goal!" @@ -799,7 +805,7 @@ msgstr[1] "{} quilograms a {}" msgid "Unknown BMI" msgstr "IMC desconegut" -#: src/plugins/weight/details.rs:270 +#: src/plugins/weight/details.rs:268 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -807,13 +813,13 @@ msgid_plural "" "Your weight goal is {} pounds. Add a first weight measurement to see how " "close you are to reaching it." msgstr[0] "" -"L'objectiu de pes és d'{} lliura. Afegiu una primera mesura de pes per a veure" -" com de prop esteu per a arribar-hi." +"L'objectiu de pes és d'{} lliura. Afegiu una primera mesura de pes per a " +"veure com de prop esteu." msgstr[1] "" "L'objectiu de pes és de {} lliures. Afegiu una primera mesura de pes per a " -"veure com de prop esteu per a arribar-hi." +"veure com de prop esteu." -#: src/plugins/weight/details.rs:277 +#: src/plugins/weight/details.rs:275 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -821,51 +827,45 @@ msgid_plural "" "Your weight goal is {} kilograms. Add a first weight measurement to see how " "close you are to reaching it." msgstr[0] "" -"L'objectiu de pes és d'{} quilogram. Afegiu una primera mesura de pes per " -"a veure com de prop esteu per a arribar-hi." +"L'objectiu de pes és d'{} quilogram. Afegiu una primera mesura de pes per a " +"veure com de prop esteu." msgstr[1] "" "L'objectiu de pes és de {} quilograms. Afegiu una primera mesura de pes per " -"a veure com de prop esteu per a arribar-hi." - -#: src/plugins/weight/details.rs:286 -msgid "You've reached your weight goal. Great job!" -msgstr "Has aconseguit el pes objectiu. Bona feina!" - -#. TRANSLATORS: First part of message, ends with [...] you have {} pound left -#. to reach it[.] See next source string. -#: src/plugins/weight/details.rs:302 -msgid "Your weight goal is {} pound," -msgid_plural "Your weight goal is {} pounds," -msgstr[0] "L'objectiu de pes és d'{} lliura," -msgstr[1] "L'objectiu de pes és de {} lliures," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:307 -msgid "you have {} pound left to reach it" -msgid_plural "you have {} pounds left to reach it" -msgstr[0] "us queda {} lliure per a arribar-hi" -msgstr[1] "us queden {} lliures per a arribar-hi" - -#. TRANSLATORS: First part of message, ends with [...] you have {} kilogram -#. left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:314 -msgid "Your weight goal is {} kilogram," -msgid_plural "Your weight goal is {} kilograms," -msgstr[0] "El seu objectiu de pes és d'{} quilogram," -msgstr[1] "El seu objectiu de pes és de {} quilograms," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:320 -msgid "you have {} kilogram left to reach it" -msgid_plural "you have {} kilograms left to reach it" -msgstr[0] "us queda {} quilogram per a arribar-hi" -msgstr[1] "us queden {} quilograms per a arribar-hi" - -#: src/plugins/weight/details.rs:330 -msgid "No weight goal set yet. You can set it in Health's preferences." +"a veure com de prop esteu." + +#: src/plugins/weight/details.rs:284 +msgid "You’ve reached your weight goal. Great job!" +msgstr "Heu aconseguit el pes objectiu. Bona feina!" + +#: src/plugins/weight/details.rs:300 +msgid "Your weight goal is {} pound." +msgid_plural "Your weight goal is {} pounds." +msgstr[0] "L'objectiu de pes és d'{} lliura." +msgstr[1] "L'objectiu de pes és de {} lliures." + +#: src/plugins/weight/details.rs:305 +msgid "You have {} pound left to reach it." +msgid_plural "You have {} pounds left to reach it." +msgstr[0] "Us queda {} lliura per a arribar-hi." +msgstr[1] "Us queden {} lliures per a arribar-hi." + +#: src/plugins/weight/details.rs:312 +msgid "Your weight goal is {} kilogram." +msgid_plural "Your weight goal is {} kilograms." +msgstr[0] "El seu objectiu de pes és d'{} quilogram." +msgstr[1] "El seu objectiu de pes és de {} quilograms." + +#: src/plugins/weight/details.rs:318 +msgid "You have {} kilogram left to reach it" +msgid_plural "You have {} kilograms left to reach it" +msgstr[0] "Us queda {} quilogram per a arribar-hi" +msgstr[1] "Us queden {} quilograms per a arribar-hi" + +#: src/plugins/weight/details.rs:328 +msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" -"Encara no s'ha fixat el pes objectiu. Podeu configurar-lo a les preferències" -" de Salut." +"Encara no s'ha fixat el pes objectiu. Podeu configurar-lo a les preferències " +"de Salut." #: src/plugins/weight/summary.rs:119 msgid "{} pound" @@ -912,40 +912,40 @@ msgid "No weight data available" msgstr "No hi ha dades de pes disponibles" #: src/sync/csv.rs:81 src/sync/csv.rs:370 -msgid "No activities added yet; can't create empty export!" +msgid "No activities added yet; can’t create empty export!" msgstr "" -"Encara no s'han afegit activitats; No es pot crear una exportació buida!" +"Encara no s'han afegit activitats; no es pot crear una exportació buida!" #: src/sync/csv.rs:111 src/sync/csv.rs:388 -msgid "No weight measurements added yet; can't create empty export!" +msgid "No weight measurements added yet; can’t create empty export!" msgstr "" -"Encara no s'han afegit mesures de pes; No es pot crear una exportació buida!" +"Encara no s'han afegit mesures de pes; no es pot crear una exportació buida!" #: src/sync/csv.rs:184 src/sync/csv.rs:332 -msgid "Can't parse encrypted backup without encryption key!" +msgid "Can’t parse encrypted backup without encryption key!" msgstr "" "No es pot analitzar la còpia de seguretat xifrada sense clau de xifrat!" #: src/sync/csv.rs:195 src/sync/csv.rs:352 msgid "" -"Couldn't parse CSV. Are you trying to read an unencrypted backup as an " +"Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " "encrypted one?" msgstr "" "No s'ha pogut analitzar CSV. Esteu intentant llegir una còpia de seguretat " "sense xifrar com a xifrada?" #: src/sync/csv.rs:208 -msgid "Couldn't decrypt data. Are you sure you're using the right key?" +msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" msgstr "" "No s'han pogut desxifrar les dades. Esteu segurs que utilitzeu la clau " "correcta?" #: src/sync/database_receiver.rs:46 -msgid "Couldn't synchronize steps due to error {}" +msgid "Couldn’t synchronize steps due to error {}" msgstr "No s'han pogut sincronitzar els passos a causa d'un error {}" #: src/sync/database_receiver.rs:60 -msgid "Couldn't synchronize weight measurements due to error {}" +msgid "Couldn’t synchronize weight measurements due to error {}" msgstr "No s'han pogut sincronitzar les mesures de pes a causa d'un error {}" #: src/sync/google_fit.rs:211 @@ -958,7 +958,7 @@ msgstr "La sol·licitud de testimoni OAuth2 ha fallat a causa de l'error {}" #: src/sync/sync_provider.rs:109 msgid "" -"Can't retrieve OAuth2 token when no refresh token is set! Please re-" +"Can’t retrieve OAuth2 token when no refresh token is set! Please re-" "authenticate with your sync provider." msgstr "" "No es pot recuperar el testimoni OAuth2 quan no s'estableix cap testimoni " @@ -966,19 +966,20 @@ msgstr "" #: src/sync/sync_provider.rs:157 msgid "Token for Health sync provider {}" -msgstr "Testimoni per al proveïdor de sincronització de salut {}" +msgstr "Testimoni per al proveïdor de sincronització {} de Salut" #: src/sync/sync_provider.rs:217 msgid "Successfully authenticated, please return to Health." msgstr "Autenticat correctament, si us plau, torneu a Salut." #: src/sync/sync_provider.rs:228 -msgid "Couldn't parse OAuth2 response" +msgid "Couldn’t parse OAuth2 response" msgstr "No s'ha pogut analitzar la resposta d'OAuth2" #: src/views/bar_graph_view.rs:583 msgid "Enter weight record to calculate idle calories" -msgstr "Introduïu el registre de pes per calcular les calories no utilitzades" +msgstr "" +"Introduïu el registre de pes per a calcular les calories no utilitzades" #: src/views/bar_graph_view.rs:587 msgid "Idle calories" @@ -1032,15 +1033,15 @@ msgstr "IMC actual: {}" #: src/widgets/distance_action_row.rs:303 msgid "KM" -msgstr "KM" +msgstr "km" #: src/widgets/distance_action_row.rs:304 msgid "Meters" -msgstr "Metres" +msgstr "metres" #: src/widgets/distance_action_row.rs:306 msgid "Miles" -msgstr "Milles" +msgstr "milles" #: src/widgets/distance_action_row.rs:307 msgid "Feet" @@ -1069,7 +1070,7 @@ msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) #: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 msgid "in" -msgstr "a" +msgstr "polçades" #. TRANSLATORS: Unit abbreviation (feet) #: src/widgets/unit_spinbutton.rs:485 @@ -1079,7 +1080,7 @@ msgstr "peus" #. TRANSLATORS: Unit abbreviation (miles) #: src/widgets/unit_spinbutton.rs:487 msgid "mi" -msgstr "mi" +msgstr "milles" #. TRANSLATORS: Unit abbreviation (pounds) #: src/widgets/unit_spinbutton.rs:489 @@ -1098,7 +1099,12 @@ msgstr "Activities.csv.encrypted" #. TRANSLATORS: Please keep the file extension (.csv) #: src/windows/export_dialog.rs:63 msgid "Activities.csv" -msgstr "Activitats.csv" +msgstr "Activities.csv" + +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "No s'ha seleccionat cap fitxer." #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" @@ -1162,14 +1168,19 @@ msgstr "Tanca" #: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 msgid "Target BMI" -msgstr "IMC destí" +msgstr "IMC objectiu" #: src/windows/window.rs:97 msgid "Failed to migrate database to new version due to error {}" msgstr "" -"No s'ha pogut migrar la base de dades a una versió nova a causa d'un error " -"{}" +"No s'ha pogut migrar la base de dades a una versió nova a causa d'un error {}" #: src/windows/window.rs:267 -msgid "Couldn't sync Google Fit data due to error: {}" +msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "No s'han pogut sincronitzar les dades de Google Fit per error: {}" + +#~ msgid "@APPLICATION_ID@" +#~ msgstr "@APPLICATION_ID@" + +#~ msgid "The WHO recommends 10,000 steps per day." +#~ msgstr "L'OMS recomana fer 10.000 passos al dia." -- 2.40.1 From c90e6cba2e4ce4a9119b732801762c6fd6d06229 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Benvenuti?= Date: Sat, 30 Jul 2022 05:05:06 +0000 Subject: [PATCH 18/83] Update German translation --- po/de.po | 216 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 116 insertions(+), 100 deletions(-) diff --git a/po/de.po b/po/de.po index 263f6bf..2e8422a 100644 --- a/po/de.po +++ b/po/de.po @@ -4,21 +4,22 @@ # Philipp Kiemle , 2022. # Tim Sabsch , 2022. # Christian Kirbach , 2022. +# Jürgen Benvenuti , 2022. # msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-05-10 07:50+0000\n" -"PO-Revision-Date: 2022-05-24 11:15+0200\n" -"Last-Translator: Philipp Kiemle \n" +"POT-Creation-Date: 2022-07-26 13:31+0000\n" +"PO-Revision-Date: 2022-07-29 09:18+0200\n" +"Last-Translator: Jürgen Benvenuti \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 3.0.1\n" +"X-Generator: Poedit 3.1.1\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" @@ -71,9 +72,9 @@ msgstr "Liste mit kürzlich durchgeführten Aktivitäten" #: data/dev.Cogitri.Health.gschema.xml:42 msgid "" "Activity types the user used recently, to be shown first in the activity " -"types selector's list" +"types selector’s list" msgstr "" -"Die vom Nutzer kürzlich verwendeten Aktivitätentypen, die als erstes in der " +"Die vom Nutzer kürzlich verwendeten Aktivitäten-Typen, die als erstes in der " "Aktivitäten-Auswahlliste angezeigt werden" #: data/dev.Cogitri.Health.gschema.xml:46 @@ -176,24 +177,24 @@ msgstr "Die Breite des Fensters." msgid "Health" msgstr "Gesundheit" -#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 src/core/application.rs:167 -msgid "A health tracking app for the GNOME desktop." -msgstr "Eine Gesundheitstracker-App für die GNOME Arbeitsumgebung." +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 +msgid "Track your fitness goals" +msgstr "Verfolgen Sie Ihre Fitness-Ziele" #: data/dev.Cogitri.Health.metainfo.xml.in.in:11 msgid "" -"A health tracking app for the GNOME desktop. Health can visualize how many " -"steps you've made daily, your weight development over time and your daily " -"activities. Data can be synched from Google Fit or manually entered into " -"Health. Afterwards, it can be viewed and edited in Health." +"Health can visualize how many steps you’ve made daily, your weight " +"development over time and your daily activities. Data can be synched from " +"Google Fit or manually entered into Health. Afterwards, it can be viewed and " +"edited in Health." msgstr "" -"Eine Gesundheitstracker-App für die GNOME Arbeitsumgebung. Gesundheit kann " -"visualisieren, wie viele Schritte Sie täglich gehen, Ihren Gewichtsverlauf " -"dokumentieren und Ihre Aktivitäten erfassen. Sie können Ihre Daten über " -"Google Fit synchronisieren oder manuell in Gesundheit eingeben, bearbeiten " -"und ansehen." +"Eine Gesundheitstracker-Anwendung für die GNOME Arbeitsumgebung. Gesundheit " +"kann visualisieren, wie viele Schritte Sie täglich gehen, Ihren " +"Gewichtsverlauf dokumentieren und Ihre Aktivitäten erfassen. Sie können Ihre " +"Daten über Google Fit synchronisieren oder manuell in Gesundheit eingeben, " +"bearbeiten und ansehen." -#: data/dev.Cogitri.Health.metainfo.xml.in.in:37 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:36 msgid "Rasmus “Cogitri” Thomsen" msgstr "Rasmus »Cogitri« Thomsen" @@ -208,63 +209,63 @@ msgstr "_Abbrechen" msgid "_Save" msgstr "_Speichern" -#: data/ui/date_selector.blp:17 +#: data/ui/date_selector.blp:18 msgid "January" msgstr "Januar" -#: data/ui/date_selector.blp:18 src/widgets/date_selector.rs:223 +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:223 msgid "February" msgstr "Februar" -#: data/ui/date_selector.blp:19 +#: data/ui/date_selector.blp:20 msgid "March" msgstr "März" -#: data/ui/date_selector.blp:20 +#: data/ui/date_selector.blp:21 msgid "April" msgstr "April" -#: data/ui/date_selector.blp:21 +#: data/ui/date_selector.blp:22 msgid "May" msgstr "Mai" -#: data/ui/date_selector.blp:22 +#: data/ui/date_selector.blp:23 msgid "June" msgstr "Juni" -#: data/ui/date_selector.blp:23 +#: data/ui/date_selector.blp:24 msgid "July" msgstr "Juli" -#: data/ui/date_selector.blp:24 +#: data/ui/date_selector.blp:25 msgid "August" msgstr "August" -#: data/ui/date_selector.blp:25 +#: data/ui/date_selector.blp:26 msgid "September" msgstr "September" -#: data/ui/date_selector.blp:26 +#: data/ui/date_selector.blp:27 msgid "October" msgstr "Oktober" -#: data/ui/date_selector.blp:27 +#: data/ui/date_selector.blp:28 msgid "November" msgstr "November" -#: data/ui/date_selector.blp:28 +#: data/ui/date_selector.blp:29 msgid "December" msgstr "Dezember" -#: data/ui/date_selector.blp:34 +#: data/ui/date_selector.blp:35 msgid "Day" msgstr "Tag" -#: data/ui/date_selector.blp:60 +#: data/ui/date_selector.blp:61 msgid "Month" msgstr "Monat" -#: data/ui/date_selector.blp:83 +#: data/ui/date_selector.blp:84 msgid "Year" msgstr "Jahr" @@ -410,14 +411,14 @@ msgid "Step goal" msgstr "Schrittziel" #: data/ui/preferences_window.blp:170 -msgid "The WHO recommends 10,000 steps per day." -msgstr "Die WHO empfiehlt 10.000 Schritte pro Tag." +msgid "7,500 steps per day are recommended." +msgstr "7.500 Schritte pro Tag sind empfohlen." #: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 msgid "Weight Goal" msgstr "Zielgewicht" -#: data/ui/preferences_window.blp:188 data/ui/setup_window.blp:286 +#: data/ui/preferences_window.blp:188 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "Die WHO empfiehlt einen BMI zwischen 18,5 und 24,9." @@ -482,13 +483,17 @@ msgid "Please enter your daily step goal." msgstr "Bitte geben Sie Ihr tägliches Schrittziel ein." #: data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." -msgstr "Die WHO empfiehlt 10.000 Schritte pro Tag." +msgid "The WHO recommends 7.500 steps per day." +msgstr "Die WHO empfiehlt 7.500 Schritte pro Tag." #: data/ui/setup_window.blp:274 msgid "Please enter your weight goal." msgstr "Bitte geben Sie Ihr Zielgewicht ein." +#: data/ui/setup_window.blp:286 +msgid "The WHO recommends a BMI of 18.5–24.9." +msgstr "Die WHO empfiehlt einen BMI zwischen 18,5 und 24,9." + #: data/ui/setup_window.blp:314 msgid "Current weight" msgstr "Aktuelles Gewicht" @@ -591,14 +596,19 @@ msgstr "_Über Gesundheit" msgid "Enable plugin" msgstr "Plugin aktivieren" -#: src/core/application.rs:169 +#: src/core/application.rs:176 +msgid "A health tracking app for the GNOME desktop." +msgstr "Eine Gesundheitstracker-Anwendung für die GNOME Arbeitsumgebung." + +#: src/core/application.rs:178 msgid "translator-credits" msgstr "" "Philipp Kiemle , 2022\n" "Tim Sabsch , 2022\n" -"Christian Kirbach , 2022" +"Christian Kirbach , 2022\n" +"Jürgen Benvenuti , 2022" -#: src/core/application.rs:171 +#: src/core/application.rs:180 msgid "Websites" msgstr "Webseiten" @@ -727,7 +737,7 @@ msgstr[0] "Heute {} Kalorie verbraucht" msgstr[1] "Heute {} Kalorien verbraucht" #: src/plugins/steps/details.rs:186 -msgid "Today's steps: {}" +msgid "Today’s steps: {}" msgstr "Heutige Schritte: {}" #: src/plugins/steps/details.rs:201 @@ -739,9 +749,9 @@ msgstr "" #: src/plugins/steps/details.rs:205 msgid "" -"You're on a streak for {} day. Reach your step goal today to continue it!" +"You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" -"You're on a streak for {} days. Reach your step goal today to continue it!" +"You’re on a streak for {} days. Reach your step goal today to continue it!" msgstr[0] "" "Sie halten seit {} Tag eine Serie. Erreichen Sie heute Ihr Schrittziel, um " "sie fortzusetzen!" @@ -750,14 +760,14 @@ msgstr[1] "" "sie fortzusetzen!" #: src/plugins/steps/details.rs:213 -msgid "You've reached your step goal today. Keep going to start a streak!" +msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "" "Sie haben heute Ihr Schrittziel erreicht. Machen Sie weiter, um eine Serie " "zu starten!" #: src/plugins/steps/details.rs:216 -msgid "You're on a streak for {} day. Good job!" -msgid_plural "You're on a streak for {} days. Good job!" +msgid "You’re on a streak for {} day. Good job!" +msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Sie halten seit {} Tag eine Serie. Gut gemacht!" msgstr[1] "Sie halten seit {} Tagen eine Serie. Gut gemacht!" @@ -806,7 +816,7 @@ msgstr[1] "{} Kilo am {}" msgid "Unknown BMI" msgstr "Unbekannter BMI" -#: src/plugins/weight/details.rs:270 +#: src/plugins/weight/details.rs:268 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -820,7 +830,7 @@ msgstr[1] "" "Ihr Zielgewicht beträgt {} Pfund. Fügen Sie eine erste Gewichtsmessung " "hinzu, um zu sehen, wie nah Sie Ihrem Ziel sind." -#: src/plugins/weight/details.rs:277 +#: src/plugins/weight/details.rs:275 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -834,40 +844,38 @@ msgstr[1] "" "Ihr Zielgewicht beträgt {} Kilogramm. Fügen Sie eine erste Gewichtsmessung " "hinzu, um zu sehen, wie nah Sie Ihrem Ziel sind." -#: src/plugins/weight/details.rs:286 -msgid "You've reached your weight goal. Great job!" +#: src/plugins/weight/details.rs:284 +msgid "You’ve reached your weight goal. Great job!" msgstr "Sie haben Ihr Zielgewicht erreicht. Herzlichen Glückwunsch!" -#. TRANSLATORS: First part of message, ends with [...] you have {} pound left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:302 -msgid "Your weight goal is {} pound," -msgid_plural "Your weight goal is {} pounds," -msgstr[0] "Ihr Zielgewicht beträgt {} Pfund," -msgstr[1] "Ihr Zielgewicht beträgt {} Pfund," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:307 -msgid "you have {} pound left to reach it" -msgid_plural "you have {} pounds left to reach it" -msgstr[0] "noch {} Pfund bis Sie es erreicht haben" -msgstr[1] "noch {} Pfund bis Sie es erreicht haben" - -#. TRANSLATORS: First part of message, ends with [...] you have {} kilogram left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:314 -msgid "Your weight goal is {} kilogram," -msgid_plural "Your weight goal is {} kilograms," -msgstr[0] "Ihr Zielgewicht beträgt {} Kilogramm," -msgstr[1] "Ihr Zielgewicht beträgt {} Kilogramm," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:320 -msgid "you have {} kilogram left to reach it" -msgid_plural "you have {} kilograms left to reach it" -msgstr[0] "noch {} Kilo bis Sie es erreicht haben" -msgstr[1] "noch {} Kilo bis Sie es erreicht haben" - -#: src/plugins/weight/details.rs:330 -msgid "No weight goal set yet. You can set it in Health's preferences." +#: src/plugins/weight/details.rs:300 +msgid "Your weight goal is {} pound." +msgid_plural "Your weight goal is {} pounds." +msgstr[0] "Ihr Zielgewicht beträgt {} Pfund." +msgstr[1] "Ihr Zielgewicht beträgt {} Pfund." + +# Ist das das Ende eines Satzes, der woanders anfängt, oder warum ist "noch" hier klein geschrieben? - jb +#: src/plugins/weight/details.rs:305 +msgid "You have {} pound left to reach it." +msgid_plural "You have {} pounds left to reach it." +msgstr[0] "noch {} Pfund, bis Sie es erreicht haben." +msgstr[1] "noch {} Pfund, bis Sie es erreicht haben." + +#: src/plugins/weight/details.rs:312 +msgid "Your weight goal is {} kilogram." +msgid_plural "Your weight goal is {} kilograms." +msgstr[0] "Ihr Zielgewicht beträgt {} Kilogramm." +msgstr[1] "Ihr Zielgewicht beträgt {} Kilogramm." + +# s. o. +#: src/plugins/weight/details.rs:318 +msgid "You have {} kilogram left to reach it" +msgid_plural "You have {} kilograms left to reach it" +msgstr[0] "noch {} Kilogramm, bis Sie es erreicht haben" +msgstr[1] "noch {} Kilogramm, bis Sie es erreicht haben" + +#: src/plugins/weight/details.rs:328 +msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" "Bisher wurde kein Zielgewicht festgelegt. Fügen Sie eines in den " "Einstellungen hinzu." @@ -917,42 +925,42 @@ msgid "No weight data available" msgstr "Keine Gewichtsdaten verfügbar" #: src/sync/csv.rs:81 src/sync/csv.rs:370 -msgid "No activities added yet; can't create empty export!" +msgid "No activities added yet; can’t create empty export!" msgstr "" "Bisher wurden keine Aktivitäten hinzugefügt; es ist nicht möglich, eine " "leere Datei zu exportieren!" #: src/sync/csv.rs:111 src/sync/csv.rs:388 -msgid "No weight measurements added yet; can't create empty export!" +msgid "No weight measurements added yet; can’t create empty export!" msgstr "" "Bisher wurden keine Gewichtsmessungen hinzugefügt; es ist nicht möglich, " "eine leere Datei zu exportieren!" #: src/sync/csv.rs:184 src/sync/csv.rs:332 -msgid "Can't parse encrypted backup without encryption key!" +msgid "Can’t parse encrypted backup without encryption key!" msgstr "Verschlüsselte Sicherung kann ohne Schlüssel nicht verarbeitet werden!" #: src/sync/csv.rs:195 src/sync/csv.rs:352 msgid "" -"Couldn't parse CSV. Are you trying to read an unencrypted backup as an " +"Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " "encrypted one?" msgstr "" "CSV konnte nicht verarbeitet werden. Versuchen Sie, eine unverschlüsselte " "Sicherung als eine verschlüsselte zu lesen?" #: src/sync/csv.rs:208 -msgid "Couldn't decrypt data. Are you sure you're using the right key?" +msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" msgstr "" "Daten konnten nicht entschlüsselt werden. Sind Sie sicher, dass Sie den " "richtigen Schlüssel verwenden?" #: src/sync/database_receiver.rs:46 -msgid "Couldn't synchronize steps due to error {}" +msgid "Couldn’t synchronize steps due to error {}" msgstr "" "Schritte konnten aufgrund eines Fehlers nicht synchronisiert werden: {}" #: src/sync/database_receiver.rs:60 -msgid "Couldn't synchronize weight measurements due to error {}" +msgid "Couldn’t synchronize weight measurements due to error {}" msgstr "" "Gewichtsmessungen konnten aufgrund eines Fehlers nicht synchronisiert " "werden: {}" @@ -967,7 +975,7 @@ msgstr "Anfrage eines OAuth2-Tokens fehlgeschlagen: {}" #: src/sync/sync_provider.rs:109 msgid "" -"Can't retrieve OAuth2 token when no refresh token is set! Please re-" +"Can’t retrieve OAuth2 token when no refresh token is set! Please re-" "authenticate with your sync provider." msgstr "" "OAuth2-Token kann nicht erhalten werden, wenn kein Auffrischungstoken " @@ -983,7 +991,7 @@ msgid "Successfully authenticated, please return to Health." msgstr "Authentifizierung erfolgreich, bitte kehren Sie zu Gesundheit zurück." #: src/sync/sync_provider.rs:228 -msgid "Couldn't parse OAuth2 response" +msgid "Couldn’t parse OAuth2 response" msgstr "OAuth2-Antwort konnte nicht verarbeitet werden" #: src/views/bar_graph_view.rs:583 @@ -1058,42 +1066,42 @@ msgid "Feet" msgstr "Fuß" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "in" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "ft" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "mi" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "lb" @@ -1111,6 +1119,11 @@ msgstr "Aktivitäten.csv.encrypted" msgid "Activities.csv" msgstr "Aktivitäten.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Keine Datei ausgewählt" + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "Gewichtsmessung speichern" @@ -1183,9 +1196,12 @@ msgstr "" "werden: {}" #: src/windows/window.rs:267 -msgid "Couldn't sync Google Fit data due to error: {}" +msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "" "Google Fit-Daten konnten aufgrund eines Fehlers nicht verarbeitet werden: {}" +#~ msgid "The WHO recommends 10,000 steps per day." +#~ msgstr "Die WHO empfiehlt 10.000 Schritte pro Tag." + #~ msgid "@APPLICATION_ID@" #~ msgstr "@APPLICATION_ID@" -- 2.40.1 From cd6ab16dd802a8aa33cfb17e43a6dfce72670642 Mon Sep 17 00:00:00 2001 From: Anders Jonsson Date: Sun, 31 Jul 2022 14:16:43 +0000 Subject: [PATCH 19/83] Update Swedish translation --- po/sv.po | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/po/sv.po b/po/sv.po index 130a0a2..243f45e 100644 --- a/po/sv.po +++ b/po/sv.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-21 16:28+0000\n" -"PO-Revision-Date: 2022-07-21 20:49+0200\n" +"POT-Creation-Date: 2022-07-24 21:36+0000\n" +"PO-Revision-Date: 2022-07-25 01:19+0200\n" "Last-Translator: Anders Jonsson \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -468,8 +468,8 @@ msgid "Please enter your daily step goal." msgstr "Ange ditt dagliga stegmål." #: data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." -msgstr "WHO rekommenderar 10 000 steg per dag." +msgid "The WHO recommends 7.500 steps per day." +msgstr "WHO rekommenderar 7 500 steg per dag." #: data/ui/setup_window.blp:274 msgid "Please enter your weight goal." @@ -581,11 +581,11 @@ msgstr "_Om Hälsa" msgid "Enable plugin" msgstr "Aktivera insticksmodul" -#: src/core/application.rs:175 +#: src/core/application.rs:176 msgid "A health tracking app for the GNOME desktop." msgstr "Ett hälsoobservationsprogram för GNOME-skrivbordet." -#: src/core/application.rs:177 +#: src/core/application.rs:178 msgid "translator-credits" msgstr "" "Anders Jonsson \n" @@ -594,7 +594,7 @@ msgstr "" "Skicka synpunkter om översättningen till\n" "." -#: src/core/application.rs:179 +#: src/core/application.rs:180 msgid "Websites" msgstr "Webbplatser" @@ -1038,42 +1038,42 @@ msgid "Feet" msgstr "Fot" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "in" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "ft" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "mi" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "lb" -- 2.40.1 From 528b96ecbcc91fc3276a642a6adf258a1409860d Mon Sep 17 00:00:00 2001 From: Jordi Mas i Hernandez Date: Mon, 1 Aug 2022 21:58:06 +0000 Subject: [PATCH 20/83] Update Catalan translation --- po/ca.po | 50 +++++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/po/ca.po b/po/ca.po index 1ef49e8..0af24da 100644 --- a/po/ca.po +++ b/po/ca.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-21 16:28+0000\n" +"POT-Creation-Date: 2022-07-29 17:52+0000\n" "PO-Revision-Date: 2022-07-22 16:27+0200\n" -"Last-Translator: maite guix \n" +"Last-Translator: Jordi Mas i Hernàndez \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" @@ -112,7 +112,7 @@ msgstr "Edat de l'usuari (obsoleta)." #: data/dev.Cogitri.Health.gschema.xml:66 msgid "Absolute user age" -msgstr "Data de naixement" +msgstr "Edat absoluta de l'usuari" #: data/dev.Cogitri.Health.gschema.xml:67 msgid "The age of the user in absolute terms (like 01/01/1970)" @@ -175,7 +175,7 @@ msgstr "Salut" #: data/dev.Cogitri.Health.metainfo.xml.in.in:9 msgid "Track your fitness goals" -msgstr "Faci un seguiment dels seus objectius de fitness" +msgstr "Feu un seguiment dels vostres objectius de fitness" #: data/dev.Cogitri.Health.metainfo.xml.in.in:11 msgid "" @@ -473,7 +473,9 @@ msgid "Please enter your daily step goal." msgstr "Introduïu l'objectiu diari de passos." #: data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." +#, fuzzy +#| msgid "The WHO recommends 10.000 steps per day." +msgid "The WHO recommends 7.500 steps per day." msgstr "L'OMS recomana fer 10.000 passos al dia." #: data/ui/setup_window.blp:274 @@ -586,18 +588,18 @@ msgstr "_Quant a Salut" msgid "Enable plugin" msgstr "Habilita el connector" -#: src/core/application.rs:175 +#: src/core/application.rs:176 msgid "A health tracking app for the GNOME desktop." msgstr "Una aplicació de seguiment de la salut per a l'escriptori GNOME." -#: src/core/application.rs:177 +#: src/core/application.rs:178 msgid "translator-credits" msgstr "" "Marc Riera \n" "Maite Guix , 2022\n" "Jordi Mas i Hernàndez " -#: src/core/application.rs:179 +#: src/core/application.rs:180 msgid "Websites" msgstr "Llocs web" @@ -646,8 +648,9 @@ msgid "Rollerblading" msgstr "Patins" #: src/model/activity_info.rs:187 +#. N.T. Nom de l'activitat msgid "Running" -msgstr "S'està executant" +msgstr "Córrer" #: src/model/activity_info.rs:197 msgid "Skiing" @@ -678,8 +681,9 @@ msgid "Volleyball" msgstr "Voleibol" #: src/model/activity_info.rs:265 +#. N.T. Nom de l'activitat msgid "Walking" -msgstr "Caminant" +msgstr "Caminar" #: src/model/model_notification.rs:234 msgid "Health: walking reminder" @@ -1048,42 +1052,42 @@ msgid "Feet" msgstr "peus" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" -msgstr "polçades" +msgstr "polzades" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "peus" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "milles" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "lliura" @@ -1112,19 +1116,19 @@ msgstr "Desa la mesura del pes" #: src/windows/export_dialog.rs:95 msgid "Weight Measurements.csv.encrypted" -msgstr "Pes Measurements.csv.encrypted" +msgstr "Weight Measurements.csv.encrypted" #: src/windows/export_dialog.rs:97 msgid "Weight Measurements.csv" -msgstr "Pes Measurements.csv" +msgstr "Weight Measurements.csv" #: src/windows/export_dialog.rs:132 msgid "Export data" -msgstr "Exportar dades" +msgstr "Exporta dades" #: src/windows/import_dialog.rs:51 msgid "Open Activities" -msgstr "Activitats obertes" +msgstr "Obre activitats" #: src/windows/import_dialog.rs:52 src/windows/import_dialog.rs:81 msgid "_Open" -- 2.40.1 From fdadebf1fe87d992b6c865f3696a267ffaa169da Mon Sep 17 00:00:00 2001 From: Ask Hjorth Larsen Date: Thu, 4 Aug 2022 17:03:47 +0000 Subject: [PATCH 21/83] Update Danish translation --- po/da.po | 407 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 236 insertions(+), 171 deletions(-) diff --git a/po/da.po b/po/da.po index afe4537..ee27d7d 100644 --- a/po/da.po +++ b/po/da.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-02-04 14:12+0000\n" -"PO-Revision-Date: 2022-02-06 19:36+0100\n" +"POT-Creation-Date: 2022-07-24 21:36+0000\n" +"PO-Revision-Date: 2022-07-29 14:51+0200\n" "Last-Translator: Ask Hjorth Larsen \n" "Language-Team: Danish \n" "Language: da\n" @@ -39,7 +39,8 @@ msgstr "Angiv aktiverede udvidelsesmoduler" #: data/dev.Cogitri.Health.gschema.xml:27 msgid "Sets all data source plugins that are enabled in Health." -msgstr "Angiver alle udgivelsesmodulerne med datakilder, som er slået til i Health." +msgstr "" +"Angiver alle udgivelsesmodulerne med datakilder, som er slået til i Health." #: data/dev.Cogitri.Health.gschema.xml:31 msgid "Notification time" @@ -56,7 +57,9 @@ msgstr "påmindelsesfrekvens" #: data/dev.Cogitri.Health.gschema.xml:37 msgid "" "How frequent should the user be notified to complete their daily step-goal." -msgstr "Hvor ofte brugeren skal mindes om at fuldføre det daglige mål for antal skridt." +msgstr "" +"Hvor ofte brugeren skal mindes om at fuldføre det daglige mål for antal " +"skridt." #: data/dev.Cogitri.Health.gschema.xml:41 msgid "List of recent activity types" @@ -65,8 +68,10 @@ msgstr "Liste over seneste typer aktivitet" #: data/dev.Cogitri.Health.gschema.xml:42 msgid "" "Activity types the user used recently, to be shown first in the activity " -"types selector's list" -msgstr "Aktiviteterne som brugeren senest har brugt, og som vises først i listen over aktivitetsvalg" +"types selector’s list" +msgstr "" +"Aktiviteterne som brugeren senest har brugt, og som vises først i listen " +"over aktivitetsvalg" #: data/dev.Cogitri.Health.gschema.xml:46 msgid "Google Fit Sync-Provider setup" @@ -90,7 +95,8 @@ msgstr "Måleenheder" #: data/dev.Cogitri.Health.gschema.xml:57 msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "Hvilket måleenhedssystem brugeren valgte, f.eks. cm versus inch for højde" +msgstr "" +"Hvilket måleenhedssystem brugeren valgte, f.eks. cm versus inch for højde" #: data/dev.Cogitri.Health.gschema.xml:61 msgid "User age" @@ -163,24 +169,19 @@ msgstr "Vinduets bredde." msgid "Health" msgstr "Health" -#: data/dev.Cogitri.Health.Autostart.desktop.in.in:5 -#: data/dev.Cogitri.Health.desktop.in.in:5 -msgid "@APPLICATION_ID@" -msgstr "@APPLICATION_ID@" - -#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 src/core/application.rs:167 -msgid "A health tracking app for the GNOME desktop." -msgstr "Et program der holder styr på motion og helbred til GNOME-skrivebordet." +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 +msgid "Track your fitness goals" +msgstr "Hold styr på motion og helbred" #: data/dev.Cogitri.Health.metainfo.xml.in.in:11 msgid "" -"A health tracking app for the GNOME desktop. Health can visualize how many " -"steps you've made daily, your weight development over time and your daily " -"activities. Data can be synched from Google Fit or manually entered into " -"Health. Afterwards, it can be viewed and edited in Health." -msgstr "Et program der holder styr på motion og helbred til GNOME-skrivebordet. Health kan vise, hvor mange skridt du går hver dag, din vægtændring over tid samt dine daglige aktiviteter. Data kan synroniseres med Google Fit eller indtastes manuelt i Health. Bagefter kan data vises og redigeres i Health." +"Health can visualize how many steps you’ve made daily, your weight " +"development over time and your daily activities. Data can be synched from " +"Google Fit or manually entered into Health. Afterwards, it can be viewed and " +"edited in Health." +msgstr "Health kan vise, hvor mange skridt du går hver dag, din vægtændring over tid samt dine daglige aktiviteter. Data kan synroniseres med Google Fit eller indtastes manuelt i Health. Bagefter kan data vises og redigeres i Health." -#: data/dev.Cogitri.Health.metainfo.xml.in.in:37 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:36 msgid "Rasmus “Cogitri” Thomsen" msgstr "Rasmus “Cogitri” Thomsen" @@ -195,63 +196,63 @@ msgstr "_Annullér" msgid "_Save" msgstr "_Gem" -#: data/ui/date_selector.blp:17 +#: data/ui/date_selector.blp:18 msgid "January" msgstr "Januar" -#: data/ui/date_selector.blp:18 src/widgets/date_selector.rs:245 +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:223 msgid "February" msgstr "Februar" -#: data/ui/date_selector.blp:19 +#: data/ui/date_selector.blp:20 msgid "March" msgstr "Marts" -#: data/ui/date_selector.blp:20 +#: data/ui/date_selector.blp:21 msgid "April" msgstr "April" -#: data/ui/date_selector.blp:21 +#: data/ui/date_selector.blp:22 msgid "May" msgstr "Maj" -#: data/ui/date_selector.blp:22 +#: data/ui/date_selector.blp:23 msgid "June" msgstr "Juni" -#: data/ui/date_selector.blp:23 +#: data/ui/date_selector.blp:24 msgid "July" msgstr "Juli" -#: data/ui/date_selector.blp:24 +#: data/ui/date_selector.blp:25 msgid "August" msgstr "August" -#: data/ui/date_selector.blp:25 +#: data/ui/date_selector.blp:26 msgid "September" msgstr "September" -#: data/ui/date_selector.blp:26 +#: data/ui/date_selector.blp:27 msgid "October" msgstr "Oktober" -#: data/ui/date_selector.blp:27 +#: data/ui/date_selector.blp:28 msgid "November" msgstr "November" -#: data/ui/date_selector.blp:28 +#: data/ui/date_selector.blp:29 msgid "December" msgstr "December" -#: data/ui/date_selector.blp:34 +#: data/ui/date_selector.blp:35 msgid "Day" msgstr "Dag" -#: data/ui/date_selector.blp:60 +#: data/ui/date_selector.blp:61 msgid "Month" msgstr "Måned" -#: data/ui/date_selector.blp:83 +#: data/ui/date_selector.blp:84 msgid "Year" msgstr "År" @@ -304,7 +305,9 @@ msgstr "Kalorier forbrændt" msgid "" "This is a preview of how the plugin presents data. Enable the plugin to see " "your actual, live data." -msgstr "Dette er en forhåndsvisning af, hvordan udvidelsesmodulet præsenterer data. Aktivér udvidelsesmodulet for at se de faktiske data." +msgstr "" +"Dette er en forhåndsvisning af, hvordan udvidelsesmodulet præsenterer data. " +"Aktivér udvidelsesmodulet for at se de faktiske data." #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 #: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 @@ -319,8 +322,7 @@ msgstr "Du kan bruge knappen + til at tilføje en ny vægtmåling." msgid "Weight Measurements" msgstr "Vægtmålinger" -#: data/ui/plugins/weight/summary.blp:5 data/ui/preferences_window.blp:184 -#: data/ui/preferences_window.blp:187 data/ui/view_add_weight.blp:38 +#: data/ui/plugins/weight/summary.blp:5 data/ui/view_add_weight.blp:38 #: src/plugins/weight/plugin.rs:39 src/views/view_add_weight.rs:87 msgid "Weight" msgstr "Vægt" @@ -350,23 +352,23 @@ msgstr "Generelle" msgid "User" msgstr "Bruger" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:146 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 msgid "Unit system" msgstr "Enheder" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:156 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 msgid "Imperial" msgstr "Britiske" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 msgid "Metric" msgstr "SI" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:170 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 msgid "Birthday" msgstr "Fødselsdag" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:179 +#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 msgid "Height" msgstr "Højde" @@ -386,16 +388,21 @@ msgstr "Frekvens" msgid "Daily reminder time" msgstr "Tidspunkt for daglig påmindelse" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:242 -#: src/plugins/steps/details.rs:241 +#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 +#: src/plugins/steps/details.rs:240 msgid "Step goal" msgstr "Mål for antal skridt" -#: data/ui/preferences_window.blp:170 data/ui/setup_window.blp:218 -msgid "The WHO recommends 10.000 steps per day." -msgstr "WHO anbefaler 10.000 skridt hver dag." +#: data/ui/preferences_window.blp:170 +msgid "7,500 steps per day are recommended." +msgstr "Det anbefales at gå 7500 skridt om dagen." + +# Undgår ordet "mål" her, da det bliver forvirrende når man også kan "måle" vægt +#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +msgid "Weight Goal" +msgstr "Ønsket vægt" -#: data/ui/preferences_window.blp:188 data/ui/setup_window.blp:279 +#: data/ui/preferences_window.blp:188 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "WHO anbefaler en BMI mellem 18,5 og 24,9." @@ -427,55 +434,68 @@ msgstr "Importér data fra CSV" msgid "Import…" msgstr "Importér …" -#: data/ui/setup_window.blp:33 +#: data/ui/setup_window.blp:39 msgid "Health Setup" msgstr "Opsætning af Health" -#: data/ui/setup_window.blp:47 +#: data/ui/setup_window.blp:53 msgid "_Quit" msgstr "_Afslut" -#: data/ui/setup_window.blp:56 +#: data/ui/setup_window.blp:62 msgid "_Previous" msgstr "_Forrige" -#: data/ui/setup_window.blp:71 +#: data/ui/setup_window.blp:77 msgid "_Next" msgstr "_Næste" -#: data/ui/setup_window.blp:84 +#: data/ui/setup_window.blp:90 msgid "_Done" msgstr "Færdi_g" -#: data/ui/setup_window.blp:110 +#: data/ui/setup_window.blp:116 msgid "Welcome to Health!" msgstr "Velkommen til Health!" -#: data/ui/setup_window.blp:122 +#: data/ui/setup_window.blp:128 msgid "Please enter some information to get setup." msgstr "Indtast venligst nogle oplysninger for at komme i gang." -#: data/ui/setup_window.blp:206 +#: data/ui/setup_window.blp:212 msgid "Please enter your daily step goal." msgstr "Indtast venligst dit mål for antal skridt per dag." -#: data/ui/setup_window.blp:267 +#: data/ui/setup_window.blp:224 +msgid "The WHO recommends 7.500 steps per day." +msgstr "WHO anbefaler 7500 skridt hver dag." + +#: data/ui/setup_window.blp:274 msgid "Please enter your weight goal." msgstr "Indtast venligst den vægt, du vil opnå." +#: data/ui/setup_window.blp:286 +msgid "The WHO recommends a BMI of 18.5–24.9." +msgstr "WHO anbefaler en BMI mellem 18,5 og 24,9." + +#: data/ui/setup_window.blp:314 +msgid "Current weight" +msgstr "Nuværende vægt" + # Undgår ordet "mål" her, da det bliver forvirrende når man også kan "måle" vægt -#: data/ui/setup_window.blp:307 src/plugins/weight/details.rs:221 +#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 msgid "Weight goal" msgstr "Ønsket vægt" -#: data/ui/setup_window.blp:342 +#: data/ui/setup_window.blp:372 msgid "Setup sync with third-party providers." msgstr "Konfigurér synkronisering med tredjepartsudbydere." -#: data/ui/setup_window.blp:354 +#: data/ui/setup_window.blp:384 msgid "" "You can sync steps and weight measurements from/to third-party providers." -msgstr "Du kan synkronisere antal skridt og vægtmålinger med tredjepartsudbydere." +msgstr "" +"Du kan synkronisere antal skridt og vægtmålinger med tredjepartsudbydere." #: data/ui/shortcuts_window.blp:15 msgid "Quit the application" @@ -532,7 +552,9 @@ msgstr "Til dig" #: data/ui/view_home_page.blp:86 msgid "" "No plugins enabled. Enable one from the list below to start using Health." -msgstr "Ingen udvidelsesmoduler aktiveret. Slå et til fra listen nedenfor for at komme i gang med Health." +msgstr "" +"Ingen udvidelsesmoduler aktiveret. Slå et til fra listen nedenfor for at " +"komme i gang med Health." #: data/ui/view_home_page.blp:107 msgid "All data" @@ -558,7 +580,12 @@ msgstr "_Om Health" msgid "Enable plugin" msgstr "Aktivér udvidelsesmodul" -#: src/core/application.rs:169 +#: src/core/application.rs:176 +msgid "A health tracking app for the GNOME desktop." +msgstr "" +"Et program der holder styr på motion og helbred til GNOME-skrivebordet." + +#: src/core/application.rs:178 msgid "translator-credits" msgstr "" "Ask Hjorth Larsen , 2022\n" @@ -567,7 +594,7 @@ msgstr "" "Websted http://dansk-gruppen.dk\n" "E-mail " -#: src/core/application.rs:171 +#: src/core/application.rs:180 msgid "Websites" msgstr "Websteder" @@ -653,11 +680,11 @@ msgstr "Volleyball" msgid "Walking" msgstr "Gang" -#: src/model/model_notification.rs:236 +#: src/model/model_notification.rs:234 msgid "Health: walking reminder" msgstr "Health: påmindelse om at gå" -#: src/model/model_notification.rs:252 +#: src/model/model_notification.rs:250 msgid "{} step remaining to complete your daily step goal." msgid_plural "{} steps remaining to complete your daily step goal." msgstr[0] "Du mangler {} skridt for at nå målet for i dag." @@ -667,13 +694,13 @@ msgstr[1] "Du mangler {} skridt for at nå målet for i dag." msgid "Activities" msgstr "Aktiviteter" -#: src/plugins/activities/summary.rs:93 +#: src/plugins/activities/summary.rs:91 msgid "{} active minute today" msgid_plural "{} active minutes today" msgstr[0] "{} minuts aktivitet i dag" msgstr[1] "{} minutters aktivitet i dag" -#: src/plugins/calories/details.rs:215 +#: src/plugins/calories/details.rs:217 msgid "" "{}:\n" "{} calorie\n" @@ -691,44 +718,46 @@ msgstr[1] "" "{} kalorier\n" "{}" -#: src/plugins/calories/summary.rs:96 src/plugins/calories/summary.rs:103 +#: src/plugins/calories/summary.rs:97 src/plugins/calories/summary.rs:104 msgid "{} calorie burned today" msgid_plural "{} calories burned today" msgstr[0] "{} kalorie forbrændt i dag" msgstr[1] "{} kalorier forbrændt i dag" -#: src/plugins/steps/details.rs:187 -msgid "Today's steps: {}" +#: src/plugins/steps/details.rs:186 +msgid "Today’s steps: {}" msgstr "Antal skridt i dag: {}" # Ideer til "streak"? -#: src/plugins/steps/details.rs:202 +#: src/plugins/steps/details.rs:201 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "Prøv at nå dit mål for antal skridt flere dage i træk!" # Ideer til "streak"? -#: src/plugins/steps/details.rs:206 +#: src/plugins/steps/details.rs:205 msgid "" -"You're on a streak for {} day. Reach your step goal today to continue it!" +"You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" -"You're on a streak for {} days. Reach your step goal today to continue it!" +"You’re on a streak for {} days. Reach your step goal today to continue it!" msgstr[0] "Du har nået målet {} dag. Prøv at nå dit mål i dag også!" msgstr[1] "Du har nået målet {} dage i træk. Prøv at nå dit mål i dag også!" # Ideer til "streak"? -#: src/plugins/steps/details.rs:214 -msgid "You've reached your step goal today. Keep going to start a streak!" -msgstr "Du har nået dagens mål for antal skridt. Fortsæt med at nå målet så mange dage i træk som muligt!" +#: src/plugins/steps/details.rs:213 +msgid "You’ve reached your step goal today. Keep going to start a streak!" +msgstr "" +"Du har nået dagens mål for antal skridt. Fortsæt med at nå målet så mange " +"dage i træk som muligt!" -#: src/plugins/steps/details.rs:217 -msgid "You're on a streak for {} day. Good job!" -msgid_plural "You're on a streak for {} days. Good job!" +#: src/plugins/steps/details.rs:216 +msgid "You’re on a streak for {} day. Good job!" +msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Du har nået målet {} dag. Godt arbejde!" msgstr[1] "Du har nået målet {} dage i træk. Godt arbejde!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:234 +#: src/plugins/steps/details.rs:233 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} skridt {}" @@ -740,162 +769,176 @@ msgid_plural "{} steps taken today" msgstr[0] "{} skridt i dag" msgstr[1] "{} skridt i dag" -#: src/plugins/steps/summary.rs:104 +#: src/plugins/steps/summary.rs:105 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "{} procent af dagens mål er nået" msgstr[1] "{} procent af dagens mål er nået" -#: src/plugins/weight/details.rs:193 +#: src/plugins/steps/summary.rs:112 +msgid "Well done! You have reached your daily step goal!" +msgstr "Godt klaret! Dagens mål for antal skridt er nået." + +#: src/plugins/weight/details.rs:192 msgid "Current BMI: {}" msgstr "Nuværende BMI: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:208 +#: src/plugins/weight/details.rs:207 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} pund {}" msgstr[1] "{} pund {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:211 +#: src/plugins/weight/details.rs:210 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} kilogram {}" msgstr[1] "{} kilogram {}" -#: src/plugins/weight/details.rs:247 src/plugins/weight/details.rs:252 +#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 msgid "Unknown BMI" msgstr "Ukendt BMI" -#: src/plugins/weight/details.rs:271 +#: src/plugins/weight/details.rs:268 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." msgid_plural "" "Your weight goal is {} pounds. Add a first weight measurement to see how " "close you are to reaching it." -msgstr[0] "Din ønskede vægt er {} pund. Tilføj den første vægtmåling for at se, hvor tæt på målet du er." -msgstr[1] "Din ønskede vægt er {} pund. Tilføj den første vægtmåling for at se, hvor tæt på målet du er." +msgstr[0] "" +"Din ønskede vægt er {} pund. Tilføj den første vægtmåling for at se, hvor " +"tæt på målet du er." +msgstr[1] "" +"Din ønskede vægt er {} pund. Tilføj den første vægtmåling for at se, hvor " +"tæt på målet du er." -#: src/plugins/weight/details.rs:278 +#: src/plugins/weight/details.rs:275 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." msgid_plural "" "Your weight goal is {} kilograms. Add a first weight measurement to see how " "close you are to reaching it." -msgstr[0] "Din ønskede vægt er {} kilogram. Tilføj den første vægtmåling for at se, hvor tæt på målet du er." -msgstr[1] "Din ønskede vægt er {} kilogram. Tilføj den første vægtmåling for at se, hvor tæt på målet du er." +msgstr[0] "" +"Din ønskede vægt er {} kilogram. Tilføj den første vægtmåling for at se, " +"hvor tæt på målet du er." +msgstr[1] "" +"Din ønskede vægt er {} kilogram. Tilføj den første vægtmåling for at se, " +"hvor tæt på målet du er." -#: src/plugins/weight/details.rs:287 -msgid "You've reached your weight goal. Great job!" +#: src/plugins/weight/details.rs:284 +msgid "You’ve reached your weight goal. Great job!" msgstr "Du har nået din ønskede vægt. Godt klaret!" -#. TRANSLATORS: First part of message, ends with [...] you have {} pound left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:303 -msgid "Your weight goal is {} pound," -msgid_plural "Your weight goal is {} pounds," -msgstr[0] "Din ønskede vægt er {} pund," -msgstr[1] "Din ønskede vægt er {} pund," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:308 -msgid "you have {} pound left to reach it" -msgid_plural "you have {} pounds left to reach it" -msgstr[0] "du er {} pund fra at nå målet" -msgstr[1] "du er {} pund fra at nå målet" - -#. TRANSLATORS: First part of message, ends with [...] you have {} kilogram left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:315 -msgid "Your weight goal is {} kilogram," -msgid_plural "Your weight goal is {} kilograms," -msgstr[0] "Din ønskede vægt er {} kilogram," -msgstr[1] "Din ønskede vægt er {} kilogram," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:321 -msgid "you have {} kilogram left to reach it" -msgid_plural "you have {} kilograms left to reach it" -msgstr[0] "du er {} kilogram fra at nå målet" -msgstr[1] "du er {} kilogram fra at nå målet" - -#: src/plugins/weight/details.rs:331 -msgid "No weight goal set yet. You can set it in Health's preferences." -msgstr "Ingen ønsket vægt er angivet. Du kan angive den i indstillingerne for Health." - -#: src/plugins/weight/summary.rs:120 +#: src/plugins/weight/details.rs:300 +msgid "Your weight goal is {} pound." +msgid_plural "Your weight goal is {} pounds." +msgstr[0] "Din ønskede vægt er {} pund." +msgstr[1] "Din ønskede vægt er {} pund." + +#: src/plugins/weight/details.rs:305 +msgid "You have {} pound left to reach it." +msgid_plural "You have {} pounds left to reach it." +msgstr[0] "Du er {} pund fra at nå målet." +msgstr[1] "Du er {} pund fra at nå målet." + +#: src/plugins/weight/details.rs:312 +msgid "Your weight goal is {} kilogram." +msgid_plural "Your weight goal is {} kilograms." +msgstr[0] "Din ønskede vægt er {} kilogram." +msgstr[1] "Din ønskede vægt er {} kilogram." + +#: src/plugins/weight/details.rs:318 +msgid "You have {} kilogram left to reach it" +msgid_plural "You have {} kilograms left to reach it" +msgstr[0] "Du er {} kilogram fra at nå målet" +msgstr[1] "Du er {} kilogram fra at nå målet" + +#: src/plugins/weight/details.rs:328 +msgid "No weight goal set yet. You can set it in Health’s preferences." +msgstr "" +"Ingen ønsket vægt er angivet. Du kan angive den i indstillingerne for Health." + +#: src/plugins/weight/summary.rs:119 msgid "{} pound" msgid_plural "{} pounds" msgstr[0] "{} pund" msgstr[1] "{} pund" -#: src/plugins/weight/summary.rs:128 +#: src/plugins/weight/summary.rs:127 msgid "{} kilogram" msgid_plural "{} kilograms" msgstr[0] "{} kilogram" msgstr[1] "{} kilogram" -#: src/plugins/weight/summary.rs:139 +#: src/plugins/weight/summary.rs:138 msgid "+ {} pound compared to previous measurement" msgid_plural "+ {} pounds compared to previous measurement" msgstr[0] "+ {} pund sammenlignet med sidste måling" msgstr[1] "+ {} pund sammenlignet med sidste måling" -#: src/plugins/weight/summary.rs:147 +#: src/plugins/weight/summary.rs:146 msgid "+ {} kilogram compared to previous measurement" msgid_plural "+ {} kilograms compared to previous measurement" msgstr[0] "+ {} kilogram sammenlignet med sidste måling" msgstr[1] "+ {} kilogram sammenlignet med sidste måling" -#: src/plugins/weight/summary.rs:158 +#: src/plugins/weight/summary.rs:157 msgid "{} pound compared to previous measurement" msgid_plural "{} pounds compared to previous measurement" msgstr[0] "{} pund sammenlignet med sidste måling" msgstr[1] "{} pund sammenlignet med sidste måling" -#: src/plugins/weight/summary.rs:166 +#: src/plugins/weight/summary.rs:165 msgid "{} kilogram compared to previous measurement" msgid_plural "{} kilograms compared to previous measurement" msgstr[0] "{} kilogram sammenlignet med sidste måling" msgstr[1] "{} kilogram sammenlignet med sidste måling" -#: src/plugins/weight/summary.rs:174 +#: src/plugins/weight/summary.rs:173 msgid "No change in weight" msgstr "Ingen vægtændring" -#: src/plugins/weight/summary.rs:179 +#: src/plugins/weight/summary.rs:178 msgid "No weight data available" msgstr "Der er ingen vægtdata" -#: src/sync/csv.rs:81 src/sync/csv.rs:371 -msgid "No activities added yet; can't create empty export!" -msgstr "Der er ikke tilføjet nogen aktiviteter — kan ikke oprette en tom eksport!" +#: src/sync/csv.rs:81 src/sync/csv.rs:370 +msgid "No activities added yet; can’t create empty export!" +msgstr "" +"Der er ikke tilføjet nogen aktiviteter — kan ikke oprette en tom eksport!" -#: src/sync/csv.rs:111 src/sync/csv.rs:389 -msgid "No weight measurements added yet; can't create empty export!" -msgstr "Der er ikke tilføjet nogen vægtmålinger — kan ikke oprette en tom eksport!" +#: src/sync/csv.rs:111 src/sync/csv.rs:388 +msgid "No weight measurements added yet; can’t create empty export!" +msgstr "" +"Der er ikke tilføjet nogen vægtmålinger — kan ikke oprette en tom eksport!" -#: src/sync/csv.rs:184 src/sync/csv.rs:333 -msgid "Can't parse encrypted backup without encryption key!" +#: src/sync/csv.rs:184 src/sync/csv.rs:332 +msgid "Can’t parse encrypted backup without encryption key!" msgstr "Kan ikke fortolke krypteret sikkerhedskopi uden krypteringsnøgle!" -#: src/sync/csv.rs:195 src/sync/csv.rs:353 +#: src/sync/csv.rs:195 src/sync/csv.rs:352 msgid "" -"Couldn't parse CSV. Are you trying to read an unencrypted backup as an " +"Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " "encrypted one?" -msgstr "Kunne ikke fortolke CSV. Forsøger du at læse en ukrypteret sikkerhedskopi som krypteret?" +msgstr "" +"Kunne ikke fortolke CSV. Forsøger du at læse en ukrypteret sikkerhedskopi " +"som krypteret?" #: src/sync/csv.rs:208 -msgid "Couldn't decrypt data. Are you sure you're using the right key?" -msgstr "Kunne ikke dekryptere data. Er du sikker på, at du bruger den rette nøgle?" +msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" +msgstr "" +"Kunne ikke dekryptere data. Er du sikker på, at du bruger den rette nøgle?" #: src/sync/database_receiver.rs:46 -msgid "Couldn't synchronize steps due to error {}" +msgid "Couldn’t synchronize steps due to error {}" msgstr "Kunne ikke synkronisere antal skridt på grund af fejlen {}" #: src/sync/database_receiver.rs:60 -msgid "Couldn't synchronize weight measurements due to error {}" +msgid "Couldn’t synchronize weight measurements due to error {}" msgstr "Kunne ikke synkronisere vægtmålinger på grund af fejlen {}" #: src/sync/google_fit.rs:211 @@ -908,27 +951,33 @@ msgstr "Anmodning om OAuth2-token mislykkedes på grund af fejlen {}" #: src/sync/sync_provider.rs:109 msgid "" -"Can't retrieve OAuth2 token when no refresh token is set! Please re-" +"Can’t retrieve OAuth2 token when no refresh token is set! Please re-" "authenticate with your sync provider." -msgstr "Kan ikke hente OAuth2-token, når der ikke er angivet noget genopfrisknings-token! Godkend venligst hos synkroniseringsudbyderen igen." +msgstr "" +"Kan ikke hente OAuth2-token, når der ikke er angivet noget genopfrisknings-" +"token! Godkend venligst hos synkroniseringsudbyderen igen." + +#: src/sync/sync_provider.rs:157 +msgid "Token for Health sync provider {}" +msgstr "Token til Health-synkroniseringsudbyderen {}" -#: src/sync/sync_provider.rs:225 +#: src/sync/sync_provider.rs:217 msgid "Successfully authenticated, please return to Health." msgstr "Godkendt. Vend venligst tilbage til Health." -#: src/sync/sync_provider.rs:236 -msgid "Couldn't parse OAuth2 response" +#: src/sync/sync_provider.rs:228 +msgid "Couldn’t parse OAuth2 response" msgstr "Kunne ikke fortolke OAuth2-svar" -#: src/views/bar_graph_view.rs:584 +#: src/views/bar_graph_view.rs:583 msgid "Enter weight record to calculate idle calories" msgstr "Indtast vægtmåling for at udregne kalorier ved inaktivitet" -#: src/views/bar_graph_view.rs:588 +#: src/views/bar_graph_view.rs:587 msgid "Idle calories" msgstr "Kalorier ved inaktivitet" -#: src/views/view_add_activity.rs:237 +#: src/views/view_add_activity.rs:236 msgid "Activity" msgstr "Aktivitet" @@ -966,7 +1015,11 @@ msgid_plural "{} yards" msgstr[0] "{} yard" msgstr[1] "{} yards" -#: src/widgets/bmi_level_bar.rs:219 src/widgets/bmi_level_bar.rs:256 +#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 +msgid "Current BMI" +msgstr "Nuværende BMI" + +#: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "Nuværende BMI: {}" @@ -987,42 +1040,42 @@ msgid "Feet" msgstr "feet" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "in" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "ft" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "mi" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "lb" @@ -1040,6 +1093,11 @@ msgstr "Aktiviteter.csv.encrypted" msgid "Activities.csv" msgstr "Aktiviteter.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Ingen fil valgt." + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "Gem vægtmåling" @@ -1100,10 +1158,17 @@ msgstr "Der opstod en fejl!" msgid "Close" msgstr "Luk" +#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 +msgid "Target BMI" +msgstr "Ønsket BMI" + #: src/windows/window.rs:97 msgid "Failed to migrate database to new version due to error {}" msgstr "Kunne ikke migrere databasen til ny version på grund af fejlen {}" -#: src/windows/window.rs:266 -msgid "Couldn't sync Google Fit data due to error: {}" +#: src/windows/window.rs:267 +msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "Kunne ikke synkronisere data fra Google Fit på grund af fejl: {}" + +#~ msgid "@APPLICATION_ID@" +#~ msgstr "@APPLICATION_ID@" -- 2.40.1 From b1fad867800ce478c12a3faa9789b1ee43e5150b Mon Sep 17 00:00:00 2001 From: Asier Sarasua Garmendia Date: Sun, 7 Aug 2022 19:08:57 +0000 Subject: [PATCH 22/83] Update Basque translation --- po/eu.po | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/po/eu.po b/po/eu.po index b23473d..60c97e2 100644 --- a/po/eu.po +++ b/po/eu.po @@ -6,8 +6,8 @@ msgid "" msgstr "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-09 18:01+0000\n" -"PO-Revision-Date: 2022-07-16 17:00+0100\n" +"POT-Creation-Date: 2022-07-24 21:36+0000\n" +"PO-Revision-Date: 2022-08-07 17:00+0100\n" "Last-Translator: Asier Sarasua Garmendia \n" "Language-Team: Basque \n" "Language: eu\n" @@ -456,8 +456,8 @@ msgid "Please enter your daily step goal." msgstr "Sartu egunean zenbat urrats egingo dituzun." #: data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." -msgstr "OMEk egunean 10.000 urrats egitea gomendatzen du." +msgid "The WHO recommends 7.500 steps per day." +msgstr "OMEk egunean 7.500 urrats egitea gomendatzen du." #: data/ui/setup_window.blp:274 msgid "Please enter your weight goal." @@ -565,15 +565,15 @@ msgstr "Osasuna aplikazioari _buruz" msgid "Enable plugin" msgstr "Gaitu plugina" -#: src/core/application.rs:169 +#: src/core/application.rs:176 msgid "A health tracking app for the GNOME desktop." msgstr "Osasunaren jarraipena egiteko aplikazioa GNOME mahaigainerako." -#: src/core/application.rs:171 +#: src/core/application.rs:178 msgid "translator-credits" msgstr "translator-credits" -#: src/core/application.rs:173 +#: src/core/application.rs:180 msgid "Websites" msgstr "Webgunea" @@ -994,42 +994,42 @@ msgid "Feet" msgstr "oin" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "hazbete" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "oin" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "milia" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "libera" @@ -1047,6 +1047,11 @@ msgstr "Jarduerak.csv.zifratuta" msgid "Activities.csv" msgstr "Jarduerak.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Ez da fitxategirik hautatu." + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "Gorde pisu-neurketa" -- 2.40.1 From a676e66091ecb767d984dc4cfd77c00eccb930bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sabri=20=C3=9Cnal?= Date: Sun, 7 Aug 2022 23:41:59 +0000 Subject: [PATCH 23/83] Update Turkish translation --- po/tr.po | 205 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 104 insertions(+), 101 deletions(-) diff --git a/po/tr.po b/po/tr.po index 5fe5f65..6b67a0b 100644 --- a/po/tr.po +++ b/po/tr.po @@ -1,4 +1,5 @@ # Turkish translation for Health. +# # Copyright (C) 2022 Health's COPYRIGHT HOLDER # This file is distributed under the same license as the Health package. # @@ -9,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: Health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-04-16 09:23+0000\n" -"PO-Revision-Date: 2022-04-30 21:30+0300\n" +"POT-Creation-Date: 2022-07-26 13:31+0000\n" +"PO-Revision-Date: 2022-08-08 02:37+0300\n" "Last-Translator: Emin Tufan Çetin \n" "Language-Team: Türkçe \n" "Language: tr\n" @@ -18,7 +19,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 3.0.1\n" +"X-Generator: Poedit 3.1.1\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" @@ -70,7 +71,7 @@ msgstr "Son etkinlik türlerinin listesi" #: data/dev.Cogitri.Health.gschema.xml:42 msgid "" "Activity types the user used recently, to be shown first in the activity " -"types selector's list" +"types selector’s list" msgstr "" "Kullanıcının son zamanlarda kullandığı etkinlik türleri, etkinlik türleri " "seçici listesinde önde olarak gösterilir" @@ -170,30 +171,25 @@ msgstr "Pencerenin genişliği." msgid "Health" msgstr "Sağlık" -# Çevirmiyoruz -#: data/dev.Cogitri.Health.Autostart.desktop.in.in:5 -#: data/dev.Cogitri.Health.desktop.in.in:5 -msgid "@APPLICATION_ID@" -msgstr "@APPLICATION_ID@" - -#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 src/core/application.rs:167 -msgid "A health tracking app for the GNOME desktop." -msgstr "GNOME masaüstü için sağlık izleme uygulaması." +# Fitness kelimesine uygun çeviri bulamadığım için spor olarak kullandım. +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 +msgid "Track your fitness goals" +msgstr "Spor hedeflerini takip et" #: data/dev.Cogitri.Health.metainfo.xml.in.in:11 msgid "" -"A health tracking app for the GNOME desktop. Health can visualize how many " -"steps you've made daily, your weight development over time and your daily " -"activities. Data can be synched from Google Fit or manually entered into " -"Health. Afterwards, it can be viewed and edited in Health." +"Health can visualize how many steps you’ve made daily, your weight " +"development over time and your daily activities. Data can be synched from " +"Google Fit or manually entered into Health. Afterwards, it can be viewed and " +"edited in Health." msgstr "" -"GNOME masaüstü için sağlık izleme uygulaması. Sağlık, günlük kaç adım " -"attığınızı, kilo gelişiminizi ve günlük etkinliklerinizi görselleştirebilir. " -"Veriler Google Fit ile eşzamanlanabilir veya Sağlık’a elle girilebilir. Daha " -"sonra Sağlık’ta görüntülenebilir ve düzenlenebilir." +"Sağlık, günlük kaç adım attığınızı, kilo gelişiminizi ve günlük " +"etkinliklerinizi görselleştirebilir. Veriler Google Fit ile eşzamanlanabilir " +"veya Sağlık’a elle girilebilir. Daha sonra Sağlık’ta görüntülenebilir ve " +"düzenlenebilir." # İsim olup çevrilmemeli -#: data/dev.Cogitri.Health.metainfo.xml.in.in:37 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:36 msgid "Rasmus “Cogitri” Thomsen" msgstr "Rasmus “Cogitri” Thomsen" @@ -208,63 +204,63 @@ msgstr "İptal _Et" msgid "_Save" msgstr "Kayd_et" -#: data/ui/date_selector.blp:17 +#: data/ui/date_selector.blp:18 msgid "January" msgstr "Ocak" -#: data/ui/date_selector.blp:18 src/widgets/date_selector.rs:223 +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:223 msgid "February" msgstr "Şubat" -#: data/ui/date_selector.blp:19 +#: data/ui/date_selector.blp:20 msgid "March" msgstr "Mart" -#: data/ui/date_selector.blp:20 +#: data/ui/date_selector.blp:21 msgid "April" msgstr "Nisan" -#: data/ui/date_selector.blp:21 +#: data/ui/date_selector.blp:22 msgid "May" msgstr "Mayıs" -#: data/ui/date_selector.blp:22 +#: data/ui/date_selector.blp:23 msgid "June" msgstr "Haziran" -#: data/ui/date_selector.blp:23 +#: data/ui/date_selector.blp:24 msgid "July" msgstr "Temmuz" -#: data/ui/date_selector.blp:24 +#: data/ui/date_selector.blp:25 msgid "August" msgstr "Ağustos" -#: data/ui/date_selector.blp:25 +#: data/ui/date_selector.blp:26 msgid "September" msgstr "Eylül" -#: data/ui/date_selector.blp:26 +#: data/ui/date_selector.blp:27 msgid "October" msgstr "Ekim" -#: data/ui/date_selector.blp:27 +#: data/ui/date_selector.blp:28 msgid "November" msgstr "Kasım" -#: data/ui/date_selector.blp:28 +#: data/ui/date_selector.blp:29 msgid "December" msgstr "Aralık" -#: data/ui/date_selector.blp:34 +#: data/ui/date_selector.blp:35 msgid "Day" msgstr "Gün" -#: data/ui/date_selector.blp:60 +#: data/ui/date_selector.blp:61 msgid "Month" msgstr "Ay" -#: data/ui/date_selector.blp:83 +#: data/ui/date_selector.blp:84 msgid "Year" msgstr "Yıl" @@ -407,14 +403,14 @@ msgid "Step goal" msgstr "Adım hedefi" #: data/ui/preferences_window.blp:170 -msgid "The WHO recommends 10,000 steps per day." -msgstr "Dünya Sağlık Örgütü günlük 10.000 adım atmayı önermektedir." +msgid "7,500 steps per day are recommended." +msgstr "Günde 7.500 adım önerilir." #: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 msgid "Weight Goal" msgstr "Kilo Hedefi" -#: data/ui/preferences_window.blp:188 data/ui/setup_window.blp:286 +#: data/ui/preferences_window.blp:188 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "Dünya Sağlık Örgütü, 18.5-24.9 arası VKİ önermektedir." @@ -479,13 +475,17 @@ msgid "Please enter your daily step goal." msgstr "Lütfen günlük adım hedefinizi girin." #: data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." -msgstr "Dünya Sağlık Örgütü günlük 10.000 adım atmayı önermektedir." +msgid "The WHO recommends 7.500 steps per day." +msgstr "Dünya Sağlık Örgütü günlük 7.500 adım atmayı önermektedir." #: data/ui/setup_window.blp:274 msgid "Please enter your weight goal." msgstr "Lütfen kilo hedefinizi girin." +#: data/ui/setup_window.blp:286 +msgid "The WHO recommends a BMI of 18.5–24.9." +msgstr "Dünya Sağlık Örgütü, 18.5–24.9 arası VKİ önermektedir." + #: data/ui/setup_window.blp:314 msgid "Current weight" msgstr "Şu anki kilo" @@ -589,13 +589,17 @@ msgstr "Sağlık _Hakkında" msgid "Enable plugin" msgstr "Eklentiyi etkinleştir" -#: src/core/application.rs:169 +#: src/core/application.rs:176 +msgid "A health tracking app for the GNOME desktop." +msgstr "GNOME masaüstü için sağlık izleme uygulaması." + +#: src/core/application.rs:178 msgid "translator-credits" msgstr "" "Emin Tufan Çetin \n" "Sabri Ünal " -#: src/core/application.rs:171 +#: src/core/application.rs:180 msgid "Websites" msgstr "Web siteleri" @@ -718,7 +722,7 @@ msgid_plural "{} calories burned today" msgstr[0] "Bugün {} kalori yakıldı" #: src/plugins/steps/details.rs:186 -msgid "Today's steps: {}" +msgid "Today’s steps: {}" msgstr "Bugünkü adımlar: {}" #: src/plugins/steps/details.rs:201 @@ -730,18 +734,18 @@ msgstr "" #: src/plugins/steps/details.rs:205 msgid "" -"You're on a streak for {} day. Reach your step goal today to continue it!" +"You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" -"You're on a streak for {} days. Reach your step goal today to continue it!" +"You’re on a streak for {} days. Reach your step goal today to continue it!" msgstr[0] "{} gündür seridesin. Sürdürmek için bugün adım hedefinize ulaşın!" #: src/plugins/steps/details.rs:213 -msgid "You've reached your step goal today. Keep going to start a streak!" +msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "Bugün adım hedefinize ulaştınız. Seri için sürdürün!" #: src/plugins/steps/details.rs:216 -msgid "You're on a streak for {} day. Good job!" -msgid_plural "You're on a streak for {} days. Good job!" +msgid "You’re on a streak for {} day. Good job!" +msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "{} gündür seridesin. Başarılar!" #. TRANSLATORS: X step(s) on DATE @@ -785,7 +789,7 @@ msgstr[0] "{} kilogram, {} tarihinde" msgid "Unknown BMI" msgstr "Bilinmeyen VKİ" -#: src/plugins/weight/details.rs:270 +#: src/plugins/weight/details.rs:268 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -796,7 +800,7 @@ msgstr[0] "" "Kilo hedefiniz {} pound. Buna ne kadar yakın olduğunuzu görmek için bir ilk " "kilo ölçümünü ekleyin." -#: src/plugins/weight/details.rs:277 +#: src/plugins/weight/details.rs:275 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -807,39 +811,33 @@ msgstr[0] "" "Kilo hedefiniz {} kilogram. Buna ne kadar yakın olduğunuzu görmek için bir " "ilk kilo ölçümünü ekleyin." -#: src/plugins/weight/details.rs:286 -msgid "You've reached your weight goal. Great job!" +#: src/plugins/weight/details.rs:284 +msgid "You’ve reached your weight goal. Great job!" msgstr "Kilo hedefinize ulaştınız. Harika!" -#. TRANSLATORS: First part of message, ends with [...] you have {} pound left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:302 -msgid "Your weight goal is {} pound," -msgid_plural "Your weight goal is {} pounds," -msgstr[0] "Kilo hedefiniz {} pound," - -# Baştaki boşluk cümlenin önceki cümle ile birleşmemesi için eklenmiştir. Korumayı unutmayın! -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:307 -msgid "you have {} pound left to reach it" -msgid_plural "you have {} pounds left to reach it" -msgstr[0] " ulaşmanıza {} pound kaldı" - -#. TRANSLATORS: First part of message, ends with [...] you have {} kilogram left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:314 -msgid "Your weight goal is {} kilogram," -msgid_plural "Your weight goal is {} kilograms," -msgstr[0] "Kilo hedefiniz {} kilogram," - -# Baştaki boşluk, kesik cümlenin önceki cümle ile birleşmemesi içindir. Koruyunuz. -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:320 -msgid "you have {} kilogram left to reach it" -msgid_plural "you have {} kilograms left to reach it" -msgstr[0] " ulaşmanıza {} kilogram kaldı" - -#: src/plugins/weight/details.rs:330 -msgid "No weight goal set yet. You can set it in Health's preferences." -msgstr "Henüz kilo hedefi belirlenmedi. Sağlık tercihlerinden ayarlanabilir." +#: src/plugins/weight/details.rs:300 +msgid "Your weight goal is {} pound." +msgid_plural "Your weight goal is {} pounds." +msgstr[0] "Kilo hedefiniz {} pound." + +#: src/plugins/weight/details.rs:305 +msgid "You have {} pound left to reach it." +msgid_plural "You have {} pounds left to reach it." +msgstr[0] "Ulaşmanıza {} pound kaldı." + +#: src/plugins/weight/details.rs:312 +msgid "Your weight goal is {} kilogram." +msgid_plural "Your weight goal is {} kilograms." +msgstr[0] "Kilo hedefiniz {} kilogram." + +#: src/plugins/weight/details.rs:318 +msgid "You have {} kilogram left to reach it" +msgid_plural "You have {} kilograms left to reach it" +msgstr[0] "Ulaşmanıza {} kilogram kaldı." + +#: src/plugins/weight/details.rs:328 +msgid "No weight goal set yet. You can set it in Health’s preferences." +msgstr "Henüz kilo hedefi belirlenmedi. Tercihlerden ayarlanabilir." #: src/plugins/weight/summary.rs:119 msgid "{} pound" @@ -880,36 +878,36 @@ msgid "No weight data available" msgstr "Kilo verisi yok" #: src/sync/csv.rs:81 src/sync/csv.rs:370 -msgid "No activities added yet; can't create empty export!" +msgid "No activities added yet; can’t create empty export!" msgstr "Etkinlik eklenmemiş; boş dışa aktarma oluşturulamaz!" #: src/sync/csv.rs:111 src/sync/csv.rs:388 -msgid "No weight measurements added yet; can't create empty export!" +msgid "No weight measurements added yet; can’t create empty export!" msgstr "Kilo ölçümü eklenmemiş; boş dışa aktarma oluşturulamaz!" #: src/sync/csv.rs:184 src/sync/csv.rs:332 -msgid "Can't parse encrypted backup without encryption key!" +msgid "Can’t parse encrypted backup without encryption key!" msgstr "Şifreli yedekleme, şifreleme anahtarı olmadan ayrıştırılamaz!" #: src/sync/csv.rs:195 src/sync/csv.rs:352 msgid "" -"Couldn't parse CSV. Are you trying to read an unencrypted backup as an " +"Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " "encrypted one?" msgstr "" "CSV ayrıştırılamadı. Şifrelenmemiş yedeği şifreli olarak mı okumaya " "çalışıyorsunuz?" #: src/sync/csv.rs:208 -msgid "Couldn't decrypt data. Are you sure you're using the right key?" +msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" msgstr "" "Verilerin şifresi çözülemedi. Doğru anahtarı kullandığınızdan emin misiniz?" #: src/sync/database_receiver.rs:46 -msgid "Couldn't synchronize steps due to error {}" +msgid "Couldn’t synchronize steps due to error {}" msgstr "{} hatası nedeniyle adımlar eşzamanlanamadı" #: src/sync/database_receiver.rs:60 -msgid "Couldn't synchronize weight measurements due to error {}" +msgid "Couldn’t synchronize weight measurements due to error {}" msgstr "{} hatası nedeniyle kilo ölçümleri eşzamanlanamadı" #: src/sync/google_fit.rs:211 @@ -922,7 +920,7 @@ msgstr "{} hatası nedeniyle OAuth2 jetonu istenemedi" #: src/sync/sync_provider.rs:109 msgid "" -"Can't retrieve OAuth2 token when no refresh token is set! Please re-" +"Can’t retrieve OAuth2 token when no refresh token is set! Please re-" "authenticate with your sync provider." msgstr "" "Yenileme jetonu ayarlanmadığında OAuth2 jetonu alınamıyor! Lütfen " @@ -937,7 +935,7 @@ msgid "Successfully authenticated, please return to Health." msgstr "Kimlik doğrulaması başarıyla yapıldı, lütfen Sağlık’a geri dönün." #: src/sync/sync_provider.rs:228 -msgid "Couldn't parse OAuth2 response" +msgid "Couldn’t parse OAuth2 response" msgstr "OAuth2 yanıtı ayrıştırılamadı" #: src/views/bar_graph_view.rs:583 @@ -1009,42 +1007,42 @@ msgid "Feet" msgstr "Feet" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "inç" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "ft" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "mil" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "lb" @@ -1062,6 +1060,11 @@ msgstr "Etkinlikler.csv.encrypted" msgid "Activities.csv" msgstr "Etkinlikler.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Dosya seçilmedi." + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "Kilo Ölçümlerini Kaydet" @@ -1131,5 +1134,5 @@ msgid "Failed to migrate database to new version due to error {}" msgstr "{} hatası nedeniyle veri tabanı yeni sürüme taşınamadı" #: src/windows/window.rs:267 -msgid "Couldn't sync Google Fit data due to error: {}" +msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "Hata nedeniyle Google Fit verileri eşzamanlanamadı: {}" -- 2.40.1 From 6d119d3c10335efc56887e5bc40df53695d7a4a4 Mon Sep 17 00:00:00 2001 From: Kukuh Syafaat Date: Thu, 11 Aug 2022 04:06:07 +0000 Subject: [PATCH 24/83] Update Indonesian translation --- po/id.po | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/po/id.po b/po/id.po index 35f9abb..1a093fe 100644 --- a/po/id.po +++ b/po/id.po @@ -8,16 +8,16 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-09 18:01+0000\n" -"PO-Revision-Date: 2022-07-11 11:07+0700\n" -"Last-Translator: Andika Triwidada \n" +"POT-Creation-Date: 2022-07-24 21:36+0000\n" +"PO-Revision-Date: 2022-08-11 11:05+0700\n" +"Last-Translator: Kukuh Syafaat \n" "Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 3.0\n" +"X-Generator: Poedit 3.1.1\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" @@ -473,8 +473,8 @@ msgid "Please enter your daily step goal." msgstr "Harap masukkan sasaran langkah harian Anda." #: data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." -msgstr "WHO merekomendasikan 10.000 langkah per hari." +msgid "The WHO recommends 7.500 steps per day." +msgstr "WHO merekomendasikan 7.500 langkah per hari." #: data/ui/setup_window.blp:274 msgid "Please enter your weight goal." @@ -586,17 +586,17 @@ msgstr "Tent_ang Kesehatan" msgid "Enable plugin" msgstr "Aktifkan pengaya" -#: src/core/application.rs:169 +#: src/core/application.rs:176 msgid "A health tracking app for the GNOME desktop." msgstr "Aplikasi pelacakan kesehatan untuk destop GNOME." -#: src/core/application.rs:171 +#: src/core/application.rs:178 msgid "translator-credits" msgstr "" "Andika Triwidada , 2021, 2022.\n" "Kukuh Syafaat , 2021-2022." -#: src/core/application.rs:173 +#: src/core/application.rs:180 msgid "Websites" msgstr "Situs web" @@ -1010,42 +1010,42 @@ msgid "Feet" msgstr "Kaki" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "in" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "ft" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "mi" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "lb" @@ -1063,6 +1063,11 @@ msgstr "Activities.csv.encrypted" msgid "Activities.csv" msgstr "Activities.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Ttak ada berkas yang dipilih." + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "Simpan Pengukuran Berat Badan" -- 2.40.1 From d512b162b97aecef6c5d5091d9ec722385fda8c1 Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Mon, 15 Aug 2022 13:18:06 +0000 Subject: [PATCH 25/83] Add Croatian translation --- po/LINGUAS | 1 + po/hr.po | 1209 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1210 insertions(+) create mode 100644 po/hr.po diff --git a/po/LINGUAS b/po/LINGUAS index bd9350c..114db99 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -9,6 +9,7 @@ fi fr gl he +hr id it nl diff --git a/po/hr.po b/po/hr.po new file mode 100644 index 0000000..1aaa494 --- /dev/null +++ b/po/hr.po @@ -0,0 +1,1209 @@ +# Croatian translation for health. +# Copyright (C) 2021 health's COPYRIGHT HOLDER +# This file is distributed under the same license as the health package. +# Milo Ivir , 2021., 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: health master\n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" +"POT-Creation-Date: 2022-03-15 08:58+0000\n" +"PO-Revision-Date: 2022-03-23 15:20+0100\n" +"Last-Translator: Milo Ivir \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Poedit 3.0\n" + +#: data/dev.Cogitri.Health.gschema.xml:16 +msgid "First time setup done" +msgstr "Prvo postavljanje je obavljeno" + +#: data/dev.Cogitri.Health.gschema.xml:17 +msgid "Whether the user has completed the setup wizard" +msgstr "Je li korisnik dovršio postavljanje pomoću čarobnjaka" + +#: data/dev.Cogitri.Health.gschema.xml:21 +msgid "Toggle notifications" +msgstr "Uključi/Isključi obavijesti" + +#: data/dev.Cogitri.Health.gschema.xml:22 +msgid "Whether to enable notifications." +msgstr "Da li aktivirati obavijesti." + +#: data/dev.Cogitri.Health.gschema.xml:26 +msgid "Set enabled plugins" +msgstr "Postavi aktivirane dodatke" + +#: data/dev.Cogitri.Health.gschema.xml:27 +msgid "Sets all data source plugins that are enabled in Health." +msgstr "" +"Postavlja sve dodatke izvora podataka koji su aktivirani u aplikaciji " +"„Zdravlje”." + +#: data/dev.Cogitri.Health.gschema.xml:31 +msgid "Notification time" +msgstr "Vrijeme obavještavanja" + +#: data/dev.Cogitri.Health.gschema.xml:32 +msgid "The time at which Health should remind the user of their step goal" +msgstr "" +"Vrijeme kad aplikacija „Zdravlje” treba podsjetiti korisnike na njihove " +"ciljane brojeve koraka" + +#: data/dev.Cogitri.Health.gschema.xml:36 +msgid "notification frequency" +msgstr "učestalost obavještavanja" + +#: data/dev.Cogitri.Health.gschema.xml:37 +msgid "" +"How frequent should the user be notified to complete their daily step-goal." +msgstr "" +"Koliko često obavještavati korisnika za ispunjavanje svog dnevnog cilja " +"koraka." + +#: data/dev.Cogitri.Health.gschema.xml:41 +msgid "List of recent activity types" +msgstr "Popis vrsta nedavnih aktivnosti" + +#: data/dev.Cogitri.Health.gschema.xml:42 +msgid "" +"Activity types the user used recently, to be shown first in the activity " +"types selector's list" +msgstr "" +"Vrste aktivnosti koje je korisnik nedavno koristio, koje se prikazuju na " +"vrhu popisa za biranje vrsta aktivnosti" + +#: data/dev.Cogitri.Health.gschema.xml:46 +msgid "Google Fit Sync-Provider setup" +msgstr "Postava pružatelja usluge sinkronizacije Google Fit" + +#: data/dev.Cogitri.Health.gschema.xml:47 +msgid "Whether Google Fit has been setup as sync provider" +msgstr "Je li Google Fit postavljen kao pružatelj usluge sinkronizacije" + +#: data/dev.Cogitri.Health.gschema.xml:51 +msgid "Last sync with Google Fit" +msgstr "Zadnja sinkronizacija s Google Fit" + +#: data/dev.Cogitri.Health.gschema.xml:52 +msgid "The last time we synched steps, weight etc. with Google Fit" +msgstr "" +"Zadnji put kad smo sinkronizirali brojeve koraka, težinu itd. s Google Fit" + +#: data/dev.Cogitri.Health.gschema.xml:56 +msgid "Unit system used" +msgstr "Korišteni sustav jedinica" + +#: data/dev.Cogitri.Health.gschema.xml:57 +msgid "The unit system the user chose, e.g. for cm vs inch for height" +msgstr "" +"Jedinični sustav koji je korisnik odabrao, npr. cenitmetri umjesto inča za " +"visinu" + +#: data/dev.Cogitri.Health.gschema.xml:61 +msgid "User age" +msgstr "Korisnička dob" + +#: data/dev.Cogitri.Health.gschema.xml:62 +msgid "The age of the user (deprecated)." +msgstr "Korisnička dob (zastarjelo)." + +#: data/dev.Cogitri.Health.gschema.xml:66 +msgid "Absolute user age" +msgstr "Apsolutna korisnička dob" + +#: data/dev.Cogitri.Health.gschema.xml:67 +msgid "The age of the user in absolute terms (like 01/01/1970)" +msgstr "Korisnička dob u obliku datuma rođenja (npr. 01/01/1970)" + +#: data/dev.Cogitri.Health.gschema.xml:71 +msgid "User height" +msgstr "Visina korisnika" + +#: data/dev.Cogitri.Health.gschema.xml:72 +msgid "The height of the user." +msgstr "Visina korisnika." + +#: data/dev.Cogitri.Health.gschema.xml:76 +msgid "User step goal" +msgstr "Korisnički ciljani broj koraka" + +#: data/dev.Cogitri.Health.gschema.xml:77 +msgid "The amount of steps the user wants to reach daily." +msgstr "Broj koraka koji korisnik želi dnevno postići." + +#: data/dev.Cogitri.Health.gschema.xml:81 +msgid "User weight goal" +msgstr "Korisnička ciljana težina" + +#: data/dev.Cogitri.Health.gschema.xml:82 +msgid "The weight the user wants to reach." +msgstr "Težina koju korisnik želi postići." + +#: data/dev.Cogitri.Health.gschema.xml:86 +msgid "Window height" +msgstr "Visina prozora" + +#: data/dev.Cogitri.Health.gschema.xml:87 +msgid "The height of the window." +msgstr "Visina prozora." + +#: data/dev.Cogitri.Health.gschema.xml:91 +msgid "Window maximized" +msgstr "Prozor rasklopljen" + +#: data/dev.Cogitri.Health.gschema.xml:92 +msgid "Whether the window is maximized." +msgstr "Je li prozor rasklopljen." + +#: data/dev.Cogitri.Health.gschema.xml:96 +msgid "Window width" +msgstr "Širina prozora" + +#: data/dev.Cogitri.Health.gschema.xml:97 +msgid "The width of the window." +msgstr "Širina prozora." + +#: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 +#: data/dev.Cogitri.Health.desktop.in.in:3 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:4 data/ui/window.blp:37 +#: src/main.rs:31 +msgid "Health" +msgstr "Zdravlje" + +#: data/dev.Cogitri.Health.Autostart.desktop.in.in:5 +#: data/dev.Cogitri.Health.desktop.in.in:5 +msgid "@APPLICATION_ID@" +msgstr "@APPLICATION_ID@" + +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 src/core/application.rs:167 +msgid "A health tracking app for the GNOME desktop." +msgstr "Aplikacija za praćenje zdravlja za GNOME okruženje." + +#: data/dev.Cogitri.Health.metainfo.xml.in.in:11 +msgid "" +"A health tracking app for the GNOME desktop. Health can visualize how many " +"steps you've made daily, your weight development over time and your daily " +"activities. Data can be synched from Google Fit or manually entered into " +"Health. Afterwards, it can be viewed and edited in Health." +msgstr "" +"Aplikacija za praćenje zdravlja za GNOME okruženje. Aplikacija „Zdravlje” " +"može vizualizirati broj dnevnih koraka, razvoj težine tijekom vremena i " +"dnevne aktivnosti. Podaci se mogu sinkronizirati s Google Fit ili ručno " +"unijeti u aplikaciju „Zdravlje”. Nakon toga se može pregledati i uređivati u " +"aplikaciji „Zdravlje”." + +#: data/dev.Cogitri.Health.metainfo.xml.in.in:37 +msgid "Rasmus “Cogitri” Thomsen" +msgstr "Rasmus “Cogitri” Thomsen" + +#: data/ui/data_add_dialog.blp:5 data/ui/import_export_dialog_base.blp:5 +#: src/windows/export_dialog.rs:53 src/windows/export_dialog.rs:89 +#: src/windows/import_dialog.rs:53 src/windows/import_dialog.rs:82 +msgid "_Cancel" +msgstr "O_dustani" + +#: data/ui/data_add_dialog.blp:10 src/windows/export_dialog.rs:52 +#: src/windows/export_dialog.rs:88 +msgid "_Save" +msgstr "_Spremi" + +#: data/ui/date_selector.blp:17 +msgid "January" +msgstr "Siječanj" + +#: data/ui/date_selector.blp:18 src/widgets/date_selector.rs:223 +msgid "February" +msgstr "Veljača" + +#: data/ui/date_selector.blp:19 +msgid "March" +msgstr "Ožujak" + +#: data/ui/date_selector.blp:20 +msgid "April" +msgstr "Travanj" + +#: data/ui/date_selector.blp:21 +msgid "May" +msgstr "Svibanj" + +#: data/ui/date_selector.blp:22 +msgid "June" +msgstr "Lipanj" + +#: data/ui/date_selector.blp:23 +msgid "July" +msgstr "Srpanj" + +#: data/ui/date_selector.blp:24 +msgid "August" +msgstr "Kolovoz" + +#: data/ui/date_selector.blp:25 +msgid "September" +msgstr "Rujan" + +#: data/ui/date_selector.blp:26 +msgid "October" +msgstr "Listopad" + +#: data/ui/date_selector.blp:27 +msgid "November" +msgstr "Studeni" + +#: data/ui/date_selector.blp:28 +msgid "December" +msgstr "Prosinac" + +#: data/ui/date_selector.blp:34 +msgid "Day" +msgstr "Dan" + +#: data/ui/date_selector.blp:60 +msgid "Month" +msgstr "Mjesec" + +#: data/ui/date_selector.blp:83 +msgid "Year" +msgstr "Godina" + +#: data/ui/distance_action_row.blp:11 src/widgets/activity_row.rs:131 +msgid "Distance" +msgstr "Udaljenost" + +#: data/ui/import_export_dialog_base.blp:10 +msgid "_Export" +msgstr "Izv_ezi" + +#: data/ui/import_export_dialog_base.blp:56 +msgid "Export weight measurements" +msgstr "Izvezi mjerenja težine" + +#: data/ui/import_export_dialog_base.blp:69 +msgid "Encrypt export" +msgstr "Šifriraj izvoz" + +#: data/ui/password_entry.blp:9 +msgid "_Password" +msgstr "_Lozinka" + +#: data/ui/password_entry.blp:40 +msgid "_Confirm password" +msgstr "_Potvrdi lozinku" + +#: data/ui/plugins/activities/details.blp:5 +#: data/ui/plugins/calories/details.blp:4 data/ui/plugins/steps/details.blp:4 +msgid "You can use the + button to add a new activity." +msgstr "Za dodavanje nove aktivnosti možeš koristiti gumb +." + +#: data/ui/plugins/activities/details.blp:8 +msgid "Recent Activities" +msgstr "Nedavne aktivnosti" + +#: data/ui/plugins/activities/summary.blp:5 data/ui/view_add_activity.blp:84 +msgid "Active Minutes" +msgstr "Aktivne minute" + +#: data/ui/plugins/calories/details.blp:7 src/plugins/calories/plugin.rs:39 +msgid "Calories" +msgstr "Kalorije" + +#: data/ui/plugins/calories/summary.blp:5 data/ui/view_add_activity.blp:66 +msgid "Calories Burned" +msgstr "Potrošene kalorije" + +#: data/ui/plugins/details.blp:68 +msgid "" +"This is a preview of how the plugin presents data. Enable the plugin to see " +"your actual, live data." +msgstr "" +"Ovo je pregled načina na koji dodatak predstavlja podatke. Aktiviraj dodatak " +"za prikaz stvarnih podataka uživo." + +#: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 +#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +msgid "Steps" +msgstr "Koraci" + +#: data/ui/plugins/weight/details.blp:5 +msgid "You can use the + button to add a new weight measurement." +msgstr "Za dodavanje novog mjerenja težine možeš koristiti gumb +." + +#: data/ui/plugins/weight/details.blp:8 +msgid "Weight Measurements" +msgstr "Mjerenja težine" + +#: data/ui/plugins/weight/summary.blp:5 data/ui/view_add_weight.blp:38 +#: src/plugins/weight/plugin.rs:39 src/views/view_add_weight.rs:87 +msgid "Weight" +msgstr "Težina" + +#: data/ui/preferences_window.blp:43 +msgid "_Every 1 hour" +msgstr "_Svakih sat vremena" + +#: data/ui/preferences_window.blp:49 +msgid "_Every 4 hours" +msgstr "_Svaka četiri sata" + +#: data/ui/preferences_window.blp:55 +msgid "_Fixed Time" +msgstr "_Fiksno vrijeme" + +#: data/ui/preferences_window.blp:63 +msgid "Health Preferences" +msgstr "Postavke Zdravlja" + +#: data/ui/preferences_window.blp:69 data/ui/shortcuts_window.blp:11 +msgid "General" +msgstr "Opće" + +#: data/ui/preferences_window.blp:72 +msgid "User" +msgstr "Korisnik" + +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +msgid "Unit system" +msgstr "Sustav jedinica" + +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +msgid "Imperial" +msgstr "Imperijalni" + +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +msgid "Metric" +msgstr "Metrički" + +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +msgid "Birthday" +msgstr "Rođendan" + +#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +msgid "Height" +msgstr "Visina" + +#: data/ui/preferences_window.blp:122 +msgid "Notifications" +msgstr "Obavijesti" + +#: data/ui/preferences_window.blp:125 +msgid "Enable notifications" +msgstr "Aktiviraj obavijesti" + +#: data/ui/preferences_window.blp:136 +msgid "Frequency" +msgstr "Frekvencija" + +#: data/ui/preferences_window.blp:149 +msgid "Daily reminder time" +msgstr "Vrijeme dnevnog podsjetnika" + +#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 +#: src/plugins/steps/details.rs:240 +msgid "Step goal" +msgstr "Ciljani broj koraka" + +#: data/ui/preferences_window.blp:170 +msgid "The WHO recommends 10,000 steps per day." +msgstr "WHO preporučuje 10.000 koraka na dan." + +#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +msgid "Weight Goal" +msgstr "Ciljana težina" + +#: data/ui/preferences_window.blp:188 data/ui/setup_window.blp:286 +msgid "The WHO recommends a BMI of 18.5-24.9." +msgstr "WHO preporučuje indeks tjelesne mase (BMI) od 18,5 do 24,9." + +#: data/ui/preferences_window.blp:212 +msgid "Sync" +msgstr "Sinkronizacija" + +#: data/ui/preferences_window.blp:216 +msgid "Start sync with third-party providers." +msgstr "Započni sinkronizaciju sa stranim pružateljima usluga." + +#: data/ui/preferences_window.blp:224 +msgid "Importing and exporting data" +msgstr "Uvoz i izvoz podataka" + +#: data/ui/preferences_window.blp:227 +msgid "Export data as CSV" +msgstr "Izvezi podatke kao CSV datoteku" + +#: data/ui/preferences_window.blp:230 +msgid "Export…" +msgstr "Izvezi …" + +#: data/ui/preferences_window.blp:237 +msgid "Import data from CSV" +msgstr "Uvezi podatke iz CSV datoteke" + +#: data/ui/preferences_window.blp:240 +msgid "Import…" +msgstr "Uvezi …" + +#: data/ui/setup_window.blp:39 +msgid "Health Setup" +msgstr "Postava Zdravlja" + +#: data/ui/setup_window.blp:53 +msgid "_Quit" +msgstr "_Zatvori aplikaciju" + +#: data/ui/setup_window.blp:62 +msgid "_Previous" +msgstr "_Prethodno" + +#: data/ui/setup_window.blp:77 +msgid "_Next" +msgstr "_Sljedeće" + +#: data/ui/setup_window.blp:90 +msgid "_Done" +msgstr "_Gotovo" + +#: data/ui/setup_window.blp:116 +msgid "Welcome to Health!" +msgstr "Dobro došli u Zdravlje!" + +#: data/ui/setup_window.blp:128 +msgid "Please enter some information to get setup." +msgstr "Za postavljanje aplikacije upiši par informacija." + +#: data/ui/setup_window.blp:212 +msgid "Please enter your daily step goal." +msgstr "Upiši svoj dnevni ciljani broj koraka." + +#: data/ui/setup_window.blp:224 +msgid "The WHO recommends 10.000 steps per day." +msgstr "WHO preporučuje 10.000 koraka na dan." + +#: data/ui/setup_window.blp:274 +msgid "Please enter your weight goal." +msgstr "Upiši svoju ciljanu težinu." + +#: data/ui/setup_window.blp:314 +msgid "Current weight" +msgstr "Trenutačna težina" + +#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +msgid "Weight goal" +msgstr "Ciljana težina" + +#: data/ui/setup_window.blp:372 +msgid "Setup sync with third-party providers." +msgstr "Postavi sinkronizaciju sa stranim pružateljima usluga." + +#: data/ui/setup_window.blp:384 +msgid "" +"You can sync steps and weight measurements from/to third-party providers." +msgstr "" +"Mjerenja koraka i težine možeš sinkronizirati sa stranim pružateljima usluga." + +#: data/ui/shortcuts_window.blp:15 +msgid "Quit the application" +msgstr "Zatvori aplikaciju" + +#: data/ui/shortcuts_window.blp:20 +msgid "Show this shortcuts window" +msgstr "Prikaži ovaj prozor tipkovničkih prečaca" + +#: data/ui/shortcuts_window.blp:25 +msgid "Show help" +msgstr "Prikaži pomoć" + +#: data/ui/shortcuts_window.blp:30 +msgid "Show primary menu" +msgstr "Prikaži glavni izbornik" + +#: data/ui/shortcuts_window.blp:35 +msgid "Toggle fullscreen mode" +msgstr "Uključi/Isključi cjeloekranski prikaz" + +#: data/ui/sync_list_box.blp:30 +msgid "Google Fit" +msgstr "Google Fit" + +#: data/ui/view_add_activity.blp:45 data/ui/view_add_weight.blp:30 +msgid "Date" +msgstr "Datum" + +#: data/ui/view_add_activity.blp:57 +msgid "Activity Type" +msgstr "Vrsta aktivnosti" + +#: data/ui/view_add_activity.blp:97 +msgid "Average Heart Rate" +msgstr "Prosječni broj otkucaji srca" + +#: data/ui/view_add_activity.blp:109 +msgid "Minimum Heart Rate" +msgstr "Najmanji broj otkucaja srca" + +#: data/ui/view_add_activity.blp:121 +msgid "Maximum Heart Rate" +msgstr "Najveći broj otkucaja srca" + +#: data/ui/view_add_activity.blp:133 +msgid "Stepcount" +msgstr "Broj koraka" + +#: data/ui/view_home_page.blp:61 +msgid "For you" +msgstr "Za tebe" + +#: data/ui/view_home_page.blp:86 +msgid "" +"No plugins enabled. Enable one from the list below to start using Health." +msgstr "" +"Nema aktiviranih dodataka. Počni koristiti aplikaciju „Zdravlje” " +"aktiviranjem jednog dodatka iz popisa." + +#: data/ui/view_home_page.blp:107 +msgid "All data" +msgstr "Svi podaci" + +#: data/ui/window.blp:8 +msgid "_Disable Current Plugin" +msgstr "_Deaktiviraj trenutačni dodatak" + +#: data/ui/window.blp:15 +msgid "_Preferences" +msgstr "_Postavke" + +#: data/ui/window.blp:20 +msgid "_Keyboard Shortcuts" +msgstr "_Tipkovnički prečaci" + +#: data/ui/window.blp:27 +msgid "_About Health" +msgstr "O aplikaciji _Zdravlje" + +#: data/ui/window.blp:69 +msgid "Enable plugin" +msgstr "Aktiviraj dodatak" + +#: src/core/application.rs:169 +msgid "translator-credits" +msgstr "Milo Ivir " + +#: src/core/application.rs:171 +msgid "Websites" +msgstr "Web-stranice" + +#: src/model/activity_info.rs:83 +msgid "Basketball" +msgstr "Košarka" + +#: src/model/activity_info.rs:93 +msgid "Bicycling" +msgstr "Biciklizam" + +#: src/model/activity_info.rs:102 +msgid "Boxing" +msgstr "Boks" + +#: src/model/activity_info.rs:111 +msgid "Dancing" +msgstr "Plesanje" + +#: src/model/activity_info.rs:120 +msgid "Football" +msgstr "Nogomet" + +#: src/model/activity_info.rs:127 +msgid "Golf" +msgstr "Golf" + +#: src/model/activity_info.rs:138 +msgid "Hiking" +msgstr "Planinarenje" + +#: src/model/activity_info.rs:147 +msgid "Hockey" +msgstr "Hokej" + +#: src/model/activity_info.rs:157 +msgid "Horse Riding" +msgstr "Jahanje" + +#: src/model/activity_info.rs:166 +msgid "Other Sports" +msgstr "Drugi sportovi" + +#: src/model/activity_info.rs:176 +msgid "Rollerblading" +msgstr "Koturaljkanje" + +#: src/model/activity_info.rs:187 +msgid "Running" +msgstr "Trčanje" + +#: src/model/activity_info.rs:197 +msgid "Skiing" +msgstr "Skijanje" + +#: src/model/activity_info.rs:206 +msgid "Soccer" +msgstr "Nogomet" + +#: src/model/activity_info.rs:215 +msgid "Softball" +msgstr "Softball" + +#: src/model/activity_info.rs:225 +msgid "Swimming" +msgstr "Plivanje" + +#: src/model/activity_info.rs:234 +msgid "Tennis" +msgstr "Tenis" + +#: src/model/activity_info.rs:243 +msgid "Track And Field" +msgstr "Atletika" + +#: src/model/activity_info.rs:254 +msgid "Volleyball" +msgstr "Odbojka" + +#: src/model/activity_info.rs:265 +msgid "Walking" +msgstr "Pješačenje" + +#: src/model/model_notification.rs:234 +msgid "Health: walking reminder" +msgstr "Zdravlje: podsjetnik za hodanje" + +#: src/model/model_notification.rs:250 +msgid "{} step remaining to complete your daily step goal." +msgid_plural "{} steps remaining to complete your daily step goal." +msgstr[0] "Još {} korak za postizanje dnevnog ciljanog broja koraka." +msgstr[1] "Još {} koraka za postizanje dnevnog ciljanog broja koraka." +msgstr[2] "Još {} koraka za postizanje dnevnog ciljanog broja koraka." + +#: src/plugins/activities/plugin.rs:39 +msgid "Activities" +msgstr "Aktivnosti" + +#: src/plugins/activities/summary.rs:91 +msgid "{} active minute today" +msgid_plural "{} active minutes today" +msgstr[0] "{} aktivna minuta danas" +msgstr[1] "{} aktivne minute danas" +msgstr[2] "{} aktivnih minuta danas" + +#: src/plugins/calories/details.rs:217 +msgid "" +"{}:\n" +"{} calorie\n" +"{}" +msgid_plural "" +"{}:\n" +"{} calories\n" +"{}" +msgstr[0] "" +"{}:\n" +"{} kalorija\n" +"{}" +msgstr[1] "" +"{}:\n" +"{} kalorije\n" +"{}" +msgstr[2] "" +"{}:\n" +"{} kalorija\n" +"{}" + +#: src/plugins/calories/summary.rs:97 src/plugins/calories/summary.rs:104 +msgid "{} calorie burned today" +msgid_plural "{} calories burned today" +msgstr[0] "{} potrošena kalorija danas" +msgstr[1] "{} potrošene kalorije danas" +msgstr[2] "{} potrošenih kalorija danas" + +#: src/plugins/steps/details.rs:186 +msgid "Today's steps: {}" +msgstr "Današnji broj koraka: {}" + +#: src/plugins/steps/details.rs:201 +msgid "" +"No streak yet. Reach your step goal for multiple days to start a streak!" +msgstr "" +"Još nemaš slijed uspjeha. Za slijed uspjeha pokušaj postići ciljani broj " +"koraka nekoliko dana za redom!" + +#: src/plugins/steps/details.rs:205 +msgid "" +"You're on a streak for {} day. Reach your step goal today to continue it!" +msgid_plural "" +"You're on a streak for {} days. Reach your step goal today to continue it!" +msgstr[0] "" +"Već {} dan ispunjavaš svoj cij. Za nastavljanje slijeda uspjeha postigni " +"svoj današnji ciljani broj koraka!" +msgstr[1] "" +"Već {} dana ispunjavaš svoj cij. Za nastavljanje slijeda uspjeha postigni " +"svoj današnji ciljani broj koraka!" +msgstr[2] "" +"Već {} dana ispunjavaš svoj cij. Za nastavljanje slijeda uspjeha postigni " +"svoj današnji ciljani broj koraka!" + +#: src/plugins/steps/details.rs:213 +msgid "You've reached your step goal today. Keep going to start a streak!" +msgstr "" +"Danas si postignuo/la svoj ciljani broj koraka. Nastavi tako za postizanje " +"slijeda uspjeha!" + +#: src/plugins/steps/details.rs:216 +msgid "You're on a streak for {} day. Good job!" +msgid_plural "You're on a streak for {} days. Good job!" +msgstr[0] "Već {} dan ispunjavaš svoj cij. Bravo!" +msgstr[1] "Već {} dana ispunjavaš svoj cij. Bravo!" +msgstr[2] "Već {} dana ispunjavaš svoj cij. Bravo!" + +#. TRANSLATORS: X step(s) on DATE +#: src/plugins/steps/details.rs:233 +msgid "{} step on {}" +msgid_plural "{} steps on {}" +msgstr[0] "{} korak {}" +msgstr[1] "{} koraka {}" +msgstr[2] "{} koraka {}" + +#: src/plugins/steps/summary.rs:94 +msgid "{} step taken today" +msgid_plural "{} steps taken today" +msgstr[0] "{} korak danas" +msgstr[1] "{} koraka danas" +msgstr[2] "{} koraka danas" + +#: src/plugins/steps/summary.rs:105 +msgid "Reached {} percent of daily step goal" +msgid_plural "Reached {} percent of daily step goal" +msgstr[0] "Postignut je {} % dnevnog ciljanog broja koraka" +msgstr[1] "Postignuto je {} % dnevnog ciljanog broja koraka" +msgstr[2] "Postignut je {} % dnevnog ciljanog broja koraka" + +#: src/plugins/steps/summary.rs:112 +msgid "Well done! You have reached your daily step goal!" +msgstr "Bravo! Postignuo/la si svoj dnevni ciljani broj koraka!" + +#: src/plugins/weight/details.rs:192 +msgid "Current BMI: {}" +msgstr "Trenutačni indeks tjelesne mase (BMI): {}" + +#. TRANSLATORS: Weight X on date Y +#: src/plugins/weight/details.rs:207 +msgid "{} pound on {}" +msgid_plural "{} pounds on {}" +msgstr[0] "{} funta {}" +msgstr[1] "{} funte {}" +msgstr[2] "{} funta {}" + +#. TRANSLATORS: Weight X on date Y +#: src/plugins/weight/details.rs:210 +msgid "{} kilogram on {}" +msgid_plural "{} kilograms on {}" +msgstr[0] "{} kilogram {}" +msgstr[1] "{} kilograma {}" +msgstr[2] "{} kilograma {}" + +#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +msgid "Unknown BMI" +msgstr "Nepoznat indeks tjelesne mase (BMI)" + +#: src/plugins/weight/details.rs:270 +msgid "" +"Your weight goal is {} pound. Add a first weight measurement to see how " +"close you are to reaching it." +msgid_plural "" +"Your weight goal is {} pounds. Add a first weight measurement to see how " +"close you are to reaching it." +msgstr[0] "" +"Tvoja ciljana težina je {} funta. Saznaj koliko si blizu cilju dodavanjem " +"prvog mjerenja težine." +msgstr[1] "" +"Tvoja ciljana težina su {} funte. Saznaj koliko si blizu cilju dodavanjem " +"prvog mjerenja težine." +msgstr[2] "" +"Tvoja ciljana težina je {} funta. Saznaj koliko si blizu cilju dodavanjem " +"prvog mjerenja težine." + +#: src/plugins/weight/details.rs:277 +msgid "" +"Your weight goal is {} kilogram. Add a first weight measurement to see how " +"close you are to reaching it." +msgid_plural "" +"Your weight goal is {} kilograms. Add a first weight measurement to see how " +"close you are to reaching it." +msgstr[0] "" +"Tvoja ciljana težina je {} kilogram. Saznaj koliko si blizu cilju dodavanjem " +"prvog mjerenja težine." +msgstr[1] "" +"Tvoja ciljana težina su {} kilograma. Saznaj koliko si blizu cilju " +"dodavanjem prvog mjerenja težine." +msgstr[2] "" +"Tvoja ciljana težina je {} kilograma. Saznaj koliko si blizu cilju " +"dodavanjem prvog mjerenja težine." + +#: src/plugins/weight/details.rs:286 +msgid "You've reached your weight goal. Great job!" +msgstr "Postignuo/la si svoju ciljanu težinu. Bravo!" + +#. TRANSLATORS: First part of message, ends with [...] you have {} pound left to reach it[.] See next source string. +#: src/plugins/weight/details.rs:302 +msgid "Your weight goal is {} pound," +msgid_plural "Your weight goal is {} pounds," +msgstr[0] "Tvoja ciljana težina je {} funta," +msgstr[1] "Tvoja ciljana težina su {} funte," +msgstr[2] "Tvoja ciljana težina je {} funta," + +#. TRANSLATORS: Second (final) part of message, see previous source string. +#: src/plugins/weight/details.rs:307 +msgid "you have {} pound left to reach it" +msgid_plural "you have {} pounds left to reach it" +msgstr[0] "nedostaje ti još {} funta" +msgstr[1] "nedostaju ti još {} funte" +msgstr[2] "nedostaje ti još {} funta" + +#. TRANSLATORS: First part of message, ends with [...] you have {} kilogram left to reach it[.] See next source string. +#: src/plugins/weight/details.rs:314 +msgid "Your weight goal is {} kilogram," +msgid_plural "Your weight goal is {} kilograms," +msgstr[0] "Tvoja ciljana težina je {} kilogram," +msgstr[1] "Tvoja ciljana težina su {} kilograma," +msgstr[2] "Tvoja ciljana težina je {} kilograma," + +#. TRANSLATORS: Second (final) part of message, see previous source string. +#: src/plugins/weight/details.rs:320 +msgid "you have {} kilogram left to reach it" +msgid_plural "you have {} kilograms left to reach it" +msgstr[0] "nedostaje ti još {} kilogram" +msgstr[1] "nedostaju ti još {} kilograma" +msgstr[2] "nedostaje ti još {} kilograma" + +#: src/plugins/weight/details.rs:330 +msgid "No weight goal set yet. You can set it in Health's preferences." +msgstr "" +"Ciljana težina još nije postavljena. Postavi je u osobitostima aplikacije " +"Zdravlje." + +#: src/plugins/weight/summary.rs:119 +msgid "{} pound" +msgid_plural "{} pounds" +msgstr[0] "{} funta" +msgstr[1] "{} funte" +msgstr[2] "{} funta" + +#: src/plugins/weight/summary.rs:127 +msgid "{} kilogram" +msgid_plural "{} kilograms" +msgstr[0] "{} kilogram" +msgstr[1] "{} kilograma" +msgstr[2] "{} kilograma" + +#: src/plugins/weight/summary.rs:138 +msgid "+ {} pound compared to previous measurement" +msgid_plural "+ {} pounds compared to previous measurement" +msgstr[0] "+ {} funta u usporedbi s prethodnom težinom" +msgstr[1] "+ {} funte u usporedbi s prethodnom težinom" +msgstr[2] "+ {} funta u usporedbi s prethodnom težinom" + +#: src/plugins/weight/summary.rs:146 +msgid "+ {} kilogram compared to previous measurement" +msgid_plural "+ {} kilograms compared to previous measurement" +msgstr[0] "+ {} kilogram u usporedbi s prethodnom težinom" +msgstr[1] "+ {} kilograma u usporedbi s prethodnom težinom" +msgstr[2] "+ {} kilograma u usporedbi s prethodnom težinom" + +#: src/plugins/weight/summary.rs:157 +msgid "{} pound compared to previous measurement" +msgid_plural "{} pounds compared to previous measurement" +msgstr[0] "{} funta u usporedbi s prethodnom težinom" +msgstr[1] "{} funte u usporedbi s prethodnom težinom" +msgstr[2] "{} funta u usporedbi s prethodnom težinom" + +#: src/plugins/weight/summary.rs:165 +msgid "{} kilogram compared to previous measurement" +msgid_plural "{} kilograms compared to previous measurement" +msgstr[0] "{} kilogram u usporedbi s prethodnom težinom" +msgstr[1] "{} kilograma u usporedbi s prethodnom težinom" +msgstr[2] "{} kilograma u usporedbi s prethodnom težinom" + +#: src/plugins/weight/summary.rs:173 +msgid "No change in weight" +msgstr "Nema promjene u težini" + +#: src/plugins/weight/summary.rs:178 +msgid "No weight data available" +msgstr "Nema zapisa o težini" + +#: src/sync/csv.rs:81 src/sync/csv.rs:370 +msgid "No activities added yet; can't create empty export!" +msgstr "Još nije dodana nijedna aktivnost; nije moguće stvoriti prazan izvoz!" + +#: src/sync/csv.rs:111 src/sync/csv.rs:388 +msgid "No weight measurements added yet; can't create empty export!" +msgstr "" +"Još nije dodano nijedno mjerenje težine; nije moguće stvoriti prazan izvoz!" + +#: src/sync/csv.rs:184 src/sync/csv.rs:332 +msgid "Can't parse encrypted backup without encryption key!" +msgstr "" +"Nije moguće obraditi šifriranu sigurnosnu kopiju bez ključa za šifriranje!" + +#: src/sync/csv.rs:195 src/sync/csv.rs:352 +msgid "" +"Couldn't parse CSV. Are you trying to read an unencrypted backup as an " +"encrypted one?" +msgstr "" +"Nije bilo moguće obraditi CSV datoteku. Pokušavaš li pročitati nešifriranu " +"sigurnosnu kopiju kao šifriranu?" + +#: src/sync/csv.rs:208 +msgid "Couldn't decrypt data. Are you sure you're using the right key?" +msgstr "Nije bilo moguće dešifrirati podatke. Koristiš li ispravan ključ?" + +#: src/sync/database_receiver.rs:46 +msgid "Couldn't synchronize steps due to error {}" +msgstr "Nije bilo moguće sinkronizirati korake zbog greške {}" + +#: src/sync/database_receiver.rs:60 +msgid "Couldn't synchronize weight measurements due to error {}" +msgstr "Nije bilo moguće sinkronizirati mjerenja težine zbog greške {}" + +#: src/sync/google_fit.rs:211 +msgid "CRSF Verification failed, got {}, expected {}" +msgstr "CRSF potvrda neuspjela, dobiveno {}, očekivano {}" + +#: src/sync/google_fit.rs:227 +msgid "Requesting OAuth2 token failed due to error {}" +msgstr "Zahtjev za OAuth2 tokenom neuspio zbog greške {}" + +#: src/sync/sync_provider.rs:109 +msgid "" +"Can't retrieve OAuth2 token when no refresh token is set! Please re-" +"authenticate with your sync provider." +msgstr "" +"Nije moguće dohvatiti OAuth2 token kad nije postavljen token za " +"osvježavanje! Ponovo se autentificiraj kod svog pružatelja usluge " +"sinkronizacije." + +#: src/sync/sync_provider.rs:157 +msgid "Token for Health sync provider {}" +msgstr "" + +#: src/sync/sync_provider.rs:217 +msgid "Successfully authenticated, please return to Health." +msgstr "Autentifikacija je uspjela, vrati se na Zdravlje." + +#: src/sync/sync_provider.rs:228 +msgid "Couldn't parse OAuth2 response" +msgstr "Nije bilo moguće obraditi OAuth2 odgovor" + +#: src/views/bar_graph_view.rs:583 +msgid "Enter weight record to calculate idle calories" +msgstr "Upiši zapis o težini za izračunavanje kalorija u mirovanju" + +#: src/views/bar_graph_view.rs:587 +msgid "Idle calories" +msgstr "Kalorije u mirovanju" + +#: src/views/view_add_activity.rs:236 +msgid "Activity" +msgstr "Aktivnost" + +#: src/widgets/activity_row.rs:79 +#| msgid "{} Minute" +#| msgid_plural "{} Minutes" +msgid "{} for {} Minute" +msgid_plural "{} for {} Minutes" +msgstr[0] "{} za {} minutu" +msgstr[1] "{} za {} minute" +msgstr[2] "{} za {} minuta" + +#: src/widgets/activity_row.rs:91 +msgid "Calories burned" +msgstr "Potrošene kalorije" + +#: src/widgets/activity_row.rs:101 +msgid "Average heart rate" +msgstr "Prosječni broj otkucaji srca" + +#: src/widgets/activity_row.rs:107 +msgid "Maximum heart rate" +msgstr "Najveći broj otkucaja srca" + +#: src/widgets/activity_row.rs:113 +msgid "Minimum heart rate" +msgstr "Najmanji broj otkucaja srca" + +#: src/widgets/activity_row.rs:126 +msgid "{} meter" +msgid_plural "{} meters" +msgstr[0] "{} metar" +msgstr[1] "{} metra" +msgstr[2] "{} metara" + +#: src/widgets/activity_row.rs:129 +msgid "{} yard" +msgid_plural "{} yards" +msgstr[0] "{} yard" +msgstr[1] "{} yarda" +msgstr[2] "{} yarda" + +#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 +msgid "Current BMI" +msgstr "Trenutačni indeks tjelesne mase (BMI)" + +#: src/widgets/bmi_level_bar.rs:274 +msgid "Current BMI: {}" +msgstr "Trenutačni indeks tjelesne mase (BMI): {}" + +#: src/widgets/distance_action_row.rs:303 +msgid "KM" +msgstr "km" + +#: src/widgets/distance_action_row.rs:304 +msgid "Meters" +msgstr "metara" + +#: src/widgets/distance_action_row.rs:306 +msgid "Miles" +msgstr "milja" + +#: src/widgets/distance_action_row.rs:307 +msgid "Feet" +msgstr "stopa" + +#. TRANSLATORS: Unit abbreviation (centimeters) +#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +msgid "cm" +msgstr "cm" + +#. TRANSLATORS: Unit abbreviation (meters) +#: src/widgets/unit_spinbutton.rs:477 +msgid "m" +msgstr "m" + +#. TRANSLATORS: Unit abbreviation (kilometers) +#: src/widgets/unit_spinbutton.rs:479 +msgid "km" +msgstr "km" + +#. TRANSLATORS: Unit abbreviation (kilograms) +#: src/widgets/unit_spinbutton.rs:481 +msgid "kg" +msgstr "kg" + +#. TRANSLATORS: Unit abbreviation (inch) +#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +msgid "in" +msgstr "in" + +#. TRANSLATORS: Unit abbreviation (feet) +#: src/widgets/unit_spinbutton.rs:485 +msgid "ft" +msgstr "ft" + +#. TRANSLATORS: Unit abbreviation (miles) +#: src/widgets/unit_spinbutton.rs:487 +msgid "mi" +msgstr "mi" + +#. TRANSLATORS: Unit abbreviation (pounds) +#: src/widgets/unit_spinbutton.rs:489 +msgid "lb" +msgstr "lb" + +#: src/windows/export_dialog.rs:51 +msgid "Save Activities" +msgstr "Spremi aktivnosti" + +#. TRANSLATORS: Please keep the file extension (.csv.encrypted) +#: src/windows/export_dialog.rs:60 +msgid "Activities.csv.encrypted" +msgstr "Aktivnosti.csv.šifrirano" + +#. TRANSLATORS: Please keep the file extension (.csv) +#: src/windows/export_dialog.rs:63 +msgid "Activities.csv" +msgstr "Aktivnosti.csv" + +#: src/windows/export_dialog.rs:87 +msgid "Save Weight Measurement" +msgstr "Spremi mjerenje težine" + +#: src/windows/export_dialog.rs:95 +msgid "Weight Measurements.csv.encrypted" +msgstr "Težina Mjerenja.csv.šifrirano" + +#: src/windows/export_dialog.rs:97 +msgid "Weight Measurements.csv" +msgstr "Težina Mjerenja.csv" + +#: src/windows/export_dialog.rs:132 +msgid "Export data" +msgstr "Izvezi podatke" + +#: src/windows/import_dialog.rs:51 +msgid "Open Activities" +msgstr "Otvori aktivnosti" + +#: src/windows/import_dialog.rs:52 src/windows/import_dialog.rs:81 +msgid "_Open" +msgstr "_Otvori" + +#: src/windows/import_dialog.rs:80 +msgid "Open Weight Measurement" +msgstr "Otvori mjerenje težine" + +#: src/windows/import_dialog.rs:121 +msgid "Import data" +msgstr "Uvezi podatke" + +#: src/windows/import_export_dialog_base.rs:214 +msgid "Import activities" +msgstr "Uvezi aktivnosti" + +#: src/windows/import_export_dialog_base.rs:216 +msgid "Import is encrypted" +msgstr "Uvoz je šifriran" + +#: src/windows/import_export_dialog_base.rs:217 +msgid "Import weights" +msgstr "Uvezi težine" + +#: src/windows/import_export_dialog_base.rs:218 +msgid "Import" +msgstr "Uvezi" + +#: src/windows/import_export_dialog_base.rs:296 +msgid "Success!" +msgstr "Uspjeh!" + +#: src/windows/import_export_dialog_base.rs:300 +msgid "An error occurred!" +msgstr "Dogodila se greška!" + +#: src/windows/import_export_dialog_base.rs:305 +msgid "Close" +msgstr "Zatvori" + +#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 +msgid "Target BMI" +msgstr "Ciljani indeks tjelesne mase (BMI)" + +#: src/windows/window.rs:97 +msgid "Failed to migrate database to new version due to error {}" +msgstr "Migriranje baze podataka na novu verziju nije uspjelo zbog greške {}" + +#: src/windows/window.rs:267 +msgid "Couldn't sync Google Fit data due to error: {}" +msgstr "Nije bilo moguće sinkronizirati podatke od Google Fit zbog greške: {}" -- 2.40.1 From aad08b70e6348f45e539a44dd9be7dd5e643b4bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Goran=20Vidovi=C4=87?= Date: Mon, 15 Aug 2022 15:23:33 +0000 Subject: [PATCH 26/83] Update Croatian translation --- po/hr.po | 522 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 265 insertions(+), 257 deletions(-) diff --git a/po/hr.po b/po/hr.po index 1aaa494..02e704a 100644 --- a/po/hr.po +++ b/po/hr.po @@ -7,17 +7,17 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-03-15 08:58+0000\n" -"PO-Revision-Date: 2022-03-23 15:20+0100\n" -"Last-Translator: Milo Ivir \n" +"POT-Creation-Date: 2022-08-15 13:18+0000\n" +"PO-Revision-Date: 2022-08-15 17:10+0200\n" +"Last-Translator: gogo \n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Poedit 3.0\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Poedit 3.1.1\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" @@ -25,46 +25,44 @@ msgstr "Prvo postavljanje je obavljeno" #: data/dev.Cogitri.Health.gschema.xml:17 msgid "Whether the user has completed the setup wizard" -msgstr "Je li korisnik dovršio postavljanje pomoću čarobnjaka" +msgstr "Treba li korisnik završiti postavljanje pomoću čarobnjaka" #: data/dev.Cogitri.Health.gschema.xml:21 msgid "Toggle notifications" -msgstr "Uključi/Isključi obavijesti" +msgstr "Uklj/Isklj obavijesti" #: data/dev.Cogitri.Health.gschema.xml:22 msgid "Whether to enable notifications." -msgstr "Da li aktivirati obavijesti." +msgstr "Treba li omogućiti obavijesti." #: data/dev.Cogitri.Health.gschema.xml:26 msgid "Set enabled plugins" -msgstr "Postavi aktivirane dodatke" +msgstr "Postavi omogućene priključke" #: data/dev.Cogitri.Health.gschema.xml:27 msgid "Sets all data source plugins that are enabled in Health." -msgstr "" -"Postavlja sve dodatke izvora podataka koji su aktivirani u aplikaciji " -"„Zdravlje”." +msgstr "Postavlja sve podatke izvora priključaka koji su omogućeni u Zdravlju." #: data/dev.Cogitri.Health.gschema.xml:31 msgid "Notification time" -msgstr "Vrijeme obavještavanja" +msgstr "Vrijeme obavijesti" #: data/dev.Cogitri.Health.gschema.xml:32 msgid "The time at which Health should remind the user of their step goal" msgstr "" -"Vrijeme kad aplikacija „Zdravlje” treba podsjetiti korisnike na njihove " -"ciljane brojeve koraka" +"Vrijeme u kojemu Zdravlje treba podsjetiti korisnika na njegove ciljane " +"brojeve koraka" #: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" -msgstr "učestalost obavještavanja" +msgstr "učestalost obavijesti" #: data/dev.Cogitri.Health.gschema.xml:37 msgid "" "How frequent should the user be notified to complete their daily step-goal." msgstr "" -"Koliko često obavještavati korisnika za ispunjavanje svog dnevnog cilja " -"koraka." +"Koliko često korisnika treba obavještavati za ispunjavanje svoga dnevnog " +"cilja koraka." #: data/dev.Cogitri.Health.gschema.xml:41 msgid "List of recent activity types" @@ -73,14 +71,14 @@ msgstr "Popis vrsta nedavnih aktivnosti" #: data/dev.Cogitri.Health.gschema.xml:42 msgid "" "Activity types the user used recently, to be shown first in the activity " -"types selector's list" +"types selector’s list" msgstr "" "Vrste aktivnosti koje je korisnik nedavno koristio, koje se prikazuju na " -"vrhu popisa za biranje vrsta aktivnosti" +"vrhu popisa biranja vrsta aktivnosti" #: data/dev.Cogitri.Health.gschema.xml:46 msgid "Google Fit Sync-Provider setup" -msgstr "Postava pružatelja usluge sinkronizacije Google Fit" +msgstr "Postavljanje pružatelja usluge Google Fit sinkronizacije" #: data/dev.Cogitri.Health.gschema.xml:47 msgid "Whether Google Fit has been setup as sync provider" @@ -102,24 +100,24 @@ msgstr "Korišteni sustav jedinica" #: data/dev.Cogitri.Health.gschema.xml:57 msgid "The unit system the user chose, e.g. for cm vs inch for height" msgstr "" -"Jedinični sustav koji je korisnik odabrao, npr. cenitmetri umjesto inča za " +"Sustav jedinica koji je korisnik odabrao, npr. cenitmetri umjesto inča za " "visinu" #: data/dev.Cogitri.Health.gschema.xml:61 msgid "User age" -msgstr "Korisnička dob" +msgstr "Korisnikova dob" #: data/dev.Cogitri.Health.gschema.xml:62 msgid "The age of the user (deprecated)." -msgstr "Korisnička dob (zastarjelo)." +msgstr "Korisnikova dob (zastarjelo)." #: data/dev.Cogitri.Health.gschema.xml:66 msgid "Absolute user age" -msgstr "Apsolutna korisnička dob" +msgstr "Apsolutna korisnikova dob" #: data/dev.Cogitri.Health.gschema.xml:67 msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "Korisnička dob u obliku datuma rođenja (npr. 01/01/1970)" +msgstr "Korisnikova dob u obliku datuma rođenja (npr. 01/01/1970)" #: data/dev.Cogitri.Health.gschema.xml:71 msgid "User height" @@ -131,7 +129,7 @@ msgstr "Visina korisnika." #: data/dev.Cogitri.Health.gschema.xml:76 msgid "User step goal" -msgstr "Korisnički ciljani broj koraka" +msgstr "Korisnikov ciljani broj koraka" #: data/dev.Cogitri.Health.gschema.xml:77 msgid "The amount of steps the user wants to reach daily." @@ -139,7 +137,7 @@ msgstr "Broj koraka koji korisnik želi dnevno postići." #: data/dev.Cogitri.Health.gschema.xml:81 msgid "User weight goal" -msgstr "Korisnička ciljana težina" +msgstr "Korisnikova ciljana težina" #: data/dev.Cogitri.Health.gschema.xml:82 msgid "The weight the user wants to reach." @@ -155,11 +153,11 @@ msgstr "Visina prozora." #: data/dev.Cogitri.Health.gschema.xml:91 msgid "Window maximized" -msgstr "Prozor rasklopljen" +msgstr "Prozor uvećan" #: data/dev.Cogitri.Health.gschema.xml:92 msgid "Whether the window is maximized." -msgstr "Je li prozor rasklopljen." +msgstr "Treba li prozor uvećati." #: data/dev.Cogitri.Health.gschema.xml:96 msgid "Window width" @@ -176,29 +174,23 @@ msgstr "Širina prozora." msgid "Health" msgstr "Zdravlje" -#: data/dev.Cogitri.Health.Autostart.desktop.in.in:5 -#: data/dev.Cogitri.Health.desktop.in.in:5 -msgid "@APPLICATION_ID@" -msgstr "@APPLICATION_ID@" - -#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 src/core/application.rs:167 -msgid "A health tracking app for the GNOME desktop." -msgstr "Aplikacija za praćenje zdravlja za GNOME okruženje." +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 +msgid "Track your fitness goals" +msgstr "Pratite svoje fitness ciljeve" #: data/dev.Cogitri.Health.metainfo.xml.in.in:11 msgid "" -"A health tracking app for the GNOME desktop. Health can visualize how many " -"steps you've made daily, your weight development over time and your daily " -"activities. Data can be synched from Google Fit or manually entered into " -"Health. Afterwards, it can be viewed and edited in Health." +"Health can visualize how many steps you’ve made daily, your weight " +"development over time and your daily activities. Data can be synched from " +"Google Fit or manually entered into Health. Afterwards, it can be viewed and " +"edited in Health." msgstr "" -"Aplikacija za praćenje zdravlja za GNOME okruženje. Aplikacija „Zdravlje” " -"može vizualizirati broj dnevnih koraka, razvoj težine tijekom vremena i " -"dnevne aktivnosti. Podaci se mogu sinkronizirati s Google Fit ili ručno " -"unijeti u aplikaciju „Zdravlje”. Nakon toga se može pregledati i uređivati u " -"aplikaciji „Zdravlje”." +"Zdravlje može vizualizirati broj dnevno učinjenih koraka, razvoj težine " +"tijekom vremena i vaše dnevne aktivnosti. Podaci se mogu sinkronizirati s " +"Google Fitom ili ručno upisati u Zdravlje. Nakon toga se mogu pregledati i " +"uređivati u Zdravlju." -#: data/dev.Cogitri.Health.metainfo.xml.in.in:37 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:36 msgid "Rasmus “Cogitri” Thomsen" msgstr "Rasmus “Cogitri” Thomsen" @@ -206,70 +198,70 @@ msgstr "Rasmus “Cogitri” Thomsen" #: src/windows/export_dialog.rs:53 src/windows/export_dialog.rs:89 #: src/windows/import_dialog.rs:53 src/windows/import_dialog.rs:82 msgid "_Cancel" -msgstr "O_dustani" +msgstr "_Odustani" #: data/ui/data_add_dialog.blp:10 src/windows/export_dialog.rs:52 #: src/windows/export_dialog.rs:88 msgid "_Save" msgstr "_Spremi" -#: data/ui/date_selector.blp:17 +#: data/ui/date_selector.blp:18 msgid "January" msgstr "Siječanj" -#: data/ui/date_selector.blp:18 src/widgets/date_selector.rs:223 +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:223 msgid "February" msgstr "Veljača" -#: data/ui/date_selector.blp:19 +#: data/ui/date_selector.blp:20 msgid "March" msgstr "Ožujak" -#: data/ui/date_selector.blp:20 +#: data/ui/date_selector.blp:21 msgid "April" msgstr "Travanj" -#: data/ui/date_selector.blp:21 +#: data/ui/date_selector.blp:22 msgid "May" msgstr "Svibanj" -#: data/ui/date_selector.blp:22 +#: data/ui/date_selector.blp:23 msgid "June" msgstr "Lipanj" -#: data/ui/date_selector.blp:23 +#: data/ui/date_selector.blp:24 msgid "July" msgstr "Srpanj" -#: data/ui/date_selector.blp:24 +#: data/ui/date_selector.blp:25 msgid "August" msgstr "Kolovoz" -#: data/ui/date_selector.blp:25 +#: data/ui/date_selector.blp:26 msgid "September" msgstr "Rujan" -#: data/ui/date_selector.blp:26 +#: data/ui/date_selector.blp:27 msgid "October" msgstr "Listopad" -#: data/ui/date_selector.blp:27 +#: data/ui/date_selector.blp:28 msgid "November" msgstr "Studeni" -#: data/ui/date_selector.blp:28 +#: data/ui/date_selector.blp:29 msgid "December" msgstr "Prosinac" -#: data/ui/date_selector.blp:34 +#: data/ui/date_selector.blp:35 msgid "Day" msgstr "Dan" -#: data/ui/date_selector.blp:60 +#: data/ui/date_selector.blp:61 msgid "Month" msgstr "Mjesec" -#: data/ui/date_selector.blp:83 +#: data/ui/date_selector.blp:84 msgid "Year" msgstr "Godina" @@ -279,7 +271,7 @@ msgstr "Udaljenost" #: data/ui/import_export_dialog_base.blp:10 msgid "_Export" -msgstr "Izv_ezi" +msgstr "_Izvezi" #: data/ui/import_export_dialog_base.blp:56 msgid "Export weight measurements" @@ -300,7 +292,7 @@ msgstr "_Potvrdi lozinku" #: data/ui/plugins/activities/details.blp:5 #: data/ui/plugins/calories/details.blp:4 data/ui/plugins/steps/details.blp:4 msgid "You can use the + button to add a new activity." -msgstr "Za dodavanje nove aktivnosti možeš koristiti gumb +." +msgstr "Možete koristiti + tipku za dodavanje nove aktivnosti." #: data/ui/plugins/activities/details.blp:8 msgid "Recent Activities" @@ -323,8 +315,8 @@ msgid "" "This is a preview of how the plugin presents data. Enable the plugin to see " "your actual, live data." msgstr "" -"Ovo je pregled načina na koji dodatak predstavlja podatke. Aktiviraj dodatak " -"za prikaz stvarnih podataka uživo." +"Ovo je pregled na koji način priključak predstavlja podatke. Omogućite " +"priključak za prikaz stvarnih podataka uživo." #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 #: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 @@ -333,7 +325,7 @@ msgstr "Koraci" #: data/ui/plugins/weight/details.blp:5 msgid "You can use the + button to add a new weight measurement." -msgstr "Za dodavanje novog mjerenja težine možeš koristiti gumb +." +msgstr "Možete koristiti + tipku za dodavanje novog mjerenja težine." #: data/ui/plugins/weight/details.blp:8 msgid "Weight Measurements" @@ -358,11 +350,11 @@ msgstr "_Fiksno vrijeme" #: data/ui/preferences_window.blp:63 msgid "Health Preferences" -msgstr "Postavke Zdravlja" +msgstr "Osobitosti Zdravlja" #: data/ui/preferences_window.blp:69 data/ui/shortcuts_window.blp:11 msgid "General" -msgstr "Opće" +msgstr "Općenito" #: data/ui/preferences_window.blp:72 msgid "User" @@ -394,11 +386,11 @@ msgstr "Obavijesti" #: data/ui/preferences_window.blp:125 msgid "Enable notifications" -msgstr "Aktiviraj obavijesti" +msgstr "Omogući obavijesti" #: data/ui/preferences_window.blp:136 msgid "Frequency" -msgstr "Frekvencija" +msgstr "Učestalost" #: data/ui/preferences_window.blp:149 msgid "Daily reminder time" @@ -410,16 +402,16 @@ msgid "Step goal" msgstr "Ciljani broj koraka" #: data/ui/preferences_window.blp:170 -msgid "The WHO recommends 10,000 steps per day." -msgstr "WHO preporučuje 10.000 koraka na dan." +msgid "7,500 steps per day are recommended." +msgstr "7.500 koraka dnevno je preporučljivo." #: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 msgid "Weight Goal" msgstr "Ciljana težina" -#: data/ui/preferences_window.blp:188 data/ui/setup_window.blp:286 +#: data/ui/preferences_window.blp:188 msgid "The WHO recommends a BMI of 18.5-24.9." -msgstr "WHO preporučuje indeks tjelesne mase (BMI) od 18,5 do 24,9." +msgstr "SZO preporučuje indeks tjelesne mase (BMI) od 18,5-24,9." #: data/ui/preferences_window.blp:212 msgid "Sync" @@ -427,7 +419,7 @@ msgstr "Sinkronizacija" #: data/ui/preferences_window.blp:216 msgid "Start sync with third-party providers." -msgstr "Započni sinkronizaciju sa stranim pružateljima usluga." +msgstr "Pokreni sinkronizaciju s pružateljima usluga treće strane." #: data/ui/preferences_window.blp:224 msgid "Importing and exporting data" @@ -435,31 +427,31 @@ msgstr "Uvoz i izvoz podataka" #: data/ui/preferences_window.blp:227 msgid "Export data as CSV" -msgstr "Izvezi podatke kao CSV datoteku" +msgstr "Izvezi podatke u CSV" #: data/ui/preferences_window.blp:230 msgid "Export…" -msgstr "Izvezi …" +msgstr "Izvezi…" #: data/ui/preferences_window.blp:237 msgid "Import data from CSV" -msgstr "Uvezi podatke iz CSV datoteke" +msgstr "Uvezi podatke u CSV" #: data/ui/preferences_window.blp:240 msgid "Import…" -msgstr "Uvezi …" +msgstr "Uvezi…" #: data/ui/setup_window.blp:39 msgid "Health Setup" -msgstr "Postava Zdravlja" +msgstr "Postavljanje Zdravlja" #: data/ui/setup_window.blp:53 msgid "_Quit" -msgstr "_Zatvori aplikaciju" +msgstr "_Zatvori" #: data/ui/setup_window.blp:62 msgid "_Previous" -msgstr "_Prethodno" +msgstr "_Prijašnje" #: data/ui/setup_window.blp:77 msgid "_Next" @@ -467,31 +459,35 @@ msgstr "_Sljedeće" #: data/ui/setup_window.blp:90 msgid "_Done" -msgstr "_Gotovo" +msgstr "_Završi" #: data/ui/setup_window.blp:116 msgid "Welcome to Health!" -msgstr "Dobro došli u Zdravlje!" +msgstr "Dobrodošli u Zdravlje!" #: data/ui/setup_window.blp:128 msgid "Please enter some information to get setup." -msgstr "Za postavljanje aplikacije upiši par informacija." +msgstr "Upišite osnovne informacije za postavljanje." #: data/ui/setup_window.blp:212 msgid "Please enter your daily step goal." -msgstr "Upiši svoj dnevni ciljani broj koraka." +msgstr "Upišite svoj dnevni ciljani broj koraka." #: data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." -msgstr "WHO preporučuje 10.000 koraka na dan." +msgid "The WHO recommends 7.500 steps per day." +msgstr "SZO preporučuje 7.500 koraka dnevno." #: data/ui/setup_window.blp:274 msgid "Please enter your weight goal." -msgstr "Upiši svoju ciljanu težinu." +msgstr "Upišite svoju ciljanu težinu." + +#: data/ui/setup_window.blp:286 +msgid "The WHO recommends a BMI of 18.5–24.9." +msgstr "SZO preporučuje indeks tjelesne mase (BMI) od 18,5–24,9." #: data/ui/setup_window.blp:314 msgid "Current weight" -msgstr "Trenutačna težina" +msgstr "Trenutna težina" #: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 msgid "Weight goal" @@ -499,13 +495,14 @@ msgstr "Ciljana težina" #: data/ui/setup_window.blp:372 msgid "Setup sync with third-party providers." -msgstr "Postavi sinkronizaciju sa stranim pružateljima usluga." +msgstr "Postavite sinkronizaciju s pružateljima usluga treće strane." #: data/ui/setup_window.blp:384 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "" -"Mjerenja koraka i težine možeš sinkronizirati sa stranim pružateljima usluga." +"Možete sinkronizirati mjerenja koraka i težine s pružateljima usluga treće " +"strane." #: data/ui/shortcuts_window.blp:15 msgid "Quit the application" @@ -541,7 +538,7 @@ msgstr "Vrsta aktivnosti" #: data/ui/view_add_activity.blp:97 msgid "Average Heart Rate" -msgstr "Prosječni broj otkucaji srca" +msgstr "Prosječni broj otkucaja srca" #: data/ui/view_add_activity.blp:109 msgid "Minimum Heart Rate" @@ -557,14 +554,14 @@ msgstr "Broj koraka" #: data/ui/view_home_page.blp:61 msgid "For you" -msgstr "Za tebe" +msgstr "Za vas" #: data/ui/view_home_page.blp:86 msgid "" "No plugins enabled. Enable one from the list below to start using Health." msgstr "" -"Nema aktiviranih dodataka. Počni koristiti aplikaciju „Zdravlje” " -"aktiviranjem jednog dodatka iz popisa." +"Nema omogućenih priključaka. Omogućite jednog s popisa ispod za početak " +"korištenja Zdravlja." #: data/ui/view_home_page.blp:107 msgid "All data" @@ -572,31 +569,39 @@ msgstr "Svi podaci" #: data/ui/window.blp:8 msgid "_Disable Current Plugin" -msgstr "_Deaktiviraj trenutačni dodatak" +msgstr "_Omogući trenutni priključak" #: data/ui/window.blp:15 msgid "_Preferences" -msgstr "_Postavke" +msgstr "_Osobitosti" #: data/ui/window.blp:20 msgid "_Keyboard Shortcuts" -msgstr "_Tipkovnički prečaci" +msgstr "_Prečaci tipkovnice" #: data/ui/window.blp:27 msgid "_About Health" -msgstr "O aplikaciji _Zdravlje" +msgstr "_O Zdravlju" #: data/ui/window.blp:69 msgid "Enable plugin" -msgstr "Aktiviraj dodatak" +msgstr "Omogući priključk" + +#: src/core/application.rs:176 +msgid "A health tracking app for the GNOME desktop." +msgstr "Aplikacija praćenja zdravlja za GNOME radno okruženje." -#: src/core/application.rs:169 +#: src/core/application.rs:178 msgid "translator-credits" -msgstr "Milo Ivir " +msgstr "" +"Launchpad Contributions:\n" +" gogo https://launchpad.net/~trebelnik-stefina\n" +"\n" +"Milo Ivir " -#: src/core/application.rs:171 +#: src/core/application.rs:180 msgid "Websites" -msgstr "Web-stranice" +msgstr "Web stranica" #: src/model/activity_info.rs:83 msgid "Basketball" @@ -616,7 +621,7 @@ msgstr "Plesanje" #: src/model/activity_info.rs:120 msgid "Football" -msgstr "Nogomet" +msgstr "Američki nogomet" #: src/model/activity_info.rs:127 msgid "Golf" @@ -640,7 +645,7 @@ msgstr "Drugi sportovi" #: src/model/activity_info.rs:176 msgid "Rollerblading" -msgstr "Koturaljkanje" +msgstr "Rolanje" #: src/model/activity_info.rs:187 msgid "Running" @@ -685,9 +690,9 @@ msgstr "Zdravlje: podsjetnik za hodanje" #: src/model/model_notification.rs:250 msgid "{} step remaining to complete your daily step goal." msgid_plural "{} steps remaining to complete your daily step goal." -msgstr[0] "Još {} korak za postizanje dnevnog ciljanog broja koraka." -msgstr[1] "Još {} koraka za postizanje dnevnog ciljanog broja koraka." -msgstr[2] "Još {} koraka za postizanje dnevnog ciljanog broja koraka." +msgstr[0] "{} korak je preostao za postizanje dnevnog broja koraka." +msgstr[1] "{} koraka su preostala za postizanje dnevnog broja koraka." +msgstr[2] "{} koraka je preostao za postizanje dnevnog broja koraka." #: src/plugins/activities/plugin.rs:39 msgid "Activities" @@ -730,43 +735,43 @@ msgstr[1] "{} potrošene kalorije danas" msgstr[2] "{} potrošenih kalorija danas" #: src/plugins/steps/details.rs:186 -msgid "Today's steps: {}" +msgid "Today’s steps: {}" msgstr "Današnji broj koraka: {}" #: src/plugins/steps/details.rs:201 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" -"Još nemaš slijed uspjeha. Za slijed uspjeha pokušaj postići ciljani broj " -"koraka nekoliko dana za redom!" +"Još nemate dnevnih uspjeha. Postignite vaš ciljani broj koraka za nekoliko " +"dana kako bi postigli uspjeh!" #: src/plugins/steps/details.rs:205 msgid "" -"You're on a streak for {} day. Reach your step goal today to continue it!" +"You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" -"You're on a streak for {} days. Reach your step goal today to continue it!" +"You’re on a streak for {} days. Reach your step goal today to continue it!" msgstr[0] "" -"Već {} dan ispunjavaš svoj cij. Za nastavljanje slijeda uspjeha postigni " -"svoj današnji ciljani broj koraka!" +"Na dnevnom cilju ste za {} dan. Postignite vaš ciljani broj koraka danas za " +"nastavak!" msgstr[1] "" -"Već {} dana ispunjavaš svoj cij. Za nastavljanje slijeda uspjeha postigni " -"svoj današnji ciljani broj koraka!" +"Na dnevnom cilju ste za {} dan. Postignite vaš ciljani broj koraka danas za " +"nastavak!" msgstr[2] "" -"Već {} dana ispunjavaš svoj cij. Za nastavljanje slijeda uspjeha postigni " -"svoj današnji ciljani broj koraka!" +"Na dnevnom cilju ste za {} dan. Postignite vaš ciljani broj koraka danas za " +"nastavak!" #: src/plugins/steps/details.rs:213 -msgid "You've reached your step goal today. Keep going to start a streak!" +msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "" -"Danas si postignuo/la svoj ciljani broj koraka. Nastavi tako za postizanje " -"slijeda uspjeha!" +"Danas ste dostigli vaš ciljani broj koraka. Nastavite tako za postizanje " +"dnevnog cilja!" #: src/plugins/steps/details.rs:216 -msgid "You're on a streak for {} day. Good job!" -msgid_plural "You're on a streak for {} days. Good job!" -msgstr[0] "Već {} dan ispunjavaš svoj cij. Bravo!" -msgstr[1] "Već {} dana ispunjavaš svoj cij. Bravo!" -msgstr[2] "Već {} dana ispunjavaš svoj cij. Bravo!" +msgid "You’re on a streak for {} day. Good job!" +msgid_plural "You’re on a streak for {} days. Good job!" +msgstr[0] "Na dnevnom cilju ste za {} dan. Bravo!" +msgstr[1] "Na dnevnom cilju ste za {} dan. Bravo!" +msgstr[2] "Na dnevnom cilju ste za {} dan. Bravo!" #. TRANSLATORS: X step(s) on DATE #: src/plugins/steps/details.rs:233 @@ -779,24 +784,24 @@ msgstr[2] "{} koraka {}" #: src/plugins/steps/summary.rs:94 msgid "{} step taken today" msgid_plural "{} steps taken today" -msgstr[0] "{} korak danas" -msgstr[1] "{} koraka danas" -msgstr[2] "{} koraka danas" +msgstr[0] "{} korak učinjen danas" +msgstr[1] "{} koraka učinjena danas" +msgstr[2] "{} koraka učinjena danas" #: src/plugins/steps/summary.rs:105 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" -msgstr[0] "Postignut je {} % dnevnog ciljanog broja koraka" +msgstr[0] "Postignuto je {} % dnevnog ciljanog broja koraka" msgstr[1] "Postignuto je {} % dnevnog ciljanog broja koraka" -msgstr[2] "Postignut je {} % dnevnog ciljanog broja koraka" +msgstr[2] "Postignuto je {} % dnevnog ciljanog broja koraka" #: src/plugins/steps/summary.rs:112 msgid "Well done! You have reached your daily step goal!" -msgstr "Bravo! Postignuo/la si svoj dnevni ciljani broj koraka!" +msgstr "Bravo! Postigli ste svoj dnevni ciljani broj koraka!" #: src/plugins/weight/details.rs:192 msgid "Current BMI: {}" -msgstr "Trenutačni indeks tjelesne mase (BMI): {}" +msgstr "Trenutni indeks tjelesne mase (BMI): {}" #. TRANSLATORS: Weight X on date Y #: src/plugins/weight/details.rs:207 @@ -818,7 +823,7 @@ msgstr[2] "{} kilograma {}" msgid "Unknown BMI" msgstr "Nepoznat indeks tjelesne mase (BMI)" -#: src/plugins/weight/details.rs:270 +#: src/plugins/weight/details.rs:268 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -826,16 +831,16 @@ msgid_plural "" "Your weight goal is {} pounds. Add a first weight measurement to see how " "close you are to reaching it." msgstr[0] "" -"Tvoja ciljana težina je {} funta. Saznaj koliko si blizu cilju dodavanjem " -"prvog mjerenja težine." +"Vaša ciljana težina je {} funta. Dodajte početno mjerenje težine kako bi " +"vidjeli koliko ste blizu zadanog cilja." msgstr[1] "" -"Tvoja ciljana težina su {} funte. Saznaj koliko si blizu cilju dodavanjem " -"prvog mjerenja težine." +"Vaša ciljana težina je {} funte. Dodajte početno mjerenje težine kako bi " +"vidjeli koliko ste blizu zadanog cilja." msgstr[2] "" -"Tvoja ciljana težina je {} funta. Saznaj koliko si blizu cilju dodavanjem " -"prvog mjerenja težine." +"Vaša ciljana težina je {} funta. Dodajte početno mjerenje težine kako bi " +"vidjeli koliko ste blizu zadanog cilja." -#: src/plugins/weight/details.rs:277 +#: src/plugins/weight/details.rs:275 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -843,56 +848,52 @@ msgid_plural "" "Your weight goal is {} kilograms. Add a first weight measurement to see how " "close you are to reaching it." msgstr[0] "" -"Tvoja ciljana težina je {} kilogram. Saznaj koliko si blizu cilju dodavanjem " -"prvog mjerenja težine." +"Vaša ciljana težina je {} kilogram. Dodajte početno mjerenje težine kako bi " +"vidjeli koliko ste blizu zadanog cilja." msgstr[1] "" -"Tvoja ciljana težina su {} kilograma. Saznaj koliko si blizu cilju " -"dodavanjem prvog mjerenja težine." +"Vaša ciljana težina je {} kilograma. Dodajte početno mjerenje težine kako bi " +"vidjeli koliko ste blizu zadanog cilja." msgstr[2] "" -"Tvoja ciljana težina je {} kilograma. Saznaj koliko si blizu cilju " -"dodavanjem prvog mjerenja težine." - -#: src/plugins/weight/details.rs:286 -msgid "You've reached your weight goal. Great job!" -msgstr "Postignuo/la si svoju ciljanu težinu. Bravo!" - -#. TRANSLATORS: First part of message, ends with [...] you have {} pound left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:302 -msgid "Your weight goal is {} pound," -msgid_plural "Your weight goal is {} pounds," -msgstr[0] "Tvoja ciljana težina je {} funta," -msgstr[1] "Tvoja ciljana težina su {} funte," -msgstr[2] "Tvoja ciljana težina je {} funta," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:307 -msgid "you have {} pound left to reach it" -msgid_plural "you have {} pounds left to reach it" -msgstr[0] "nedostaje ti još {} funta" -msgstr[1] "nedostaju ti još {} funte" -msgstr[2] "nedostaje ti još {} funta" - -#. TRANSLATORS: First part of message, ends with [...] you have {} kilogram left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:314 -msgid "Your weight goal is {} kilogram," -msgid_plural "Your weight goal is {} kilograms," -msgstr[0] "Tvoja ciljana težina je {} kilogram," -msgstr[1] "Tvoja ciljana težina su {} kilograma," -msgstr[2] "Tvoja ciljana težina je {} kilograma," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:320 -msgid "you have {} kilogram left to reach it" -msgid_plural "you have {} kilograms left to reach it" -msgstr[0] "nedostaje ti još {} kilogram" -msgstr[1] "nedostaju ti još {} kilograma" -msgstr[2] "nedostaje ti još {} kilograma" - -#: src/plugins/weight/details.rs:330 -msgid "No weight goal set yet. You can set it in Health's preferences." +"Vaša ciljana težina je {} kilograma. Dodajte početno mjerenje težine kako bi " +"vidjeli koliko ste blizu zadanog cilja." + +#: src/plugins/weight/details.rs:284 +msgid "You’ve reached your weight goal. Great job!" +msgstr "Postigli ste svoju ciljanu težinu. Bravo!" + +#: src/plugins/weight/details.rs:300 +msgid "Your weight goal is {} pound." +msgid_plural "Your weight goal is {} pounds." +msgstr[0] "Vaša ciljana težina je {} funta." +msgstr[1] "Vaša ciljana težina su {} funte." +msgstr[2] "Vaša ciljana težina je {} funti." + +#: src/plugins/weight/details.rs:305 +msgid "You have {} pound left to reach it." +msgid_plural "You have {} pounds left to reach it." +msgstr[0] "Preostala vam je {} funta za postizanje cilja." +msgstr[1] "Preostale su vam {} funte za postizanje cilja." +msgstr[2] "Preostalo vam je {} funti za postizanje cilja." + +#: src/plugins/weight/details.rs:312 +msgid "Your weight goal is {} kilogram." +msgid_plural "Your weight goal is {} kilograms." +msgstr[0] "Vaša ciljana težina je {} kilogram." +msgstr[1] "Vaša ciljana težina je {} kilograma." +msgstr[2] "Vaša ciljana težina je {} kilograma." + +#: src/plugins/weight/details.rs:318 +msgid "You have {} kilogram left to reach it" +msgid_plural "You have {} kilograms left to reach it" +msgstr[0] "Preostao vam je {} kilogram za postizanje cilja" +msgstr[1] "Preostala su vam {} kilograma za postizanje cilja" +msgstr[2] "Preostalo vam je {} kilograma za postizanje cilja" + +#: src/plugins/weight/details.rs:328 +msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" -"Ciljana težina još nije postavljena. Postavi je u osobitostima aplikacije " -"Zdravlje." +"Ciljana težina još nije postavljena. Možete ju postaviti u osobitostima " +"Zdravlja." #: src/plugins/weight/summary.rs:119 msgid "{} pound" @@ -911,30 +912,30 @@ msgstr[2] "{} kilograma" #: src/plugins/weight/summary.rs:138 msgid "+ {} pound compared to previous measurement" msgid_plural "+ {} pounds compared to previous measurement" -msgstr[0] "+ {} funta u usporedbi s prethodnom težinom" -msgstr[1] "+ {} funte u usporedbi s prethodnom težinom" -msgstr[2] "+ {} funta u usporedbi s prethodnom težinom" +msgstr[0] "+ {} funta u usporedbi s prijašnjom težinom" +msgstr[1] "+ {} funte u usporedbi s prijašnjom težinom" +msgstr[2] "+ {} funti u usporedbi s prijašnjom težinom" #: src/plugins/weight/summary.rs:146 msgid "+ {} kilogram compared to previous measurement" msgid_plural "+ {} kilograms compared to previous measurement" -msgstr[0] "+ {} kilogram u usporedbi s prethodnom težinom" -msgstr[1] "+ {} kilograma u usporedbi s prethodnom težinom" -msgstr[2] "+ {} kilograma u usporedbi s prethodnom težinom" +msgstr[0] "+ {} kilogram u usporedbi s prijašnjom težinom" +msgstr[1] "+ {} kilograma u usporedbi s prijašnjom težinom" +msgstr[2] "+ {} kilograma u usporedbi s prijašnjom težinom" #: src/plugins/weight/summary.rs:157 msgid "{} pound compared to previous measurement" msgid_plural "{} pounds compared to previous measurement" -msgstr[0] "{} funta u usporedbi s prethodnom težinom" -msgstr[1] "{} funte u usporedbi s prethodnom težinom" -msgstr[2] "{} funta u usporedbi s prethodnom težinom" +msgstr[0] "{} funta u usporedbi s prijašnjom težinom" +msgstr[1] "{} funte u usporedbi s prijašnjom težinom" +msgstr[2] "{} funti u usporedbi s prijašnjom težinom" #: src/plugins/weight/summary.rs:165 msgid "{} kilogram compared to previous measurement" msgid_plural "{} kilograms compared to previous measurement" -msgstr[0] "{} kilogram u usporedbi s prethodnom težinom" -msgstr[1] "{} kilograma u usporedbi s prethodnom težinom" -msgstr[2] "{} kilograma u usporedbi s prethodnom težinom" +msgstr[0] "{} kilogram u usporedbi s prijašnjom težinom" +msgstr[1] "{} kilograma u usporedbi s prijašnjom težinom" +msgstr[2] "{} kilograma u usporedbi s prijašnjom težinom" #: src/plugins/weight/summary.rs:173 msgid "No change in weight" @@ -942,74 +943,72 @@ msgstr "Nema promjene u težini" #: src/plugins/weight/summary.rs:178 msgid "No weight data available" -msgstr "Nema zapisa o težini" +msgstr "Nema podataka o težini" #: src/sync/csv.rs:81 src/sync/csv.rs:370 -msgid "No activities added yet; can't create empty export!" -msgstr "Još nije dodana nijedna aktivnost; nije moguće stvoriti prazan izvoz!" +msgid "No activities added yet; can’t create empty export!" +msgstr "Još nema dodanih aktivnost; nemoguće stvaranje praznog izvoza!" #: src/sync/csv.rs:111 src/sync/csv.rs:388 -msgid "No weight measurements added yet; can't create empty export!" -msgstr "" -"Još nije dodano nijedno mjerenje težine; nije moguće stvoriti prazan izvoz!" +msgid "No weight measurements added yet; can’t create empty export!" +msgstr "Još nema dodanih mjerenja težine; nemoguće stvaranje praznog izvoza!" #: src/sync/csv.rs:184 src/sync/csv.rs:332 -msgid "Can't parse encrypted backup without encryption key!" -msgstr "" -"Nije moguće obraditi šifriranu sigurnosnu kopiju bez ključa za šifriranje!" +msgid "Can’t parse encrypted backup without encryption key!" +msgstr "Nemoguća obrada šifrirane sigurnosne kopije bez ključa šifriranja!" #: src/sync/csv.rs:195 src/sync/csv.rs:352 msgid "" -"Couldn't parse CSV. Are you trying to read an unencrypted backup as an " +"Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " "encrypted one?" msgstr "" -"Nije bilo moguće obraditi CSV datoteku. Pokušavaš li pročitati nešifriranu " -"sigurnosnu kopiju kao šifriranu?" +"Nemoguća obrada CSV datoteke. Pokušavate li pročitati nešifriranu sigurnosnu " +"kopiju kao šifriranu?" #: src/sync/csv.rs:208 -msgid "Couldn't decrypt data. Are you sure you're using the right key?" -msgstr "Nije bilo moguće dešifrirati podatke. Koristiš li ispravan ključ?" +msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" +msgstr "Nemoguće dešifriranje podataka. Sigurno koristite ispravan ključ?" #: src/sync/database_receiver.rs:46 -msgid "Couldn't synchronize steps due to error {}" -msgstr "Nije bilo moguće sinkronizirati korake zbog greške {}" +msgid "Couldn’t synchronize steps due to error {}" +msgstr "Nemoguće sinkronizacija koraka uslijed greške {}" #: src/sync/database_receiver.rs:60 -msgid "Couldn't synchronize weight measurements due to error {}" -msgstr "Nije bilo moguće sinkronizirati mjerenja težine zbog greške {}" +msgid "Couldn’t synchronize weight measurements due to error {}" +msgstr "Nemoguće sinkronizacija mjerenja težine uslijed greške {}" #: src/sync/google_fit.rs:211 msgid "CRSF Verification failed, got {}, expected {}" -msgstr "CRSF potvrda neuspjela, dobiveno {}, očekivano {}" +msgstr "CRSF ovjera neuspjela, dobiveno {}, očekivano {}" #: src/sync/google_fit.rs:227 msgid "Requesting OAuth2 token failed due to error {}" -msgstr "Zahtjev za OAuth2 tokenom neuspio zbog greške {}" +msgstr "Zahtjev za OAuth2 tokenom je neuspio uslijed greške {}" #: src/sync/sync_provider.rs:109 msgid "" -"Can't retrieve OAuth2 token when no refresh token is set! Please re-" +"Can’t retrieve OAuth2 token when no refresh token is set! Please re-" "authenticate with your sync provider." msgstr "" -"Nije moguće dohvatiti OAuth2 token kad nije postavljen token za " -"osvježavanje! Ponovo se autentificiraj kod svog pružatelja usluge " +"Nemoguće preuzimanje OAuth2 tokena kada token nije postavljen za " +"osvježavanje! Ponovno se ovjerite pri vašemu pružatelju usluge " "sinkronizacije." #: src/sync/sync_provider.rs:157 msgid "Token for Health sync provider {}" -msgstr "" +msgstr "Token za pružatelja usluge sinkronizacije Zdravlja {}" #: src/sync/sync_provider.rs:217 msgid "Successfully authenticated, please return to Health." -msgstr "Autentifikacija je uspjela, vrati se na Zdravlje." +msgstr "Ovjera je uspjela, vratite se na Zdravlje." #: src/sync/sync_provider.rs:228 -msgid "Couldn't parse OAuth2 response" -msgstr "Nije bilo moguće obraditi OAuth2 odgovor" +msgid "Couldn’t parse OAuth2 response" +msgstr "Nemoguća obrada OAuth2 odgovora" #: src/views/bar_graph_view.rs:583 msgid "Enter weight record to calculate idle calories" -msgstr "Upiši zapis o težini za izračunavanje kalorija u mirovanju" +msgstr "Upišite zapis težine za izračunavanje kalorija u mirovanju" #: src/views/bar_graph_view.rs:587 msgid "Idle calories" @@ -1020,8 +1019,6 @@ msgid "Activity" msgstr "Aktivnost" #: src/widgets/activity_row.rs:79 -#| msgid "{} Minute" -#| msgid_plural "{} Minutes" msgid "{} for {} Minute" msgid_plural "{} for {} Minutes" msgstr[0] "{} za {} minutu" @@ -1034,7 +1031,7 @@ msgstr "Potrošene kalorije" #: src/widgets/activity_row.rs:101 msgid "Average heart rate" -msgstr "Prosječni broj otkucaji srca" +msgstr "Prosječni broj otkucaja srca" #: src/widgets/activity_row.rs:107 msgid "Maximum heart rate" @@ -1068,57 +1065,57 @@ msgstr "Trenutačni indeks tjelesne mase (BMI): {}" #: src/widgets/distance_action_row.rs:303 msgid "KM" -msgstr "km" +msgstr "Km" #: src/widgets/distance_action_row.rs:304 msgid "Meters" -msgstr "metara" +msgstr "Metri" #: src/widgets/distance_action_row.rs:306 msgid "Miles" -msgstr "milja" +msgstr "Milje" #: src/widgets/distance_action_row.rs:307 msgid "Feet" -msgstr "stopa" +msgstr "Stope" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "in" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "ft" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "mi" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "lb" @@ -1136,6 +1133,11 @@ msgstr "Aktivnosti.csv.šifrirano" msgid "Activities.csv" msgstr "Aktivnosti.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Nema odabranih datoteka." + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "Spremi mjerenje težine" @@ -1166,11 +1168,11 @@ msgstr "Otvori mjerenje težine" #: src/windows/import_dialog.rs:121 msgid "Import data" -msgstr "Uvezi podatke" +msgstr "Uvoz podataka" #: src/windows/import_export_dialog_base.rs:214 msgid "Import activities" -msgstr "Uvezi aktivnosti" +msgstr "Uvoz aktivnosti" #: src/windows/import_export_dialog_base.rs:216 msgid "Import is encrypted" @@ -1178,7 +1180,7 @@ msgstr "Uvoz je šifriran" #: src/windows/import_export_dialog_base.rs:217 msgid "Import weights" -msgstr "Uvezi težine" +msgstr "Uvoz težine" #: src/windows/import_export_dialog_base.rs:218 msgid "Import" @@ -1186,7 +1188,7 @@ msgstr "Uvezi" #: src/windows/import_export_dialog_base.rs:296 msgid "Success!" -msgstr "Uspjeh!" +msgstr "Uspješno!" #: src/windows/import_export_dialog_base.rs:300 msgid "An error occurred!" @@ -1202,8 +1204,14 @@ msgstr "Ciljani indeks tjelesne mase (BMI)" #: src/windows/window.rs:97 msgid "Failed to migrate database to new version due to error {}" -msgstr "Migriranje baze podataka na novu verziju nije uspjelo zbog greške {}" +msgstr "Neuspjelo migriranje baze podataka na novu inačicu uslijed greške {}" #: src/windows/window.rs:267 -msgid "Couldn't sync Google Fit data due to error: {}" -msgstr "Nije bilo moguće sinkronizirati podatke od Google Fit zbog greške: {}" +msgid "Couldn’t sync Google Fit data due to error: {}" +msgstr "Nemoguća sinkronizacija Google Fit podataka uslijed greške: {}" + +#~ msgid "@APPLICATION_ID@" +#~ msgstr "@APPLICATION_ID@" + +#~ msgid "The WHO recommends 10,000 steps per day." +#~ msgstr "WHO preporučuje 10.000 koraka na dan." -- 2.40.1 From 807c5d5c6f9d2782fcf26789f4f9cb76da1fb841 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Goran=20Vidovi=C4=87?= Date: Mon, 15 Aug 2022 15:25:27 +0000 Subject: [PATCH 27/83] Update Croatian translation --- po/hr.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/po/hr.po b/po/hr.po index 02e704a..a2151f1 100644 --- a/po/hr.po +++ b/po/hr.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" "POT-Creation-Date: 2022-08-15 13:18+0000\n" -"PO-Revision-Date: 2022-08-15 17:10+0200\n" +"PO-Revision-Date: 2022-08-15 17:23+0200\n" "Last-Translator: gogo \n" "Language-Team: Croatian \n" "Language: hr\n" @@ -837,7 +837,7 @@ msgstr[1] "" "Vaša ciljana težina je {} funte. Dodajte početno mjerenje težine kako bi " "vidjeli koliko ste blizu zadanog cilja." msgstr[2] "" -"Vaša ciljana težina je {} funta. Dodajte početno mjerenje težine kako bi " +"Vaša ciljana težina je {} funti. Dodajte početno mjerenje težine kako bi " "vidjeli koliko ste blizu zadanog cilja." #: src/plugins/weight/details.rs:275 @@ -975,7 +975,7 @@ msgstr "Nemoguće sinkronizacija koraka uslijed greške {}" #: src/sync/database_receiver.rs:60 msgid "Couldn’t synchronize weight measurements due to error {}" -msgstr "Nemoguće sinkronizacija mjerenja težine uslijed greške {}" +msgstr "Nemoguća sinkronizacija mjerenja težine uslijed greške {}" #: src/sync/google_fit.rs:211 msgid "CRSF Verification failed, got {}, expected {}" -- 2.40.1 From db15da42b8426037536b8ca732bf87438664117f Mon Sep 17 00:00:00 2001 From: Luming Zh Date: Mon, 15 Aug 2022 18:30:36 +0000 Subject: [PATCH 28/83] Update Chinese (China) translation --- po/zh_CN.po | 180 ++++++++++++++++++++++++++-------------------------- 1 file changed, 91 insertions(+), 89 deletions(-) diff --git a/po/zh_CN.po b/po/zh_CN.po index 8880652..fd5a65b 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-03-15 08:58+0000\n" -"PO-Revision-Date: 2022-03-16 12:32+0800\n" +"POT-Creation-Date: 2022-07-09 18:01+0000\n" +"PO-Revision-Date: 2022-07-10 10:38+0800\n" "Last-Translator: lumingzh \n" "Language-Team: Chinese - China \n" "Language: zh_CN\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0\n" -"X-Generator: Gtranslator 41.0\n" +"X-Generator: Gtranslator 42.0\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" @@ -67,7 +67,7 @@ msgstr "最近活动类型列表" #: data/dev.Cogitri.Health.gschema.xml:42 msgid "" "Activity types the user used recently, to be shown first in the activity " -"types selector's list" +"types selector’s list" msgstr "用户最近使用的活动类型,将首先显示在活动类型选择器的列表中" #: data/dev.Cogitri.Health.gschema.xml:46 @@ -165,27 +165,21 @@ msgstr "窗口的宽度。" msgid "Health" msgstr "健康" -#: data/dev.Cogitri.Health.Autostart.desktop.in.in:5 -#: data/dev.Cogitri.Health.desktop.in.in:5 -msgid "@APPLICATION_ID@" -msgstr "@APPLICATION_ID@" - -#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 src/core/application.rs:167 -msgid "A health tracking app for the GNOME desktop." -msgstr "GNOME 桌面的健康追踪应用。" +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 +msgid "Track your fitness goals" +msgstr "追踪您的健康目标" #: data/dev.Cogitri.Health.metainfo.xml.in.in:11 msgid "" -"A health tracking app for the GNOME desktop. Health can visualize how many " -"steps you've made daily, your weight development over time and your daily " -"activities. Data can be synched from Google Fit or manually entered into " -"Health. Afterwards, it can be viewed and edited in Health." +"Health can visualize how many steps you’ve made daily, your weight " +"development over time and your daily activities. Data can be synched from " +"Google Fit or manually entered into Health. Afterwards, it can be viewed and " +"edited in Health." msgstr "" -"GNOME 桌面的健康追踪应用。健康可以可视化您每天走了多少步,随着时间推移您的体" -"重的发展,以及您每天的活动。数据可以从谷歌 Fit 同步或手动输入。之后可以在健康" -"中查阅和编辑这些数据。" +"健康可以可视化您每天走了多少步,随着时间推移您的体重的发展,以及您每天的活" +"动。数据可以从谷歌 Fit 同步或手动输入。之后可以在健康中查阅和编辑这些数据。" -#: data/dev.Cogitri.Health.metainfo.xml.in.in:37 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:36 msgid "Rasmus “Cogitri” Thomsen" msgstr "Rasmus “Cogitri” Thomsen" @@ -200,63 +194,63 @@ msgstr "取消(_C)" msgid "_Save" msgstr "保存(_S)" -#: data/ui/date_selector.blp:17 +#: data/ui/date_selector.blp:18 msgid "January" msgstr "一月" -#: data/ui/date_selector.blp:18 src/widgets/date_selector.rs:223 +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:223 msgid "February" msgstr "二月" -#: data/ui/date_selector.blp:19 +#: data/ui/date_selector.blp:20 msgid "March" msgstr "三月" -#: data/ui/date_selector.blp:20 +#: data/ui/date_selector.blp:21 msgid "April" msgstr "四月" -#: data/ui/date_selector.blp:21 +#: data/ui/date_selector.blp:22 msgid "May" msgstr "五月" -#: data/ui/date_selector.blp:22 +#: data/ui/date_selector.blp:23 msgid "June" msgstr "六月" -#: data/ui/date_selector.blp:23 +#: data/ui/date_selector.blp:24 msgid "July" msgstr "七月" -#: data/ui/date_selector.blp:24 +#: data/ui/date_selector.blp:25 msgid "August" msgstr "八月" -#: data/ui/date_selector.blp:25 +#: data/ui/date_selector.blp:26 msgid "September" msgstr "九月" -#: data/ui/date_selector.blp:26 +#: data/ui/date_selector.blp:27 msgid "October" msgstr "十月" -#: data/ui/date_selector.blp:27 +#: data/ui/date_selector.blp:28 msgid "November" msgstr "十一月" -#: data/ui/date_selector.blp:28 +#: data/ui/date_selector.blp:29 msgid "December" msgstr "十二月" -#: data/ui/date_selector.blp:34 +#: data/ui/date_selector.blp:35 msgid "Day" msgstr "日" -#: data/ui/date_selector.blp:60 +#: data/ui/date_selector.blp:61 msgid "Month" msgstr "月" -#: data/ui/date_selector.blp:83 +#: data/ui/date_selector.blp:84 msgid "Year" msgstr "年" @@ -395,16 +389,14 @@ msgid "Step goal" msgstr "步数目标" #: data/ui/preferences_window.blp:170 -#| msgid "The WHO recommends 10.000 steps per day." -msgid "The WHO recommends 10,000 steps per day." -msgstr "世界卫生组织建议每天 10000 步。" +msgid "7,500 steps per day are recommended." +msgstr "推荐每天 7500 步。" #: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 -#| msgid "Weight goal" msgid "Weight Goal" msgstr "体重目标" -#: data/ui/preferences_window.blp:188 data/ui/setup_window.blp:286 +#: data/ui/preferences_window.blp:188 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "世界卫生组织建议 BMI 为 18.5-24.9。" @@ -476,6 +468,10 @@ msgstr "世界卫生组织建议每天 10000 步。" msgid "Please enter your weight goal." msgstr "请输入您的体重目标。" +#: data/ui/setup_window.blp:286 +msgid "The WHO recommends a BMI of 18.5–24.9." +msgstr "世界卫生组织建议 BMI 为 18.5-24.9。" + #: data/ui/setup_window.blp:314 msgid "Current weight" msgstr "当前体重" @@ -575,10 +571,14 @@ msgid "Enable plugin" msgstr "启用插件" #: src/core/application.rs:169 +msgid "A health tracking app for the GNOME desktop." +msgstr "GNOME 桌面的健康追踪应用。" + +#: src/core/application.rs:171 msgid "translator-credits" msgstr "D , 2021" -#: src/core/application.rs:171 +#: src/core/application.rs:173 msgid "Websites" msgstr "网站" @@ -700,7 +700,7 @@ msgid_plural "{} calories burned today" msgstr[0] "今天消耗了 {} 卡路里" #: src/plugins/steps/details.rs:186 -msgid "Today's steps: {}" +msgid "Today’s steps: {}" msgstr "今天的步数:{}" #: src/plugins/steps/details.rs:201 @@ -710,18 +710,18 @@ msgstr "还没有连胜。连续几天达到您的步数目标,开始连胜! #: src/plugins/steps/details.rs:205 msgid "" -"You're on a streak for {} day. Reach your step goal today to continue it!" +"You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" -"You're on a streak for {} days. Reach your step goal today to continue it!" +"You’re on a streak for {} days. Reach your step goal today to continue it!" msgstr[0] "您已经连胜 {} 天。今天达到您的步数目标以继续!" #: src/plugins/steps/details.rs:213 -msgid "You've reached your step goal today. Keep going to start a streak!" +msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "您今天已经达到您的步数目标。继续以开始连胜!" #: src/plugins/steps/details.rs:216 -msgid "You're on a streak for {} day. Good job!" -msgid_plural "You're on a streak for {} days. Good job!" +msgid "You’re on a streak for {} day. Good job!" +msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "您已经连胜 {} 天。干得好!" #. TRANSLATORS: X step(s) on DATE @@ -741,7 +741,6 @@ msgid_plural "Reached {} percent of daily step goal" msgstr[0] "已达到您每日步数目标的百分之 {}" #: src/plugins/steps/summary.rs:112 -#| msgid "Please enter your daily step goal." msgid "Well done! You have reached your daily step goal!" msgstr "干得好!您已达到每日步数目标!" @@ -765,7 +764,7 @@ msgstr[0] "{} 公斤({})" msgid "Unknown BMI" msgstr "未知 BMI" -#: src/plugins/weight/details.rs:270 +#: src/plugins/weight/details.rs:268 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -775,7 +774,7 @@ msgid_plural "" msgstr[0] "" "您的体重目标是 {} 磅。添加第一个体重测量结果,看看您有多接近达到目标。" -#: src/plugins/weight/details.rs:277 +#: src/plugins/weight/details.rs:275 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -785,36 +784,32 @@ msgid_plural "" msgstr[0] "" "您的体重目标是 {} 公斤。添加第一个体重测量结果,看看您有多接近达到目标。" -#: src/plugins/weight/details.rs:286 -msgid "You've reached your weight goal. Great job!" +#: src/plugins/weight/details.rs:284 +msgid "You’ve reached your weight goal. Great job!" msgstr "您已经达到了您的体重目标。干得好!" -#. TRANSLATORS: First part of message, ends with [...] you have {} pound left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:302 -msgid "Your weight goal is {} pound," -msgid_plural "Your weight goal is {} pounds," -msgstr[0] "您的体重目标是 {} 磅," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:307 -msgid "you have {} pound left to reach it" -msgid_plural "you have {} pounds left to reach it" -msgstr[0] "您还剩 {} 磅才能达到目标" - -#. TRANSLATORS: First part of message, ends with [...] you have {} kilogram left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:314 -msgid "Your weight goal is {} kilogram," -msgid_plural "Your weight goal is {} kilograms," -msgstr[0] "您的体重目标是 {} 公斤," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:320 -msgid "you have {} kilogram left to reach it" -msgid_plural "you have {} kilograms left to reach it" +#: src/plugins/weight/details.rs:300 +msgid "Your weight goal is {} pound." +msgid_plural "Your weight goal is {} pounds." +msgstr[0] "您的体重目标是 {} 磅。" + +#: src/plugins/weight/details.rs:305 +msgid "You have {} pound left to reach it." +msgid_plural "You have {} pounds left to reach it." +msgstr[0] "您还剩 {} 磅才能达到目标。" + +#: src/plugins/weight/details.rs:312 +msgid "Your weight goal is {} kilogram." +msgid_plural "Your weight goal is {} kilograms." +msgstr[0] "您的体重目标是 {} 公斤。" + +#: src/plugins/weight/details.rs:318 +msgid "You have {} kilogram left to reach it" +msgid_plural "You have {} kilograms left to reach it" msgstr[0] "您还剩 {} 公斤才能达到目标" -#: src/plugins/weight/details.rs:330 -msgid "No weight goal set yet. You can set it in Health's preferences." +#: src/plugins/weight/details.rs:328 +msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "尚未设置体重目标。您可以在健康的首选项中进行设置。" #: src/plugins/weight/summary.rs:119 @@ -856,34 +851,34 @@ msgid "No weight data available" msgstr "无可用体重数据" #: src/sync/csv.rs:81 src/sync/csv.rs:370 -msgid "No activities added yet; can't create empty export!" +msgid "No activities added yet; can’t create empty export!" msgstr "尚未添加活动;无法创建空导出!" #: src/sync/csv.rs:111 src/sync/csv.rs:388 -msgid "No weight measurements added yet; can't create empty export!" +msgid "No weight measurements added yet; can’t create empty export!" msgstr "尚未添加体重测量结果;无法创建空导出!" #: src/sync/csv.rs:184 src/sync/csv.rs:332 -msgid "Can't parse encrypted backup without encryption key!" +msgid "Can’t parse encrypted backup without encryption key!" msgstr "没有加密密钥,无法解析加密备份!" #: src/sync/csv.rs:195 src/sync/csv.rs:352 msgid "" -"Couldn't parse CSV. Are you trying to read an unencrypted backup as an " +"Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " "encrypted one?" msgstr "无法解析 CSV。您是否试图将未加密备份作为加密备份读取?" #: src/sync/csv.rs:208 -msgid "Couldn't decrypt data. Are you sure you're using the right key?" +msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" msgstr "无法解密数据。您确定您使用了正确的密钥吗?" #: src/sync/database_receiver.rs:46 -msgid "Couldn't synchronize steps due to error {}" -msgstr "无法同步步数,由于错误 {}" +msgid "Couldn’t synchronize steps due to error {}" +msgstr "由于错误无法同步步数 {}" #: src/sync/database_receiver.rs:60 -msgid "Couldn't synchronize weight measurements due to error {}" -msgstr "无法同步体重测量结果,由于错误 {}" +msgid "Couldn’t synchronize weight measurements due to error {}" +msgstr "由于错误无法同步体重测量结果 {}" #: src/sync/google_fit.rs:211 msgid "CRSF Verification failed, got {}, expected {}" @@ -895,7 +890,7 @@ msgstr "请求 OAuth2 令牌失败,由于错误 {}" #: src/sync/sync_provider.rs:109 msgid "" -"Can't retrieve OAuth2 token when no refresh token is set! Please re-" +"Can’t retrieve OAuth2 token when no refresh token is set! Please re-" "authenticate with your sync provider." msgstr "未设置刷新令牌时无法检索 OAuth2 令牌!请重新与您的同步提供程序认证。" @@ -908,7 +903,7 @@ msgid "Successfully authenticated, please return to Health." msgstr "已成功认证,请返回到健康。" #: src/sync/sync_provider.rs:228 -msgid "Couldn't parse OAuth2 response" +msgid "Couldn’t parse OAuth2 response" msgstr "无法解析 OAuth2 响应" #: src/views/bar_graph_view.rs:583 @@ -1101,8 +1096,15 @@ msgid "Failed to migrate database to new version due to error {}" msgstr "无法将数据库迁移到新版本,由于错误 {}" #: src/windows/window.rs:267 -msgid "Couldn't sync Google Fit data due to error: {}" -msgstr "无法同步 Google Fit 数据,由于错误:{}" +msgid "Couldn’t sync Google Fit data due to error: {}" +msgstr "由于错误无法同步 Google Fit 数据:{}" + +#~ msgid "@APPLICATION_ID@" +#~ msgstr "@APPLICATION_ID@" + +#~| msgid "The WHO recommends 10.000 steps per day." +#~ msgid "The WHO recommends 10,000 steps per day." +#~ msgstr "世界卫生组织建议每天 10000 步。" #~ msgid "of {} step" #~ msgid_plural "of {} steps" -- 2.40.1 From 9a65ae65f49b10572df6dd50e69350f5047a0d18 Mon Sep 17 00:00:00 2001 From: baarkerlounger Date: Tue, 16 Aug 2022 11:01:54 +0100 Subject: [PATCH 29/83] chore(desktop.ini): Add compatible form factors info for Phosh --- data/dev.Cogitri.Health.desktop.in.in | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data/dev.Cogitri.Health.desktop.in.in b/data/dev.Cogitri.Health.desktop.in.in index a07fa7e..a5b14d9 100644 --- a/data/dev.Cogitri.Health.desktop.in.in +++ b/data/dev.Cogitri.Health.desktop.in.in @@ -8,3 +8,5 @@ Categories=GNOME;GTK;Utility;MedicalSoftware; StartupNotify=true DBusActivatable=true X-GNOME-UsesNotifications=true +# Translators: Do NOT translate or transliterate this text (these are enum types)! +X-Purism-FormFactor=Workstation;Mobile; -- 2.40.1 From eb43fca67558faf095620c89c366a1b807f06c96 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Wed, 17 Aug 2022 17:29:39 +0200 Subject: [PATCH 30/83] chore(deps): upgrade --- Cargo.lock | 264 ++++++++++++++++++++++++++++-------------------- Cargo.toml | 2 +- src/sync/csv.rs | 2 +- 3 files changed, 155 insertions(+), 113 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 370efe8..d613b9e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,10 +10,11 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aead" -version = "0.4.3" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" +checksum = "5c192eb8f11fc081b0fe4259ba5af04217d4e0faddd02417310a927911abd7c8" dependencies = [ + "crypto-common", "generic-array", ] @@ -26,17 +27,26 @@ dependencies = [ "memchr", ] +[[package]] +name = "android_system_properties" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7ed72e1635e121ca3e79420540282af22da58be50de153d36f81ddc6b83aa9e" +dependencies = [ + "libc", +] + [[package]] name = "anyhow" -version = "1.0.58" +version = "1.0.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704" +checksum = "1485d4d2cc45e7b201ee3767015c96faa5904387c9d87c6efdd0fb511f12d305" [[package]] name = "async-trait" -version = "0.1.56" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716" +checksum = "76464446b8bc32758d7e88ee1a804d9914cd9b1cb264c029899680b0be29826f" dependencies = [ "proc-macro2", "quote", @@ -57,9 +67,9 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "bit-set" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" dependencies = [ "bit-vec", ] @@ -111,9 +121,9 @@ checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" [[package]] name = "bytes" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0b3de4a0c5e67e16066a0715723abd91edc2f9001d09c46e1dca929351e130e" +checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" [[package]] name = "cairo-rs" @@ -162,21 +172,20 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chacha20" -version = "0.8.2" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c80e5460aa66fe3b91d40bcbdab953a597b60053e34d684ac6903f863b680a6" +checksum = "c7fc89c7c5b9e7a02dfe45cd2367bae382f9ed31c61ca8debe5f827c420a2f08" dependencies = [ "cfg-if", "cipher", "cpufeatures", - "zeroize", ] [[package]] name = "chacha20poly1305" -version = "0.9.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18446b09be63d457bbec447509e85f662f32952b035ce892290396bc0b0cff5" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ "aead", "chacha20", @@ -187,11 +196,11 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.19" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" dependencies = [ - "libc", + "iana-time-zone", "num-integer", "num-traits", "serde", @@ -206,13 +215,21 @@ checksum = "fff857943da45f546682664a79488be82e69e43c1a7a2307679ab9afb3a66d2e" [[package]] name = "cipher" -version = "0.3.0" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" dependencies = [ - "generic-array", + "crypto-common", + "inout", + "zeroize", ] +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + [[package]] name = "cpufeatures" version = "0.2.2" @@ -238,6 +255,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", + "rand_core", "typenum", ] @@ -373,9 +391,9 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d07a982d1fb29db01e5a59b1918e03da4df7297eaeee7686ac45542fd4e59c8" +checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2" [[package]] name = "easy-ext" @@ -401,9 +419,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" dependencies = [ "instant", ] @@ -452,24 +470,24 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +checksum = "2bfc52cbddcfd745bf1740338492bb0bd83d76c67b445f91c5fb29fae29ecaa1" dependencies = [ "futures-core", ] [[package]] name = "futures-core" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" +checksum = "d2acedae88d38235936c3922476b10fced7b2b68136f5e3c03c2d5be348a1115" [[package]] name = "futures-executor" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +checksum = "1d11aa21b5b587a64682c0094c2bdd4df0076c5324961a40cc3abd7f37930528" dependencies = [ "futures-core", "futures-task", @@ -478,21 +496,21 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" +checksum = "93a66fc6d035a26a3ae255a6d2bca35eda63ae4c5512bef54449113f7a1228e5" [[package]] name = "futures-task" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" +checksum = "842fc63b931f4056a24d59de13fb1272134ce261816e063e634ad0c15cdc5306" [[package]] name = "futures-util" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +checksum = "f0828a5471e340229c11c77ca80017937ce3c58cb788a17e5f1c2d5c485a9577" dependencies = [ "futures-core", "futures-task", @@ -562,9 +580,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" dependencies = [ "typenum", "version_check", @@ -868,7 +886,20 @@ checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ "bytes", "fnv", - "itoa 1.0.2", + "itoa 1.0.3", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef5528d9c2817db4e10cc78f8d4c8228906e5854f389ff6b076cee3572a09d35" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "js-sys", + "wasm-bindgen", + "winapi", ] [[package]] @@ -888,6 +919,15 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array", +] + [[package]] name = "instant" version = "0.1.12" @@ -914,15 +954,15 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" +checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" [[package]] name = "js-sys" -version = "0.3.58" +version = "0.3.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fac17f7123a73ca62df411b1bf727ccc805daa070338fda671c86dac1bdc27" +checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" dependencies = [ "wasm-bindgen", ] @@ -967,9 +1007,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.126" +version = "0.2.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" +checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" [[package]] name = "libsecret" @@ -1150,9 +1190,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" +checksum = "074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e" [[package]] name = "opaque-debug" @@ -1214,9 +1254,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc" +checksum = "9423e2b32f7a043629287a536f21951e8c6a82482d0acb1eeebfc90bc2225b22" [[package]] name = "percent-encoding" @@ -1226,10 +1266,11 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" [[package]] name = "pest" -version = "2.1.3" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" +checksum = "69486e2b8c2d2aeb9762db7b4e00b0331156393555cff467f4163ff06821eef8" dependencies = [ + "thiserror", "ucd-trie", ] @@ -1253,9 +1294,9 @@ checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" [[package]] name = "poly1305" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", "opaque-debug", @@ -1270,10 +1311,11 @@ checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" [[package]] name = "proc-macro-crate" -version = "1.1.3" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" dependencies = [ + "once_cell", "thiserror", "toml", ] @@ -1304,9 +1346,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.40" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7" +checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" dependencies = [ "unicode-ident", ] @@ -1328,9 +1370,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" dependencies = [ "proc-macro2", ] @@ -1367,9 +1409,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags", ] @@ -1444,15 +1486,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24c8ad4f0c00e1eb5bc7614d236a7f1300e3dbd76b68cac8e06fb00b015ad8d8" +checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" [[package]] name = "ryu" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" [[package]] name = "sct" @@ -1484,18 +1526,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.139" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0171ebb889e45aa68b44aee0859b3eede84c6f5f5c228e6f140c0b2a0a46cad6" +checksum = "53e8e5d5b70924f74ff5c6d64d9a5acd91422117c60f48c4e07855238a254553" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.139" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1d3230c1de7932af58ad8ffbe1d784bd55efd5a9d84ac24f69c72d83543dfb" +checksum = "d3d8e8de557aee63c26b85b947f5e59b690d0454c753f3adeb5cd7835ab88391" dependencies = [ "proc-macro2", "quote", @@ -1504,29 +1546,29 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.82" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" +checksum = "38dd04e3c8279e75b31ef29dbdceebfe5ad89f4d0937213c53f7d49d01b3d5a7" dependencies = [ - "itoa 1.0.2", + "itoa 1.0.3", "ryu", "serde", ] [[package]] name = "serde_path_to_error" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7868ad3b8196a8a0aea99a8220b124278ee5320a55e4fde97794b6f85b1a377" +checksum = "184c643044780f7ceb59104cef98a5a6f12cb2288a7bc701ab93a362b49fd47d" dependencies = [ "serde", ] [[package]] name = "serde_test" -version = "1.0.139" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc933653ac6800dd970d54829f0646dcfd078bcaae7fbd19c6e58a584564a5de" +checksum = "d4b5b007c1bccdc70f8d8b5804da305a64d4279f990f1ae9e3b06eaae46f42e0" dependencies = [ "serde", ] @@ -1580,9 +1622,9 @@ dependencies = [ [[package]] name = "strum_macros" -version = "0.24.2" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4faebde00e8ff94316c01800f9054fd2ba77d30d9e922541913051d1d978918b" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck", "proc-macro2", @@ -1599,9 +1641,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.98" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" +checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" dependencies = [ "proc-macro2", "quote", @@ -1643,18 +1685,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.31" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" +checksum = "f5f6586b7f764adc0231f4c79be7b920e766bb2f3e51b3661cdb263828f19994" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.31" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" +checksum = "12bafc5b54507e0149cdf1b145a5d80ab80a90bcd9275df43d4fff68460f6c21" dependencies = [ "proc-macro2", "quote", @@ -1663,9 +1705,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.11" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c91f41dcb2f096c05f0873d667dceec1087ce5bcf984ec8ffb19acddbb3217" +checksum = "db76ff9fa4b1458b3c7f077f3ff9887394058460d21e634355b273aaf11eea45" dependencies = [ "libc", "num_threads", @@ -1697,9 +1739,9 @@ dependencies = [ [[package]] name = "tracker-rs" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "303639f7251faccbc201f1030d0d2f57c65a1a2f2d39fb24d609b44c15e24e95" +checksum = "dcf2c5d7ef7b88dc8e4918ae410c2e93b4f889be0748d0a56cbd4adc12caa7f9" dependencies = [ "bitflags", "gio", @@ -1711,9 +1753,9 @@ dependencies = [ [[package]] name = "tracker-sys" -version = "0.2.1" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc38ab233a6a3b685b1034c31ee05a2b878fa917d3f5fef99e46dbde20cfaf38" +checksum = "afc20b8ccceb97d1d90726e0b5a6615ebb1c6a35ece420ddeb3402aea1c2d5cb" dependencies = [ "gio-sys", "glib-sys", @@ -1742,9 +1784,9 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7" +checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" [[package]] name = "unicode-normalization" @@ -1757,11 +1799,11 @@ dependencies = [ [[package]] name = "universal-hash" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" +checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" dependencies = [ - "generic-array", + "crypto-common", "subtle", ] @@ -1833,9 +1875,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994" +checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -1843,13 +1885,13 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a" +checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" dependencies = [ "bumpalo", - "lazy_static", "log", + "once_cell", "proc-macro2", "quote", "syn", @@ -1858,9 +1900,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa" +checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1868,9 +1910,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048" +checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" dependencies = [ "proc-macro2", "quote", @@ -1881,15 +1923,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be" +checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" [[package]] name = "web-sys" -version = "0.3.58" +version = "0.3.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fed94beee57daf8dd7d51f2b15dc2bcde92d7a72304cdf662a4371008b71b90" +checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1" dependencies = [ "js-sys", "wasm-bindgen", @@ -1938,9 +1980,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "zeroize" -version = "1.5.6" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20b578acffd8516a6c3f2a1bdefc1ec37e547bb4e0fb8b6b01a4cafc886b4442" +checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f" [[package]] name = "zxcvbn" diff --git a/Cargo.toml b/Cargo.toml index cd5e79b..2fcb1a2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,7 +40,7 @@ default-features = false version = "1.3" [dependencies.chacha20poly1305] -version = "0.9.0" +version = "0.10.0" [dependencies.csv] default-features = false diff --git a/src/sync/csv.rs b/src/sync/csv.rs index 30c14ff..68d70d0 100644 --- a/src/sync/csv.rs +++ b/src/sync/csv.rs @@ -18,7 +18,7 @@ use crate::{core::i18n, core::Database}; use anyhow::Result; -use chacha20poly1305::aead::{Aead, NewAead}; +use chacha20poly1305::aead::{Aead, KeyInit}; use chacha20poly1305::{Key, XChaCha20Poly1305, XNonce}; use gtk::{ gio::{self, prelude::*}, -- 2.40.1 From d4d26d01985966d03d4da25a57e4724e78d49e22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=80=D0=BE=D1=81=D0=BB=D0=B0=D0=B2=20=D0=9D?= =?UTF-8?q?=D0=B8=D0=BA=D0=BE=D0=BB=D0=B8=D1=9B?= Date: Sat, 20 Aug 2022 04:18:27 +0000 Subject: [PATCH 31/83] Update Serbian translation --- po/sr.po | 402 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 242 insertions(+), 160 deletions(-) diff --git a/po/sr.po b/po/sr.po index e96c6f9..e8dc126 100644 --- a/po/sr.po +++ b/po/sr.po @@ -1,21 +1,23 @@ # Serbian translation for health. # Copyright © 2021 health's COPYRIGHT HOLDER # This file is distributed under the same license as the health package. -# Мирослав Николић , 2021–2022. +# Мирослав Николић , 2021–2022. +# msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-02-20 19:37+0000\n" -"PO-Revision-Date: 2022-03-03 05:36+0200\n" -"Last-Translator: Мирослав Николић \n" -"Language-Team: Serbian <(nothing)>\n" +"POT-Creation-Date: 2022-07-24 21:36+0000\n" +"PO-Revision-Date: 2022-08-09 06:53+0200\n" +"Last-Translator: Мирослав Николић \n" +"Language-Team: Serbian <српски >\n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n" -"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n" +"X-Generator: Gtranslator 3.36.0\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" @@ -64,12 +66,15 @@ msgid "List of recent activity types" msgstr "Списак скорашњих врста активности" #: data/dev.Cogitri.Health.gschema.xml:42 +#| msgid "" +#| "Activity types the user used recently, to be shown first in the activity " +#| "types selector's list" msgid "" "Activity types the user used recently, to be shown first in the activity " -"types selector's list" +"types selector’s list" msgstr "" -"Врсте активности које је корисник недавно користио, које ће се приказати " -"први пут на списку бирача врста активности" +"Врсте активности које је корисник недавно користио, које ће се прве " +"приказати на списку бирача врста активности" #: data/dev.Cogitri.Health.gschema.xml:46 msgid "Google Fit Sync-Provider setup" @@ -167,28 +172,28 @@ msgstr "Ширина прозора." msgid "Health" msgstr "Здравље" -#: data/dev.Cogitri.Health.Autostart.desktop.in.in:5 -#: data/dev.Cogitri.Health.desktop.in.in:5 -msgid "@APPLICATION_ID@" -msgstr "@ИБ_ПРОГРАМА@" - -#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 src/core/application.rs:167 -msgid "A health tracking app for the GNOME desktop." -msgstr "Програм за праћење здравља за Гномову радну површ." +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 +msgid "Track your fitness goals" +msgstr "Пратите ваше циљеве вежбања" #: data/dev.Cogitri.Health.metainfo.xml.in.in:11 +#| msgid "" +#| "A health tracking app for the GNOME desktop. Health can visualize how " +#| "many steps you've made daily, your weight development over time and your " +#| "daily activities. Data can be synched from Google Fit or manually entered " +#| "into Health. Afterwards, it can be viewed and edited in Health." msgid "" -"A health tracking app for the GNOME desktop. Health can visualize how many " -"steps you've made daily, your weight development over time and your daily " -"activities. Data can be synched from Google Fit or manually entered into " -"Health. Afterwards, it can be viewed and edited in Health." +"Health can visualize how many steps you’ve made daily, your weight " +"development over time and your daily activities. Data can be synched from " +"Google Fit or manually entered into Health. Afterwards, it can be viewed and " +"edited in Health." msgstr "" -"Програм за праћење здравља за Гномову радну површ. Здравље може да прикаже " -"колико сте корака направили дневно, развој ваше тежине у току времена и ваше " -"дневне активности. Подаци могу бити усклађени са „Google Fit“-а или унети " -"ручно у Здравље. Касније, можете их прегледати и уређивати у Здрављу." +"Здравље може да прикаже колико сте корака направили дневно, развој ваше " +"тежине у току времена и ваше дневне активности. Подаци могу бити усклађени " +"са „Google Fit“-а или унети ручно у Здравље. Касније, можете их прегледати и " +"уређивати у Здрављу." -#: data/dev.Cogitri.Health.metainfo.xml.in.in:37 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:36 msgid "Rasmus “Cogitri” Thomsen" msgstr "Расмус „Cogitri“ Томсен" @@ -203,63 +208,63 @@ msgstr "_Откажи" msgid "_Save" msgstr "_Сачувај" -#: data/ui/date_selector.blp:17 +#: data/ui/date_selector.blp:18 msgid "January" msgstr "Јануар" -#: data/ui/date_selector.blp:18 src/widgets/date_selector.rs:245 +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:223 msgid "February" msgstr "Фебруар" -#: data/ui/date_selector.blp:19 +#: data/ui/date_selector.blp:20 msgid "March" msgstr "Март" -#: data/ui/date_selector.blp:20 +#: data/ui/date_selector.blp:21 msgid "April" msgstr "Април" -#: data/ui/date_selector.blp:21 +#: data/ui/date_selector.blp:22 msgid "May" msgstr "Мај" -#: data/ui/date_selector.blp:22 +#: data/ui/date_selector.blp:23 msgid "June" msgstr "Јун" -#: data/ui/date_selector.blp:23 +#: data/ui/date_selector.blp:24 msgid "July" msgstr "Јул" -#: data/ui/date_selector.blp:24 +#: data/ui/date_selector.blp:25 msgid "August" msgstr "Август" -#: data/ui/date_selector.blp:25 +#: data/ui/date_selector.blp:26 msgid "September" msgstr "Септембар" -#: data/ui/date_selector.blp:26 +#: data/ui/date_selector.blp:27 msgid "October" msgstr "Октобар" -#: data/ui/date_selector.blp:27 +#: data/ui/date_selector.blp:28 msgid "November" msgstr "Новембар" -#: data/ui/date_selector.blp:28 +#: data/ui/date_selector.blp:29 msgid "December" msgstr "Децембар" -#: data/ui/date_selector.blp:34 +#: data/ui/date_selector.blp:35 msgid "Day" msgstr "Дан" -#: data/ui/date_selector.blp:60 +#: data/ui/date_selector.blp:61 msgid "Month" msgstr "Месец" -#: data/ui/date_selector.blp:83 +#: data/ui/date_selector.blp:84 msgid "Year" msgstr "Година" @@ -329,8 +334,7 @@ msgstr "Можете да користите дугме + да додат msgid "Weight Measurements" msgstr "Мерња тежине" -#: data/ui/plugins/weight/summary.blp:5 data/ui/preferences_window.blp:184 -#: data/ui/preferences_window.blp:187 data/ui/view_add_weight.blp:38 +#: data/ui/plugins/weight/summary.blp:5 data/ui/view_add_weight.blp:38 #: src/plugins/weight/plugin.rs:39 src/views/view_add_weight.rs:87 msgid "Weight" msgstr "Тежина" @@ -359,23 +363,23 @@ msgstr "Опште" msgid "User" msgstr "Корисник" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:146 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 msgid "Unit system" msgstr "Систем јединица" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:156 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 msgid "Imperial" msgstr "Империјални" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 msgid "Metric" msgstr "Метрички" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:170 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 msgid "Birthday" msgstr "Рођендан" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:179 +#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 msgid "Height" msgstr "Висина" @@ -395,18 +399,23 @@ msgstr "Учесталост" msgid "Daily reminder time" msgstr "Време дневног потсетника" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:242 -#: src/plugins/steps/details.rs:241 +#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 +#: src/plugins/steps/details.rs:240 msgid "Step goal" msgstr "Циљни кораци" -#: data/ui/preferences_window.blp:170 data/ui/setup_window.blp:218 -msgid "The WHO recommends 10.000 steps per day." -msgstr "СЗО препоручује 10.000 корака на дан." +#: data/ui/preferences_window.blp:170 +msgid "7,500 steps per day are recommended." +msgstr "Препоручује се 7500 корака дневно." + +#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +#| msgid "Weight goal" +msgid "Weight Goal" +msgstr "Циљна тежина" -#: data/ui/preferences_window.blp:188 data/ui/setup_window.blp:279 +#: data/ui/preferences_window.blp:188 msgid "The WHO recommends a BMI of 18.5-24.9." -msgstr "СЗО препоручује БМИ од 18.5-24.9." +msgstr "СЗО препоручује ИМТ од 18.5-24.9." #: data/ui/preferences_window.blp:212 msgid "Sync" @@ -436,51 +445,66 @@ msgstr "Увези податке из ЗРВ" msgid "Import…" msgstr "Увези…" -#: data/ui/setup_window.blp:33 +#: data/ui/setup_window.blp:39 msgid "Health Setup" msgstr "Подешавање Здравља" -#: data/ui/setup_window.blp:47 +#: data/ui/setup_window.blp:53 msgid "_Quit" msgstr "_Изађи" -#: data/ui/setup_window.blp:56 +#: data/ui/setup_window.blp:62 msgid "_Previous" msgstr "_Претходно" -#: data/ui/setup_window.blp:71 +#: data/ui/setup_window.blp:77 msgid "_Next" msgstr "_Следеће" -#: data/ui/setup_window.blp:84 +#: data/ui/setup_window.blp:90 msgid "_Done" msgstr "_Урађено" -#: data/ui/setup_window.blp:110 +#: data/ui/setup_window.blp:116 msgid "Welcome to Health!" msgstr "Добродошли у Здравље!" -#: data/ui/setup_window.blp:122 +#: data/ui/setup_window.blp:128 msgid "Please enter some information to get setup." msgstr "Унесите неке податке зарад подешавања." -#: data/ui/setup_window.blp:206 +#: data/ui/setup_window.blp:212 msgid "Please enter your daily step goal." msgstr "Унесите ваше циљне дневне кораке." -#: data/ui/setup_window.blp:267 +#: data/ui/setup_window.blp:224 +#| msgid "The WHO recommends 10.000 steps per day." +msgid "The WHO recommends 7.500 steps per day." +msgstr "СЗО препоручује 7500 корака на дан." + +#: data/ui/setup_window.blp:274 msgid "Please enter your weight goal." msgstr "Унесите вашу циљну тежину." -#: data/ui/setup_window.blp:307 src/plugins/weight/details.rs:221 +#: data/ui/setup_window.blp:286 +#| msgid "The WHO recommends a BMI of 18.5-24.9." +msgid "The WHO recommends a BMI of 18.5–24.9." +msgstr "СЗО препоручује ИМТ од 18.5-24.9." + +#: data/ui/setup_window.blp:314 +#| msgid "Import weights" +msgid "Current weight" +msgstr "Тренутна тежина" + +#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 msgid "Weight goal" msgstr "Циљна тежина." -#: data/ui/setup_window.blp:342 +#: data/ui/setup_window.blp:372 msgid "Setup sync with third-party providers." msgstr "Подесите усклађивање са достављачима трећих страна." -#: data/ui/setup_window.blp:354 +#: data/ui/setup_window.blp:384 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "" @@ -569,11 +593,15 @@ msgstr "_О Здрављу" msgid "Enable plugin" msgstr "Укључите прикључак" -#: src/core/application.rs:169 +#: src/core/application.rs:176 +msgid "A health tracking app for the GNOME desktop." +msgstr "Програм за праћење здравља за Гномову радну површ." + +#: src/core/application.rs:178 msgid "translator-credits" msgstr "Мирослав Николић " -#: src/core/application.rs:171 +#: src/core/application.rs:180 msgid "Websites" msgstr "Веб сајтови" @@ -657,11 +685,11 @@ msgstr "Одбојка" msgid "Walking" msgstr "Ходање" -#: src/model/model_notification.rs:236 +#: src/model/model_notification.rs:234 msgid "Health: walking reminder" msgstr "Здравље: подсетник ходања" -#: src/model/model_notification.rs:252 +#: src/model/model_notification.rs:250 msgid "{} step remaining to complete your daily step goal." msgid_plural "{} steps remaining to complete your daily step goal." msgstr[0] "{} корак је остао до испуњења вашег циља дневних корака." @@ -673,7 +701,7 @@ msgstr[3] "Један корак је остао до испуњења ваше msgid "Activities" msgstr "Активности" -#: src/plugins/activities/summary.rs:93 +#: src/plugins/activities/summary.rs:91 msgid "{} active minute today" msgid_plural "{} active minutes today" msgstr[0] "{} активан минут данас" @@ -681,7 +709,7 @@ msgstr[1] "{} активна минута данас" msgstr[2] "{} активних минута данас" msgstr[3] "Један активан минут данас" -#: src/plugins/calories/details.rs:215 +#: src/plugins/calories/details.rs:217 msgid "" "{}:\n" "{} calorie\n" @@ -707,7 +735,7 @@ msgstr[3] "" "{} калорија\n" "{}" -#: src/plugins/calories/summary.rs:96 src/plugins/calories/summary.rs:103 +#: src/plugins/calories/summary.rs:97 src/plugins/calories/summary.rs:104 msgid "{} calorie burned today" msgid_plural "{} calories burned today" msgstr[0] "{} калорија сагорена данас" @@ -715,21 +743,26 @@ msgstr[1] "{} калорије сагорене данас" msgstr[2] "{} калорија сагорених данас" msgstr[3] "Једна сагорена калорија данас" -#: src/plugins/steps/details.rs:187 -msgid "Today's steps: {}" +#: src/plugins/steps/details.rs:186 +#| msgid "Today's steps: {}" +msgid "Today’s steps: {}" msgstr "Број данашњих корака: {}" -#: src/plugins/steps/details.rs:202 +#: src/plugins/steps/details.rs:201 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" "Још нема низа. Постигните свој циљ корака у више дана да започнете низ!" -#: src/plugins/steps/details.rs:206 +#: src/plugins/steps/details.rs:205 +#| msgid "" +#| "You're on a streak for {} day. Reach your step goal today to continue it!" +#| msgid_plural "" +#| "You're on a streak for {} days. Reach your step goal today to continue it!" msgid "" -"You're on a streak for {} day. Reach your step goal today to continue it!" +"You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" -"You're on a streak for {} days. Reach your step goal today to continue it!" +"You’re on a streak for {} days. Reach your step goal today to continue it!" msgstr[0] "" "На низу сте за {} дан. Достигните ваш циљ корака данас да га наставите!" msgstr[1] "" @@ -739,20 +772,23 @@ msgstr[2] "" msgstr[3] "" "На низу сте за 1 дан. Достигните ваш циљ корака данас да га наставите!" -#: src/plugins/steps/details.rs:214 -msgid "You've reached your step goal today. Keep going to start a streak!" +#: src/plugins/steps/details.rs:213 +#| msgid "You've reached your step goal today. Keep going to start a streak!" +msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "Данас сте достигли ваш циљ корака. Наставите да бисте започели низ!" -#: src/plugins/steps/details.rs:217 -msgid "You're on a streak for {} day. Good job!" -msgid_plural "You're on a streak for {} days. Good job!" +#: src/plugins/steps/details.rs:216 +#| msgid "You're on a streak for {} day. Good job!" +#| msgid_plural "You're on a streak for {} days. Good job!" +msgid "You’re on a streak for {} day. Good job!" +msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Остварићете низ за {} дан. Одличан посао!" msgstr[1] "Остварићете низ за {} дана. Одличан посао!" msgstr[2] "Остварићете низ за {} дана. Одличан посао!" msgstr[3] "Остварићете низ за 1 дан. Одличан посао!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:234 +#: src/plugins/steps/details.rs:233 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} корак {}" @@ -768,7 +804,7 @@ msgstr[1] "{} корака сте направили данас" msgstr[2] "{} корака сте направили данас" msgstr[3] "{} корак сте направили данас" -#: src/plugins/steps/summary.rs:104 +#: src/plugins/steps/summary.rs:105 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "Достигнут је {} проценат дневног циља корака" @@ -776,12 +812,17 @@ msgstr[1] "Достигнута су {} процента дневног циља msgstr[2] "Достигнуто је {} процената дневног циља корака" msgstr[3] "Достигнут је један проценат дневног циља корака" -#: src/plugins/weight/details.rs:193 +#: src/plugins/steps/summary.rs:112 +#| msgid "Please enter your daily step goal." +msgid "Well done! You have reached your daily step goal!" +msgstr "Свака вам част! Достигли сте ваше циљне дневне кораке!" + +#: src/plugins/weight/details.rs:192 msgid "Current BMI: {}" msgstr "Текући ИМТ: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:208 +#: src/plugins/weight/details.rs:207 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} фунта {}" @@ -790,7 +831,7 @@ msgstr[2] "{} фунти {}" msgstr[3] "1 фунта {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:211 +#: src/plugins/weight/details.rs:210 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} килограм {}" @@ -798,11 +839,11 @@ msgstr[1] "{} килограма {}" msgstr[2] "{} килограма {}" msgstr[3] "1 килограм {}" -#: src/plugins/weight/details.rs:247 src/plugins/weight/details.rs:252 +#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 msgid "Unknown BMI" msgstr "Непознат ИМТ" -#: src/plugins/weight/details.rs:271 +#: src/plugins/weight/details.rs:268 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -822,7 +863,7 @@ msgstr[3] "" "Ваша циљна тежина је једна фунта. Додајте прво мерење тежине да видите " "колико вам још недостаје да је достигнете." -#: src/plugins/weight/details.rs:278 +#: src/plugins/weight/details.rs:275 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -842,52 +883,58 @@ msgstr[3] "" "Ваша циљна тежина је један килограм. Додајте прво мерење тежине да видите " "колико вам још недостаје да је достигнете." -#: src/plugins/weight/details.rs:287 -msgid "You've reached your weight goal. Great job!" +#: src/plugins/weight/details.rs:284 +#| msgid "You've reached your weight goal. Great job!" +msgid "You’ve reached your weight goal. Great job!" msgstr "Достигли сте жељену тежину. Одличан посао!" -#. TRANSLATORS: First part of message, ends with [...] you have {} pound left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:303 -msgid "Your weight goal is {} pound," -msgid_plural "Your weight goal is {} pounds," +#: src/plugins/weight/details.rs:300 +#| msgid "Your weight goal is {} pound," +#| msgid_plural "Your weight goal is {} pounds," +msgid "Your weight goal is {} pound." +msgid_plural "Your weight goal is {} pounds." msgstr[0] "Ваша циљна тежина је {} фунта." msgstr[1] "Ваша циљна тежина је {} фунте." msgstr[2] "Ваша циљна тежина је {} фунти." msgstr[3] "Ваша циљна тежина је једна фунта." -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:308 -msgid "you have {} pound left to reach it" -msgid_plural "you have {} pounds left to reach it" -msgstr[0] "остаје вам {} фунта да је достигнете" -msgstr[1] "остају вам {} фунте да је достигнете" -msgstr[2] "остаје вам {} фунти да је достигнете" -msgstr[3] "остаје вам 1 фунта да је достигнете" - -#. TRANSLATORS: First part of message, ends with [...] you have {} kilogram left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:315 -msgid "Your weight goal is {} kilogram," -msgid_plural "Your weight goal is {} kilograms," +#: src/plugins/weight/details.rs:305 +#| msgid "you have {} pound left to reach it" +#| msgid_plural "you have {} pounds left to reach it" +msgid "You have {} pound left to reach it." +msgid_plural "You have {} pounds left to reach it." +msgstr[0] "Остаје вам {} фунта да је достигнете." +msgstr[1] "Остају вам {} фунте да је достигнете." +msgstr[2] "Остаје вам {} фунти да је достигнете." +msgstr[3] "Остаје вам 1 фунта да је достигнете." + +#: src/plugins/weight/details.rs:312 +#| msgid "Your weight goal is {} kilogram," +#| msgid_plural "Your weight goal is {} kilograms," +msgid "Your weight goal is {} kilogram." +msgid_plural "Your weight goal is {} kilograms." msgstr[0] "Ваша циљна тежина је {} килограм." msgstr[1] "Ваша циљна тежина је {} килограма." msgstr[2] "Ваша циљна тежина је {} килограма." msgstr[3] "Ваша циљна тежина је један килограм." -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:321 -msgid "you have {} kilogram left to reach it" -msgid_plural "you have {} kilograms left to reach it" -msgstr[0] "остаје вам {} килограм да је достигнете" -msgstr[1] "остају вам {} килограма да је достигнете" -msgstr[2] "остаје вам {} килограма да је достигнете" -msgstr[3] "остаје вам 1 килограм да је достигнете" - -#: src/plugins/weight/details.rs:331 -msgid "No weight goal set yet. You can set it in Health's preferences." +#: src/plugins/weight/details.rs:318 +#| msgid "you have {} kilogram left to reach it" +#| msgid_plural "you have {} kilograms left to reach it" +msgid "You have {} kilogram left to reach it" +msgid_plural "You have {} kilograms left to reach it" +msgstr[0] "Остаје вам {} килограм да је достигнете" +msgstr[1] "Остају вам {} килограма да је достигнете" +msgstr[2] "Остаје вам {} килограма да је достигнете" +msgstr[3] "Остаје вам 1 килограм да је достигнете" + +#: src/plugins/weight/details.rs:328 +#| msgid "No weight goal set yet. You can set it in Health's preferences." +msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" "Циљна тежина још није постављена, Можете је поставити у поставкама Здравља." -#: src/plugins/weight/summary.rs:120 +#: src/plugins/weight/summary.rs:119 msgid "{} pound" msgid_plural "{} pounds" msgstr[0] "{} фунта" @@ -895,7 +942,7 @@ msgstr[1] "{} фунте" msgstr[2] "{} фунти" msgstr[3] "1 фунта" -#: src/plugins/weight/summary.rs:128 +#: src/plugins/weight/summary.rs:127 msgid "{} kilogram" msgid_plural "{} kilograms" msgstr[0] "{} килограм" @@ -903,7 +950,7 @@ msgstr[1] "{} килограма" msgstr[2] "{} килограма" msgstr[3] "1 килограм" -#: src/plugins/weight/summary.rs:139 +#: src/plugins/weight/summary.rs:138 msgid "+ {} pound compared to previous measurement" msgid_plural "+ {} pounds compared to previous measurement" msgstr[0] "+ {} фунта у поређењу са претходним мерењем" @@ -911,7 +958,7 @@ msgstr[1] "+ {} фунте у поређењу са претходним мер msgstr[2] "+ {} фунти у поређењу са претходним мерењем" msgstr[3] "+ једна фунта у поређењу са претходном тежином" -#: src/plugins/weight/summary.rs:147 +#: src/plugins/weight/summary.rs:146 msgid "+ {} kilogram compared to previous measurement" msgid_plural "+ {} kilograms compared to previous measurement" msgstr[0] "+ {} килограм у поређењу са претходним мерењем" @@ -919,7 +966,7 @@ msgstr[1] "+ {} килограма у поређењу са претходним msgstr[2] "+ {} килограма у поређењу са претходним мерењем" msgstr[3] "+ један килограм у поређењу са претходном тежином" -#: src/plugins/weight/summary.rs:158 +#: src/plugins/weight/summary.rs:157 msgid "{} pound compared to previous measurement" msgid_plural "{} pounds compared to previous measurement" msgstr[0] "{} фунта у поређењу са претходним мерењем" @@ -927,7 +974,7 @@ msgstr[1] "{} фунте у поређењу са претходним мере msgstr[2] "{} фунти у поређењу са претходним мерењем" msgstr[3] "једна фунта у поређењу са претходном тежином" -#: src/plugins/weight/summary.rs:166 +#: src/plugins/weight/summary.rs:165 msgid "{} kilogram compared to previous measurement" msgid_plural "{} kilograms compared to previous measurement" msgstr[0] "{} килограм у поређењу са претходним мерењем" @@ -935,45 +982,54 @@ msgstr[1] "{} килограма у поређењу са претходним msgstr[2] "{} килограма у поређењу са претходним мерењем" msgstr[3] "један килограм у поређењу са претходном тежином" -#: src/plugins/weight/summary.rs:174 +#: src/plugins/weight/summary.rs:173 msgid "No change in weight" msgstr "Нема промене у тежини" -#: src/plugins/weight/summary.rs:179 +#: src/plugins/weight/summary.rs:178 msgid "No weight data available" msgstr "Нема доступних података тежине" -#: src/sync/csv.rs:81 src/sync/csv.rs:371 -msgid "No activities added yet; can't create empty export!" +#: src/sync/csv.rs:81 src/sync/csv.rs:370 +#| msgid "No activities added yet; can't create empty export!" +msgid "No activities added yet; can’t create empty export!" msgstr "Још увек нису додате активности; не могу да направим празан извоз!" -#: src/sync/csv.rs:111 src/sync/csv.rs:389 -msgid "No weight measurements added yet; can't create empty export!" +#: src/sync/csv.rs:111 src/sync/csv.rs:388 +#| msgid "No weight measurements added yet; can't create empty export!" +msgid "No weight measurements added yet; can’t create empty export!" msgstr "Још увек нису додате мере тежине; не могу да направим празан извоз!" -#: src/sync/csv.rs:184 src/sync/csv.rs:333 -msgid "Can't parse encrypted backup without encryption key!" +#: src/sync/csv.rs:184 src/sync/csv.rs:332 +#| msgid "Can't parse encrypted backup without encryption key!" +msgid "Can’t parse encrypted backup without encryption key!" msgstr "Не могу да обрадим шифровану резерву без кључа шифровања!" -#: src/sync/csv.rs:195 src/sync/csv.rs:353 +#: src/sync/csv.rs:195 src/sync/csv.rs:352 +#| msgid "" +#| "Couldn't parse CSV. Are you trying to read an unencrypted backup as an " +#| "encrypted one?" msgid "" -"Couldn't parse CSV. Are you trying to read an unencrypted backup as an " +"Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " "encrypted one?" msgstr "" "Не могу да обрадим ЗРВ. Да ли покушавате да читате нешифровану резерву као " "шифровану?" #: src/sync/csv.rs:208 -msgid "Couldn't decrypt data. Are you sure you're using the right key?" +#| msgid "Couldn't decrypt data. Are you sure you're using the right key?" +msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" msgstr "" "Не могу да дешифрујем податке. Да ли сигурно користите одговарајући кључ?" #: src/sync/database_receiver.rs:46 -msgid "Couldn't synchronize steps due to error {}" +#| msgid "Couldn't synchronize steps due to error {}" +msgid "Couldn’t synchronize steps due to error {}" msgstr "Не могу да ускладим кораке услед грешке „{}“" #: src/sync/database_receiver.rs:60 -msgid "Couldn't synchronize weight measurements due to error {}" +#| msgid "Couldn't synchronize weight measurements due to error {}" +msgid "Couldn’t synchronize weight measurements due to error {}" msgstr "Не могу да ускладим мере тежине услед грешке „{}“" #: src/sync/google_fit.rs:211 @@ -985,30 +1041,38 @@ msgid "Requesting OAuth2 token failed due to error {}" msgstr "Захтевање „OAuth2“ скупине није успело услед грешке „{}“" #: src/sync/sync_provider.rs:109 +#| msgid "" +#| "Can't retrieve OAuth2 token when no refresh token is set! Please re-" +#| "authenticate with your sync provider." msgid "" -"Can't retrieve OAuth2 token when no refresh token is set! Please re-" +"Can’t retrieve OAuth2 token when no refresh token is set! Please re-" "authenticate with your sync provider." msgstr "" "Не могу да довучем „OAuth2“ скупину када није постављена скупина освежавања! " "Поново потврдите идентитет са вашим достављачем усклађивања." -#: src/sync/sync_provider.rs:225 +#: src/sync/sync_provider.rs:157 +msgid "Token for Health sync provider {}" +msgstr "Скупина за достављача усклађивања Здравља „{}“" + +#: src/sync/sync_provider.rs:217 msgid "Successfully authenticated, please return to Health." msgstr "Потврђивање идентитета је успело, вратите се на Здравље." -#: src/sync/sync_provider.rs:236 -msgid "Couldn't parse OAuth2 response" +#: src/sync/sync_provider.rs:228 +#| msgid "Couldn't parse OAuth2 response" +msgid "Couldn’t parse OAuth2 response" msgstr "Не могу да обрадим „OAuth2“ одговор" -#: src/views/bar_graph_view.rs:584 +#: src/views/bar_graph_view.rs:583 msgid "Enter weight record to calculate idle calories" msgstr "Унесите запис тежине да израчунате калорије мировања" -#: src/views/bar_graph_view.rs:588 +#: src/views/bar_graph_view.rs:587 msgid "Idle calories" msgstr "Калорије мировања" -#: src/views/view_add_activity.rs:237 +#: src/views/view_add_activity.rs:236 msgid "Activity" msgstr "Активност" @@ -1052,7 +1116,12 @@ msgstr[1] "{} стопе" msgstr[2] "{} стопа" msgstr[3] "1 стопа" -#: src/widgets/bmi_level_bar.rs:219 src/widgets/bmi_level_bar.rs:256 +#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 +#| msgid "Current BMI: {}" +msgid "Current BMI" +msgstr "Текући ИМТ" + +#: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "Тренутни ИМТ: {}" @@ -1073,42 +1142,42 @@ msgid "Feet" msgstr "Стопе" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "инчи" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "стопе" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "миље" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "фунте" @@ -1126,6 +1195,11 @@ msgstr "Активности.csv.encrypted" msgid "Activities.csv" msgstr "Активности.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Није изабрана ниједна датотека." + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "Сачувај мере тежине" @@ -1186,14 +1260,22 @@ msgstr "Дошло је до грешке!" msgid "Close" msgstr "Затвори" +#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 +msgid "Target BMI" +msgstr "Циљни ИМТ" + #: src/windows/window.rs:97 msgid "Failed to migrate database to new version due to error {}" msgstr "Нисам успео да пренесем базу података на ново издање услед грешке „{}“" -#: src/windows/window.rs:266 -msgid "Couldn't sync Google Fit data due to error: {}" +#: src/windows/window.rs:267 +#| msgid "Couldn't sync Google Fit data due to error: {}" +msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "Не могу да ускладим податке Гугл Фита услед грешке: {}" +#~ msgid "@APPLICATION_ID@" +#~ msgstr "@ИБ_ПРОГРАМА@" + #~ msgid "Health Daemon" #~ msgstr "Позадинац Здравља" -- 2.40.1 From e85425bab7654c89cf990e059c6c98ddaecdfcae Mon Sep 17 00:00:00 2001 From: Enrico Nicoletto Date: Wed, 7 Sep 2022 01:08:23 +0000 Subject: [PATCH 32/83] Update Brazilian Portuguese translation --- po/pt_BR.po | 116 ++++++++++++---------------------------------------- 1 file changed, 27 insertions(+), 89 deletions(-) diff --git a/po/pt_BR.po b/po/pt_BR.po index c20b06d..5c87fc2 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -1,25 +1,25 @@ # Brazilian Portuguese translation for health. # Copyright (C) 2022 health's COPYRIGHT HOLDER # This file is distributed under the same license as the health package. -# Enrico Nicoletto , 2021. # Rafael Fontenelle , 2021-2022. # Matheus Barbosa , 2022. # Diogo Leal , 2022. +# Enrico Nicoletto , 2021-2022. # msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-07 16:42+0000\n" -"PO-Revision-Date: 2022-07-09 00:31-0300\n" -"Last-Translator: Diogo Leal \n" +"POT-Creation-Date: 2022-07-24 21:36+0000\n" +"PO-Revision-Date: 2022-09-06 22:06-0300\n" +"Last-Translator: Enrico Nicoletto \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1)\n" -"X-Generator: Gtranslator 42.0\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 3.0.1\n" "X-DL-Team: pt_BR\n" "X-DL-Module: health\n" "X-DL-Branch: master\n" @@ -485,8 +485,8 @@ msgstr "Por favor, insira sua meta diária de passos." # WHO = OMS = Organização Mundial da Saúde #: data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." -msgstr "A OMS recomenda 10.000 passos por dia." +msgid "The WHO recommends 7.500 steps per day." +msgstr "A OMS recomenda 7.500 passos por dia." #: data/ui/setup_window.blp:274 msgid "Please enter your weight goal." @@ -600,18 +600,18 @@ msgstr "_Sobre o Saúde" msgid "Enable plugin" msgstr "Habilitar plugin" -#: src/core/application.rs:169 +#: src/core/application.rs:176 msgid "A health tracking app for the GNOME desktop." msgstr "Um aplicativo de monitoramento de saúde para o ambiente GNOME." -#: src/core/application.rs:171 +#: src/core/application.rs:178 msgid "translator-credits" msgstr "" "Rafael Fontenelle \n" -"Enrico Nicoletto \n" +"Enrico Nicoletto \n" "Matheus Barbosa " -#: src/core/application.rs:173 +#: src/core/application.rs:180 msgid "Websites" msgstr "Sites" @@ -875,8 +875,8 @@ msgstr[1] "Faltam {} quilogramas para atingi-la" #: src/plugins/weight/details.rs:328 msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" -"Nenhuma meta de peso definida ainda. Você pode defini-la nas preferências " -"do aplicativo." +"Nenhuma meta de peso definida ainda. Você pode defini-la nas preferências do " +"aplicativo." #: src/plugins/weight/summary.rs:119 msgid "{} pound" @@ -1060,42 +1060,42 @@ msgid "Feet" msgstr "Pés" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "pol" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "ft" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "mi" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "lb" @@ -1113,6 +1113,11 @@ msgstr "Atividades.csv.encrypted" msgid "Activities.csv" msgstr "Atividades.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Nenhum arquivo selecionado." + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "Salvar medida de peso" @@ -1185,70 +1190,3 @@ msgstr "Falha ao migrar o banco de dados para a nova versão devido ao erro {}" msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "" "Não foi possível sincronizar os dados do Google Fit devido a um erro: {}" - -#~ msgid "@APPLICATION_ID@" -#~ msgstr "@APPLICATION_ID@" - -# WHO = OMS = Organização Mundial da Saúde -#~ msgid "The WHO recommends 10,000 steps per day." -#~ msgstr "A OMS recomenda 10.000 passos por dia." - -#~ msgid "of {} step" -#~ msgid_plural "of {} steps" -#~ msgstr[0] "de {} passo" -#~ msgstr[1] "de {} passos" - -#~ msgid "Remind you of your step goals" -#~ msgstr "Lembrar de suas metas de passos" - -#~ msgid "Health Daemon" -#~ msgstr "Daemon do app Saúde" - -#~ msgid "Distance in Meters" -#~ msgstr "Distância em metros" - -#~ msgid "Add new activity" -#~ msgstr "Adicionar nova atividade" - -#~ msgid "Add weight record" -#~ msgstr "Adicionar registro de peso" - -#~ msgid "{} Calorie" -#~ msgid_plural "{} Calories" -#~ msgstr[0] "{} caloria" -#~ msgstr[1] "{} calorias" - -#~ msgid "Last opened view" -#~ msgstr "Visto pela última vez" - -#~ msgid "The last view the user had opened, for restoring it on start" -#~ msgstr "" -#~ "A última visualização que o usuário abriu, para restaurá-la no início" - -#~ msgid "+ {} pound" -#~ msgid_plural "+ {} pounds" -#~ msgstr[0] "+ {} libra" -#~ msgstr[1] "+ {} libras" - -#~ msgid "+ {} kilogram" -#~ msgid_plural "+ {} kilograms" -#~ msgstr[0] "+ {} quilograma" -#~ msgstr[1] "+ {} quilogramas" - -#~ msgid "use + to add a weight record" -#~ msgstr "use + para adicionar um registro de peso" - -#~ msgid "Add An Activity" -#~ msgstr "Adicionar uma atividade" - -#~ msgid "Home Page" -#~ msgstr "Site" - -#~ msgid "Today" -#~ msgstr "Hoje" - -#~ msgid "No step goal set" -#~ msgstr "Nenhuma meta de passos definida" - -#~ msgid "{}%" -#~ msgstr "{}%" -- 2.40.1 From 4e547d555fc4d67dd6549cff88f03ac14bb6a171 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Piotrowski?= Date: Wed, 27 Jul 2022 12:48:39 +0200 Subject: [PATCH 33/83] Update (or drop) the Docker image used by Flatpak job The gnome-runtime-images have been recently migrated to Quay. This is already reflected in the template. Please note this MR has been created semi-automatically. If it doesn't make sense, feel free to close it. --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2047c81..98b9fed 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,7 +4,7 @@ variables: BUNDLE: "dev.Cogitri.Health.Devel.flatpak" MANIFEST_PATH: "dev.Cogitri.Health.Devel.json" FLATPAK_MODULE: "health" - FLATPAK_IMAGE: "registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:42" + FLATPAK_IMAGE: "quay.io/gnome_infrastructure/gnome-runtime-images:gnome-42" CI_IMAGE: "registry.gitlab.gnome.org/cogitri/health-ci-docker/health-ci:latest" TARBALL: "Health-${CI_COMMIT_TAG}.tar.xz" PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/release-tarballs/${CI_COMMIT_TAG}" -- 2.40.1 From 374812ea49a441164e3e563300dcde17436e25c5 Mon Sep 17 00:00:00 2001 From: Luming Zh Date: Sun, 11 Sep 2022 19:00:36 +0000 Subject: [PATCH 34/83] Update Chinese (China) translation --- po/zh_CN.po | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/po/zh_CN.po b/po/zh_CN.po index fd5a65b..57c90a8 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-09 18:01+0000\n" -"PO-Revision-Date: 2022-07-10 10:38+0800\n" +"POT-Creation-Date: 2022-08-15 18:30+0000\n" +"PO-Revision-Date: 2022-09-10 19:09+0800\n" "Last-Translator: lumingzh \n" "Language-Team: Chinese - China \n" "Language: zh_CN\n" @@ -461,8 +461,8 @@ msgid "Please enter your daily step goal." msgstr "请输入您的每日步数目标。" #: data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." -msgstr "世界卫生组织建议每天 10000 步。" +msgid "The WHO recommends 7.500 steps per day." +msgstr "世界卫生组织建议每天 7500 步。" #: data/ui/setup_window.blp:274 msgid "Please enter your weight goal." @@ -570,15 +570,15 @@ msgstr "关于健康(_A)" msgid "Enable plugin" msgstr "启用插件" -#: src/core/application.rs:169 +#: src/core/application.rs:176 msgid "A health tracking app for the GNOME desktop." msgstr "GNOME 桌面的健康追踪应用。" -#: src/core/application.rs:171 +#: src/core/application.rs:178 msgid "translator-credits" msgstr "D , 2021" -#: src/core/application.rs:173 +#: src/core/application.rs:180 msgid "Websites" msgstr "网站" @@ -974,42 +974,42 @@ msgid "Feet" msgstr "英尺" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "厘米" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "米" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "公里" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "公斤" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "英寸" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "英尺" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "英里" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "磅" @@ -1027,6 +1027,11 @@ msgstr "活动.csv.encrypted" msgid "Activities.csv" msgstr "活动.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "未选择文件。" + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "保存体重测量结果" -- 2.40.1 From 3dbfeec3d66ff737f04e425adf8c0bd0276caa58 Mon Sep 17 00:00:00 2001 From: Aman Kumar Date: Sat, 30 Jul 2022 21:57:30 +0530 Subject: [PATCH 35/83] WIP: Multi user support V2 --- Health.code-workspace | 6 +- build-aux/tracker-529.patch | 58 +++ data/dev.Cogitri.Health.gschema.xml | 25 +- data/tracker/ontology/health.ontology | 102 ++++- data/ui/preferences_window.blp | 10 + data/ui/setup_window.blp | 14 +- dev.Cogitri.Health.Devel.json | 31 +- src/core/application.rs | 103 ++--- src/core/database.rs | 581 +++++++++++++++++++++++- src/core/settings.rs | 1 + src/model/activity_type.rs | 2 + src/model/data_category.rs | 79 ++++ src/model/mod.rs | 8 + src/model/user.rs | 523 +++++++++++++++++++++ src/plugins/activities/data_provider.rs | 6 +- src/plugins/calories/data_provider.rs | 7 +- src/plugins/plugin_name.rs | 10 +- src/plugins/registrar.rs | 70 ++- src/plugins/steps/details.rs | 15 +- src/plugins/steps/summary.rs | 4 +- src/plugins/weight/details.rs | 30 +- src/sync/serialize.rs | 76 ++++ src/views/view_add_activity.rs | 35 +- src/views/view_home_page.rs | 31 +- src/widgets/activity_type_selector.rs | 93 ++-- src/windows/data_add_dialog.rs | 2 +- src/windows/export_dialog.rs | 4 +- src/windows/import_dialog.rs | 4 +- src/windows/preferences_window.rs | 147 ++++-- src/windows/setup_window.rs | 84 ++-- src/windows/window.rs | 38 +- 31 files changed, 1894 insertions(+), 305 deletions(-) create mode 100644 build-aux/tracker-529.patch create mode 100644 src/model/data_category.rs create mode 100644 src/model/user.rs diff --git a/Health.code-workspace b/Health.code-workspace index e45e3ad..8c31e8f 100644 --- a/Health.code-workspace +++ b/Health.code-workspace @@ -22,9 +22,9 @@ }, "mesonbuild.configureOnOpen": false, "mesonbuild.buildFolder": "_build", - "mesonbuild.mesonPath": "/home/rasmus/Projects/Health/.flatpak/meson.sh", - "rust-analyzer.server.path": "/home/rasmus/Projects/Health/.flatpak/rust-analyzer.sh", - "rust-analyzer.runnables.command": "/home/rasmus/Projects/Health/.flatpak/cargo.sh", + "mesonbuild.mesonPath": "/home/amankrx/Projects/Health/.flatpak/meson.sh", + "rust-analyzer.server.path": "/home/amankrx/Projects/Health/.flatpak/rust-analyzer.sh", + "rust-analyzer.runnables.command": "/home/amankrx/Projects/Health/.flatpak/cargo.sh", "rust-analyzer.runnables.extraArgs": [ "--target-dir=_build/src" ], diff --git a/build-aux/tracker-529.patch b/build-aux/tracker-529.patch new file mode 100644 index 0000000..1083ebf --- /dev/null +++ b/build-aux/tracker-529.patch @@ -0,0 +1,58 @@ +From d5550e7eeda3e0e7710c2380ca5c19d37217f2e2 Mon Sep 17 00:00:00 2001 +From: Carlos Garnacho +Date: Thu, 28 Jul 2022 16:50:57 +0200 +Subject: [PATCH] libtracker-sparql/core: Use boolean getter for ASK query + +During ontology updates, we ask our own database about changes in +certain properties for our incompatible change checks. Specifically +for nrl:InverseFunctionalProperty checks, we are using an ASK query +to check for properties being such prior to the ontology updates. + +However, we are using the internal get_int() cursor getter, whereas +the result of an ASK query is either a boolean, or "true"/"false" +strings, since it's internally provided as the latter, get_int() +falls short and always returns 0. + +Deal with this as a boolean using the high-level TrackerSparqlCursor +API instead. This fixes the misdetection of changes about +nrl:InverseFunctionalProperty properties during ontology updates, +when possibly none was done. + +While at it, shuffle a bit the code to propagate errors, and free +the cursor on all situations. +--- + src/libtracker-data/tracker-data-manager.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c +index 33decd3e2..192bcf4a2 100644 +--- a/src/libtracker-data/tracker-data-manager.c ++++ b/src/libtracker-data/tracker-data-manager.c +@@ -742,20 +742,20 @@ ensure_inverse_functional_property (TrackerDataManager *manager, + gchar *query; + + query = g_strdup_printf ("ASK { <%s> a nrl:InverseFunctionalProperty }", property_uri); +- cursor = tracker_data_query_sparql_cursor (manager, query, NULL); ++ cursor = tracker_data_query_sparql_cursor (manager, query, error); + g_free (query); + +- if (cursor && tracker_db_cursor_iter_next (cursor, NULL, NULL)) { +- if (!tracker_db_cursor_get_int (cursor, 0)) { ++ if (cursor && tracker_db_cursor_iter_next (cursor, NULL, error)) { ++ if (!tracker_sparql_cursor_get_boolean (cursor, 0)) { + handle_unsupported_ontology_change (manager, + NULL, -1, -1, + property_uri, + "nrl:InverseFunctionalProperty", "-", "-", + error); + } +- +- g_object_unref (cursor); + } ++ ++ g_clear_object (&cursor); + } + + static void +-- +GitLab diff --git a/data/dev.Cogitri.Health.gschema.xml b/data/dev.Cogitri.Health.gschema.xml index 14b6b62..1afc59a 100644 --- a/data/dev.Cogitri.Health.gschema.xml +++ b/data/dev.Cogitri.Health.gschema.xml @@ -14,7 +14,7 @@ false First time setup done - Whether the user has completed the setup wizard + [Deprecated]Whether the user has completed the setup wizard true @@ -24,7 +24,7 @@ ['activities', 'calories', 'steps', 'weight'] Set enabled plugins - Sets all data source plugins that are enabled in Health. + [Deprecated]Sets all data source plugins that are enabled in Health. "00:00:00" @@ -39,17 +39,17 @@ [] List of recent activity types - Activity types the user used recently, to be shown first in the activity types selector’s list + [Deprecated]Activity types the user used recently, to be shown first in the activity types selector’s list false Google Fit Sync-Provider setup - Whether Google Fit has been setup as sync provider + [Deprecated]Whether Google Fit has been setup as sync provider "1970-01-01T00:00:01Z" Last sync with Google Fit - The last time we synched steps, weight etc. with Google Fit + [Deprecated]The last time we synched steps, weight etc. with Google Fit 'metric' @@ -59,27 +59,27 @@ 0 User age - The age of the user (deprecated). + [Deprecated]The age of the user (deprecated). "" Absolute user age - The age of the user in absolute terms (like 01/01/1970) + [Deprecated]The age of the user in absolute terms (like 01/01/1970) 0 User height - The height of the user. + [Deprecated]The height of the user. 7500 User step goal - The amount of steps the user wants to reach daily. + [Deprecated]The amount of steps the user wants to reach daily. -1 User weight goal - The weight the user wants to reach. + [Deprecated]The weight the user wants to reach. -1 @@ -96,5 +96,10 @@ Window width The width of the window. + + 0 + Active User ID + The user id of the user using the platform. + diff --git a/data/tracker/ontology/health.ontology b/data/tracker/ontology/health.ontology index 30b8250..d754aee 100644 --- a/data/tracker/ontology/health.ontology +++ b/data/tracker/ontology/health.ontology @@ -6,13 +6,108 @@ health: a nrl:Namespace, nrl:Ontology ; nrl:prefix "health" ; - nrl:lastModified "2021-02-04T08:19:00Z" . + nrl:lastModified "2022-07-28T08:19:00Z" . + +health:Version a rdfs:Class ; + rdfs:comment "Represents the version of the database" ; + rdfs:subClassOf rdfs:Resource ; + nrl:notify true . + +health:version a rdf:Property ; + rdfs:domain health:Version ; + rdfs:range xsd:integer ; + nrl:maxCardinality 1 . + +health:User a rdfs:Class ; + rdfs:comment "Represents a particular user" ; + rdfs:subClassOf rdfs:Resource ; + nrl:notify true . + +health:user_id a rdf:Property ; + rdfs:domain health:User ; + rdfs:range xsd:integer ; + nrl:maxCardinality 1 . + +health:user_name a rdf:Property ; + rdfs:domain health:User ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + +health:user_birthday a rdf:Property ; + rdfs:domain health:User ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality 1 . + +health:user_height a rdf:Property ; + rdfs:domain health:User ; + rdfs:range xsd:double ; + nrl:maxCardinality 1 . + +health:user_weightgoal a rdf:Property ; + rdfs:domain health:User ; + rdfs:range xsd:double ; + nrl:maxCardinality 1 . + +health:user_stepgoal a rdf:Property ; + rdfs:domain health:User ; + rdfs:range xsd:integer ; + nrl:maxCardinality 1 . + +health:enabled_plugins a rdf:Property ; + rdfs:domain health:User ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + +health:recent_activity_types a rdf:Property ; + rdfs:domain health:User ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + +health:did_initial_setup a rdf:Property ; + rdfs:domain health:User ; + rdfs:range xsd:boolean ; + nrl:maxCardinality 1 . + +health:SyncProvider a rdfs:Class ; + rdfs:comment "Represents the sync providers used by a particular user for a particular health data category" ; + rdfs:subClassOf rdfs:Resource ; + nrl:notify true . + +health:sync_user_id a rdf:Property ; + rdfs:domain health:SyncProvider ; + rdfs:range xsd:integer ; + nrl:maxCardinality 1 . + +health:health_data_category a rdf:Property ; + rdfs:domain health:SyncProvider ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + +health:sync_provider_name a rdf:Property ; + rdfs:domain health:SyncProvider ; + rdfs:range xsd:string ; + nrl:maxCardinality 1 . + +health:sync_connect_timestamp a rdf:Property ; + rdfs:domain health:SyncProvider ; + rdfs:range xsd:dateTime ; + nrl:maxCardinality 1 . + +health:sync_enabled a rdf:Property ; + rdfs:domain health:SyncProvider ; + rdfs:range xsd:boolean ; + nrl:maxCardinality 1 . health:Activity a rdfs:Class ; rdfs:comment "Represents a single activity entry" ; rdfs:subClassOf rdfs:Resource ; nrl:notify true . +health:activity_user_id a rdf:Property ; + rdfs:domain health:Activity ; + rdfs:range xsd:integer ; + nrl:maxCardinality 1 . + health:activity_date a rdf:Property ; rdfs:domain health:Activity ; rdfs:range xsd:date ; @@ -67,6 +162,11 @@ health:WeightMeasurement a rdfs:Class ; rdfs:subClassOf rdfs:Resource ; nrl:notify true . +health:weight_user_id a rdf:Property ; + rdfs:domain health:WeightMeasurement ; + rdfs:range xsd:integer ; + nrl:maxCardinality 1 . + health:weight_date a rdf:Property, nrl:InverseFunctionalProperty; rdfs:domain health:WeightMeasurement ; rdfs:range xsd:date ; diff --git a/data/ui/preferences_window.blp b/data/ui/preferences_window.blp index d4142da..cc1a7b0 100644 --- a/data/ui/preferences_window.blp +++ b/data/ui/preferences_window.blp @@ -95,6 +95,16 @@ template HealthPreferencesWindow : Adw.PreferencesWindow { } } + Adw.ActionRow user_name_actionrow { + title: _("Username"); + + Entry user_name_entry { + valign: center; + changed => handle_user_name_entry_changed() swapped; + placeholder-text: _("User"); + } + } + Adw.ActionRow age_actionrow { title: _("Birthday"); diff --git a/data/ui/setup_window.blp b/data/ui/setup_window.blp index b844a35..4084f23 100644 --- a/data/ui/setup_window.blp +++ b/data/ui/setup_window.blp @@ -35,7 +35,7 @@ SizeGroup { template HealthSetupWindow : Adw.ApplicationWindow { default-width: 750; - default-height: 500; + default-height: 550; title: _("Health Setup"); Box { @@ -128,9 +128,11 @@ template HealthSetupWindow : Adw.ApplicationWindow { label: _("Please enter some information to get setup."); wrap: true; wrap-mode: word_char; + margin-bottom: 25; styles [ "title-2", + "width-fill", ] } @@ -172,6 +174,16 @@ template HealthSetupWindow : Adw.ApplicationWindow { } } + Adw.ActionRow user_name_actionrow { + title: _("Username"); + + Entry user_name_entry { + valign: center; + + placeholder-text: _("User"); + } + } + Adw.ActionRow age_actionrow { title: _("Birthday"); diff --git a/dev.Cogitri.Health.Devel.json b/dev.Cogitri.Health.Devel.json index f803236..5d6318b 100644 --- a/dev.Cogitri.Health.Devel.json +++ b/dev.Cogitri.Health.Devel.json @@ -3,9 +3,7 @@ "runtime": "org.gnome.Platform", "runtime-version": "42", "sdk": "org.gnome.Sdk", - "sdk-extensions": [ - "org.freedesktop.Sdk.Extension.rust-stable" - ], + "sdk-extensions": ["org.freedesktop.Sdk.Extension.rust-stable"], "command": "dev.Cogitri.Health.Devel", "finish-args": [ "--share=network", @@ -14,11 +12,7 @@ "--socket=wayland", "--device=dri" ], - "tags": [ - "devel", - "development", - "nightly" - ], + "tags": ["devel", "development", "nightly"], "cleanup": [ "/include", "/lib/pkgconfig", @@ -35,9 +29,7 @@ ], "build-options": { "append-path": "/usr/lib/sdk/rust-stable/bin", - "build-args": [ - "--share=network" - ], + "build-args": ["--share=network"], "env": { "RUST_BACKTRACE": "1" } @@ -59,15 +51,16 @@ "name": "tracker", "buildsystem": "meson", "builddir": true, - "config-opts": [ - "-Dman=false", - "-Dsystemd_user_services=false" - ], + "config-opts": ["-Dman=false", "-Dsystemd_user_services=false"], "sources": [ { "type": "archive", "url": "https://download.gnome.org/sources/tracker/3.3/tracker-3.3.2.tar.xz", "sha512": "2009c7a9b82fd278e38bc71cb41ef1fccb23493bd84a71456c7568ed7a025ce68bab689b8f14b8008479a203a5fdc02acea1862f4f482467ed5c295bde3d4ad8" + }, + { + "type": "patch", + "path": "build-aux/tracker-529.patch" } ] }, @@ -75,12 +68,8 @@ "name": "health", "builddir": true, "buildsystem": "meson", - "cleanup": [ - "/usr/" - ], - "config-opts": [ - "-Dprofile=development" - ], + "cleanup": ["/usr/"], + "config-opts": ["-Dprofile=development"], "sources": [ { "type": "dir", diff --git a/src/core/application.rs b/src/core/application.rs index eea2173..ea4b920 100644 --- a/src/core/application.rs +++ b/src/core/application.rs @@ -18,8 +18,7 @@ use crate::{ core::{i18n, UnitSystem}, - model::ModelNotification, - prelude::*, + model::{ModelNotification, User}, windows::{PreferencesWindow, Window}, }; use anyhow::Result; @@ -34,7 +33,7 @@ use std::{path::Path, str::FromStr}; mod imp { use crate::{ config, - core::Settings, + core::{Database, Settings}, model::ModelNotification, windows::{SetupWindow, Window}, }; @@ -50,6 +49,7 @@ mod imp { pub struct Application { pub notification_model: RefCell>, pub settings: Settings, + pub database: Database, pub window: RefCell>>, } @@ -70,11 +70,20 @@ mod imp { return; } - if self.settings.did_initial_setup() { - let window = Window::new(obj); - window.show(); - self.window - .replace(Some(glib::ObjectExt::downgrade(&window))); + if self.settings.active_user_id() > 0 || self.settings.did_initial_setup() { + self.settings.set_did_initial_setup(false); + gtk_macros::spawn!(glib::clone!(@weak obj => async move { + if let Err(e) = Database::instance().migrate().await { + glib::g_warning!( + crate::config::APPLICATION_ID, + "Failed to migrate database to new version due to error {e}", + ); + } + let window = Window::new(&obj); + window.show(); + obj.imp().window + .replace(Some(glib::ObjectExt::downgrade(&window))); + })); } else { let setup_window = SetupWindow::new(obj); obj.hold(); @@ -102,12 +111,16 @@ mod imp { gtk::IconTheme::for_display(>k::gdk::Display::default().unwrap()) .add_resource_path("/dev/Cogitri/Health/icons"); - obj.migrate_gsettings(); obj.setup_actions(); obj.setup_accels(); if obj.flags().contains(gio::ApplicationFlags::IS_SERVICE) { - obj.setup_notifications(); + if self.settings.active_user_id() > 0 { + gtk_macros::spawn!(glib::clone!(@weak obj => async move { + obj.setup_notifications().await; + })); + } + // Hold onto this application to send notifications obj.hold(); } @@ -184,14 +197,22 @@ impl Application { .show() } - fn handle_enable_notifications_changed(&self) { + pub async fn get_user(&self) -> User { + let imp = self.imp(); + let user_id = imp.settings.active_user_id() as i64; + let user = &imp.database.users(Some(user_id)).await.unwrap()[0]; + user.clone() + } + + async fn handle_enable_notifications_changed(&self) { let imp = self.imp(); + let user = self.get_user().await; if imp.settings.enable_notifications() { let model = ModelNotification::new( self, imp.settings.notification_frequency(), imp.settings.notification_time(), - imp.settings.user_step_goal(), + user.user_stepgoal().unwrap() as u32, ); model.register_periodic_notify(); imp.notification_model.replace(Some(model)); @@ -238,7 +259,6 @@ impl Application { fn handle_setup_window_setup_done(&self) { let imp = self.imp(); - imp.settings.set_did_initial_setup(true); let window = Window::new(self); window.show(); imp.window @@ -277,15 +297,6 @@ impl Application { Ok(()) } - fn migrate_gsettings(&self) { - let imp = self.imp(); - if imp.settings.user_birthday().is_none() { - let age: i32 = imp.settings.user_age().try_into().unwrap(); - let datetime = glib::DateTime::local().add_years(-age).unwrap(); - imp.settings.set_user_birthday(datetime); - } - } - fn setup_accels(&self) { self.set_accels_for_action("win.fullscreen", &["F11"]); self.set_accels_for_action("win.hamburger-menu", &["F10"]); @@ -337,22 +348,25 @@ impl Application { ); } - fn setup_notifications(&self) { + async fn setup_notifications(&self) { let imp = self.imp(); + let user = self.get_user().await; - self.handle_enable_notifications_changed(); + self.handle_enable_notifications_changed().await; imp.settings.connect_enable_notifications_changed( - clone!(@weak self as obj => move |_, _| { - obj.handle_enable_notifications_changed(); + clone!(@weak self as obj => move |_, _| { + glib::MainContext::default().spawn_local(async move { + obj.handle_enable_notifications_changed().await; + }); }), ); - imp.settings - .connect_user_step_goal_changed(clone!(@weak self as obj => move |_, _| { + imp.database + .connect_user_updated(clone!(@weak self as obj => move |_| { let imp = obj.imp(); if let Some(model) = &*imp.notification_model.borrow() { - model.set_step_goal(imp.settings.user_step_goal()); + model.set_step_goal(user.user_stepgoal().unwrap_or(0) as u32); }; })); imp.settings.connect_notification_frequency_changed( @@ -376,40 +390,11 @@ impl Application { #[cfg(test)] mod test { use super::Application; - use crate::{ - core::{utils::init_gschema, Settings}, - prelude::*, - }; - use gtk::glib; + use crate::core::utils::init_gschema; #[test] fn new() { let _tmp = init_gschema(); Application::new(); } - - #[test] - fn migrate_gsettings() { - let _tmp = init_gschema(); - - let app = Application::new(); - let settings = Settings::instance(); - settings.set_user_age(50); - assert_eq!(settings.user_birthday(), None); - app.migrate_gsettings(); - assert_eq!( - settings - .user_birthday() - .unwrap() - .format("%Y-%m-%d") - .unwrap() - .to_string(), - glib::DateTime::utc() - .add_years(-50) - .unwrap() - .format("%Y-%m-%d") - .unwrap() - .to_string(), - ); - } } diff --git a/src/core/database.rs b/src/core/database.rs index bfe8ef3..8621979 100644 --- a/src/core/database.rs +++ b/src/core/database.rs @@ -17,7 +17,8 @@ */ use crate::{ - model::{Activity, ActivityType, Steps, Weight}, + model::{Activity, ActivityType, Steps, User, Weight}, + plugins::PluginName, prelude::*, views::SplitBar, }; @@ -30,6 +31,7 @@ use num_traits::cast::{FromPrimitive, ToPrimitive}; use std::{ convert::{TryFrom, TryInto}, path::{Path, PathBuf}, + str::FromStr, }; use tracker::prelude::*; use uom::si::{ @@ -38,6 +40,7 @@ use uom::si::{ }; mod imp { + use crate::core::Settings; use gtk::{ gio::subclass::prelude::*, glib::{self, subclass::Signal}, @@ -46,6 +49,7 @@ mod imp { #[derive(Debug, Default)] pub struct Database { + pub settings: Settings, pub connection: OnceCell, pub manager: OnceCell, } @@ -64,6 +68,8 @@ mod imp { vec![ Signal::builder("activities-updated", &[], glib::Type::UNIT.into()).build(), Signal::builder("weights-updated", &[], glib::Type::UNIT.into()).build(), + Signal::builder("user-updated", &[], glib::Type::UNIT.into()).build(), + Signal::builder("version-updated", &[], glib::Type::UNIT.into()).build(), ] }); @@ -73,6 +79,9 @@ mod imp { } static mut DATABASE: Option = None; +/// Represents the version of the database to handle migration due to database changes. +static DB_VERSION: i64 = 1; + glib::wrapper! { /// Helper class to add and retrieve data to and from the Tracker Database. pub struct Database(ObjectSubclass); @@ -119,6 +128,40 @@ impl Database { }) } + /// Connect to the `user-updated` signal. + /// + /// # Arguments + /// * `callback` - The callback which should be invoked when `user-update` is emitted. + /// + /// # Returns + /// A [glib::SignalHandlerId] that can be used for disconnecting the signal if so desired. + pub fn connect_user_updated( + &self, + callback: F, + ) -> glib::SignalHandlerId { + self.connect_local("user-updated", false, move |values| { + callback(&values[0].get().unwrap()); + None + }) + } + + /// Connect to the `version-updated` signal. + /// + /// # Arguments + /// * `callback` - The callback which should be invoked when `version-update` is emitted. + /// + /// # Returns + /// A [glib::SignalHandlerId] that can be used for disconnecting the signal if so desired. + pub fn connect_version_updated( + &self, + callback: F, + ) -> glib::SignalHandlerId { + self.connect_local("version-updated", false, move |values| { + callback(&values[0].get().unwrap()); + None + }) + } + /// Get activities. /// /// # Arguments @@ -128,14 +171,18 @@ impl Database { /// An array of [Activity]s that are within the given timeframe (if set), or a [glib::Error] if querying the DB goes wrong. pub async fn activities(&self, date_opt: Option) -> Result> { let imp = self.imp(); + let user_id = imp.settings.active_user_id() as i64; let connection = imp.connection.get().unwrap(); let cursor = if let Some(date) = date_opt { - let statement = connection.query_statement("SELECT ?date ?id ?calories_burned ?distance ?heart_rate_avg ?heart_rate_max ?heart_rate_min ?minutes ?steps WHERE {{ ?datapoint a health:Activity ; health:activity_datetime ?date ; health:activity_id ?id . OPTIONAL {{ ?datapoint health:calories_burned ?calories_burned . }} OPTIONAL {{ ?datapoint health:distance ?distance . }} OPTIONAL {{ ?datapoint health:hearth_rate_avg ?heart_rate_avg . }} OPTIONAL {{ ?datapoint health:hearth_rate_min ?heart_rate_min . }} OPTIONAL {{ ?datapoint health:hearth_rate_max ?heart_rate_max . }} OPTIONAL {{ ?datapoint health:steps ?steps . }} OPTIONAL {{ ?datapoint health:minutes ?minutes }} FILTER (?date >= ~date^^xsd:dateTime)}} ORDER BY DESC(?date)", None::<&gio::Cancellable>).unwrap().unwrap(); + let statement = connection.query_statement("SELECT ?date ?id ?calories_burned ?distance ?heart_rate_avg ?heart_rate_max ?heart_rate_min ?minutes ?steps WHERE {{ ?datapoint a health:Activity ; health:activity_user_id ?user_id ; health:activity_datetime ?date ; health:activity_id ?id . OPTIONAL {{ ?datapoint health:calories_burned ?calories_burned . }} OPTIONAL {{ ?datapoint health:distance ?distance . }} OPTIONAL {{ ?datapoint health:hearth_rate_avg ?heart_rate_avg . }} OPTIONAL {{ ?datapoint health:hearth_rate_min ?heart_rate_min . }} OPTIONAL {{ ?datapoint health:hearth_rate_max ?heart_rate_max . }} OPTIONAL {{ ?datapoint health:steps ?steps . }} OPTIONAL {{ ?datapoint health:minutes ?minutes }} FILTER (?date >= ~date^^xsd:dateTime && ?user_id = ~user^^xsd:integer)}} ORDER BY DESC(?date)", None::<&gio::Cancellable>).unwrap().unwrap(); statement.bind_string("date", date.format_iso8601().unwrap().as_str()); + statement.bind_int("user", user_id); statement.execute_future().await? } else { - connection.query_future("SELECT ?date ?id ?calories_burned ?distance ?heart_rate_avg ?heart_rate_max ?heart_rate_min ?minutes ?steps WHERE { ?datapoint a health:Activity ; health:activity_datetime ?date ; health:activity_id ?id . OPTIONAL { ?datapoint health:calories_burned ?calories_burned . } OPTIONAL { ?datapoint health:distance ?distance . } OPTIONAL { ?datapoint health:hearth_rate_avg ?heart_rate_avg . } OPTIONAL { ?datapoint health:hearth_rate_min ?heart_rate_min . } OPTIONAL { ?datapoint health:hearth_rate_max ?heart_rate_max . } OPTIONAL { ?datapoint health:steps ?steps . } OPTIONAL { ?datapoint health:minutes ?minutes } } ORDER BY DESC(?date)").await? + let statement = connection.query_statement("SELECT ?date ?id ?calories_burned ?distance ?heart_rate_avg ?heart_rate_max ?heart_rate_min ?minutes ?steps WHERE {{ ?datapoint a health:Activity ; health:activity_user_id ?user_id ; health:activity_datetime ?date ; health:activity_id ?id . OPTIONAL {{ ?datapoint health:calories_burned ?calories_burned . }} OPTIONAL {{ ?datapoint health:distance ?distance . }} OPTIONAL {{ ?datapoint health:hearth_rate_avg ?heart_rate_avg . }} OPTIONAL {{ ?datapoint health:hearth_rate_min ?heart_rate_min . }} OPTIONAL {{ ?datapoint health:hearth_rate_max ?heart_rate_max . }} OPTIONAL {{ ?datapoint health:steps ?steps . }} OPTIONAL {{ ?datapoint health:minutes ?minutes }} FILTER (?user_id = ~user^^xsd:integer)}} ORDER BY DESC(?date)", None::<&gio::Cancellable>).unwrap().unwrap(); + statement.bind_int("user", user_id); + statement.execute_future().await? }; let mut ret = Vec::new(); @@ -202,8 +249,11 @@ impl Database { /// An array of [SplitBar]s that are within the given timeframe or a [glib::Error] if querying the DB goes wrong. pub async fn calories(&self, minimum_date: glib::DateTime) -> Result> { let connection = self.imp().connection.get().unwrap(); - let statement = connection.query_statement("SELECT ?date ?id ?calories_burned WHERE {{ ?datapoint a health:Activity ; health:activity_datetime ?date ; health:activity_id ?id ; health:calories_burned ?calories_burned. FILTER (?date >= ~date^^xsd:dateTime) }}", None::<&gio::Cancellable>).unwrap().unwrap(); + let user_id = self.imp().settings.active_user_id() as i64; + + let statement = connection.query_statement("SELECT ?date ?id ?calories_burned WHERE {{ ?datapoint a health:Activity ; health:activity_datetime ?date ; health:activity_id ?id ; health:calories_burned ?calories_burned ; health:activity_user_id ?user_id . FILTER (?date >= ~date^^xsd:dateTime && ?user_id = ~user^^xsd:integer) }}", None::<&gio::Cancellable>).unwrap().unwrap(); statement.bind_string("date", minimum_date.format_iso8601().unwrap().as_str()); + statement.bind_int("user", user_id); let cursor = statement.execute_future().await?; let mut hashmap: std::collections::HashMap< @@ -260,8 +310,10 @@ impl Database { let connection = self.imp().connection.get().unwrap(); let mut most_frequent = Vec::new(); - let statement = connection.query_statement("SELECT ?id WHERE {{ ?datapoint a health:Activity ; health:activity_datetime ?date ; health:activity_id ?id ; health:calories_burned ?calories_burned . FILTER (?date >= ~date^^xsd:dateTime) }} GROUP BY ?id ORDER BY DESC (SUM(?calories_burned))", None::<&gio::Cancellable>).unwrap().unwrap(); + let user_id = self.imp().settings.active_user_id() as i64; + let statement = connection.query_statement("SELECT ?id WHERE {{ ?datapoint a health:Activity ; health:activity_datetime ?date ; health:activity_id ?id ; health:calories_burned ?calories_burned; health:activity_user_id ?user_id . FILTER (?date >= ~date^^xsd:dateTime && ?user_id = ~user^^xsd:integer) }} GROUP BY ?id ORDER BY DESC (SUM(?calories_burned))", None::<&gio::Cancellable>).unwrap().unwrap(); statement.bind_string("date", minimum_date.format_iso8601().unwrap().as_str()); + statement.bind_int("user", user_id); let cursor = statement.execute_future().await?; while let Ok(true) = cursor.next_future().await { @@ -321,9 +373,11 @@ impl Database { let imp = self.imp(); let connection = imp.connection.get().unwrap(); + let user_id = self.imp().settings.active_user_id() as i64; - let statement = connection.query_statement("SELECT ?date ?steps WHERE {{ ?datapoint a health:Activity ; health:activity_datetime ?date ; health:steps ?steps . FILTER (?date >= ~date^^xsd:dateTime)}} ORDER BY ?date", None::<&gio::Cancellable>).unwrap().unwrap(); + let statement = connection.query_statement("SELECT ?date ?steps WHERE {{ ?datapoint a health:Activity ; health:activity_datetime ?date ; health:steps ?steps ; health:activity_user_id ?user_id . FILTER (?date >= ~date^^xsd:dateTime && ?user_id = ~user^^xsd:integer)}} ORDER BY ?date", None::<&gio::Cancellable>).unwrap().unwrap(); statement.bind_string("date", &date.format_iso8601().unwrap()); + statement.bind_int("user", user_id); let cursor = statement.execute_future().await?; let mut hashmap = std::collections::HashMap::new(); @@ -353,10 +407,12 @@ impl Database { pub async fn todays_steps(&self) -> Result { let imp = self.imp(); let date = glib::DateTime::today(); + let user_id = self.imp().settings.active_user_id() as i64; let connection = imp.connection.get().unwrap(); - let statement = connection.query_statement("SELECT SUM(?steps) WHERE {{ ?datapoint a health:Activity ; health:activity_datetime ?date ; health:steps ?steps . FILTER (?date >= ~date^^xsd:dateTime)}}", None::<&gio::Cancellable>).unwrap().unwrap(); + let statement = connection.query_statement("SELECT SUM(?steps) WHERE {{ ?datapoint a health:Activity ; health:activity_datetime ?date ; health:steps ?steps ; health:activity_user_id ?user_id . FILTER (?date >= ~date^^xsd:dateTime && ?user_id = ~user^^xsd:integer)}}", None::<&gio::Cancellable>).unwrap().unwrap(); statement.bind_string("date", &date.format_iso8601().unwrap()); + statement.bind_int("user", user_id); let cursor = statement.execute_future().await?; let steps = if let Ok(true) = cursor.next_future().await { @@ -516,14 +572,288 @@ impl Database { Ok(()) } + /// Get users. + /// + /// # Arguments + /// * `id_opt` - If `Some`, only get a user with the particular user ID. + /// + /// # Returns + /// An array of [User]s or a [User] with a particular user ID, or a [glib::Error] if querying the DB goes wrong. + pub async fn users(&self, id_opt: Option) -> Result> { + let imp = self.imp(); + let connection = imp.connection.get().unwrap(); + + let cursor = if let Some(id) = id_opt { + let statement = connection.query_statement("SELECT ?user_id ?user_name ?user_birthday ?user_height ?user_weightgoal ?user_stepgoal ?enabled_plugins ?recent_activity_types ?did_initial_setup WHERE {{ ?datapoint a health:User ; health:user_id ?user_id . OPTIONAL {{ ?datapoint health:user_name ?user_name . }} OPTIONAL {{ ?datapoint health:user_birthday ?user_birthday . }} OPTIONAL {{ ?datapoint health:user_height ?user_height . }} OPTIONAL {{ ?datapoint health:user_weightgoal ?user_weightgoal . }} OPTIONAL {{ ?datapoint health:user_stepgoal ?user_stepgoal . }} OPTIONAL {{ ?datapoint health:enabled_plugins ?enabled_plugins . }} OPTIONAL {{ ?datapoint health:recent_activity_types ?recent_activity_types . }} OPTIONAL {{ ?datapoint health:did_initial_setup ?did_intitial_setup }} FILTER (?user_id = ~id^^xsd:integer)}}", None::<&gio::Cancellable>).unwrap().unwrap(); + statement.bind_int("id", id); + statement.execute_future().await? + } else { + connection.query_future("SELECT ?user_id ?user_name ?user_birthday ?user_height ?user_weightgoal ?user_stepgoal ?enabled_plugins ?recent_activity_types ?did_initial_setup WHERE {{ ?datapoint a health:User ; health:user_id ?user_id . OPTIONAL {{ ?datapoint health:user_name ?user_name . }} OPTIONAL {{ ?datapoint health:user_birthday ?user_birthday . }} OPTIONAL {{ ?datapoint health:user_height ?user_height . }} OPTIONAL {{ ?datapoint health:user_weightgoal ?user_weightgoal . }} OPTIONAL {{ ?datapoint health:user_stepgoal ?user_stepgoal . }} OPTIONAL {{ ?datapoint health:enabled_plugins ?enabled_plugins . }} OPTIONAL {{ ?datapoint health:recent_activity_types ?recent_activity_types . }} OPTIONAL {{ ?datapoint health:did_initial_setup ?did_intitial_setup }} }}").await? + }; + + let mut ret = Vec::new(); + + while let Ok(true) = cursor.next_future().await { + let mut user = User::builder(); + for i in 0..cursor.n_columns() { + match cursor.variable_name(i).unwrap().as_str() { + "user_id" => { + user.user_id(cursor.integer(i).try_into().unwrap()); + } + "user_name" => { + user.user_name(cursor.string(i).unwrap().as_str()); + } + "user_birthday" => { + user.user_birthday(glib::DateTime::from_iso8601( + cursor.string(i).unwrap().as_str(), + None, + )?); + } + "user_height" => { + user.user_height(Length::new::(cursor.double(i) as f32)); + } + "user_weightgoal" => { + user.user_weightgoal(Mass::new::(cursor.double(i) as f32)); + } + "user_stepgoal" => { + user.user_stepgoal(cursor.integer(i).try_into().unwrap()); + } + "enabled_plugins" => { + user.enabled_plugins( + cursor + .string(i) + .unwrap() + .as_str() + .split(',') + .filter_map(|s| PluginName::from_str(s.trim()).ok()) + .collect(), + ); + } + "recent_activity_types" => { + user.recent_activity_types( + cursor + .string(i) + .unwrap() + .as_str() + .split(',') + .filter_map(|s| ActivityType::from_str(s.trim()).ok()) + .collect(), + ); + } + "did_initial_setup" => { + user.did_initial_setup(cursor.is_boolean(i)); + } + _ => { + glib::g_error!( + crate::config::APPLICATION_ID, + "Unknown variable name {}", + cursor.variable_name(i).unwrap() + ); + unimplemented!(); + } + } + } + ret.push(user.build()); + } + Ok(ret) + } + + /// Get top unused user ID. + /// + /// # Returns + /// An integer with the top unused user ID to assign to the new users, or a [glib::Error] if querying the DB goes wrong. + pub async fn get_top_unused_user_id(&self) -> Result { + if self.has_users().await? { + let mut max_id = 0; + for user in self.users(None).await? { + if user.user_id() > max_id { + max_id = user.user_id(); + } + } + Ok(max_id + 1) + } else { + Ok(1) + } + } + + /// Check if the users' model exists. + /// + /// # Returns + /// A boolean after checking if the user schema exists in the database, or a [glib::Error] if querying the DB goes wrong. + pub async fn has_users(&self) -> Result { + let connection = self.imp().connection.get().unwrap(); + let cursor = connection + .query_future("ASK { ?datapoint a health:User }") + .await?; + cursor.next_future().await?; + Ok(cursor.is_boolean(0)) + } + + /// Update User. + /// + /// # Returns + /// A boolean after checking if the user schema exists in the database, or a [glib::Error] if querying the DB goes wrong. + pub async fn update_user(&self, user: User) -> Result<()> { + let imp = self.imp(); + let connection = imp.connection.get().unwrap(); + let current_user_id = imp.settings.active_user_id() as i64; + let resource = + tracker::Resource::new(Some(format!("health:User{}", current_user_id).as_str())); + resource.add_uri("rdf:type", "health:User"); + resource.set_int64("health:user_id", user.user_id()); + if let Some(name) = user.user_name() { + resource.set_string("health:user_name", name.as_str()); + } + resource.set_string( + "health:user_birthday", + user.user_birthday() + .unwrap() + .format_iso8601() + .unwrap() + .as_str(), + ); + if let Some(height) = user.user_height() { + resource.set_double("health:user_height", height.get::() as f64); + } + if let Some(weight) = user.user_weightgoal() { + resource.set_double("health:user_weightgoal", weight.get::().into()); + } + if let Some(stepgoal) = user.user_stepgoal() { + resource.set_int64("health:user_stepgoal", stepgoal.into()); + } + if let Some(plugins) = user.enabled_plugins() { + resource.set_string( + "health:enabled_plugins", + plugins + .iter() + .map(std::convert::AsRef::as_ref) + .collect::>() + .join(",") + .as_str(), + ); + } + if let Some(activity_types) = user.recent_activity_types() { + resource.set_string( + "health:recent_activity_types", + activity_types + .iter() + .map(std::convert::AsRef::as_ref) + .collect::>() + .join(",") + .as_str(), + ); + } + if let Some(setup) = user.did_initial_setup() { + resource.set_boolean("health:did_initial_setup", setup); + } + let v = connection.update_resource(None, &resource, None::<&gio::Cancellable>); + if let Err(e) = v { + glib::g_error!(crate::config::APPLICATION_ID, "Error updating user: {}", e); + } + Ok(()) + } + + /// Get the current version of the database. + /// + /// # Returns + /// An integer denoting the current Database Version, or a [glib::Error] if querying the DB goes wrong. + pub async fn get_version(&self) -> Result { + let imp = self.imp(); + let mut db_version = 0; + + let connection = imp.connection.get().unwrap(); + let statement = connection.query_statement("SELECT ?version WHERE {{ ?datapoint a health:Version ; health:version ?version . }}", None::<&gio::Cancellable>).unwrap().unwrap(); + let cursor = statement.execute_future().await?; + + if let Ok(true) = cursor.next_future().await { + db_version = cursor.integer(0).try_into().unwrap(); + } + + Ok(db_version) + } + + /// Update the database version. + /// + /// # Returns + /// An error if querying the DB goes wrong. + pub async fn update_version(&self) -> Result<()> { + let connection = self.imp().connection.get().unwrap(); + let resource = tracker::Resource::new(Some("health")); + resource.set_int64("health:version", DB_VERSION); + let v = connection.update_resource(None, &resource, None::<&gio::Cancellable>); + if let Err(e) = v { + glib::g_error!( + crate::config::APPLICATION_ID, + "Error updating version: {}", + e + ); + } + Ok(()) + } + + /// Check if the version exists. + /// + /// # Returns + /// A boolean if the Version schema exists in the Database, or a [glib::Error] if querying the DB goes wrong. + pub async fn has_version(&self) -> Result { + let connection = self.imp().connection.get().unwrap(); + let cursor = connection + .query_future("ASK { ?datapoint a health:Version }") + .await?; + cursor.next_future().await?; + Ok(cursor.is_boolean(0)) + } + + /// Create a database `Version` for handling migration. + /// + /// # Returns + /// An error if querying the DB goes wrong. + pub async fn create_version(&self) -> Result<()> { + let imp = self.imp(); + let resource = tracker::Resource::new(Some("health")); + resource.set_uri("rdf:type", "health:Version"); + resource.set_int64("health:version", DB_VERSION.into()); + let connection = imp.connection.get().unwrap(); + let manager = imp.manager.get().unwrap(); + + connection + .update_future( + resource + .print_sparql_update(Some(manager), None) + .unwrap() + .as_str(), + ) + .await?; + + Ok(()) + } + /// Migrate from an older DB version to a newer one. The migration is one-way (as in you can't switch back to older versions). /// This can be called multiple times without problems, the migration just won't do anything afterwards. + /// A DB_VERSION is set to a particular integer depicting the current version of the DB. + /// If the version is less than the set DB_VERSION, we do the migration. + /// Note: Currently, we just care about adding the version so an if-else statement seems fine, but later on we should change it to a switch statement. /// /// # Returns /// An error if querying the DB goes wrong. pub async fn migrate(&self) -> Result<()> { + let version = self.has_version().await.unwrap_or(false); + if version { + let current_version = self.get_version().await?; + if current_version == DB_VERSION { + return Ok(()); + } else { + self.update_version().await?; + } + } else { + self.create_version().await?; + } + self.migrate_activities_date_datetime().await?; self.migrate_weight_date_datetime().await?; + self.migrate_user_to_database().await?; + self.migrate_activity_user_id().await?; + self.migrate_weight_user_id().await?; Ok(()) } @@ -624,7 +954,7 @@ impl Database { Ok(()) } - /// Migrate `Activity`s from date to dateTime. This will set all entries where a date is set to the date at 00:00:00 at the local datetime. + /// Migrate [Weight]s from date to dateTime. This will set all entries where a date is set to the date at 00:00:00 at the local datetime. /// /// # Returns /// An error if querying the DB goes wrong. @@ -669,6 +999,158 @@ impl Database { Ok(()) } + /// Migrate [User]s to the database. This will create an initial user from the GSettings file. + /// + /// # Returns + /// An error if querying the DB goes wrong. + pub async fn migrate_user_to_database(&self) -> Result<()> { + let imp = self.imp(); + let top_unused_user_id = self.get_top_unused_user_id().await.unwrap(); + if top_unused_user_id > 1 { + return Ok(()); + } + + let datetime = if imp.settings.user_birthday().is_none() { + let age: i32 = imp.settings.user_age().try_into().unwrap(); + let datetime = glib::DateTime::local().add_years(-age).unwrap(); + datetime + } else { + imp.settings.user_birthday().unwrap() + }; + + let mut user_builder = User::builder(); + user_builder + .user_id(top_unused_user_id) + .user_name("User") + .user_birthday(datetime) + .user_height(imp.settings.user_height()) + .user_weightgoal(imp.settings.user_weight_goal().unwrap()) + .user_stepgoal(imp.settings.user_step_goal() as i64) + .enabled_plugins(imp.settings.enabled_plugins()) + .recent_activity_types( + imp.settings + .recent_activity_types() + .iter() + .filter_map(|s| ActivityType::from_str(s.trim()).ok()) + .collect(), + ) + .did_initial_setup(true); + + let user = user_builder.build(); + if let Err(e) = self.save_user(user).await { + glib::g_warning!( + crate::config::LOG_DOMAIN, + "Failed to migrate user data due to error {e}", + ) + } + imp.settings.set_active_user_id(top_unused_user_id as u32); + Ok(()) + } + + /// Migrate [Activity]s to add a user ID. This will add an initial user ID of 1 to each activity entries.. + /// + /// # Returns + /// An error if querying the DB goes wrong. + pub async fn migrate_activity_user_id(&self) -> Result<()> { + let imp = self.imp(); + let connection = imp.connection.get().unwrap(); + + let cursor = + connection.query_future("SELECT ?date ?calories_burned ?distance ?heart_rate_avg ?heart_rate_max ?heart_rate_min ?minutes ?steps WHERE {{ ?datapoint a health:Activity ; health:activity_datetime ?date ; health:activity_id ?id . OPTIONAL {{ ?datapoint health:calories_burned ?calories_burned . }} OPTIONAL {{ ?datapoint health:distance ?distance . }} OPTIONAL {{ ?datapoint health:hearth_rate_avg ?heart_rate_avg . }} OPTIONAL {{ ?datapoint health:hearth_rate_min ?heart_rate_min . }} OPTIONAL {{ ?datapoint health:hearth_rate_max ?heart_rate_max . }} OPTIONAL {{ ?datapoint health:steps ?steps . }} OPTIONAL {{ ?datapoint health:minutes ?minutes }} }} ORDER BY ?date").await?; + + let mut ret = Vec::new(); + + while let Ok(true) = cursor.next_future().await { + let mut activity = Activity::builder(); + + for i in 0..cursor.n_columns() { + match cursor.variable_name(i).unwrap().as_str() { + "id" => { + activity.activity_type(ActivityType::from_i64(cursor.integer(i)).unwrap()); + } + "date" => { + activity.date(glib::DateTime::from_iso8601( + cursor.string(i).unwrap().as_str(), + None, + )?); + } + "calories_burned" => { + activity.calories_burned(cursor.integer(i).try_into().unwrap()); + } + "distance" => { + activity.distance(Length::new::(cursor.integer(i) as f32)); + } + "heart_rate_avg" => { + activity.heart_rate_avg(cursor.integer(i).try_into().unwrap()); + } + "heart_rate_max" => { + activity.heart_rate_max(cursor.integer(i).try_into().unwrap()); + } + "heart_rate_min" => { + activity.heart_rate_min(cursor.integer(i).try_into().unwrap()); + } + "minutes" => { + activity.duration(glib::TimeSpan::from_minutes(cursor.integer(i))); + } + "steps" => { + activity.steps(cursor.integer(i).try_into().unwrap()); + } + _ => { + glib::g_error!( + crate::config::APPLICATION_ID, + "Unknown variable name {}", + cursor.variable_name(i).unwrap() + ); + unimplemented!(); + } + } + } + + ret.push(activity.build()); + } + + connection + .update_future("DELETE WHERE { ?datapoint a health:Activity; };") + .await?; + + for activity in ret { + self.save_activity(activity).await?; + } + + Ok(()) + } + + /// Migrate [Weight]s to add a user ID. This will add an initial user ID of 1 to each weight entries.. + /// + /// # Returns + /// An error if querying the DB goes wrong. + pub async fn migrate_weight_user_id(&self) -> Result<()> { + let imp = self.imp(); + let connection = imp.connection.get().unwrap(); + + let cursor = + connection.query_future("SELECT ?date ?weight WHERE { ?datapoint a health:WeightMeasurement ; health:weight_datetime ?date ; health:weight ?weight . } ORDER BY ?date").await?; + + let mut ret = Vec::new(); + + while let Ok(true) = cursor.next_future().await { + ret.push(Weight::new( + glib::DateTime::from_iso8601(cursor.string(0).unwrap().as_str(), None).unwrap(), + Mass::new::(cursor.double(1) as f32), + )); + } + + connection + .update_future("DELETE WHERE { ?datapoint a health:WeightMeasurement; };") + .await?; + + for weight in ret { + self.save_weight(weight).await?; + } + + Ok(()) + } + /// Create a new Tracker DB and connect to Tracker. /// /// # Returns @@ -733,6 +1215,10 @@ impl Database { "health:activity_datetime", activity.date().format_iso8601().unwrap().as_str(), ); + resource.set_int64( + "health:activity_user_id", + imp.settings.active_user_id() as i64, + ); resource.set_int64( "health:activity_id", activity.activity_type().to_u32().unwrap().into(), @@ -776,7 +1262,7 @@ impl Database { Ok(()) } - /// Save an [Weight] to the database. + /// Save a [Weight] to the database. /// /// # Arguments /// * `weight` - The [Weight] which should be saved. @@ -792,6 +1278,10 @@ impl Database { weight.date.format_iso8601().unwrap().as_str(), ); resource.set_double("health:weight", weight.weight.get::().into()); + resource.set_int64( + "health:weight_user_id", + imp.settings.active_user_id() as i64, + ); let connection = imp.connection.get().unwrap(); let manager = imp.manager.get().unwrap(); @@ -809,6 +1299,79 @@ impl Database { Ok(()) } + /// Save a [User] to the database. + /// + /// # Arguments + /// * `user` - The [User] which should be saved. + /// + /// # Returns + /// An error if querying the DB goes wrong. + pub async fn save_user(&self, user: User) -> Result<()> { + let imp = self.imp(); + let top_user_id = self.get_top_unused_user_id().await?; + let resource = tracker::Resource::new(Some(format!("health:User{}", top_user_id).as_str())); + resource.set_uri("rdf:type", "health:User"); + resource.set_int64("health:user_id", user.user_id()); + if let Some(name) = user.user_name() { + resource.set_string("health:user_name", name.as_str()); + } + resource.set_string( + "health:user_birthday", + user.user_birthday() + .unwrap() + .format_iso8601() + .unwrap() + .as_str(), + ); + if let Some(height) = user.user_height() { + resource.set_double("health:user_height", height.get::() as f64); + } + if let Some(weight) = user.user_weightgoal() { + resource.set_double("health:user_weightgoal", weight.get::().into()); + } + if let Some(stepgoal) = user.user_stepgoal() { + resource.set_int64("health:user_stepgoal", stepgoal.into()); + } + if let Some(plugins) = user.enabled_plugins() { + resource.set_string( + "health:enabled_plugins", + plugins + .iter() + .map(std::convert::AsRef::as_ref) + .collect::>() + .join(",") + .as_str(), + ); + } + if let Some(activity_types) = user.recent_activity_types() { + resource.set_string( + "health:recent_activity_types", + activity_types + .iter() + .map(std::convert::AsRef::as_ref) + .collect::>() + .join(",") + .as_str(), + ); + } + if let Some(setup) = user.did_initial_setup() { + resource.set_boolean("health:did_initial_setup", setup); + } + let connection = imp.connection.get().unwrap(); + let manager = imp.manager.get().unwrap(); + + connection + .update_future( + resource + .print_sparql_update(Some(manager), None) + .unwrap() + .as_str(), + ) + .await?; + self.emit_by_name::<()>("user-updated", &[]); + Ok(()) + } + /// Connect to the tracker DB. This has to be called before calling any other methods on this struct. /// /// # Arguments diff --git a/src/core/settings.rs b/src/core/settings.rs index bcb23d1..9d55189 100644 --- a/src/core/settings.rs +++ b/src/core/settings.rs @@ -50,6 +50,7 @@ impl Settings { settings_getter_setter!(i32, window_height, "window-height"); settings_getter_setter!(bool, window_is_maximized, "window-is-maximized"); settings_getter_setter!(i32, window_width, "window-width"); + settings_getter_setter!(u32, active_user_id, "active-user-id"); delegate::delegate! { to self.0 { diff --git a/src/model/activity_type.rs b/src/model/activity_type.rs index 7c29029..9fe09d0 100644 --- a/src/model/activity_type.rs +++ b/src/model/activity_type.rs @@ -31,6 +31,8 @@ use gtk::glib; strum::EnumString, strum::IntoStaticStr, strum::AsRefStr, + serde::Deserialize, + serde::Serialize, )] #[strum(serialize_all = "snake_case")] pub enum ActivityType { diff --git a/src/model/data_category.rs b/src/model/data_category.rs new file mode 100644 index 0000000..a3ce4fe --- /dev/null +++ b/src/model/data_category.rs @@ -0,0 +1,79 @@ +/* data_category.rs + * + * Copyright 2021-2022 Aman Kumar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +use gtk::glib; + +/// All supported [DataCategory]s are listed in this enum. +#[derive( + Debug, + num_derive::FromPrimitive, + num_derive::ToPrimitive, + Clone, + Copy, + Hash, + PartialEq, + Eq, + strum::EnumString, + strum::IntoStaticStr, + strum::AsRefStr, +)] +#[strum(serialize_all = "snake_case")] +pub enum DataCategory { + Activity, + Weight, +} + +impl Default for DataCategory { + fn default() -> Self { + Self::Activity + } +} + +impl glib::ToValue for DataCategory { + fn to_value(&self) -> glib::Value { + self.as_ref().to_value() + } + + fn value_type(&self) -> glib::Type { + ::static_type() + } +} + +#[cfg(test)] +mod test { + use super::DataCategory; + use std::str::FromStr; + + #[test] + fn deserialize_data_category() { + assert_eq!( + DataCategory::from_str("activity"), + Ok(DataCategory::Activity) + ); + assert_eq!(DataCategory::from_str("weight"), Ok(DataCategory::Weight),); + assert!(DataCategory::from_str("unknown").is_err()); + } + + #[test] + fn serialize_data_category() { + let a: &str = DataCategory::Activity.into(); + assert_eq!(a, "activity"); + let a: &str = DataCategory::Weight.into(); + assert_eq!(a, "weight"); + } +} diff --git a/src/model/mod.rs b/src/model/mod.rs index b90be33..6184a72 100644 --- a/src/model/mod.rs +++ b/src/model/mod.rs @@ -9,6 +9,8 @@ pub mod activity_type; #[doc(hidden)] pub mod activity_type_row_data; #[doc(hidden)] +pub mod data_category; +#[doc(hidden)] pub mod fn_boxed; #[doc(hidden)] pub mod model_notification; @@ -19,6 +21,8 @@ pub mod steps; #[doc(hidden)] pub mod unitsize; #[doc(hidden)] +pub mod user; +#[doc(hidden)] pub mod weight; #[doc(hidden)] pub mod weight_change; @@ -34,6 +38,8 @@ pub use activity_type::*; #[doc(inline)] pub use activity_type_row_data::*; #[doc(inline)] +pub use data_category::*; +#[doc(inline)] pub use fn_boxed::*; #[doc(inline)] pub use model_notification::*; @@ -44,6 +50,8 @@ pub use steps::*; #[doc(inline)] pub use unitsize::*; #[doc(inline)] +pub use user::*; +#[doc(inline)] pub use weight::*; #[doc(inline)] pub use weight_change::*; diff --git a/src/model/user.rs b/src/model/user.rs new file mode 100644 index 0000000..157a603 --- /dev/null +++ b/src/model/user.rs @@ -0,0 +1,523 @@ +/* user.rs + * + * Copyright 2021-2022 Aman Kumar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +use crate::{core::date::GDateTimeExt, model::ActivityType, plugins::PluginName}; +use gtk::glib::{self, prelude::*, subclass::prelude::*}; +use uom::si::{ + f32::{Length, Mass}, + length::meter, + mass::kilogram, +}; + +#[derive(Clone, glib::Boxed, PartialEq, serde::Deserialize, serde::Serialize)] +#[boxed_type(name = "PluginNames")] +pub struct PluginNames(pub Vec); + +#[derive(Clone, glib::Boxed, PartialEq, serde::Deserialize, serde::Serialize)] +#[boxed_type(name = "ActivityTypes")] +pub struct ActivityTypes(pub Vec); + +/// A [User] is a particular user using the Health who is currently active. + +mod imp { + use super::{ActivityTypes, PluginNames}; + use crate::{model::ActivityType, plugins::PluginName, prelude::*, sync::serialize}; + use gtk::{glib, prelude::*, subclass::prelude::*}; + use std::{cell::RefCell, convert::TryInto}; + use uom::si::{ + f32::{Length, Mass}, + length::meter, + mass::kilogram, + }; + + #[derive(Debug, serde::Deserialize, serde::Serialize, PartialEq)] + pub struct UserMut { + pub user_id: i64, + pub user_name: Option, + #[serde(serialize_with = "serialize::serialize_datetime")] + #[serde(deserialize_with = "serialize::deserialize_datetime")] + pub user_birthday: Option, + #[serde(serialize_with = "serialize::serialize_distance")] + #[serde(deserialize_with = "serialize::deserialize_distance")] + pub user_height: Option, + #[serde(serialize_with = "serialize::serialize_weight")] + #[serde(deserialize_with = "serialize::deserialize_weight")] + pub user_weightgoal: Option, + pub user_stepgoal: Option, + pub enabled_plugins: Option>, + pub recent_activity_types: Option>, + pub did_initial_setup: Option, + } + + pub struct User { + pub inner: RefCell, + } + + #[glib::object_subclass] + impl ObjectSubclass for User { + const NAME: &'static str = "HealthUser"; + type ParentType = glib::Object; + type Type = super::User; + + fn new() -> Self { + Self { + inner: RefCell::new(UserMut { + user_id: 0, + user_name: None, + user_birthday: Some(glib::DateTime::local()), + user_height: None, + user_weightgoal: None, + user_stepgoal: None, + enabled_plugins: Some(vec![]), + recent_activity_types: Some(vec![]), + did_initial_setup: Some(false), + }), + } + } + } + + impl ObjectImpl for User { + fn properties() -> &'static [glib::ParamSpec] { + use once_cell::sync::Lazy; + + static PROPERTIES: Lazy> = Lazy::new(|| { + vec![ + glib::ParamSpecInt64::new( + "user-id", + "user-id", + "user-id", + 0, + u32::MAX.into(), + 0, + glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, + ), + glib::ParamSpecString::new( + "user-name", + "user-name", + "user-name", + Some("User"), + glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, + ), + glib::ParamSpecBoxed::new( + "user-birthday", + "user-birthday", + "user-birthday", + glib::DateTime::static_type(), + glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, + ), + glib::ParamSpecFloat::new( + "user-height", + "user-height", + "user-height", + -1.0, + f32::MAX, + -1.0, + glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, + ), + glib::ParamSpecFloat::new( + "user-weightgoal", + "user-weightgoal", + "user-weightgoal", + -1.0, + f32::MAX, + -1.0, + glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, + ), + glib::ParamSpecInt64::new( + "user-stepgoal", + "user-stepgoal", + "user-stepgoal", + i64::MIN, + i64::MAX, + 0, + glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, + ), + glib::ParamSpecBoxed::new( + "enabled-plugins", + "enabled-plugins", + "enabled-plugins", + PluginNames::static_type(), + glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, + ), + glib::ParamSpecBoxed::new( + "recent-activity-types", + "recent-activity-types", + "recent-activity-types", + ActivityTypes::static_type(), + glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, + ), + glib::ParamSpecBoolean::new( + "did-initial-setup", + "did-initial-setup", + "did-initial-setup", + false, + glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, + ), + ] + }); + + PROPERTIES.as_ref() + } + + fn set_property( + &self, + _obj: &Self::Type, + _id: usize, + value: &glib::Value, + pspec: &glib::ParamSpec, + ) { + match pspec.name() { + "user-id" => { + self.inner.borrow_mut().user_id = value.get::().unwrap(); + } + "user-name" => { + self.inner.borrow_mut().user_name = + value.get::<&str>().unwrap().to_string().try_into().ok(); + } + "user-birthday" => { + let value = value.get().unwrap(); + self.inner.borrow_mut().user_birthday = Some(value); + } + "user-height" => { + let value = value.get::().unwrap(); + self.inner.borrow_mut().user_height = Some(Length::new::(value)); + } + "user-weightgoal" => { + let value = value.get::().unwrap(); + self.inner.borrow_mut().user_weightgoal = Some(Mass::new::(value)); + } + "user-stepgoal" => { + let value = value.get::().unwrap(); + self.inner.borrow_mut().user_stepgoal = Some(value); + } + "enabled-plugins" => { + self.inner.borrow_mut().enabled_plugins = + Some(value.get::().unwrap().0); + } + "recent-activity-types" => { + self.inner.borrow_mut().recent_activity_types = + Some(value.get::().unwrap().0); + } + "did-initial-setup" => { + let value = value.get::().unwrap(); + self.inner.borrow_mut().did_initial_setup = Some(value); + } + _ => unimplemented!(), + } + } + + fn property(&self, _obj: &Self::Type, _id: usize, pspec: &glib::ParamSpec) -> glib::Value { + match pspec.name() { + "user-id" => self.inner.borrow().user_id.to_value(), + "user-name" => self + .inner + .borrow() + .user_name + .as_ref() + .unwrap_or(&"User".to_string()) + .to_value(), + "user-birthday" => self + .inner + .borrow() + .user_birthday + .as_ref() + .unwrap() + .to_value(), + "user-height" => self + .inner + .borrow() + .user_height + .map_or(-1.0, |d| d.get::()) + .to_value(), + "user-weightgoal" => self + .inner + .borrow() + .user_weightgoal + .map_or(-1.0, |d| d.get::()) + .to_value(), + "user-stepgoal" => self.inner.borrow().user_stepgoal.unwrap_or(0).to_value(), + "enabled-plugins" => PluginNames( + self.inner + .borrow() + .enabled_plugins + .as_ref() + .unwrap() + .to_vec(), + ) + .to_value(), + "recent-activity-types" => ActivityTypes( + self.inner + .borrow() + .recent_activity_types + .as_ref() + .unwrap() + .to_vec(), + ) + .to_value(), + "did-initial-setup" => self.inner.borrow().did_initial_setup.unwrap().to_value(), + _ => unimplemented!(), + } + } + } +} + +glib::wrapper! { + /// A [User] represents a single user profile. + pub struct User(ObjectSubclass); +} + +impl Default for User { + fn default() -> Self { + Self::new() + } +} + +impl User { + /// Creates a new [User]. + pub fn new() -> Self { + glib::Object::new(&[("user-birthday", &glib::DateTime::local())]) + .expect("Failed to create a new User") + } + + pub fn builder() -> UserBuilder { + UserBuilder::new() + } + + pub fn user_id(&self) -> i64 { + self.property::("user-id") + } + + pub fn user_name(&self) -> Option { + self.property("user-name") + } + + pub fn user_birthday(&self) -> Option { + let value = self.property("user-birthday"); + Some(value) + } + + pub fn user_height(&self) -> Option { + let value = self.property::("user-height"); + Some(Length::new::(value)) + } + + pub fn user_weightgoal(&self) -> Option { + let value = self.property::("user-weightgoal"); + Some(Mass::new::(value)) + } + + pub fn user_stepgoal(&self) -> Option { + let value = self.property::("user-stepgoal"); + Some(value) + } + + pub fn enabled_plugins(&self) -> Option> { + let value = self.property::("enabled-plugins").0; + Some(value) + } + + pub fn recent_activity_types(&self) -> Option> { + let value = self.property::("recent-activity-types").0; + Some(value) + } + + pub fn did_initial_setup(&self) -> Option { + let value = self.property::("did-initial-setup"); + Some(value) + } + + pub fn set_user_id(&self, value: i64) -> &Self { + self.set_property("user-id", value); + self + } + + pub fn set_user_name(&self, value: Option<&str>) -> &Self { + self.set_property("user-name", value.unwrap_or("User")); + self + } + + pub fn set_user_birthday(&self, value: Option) -> &Self { + self.set_property("user-birthday", value.unwrap()); + self + } + + pub fn set_user_height(&self, value: Option) -> &Self { + self.set_property("user-height", value.map_or(-1.0, |v| v.get::())); + self + } + + pub fn set_user_weightgoal(&self, value: Option) -> &Self { + self.set_property( + "user-weightgoal", + value.map_or(-1.0, |v| v.get::()), + ); + self + } + + pub fn set_user_stepgoal(&self, value: Option) -> &Self { + self.set_property("user-stepgoal", value.unwrap_or(0)); + self + } + + pub fn set_enabled_plugins(&self, value: Option>) -> &Self { + self.set_property("enabled-plugins", PluginNames(value.unwrap_or(vec![]))); + self + } + + pub fn set_recent_activity_types(&self, value: Option>) -> &Self { + self.set_property( + "recent-activity-types", + ActivityTypes(value.unwrap_or(vec![])), + ); + self + } + + pub fn set_did_initial_setup(&self, value: Option) -> &Self { + self.set_property("did-initial-setup", value.unwrap_or(false)); + self + } +} + +impl serde::Serialize for User { + fn serialize( + &self, + serializer: S, + ) -> Result<::Ok, ::Error> + where + S: serde::Serializer, + { + self.imp().inner.borrow().serialize(serializer) + } +} + +impl<'de> serde::Deserialize<'de> for User { + fn deserialize(deserializer: D) -> Result + where + D: serde::Deserializer<'de>, + { + let inner = imp::UserMut::deserialize(deserializer)?; + + let a = Self::new(); + a.imp().inner.replace(inner); + Ok(a) + } +} + +#[derive(Clone, Default)] +/// A [builder-pattern] type to construct [`User`] objects. +/// +/// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html +#[must_use = "The builder must be built to be used"] +pub struct UserBuilder { + user_id: Option, + user_name: Option, + user_birthday: Option, + user_height: Option, + user_weightgoal: Option, + user_stepgoal: Option, + enabled_plugins: Option, + recent_activity_types: Option, + did_initial_setup: Option, +} + +impl UserBuilder { + /// Create a new [`UserBuilder`]. + pub fn new() -> Self { + Self::default() + } + + /// Build the [`UserBuilder`]. + #[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"] + pub fn build(&mut self) -> User { + let mut properties: Vec<(&str, &dyn ToValue)> = vec![]; + if let Some(ref user_id) = self.user_id { + properties.push(("user-id", user_id)); + } + if let Some(ref user_name) = self.user_name { + properties.push(("user-name", user_name)); + } + if let Some(ref user_birthday) = self.user_birthday { + properties.push(("user-birthday", user_birthday)); + } + if let Some(ref user_height) = self.user_height { + properties.push(("user-height", user_height)); + } + if let Some(ref user_weightgoal) = self.user_weightgoal { + properties.push(("user-weightgoal", user_weightgoal)); + } + if let Some(ref user_stepgoal) = self.user_stepgoal { + properties.push(("user-stepgoal", user_stepgoal)); + } + if let Some(ref enabled_plugins) = self.enabled_plugins { + properties.push(("enabled-plugins", enabled_plugins)); + } + if let Some(ref recent_activity_types) = self.recent_activity_types { + properties.push(("recent-activity-types", recent_activity_types)); + } + if let Some(ref did_initial_setup) = self.did_initial_setup { + properties.push(("did-initial-setup", did_initial_setup)); + } + + glib::Object::new::(&properties).expect("Failed to create a new User") + } + + pub fn user_id(&mut self, user_id: i64) -> &mut Self { + self.user_id = Some(user_id.into()); + self + } + + pub fn user_name(&mut self, user_name: &str) -> &mut Self { + self.user_name = Some(user_name.to_string()); + self + } + + pub fn user_birthday(&mut self, user_birthday: glib::DateTime) -> &mut Self { + self.user_birthday = Some(user_birthday); + self + } + + pub fn user_height(&mut self, user_height: Length) -> &mut Self { + self.user_height = Some(user_height.get::()); + self + } + + pub fn user_weightgoal(&mut self, user_weightgoal: Mass) -> &mut Self { + self.user_weightgoal = Some(user_weightgoal.get::()); + self + } + + pub fn user_stepgoal(&mut self, user_stepgoal: i64) -> &mut Self { + self.user_stepgoal = Some(user_stepgoal.into()); + self + } + + pub fn enabled_plugins(&mut self, enabled_plugins: Vec) -> &mut Self { + self.enabled_plugins = Some(PluginNames(enabled_plugins)); + self + } + + pub fn recent_activity_types(&mut self, recent_activity_types: Vec) -> &mut Self { + self.recent_activity_types = Some(ActivityTypes(recent_activity_types)); + self + } + + pub fn did_initial_setup(&mut self, did_initial_setup: bool) -> &mut Self { + self.did_initial_setup = Some(did_initial_setup); + self + } +} diff --git a/src/plugins/activities/data_provider.rs b/src/plugins/activities/data_provider.rs index e9e5325..4729abb 100644 --- a/src/plugins/activities/data_provider.rs +++ b/src/plugins/activities/data_provider.rs @@ -23,10 +23,7 @@ use gtk::{ }; use std::convert::TryInto; mod imp { - use crate::{ - core::{Database, Settings}, - model::Activity, - }; + use crate::{core::Database, model::Activity}; use gtk::subclass::prelude::*; use gtk::{ gio, @@ -46,7 +43,6 @@ mod imp { pub struct ModelActivity { pub database: Database, pub inner: RefCell, - pub settings: Settings, } #[glib::object_subclass] diff --git a/src/plugins/calories/data_provider.rs b/src/plugins/calories/data_provider.rs index d20a69e..4d13cf7 100644 --- a/src/plugins/calories/data_provider.rs +++ b/src/plugins/calories/data_provider.rs @@ -105,13 +105,14 @@ impl GraphModelCalories { } Ok(v) => v, }; + let user_id = self.settings.active_user_id() as i64; + let user = &self.database.users(Some(user_id)).await.unwrap()[0]; let weight = weights .last() .map_or_else(|| Mass::new::(0.0), |w| w.weight) .get::() as f32; - let height = self.settings.user_height().get::() as f32; - let age = self - .settings + let height = user.user_height().unwrap().get::() as f32; + let age = user .user_birthday() .unwrap() .difference(&glib::DateTime::local()) diff --git a/src/plugins/plugin_name.rs b/src/plugins/plugin_name.rs index 6c47f80..1546e97 100644 --- a/src/plugins/plugin_name.rs +++ b/src/plugins/plugin_name.rs @@ -1,7 +1,15 @@ use gtk::glib; #[derive( - PartialEq, Debug, Clone, Copy, strum::EnumString, strum::AsRefStr, num_derive::ToPrimitive, + PartialEq, + Debug, + Clone, + Copy, + strum::EnumString, + strum::AsRefStr, + num_derive::ToPrimitive, + serde::Deserialize, + serde::Serialize, )] #[strum(serialize_all = "snake_case")] pub enum PluginName { diff --git a/src/plugins/registrar.rs b/src/plugins/registrar.rs index ea04158..7036efb 100644 --- a/src/plugins/registrar.rs +++ b/src/plugins/registrar.rs @@ -1,15 +1,13 @@ static mut REGISTRAR: Option = None; -use crate::plugins::{Plugin, PluginList, PluginName}; +use crate::{ + core::{Settings, Database}, + plugins::{Plugin, PluginList, PluginName, ActivitiesPlugin, CaloriesPlugin, StepsPlugin, WeightPlugin} +}; use gtk::{glib, prelude::*, subclass::prelude::*}; mod imp { - use crate::{ - core::Settings, - plugins::{ - ActivitiesPlugin, CaloriesPlugin, Plugin, PluginList, StepsPlugin, WeightPlugin, - }, - }; + use crate::plugins::PluginList; use gtk::glib::{ self, subclass::{prelude::*, Signal}, @@ -39,20 +37,10 @@ mod imp { fn constructed(&self, obj: &Self::Type) { self.parent_constructed(obj); - - let enabled_plugins = Settings::instance().enabled_plugins(); - for plugin in [ - Box::new(ActivitiesPlugin::new()) as Box, - Box::new(CaloriesPlugin::new()) as Box, - Box::new(StepsPlugin::new()) as Box, - Box::new(WeightPlugin::new()) as Box, - ] { - if enabled_plugins.contains(&plugin.name()) { - self.enabled_plugins.push(plugin); - } else { - self.disabled_plugins.push(plugin); - } - } + gtk_macros::spawn!(glib::clone!(@weak obj => async move { + obj.enabled_plugins_list().await; + println!("Requesting for plugins"); + })); } } } @@ -88,6 +76,44 @@ impl Registrar { self.emit_by_name::<()>("plugins-changed", &[]); } } + + /// Connect to the `plugins-changed` signal. + /// + /// # Arguments + /// * `callback` - The callback which should be invoked when `plugins-changed` is emitted. + /// + /// # Returns + /// A [glib::SignalHandlerId] that can be used for disconnecting the signal if so desired. + pub fn connect_plugins_updated( + &self, + callback: F, + ) -> glib::SignalHandlerId { + self.connect_local("plugins-changed", false, move |values| { + callback(&values[0].get().unwrap()); + None + }) + } + + /// Push enabled plugins and disabled plugins. + pub async fn enabled_plugins_list(&self) -> () { + let imp = self.imp(); + let user_id = Settings::instance().active_user_id() as i64; + let user = &Database::instance().users(Some(user_id)).await.unwrap()[0]; + let enabled_plugins = user.enabled_plugins().unwrap(); + for plugin in [ + Box::new(ActivitiesPlugin::new()) as Box, + Box::new(CaloriesPlugin::new()) as Box, + Box::new(StepsPlugin::new()) as Box, + Box::new(WeightPlugin::new()) as Box, + ] { + if enabled_plugins.contains(&plugin.name()) { + imp.enabled_plugins.push(plugin); + } else { + imp.disabled_plugins.push(plugin); + } + } + + } /// Get a list of disabled [Plugin]s pub fn disabled_plugins(&self) -> PluginList { @@ -144,4 +170,4 @@ mod test { fn new() { Registrar::new(); } -} +} \ No newline at end of file diff --git a/src/plugins/steps/details.rs b/src/plugins/steps/details.rs index 62266e0..5c792d1 100644 --- a/src/plugins/steps/details.rs +++ b/src/plugins/steps/details.rs @@ -51,6 +51,7 @@ mod imp { #[template_child] pub scrolled_window: TemplateChild, pub settings: Settings, + pub database: Database, pub settings_handler_id: RefCell>, pub steps_graph_view: OnceCell, pub steps_graph_model: RefCell>, @@ -190,12 +191,16 @@ impl PluginStepsDetails { .to_string()], )); - let streak_count = steps_graph_model.streak_count_today(imp.settings.user_step_goal()); + let user_id = imp.settings.active_user_id() as i64; + let user = &imp.database.users(Some(user_id)).await.unwrap()[0]; + + + let streak_count = steps_graph_model.streak_count_today(user.user_stepgoal().unwrap_or(0) as u32); match streak_count { 0 => { let previous_streak = - steps_graph_model.streak_count_yesterday(imp.settings.user_step_goal()); + steps_graph_model.streak_count_yesterday(user.user_stepgoal().unwrap_or(0) as u32); if previous_streak == 0 { self.set_filled_subtitle(&i18n( "No streak yet. Reach your step goal for multiple days to start a streak!", @@ -236,7 +241,7 @@ impl PluginStepsDetails { &[&p.value.to_string(), &p.date.format_local()], ) }))); - steps_graph_view.set_limit(Some(imp.settings.user_step_goal() as f32)); + steps_graph_view.set_limit(Some(user.user_stepgoal().unwrap_or(0) as u32 as f32)); steps_graph_view.set_limit_label(Some(i18n("Step goal"))); imp.scrolled_window.set_child(Some(&steps_graph_view)); @@ -246,8 +251,8 @@ impl PluginStepsDetails { imp .settings_handler_id - .replace(Some(imp.settings.connect_user_step_goal_changed( - glib::clone!(@weak self as obj => move |_,_| { + .replace(Some(imp.database.connect_user_updated( + glib::clone!(@weak self as obj => move |_| { gtk_macros::spawn!(async move { obj.update().await; }); diff --git a/src/plugins/steps/summary.rs b/src/plugins/steps/summary.rs index febe096..2155321 100644 --- a/src/plugins/steps/summary.rs +++ b/src/plugins/steps/summary.rs @@ -87,8 +87,10 @@ impl PluginStepsSummaryRow { pub async fn update(&self) { let imp = self.imp(); let db = Database::instance(); + let user_id = Settings::instance().active_user_id() as i64; + let user = &db.users(Some(user_id)).await.unwrap()[0]; let step_count = db.todays_steps().await.unwrap_or(0); - let step_goal = Settings::instance().user_step_goal(); + let step_goal = user.user_stepgoal().unwrap_or(0) as u32; self.set_subtitle(&ni18n_f( "{} step taken today", diff --git a/src/plugins/weight/details.rs b/src/plugins/weight/details.rs index be1d080..095724e 100644 --- a/src/plugins/weight/details.rs +++ b/src/plugins/weight/details.rs @@ -18,6 +18,7 @@ use crate::{ core::{i18n, i18n_f, ni18n_f, UnitSystem}, + model::User, plugins::{ weight::{GraphModelWeight, GraphModelWeightMocked}, PluginDetails, @@ -59,6 +60,7 @@ mod imp { #[template_child] pub scrolled_window: TemplateChild, pub settings: Settings, + pub database: Database, pub settings_handler_id: RefCell>, pub weight_graph_view: OnceCell, pub weight_graph_model: RefCell>, @@ -176,11 +178,19 @@ impl PluginWeightDetails { .expect("Failed to create PluginWeightDetails") } + pub async fn get_user(&self) -> User { + let imp = self.imp(); + let user_id = imp.settings.active_user_id() as i64; + let user = &imp.database.users(Some(user_id)).await.unwrap()[0]; + user.clone() + } + // TRANSLATORS notes have to be on the same line, so we cant split them #[rustfmt::skip] /// Reload the [GraphModelWeight]'s data and refresh labels & reload the [GraphView]. pub async fn update(&self) { let imp = self.imp(); + let user = self.get_user().await; let mut weight_graph_model = { imp.weight_graph_model.borrow_mut().take().unwrap() }; if let Err(e) = weight_graph_model.reload(glib::TimeSpan::from_days(30)).await { glib::g_warning!( @@ -189,8 +199,8 @@ impl PluginWeightDetails { ); } - self.set_filled_title(&i18n_f("Current BMI: {}", &[&self.bmi(&weight_graph_model)])); - self.update_weight_goal_label(&weight_graph_model); + self.set_filled_title(&i18n_f("Current BMI: {}", &[&self.bmi(&weight_graph_model).await])); + self.update_weight_goal_label(&weight_graph_model).await; if let Some(view) = imp.weight_graph_view.get() { view.set_points(weight_graph_model.to_points()); @@ -210,7 +220,7 @@ impl PluginWeightDetails { ni18n_f("{} kilogram on {}", "{} kilograms on {}", p.value as u32, &[&p.value.to_string(), &p.date.format_local()]) } }))); - if let Some(unit_goal) = imp.settings.user_weight_goal() { + if let Some(unit_goal) = user.user_weightgoal() { let weight_goal = if imp.settings.unit_system() == UnitSystem::Imperial { unit_goal.get::() } else { @@ -226,8 +236,8 @@ impl PluginWeightDetails { imp.weight_graph_view.set(weight_graph_view).unwrap(); imp.settings_handler_id.replace(Some( - imp.settings.connect_user_weight_goal_changed( - glib::clone!(@weak self as obj => move |_,_| { + imp.database.connect_user_updated( + glib::clone!(@weak self as obj => move |_| { gtk_macros::spawn!(async move { obj.update().await; }); @@ -239,9 +249,10 @@ impl PluginWeightDetails { imp.weight_graph_model.replace(Some(weight_graph_model)); } - fn bmi(&self, model: &DataProvider) -> String { + async fn bmi(&self, model: &DataProvider) -> String { + let user = self.get_user().await; if let Some(last_weight) = model.last_weight() { - let height = self.imp().settings.user_height().get::(); + let height = user.user_height().unwrap().get::(); if height == 0.0 || last_weight.get::() == 0.0 { return i18n("Unknown BMI"); } @@ -252,9 +263,10 @@ impl PluginWeightDetails { } } - fn update_weight_goal_label(&self, model: &DataProvider) { + async fn update_weight_goal_label(&self, model: &DataProvider) { let imp = self.imp(); - if let Some(weight_goal) = imp.settings.user_weight_goal() { + let user = self.get_user().await; + if let Some(weight_goal) = user.user_weightgoal() { let unit_system = imp.settings.unit_system(); let weight_value = if unit_system == UnitSystem::Imperial { weight_goal.get::() diff --git a/src/sync/serialize.rs b/src/sync/serialize.rs index 64ed08c..4203472 100644 --- a/src/sync/serialize.rs +++ b/src/sync/serialize.rs @@ -19,6 +19,7 @@ use crate::{ core::{Settings, UnitSystem}, model::ActivityType, + plugins::PluginName, }; use gtk::glib; use serde::{de, Deserialize, Deserializer, Serializer}; @@ -38,6 +39,15 @@ where ActivityType::from_str(buf.as_str()).map_err(serde::de::Error::custom) } +pub fn deserialize_plugin<'de, D>(deserializer: D) -> Result +where + D: Deserializer<'de>, +{ + let buf = String::deserialize(deserializer)?; + + PluginName::from_str(buf.as_str()).map_err(serde::de::Error::custom) +} + pub fn deserialize_date<'de, D>(deserializer: D) -> Result where D: Deserializer<'de>, @@ -47,6 +57,15 @@ where glib::DateTime::from_iso8601(&buf, None).map_err(serde::de::Error::custom) } +pub fn deserialize_datetime<'de, D>(deserializer: D) -> Result, D::Error> +where + D: Deserializer<'de>, +{ + let buf = String::deserialize(deserializer)?; + let datetime = glib::DateTime::from_iso8601(&buf, None).map_err(serde::de::Error::custom)?; + Ok(Some(datetime)) +} + pub fn deserialize_distance<'de, D>(deserializer: D) -> Result, D::Error> where D: Deserializer<'de>, @@ -65,6 +84,24 @@ where } } +pub fn deserialize_weight<'de, D>(deserializer: D) -> Result, D::Error> +where + D: Deserializer<'de>, +{ + let val = f32::deserialize(deserializer)?; + if Settings::instance().unit_system() == UnitSystem::Metric { + if val == 0.0 { + Ok(None) + } else { + Ok(Some(Mass::new::(val))) + } + } else if val == 0.0 { + Ok(None) + } else { + Ok(Some(Mass::new::(val))) + } +} + pub fn deserialize_duration<'de, D>(deserializer: D) -> Result where D: Deserializer<'de>, @@ -103,6 +140,13 @@ where s.serialize_str(val.as_ref()) } +pub fn serialize_enabled_plugins(val: &PluginName, s: S) -> Result +where + S: Serializer, +{ + s.serialize_str(val.as_ref()) +} + pub fn serialize_date(d: &glib::DateTime, s: S) -> Result where S: Serializer, @@ -110,6 +154,19 @@ where s.serialize_str(d.format_iso8601().unwrap().as_str()) } +#[allow(clippy::trivially_copy_pass_by_ref)] +#[allow(clippy::option_if_let_else)] +pub fn serialize_datetime(d: &Option, s: S) -> Result +where + S: Serializer, +{ + if let Some(date) = d { + s.serialize_str(date.format_iso8601().unwrap().as_str()) + } else { + s.serialize_str("") + } +} + #[allow(clippy::trivially_copy_pass_by_ref)] #[allow(clippy::option_if_let_else)] pub fn serialize_distance(l: &Option, s: S) -> Result @@ -129,6 +186,25 @@ where } } +#[allow(clippy::trivially_copy_pass_by_ref)] +#[allow(clippy::option_if_let_else)] +pub fn serialize_weight(l: &Option, s: S) -> Result +where + S: Serializer, +{ + if Settings::instance().unit_system() == UnitSystem::Metric { + if let Some(mass) = l { + s.serialize_f32(mass.get::()) + } else { + s.serialize_f32(0.0) + } + } else if let Some(mass) = l { + s.serialize_f32(mass.get::()) + } else { + s.serialize_f32(0.0) + } +} + pub fn serialize_duration(d: &glib::TimeSpan, s: S) -> Result where S: Serializer, diff --git a/src/views/view_add_activity.rs b/src/views/view_add_activity.rs index 6266712..a323ce1 100644 --- a/src/views/view_add_activity.rs +++ b/src/views/view_add_activity.rs @@ -479,36 +479,37 @@ impl ViewAddActivity { "Failed to save new data due to error {e}", ) } - self.save_recent_activity(); + self.save_recent_activity().await; } } - fn save_recent_activity(&self) { + async fn save_recent_activity(&self) { let imp = self.imp(); let inner = imp.inner.borrow(); + let user_id = imp.settings.active_user_id() as i64; + let user = &imp.database.users(Some(user_id)).await.unwrap()[0]; - let mut recent_activities = imp.settings.recent_activity_types(); + let mut recent_activities = user.recent_activity_types().unwrap(); if !recent_activities .iter() - .any(|s| inner.selected_activity.id == s) + .any(|s| inner.selected_activity.activity_type == *s) { - recent_activities.push(inner.selected_activity.id.to_string()); + recent_activities.push(inner.selected_activity.activity_type.clone()); if recent_activities.len() > 4 { - imp.settings.set_recent_activity_types( - &recent_activities[1..recent_activities.len()] - .iter() - .map(std::string::String::as_str) - .collect::>(), - ); + user.set_recent_activity_types(Some( + recent_activities[1..recent_activities.len()].to_vec(), + )); } else { - imp.settings.set_recent_activity_types( - &recent_activities - .iter() - .map(std::string::String::as_str) - .collect::>(), - ); + user.set_recent_activity_types(Some(recent_activities.to_vec())); } } + + if let Err(e) = imp.database.update_user(user.clone()).await { + glib::g_warning!( + crate::config::LOG_DOMAIN, + "Failed to update the user data due to error {e}", + ) + } } #[allow(clippy::unnecessary_unwrap)] diff --git a/src/views/view_home_page.rs b/src/views/view_home_page.rs index af1aa58..0a6afed 100644 --- a/src/views/view_home_page.rs +++ b/src/views/view_home_page.rs @@ -18,6 +18,7 @@ use crate::{ plugins::{PluginDetails, PluginName, PluginObject, PluginSummaryRow, Registrar}, + model::User, prelude::*, }; use adw::prelude::*; @@ -26,7 +27,7 @@ use std::str::FromStr; mod imp { use crate::{ - core::Settings, + core::{Settings, Database}, plugins::{PluginObject, PluginOverviewRow, PluginSummaryRow, Registrar}, prelude::*, }; @@ -41,6 +42,7 @@ mod imp { #[template(resource = "/dev/Cogitri/Health/ui/view_home_page.ui")] pub struct ViewHomePage { pub settings: Settings, + pub database: Database, #[template_child] pub stack: TemplateChild, @@ -208,6 +210,13 @@ impl ViewHomePage { self.imp().stack.visible_child_name().unwrap().to_string() } + pub async fn get_user(&self) -> User { + let imp = self.imp(); + let user_id = imp.settings.active_user_id() as i64; + let user = &imp.database.users(Some(user_id)).await.unwrap()[0]; + user.clone() + } + pub fn is_current_plugin_enabled(&self) -> bool { let registrar = Registrar::instance(); let current_page = self.current_page(); @@ -217,20 +226,23 @@ impl ViewHomePage { .any(|p| p.name().as_ref() == current_page.as_str()) } - pub fn disable_current_plugin(&self) { + pub async fn disable_current_plugin(&self) { let imp = self.imp(); let registrar = Registrar::instance(); + let user = self.get_user().await; if let Ok(current_plugin) = PluginName::from_str(&self.current_page()) { registrar.disable_plugin(current_plugin); imp.all_data_box.set_visible(true); - imp.settings.set_enabled_plugins( - imp.settings + user.set_enabled_plugins(Some( + user .enabled_plugins() + .unwrap() .drain(..) .filter(|s| *s != current_plugin) .collect::>() - .as_slice(), + .as_slice().to_vec() + ), ); if registrar.enabled_plugins().is_empty() { imp.enabled_plugins_stack @@ -239,15 +251,16 @@ impl ViewHomePage { } } - pub fn enable_current_plugin(&self) { + pub async fn enable_current_plugin(&self) { let imp = self.imp(); let registrar = Registrar::instance(); + let user = self.get_user().await; if let Ok(current_plugin) = PluginName::from_str(&self.current_page()) { - let mut enabled_plugins = imp.settings.enabled_plugins(); + let mut enabled_plugins = user.enabled_plugins().unwrap(); enabled_plugins.push(current_plugin); registrar.enable_plugin(current_plugin); - imp.settings.set_enabled_plugins(&enabled_plugins); + user.set_enabled_plugins(Some(enabled_plugins)); imp.enabled_plugins_stack .set_visible_child_name("plugin-list"); if registrar.disabled_plugins().is_empty() { @@ -358,4 +371,4 @@ mod test { init_gtk(); ViewHomePage::new(); } -} +} \ No newline at end of file diff --git a/src/widgets/activity_type_selector.rs b/src/widgets/activity_type_selector.rs index 98a956e..d3cd28c 100644 --- a/src/widgets/activity_type_selector.rs +++ b/src/widgets/activity_type_selector.rs @@ -17,29 +17,28 @@ */ use crate::{ - model::{ActivityInfo, ActivityInfoBoxed}, + core::{Database, Settings}, + model::{ActivityInfo, ActivityInfoBoxed, ActivityType, ActivityTypeRowData}, widgets::ActivityTypeRow, }; use gtk::{ gio::{prelude::*, subclass::prelude::*}, - glib::{self, SignalHandlerId}, + glib::{self, g_warning, SignalHandlerId}, prelude::*, }; +use num_traits::cast::FromPrimitive; use std::convert::TryFrom; mod imp { use crate::{ - core::Settings, model::{ActivityInfo, ActivityInfoBoxed, ActivityType, ActivityTypeRowData}, widgets::ActivityTypeRow, }; use gtk::{ - gio, - glib::{self, g_warning}, + gio, glib, {prelude::*, subclass::prelude::*, CompositeTemplate}, }; - use num_traits::cast::FromPrimitive; - use std::{cell::RefCell, convert::TryFrom}; + use std::cell::RefCell; #[derive(Debug, CompositeTemplate)] #[template(resource = "/dev/Cogitri/Health/ui/activity_type_selector.ui")] @@ -86,40 +85,9 @@ mod imp { fn constructed(&self, obj: &Self::Type) { self.parent_constructed(obj); - let recent_activity_types = Settings::instance().recent_activity_types(); - - if !recent_activity_types.is_empty() { - self.recents_box.set_visible(true); - - for activity in recent_activity_types.iter().rev() { - if let Ok(info) = ActivityInfo::try_from(activity.as_str()) { - self.recent_activity_types_model - .append(&ActivityTypeRowData::new(info.id, &info.name)); - } else { - g_warning!(crate::config::LOG_DOMAIN, "Unknown activity {activity}!"); - } - } - let last_activity = recent_activity_types.last().unwrap().as_str(); - if let Ok(info) = ActivityInfo::try_from(last_activity) { - self.selected_activity.replace(info); - } else { - g_warning!( - crate::config::LOG_DOMAIN, - "Unknown Activity {last_activity}, falling back to walking.", - ); - } - } - - let mut i = 0; - while let Some(a) = ActivityType::from_i32(i) { - let info = ActivityInfo::from(a); - if !recent_activity_types.contains(&info.id.to_string()) { - self.activity_types_model - .append(&ActivityTypeRowData::new(info.id, &info.name)); - } - - i += 1; - } + gtk_macros::spawn!(glib::clone!(@weak obj => async move { + obj.construct_activity().await; + })); let create_list_box_row = glib::clone!(@weak obj => @default-panic, move |o: &glib::Object| { let data = o.downcast_ref::().unwrap(); @@ -203,6 +171,49 @@ impl ActivityTypeSelector { self.connect_notify_local(Some("selected-activity"), move |s, _| f(s)) } + pub async fn construct_activity(&self) { + let imp = self.imp(); + let user_id = Settings::instance().active_user_id() as i64; + let user = &Database::instance().users(Some(user_id)).await.unwrap()[0]; + + let recent_activity_types = user.recent_activity_types().unwrap(); + + if !recent_activity_types.is_empty() { + imp.recents_box.set_visible(true); + + for activity in recent_activity_types.iter().rev() { + if let Ok(info) = ActivityInfo::try_from(*activity) { + imp.recent_activity_types_model + .append(&ActivityTypeRowData::new(info.id, &info.name)); + } else { + let name = activity.as_ref(); + g_warning!(crate::config::LOG_DOMAIN, "Unknown activity {name}!"); + } + } + let last_activity = recent_activity_types.last().unwrap(); + if let Ok(info) = ActivityInfo::try_from(*last_activity) { + imp.selected_activity.replace(info); + } else { + let name = last_activity.as_ref(); + g_warning!( + crate::config::LOG_DOMAIN, + "Unknown Activity {name}, falling back to walking.", + ); + } + } + + let mut i = 0; + while let Some(a) = ActivityType::from_i32(i) { + let info = ActivityInfo::from(a); + if !recent_activity_types.contains(&info.activity_type) { + imp.activity_types_model + .append(&ActivityTypeRowData::new(info.id, &info.name)); + } + + i += 1; + } + } + /// Get the currently selected [ActivityInfo]. pub fn selected_activity(&self) -> ActivityInfo { self.property::("selected-activity").0 diff --git a/src/windows/data_add_dialog.rs b/src/windows/data_add_dialog.rs index ee7210d..c7b6bf2 100644 --- a/src/windows/data_add_dialog.rs +++ b/src/windows/data_add_dialog.rs @@ -142,7 +142,7 @@ impl DataAddDialog { /// * `parent` - The [GtkWindow](gtk::Window) who is the transient parent of this dialog. pub fn new(parent: >k::Window, current_plugin: String) -> Self { glib::Object::new(&[ - ("use-header-bar", &1), + ("use-header-bar", &1.to_value()), ("transient-for", &Some(parent)), ("current-plugin", ¤t_plugin), ]) diff --git a/src/windows/export_dialog.rs b/src/windows/export_dialog.rs index 9ae8460..3b74837 100644 --- a/src/windows/export_dialog.rs +++ b/src/windows/export_dialog.rs @@ -17,7 +17,7 @@ */ use crate::core::i18n; -use gtk::glib; +use gtk::{glib, prelude::ToValue}; mod imp { use crate::{ @@ -128,7 +128,7 @@ impl ExportDialog { /// * `parent` - The [GtkWindow](gtk::Window) which is the transient parent of this dialog. pub fn new(parent: Option<>k::Window>) -> Self { glib::Object::new(&[ - ("use-header-bar", &1), + ("use-header-bar", &1.to_value()), ("title", &i18n("Export data")), ("is-import", &false), ("transient-for", &parent), diff --git a/src/windows/import_dialog.rs b/src/windows/import_dialog.rs index 62fff36..9e54ee8 100644 --- a/src/windows/import_dialog.rs +++ b/src/windows/import_dialog.rs @@ -17,7 +17,7 @@ */ use crate::core::i18n; -use gtk::glib; +use gtk::{glib, prelude::ToValue}; mod imp { use crate::{ @@ -116,7 +116,7 @@ impl ImportDialog { /// * `parent` - The [GtkWindow](gtk::Window) which is the transient parent of this dialog. pub fn new(parent: Option<>k::Window>) -> Self { glib::Object::new(&[ - ("use-header-bar", &1), + ("use-header-bar", &1.to_value()), ("is-import", &true), ("title", &i18n("Import data")), ("transient-for", &parent), diff --git a/src/windows/preferences_window.rs b/src/windows/preferences_window.rs index ca6b4b2..cd8ee18 100644 --- a/src/windows/preferences_window.rs +++ b/src/windows/preferences_window.rs @@ -18,7 +18,7 @@ use crate::{ core::UnitSystem, - model::NotificationFrequency, + model::{NotificationFrequency, User}, prelude::*, windows::{ExportDialog, ImportDialog}, }; @@ -37,30 +37,28 @@ use uom::si::{ mod imp { use crate::{ - core::{Settings, UnitSystem}, + core::{Database, Settings, UnitSystem}, model::NotificationFrequency, widgets::{BmiLevelBar, DateSelector, SyncListBox, UnitSpinButton}, }; use adw::prelude::*; use gtk::{glib, subclass::prelude::*, CompositeTemplate}; use std::{cell::Cell, str::FromStr}; - use uom::si::{ - f32::Mass, - length::{centimeter, inch}, - mass::{kilogram, pound}, - }; #[derive(Debug, CompositeTemplate)] #[template(resource = "/dev/Cogitri/Health/ui/preferences_window.ui")] pub struct PreferencesWindow { pub current_unit_system: Cell, pub settings: Settings, + pub database: Database, #[template_child] pub height_actionrow: TemplateChild, #[template_child] pub weight_goal_actionrow: TemplateChild, #[template_child] + pub user_name_entry: TemplateChild, + #[template_child] pub birthday_selector: TemplateChild, #[template_child] pub height_spin_button: TemplateChild, @@ -100,11 +98,14 @@ mod imp { fn new() -> Self { let settings = Settings::instance(); + let database = Database::instance(); Self { current_unit_system: Cell::new(settings.unit_system()), settings, + database, height_actionrow: TemplateChild::default(), weight_goal_actionrow: TemplateChild::default(), + user_name_entry: TemplateChild::default(), birthday_selector: TemplateChild::default(), height_spin_button: TemplateChild::default(), step_goal_spin_button: TemplateChild::default(), @@ -138,38 +139,10 @@ mod imp { fn constructed(&self, obj: &Self::Type) { self.parent_constructed(obj); - if self.current_unit_system.get() == UnitSystem::Metric { - self.height_spin_button - .set_value(f64::from(self.settings.user_height().get::())); - self.weight_goal_spin_button.set_value(f64::from( - self.settings - .user_weight_goal() - .unwrap_or_else(|| Mass::new::(-1.0)) - .get::(), - )); - } else { - self.height_spin_button - .set_value(f64::from(self.settings.user_height().get::())); - self.weight_goal_spin_button.set_value(f64::from( - self.settings - .user_weight_goal() - .unwrap_or_else(|| Mass::new::(-1.0)) - .get::(), - )); - } - - self.step_goal_spin_button - .set_value(f64::from(self.settings.user_step_goal())); - if let Some(date) = self.settings.user_birthday() { - self.birthday_selector.set_selected_date(date); - } - self.bmi_levelbar.set_height(self.settings.user_height()); + gtk_macros::spawn!(glib::clone!(@weak obj => async move { + obj.construct_user().await; + })); - self.bmi_levelbar.set_weight( - self.settings - .user_weight_goal() - .unwrap_or_else(|| Mass::new::(1.0)), - ); obj.setup_actions(); obj.connect_handlers(); obj.handle_enable_notify_changed(true); @@ -280,6 +253,57 @@ impl PreferencesWindow { self.insert_action_group("notification", Some(&action_group)); } + pub async fn get_user(&self) -> User { + let imp = self.imp(); + let user_id = imp.settings.active_user_id() as i64; + let user = &imp.database.users(Some(user_id)).await.unwrap()[0]; + user.clone() + } + + pub async fn construct_user(&self) { + let imp = self.imp(); + let user = self.get_user().await; + if imp.current_unit_system.get() == UnitSystem::Metric { + imp.height_spin_button.set_value(f64::from( + user.user_height() + .unwrap_or_else(|| Length::new::(-1.0)) + .get::(), + )); + imp.weight_goal_spin_button.set_value(f64::from( + user.user_weightgoal() + .unwrap_or_else(|| Mass::new::(-1.0)) + .get::(), + )); + } else { + imp.height_spin_button.set_value(f64::from( + user.user_height() + .unwrap_or_else(|| Length::new::(-1.0)) + .get::(), + )); + imp.weight_goal_spin_button.set_value(f64::from( + user.user_weightgoal() + .unwrap_or_else(|| Mass::new::(-1.0)) + .get::(), + )); + } + imp.user_name_entry + .set_text(user.user_name().unwrap_or_else(|| "".to_string()).as_str()); + imp.step_goal_spin_button + .set_value(f64::from(user.user_stepgoal().unwrap() as i32)); + if let Some(date) = user.user_birthday() { + imp.birthday_selector.set_selected_date(date); + } + imp.bmi_levelbar.set_height( + user.user_height() + .unwrap_or_else(|| Length::new::(1.0)), + ); + + imp.bmi_levelbar.set_weight( + user.user_weightgoal() + .unwrap_or_else(|| Mass::new::(1.0)), + ); + } + fn set_notification_frequency(&self, frequency: NotificationFrequency) { self.set_property("notification-frequency", frequency) } @@ -293,11 +317,36 @@ impl PreferencesWindow { })); } + pub async fn update_user(&self, user: User) { + let imp = self.imp(); + if let Err(e) = imp.database.update_user(user).await { + glib::g_warning!( + crate::config::LOG_DOMAIN, + "Failed to update the user data due to error {e}", + ) + } + } + + #[template_callback] + fn handle_user_name_entry_changed(&self) { + let imp = self.imp(); + let user_name = imp.user_name_entry.text().to_string(); + glib::MainContext::default().spawn_local(clone!(@weak self as obj => async move { + let user = obj.get_user().await; + user.set_user_name(Some(user_name.as_str())); + obj.update_user(user).await; + })); + } + #[template_callback] fn handle_birthday_selector_changed(&self) { let imp = self.imp(); - imp.settings - .set_user_birthday(imp.birthday_selector.selected_date()); + let user_birthday = imp.birthday_selector.selected_date(); + glib::MainContext::default().spawn_local(clone!(@weak self as obj => async move { + let user = obj.get_user().await; + user.set_user_birthday(Some(user_birthday)); + obj.update_user(user).await; + })); } fn handle_enable_notify_changed(&self, initializing: bool) { @@ -337,7 +386,11 @@ impl PreferencesWindow { Length::new::(val) }; - imp.settings.set_user_height(height); + glib::MainContext::default().spawn_local(clone!(@weak self as obj => async move { + let user = obj.get_user().await; + user.set_user_height(Some(height)); + obj.update_user(user).await; + })); imp.bmi_levelbar.set_height(height); } } @@ -352,7 +405,11 @@ impl PreferencesWindow { fn handle_step_goal_spin_button_changed(&self) { let imp = self.imp(); if let Some(val) = imp.step_goal_spin_button.raw_value::() { - imp.settings.set_user_step_goal(val); + glib::MainContext::default().spawn_local(clone!(@weak self as obj => async move { + let user = obj.get_user().await; + user.set_user_stepgoal(Some(val as i64)); + obj.update_user(user).await; + })); } } @@ -403,7 +460,11 @@ impl PreferencesWindow { Mass::new::(val) }; - imp.settings.set_user_weight_goal(weight); + glib::MainContext::default().spawn_local(clone!(@weak self as obj => async move { + let user = obj.get_user().await; + user.set_user_weightgoal(Some(weight)); + obj.update_user(user).await; + })); imp.bmi_levelbar.set_weight(weight); imp.bmi_levelbar .set_bmi_label(&crate::core::i18n("Target BMI")); diff --git a/src/windows/setup_window.rs b/src/windows/setup_window.rs index 8b3d525..da349c2 100644 --- a/src/windows/setup_window.rs +++ b/src/windows/setup_window.rs @@ -18,7 +18,8 @@ use crate::{ core::{i18n, UnitSystem}, - model::Weight, + model::{User, Weight}, + plugins::PluginName, prelude::*, }; use adw::prelude::*; @@ -80,6 +81,8 @@ mod imp { #[template_child] pub setup_left_stack: TemplateChild, #[template_child] + pub user_name_entry: TemplateChild, + #[template_child] pub birthday_selector: TemplateChild, #[template_child] pub height_spin_button: TemplateChild, @@ -130,6 +133,7 @@ mod imp { setup_previous_page_button: TemplateChild::default(), setup_right_stack: TemplateChild::default(), setup_left_stack: TemplateChild::default(), + user_name_entry: TemplateChild::default(), birthday_selector: TemplateChild::default(), height_spin_button: TemplateChild::default(), step_goal_spin_button: TemplateChild::default(), @@ -160,7 +164,7 @@ mod imp { fn constructed(&self, obj: &Self::Type) { self.parent_constructed(obj); - self.step_goal_spin_button.set_value(7500.0); + self.step_goal_spin_button.set_value(10000.0); obj.connect_handlers(); obj.setup_actions(); @@ -271,6 +275,57 @@ impl SetupWindow { } } + pub async fn handle_response(&self, id: gtk::ResponseType) { + if id == gtk::ResponseType::Ok { + let imp = self.imp(); + let top_unused_user_id = imp.database.get_top_unused_user_id().await.unwrap(); + + let unitless_height = imp.height_spin_button.raw_value().unwrap_or_default(); + + let height = if imp.current_unit_system.get() == UnitSystem::Metric { + imp.settings.set_unit_system(UnitSystem::Metric); + Length::new::(unitless_height) + } else { + imp.settings.set_unit_system(UnitSystem::Imperial); + Length::new::(unitless_height) + }; + + let unitless_weight_goal = imp.weight_goal_spin_button.raw_value().unwrap_or_default(); + let weight_goal = if imp.current_unit_system.get() == UnitSystem::Metric { + Mass::new::(unitless_weight_goal) + } else { + Mass::new::(unitless_weight_goal) + }; + + let mut user_builder = User::builder(); + user_builder + .user_id(top_unused_user_id) + .user_name(imp.user_name_entry.text().as_str()) + .user_birthday(imp.birthday_selector.selected_date()) + .user_height(height) + .user_weightgoal(weight_goal) + .user_stepgoal(imp.step_goal_spin_button.raw_value().unwrap_or_default()) + .enabled_plugins(vec![ + PluginName::Activities, + PluginName::Calories, + PluginName::Weight, + PluginName::Steps, + ]) + .recent_activity_types(vec![]) + .did_initial_setup(true); + + let user = user_builder.build(); + + if let Err(e) = imp.database.save_user(user).await { + glib::g_warning!( + crate::config::LOG_DOMAIN, + "Failed to save new data due to error {e}", + ) + } + imp.settings.set_active_user_id(top_unused_user_id as u32); + } + } + pub async fn add_weight(&self) { let imp = self.imp(); let unitless_weight = imp.weight_spin_button.raw_value().unwrap_or_default(); @@ -293,31 +348,8 @@ impl SetupWindow { #[template_callback] fn handle_setup_done_button_clicked(&self) { - let imp = self.imp(); - let unitless_height = imp.height_spin_button.raw_value().unwrap_or_default(); - let height = if imp.current_unit_system.get() == UnitSystem::Metric { - imp.settings.set_unit_system(UnitSystem::Metric); - Length::new::(unitless_height) - } else { - imp.settings.set_unit_system(UnitSystem::Imperial); - Length::new::(unitless_height) - }; - - imp.settings - .set_user_birthday(imp.birthday_selector.selected_date()); - imp.settings.set_user_height(height); - imp.settings - .set_user_step_goal(imp.step_goal_spin_button.raw_value().unwrap_or_default()); - - let unitless_weight_goal = imp.weight_goal_spin_button.raw_value().unwrap_or_default(); - let weight_goal = if imp.current_unit_system.get() == UnitSystem::Metric { - Mass::new::(unitless_weight_goal) - } else { - Mass::new::(unitless_weight_goal) - }; - imp.settings.set_user_weight_goal(weight_goal); - glib::MainContext::default().spawn_local(clone!(@weak self as obj => async move { + obj.handle_response(gtk::ResponseType::Ok).await; obj.add_weight().await; obj.emit_by_name::<()>("setup-done", &[]); })); diff --git a/src/windows/window.rs b/src/windows/window.rs index 767344b..fc1a456 100644 --- a/src/windows/window.rs +++ b/src/windows/window.rs @@ -30,7 +30,7 @@ use gtk_macros::action; mod imp { use crate::{ - core::{Database, Settings}, + core::Settings, views::ViewHomePage, }; use gtk::{ @@ -56,6 +56,8 @@ mod imp { #[template_child] pub add_data_button: TemplateChild, + // #[template_child] + // pub add_user_button: TemplateChild, #[template_child] pub back_button: TemplateChild, #[template_child] @@ -91,16 +93,7 @@ mod imp { fn constructed(&self, obj: &Self::Type) { self.parent_constructed(obj); - gtk_macros::spawn!(glib::clone!(@weak obj => async move { - if let Err(e) = Database::instance().migrate().await { - obj.show_error(&crate::core::i18n_f( - "Failed to migrate database to new version due to error {}", - &[&e.to_string()], - )) - } - obj.setup(); - })); - + obj.setup(); obj.setup_actions(); } } @@ -165,6 +158,11 @@ impl Window { dialog.present(); } + // #[template_callback] + // fn handle_add_user_button_clicked(&self) { + + // } + #[template_callback] fn handle_back_button_clicked(&self) { let imp = self.imp(); @@ -197,16 +195,28 @@ impl Window { false } + pub async fn disbale_plugin(&self) { + self.imp().view_home_page.disable_current_plugin().await; + } + + pub async fn enable_plugin(&self) { + self.imp().view_home_page.enable_current_plugin().await; + } + #[template_callback] fn handle_disable_current_plugin(&self) { - self.imp().view_home_page.disable_current_plugin(); + glib::MainContext::default().spawn_local(clone!(@weak self as obj => async move { + obj.disbale_plugin().await; + })); self.imp().view_home_page.back(); } #[template_callback] fn handle_enable_plugin_button_clicked(&self) { let imp = self.imp(); - imp.view_home_page.enable_current_plugin(); + glib::MainContext::default().spawn_local(clone!(@weak self as obj => async move { + obj.enable_plugin().await; + })); imp.view_home_page.back(); imp.enable_plugin_button.set_visible(false); } @@ -329,4 +339,4 @@ mod test { app.register(None::<&gio::Cancellable>).unwrap(); Window::new(&app); } -} +} \ No newline at end of file -- 2.40.1 From ba4bf70d8221367fd1e946999f847333a272d9eb Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Tue, 2 Aug 2022 12:29:02 +0200 Subject: [PATCH 36/83] Properly update ViewHomePage --- src/plugins/plugin_list.rs | 8 +++---- src/plugins/registrar.rs | 16 ++++++++------ src/views/view_home_page.rs | 44 +++++++++++++++++++++++-------------- 3 files changed, 41 insertions(+), 27 deletions(-) diff --git a/src/plugins/plugin_list.rs b/src/plugins/plugin_list.rs index 4d07637..574436b 100644 --- a/src/plugins/plugin_list.rs +++ b/src/plugins/plugin_list.rs @@ -120,12 +120,12 @@ impl PluginList { } pub fn push(&self, plugin: Box) { - let len; - { + println!("Adding plugin {}", plugin.name().as_ref()); + let len = { let mut vec = self.imp().vec.borrow_mut(); - len = vec.len(); vec.push(plugin); - } + vec.len() - 1 + }; self.items_changed(len.try_into().unwrap(), 0, 1); } diff --git a/src/plugins/registrar.rs b/src/plugins/registrar.rs index 7036efb..358aca3 100644 --- a/src/plugins/registrar.rs +++ b/src/plugins/registrar.rs @@ -1,8 +1,10 @@ static mut REGISTRAR: Option = None; use crate::{ - core::{Settings, Database}, - plugins::{Plugin, PluginList, PluginName, ActivitiesPlugin, CaloriesPlugin, StepsPlugin, WeightPlugin} + core::{Database, Settings}, + plugins::{ + ActivitiesPlugin, CaloriesPlugin, Plugin, PluginList, PluginName, StepsPlugin, WeightPlugin, + }, }; use gtk::{glib, prelude::*, subclass::prelude::*}; @@ -39,8 +41,7 @@ mod imp { self.parent_constructed(obj); gtk_macros::spawn!(glib::clone!(@weak obj => async move { obj.enabled_plugins_list().await; - println!("Requesting for plugins"); - })); + })); } } } @@ -76,7 +77,7 @@ impl Registrar { self.emit_by_name::<()>("plugins-changed", &[]); } } - + /// Connect to the `plugins-changed` signal. /// /// # Arguments @@ -112,7 +113,8 @@ impl Registrar { imp.disabled_plugins.push(plugin); } } - + + self.emit_by_name::<()>("plugins-changed", &[]); } /// Get a list of disabled [Plugin]s @@ -170,4 +172,4 @@ mod test { fn new() { Registrar::new(); } -} \ No newline at end of file +} diff --git a/src/views/view_home_page.rs b/src/views/view_home_page.rs index 0a6afed..14d32dc 100644 --- a/src/views/view_home_page.rs +++ b/src/views/view_home_page.rs @@ -17,8 +17,8 @@ */ use crate::{ - plugins::{PluginDetails, PluginName, PluginObject, PluginSummaryRow, Registrar}, model::User, + plugins::{PluginDetails, PluginName, PluginObject, PluginSummaryRow, Registrar}, prelude::*, }; use adw::prelude::*; @@ -27,7 +27,7 @@ use std::str::FromStr; mod imp { use crate::{ - core::{Settings, Database}, + core::{Database, Settings}, plugins::{PluginObject, PluginOverviewRow, PluginSummaryRow, Registrar}, prelude::*, }; @@ -134,14 +134,10 @@ mod imp { }), ); - if disabled_model.is_empty() { - self.all_data_box.set_visible(false); - } - - if enabled_model.is_empty() { - self.enabled_plugins_stack - .set_visible_child_name("no-plugins-enabled"); - } + obj.handle_registrar_plugins_changed(); + registrar.connect_plugins_updated(glib::clone!(@weak obj => move |_| { + obj.handle_registrar_plugins_changed(); + })); } } @@ -235,15 +231,14 @@ impl ViewHomePage { registrar.disable_plugin(current_plugin); imp.all_data_box.set_visible(true); user.set_enabled_plugins(Some( - user - .enabled_plugins() + user.enabled_plugins() .unwrap() .drain(..) .filter(|s| *s != current_plugin) .collect::>() - .as_slice().to_vec() - ), - ); + .as_slice() + .to_vec(), + )); if registrar.enabled_plugins().is_empty() { imp.enabled_plugins_stack .set_visible_child_name("no-plugins-enabled") @@ -359,6 +354,23 @@ impl ViewHomePage { self.emit_by_name::<()>("view-changed", &[&plugin_name.as_ref()]); list_box.unselect_all(); } + + fn handle_registrar_plugins_changed(&self) { + let imp = self.imp(); + let registrar = Registrar::instance(); + let disabled_model = registrar.disabled_plugins(); + let enabled_model = registrar.enabled_plugins(); + + imp.all_data_box.set_visible(!disabled_model.is_empty()); + + if enabled_model.is_empty() { + imp.enabled_plugins_stack + .set_visible_child_name("no-plugins-enabled"); + } else { + imp.enabled_plugins_stack + .set_visible_child_name("plugin-list") + } + } } #[cfg(test)] @@ -371,4 +383,4 @@ mod test { init_gtk(); ViewHomePage::new(); } -} \ No newline at end of file +} -- 2.40.1 From fa4e22f7fa78ee6f0a50441ebac7bb6eb65681cf Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Sun, 21 Aug 2022 12:06:03 +0200 Subject: [PATCH 37/83] Make sure Application isn't dropped while migration runs --- src/core/application.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/core/application.rs b/src/core/application.rs index ea4b920..4a7bb04 100644 --- a/src/core/application.rs +++ b/src/core/application.rs @@ -71,7 +71,14 @@ mod imp { } if self.settings.active_user_id() > 0 || self.settings.did_initial_setup() { + glib::g_info!( + crate::config::APPLICATION_ID, + "Migrating DB and starting main window..." + ); + self.settings.set_did_initial_setup(false); + // Make sure we don't exit while the migration is running because we haven't opened a window yet + obj.hold(); gtk_macros::spawn!(glib::clone!(@weak obj => async move { if let Err(e) = Database::instance().migrate().await { glib::g_warning!( @@ -83,8 +90,12 @@ mod imp { window.show(); obj.imp().window .replace(Some(glib::ObjectExt::downgrade(&window))); + // Since the window is shown now we can release the hold, the application will exit once the window is closed (if notifications are disabled) + obj.release(); })); } else { + glib::g_info!(crate::config::APPLICATION_ID, "Starting setup..."); + let setup_window = SetupWindow::new(obj); obj.hold(); -- 2.40.1 From 401fefb4301dbf6de9e6e6d934e5b6da0312bf7c Mon Sep 17 00:00:00 2001 From: Aman Kumar Date: Wed, 17 Aug 2022 17:27:21 +0530 Subject: [PATCH 38/83] WIP(multiuser): Fixed additional isuues --- build-aux/tracker-524.patch | 21 ++++ data/dev.Cogitri.Health.gschema.xml | 18 ---- data/ui/switch_user.blp | 0 data/ui/window.blp | 9 +- dev.Cogitri.Health.Devel.json | 4 + src/core/application.rs | 4 +- src/core/database.rs | 140 ++++++++++++++++++++++---- src/model/user.rs | 2 +- src/plugins/calories/data_provider.rs | 4 +- src/plugins/registrar.rs | 8 +- src/plugins/steps/details.rs | 4 +- src/plugins/steps/summary.rs | 4 +- src/plugins/weight/details.rs | 4 +- src/views/view_add_activity.rs | 4 +- src/views/view_home_page.rs | 4 +- src/widgets/activity_type_selector.rs | 4 +- src/windows/preferences_window.rs | 4 +- src/windows/window.rs | 11 +- 18 files changed, 177 insertions(+), 72 deletions(-) create mode 100644 build-aux/tracker-524.patch create mode 100644 data/ui/switch_user.blp diff --git a/build-aux/tracker-524.patch b/build-aux/tracker-524.patch new file mode 100644 index 0000000..e2eb37d --- /dev/null +++ b/build-aux/tracker-524.patch @@ -0,0 +1,21 @@ + +MR https://gitlab.gnome.org/GNOME/tracker/-/merge_requests/524 backported to 3.3.x +diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c +index 6aa65c911..7e233767e 100644 +--- a/src/libtracker-data/tracker-data-update.c ++++ b/src/libtracker-data/tracker-data-update.c +@@ -3220,7 +3220,13 @@ update_resource_single (TrackerData *data, + if (!subject) + return FALSE; + } else { +- subject = tracker_data_update_ensure_resource (data, subject_str, error); ++ gchar *subject_uri; ++ ++ tracker_data_manager_expand_prefix (data->manager, ++ subject_str, NULL, NULL, ++ &subject_uri); ++ subject = tracker_data_update_ensure_resource (data, subject_uri, error); ++ g_free (subject_uri); + if (subject == 0) + return FALSE; + } \ No newline at end of file diff --git a/data/dev.Cogitri.Health.gschema.xml b/data/dev.Cogitri.Health.gschema.xml index 1afc59a..42815df 100644 --- a/data/dev.Cogitri.Health.gschema.xml +++ b/data/dev.Cogitri.Health.gschema.xml @@ -14,92 +14,74 @@ false First time setup done - [Deprecated]Whether the user has completed the setup wizard true Toggle notifications - Whether to enable notifications. ['activities', 'calories', 'steps', 'weight'] Set enabled plugins - [Deprecated]Sets all data source plugins that are enabled in Health. "00:00:00" Notification time - The time at which Health should remind the user of their step goal 'hourly' notification frequency - How frequent should the user be notified to complete their daily step-goal. [] List of recent activity types - [Deprecated]Activity types the user used recently, to be shown first in the activity types selector’s list false Google Fit Sync-Provider setup - [Deprecated]Whether Google Fit has been setup as sync provider "1970-01-01T00:00:01Z" Last sync with Google Fit - [Deprecated]The last time we synched steps, weight etc. with Google Fit 'metric' Unit system used - The unit system the user chose, e.g. for cm vs inch for height 0 User age - [Deprecated]The age of the user (deprecated). "" Absolute user age - [Deprecated]The age of the user in absolute terms (like 01/01/1970) 0 User height - [Deprecated]The height of the user. 7500 User step goal - [Deprecated]The amount of steps the user wants to reach daily. -1 User weight goal - [Deprecated]The weight the user wants to reach. -1 Window height - The height of the window. false Window maximized - Whether the window is maximized. -1 Window width - The width of the window. 0 Active User ID - The user id of the user using the platform. diff --git a/data/ui/switch_user.blp b/data/ui/switch_user.blp new file mode 100644 index 0000000..e69de29 diff --git a/data/ui/window.blp b/data/ui/window.blp index 200a6e4..f1cadc7 100644 --- a/data/ui/window.blp +++ b/data/ui/window.blp @@ -8,6 +8,13 @@ menu primary_menu { label: _("_Disable Current Plugin"); } } + + section { + item { + action: "app.switch-user"; + label: _("_Switch User"); + } + } section { item { @@ -103,4 +110,4 @@ template HealthWindow : Adw.ApplicationWindow { view-changed => handle_view_changed() swapped; } } -} +} \ No newline at end of file diff --git a/dev.Cogitri.Health.Devel.json b/dev.Cogitri.Health.Devel.json index 5d6318b..69a3b6b 100644 --- a/dev.Cogitri.Health.Devel.json +++ b/dev.Cogitri.Health.Devel.json @@ -58,6 +58,10 @@ "url": "https://download.gnome.org/sources/tracker/3.3/tracker-3.3.2.tar.xz", "sha512": "2009c7a9b82fd278e38bc71cb41ef1fccb23493bd84a71456c7568ed7a025ce68bab689b8f14b8008479a203a5fdc02acea1862f4f482467ed5c295bde3d4ad8" }, + { + "type": "patch", + "path": "build-aux/tracker-524.patch" + }, { "type": "patch", "path": "build-aux/tracker-529.patch" diff --git a/src/core/application.rs b/src/core/application.rs index 4a7bb04..9ad0d92 100644 --- a/src/core/application.rs +++ b/src/core/application.rs @@ -210,8 +210,8 @@ impl Application { pub async fn get_user(&self) -> User { let imp = self.imp(); - let user_id = imp.settings.active_user_id() as i64; - let user = &imp.database.users(Some(user_id)).await.unwrap()[0]; + let user_id = i64::from(imp.settings.active_user_id()); + let user = &imp.database.user(user_id).await.unwrap(); user.clone() } diff --git a/src/core/database.rs b/src/core/database.rs index 8621979..3b73b02 100644 --- a/src/core/database.rs +++ b/src/core/database.rs @@ -39,6 +39,8 @@ use uom::si::{ mass::{kilogram, Mass}, }; +use crate::core::i18n; + mod imp { use crate::core::Settings; use gtk::{ @@ -171,7 +173,7 @@ impl Database { /// An array of [Activity]s that are within the given timeframe (if set), or a [glib::Error] if querying the DB goes wrong. pub async fn activities(&self, date_opt: Option) -> Result> { let imp = self.imp(); - let user_id = imp.settings.active_user_id() as i64; + let user_id = i64::from(imp.settings.active_user_id()); let connection = imp.connection.get().unwrap(); let cursor = if let Some(date) = date_opt { @@ -248,8 +250,9 @@ impl Database { /// # Returns /// An array of [SplitBar]s that are within the given timeframe or a [glib::Error] if querying the DB goes wrong. pub async fn calories(&self, minimum_date: glib::DateTime) -> Result> { - let connection = self.imp().connection.get().unwrap(); - let user_id = self.imp().settings.active_user_id() as i64; + let imp = self.imp(); + let connection = imp.connection.get().unwrap(); + let user_id = i64::from(imp.settings.active_user_id()); let statement = connection.query_statement("SELECT ?date ?id ?calories_burned WHERE {{ ?datapoint a health:Activity ; health:activity_datetime ?date ; health:activity_id ?id ; health:calories_burned ?calories_burned ; health:activity_user_id ?user_id . FILTER (?date >= ~date^^xsd:dateTime && ?user_id = ~user^^xsd:integer) }}", None::<&gio::Cancellable>).unwrap().unwrap(); statement.bind_string("date", minimum_date.format_iso8601().unwrap().as_str()); @@ -307,10 +310,11 @@ impl Database { &self, minimum_date: glib::DateTime, ) -> Result> { - let connection = self.imp().connection.get().unwrap(); + let imp = self.imp(); + let connection = imp.connection.get().unwrap(); let mut most_frequent = Vec::new(); - let user_id = self.imp().settings.active_user_id() as i64; + let user_id = i64::from(imp.settings.active_user_id()); let statement = connection.query_statement("SELECT ?id WHERE {{ ?datapoint a health:Activity ; health:activity_datetime ?date ; health:activity_id ?id ; health:calories_burned ?calories_burned; health:activity_user_id ?user_id . FILTER (?date >= ~date^^xsd:dateTime && ?user_id = ~user^^xsd:integer) }} GROUP BY ?id ORDER BY DESC (SUM(?calories_burned))", None::<&gio::Cancellable>).unwrap().unwrap(); statement.bind_string("date", minimum_date.format_iso8601().unwrap().as_str()); statement.bind_int("user", user_id); @@ -373,7 +377,7 @@ impl Database { let imp = self.imp(); let connection = imp.connection.get().unwrap(); - let user_id = self.imp().settings.active_user_id() as i64; + let user_id = i64::from(self.imp().settings.active_user_id()); let statement = connection.query_statement("SELECT ?date ?steps WHERE {{ ?datapoint a health:Activity ; health:activity_datetime ?date ; health:steps ?steps ; health:activity_user_id ?user_id . FILTER (?date >= ~date^^xsd:dateTime && ?user_id = ~user^^xsd:integer)}} ORDER BY ?date", None::<&gio::Cancellable>).unwrap().unwrap(); statement.bind_string("date", &date.format_iso8601().unwrap()); @@ -407,7 +411,7 @@ impl Database { pub async fn todays_steps(&self) -> Result { let imp = self.imp(); let date = glib::DateTime::today(); - let user_id = self.imp().settings.active_user_id() as i64; + let user_id = i64::from(imp.settings.active_user_id()); let connection = imp.connection.get().unwrap(); let statement = connection.query_statement("SELECT SUM(?steps) WHERE {{ ?datapoint a health:Activity ; health:activity_datetime ?date ; health:steps ?steps ; health:activity_user_id ?user_id . FILTER (?date >= ~date^^xsd:dateTime && ?user_id = ~user^^xsd:integer)}}", None::<&gio::Cancellable>).unwrap().unwrap(); @@ -435,12 +439,16 @@ impl Database { let imp = self.imp(); let connection = imp.connection.get().unwrap(); + let user_id = i64::from(imp.settings.active_user_id()); let cursor = if let Some(date) = date_opt { - let statement = connection.query_statement("SELECT ?date ?weight WHERE {{ ?datapoint a health:WeightMeasurement ; health:weight_datetime ?date ; health:weight ?weight . FILTER (?date >= ~date^^xsd:dateTime)}} ORDER BY ?date", None::<&gio::Cancellable>).unwrap().unwrap(); + let statement = connection.query_statement("SELECT ?date ?weight WHERE {{ ?datapoint a health:WeightMeasurement ; health:weight_datetime ?date ; health:weight ?weight ; health:weight_user_id ?user_id . FILTER (?date >= ~date^^xsd:dateTime && ?user_id = ~user^^xsd:integer)}} ORDER BY ?date", None::<&gio::Cancellable>).unwrap().unwrap(); statement.bind_string("date", date.format_iso8601().unwrap().as_str()); + statement.bind_int("user", user_id); statement.execute_future().await? } else { - connection.query_future("SELECT ?date ?weight WHERE { ?datapoint a health:WeightMeasurement ; health:weight_datetime ?date ; health:weight ?weight . } ORDER BY ?date").await? + let statement = connection.query_statement("SELECT ?date ?weight WHERE {{ ?datapoint a health:WeightMeasurement ; health:weight_datetime ?date ; health:weight_user_id ?user_id ; health:weight ?weight . FILTER (?user_id = ~user^^xsd:integer)}} ORDER BY ?date", None::<&gio::Cancellable>).unwrap().unwrap(); + statement.bind_int("user", user_id); + statement.execute_future().await? }; let mut ret = Vec::new(); @@ -468,7 +476,8 @@ impl Database { let imp = self.imp(); let connection = imp.connection.get().unwrap(); - let statement = connection.query_statement("ASK {{ ?datapoint a health:WeightMeasurement ; health:weight_datetime ?date ; health:weight ?weight . FILTER(?date >= ~date^^xsd:dateTime && ?date < ~nextdate^^xsd:dateTime) }}", None::<&gio::Cancellable>).unwrap().unwrap(); + let user_id = i64::from(imp.settings.active_user_id()); + let statement = connection.query_statement("ASK {{ ?datapoint a health:WeightMeasurement ; health:weight_datetime ?date ; health:weight ?weight ; health:weight_user_id ?user_id . FILTER(?date >= ~date^^xsd:dateTime && ?date < ~nextdate^^xsd:dateTime && ?user_id = ~user^^xsd:integer) }}", None::<&gio::Cancellable>).unwrap().unwrap(); statement.bind_string("date", date.reset_hms().format_iso8601().unwrap().as_str()); statement.bind_string( "nextdate", @@ -479,6 +488,7 @@ impl Database { .unwrap() .as_str(), ); + statement.bind_int("user", user_id); let cursor = statement.execute_future().await?; assert!(cursor.next_future().await?); @@ -502,10 +512,12 @@ impl Database { let connection = imp.connection.get().unwrap(); let manager = imp.manager.get().unwrap(); + let user_id = i64::from(imp.settings.active_user_id()); for s in steps { let resource = tracker::Resource::new(None); resource.set_uri("rdf:type", "health:Activity"); + resource.set_int64("health:activity_user_id", user_id); resource.set_string( "health:activity_datetime", s.date.format_iso8601().unwrap().as_str(), @@ -548,10 +560,12 @@ impl Database { let connection = imp.connection.get().unwrap(); let manager = imp.manager.get().unwrap(); + let user_id = i64::from(imp.settings.active_user_id()); for w in weights { let resource = tracker::Resource::new(None); resource.set_uri("rdf:type", "health:WeightMeasurement"); + resource.set_int64("health:activity_user_id", user_id); resource.set_string( "health:weight_datetime", w.date.format_iso8601().unwrap().as_str(), @@ -572,6 +586,96 @@ impl Database { Ok(()) } + /// Get user with a particular user ID. + /// + /// # Arguments + /// * `id` - Get a user with the particular user ID. + /// + /// # Returns + /// An array of [User]s or a [User] with a particular user ID, or a [glib::Error] if querying the DB goes wrong. + pub async fn user(&self, user_id: i64) -> Result { + let imp = self.imp(); + let connection = imp.connection.get().unwrap(); + + let statement = connection.query_statement("SELECT ?user_id ?user_name ?user_birthday ?user_height ?user_weightgoal ?user_stepgoal ?enabled_plugins ?recent_activity_types ?did_initial_setup WHERE {{ ?datapoint a health:User ; health:user_id ?user_id . OPTIONAL {{ ?datapoint health:user_name ?user_name . }} OPTIONAL {{ ?datapoint health:user_birthday ?user_birthday . }} OPTIONAL {{ ?datapoint health:user_height ?user_height . }} OPTIONAL {{ ?datapoint health:user_weightgoal ?user_weightgoal . }} OPTIONAL {{ ?datapoint health:user_stepgoal ?user_stepgoal . }} OPTIONAL {{ ?datapoint health:enabled_plugins ?enabled_plugins . }} OPTIONAL {{ ?datapoint health:recent_activity_types ?recent_activity_types . }} OPTIONAL {{ ?datapoint health:did_initial_setup ?did_intitial_setup }} FILTER (?user_id = ~user_id^^xsd:integer)}}", None::<&gio::Cancellable>).unwrap().unwrap(); + statement.bind_int("user_id", user_id); + let cursor = statement.execute_future().await?; + cursor.next_future().await?; + + let mut user = User::builder(); + for i in 0..cursor.n_columns() { + match cursor.variable_name(i).unwrap().as_str() { + "user_id" => { + println!("user_id: {}", cursor.integer(i)); + user.user_id(cursor.integer(i).try_into().unwrap()); + } + "user_name" => { + println!("user_name: {}", cursor.string(i).unwrap().as_str()); + user.user_name(cursor.string(i).unwrap().as_str()); + } + "user_birthday" => { + println!("user_birthday: {}", cursor.string(i).unwrap().as_str()); + user.user_birthday(glib::DateTime::from_iso8601( + cursor.string(i).unwrap().as_str(), + None, + )?); + } + "user_height" => { + println!("height with get user: {}", cursor.double(i)); + user.user_height(Length::new::(cursor.double(i) as f32)); + } + "user_weightgoal" => { + println!("weightgoal with get user: {}", cursor.double(i)); + user.user_weightgoal(Mass::new::(cursor.double(i) as f32)); + } + "user_stepgoal" => { + println!("stepgoal with get user: {}", cursor.integer(i)); + user.user_stepgoal(cursor.integer(i).try_into().unwrap()); + } + "enabled_plugins" => { + println!("enabled_plugins: {}", cursor.string(i).unwrap().as_str()); + user.enabled_plugins( + cursor + .string(i) + .unwrap() + .as_str() + .split(',') + .filter_map(|s| PluginName::from_str(s.trim()).ok()) + .collect(), + ); + } + "recent_activity_types" => { + println!( + "recent_activity_types: {}", + cursor.string(i).unwrap().as_str() + ); + user.recent_activity_types( + cursor + .string(i) + .unwrap() + .as_str() + .split(',') + .filter_map(|s| ActivityType::from_str(s.trim()).ok()) + .collect(), + ); + } + "did_initial_setup" => { + println!("did_initial_setup with get user: {}", cursor.integer(i)); + user.did_initial_setup(cursor.is_boolean(i)); + } + _ => { + glib::g_error!( + crate::config::APPLICATION_ID, + "Unknown variable name {}", + cursor.variable_name(i).unwrap() + ); + unimplemented!(); + } + } + } + Ok(user.build()) + } + /// Get users. /// /// # Arguments @@ -579,17 +683,11 @@ impl Database { /// /// # Returns /// An array of [User]s or a [User] with a particular user ID, or a [glib::Error] if querying the DB goes wrong. - pub async fn users(&self, id_opt: Option) -> Result> { + pub async fn users(&self) -> Result> { let imp = self.imp(); let connection = imp.connection.get().unwrap(); - let cursor = if let Some(id) = id_opt { - let statement = connection.query_statement("SELECT ?user_id ?user_name ?user_birthday ?user_height ?user_weightgoal ?user_stepgoal ?enabled_plugins ?recent_activity_types ?did_initial_setup WHERE {{ ?datapoint a health:User ; health:user_id ?user_id . OPTIONAL {{ ?datapoint health:user_name ?user_name . }} OPTIONAL {{ ?datapoint health:user_birthday ?user_birthday . }} OPTIONAL {{ ?datapoint health:user_height ?user_height . }} OPTIONAL {{ ?datapoint health:user_weightgoal ?user_weightgoal . }} OPTIONAL {{ ?datapoint health:user_stepgoal ?user_stepgoal . }} OPTIONAL {{ ?datapoint health:enabled_plugins ?enabled_plugins . }} OPTIONAL {{ ?datapoint health:recent_activity_types ?recent_activity_types . }} OPTIONAL {{ ?datapoint health:did_initial_setup ?did_intitial_setup }} FILTER (?user_id = ~id^^xsd:integer)}}", None::<&gio::Cancellable>).unwrap().unwrap(); - statement.bind_int("id", id); - statement.execute_future().await? - } else { - connection.query_future("SELECT ?user_id ?user_name ?user_birthday ?user_height ?user_weightgoal ?user_stepgoal ?enabled_plugins ?recent_activity_types ?did_initial_setup WHERE {{ ?datapoint a health:User ; health:user_id ?user_id . OPTIONAL {{ ?datapoint health:user_name ?user_name . }} OPTIONAL {{ ?datapoint health:user_birthday ?user_birthday . }} OPTIONAL {{ ?datapoint health:user_height ?user_height . }} OPTIONAL {{ ?datapoint health:user_weightgoal ?user_weightgoal . }} OPTIONAL {{ ?datapoint health:user_stepgoal ?user_stepgoal . }} OPTIONAL {{ ?datapoint health:enabled_plugins ?enabled_plugins . }} OPTIONAL {{ ?datapoint health:recent_activity_types ?recent_activity_types . }} OPTIONAL {{ ?datapoint health:did_initial_setup ?did_intitial_setup }} }}").await? - }; + let cursor = connection.query_future("SELECT ?user_id ?user_name ?user_birthday ?user_height ?user_weightgoal ?user_stepgoal ?enabled_plugins ?recent_activity_types ?did_initial_setup WHERE {{ ?datapoint a health:User ; health:user_id ?user_id . OPTIONAL {{ ?datapoint health:user_name ?user_name . }} OPTIONAL {{ ?datapoint health:user_birthday ?user_birthday . }} OPTIONAL {{ ?datapoint health:user_height ?user_height . }} OPTIONAL {{ ?datapoint health:user_weightgoal ?user_weightgoal . }} OPTIONAL {{ ?datapoint health:user_stepgoal ?user_stepgoal . }} OPTIONAL {{ ?datapoint health:enabled_plugins ?enabled_plugins . }} OPTIONAL {{ ?datapoint health:recent_activity_types ?recent_activity_types . }} OPTIONAL {{ ?datapoint health:did_initial_setup ?did_intitial_setup }} }}").await?; let mut ret = Vec::new(); @@ -665,7 +763,7 @@ impl Database { pub async fn get_top_unused_user_id(&self) -> Result { if self.has_users().await? { let mut max_id = 0; - for user in self.users(None).await? { + for user in self.users().await? { if user.user_id() > max_id { max_id = user.user_id(); } @@ -696,7 +794,7 @@ impl Database { pub async fn update_user(&self, user: User) -> Result<()> { let imp = self.imp(); let connection = imp.connection.get().unwrap(); - let current_user_id = imp.settings.active_user_id() as i64; + let current_user_id = i64::from(imp.settings.active_user_id()); let resource = tracker::Resource::new(Some(format!("health:User{}", current_user_id).as_str())); resource.add_uri("rdf:type", "health:User"); @@ -1021,7 +1119,7 @@ impl Database { let mut user_builder = User::builder(); user_builder .user_id(top_unused_user_id) - .user_name("User") + .user_name(&i18n("User")) .user_birthday(datetime) .user_height(imp.settings.user_height()) .user_weightgoal(imp.settings.user_weight_goal().unwrap()) diff --git a/src/model/user.rs b/src/model/user.rs index 157a603..fab147a 100644 --- a/src/model/user.rs +++ b/src/model/user.rs @@ -1,6 +1,6 @@ /* user.rs * - * Copyright 2021-2022 Aman Kumar + * Copyright 2021-2022 Aman Kumar * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/plugins/calories/data_provider.rs b/src/plugins/calories/data_provider.rs index 4d13cf7..75cab6d 100644 --- a/src/plugins/calories/data_provider.rs +++ b/src/plugins/calories/data_provider.rs @@ -105,8 +105,8 @@ impl GraphModelCalories { } Ok(v) => v, }; - let user_id = self.settings.active_user_id() as i64; - let user = &self.database.users(Some(user_id)).await.unwrap()[0]; + let user_id = i64::from(self.settings.active_user_id()); + let user = &self.database.user(user_id).await.unwrap(); let weight = weights .last() .map_or_else(|| Mass::new::(0.0), |w| w.weight) diff --git a/src/plugins/registrar.rs b/src/plugins/registrar.rs index 358aca3..3af8269 100644 --- a/src/plugins/registrar.rs +++ b/src/plugins/registrar.rs @@ -40,7 +40,7 @@ mod imp { fn constructed(&self, obj: &Self::Type) { self.parent_constructed(obj); gtk_macros::spawn!(glib::clone!(@weak obj => async move { - obj.enabled_plugins_list().await; + obj.load_plugins().await; })); } } @@ -96,10 +96,10 @@ impl Registrar { } /// Push enabled plugins and disabled plugins. - pub async fn enabled_plugins_list(&self) -> () { + pub async fn load_plugins(&self) -> () { let imp = self.imp(); - let user_id = Settings::instance().active_user_id() as i64; - let user = &Database::instance().users(Some(user_id)).await.unwrap()[0]; + let user_id = i64::from(Settings::instance().active_user_id()); + let user = &Database::instance().user(user_id).await.unwrap(); let enabled_plugins = user.enabled_plugins().unwrap(); for plugin in [ Box::new(ActivitiesPlugin::new()) as Box, diff --git a/src/plugins/steps/details.rs b/src/plugins/steps/details.rs index 5c792d1..e5f95d4 100644 --- a/src/plugins/steps/details.rs +++ b/src/plugins/steps/details.rs @@ -191,8 +191,8 @@ impl PluginStepsDetails { .to_string()], )); - let user_id = imp.settings.active_user_id() as i64; - let user = &imp.database.users(Some(user_id)).await.unwrap()[0]; + let user_id = i64::from(imp.settings.active_user_id()); + let user = &imp.database.user(user_id).await.unwrap(); let streak_count = steps_graph_model.streak_count_today(user.user_stepgoal().unwrap_or(0) as u32); diff --git a/src/plugins/steps/summary.rs b/src/plugins/steps/summary.rs index 2155321..a568cc3 100644 --- a/src/plugins/steps/summary.rs +++ b/src/plugins/steps/summary.rs @@ -87,8 +87,8 @@ impl PluginStepsSummaryRow { pub async fn update(&self) { let imp = self.imp(); let db = Database::instance(); - let user_id = Settings::instance().active_user_id() as i64; - let user = &db.users(Some(user_id)).await.unwrap()[0]; + let user_id = i64::from(Settings::instance().active_user_id()); + let user = &db.user(user_id).await.unwrap(); let step_count = db.todays_steps().await.unwrap_or(0); let step_goal = user.user_stepgoal().unwrap_or(0) as u32; diff --git a/src/plugins/weight/details.rs b/src/plugins/weight/details.rs index 095724e..feb44bb 100644 --- a/src/plugins/weight/details.rs +++ b/src/plugins/weight/details.rs @@ -180,8 +180,8 @@ impl PluginWeightDetails { pub async fn get_user(&self) -> User { let imp = self.imp(); - let user_id = imp.settings.active_user_id() as i64; - let user = &imp.database.users(Some(user_id)).await.unwrap()[0]; + let user_id = i64::from(imp.settings.active_user_id()); + let user = &imp.database.user(user_id).await.unwrap(); user.clone() } diff --git a/src/views/view_add_activity.rs b/src/views/view_add_activity.rs index a323ce1..caccc64 100644 --- a/src/views/view_add_activity.rs +++ b/src/views/view_add_activity.rs @@ -486,8 +486,8 @@ impl ViewAddActivity { async fn save_recent_activity(&self) { let imp = self.imp(); let inner = imp.inner.borrow(); - let user_id = imp.settings.active_user_id() as i64; - let user = &imp.database.users(Some(user_id)).await.unwrap()[0]; + let user_id = i64::from(imp.settings.active_user_id()); + let user = &imp.database.user(user_id).await.unwrap(); let mut recent_activities = user.recent_activity_types().unwrap(); if !recent_activities diff --git a/src/views/view_home_page.rs b/src/views/view_home_page.rs index 14d32dc..7094772 100644 --- a/src/views/view_home_page.rs +++ b/src/views/view_home_page.rs @@ -208,8 +208,8 @@ impl ViewHomePage { pub async fn get_user(&self) -> User { let imp = self.imp(); - let user_id = imp.settings.active_user_id() as i64; - let user = &imp.database.users(Some(user_id)).await.unwrap()[0]; + let user_id = i64::from(imp.settings.active_user_id()); + let user = &imp.database.user(user_id).await.unwrap(); user.clone() } diff --git a/src/widgets/activity_type_selector.rs b/src/widgets/activity_type_selector.rs index d3cd28c..2f12371 100644 --- a/src/widgets/activity_type_selector.rs +++ b/src/widgets/activity_type_selector.rs @@ -173,8 +173,8 @@ impl ActivityTypeSelector { pub async fn construct_activity(&self) { let imp = self.imp(); - let user_id = Settings::instance().active_user_id() as i64; - let user = &Database::instance().users(Some(user_id)).await.unwrap()[0]; + let user_id = i64::from(Settings::instance().active_user_id()); + let user = &Database::instance().user(user_id).await.unwrap(); let recent_activity_types = user.recent_activity_types().unwrap(); diff --git a/src/windows/preferences_window.rs b/src/windows/preferences_window.rs index cd8ee18..0bee42d 100644 --- a/src/windows/preferences_window.rs +++ b/src/windows/preferences_window.rs @@ -255,8 +255,8 @@ impl PreferencesWindow { pub async fn get_user(&self) -> User { let imp = self.imp(); - let user_id = imp.settings.active_user_id() as i64; - let user = &imp.database.users(Some(user_id)).await.unwrap()[0]; + let user_id = i64::from(imp.settings.active_user_id()); + let user = &imp.database.user(user_id).await.unwrap(); user.clone() } diff --git a/src/windows/window.rs b/src/windows/window.rs index fc1a456..5a9d67f 100644 --- a/src/windows/window.rs +++ b/src/windows/window.rs @@ -56,8 +56,6 @@ mod imp { #[template_child] pub add_data_button: TemplateChild, - // #[template_child] - // pub add_user_button: TemplateChild, #[template_child] pub back_button: TemplateChild, #[template_child] @@ -158,11 +156,6 @@ impl Window { dialog.present(); } - // #[template_callback] - // fn handle_add_user_button_clicked(&self) { - - // } - #[template_callback] fn handle_back_button_clicked(&self) { let imp = self.imp(); @@ -195,7 +188,7 @@ impl Window { false } - pub async fn disbale_plugin(&self) { + pub async fn disable_plugin(&self) { self.imp().view_home_page.disable_current_plugin().await; } @@ -206,7 +199,7 @@ impl Window { #[template_callback] fn handle_disable_current_plugin(&self) { glib::MainContext::default().spawn_local(clone!(@weak self as obj => async move { - obj.disbale_plugin().await; + obj.disable_plugin().await; })); self.imp().view_home_page.back(); } -- 2.40.1 From bc4a180dbd8ea0d7156e2b481b43871453b8abf0 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Sun, 21 Aug 2022 15:11:48 +0200 Subject: [PATCH 39/83] Update tracker to 3.3.3 --- dev.Cogitri.Health.Devel.json | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/dev.Cogitri.Health.Devel.json b/dev.Cogitri.Health.Devel.json index 69a3b6b..8a89de7 100644 --- a/dev.Cogitri.Health.Devel.json +++ b/dev.Cogitri.Health.Devel.json @@ -1,9 +1,11 @@ { - "app-id": "dev.Cogitri.Health.Devel", + "id": "dev.Cogitri.Health.Devel", "runtime": "org.gnome.Platform", "runtime-version": "42", "sdk": "org.gnome.Sdk", - "sdk-extensions": ["org.freedesktop.Sdk.Extension.rust-stable"], + "sdk-extensions": [ + "org.freedesktop.Sdk.Extension.rust-stable" + ], "command": "dev.Cogitri.Health.Devel", "finish-args": [ "--share=network", @@ -12,7 +14,11 @@ "--socket=wayland", "--device=dri" ], - "tags": ["devel", "development", "nightly"], + "tags": [ + "devel", + "development", + "nightly" + ], "cleanup": [ "/include", "/lib/pkgconfig", @@ -29,7 +35,9 @@ ], "build-options": { "append-path": "/usr/lib/sdk/rust-stable/bin", - "build-args": ["--share=network"], + "build-args": [ + "--share=network" + ], "env": { "RUST_BACKTRACE": "1" } @@ -51,12 +59,15 @@ "name": "tracker", "buildsystem": "meson", "builddir": true, - "config-opts": ["-Dman=false", "-Dsystemd_user_services=false"], + "config-opts": [ + "-Dman=false", + "-Dsystemd_user_services=false" + ], "sources": [ { "type": "archive", - "url": "https://download.gnome.org/sources/tracker/3.3/tracker-3.3.2.tar.xz", - "sha512": "2009c7a9b82fd278e38bc71cb41ef1fccb23493bd84a71456c7568ed7a025ce68bab689b8f14b8008479a203a5fdc02acea1862f4f482467ed5c295bde3d4ad8" + "url": "https://download.gnome.org/sources/tracker/3.3/tracker-3.3.3.tar.xz", + "sha512": "0f8ad998a5de6914d1e24da1b2021967339a2e637996b3e672fe4991177e69b750cdd9eb894e5e6f5f394d991b680d40afc05b95f69171ec38278e30c9729a15" }, { "type": "patch", @@ -72,8 +83,12 @@ "name": "health", "builddir": true, "buildsystem": "meson", - "cleanup": ["/usr/"], - "config-opts": ["-Dprofile=development"], + "cleanup": [ + "/usr/" + ], + "config-opts": [ + "-Dprofile=development" + ], "sources": [ { "type": "dir", -- 2.40.1 From 910418496efdcb10e694af8f862e8eaa2911e4d9 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Sun, 21 Aug 2022 15:51:31 +0200 Subject: [PATCH 40/83] Don't use OPTIONAL for did_initial_setup due to tracker bug --- src/core/database.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/database.rs b/src/core/database.rs index 3b73b02..6e4b334 100644 --- a/src/core/database.rs +++ b/src/core/database.rs @@ -597,7 +597,7 @@ impl Database { let imp = self.imp(); let connection = imp.connection.get().unwrap(); - let statement = connection.query_statement("SELECT ?user_id ?user_name ?user_birthday ?user_height ?user_weightgoal ?user_stepgoal ?enabled_plugins ?recent_activity_types ?did_initial_setup WHERE {{ ?datapoint a health:User ; health:user_id ?user_id . OPTIONAL {{ ?datapoint health:user_name ?user_name . }} OPTIONAL {{ ?datapoint health:user_birthday ?user_birthday . }} OPTIONAL {{ ?datapoint health:user_height ?user_height . }} OPTIONAL {{ ?datapoint health:user_weightgoal ?user_weightgoal . }} OPTIONAL {{ ?datapoint health:user_stepgoal ?user_stepgoal . }} OPTIONAL {{ ?datapoint health:enabled_plugins ?enabled_plugins . }} OPTIONAL {{ ?datapoint health:recent_activity_types ?recent_activity_types . }} OPTIONAL {{ ?datapoint health:did_initial_setup ?did_intitial_setup }} FILTER (?user_id = ~user_id^^xsd:integer)}}", None::<&gio::Cancellable>).unwrap().unwrap(); + let statement = connection.query_statement("SELECT ?user_id ?user_name ?user_birthday ?user_height ?user_weightgoal ?user_stepgoal ?enabled_plugins ?recent_activity_types ?did_initial_setup WHERE {{ ?datapoint a health:User ; health:user_id ?user_id; health:did_initial_setup ?did_initial_setup . OPTIONAL {{ ?datapoint health:user_name ?user_name . }} OPTIONAL {{ ?datapoint health:user_birthday ?user_birthday . }} OPTIONAL {{ ?datapoint health:user_height ?user_height . }} OPTIONAL {{ ?datapoint health:user_weightgoal ?user_weightgoal . }} OPTIONAL {{ ?datapoint health:user_stepgoal ?user_stepgoal . }} OPTIONAL {{ ?datapoint health:enabled_plugins ?enabled_plugins . }} OPTIONAL {{ ?datapoint health:recent_activity_types ?recent_activity_types . }} FILTER (?user_id = ~user_id^^xsd:integer)}}", None::<&gio::Cancellable>).unwrap().unwrap(); statement.bind_int("user_id", user_id); let cursor = statement.execute_future().await?; cursor.next_future().await?; @@ -660,7 +660,7 @@ impl Database { ); } "did_initial_setup" => { - println!("did_initial_setup with get user: {}", cursor.integer(i)); + println!("did_initial_setup with get user: {}", cursor.is_boolean(i)); user.did_initial_setup(cursor.is_boolean(i)); } _ => { @@ -687,7 +687,7 @@ impl Database { let imp = self.imp(); let connection = imp.connection.get().unwrap(); - let cursor = connection.query_future("SELECT ?user_id ?user_name ?user_birthday ?user_height ?user_weightgoal ?user_stepgoal ?enabled_plugins ?recent_activity_types ?did_initial_setup WHERE {{ ?datapoint a health:User ; health:user_id ?user_id . OPTIONAL {{ ?datapoint health:user_name ?user_name . }} OPTIONAL {{ ?datapoint health:user_birthday ?user_birthday . }} OPTIONAL {{ ?datapoint health:user_height ?user_height . }} OPTIONAL {{ ?datapoint health:user_weightgoal ?user_weightgoal . }} OPTIONAL {{ ?datapoint health:user_stepgoal ?user_stepgoal . }} OPTIONAL {{ ?datapoint health:enabled_plugins ?enabled_plugins . }} OPTIONAL {{ ?datapoint health:recent_activity_types ?recent_activity_types . }} OPTIONAL {{ ?datapoint health:did_initial_setup ?did_intitial_setup }} }}").await?; + let cursor = connection.query_future("SELECT ?user_id ?user_name ?user_birthday ?user_height ?user_weightgoal ?user_stepgoal ?enabled_plugins ?recent_activity_types ?did_initial_setup WHERE {{ ?datapoint a health:User ; health:user_id ?user_id; health:did_initial_setup ?did_intitial_setup . OPTIONAL {{ ?datapoint health:user_name ?user_name . }} OPTIONAL {{ ?datapoint health:user_birthday ?user_birthday . }} OPTIONAL {{ ?datapoint health:user_height ?user_height . }} OPTIONAL {{ ?datapoint health:user_weightgoal ?user_weightgoal . }} OPTIONAL {{ ?datapoint health:user_stepgoal ?user_stepgoal . }} OPTIONAL {{ ?datapoint health:enabled_plugins ?enabled_plugins . }} OPTIONAL {{ ?datapoint health:recent_activity_types ?recent_activity_types . }} }}").await?; let mut ret = Vec::new(); -- 2.40.1 From f7b69b63a0deea59e2acc736502db9820f7d05e0 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Wed, 24 Aug 2022 11:15:39 +0200 Subject: [PATCH 41/83] Fix PreferencesWindow order --- data/ui/preferences_window.blp | 3 --- src/windows/preferences_window.rs | 15 ++++++++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/data/ui/preferences_window.blp b/data/ui/preferences_window.blp index cc1a7b0..994ca90 100644 --- a/data/ui/preferences_window.blp +++ b/data/ui/preferences_window.blp @@ -123,7 +123,6 @@ template HealthPreferencesWindow : Adw.PreferencesWindow { text: "0"; adjustment: "height_adjustment"; valign: center; - changed => handle_height_spin_button_changed() swapped; } } } @@ -185,7 +184,6 @@ template HealthPreferencesWindow : Adw.PreferencesWindow { adjustment: step_goal_adjustment; numeric: true; valign: center; - changed => handle_step_goal_spin_button_changed() swapped; } } } @@ -211,7 +209,6 @@ template HealthPreferencesWindow : Adw.PreferencesWindow { width-chars: 5; adjustment: weight_goal_adjustment; valign: center; - changed => handle_weight_goal_spin_button_changed() swapped; } } } diff --git a/src/windows/preferences_window.rs b/src/windows/preferences_window.rs index 0bee42d..7904af6 100644 --- a/src/windows/preferences_window.rs +++ b/src/windows/preferences_window.rs @@ -315,6 +315,18 @@ impl PreferencesWindow { .connect_unit_system_changed(clone!(@weak self as obj => move |_, _| { obj.handle_unit_system_changed(); })); + imp.height_spin_button + .connect_changed(clone!(@weak self as obj => move |_| { + obj.handle_height_spin_button_changed(); + })); + imp.weight_goal_spin_button + .connect_changed(clone!(@weak self as obj => move |_| { + obj.handle_weight_goal_spin_button_changed(); + })); + imp.step_goal_spin_button + .connect_changed(clone!(@weak self as obj => move |_| { + obj.handle_step_goal_spin_button_changed(); + })); } pub async fn update_user(&self, user: User) { @@ -376,7 +388,6 @@ impl PreferencesWindow { dialog.show(); } - #[template_callback] fn handle_height_spin_button_changed(&self) { let imp = self.imp(); if let Some(val) = imp.height_spin_button.raw_value::() { @@ -401,7 +412,6 @@ impl PreferencesWindow { dialog.show(); } - #[template_callback] fn handle_step_goal_spin_button_changed(&self) { let imp = self.imp(); if let Some(val) = imp.step_goal_spin_button.raw_value::() { @@ -450,7 +460,6 @@ impl PreferencesWindow { } } - #[template_callback] fn handle_weight_goal_spin_button_changed(&self) { let imp = self.imp(); if let Some(val) = imp.weight_goal_spin_button.raw_value::() { -- 2.40.1 From 45014147e9c9adc12e9d21a26ba411fca21facb1 Mon Sep 17 00:00:00 2001 From: Aman Kumar Date: Fri, 9 Sep 2022 23:20:30 +0530 Subject: [PATCH 42/83] refactor(user): Migrated user data from GSettings to Database --- data/ui/switch_user.blp | 0 data/ui/window.blp | 7 ------ src/core/database.rs | 41 +++++++++++-------------------- src/model/user.rs | 17 ++++++------- src/plugins/plugin_list.rs | 1 - src/plugins/registrar.rs | 2 +- src/views/view_add_activity.rs | 5 ++-- src/windows/preferences_window.rs | 11 ++++----- src/windows/window.rs | 7 ++---- 9 files changed, 31 insertions(+), 60 deletions(-) delete mode 100644 data/ui/switch_user.blp diff --git a/data/ui/switch_user.blp b/data/ui/switch_user.blp deleted file mode 100644 index e69de29..0000000 diff --git a/data/ui/window.blp b/data/ui/window.blp index f1cadc7..1331f5f 100644 --- a/data/ui/window.blp +++ b/data/ui/window.blp @@ -8,13 +8,6 @@ menu primary_menu { label: _("_Disable Current Plugin"); } } - - section { - item { - action: "app.switch-user"; - label: _("_Switch User"); - } - } section { item { diff --git a/src/core/database.rs b/src/core/database.rs index 6e4b334..14fac9d 100644 --- a/src/core/database.rs +++ b/src/core/database.rs @@ -606,34 +606,27 @@ impl Database { for i in 0..cursor.n_columns() { match cursor.variable_name(i).unwrap().as_str() { "user_id" => { - println!("user_id: {}", cursor.integer(i)); - user.user_id(cursor.integer(i).try_into().unwrap()); + user.user_id(cursor.integer(i)); } "user_name" => { - println!("user_name: {}", cursor.string(i).unwrap().as_str()); user.user_name(cursor.string(i).unwrap().as_str()); } "user_birthday" => { - println!("user_birthday: {}", cursor.string(i).unwrap().as_str()); user.user_birthday(glib::DateTime::from_iso8601( cursor.string(i).unwrap().as_str(), None, )?); } "user_height" => { - println!("height with get user: {}", cursor.double(i)); user.user_height(Length::new::(cursor.double(i) as f32)); } "user_weightgoal" => { - println!("weightgoal with get user: {}", cursor.double(i)); user.user_weightgoal(Mass::new::(cursor.double(i) as f32)); } "user_stepgoal" => { - println!("stepgoal with get user: {}", cursor.integer(i)); - user.user_stepgoal(cursor.integer(i).try_into().unwrap()); + user.user_stepgoal(cursor.integer(i)); } "enabled_plugins" => { - println!("enabled_plugins: {}", cursor.string(i).unwrap().as_str()); user.enabled_plugins( cursor .string(i) @@ -645,10 +638,6 @@ impl Database { ); } "recent_activity_types" => { - println!( - "recent_activity_types: {}", - cursor.string(i).unwrap().as_str() - ); user.recent_activity_types( cursor .string(i) @@ -660,7 +649,6 @@ impl Database { ); } "did_initial_setup" => { - println!("did_initial_setup with get user: {}", cursor.is_boolean(i)); user.did_initial_setup(cursor.is_boolean(i)); } _ => { @@ -696,7 +684,7 @@ impl Database { for i in 0..cursor.n_columns() { match cursor.variable_name(i).unwrap().as_str() { "user_id" => { - user.user_id(cursor.integer(i).try_into().unwrap()); + user.user_id(cursor.integer(i)); } "user_name" => { user.user_name(cursor.string(i).unwrap().as_str()); @@ -714,7 +702,7 @@ impl Database { user.user_weightgoal(Mass::new::(cursor.double(i) as f32)); } "user_stepgoal" => { - user.user_stepgoal(cursor.integer(i).try_into().unwrap()); + user.user_stepgoal(cursor.integer(i)); } "enabled_plugins" => { user.enabled_plugins( @@ -811,13 +799,13 @@ impl Database { .as_str(), ); if let Some(height) = user.user_height() { - resource.set_double("health:user_height", height.get::() as f64); + resource.set_double("health:user_height", f64::from(height.get::())); } if let Some(weight) = user.user_weightgoal() { resource.set_double("health:user_weightgoal", weight.get::().into()); } if let Some(stepgoal) = user.user_stepgoal() { - resource.set_int64("health:user_stepgoal", stepgoal.into()); + resource.set_int64("health:user_stepgoal", stepgoal); } if let Some(plugins) = user.enabled_plugins() { resource.set_string( @@ -864,7 +852,7 @@ impl Database { let cursor = statement.execute_future().await?; if let Ok(true) = cursor.next_future().await { - db_version = cursor.integer(0).try_into().unwrap(); + db_version = cursor.integer(0); } Ok(db_version) @@ -910,7 +898,7 @@ impl Database { let imp = self.imp(); let resource = tracker::Resource::new(Some("health")); resource.set_uri("rdf:type", "health:Version"); - resource.set_int64("health:version", DB_VERSION.into()); + resource.set_int64("health:version", DB_VERSION); let connection = imp.connection.get().unwrap(); let manager = imp.manager.get().unwrap(); @@ -1110,8 +1098,7 @@ impl Database { let datetime = if imp.settings.user_birthday().is_none() { let age: i32 = imp.settings.user_age().try_into().unwrap(); - let datetime = glib::DateTime::local().add_years(-age).unwrap(); - datetime + glib::DateTime::local().add_years(-age).unwrap() } else { imp.settings.user_birthday().unwrap() }; @@ -1123,7 +1110,7 @@ impl Database { .user_birthday(datetime) .user_height(imp.settings.user_height()) .user_weightgoal(imp.settings.user_weight_goal().unwrap()) - .user_stepgoal(imp.settings.user_step_goal() as i64) + .user_stepgoal(i64::from(imp.settings.user_step_goal())) .enabled_plugins(imp.settings.enabled_plugins()) .recent_activity_types( imp.settings @@ -1315,7 +1302,7 @@ impl Database { ); resource.set_int64( "health:activity_user_id", - imp.settings.active_user_id() as i64, + i64::from(imp.settings.active_user_id()), ); resource.set_int64( "health:activity_id", @@ -1378,7 +1365,7 @@ impl Database { resource.set_double("health:weight", weight.weight.get::().into()); resource.set_int64( "health:weight_user_id", - imp.settings.active_user_id() as i64, + i64::from(imp.settings.active_user_id()), ); let connection = imp.connection.get().unwrap(); @@ -1422,13 +1409,13 @@ impl Database { .as_str(), ); if let Some(height) = user.user_height() { - resource.set_double("health:user_height", height.get::() as f64); + resource.set_double("health:user_height", f64::from(height.get::())); } if let Some(weight) = user.user_weightgoal() { resource.set_double("health:user_weightgoal", weight.get::().into()); } if let Some(stepgoal) = user.user_stepgoal() { - resource.set_int64("health:user_stepgoal", stepgoal.into()); + resource.set_int64("health:user_stepgoal", stepgoal); } if let Some(plugins) = user.enabled_plugins() { resource.set_string( diff --git a/src/model/user.rs b/src/model/user.rs index fab147a..d820d40 100644 --- a/src/model/user.rs +++ b/src/model/user.rs @@ -38,7 +38,7 @@ mod imp { use super::{ActivityTypes, PluginNames}; use crate::{model::ActivityType, plugins::PluginName, prelude::*, sync::serialize}; use gtk::{glib, prelude::*, subclass::prelude::*}; - use std::{cell::RefCell, convert::TryInto}; + use std::cell::RefCell; use uom::si::{ f32::{Length, Mass}, length::meter, @@ -186,8 +186,8 @@ mod imp { self.inner.borrow_mut().user_id = value.get::().unwrap(); } "user-name" => { - self.inner.borrow_mut().user_name = - value.get::<&str>().unwrap().to_string().try_into().ok(); + let value = value.get::<&str>().unwrap().to_string(); + self.inner.borrow_mut().user_name = Some(value); } "user-birthday" => { let value = value.get().unwrap(); @@ -375,15 +375,12 @@ impl User { } pub fn set_enabled_plugins(&self, value: Option>) -> &Self { - self.set_property("enabled-plugins", PluginNames(value.unwrap_or(vec![]))); + self.set_property("enabled-plugins", PluginNames(value.unwrap())); self } pub fn set_recent_activity_types(&self, value: Option>) -> &Self { - self.set_property( - "recent-activity-types", - ActivityTypes(value.unwrap_or(vec![])), - ); + self.set_property("recent-activity-types", ActivityTypes(value.unwrap())); self } @@ -477,7 +474,7 @@ impl UserBuilder { } pub fn user_id(&mut self, user_id: i64) -> &mut Self { - self.user_id = Some(user_id.into()); + self.user_id = Some(user_id); self } @@ -502,7 +499,7 @@ impl UserBuilder { } pub fn user_stepgoal(&mut self, user_stepgoal: i64) -> &mut Self { - self.user_stepgoal = Some(user_stepgoal.into()); + self.user_stepgoal = Some(user_stepgoal); self } diff --git a/src/plugins/plugin_list.rs b/src/plugins/plugin_list.rs index 574436b..68d1197 100644 --- a/src/plugins/plugin_list.rs +++ b/src/plugins/plugin_list.rs @@ -120,7 +120,6 @@ impl PluginList { } pub fn push(&self, plugin: Box) { - println!("Adding plugin {}", plugin.name().as_ref()); let len = { let mut vec = self.imp().vec.borrow_mut(); vec.push(plugin); diff --git a/src/plugins/registrar.rs b/src/plugins/registrar.rs index 3af8269..2efa50b 100644 --- a/src/plugins/registrar.rs +++ b/src/plugins/registrar.rs @@ -96,7 +96,7 @@ impl Registrar { } /// Push enabled plugins and disabled plugins. - pub async fn load_plugins(&self) -> () { + pub async fn load_plugins(&self) { let imp = self.imp(); let user_id = i64::from(Settings::instance().active_user_id()); let user = &Database::instance().user(user_id).await.unwrap(); diff --git a/src/views/view_add_activity.rs b/src/views/view_add_activity.rs index caccc64..90ecad6 100644 --- a/src/views/view_add_activity.rs +++ b/src/views/view_add_activity.rs @@ -485,16 +485,15 @@ impl ViewAddActivity { async fn save_recent_activity(&self) { let imp = self.imp(); - let inner = imp.inner.borrow(); let user_id = i64::from(imp.settings.active_user_id()); let user = &imp.database.user(user_id).await.unwrap(); let mut recent_activities = user.recent_activity_types().unwrap(); if !recent_activities .iter() - .any(|s| inner.selected_activity.activity_type == *s) + .any(|s| imp.inner.borrow().selected_activity.activity_type == *s) { - recent_activities.push(inner.selected_activity.activity_type.clone()); + recent_activities.push(imp.inner.borrow().selected_activity.activity_type); if recent_activities.len() > 4 { user.set_recent_activity_types(Some( recent_activities[1..recent_activities.len()].to_vec(), diff --git a/src/windows/preferences_window.rs b/src/windows/preferences_window.rs index 7904af6..cd8291e 100644 --- a/src/windows/preferences_window.rs +++ b/src/windows/preferences_window.rs @@ -141,12 +141,11 @@ mod imp { gtk_macros::spawn!(glib::clone!(@weak obj => async move { obj.construct_user().await; + obj.setup_actions(); + obj.connect_handlers(); + obj.handle_enable_notify_changed(true); + obj.init_time_buttons(); })); - - obj.setup_actions(); - obj.connect_handlers(); - obj.handle_enable_notify_changed(true); - obj.init_time_buttons(); } fn properties() -> &'static [glib::ParamSpec] { @@ -417,7 +416,7 @@ impl PreferencesWindow { if let Some(val) = imp.step_goal_spin_button.raw_value::() { glib::MainContext::default().spawn_local(clone!(@weak self as obj => async move { let user = obj.get_user().await; - user.set_user_stepgoal(Some(val as i64)); + user.set_user_stepgoal(Some(i64::from(val))); obj.update_user(user).await; })); } diff --git a/src/windows/window.rs b/src/windows/window.rs index 5a9d67f..ada7534 100644 --- a/src/windows/window.rs +++ b/src/windows/window.rs @@ -29,10 +29,7 @@ use gtk::{ use gtk_macros::action; mod imp { - use crate::{ - core::Settings, - views::ViewHomePage, - }; + use crate::{core::Settings, views::ViewHomePage}; use gtk::{ glib::{self, SourceId}, prelude::*, @@ -332,4 +329,4 @@ mod test { app.register(None::<&gio::Cancellable>).unwrap(); Window::new(&app); } -} \ No newline at end of file +} -- 2.40.1 From 6013d006409c2cbef858ab84c930afb4078b397b Mon Sep 17 00:00:00 2001 From: Aman Kumar Date: Sat, 10 Sep 2022 17:38:23 +0530 Subject: [PATCH 43/83] refactor(user): Migrated user data from GSettings to Database --- data/dev.Cogitri.Health.gschema.xml | 2 +- src/core/application.rs | 3 +-- src/core/database.rs | 4 ++-- src/widgets/activity_type_selector.rs | 4 ++-- src/windows/setup_window.rs | 2 +- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/data/dev.Cogitri.Health.gschema.xml b/data/dev.Cogitri.Health.gschema.xml index 42815df..5b02c1a 100644 --- a/data/dev.Cogitri.Health.gschema.xml +++ b/data/dev.Cogitri.Health.gschema.xml @@ -81,7 +81,7 @@ 0 - Active User ID + Active user ID diff --git a/src/core/application.rs b/src/core/application.rs index 9ad0d92..def2fef 100644 --- a/src/core/application.rs +++ b/src/core/application.rs @@ -211,8 +211,7 @@ impl Application { pub async fn get_user(&self) -> User { let imp = self.imp(); let user_id = i64::from(imp.settings.active_user_id()); - let user = &imp.database.user(user_id).await.unwrap(); - user.clone() + imp.database.user(user_id).await.unwrap() } async fn handle_enable_notifications_changed(&self) { diff --git a/src/core/database.rs b/src/core/database.rs index 14fac9d..8cea1be 100644 --- a/src/core/database.rs +++ b/src/core/database.rs @@ -1122,7 +1122,7 @@ impl Database { .did_initial_setup(true); let user = user_builder.build(); - if let Err(e) = self.save_user(user).await { + if let Err(e) = self.create_user(user).await { glib::g_warning!( crate::config::LOG_DOMAIN, "Failed to migrate user data due to error {e}", @@ -1391,7 +1391,7 @@ impl Database { /// /// # Returns /// An error if querying the DB goes wrong. - pub async fn save_user(&self, user: User) -> Result<()> { + pub async fn create_user(&self, user: User) -> Result<()> { let imp = self.imp(); let top_user_id = self.get_top_unused_user_id().await?; let resource = tracker::Resource::new(Some(format!("health:User{}", top_user_id).as_str())); diff --git a/src/widgets/activity_type_selector.rs b/src/widgets/activity_type_selector.rs index 2f12371..d565900 100644 --- a/src/widgets/activity_type_selector.rs +++ b/src/widgets/activity_type_selector.rs @@ -86,7 +86,7 @@ mod imp { self.parent_constructed(obj); gtk_macros::spawn!(glib::clone!(@weak obj => async move { - obj.construct_activity().await; + obj.load_recent_activities().await; })); let create_list_box_row = glib::clone!(@weak obj => @default-panic, move |o: &glib::Object| { @@ -171,7 +171,7 @@ impl ActivityTypeSelector { self.connect_notify_local(Some("selected-activity"), move |s, _| f(s)) } - pub async fn construct_activity(&self) { + pub async fn load_recent_activities(&self) { let imp = self.imp(); let user_id = i64::from(Settings::instance().active_user_id()); let user = &Database::instance().user(user_id).await.unwrap(); diff --git a/src/windows/setup_window.rs b/src/windows/setup_window.rs index da349c2..5259864 100644 --- a/src/windows/setup_window.rs +++ b/src/windows/setup_window.rs @@ -316,7 +316,7 @@ impl SetupWindow { let user = user_builder.build(); - if let Err(e) = imp.database.save_user(user).await { + if let Err(e) = imp.database.create_user(user).await { glib::g_warning!( crate::config::LOG_DOMAIN, "Failed to save new data due to error {e}", -- 2.40.1 From 80435bf53b857129215f394853dbcda2681fbdc9 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Sun, 11 Sep 2022 15:53:23 +0200 Subject: [PATCH 44/83] fix(bmi_level_bar): set bmi-label during construction --- data/ui/preferences_window.blp | 1 + data/ui/setup_window.blp | 2 ++ src/windows/preferences_window.rs | 2 -- src/windows/setup_window.rs | 5 +---- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/data/ui/preferences_window.blp b/data/ui/preferences_window.blp index 994ca90..11fa9d6 100644 --- a/data/ui/preferences_window.blp +++ b/data/ui/preferences_window.blp @@ -201,6 +201,7 @@ template HealthPreferencesWindow : Adw.PreferencesWindow { .HealthBMILevelBar bmi_levelbar { valign: center; hexpand: true; + bmi-label: _("Target BMI"); } .HealthUnitSpinButton weight_goal_spin_button { diff --git a/data/ui/setup_window.blp b/data/ui/setup_window.blp index 4084f23..798719d 100644 --- a/data/ui/setup_window.blp +++ b/data/ui/setup_window.blp @@ -339,6 +339,7 @@ template HealthSetupWindow : Adw.ApplicationWindow { margin-end: 6; margin-top: 6; margin-bottom: 6; + bmi-label: _("Current BMI"); } } @@ -363,6 +364,7 @@ template HealthSetupWindow : Adw.ApplicationWindow { margin-end: 6; margin-top: 6; margin-bottom: 6; + bmi-label: _("Target BMI"); } } } diff --git a/src/windows/preferences_window.rs b/src/windows/preferences_window.rs index cd8291e..1f3597a 100644 --- a/src/windows/preferences_window.rs +++ b/src/windows/preferences_window.rs @@ -474,8 +474,6 @@ impl PreferencesWindow { obj.update_user(user).await; })); imp.bmi_levelbar.set_weight(weight); - imp.bmi_levelbar - .set_bmi_label(&crate::core::i18n("Target BMI")); } } diff --git a/src/windows/setup_window.rs b/src/windows/setup_window.rs index 5259864..5a8cee8 100644 --- a/src/windows/setup_window.rs +++ b/src/windows/setup_window.rs @@ -17,7 +17,7 @@ */ use crate::{ - core::{i18n, UnitSystem}, + core::UnitSystem, model::{User, Weight}, plugins::PluginName, prelude::*, @@ -248,9 +248,6 @@ impl SetupWindow { }; imp.current_bmi_levelbar.set_height(height); imp.target_bmi_levelbar.set_height(height); - - imp.current_bmi_levelbar.set_bmi_label(&i18n("Current BMI")); - imp.target_bmi_levelbar.set_bmi_label(&i18n("Target BMI")); } #[template_callback] -- 2.40.1 From 4a7d984b3fc173647901a2b04a958c361dfa15c9 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Sun, 11 Sep 2022 16:02:49 +0200 Subject: [PATCH 45/83] chore(clippy): fix nits --- src/core/unit_kind.rs | 1 + src/core/unit_system.rs | 1 + src/lib.rs | 1 + src/model/notification_frequency.rs | 1 + src/model/user.rs | 4 ++-- src/plugins/plugin_name.rs | 1 + src/views/bar_graph_view.rs | 2 +- 7 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/core/unit_kind.rs b/src/core/unit_kind.rs index 992294d..6ed811d 100644 --- a/src/core/unit_kind.rs +++ b/src/core/unit_kind.rs @@ -2,6 +2,7 @@ use gtk::glib; #[derive( PartialEq, + Eq, Debug, Clone, Copy, diff --git a/src/core/unit_system.rs b/src/core/unit_system.rs index 86b761a..26416e6 100644 --- a/src/core/unit_system.rs +++ b/src/core/unit_system.rs @@ -2,6 +2,7 @@ use gtk::glib; #[derive( PartialEq, + Eq, Debug, Clone, Copy, diff --git a/src/lib.rs b/src/lib.rs index dae869d..df35982 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -62,6 +62,7 @@ //! * Personally, I prefer to not `use` gtk and other GObject crates, but you do you. // We don't want default methods for all GObject types #![allow(clippy::new_without_default)] +#![allow(clippy::type_complexity)] #![warn(clippy::await_holding_refcell_ref)] #![warn(clippy::cast_lossless)] #![warn(clippy::comparison_to_empty)] diff --git a/src/model/notification_frequency.rs b/src/model/notification_frequency.rs index 193847b..59725f4 100644 --- a/src/model/notification_frequency.rs +++ b/src/model/notification_frequency.rs @@ -21,6 +21,7 @@ use gtk::glib; #[derive( PartialEq, + Eq, Debug, Clone, Copy, diff --git a/src/model/user.rs b/src/model/user.rs index d820d40..8a7b4cb 100644 --- a/src/model/user.rs +++ b/src/model/user.rs @@ -24,11 +24,11 @@ use uom::si::{ mass::kilogram, }; -#[derive(Clone, glib::Boxed, PartialEq, serde::Deserialize, serde::Serialize)] +#[derive(Clone, glib::Boxed, PartialEq, Eq, serde::Deserialize, serde::Serialize)] #[boxed_type(name = "PluginNames")] pub struct PluginNames(pub Vec); -#[derive(Clone, glib::Boxed, PartialEq, serde::Deserialize, serde::Serialize)] +#[derive(Clone, glib::Boxed, PartialEq, Eq, serde::Deserialize, serde::Serialize)] #[boxed_type(name = "ActivityTypes")] pub struct ActivityTypes(pub Vec); diff --git a/src/plugins/plugin_name.rs b/src/plugins/plugin_name.rs index 1546e97..c7e01bb 100644 --- a/src/plugins/plugin_name.rs +++ b/src/plugins/plugin_name.rs @@ -2,6 +2,7 @@ use gtk::glib; #[derive( PartialEq, + Eq, Debug, Clone, Copy, diff --git a/src/views/bar_graph_view.rs b/src/views/bar_graph_view.rs index e1106f4..6fd38ed 100644 --- a/src/views/bar_graph_view.rs +++ b/src/views/bar_graph_view.rs @@ -25,7 +25,7 @@ use gtk::{gdk, gio::subclass::prelude::*, glib, pango, prelude::*}; use std::{collections::HashMap, convert::TryInto}; /// A [Tuple] describes a single segment in a [BarGraphView] -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct Tuple { pub activity_name: String, pub calories: i64, -- 2.40.1 From 5e8537197dc3b58fb9d2871696a921e6bc943cbf Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Sun, 11 Sep 2022 17:07:33 +0200 Subject: [PATCH 46/83] chore(qa): fix nits --- po/POTFILES.in | 2 ++ src/core/application.rs | 31 ++++++++++++++++++------------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/po/POTFILES.in b/po/POTFILES.in index 4b800f2..609864c 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -55,12 +55,14 @@ src/model/activity_data_points.rs src/model/activity_info.rs src/model/activity_type.rs src/model/activity_type_row_data.rs +src/model/data_category.rs src/model/fn_boxed.rs src/model/mod.rs src/model/model_notification.rs src/model/notification_frequency.rs src/model/steps.rs src/model/unitsize.rs +src/model/user.rs src/model/weight.rs src/model/weight_change.rs src/plugins/activities/data_provider.rs diff --git a/src/core/application.rs b/src/core/application.rs index def2fef..e1806df 100644 --- a/src/core/application.rs +++ b/src/core/application.rs @@ -17,7 +17,7 @@ */ use crate::{ - core::{i18n, UnitSystem}, + core::{i18n, Database, UnitSystem}, model::{ModelNotification, User}, windows::{PreferencesWindow, Window}, }; @@ -80,18 +80,7 @@ mod imp { // Make sure we don't exit while the migration is running because we haven't opened a window yet obj.hold(); gtk_macros::spawn!(glib::clone!(@weak obj => async move { - if let Err(e) = Database::instance().migrate().await { - glib::g_warning!( - crate::config::APPLICATION_ID, - "Failed to migrate database to new version due to error {e}", - ); - } - let window = Window::new(&obj); - window.show(); - obj.imp().window - .replace(Some(glib::ObjectExt::downgrade(&window))); - // Since the window is shown now we can release the hold, the application will exit once the window is closed (if notifications are disabled) - obj.release(); + obj.create_main_window().await; })); } else { glib::g_info!(crate::config::APPLICATION_ID, "Starting setup..."); @@ -214,6 +203,22 @@ impl Application { imp.database.user(user_id).await.unwrap() } + async fn create_main_window(&self) { + if let Err(e) = Database::instance().migrate().await { + glib::g_warning!( + crate::config::APPLICATION_ID, + "Failed to migrate database to new version due to error {e}", + ); + } + let window = Window::new(self); + window.show(); + self.imp() + .window + .replace(Some(glib::ObjectExt::downgrade(&window))); + // Since the window is shown now we can release the hold, the application will exit once the window is closed (if notifications are disabled) + self.release(); + } + async fn handle_enable_notifications_changed(&self) { let imp = self.imp(); let user = self.get_user().await; -- 2.40.1 From afd6d95462f89ea159148a8d942e053d5d615111 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Tue, 13 Sep 2022 18:53:01 +0200 Subject: [PATCH 47/83] fix(database): fix migration tests --- Health.code-workspace | 6 +++--- src/core/database.rs | 7 ++++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Health.code-workspace b/Health.code-workspace index 8c31e8f..e45e3ad 100644 --- a/Health.code-workspace +++ b/Health.code-workspace @@ -22,9 +22,9 @@ }, "mesonbuild.configureOnOpen": false, "mesonbuild.buildFolder": "_build", - "mesonbuild.mesonPath": "/home/amankrx/Projects/Health/.flatpak/meson.sh", - "rust-analyzer.server.path": "/home/amankrx/Projects/Health/.flatpak/rust-analyzer.sh", - "rust-analyzer.runnables.command": "/home/amankrx/Projects/Health/.flatpak/cargo.sh", + "mesonbuild.mesonPath": "/home/rasmus/Projects/Health/.flatpak/meson.sh", + "rust-analyzer.server.path": "/home/rasmus/Projects/Health/.flatpak/rust-analyzer.sh", + "rust-analyzer.runnables.command": "/home/rasmus/Projects/Health/.flatpak/cargo.sh", "rust-analyzer.runnables.extraArgs": [ "--target-dir=_build/src" ], diff --git a/src/core/database.rs b/src/core/database.rs index 8cea1be..9983050 100644 --- a/src/core/database.rs +++ b/src/core/database.rs @@ -1498,11 +1498,10 @@ impl Database { #[cfg(test)] mod test { - use std::{cell::Cell, rc::Rc}; - use super::*; - use crate::model::ActivityType; + use crate::{core::Settings, model::ActivityType}; use num_traits::cast::ToPrimitive; + use std::{cell::Cell, rc::Rc}; use tempfile::tempdir; use uom::si::{f32::Mass, mass::kilogram}; @@ -1600,6 +1599,7 @@ mod test { let date = glib::DateTime::local(); let db = Database::new_with_store_path(data_dir.path().into()).unwrap(); let connection = db.connection(); + Settings::instance().set_user_weight_goal(Mass::new::(50.0)); let expected_activity = Activity::builder() .activity_type(ActivityType::Walking) .date(date.clone()) @@ -1658,6 +1658,7 @@ mod test { let date = glib::DateTime::local(); let db = Database::new_with_store_path(data_dir.path().into()).unwrap(); let connection = db.connection(); + Settings::instance().set_user_weight_goal(Mass::new::(50.0)); let expected_weight = Weight::new(date.clone(), Mass::new::(50.0)); let manager = db.manager(); let resource = tracker::Resource::new(None); -- 2.40.1 From 1c7cf47ab5a235bb55aad14387aca5fdbef4b9a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Goran=20Vidovi=C4=87?= Date: Tue, 13 Sep 2022 17:29:22 +0000 Subject: [PATCH 48/83] Update Croatian translation --- po/hr.po | 320 +++++++++++++++++++++++++++---------------------------- 1 file changed, 157 insertions(+), 163 deletions(-) diff --git a/po/hr.po b/po/hr.po index a2151f1..5f17131 100644 --- a/po/hr.po +++ b/po/hr.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-08-15 13:18+0000\n" -"PO-Revision-Date: 2022-08-15 17:23+0200\n" +"POT-Creation-Date: 2022-09-13 17:26+0000\n" +"PO-Revision-Date: 2022-09-13 19:28+0200\n" "Last-Translator: gogo \n" "Language-Team: Croatian \n" "Language: hr\n" @@ -23,149 +23,73 @@ msgstr "" msgid "First time setup done" msgstr "Prvo postavljanje je obavljeno" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "Treba li korisnik završiti postavljanje pomoću čarobnjaka" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "Uklj/Isklj obavijesti" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "Treba li omogućiti obavijesti." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "Postavi omogućene priključke" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "Postavlja sve podatke izvora priključaka koji su omogućeni u Zdravlju." - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "Vrijeme obavijesti" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "" -"Vrijeme u kojemu Zdravlje treba podsjetiti korisnika na njegove ciljane " -"brojeve koraka" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "učestalost obavijesti" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "" -"Koliko često korisnika treba obavještavati za ispunjavanje svoga dnevnog " -"cilja koraka." - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "Popis vrsta nedavnih aktivnosti" -#: data/dev.Cogitri.Health.gschema.xml:42 -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector’s list" -msgstr "" -"Vrste aktivnosti koje je korisnik nedavno koristio, koje se prikazuju na " -"vrhu popisa biranja vrsta aktivnosti" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "Postavljanje pružatelja usluge Google Fit sinkronizacije" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "Je li Google Fit postavljen kao pružatelj usluge sinkronizacije" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "Zadnja sinkronizacija s Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "" -"Zadnji put kad smo sinkronizirali brojeve koraka, težinu itd. s Google Fit" - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "Korišteni sustav jedinica" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "" -"Sustav jedinica koji je korisnik odabrao, npr. cenitmetri umjesto inča za " -"visinu" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "Korisnikova dob" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "Korisnikova dob (zastarjelo)." - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "Apsolutna korisnikova dob" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "Korisnikova dob u obliku datuma rođenja (npr. 01/01/1970)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "Visina korisnika" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "Visina korisnika." - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "Korisnikov ciljani broj koraka" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "Broj koraka koji korisnik želi dnevno postići." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "Korisnikova ciljana težina" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "Težina koju korisnik želi postići." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "Visina prozora" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "Visina prozora." - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "Prozor uvećan" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "Treba li prozor uvećati." - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "Širina prozora" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "Širina prozora." +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "ID aktivnog korisnika" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -319,7 +243,7 @@ msgstr "" "priključak za prikaz stvarnih podataka uživo." #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "Koraci" @@ -356,88 +280,97 @@ msgstr "Osobitosti Zdravlja" msgid "General" msgstr "Općenito" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "Korisnik" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "Sustav jedinica" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "Imperijalni" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "Metrički" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "Korisničko ime" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "Rođendan" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "Visina" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "Obavijesti" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "Omogući obavijesti" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "Učestalost" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "Vrijeme dnevnog podsjetnika" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "Ciljani broj koraka" -#: data/ui/preferences_window.blp:170 +#: data/ui/preferences_window.blp:179 msgid "7,500 steps per day are recommended." msgstr "7.500 koraka dnevno je preporučljivo." -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "Ciljana težina" -#: data/ui/preferences_window.blp:188 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "SZO preporučuje indeks tjelesne mase (BMI) od 18,5-24,9." -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "Ciljani indeks tjelesne mase (BMI)" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "Sinkronizacija" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "Pokreni sinkronizaciju s pružateljima usluga treće strane." -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "Uvoz i izvoz podataka" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "Izvezi podatke u CSV" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "Izvezi…" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "Uvezi podatke u CSV" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "Uvezi…" @@ -469,35 +402,39 @@ msgstr "Dobrodošli u Zdravlje!" msgid "Please enter some information to get setup." msgstr "Upišite osnovne informacije za postavljanje." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "Upišite svoj dnevni ciljani broj koraka." -#: data/ui/setup_window.blp:224 +#: data/ui/setup_window.blp:236 msgid "The WHO recommends 7.500 steps per day." msgstr "SZO preporučuje 7.500 koraka dnevno." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "Upišite svoju ciljanu težinu." -#: data/ui/setup_window.blp:286 +#: data/ui/setup_window.blp:298 msgid "The WHO recommends a BMI of 18.5–24.9." msgstr "SZO preporučuje indeks tjelesne mase (BMI) od 18,5–24,9." -#: data/ui/setup_window.blp:314 +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "Trenutna težina" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "Trenutačni indeks tjelesne mase (BMI)" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "Ciljana težina" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "Postavite sinkronizaciju s pružateljima usluga treće strane." -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "" @@ -587,11 +524,11 @@ msgstr "_O Zdravlju" msgid "Enable plugin" msgstr "Omogući priključk" -#: src/core/application.rs:176 +#: src/core/application.rs:189 msgid "A health tracking app for the GNOME desktop." msgstr "Aplikacija praćenja zdravlja za GNOME radno okruženje." -#: src/core/application.rs:178 +#: src/core/application.rs:191 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" @@ -599,7 +536,7 @@ msgstr "" "\n" "Milo Ivir " -#: src/core/application.rs:180 +#: src/core/application.rs:193 msgid "Websites" msgstr "Web stranica" @@ -734,18 +671,18 @@ msgstr[0] "{} potrošena kalorija danas" msgstr[1] "{} potrošene kalorije danas" msgstr[2] "{} potrošenih kalorija danas" -#: src/plugins/steps/details.rs:186 +#: src/plugins/steps/details.rs:187 msgid "Today’s steps: {}" msgstr "Današnji broj koraka: {}" -#: src/plugins/steps/details.rs:201 +#: src/plugins/steps/details.rs:206 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" "Još nemate dnevnih uspjeha. Postignite vaš ciljani broj koraka za nekoliko " "dana kako bi postigli uspjeh!" -#: src/plugins/steps/details.rs:205 +#: src/plugins/steps/details.rs:210 msgid "" "You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" @@ -760,13 +697,13 @@ msgstr[2] "" "Na dnevnom cilju ste za {} dan. Postignite vaš ciljani broj koraka danas za " "nastavak!" -#: src/plugins/steps/details.rs:213 +#: src/plugins/steps/details.rs:218 msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "" "Danas ste dostigli vaš ciljani broj koraka. Nastavite tako za postizanje " "dnevnog cilja!" -#: src/plugins/steps/details.rs:216 +#: src/plugins/steps/details.rs:221 msgid "You’re on a streak for {} day. Good job!" msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Na dnevnom cilju ste za {} dan. Bravo!" @@ -774,37 +711,37 @@ msgstr[1] "Na dnevnom cilju ste za {} dan. Bravo!" msgstr[2] "Na dnevnom cilju ste za {} dan. Bravo!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} korak {}" msgstr[1] "{} koraka {}" msgstr[2] "{} koraka {}" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "{} korak učinjen danas" msgstr[1] "{} koraka učinjena danas" msgstr[2] "{} koraka učinjena danas" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "Postignuto je {} % dnevnog ciljanog broja koraka" msgstr[1] "Postignuto je {} % dnevnog ciljanog broja koraka" msgstr[2] "Postignuto je {} % dnevnog ciljanog broja koraka" -#: src/plugins/steps/summary.rs:112 +#: src/plugins/steps/summary.rs:114 msgid "Well done! You have reached your daily step goal!" msgstr "Bravo! Postigli ste svoj dnevni ciljani broj koraka!" -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "Trenutni indeks tjelesne mase (BMI): {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} funta {}" @@ -812,18 +749,18 @@ msgstr[1] "{} funte {}" msgstr[2] "{} funta {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} kilogram {}" msgstr[1] "{} kilograma {}" msgstr[2] "{} kilograma {}" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "Nepoznat indeks tjelesne mase (BMI)" -#: src/plugins/weight/details.rs:268 +#: src/plugins/weight/details.rs:280 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -840,7 +777,7 @@ msgstr[2] "" "Vaša ciljana težina je {} funti. Dodajte početno mjerenje težine kako bi " "vidjeli koliko ste blizu zadanog cilja." -#: src/plugins/weight/details.rs:275 +#: src/plugins/weight/details.rs:287 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -857,39 +794,39 @@ msgstr[2] "" "Vaša ciljana težina je {} kilograma. Dodajte početno mjerenje težine kako bi " "vidjeli koliko ste blizu zadanog cilja." -#: src/plugins/weight/details.rs:284 +#: src/plugins/weight/details.rs:296 msgid "You’ve reached your weight goal. Great job!" msgstr "Postigli ste svoju ciljanu težinu. Bravo!" -#: src/plugins/weight/details.rs:300 +#: src/plugins/weight/details.rs:312 msgid "Your weight goal is {} pound." msgid_plural "Your weight goal is {} pounds." msgstr[0] "Vaša ciljana težina je {} funta." msgstr[1] "Vaša ciljana težina su {} funte." msgstr[2] "Vaša ciljana težina je {} funti." -#: src/plugins/weight/details.rs:305 +#: src/plugins/weight/details.rs:317 msgid "You have {} pound left to reach it." msgid_plural "You have {} pounds left to reach it." msgstr[0] "Preostala vam je {} funta za postizanje cilja." msgstr[1] "Preostale su vam {} funte za postizanje cilja." msgstr[2] "Preostalo vam je {} funti za postizanje cilja." -#: src/plugins/weight/details.rs:312 +#: src/plugins/weight/details.rs:324 msgid "Your weight goal is {} kilogram." msgid_plural "Your weight goal is {} kilograms." msgstr[0] "Vaša ciljana težina je {} kilogram." msgstr[1] "Vaša ciljana težina je {} kilograma." msgstr[2] "Vaša ciljana težina je {} kilograma." -#: src/plugins/weight/details.rs:318 +#: src/plugins/weight/details.rs:330 msgid "You have {} kilogram left to reach it" msgid_plural "You have {} kilograms left to reach it" msgstr[0] "Preostao vam je {} kilogram za postizanje cilja" msgstr[1] "Preostala su vam {} kilograma za postizanje cilja" msgstr[2] "Preostalo vam je {} kilograma za postizanje cilja" -#: src/plugins/weight/details.rs:328 +#: src/plugins/weight/details.rs:340 msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" "Ciljana težina još nije postavljena. Možete ju postaviti u osobitostima " @@ -1055,10 +992,6 @@ msgstr[0] "{} yard" msgstr[1] "{} yarda" msgstr[2] "{} yarda" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -msgid "Current BMI" -msgstr "Trenutačni indeks tjelesne mase (BMI)" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "Trenutačni indeks tjelesne mase (BMI): {}" @@ -1198,18 +1131,79 @@ msgstr "Dogodila se greška!" msgid "Close" msgstr "Zatvori" -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "Ciljani indeks tjelesne mase (BMI)" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "Neuspjelo migriranje baze podataka na novu inačicu uslijed greške {}" - #: src/windows/window.rs:267 msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "Nemoguća sinkronizacija Google Fit podataka uslijed greške: {}" +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "Treba li korisnik završiti postavljanje pomoću čarobnjaka" + +#~ msgid "Whether to enable notifications." +#~ msgstr "Treba li omogućiti obavijesti." + +#~ msgid "Sets all data source plugins that are enabled in Health." +#~ msgstr "" +#~ "Postavlja sve podatke izvora priključaka koji su omogućeni u Zdravlju." + +#~ msgid "The time at which Health should remind the user of their step goal" +#~ msgstr "" +#~ "Vrijeme u kojemu Zdravlje treba podsjetiti korisnika na njegove ciljane " +#~ "brojeve koraka" + +#~ msgid "" +#~ "How frequent should the user be notified to complete their daily step-" +#~ "goal." +#~ msgstr "" +#~ "Koliko često korisnika treba obavještavati za ispunjavanje svoga dnevnog " +#~ "cilja koraka." + +#~ msgid "" +#~ "Activity types the user used recently, to be shown first in the activity " +#~ "types selector’s list" +#~ msgstr "" +#~ "Vrste aktivnosti koje je korisnik nedavno koristio, koje se prikazuju na " +#~ "vrhu popisa biranja vrsta aktivnosti" + +#~ msgid "Whether Google Fit has been setup as sync provider" +#~ msgstr "Je li Google Fit postavljen kao pružatelj usluge sinkronizacije" + +#~ msgid "The last time we synched steps, weight etc. with Google Fit" +#~ msgstr "" +#~ "Zadnji put kad smo sinkronizirali brojeve koraka, težinu itd. s Google Fit" + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "" +#~ "Sustav jedinica koji je korisnik odabrao, npr. cenitmetri umjesto inča za " +#~ "visinu" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "Korisnikova dob (zastarjelo)." + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "Korisnikova dob u obliku datuma rođenja (npr. 01/01/1970)" + +#~ msgid "The height of the user." +#~ msgstr "Visina korisnika." + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "Broj koraka koji korisnik želi dnevno postići." + +#~ msgid "The weight the user wants to reach." +#~ msgstr "Težina koju korisnik želi postići." + +#~ msgid "The height of the window." +#~ msgstr "Visina prozora." + +#~ msgid "Whether the window is maximized." +#~ msgstr "Treba li prozor uvećati." + +#~ msgid "The width of the window." +#~ msgstr "Širina prozora." + +#~ msgid "Failed to migrate database to new version due to error {}" +#~ msgstr "" +#~ "Neuspjelo migriranje baze podataka na novu inačicu uslijed greške {}" + #~ msgid "@APPLICATION_ID@" #~ msgstr "@APPLICATION_ID@" -- 2.40.1 From 5dd0cd8e5ce10ec8a0883e843229ae623c0f00c1 Mon Sep 17 00:00:00 2001 From: Anders Jonsson Date: Tue, 13 Sep 2022 17:54:16 +0000 Subject: [PATCH 49/83] Update Swedish translation --- po/sv.po | 308 ++++++++++++++++++++++++++----------------------------- 1 file changed, 148 insertions(+), 160 deletions(-) diff --git a/po/sv.po b/po/sv.po index 243f45e..21e2d10 100644 --- a/po/sv.po +++ b/po/sv.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-24 21:36+0000\n" -"PO-Revision-Date: 2022-07-25 01:19+0200\n" +"POT-Creation-Date: 2022-09-13 17:26+0000\n" +"PO-Revision-Date: 2022-09-13 19:41+0200\n" "Last-Translator: Anders Jonsson \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -17,149 +17,79 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 3.1\n" +"X-Generator: Poedit 3.1.1\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" msgstr "Förstagångskonfigurationen är färdig" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "Huruvida användaren har slutfört konfigurationsguiden" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "Växla aviseringar" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "Huruvida aviseringar ska aktiveras." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "Ställ in aktiverade insticksmoduler" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "" -"Ställer in alla insticksmoduler för datakällor som är aktiverade i Health." - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "Aviseringstid" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "Tiden vid vilken Hälsa ska påminna användaren om sitt stegmål" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "aviseringsfrekvens" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "Hur ofta användaren ska aviseras om att slutföra sitt dagliga stegmål." - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "Lista över senaste aktivitetstyper" -#: data/dev.Cogitri.Health.gschema.xml:42 -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector’s list" -msgstr "" -"Aktivitetstyper som användaren senast använt, för att visas först i " -"vallistan för aktivitetstyper" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "Konfiguration av Google Fit-synkroniseringsleverantör" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "Huruvida Google Fit har konfigurerats som synkroniseringsleverantör" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "Senaste synkronisering med Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "Senast vi synkroniserade steg, vikt o.s.v. med Google Fit" - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "Använt enhetssystem" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "Enhetssystemet som användaren valde, t.ex. cm eller tum för höjd" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "Användarens ålder" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "Användarens ålder (föråldrat)." - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "Absolut användarålder" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "Användarens ålder i form av födelsedatum (som 1970-01-01)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "Användarens längd" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "Användarens längd." - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "Användarens stegmål" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "Antalet steg som användaren vill nå dagligen." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "Användarens målvikt" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "Vikten som användaren vill nå." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "Fönsterhöjd" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "Höjden på fönstret." - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "Fönster maximerat" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "Huruvida fönstret är maximerat." - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "Fönsterbredd" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "Bredden på fönstret." +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "Aktivt användar-ID" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -313,7 +243,7 @@ msgstr "" "Aktivera insticksmodulen för att se dina faktiska, aktuella data." #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "Steg" @@ -350,88 +280,97 @@ msgstr "Inställningar för Hälsa" msgid "General" msgstr "Allmänt" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "Användare" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "Enhetssystem" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "Brittiskt" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "Metriskt" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "Användarnamn" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "Födelsedag" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "Vikt" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "Aviseringar" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "Aktivera aviseringar" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "Frekvens" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "Daglig påminnelsetid" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "Stegmål" -#: data/ui/preferences_window.blp:170 +#: data/ui/preferences_window.blp:179 msgid "7,500 steps per day are recommended." msgstr "7 500 steg per dag rekommenderas." -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "Viktmål" -#: data/ui/preferences_window.blp:188 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "WHO rekommenderar ett BMI på 18,5-24,9." -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "Mål-BMI" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "Synkronisering" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "Starta synkronisering med tredjepartsleverantörer." -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "Importera och exportera data" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "Exportera data som CSV" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "Exportera…" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "Importera data från CSV" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "Importera…" @@ -463,35 +402,39 @@ msgstr "Välkommen till Hälsa!" msgid "Please enter some information to get setup." msgstr "Ange lite information för att konfigurera." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "Ange ditt dagliga stegmål." -#: data/ui/setup_window.blp:224 +#: data/ui/setup_window.blp:236 msgid "The WHO recommends 7.500 steps per day." msgstr "WHO rekommenderar 7 500 steg per dag." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "Ange din målvikt." -#: data/ui/setup_window.blp:286 +#: data/ui/setup_window.blp:298 msgid "The WHO recommends a BMI of 18.5–24.9." msgstr "WHO rekommenderar ett BMI på 18,5–24,9." -#: data/ui/setup_window.blp:314 +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "Aktuell vikt" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "Aktuellt BMI" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "Målvikt" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "Konfigurera synkronisering med tredjepartsleverantörer." -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "" @@ -581,11 +524,11 @@ msgstr "_Om Hälsa" msgid "Enable plugin" msgstr "Aktivera insticksmodul" -#: src/core/application.rs:176 +#: src/core/application.rs:189 msgid "A health tracking app for the GNOME desktop." msgstr "Ett hälsoobservationsprogram för GNOME-skrivbordet." -#: src/core/application.rs:178 +#: src/core/application.rs:191 msgid "translator-credits" msgstr "" "Anders Jonsson \n" @@ -594,7 +537,7 @@ msgstr "" "Skicka synpunkter om översättningen till\n" "." -#: src/core/application.rs:180 +#: src/core/application.rs:193 msgid "Websites" msgstr "Webbplatser" @@ -722,17 +665,17 @@ msgid_plural "{} calories burned today" msgstr[0] "{} kalori förbränd idag" msgstr[1] "{} kalorier förbrända idag" -#: src/plugins/steps/details.rs:186 +#: src/plugins/steps/details.rs:187 msgid "Today’s steps: {}" msgstr "Steg idag: {}" -#: src/plugins/steps/details.rs:201 +#: src/plugins/steps/details.rs:206 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" "Ingen svit än. Nå ditt stegmål flera dagar i rad för att starta en svit!" -#: src/plugins/steps/details.rs:205 +#: src/plugins/steps/details.rs:210 msgid "" "You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" @@ -742,62 +685,62 @@ msgstr[0] "" msgstr[1] "" "Du har en svit på {} dagar. Nå ditt stegmål idag för att fortsätta den!" -#: src/plugins/steps/details.rs:213 +#: src/plugins/steps/details.rs:218 msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "Du har nått ditt stegmål idag. Fortsätt för att starta en svit!" -#: src/plugins/steps/details.rs:216 +#: src/plugins/steps/details.rs:221 msgid "You’re on a streak for {} day. Good job!" msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Du har en svit på {} dag. Bra jobbat!" msgstr[1] "Du har en svit på {} dagar. Bra jobbat!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} steg {}" msgstr[1] "{} steg på {}" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "{} steg taget idag" msgstr[1] "{} steg tagna idag" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "Nått {} procent av det dagliga stegmålet" msgstr[1] "Nått {} procent av det dagliga stegmålet" -#: src/plugins/steps/summary.rs:112 +#: src/plugins/steps/summary.rs:114 msgid "Well done! You have reached your daily step goal!" msgstr "Bra jobbat! Du har nått ditt dagliga stegmål!" -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "Aktuellt BMI: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} pund {}" msgstr[1] "{} pund {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} kilogram {}" msgstr[1] "{} kilogram på {}" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "Okänt BMI" -#: src/plugins/weight/details.rs:268 +#: src/plugins/weight/details.rs:280 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -811,7 +754,7 @@ msgstr[1] "" "Din målvikt är {} pund. Lägg till en första vikt för att se hur nära du är " "att nå den." -#: src/plugins/weight/details.rs:275 +#: src/plugins/weight/details.rs:287 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -825,35 +768,35 @@ msgstr[1] "" "Din målvikt är {} kilogram. Lägg till en första vikt för att se hur nära du " "är att nå den." -#: src/plugins/weight/details.rs:284 +#: src/plugins/weight/details.rs:296 msgid "You’ve reached your weight goal. Great job!" msgstr "Du har nått din målvikt. Bra jobbat!" -#: src/plugins/weight/details.rs:300 +#: src/plugins/weight/details.rs:312 msgid "Your weight goal is {} pound." msgid_plural "Your weight goal is {} pounds." msgstr[0] "Din målvikt är {} pund." msgstr[1] "Din målvikt är {} pund." -#: src/plugins/weight/details.rs:305 +#: src/plugins/weight/details.rs:317 msgid "You have {} pound left to reach it." msgid_plural "You have {} pounds left to reach it." msgstr[0] "Du har {} pund kvar för att nå den." msgstr[1] "Du har {} pund kvar för att nå den." -#: src/plugins/weight/details.rs:312 +#: src/plugins/weight/details.rs:324 msgid "Your weight goal is {} kilogram." msgid_plural "Your weight goal is {} kilograms." msgstr[0] "Din målvikt är {} kg." msgstr[1] "Din målvikt är {} kg." -#: src/plugins/weight/details.rs:318 +#: src/plugins/weight/details.rs:330 msgid "You have {} kilogram left to reach it" msgid_plural "You have {} kilograms left to reach it" msgstr[0] "Du har {} kg kvar för att nå den." msgstr[1] "Du har {} kg kvar för att nå den." -#: src/plugins/weight/details.rs:328 +#: src/plugins/weight/details.rs:340 msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" "Ingen målvikt inställd ännu. Du kan ställa in den i inställningarna för " @@ -1013,10 +956,6 @@ msgid_plural "{} yards" msgstr[0] "{} yard" msgstr[1] "{} yard" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -msgid "Current BMI" -msgstr "Aktuellt BMI" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "Aktuellt BMI: {}" @@ -1156,16 +1095,65 @@ msgstr "Ett fel inträffade!" msgid "Close" msgstr "Stäng" -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "Mål-BMI" - -# TODO: ev kolon -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "" -"Misslyckades med att migrera databas till ny version på grund av fel {}" - #: src/windows/window.rs:267 msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "Kunde inte synkronisera Google Fit-data på grund av fel: {}" + +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "Huruvida användaren har slutfört konfigurationsguiden" + +#~ msgid "Whether to enable notifications." +#~ msgstr "Huruvida aviseringar ska aktiveras." + +#~ msgid "Sets all data source plugins that are enabled in Health." +#~ msgstr "" +#~ "Ställer in alla insticksmoduler för datakällor som är aktiverade i Health." + +#~ msgid "The time at which Health should remind the user of their step goal" +#~ msgstr "Tiden vid vilken Hälsa ska påminna användaren om sitt stegmål" + +#~ msgid "" +#~ "How frequent should the user be notified to complete their daily step-" +#~ "goal." +#~ msgstr "" +#~ "Hur ofta användaren ska aviseras om att slutföra sitt dagliga stegmål." + +#~ msgid "" +#~ "Activity types the user used recently, to be shown first in the activity " +#~ "types selector’s list" +#~ msgstr "" +#~ "Aktivitetstyper som användaren senast använt, för att visas först i " +#~ "vallistan för aktivitetstyper" + +#~ msgid "Whether Google Fit has been setup as sync provider" +#~ msgstr "Huruvida Google Fit har konfigurerats som synkroniseringsleverantör" + +#~ msgid "The last time we synched steps, weight etc. with Google Fit" +#~ msgstr "Senast vi synkroniserade steg, vikt o.s.v. med Google Fit" + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "Enhetssystemet som användaren valde, t.ex. cm eller tum för höjd" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "Användarens ålder (föråldrat)." + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "Användarens ålder i form av födelsedatum (som 1970-01-01)" + +#~ msgid "The height of the user." +#~ msgstr "Användarens längd." + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "Antalet steg som användaren vill nå dagligen." + +#~ msgid "The weight the user wants to reach." +#~ msgstr "Vikten som användaren vill nå." + +#~ msgid "The height of the window." +#~ msgstr "Höjden på fönstret." + +#~ msgid "Whether the window is maximized." +#~ msgstr "Huruvida fönstret är maximerat." + +#~ msgid "The width of the window." +#~ msgstr "Bredden på fönstret." -- 2.40.1 From 32bbc4fb0c60e6b86b661c1a48c44be23c65f064 Mon Sep 17 00:00:00 2001 From: Boyuan Yang <073plan@gmail.com> Date: Tue, 13 Sep 2022 18:09:27 +0000 Subject: [PATCH 50/83] Update Chinese (China) translation --- po/zh_CN.po | 306 +++++++++++++++++++++++++--------------------------- 1 file changed, 149 insertions(+), 157 deletions(-) diff --git a/po/zh_CN.po b/po/zh_CN.po index 57c90a8..e50293b 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -8,155 +8,88 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-08-15 18:30+0000\n" -"PO-Revision-Date: 2022-09-10 19:09+0800\n" -"Last-Translator: lumingzh \n" +"POT-Creation-Date: 2022-09-13 17:26+0000\n" +"PO-Revision-Date: 2022-09-13 14:08-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" "Language-Team: Chinese - China \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" -"X-Generator: Gtranslator 42.0\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 3.1.1\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" msgstr "首次设置完成" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "用户是否已完成设置向导" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "切换通知" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "是否启用通知。" - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "设置启用的插件" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "设置健康中已启用的所有数据源插件。" - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "通知时间" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "健康要提醒用户其步数目标的时间" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "通知频率" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "通知用户完成其每日步数目标的频率。" - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "最近活动类型列表" -#: data/dev.Cogitri.Health.gschema.xml:42 -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector’s list" -msgstr "用户最近使用的活动类型,将首先显示在活动类型选择器的列表中" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "Google Fit 同步提供程序设置" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "Google Fit 是否已设置为同步提供程序" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "上次与 Google Fit 同步" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "我们上次与 Google Fit 同步步数、体重等" - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "使用的单位制" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "用户选择的单位制,例如身高使用厘米或英寸" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "用户年龄" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "用户的年龄(已弃用)。" - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "绝对用户年龄" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "绝对的用户年龄(如 01/01/1970)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "用户身高" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "用户的身高。" - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "用户步数目标" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "用户希望每天达到的步数。" - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "用户体重目标" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "用户希望达到的体重。" - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "窗口高度" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "窗口的高度。" - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "窗口最大化" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "窗口是否最大化。" - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "窗口宽度" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "窗口的宽度。" +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "活跃用户标识" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -306,7 +239,7 @@ msgid "" msgstr "这是插件如何呈现数据的预览。启用该插件来查看您确切实时的数据。" #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "步数" @@ -343,88 +276,97 @@ msgstr "健康首选项" msgid "General" msgstr "常规" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "用户" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "单位制" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "英制" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "公制" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "用户名" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "生日" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "身高" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "通知" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "启用通知" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "频率" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "每日提醒时间" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "步数目标" -#: data/ui/preferences_window.blp:170 +#: data/ui/preferences_window.blp:179 msgid "7,500 steps per day are recommended." msgstr "推荐每天 7500 步。" -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "体重目标" -#: data/ui/preferences_window.blp:188 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "世界卫生组织建议 BMI 为 18.5-24.9。" -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "目标 BMI" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "同步" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "开始与第三方提供程序同步。" -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "导入和导出数据" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "将数据导出为 CSV" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "导出…" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "从 CSV 导入数据" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "导入…" @@ -456,35 +398,39 @@ msgstr "欢迎使用健康!" msgid "Please enter some information to get setup." msgstr "请输入一些信息以进行设置。" -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "请输入您的每日步数目标。" -#: data/ui/setup_window.blp:224 +#: data/ui/setup_window.blp:236 msgid "The WHO recommends 7.500 steps per day." msgstr "世界卫生组织建议每天 7500 步。" -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "请输入您的体重目标。" -#: data/ui/setup_window.blp:286 +#: data/ui/setup_window.blp:298 msgid "The WHO recommends a BMI of 18.5–24.9." msgstr "世界卫生组织建议 BMI 为 18.5-24.9。" -#: data/ui/setup_window.blp:314 +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "当前体重" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "当前 BMI" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "体重目标" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "设置与第三方提供程序同步。" -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "您可以从/向第三方提供程序同步步数和体重测量结果。" @@ -570,15 +516,15 @@ msgstr "关于健康(_A)" msgid "Enable plugin" msgstr "启用插件" -#: src/core/application.rs:176 +#: src/core/application.rs:189 msgid "A health tracking app for the GNOME desktop." msgstr "GNOME 桌面的健康追踪应用。" -#: src/core/application.rs:178 +#: src/core/application.rs:191 msgid "translator-credits" msgstr "D , 2021" -#: src/core/application.rs:180 +#: src/core/application.rs:193 msgid "Websites" msgstr "网站" @@ -699,72 +645,72 @@ msgid "{} calorie burned today" msgid_plural "{} calories burned today" msgstr[0] "今天消耗了 {} 卡路里" -#: src/plugins/steps/details.rs:186 +#: src/plugins/steps/details.rs:187 msgid "Today’s steps: {}" msgstr "今天的步数:{}" -#: src/plugins/steps/details.rs:201 +#: src/plugins/steps/details.rs:206 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "还没有连胜。连续几天达到您的步数目标,开始连胜!" -#: src/plugins/steps/details.rs:205 +#: src/plugins/steps/details.rs:210 msgid "" "You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" "You’re on a streak for {} days. Reach your step goal today to continue it!" msgstr[0] "您已经连胜 {} 天。今天达到您的步数目标以继续!" -#: src/plugins/steps/details.rs:213 +#: src/plugins/steps/details.rs:218 msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "您今天已经达到您的步数目标。继续以开始连胜!" -#: src/plugins/steps/details.rs:216 +#: src/plugins/steps/details.rs:221 msgid "You’re on a streak for {} day. Good job!" msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "您已经连胜 {} 天。干得好!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} 步({})" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "今天走了 {} 步" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "已达到您每日步数目标的百分之 {}" -#: src/plugins/steps/summary.rs:112 +#: src/plugins/steps/summary.rs:114 msgid "Well done! You have reached your daily step goal!" msgstr "干得好!您已达到每日步数目标!" -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "当前 BMI:{}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} 磅({})" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} 公斤({})" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "未知 BMI" -#: src/plugins/weight/details.rs:268 +#: src/plugins/weight/details.rs:280 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -774,7 +720,7 @@ msgid_plural "" msgstr[0] "" "您的体重目标是 {} 磅。添加第一个体重测量结果,看看您有多接近达到目标。" -#: src/plugins/weight/details.rs:275 +#: src/plugins/weight/details.rs:287 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -784,31 +730,31 @@ msgid_plural "" msgstr[0] "" "您的体重目标是 {} 公斤。添加第一个体重测量结果,看看您有多接近达到目标。" -#: src/plugins/weight/details.rs:284 +#: src/plugins/weight/details.rs:296 msgid "You’ve reached your weight goal. Great job!" msgstr "您已经达到了您的体重目标。干得好!" -#: src/plugins/weight/details.rs:300 +#: src/plugins/weight/details.rs:312 msgid "Your weight goal is {} pound." msgid_plural "Your weight goal is {} pounds." msgstr[0] "您的体重目标是 {} 磅。" -#: src/plugins/weight/details.rs:305 +#: src/plugins/weight/details.rs:317 msgid "You have {} pound left to reach it." msgid_plural "You have {} pounds left to reach it." msgstr[0] "您还剩 {} 磅才能达到目标。" -#: src/plugins/weight/details.rs:312 +#: src/plugins/weight/details.rs:324 msgid "Your weight goal is {} kilogram." msgid_plural "Your weight goal is {} kilograms." msgstr[0] "您的体重目标是 {} 公斤。" -#: src/plugins/weight/details.rs:318 +#: src/plugins/weight/details.rs:330 msgid "You have {} kilogram left to reach it" msgid_plural "You have {} kilograms left to reach it" msgstr[0] "您还剩 {} 公斤才能达到目标" -#: src/plugins/weight/details.rs:328 +#: src/plugins/weight/details.rs:340 msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "尚未设置体重目标。您可以在健康的首选项中进行设置。" @@ -949,10 +895,6 @@ msgid "{} yard" msgid_plural "{} yards" msgstr[0] "{} 码" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -msgid "Current BMI" -msgstr "当前 BMI" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "当前 BMI:{}" @@ -1092,18 +1034,68 @@ msgstr "发生了错误!" msgid "Close" msgstr "关闭" -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "目标 BMI" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "无法将数据库迁移到新版本,由于错误 {}" - #: src/windows/window.rs:267 msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "由于错误无法同步 Google Fit 数据:{}" +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "用户是否已完成设置向导" + +#~ msgid "Whether to enable notifications." +#~ msgstr "是否启用通知。" + +#~ msgid "Sets all data source plugins that are enabled in Health." +#~ msgstr "设置健康中已启用的所有数据源插件。" + +#~ msgid "The time at which Health should remind the user of their step goal" +#~ msgstr "健康要提醒用户其步数目标的时间" + +#~ msgid "" +#~ "How frequent should the user be notified to complete their daily step-" +#~ "goal." +#~ msgstr "通知用户完成其每日步数目标的频率。" + +#~ msgid "" +#~ "Activity types the user used recently, to be shown first in the activity " +#~ "types selector’s list" +#~ msgstr "用户最近使用的活动类型,将首先显示在活动类型选择器的列表中" + +#~ msgid "Whether Google Fit has been setup as sync provider" +#~ msgstr "Google Fit 是否已设置为同步提供程序" + +#~ msgid "The last time we synched steps, weight etc. with Google Fit" +#~ msgstr "我们上次与 Google Fit 同步步数、体重等" + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "用户选择的单位制,例如身高使用厘米或英寸" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "用户的年龄(已弃用)。" + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "绝对的用户年龄(如 01/01/1970)" + +#~ msgid "The height of the user." +#~ msgstr "用户的身高。" + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "用户希望每天达到的步数。" + +#~ msgid "The weight the user wants to reach." +#~ msgstr "用户希望达到的体重。" + +#~ msgid "The height of the window." +#~ msgstr "窗口的高度。" + +#~ msgid "Whether the window is maximized." +#~ msgstr "窗口是否最大化。" + +#~ msgid "The width of the window." +#~ msgstr "窗口的宽度。" + +#~ msgid "Failed to migrate database to new version due to error {}" +#~ msgstr "无法将数据库迁移到新版本,由于错误 {}" + #~ msgid "@APPLICATION_ID@" #~ msgstr "@APPLICATION_ID@" -- 2.40.1 From c766099f6df51be8e45846609572a82b49a655f3 Mon Sep 17 00:00:00 2001 From: Hugo Carvalho Date: Tue, 13 Sep 2022 18:54:50 +0000 Subject: [PATCH 51/83] Update Portuguese translation --- po/pt.po | 318 +++++++++++++++++++++++++++---------------------------- 1 file changed, 157 insertions(+), 161 deletions(-) diff --git a/po/pt.po b/po/pt.po index ac616cc..b4a2316 100644 --- a/po/pt.po +++ b/po/pt.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-24 21:36+0000\n" -"PO-Revision-Date: 2022-07-26 14:30+0100\n" +"POT-Creation-Date: 2022-09-13 17:26+0000\n" +"PO-Revision-Date: 2022-09-13 19:54+0100\n" "Last-Translator: Hugo Carvalho \n" "Language-Team: Portuguese \n" "Language: pt\n" @@ -22,147 +22,73 @@ msgstr "" msgid "First time setup done" msgstr "Primeira configuração concluída" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "Se o utilizador concluiu ou não o assistente de configuração" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "Ativar notificações" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "Se deve ou não ativar notificações." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "Definir plugins ativados" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "Define todos os plugins de fonte de dados que são ativados na Saúde." - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "Hora de notificação" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "" -"O momento em que a Saúde deve lembrar o utilizador do seu objetivo de passos" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "frequência de notificação" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "" -"Com que frequência o utilizador deve ser notificado para concluir o seu " -"objetivo diário de passos." - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "Lista de tipos de atividades recentes" -#: data/dev.Cogitri.Health.gschema.xml:42 -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector’s list" -msgstr "" -"Tipos de atividades que o utilizador usou recentemente, para serem mostrados " -"primeiro na lista do seletor de tipos de atividades" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "Configuração do fornecedor de sincronização Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "Se o Google Fit foi configurado como fornecedor de sincronização" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "Última sincronização com o Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "A última vez que sincronizamos etapas, peso etc. com o Google Fit" - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "Sistema de unidades usado" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "" -"O sistema de unidades que o utilizador escolhe, por exemplo, para cm vs " -"polegadas para altura" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "Idade do utilizador" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "A idade do utilizador (descontinuado)." - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "Idade absoluta do utilizador" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "A idade do utilizador em termos absolutos (como 01/01/1970)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "Altura do utilizador" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "A altura do utilizador." - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "Objetivo de passos do utilizador" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "A quantidade de passos que o utilizador deseja alcançar diariamente." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "Objetivo de peso do utilizador" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "O peso que o utilizador deseja atingir." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "Altura da janela" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "A altura da janela." - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "Janela maximizada" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "Se a janela está maximizada." - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "Largura da janela" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "A largura da janela." +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "ID do utilizador ativo" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -317,7 +243,7 @@ msgstr "" "plugin para ver os seus dados atuais." #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "Passos" @@ -354,88 +280,97 @@ msgstr "Preferências da Saúde" msgid "General" msgstr "Geral" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "Utilizador" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "Sistema de unidades" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "Imperial" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "Métrica" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "Nome de utilizador" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "Aniversário" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "Altura" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "Notificações" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "Ativar notificações" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "Frequência" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "Hora do lembrete diário" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "Objetivo de passos" -#: data/ui/preferences_window.blp:170 +#: data/ui/preferences_window.blp:179 msgid "7,500 steps per day are recommended." msgstr "São recomendados 7.500 passos por dia." -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "Objetivo de peso" -#: data/ui/preferences_window.blp:188 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "A OMS recomenda um IMC de 18.5-24.9." -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "IMC atingir" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "Sincronizar" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "Inicia a sincronização com fornecedores de terceiros." -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "Importação e exportação de dados" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "Exportar dados como CSV" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "Exportar…" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "Importar dados como CSV" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "Importar…" @@ -467,35 +402,39 @@ msgstr "Bem-vindos à Saúde!" msgid "Please enter some information to get setup." msgstr "Introduza algumas informações para fazer a configuração." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "Introduza o seu objetivo diário de passos." -#: data/ui/setup_window.blp:224 +#: data/ui/setup_window.blp:236 msgid "The WHO recommends 7.500 steps per day." msgstr "A OMS recomenda 7.500 passos por dia." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "Introduza o seu objetivo de peso." -#: data/ui/setup_window.blp:286 +#: data/ui/setup_window.blp:298 msgid "The WHO recommends a BMI of 18.5–24.9." msgstr "A OMS recomenda um IMC de 18.5-24.9." -#: data/ui/setup_window.blp:314 +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "Peso atual" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "IMC atual" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "Objetivo de peso" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "Configure a sincronização com fornecedores de terceiros." -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "" @@ -583,15 +522,15 @@ msgstr "_Acerca da Saúde" msgid "Enable plugin" msgstr "Ativar plugin" -#: src/core/application.rs:176 +#: src/core/application.rs:189 msgid "A health tracking app for the GNOME desktop." msgstr "Uma aplicação de monitorização de saúde para o ambiente GNOME." -#: src/core/application.rs:178 +#: src/core/application.rs:191 msgid "translator-credits" msgstr "Hugo Carvalho " -#: src/core/application.rs:180 +#: src/core/application.rs:193 msgid "Websites" msgstr "Websites" @@ -719,18 +658,18 @@ msgid_plural "{} calories burned today" msgstr[0] "{} Caloria queimada hoje" msgstr[1] "{} Calorias queimadas hoje" -#: src/plugins/steps/details.rs:186 +#: src/plugins/steps/details.rs:187 msgid "Today’s steps: {}" msgstr "Passos de hoje: {}" -#: src/plugins/steps/details.rs:201 +#: src/plugins/steps/details.rs:206 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" "Sem sequência ainda. Alcance o seu objetivo de passos de vários dias para " "começar uma sequência!" -#: src/plugins/steps/details.rs:205 +#: src/plugins/steps/details.rs:210 msgid "" "You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" @@ -740,63 +679,63 @@ msgstr[0] "" msgstr[1] "" "Está numa sequência de {} dias. Alcance o seu objetivo hoje para continuar!" -#: src/plugins/steps/details.rs:213 +#: src/plugins/steps/details.rs:218 msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "" "Atingiu o seu objetivo de passos hoje. Continue para começar uma sequência!" -#: src/plugins/steps/details.rs:216 +#: src/plugins/steps/details.rs:221 msgid "You’re on a streak for {} day. Good job!" msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Está numa sequência de {} dia. Bom trabalho!" msgstr[1] "Está numa sequência de {} dias. Bom trabalho!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} passo em {}" msgstr[1] "{} passos em {}" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "{} passo dado hoje" msgstr[1] "{} passos dados hoje" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "Atingido {} por cento do objetivo de passos diário" msgstr[1] "Atingidos {} por cento do objetivo de passos diário" -#: src/plugins/steps/summary.rs:112 +#: src/plugins/steps/summary.rs:114 msgid "Well done! You have reached your daily step goal!" msgstr "Muito bem! Atingiu o seu objetivo de passos diário!" -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "IMC atual: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "libra {} em {}" msgstr[1] "{} libras em {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} quilo em {}" msgstr[1] "{} quilogramas em {}" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "IMC desconhecido" -#: src/plugins/weight/details.rs:268 +#: src/plugins/weight/details.rs:280 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -810,7 +749,7 @@ msgstr[1] "" "O seu objetivo de peso é de {} libras. Adicione uma primeira medição de peso " "para ver o quão perto está de o atingir." -#: src/plugins/weight/details.rs:275 +#: src/plugins/weight/details.rs:287 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -824,35 +763,35 @@ msgstr[1] "" "O seu objetivo de peso é de {} quilogramas. Adicione uma primeira medição de " "peso para ver o quão perto está de o atingir." -#: src/plugins/weight/details.rs:284 +#: src/plugins/weight/details.rs:296 msgid "You’ve reached your weight goal. Great job!" msgstr "Atingiu o seu objetivo de peso. Bom trabalho!" -#: src/plugins/weight/details.rs:300 +#: src/plugins/weight/details.rs:312 msgid "Your weight goal is {} pound." msgid_plural "Your weight goal is {} pounds." msgstr[0] "O seu objetivo de peso é de {} libra." msgstr[1] "O seu objetivo de peso é de {} libras." -#: src/plugins/weight/details.rs:305 +#: src/plugins/weight/details.rs:317 msgid "You have {} pound left to reach it." msgid_plural "You have {} pounds left to reach it." msgstr[0] "Falta {} libra para o alcançar." msgstr[1] "Faltam {} libras para o alcançar." -#: src/plugins/weight/details.rs:312 +#: src/plugins/weight/details.rs:324 msgid "Your weight goal is {} kilogram." msgid_plural "Your weight goal is {} kilograms." msgstr[0] "O seu objetivo de peso é de {} quilograma." msgstr[1] "O seu objetivo de peso é de {} quilogramas." -#: src/plugins/weight/details.rs:318 +#: src/plugins/weight/details.rs:330 msgid "You have {} kilogram left to reach it" msgid_plural "You have {} kilograms left to reach it" msgstr[0] "Falta {} quilograma para o alcançar" msgstr[1] "Faltam {} quilogramas para o alcançar" -#: src/plugins/weight/details.rs:328 +#: src/plugins/weight/details.rs:340 msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" "Ainda não foi estabelecido nenhum objetivo de peso. Pode defini-lo nas " @@ -1016,10 +955,6 @@ msgid_plural "{} yards" msgstr[0] "{} jarda" msgstr[1] "{} jardas" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -msgid "Current BMI" -msgstr "IMC atual" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "IMC atual: {}" @@ -1159,19 +1094,80 @@ msgstr "Ocorreu um erro!" msgid "Close" msgstr "Fechar" -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "IMC atingir" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "Falha ao migrar a base de dados para a nova versão devido ao erro {}" - #: src/windows/window.rs:267 msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "" "Não foi possível sincronizar os dados do Google Fit devido a um erro: {}" +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "Se o utilizador concluiu ou não o assistente de configuração" + +#~ msgid "Whether to enable notifications." +#~ msgstr "Se deve ou não ativar notificações." + +#~ msgid "Sets all data source plugins that are enabled in Health." +#~ msgstr "" +#~ "Define todos os plugins de fonte de dados que são ativados na Saúde." + +#~ msgid "The time at which Health should remind the user of their step goal" +#~ msgstr "" +#~ "O momento em que a Saúde deve lembrar o utilizador do seu objetivo de " +#~ "passos" + +#~ msgid "" +#~ "How frequent should the user be notified to complete their daily step-" +#~ "goal." +#~ msgstr "" +#~ "Com que frequência o utilizador deve ser notificado para concluir o seu " +#~ "objetivo diário de passos." + +#~ msgid "" +#~ "Activity types the user used recently, to be shown first in the activity " +#~ "types selector’s list" +#~ msgstr "" +#~ "Tipos de atividades que o utilizador usou recentemente, para serem " +#~ "mostrados primeiro na lista do seletor de tipos de atividades" + +#~ msgid "Whether Google Fit has been setup as sync provider" +#~ msgstr "Se o Google Fit foi configurado como fornecedor de sincronização" + +#~ msgid "The last time we synched steps, weight etc. with Google Fit" +#~ msgstr "A última vez que sincronizamos etapas, peso etc. com o Google Fit" + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "" +#~ "O sistema de unidades que o utilizador escolhe, por exemplo, para cm vs " +#~ "polegadas para altura" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "A idade do utilizador (descontinuado)." + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "A idade do utilizador em termos absolutos (como 01/01/1970)" + +#~ msgid "The height of the user." +#~ msgstr "A altura do utilizador." + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "" +#~ "A quantidade de passos que o utilizador deseja alcançar diariamente." + +#~ msgid "The weight the user wants to reach." +#~ msgstr "O peso que o utilizador deseja atingir." + +#~ msgid "The height of the window." +#~ msgstr "A altura da janela." + +#~ msgid "Whether the window is maximized." +#~ msgstr "Se a janela está maximizada." + +#~ msgid "The width of the window." +#~ msgstr "A largura da janela." + +#~ msgid "Failed to migrate database to new version due to error {}" +#~ msgstr "" +#~ "Falha ao migrar a base de dados para a nova versão devido ao erro {}" + #~ msgid "@APPLICATION_ID@" #~ msgstr "@APPLICATION_ID@" -- 2.40.1 From 7701f66ac3543f88ee7113dde9c7c3294e466bfe Mon Sep 17 00:00:00 2001 From: Yuri Chornoivan Date: Tue, 13 Sep 2022 19:47:42 +0000 Subject: [PATCH 52/83] Update Ukrainian translation --- po/uk.po | 329 +++++++++++++++++++++++++++---------------------------- 1 file changed, 162 insertions(+), 167 deletions(-) diff --git a/po/uk.po b/po/uk.po index 699d804..cb72422 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-24 21:36+0000\n" -"PO-Revision-Date: 2022-07-25 22:40+0300\n" +"POT-Creation-Date: 2022-09-13 17:26+0000\n" +"PO-Revision-Date: 2022-09-13 22:47+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -23,152 +23,74 @@ msgstr "" msgid "First time setup done" msgstr "Перше налаштування виконано" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "" -"Визначає, чи заповнено користувачем усі дані у майстрі початкового " -"налаштовування" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "Увімкнути або вимкнути показ сповіщень" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "Визначає, чи слід вмикати сповіщення." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "Встановити увімкнені додатки" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "Встановлює усі додатки джерел даних, які увімкнено у «Здоров'ї“." - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "Час сповіщення" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "" -"Час, коли «Здоров'я» має нагадати користувачеві про цільову кількість кроків" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "Частота сповіщення" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "" -"Наскільки часто слід сповіщати користувача щодо потреби у виконання щоденної " -"цільової кількості кроків." - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "Список типів нещодавньої фізичної діяльності" -#: data/dev.Cogitri.Health.gschema.xml:42 -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector’s list" -msgstr "" -"Типи фізичної активності, якими було використано нещодавно, і які слід " -"показати першими у списку вибору типів фізичної активності" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "Налаштовано надавача даних Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "" -"Визначає, чи було налаштовано Google Fit як надавача даних для синхронізації" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "Остання синхронізація з Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "" -"Час останньої синхронізації даних щодо кроків, ваги та інших параметрів з " -"Google Fit" - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "Використана система одиниць" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "" -"Система одиниць користувача, наприклад сантиметри або дюйми для зросту" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "Вік користувача" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "Вік користувача (застаріле значення)." - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "Абсолютний вік користувача" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "" -"Дата народження користувача за абсолютною шкалою (наприклад 01/01/1970)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "Зріст користувача" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "Зріст користувача." - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "Цільова к-ть кроків користувача" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "Кількість кроків, які користувач хоче проходити щодня." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "Цільова вага користувача" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "Вага, якої хоче досягти користувач." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "Висота вікна" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "Висота вікна." - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "Вікно розгорнуто" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "Чи вікно розгорнуте." - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "Ширина вікна" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "Ширина вікна." +#: data/dev.Cogitri.Health.gschema.xml:84 +#| msgid "Active Minutes" +msgid "Active user ID" +msgstr "Ідентифікатор активного користувача" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -324,7 +246,7 @@ msgstr "" "переглянути справжні інтерактивні дані." #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "Кроки" @@ -362,88 +284,98 @@ msgstr "Налаштування «Здоров'я»" msgid "General" msgstr "Загальне" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "Користувач" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "Система одиниць" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "Імперська" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "Метрична" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +#| msgid "User age" +msgid "Username" +msgstr "Користувач" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "День народження" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "Зріст" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "Сповіщення" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "Увімкнути сповіщення" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "Частота" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "Час щоденного нагадування" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "Цільова к-ть кроків" -#: data/ui/preferences_window.blp:170 +#: data/ui/preferences_window.blp:179 msgid "7,500 steps per day are recommended." msgstr "Рекомендовано здійснювати по 7500 кроків на день." -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "Цільова вага" -#: data/ui/preferences_window.blp:188 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "Рекомендованим ВОЗ значенням ІМТ є від 18,5 до 24,9." -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "Цільовий ІМТ" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "Синхронізувати" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "Почати синхронізацію із даними сторонніх надавачів." -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "Імпортування та експортування даних" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "Експортувати дані як CSV" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "Експортувати…" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "Імпортувати дані з CSV" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "Імпортувати…" @@ -475,36 +407,39 @@ msgstr "Вітаємо у «Здоров'ї»!" msgid "Please enter some information to get setup." msgstr "Будь ласка, надайте певні відомості для налаштовування програми." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "Будь ласка, введіть щоденну цільову кількість кроків." -#: data/ui/setup_window.blp:224 -#| msgid "The WHO recommends 10.000 steps per day." +#: data/ui/setup_window.blp:236 msgid "The WHO recommends 7.500 steps per day." msgstr "ВОЗ рекомендовано виконувати 7500 кроків щодня." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "Будь ласка, введіть значення цільової ваги." -#: data/ui/setup_window.blp:286 +#: data/ui/setup_window.blp:298 msgid "The WHO recommends a BMI of 18.5–24.9." msgstr "Рекомендованим ВОЗ значенням ІМТ є від 18,5 до 24,9." -#: data/ui/setup_window.blp:314 +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "Поточна вага" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "Поточний ІМТ" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "Цільова вага" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "Налаштуйте синхронізацію із даними сторонніх надавачів." -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "" @@ -594,15 +529,15 @@ msgstr "_Про «Здоров'я»" msgid "Enable plugin" msgstr "Увімкнути додаток" -#: src/core/application.rs:176 +#: src/core/application.rs:189 msgid "A health tracking app for the GNOME desktop." msgstr "Програма стеження за станом здоров'я для стільниці GNOME." -#: src/core/application.rs:178 +#: src/core/application.rs:191 msgid "translator-credits" msgstr "Юрій Чорноіван , 2021" -#: src/core/application.rs:180 +#: src/core/application.rs:193 msgid "Websites" msgstr "Сайти" @@ -746,18 +681,18 @@ msgstr[1] "Сьогодні спалено {} калорії" msgstr[2] "Сьогодні спалено {} калорій" msgstr[3] "Сьогодні спалено {} калорію" -#: src/plugins/steps/details.rs:186 +#: src/plugins/steps/details.rs:187 msgid "Today’s steps: {}" msgstr "Сьогодні кроків: {}" -#: src/plugins/steps/details.rs:201 +#: src/plugins/steps/details.rs:206 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" "Поки не у формі. Виконуйте цільову кількість кроків щодня, щоб повернутися " "до форми!" -#: src/plugins/steps/details.rs:205 +#: src/plugins/steps/details.rs:210 msgid "" "You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" @@ -775,12 +710,12 @@ msgstr[3] "" "Ви у формі протягом {} дня. Виконайте сьогодні щоденну цільову кількість " "кроків, щоб продовжити перебувати у формі!" -#: src/plugins/steps/details.rs:213 +#: src/plugins/steps/details.rs:218 msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "" "Сьогодні ви досягли цільової кількості кроків. Продовжуйте, щоб бути у формі!" -#: src/plugins/steps/details.rs:216 +#: src/plugins/steps/details.rs:221 msgid "You’re on a streak for {} day. Good job!" msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Ви у формі уже {} день. Поздоровляємо!" @@ -789,7 +724,7 @@ msgstr[2] "Ви у формі уже {} днів. Поздоровляємо!" msgstr[3] "Ви у формі уже {} день. Поздоровляємо!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} крок на {}" @@ -797,7 +732,7 @@ msgstr[1] "{} кроки на {}" msgstr[2] "{} кроків на {}" msgstr[3] "{} крок на {}" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "{} крок сьогодні" @@ -805,7 +740,7 @@ msgstr[1] "{} кроки сьогодні" msgstr[2] "{} кроків сьогодні" msgstr[3] "{} крок сьогодні" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "Досягнуто {} відсотка цільової кількості кроків за день" @@ -813,16 +748,16 @@ msgstr[1] "Досягнуто {} відсотків цільової кільк msgstr[2] "Досягнуто {} відсотків цільової кількості кроків за день" msgstr[3] "Досягнуто {} відсотка цільової кількості кроків за день" -#: src/plugins/steps/summary.rs:112 +#: src/plugins/steps/summary.rs:114 msgid "Well done! You have reached your daily step goal!" msgstr "Чудово! Ви виконали свою щоденну цільову кількість кроків!" -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "Поточний ІМТ: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} фунт на {}" @@ -831,7 +766,7 @@ msgstr[2] "{} фунтів на {}" msgstr[3] "{} фунт на {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} кг на {}" @@ -839,11 +774,11 @@ msgstr[1] "{} кг на {}" msgstr[2] "{} кг на {}" msgstr[3] "{} кг на {}" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "Невідомий ІМТ" -#: src/plugins/weight/details.rs:268 +#: src/plugins/weight/details.rs:280 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -863,7 +798,7 @@ msgstr[3] "" "Вашою цільовою вагою є {} фунт. Додайте перший вимір ваги, щоб побачити, " "наскільки близько ви до досягнення цільової ваги." -#: src/plugins/weight/details.rs:275 +#: src/plugins/weight/details.rs:287 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -883,11 +818,11 @@ msgstr[3] "" "Вашою цільовою вагою є {} кг. Додайте перший вимір ваги, щоб побачити, " "наскільки близько ви до досягнення цільової ваги." -#: src/plugins/weight/details.rs:284 +#: src/plugins/weight/details.rs:296 msgid "You’ve reached your weight goal. Great job!" msgstr "Вами досягнуто цільової ваги. Поздоровляємо!" -#: src/plugins/weight/details.rs:300 +#: src/plugins/weight/details.rs:312 msgid "Your weight goal is {} pound." msgid_plural "Your weight goal is {} pounds." msgstr[0] "Вашою цільова вагою є {} фунт." @@ -895,7 +830,7 @@ msgstr[1] "Вашою цільова вагою є {} фунти." msgstr[2] "Вашою цільова вагою є {} фунтів." msgstr[3] "Вашою цільова вагою є {} фунт." -#: src/plugins/weight/details.rs:305 +#: src/plugins/weight/details.rs:317 msgid "You have {} pound left to reach it." msgid_plural "You have {} pounds left to reach it." msgstr[0] "Вам лишився {} фунт до бажаного результату." @@ -903,7 +838,7 @@ msgstr[1] "Вам лишилося {} фунти до бажаного резу msgstr[2] "Вам лишилося {} фунтів до бажаного результату." msgstr[3] "Вам лишився {} фунт до бажаного результату." -#: src/plugins/weight/details.rs:312 +#: src/plugins/weight/details.rs:324 msgid "Your weight goal is {} kilogram." msgid_plural "Your weight goal is {} kilograms." msgstr[0] "Ваша вага складає {} кілограм." @@ -911,7 +846,7 @@ msgstr[1] "Ваша вага складає {} кілограми." msgstr[2] "Ваша вага складає {} кілограмів." msgstr[3] "Ваша вага складає {} кілограм." -#: src/plugins/weight/details.rs:318 +#: src/plugins/weight/details.rs:330 msgid "You have {} kilogram left to reach it" msgid_plural "You have {} kilograms left to reach it" msgstr[0] "Вам лишився {} кілограм до досягнення бажаного результату" @@ -919,7 +854,7 @@ msgstr[1] "Вам лишилося {} кілограми до досягненн msgstr[2] "Вам лишилося {} кілограмів до досягнення бажаного результату" msgstr[3] "Вам лишився {} кілограм до досягнення бажаного результату" -#: src/plugins/weight/details.rs:328 +#: src/plugins/weight/details.rs:340 msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" "Цільової ваги ще не встановлено. Ви можете встановити її у налаштуваннях " @@ -1098,10 +1033,6 @@ msgstr[1] "{} ярди" msgstr[2] "{} ярдів" msgstr[3] "{} ярд" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -msgid "Current BMI" -msgstr "Поточний ІМТ" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "Поточний ІМТ: {}" @@ -1241,18 +1172,82 @@ msgstr "Сталася помилка!" msgid "Close" msgstr "Закрити" -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "Цільовий ІМТ" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "Не вдалося перенести базу даних до нової версії через помилку {}" - #: src/windows/window.rs:267 msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "Не вдалося синхронізувати дані із Google Fit через помилку: {}" +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "" +#~ "Визначає, чи заповнено користувачем усі дані у майстрі початкового " +#~ "налаштовування" + +#~ msgid "Whether to enable notifications." +#~ msgstr "Визначає, чи слід вмикати сповіщення." + +#~ msgid "Sets all data source plugins that are enabled in Health." +#~ msgstr "Встановлює усі додатки джерел даних, які увімкнено у «Здоров'ї“." + +#~ msgid "The time at which Health should remind the user of their step goal" +#~ msgstr "" +#~ "Час, коли «Здоров'я» має нагадати користувачеві про цільову кількість " +#~ "кроків" + +#~ msgid "" +#~ "How frequent should the user be notified to complete their daily step-" +#~ "goal." +#~ msgstr "" +#~ "Наскільки часто слід сповіщати користувача щодо потреби у виконання " +#~ "щоденної цільової кількості кроків." + +#~ msgid "" +#~ "Activity types the user used recently, to be shown first in the activity " +#~ "types selector’s list" +#~ msgstr "" +#~ "Типи фізичної активності, якими було використано нещодавно, і які слід " +#~ "показати першими у списку вибору типів фізичної активності" + +#~ msgid "Whether Google Fit has been setup as sync provider" +#~ msgstr "" +#~ "Визначає, чи було налаштовано Google Fit як надавача даних для " +#~ "синхронізації" + +#~ msgid "The last time we synched steps, weight etc. with Google Fit" +#~ msgstr "" +#~ "Час останньої синхронізації даних щодо кроків, ваги та інших параметрів з " +#~ "Google Fit" + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "" +#~ "Система одиниць користувача, наприклад сантиметри або дюйми для зросту" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "Вік користувача (застаріле значення)." + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "" +#~ "Дата народження користувача за абсолютною шкалою (наприклад 01/01/1970)" + +#~ msgid "The height of the user." +#~ msgstr "Зріст користувача." + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "Кількість кроків, які користувач хоче проходити щодня." + +#~ msgid "The weight the user wants to reach." +#~ msgstr "Вага, якої хоче досягти користувач." + +#~ msgid "The height of the window." +#~ msgstr "Висота вікна." + +#~ msgid "Whether the window is maximized." +#~ msgstr "Чи вікно розгорнуте." + +#~ msgid "The width of the window." +#~ msgstr "Ширина вікна." + +#~ msgid "Failed to migrate database to new version due to error {}" +#~ msgstr "Не вдалося перенести базу даних до нової версії через помилку {}" + #~ msgid "@APPLICATION_ID@" #~ msgstr "@APPLICATION_ID@" -- 2.40.1 From b2dfc94626e1f134eb875525411ee644b73da422 Mon Sep 17 00:00:00 2001 From: Enrico Nicoletto Date: Tue, 13 Sep 2022 23:39:28 +0000 Subject: [PATCH 53/83] Update Brazilian Portuguese translation --- po/pt_BR.po | 319 +++++++++++++++++++++++++--------------------------- 1 file changed, 156 insertions(+), 163 deletions(-) diff --git a/po/pt_BR.po b/po/pt_BR.po index 5c87fc2..db6e414 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-24 21:36+0000\n" -"PO-Revision-Date: 2022-09-06 22:06-0300\n" +"POT-Creation-Date: 2022-09-13 17:26+0000\n" +"PO-Revision-Date: 2022-09-13 20:38-0300\n" "Last-Translator: Enrico Nicoletto \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" @@ -30,149 +30,73 @@ msgstr "" msgid "First time setup done" msgstr "Primeira configuração feita" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "Se o usuário concluiu o assistente de configuração" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "Alternar notificações" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "Se deve habilitar notificações." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "Definir plugins habilitados" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "" -"Define todas as fontes de dados de plugins que estão habilitadas no app " -"Saúde." - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "Hora de notificação" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "" -"O momento em que o app Saúde deve lembrar o usuário de sua meta de passos" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "frequência de notificação" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "" -"Com que frequência o usuário deve ser notificado para concluir sua meta " -"diária de passos." - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "Lista de tipos de atividades recentes" -#: data/dev.Cogitri.Health.gschema.xml:42 -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector’s list" -msgstr "" -"Tipos de atividades que o usuário usou recentemente, para serem mostrados " -"primeiro na lista do seletor de tipos de atividades" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "Configuração do provedor de sincronização Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "Se o Google Fit foi configurado como provedor de sincronização" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "Última sincronização com o Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "A última vez que sincronizamos etapas, peso etc. com o Google Fit" - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "Sistema de unidades usado" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "" -"O sistema de unidades que o usuário escolhe, por exemplo, para cm vs " -"polegadas para altura" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "Idade do usuário" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "A idade do usuário (descontinuado)." - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "Idade absoluta do usuário" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "A idade do usuário em termos absolutos (como 01/01/1970)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "Altura do usuário" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "A altura do usuário." - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "Meta de passos do usuário" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "A quantidade de passos que o usuário deseja atingir diariamente." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "Meta de peso do usuário" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "O peso que o usuário deseja atingir." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "Altura da janela" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "Altura da janela." - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "Janela maximizada" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "Se a janela está maximizada." - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "Largura da janela" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "Largura da janela." +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "ID do usuário atual" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -326,7 +250,7 @@ msgstr "" "para ver seus dados atuais em tempo real." #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "Passos" @@ -364,90 +288,99 @@ msgstr "Preferências do Saúde" msgid "General" msgstr "Geral" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "Usuário" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "Sistema de unidades" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "Imperial" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "Metro" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "Nome de usuário" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "Nascimento" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "Altura" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "Notificações" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "Habilita notificações" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "Frequência" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "Hora do lembrete diário" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "Meta de passos" -#: data/ui/preferences_window.blp:170 +#: data/ui/preferences_window.blp:179 msgid "7,500 steps per day are recommended." msgstr "7.500 passos por dia são recomendados." -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "Meta de peso" # WHO = OMS = Organização Mundial da Saúde # BMI = IMC = Índice de Massa Corporal -#: data/ui/preferences_window.blp:188 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "A OMS recomenda um IMC de 18,5 – 24,9." -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "IMC planejado" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "Sincronizar" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "Inicia a sincronização com provedores de terceiros." -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "Importação e exportação de dados" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "Exportar dados como CSV" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "Exportar…" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "Importar dados como CSV" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "Importar…" @@ -479,38 +412,42 @@ msgstr "Seja bem-vindo ao app Saúde!" msgid "Please enter some information to get setup." msgstr "Por favor, insira algumas informações para fazer a configuração." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "Por favor, insira sua meta diária de passos." # WHO = OMS = Organização Mundial da Saúde -#: data/ui/setup_window.blp:224 +#: data/ui/setup_window.blp:236 msgid "The WHO recommends 7.500 steps per day." msgstr "A OMS recomenda 7.500 passos por dia." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "Por favor, insira sua meta de peso." # WHO = OMS = Organização Mundial da Saúde # BMI = IMC = Índice de Massa Corporal -#: data/ui/setup_window.blp:286 +#: data/ui/setup_window.blp:298 msgid "The WHO recommends a BMI of 18.5–24.9." msgstr "A OMS recomenda um IMC de 18,5 – 24,9." -#: data/ui/setup_window.blp:314 +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "Peso atual" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "IMC atual" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "Meta de peso" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "Configure a sincronização com provedores de terceiros." -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "" @@ -600,18 +537,18 @@ msgstr "_Sobre o Saúde" msgid "Enable plugin" msgstr "Habilitar plugin" -#: src/core/application.rs:176 +#: src/core/application.rs:189 msgid "A health tracking app for the GNOME desktop." msgstr "Um aplicativo de monitoramento de saúde para o ambiente GNOME." -#: src/core/application.rs:178 +#: src/core/application.rs:191 msgid "translator-credits" msgstr "" "Rafael Fontenelle \n" "Enrico Nicoletto \n" "Matheus Barbosa " -#: src/core/application.rs:180 +#: src/core/application.rs:193 msgid "Websites" msgstr "Sites" @@ -739,18 +676,18 @@ msgid_plural "{} calories burned today" msgstr[0] "{} caloria gasta hoje" msgstr[1] "{} calorias gastas hoje" -#: src/plugins/steps/details.rs:186 +#: src/plugins/steps/details.rs:187 msgid "Today’s steps: {}" msgstr "Passos de hoje: {}" -#: src/plugins/steps/details.rs:201 +#: src/plugins/steps/details.rs:206 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" "Sem sequência ainda. atinja sua meta de passos de vários dias para começar " "uma sequência!" -#: src/plugins/steps/details.rs:205 +#: src/plugins/steps/details.rs:210 msgid "" "You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" @@ -760,63 +697,63 @@ msgstr[0] "" msgstr[1] "" "Você está em uma sequência de {} dias. Atinja sua meta hoje para continuar!" -#: src/plugins/steps/details.rs:213 +#: src/plugins/steps/details.rs:218 msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "" "Você atingiu sua meta de passos hoje. Continue para começar uma sequência!" -#: src/plugins/steps/details.rs:216 +#: src/plugins/steps/details.rs:221 msgid "You’re on a streak for {} day. Good job!" msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Você está em uma sequência de {} dia. Parabéns!" msgstr[1] "Você está em uma sequência de {} dias. Parabéns!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} passo em {}" msgstr[1] "{} passos em {}" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "{} passo dado hoje" msgstr[1] "{} passos dados hoje" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "Atingido {} porcento da meta diária de passos" msgstr[1] "Atingidos {} porcento da meta diária de passos" -#: src/plugins/steps/summary.rs:112 +#: src/plugins/steps/summary.rs:114 msgid "Well done! You have reached your daily step goal!" msgstr "Muito bem! Você atingiu sua meta diária de passos!" -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "IMC atual: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} libra em {}" msgstr[1] "{} libras em {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} quilograma em {}" msgstr[1] "{} quilogramas em {}" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "IMC desconhecido" -#: src/plugins/weight/details.rs:268 +#: src/plugins/weight/details.rs:280 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -830,7 +767,7 @@ msgstr[1] "" "Sua meta de peso é de {} libras. Adicione uma primeira medida de peso para " "ver o quão perto você está de atingi-la." -#: src/plugins/weight/details.rs:275 +#: src/plugins/weight/details.rs:287 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -844,35 +781,35 @@ msgstr[1] "" "Sua meta de peso é de {} quilogramas. Adicione uma primeira medida de peso " "para ver o quão perto você está de atingi-la." -#: src/plugins/weight/details.rs:284 +#: src/plugins/weight/details.rs:296 msgid "You’ve reached your weight goal. Great job!" msgstr "Você atingiu sua meta de peso. Parabéns!" -#: src/plugins/weight/details.rs:300 +#: src/plugins/weight/details.rs:312 msgid "Your weight goal is {} pound." msgid_plural "Your weight goal is {} pounds." msgstr[0] "Sua meta de peso é de {} libra." msgstr[1] "Sua meta de peso é de {} libras." -#: src/plugins/weight/details.rs:305 +#: src/plugins/weight/details.rs:317 msgid "You have {} pound left to reach it." msgid_plural "You have {} pounds left to reach it." msgstr[0] "Falta {} libra para atingi-la." msgstr[1] "Faltam {} libras para atingi-la." -#: src/plugins/weight/details.rs:312 +#: src/plugins/weight/details.rs:324 msgid "Your weight goal is {} kilogram." msgid_plural "Your weight goal is {} kilograms." msgstr[0] "Sua meta de peso é de {} quilograma." msgstr[1] "Sua meta de peso é de {} quilogramas." -#: src/plugins/weight/details.rs:318 +#: src/plugins/weight/details.rs:330 msgid "You have {} kilogram left to reach it" msgid_plural "You have {} kilograms left to reach it" msgstr[0] "Falta {} quilograma para atingi-la" msgstr[1] "Faltam {} quilogramas para atingi-la" -#: src/plugins/weight/details.rs:328 +#: src/plugins/weight/details.rs:340 msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" "Nenhuma meta de peso definida ainda. Você pode defini-la nas preferências do " @@ -1035,10 +972,6 @@ msgid_plural "{} yards" msgstr[0] "{} jarda" msgstr[1] "{} jardas" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -msgid "Current BMI" -msgstr "IMC atual" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "IMC atual: {}" @@ -1178,15 +1111,75 @@ msgstr "Ocorreu um erro!" msgid "Close" msgstr "Fechar" -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "IMC planejado" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "Falha ao migrar o banco de dados para a nova versão devido ao erro {}" - #: src/windows/window.rs:267 msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "" "Não foi possível sincronizar os dados do Google Fit devido a um erro: {}" + +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "Se o usuário concluiu o assistente de configuração" + +#~ msgid "Whether to enable notifications." +#~ msgstr "Se deve habilitar notificações." + +#~ msgid "Sets all data source plugins that are enabled in Health." +#~ msgstr "" +#~ "Define todas as fontes de dados de plugins que estão habilitadas no app " +#~ "Saúde." + +#~ msgid "The time at which Health should remind the user of their step goal" +#~ msgstr "" +#~ "O momento em que o app Saúde deve lembrar o usuário de sua meta de passos" + +#~ msgid "" +#~ "How frequent should the user be notified to complete their daily step-" +#~ "goal." +#~ msgstr "" +#~ "Com que frequência o usuário deve ser notificado para concluir sua meta " +#~ "diária de passos." + +#~ msgid "" +#~ "Activity types the user used recently, to be shown first in the activity " +#~ "types selector’s list" +#~ msgstr "" +#~ "Tipos de atividades que o usuário usou recentemente, para serem mostrados " +#~ "primeiro na lista do seletor de tipos de atividades" + +#~ msgid "Whether Google Fit has been setup as sync provider" +#~ msgstr "Se o Google Fit foi configurado como provedor de sincronização" + +#~ msgid "The last time we synched steps, weight etc. with Google Fit" +#~ msgstr "A última vez que sincronizamos etapas, peso etc. com o Google Fit" + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "" +#~ "O sistema de unidades que o usuário escolhe, por exemplo, para cm vs " +#~ "polegadas para altura" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "A idade do usuário (descontinuado)." + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "A idade do usuário em termos absolutos (como 01/01/1970)" + +#~ msgid "The height of the user." +#~ msgstr "A altura do usuário." + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "A quantidade de passos que o usuário deseja atingir diariamente." + +#~ msgid "The weight the user wants to reach." +#~ msgstr "O peso que o usuário deseja atingir." + +#~ msgid "The height of the window." +#~ msgstr "Altura da janela." + +#~ msgid "Whether the window is maximized." +#~ msgstr "Se a janela está maximizada." + +#~ msgid "The width of the window." +#~ msgstr "Largura da janela." + +#~ msgid "Failed to migrate database to new version due to error {}" +#~ msgstr "" +#~ "Falha ao migrar o banco de dados para a nova versão devido ao erro {}" -- 2.40.1 From 560f9b0879014c86f8c8c5e1f4939d591f4ff0f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emin=20Tufan=20=C3=87etin?= Date: Wed, 14 Sep 2022 08:21:22 +0000 Subject: [PATCH 54/83] Update Turkish translation --- po/tr.po | 310 +++++++++++++++++++++++++++---------------------------- 1 file changed, 151 insertions(+), 159 deletions(-) diff --git a/po/tr.po b/po/tr.po index 6b67a0b..eae68e2 100644 --- a/po/tr.po +++ b/po/tr.po @@ -3,15 +3,15 @@ # Copyright (C) 2022 Health's COPYRIGHT HOLDER # This file is distributed under the same license as the Health package. # -# Emin Tufan Çetin , 2022. # Sabri Ünal , 2022. +# Emin Tufan Çetin , 2022. # msgid "" msgstr "" "Project-Id-Version: Health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-26 13:31+0000\n" -"PO-Revision-Date: 2022-08-08 02:37+0300\n" +"POT-Creation-Date: 2022-09-13 17:26+0000\n" +"PO-Revision-Date: 2022-09-14 11:17+0300\n" "Last-Translator: Emin Tufan Çetin \n" "Language-Team: Türkçe \n" "Language: tr\n" @@ -25,144 +25,73 @@ msgstr "" msgid "First time setup done" msgstr "İlk kurulum tamamlandı" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "Kullanıcının kurulum sihirbazını tamamlayıp tamamlamadığı" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "Bildirimleri aç yada kapat" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "Bildirimlerin etkinleştirilip etkinleştirilmeyeceği." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "Etkinleştirilmiş eklentileri ayarla" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "Sağlık’ta etkinleştirilen tüm veri kaynağı eklentilerini ayarlar." - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "Bildirim zamanı" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "Sağlık’ın kullanıcıya adım hedeflerini anımsatması gereken zaman" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "bildirim sıklığı" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "" -"Kullanıcıya günlük adım hedefini tamamlaması için hangi sıklıkta bilgi " -"verileceği." - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "Son etkinlik türlerinin listesi" -#: data/dev.Cogitri.Health.gschema.xml:42 -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector’s list" -msgstr "" -"Kullanıcının son zamanlarda kullandığı etkinlik türleri, etkinlik türleri " -"seçici listesinde önde olarak gösterilir" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "Google Fit Eşzamanlama Sağlayıcı kurulumu" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "Google Fit’in eşzamanlama sağlayıcı olarak kurulup kurulmadığı" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "Google Fit ile son eşzamanlama" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "Adımları, kiloları vb. Google Fit ile en son eşzamanladığımız zaman" - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "Kullanılan birim sistemi" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "Kullanıcının seçtiği birim sistemi, ör. yükseklik için cm yada inç" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "Kullanıcı yaşı" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "Kullanıcının yaşı (kullanımdan kaldırıldı)." - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "Tam kullanıcı yaşı" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "Kullanıcının tam yaşı (01/01/1970 gibi)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "Kullanıcı ağırlığı" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "Kullanıcının ağırlığı." - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "Kullanıcı adım hedefi" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "Kullanıcının günlük olarak ulaşmak istediği adım sayısı." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "Kilo hedefi" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "Kullanıcının ulaşmak istediği kilo." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "Pencere yüksekliği" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "Pencerenin yüksekliği." - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "Pencere ekranı kaplamış" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "Pencerenin ekranı kapsayıp kapsamadığı." - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "Pencere genişliği" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "Pencerenin genişliği." +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "Etkin kullanıcı kimliği" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -319,7 +248,7 @@ msgstr "" # Uygulama arayüzde denenmiş ve tekil kullanım tercih edilmiştir. #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "Adım" @@ -356,89 +285,98 @@ msgstr "Sağlık Tercihleri" msgid "General" msgstr "Genel" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "Kullanıcı" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "Birim sistemi" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "Emperyal" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "Metrik" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "Kullanıcı adı" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "Doğum günü" # Uygulama üstündeki kullanımı boy anlamındadır. Yükseklik olarak değiştirmeyin. -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "Boy" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "Bildirimler" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "Bildirimleri etkinleştir" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "Sıklık" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "Günlük anımsatım zamanı" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "Adım hedefi" -#: data/ui/preferences_window.blp:170 +#: data/ui/preferences_window.blp:179 msgid "7,500 steps per day are recommended." msgstr "Günde 7.500 adım önerilir." -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "Kilo Hedefi" -#: data/ui/preferences_window.blp:188 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "Dünya Sağlık Örgütü, 18.5-24.9 arası VKİ önermektedir." -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "Hedef VKİ" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "Eşzamanla" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "Üçüncü taraf sağlayıcılarla eşzamanlamayı başlat." -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "Verileri içe ya da dışa aktarma" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "Verileri CVS olarak dışa aktar" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "Dışa aktar…" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "Verileri CSV’den içe aktar" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "İçe aktar…" @@ -470,35 +408,39 @@ msgstr "Sağlık’a Hoş Geldiniz!" msgid "Please enter some information to get setup." msgstr "Kurulum için lütfen bazı bilgiler girin." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "Lütfen günlük adım hedefinizi girin." -#: data/ui/setup_window.blp:224 +#: data/ui/setup_window.blp:236 msgid "The WHO recommends 7.500 steps per day." msgstr "Dünya Sağlık Örgütü günlük 7.500 adım atmayı önermektedir." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "Lütfen kilo hedefinizi girin." -#: data/ui/setup_window.blp:286 +#: data/ui/setup_window.blp:298 msgid "The WHO recommends a BMI of 18.5–24.9." msgstr "Dünya Sağlık Örgütü, 18.5–24.9 arası VKİ önermektedir." -#: data/ui/setup_window.blp:314 +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "Şu anki kilo" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "Geçerli VKİ" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "Kilo hedefi" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "Üçüncü taraf sağlayıcılarla eşzamanlamayı kur." -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "" @@ -589,17 +531,17 @@ msgstr "Sağlık _Hakkında" msgid "Enable plugin" msgstr "Eklentiyi etkinleştir" -#: src/core/application.rs:176 +#: src/core/application.rs:189 msgid "A health tracking app for the GNOME desktop." msgstr "GNOME masaüstü için sağlık izleme uygulaması." -#: src/core/application.rs:178 +#: src/core/application.rs:191 msgid "translator-credits" msgstr "" "Emin Tufan Çetin \n" "Sabri Ünal " -#: src/core/application.rs:180 +#: src/core/application.rs:193 msgid "Websites" msgstr "Web siteleri" @@ -721,75 +663,75 @@ msgid "{} calorie burned today" msgid_plural "{} calories burned today" msgstr[0] "Bugün {} kalori yakıldı" -#: src/plugins/steps/details.rs:186 +#: src/plugins/steps/details.rs:187 msgid "Today’s steps: {}" msgstr "Bugünkü adımlar: {}" -#: src/plugins/steps/details.rs:201 +#: src/plugins/steps/details.rs:206 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" "Henüz seri yok. Seri olabilmesi için birkaç gün boyunca adım hedefinize " "ulaşın!" -#: src/plugins/steps/details.rs:205 +#: src/plugins/steps/details.rs:210 msgid "" "You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" "You’re on a streak for {} days. Reach your step goal today to continue it!" msgstr[0] "{} gündür seridesin. Sürdürmek için bugün adım hedefinize ulaşın!" -#: src/plugins/steps/details.rs:213 +#: src/plugins/steps/details.rs:218 msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "Bugün adım hedefinize ulaştınız. Seri için sürdürün!" -#: src/plugins/steps/details.rs:216 +#: src/plugins/steps/details.rs:221 msgid "You’re on a streak for {} day. Good job!" msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "{} gündür seridesin. Başarılar!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} adım, {} tarihinde" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "Bugün {} adım atıldı" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "Günlük adım hedefinin yüzde {} bölümüne ulaşıldı" # Well done için radikal bir çeviri kullandım. Biraz yerelleştirmiş oldum. -#: src/plugins/steps/summary.rs:112 +#: src/plugins/steps/summary.rs:114 msgid "Well done! You have reached your daily step goal!" msgstr "Nazar değmesin! Günlük adım hedefinize ulaştınız!" -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "Geçerli VKİ: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} pound, {} tarihinde" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} kilogram, {} tarihinde" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "Bilinmeyen VKİ" -#: src/plugins/weight/details.rs:268 +#: src/plugins/weight/details.rs:280 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -800,7 +742,7 @@ msgstr[0] "" "Kilo hedefiniz {} pound. Buna ne kadar yakın olduğunuzu görmek için bir ilk " "kilo ölçümünü ekleyin." -#: src/plugins/weight/details.rs:275 +#: src/plugins/weight/details.rs:287 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -811,31 +753,31 @@ msgstr[0] "" "Kilo hedefiniz {} kilogram. Buna ne kadar yakın olduğunuzu görmek için bir " "ilk kilo ölçümünü ekleyin." -#: src/plugins/weight/details.rs:284 +#: src/plugins/weight/details.rs:296 msgid "You’ve reached your weight goal. Great job!" msgstr "Kilo hedefinize ulaştınız. Harika!" -#: src/plugins/weight/details.rs:300 +#: src/plugins/weight/details.rs:312 msgid "Your weight goal is {} pound." msgid_plural "Your weight goal is {} pounds." msgstr[0] "Kilo hedefiniz {} pound." -#: src/plugins/weight/details.rs:305 +#: src/plugins/weight/details.rs:317 msgid "You have {} pound left to reach it." msgid_plural "You have {} pounds left to reach it." msgstr[0] "Ulaşmanıza {} pound kaldı." -#: src/plugins/weight/details.rs:312 +#: src/plugins/weight/details.rs:324 msgid "Your weight goal is {} kilogram." msgid_plural "Your weight goal is {} kilograms." msgstr[0] "Kilo hedefiniz {} kilogram." -#: src/plugins/weight/details.rs:318 +#: src/plugins/weight/details.rs:330 msgid "You have {} kilogram left to reach it" msgid_plural "You have {} kilograms left to reach it" msgstr[0] "Ulaşmanıza {} kilogram kaldı." -#: src/plugins/weight/details.rs:328 +#: src/plugins/weight/details.rs:340 msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "Henüz kilo hedefi belirlenmedi. Tercihlerden ayarlanabilir." @@ -981,10 +923,6 @@ msgid "{} yard" msgid_plural "{} yards" msgstr[0] "{} yard" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -msgid "Current BMI" -msgstr "Geçerli VKİ" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "Geçerli VKİ: {}" @@ -1125,14 +1063,68 @@ msgstr "Hata oluştu!" msgid "Close" msgstr "Kapat" -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "Hedef VKİ" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "{} hatası nedeniyle veri tabanı yeni sürüme taşınamadı" - #: src/windows/window.rs:267 msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "Hata nedeniyle Google Fit verileri eşzamanlanamadı: {}" + +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "Kullanıcının kurulum sihirbazını tamamlayıp tamamlamadığı" + +#~ msgid "Whether to enable notifications." +#~ msgstr "Bildirimlerin etkinleştirilip etkinleştirilmeyeceği." + +#~ msgid "Sets all data source plugins that are enabled in Health." +#~ msgstr "Sağlık’ta etkinleştirilen tüm veri kaynağı eklentilerini ayarlar." + +#~ msgid "The time at which Health should remind the user of their step goal" +#~ msgstr "Sağlık’ın kullanıcıya adım hedeflerini anımsatması gereken zaman" + +#~ msgid "" +#~ "How frequent should the user be notified to complete their daily step-" +#~ "goal." +#~ msgstr "" +#~ "Kullanıcıya günlük adım hedefini tamamlaması için hangi sıklıkta bilgi " +#~ "verileceği." + +#~ msgid "" +#~ "Activity types the user used recently, to be shown first in the activity " +#~ "types selector’s list" +#~ msgstr "" +#~ "Kullanıcının son zamanlarda kullandığı etkinlik türleri, etkinlik türleri " +#~ "seçici listesinde önde olarak gösterilir" + +#~ msgid "Whether Google Fit has been setup as sync provider" +#~ msgstr "Google Fit’in eşzamanlama sağlayıcı olarak kurulup kurulmadığı" + +#~ msgid "The last time we synched steps, weight etc. with Google Fit" +#~ msgstr "Adımları, kiloları vb. Google Fit ile en son eşzamanladığımız zaman" + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "Kullanıcının seçtiği birim sistemi, ör. yükseklik için cm yada inç" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "Kullanıcının yaşı (kullanımdan kaldırıldı)." + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "Kullanıcının tam yaşı (01/01/1970 gibi)" + +#~ msgid "The height of the user." +#~ msgstr "Kullanıcının ağırlığı." + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "Kullanıcının günlük olarak ulaşmak istediği adım sayısı." + +#~ msgid "The weight the user wants to reach." +#~ msgstr "Kullanıcının ulaşmak istediği kilo." + +#~ msgid "The height of the window." +#~ msgstr "Pencerenin yüksekliği." + +#~ msgid "Whether the window is maximized." +#~ msgstr "Pencerenin ekranı kapsayıp kapsamadığı." + +#~ msgid "The width of the window." +#~ msgstr "Pencerenin genişliği." + +#~ msgid "Failed to migrate database to new version due to error {}" +#~ msgstr "{} hatası nedeniyle veri tabanı yeni sürüme taşınamadı" -- 2.40.1 From d264c5a44af3d3074c47ab325f8669eddcb3c7fe Mon Sep 17 00:00:00 2001 From: Kukuh Syafaat Date: Wed, 14 Sep 2022 08:26:52 +0000 Subject: [PATCH 55/83] Update Indonesian translation --- po/id.po | 312 +++++++++++++++++++++++++++---------------------------- 1 file changed, 152 insertions(+), 160 deletions(-) diff --git a/po/id.po b/po/id.po index 1a093fe..83a80b9 100644 --- a/po/id.po +++ b/po/id.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-24 21:36+0000\n" -"PO-Revision-Date: 2022-08-11 11:05+0700\n" +"POT-Creation-Date: 2022-09-13 17:26+0000\n" +"PO-Revision-Date: 2022-09-14 15:26+0700\n" "Last-Translator: Kukuh Syafaat \n" "Language-Team: Indonesian \n" "Language: id\n" @@ -23,146 +23,73 @@ msgstr "" msgid "First time setup done" msgstr "Penyiapan saat pertama selesai" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "Apakah pengguna telah menyelesaikan wahana pandu penyiapan" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "Jungkitkan pemberitahuan" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "Apakah akan memfungsikan pemberitahuan." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "Atur pengaya yang diaktifkan" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "Atur semua pengaya sumber data yang diaktifkan di Kesehatan." - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "Waktu pemberitahuan" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "" -"Waktu di mana Kesehatan harus mengingatkan pengguna tentang sararan langkah " -"mereka" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "frekuensi pemberitahuan" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "" -"Seberapa sering pengguna harus diberitahu untuk menyelesaikan sasaran " -"langkah harian mereka." - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "Daftar tipe aktivitas terbaru" -#: data/dev.Cogitri.Health.gschema.xml:42 -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector’s list" -msgstr "" -"Tipe aktivitas yang digunakan pengguna baru-baru ini, untuk ditampilkan " -"terlebih dahulu dalam daftar pemilih tipe aktivitas" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "Penyiapan Penyedia-Penyelarasan Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "Apakah Google Fit telah disiapkan sebagai penyedia penyelarasan" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "Penyelarasan terakhir dengan Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "Terakhir kali menyelaraskan langkah, berat, dll. dengan Google Fit" - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "Sistem satuan yang dipakai" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "Sistem satuan yang dipilih pengguna, mis. cm vs inci untuk tinggi" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "Usia pengguna" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "Usia pengguna (tidak dipakai lagi)." - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "Usia absolut pengguna" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "Usia pengguna dalam satuan absolut (seperti 01/01/1970)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "Tinggi pengguna" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "Tinggi pengguna." - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "Sasaran langkah pengguna" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "Banyaknya langkah yang ingin pengguna capai setiap hari." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "Sasaran berat pengguna" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "Berat yang ingin dicapai oleh pengguna." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "Tinggi jendela" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "Tinggi jendela." - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "Jendela dimaksimalkan" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "Apakah jendela dimaksimalkan." - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "Lebar jendela" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "Lebar jendela." +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "ID pengguna aktif" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -317,7 +244,7 @@ msgstr "" "pengaya untuk melihat data langsung Anda yang sebenarnya." #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "Langkah" @@ -355,88 +282,97 @@ msgstr "Preferensi Kesehatan" msgid "General" msgstr "Umum" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "Pengguna" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "Sistem satuan" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "Imperial" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "Metrik" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "Nama pengguna" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "Ulang Tahun" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "Tinggi" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "Pemberitahuan" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "Fungsikan pemberitahuan" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "Frekuensi" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "Waktu pengingat harian" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "Sasaran langkah" -#: data/ui/preferences_window.blp:170 +#: data/ui/preferences_window.blp:179 msgid "7,500 steps per day are recommended." msgstr "7.500 langkah per hari direkomendasikan." -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "Sasaran berat" -#: data/ui/preferences_window.blp:188 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "WHO merekomendasikan BMI 18,5-24,9." -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "Target BMI" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "Selaraskan" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "Mulai selaraskan dengan penyedia pihak ke tiga." -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "Mengimpor dan mengekspor data" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "Ekspor data sebagai CSV" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "Ekspor…" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "Impor data dari CSV" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "Impor…" @@ -468,35 +404,39 @@ msgstr "Selamat datang ke Kesehatan!" msgid "Please enter some information to get setup." msgstr "Harap masukkan informasi untuk menyiapkan." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "Harap masukkan sasaran langkah harian Anda." -#: data/ui/setup_window.blp:224 +#: data/ui/setup_window.blp:236 msgid "The WHO recommends 7.500 steps per day." msgstr "WHO merekomendasikan 7.500 langkah per hari." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "Harap masukkan sasaran berat Anda." -#: data/ui/setup_window.blp:286 +#: data/ui/setup_window.blp:298 msgid "The WHO recommends a BMI of 18.5–24.9." msgstr "WHO merekomendasikan BMI 18,5-24,9." -#: data/ui/setup_window.blp:314 +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "Berat saat ini" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "BMI kini" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "Sasaran berat" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "Siapkan penyelarasan dengan penyedia pihak ke tiga." -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "" @@ -586,17 +526,17 @@ msgstr "Tent_ang Kesehatan" msgid "Enable plugin" msgstr "Aktifkan pengaya" -#: src/core/application.rs:176 +#: src/core/application.rs:189 msgid "A health tracking app for the GNOME desktop." msgstr "Aplikasi pelacakan kesehatan untuk destop GNOME." -#: src/core/application.rs:178 +#: src/core/application.rs:191 msgid "translator-credits" msgstr "" "Andika Triwidada , 2021, 2022.\n" "Kukuh Syafaat , 2021-2022." -#: src/core/application.rs:180 +#: src/core/application.rs:193 msgid "Websites" msgstr "Situs web" @@ -717,18 +657,18 @@ msgid "{} calorie burned today" msgid_plural "{} calories burned today" msgstr[0] "{} kalori yang terbakar hari ini" -#: src/plugins/steps/details.rs:186 +#: src/plugins/steps/details.rs:187 msgid "Today’s steps: {}" msgstr "Langkah hari ini: {}" -#: src/plugins/steps/details.rs:201 +#: src/plugins/steps/details.rs:206 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" "Belum ada runtutan. Capailah sasaran langkah Anda selama beberapa hari untuk " "memulai beruntun!" -#: src/plugins/steps/details.rs:205 +#: src/plugins/steps/details.rs:210 msgid "" "You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" @@ -737,58 +677,58 @@ msgstr[0] "" "Anda mencapai beruntun selama {} hari. Capailah sasaran langkah Anda hari " "ini untuk melanjutkannya!" -#: src/plugins/steps/details.rs:213 +#: src/plugins/steps/details.rs:218 msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "" "Anda telah mencapai sasaran langkah Anda hari ini. Teruskan agar memulai " "beruntun!" -#: src/plugins/steps/details.rs:216 +#: src/plugins/steps/details.rs:221 msgid "You’re on a streak for {} day. Good job!" msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Anda mencapai beruntun selama {} hari. Kerja yang bagus!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} langkah pada {}" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "{} langkah ditempuh hari ini" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "Mencapai {} persen dari tujuan langkah harian" -#: src/plugins/steps/summary.rs:112 +#: src/plugins/steps/summary.rs:114 msgid "Well done! You have reached your daily step goal!" msgstr "Bagus! Anda telah mencapai tujuan langkah harian Anda!" -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "BMI kini: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} pon pada {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} kilogram pada {}" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "BMI tak diketahui" -#: src/plugins/weight/details.rs:268 +#: src/plugins/weight/details.rs:280 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -799,7 +739,7 @@ msgstr[0] "" "Sasaran berat badan Anda adalah {} pon. Tambahkan pengukuran berat badan " "pertama untuk melihat seberapa dekat Anda untuk mencapainya." -#: src/plugins/weight/details.rs:275 +#: src/plugins/weight/details.rs:287 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -810,31 +750,31 @@ msgstr[0] "" "Sasaran berat badan Anda adalah {} kilogram. Tambahkan pengukuran berat " "badan pertama untuk melihat seberapa dekat Anda untuk mencapainya." -#: src/plugins/weight/details.rs:284 +#: src/plugins/weight/details.rs:296 msgid "You’ve reached your weight goal. Great job!" msgstr "Anda telah mencapai sasaran berat badan Anda. Kerja yang bagus!" -#: src/plugins/weight/details.rs:300 +#: src/plugins/weight/details.rs:312 msgid "Your weight goal is {} pound." msgid_plural "Your weight goal is {} pounds." msgstr[0] "Sasaran berat badan Anda adalah {} pon." -#: src/plugins/weight/details.rs:305 +#: src/plugins/weight/details.rs:317 msgid "You have {} pound left to reach it." msgid_plural "You have {} pounds left to reach it." msgstr[0] "Tersisa {} pon untuk mencapainya." -#: src/plugins/weight/details.rs:312 +#: src/plugins/weight/details.rs:324 msgid "Your weight goal is {} kilogram." msgid_plural "Your weight goal is {} kilograms." msgstr[0] "Sasaran berat Anda adalah {} kilogram." -#: src/plugins/weight/details.rs:318 +#: src/plugins/weight/details.rs:330 msgid "You have {} kilogram left to reach it" msgid_plural "You have {} kilograms left to reach it" msgstr[0] "Tersisa {} kilogram untuk mencapainya" -#: src/plugins/weight/details.rs:328 +#: src/plugins/weight/details.rs:340 msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" "Belum ada sasaran berat badan yang ditetapkan. Anda dapat mengaturnya dalam " @@ -985,10 +925,6 @@ msgid "{} yard" msgid_plural "{} yards" msgstr[0] "{} yard" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -msgid "Current BMI" -msgstr "BMI kini" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "BMI kini: {}" @@ -1128,18 +1064,74 @@ msgstr "Terjadi kesalahan!" msgid "Close" msgstr "Tutup" -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "Target BMI" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "Gagal memigrasikan basis data ke versi baru karena kesalahan {}" - #: src/windows/window.rs:267 msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "Tak bisa menyelaraskan data Google Fit karena kesalahan: {}" +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "Apakah pengguna telah menyelesaikan wahana pandu penyiapan" + +#~ msgid "Whether to enable notifications." +#~ msgstr "Apakah akan memfungsikan pemberitahuan." + +#~ msgid "Sets all data source plugins that are enabled in Health." +#~ msgstr "Atur semua pengaya sumber data yang diaktifkan di Kesehatan." + +#~ msgid "The time at which Health should remind the user of their step goal" +#~ msgstr "" +#~ "Waktu di mana Kesehatan harus mengingatkan pengguna tentang sararan " +#~ "langkah mereka" + +#~ msgid "" +#~ "How frequent should the user be notified to complete their daily step-" +#~ "goal." +#~ msgstr "" +#~ "Seberapa sering pengguna harus diberitahu untuk menyelesaikan sasaran " +#~ "langkah harian mereka." + +#~ msgid "" +#~ "Activity types the user used recently, to be shown first in the activity " +#~ "types selector’s list" +#~ msgstr "" +#~ "Tipe aktivitas yang digunakan pengguna baru-baru ini, untuk ditampilkan " +#~ "terlebih dahulu dalam daftar pemilih tipe aktivitas" + +#~ msgid "Whether Google Fit has been setup as sync provider" +#~ msgstr "Apakah Google Fit telah disiapkan sebagai penyedia penyelarasan" + +#~ msgid "The last time we synched steps, weight etc. with Google Fit" +#~ msgstr "Terakhir kali menyelaraskan langkah, berat, dll. dengan Google Fit" + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "Sistem satuan yang dipilih pengguna, mis. cm vs inci untuk tinggi" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "Usia pengguna (tidak dipakai lagi)." + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "Usia pengguna dalam satuan absolut (seperti 01/01/1970)" + +#~ msgid "The height of the user." +#~ msgstr "Tinggi pengguna." + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "Banyaknya langkah yang ingin pengguna capai setiap hari." + +#~ msgid "The weight the user wants to reach." +#~ msgstr "Berat yang ingin dicapai oleh pengguna." + +#~ msgid "The height of the window." +#~ msgstr "Tinggi jendela." + +#~ msgid "Whether the window is maximized." +#~ msgstr "Apakah jendela dimaksimalkan." + +#~ msgid "The width of the window." +#~ msgstr "Lebar jendela." + +#~ msgid "Failed to migrate database to new version due to error {}" +#~ msgstr "Gagal memigrasikan basis data ke versi baru karena kesalahan {}" + #~ msgid "The WHO recommends 10,000 steps per day." #~ msgstr "WHO merekomendasikan 10.000 langkah per hari." -- 2.40.1 From 9a0de319fc5790650958962f810555993ef38a02 Mon Sep 17 00:00:00 2001 From: Aleksandr Melman Date: Sat, 17 Sep 2022 16:17:31 +0000 Subject: [PATCH 56/83] Update Russian translation --- po/ru.po | 317 +++++++++++++++++++++++++++---------------------------- 1 file changed, 155 insertions(+), 162 deletions(-) diff --git a/po/ru.po b/po/ru.po index a81c122..c016571 100644 --- a/po/ru.po +++ b/po/ru.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-24 21:36+0000\n" -"PO-Revision-Date: 2022-07-25 13:30+0300\n" +"POT-Creation-Date: 2022-09-13 17:26+0000\n" +"PO-Revision-Date: 2022-09-13 23:49+0300\n" "Last-Translator: Aleksandr Melman \n" "Language-Team: Russian \n" "Language: ru\n" @@ -23,148 +23,73 @@ msgstr "" msgid "First time setup done" msgstr "Первая установка выполнена" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "Завершил ли пользователь работу с мастером настройки" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "Переключение уведомлений" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "Включать ли уведомления." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "Установка включенных модулей" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "" -"Устанавливает все модули источников данных, которые включены в Здоровье." - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "Время уведомления" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "" -"Время, через которое Здоровье должно напоминать пользователю о цели в шагах" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "частота уведомлений" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "" -"Как часто пользователь должен получать уведомления о выполнении ежедневной " -"цели по шагам." - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "Список последних видов деятельности" -#: data/dev.Cogitri.Health.gschema.xml:42 -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector’s list" -msgstr "" -"Виды деятельности, которые пользователь использовал в последнее время, " -"которые будут показаны первыми в списке селектора видов деятельности" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "Настройка синхронизации с провайдером Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "Настроен ли Google Fit в качестве поставщика синхронизации" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "Последняя синхронизация с Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "В последний раз мы синхронизировали шаги, вес и т.д. с Google Fit" - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "Используемая система единиц измерения" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "" -"Система единиц измерения, выбранная пользователем, например, для см против " -"дюйма для роста" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "Возраст пользователя" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "Возраст пользователя (устаревшее)." - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "Абсолютный возраст пользователя" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "Возраст пользователя в абсолютном выражении (например, 01/01/1970)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "Рост пользователя" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "Рост пользователя." - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "Цель пользователя в шагах" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "Количество шагов, которое пользователь хочет достичь ежедневно." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "Цель пользователя по весу" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "Вес, которого пользователь хочет достичь." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "Высота окна" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "Высота окна." - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "Окно развёрнуто" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "Развёрнуто ли окно." - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "Ширина окна" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "Ширина окна." +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "ID активного пользователя" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -319,7 +244,7 @@ msgstr "" "модуль, чтобы увидеть реальные, живые данные." #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "Шаги" @@ -357,88 +282,97 @@ msgstr "Настройки Здоровья" msgid "General" msgstr "Общие" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "Пользователь" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "Система единиц измерения" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "Имперская" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "Метрическая" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "Имя пользователя" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "День рождения" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "Рост" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "Уведомления" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "Включить уведомления" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "Частота" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "Время ежедневного напоминания" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "Цель в шагах" -#: data/ui/preferences_window.blp:170 +#: data/ui/preferences_window.blp:179 msgid "7,500 steps per day are recommended." msgstr "Рекомендуется делать 7500 шагов в день." -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "Цель по весу" -#: data/ui/preferences_window.blp:188 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "ВОЗ рекомендует ИМТ в пределах 18,5-24,9." -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "Целевой ИМТ" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "Синхронизация" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "Начните синхронизацию со сторонними провайдерами." -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "Импорт и экспорт данных" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "Экспорт данных в формате CSV" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "Экспортировать…" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "Импорт данных из CSV" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "Импортировать…" @@ -470,35 +404,39 @@ msgstr "Добро пожаловать в Здоровье!" msgid "Please enter some information to get setup." msgstr "Пожалуйста, введите некоторую информацию для настройки." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "Пожалуйста, введите свою ежедневную цель в шагах." -#: data/ui/setup_window.blp:224 +#: data/ui/setup_window.blp:236 msgid "The WHO recommends 7.500 steps per day." msgstr "ВОЗ рекомендует делать 7500 шагов в день." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "Пожалуйста, введите свою цель по весу." -#: data/ui/setup_window.blp:286 +#: data/ui/setup_window.blp:298 msgid "The WHO recommends a BMI of 18.5–24.9." msgstr "ВОЗ рекомендует ИМТ в пределах 18,5-24,9." -#: data/ui/setup_window.blp:314 +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "Текущий вес" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "Текущий ИМТ" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "Цель по весу" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "Настройка синхронизации со сторонними провайдерами." -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "" @@ -587,18 +525,18 @@ msgstr "О _Здоровье" msgid "Enable plugin" msgstr "Включить модуль" -#: src/core/application.rs:176 +#: src/core/application.rs:189 msgid "A health tracking app for the GNOME desktop." msgstr "" "Приложение для отслеживания состояния здоровья для рабочего стола GNOME." -#: src/core/application.rs:178 +#: src/core/application.rs:191 msgid "translator-credits" msgstr "" "Alexey Rubtsov , 2021\n" "Aleksandr Melman , 2022" -#: src/core/application.rs:180 +#: src/core/application.rs:193 msgid "Websites" msgstr "Вебсайты" @@ -733,18 +671,18 @@ msgstr[0] "{} сожжённая калория сегодня" msgstr[1] "{} сожжённые калории сегодня" msgstr[2] "{} сожжённых калорий сегодня" -#: src/plugins/steps/details.rs:186 +#: src/plugins/steps/details.rs:187 msgid "Today’s steps: {}" msgstr "Сегодняшние шаги: {}" -#: src/plugins/steps/details.rs:201 +#: src/plugins/steps/details.rs:206 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" "Пока нет непрерывных занятий. Достигайте своей цели по шагам в течение " "нескольких дней, чтобы начать полосу!" -#: src/plugins/steps/details.rs:205 +#: src/plugins/steps/details.rs:210 msgid "" "You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" @@ -759,13 +697,13 @@ msgstr[2] "" "Вы находитесь на непрерывной полосе в течение {} дней. Достигните своей цели " "по шагам сегодня, чтобы продолжить ее!" -#: src/plugins/steps/details.rs:213 +#: src/plugins/steps/details.rs:218 msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "" "Сегодня вы достигли своей цели по шагам. Продолжайте, чтобы начать " "непрерывную полосу!" -#: src/plugins/steps/details.rs:216 +#: src/plugins/steps/details.rs:221 msgid "You’re on a streak for {} day. Good job!" msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "У вас непрерывная полоса в {} день. Хорошая работа!" @@ -773,37 +711,37 @@ msgstr[1] "У вас непрерывная полоса в {} дня. Хоро msgstr[2] "У вас непрерывная полоса в {} дней. Хорошая работа!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} шаг на {}" msgstr[1] "{} шага на {}" msgstr[2] "{} шагов на {}" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "{} шаг сделан сегодня" msgstr[1] "{} шага сделано сегодня" msgstr[2] "{} шагов сделано сегодня" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "Достигнут {}%% ежедневной цели по шагам" msgstr[1] "Достигнут {}%% ежедневной цели по шагам" msgstr[2] "Достигнут {}%% ежедневной цели по шагам" -#: src/plugins/steps/summary.rs:112 +#: src/plugins/steps/summary.rs:114 msgid "Well done! You have reached your daily step goal!" msgstr "Отлично! Вы достигли своей ежедневной цели по шагам!" -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "Текущий ИМТ: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} фунт на {}" @@ -811,18 +749,18 @@ msgstr[1] "{} фунта на {}" msgstr[2] "{} фунтов на {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} килограмм на {}" msgstr[1] "{} килограмма на {}" msgstr[2] "{} килограммов на {}" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "Неизвестный ИМТ" -#: src/plugins/weight/details.rs:268 +#: src/plugins/weight/details.rs:280 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -839,7 +777,7 @@ msgstr[2] "" "Ваша цель по весу - {} фунтов. Добавьте первое измерение веса, чтобы узнать, " "насколько вы близки к ее достижению." -#: src/plugins/weight/details.rs:275 +#: src/plugins/weight/details.rs:287 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -856,39 +794,39 @@ msgstr[2] "" "Ваша цель по весу - {} килограммов. Добавьте первое измерение веса, чтобы " "узнать, насколько вы близки к ее достижению." -#: src/plugins/weight/details.rs:284 +#: src/plugins/weight/details.rs:296 msgid "You’ve reached your weight goal. Great job!" msgstr "Вы достигли своей цели по весу. Отличная работа!" -#: src/plugins/weight/details.rs:300 +#: src/plugins/weight/details.rs:312 msgid "Your weight goal is {} pound." msgid_plural "Your weight goal is {} pounds." msgstr[0] "Ваша цель по весу - {} фунт." msgstr[1] "Ваша цель по весу - {} фунта." msgstr[2] "Ваша цель по весу - {} фунтов." -#: src/plugins/weight/details.rs:305 +#: src/plugins/weight/details.rs:317 msgid "You have {} pound left to reach it." msgid_plural "You have {} pounds left to reach it." msgstr[0] "Вам остался {} фунт, чтобы достичь её." msgstr[1] "Вам осталось {} фунта, чтобы достичь её." msgstr[2] "Вам осталось {} фунтов, чтобы достичь её." -#: src/plugins/weight/details.rs:312 +#: src/plugins/weight/details.rs:324 msgid "Your weight goal is {} kilogram." msgid_plural "Your weight goal is {} kilograms." msgstr[0] "Ваша цель по весу - {} килограмм." msgstr[1] "Ваша цель по весу - {} килограмма." msgstr[2] "Ваша цель по весу - {} килограммов." -#: src/plugins/weight/details.rs:318 +#: src/plugins/weight/details.rs:330 msgid "You have {} kilogram left to reach it" msgid_plural "You have {} kilograms left to reach it" msgstr[0] "Вам остался {} килограмм, чтобы достичь её" msgstr[1] "Вам осталось {} килограмма, чтобы достичь её" msgstr[2] "Вам осталось {} килограммов, чтобы достичь её" -#: src/plugins/weight/details.rs:328 +#: src/plugins/weight/details.rs:340 msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" "Цель по весу пока не установлена. Вы можете установить ее в настройках " @@ -1056,10 +994,6 @@ msgstr[0] "{} ярд" msgstr[1] "{} ярда" msgstr[2] "{} ярдов" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -msgid "Current BMI" -msgstr "Текущий ИМТ" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "Текущий индекс массы тела {}" @@ -1199,18 +1133,77 @@ msgstr "Произошла ошибка!" msgid "Close" msgstr "Закрыть" -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "Целевой ИМТ" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "Не удалось перенести базу данных на новую версию из-за ошибки {}" - #: src/windows/window.rs:267 msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "Не удалось синхронизировать данные Google Fit из-за ошибки: {}" +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "Завершил ли пользователь работу с мастером настройки" + +#~ msgid "Whether to enable notifications." +#~ msgstr "Включать ли уведомления." + +#~ msgid "Sets all data source plugins that are enabled in Health." +#~ msgstr "" +#~ "Устанавливает все модули источников данных, которые включены в Здоровье." + +#~ msgid "The time at which Health should remind the user of their step goal" +#~ msgstr "" +#~ "Время, через которое Здоровье должно напоминать пользователю о цели в " +#~ "шагах" + +#~ msgid "" +#~ "How frequent should the user be notified to complete their daily step-" +#~ "goal." +#~ msgstr "" +#~ "Как часто пользователь должен получать уведомления о выполнении " +#~ "ежедневной цели по шагам." + +#~ msgid "" +#~ "Activity types the user used recently, to be shown first in the activity " +#~ "types selector’s list" +#~ msgstr "" +#~ "Виды деятельности, которые пользователь использовал в последнее время, " +#~ "которые будут показаны первыми в списке селектора видов деятельности" + +#~ msgid "Whether Google Fit has been setup as sync provider" +#~ msgstr "Настроен ли Google Fit в качестве поставщика синхронизации" + +#~ msgid "The last time we synched steps, weight etc. with Google Fit" +#~ msgstr "В последний раз мы синхронизировали шаги, вес и т.д. с Google Fit" + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "" +#~ "Система единиц измерения, выбранная пользователем, например, для см " +#~ "против дюйма для роста" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "Возраст пользователя (устаревшее)." + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "Возраст пользователя в абсолютном выражении (например, 01/01/1970)" + +#~ msgid "The height of the user." +#~ msgstr "Рост пользователя." + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "Количество шагов, которое пользователь хочет достичь ежедневно." + +#~ msgid "The weight the user wants to reach." +#~ msgstr "Вес, которого пользователь хочет достичь." + +#~ msgid "The height of the window." +#~ msgstr "Высота окна." + +#~ msgid "Whether the window is maximized." +#~ msgstr "Развёрнуто ли окно." + +#~ msgid "The width of the window." +#~ msgstr "Ширина окна." + +#~ msgid "Failed to migrate database to new version due to error {}" +#~ msgstr "Не удалось перенести базу данных на новую версию из-за ошибки {}" + #~ msgid "@APPLICATION_ID@" #~ msgstr "@APPLICATION_ID@" -- 2.40.1 From 6d519a499820b81ee763a3b6b2f392302bbc82c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ir=C3=A9n=C3=A9e=20THIRION?= Date: Sun, 18 Sep 2022 08:43:35 +0000 Subject: [PATCH 57/83] Update French translation --- po/fr.po | 521 +++++++++++++++++++++++++++---------------------------- 1 file changed, 260 insertions(+), 261 deletions(-) diff --git a/po/fr.po b/po/fr.po index b82b375..84a2310 100644 --- a/po/fr.po +++ b/po/fr.po @@ -1,177 +1,94 @@ # -# <>, 2022. # Kollboued <>, 2022. # Charles Monzat , 2022. +# Irénée THIRION , 2022. # msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-04-25 16:30+0000\n" -"PO-Revision-Date: 2022-04-27 15:02+0200\n" -"Last-Translator: Charles Monzat \n" +"POT-Creation-Date: 2022-09-14 08:27+0000\n" +"PO-Revision-Date: 2022-09-15 10:15+0200\n" +"Last-Translator: Guillaume Bernard \n" "Language-Team: GNOME French Team \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Gtranslator 40.0\n" +"X-Generator: Poedit 3.1.1\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" msgstr "Première configuration effectuée" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "Indique si l’utilisateur a terminé l’assistant de configuration" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "Basculer les notifications" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "Indique s’il faut activer les notifications." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "Configurer les greffons activés" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "" -"Configure tous les greffons de sources de données qui sont activés dans " -"Santé." - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "Heure de notification" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "" -"L’heure à laquelle Santé doit rappeler à l’utilisateur son objectif de pas" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "fréquence des notifications" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "" -"À quelle fréquence l’utilisateur doit être averti pour atteindre son " -"objectif quotidien de pas." - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "Liste des types d’activités récentes" -#: data/dev.Cogitri.Health.gschema.xml:42 -#| msgid "" -#| "Activity types the user used recently, to be shown first in the activity " -#| "types selector’s list" -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector's list" -msgstr "" -"Types d’activités utilisés récemment, à afficher en premier dans la liste du " -"sélecteur de types d’activités" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "Configuration du fournisseur de synchronisation Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "" -"Indique si Google Fit a été configuré en tant que fournisseur de " -"synchronisation" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "Dernière synchronisation avec Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "" -"La dernière fois que nous avons synchronisé les pas, le poids, etc. avec " -"Google Fit" - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "Système d’unités utilisé" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "" -"Le système d’unités choisi par l’utilisateur, par ex. cm ou pouces pour la " -"taille" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "Âge de l’utilisateur" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "L’âge de l’utilisateur (obsolète)." - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "Âge absolu de l’utilisateur" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "L’âge de l’utilisateur en termes absolus (comme 01/01/1970)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "Taille de l’utilisateur" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "La taille de l’utilisateur." - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "Objectif de pas de l’utilisateur" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "Le nombre de pas que l’utilisateur souhaite atteindre quotidiennement." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "Objectif de poids de l’utilisateur" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "Le poids que l’utilisateur veut atteindre." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "Taille de la fenêtre" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "La taille de la fenêtre." - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "Fenêtre maximisée" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "Indique si la fenêtre est maximisée." - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "Largeur de la fenêtre" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "La largeur de la fenêtre." +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "Identifiant d’utilisateur actif" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -180,29 +97,23 @@ msgstr "La largeur de la fenêtre." msgid "Health" msgstr "Santé" -#: data/dev.Cogitri.Health.Autostart.desktop.in.in:5 -#: data/dev.Cogitri.Health.desktop.in.in:5 -msgid "@APPLICATION_ID@" -msgstr "@APPLICATION_ID@" - -#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 src/core/application.rs:167 -msgid "A health tracking app for the GNOME desktop." -msgstr "Une application de suivi de la santé pour le bureau GNOME." +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 +msgid "Track your fitness goals" +msgstr "Suivez vos objectifs de forme physique" #: data/dev.Cogitri.Health.metainfo.xml.in.in:11 msgid "" -"A health tracking app for the GNOME desktop. Health can visualize how many " -"steps you've made daily, your weight development over time and your daily " -"activities. Data can be synched from Google Fit or manually entered into " -"Health. Afterwards, it can be viewed and edited in Health." +"Health can visualize how many steps you’ve made daily, your weight " +"development over time and your daily activities. Data can be synched from " +"Google Fit or manually entered into Health. Afterwards, it can be viewed and " +"edited in Health." msgstr "" -"Une application de suivi de la santé pour le bureau GNOME. Santé vous permet " -"de visualiser le nombre de pas que vous avez effectués quotidiennement, " +"Santé vous permet de visualiser combien de pas vous faites par jour, " "l’évolution de votre poids et vos activités quotidiennes. Les données " -"peuvent être synchronisées à partir de Google Fit ou saisies manuellement " -"dans Santé. Ensuite, elles peuvent être affichées et modifiées dans Santé." +"peuvent être synchronisées à partir de Google Fit ou entrées manuellement " +"dans Santé. Ensuite, elles peuvent être visualisées et modifiées dans Santé." -#: data/dev.Cogitri.Health.metainfo.xml.in.in:37 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:36 msgid "Rasmus “Cogitri” Thomsen" msgstr "Rasmus “Cogitri” Thomsen" @@ -217,63 +128,63 @@ msgstr "A_nnuler" msgid "_Save" msgstr "_Enregister" -#: data/ui/date_selector.blp:17 +#: data/ui/date_selector.blp:18 msgid "January" msgstr "Janvier" -#: data/ui/date_selector.blp:18 src/widgets/date_selector.rs:223 +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:223 msgid "February" msgstr "Février" -#: data/ui/date_selector.blp:19 +#: data/ui/date_selector.blp:20 msgid "March" msgstr "Mars" -#: data/ui/date_selector.blp:20 +#: data/ui/date_selector.blp:21 msgid "April" msgstr "Avril" -#: data/ui/date_selector.blp:21 +#: data/ui/date_selector.blp:22 msgid "May" msgstr "Mai" -#: data/ui/date_selector.blp:22 +#: data/ui/date_selector.blp:23 msgid "June" msgstr "Juin" -#: data/ui/date_selector.blp:23 +#: data/ui/date_selector.blp:24 msgid "July" msgstr "Juillet" -#: data/ui/date_selector.blp:24 +#: data/ui/date_selector.blp:25 msgid "August" msgstr "Août" -#: data/ui/date_selector.blp:25 +#: data/ui/date_selector.blp:26 msgid "September" msgstr "Septembre" -#: data/ui/date_selector.blp:26 +#: data/ui/date_selector.blp:27 msgid "October" msgstr "Octobre" -#: data/ui/date_selector.blp:27 +#: data/ui/date_selector.blp:28 msgid "November" msgstr "Novembre" -#: data/ui/date_selector.blp:28 +#: data/ui/date_selector.blp:29 msgid "December" msgstr "Décembre" -#: data/ui/date_selector.blp:34 +#: data/ui/date_selector.blp:35 msgid "Day" msgstr "Jour" -#: data/ui/date_selector.blp:60 +#: data/ui/date_selector.blp:61 msgid "Month" msgstr "Mois" -#: data/ui/date_selector.blp:83 +#: data/ui/date_selector.blp:84 msgid "Year" msgstr "Année" @@ -332,7 +243,7 @@ msgstr "" "le pour voir vos données réelles en direct." #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "Pas" @@ -371,88 +282,97 @@ msgstr "Préférences de Santé" msgid "General" msgstr "Général" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "Utilisateur" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "Système d’unités" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "Impérial" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "Métrique" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "Nom d’utilisateur" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "Anniversaire" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "Taille" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "Notifications" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "Activer les notifications" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "Fréquence" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "Heure de rappel quotidienne" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "Objectif de pas" -#: data/ui/preferences_window.blp:170 -msgid "The WHO recommends 10,000 steps per day." -msgstr "L’OMS recommande 10.000 pas par jour." +#: data/ui/preferences_window.blp:179 +msgid "7,500 steps per day are recommended." +msgstr "Il est recommandé de faire 7 500 pas par jour." -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "Objectif de poids" -#: data/ui/preferences_window.blp:188 data/ui/setup_window.blp:286 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "L’OMS recommande un IMC entre 18,5 et 24,9." -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "IMC cible" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "Synchronisation" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "Lancer la synchronisation avec des fournisseurs tiers." -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "Importation et exportation de données" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "Exporter les données en CSV" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "Exporter…" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "Importer des données en CSV" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "Importer…" @@ -484,31 +404,39 @@ msgstr "Bienvenue dans Santé !" msgid "Please enter some information to get setup." msgstr "Veuillez saisir quelques informations pour la mise en route." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "Veuillez saisir votre objectif de pas quotidien." -#: data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." -msgstr "L’OMS recommande 10.000 pas par jour." +#: data/ui/setup_window.blp:236 +msgid "The WHO recommends 7.500 steps per day." +msgstr "L’OMS recommande 7 500 pas par jour." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "Veuillez saisir votre objectif de poids." -#: data/ui/setup_window.blp:314 +#: data/ui/setup_window.blp:298 +msgid "The WHO recommends a BMI of 18.5–24.9." +msgstr "L’OMS recommande un IMC entre 18,5 et 24,9." + +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "Poids actuel" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "IMC actuel" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "Objectif de poids" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "Configuration de la synchronisation avec des fournisseurs tiers." -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "" @@ -598,13 +526,17 @@ msgstr "À _propos de Santé" msgid "Enable plugin" msgstr "Désactiver le greffon" -#: src/core/application.rs:169 +#: src/core/application.rs:189 +msgid "A health tracking app for the GNOME desktop." +msgstr "Une application de suivi de la santé pour le bureau GNOME." + +#: src/core/application.rs:191 msgid "translator-credits" msgstr "" "Kollboued\n" "Alexandre Franke" -#: src/core/application.rs:171 +#: src/core/application.rs:193 msgid "Websites" msgstr "Sites web" @@ -732,22 +664,22 @@ msgid_plural "{} calories burned today" msgstr[0] "{} calorie brûlée aujourd’hui" msgstr[1] "{} calories brûlées aujourd’hui" -#: src/plugins/steps/details.rs:186 -msgid "Today's steps: {}" +#: src/plugins/steps/details.rs:187 +msgid "Today’s steps: {}" msgstr "Les pas d’aujourd’hui : {}" -#: src/plugins/steps/details.rs:201 +#: src/plugins/steps/details.rs:206 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" "Pas encore de série. Atteignez votre objectif de pas pendant plusieurs jours " "pour commencer une série !" -#: src/plugins/steps/details.rs:205 +#: src/plugins/steps/details.rs:210 msgid "" -"You're on a streak for {} day. Reach your step goal today to continue it!" +"You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" -"You're on a streak for {} days. Reach your step goal today to continue it!" +"You’re on a streak for {} days. Reach your step goal today to continue it!" msgstr[0] "" "Vous êtes sur une série de {} jour. Atteignez votre objectif de pas " "aujourd’hui pour continuer !" @@ -755,64 +687,64 @@ msgstr[1] "" "Vous êtes sur une série de {} jours. Atteignez votre objectif de pas " "aujourd’hui pour continuer !" -#: src/plugins/steps/details.rs:213 -msgid "You've reached your step goal today. Keep going to start a streak!" +#: src/plugins/steps/details.rs:218 +msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "" "Vous avez atteint votre objectif de pas aujourd’hui. Continuez pour " "commencer une série !" -#: src/plugins/steps/details.rs:216 -msgid "You're on a streak for {} day. Good job!" -msgid_plural "You're on a streak for {} days. Good job!" -msgstr[0] "Vous êtes sur une série de {} jour. Bon travail !" -msgstr[1] "Vous êtes sur une série de {} jours. Bon travail !" +#: src/plugins/steps/details.rs:221 +msgid "You’re on a streak for {} day. Good job!" +msgid_plural "You’re on a streak for {} days. Good job!" +msgstr[0] "Vous êtes sur une série de {} jour. Bravo !" +msgstr[1] "Vous êtes sur une série de {} jours. Bravo !" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} pas sur {}" msgstr[1] "{} pas sur {}" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "{} pas effectué aujourd’hui" msgstr[1] "{} pas effectués aujourd’hui" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "{} % de l’objectif de pas quotidien atteint" msgstr[1] "{} % de l’objectif de pas quotidien atteint" -#: src/plugins/steps/summary.rs:112 +#: src/plugins/steps/summary.rs:114 msgid "Well done! You have reached your daily step goal!" msgstr "Bravo ! Vous avez atteint votre objectif de pas quotidien !" -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "IMC actuel : {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} livre le {}" msgstr[1] "{} livres le {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} kilogramme le {}" msgstr[1] "{} kilogrammes le {}" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "IMC inconnu" -#: src/plugins/weight/details.rs:270 +#: src/plugins/weight/details.rs:280 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -826,7 +758,7 @@ msgstr[1] "" "Votre objectif de poids est de {} livres. Ajoutez une première mesure de " "poids pour voir à quel point vous êtes près de l’atteindre." -#: src/plugins/weight/details.rs:277 +#: src/plugins/weight/details.rs:287 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -840,40 +772,36 @@ msgstr[1] "" "Votre objectif de poids est de {} kilogrammes. Ajoutez une première mesure " "de poids pour voir à quel point vous êtes près de l’atteindre." -#: src/plugins/weight/details.rs:286 -msgid "You've reached your weight goal. Great job!" -msgstr "Vous avez atteint votre objectif de poids. Bon travail !" - -#. TRANSLATORS: First part of message, ends with [...] you have {} pound left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:302 -msgid "Your weight goal is {} pound," -msgid_plural "Your weight goal is {} pounds," -msgstr[0] "Votre objectif de poids est {} livre," -msgstr[1] "Votre objectif de poids est {} livres," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:307 -msgid "you have {} pound left to reach it" -msgid_plural "you have {} pounds left to reach it" -msgstr[0] "vous avez {} livre restante pour l’atteindre" -msgstr[1] "vous avez {} livres restantes pour l’atteindre" - -#. TRANSLATORS: First part of message, ends with [...] you have {} kilogram left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:314 -msgid "Your weight goal is {} kilogram," -msgid_plural "Your weight goal is {} kilograms," -msgstr[0] "Votre objectif de poids est {} kilogramme," -msgstr[1] "Votre objectif de poids est {} kilogrammes," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:320 -msgid "you have {} kilogram left to reach it" -msgid_plural "you have {} kilograms left to reach it" -msgstr[0] "vous avez {} kilogramme restant pour l’atteindre" -msgstr[1] "vous avez {} kilogrammes restants pour l’atteindre" +#: src/plugins/weight/details.rs:296 +msgid "You’ve reached your weight goal. Great job!" +msgstr "Vous avez atteint votre objectif de poids. Bravo !" + +#: src/plugins/weight/details.rs:312 +msgid "Your weight goal is {} pound." +msgid_plural "Your weight goal is {} pounds." +msgstr[0] "Votre objectif de poids est {} livre." +msgstr[1] "Votre objectif de poids est {} livres." + +#: src/plugins/weight/details.rs:317 +msgid "You have {} pound left to reach it." +msgid_plural "You have {} pounds left to reach it." +msgstr[0] "Il vous reste {} livre pour l’atteindre." +msgstr[1] "Il vous reste {} livres pour l’atteindre." + +#: src/plugins/weight/details.rs:324 +msgid "Your weight goal is {} kilogram." +msgid_plural "Your weight goal is {} kilograms." +msgstr[0] "Votre objectif de poids est {} kilogramme." +msgstr[1] "Votre objectif de poids est {} kilogrammes." #: src/plugins/weight/details.rs:330 -msgid "No weight goal set yet. You can set it in Health's preferences." +msgid "You have {} kilogram left to reach it" +msgid_plural "You have {} kilograms left to reach it" +msgstr[0] "Il vous reste {} kilogramme pour l’atteindre." +msgstr[1] "Il vous reste {} kilogrammes pour l’atteindre." + +#: src/plugins/weight/details.rs:340 +msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" "Pas encore d’objectif de poids défini. Vous pouvez le définir dans les " "préférences de Santé." @@ -923,41 +851,41 @@ msgid "No weight data available" msgstr "Aucune donnée de poids disponible" #: src/sync/csv.rs:81 src/sync/csv.rs:370 -msgid "No activities added yet; can't create empty export!" +msgid "No activities added yet; can’t create empty export!" msgstr "" "Aucune activité ajoutée pour le moment ; impossible de créer une exportation " "vide !" #: src/sync/csv.rs:111 src/sync/csv.rs:388 -msgid "No weight measurements added yet; can't create empty export!" +msgid "No weight measurements added yet; can’t create empty export!" msgstr "" "Aucune mesure de poids n’a encore été ajoutée ; impossible de créer une " "exportation vide !" #: src/sync/csv.rs:184 src/sync/csv.rs:332 -msgid "Can't parse encrypted backup without encryption key!" +msgid "Can’t parse encrypted backup without encryption key!" msgstr "" "Impossible d’analyser la sauvegarde chiffrée sans la clé de chiffrement !" #: src/sync/csv.rs:195 src/sync/csv.rs:352 msgid "" -"Couldn't parse CSV. Are you trying to read an unencrypted backup as an " +"Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " "encrypted one?" msgstr "" "Impossible d’analyser le CSV. Essayez-vous de lire une sauvegarde non " "chiffrée comme une sauvegarde chiffrée ?" #: src/sync/csv.rs:208 -msgid "Couldn't decrypt data. Are you sure you're using the right key?" +msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" msgstr "" "Impossible de déchiffrer les données. Êtes-vous sûr d’utiliser la bonne clé ?" #: src/sync/database_receiver.rs:46 -msgid "Couldn't synchronize steps due to error {}" +msgid "Couldn’t synchronize steps due to error {}" msgstr "Impossible de synchroniser les pas en raison d’une erreur {}" #: src/sync/database_receiver.rs:60 -msgid "Couldn't synchronize weight measurements due to error {}" +msgid "Couldn’t synchronize weight measurements due to error {}" msgstr "" "Impossible de synchroniser les mesures de poids en raison d’une erreur {}" @@ -971,7 +899,7 @@ msgstr "La demande de jeton OAuth2 a échoué en raison d’une erreur {}" #: src/sync/sync_provider.rs:109 msgid "" -"Can't retrieve OAuth2 token when no refresh token is set! Please re-" +"Can’t retrieve OAuth2 token when no refresh token is set! Please re-" "authenticate with your sync provider." msgstr "" "Impossible de récupérer le jeton OAuth2 quand aucun jeton d’actualisation " @@ -987,7 +915,7 @@ msgid "Successfully authenticated, please return to Health." msgstr "Authentification réussie, veuillez retourner dans Santé." #: src/sync/sync_provider.rs:228 -msgid "Couldn't parse OAuth2 response" +msgid "Couldn’t parse OAuth2 response" msgstr "Impossible d’analyser la réponse OAuth2" #: src/views/bar_graph_view.rs:583 @@ -1037,10 +965,6 @@ msgid_plural "{} yards" msgstr[0] "{} verge" msgstr[1] "{} verges" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -msgid "Current BMI" -msgstr "IMC actuel" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "IMC actuel : {}" @@ -1062,42 +986,42 @@ msgid "Feet" msgstr "Pieds" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "in" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "ft" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "mi" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "lb" @@ -1115,6 +1039,11 @@ msgstr "Activités.csv.encrypted" msgid "Activities.csv" msgstr "Activités.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Aucun fichier sélectionné." + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "Enregistrer les mesures de poids" @@ -1175,18 +1104,88 @@ msgstr "Une erreur s’est produite !" msgid "Close" msgstr "Fermer" -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "IMC cible" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "" -"Échec de la migration de la base de données vers la nouvelle version en " -"raison d’une erreur {}" - #: src/windows/window.rs:267 -msgid "Couldn't sync Google Fit data due to error: {}" +msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "" "Impossible de synchroniser les données avec Google Fit en raison d’une " "erreur : {}" + +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "Indique si l’utilisateur a terminé l’assistant de configuration" + +#~ msgid "Whether to enable notifications." +#~ msgstr "Indique s’il faut activer les notifications." + +#~ msgid "Sets all data source plugins that are enabled in Health." +#~ msgstr "" +#~ "Configure tous les greffons de sources de données qui sont activés dans " +#~ "Santé." + +#~ msgid "The time at which Health should remind the user of their step goal" +#~ msgstr "" +#~ "L’heure à laquelle Santé doit rappeler à l’utilisateur son objectif de pas" + +#~ msgid "" +#~ "How frequent should the user be notified to complete their daily step-" +#~ "goal." +#~ msgstr "" +#~ "À quelle fréquence l’utilisateur doit être averti pour atteindre son " +#~ "objectif quotidien de pas." + +#~ msgid "" +#~ "Activity types the user used recently, to be shown first in the activity " +#~ "types selector’s list" +#~ msgstr "" +#~ "Types d’activités utilisés récemment, à afficher en premier dans la liste " +#~ "du sélecteur de types d’activités" + +#~ msgid "Whether Google Fit has been setup as sync provider" +#~ msgstr "" +#~ "Indique si Google Fit a été configuré en tant que fournisseur de " +#~ "synchronisation" + +#~ msgid "The last time we synched steps, weight etc. with Google Fit" +#~ msgstr "" +#~ "La dernière fois que nous avons synchronisé les pas, le poids, etc. avec " +#~ "Google Fit" + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "" +#~ "Le système d’unités choisi par l’utilisateur, par ex. cm ou pouces pour " +#~ "la taille" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "L’âge de l’utilisateur (obsolète)." + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "L’âge de l’utilisateur en termes absolus (comme 01/01/1970)" + +#~ msgid "The height of the user." +#~ msgstr "La taille de l’utilisateur." + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "" +#~ "Le nombre de pas que l’utilisateur souhaite atteindre quotidiennement." + +#~ msgid "The weight the user wants to reach." +#~ msgstr "Le poids que l’utilisateur veut atteindre." + +#~ msgid "The height of the window." +#~ msgstr "La taille de la fenêtre." + +#~ msgid "Whether the window is maximized." +#~ msgstr "Indique si la fenêtre est maximisée." + +#~ msgid "The width of the window." +#~ msgstr "La largeur de la fenêtre." + +#~ msgid "Failed to migrate database to new version due to error {}" +#~ msgstr "" +#~ "Échec de la migration de la base de données vers la nouvelle version en " +#~ "raison d’une erreur {}" + +#~ msgid "@APPLICATION_ID@" +#~ msgstr "@APPLICATION_ID@" + +#~ msgid "The WHO recommends 10,000 steps per day." +#~ msgstr "L’OMS recommande 10.000 pas par jour." -- 2.40.1 From 8f4f9aa9ce5cdd56d03c11400c9c40ac75b18da1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20=C3=9Ar?= Date: Sun, 18 Sep 2022 14:30:11 +0000 Subject: [PATCH 58/83] Add Hungarian translation --- po/LINGUAS | 1 + po/hu.po | 1101 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1102 insertions(+) create mode 100644 po/hu.po diff --git a/po/LINGUAS b/po/LINGUAS index 114db99..9acc595 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -10,6 +10,7 @@ fr gl he hr +hu id it nl diff --git a/po/hu.po b/po/hu.po new file mode 100644 index 0000000..0010a37 --- /dev/null +++ b/po/hu.po @@ -0,0 +1,1101 @@ +# Hungarian translation for health. +# Copyright (C) 2022 Free Software Foundation, Inc. +# This file is distributed under the same license as the health package. +# +# Balázs Úr , 2022. +msgid "" +msgstr "" +"Project-Id-Version: health master\n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" +"POT-Creation-Date: 2022-09-18 08:43+0000\n" +"PO-Revision-Date: 2022-09-18 16:28+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 19.12.3\n" + +#: data/dev.Cogitri.Health.gschema.xml:16 +msgid "First time setup done" +msgstr "Első alkalommal végzett beállítás kész" + +#: data/dev.Cogitri.Health.gschema.xml:20 +msgid "Toggle notifications" +msgstr "Értesítések be- és kikapcsolása" + +#: data/dev.Cogitri.Health.gschema.xml:24 +msgid "Set enabled plugins" +msgstr "Engedélyezett bővítmények beállítása" + +#: data/dev.Cogitri.Health.gschema.xml:28 +msgid "Notification time" +msgstr "Értesítés ideje" + +#: data/dev.Cogitri.Health.gschema.xml:32 +msgid "notification frequency" +msgstr "értesítés gyakorisága" + +#: data/dev.Cogitri.Health.gschema.xml:36 +msgid "List of recent activity types" +msgstr "Legutóbbi tevékenységtípusok listája" + +#: data/dev.Cogitri.Health.gschema.xml:40 +msgid "Google Fit Sync-Provider setup" +msgstr "Google Fit szinkronizációszolgáltató beállítása" + +#: data/dev.Cogitri.Health.gschema.xml:44 +msgid "Last sync with Google Fit" +msgstr "Utolsó szinkronizálás a Google Fittel" + +#: data/dev.Cogitri.Health.gschema.xml:48 +msgid "Unit system used" +msgstr "Használt mértékegységrendszer" + +#: data/dev.Cogitri.Health.gschema.xml:52 +msgid "User age" +msgstr "Felhasználó életkora" + +#: data/dev.Cogitri.Health.gschema.xml:56 +msgid "Absolute user age" +msgstr "Felhasználó abszolút életkora" + +#: data/dev.Cogitri.Health.gschema.xml:60 +msgid "User height" +msgstr "Felhasználó magassága" + +#: data/dev.Cogitri.Health.gschema.xml:64 +msgid "User step goal" +msgstr "Felhasználó lépéscélja" + +#: data/dev.Cogitri.Health.gschema.xml:68 +msgid "User weight goal" +msgstr "Felhasználó súlycélja" + +#: data/dev.Cogitri.Health.gschema.xml:72 +msgid "Window height" +msgstr "Ablak magassága" + +#: data/dev.Cogitri.Health.gschema.xml:76 +msgid "Window maximized" +msgstr "Teljes méretű ablak" + +#: data/dev.Cogitri.Health.gschema.xml:80 +msgid "Window width" +msgstr "Ablak szélessége" + +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "Aktív felhasználó azonosítója" + +#: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 +#: data/dev.Cogitri.Health.desktop.in.in:3 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:4 data/ui/window.blp:37 +#: src/main.rs:31 +msgid "Health" +msgstr "Egészség" + +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 +msgid "Track your fitness goals" +msgstr "Fitneszcélok követése" + +#: data/dev.Cogitri.Health.metainfo.xml.in.in:11 +msgid "" +"Health can visualize how many steps you’ve made daily, your weight " +"development over time and your daily activities. Data can be synched from " +"Google Fit or manually entered into Health. Afterwards, it can be viewed and " +"edited in Health." +msgstr "" +"Az Egészség megjelenítheti, hogy hány lépést tett meg naponta, a testsúlyának" +" időbeli alakulását és a napi tevékenységeit. Az adatok szinkronizálhatók a" +" Google Fitből, vagy kézzel is beírhatók az Egészségbe. Ezt követően az" +" adatok megtekinthetők és szerkeszthetők az Egészségben." + +#: data/dev.Cogitri.Health.metainfo.xml.in.in:36 +msgid "Rasmus “Cogitri” Thomsen" +msgstr "Rasmus „Cogitri” Thomsen" + +#: data/ui/data_add_dialog.blp:5 data/ui/import_export_dialog_base.blp:5 +#: src/windows/export_dialog.rs:53 src/windows/export_dialog.rs:89 +#: src/windows/import_dialog.rs:53 src/windows/import_dialog.rs:82 +msgid "_Cancel" +msgstr "_Mégse" + +#: data/ui/data_add_dialog.blp:10 src/windows/export_dialog.rs:52 +#: src/windows/export_dialog.rs:88 +msgid "_Save" +msgstr "_Mentés" + +#: data/ui/date_selector.blp:18 +msgid "January" +msgstr "Január" + +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:223 +msgid "February" +msgstr "Február" + +#: data/ui/date_selector.blp:20 +msgid "March" +msgstr "Március" + +#: data/ui/date_selector.blp:21 +msgid "April" +msgstr "Április" + +#: data/ui/date_selector.blp:22 +msgid "May" +msgstr "Május" + +#: data/ui/date_selector.blp:23 +msgid "June" +msgstr "Június" + +#: data/ui/date_selector.blp:24 +msgid "July" +msgstr "Július" + +#: data/ui/date_selector.blp:25 +msgid "August" +msgstr "Augusztus" + +#: data/ui/date_selector.blp:26 +msgid "September" +msgstr "Szeptember" + +#: data/ui/date_selector.blp:27 +msgid "October" +msgstr "Október" + +#: data/ui/date_selector.blp:28 +msgid "November" +msgstr "November" + +#: data/ui/date_selector.blp:29 +msgid "December" +msgstr "December" + +#: data/ui/date_selector.blp:35 +msgid "Day" +msgstr "Nap" + +#: data/ui/date_selector.blp:61 +msgid "Month" +msgstr "Hónap" + +#: data/ui/date_selector.blp:84 +msgid "Year" +msgstr "Év" + +#: data/ui/distance_action_row.blp:11 src/widgets/activity_row.rs:131 +msgid "Distance" +msgstr "Távolság" + +#: data/ui/import_export_dialog_base.blp:10 +msgid "_Export" +msgstr "_Exportálás" + +#: data/ui/import_export_dialog_base.blp:56 +msgid "Export weight measurements" +msgstr "Súlymérések exportálása" + +#: data/ui/import_export_dialog_base.blp:69 +msgid "Encrypt export" +msgstr "Exportálás titkosítása" + +#: data/ui/password_entry.blp:9 +msgid "_Password" +msgstr "_Jelszó" + +#: data/ui/password_entry.blp:40 +msgid "_Confirm password" +msgstr "Jelszó _megerősítése" + +#: data/ui/plugins/activities/details.blp:5 +#: data/ui/plugins/calories/details.blp:4 data/ui/plugins/steps/details.blp:4 +msgid "You can use the + button to add a new activity." +msgstr "A + gomb használatával adhat hozzá új tevékenységet." + +#: data/ui/plugins/activities/details.blp:8 +msgid "Recent Activities" +msgstr "Legutóbbi tevékenységek" + +#: data/ui/plugins/activities/summary.blp:5 data/ui/view_add_activity.blp:84 +msgid "Active Minutes" +msgstr "Aktív percek" + +#: data/ui/plugins/calories/details.blp:7 src/plugins/calories/plugin.rs:39 +msgid "Calories" +msgstr "Kalóriák" + +#: data/ui/plugins/calories/summary.blp:5 data/ui/view_add_activity.blp:66 +msgid "Calories Burned" +msgstr "Elégetett kalóriák" + +#: data/ui/plugins/details.blp:68 +msgid "" +"This is a preview of how the plugin presents data. Enable the plugin to see " +"your actual, live data." +msgstr "" +"Ez annak az előnézete, hogy a bővítmény hogyan jeleníti meg az adatokat." +" Engedélyezze a bővítményt, hogy láthassa a tényleges, élő adatokat." + +#: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 +msgid "Steps" +msgstr "Lépések" + +#: data/ui/plugins/weight/details.blp:5 +msgid "You can use the + button to add a new weight measurement." +msgstr "A + gomb használatával adhat hozzá új súlymérést." + +#: data/ui/plugins/weight/details.blp:8 +msgid "Weight Measurements" +msgstr "Súlymérések" + +#: data/ui/plugins/weight/summary.blp:5 data/ui/view_add_weight.blp:38 +#: src/plugins/weight/plugin.rs:39 src/views/view_add_weight.rs:87 +msgid "Weight" +msgstr "Súly" + +#: data/ui/preferences_window.blp:43 +msgid "_Every 1 hour" +msgstr "_1 óránként" + +#: data/ui/preferences_window.blp:49 +msgid "_Every 4 hours" +msgstr "_4 óránként" + +#: data/ui/preferences_window.blp:55 +msgid "_Fixed Time" +msgstr "_Rögzített idő" + +#: data/ui/preferences_window.blp:63 +msgid "Health Preferences" +msgstr "Egészség beállításai" + +#: data/ui/preferences_window.blp:69 data/ui/shortcuts_window.blp:11 +msgid "General" +msgstr "Általános" + +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 +msgid "User" +msgstr "Felhasználó" + +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 +msgid "Unit system" +msgstr "Mértékegységrendszer" + +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 +msgid "Imperial" +msgstr "Birodalmi" + +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 +msgid "Metric" +msgstr "Metrikus" + +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "Felhasználónév" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 +msgid "Birthday" +msgstr "Születésnap" + +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 +msgid "Height" +msgstr "Magasság" + +#: data/ui/preferences_window.blp:131 +msgid "Notifications" +msgstr "Értesítések" + +#: data/ui/preferences_window.blp:134 +msgid "Enable notifications" +msgstr "Értesítések engedélyezése" + +#: data/ui/preferences_window.blp:145 +msgid "Frequency" +msgstr "Gyakoriság" + +#: data/ui/preferences_window.blp:158 +msgid "Daily reminder time" +msgstr "Napi emlékeztető ideje" + +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 +msgid "Step goal" +msgstr "Lépéscél" + +#: data/ui/preferences_window.blp:179 +msgid "7,500 steps per day are recommended." +msgstr "Napi 7500 lépés az ajánlott." + +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 +msgid "Weight Goal" +msgstr "Súlycél" + +#: data/ui/preferences_window.blp:196 +msgid "The WHO recommends a BMI of 18.5-24.9." +msgstr "" +"Az Egészségügyi Világszervezet 18,5–24,9 közötti testtömegindexet javasol." + +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "Testtömegindexcél" + +#: data/ui/preferences_window.blp:220 +msgid "Sync" +msgstr "Szinkronizálás" + +#: data/ui/preferences_window.blp:224 +msgid "Start sync with third-party providers." +msgstr "Szinkronizálás indítása harmadik fél szolgáltatókkal." + +#: data/ui/preferences_window.blp:232 +msgid "Importing and exporting data" +msgstr "Adatok importálása és exportálása" + +#: data/ui/preferences_window.blp:235 +msgid "Export data as CSV" +msgstr "Adatok exportálása CSV-ként" + +#: data/ui/preferences_window.blp:238 +msgid "Export…" +msgstr "Exportálás…" + +#: data/ui/preferences_window.blp:245 +msgid "Import data from CSV" +msgstr "Adatok importálása CSV-ből" + +#: data/ui/preferences_window.blp:248 +msgid "Import…" +msgstr "Importálás…" + +#: data/ui/setup_window.blp:39 +msgid "Health Setup" +msgstr "Egészség beállítása" + +#: data/ui/setup_window.blp:53 +msgid "_Quit" +msgstr "_Kilépés" + +#: data/ui/setup_window.blp:62 +msgid "_Previous" +msgstr "_Előző" + +#: data/ui/setup_window.blp:77 +msgid "_Next" +msgstr "_Következő" + +#: data/ui/setup_window.blp:90 +msgid "_Done" +msgstr "_Kész" + +#: data/ui/setup_window.blp:116 +msgid "Welcome to Health!" +msgstr "Üdvözli az Egészség!" + +#: data/ui/setup_window.blp:128 +msgid "Please enter some information to get setup." +msgstr "Adjon meg néhány információt a beállításhoz." + +#: data/ui/setup_window.blp:224 +msgid "Please enter your daily step goal." +msgstr "Adja meg a napi lépéscélját." + +#: data/ui/setup_window.blp:236 +msgid "The WHO recommends 7.500 steps per day." +msgstr "Az Egészségügyi Világszervezet napi 7500 lépés javasol." + +#: data/ui/setup_window.blp:286 +msgid "Please enter your weight goal." +msgstr "Adja meg a súlycélját." + +#: data/ui/setup_window.blp:298 +msgid "The WHO recommends a BMI of 18.5–24.9." +msgstr "" +"Az Egészségügyi Világszervezet 18,5–24,9 közötti testtömegindexet javasol." + +#: data/ui/setup_window.blp:326 +msgid "Current weight" +msgstr "Jelenlegi súly" + +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "Jelenlegi testtömegindex" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 +msgid "Weight goal" +msgstr "Súlycél" + +#: data/ui/setup_window.blp:386 +msgid "Setup sync with third-party providers." +msgstr "Szinkronizálás beállítása harmadik fél szolgáltatókkal." + +#: data/ui/setup_window.blp:398 +msgid "" +"You can sync steps and weight measurements from/to third-party providers." +msgstr "" +"Szinkronizálhatja a lépés- és súlyméréseket harmadik fél szolgáltatóktól vagy" +" szolgáltatókhoz." + +#: data/ui/shortcuts_window.blp:15 +msgid "Quit the application" +msgstr "Kilépés az alkalmazásból" + +#: data/ui/shortcuts_window.blp:20 +msgid "Show this shortcuts window" +msgstr "Ennek a gyorsbillentyűablaknak a megjelenítése" + +#: data/ui/shortcuts_window.blp:25 +msgid "Show help" +msgstr "Súgó megjelenítése" + +#: data/ui/shortcuts_window.blp:30 +msgid "Show primary menu" +msgstr "Elsődleges menü megjelenítése" + +#: data/ui/shortcuts_window.blp:35 +msgid "Toggle fullscreen mode" +msgstr "Teljes képernyős mód be- és kikapcsolása" + +#: data/ui/sync_list_box.blp:30 +msgid "Google Fit" +msgstr "Google Fit" + +#: data/ui/view_add_activity.blp:45 data/ui/view_add_weight.blp:30 +msgid "Date" +msgstr "Dátum" + +#: data/ui/view_add_activity.blp:57 +msgid "Activity Type" +msgstr "Tevékenység típusa" + +#: data/ui/view_add_activity.blp:97 +msgid "Average Heart Rate" +msgstr "Átlagos pulzusszám" + +#: data/ui/view_add_activity.blp:109 +msgid "Minimum Heart Rate" +msgstr "Legkisebb pulzusszám" + +#: data/ui/view_add_activity.blp:121 +msgid "Maximum Heart Rate" +msgstr "Legnagyobb pulzusszám" + +#: data/ui/view_add_activity.blp:133 +msgid "Stepcount" +msgstr "Lépésszám" + +#: data/ui/view_home_page.blp:61 +msgid "For you" +msgstr "Önnek" + +#: data/ui/view_home_page.blp:86 +msgid "" +"No plugins enabled. Enable one from the list below to start using Health." +msgstr "" +"Nincsenek engedélyezett bővítmények. Engedélyezzen egyet az alábbi listából" +" az Egészség használatának megkezdéséhez." + +#: data/ui/view_home_page.blp:107 +msgid "All data" +msgstr "Összes adat" + +#: data/ui/window.blp:8 +msgid "_Disable Current Plugin" +msgstr "Jelenlegi bővítmény _letiltása" + +#: data/ui/window.blp:15 +msgid "_Preferences" +msgstr "_Beállítások" + +#: data/ui/window.blp:20 +msgid "_Keyboard Shortcuts" +msgstr "_Gyorsbillentyűk" + +#: data/ui/window.blp:27 +msgid "_About Health" +msgstr "Az Egészség _névjegye" + +#: data/ui/window.blp:69 +msgid "Enable plugin" +msgstr "Bővítmény engedélyezése" + +#: src/core/application.rs:189 +msgid "A health tracking app for the GNOME desktop." +msgstr "" +"Egy egészségi állapotot nyomon követő alkalmazás a GNOME asztali környezethez." + +#: src/core/application.rs:191 +msgid "translator-credits" +msgstr "Úr Balázs , 2022." + +#: src/core/application.rs:193 +msgid "Websites" +msgstr "Weboldalak" + +#: src/model/activity_info.rs:83 +msgid "Basketball" +msgstr "Kosárlabda" + +#: src/model/activity_info.rs:93 +msgid "Bicycling" +msgstr "Kerékpározás" + +#: src/model/activity_info.rs:102 +msgid "Boxing" +msgstr "Bokszolás" + +#: src/model/activity_info.rs:111 +msgid "Dancing" +msgstr "Táncolás" + +#: src/model/activity_info.rs:120 +msgid "Football" +msgstr "Labdarúgás" + +#: src/model/activity_info.rs:127 +msgid "Golf" +msgstr "Golf" + +#: src/model/activity_info.rs:138 +msgid "Hiking" +msgstr "Túrázás" + +#: src/model/activity_info.rs:147 +msgid "Hockey" +msgstr "Jégkorong" + +#: src/model/activity_info.rs:157 +msgid "Horse Riding" +msgstr "Lovaglás" + +#: src/model/activity_info.rs:166 +msgid "Other Sports" +msgstr "Egyéb sportok" + +#: src/model/activity_info.rs:176 +msgid "Rollerblading" +msgstr "Görkorcsolyázás" + +#: src/model/activity_info.rs:187 +msgid "Running" +msgstr "Futás" + +#: src/model/activity_info.rs:197 +msgid "Skiing" +msgstr "Síelés" + +#: src/model/activity_info.rs:206 +msgid "Soccer" +msgstr "Foci" + +#: src/model/activity_info.rs:215 +msgid "Softball" +msgstr "Softball" + +#: src/model/activity_info.rs:225 +msgid "Swimming" +msgstr "Úszás" + +#: src/model/activity_info.rs:234 +msgid "Tennis" +msgstr "Tenisz" + +#: src/model/activity_info.rs:243 +msgid "Track And Field" +msgstr "Atlétika és terep" + +#: src/model/activity_info.rs:254 +msgid "Volleyball" +msgstr "Röplabda" + +#: src/model/activity_info.rs:265 +msgid "Walking" +msgstr "Sétálás" + +#: src/model/model_notification.rs:234 +msgid "Health: walking reminder" +msgstr "Egészség: sétálási emlékeztető" + +#: src/model/model_notification.rs:250 +msgid "{} step remaining to complete your daily step goal." +msgid_plural "{} steps remaining to complete your daily step goal." +msgstr[0] "{} lépés van hátra a napi lépéscél teljesítéséhez." +msgstr[1] "{} lépés van hátra a napi lépéscél teljesítéséhez." + +#: src/plugins/activities/plugin.rs:39 +msgid "Activities" +msgstr "Tevékenységek" + +#: src/plugins/activities/summary.rs:91 +msgid "{} active minute today" +msgid_plural "{} active minutes today" +msgstr[0] "{} aktív perc a mai napon" +msgstr[1] "{} aktív perc a mai napon" + +#: src/plugins/calories/details.rs:217 +msgid "" +"{}:\n" +"{} calorie\n" +"{}" +msgid_plural "" +"{}:\n" +"{} calories\n" +"{}" +msgstr[0] "" +"{}:\n" +"{} kalória\n" +"{}" +msgstr[1] "" +"{}:\n" +"{} kalória\n" +"{}" + +#: src/plugins/calories/summary.rs:97 src/plugins/calories/summary.rs:104 +msgid "{} calorie burned today" +msgid_plural "{} calories burned today" +msgstr[0] "{} kalória lett elégetve ma" +msgstr[1] "{} kalória lett elégetve ma" + +#: src/plugins/steps/details.rs:187 +msgid "Today’s steps: {}" +msgstr "Mai lépések: {}" + +#: src/plugins/steps/details.rs:206 +msgid "" +"No streak yet. Reach your step goal for multiple days to start a streak!" +msgstr "" +"Még nincs sorozat. Érje el a lépéscélját több napon keresztül, hogy" +" elindítson egy sorozatot!" + +#: src/plugins/steps/details.rs:210 +msgid "" +"You’re on a streak for {} day. Reach your step goal today to continue it!" +msgid_plural "" +"You’re on a streak for {} days. Reach your step goal today to continue it!" +msgstr[0] "" +"Ön {} napja csinál egy sorozatot. Érje el a lépéscélját ma, hogy folytassa" +" azt!" +msgstr[1] "" +"Ön {} napja csinál egy sorozatot. Érje el a lépéscélját ma, hogy folytassa" +" azt!" + +#: src/plugins/steps/details.rs:218 +msgid "You’ve reached your step goal today. Keep going to start a streak!" +msgstr "Ön elérte a lépéscélját ma. Folytassa egy sorozat indításához!" + +#: src/plugins/steps/details.rs:221 +msgid "You’re on a streak for {} day. Good job!" +msgid_plural "You’re on a streak for {} days. Good job!" +msgstr[0] "Ön {} napja csinál egy sorozatot. Szép munka!" +msgstr[1] "Ön {} napja csinál egy sorozatot. Szép munka!" + +#. TRANSLATORS: X step(s) on DATE +#: src/plugins/steps/details.rs:238 +msgid "{} step on {}" +msgid_plural "{} steps on {}" +msgstr[0] "{} lépés ekkor: {}" +msgstr[1] "{} lépés ekkor: {}" + +#: src/plugins/steps/summary.rs:96 +msgid "{} step taken today" +msgid_plural "{} steps taken today" +msgstr[0] "{} lépés megtéve ma" +msgstr[1] "{} lépés megtéve ma" + +#: src/plugins/steps/summary.rs:107 +msgid "Reached {} percent of daily step goal" +msgid_plural "Reached {} percent of daily step goal" +msgstr[0] "A napi lépéscél {} százaléka elérve" +msgstr[1] "A napi lépéscél {} százaléka elérve" + +#: src/plugins/steps/summary.rs:114 +msgid "Well done! You have reached your daily step goal!" +msgstr "Szép munka! Elérte a napi lépéscélját!" + +#: src/plugins/weight/details.rs:202 +msgid "Current BMI: {}" +msgstr "Jelenlegi testtömegindex: {}" + +#. TRANSLATORS: Weight X on date Y +#: src/plugins/weight/details.rs:217 +msgid "{} pound on {}" +msgid_plural "{} pounds on {}" +msgstr[0] "{} font ekkor: {}" +msgstr[1] "{} font ekkor: {}" + +#. TRANSLATORS: Weight X on date Y +#: src/plugins/weight/details.rs:220 +msgid "{} kilogram on {}" +msgid_plural "{} kilograms on {}" +msgstr[0] "{} kilogram ekkor: {}" +msgstr[1] "{} kilogram ekkor: {}" + +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 +msgid "Unknown BMI" +msgstr "Ismeretlen testtömegindex" + +#: src/plugins/weight/details.rs:280 +msgid "" +"Your weight goal is {} pound. Add a first weight measurement to see how " +"close you are to reaching it." +msgid_plural "" +"Your weight goal is {} pounds. Add a first weight measurement to see how " +"close you are to reaching it." +msgstr[0] "" +"A súlycélja {} font. Adja hozzá az első súlymérést, hogy lássa, milyen közel" +" van a cél eléréséhez." +msgstr[1] "" +"A súlycélja {} font. Adja hozzá az első súlymérést, hogy lássa, milyen közel" +" van a cél eléréséhez." + +#: src/plugins/weight/details.rs:287 +msgid "" +"Your weight goal is {} kilogram. Add a first weight measurement to see how " +"close you are to reaching it." +msgid_plural "" +"Your weight goal is {} kilograms. Add a first weight measurement to see how " +"close you are to reaching it." +msgstr[0] "" +"A súlycélja {} kilogram. Adja hozzá az első súlymérést, hogy lássa, milyen" +" közel van a cél eléréséhez." +msgstr[1] "" +"A súlycélja {} kilogram. Adja hozzá az első súlymérést, hogy lássa, milyen" +" közel van a cél eléréséhez." + +#: src/plugins/weight/details.rs:296 +msgid "You’ve reached your weight goal. Great job!" +msgstr "Elérte a súlycélját. Szép munka!" + +#: src/plugins/weight/details.rs:312 +msgid "Your weight goal is {} pound." +msgid_plural "Your weight goal is {} pounds." +msgstr[0] "A súlycélja {} font." +msgstr[1] "A súlycélja {} font." + +#: src/plugins/weight/details.rs:317 +msgid "You have {} pound left to reach it." +msgid_plural "You have {} pounds left to reach it." +msgstr[0] "{} font van hátra az eléréséhez." +msgstr[1] "{} font van hátra az eléréséhez." + +#: src/plugins/weight/details.rs:324 +msgid "Your weight goal is {} kilogram." +msgid_plural "Your weight goal is {} kilograms." +msgstr[0] "A súlycélja {} kilogram." +msgstr[1] "A súlycélja {} kilogram." + +#: src/plugins/weight/details.rs:330 +msgid "You have {} kilogram left to reach it" +msgid_plural "You have {} kilograms left to reach it" +msgstr[0] "{} kilogram van hátra az eléréséhez" +msgstr[1] "{} kilogram van hátra az eléréséhez" + +#: src/plugins/weight/details.rs:340 +msgid "No weight goal set yet. You can set it in Health’s preferences." +msgstr "Még nincs súlycél beállítva. Az Egészség beállításaiban állíthatja be." + +#: src/plugins/weight/summary.rs:119 +msgid "{} pound" +msgid_plural "{} pounds" +msgstr[0] "{} font" +msgstr[1] "{} font" + +#: src/plugins/weight/summary.rs:127 +msgid "{} kilogram" +msgid_plural "{} kilograms" +msgstr[0] "{} kilogram" +msgstr[1] "{} kilogram" + +#: src/plugins/weight/summary.rs:138 +msgid "+ {} pound compared to previous measurement" +msgid_plural "+ {} pounds compared to previous measurement" +msgstr[0] "+{} font az előző méréshez képest" +msgstr[1] "+{} font az előző méréshez képest" + +#: src/plugins/weight/summary.rs:146 +msgid "+ {} kilogram compared to previous measurement" +msgid_plural "+ {} kilograms compared to previous measurement" +msgstr[0] "+{} kilogram az előző méréshez képest" +msgstr[1] "+{} kilogram az előző méréshez képest" + +#: src/plugins/weight/summary.rs:157 +msgid "{} pound compared to previous measurement" +msgid_plural "{} pounds compared to previous measurement" +msgstr[0] "{} font az előző méréshez képest" +msgstr[1] "{} font az előző méréshez képest" + +#: src/plugins/weight/summary.rs:165 +msgid "{} kilogram compared to previous measurement" +msgid_plural "{} kilograms compared to previous measurement" +msgstr[0] "{} kilogram az előző méréshez képest" +msgstr[1] "{} kilogram az előző méréshez képest" + +#: src/plugins/weight/summary.rs:173 +msgid "No change in weight" +msgstr "Nincs változás a súlyban" + +#: src/plugins/weight/summary.rs:178 +msgid "No weight data available" +msgstr "Nem érhetők el súlyadatok" + +#: src/sync/csv.rs:81 src/sync/csv.rs:370 +msgid "No activities added yet; can’t create empty export!" +msgstr "" +"Még nem lettek tevékenységek hozzáadva. Nem lehet üres exportálást létrehozni!" + +#: src/sync/csv.rs:111 src/sync/csv.rs:388 +msgid "No weight measurements added yet; can’t create empty export!" +msgstr "" +"Még nem lettek súlymérések hozzáadva. Nem lehet üres exportálást létrehozni!" + +#: src/sync/csv.rs:184 src/sync/csv.rs:332 +msgid "Can’t parse encrypted backup without encryption key!" +msgstr "" +"Nem lehet feldolgozni a titkosított biztonsági mentést titkosítási kulcs" +" nélkül!" + +#: src/sync/csv.rs:195 src/sync/csv.rs:352 +msgid "" +"Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " +"encrypted one?" +msgstr "" +"Nem sikerült feldolgozni a CSV-t. Egy titkosítatlan biztonsági mentést próbál" +" titkosítottként beolvasni?" + +#: src/sync/csv.rs:208 +msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" +msgstr "" +"Nem sikerült visszafejteni az adatokat. Biztos benne, hogy a megfelelő" +" kulcsot használja?" + +#: src/sync/database_receiver.rs:46 +msgid "Couldn’t synchronize steps due to error {}" +msgstr "Nem sikerült szinkronizálni a lépéseket a következő hiba miatt: {}" + +#: src/sync/database_receiver.rs:60 +msgid "Couldn’t synchronize weight measurements due to error {}" +msgstr "Nem sikerült szinkronizálni a súlyméréseket a következő hiba miatt: {}" + +#: src/sync/google_fit.rs:211 +msgid "CRSF Verification failed, got {}, expected {}" +msgstr "A CRSF ellenőrzés sikertelen: {} érkezett, {} volt az elvárt" + +#: src/sync/google_fit.rs:227 +msgid "Requesting OAuth2 token failed due to error {}" +msgstr "Az OAuth2 jelsor kérése sikertelen a következő hiba miatt: {}" + +#: src/sync/sync_provider.rs:109 +msgid "" +"Can’t retrieve OAuth2 token when no refresh token is set! Please re-" +"authenticate with your sync provider." +msgstr "" +"Nem lehet lekérni az OAuth2 jelsort, ha nincs frissítési jelsor beállítva!" +" Hitelesítsen újra a szinkronizációs szolgáltatójával." + +#: src/sync/sync_provider.rs:157 +msgid "Token for Health sync provider {}" +msgstr "Jelsor az Egészség szinkronizációs szolgáltatójához: {}" + +#: src/sync/sync_provider.rs:217 +msgid "Successfully authenticated, please return to Health." +msgstr "Sikeresen hitelesítve, térjen vissza az Egészség alkalmazáshoz." + +#: src/sync/sync_provider.rs:228 +msgid "Couldn’t parse OAuth2 response" +msgstr "Nem sikerült feldolgozni az OAuth2 választ" + +#: src/views/bar_graph_view.rs:583 +msgid "Enter weight record to calculate idle calories" +msgstr "Adja meg a súlyrekordot a tétlenségi kalóriák kiszámításához" + +#: src/views/bar_graph_view.rs:587 +msgid "Idle calories" +msgstr "Tétlenségi kalóriák" + +#: src/views/view_add_activity.rs:236 +msgid "Activity" +msgstr "Tevékenység" + +#: src/widgets/activity_row.rs:79 +msgid "{} for {} Minute" +msgid_plural "{} for {} Minutes" +msgstr[0] "{} {} percre" +msgstr[1] "{} {} percre" + +#: src/widgets/activity_row.rs:91 +msgid "Calories burned" +msgstr "Elégetett kalóriák" + +#: src/widgets/activity_row.rs:101 +msgid "Average heart rate" +msgstr "Átlagos pulzusszám" + +#: src/widgets/activity_row.rs:107 +msgid "Maximum heart rate" +msgstr "Legnagyobb pulzusszám" + +#: src/widgets/activity_row.rs:113 +msgid "Minimum heart rate" +msgstr "Legkisebb pulzusszám" + +#: src/widgets/activity_row.rs:126 +msgid "{} meter" +msgid_plural "{} meters" +msgstr[0] "{} méter" +msgstr[1] "{} méter" + +#: src/widgets/activity_row.rs:129 +msgid "{} yard" +msgid_plural "{} yards" +msgstr[0] "{} yard" +msgstr[1] "{} yard" + +#: src/widgets/bmi_level_bar.rs:274 +msgid "Current BMI: {}" +msgstr "Jelenlegi testtömegindex: {}" + +#: src/widgets/distance_action_row.rs:303 +msgid "KM" +msgstr "Kilométer" + +#: src/widgets/distance_action_row.rs:304 +msgid "Meters" +msgstr "Méter" + +#: src/widgets/distance_action_row.rs:306 +msgid "Miles" +msgstr "Mérföld" + +#: src/widgets/distance_action_row.rs:307 +msgid "Feet" +msgstr "Láb" + +#. TRANSLATORS: Unit abbreviation (centimeters) +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 +msgid "cm" +msgstr "cm" + +#. TRANSLATORS: Unit abbreviation (meters) +#: src/widgets/unit_spinbutton.rs:490 +msgid "m" +msgstr "m" + +#. TRANSLATORS: Unit abbreviation (kilometers) +#: src/widgets/unit_spinbutton.rs:492 +msgid "km" +msgstr "km" + +#. TRANSLATORS: Unit abbreviation (kilograms) +#: src/widgets/unit_spinbutton.rs:494 +msgid "kg" +msgstr "kg" + +#. TRANSLATORS: Unit abbreviation (inch) +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 +msgid "in" +msgstr "in" + +#. TRANSLATORS: Unit abbreviation (feet) +#: src/widgets/unit_spinbutton.rs:498 +msgid "ft" +msgstr "ft" + +#. TRANSLATORS: Unit abbreviation (miles) +#: src/widgets/unit_spinbutton.rs:500 +msgid "mi" +msgstr "mi" + +#. TRANSLATORS: Unit abbreviation (pounds) +#: src/widgets/unit_spinbutton.rs:502 +msgid "lb" +msgstr "lb" + +#: src/windows/export_dialog.rs:51 +msgid "Save Activities" +msgstr "Tevékenységek mentése" + +#. TRANSLATORS: Please keep the file extension (.csv.encrypted) +#: src/windows/export_dialog.rs:60 +msgid "Activities.csv.encrypted" +msgstr "Tevékenysegek.csv.encrypted" + +#. TRANSLATORS: Please keep the file extension (.csv) +#: src/windows/export_dialog.rs:63 +msgid "Activities.csv" +msgstr "Tevékenysegek.csv" + +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Nincs fájl kijelölve." + +#: src/windows/export_dialog.rs:87 +msgid "Save Weight Measurement" +msgstr "Súlymérés mentése" + +#: src/windows/export_dialog.rs:95 +msgid "Weight Measurements.csv.encrypted" +msgstr "Súlymérések.csv.encrypted" + +#: src/windows/export_dialog.rs:97 +msgid "Weight Measurements.csv" +msgstr "Súlymérések.csv" + +#: src/windows/export_dialog.rs:132 +msgid "Export data" +msgstr "Adatok exportálása" + +#: src/windows/import_dialog.rs:51 +msgid "Open Activities" +msgstr "Tevékenységek megnyitása" + +#: src/windows/import_dialog.rs:52 src/windows/import_dialog.rs:81 +msgid "_Open" +msgstr "_Megnyitás" + +#: src/windows/import_dialog.rs:80 +msgid "Open Weight Measurement" +msgstr "Súlymérés megnyitása" + +#: src/windows/import_dialog.rs:121 +msgid "Import data" +msgstr "Adatok importálása" + +#: src/windows/import_export_dialog_base.rs:214 +msgid "Import activities" +msgstr "Tevékenységek importálása" + +#: src/windows/import_export_dialog_base.rs:216 +msgid "Import is encrypted" +msgstr "Az importálás titkosított" + +#: src/windows/import_export_dialog_base.rs:217 +msgid "Import weights" +msgstr "Súlyok importálása" + +#: src/windows/import_export_dialog_base.rs:218 +msgid "Import" +msgstr "Importálás" + +#: src/windows/import_export_dialog_base.rs:296 +msgid "Success!" +msgstr "Sikeres!" + +#: src/windows/import_export_dialog_base.rs:300 +msgid "An error occurred!" +msgstr "Hiba történt!" + +#: src/windows/import_export_dialog_base.rs:305 +msgid "Close" +msgstr "Bezárás" + +#: src/windows/window.rs:267 +msgid "Couldn’t sync Google Fit data due to error: {}" +msgstr "" +"Nem sikerült szinkronizálni a Google Fit adatait a következő hiba miatt: {}" -- 2.40.1 From 518912d0f096b7459607972afe61e2a1211c827b Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 19 Sep 2022 07:58:49 +0000 Subject: [PATCH 59/83] Update Slovenian translation --- po/sl.po | 651 ++++++++++++++++++++++++++----------------------------- 1 file changed, 305 insertions(+), 346 deletions(-) diff --git a/po/sl.po b/po/sl.po index e7d8594..33938f5 100644 --- a/po/sl.po +++ b/po/sl.po @@ -3,245 +3,192 @@ # This file is distributed under the same license as the health package. # # Matej Urbančič , 2020–2022. +# Martin Srebotnjak , 2022-. # msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-03-20 18:37+0000\n" -"PO-Revision-Date: 2022-03-20 19:58+0100\n" -"Last-Translator: Matej Urbančič \n" +"POT-Creation-Date: 2022-09-13 17:26+0000\n" +"PO-Revision-Date: 2022-09-19 09:58+0200\n" +"Last-Translator: Martin Srebotnjak \n" "Language-Team: Slovenian GNOME Translation Team \n" "Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" +"%100==4 ? 3 : 0);\n" "X-Poedit-SourceCharset: utf-8\n" -"X-Generator: Poedit 3.0\n" +"X-Generator: Poedit 3.1.1\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" msgstr "Prvič opravljena nastavitev" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "Ali je uporabnik dokončal začetno namestitev z uporabo čarovnika." - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "Preklopi obvestila" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "Ali naj bodo obvestila omogočena." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "Nastavi omogočene vstavke" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "Nastavi vse vstavke podatkovnih virov, omogočenih v programu." - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "Čas obveščanja" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "Čas, po katerem naj program znova opozori uporabnika na zastavljene cilje hoje" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "pogostost obveščanja" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "How frequent should the user be notified to complete their daily step-goal." -msgstr "Kako pogosto naj bo uporabnik opomnjen na dejavnost za doseganje zastavljenega cilja." - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "Seznam nedavnih dejavnosti" -#: data/dev.Cogitri.Health.gschema.xml:42 -msgid "Activity types the user used recently, to be shown first in the activity types selector's list" -msgstr "Vrste nedavno uporabljenih dejavnosti, ki bodo prikazane na seznamu hitrega izbiranja" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "Nastavitev usklajevanja s programom Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "Ali je program Google Fit nastavljen kot ponudnik za usklajevanje podatkov." - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "Zadnje usklajevanje s programom Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "Zadnje zabeleženo usklajevanje korakov, mase … kot jih beleži program Google Fit." - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "Uporabljen sistem enot" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "Sistem enot, ki ga izbere uporabnik, na primer za višino cm" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "Starost" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "Starost uporabnika (opuščeno)." - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "Starost" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "Starost uporabnika, zapisana z datumom rojstva (na primer 01/01/1970)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "Višina" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "Višina uporabnika" - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "Cilj dnevno opravljenih korakov" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "Število korakov, ki jih uporabnik želi opraviti dnevno." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "Ciljna telesna masa" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "Telesna masa, ki jo uporabnik želi doseči." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "Višina okna" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "Višina okna." - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "Razpeto okno" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "Ali je okno razpeto." - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "Širina okna" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "Širina okna." +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "ID aktivnega uporabnika" -#: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 data/dev.Cogitri.Health.desktop.in.in:3 data/dev.Cogitri.Health.metainfo.xml.in.in:4 data/ui/window.blp:37 src/main.rs:31 +#: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 +#: data/dev.Cogitri.Health.desktop.in.in:3 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:4 data/ui/window.blp:37 +#: src/main.rs:31 msgid "Health" msgstr "Zdravje" -#: data/dev.Cogitri.Health.Autostart.desktop.in.in:5 data/dev.Cogitri.Health.desktop.in.in:5 -msgid "@APPLICATION_ID@" -msgstr "@APPLICATION_ID@" - -#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 src/core/application.rs:167 -msgid "A health tracking app for the GNOME desktop." -msgstr "Program za spremljanje telesnih podatkov za namizje GNOME." +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 +msgid "Track your fitness goals" +msgstr "Sledite svojim zastavljenim ciljem telesne vadbe" #: data/dev.Cogitri.Health.metainfo.xml.in.in:11 -msgid "A health tracking app for the GNOME desktop. Health can visualize how many steps you've made daily, your weight development over time and your daily activities. Data can be synched from Google Fit or manually entered into Health. Afterwards, it can be viewed and edited in Health." +msgid "" +"Health can visualize how many steps you’ve made daily, your weight " +"development over time and your daily activities. Data can be synched from " +"Google Fit or manually entered into Health. Afterwards, it can be viewed and " +"edited in Health." msgstr "" -"Program za sledenje gibalne dejavnosti za namizje GNOME. Program omogoča grafično prikazovanje opravljenih korakov, doseganje zastavljenih ciljev zmanjševanja telesne teže in nasploh vsakodnevne dejavnosti. Podatke je mogoče uskladiti z orodjem Google Fit ali z ročnim vnosom. Nato so za pregledovanje in urejanje na voljo v programu." +"Program omogoča grafično prikazovanje opravljenih korakov, doseganje " +"zastavljenih ciljev zmanjševanja telesne teže in nasploh vsakodnevne " +"dejavnosti. Podatke je mogoče uskladiti z orodjem Google Fit ali z ročnim " +"vnosom v program. Nato so za pregledovanje in urejanje na voljo v programu." -#: data/dev.Cogitri.Health.metainfo.xml.in.in:37 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:36 msgid "Rasmus “Cogitri” Thomsen" -msgstr "Rasmus “Cogitri” Thomsen" +msgstr "Rasmus »Cogitri« Thomsen" -#: data/ui/data_add_dialog.blp:5 data/ui/import_export_dialog_base.blp:5 src/windows/export_dialog.rs:53 src/windows/export_dialog.rs:89 src/windows/import_dialog.rs:53 src/windows/import_dialog.rs:82 +#: data/ui/data_add_dialog.blp:5 data/ui/import_export_dialog_base.blp:5 +#: src/windows/export_dialog.rs:53 src/windows/export_dialog.rs:89 +#: src/windows/import_dialog.rs:53 src/windows/import_dialog.rs:82 msgid "_Cancel" msgstr "_Prekliči" -#: data/ui/data_add_dialog.blp:10 src/windows/export_dialog.rs:52 src/windows/export_dialog.rs:88 +#: data/ui/data_add_dialog.blp:10 src/windows/export_dialog.rs:52 +#: src/windows/export_dialog.rs:88 msgid "_Save" msgstr "_Shrani" -#: data/ui/date_selector.blp:17 +#: data/ui/date_selector.blp:18 msgid "January" msgstr "januar" -#: data/ui/date_selector.blp:18 src/widgets/date_selector.rs:223 +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:223 msgid "February" msgstr "februar" -#: data/ui/date_selector.blp:19 +#: data/ui/date_selector.blp:20 msgid "March" msgstr "marec" -#: data/ui/date_selector.blp:20 +#: data/ui/date_selector.blp:21 msgid "April" msgstr "april" -#: data/ui/date_selector.blp:21 +#: data/ui/date_selector.blp:22 msgid "May" msgstr "maj" -#: data/ui/date_selector.blp:22 +#: data/ui/date_selector.blp:23 msgid "June" msgstr "junij" -#: data/ui/date_selector.blp:23 +#: data/ui/date_selector.blp:24 msgid "July" msgstr "julij" -#: data/ui/date_selector.blp:24 +#: data/ui/date_selector.blp:25 msgid "August" msgstr "avgust" -#: data/ui/date_selector.blp:25 +#: data/ui/date_selector.blp:26 msgid "September" msgstr "september" -#: data/ui/date_selector.blp:26 +#: data/ui/date_selector.blp:27 msgid "October" msgstr "oktober" -#: data/ui/date_selector.blp:27 +#: data/ui/date_selector.blp:28 msgid "November" msgstr "november" -#: data/ui/date_selector.blp:28 +#: data/ui/date_selector.blp:29 msgid "December" msgstr "december" -#: data/ui/date_selector.blp:34 +#: data/ui/date_selector.blp:35 msgid "Day" msgstr "Dan" -#: data/ui/date_selector.blp:60 +#: data/ui/date_selector.blp:61 msgid "Month" msgstr "Mesec" -#: data/ui/date_selector.blp:83 +#: data/ui/date_selector.blp:84 msgid "Year" msgstr "Leto" @@ -269,7 +216,8 @@ msgstr "_Geslo" msgid "_Confirm password" msgstr "_Potrdi geslo" -#: data/ui/plugins/activities/details.blp:5 data/ui/plugins/calories/details.blp:4 data/ui/plugins/steps/details.blp:4 +#: data/ui/plugins/activities/details.blp:5 +#: data/ui/plugins/calories/details.blp:4 data/ui/plugins/steps/details.blp:4 msgid "You can use the + button to add a new activity." msgstr "Z uporabo gumba + je mogoče dodati novo dejavnost." @@ -290,10 +238,15 @@ msgid "Calories Burned" msgstr "Porabljene kalorije" #: data/ui/plugins/details.blp:68 -msgid "This is a preview of how the plugin presents data. Enable the plugin to see your actual, live data." -msgstr "Predogled predstavitve podatkov omogoča prikaz pravih podatkov v usklajevalnem načinu." +msgid "" +"This is a preview of how the plugin presents data. Enable the plugin to see " +"your actual, live data." +msgstr "" +"Predogled predstavitve podatkov omogoča prikaz pravih podatkov v " +"usklajevalnem načinu." -#: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "Koraki" @@ -305,7 +258,8 @@ msgstr "Z gumbom + lahko dodate novo merjenje teže." msgid "Weight Measurements" msgstr "Enote telesne mase" -#: data/ui/plugins/weight/summary.blp:5 data/ui/view_add_weight.blp:38 src/plugins/weight/plugin.rs:39 src/views/view_add_weight.rs:87 +#: data/ui/plugins/weight/summary.blp:5 data/ui/view_add_weight.blp:38 +#: src/plugins/weight/plugin.rs:39 src/views/view_add_weight.rs:87 msgid "Weight" msgstr "Masa" @@ -329,87 +283,99 @@ msgstr "Lastnosti" msgid "General" msgstr "Splošno" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "Uporabnik" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "Sistem enot" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "Imperialni" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "Metrični" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "Uporabniško ime" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "Rojstni dan" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "Višina" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "Obvestila" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "Omogoči obvestila" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "Frekvenca" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "Čas dnevnega opomnika" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "Cilj korakov" -#: data/ui/preferences_window.blp:170 -msgid "The WHO recommends 10,000 steps per day." -msgstr "Svetovna zdravstvena organizacija (WHO) predlaga 10.000 korakov dnevno." +#: data/ui/preferences_window.blp:179 +msgid "7,500 steps per day are recommended." +msgstr "Priporočeno je 7 500 korakov na dan." -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "Cilj telesne mase" -#: data/ui/preferences_window.blp:188 data/ui/setup_window.blp:286 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." -msgstr "Svetovna zdravstvena organizacija opredeljuje kot najustreznejši ITM med 18,5 in 24,9." +msgstr "" +"Svetovna zdravstvena organizacija opredeljuje kot najustreznejši ITM med " +"18,5 in 24,9." -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "Ciljni ITM" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "Uskladi" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "Začni usklajevanje z zunanjimi ponudniki." -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "Uvažanje in izvažanje podatkov" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "Izvozi podatke v datoteko CSV" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "Izvozi …" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "Uvozi podatke iz datoteke CSV" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "Uvozi …" @@ -441,33 +407,43 @@ msgstr "Dobrodošli!" msgid "Please enter some information to get setup." msgstr "Vpisati je treba nekaj podatkov za osnovne nastavitve delovanja." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "Cilj doseženih dnevnih korakov." -#: data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." -msgstr "Svetovna zdravstvena organizacija predlaga 10.000 korakov dnevno." +#: data/ui/setup_window.blp:236 +msgid "The WHO recommends 7.500 steps per day." +msgstr "Svetovna zdravstvena organizacija priporoča 7 500 korakov dnevno." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "Cilj dosežene telesne mase." -#: data/ui/setup_window.blp:314 +#: data/ui/setup_window.blp:298 +msgid "The WHO recommends a BMI of 18.5–24.9." +msgstr "Svetovna zdravstvena organizacija priporoča ITM med 18,5 in 24,9." + +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "Trenutna telesna masa" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "Trenutni ITM" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "Cilj teleske mase" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "Nastavi z usklajevanjem z drugimi ponudniki." -#: data/ui/setup_window.blp:384 -msgid "You can sync steps and weight measurements from/to third-party providers." -msgstr "Korake in podatke telesne teže je mogoče usklajevati z zunanjimi ponudniki." +#: data/ui/setup_window.blp:398 +msgid "" +"You can sync steps and weight measurements from/to third-party providers." +msgstr "" +"Korake in podatke telesne teže je mogoče usklajevati z zunanjimi ponudniki." #: data/ui/shortcuts_window.blp:15 msgid "Quit the application" @@ -522,8 +498,11 @@ msgid "For you" msgstr "Za vas" #: data/ui/view_home_page.blp:86 -msgid "No plugins enabled. Enable one from the list below to start using Health." -msgstr "Ni omogočenih vstavkov. Vsaj enega s spodnjega seznama je treba omogočiti za uporabo programa." +msgid "" +"No plugins enabled. Enable one from the list below to start using Health." +msgstr "" +"Ni omogočenih vstavkov. Vsaj enega s spodnjega seznama je treba omogočiti za " +"uporabo programa." #: data/ui/view_home_page.blp:107 msgid "All data" @@ -549,11 +528,17 @@ msgstr "_O programu" msgid "Enable plugin" msgstr "Omogoči vstavek" -#: src/core/application.rs:169 +#: src/core/application.rs:189 +msgid "A health tracking app for the GNOME desktop." +msgstr "Program za spremljanje telesnih podatkov za namizje GNOME." + +#: src/core/application.rs:191 msgid "translator-credits" -msgstr "Matej Urbančič " +msgstr "" +"Matej Urbančič \n" +"Martin Srebotnjak " -#: src/core/application.rs:171 +#: src/core/application.rs:193 msgid "Websites" msgstr "Spletne strani" @@ -695,36 +680,51 @@ msgstr[1] "Danes ste porabili {} kalorijo" msgstr[2] "Danes ste porabili {} kaloriji" msgstr[3] "Danes ste porabili {} kalorije" -#: src/plugins/steps/details.rs:186 -msgid "Today's steps: {}" +#: src/plugins/steps/details.rs:187 +msgid "Today’s steps: {}" msgstr "Današnje število korakov: {}" -#: src/plugins/steps/details.rs:201 -msgid "No streak yet. Reach your step goal for multiple days to start a streak!" -msgstr "Ni še zabeleženih več zaporednih ciljev. Za želeni učinek je treba vztrajati več dni zapored!" - -#: src/plugins/steps/details.rs:205 -msgid "You're on a streak for {} day. Reach your step goal today to continue it!" -msgid_plural "You're on a streak for {} days. Reach your step goal today to continue it!" -msgstr[0] "Vztrajate neprestano že {} dni. Potrudite se tudi danes, da nadaljujete začeto!" -msgstr[1] "Vztrajate neprestano že {} dan. Potrudite se tudi danes, da nadaljujete začeto!" -msgstr[2] "Vztrajate neprestano že {} dni. Potrudite se tudi danes, da nadaljujete začeto!" -msgstr[3] "Vztrajate neprestano že {} dni. Potrudite se tudi danes, da nadaljujete začeto!" - -#: src/plugins/steps/details.rs:213 -msgid "You've reached your step goal today. Keep going to start a streak!" -msgstr "Danes ste dosegli ciljno število korakov. Nadaljujte tako tudi jutri!" - -#: src/plugins/steps/details.rs:216 -msgid "You're on a streak for {} day. Good job!" -msgid_plural "You're on a streak for {} days. Good job!" +#: src/plugins/steps/details.rs:206 +msgid "" +"No streak yet. Reach your step goal for multiple days to start a streak!" +msgstr "" +"Ni še zabeleženih več zaporednih ciljev. Za želeni učinek je treba vztrajati " +"več dni zapored!" + +#: src/plugins/steps/details.rs:210 +msgid "" +"You’re on a streak for {} day. Reach your step goal today to continue it!" +msgid_plural "" +"You’re on a streak for {} days. Reach your step goal today to continue it!" +msgstr[0] "" +"Vztrajate neprestano že {} dni. Dosezite število korakov tudi danes, da niz " +"nadaljujete!" +msgstr[1] "" +"Vztrajate neprestano že {} dan. Dosezite število korakov tudi danes, da niz " +"nadaljujete!" +msgstr[2] "" +"Vztrajate neprestano že {} dni. Dosezite število korakov tudi danes, da niz " +"nadaljujete!" +msgstr[3] "" +"Vztrajate neprestano že {} dni. Dosezite število korakov tudi danes, da niz " +"nadaljujete!" + +#: src/plugins/steps/details.rs:218 +msgid "You’ve reached your step goal today. Keep going to start a streak!" +msgstr "" +"Danes ste dosegli ciljno število korakov. Nadaljujte tako tudi jutri, da to " +"postane navada!" + +#: src/plugins/steps/details.rs:221 +msgid "You’re on a streak for {} day. Good job!" +msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Vztrajate neprestano že {} dni. Odlično!" msgstr[1] "Vztrajate neprestano že {} dan. Odlično!" msgstr[2] "Vztrajate neprestano že {} dni. Odlično!" msgstr[3] "Vztrajate neprestano že {} dni. Odlično!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} korakov {}" @@ -732,7 +732,7 @@ msgstr[1] "{} korak {}" msgstr[2] "{} koraka {}" msgstr[3] "{} koraki {}" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "{} korakov danes" @@ -740,7 +740,7 @@ msgstr[1] "{} korak danes" msgstr[2] "{} koraka danes" msgstr[3] "{} koraki danes" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "Doseženih je {} odstotkov cilja dnevno opravljenih korakov." @@ -748,16 +748,16 @@ msgstr[1] "Dosežen je {} odstotke cilja dnevno opravljenih korakov." msgstr[2] "Dosežena sta {} odstotka cilja dnevno opravljenih korakov." msgstr[3] "Doseženi so {} odstotki cilja dnevno opravljenih korakov." -#: src/plugins/steps/summary.rs:112 +#: src/plugins/steps/summary.rs:114 msgid "Well done! You have reached your daily step goal!" msgstr "Zelo dobro! Dosegli ste cilj opravljenih dnevnih korakov!" -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "Trenutni ITM: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} funtov na {}" @@ -766,7 +766,7 @@ msgstr[2] "{} funta na {}" msgstr[3] "{} funti na {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} kilogramov na {}" @@ -774,69 +774,90 @@ msgstr[1] "{} kilogram na {}" msgstr[2] "{} kilograma na {}" msgstr[3] "{} kilogrami na {}" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "Neznan ITM" -#: src/plugins/weight/details.rs:270 -msgid "Your weight goal is {} pound. Add a first weight measurement to see how close you are to reaching it." -msgid_plural "Your weight goal is {} pounds. Add a first weight measurement to see how close you are to reaching it." -msgstr[0] "Zastavili ste si cilj doseči telesno maso {} funtov. Dodajte prvo meritev mase in spremljajte napredek." -msgstr[1] "Zastavili ste si cilj doseči telesno maso {} funt. Dodajte prvo meritev mase in spremljajte napredek." -msgstr[2] "Zastavili ste si cilj doseči telesno maso {} funta. Dodajte prvo meritev mase in spremljajte napredek." -msgstr[3] "Zastavili ste si cilj doseči telesno maso {} funte. Dodajte prvo meritev mase in spremljajte napredek." - -#: src/plugins/weight/details.rs:277 -msgid "Your weight goal is {} kilogram. Add a first weight measurement to see how close you are to reaching it." -msgid_plural "Your weight goal is {} kilograms. Add a first weight measurement to see how close you are to reaching it." -msgstr[0] "Zastavili ste si cilj doseči telesno maso {} kilogramov. Dodajte prvo meritev mase in spremljajte napredek." -msgstr[1] "Zastavili ste si cilj doseči telesno maso {} kilogram. Dodajte prvo meritev mase in spremljajte napredek." -msgstr[2] "Zastavili ste si cilj doseči telesno maso {} kilograma. Dodajte prvo meritev mase in spremljajte napredek." -msgstr[3] "Zastavili ste si cilj doseči telesno maso {} kilograme. Dodajte prvo meritev mase in spremljajte napredek." - -#: src/plugins/weight/details.rs:286 -msgid "You've reached your weight goal. Great job!" +#: src/plugins/weight/details.rs:280 +msgid "" +"Your weight goal is {} pound. Add a first weight measurement to see how " +"close you are to reaching it." +msgid_plural "" +"Your weight goal is {} pounds. Add a first weight measurement to see how " +"close you are to reaching it." +msgstr[0] "" +"Zastavili ste si cilj doseči telesno maso {} funtov. Dodajte prvo meritev " +"mase in spremljajte napredek." +msgstr[1] "" +"Zastavili ste si cilj doseči telesno maso {} funt. Dodajte prvo meritev mase " +"in spremljajte napredek." +msgstr[2] "" +"Zastavili ste si cilj doseči telesno maso {} funta. Dodajte prvo meritev " +"mase in spremljajte napredek." +msgstr[3] "" +"Zastavili ste si cilj doseči telesno maso {} funte. Dodajte prvo meritev " +"mase in spremljajte napredek." + +#: src/plugins/weight/details.rs:287 +msgid "" +"Your weight goal is {} kilogram. Add a first weight measurement to see how " +"close you are to reaching it." +msgid_plural "" +"Your weight goal is {} kilograms. Add a first weight measurement to see how " +"close you are to reaching it." +msgstr[0] "" +"Zastavili ste si cilj doseči telesno maso {} kilogramov. Dodajte prvo " +"meritev mase in spremljajte napredek." +msgstr[1] "" +"Zastavili ste si cilj doseči telesno maso {} kilogram. Dodajte prvo meritev " +"mase in spremljajte napredek." +msgstr[2] "" +"Zastavili ste si cilj doseči telesno maso {} kilograma. Dodajte prvo meritev " +"mase in spremljajte napredek." +msgstr[3] "" +"Zastavili ste si cilj doseči telesno maso {} kilograme. Dodajte prvo meritev " +"mase in spremljajte napredek." + +#: src/plugins/weight/details.rs:296 +msgid "You’ve reached your weight goal. Great job!" msgstr "Dosegli ste ciljno težo! Čestitke!" -#. TRANSLATORS: First part of message, ends with [...] you have {} pound left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:302 -msgid "Your weight goal is {} pound," -msgid_plural "Your weight goal is {} pounds," +#: src/plugins/weight/details.rs:312 +msgid "Your weight goal is {} pound." +msgid_plural "Your weight goal is {} pounds." msgstr[0] "Ciljna telesna masa je {} funtov," msgstr[1] "Ciljna telesna masa je {} funt," msgstr[2] "Ciljna telesna masa je {} funta," msgstr[3] "Ciljna telesna masa je {} funte," -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:307 -msgid "you have {} pound left to reach it" -msgid_plural "you have {} pounds left to reach it" -msgstr[0] "torej jih morete izgubiti še {}." -msgstr[1] "torej morete izgubiti še {}." -msgstr[2] "torej morete izgubiti še {}." -msgstr[3] "torej morete izgubiti še {}." - -#. TRANSLATORS: First part of message, ends with [...] you have {} kilogram left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:314 -msgid "Your weight goal is {} kilogram," -msgid_plural "Your weight goal is {} kilograms," +#: src/plugins/weight/details.rs:317 +msgid "You have {} pound left to reach it." +msgid_plural "You have {} pounds left to reach it." +msgstr[0] "torej jih morate izgubiti še {}." +msgstr[1] "torej morate izgubiti še {}." +msgstr[2] "torej morate izgubiti še {}." +msgstr[3] "torej morate izgubiti še {}." + +#: src/plugins/weight/details.rs:324 +msgid "Your weight goal is {} kilogram." +msgid_plural "Your weight goal is {} kilograms." msgstr[0] "Ciljna telesna masa je {} kilogramov," msgstr[1] "Ciljna telesna masa je {} kilogram," msgstr[2] "Ciljna telesna masa je {} kilograma," msgstr[3] "Ciljna telesna masa je {} kilograme," -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:320 -msgid "you have {} kilogram left to reach it" -msgid_plural "you have {} kilograms left to reach it" -msgstr[0] "torej jih morete izgubiti še {}." -msgstr[1] "torej morete izgubiti še {}." -msgstr[2] "torej morete izgubiti še {}." -msgstr[3] "torej morete izgubiti še {}." - #: src/plugins/weight/details.rs:330 -msgid "No weight goal set yet. You can set it in Health's preferences." -msgstr "Ni še nastavljenega cilja telesne mase. Določite ga med nastavitvami programa." +msgid "You have {} kilogram left to reach it" +msgid_plural "You have {} kilograms left to reach it" +msgstr[0] "torej jih morate izgubiti še {}." +msgstr[1] "torej morate izgubiti še {}." +msgstr[2] "torej morate izgubiti še {}." +msgstr[3] "torej morate izgubiti še {}." + +#: src/plugins/weight/details.rs:340 +msgid "No weight goal set yet. You can set it in Health’s preferences." +msgstr "" +"Ni še nastavljenega cilja telesne mase. Določite ga med nastavitvami zdravja." #: src/plugins/weight/summary.rs:119 msgid "{} pound" @@ -895,55 +916,70 @@ msgid "No weight data available" msgstr "Ni podatkov telesne mase" #: src/sync/csv.rs:81 src/sync/csv.rs:370 -msgid "No activities added yet; can't create empty export!" -msgstr "Ni še dodanih dejavnosti in ni mogoče ustvariti prazne datoteke izvoza!" +msgid "No activities added yet; can’t create empty export!" +msgstr "" +"Ni še dodanih dejavnosti in ni mogoče ustvariti prazne datoteke izvoza!" #: src/sync/csv.rs:111 src/sync/csv.rs:388 -msgid "No weight measurements added yet; can't create empty export!" -msgstr "Ni še vpisanih meritev telesne mase, zato izvoza ni mogoče izvesti!" +msgid "No weight measurements added yet; can’t create empty export!" +msgstr "" +"Ni še vpisanih meritev telesne mase, praznega izvoza pa ni mogoče izvesti!" #: src/sync/csv.rs:184 src/sync/csv.rs:332 -msgid "Can't parse encrypted backup without encryption key!" -msgstr "Brez šifrirnega ključa šifrirane varnostne kopije ni mogoče razčleniti!" +msgid "Can’t parse encrypted backup without encryption key!" +msgstr "" +"Brez šifrirnega ključa šifrirane varnostne kopije ni mogoče razčleniti!" #: src/sync/csv.rs:195 src/sync/csv.rs:352 -msgid "Couldn't parse CSV. Are you trying to read an unencrypted backup as an encrypted one?" -msgstr "Datoteke CSV ni mogoče razčleniti. Ali morda poskušate prebrati nešifrirano varnostno kopijo kot šifrirano?" +msgid "" +"Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " +"encrypted one?" +msgstr "" +"Datoteke CSV ni mogoče razčleniti. Ali morda poskušate prebrati nešifrirano " +"varnostno kopijo kot šifrirano?" #: src/sync/csv.rs:208 -msgid "Couldn't decrypt data. Are you sure you're using the right key?" -msgstr "Podatkov ni mogoče odšifrirati. Ali ste prepričani, da uporabljate ustrezen šifrirni ključ?" +msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" +msgstr "" +"Podatkov ni mogoče odšifrirati. Ali ste prepričani, da uporabljate ustrezen " +"šifrirni ključ?" #: src/sync/database_receiver.rs:46 -msgid "Couldn't synchronize steps due to error {}" +msgid "Couldn’t synchronize steps due to error {}" msgstr "Zaradi napake {} ni mogoče uskladiti podatkov korakov" #: src/sync/database_receiver.rs:60 -msgid "Couldn't synchronize weight measurements due to error {}" -msgstr "Zaradi napake {} ni mogoče uskladiti podatkov meritev telesne mase." +msgid "Couldn’t synchronize weight measurements due to error {}" +msgstr "Zaradi napake {} ni mogoče uskladiti podatkov meritev telesne mase" #: src/sync/google_fit.rs:211 msgid "CRSF Verification failed, got {}, expected {}" -msgstr "Overite CRSF je spodletela. Pridobljen je odziv {}, pričakovan pa je {}" +msgstr "" +"Overite CRSF je spodletela. Pridobljen je odziv {}, pričakovan pa je {}" #: src/sync/google_fit.rs:227 msgid "Requesting OAuth2 token failed due to error {}" msgstr "Zahteva za pridobivanje žetona OAuth2 je spodletela zaradi napake {}." #: src/sync/sync_provider.rs:109 -msgid "Can't retrieve OAuth2 token when no refresh token is set! Please re-authenticate with your sync provider." -msgstr "Žetona OAuth2 ni mogoče pridobiti, če žeton za osvežitev ni nastavljen! Ponovno overite račun z zunanjim ponudnikom in poskusite znova uskladiti podatke." +msgid "" +"Can’t retrieve OAuth2 token when no refresh token is set! Please re-" +"authenticate with your sync provider." +msgstr "" +"Žetona OAuth2 ni mogoče pridobiti, če žeton za osvežitev ni nastavljen! " +"Ponovno overite račun s ponudnikom usklajevanja." #: src/sync/sync_provider.rs:157 msgid "Token for Health sync provider {}" -msgstr "Žeton za ponudnika usklajevanja Health {}" +msgstr "Žeton za ponudnika usklajevanja Zdravja {}" #: src/sync/sync_provider.rs:217 msgid "Successfully authenticated, please return to Health." -msgstr "Opravilo je uspešno overjeno in je mogoče nadaljevanje dela s programom." +msgstr "" +"Opravilo je uspešno overjeno in je mogoče nadaljevanje dela s programom." #: src/sync/sync_provider.rs:228 -msgid "Couldn't parse OAuth2 response" +msgid "Couldn’t parse OAuth2 response" msgstr "Ni mogoče razčleniti odziva OAuth2" #: src/views/bar_graph_view.rs:583 @@ -998,10 +1034,6 @@ msgstr[1] "{} jard" msgstr[2] "{} jarda" msgstr[3] "{} jarde" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -msgid "Current BMI" -msgstr "Trenutni ITM" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "Trenutni ITM: {}" @@ -1023,42 +1055,42 @@ msgid "Feet" msgstr "čevelji" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "in" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "čev" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "mi" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "lb" @@ -1076,6 +1108,11 @@ msgstr "dejavnosti.csv.encrypted" msgid "Activities.csv" msgstr "dejavnosti.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Izbrana ni nobena datoteka." + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "Shrani meritev telesne mase" @@ -1136,84 +1173,6 @@ msgstr "Prišlo je do napake!" msgid "Close" msgstr "Zapri" -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "Ciljni ITM" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "Zaradi napake je spodletelo nadgrajevanje podatkovne zbirke na novejšo različico {}" - #: src/windows/window.rs:267 -msgid "Couldn't sync Google Fit data due to error: {}" +msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "Usklajevanje podatkov z Google Fit zaradi napake ni mogoče: {}" - -#~ msgid "Last opened view" -#~ msgstr "Nazadnje odprt pogled" - -#~ msgid "The last view the user had opened, for restoring it on start" -#~ msgstr "Nazadnje nastavljen pogled, ki ga je uporabnik uporabil." - -#~ msgid "Add An Activity" -#~ msgstr "Dodaj dejavnost" - -#~ msgid "Distance in Meters" -#~ msgstr "Razdalja v metrih" - -#~ msgid "Home Page" -#~ msgstr "Osnovna stran" - -#~ msgid "Today" -#~ msgstr "Danes" - -#~ msgid "of daily step goal" -#~ msgstr "opravljene dejavnosti" - -#~ msgid "Add Weight Record" -#~ msgstr "Dodaj vpis telesne mase" - -#~ msgid "Health Daemon" -#~ msgstr "Ozadnji program" - -#~ msgid "of {} step" -#~ msgid_plural "of {} steps" -#~ msgstr[0] "od skupno {} korakov." -#~ msgstr[1] "od skupno {} koraka." -#~ msgstr[2] "od skupno {} korakov." -#~ msgstr[3] "od skupno {} korakov." - -#~ msgid "No activities on or after {}" -#~ msgstr "Ni dejavnosti na ali po {}" - -#~ msgid "No step goal set" -#~ msgstr "Ni nastavljenega korakov do cilja" - -#~ msgid "{}%" -#~ msgstr "{}%" - -#~ msgid "+ {} pound" -#~ msgid_plural "+ {} pounds" -#~ msgstr[0] "+ {} funtov" -#~ msgstr[1] "+ {} funt" -#~ msgstr[2] "+ {} funta" -#~ msgstr[3] "+ {} funti" - -#~ msgid "+ {} kilogram" -#~ msgid_plural "+ {} kilograms" -#~ msgstr[0] "+ {} kilogramov" -#~ msgstr[1] "+ {} kilogram" -#~ msgstr[2] "+ {} kilograma" -#~ msgstr[3] "+ {} kilogrami" - -#~ msgid "use + to add a weight record" -#~ msgstr "uporabite + za dodajanje podatkov telesne mase" - -#~ msgid "{} Calorie" -#~ msgid_plural "{} Calories" -#~ msgstr[0] "{} kalorij" -#~ msgstr[1] "{} kalorija" -#~ msgstr[2] "{} kaloriji" -#~ msgstr[3] "{} kalorije" - -#~ msgid "Remind you of your step goals" -#~ msgstr "Opomnik za doseganje ciljev" -- 2.40.1 From 6898fc0996fe5eef7bbd79d06784a04ebc159997 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Fri, 22 Jul 2022 13:17:41 +0200 Subject: [PATCH 60/83] refactor(database): use GResource for tracker queries --- .vscode/launch.json | 4 - Cargo.toml | 5 +- build.rs | 81 +++++++++- data/dev.Cogitri.Health.gresource.xml | 17 ++ data/meson.build | 8 - data/tracker/activities.rq | 30 ++++ data/tracker/activities_min.rq | 34 ++++ data/tracker/activities_min_max.rq | 35 ++++ data/tracker/calories.rq | 15 ++ .../migrate_activities_date_datetime.rq | 30 ++++ data/tracker/migrate_weight_date_datetime.rq | 8 + data/tracker/most_frequent_activities.rq | 13 ++ data/tracker/steps.rq | 13 ++ data/tracker/todays_steps.rq | 11 ++ data/tracker/weight_exists_on_date.rq | 11 ++ data/tracker/weights.rq | 12 ++ data/tracker/weights_min.rq | 13 ++ meson.build | 5 - src/config.rs.in | 1 + src/core/database.rs | 150 ++++++++++-------- src/core/utils.rs | 58 +------ src/main.rs | 12 +- src/meson.build | 2 +- src/model/model_notification.rs | 5 +- src/plugins/activities/data_provider.rs | 3 +- src/plugins/activities/summary.rs | 2 +- src/sync/csv.rs | 4 +- 27 files changed, 419 insertions(+), 163 deletions(-) create mode 100644 data/tracker/activities.rq create mode 100644 data/tracker/activities_min.rq create mode 100644 data/tracker/activities_min_max.rq create mode 100644 data/tracker/calories.rq create mode 100644 data/tracker/migrate_activities_date_datetime.rq create mode 100644 data/tracker/migrate_weight_date_datetime.rq create mode 100644 data/tracker/most_frequent_activities.rq create mode 100644 data/tracker/steps.rq create mode 100644 data/tracker/todays_steps.rq create mode 100644 data/tracker/weight_exists_on_date.rq create mode 100644 data/tracker/weights.rq create mode 100644 data/tracker/weights_min.rq diff --git a/.vscode/launch.json b/.vscode/launch.json index 230639f..823d7a4 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -15,8 +15,6 @@ "env": { "G_DEBUG": "fatal-criticals", "GSETTINGS_SCHEMA_DIR": "${workspaceFolder}/build/data", - "HEALTH_GRESOURCE_DIR": "${workspaceFolder}/build/data", - "HEALTH_ONTOLOGY_PATH": "${workspaceFolder}/data/tracker/ontology" }, "args": [], "cwd": "${workspaceFolder}" @@ -35,8 +33,6 @@ "env": { "G_DEBUG": "fatal-criticals", "GSETTINGS_SCHEMA_DIR": "${workspaceFolder}/build/data", - "HEALTH_GRESOURCE_DIR": "${workspaceFolder}/build/data", - "HEALTH_ONTOLOGY_PATH": "${workspaceFolder}/data/tracker/ontology" }, "args": [], "cwd": "${workspaceFolder}" diff --git a/Cargo.toml b/Cargo.toml index 2fcb1a2..88d1bd2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,6 +24,9 @@ path = "src/lib.rs" name = "health" path = "src/main.rs" +[build-dependencies.glob] +version = "0.3" + [dependencies.adw] version = "0.1.0" package = "libadwaita" @@ -123,7 +126,7 @@ version = "1.0" [dependencies.tracker] version = "0.2.1" package = "tracker-rs" -features = ["v3_1"] +features = ["v3_3"] [dependencies.uom] default-features = false diff --git a/build.rs b/build.rs index 2bee3d2..260bf41 100644 --- a/build.rs +++ b/build.rs @@ -1,2 +1,79 @@ -// We need this in order for OUT_DIR to be set in utils.rs -fn main() {} +use std::{env, process::Command}; + +include!("src/config.rs"); + +pub fn compile_resources(source_dirs: &[&str], gresource: &str, target: &str) { + let out_dir = env::var("OUT_DIR").unwrap(); + + let mut command = Command::new("glib-compile-resources"); + command + .arg("--target") + .arg(&format!("{}/{}", out_dir, target)) + .arg(gresource); + + for dir in source_dirs { + command.arg("--sourcedir").arg(dir); + } + + let status = command.status().unwrap(); + + assert!( + status.success(), + "glib-compile-resources failed with exit status {}", + status + ); + + println!("cargo:rerun-if-changed={}", gresource); + let mut command = Command::new("glib-compile-resources"); + + for dir in source_dirs { + command.arg("--sourcedir").arg(dir); + } + + let output = command + .arg("--generate-dependencies") + .arg(gresource) + .output() + .unwrap() + .stdout; + let output = String::from_utf8(output).unwrap(); + for dep in output.split_whitespace() { + println!("cargo:rerun-if-changed={}", dep); + } +} + +pub fn compile_blueprint(source_dir: &str, target: &str) { + let out_dir = env::var("OUT_DIR").unwrap(); + + let mut command = Command::new(BLUEPRINT_COMPILER_PATH); + command + .arg("batch-compile") + .arg(&format!("{}/{}", out_dir, target)) + .arg(source_dir); + + for path in glob::glob(&format!("{}/ui/**/*.blp", source_dir)).unwrap() { + let p = path.unwrap(); + println!("cargo:rerun-if-changed={}", p.display()); + command.arg(p); + } + + let status = command.status().unwrap(); + + if !status.success() { + panic!("blueprint-compiler failed with exit status {}", status); + } +} + +fn main() { + let out_dir = env::var("OUT_DIR").unwrap(); + let manifest_dir = env!("CARGO_MANIFEST_DIR"); + compile_blueprint(&format!("{}/{}", manifest_dir, "data"), "data"); + compile_resources( + &[ + &format!("{}/{}", out_dir, "data"), + &format!("{}/{}", manifest_dir, "data"), + ], + "data/dev.Cogitri.Health.gresource.xml", + "compiled.gresource", + ); +} diff --git a/data/dev.Cogitri.Health.gresource.xml b/data/dev.Cogitri.Health.gresource.xml index a321ce7..011addf 100644 --- a/data/dev.Cogitri.Health.gresource.xml +++ b/data/dev.Cogitri.Health.gresource.xml @@ -43,5 +43,22 @@ icons/symbolic/apps/walking-thin-symbolic.svg icons/symbolic/apps/calories-thin-symbolic.svg icons/symbolic/apps/weight-scale-thin-symbolic.svg + + tracker/activities_min.rq + tracker/activities_min_max.rq + tracker/activities.rq + tracker/calories.rq + tracker/migrate_activities_date_datetime.rq + tracker/migrate_weight_date_datetime.rq + tracker/most_frequent_activities.rq + tracker/steps.rq + tracker/todays_steps.rq + tracker/weight_exists_on_date.rq + tracker/weights_min.rq + tracker/weights.rq + + + tracker/ontology/health.description + tracker/ontology/health.ontology diff --git a/data/meson.build b/data/meson.build index c8b103a..22f8d1f 100644 --- a/data/meson.build +++ b/data/meson.build @@ -115,14 +115,6 @@ blueprints = custom_target('blueprints', command: [find_program('blueprint-compiler'), 'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'], ) -resources = gnome.compile_resources('dev.Cogitri.Health', - 'dev.Cogitri.Health.gresource.xml', - dependencies: blueprints, - gresource_bundle: true, - install: true, - install_dir: health_data_dir, -) - configure_file( input: 'dev.Cogitri.Health.service.in', output: '@0@.service'.format(application_id), diff --git a/data/tracker/activities.rq b/data/tracker/activities.rq new file mode 100644 index 0000000..5973c0a --- /dev/null +++ b/data/tracker/activities.rq @@ -0,0 +1,30 @@ +SELECT + ?date + ?id + ?calories_burned + ?distance + ?heart_rate_avg + ?heart_rate_max + ?heart_rate_min + ?minutes + ?steps + WHERE { + ?datapoint a health:Activity ; + health:activity_datetime ?date ; + health:activity_id ?id . + OPTIONAL { + ?datapoint health:calories_burned ?calories_burned . + } OPTIONAL { + ?datapoint health:distance ?distance . + } OPTIONAL { + ?datapoint health:hearth_rate_avg ?heart_rate_avg . + } OPTIONAL { + ?datapoint health:hearth_rate_min ?heart_rate_min . + } OPTIONAL { + ?datapoint health:hearth_rate_max ?heart_rate_max . + } OPTIONAL { + ?datapoint health:steps ?steps . + } OPTIONAL { + ?datapoint health:minutes ?minutes + } + } ORDER BY DESC(?date) diff --git a/data/tracker/activities_min.rq b/data/tracker/activities_min.rq new file mode 100644 index 0000000..b01aee1 --- /dev/null +++ b/data/tracker/activities_min.rq @@ -0,0 +1,34 @@ +SELECT + ?date + ?id + ?calories_burned + ?distance + ?heart_rate_avg + ?heart_rate_max + ?heart_rate_min + ?minutes + ?steps + WHERE { + ?datapoint a health:Activity ; + health:activity_user_id ?user_id ; + health:activity_datetime ?date ; + health:activity_id ?id . + OPTIONAL { + ?datapoint health:calories_burned ?calories_burned . + } OPTIONAL { + ?datapoint health:distance ?distance . + } OPTIONAL { + ?datapoint health:hearth_rate_avg ?heart_rate_avg . + } OPTIONAL { + ?datapoint health:hearth_rate_min ?heart_rate_min . + } OPTIONAL { + ?datapoint health:hearth_rate_max ?heart_rate_max . + } OPTIONAL { + ?datapoint health:steps ?steps . + } OPTIONAL { + ?datapoint health:minutes ?minutes + } FILTER ( + ?date >= ~date_min^^xsd:dateTime && + ?user_id = ~user^^xsd:integer + ) + } ORDER BY DESC(?date) diff --git a/data/tracker/activities_min_max.rq b/data/tracker/activities_min_max.rq new file mode 100644 index 0000000..7548b81 --- /dev/null +++ b/data/tracker/activities_min_max.rq @@ -0,0 +1,35 @@ +SELECT + ?date + ?id + ?calories_burned + ?distance + ?heart_rate_avg + ?heart_rate_max + ?heart_rate_min + ?minutes + ?steps + WHERE { + ?datapoint a health:Activity ; + health:activity_user_id ?user_id ; + health:activity_datetime ?date ; + health:activity_id ?id . + OPTIONAL { + ?datapoint health:calories_burned ?calories_burned . + } OPTIONAL { + ?datapoint health:distance ?distance . + } OPTIONAL { + ?datapoint health:hearth_rate_avg ?heart_rate_avg . + } OPTIONAL { + ?datapoint health:hearth_rate_min ?heart_rate_min . + } OPTIONAL { + ?datapoint health:hearth_rate_max ?heart_rate_max . + } OPTIONAL { + ?datapoint health:steps ?steps . + } OPTIONAL { + ?datapoint health:minutes ?minutes + } FILTER ( + ?date >= ~date_min^^xsd:dateTime && + ?date <= ~date_max^^xsd:dateTime && + ?user_id = ~user^^xsd:integer + ) + } ORDER BY DESC(?date) diff --git a/data/tracker/calories.rq b/data/tracker/calories.rq new file mode 100644 index 0000000..c03f4c9 --- /dev/null +++ b/data/tracker/calories.rq @@ -0,0 +1,15 @@ +SELECT + ?date + ?id + ?calories_burned + WHERE { + ?datapoint a health:Activity ; + health:activity_datetime ?date ; + health:activity_id ?id ; + health:calories_burned ?calories_burned ; + health:activity_user_id ?user_id . + FILTER ( + ?date >= ~date^^xsd:dateTime && + ?user_id = ~user^^xsd:integer + ) + } diff --git a/data/tracker/migrate_activities_date_datetime.rq b/data/tracker/migrate_activities_date_datetime.rq new file mode 100644 index 0000000..61c9990 --- /dev/null +++ b/data/tracker/migrate_activities_date_datetime.rq @@ -0,0 +1,30 @@ +SELECT + ?date + ?id + ?calories_burned + ?distance + ?heart_rate_avg + ?heart_rate_max + ?heart_rate_min + ?minutes + ?steps + WHERE { + ?datapoint a health:Activity ; + health:activity_date ?date ; + health:activity_id ?id . + OPTIONAL { + ?datapoint health:calories_burned ?calories_burned . + } OPTIONAL { + ?datapoint health:distance ?distance . + } OPTIONAL { + ?datapoint health:hearth_rate_avg ?heart_rate_avg . + } OPTIONAL { + ?datapoint health:hearth_rate_min ?heart_rate_min . + } OPTIONAL { + ?datapoint health:hearth_rate_max ?heart_rate_max . + } OPTIONAL { + ?datapoint health:steps ?steps . + } OPTIONAL { + ?datapoint health:minutes ?minutes + } + } ORDER BY DESC(?date) diff --git a/data/tracker/migrate_weight_date_datetime.rq b/data/tracker/migrate_weight_date_datetime.rq new file mode 100644 index 0000000..9f3fd32 --- /dev/null +++ b/data/tracker/migrate_weight_date_datetime.rq @@ -0,0 +1,8 @@ +SELECT + ?date + ?weight + WHERE { + ?datapoint a health:WeightMeasurement ; + health:weight_date ?date ; + health:weight ?weight . + } ORDER BY ?date diff --git a/data/tracker/most_frequent_activities.rq b/data/tracker/most_frequent_activities.rq new file mode 100644 index 0000000..211d0a0 --- /dev/null +++ b/data/tracker/most_frequent_activities.rq @@ -0,0 +1,13 @@ +SELECT + ?id + WHERE { + ?datapoint a health:Activity ; + health:activity_datetime ?date ; + health:activity_id ?id ; + health:calories_burned ?calories_burned ; + health:activity_user_id ?user_id . + FILTER ( + ?date >= ~date^^xsd:dateTime && + ?user_id = ~user^^xsd:integer + ) + } GROUP BY ?id ORDER BY DESC (SUM(?calories_burned)) diff --git a/data/tracker/steps.rq b/data/tracker/steps.rq new file mode 100644 index 0000000..14e3a2b --- /dev/null +++ b/data/tracker/steps.rq @@ -0,0 +1,13 @@ +SELECT + ?date + ?steps + WHERE { + ?datapoint a health:Activity ; + health:activity_datetime ?date ; + health:steps ?steps ; + health:activity_user_id ?user_id . + FILTER ( + ?date >= ~date^^xsd:dateTime && + ?user_id = ~user^^xsd:integer + ) + } ORDER BY ?date diff --git a/data/tracker/todays_steps.rq b/data/tracker/todays_steps.rq new file mode 100644 index 0000000..cce69b3 --- /dev/null +++ b/data/tracker/todays_steps.rq @@ -0,0 +1,11 @@ +SELECT SUM(?steps) + WHERE { + ?datapoint a health:Activity ; + health:activity_datetime ?date ; + health:steps ?steps ; + health:activity_user_id ?user_id . + FILTER ( + ?date >= ~date^^xsd:dateTime && + ?user_id = ~user^^xsd:integer + ) + } diff --git a/data/tracker/weight_exists_on_date.rq b/data/tracker/weight_exists_on_date.rq new file mode 100644 index 0000000..f226d52 --- /dev/null +++ b/data/tracker/weight_exists_on_date.rq @@ -0,0 +1,11 @@ +ASK { + ?datapoint a health:WeightMeasurement ; + health:weight_datetime ?date ; + health:weight ?weight ; + health:weight_user_id ?user_id . + FILTER( + ?date >= ~date^^xsd:dateTime && + ?date < ~nextdate^^xsd:dateTime && + ?user_id = ~user^^xsd:integer + ) +} diff --git a/data/tracker/weights.rq b/data/tracker/weights.rq new file mode 100644 index 0000000..845e14e --- /dev/null +++ b/data/tracker/weights.rq @@ -0,0 +1,12 @@ +SELECT + ?date + ?weight + WHERE { + ?datapoint a health:WeightMeasurement ; + health:weight_datetime ?date ; + health:weight_user_id ?user_id ; + health:weight ?weight . + FILTER ( + ?user_id = ~user^^xsd:integer + ) + } ORDER BY ?date diff --git a/data/tracker/weights_min.rq b/data/tracker/weights_min.rq new file mode 100644 index 0000000..cc1f718 --- /dev/null +++ b/data/tracker/weights_min.rq @@ -0,0 +1,13 @@ +SELECT + ?date + ?weight + WHERE { + ?datapoint a health:WeightMeasurement ; + health:weight_datetime ?date ; + health:weight ?weight ; + health:weight_user_id ?user_id . + FILTER ( + ?date >= ~date^^xsd:dateTime && + ?user_id = ~user^^xsd:integer + ) + } ORDER BY ?date diff --git a/meson.build b/meson.build index 18f51c1..7442f27 100644 --- a/meson.build +++ b/meson.build @@ -40,11 +40,6 @@ subdir('po') gnome.post_install(glib_compile_schemas: true, gtk_update_icon_cache: true) meson.add_dist_script('build-aux/dist.sh', meson.project_name(), meson.project_version()) -devenv = environment() -devenv.set('HEALTH_ONTOLOGY_PATH', meson.current_source_dir() / 'data' / 'tracker' / 'ontology') -devenv.set('HEALTH_GRESOURCE_DIR', meson.current_build_dir() / 'data') -meson.add_devenv(devenv) - run_target('run', command : ['build-aux/run.sh', application_id]) diff --git a/src/config.rs.in b/src/config.rs.in index 799ba83..8068e69 100644 --- a/src/config.rs.in +++ b/src/config.rs.in @@ -5,3 +5,4 @@ pub static APPLICATION_ID: &str = @application_id@; pub static LOG_DOMAIN: &str = @log_domain@; pub static GETTEXT_PACKAGE: &str = @gettext_package@; pub static AUTOSTART_DESKTOP_FILE_PATH: &str = @autostart_desktop_file_path@; +pub static BLUEPRINT_COMPILER_PATH: &str = @blueprint_compiler_path@; diff --git a/src/core/database.rs b/src/core/database.rs index 9983050..e59ccce 100644 --- a/src/core/database.rs +++ b/src/core/database.rs @@ -164,6 +164,26 @@ impl Database { }) } + pub fn load_statement_from_gresource(&self, name: &str) -> tracker::SparqlStatement { + let connection = self.imp().connection.get().unwrap(); + connection + .load_statement_from_gresource( + &format!("/dev/Cogitri/Health/tracker/{}.rq", name), + None::<&gio::Cancellable>, + ) + .unwrap() + .unwrap() + } + + /// Get activities. + /// + /// # Returns + /// An array of [Activity]s, or a [glib::Error] if querying the DB goes wrong. + pub async fn activities(&self) -> Result> { + let statement = self.load_statement_from_gresource("activities"); + self.activities_impl(statement).await + } + /// Get activities. /// /// # Arguments @@ -171,21 +191,42 @@ impl Database { /// /// # Returns /// An array of [Activity]s that are within the given timeframe (if set), or a [glib::Error] if querying the DB goes wrong. - pub async fn activities(&self, date_opt: Option) -> Result> { + pub async fn activities_min(&self, date_min: glib::DateTime) -> Result> { + let statement = self.load_statement_from_gresource("activities_min"); + statement.bind_string("date_min", date_min.format_iso8601().unwrap().as_str()); + self.activities_impl(statement).await + } + + /// Get activities. + /// + /// # Arguments + /// * `date_opt` - If `Some`, only get activities that are more recent than `date_opt`. + /// + /// # Returns + /// An array of [Activity]s that are within the given timeframe (if set), or a [glib::Error] if querying the DB goes wrong. + pub async fn activities_min_max( + &self, + date_min: glib::DateTime, + date_max: glib::DateTime, + ) -> Result> { + let statement = self.load_statement_from_gresource("activities_min_max"); + statement.bind_string("date_min", date_min.format_iso8601().unwrap().as_str()); + statement.bind_string("date_max", date_max.format_iso8601().unwrap().as_str()); + self.activities_impl(statement).await + } + + /// Get activities. + /// + /// # Arguments + /// * `date_opt` - If `Some`, only get activities that are more recent than `date_opt`. + /// + /// # Returns + /// An array of [Activity]s that are within the given timeframe (if set), or a [glib::Error] if querying the DB goes wrong. + async fn activities_impl(&self, statement: tracker::SparqlStatement) -> Result> { let imp = self.imp(); let user_id = i64::from(imp.settings.active_user_id()); - - let connection = imp.connection.get().unwrap(); - let cursor = if let Some(date) = date_opt { - let statement = connection.query_statement("SELECT ?date ?id ?calories_burned ?distance ?heart_rate_avg ?heart_rate_max ?heart_rate_min ?minutes ?steps WHERE {{ ?datapoint a health:Activity ; health:activity_user_id ?user_id ; health:activity_datetime ?date ; health:activity_id ?id . OPTIONAL {{ ?datapoint health:calories_burned ?calories_burned . }} OPTIONAL {{ ?datapoint health:distance ?distance . }} OPTIONAL {{ ?datapoint health:hearth_rate_avg ?heart_rate_avg . }} OPTIONAL {{ ?datapoint health:hearth_rate_min ?heart_rate_min . }} OPTIONAL {{ ?datapoint health:hearth_rate_max ?heart_rate_max . }} OPTIONAL {{ ?datapoint health:steps ?steps . }} OPTIONAL {{ ?datapoint health:minutes ?minutes }} FILTER (?date >= ~date^^xsd:dateTime && ?user_id = ~user^^xsd:integer)}} ORDER BY DESC(?date)", None::<&gio::Cancellable>).unwrap().unwrap(); - statement.bind_string("date", date.format_iso8601().unwrap().as_str()); - statement.bind_int("user", user_id); - statement.execute_future().await? - } else { - let statement = connection.query_statement("SELECT ?date ?id ?calories_burned ?distance ?heart_rate_avg ?heart_rate_max ?heart_rate_min ?minutes ?steps WHERE {{ ?datapoint a health:Activity ; health:activity_user_id ?user_id ; health:activity_datetime ?date ; health:activity_id ?id . OPTIONAL {{ ?datapoint health:calories_burned ?calories_burned . }} OPTIONAL {{ ?datapoint health:distance ?distance . }} OPTIONAL {{ ?datapoint health:hearth_rate_avg ?heart_rate_avg . }} OPTIONAL {{ ?datapoint health:hearth_rate_min ?heart_rate_min . }} OPTIONAL {{ ?datapoint health:hearth_rate_max ?heart_rate_max . }} OPTIONAL {{ ?datapoint health:steps ?steps . }} OPTIONAL {{ ?datapoint health:minutes ?minutes }} FILTER (?user_id = ~user^^xsd:integer)}} ORDER BY DESC(?date)", None::<&gio::Cancellable>).unwrap().unwrap(); - statement.bind_int("user", user_id); - statement.execute_future().await? - }; + statement.bind_int("user", user_id); + let cursor = statement.execute_future().await?; let mut ret = Vec::new(); while let Ok(true) = cursor.next_future().await { @@ -251,10 +292,8 @@ impl Database { /// An array of [SplitBar]s that are within the given timeframe or a [glib::Error] if querying the DB goes wrong. pub async fn calories(&self, minimum_date: glib::DateTime) -> Result> { let imp = self.imp(); - let connection = imp.connection.get().unwrap(); let user_id = i64::from(imp.settings.active_user_id()); - - let statement = connection.query_statement("SELECT ?date ?id ?calories_burned WHERE {{ ?datapoint a health:Activity ; health:activity_datetime ?date ; health:activity_id ?id ; health:calories_burned ?calories_burned ; health:activity_user_id ?user_id . FILTER (?date >= ~date^^xsd:dateTime && ?user_id = ~user^^xsd:integer) }}", None::<&gio::Cancellable>).unwrap().unwrap(); + let statement = self.load_statement_from_gresource("calories"); statement.bind_string("date", minimum_date.format_iso8601().unwrap().as_str()); statement.bind_int("user", user_id); let cursor = statement.execute_future().await?; @@ -311,11 +350,10 @@ impl Database { minimum_date: glib::DateTime, ) -> Result> { let imp = self.imp(); - let connection = imp.connection.get().unwrap(); let mut most_frequent = Vec::new(); let user_id = i64::from(imp.settings.active_user_id()); - let statement = connection.query_statement("SELECT ?id WHERE {{ ?datapoint a health:Activity ; health:activity_datetime ?date ; health:activity_id ?id ; health:calories_burned ?calories_burned; health:activity_user_id ?user_id . FILTER (?date >= ~date^^xsd:dateTime && ?user_id = ~user^^xsd:integer) }} GROUP BY ?id ORDER BY DESC (SUM(?calories_burned))", None::<&gio::Cancellable>).unwrap().unwrap(); + let statement = self.load_statement_from_gresource("most_frequent_activities"); statement.bind_string("date", minimum_date.format_iso8601().unwrap().as_str()); statement.bind_int("user", user_id); let cursor = statement.execute_future().await?; @@ -375,11 +413,8 @@ impl Database { /// An array of [Steps]s that are within the given timeframe (if set), or a [glib::Error] if querying the DB goes wrong. pub async fn steps(&self, date: glib::DateTime) -> Result> { let imp = self.imp(); - - let connection = imp.connection.get().unwrap(); let user_id = i64::from(self.imp().settings.active_user_id()); - - let statement = connection.query_statement("SELECT ?date ?steps WHERE {{ ?datapoint a health:Activity ; health:activity_datetime ?date ; health:steps ?steps ; health:activity_user_id ?user_id . FILTER (?date >= ~date^^xsd:dateTime && ?user_id = ~user^^xsd:integer)}} ORDER BY ?date", None::<&gio::Cancellable>).unwrap().unwrap(); + let statement = self.load_statement_from_gresource("steps"); statement.bind_string("date", &date.format_iso8601().unwrap()); statement.bind_int("user", user_id); let cursor = statement.execute_future().await?; @@ -409,12 +444,9 @@ impl Database { /// # Returns /// An array of [Steps]s that are within the given timeframe (if set), or a [glib::Error] if querying the DB goes wrong. pub async fn todays_steps(&self) -> Result { - let imp = self.imp(); let date = glib::DateTime::today(); - let user_id = i64::from(imp.settings.active_user_id()); - - let connection = imp.connection.get().unwrap(); - let statement = connection.query_statement("SELECT SUM(?steps) WHERE {{ ?datapoint a health:Activity ; health:activity_datetime ?date ; health:steps ?steps ; health:activity_user_id ?user_id . FILTER (?date >= ~date^^xsd:dateTime && ?user_id = ~user^^xsd:integer)}}", None::<&gio::Cancellable>).unwrap().unwrap(); + let user_id = i64::from(self.imp().settings.active_user_id()); + let statement = self.load_statement_from_gresource("todays_steps"); statement.bind_string("date", &date.format_iso8601().unwrap()); statement.bind_int("user", user_id); let cursor = statement.execute_future().await?; @@ -436,20 +468,18 @@ impl Database { /// # Returns /// An array of [Weight]s that are within the given timeframe (if set), or a [glib::Error] if querying the DB goes wrong. pub async fn weights(&self, date_opt: Option) -> Result> { - let imp = self.imp(); - - let connection = imp.connection.get().unwrap(); - let user_id = i64::from(imp.settings.active_user_id()); + let user_id = i64::from(self.imp().settings.active_user_id()); let cursor = if let Some(date) = date_opt { - let statement = connection.query_statement("SELECT ?date ?weight WHERE {{ ?datapoint a health:WeightMeasurement ; health:weight_datetime ?date ; health:weight ?weight ; health:weight_user_id ?user_id . FILTER (?date >= ~date^^xsd:dateTime && ?user_id = ~user^^xsd:integer)}} ORDER BY ?date", None::<&gio::Cancellable>).unwrap().unwrap(); + let statement = self.load_statement_from_gresource("weights_min"); statement.bind_string("date", date.format_iso8601().unwrap().as_str()); statement.bind_int("user", user_id); statement.execute_future().await? } else { - let statement = connection.query_statement("SELECT ?date ?weight WHERE {{ ?datapoint a health:WeightMeasurement ; health:weight_datetime ?date ; health:weight_user_id ?user_id ; health:weight ?weight . FILTER (?user_id = ~user^^xsd:integer)}} ORDER BY ?date", None::<&gio::Cancellable>).unwrap().unwrap(); + let statement = self.load_statement_from_gresource("weights"); statement.bind_int("user", user_id); statement.execute_future().await? }; + let mut ret = Vec::new(); while let Ok(true) = cursor.next_future().await { @@ -473,11 +503,9 @@ impl Database { /// # Returns /// True if a [Weight] exists on the `date`, or [glib::Error] if querying the DB goes wrong. pub async fn weight_exists_on_date(&self, date: glib::DateTime) -> Result { - let imp = self.imp(); + let user_id = i64::from(self.imp().settings.active_user_id()); - let connection = imp.connection.get().unwrap(); - let user_id = i64::from(imp.settings.active_user_id()); - let statement = connection.query_statement("ASK {{ ?datapoint a health:WeightMeasurement ; health:weight_datetime ?date ; health:weight ?weight ; health:weight_user_id ?user_id . FILTER(?date >= ~date^^xsd:dateTime && ?date < ~nextdate^^xsd:dateTime && ?user_id = ~user^^xsd:integer) }}", None::<&gio::Cancellable>).unwrap().unwrap(); + let statement = self.load_statement_from_gresource("weight_exists_on_date"); statement.bind_string("date", date.reset_hms().format_iso8601().unwrap().as_str()); statement.bind_string( "nextdate", @@ -952,8 +980,10 @@ impl Database { let connection = imp.connection.get().unwrap(); let manager = imp.manager.get().unwrap(); - let cursor = - connection.query_future("SELECT ?date ?id ?calories_burned ?distance ?heart_rate_avg ?heart_rate_max ?heart_rate_min ?minutes ?steps WHERE { ?datapoint a health:Activity ; health:activity_date ?date ; health:activity_id ?id . OPTIONAL { ?datapoint health:calories_burned ?calories_burned . } OPTIONAL { ?datapoint health:distance ?distance . } OPTIONAL { ?datapoint health:hearth_rate_avg ?heart_rate_avg . } OPTIONAL { ?datapoint health:hearth_rate_min ?heart_rate_min . } OPTIONAL { ?datapoint health:hearth_rate_max ?heart_rate_max . } OPTIONAL { ?datapoint health:steps ?steps . } OPTIONAL { ?datapoint health:minutes ?minutes } } ORDER BY DESC(?date)").await?; + let cursor = self + .load_statement_from_gresource("migrate_activities_date_datetime") + .execute_future() + .await?; while let Ok(true) = cursor.next_future().await { let resource = tracker::Resource::new(None); @@ -1049,8 +1079,10 @@ impl Database { let connection = imp.connection.get().unwrap(); let manager = imp.manager.get().unwrap(); - let cursor = - connection.query_future("SELECT ?date ?weight WHERE { ?datapoint a health:WeightMeasurement ; health:weight_date ?date ; health:weight ?weight . } ORDER BY ?date").await?; + let cursor = self + .load_statement_from_gresource("migrate_weight_date_datetime") + .execute_future() + .await?; while let Ok(true) = cursor.next_future().await { let resource = tracker::Resource::new(None); @@ -1243,7 +1275,7 @@ impl Database { fn new() -> Result { let o: Self = glib::Object::new(&[]).expect("Failed to create Database"); - o.connect(None, None)?; + o.connect(None)?; Ok(o) } @@ -1259,11 +1291,8 @@ impl Database { pub fn new_with_store_path(store_path: PathBuf) -> Result { let o: Self = glib::Object::new(&[]).expect("Failed to create Database"); - let mut path = PathBuf::new(); - path.push(env!("CARGO_MANIFEST_DIR")); - path.push("data/tracker"); - - o.connect(Some(path), Some(store_path))?; + crate::utils::init_gresources(); + o.connect(Some(store_path))?; Ok(o) } @@ -1465,20 +1494,11 @@ impl Database { /// /// # Panics /// This function will panic if it's called on the same [Database] object multiple times. - fn connect(&self, ontology_path: Option, store_path: Option) -> Result<()> { + fn connect(&self, store_path: Option) -> Result<()> { let imp = self.imp(); let mut store_path = store_path.unwrap_or_else(glib::user_data_dir); store_path.push("health"); - let ontology_path = if let Ok(p) = std::env::var("HEALTH_ONTOLOGY_PATH") { - Path::new(&p).to_path_buf() - } else { - let mut ontology_path = - ontology_path.unwrap_or_else(|| Path::new(crate::config::PKGDATADIR).to_path_buf()); - ontology_path.push("ontology"); - ontology_path - }; - let manager = tracker::NamespaceManager::new(); manager.add_prefix("health", "https://gitlab.gnome.org/World/health#"); @@ -1487,7 +1507,9 @@ impl Database { .set(tracker::SparqlConnection::new( tracker::SparqlConnectionFlags::NONE, Some(&gio::File::for_path(store_path)), - Some(&gio::File::for_path(ontology_path)), + Some(&gio::File::for_uri( + "resource:///dev/Cogitri/Health/tracker/ontology", + )), None::<&gio::Cancellable>, )?) .unwrap(); @@ -1524,9 +1546,7 @@ mod test { let retrieved_activities = async move { db.save_activity(expected_activity).await.unwrap(); - db.activities(Some(date.add_days(1).unwrap())) - .await - .unwrap() + db.activities_min(date.add_days(1).unwrap()).await.unwrap() } .block(); assert!(retrieved_activities.is_empty()); @@ -1565,9 +1585,7 @@ mod test { let retrieved_activities = async move { db.save_activity(a).await.unwrap(); - db.activities(Some(date.add_days(-1).unwrap())) - .await - .unwrap() + db.activities_min(date.add_days(-1).unwrap()).await.unwrap() } .block(); let activity = retrieved_activities.get(0).unwrap(); @@ -1631,9 +1649,7 @@ mod test { let retrieved_activities = async move { db.migrate().await.unwrap(); - db.activities(Some(date.add_days(-1).unwrap())) - .await - .unwrap() + db.activities_min(date.add_days(-1).unwrap()).await.unwrap() } .block(); let activity = retrieved_activities.get(0).unwrap(); diff --git a/src/core/utils.rs b/src/core/utils.rs index 5a2fc83..e89a6a2 100644 --- a/src/core/utils.rs +++ b/src/core/utils.rs @@ -174,65 +174,13 @@ pub fn get_file_in_builddir(filename: &str) -> Option { } #[cfg(test)] -pub fn init_env() { - use std::env::set_var; - set_var( - "HEALTH_GRESOURCE_DIR", - &format!("{}/build/data", env!("CARGO_MANIFEST_DIR")), - ); - set_var( - "HEALTH_ONTOLOGY_PATH", - &format!("{}/data/tracker/ontology", env!("CARGO_MANIFEST_DIR")), - ); +pub fn init_gresources() { + gio::resources_register_include!("compiled.gresource").unwrap(); } #[cfg(test)] pub fn init_gtk() { - let res = if let Some(gresource_path) = get_file_in_builddir("dev.Cogitri.Health.gresource") { - gio::Resource::load(gresource_path) - } else { - use std::process::Command; - - let dir_str = env!("OUT_DIR"); - - let meson_output = Command::new("meson") - .arg(format!("{}/build", dir_str)) - .output() - .expect("Failed to run meson configure download!"); - - if !meson_output.status.success() { - println!( - "Couldn't run meson configure! Status: {}\nStdout:\n{}\nStderr:\n{}", - meson_output.status, - String::from_utf8_lossy(&meson_output.stdout), - String::from_utf8_lossy(&meson_output.stderr) - ); - } - - let output = Command::new("ninja") - .arg("-C") - .arg(format!("{}/build", dir_str)) - .arg("data/dev.Cogitri.Health.gresource") - .output() - .expect("Failed to run ninja!"); - - if !output.status.success() { - panic!( - "Couldn't execute ninja! Status: {} Stdout: {}, Stderr: {}", - output.status, - String::from_utf8_lossy(&output.stdout), - String::from_utf8_lossy(&output.stderr) - ); - } - - gio::Resource::load(&format!( - "{}/build/data/dev.Cogitri.Health.gresource", - dir_str - )) - }; - - init_env(); - gio::resources_register(&res.unwrap()); + init_gresources(); gtk::init().unwrap(); adw::init(); diff --git a/src/main.rs b/src/main.rs index 2492405..b6aaf3d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -30,17 +30,7 @@ fn main() { glib::set_application_name(&i18n("Health")); glib::set_prgname(Some("dev.Cogitri.Health")); - - gtk::init().expect("Failed to initialize GTK."); - adw::init(); - - let res = if let Ok(resource_path) = std::env::var("HEALTH_GRESOURCE_DIR") { - gio::Resource::load(resource_path + "/dev.Cogitri.Health.gresource").expect("Couldn't find GResource in HEALTH_GRESOURCE_DIR. Did you forget running ninja -C build?") - } else { - gio::Resource::load(config::PKGDATADIR.to_owned() + "/dev.Cogitri.Health.gresource") - .expect("Could not load resources. Did you forget running Health in the shell provided by \"meson devenv -C build\"?") - }; - gio::resources_register(&res); + gio::resources_register_include!("compiled.gresource").unwrap(); let app = Application::new(); diff --git a/src/meson.build b/src/meson.build index 1537756..b371cf3 100644 --- a/src/meson.build +++ b/src/meson.build @@ -6,6 +6,7 @@ conf.set_quoted('application_id', application_id) conf.set_quoted('log_domain', application_id) conf.set_quoted('gettext_package', gettext_package) conf.set_quoted('autostart_desktop_file_path', get_option('prefix') / get_option('datadir') / 'applications' / 'dev.Cogitri.Health.Autostart.desktop') +conf.set_quoted('blueprint_compiler_path', find_program('blueprint-compiler').full_path()) configure_file( input: 'config.rs.in', @@ -43,7 +44,6 @@ cargo_build = custom_target( console: true, install: true, install_dir: get_option('bindir'), - depends: resources, command: [ 'env', cargo_env, diff --git a/src/model/model_notification.rs b/src/model/model_notification.rs index 8f88c33..bee0f5d 100644 --- a/src/model/model_notification.rs +++ b/src/model/model_notification.rs @@ -258,13 +258,11 @@ impl ModelNotification { #[cfg(test)] mod test { use super::{ModelNotification, NotificationFrequency}; - use crate::{prelude::*, utils::init_env}; + use crate::prelude::*; use gtk::gio; #[test] fn new() { - init_env(); - ModelNotification::new( &gio::Application::new(None, gio::ApplicationFlags::FLAGS_NONE), NotificationFrequency::Every4Hrs, @@ -275,7 +273,6 @@ mod test { #[test] fn properties() { - init_env(); let app = gio::Application::new(None, gio::ApplicationFlags::FLAGS_NONE); let time = Time::parse("12:00:00").unwrap(); diff --git a/src/plugins/activities/data_provider.rs b/src/plugins/activities/data_provider.rs index 4729abb..4a1ea65 100644 --- a/src/plugins/activities/data_provider.rs +++ b/src/plugins/activities/data_provider.rs @@ -107,7 +107,7 @@ impl ModelActivity { let imp = self.imp(); let previous_size = { imp.inner.borrow().vec.len() }; - let new_vec = imp.database.activities(None).await?; + let new_vec = imp.database.activities().await?; { imp.inner.borrow_mut().vec = new_vec; } @@ -137,7 +137,6 @@ mod test { #[test] fn new() { - init_env(); ModelActivity::new(); } diff --git a/src/plugins/activities/summary.rs b/src/plugins/activities/summary.rs index 3afdf98..c9b7746 100644 --- a/src/plugins/activities/summary.rs +++ b/src/plugins/activities/summary.rs @@ -81,7 +81,7 @@ impl PluginActivitiesSummaryRow { pub async fn update(&self) { let imp = self.imp(); let active_minutes_today: i64 = Database::instance() - .activities(Some(glib::DateTime::local().add_days(-1).unwrap())) + .activities_min(glib::DateTime::local().add_days(-1).unwrap()) .await .unwrap_or_default() .iter() diff --git a/src/sync/csv.rs b/src/sync/csv.rs index 68d70d0..51dcb57 100644 --- a/src/sync/csv.rs +++ b/src/sync/csv.rs @@ -75,7 +75,7 @@ impl CsvHandler { /// An error if writing to the file fails or reading from the DB. pub async fn export_activities_csv(&self, file: &gio::File, key: Option<&str>) -> Result<()> { let mut wtr = csv::Writer::from_writer(vec![]); - let activities = self.db.activities(None).await?; + let activities = self.db.activities().await?; if activities.is_empty() { anyhow::bail!(i18n("No activities added yet; can’t create empty export!")); @@ -415,7 +415,7 @@ mod test { .import_activities_csv(&file, None) .await .unwrap(); - let new_act = &db.activities(None).await.unwrap()[0]; + let new_act = &db.activities().await.unwrap()[0]; assert_eq!(new_act.date(), act.date()); assert_eq!(new_act.steps(), act.steps()); assert_eq!(new_act.calories_burned(), act.calories_burned()); -- 2.40.1 From 5eba778f71eec7f58cfd6df86dd0d9a321cbbfd7 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Fri, 22 Jul 2022 14:48:03 +0200 Subject: [PATCH 61/83] refactor(database): use tracker's glib::DateTime functions --- Cargo.toml | 2 +- src/core/database.rs | 99 ++++++++------------------------------------ 2 files changed, 19 insertions(+), 82 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 88d1bd2..9c873ef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -124,7 +124,7 @@ features = ["derive"] version = "1.0" [dependencies.tracker] -version = "0.2.1" +version = "0.2.4" package = "tracker-rs" features = ["v3_3"] diff --git a/src/core/database.rs b/src/core/database.rs index e59ccce..1a250ba 100644 --- a/src/core/database.rs +++ b/src/core/database.rs @@ -546,10 +546,7 @@ impl Database { let resource = tracker::Resource::new(None); resource.set_uri("rdf:type", "health:Activity"); resource.set_int64("health:activity_user_id", user_id); - resource.set_string( - "health:activity_datetime", - s.date.format_iso8601().unwrap().as_str(), - ); + resource.set_datetime("health:activity_datetime", &s.date); resource.set_int64("health:steps", s.steps.into()); resource.set_int64( "health:activity_id", @@ -558,14 +555,7 @@ impl Database { // FIXME: Set correct minutes here resource.set_int64("health:minutes", 0); - connection - .update_future( - resource - .print_sparql_update(Some(manager), None) - .unwrap() - .as_str(), - ) - .await?; + connection.update_resource_future(None, &resource).await?; } self.emit_by_name::<()>("activities-updated", &[]); @@ -594,20 +584,10 @@ impl Database { let resource = tracker::Resource::new(None); resource.set_uri("rdf:type", "health:WeightMeasurement"); resource.set_int64("health:activity_user_id", user_id); - resource.set_string( - "health:weight_datetime", - w.date.format_iso8601().unwrap().as_str(), - ); + resource.set_datetime("health:weight_datetime", &w.date); resource.set_double("health:weight", w.weight.get::().into()); - connection - .update_future( - resource - .print_sparql_update(Some(manager), None) - .unwrap() - .as_str(), - ) - .await?; + connection.update_resource_future(None, &resource).await?; } self.emit_by_name::<()>("weights-updated", &[]); @@ -978,7 +958,6 @@ impl Database { pub async fn migrate_activities_date_datetime(&self) -> Result<()> { let imp = self.imp(); let connection = imp.connection.get().unwrap(); - let manager = imp.manager.get().unwrap(); let cursor = self .load_statement_from_gresource("migrate_activities_date_datetime") @@ -986,6 +965,7 @@ impl Database { .await?; while let Ok(true) = cursor.next_future().await { + println!("found"); let resource = tracker::Resource::new(None); resource.set_uri("rdf:type", "health:Activity"); @@ -995,13 +975,10 @@ impl Database { resource.set_int64("health:activity_id", cursor.integer(i)); } "date" => { - resource.set_string( + resource.set_datetime( "health:activity_datetime", - Date::parse(cursor.string(i).unwrap().as_str())? - .and_time_utc(Time::new(0, 0, 0).unwrap()) - .format_iso8601() - .unwrap() - .as_str(), + &Date::parse(cursor.string(i).unwrap().as_str())? + .and_time_utc(Time::new(0, 0, 0).unwrap()), ); } "calories_burned" => { @@ -1050,14 +1027,7 @@ impl Database { } } - connection - .update_future( - resource - .print_sparql_update(Some(manager), None) - .unwrap() - .as_str(), - ) - .await?; + connection.update_resource_future(None, &resource).await?; } connection @@ -1077,7 +1047,6 @@ impl Database { pub async fn migrate_weight_date_datetime(&self) -> Result<()> { let imp = self.imp(); let connection = imp.connection.get().unwrap(); - let manager = imp.manager.get().unwrap(); let cursor = self .load_statement_from_gresource("migrate_weight_date_datetime") @@ -1087,24 +1056,14 @@ impl Database { while let Ok(true) = cursor.next_future().await { let resource = tracker::Resource::new(None); resource.set_uri("rdf:type", "health:WeightMeasurement"); - resource.set_string( + resource.set_datetime( "health:weight_datetime", - Date::parse(cursor.string(0).unwrap().as_str())? - .and_time_utc(Time::new(0, 0, 0).unwrap()) - .format_iso8601() - .unwrap() - .as_str(), + &Date::parse(cursor.string(0).unwrap().as_str())? + .and_time_utc(Time::new(0, 0, 0).unwrap()), ); resource.set_double("health:weight", cursor.double(1)); - connection - .update_future( - resource - .print_sparql_update(Some(manager), None) - .unwrap() - .as_str(), - ) - .await?; + connection.update_resource_future(None, &resource).await?; } connection @@ -1325,10 +1284,7 @@ impl Database { let imp = self.imp(); let resource = tracker::Resource::new(None); resource.set_uri("rdf:type", "health:Activity"); - resource.set_string( - "health:activity_datetime", - activity.date().format_iso8601().unwrap().as_str(), - ); + resource.set_datetime("health:activity_datetime", &activity.date()); resource.set_int64( "health:activity_user_id", i64::from(imp.settings.active_user_id()), @@ -1361,16 +1317,8 @@ impl Database { } let connection = imp.connection.get().unwrap(); - let manager = imp.manager.get().unwrap(); - connection - .update_future( - resource - .print_sparql_update(Some(manager), None) - .unwrap() - .as_str(), - ) - .await?; + connection.update_resource_future(None, &resource).await?; self.emit_by_name::<()>("activities-updated", &[]); Ok(()) @@ -1387,10 +1335,7 @@ impl Database { let imp = self.imp(); let resource = tracker::Resource::new(None); resource.set_uri("rdf:type", "health:WeightMeasurement"); - resource.set_string( - "health:weight_datetime", - weight.date.format_iso8601().unwrap().as_str(), - ); + resource.set_datetime("health:weight_datetime", &weight.date); resource.set_double("health:weight", weight.weight.get::().into()); resource.set_int64( "health:weight_user_id", @@ -1398,16 +1343,8 @@ impl Database { ); let connection = imp.connection.get().unwrap(); - let manager = imp.manager.get().unwrap(); - connection - .update_future( - resource - .print_sparql_update(Some(manager), None) - .unwrap() - .as_str(), - ) - .await?; + connection.update_resource_future(None, &resource).await?; self.emit_by_name::<()>("weights-updated", &[]); Ok(()) @@ -1615,7 +1552,7 @@ mod test { fn migration_activities() { let data_dir = tempdir().unwrap(); let date = glib::DateTime::local(); - let db = Database::new_with_store_path(data_dir.path().into()).unwrap(); + let db = Database::new_with_store_path(PathBuf::from("/home/rasmus/tracker")).unwrap(); let connection = db.connection(); Settings::instance().set_user_weight_goal(Mass::new::(50.0)); let expected_activity = Activity::builder() -- 2.40.1 From c3f19ce6aafebffc00bacdde707480d7eb7a5946 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Fri, 22 Jul 2022 22:24:33 +0200 Subject: [PATCH 62/83] fix(database): LIMIT output of activities() so activities' details dont choke --- data/tracker/activities.rq | 1 + data/tracker/activities_min.rq | 1 + data/tracker/activities_min_max.rq | 1 + 3 files changed, 3 insertions(+) diff --git a/data/tracker/activities.rq b/data/tracker/activities.rq index 5973c0a..fc31a4c 100644 --- a/data/tracker/activities.rq +++ b/data/tracker/activities.rq @@ -28,3 +28,4 @@ SELECT ?datapoint health:minutes ?minutes } } ORDER BY DESC(?date) + LIMIT 100 diff --git a/data/tracker/activities_min.rq b/data/tracker/activities_min.rq index b01aee1..d6960ac 100644 --- a/data/tracker/activities_min.rq +++ b/data/tracker/activities_min.rq @@ -32,3 +32,4 @@ SELECT ?user_id = ~user^^xsd:integer ) } ORDER BY DESC(?date) + LIMIT 100 diff --git a/data/tracker/activities_min_max.rq b/data/tracker/activities_min_max.rq index 7548b81..c971325 100644 --- a/data/tracker/activities_min_max.rq +++ b/data/tracker/activities_min_max.rq @@ -33,3 +33,4 @@ SELECT ?user_id = ~user^^xsd:integer ) } ORDER BY DESC(?date) + LIMIT 100 -- 2.40.1 From b73f4df5a04bd0e59f1f4b9397fa1f7a9a6d228b Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Sat, 23 Jul 2022 12:57:23 +0200 Subject: [PATCH 63/83] refactor(tree-wide): use ParamSpec*::builder --- src/model/activity.rs | 123 +++++++++-------------- src/model/activity_type_row_data.rs | 20 ++-- src/model/model_notification.rs | 40 ++------ src/plugins/activities/details.rs | 9 +- src/plugins/calories/details.rs | 9 +- src/plugins/details.rs | 52 ++-------- src/plugins/overview.rs | 30 ++---- src/plugins/plugin_object.rs | 18 ++-- src/plugins/steps/details.rs | 9 +- src/plugins/summary.rs | 10 +- src/plugins/weight/details.rs | 9 +- src/views/bar_graph_view.rs | 35 ++----- src/views/graph_view.rs | 43 ++------ src/views/view_add.rs | 30 ++---- src/views/view_add_activity.rs | 13 +-- src/views/view_add_weight.rs | 2 +- src/widgets/activity_row.rs | 8 +- src/widgets/activity_type_row.rs | 30 ++---- src/widgets/activity_type_selector.rs | 8 +- src/widgets/arrows.rs | 11 +- src/widgets/bmi_level_bar.rs | 36 ++----- src/widgets/circular_progress_bar.rs | 20 +--- src/widgets/color_circle.rs | 8 +- src/widgets/date_selector.rs | 11 +- src/widgets/distance_action_row.rs | 22 ++-- src/widgets/legend_row.rs | 16 +-- src/widgets/password_entry.rs | 30 ++---- src/widgets/sync_list_box.rs | 12 +-- src/widgets/tab_button.rs | 20 ++-- src/widgets/unit_spinbutton.rs | 76 +++++--------- src/windows/data_add_dialog.rs | 10 +- src/windows/import_export_dialog_base.rs | 10 +- src/windows/preferences_window.rs | 11 +- 33 files changed, 240 insertions(+), 551 deletions(-) diff --git a/src/model/activity.rs b/src/model/activity.rs index fb4af6f..006e495 100644 --- a/src/model/activity.rs +++ b/src/model/activity.rs @@ -98,83 +98,52 @@ mod imp { static PROPERTIES: Lazy> = Lazy::new(|| { vec![ - glib::ParamSpecString::new( - "activity-type", - "activity-type", - "activity-type", - Some("walking"), - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, - ), - glib::ParamSpecInt64::new( - "calories-burned", - "calories-burned", - "calories-burned", - -1, - u32::MAX.into(), - -1, - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, - ), - glib::ParamSpecBoxed::new( - "date", - "date", - "date", - glib::DateTime::static_type(), - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, - ), - glib::ParamSpecFloat::new( - "distance-meter", - "distance-meter", - "distance-meter", - -1.0, - f32::MAX, - -1.0, - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, - ), - glib::ParamSpecInt64::new( - "duration-seconds", - "duration-seconds", - "duration-seconds", - i64::MIN, - i64::MAX, - 0, - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, - ), - glib::ParamSpecInt64::new( - "heart-rate-avg", - "heart-rate-avg", - "heart-rate-avg", - -1, - u32::MAX.into(), - -1, - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, - ), - glib::ParamSpecInt64::new( - "heart-rate-max", - "heart-rate-max", - "heart-rate-max", - -1, - u32::MAX.into(), - -1, - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, - ), - glib::ParamSpecInt64::new( - "heart-rate-min", - "heart-rate-min", - "heart-rate-min", - -1, - u32::MAX.into(), - -1, - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, - ), - glib::ParamSpecInt64::new( - "steps", - "steps", - "steps", - -1, - u32::MAX.into(), - -1, - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, - ), + glib::ParamSpecString::builder("activity-type") + .default_value(Some("walking")) + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT) + .build(), + glib::ParamSpecInt64::builder("calories-burned") + .minimum(-1) + .maximum(u32::MAX.into()) + .default_value(-1) + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT) + .build(), + glib::ParamSpecBoxed::builder("date", glib::DateTime::static_type()) + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT) + .build(), + glib::ParamSpecFloat::builder("distance-meter") + .minimum(-1.0) + .maximum(f32::MAX) + .default_value(-1.0) + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT) + .build(), + glib::ParamSpecInt64::builder("duration-seconds") + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT) + .build(), + glib::ParamSpecInt64::builder("heart-rate-avg") + .minimum(-1) + .maximum(u32::MAX.into()) + .default_value(-1) + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT) + .build(), + glib::ParamSpecInt64::builder("heart-rate-max") + .minimum(-1) + .maximum(u32::MAX.into()) + .default_value(-1) + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT) + .build(), + glib::ParamSpecInt64::builder("heart-rate-min") + .minimum(-1) + .maximum(u32::MAX.into()) + .default_value(-1) + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT) + .build(), + glib::ParamSpecInt64::builder("steps") + .minimum(-1) + .maximum(u32::MAX.into()) + .default_value(-1) + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT) + .build(), ] }); diff --git a/src/model/activity_type_row_data.rs b/src/model/activity_type_row_data.rs index 6a1fc02..cf80f25 100644 --- a/src/model/activity_type_row_data.rs +++ b/src/model/activity_type_row_data.rs @@ -40,20 +40,12 @@ mod imp { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { vec![ - glib::ParamSpecString::new( - "id", - "id", - "id", - None, - glib::ParamFlags::CONSTRUCT_ONLY | glib::ParamFlags::READWRITE, - ), - glib::ParamSpecString::new( - "label", - "label", - "label", - None, - glib::ParamFlags::CONSTRUCT_ONLY | glib::ParamFlags::READWRITE, - ), + glib::ParamSpecString::builder("id") + .flags(glib::ParamFlags::CONSTRUCT_ONLY | glib::ParamFlags::READWRITE) + .build(), + glib::ParamSpecString::builder("label") + .flags(glib::ParamFlags::CONSTRUCT_ONLY | glib::ParamFlags::READWRITE) + .build(), ] }); PROPERTIES.as_ref() diff --git a/src/model/model_notification.rs b/src/model/model_notification.rs index bee0f5d..16c168e 100644 --- a/src/model/model_notification.rs +++ b/src/model/model_notification.rs @@ -64,36 +64,16 @@ mod imp { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { vec![ - glib::ParamSpecObject::new( - "application", - "application", - "application", - gio::Application::static_type(), - glib::ParamFlags::CONSTRUCT_ONLY | glib::ParamFlags::READWRITE, - ), - glib::ParamSpecString::new( - "notification-frequency", - "notification-frequency", - "notification-frequency", - Some(NotificationFrequency::default().as_ref()), - glib::ParamFlags::READWRITE, - ), - glib::ParamSpecBoxed::new( - "notification-time", - "notification-time", - "notification-time", - TimeBoxed::static_type(), - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, - ), - glib::ParamSpecUInt::new( - "step-goal", - "step-goal", - "step-goal", - 0, - u32::MAX, - 0, - glib::ParamFlags::READWRITE, - ), + glib::ParamSpecObject::builder("application", gio::Application::static_type()) + .flags(glib::ParamFlags::CONSTRUCT_ONLY | glib::ParamFlags::READWRITE) + .build(), + glib::ParamSpecString::builder("notification-frequency") + .default_value(Some(NotificationFrequency::default().as_ref())) + .build(), + glib::ParamSpecBoxed::builder("notification-time", TimeBoxed::static_type()) + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT) + .build(), + glib::ParamSpecUInt::builder("step-goal").build(), ] }); diff --git a/src/plugins/activities/details.rs b/src/plugins/activities/details.rs index 338cdd1..79010d4 100644 --- a/src/plugins/activities/details.rs +++ b/src/plugins/activities/details.rs @@ -87,13 +87,12 @@ mod imp { fn properties() -> &'static [glib::ParamSpec] { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { - vec![glib::ParamSpecBoxed::new( - "data-provider", - "data-provider", + vec![glib::ParamSpecBoxed::builder( "data-provider", DataProviderBoxed::static_type(), - glib::ParamFlags::CONSTRUCT | glib::ParamFlags::WRITABLE, - )] + ) + .flags(glib::ParamFlags::CONSTRUCT | glib::ParamFlags::WRITABLE) + .build()] }); PROPERTIES.as_ref() } diff --git a/src/plugins/calories/details.rs b/src/plugins/calories/details.rs index fda76c9..d375958 100644 --- a/src/plugins/calories/details.rs +++ b/src/plugins/calories/details.rs @@ -94,13 +94,12 @@ mod imp { fn properties() -> &'static [glib::ParamSpec] { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { - vec![glib::ParamSpecBoxed::new( - "data-provider", - "data-provider", + vec![glib::ParamSpecBoxed::builder( "data-provider", DataProviderBoxed::static_type(), - glib::ParamFlags::CONSTRUCT | glib::ParamFlags::WRITABLE, - )] + ) + .flags(glib::ParamFlags::CONSTRUCT | glib::ParamFlags::WRITABLE) + .build()] }); PROPERTIES.as_ref() } diff --git a/src/plugins/details.rs b/src/plugins/details.rs index a6d4b7c..5bdb3eb 100644 --- a/src/plugins/details.rs +++ b/src/plugins/details.rs @@ -113,48 +113,16 @@ mod imp { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { vec![ - glib::ParamSpecObject::new( - "content-widget", - "content-widget", - "content-widget", - gtk::Widget::static_type(), - glib::ParamFlags::WRITABLE, - ), - glib::ParamSpecString::new( - "empty-label", - "empty-label", - "empty-label", - None, - glib::ParamFlags::READWRITE, - ), - glib::ParamSpecString::new( - "empty-icon-name", - "empty-icon-name", - "empty-icon-name", - None, - glib::ParamFlags::READWRITE, - ), - glib::ParamSpecString::new( - "filled-title", - "filled-title", - "filled-title", - None, - glib::ParamFlags::READWRITE, - ), - glib::ParamSpecString::new( - "filled-subtitle", - "filled-subtitle", - "filled-subtitle", - None, - glib::ParamFlags::READWRITE, - ), - glib::ParamSpecBoolean::new( - "is-mocked", - "is-mocked", - "is-mocked", - false, - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT_ONLY, - ), + glib::ParamSpecObject::builder("content-widget", gtk::Widget::static_type()) + .flags(glib::ParamFlags::WRITABLE) + .build(), + glib::ParamSpecString::builder("empty-label").build(), + glib::ParamSpecString::builder("empty-icon-name").build(), + glib::ParamSpecString::builder("filled-title").build(), + glib::ParamSpecString::builder("filled-subtitle").build(), + glib::ParamSpecBoolean::builder("is-mocked") + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT_ONLY) + .build(), ] }); diff --git a/src/plugins/overview.rs b/src/plugins/overview.rs index b25ea04..28daabc 100644 --- a/src/plugins/overview.rs +++ b/src/plugins/overview.rs @@ -58,27 +58,15 @@ mod imp { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { vec![ - glib::ParamSpecString::new( - "icon-name", - "icon-name", - "icon-name", - None, - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT_ONLY, - ), - glib::ParamSpecString::new( - "plugin-name", - "plugin-name", - "plugin-name", - None, - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT_ONLY, - ), - glib::ParamSpecObject::new( - "icon-widget", - "icon-widget", - "icon-widget", - gtk::Image::static_type(), - glib::ParamFlags::READABLE, - ), + glib::ParamSpecString::builder("icon-name") + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT_ONLY) + .build(), + glib::ParamSpecString::builder("plugin-name") + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT_ONLY) + .build(), + glib::ParamSpecObject::builder("icon-widget", gtk::Image::static_type()) + .flags(glib::ParamFlags::READABLE) + .build(), ] }); diff --git a/src/plugins/plugin_object.rs b/src/plugins/plugin_object.rs index 695d5b0..b9a3228 100644 --- a/src/plugins/plugin_object.rs +++ b/src/plugins/plugin_object.rs @@ -29,15 +29,15 @@ mod imp { fn properties() -> &'static [glib::ParamSpec] { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { - vec![glib::ParamSpecBoxed::new( - "plugin", - "plugin", - "plugin", - PluginBoxed::static_type(), - glib::ParamFlags::READABLE - | glib::ParamFlags::WRITABLE - | glib::ParamFlags::CONSTRUCT_ONLY, - )] + vec![ + glib::ParamSpecBoxed::builder("plugin", PluginBoxed::static_type()) + .flags( + glib::ParamFlags::READABLE + | glib::ParamFlags::WRITABLE + | glib::ParamFlags::CONSTRUCT_ONLY, + ) + .build(), + ] }); PROPERTIES.as_ref() } diff --git a/src/plugins/steps/details.rs b/src/plugins/steps/details.rs index e5f95d4..1351af6 100644 --- a/src/plugins/steps/details.rs +++ b/src/plugins/steps/details.rs @@ -92,13 +92,12 @@ mod imp { fn properties() -> &'static [glib::ParamSpec] { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { - vec![glib::ParamSpecBoxed::new( - "data-provider", - "data-provider", + vec![glib::ParamSpecBoxed::builder( "data-provider", DataProviderBoxed::static_type(), - glib::ParamFlags::CONSTRUCT | glib::ParamFlags::WRITABLE, - )] + ) + .flags(glib::ParamFlags::CONSTRUCT | glib::ParamFlags::WRITABLE) + .build()] }); PROPERTIES.as_ref() } diff --git a/src/plugins/summary.rs b/src/plugins/summary.rs index ea08651..015c24c 100644 --- a/src/plugins/summary.rs +++ b/src/plugins/summary.rs @@ -100,13 +100,9 @@ mod imp { fn properties() -> &'static [glib::ParamSpec] { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { - vec![glib::ParamSpecString::new( - "plugin-name", - "plugin-name", - "plugin-name", - None, - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT_ONLY, - )] + vec![glib::ParamSpecString::builder("plugin-name") + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT_ONLY) + .build()] }); PROPERTIES.as_ref() } diff --git a/src/plugins/weight/details.rs b/src/plugins/weight/details.rs index feb44bb..94cdb3e 100644 --- a/src/plugins/weight/details.rs +++ b/src/plugins/weight/details.rs @@ -101,13 +101,12 @@ mod imp { fn properties() -> &'static [glib::ParamSpec] { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { - vec![glib::ParamSpecBoxed::new( - "data-provider", - "data-provider", + vec![glib::ParamSpecBoxed::builder( "data-provider", DataProviderBoxed::static_type(), - glib::ParamFlags::CONSTRUCT | glib::ParamFlags::WRITABLE, - )] + ) + .flags(glib::ParamFlags::CONSTRUCT | glib::ParamFlags::WRITABLE) + .build()] }); PROPERTIES.as_ref() } diff --git a/src/views/bar_graph_view.rs b/src/views/bar_graph_view.rs index 6fd38ed..9cc60a2 100644 --- a/src/views/bar_graph_view.rs +++ b/src/views/bar_graph_view.rs @@ -377,31 +377,16 @@ mod imp { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { vec![ - glib::ParamSpecBoxed::new( - "hover-func", - "hover-func", - "hover-func", - FnBoxedTuple::static_type(), - glib::ParamFlags::WRITABLE, - ), - glib::ParamSpecFloat::new( - "rmr", - "rmr", - "Resting Metabolic Rate", - 0.0, - f32::MAX, - 0.0, - glib::ParamFlags::READWRITE, - ), - glib::ParamSpecFloat::new( - "x-lines-interval", - "x-lines-interval", - "x-lines-interval", - 0.0, - f32::MAX, - 0.0, - glib::ParamFlags::READWRITE, - ), + glib::ParamSpecBoxed::builder("hover-func", FnBoxedTuple::static_type()) + .flags(glib::ParamFlags::WRITABLE) + .build(), + glib::ParamSpecFloat::builder("rmr") + .minimum(0.0) + .blurb("Resting Metabolic Rate") + .build(), + glib::ParamSpecFloat::builder("x-lines-interval") + .minimum(0.0) + .build(), ] }); diff --git a/src/views/graph_view.rs b/src/views/graph_view.rs index 92f3f81..83e65a7 100644 --- a/src/views/graph_view.rs +++ b/src/views/graph_view.rs @@ -423,38 +423,17 @@ mod imp { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { vec![ - glib::ParamSpecBoxed::new( - "hover-func", - "hover-func", - "hover-func", - FnBoxedPoint::static_type(), - glib::ParamFlags::WRITABLE, - ), - glib::ParamSpecFloat::new( - "limit", - "limit", - "limit", - -1.0, - f32::MAX, - -1.0, - glib::ParamFlags::READWRITE, - ), - glib::ParamSpecString::new( - "limit-label", - "limit-label", - "limit-label", - None, - glib::ParamFlags::READWRITE, - ), - glib::ParamSpecFloat::new( - "x-lines-interval", - "x-lines-interval", - "x-lines-interval", - 0.0, - f32::MAX, - 0.0, - glib::ParamFlags::READWRITE, - ), + glib::ParamSpecBoxed::builder("hover-func", FnBoxedPoint::static_type()) + .flags(glib::ParamFlags::WRITABLE) + .build(), + glib::ParamSpecFloat::builder("limit") + .minimum(-1.0) + .default_value(-1.0) + .build(), + glib::ParamSpecString::builder("limit-label").build(), + glib::ParamSpecFloat::builder("x-lines-interval") + .minimum(0.0) + .build(), ] }); diff --git a/src/views/view_add.rs b/src/views/view_add.rs index 346cbb5..847085a 100644 --- a/src/views/view_add.rs +++ b/src/views/view_add.rs @@ -43,27 +43,15 @@ mod imp { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { vec![ - glib::ParamSpecString::new( - "icon-name", - "icon-name", - "icon-name", - None, - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT_ONLY, - ), - glib::ParamSpecString::new( - "view-title", - "view-title", - "view-title", - None, - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT_ONLY, - ), - glib::ParamSpecBoolean::new( - "is-responsive", - "is-responsive", - "is-responsive", - false, - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, - ), + glib::ParamSpecString::builder("icon-name") + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT_ONLY) + .build(), + glib::ParamSpecString::builder("view-title") + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT_ONLY) + .build(), + glib::ParamSpecBoolean::builder("is-responsive") + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT) + .build(), ] }); diff --git a/src/views/view_add_activity.rs b/src/views/view_add_activity.rs index 90ecad6..6165620 100644 --- a/src/views/view_add_activity.rs +++ b/src/views/view_add_activity.rs @@ -181,15 +181,10 @@ mod imp { fn properties() -> &'static [glib::ParamSpec] { use once_cell::sync::Lazy; - static PROPERTIES: Lazy> = Lazy::new(|| { - vec![glib::ParamSpecString::new( - "selected-activity-name", - "selected-activity-name", - "selected-activity-name", - None, - glib::ParamFlags::READWRITE, - )] - }); + static PROPERTIES: Lazy> = + Lazy::new( + || vec![glib::ParamSpecString::builder("selected-activity-name").build()], + ); PROPERTIES.as_ref() } diff --git a/src/views/view_add_weight.rs b/src/views/view_add_weight.rs index d247bac..b62cfb6 100644 --- a/src/views/view_add_weight.rs +++ b/src/views/view_add_weight.rs @@ -113,7 +113,7 @@ impl ViewAddWeight { #[template_callback] fn handle_weight_spin_button_changed(&self) { let imp = self.imp(); - self.set_is_responsive(imp.weight_spin_button.value() != 0.0); + self.set_is_responsive(imp.weight_spin_button.raw_value().unwrap_or(0.0) != 0.0); } } diff --git a/src/widgets/activity_row.rs b/src/widgets/activity_row.rs index fa524e6..5690c2e 100644 --- a/src/widgets/activity_row.rs +++ b/src/widgets/activity_row.rs @@ -49,13 +49,7 @@ mod imp { fn properties() -> &'static [glib::ParamSpec] { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { - vec![glib::ParamSpecObject::new( - "activity", - "activity", - "activity", - Activity::static_type(), - glib::ParamFlags::READWRITE, - )] + vec![glib::ParamSpecObject::builder("activity", Activity::static_type()).build()] }); PROPERTIES.as_ref() diff --git a/src/widgets/activity_type_row.rs b/src/widgets/activity_type_row.rs index a11f7af..b4c9155 100644 --- a/src/widgets/activity_type_row.rs +++ b/src/widgets/activity_type_row.rs @@ -56,27 +56,15 @@ mod imp { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { vec![ - glib::ParamSpecString::new( - "id", - "id", - "id", - None, - glib::ParamFlags::CONSTRUCT_ONLY | glib::ParamFlags::READWRITE, - ), - glib::ParamSpecString::new( - "label", - "label", - "label", - None, - glib::ParamFlags::CONSTRUCT | glib::ParamFlags::READWRITE, - ), - glib::ParamSpecBoolean::new( - "selected", - "selected", - "selected", - false, - glib::ParamFlags::CONSTRUCT | glib::ParamFlags::READWRITE, - ), + glib::ParamSpecString::builder("id") + .flags(glib::ParamFlags::CONSTRUCT_ONLY | glib::ParamFlags::READWRITE) + .build(), + glib::ParamSpecString::builder("label") + .flags(glib::ParamFlags::CONSTRUCT | glib::ParamFlags::READWRITE) + .build(), + glib::ParamSpecBoolean::builder("selected") + .flags(glib::ParamFlags::CONSTRUCT | glib::ParamFlags::READWRITE) + .build(), ] }); PROPERTIES.as_ref() diff --git a/src/widgets/activity_type_selector.rs b/src/widgets/activity_type_selector.rs index d565900..99e68d9 100644 --- a/src/widgets/activity_type_selector.rs +++ b/src/widgets/activity_type_selector.rs @@ -107,13 +107,11 @@ mod imp { fn properties() -> &'static [glib::ParamSpec] { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { - vec![glib::ParamSpecBoxed::new( - "selected-activity", - "selected-activity", + vec![glib::ParamSpecBoxed::builder( "selected-activity", ActivityInfoBoxed::static_type(), - glib::ParamFlags::READWRITE, - )] + ) + .build()] }); &PROPERTIES } diff --git a/src/widgets/arrows.rs b/src/widgets/arrows.rs index 3fb3417..54e8c88 100644 --- a/src/widgets/arrows.rs +++ b/src/widgets/arrows.rs @@ -42,13 +42,10 @@ mod imp { fn properties() -> &'static [glib::ParamSpec] { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { - vec![glib::ParamSpecString::new( - "weight-change", - "weight-change", - "weight-change", - Some("no_change"), - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, - )] + vec![glib::ParamSpecString::builder("weight-change") + .default_value(Some("no_change")) + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT) + .build()] }); PROPERTIES.as_ref() diff --git a/src/widgets/bmi_level_bar.rs b/src/widgets/bmi_level_bar.rs index ff41b32..4def835 100644 --- a/src/widgets/bmi_level_bar.rs +++ b/src/widgets/bmi_level_bar.rs @@ -111,31 +111,17 @@ mod imp { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { vec![ - glib::ParamSpecFloat::new( - "height-meter", - "height-meter", - "User height in meters", - 0.0, - f32::MAX, - 0.0, - glib::ParamFlags::READWRITE, - ), - glib::ParamSpecFloat::new( - "weight-kilogram", - "weight-kilogram", - "User weight in kilogram", - 0.0, - f32::MAX, - 0.0, - glib::ParamFlags::READWRITE, - ), - glib::ParamSpecString::new( - "bmi-label", - "bmi-label", - "User BMI label", - None, - glib::ParamFlags::READWRITE, - ), + glib::ParamSpecFloat::builder("height-meter") + .blurb("User height in meters") + .minimum(0.0) + .build(), + glib::ParamSpecFloat::builder("weight-kilogram") + .blurb("User weight in kilogram") + .minimum(0.0) + .build(), + glib::ParamSpecString::builder("bmi-label") + .blurb("User BMI label") + .build(), ] }); diff --git a/src/widgets/circular_progress_bar.rs b/src/widgets/circular_progress_bar.rs index eaf6de2..8dd9b82 100644 --- a/src/widgets/circular_progress_bar.rs +++ b/src/widgets/circular_progress_bar.rs @@ -61,24 +61,8 @@ mod imp { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { vec![ - glib::ParamSpecUInt::new( - "step-count", - "step-count", - "step-count", - 0, - u32::MAX, - 0, - glib::ParamFlags::READWRITE, - ), - glib::ParamSpecUInt::new( - "step-goal", - "step-goal", - "step-goal", - 0, - u32::MAX, - 0, - glib::ParamFlags::READWRITE, - ), + glib::ParamSpecUInt::builder("step-count").build(), + glib::ParamSpecUInt::builder("step-goal").build(), ] }); diff --git a/src/widgets/color_circle.rs b/src/widgets/color_circle.rs index 3458304..ac8e2c1 100644 --- a/src/widgets/color_circle.rs +++ b/src/widgets/color_circle.rs @@ -51,13 +51,7 @@ mod imp { fn properties() -> &'static [glib::ParamSpec] { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { - vec![glib::ParamSpecBoxed::new( - "color", - "color", - "color", - gdk::RGBA::static_type(), - glib::ParamFlags::READWRITE, - )] + vec![glib::ParamSpecBoxed::builder("color", gdk::RGBA::static_type()).build()] }); PROPERTIES.as_ref() diff --git a/src/widgets/date_selector.rs b/src/widgets/date_selector.rs index caf1a0c..a6b6999 100644 --- a/src/widgets/date_selector.rs +++ b/src/widgets/date_selector.rs @@ -67,13 +67,10 @@ mod imp { fn properties() -> &'static [glib::ParamSpec] { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { - vec![glib::ParamSpecBoxed::new( - "selected-date", - "selected-date", - "selected-date", - glib::DateTime::static_type(), - glib::ParamFlags::READWRITE, - )] + vec![ + glib::ParamSpecBoxed::builder("selected-date", glib::DateTime::static_type()) + .build(), + ] }); &PROPERTIES } diff --git a/src/widgets/distance_action_row.rs b/src/widgets/distance_action_row.rs index 73fd827..625efdd 100644 --- a/src/widgets/distance_action_row.rs +++ b/src/widgets/distance_action_row.rs @@ -119,22 +119,12 @@ mod imp { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { vec![ - glib::ParamSpecString::new( - "unitsize", - "unitsize", - "unitsize", - Some("small"), - glib::ParamFlags::READWRITE, - ), - glib::ParamSpecFloat::new( - "value-meter", - "value-meter", - "value-meter", - 0.0, - f32::MAX, - 0.0, - glib::ParamFlags::READWRITE, - ), + glib::ParamSpecString::builder("unitsize") + .default_value(Some("small")) + .build(), + glib::ParamSpecFloat::builder("value-meter") + .minimum(0.0) + .build(), ] }); diff --git a/src/widgets/legend_row.rs b/src/widgets/legend_row.rs index c315336..7dac4ac 100644 --- a/src/widgets/legend_row.rs +++ b/src/widgets/legend_row.rs @@ -55,20 +55,8 @@ mod imp { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { vec![ - glib::ParamSpecString::new( - "activity-name", - "activity-name", - "activity-name", - None, - glib::ParamFlags::READWRITE, - ), - glib::ParamSpecBoxed::new( - "color", - "color", - "color", - gdk::RGBA::static_type(), - glib::ParamFlags::READWRITE, - ), + glib::ParamSpecString::builder("activity-name").build(), + glib::ParamSpecBoxed::builder("color", gdk::RGBA::static_type()).build(), ] }); diff --git a/src/widgets/password_entry.rs b/src/widgets/password_entry.rs index 971c388..cdcd665 100644 --- a/src/widgets/password_entry.rs +++ b/src/widgets/password_entry.rs @@ -69,27 +69,15 @@ mod imp { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { vec![ - glib::ParamSpecString::new( - "password", - "password", - "password", - None, - glib::ParamFlags::READABLE, - ), - glib::ParamSpecBoolean::new( - "show-password-repeat", - "show-password-repeat", - "show-password-repeat", - true, - glib::ParamFlags::READWRITE, - ), - glib::ParamSpecBoolean::new( - "show-password-strength", - "show-password-strength", - "show-password-strength", - true, - glib::ParamFlags::READWRITE, - ), + glib::ParamSpecString::builder("password") + .flags(glib::ParamFlags::READABLE) + .build(), + glib::ParamSpecBoolean::builder("show-password-repeat") + .default_value(true) + .build(), + glib::ParamSpecBoolean::builder("show-password-strength") + .default_value(true) + .build(), ] }); diff --git a/src/widgets/sync_list_box.rs b/src/widgets/sync_list_box.rs index 81b85dc..974ba89 100644 --- a/src/widgets/sync_list_box.rs +++ b/src/widgets/sync_list_box.rs @@ -81,13 +81,11 @@ mod imp { fn properties() -> &'static [glib::ParamSpec] { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { - vec![glib::ParamSpecObject::new( - "parent-window", - "parent-window", - "parent-window", - gtk::Window::static_type(), - glib::ParamFlags::CONSTRUCT | glib::ParamFlags::READWRITE, - )] + vec![ + glib::ParamSpecObject::builder("parent-window", gtk::Window::static_type()) + .flags(glib::ParamFlags::CONSTRUCT | glib::ParamFlags::READWRITE) + .build(), + ] }); PROPERTIES.as_ref() diff --git a/src/widgets/tab_button.rs b/src/widgets/tab_button.rs index 0981eda..bbd78d3 100644 --- a/src/widgets/tab_button.rs +++ b/src/widgets/tab_button.rs @@ -55,20 +55,12 @@ mod imp { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { vec![ - glib::ParamSpecString::new( - "tab-name", - "tab-name", - "tab-name", - None, - glib::ParamFlags::WRITABLE, - ), - glib::ParamSpecString::new( - "icon-name", - "icon-name", - "icon-name", - None, - glib::ParamFlags::WRITABLE, - ), + glib::ParamSpecString::builder("tab-name") + .flags(glib::ParamFlags::WRITABLE) + .build(), + glib::ParamSpecString::builder("icon-name") + .flags(glib::ParamFlags::WRITABLE) + .build(), ] }); PROPERTIES.as_ref() diff --git a/src/widgets/unit_spinbutton.rs b/src/widgets/unit_spinbutton.rs index 42e29b4..86750db 100644 --- a/src/widgets/unit_spinbutton.rs +++ b/src/widgets/unit_spinbutton.rs @@ -87,59 +87,29 @@ mod imp { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { vec![ - glib::ParamSpecObject::new( - "adjustment", - "adjustment", - "adjustment", - gtk::Adjustment::static_type(), - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, - ), - glib::ParamSpecBoolean::new( - "auto-update-unit-system", - "auto-update-unit-system", - "auto-update-unit-system", - true, - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, - ), - glib::ParamSpecUInt::new( - "digits", - "digits", - "digits", - 0, - 20, - 1, - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, - ), - glib::ParamSpecBoolean::new( - "has-default-value", - "has-default-value", - "has-default-value", - true, - glib::ParamFlags::READABLE, - ), - glib::ParamSpecString::new( - "unit-kind", - "unit-kind", - "unit-kind", - None, - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT, - ), - glib::ParamSpecString::new( - "unit-system", - "unit-system", - "unit-system", - None, - glib::ParamFlags::READWRITE, - ), - glib::ParamSpecDouble::new( - "value", - "value", - "value", - 0.0, - f64::MAX, - 0.0, - glib::ParamFlags::READWRITE, - ), + glib::ParamSpecObject::builder("adjustment", gtk::Adjustment::static_type()) + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT) + .build(), + glib::ParamSpecBoolean::builder("auto-update-unit-system") + .default_value(true) + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT) + .build(), + glib::ParamSpecUInt::builder("digits") + .maximum(20) + .default_value(1) + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT) + .build(), + glib::ParamSpecBoolean::builder("has-default-value") + .default_value(true) + .flags(glib::ParamFlags::READABLE) + .build(), + glib::ParamSpecString::builder("unit-kind") + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT) + .build(), + glib::ParamSpecString::builder("unit-system").build(), + glib::ParamSpecDouble::builder("value") + .maximum(f64::MAX) + .build(), ] }); diff --git a/src/windows/data_add_dialog.rs b/src/windows/data_add_dialog.rs index c7b6bf2..873fda5 100644 --- a/src/windows/data_add_dialog.rs +++ b/src/windows/data_add_dialog.rs @@ -91,13 +91,9 @@ mod imp { fn properties() -> &'static [glib::ParamSpec] { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { - vec![glib::ParamSpecString::new( - "current-plugin", - "current-plugin", - "current-plugin", - None, - glib::ParamFlags::CONSTRUCT_ONLY | glib::ParamFlags::READWRITE, - )] + vec![glib::ParamSpecString::builder("current-plugin") + .flags(glib::ParamFlags::CONSTRUCT_ONLY | glib::ParamFlags::READWRITE) + .build()] }); PROPERTIES.as_ref() } diff --git a/src/windows/import_export_dialog_base.rs b/src/windows/import_export_dialog_base.rs index 92516fe..22e3d70 100644 --- a/src/windows/import_export_dialog_base.rs +++ b/src/windows/import_export_dialog_base.rs @@ -177,13 +177,9 @@ mod imp { fn properties() -> &'static [glib::ParamSpec] { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { - vec![glib::ParamSpecBoolean::new( - "is-import", - "is-import", - "is-import", - false, - glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT_ONLY, - )] + vec![glib::ParamSpecBoolean::builder("is-import") + .flags(glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT_ONLY) + .build()] }); PROPERTIES.as_ref() diff --git a/src/windows/preferences_window.rs b/src/windows/preferences_window.rs index 1f3597a..96ecac0 100644 --- a/src/windows/preferences_window.rs +++ b/src/windows/preferences_window.rs @@ -151,13 +151,10 @@ mod imp { fn properties() -> &'static [glib::ParamSpec] { use once_cell::sync::Lazy; static PROPERTIES: Lazy> = Lazy::new(|| { - vec![glib::ParamSpecString::new( - "notification-frequency", - "notification-frequency", - "notification-frequency", - Some("every_4_hrs"), - glib::ParamFlags::WRITABLE, - )] + vec![glib::ParamSpecString::builder("notification-frequency") + .default_value(Some("every_4_hrs")) + .flags(glib::ParamFlags::WRITABLE) + .build()] }); PROPERTIES.as_ref() -- 2.40.1 From f2c8d2578dd7be9ac4a653a6b9a4077892a35f17 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Wed, 14 Sep 2022 15:33:44 +0200 Subject: [PATCH 64/83] chore(database): remove unused variables --- src/core/database.rs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/core/database.rs b/src/core/database.rs index 1a250ba..cf0e2b1 100644 --- a/src/core/database.rs +++ b/src/core/database.rs @@ -30,7 +30,7 @@ use gtk::{ use num_traits::cast::{FromPrimitive, ToPrimitive}; use std::{ convert::{TryFrom, TryInto}, - path::{Path, PathBuf}, + path::PathBuf, str::FromStr, }; use tracker::prelude::*; @@ -412,7 +412,6 @@ impl Database { /// # Returns /// An array of [Steps]s that are within the given timeframe (if set), or a [glib::Error] if querying the DB goes wrong. pub async fn steps(&self, date: glib::DateTime) -> Result> { - let imp = self.imp(); let user_id = i64::from(self.imp().settings.active_user_id()); let statement = self.load_statement_from_gresource("steps"); statement.bind_string("date", &date.format_iso8601().unwrap()); @@ -539,7 +538,6 @@ impl Database { } let connection = imp.connection.get().unwrap(); - let manager = imp.manager.get().unwrap(); let user_id = i64::from(imp.settings.active_user_id()); for s in steps { @@ -577,7 +575,6 @@ impl Database { } let connection = imp.connection.get().unwrap(); - let manager = imp.manager.get().unwrap(); let user_id = i64::from(imp.settings.active_user_id()); for w in weights { @@ -1550,7 +1547,6 @@ mod test { #[test] fn migration_activities() { - let data_dir = tempdir().unwrap(); let date = glib::DateTime::local(); let db = Database::new_with_store_path(PathBuf::from("/home/rasmus/tracker")).unwrap(); let connection = db.connection(); -- 2.40.1 From 171a4065ee83f03a85b89c40205bc63733e3e230 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Mon, 19 Sep 2022 08:59:50 +0200 Subject: [PATCH 65/83] fix(application): init gresources in tests --- src/core/application.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core/application.rs b/src/core/application.rs index e1806df..86f01ef 100644 --- a/src/core/application.rs +++ b/src/core/application.rs @@ -405,11 +405,12 @@ impl Application { #[cfg(test)] mod test { use super::Application; - use crate::core::utils::init_gschema; + use crate::core::utils::{init_gresources, init_gschema}; #[test] fn new() { let _tmp = init_gschema(); + init_gresources(); Application::new(); } } -- 2.40.1 From 59df8a680da0b488446d91ef73d14816ce6cd0d1 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Mon, 19 Sep 2022 09:26:28 +0200 Subject: [PATCH 66/83] chore(deps): upgrade --- Cargo.lock | 198 ++++++++++++++++------------------ Cargo.toml | 2 +- dev.Cogitri.Health.Devel.json | 47 ++++---- src/meson.build | 2 +- 4 files changed, 126 insertions(+), 123 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d613b9e..588521f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20,27 +20,27 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "0.7.18" +version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" dependencies = [ "memchr", ] [[package]] name = "android_system_properties" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7ed72e1635e121ca3e79420540282af22da58be50de153d36f81ddc6b83aa9e" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" dependencies = [ "libc", ] [[package]] name = "anyhow" -version = "1.0.62" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1485d4d2cc45e7b201ee3767015c96faa5904387c9d87c6efdd0fb511f12d305" +checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" [[package]] name = "async-trait" @@ -94,9 +94,9 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" [[package]] name = "block-buffer" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" dependencies = [ "generic-array", ] @@ -115,9 +115,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.10.0" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" +checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" [[package]] name = "bytes" @@ -232,9 +232,9 @@ checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] name = "cpufeatures" -version = "0.2.2" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" dependencies = [ "libc", ] @@ -318,9 +318,9 @@ dependencies = [ [[package]] name = "delegate" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d70a2d4995466955a415223acf3c9c934b9ff2339631cdf4ffc893da4bacd717" +checksum = "082a24a9967533dc5d743c602157637116fc1b52806d694a5a45e6f32567fcdd" dependencies = [ "proc-macro2", "quote", @@ -360,9 +360,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.3" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" +checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" dependencies = [ "block-buffer", "crypto-common", @@ -403,9 +403,9 @@ checksum = "ed2ddb5d6d3904e83114add6bbadf2b8307b4ae9fb4b2202afde1fe7bf3b56c0" [[package]] name = "either" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" [[package]] name = "fancy-regex" @@ -460,34 +460,33 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "form_urlencoded" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" dependencies = [ - "matches", "percent-encoding", ] [[package]] name = "futures-channel" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bfc52cbddcfd745bf1740338492bb0bd83d76c67b445f91c5fb29fae29ecaa1" +checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" dependencies = [ "futures-core", ] [[package]] name = "futures-core" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2acedae88d38235936c3922476b10fced7b2b68136f5e3c03c2d5be348a1115" +checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" [[package]] name = "futures-executor" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d11aa21b5b587a64682c0094c2bdd4df0076c5324961a40cc3abd7f37930528" +checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab" dependencies = [ "futures-core", "futures-task", @@ -496,21 +495,21 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93a66fc6d035a26a3ae255a6d2bca35eda63ae4c5512bef54449113f7a1228e5" +checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" [[package]] name = "futures-task" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "842fc63b931f4056a24d59de13fb1272134ce261816e063e634ad0c15cdc5306" +checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1" [[package]] name = "futures-util" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0828a5471e340229c11c77ca80017937ce3c58cb788a17e5f1c2d5c485a9577" +checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90" dependencies = [ "futures-core", "futures-task", @@ -891,13 +890,14 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.45" +version = "0.1.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef5528d9c2817db4e10cc78f8d4c8228906e5854f389ff6b076cee3572a09d35" +checksum = "237a0714f28b1ee39ccec0770ccb544eb02c9ef2c82bb096230eefcffa6468b0" dependencies = [ "android_system_properties", "core-foundation-sys", "js-sys", + "once_cell", "wasm-bindgen", "winapi", ] @@ -910,11 +910,10 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.2.3" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" dependencies = [ - "matches", "unicode-bidi", "unicode-normalization", ] @@ -939,9 +938,9 @@ dependencies = [ [[package]] name = "itertools" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" +checksum = "d8bf247779e67a9082a4790b45e71ac7cfd1321331a5c856a74a9faebdab78d0" dependencies = [ "either", ] @@ -960,9 +959,9 @@ checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" [[package]] name = "js-sys" -version = "0.3.59" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" dependencies = [ "wasm-bindgen", ] @@ -1070,12 +1069,6 @@ dependencies = [ "libc", ] -[[package]] -name = "matches" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" - [[package]] name = "memchr" version = "2.5.0" @@ -1093,9 +1086,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" dependencies = [ "adler", ] @@ -1190,9 +1183,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e" +checksum = "2f7254b99e31cad77da24b08ebf628882739a608578bb1bcdfc1f9c21260d7c0" [[package]] name = "opaque-debug" @@ -1254,21 +1247,21 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9423e2b32f7a043629287a536f21951e8c6a82482d0acb1eeebfc90bc2225b22" +checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" [[package]] name = "percent-encoding" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.2.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69486e2b8c2d2aeb9762db7b4e00b0331156393555cff467f4163ff06821eef8" +checksum = "cb779fcf4bb850fbbb0edc96ff6cf34fd90c4b1a112ce042653280d9a7364048" dependencies = [ "thiserror", "ucd-trie", @@ -1400,9 +1393,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ "getrandom", ] @@ -1526,18 +1519,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.143" +version = "1.0.144" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e8e5d5b70924f74ff5c6d64d9a5acd91422117c60f48c4e07855238a254553" +checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.143" +version = "1.0.144" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3d8e8de557aee63c26b85b947f5e59b690d0454c753f3adeb5cd7835ab88391" +checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00" dependencies = [ "proc-macro2", "quote", @@ -1546,9 +1539,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.83" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38dd04e3c8279e75b31ef29dbdceebfe5ad89f4d0937213c53f7d49d01b3d5a7" +checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" dependencies = [ "itoa 1.0.3", "ryu", @@ -1566,18 +1559,18 @@ dependencies = [ [[package]] name = "serde_test" -version = "1.0.143" +version = "1.0.144" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4b5b007c1bccdc70f8d8b5804da305a64d4279f990f1ae9e3b06eaae46f42e0" +checksum = "6c7f3621491f256177206a7c2152c17f322c0d0b30af05359088172437d29e25" dependencies = [ "serde", ] [[package]] name = "sha2" -version = "0.10.2" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ "cfg-if", "cpufeatures", @@ -1641,9 +1634,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.99" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" +checksum = "52205623b1b0f064a4e71182c3b18ae902267282930c6d5462c91b859668426e" dependencies = [ "proc-macro2", "quote", @@ -1685,18 +1678,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.32" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5f6586b7f764adc0231f4c79be7b920e766bb2f3e51b3661cdb263828f19994" +checksum = "c53f98874615aea268107765aa1ed8f6116782501d18e53d08b471733bea6c85" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.32" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12bafc5b54507e0149cdf1b145a5d80ab80a90bcd9275df43d4fff68460f6c21" +checksum = "f8b463991b4eab2d801e724172285ec4195c650e8ec79b149e6c2a8e6dd3f783" dependencies = [ "proc-macro2", "quote", @@ -1705,9 +1698,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db76ff9fa4b1458b3c7f077f3ff9887394058460d21e634355b273aaf11eea45" +checksum = "3c3f9a28b618c3a6b9251b6908e9c99e04b9e5c02e6581ccbb67d59c34ef7f9b" dependencies = [ "libc", "num_threads", @@ -1739,9 +1732,9 @@ dependencies = [ [[package]] name = "tracker-rs" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf2c5d7ef7b88dc8e4918ae410c2e93b4f889be0748d0a56cbd4adc12caa7f9" +checksum = "40f0f1628d8271b814d8e4287807e7fc7be8995851d2996b2a3630e2b94e0458" dependencies = [ "bitflags", "gio", @@ -1753,9 +1746,9 @@ dependencies = [ [[package]] name = "tracker-sys" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc20b8ccceb97d1d90726e0b5a6615ebb1c6a35ece420ddeb3402aea1c2d5cb" +checksum = "9eeb4b319e36132cc9bfb980c9633d294f8b98d179d8ba292665d5a5dda1207a" dependencies = [ "gio-sys", "glib-sys", @@ -1772,9 +1765,9 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "ucd-trie" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" [[package]] name = "unicode-bidi" @@ -1784,15 +1777,15 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" +checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd" [[package]] name = "unicode-normalization" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] @@ -1844,13 +1837,12 @@ dependencies = [ [[package]] name = "url" -version = "2.2.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" dependencies = [ "form_urlencoded", "idna", - "matches", "percent-encoding", "serde", ] @@ -1875,9 +1867,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -1885,9 +1877,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" dependencies = [ "bumpalo", "log", @@ -1900,9 +1892,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1910,9 +1902,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" dependencies = [ "proc-macro2", "quote", @@ -1923,15 +1915,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" [[package]] name = "web-sys" -version = "0.3.59" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/Cargo.toml b/Cargo.toml index 9c873ef..afe2470 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -50,7 +50,7 @@ default-features = false version = "1.1" [dependencies.delegate] -version = "0.7" +version = "0.8" [dependencies.easy-ext] default-features = false diff --git a/dev.Cogitri.Health.Devel.json b/dev.Cogitri.Health.Devel.json index 8a89de7..bb49429 100644 --- a/dev.Cogitri.Health.Devel.json +++ b/dev.Cogitri.Health.Devel.json @@ -4,7 +4,8 @@ "runtime-version": "42", "sdk": "org.gnome.Sdk", "sdk-extensions": [ - "org.freedesktop.Sdk.Extension.rust-stable" + "org.freedesktop.Sdk.Extension.rust-stable", + "org.freedesktop.Sdk.Extension.llvm12" ], "command": "dev.Cogitri.Health.Devel", "finish-args": [ @@ -34,13 +35,18 @@ "/share/gir-1.0" ], "build-options": { - "append-path": "/usr/lib/sdk/rust-stable/bin", - "build-args": [ - "--share=network" - ], + "append-ld-library-path": "/usr/lib/sdk/llvm12/lib", + "append-path": "/usr/lib/sdk/llvm12/bin:/usr/lib/sdk/rust-stable/bin", "env": { + "CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER": "clang", + "CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS": "-C link-arg=-fuse-ld=/usr/lib/sdk/rust-stable/bin/mold", + "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER": "clang", + "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS": "-C link-arg=-fuse-ld=/usr/lib/sdk/rust-stable/bin/mold", "RUST_BACKTRACE": "1" - } + }, + "build-args": [ + "--share=network" + ] }, "modules": [ { @@ -61,21 +67,19 @@ "builddir": true, "config-opts": [ "-Dman=false", - "-Dsystemd_user_services=false" + "-Dsystemd_user_services=false", + "-Ddocs=false", + "-Dbash_completion=false", + "-Dtests=false", + "-Dtest_utils=false", + "-Dintrospection=disabled", + "-Dsoup=soup3" ], "sources": [ { "type": "archive", - "url": "https://download.gnome.org/sources/tracker/3.3/tracker-3.3.3.tar.xz", - "sha512": "0f8ad998a5de6914d1e24da1b2021967339a2e637996b3e672fe4991177e69b750cdd9eb894e5e6f5f394d991b680d40afc05b95f69171ec38278e30c9729a15" - }, - { - "type": "patch", - "path": "build-aux/tracker-524.patch" - }, - { - "type": "patch", - "path": "build-aux/tracker-529.patch" + "url": "https://download.gnome.org/sources/tracker/3.4/tracker-3.4.0.tar.xz", + "sha512": "0a765d93cbe737a9cf902d1dc1ca00463065c1e7b3f93a7a8132919dfed97acdf80d99cf8f49b61e1a2bfc77a115f74e88731b3b0739651d2f727215c83f077f" } ] }, @@ -84,7 +88,14 @@ "builddir": true, "buildsystem": "meson", "cleanup": [ - "/usr/" + "/usr/", + "/app/share/gir-1.0", + "/app/share/vala", + "/app/share/blueprint-compiler", + "/app/lib/pkgconfig", + "/app/lib/girepository-1.0", + "/app/libexec", + "/app/lib/tracker-3.0" ], "config-opts": [ "-Dprofile=development" diff --git a/src/meson.build b/src/meson.build index b371cf3..5347bc8 100644 --- a/src/meson.build +++ b/src/meson.build @@ -34,7 +34,7 @@ else message('Building in debug mode') endif -cargo_env = [ 'CARGO_HOME=' + meson.build_root() / 'cargo-home' ] +cargo_env = [ 'CARGO_HOME=' + meson.project_build_root() / 'cargo-home' ] cargo_build = custom_target( 'cargo-build', -- 2.40.1 From dc6160a0b091d764875dbf172ccd8019918d82c3 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Thu, 22 Sep 2022 13:12:59 +0000 Subject: [PATCH 67/83] Update Hebrew translation --- po/he.po | 507 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 254 insertions(+), 253 deletions(-) diff --git a/po/he.po b/po/he.po index e1488cb..0af8cf0 100644 --- a/po/he.po +++ b/po/he.po @@ -8,160 +8,89 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-03-15 08:58+0000\n" -"PO-Revision-Date: 2022-03-16 13:49+0200\n" -"Last-Translator: Yosef Or Boczko \n" +"POT-Creation-Date: 2022-09-13 17:26+0000\n" +"PO-Revision-Date: 2022-09-22 16:12+0300\n" +"Last-Translator: Yaron Shahrabani \n" "Language-Team: Hebrew <>\n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n>10 && n%10==0 ? " -"2 : 3)\n" -"X-Generator: Gtranslator 40.0\n" +"2 : 3);\n" +"X-Generator: Poedit 3.1\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" msgstr "ההקמה הראשונית בוצעה" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "האם המשתמש השלים את אשף ההקמה" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "החלפת מצב התראות" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "האם להפעיל התראות." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "הגדרת תוספים פעילים" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "מגדיר את כל תוספי מקורות הנתונים שמופעלים בתוכנת הבריאות." - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "מועד התראה" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "המועד בו תכנית הבריאות צריכה להזכיר למשתמשים על צעד אל עבר היעד" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "תדירות התראות" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "מה התדירות בה תישלח הודעה למשתמשים בנוגע להשלמת יעד הצעדים היומי שלהם." - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "רשימת סוגי הפעילות האחרונים" -#: data/dev.Cogitri.Health.gschema.xml:42 -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector's list" -msgstr "" -"סוגי הפעילות בהן השתמשו המשתמשים לאחרונה, כדי להציג אותם ראשונים ברשימה " -"בחירת סוגי הפעילות" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "הקמת ספק לסנכרון מול Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "האם Google Fit הוגדר כספק סנכרון" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "סנכרון אחרון מול Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "הפעם האחרונה בה סנכרנו צעדים, משקל וכו׳ מול Google Fit" - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "מערכת היחידות בשימוש" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "" -"מערכת היחידות לבחירת המשתמש, למשל: cm לסנטימטרים מול inch לאינטשים כיחידות " -"גובה" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "גיל המשתמש" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "גיל המשתמש (לא בשימוש עוד)." - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "גיל המשתמש המוחלט" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "גיל המשתמשים בתקופות מוחלטות (למשל: 01/01/1970)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "גובה המשתמש" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "הגובה של המשתמש." - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "יעד צעדים של המשתמש" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "כמות הצעדים בה המשתמש מעוניין כדי להגיע למכסה יומית." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "יעד משקל משתמש" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "המשקל אליו מעוניין המשתמש להגיע." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "גובה החלון" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "הגובה של החלון." - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "חלון מוגדל" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "האם החלון מוגדל." - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "רוחב החלון" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "הרוחב של החלון." +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "מזהה משתמש פעיל" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -170,28 +99,23 @@ msgstr "הרוחב של החלון." msgid "Health" msgstr "בריאות" -#: data/dev.Cogitri.Health.Autostart.desktop.in.in:5 -#: data/dev.Cogitri.Health.desktop.in.in:5 -msgid "@APPLICATION_ID@" -msgstr "@APPLICATION_ID@" - -#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 src/core/application.rs:167 -msgid "A health tracking app for the GNOME desktop." -msgstr "יישום מעקב בריאות עבור שולחן העבודה GNOME." +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 +msgid "Track your fitness goals" +msgstr "מעקב אחר יעדי החיטוב שלך" #: data/dev.Cogitri.Health.metainfo.xml.in.in:11 msgid "" -"A health tracking app for the GNOME desktop. Health can visualize how many " -"steps you've made daily, your weight development over time and your daily " -"activities. Data can be synched from Google Fit or manually entered into " -"Health. Afterwards, it can be viewed and edited in Health." +"Health can visualize how many steps you’ve made daily, your weight " +"development over time and your daily activities. Data can be synched from " +"Google Fit or manually entered into Health. Afterwards, it can be viewed and " +"edited in Health." msgstr "" "יישום מעקב בריאות עבור שולחן העבודה GNOME. תכנית הבריאות יכולה לשקף באופן " "חזותי את כמות הצעדים שעשית ביום, התפתחות המשקל שלך לאורך הזמן והפעילויות " "היומיות שלך. אפשר לסנכרן נתונים מ־Google Fit או למלא אותם ידנית לתוך יישום " "הבריאות. לאחר מכן ניתן לצפות ולערוך אותם ביישום." -#: data/dev.Cogitri.Health.metainfo.xml.in.in:37 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:36 msgid "Rasmus “Cogitri” Thomsen" msgstr "Rasmus “Cogitri” Thomsen" @@ -206,63 +130,63 @@ msgstr "_ביטול" msgid "_Save" msgstr "_שמירה" -#: data/ui/date_selector.blp:17 +#: data/ui/date_selector.blp:18 msgid "January" msgstr "ינואר" -#: data/ui/date_selector.blp:18 src/widgets/date_selector.rs:223 +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:223 msgid "February" msgstr "פברואר" -#: data/ui/date_selector.blp:19 +#: data/ui/date_selector.blp:20 msgid "March" msgstr "מרץ" -#: data/ui/date_selector.blp:20 +#: data/ui/date_selector.blp:21 msgid "April" msgstr "אפריל" -#: data/ui/date_selector.blp:21 +#: data/ui/date_selector.blp:22 msgid "May" msgstr "מאי" -#: data/ui/date_selector.blp:22 +#: data/ui/date_selector.blp:23 msgid "June" msgstr "יוני" -#: data/ui/date_selector.blp:23 +#: data/ui/date_selector.blp:24 msgid "July" msgstr "יולי" -#: data/ui/date_selector.blp:24 +#: data/ui/date_selector.blp:25 msgid "August" msgstr "אוגוסט" -#: data/ui/date_selector.blp:25 +#: data/ui/date_selector.blp:26 msgid "September" msgstr "ספטמבר" -#: data/ui/date_selector.blp:26 +#: data/ui/date_selector.blp:27 msgid "October" msgstr "אוקטובר" -#: data/ui/date_selector.blp:27 +#: data/ui/date_selector.blp:28 msgid "November" msgstr "נובמבר" -#: data/ui/date_selector.blp:28 +#: data/ui/date_selector.blp:29 msgid "December" msgstr "דצמבר" -#: data/ui/date_selector.blp:34 +#: data/ui/date_selector.blp:35 msgid "Day" msgstr "יום" -#: data/ui/date_selector.blp:60 +#: data/ui/date_selector.blp:61 msgid "Month" msgstr "חודש" -#: data/ui/date_selector.blp:83 +#: data/ui/date_selector.blp:84 msgid "Year" msgstr "שנה" @@ -320,7 +244,7 @@ msgstr "" "הנתונים האמתיים שלך בזמן אמת." #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "צעדים" @@ -357,90 +281,97 @@ msgstr "העדפות תכנית הבריאות" msgid "General" msgstr "כללי" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "משתמש" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "מערכת יחידות" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "אימפריאלית" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "מטרית" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "שם משתמש" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "יום הולדת" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "גובה" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "התראות" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "הפעלת התראות" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "תדירות" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "מועד תזכורת יומית" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "יעד צעדים" -#: data/ui/preferences_window.blp:170 -#| msgid "The WHO recommends 10.000 steps per day." -msgid "The WHO recommends 10,000 steps per day." -msgstr "ארגון הבריאות העולמי ממליץ על 10,000 צעדים ביום." +#: data/ui/preferences_window.blp:179 +msgid "7,500 steps per day are recommended." +msgstr "מומלץ לצעוד 7,500 צעדים ביום." -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 -#| msgid "Weight goal" +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "משקל יעד" -#: data/ui/preferences_window.blp:188 data/ui/setup_window.blp:286 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "ארגון הבריאות העולמי ממליץ על BMI בין 18.5 לבין 24.9." -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "יעד BMI" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "סנכרון" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "להפעיל סנכרון עם ספקי צד־שלישי." -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "ייבוא וייצוא נתונים" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "ייצוא נתונים כ־CSV" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "ייצוא…" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "ייבוא נתונים מ־CSV" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "ייבוא…" @@ -472,31 +403,39 @@ msgstr "ברוך בואך לתוכנית הבריאות!" msgid "Please enter some information to get setup." msgstr "נא למלא פרטים כדי להקים את המערכת." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "נא למלא את יעד הצעדים היומי שלך." -#: data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." -msgstr "ארגון הבריאות העולמי ממליץ על 10,000 צעדים ביום." +#: data/ui/setup_window.blp:236 +msgid "The WHO recommends 7.500 steps per day." +msgstr "ארגון הבריאות העולמי ממליץ על 7,500 צעדים ביום." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "נא למלא את יעד המשקל שלך." -#: data/ui/setup_window.blp:314 +#: data/ui/setup_window.blp:298 +msgid "The WHO recommends a BMI of 18.5–24.9." +msgstr "ארגון הבריאות העולמי ממליץ על BMI בין 18.5 לבין 24.9." + +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "משקל נוכחי" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "BMI נוכחי" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "יעד משקל" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "הגדרת סנכרון עם ספקי צד־שלישי." -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "אפשר לסנכרן את מדדי הצעדים והמשקל מתוך/אל ספקי צד־שלישי." @@ -584,11 +523,15 @@ msgstr "על תכנית ה_בריאות" msgid "Enable plugin" msgstr "הפעלת תוסף" -#: src/core/application.rs:169 +#: src/core/application.rs:189 +msgid "A health tracking app for the GNOME desktop." +msgstr "יישום מעקב בריאות עבור שולחן העבודה GNOME." + +#: src/core/application.rs:191 msgid "translator-credits" msgstr "ירון שהרבני " -#: src/core/application.rs:171 +#: src/core/application.rs:193 msgid "Websites" msgstr "אתרים" @@ -730,39 +673,39 @@ msgstr[1] "שתי קלוריות נשרפו היום" msgstr[2] "{} קלוריות נשרפו היום" msgstr[3] "{} קלוריות נשרפו היום" -#: src/plugins/steps/details.rs:186 -msgid "Today's steps: {}" +#: src/plugins/steps/details.rs:187 +msgid "Today’s steps: {}" msgstr "צעדים יומיים: {}" -#: src/plugins/steps/details.rs:201 +#: src/plugins/steps/details.rs:206 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "אין רצף עדיין. נא להגיע ליעד הצעדים שלך במשך מספר ימים כדי להתחיל רצף!" -#: src/plugins/steps/details.rs:205 +#: src/plugins/steps/details.rs:210 msgid "" -"You're on a streak for {} day. Reach your step goal today to continue it!" +"You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" -"You're on a streak for {} days. Reach your step goal today to continue it!" -msgstr[0] "צברת רצף של יום. הגעה ליעד הצעדים היומי ימשיך אותו!" -msgstr[1] "צברת רצף של יומיים. הגעה ליעד הצעדים היומי ימשיך אותו!" -msgstr[2] "צברת רצף של {} ימים. הגעה ליעד הצעדים היומי ימשיך אותו!" -msgstr[3] "צברת רצף של {} ימים. הגעה ליעד הצעדים היומי ימשיך אותו!" - -#: src/plugins/steps/details.rs:213 -msgid "You've reached your step goal today. Keep going to start a streak!" +"You’re on a streak for {} days. Reach your step goal today to continue it!" +msgstr[0] "צברת רצף של יום. הגעה ליעד הצעדים היומי תמשיך אותו!" +msgstr[1] "צברת רצף של יומיים. הגעה ליעד הצעדים היומי תמשיך אותו!" +msgstr[2] "צברת רצף של {} ימים. הגעה ליעד הצעדים היומי תמשיך אותו!" +msgstr[3] "צברת רצף של {} ימים. הגעה ליעד הצעדים היומי תמשיך אותו!" + +#: src/plugins/steps/details.rs:218 +msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "הגעת ליעד הצעדים היומי שלך. כדי להתחיל רצף נדרשים עוד כאלה!" -#: src/plugins/steps/details.rs:216 -msgid "You're on a streak for {} day. Good job!" -msgid_plural "You're on a streak for {} days. Good job!" +#: src/plugins/steps/details.rs:221 +msgid "You’re on a streak for {} day. Good job!" +msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "צברת רצף של יום. כל הכבוד!" msgstr[1] "צברת רצף של יומיים. כל הכבוד!" msgstr[2] "צברת רצף של {} ימים. כל הכבוד!" msgstr[3] "צברת רצף של {} ימים. כל הכבוד!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "צעד {} ב־{}" @@ -770,7 +713,7 @@ msgstr[1] "{} צעדים ב־{}" msgstr[2] "{} צעדים ב־{}" msgstr[3] "{} צעדים ב־{}" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "היום עשית צעד אחד" @@ -778,7 +721,7 @@ msgstr[1] "היום עשית שני צעדים" msgstr[2] "היום עשית {} צעדים" msgstr[3] "היום עשית {} צעדים" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "הגעת לאחוז מיעד הצעדים היומי שלך" @@ -786,17 +729,16 @@ msgstr[1] "הגעת לשני אחוז מיעד הצעדים היומי שלך" msgstr[2] "הגעת ל־{} אחוז מיעד הצעדים היומי שלך" msgstr[3] "הגעת ל־{} אחוז מיעד הצעדים היומי שלך" -#: src/plugins/steps/summary.rs:112 -#| msgid "Please enter your daily step goal." +#: src/plugins/steps/summary.rs:114 msgid "Well done! You have reached your daily step goal!" msgstr "כל הכבוד! השלמת את יעד הצעדים היומי שלך!" -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "‫BMI נוכחי: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "פאונד {} ב־{}" @@ -805,7 +747,7 @@ msgstr[2] "{} פאונד ב־{}" msgstr[3] "{} פאונד ב־{}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "קילוגרם {} ב־{}" @@ -813,11 +755,11 @@ msgstr[1] "{} קילוגרמים ב־{}" msgstr[2] "{} קילוגרמים ב־{}" msgstr[3] "{} קילוגרמים ב־{}" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "‫BMI לא ידוע" -#: src/plugins/weight/details.rs:270 +#: src/plugins/weight/details.rs:280 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -836,7 +778,7 @@ msgstr[3] "" "יעד המשקל שלך הוא {} פאונד. יש להוסיף מדד משקל ראשון כדי לראות מה המרחק " "מהיעד." -#: src/plugins/weight/details.rs:277 +#: src/plugins/weight/details.rs:287 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -855,49 +797,45 @@ msgstr[3] "" "יעד המשקל שלך הוא {} קילוגרמים. יש להוסיף מדד משקל ראשון כדי לראות מה המרחק " "מהיעד." -#: src/plugins/weight/details.rs:286 -msgid "You've reached your weight goal. Great job!" +#: src/plugins/weight/details.rs:296 +msgid "You’ve reached your weight goal. Great job!" msgstr "הגעת למשקל היעד שלך. כל הכבוד!" -#. TRANSLATORS: First part of message, ends with [...] you have {} pound left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:302 -msgid "Your weight goal is {} pound," -msgid_plural "Your weight goal is {} pounds," -msgstr[0] "יעד המשקל שלך הוא פאונד," -msgstr[1] "יעד המשקל שלך הוא שני פאונד," -msgstr[2] "יעד המשקל שלך הוא {} פאונד," -msgstr[3] "יעד המשקל שלך הוא {} פאונד," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:307 -msgid "you have {} pound left to reach it" -msgid_plural "you have {} pounds left to reach it" -msgstr[0] "כדי להגיע אליו נותר לך עוד פאונד" -msgstr[1] "כדי להגיע אליו נותרו לך עוד שני פאונד" -msgstr[2] "כדי להגיע אליו נותרו לך עוד {} פאונד" -msgstr[3] "כדי להגיע אליו נותרו לך עוד {} פאונד" - -#. TRANSLATORS: First part of message, ends with [...] you have {} kilogram left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:314 -msgid "Your weight goal is {} kilogram," -msgid_plural "Your weight goal is {} kilograms," -msgstr[0] "יעד המשקל שלך הוא קילוגרם," -msgstr[1] "יעד המשקל שלך הוא שני קילוגרמים," -msgstr[2] "יעד המשקל שלך הוא {} קילוגרמים," -msgstr[3] "יעד המשקל שלך הוא {} קילוגרמים," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:320 -msgid "you have {} kilogram left to reach it" -msgid_plural "you have {} kilograms left to reach it" +#: src/plugins/weight/details.rs:312 +msgid "Your weight goal is {} pound." +msgid_plural "Your weight goal is {} pounds." +msgstr[0] "יעד המשקל שלך הוא פאונד." +msgstr[1] "יעד המשקל שלך הוא שני פאונד." +msgstr[2] "יעד המשקל שלך הוא {} פאונד." +msgstr[3] "יעד המשקל שלך הוא {} פאונד." + +#: src/plugins/weight/details.rs:317 +msgid "You have {} pound left to reach it." +msgid_plural "You have {} pounds left to reach it." +msgstr[0] "כדי להגיע אליו נותר לך עוד פאונד." +msgstr[1] "כדי להגיע אליו נותרו לך עוד שני פאונד." +msgstr[2] "כדי להגיע אליו נותרו לך עוד {} פאונד." +msgstr[3] "כדי להגיע אליו נותרו לך עוד {} פאונד." + +#: src/plugins/weight/details.rs:324 +msgid "Your weight goal is {} kilogram." +msgid_plural "Your weight goal is {} kilograms." +msgstr[0] "יעד המשקל שלך הוא קילוגרם." +msgstr[1] "יעד המשקל שלך הוא שני קילוגרמים." +msgstr[2] "יעד המשקל שלך הוא {} קילוגרמים." +msgstr[3] "יעד המשקל שלך הוא {} קילוגרמים." + +#: src/plugins/weight/details.rs:330 +msgid "You have {} kilogram left to reach it" +msgid_plural "You have {} kilograms left to reach it" msgstr[0] "כדי להגיע אליו נותר לך עוד קילוגרם" msgstr[1] "כדי להגיע אליו נותרו לך עוד שני קילוגרמים" msgstr[2] "כדי להגיע אליו נותרו לך עוד {} קילוגרמים" msgstr[3] "כדי להגיע אליו נותרו לך עוד {} קילוגרמים" -#: src/plugins/weight/details.rs:330 -msgid "No weight goal set yet. You can set it in Health's preferences." -msgstr "לא הוגדר יעד משקל עדיין. ניתן להגדיר אותו בהעדפות של תכנית הבריאות." +#: src/plugins/weight/details.rs:340 +msgid "No weight goal set yet. You can set it in Health’s preferences." +msgstr "לא הוגדר יעד משקל עדיין. ניתן להגדיר אותו בהעדפות של תוכנית הבריאות." #: src/plugins/weight/summary.rs:119 msgid "{} pound" @@ -956,33 +894,33 @@ msgid "No weight data available" msgstr "אין מדדי משקל זמינים" #: src/sync/csv.rs:81 src/sync/csv.rs:370 -msgid "No activities added yet; can't create empty export!" +msgid "No activities added yet; can’t create empty export!" msgstr "עדיין לא נוספו פעילויות, לא ניתן ליצור ייצוא ריק!" #: src/sync/csv.rs:111 src/sync/csv.rs:388 -msgid "No weight measurements added yet; can't create empty export!" +msgid "No weight measurements added yet; can’t create empty export!" msgstr "עדיין לא נוספו מדדי משקל, אי אפשר ליצור ייצוא ריק!" #: src/sync/csv.rs:184 src/sync/csv.rs:332 -msgid "Can't parse encrypted backup without encryption key!" +msgid "Can’t parse encrypted backup without encryption key!" msgstr "אי אפשר לפענח גיבוי מוצפן בלי מפתח הצפנה!" #: src/sync/csv.rs:195 src/sync/csv.rs:352 msgid "" -"Couldn't parse CSV. Are you trying to read an unencrypted backup as an " +"Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " "encrypted one?" msgstr "אי אפשר לפענח CSV. ניסית לקרוא גיבוי בלתי מוצפן כגיבוי מוצפן?" #: src/sync/csv.rs:208 -msgid "Couldn't decrypt data. Are you sure you're using the right key?" +msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" msgstr "הצפנת הנתונים לא צלחה. האם זה המפתח הנכון?" #: src/sync/database_receiver.rs:46 -msgid "Couldn't synchronize steps due to error {}" +msgid "Couldn’t synchronize steps due to error {}" msgstr "אי אפשר לסנכרן צעדים עקב שגיאה {}" #: src/sync/database_receiver.rs:60 -msgid "Couldn't synchronize weight measurements due to error {}" +msgid "Couldn’t synchronize weight measurements due to error {}" msgstr "אי אפשר לסנכרן את מדדי המשקל עקב שגיאה {}" #: src/sync/google_fit.rs:211 @@ -995,7 +933,7 @@ msgstr "בקשת אסימון OAuth2 נכשל עקב שגיאה {}" #: src/sync/sync_provider.rs:109 msgid "" -"Can't retrieve OAuth2 token when no refresh token is set! Please re-" +"Can’t retrieve OAuth2 token when no refresh token is set! Please re-" "authenticate with your sync provider." msgstr "" "אי אפשר לקבל את אסימון OAuth2 כשלא מוגדר אסימון רענון! נא לעבור אימות מחדש " @@ -1010,7 +948,7 @@ msgid "Successfully authenticated, please return to Health." msgstr "האימות הצליח, נא לחזור לתכנית הבריאות." #: src/sync/sync_provider.rs:228 -msgid "Couldn't parse OAuth2 response" +msgid "Couldn’t parse OAuth2 response" msgstr "לא ניתן לפענח את תגובת ה־OAuth2" #: src/views/bar_graph_view.rs:583 @@ -1065,10 +1003,6 @@ msgstr[1] "שני יארד" msgstr[2] "{} יארד" msgstr[3] "{} יארד" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -msgid "Current BMI" -msgstr "BMI נוכחי" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "‫BMI נוכחי: {}" @@ -1090,42 +1024,42 @@ msgid "Feet" msgstr "רגל" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "ס״מ" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "מ׳" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "ק״מ" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "ק״ג" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "אינ׳" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "רגל" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "מייל" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "פאונד" @@ -1143,6 +1077,11 @@ msgstr "פעילויות.csv.encrypted" msgid "Activities.csv" msgstr "פעילויות.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "לא נבחר קובץ." + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "שמירת מדדי המשקל" @@ -1203,18 +1142,80 @@ msgstr "אירעה שגיאה!" msgid "Close" msgstr "סגירה" -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "יעד BMI" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "הסבת מסד הנתונים לגירסה החדשה נכשלה עקב השגיאה {}" - #: src/windows/window.rs:267 -msgid "Couldn't sync Google Fit data due to error: {}" +msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "הסנכרון מול נתוני Google Fit לא צלח עקב השגיאה: {}" +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "האם המשתמש השלים את אשף ההקמה" + +#~ msgid "Whether to enable notifications." +#~ msgstr "האם להפעיל התראות." + +#~ msgid "Sets all data source plugins that are enabled in Health." +#~ msgstr "מגדיר את כל תוספי מקורות הנתונים שמופעלים בתוכנת הבריאות." + +#~ msgid "The time at which Health should remind the user of their step goal" +#~ msgstr "המועד בו תכנית הבריאות צריכה להזכיר למשתמשים על צעד אל עבר היעד" + +#~ msgid "" +#~ "How frequent should the user be notified to complete their daily step-" +#~ "goal." +#~ msgstr "" +#~ "מה התדירות בה תישלח הודעה למשתמשים בנוגע להשלמת יעד הצעדים היומי שלהם." + +#~ msgid "" +#~ "Activity types the user used recently, to be shown first in the activity " +#~ "types selector's list" +#~ msgstr "" +#~ "סוגי הפעילות בהן השתמשו המשתמשים לאחרונה, כדי להציג אותם ראשונים ברשימה " +#~ "בחירת סוגי הפעילות" + +#~ msgid "Whether Google Fit has been setup as sync provider" +#~ msgstr "האם Google Fit הוגדר כספק סנכרון" + +#~ msgid "The last time we synched steps, weight etc. with Google Fit" +#~ msgstr "הפעם האחרונה בה סנכרנו צעדים, משקל וכו׳ מול Google Fit" + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "" +#~ "מערכת היחידות לבחירת המשתמש, למשל: cm לסנטימטרים מול inch לאינטשים " +#~ "כיחידות גובה" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "גיל המשתמש (לא בשימוש עוד)." + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "גיל המשתמשים בתקופות מוחלטות (למשל: 01/01/1970)" + +#~ msgid "The height of the user." +#~ msgstr "הגובה של המשתמש." + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "כמות הצעדים בה המשתמש מעוניין כדי להגיע למכסה יומית." + +#~ msgid "The weight the user wants to reach." +#~ msgstr "המשקל אליו מעוניין המשתמש להגיע." + +#~ msgid "The height of the window." +#~ msgstr "הגובה של החלון." + +#~ msgid "Whether the window is maximized." +#~ msgstr "האם החלון מוגדל." + +#~ msgid "The width of the window." +#~ msgstr "הרוחב של החלון." + +#~ msgid "@APPLICATION_ID@" +#~ msgstr "@APPLICATION_ID@" + +#~| msgid "The WHO recommends 10.000 steps per day." +#~ msgid "The WHO recommends 10,000 steps per day." +#~ msgstr "ארגון הבריאות העולמי ממליץ על 10,000 צעדים ביום." + +#~ msgid "Failed to migrate database to new version due to error {}" +#~ msgstr "הסבת מסד הנתונים לגירסה החדשה נכשלה עקב השגיאה {}" + #~ msgid "Last opened view" #~ msgstr "התצוגה האחרונה שנפתחה" -- 2.40.1 From 7c1197d1c095f880f3dd71bce670b23eeb467528 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=80=D0=BE=D1=81=D0=BB=D0=B0=D0=B2=20=D0=9D?= =?UTF-8?q?=D0=B8=D0=BA=D0=BE=D0=BB=D0=B8=D1=9B?= Date: Sun, 25 Sep 2022 07:24:13 +0000 Subject: [PATCH 68/83] Update Serbian translation --- po/sr.po | 368 ++++++++++++++++++++++++------------------------------- 1 file changed, 160 insertions(+), 208 deletions(-) diff --git a/po/sr.po b/po/sr.po index e8dc126..00773bb 100644 --- a/po/sr.po +++ b/po/sr.po @@ -2,168 +2,93 @@ # Copyright © 2021 health's COPYRIGHT HOLDER # This file is distributed under the same license as the health package. # Мирослав Николић , 2021–2022. -# msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-24 21:36+0000\n" -"PO-Revision-Date: 2022-08-09 06:53+0200\n" -"Last-Translator: Мирослав Николић \n" -"Language-Team: Serbian <српски >\n" +"POT-Creation-Date: 2022-09-13 17:26+0000\n" +"PO-Revision-Date: 2022-09-21 10:43+0200\n" +"Last-Translator: Miroslav Nikolic \n" +"Language-Team: Serbian\n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n" -"X-Generator: Gtranslator 3.36.0\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" msgstr "Урађено подешавање првог покретања" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "Да ли је корисник употпунио чаробњака подешавања" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "Укључивање обавештења" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "Да ли ће се укључити обавештења." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "Поставља укључене прикључке" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "Поставља све прикључке извора података који су укључени у Здрављу." - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "Време обавештавања" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "Време када ће Здравље потсетити корисника о циљним корацима" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "учесталост обавештења" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "" -"Колико често ће се корисник обавештавати да доврши дневне циљне кораке." - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "Списак скорашњих врста активности" -#: data/dev.Cogitri.Health.gschema.xml:42 -#| msgid "" -#| "Activity types the user used recently, to be shown first in the activity " -#| "types selector's list" -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector’s list" -msgstr "" -"Врсте активности које је корисник недавно користио, које ће се прве " -"приказати на списку бирача врста активности" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "Подешавање достављача усклађивања Гугл Фита" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "Да ли је Гугл Фит подешен као достављач усклађивања" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "Последње усклађивање са Гугл Фитом" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "Последње време када смо ускладили кораке, тежину и др. са Гугл Фитом" - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "Коришћени систем јединица" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "" -"Систем јединица који је корисник изабрао, нпр. центиметре или инче за висину" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "Године корисника" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "Корисникове године (застарело)." - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "Апсолутне године корисника" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "Године корисника у апсолутним терминима (рецимо 01.01.1070.)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "Висина корисника" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "Корисникова висина." - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "Корисников циљ корака" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "Количина корака које корисник жели дневно да уради." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "Корисникова циљна тежина" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "Тежина коју корисник жели да достигне." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "Висина прозора" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "Висина прозора." - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "Увећање прозора" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "Да ли је прозор увећан." - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "Ширина прозора" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "Ширина прозора." +#: data/dev.Cogitri.Health.gschema.xml:84 +#| msgid "Active Minutes" +msgid "Active user ID" +msgstr "ИД активног корисника" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -177,11 +102,6 @@ msgid "Track your fitness goals" msgstr "Пратите ваше циљеве вежбања" #: data/dev.Cogitri.Health.metainfo.xml.in.in:11 -#| msgid "" -#| "A health tracking app for the GNOME desktop. Health can visualize how " -#| "many steps you've made daily, your weight development over time and your " -#| "daily activities. Data can be synched from Google Fit or manually entered " -#| "into Health. Afterwards, it can be viewed and edited in Health." msgid "" "Health can visualize how many steps you’ve made daily, your weight " "development over time and your daily activities. Data can be synched from " @@ -322,7 +242,7 @@ msgstr "" "видите ваше стварне, живе податке." #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "Кораци" @@ -359,89 +279,98 @@ msgstr "Поставке Здравља" msgid "General" msgstr "Опште" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "Корисник" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "Систем јединица" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "Империјални" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "Метрички" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +#| msgid "User age" +msgid "Username" +msgstr "Корисничко име" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "Рођендан" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "Висина" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "Обавештења" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "Укључи обавештења" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "Учесталост" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "Време дневног потсетника" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "Циљни кораци" -#: data/ui/preferences_window.blp:170 +#: data/ui/preferences_window.blp:179 msgid "7,500 steps per day are recommended." msgstr "Препоручује се 7500 корака дневно." -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 -#| msgid "Weight goal" +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "Циљна тежина" -#: data/ui/preferences_window.blp:188 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "СЗО препоручује ИМТ од 18.5-24.9." -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "Циљни ИМТ" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "Усклади" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "Започните усклађивање са достављачима трећих страна." -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "Увоз и извоз података" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "Извези податке као ЗРВ" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "Извези…" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "Увези податке из ЗРВ" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "Увези…" @@ -473,38 +402,39 @@ msgstr "Добродошли у Здравље!" msgid "Please enter some information to get setup." msgstr "Унесите неке податке зарад подешавања." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "Унесите ваше циљне дневне кораке." -#: data/ui/setup_window.blp:224 -#| msgid "The WHO recommends 10.000 steps per day." +#: data/ui/setup_window.blp:236 msgid "The WHO recommends 7.500 steps per day." msgstr "СЗО препоручује 7500 корака на дан." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "Унесите вашу циљну тежину." -#: data/ui/setup_window.blp:286 -#| msgid "The WHO recommends a BMI of 18.5-24.9." +#: data/ui/setup_window.blp:298 msgid "The WHO recommends a BMI of 18.5–24.9." msgstr "СЗО препоручује ИМТ од 18.5-24.9." -#: data/ui/setup_window.blp:314 -#| msgid "Import weights" +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "Тренутна тежина" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "Текући ИМТ" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "Циљна тежина." -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "Подесите усклађивање са достављачима трећих страна." -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "" @@ -593,15 +523,15 @@ msgstr "_О Здрављу" msgid "Enable plugin" msgstr "Укључите прикључак" -#: src/core/application.rs:176 +#: src/core/application.rs:189 msgid "A health tracking app for the GNOME desktop." msgstr "Програм за праћење здравља за Гномову радну површ." -#: src/core/application.rs:178 +#: src/core/application.rs:191 msgid "translator-credits" msgstr "Мирослав Николић " -#: src/core/application.rs:180 +#: src/core/application.rs:193 msgid "Websites" msgstr "Веб сајтови" @@ -743,22 +673,17 @@ msgstr[1] "{} калорије сагорене данас" msgstr[2] "{} калорија сагорених данас" msgstr[3] "Једна сагорена калорија данас" -#: src/plugins/steps/details.rs:186 -#| msgid "Today's steps: {}" +#: src/plugins/steps/details.rs:187 msgid "Today’s steps: {}" msgstr "Број данашњих корака: {}" -#: src/plugins/steps/details.rs:201 +#: src/plugins/steps/details.rs:206 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" "Још нема низа. Постигните свој циљ корака у више дана да започнете низ!" -#: src/plugins/steps/details.rs:205 -#| msgid "" -#| "You're on a streak for {} day. Reach your step goal today to continue it!" -#| msgid_plural "" -#| "You're on a streak for {} days. Reach your step goal today to continue it!" +#: src/plugins/steps/details.rs:210 msgid "" "You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" @@ -772,14 +697,11 @@ msgstr[2] "" msgstr[3] "" "На низу сте за 1 дан. Достигните ваш циљ корака данас да га наставите!" -#: src/plugins/steps/details.rs:213 -#| msgid "You've reached your step goal today. Keep going to start a streak!" +#: src/plugins/steps/details.rs:218 msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "Данас сте достигли ваш циљ корака. Наставите да бисте започели низ!" -#: src/plugins/steps/details.rs:216 -#| msgid "You're on a streak for {} day. Good job!" -#| msgid_plural "You're on a streak for {} days. Good job!" +#: src/plugins/steps/details.rs:221 msgid "You’re on a streak for {} day. Good job!" msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Остварићете низ за {} дан. Одличан посао!" @@ -788,7 +710,7 @@ msgstr[2] "Остварићете низ за {} дана. Одличан пос msgstr[3] "Остварићете низ за 1 дан. Одличан посао!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} корак {}" @@ -796,7 +718,7 @@ msgstr[1] "{} корака {}" msgstr[2] "{} корака {}" msgstr[3] "1 корак {}" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "{} корак сте направили данас" @@ -804,7 +726,7 @@ msgstr[1] "{} корака сте направили данас" msgstr[2] "{} корака сте направили данас" msgstr[3] "{} корак сте направили данас" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "Достигнут је {} проценат дневног циља корака" @@ -812,17 +734,16 @@ msgstr[1] "Достигнута су {} процента дневног циља msgstr[2] "Достигнуто је {} процената дневног циља корака" msgstr[3] "Достигнут је један проценат дневног циља корака" -#: src/plugins/steps/summary.rs:112 -#| msgid "Please enter your daily step goal." +#: src/plugins/steps/summary.rs:114 msgid "Well done! You have reached your daily step goal!" msgstr "Свака вам част! Достигли сте ваше циљне дневне кораке!" -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "Текући ИМТ: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} фунта {}" @@ -831,7 +752,7 @@ msgstr[2] "{} фунти {}" msgstr[3] "1 фунта {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} килограм {}" @@ -839,11 +760,11 @@ msgstr[1] "{} килограма {}" msgstr[2] "{} килограма {}" msgstr[3] "1 килограм {}" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "Непознат ИМТ" -#: src/plugins/weight/details.rs:268 +#: src/plugins/weight/details.rs:280 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -863,7 +784,7 @@ msgstr[3] "" "Ваша циљна тежина је једна фунта. Додајте прво мерење тежине да видите " "колико вам још недостаје да је достигнете." -#: src/plugins/weight/details.rs:275 +#: src/plugins/weight/details.rs:287 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -883,14 +804,11 @@ msgstr[3] "" "Ваша циљна тежина је један килограм. Додајте прво мерење тежине да видите " "колико вам још недостаје да је достигнете." -#: src/plugins/weight/details.rs:284 -#| msgid "You've reached your weight goal. Great job!" +#: src/plugins/weight/details.rs:296 msgid "You’ve reached your weight goal. Great job!" msgstr "Достигли сте жељену тежину. Одличан посао!" -#: src/plugins/weight/details.rs:300 -#| msgid "Your weight goal is {} pound," -#| msgid_plural "Your weight goal is {} pounds," +#: src/plugins/weight/details.rs:312 msgid "Your weight goal is {} pound." msgid_plural "Your weight goal is {} pounds." msgstr[0] "Ваша циљна тежина је {} фунта." @@ -898,9 +816,7 @@ msgstr[1] "Ваша циљна тежина је {} фунте." msgstr[2] "Ваша циљна тежина је {} фунти." msgstr[3] "Ваша циљна тежина је једна фунта." -#: src/plugins/weight/details.rs:305 -#| msgid "you have {} pound left to reach it" -#| msgid_plural "you have {} pounds left to reach it" +#: src/plugins/weight/details.rs:317 msgid "You have {} pound left to reach it." msgid_plural "You have {} pounds left to reach it." msgstr[0] "Остаје вам {} фунта да је достигнете." @@ -908,9 +824,7 @@ msgstr[1] "Остају вам {} фунте да је достигнете." msgstr[2] "Остаје вам {} фунти да је достигнете." msgstr[3] "Остаје вам 1 фунта да је достигнете." -#: src/plugins/weight/details.rs:312 -#| msgid "Your weight goal is {} kilogram," -#| msgid_plural "Your weight goal is {} kilograms," +#: src/plugins/weight/details.rs:324 msgid "Your weight goal is {} kilogram." msgid_plural "Your weight goal is {} kilograms." msgstr[0] "Ваша циљна тежина је {} килограм." @@ -918,9 +832,7 @@ msgstr[1] "Ваша циљна тежина је {} килограма." msgstr[2] "Ваша циљна тежина је {} килограма." msgstr[3] "Ваша циљна тежина је један килограм." -#: src/plugins/weight/details.rs:318 -#| msgid "you have {} kilogram left to reach it" -#| msgid_plural "you have {} kilograms left to reach it" +#: src/plugins/weight/details.rs:330 msgid "You have {} kilogram left to reach it" msgid_plural "You have {} kilograms left to reach it" msgstr[0] "Остаје вам {} килограм да је достигнете" @@ -928,8 +840,7 @@ msgstr[1] "Остају вам {} килограма да је достигне msgstr[2] "Остаје вам {} килограма да је достигнете" msgstr[3] "Остаје вам 1 килограм да је достигнете" -#: src/plugins/weight/details.rs:328 -#| msgid "No weight goal set yet. You can set it in Health's preferences." +#: src/plugins/weight/details.rs:340 msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" "Циљна тежина још није постављена, Можете је поставити у поставкама Здравља." @@ -991,24 +902,18 @@ msgid "No weight data available" msgstr "Нема доступних података тежине" #: src/sync/csv.rs:81 src/sync/csv.rs:370 -#| msgid "No activities added yet; can't create empty export!" msgid "No activities added yet; can’t create empty export!" msgstr "Још увек нису додате активности; не могу да направим празан извоз!" #: src/sync/csv.rs:111 src/sync/csv.rs:388 -#| msgid "No weight measurements added yet; can't create empty export!" msgid "No weight measurements added yet; can’t create empty export!" msgstr "Још увек нису додате мере тежине; не могу да направим празан извоз!" #: src/sync/csv.rs:184 src/sync/csv.rs:332 -#| msgid "Can't parse encrypted backup without encryption key!" msgid "Can’t parse encrypted backup without encryption key!" msgstr "Не могу да обрадим шифровану резерву без кључа шифровања!" #: src/sync/csv.rs:195 src/sync/csv.rs:352 -#| msgid "" -#| "Couldn't parse CSV. Are you trying to read an unencrypted backup as an " -#| "encrypted one?" msgid "" "Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " "encrypted one?" @@ -1017,18 +922,15 @@ msgstr "" "шифровану?" #: src/sync/csv.rs:208 -#| msgid "Couldn't decrypt data. Are you sure you're using the right key?" msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" msgstr "" "Не могу да дешифрујем податке. Да ли сигурно користите одговарајући кључ?" #: src/sync/database_receiver.rs:46 -#| msgid "Couldn't synchronize steps due to error {}" msgid "Couldn’t synchronize steps due to error {}" msgstr "Не могу да ускладим кораке услед грешке „{}“" #: src/sync/database_receiver.rs:60 -#| msgid "Couldn't synchronize weight measurements due to error {}" msgid "Couldn’t synchronize weight measurements due to error {}" msgstr "Не могу да ускладим мере тежине услед грешке „{}“" @@ -1041,9 +943,6 @@ msgid "Requesting OAuth2 token failed due to error {}" msgstr "Захтевање „OAuth2“ скупине није успело услед грешке „{}“" #: src/sync/sync_provider.rs:109 -#| msgid "" -#| "Can't retrieve OAuth2 token when no refresh token is set! Please re-" -#| "authenticate with your sync provider." msgid "" "Can’t retrieve OAuth2 token when no refresh token is set! Please re-" "authenticate with your sync provider." @@ -1060,7 +959,6 @@ msgid "Successfully authenticated, please return to Health." msgstr "Потврђивање идентитета је успело, вратите се на Здравље." #: src/sync/sync_provider.rs:228 -#| msgid "Couldn't parse OAuth2 response" msgid "Couldn’t parse OAuth2 response" msgstr "Не могу да обрадим „OAuth2“ одговор" @@ -1116,11 +1014,6 @@ msgstr[1] "{} стопе" msgstr[2] "{} стопа" msgstr[3] "1 стопа" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -#| msgid "Current BMI: {}" -msgid "Current BMI" -msgstr "Текући ИМТ" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "Тренутни ИМТ: {}" @@ -1260,19 +1153,78 @@ msgstr "Дошло је до грешке!" msgid "Close" msgstr "Затвори" -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "Циљни ИМТ" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "Нисам успео да пренесем базу података на ново издање услед грешке „{}“" - #: src/windows/window.rs:267 -#| msgid "Couldn't sync Google Fit data due to error: {}" msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "Не могу да ускладим податке Гугл Фита услед грешке: {}" +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "Да ли је корисник употпунио чаробњака подешавања" + +#~ msgid "Whether to enable notifications." +#~ msgstr "Да ли ће се укључити обавештења." + +#~ msgid "Sets all data source plugins that are enabled in Health." +#~ msgstr "Поставља све прикључке извора података који су укључени у Здрављу." + +#~ msgid "The time at which Health should remind the user of their step goal" +#~ msgstr "Време када ће Здравље потсетити корисника о циљним корацима" + +#~ msgid "" +#~ "How frequent should the user be notified to complete their daily step-" +#~ "goal." +#~ msgstr "" +#~ "Колико често ће се корисник обавештавати да доврши дневне циљне кораке." + +#~| msgid "" +#~| "Activity types the user used recently, to be shown first in the activity " +#~| "types selector's list" +#~ msgid "" +#~ "Activity types the user used recently, to be shown first in the activity " +#~ "types selector’s list" +#~ msgstr "" +#~ "Врсте активности које је корисник недавно користио, које ће се прве " +#~ "приказати на списку бирача врста активности" + +#~ msgid "Whether Google Fit has been setup as sync provider" +#~ msgstr "Да ли је Гугл Фит подешен као достављач усклађивања" + +#~ msgid "The last time we synched steps, weight etc. with Google Fit" +#~ msgstr "" +#~ "Последње време када смо ускладили кораке, тежину и др. са Гугл Фитом" + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "" +#~ "Систем јединица који је корисник изабрао, нпр. центиметре или инче за " +#~ "висину" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "Корисникове године (застарело)." + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "Године корисника у апсолутним терминима (рецимо 01.01.1070.)" + +#~ msgid "The height of the user." +#~ msgstr "Корисникова висина." + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "Количина корака које корисник жели дневно да уради." + +#~ msgid "The weight the user wants to reach." +#~ msgstr "Тежина коју корисник жели да достигне." + +#~ msgid "The height of the window." +#~ msgstr "Висина прозора." + +#~ msgid "Whether the window is maximized." +#~ msgstr "Да ли је прозор увећан." + +#~ msgid "The width of the window." +#~ msgstr "Ширина прозора." + +#~ msgid "Failed to migrate database to new version due to error {}" +#~ msgstr "" +#~ "Нисам успео да пренесем базу података на ново издање услед грешке „{}“" + #~ msgid "@APPLICATION_ID@" #~ msgstr "@ИБ_ПРОГРАМА@" -- 2.40.1 From 537431763cb35e4a985a60b55727689423a60ea7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jiri=20Gr=C3=B6nroos?= Date: Sun, 9 Oct 2022 16:27:18 +0000 Subject: [PATCH 69/83] Update Finnish translation --- po/fi.po | 468 +++++++++++++++++++++++++++---------------------------- 1 file changed, 226 insertions(+), 242 deletions(-) diff --git a/po/fi.po b/po/fi.po index 3c22729..f6ca5db 100644 --- a/po/fi.po +++ b/po/fi.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-03-15 08:58+0000\n" -"PO-Revision-Date: 2022-04-10 15:50+0300\n" +"POT-Creation-Date: 2022-09-13 17:26+0000\n" +"PO-Revision-Date: 2022-10-09 19:26+0300\n" "Last-Translator: Jiri Grönroos \n" "Language-Team: \n" "Language: fi\n" @@ -16,148 +16,81 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 3.0.1\n" +"X-Generator: Poedit 3.1.1\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" msgstr "Alkuasetukset tehty" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "Onko käyttäjä tehnyt alkuasetukset vai ei" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "Ilmoitukset päällä/pois" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "Ovatko ilmoitukset käytössä vai ei." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "Aseta käyttöönotetut liitännäiset" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "" - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "Ilmoituksen ajankohta" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" -msgstr "" - -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "" +msgstr "ilmoitusväli" -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "" -#: data/dev.Cogitri.Health.gschema.xml:42 -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector's list" -msgstr "" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "Viimeisin synkronointi Google Fitin kanssa" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "" - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "Käytettävä yksikköjärjestelmä" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "" -"Käyttäjän valitsema yksikköjärjestelmä, esim. senttimetrit vs. tuumat " -"pituuden osalta" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "Käyttäjän ikä" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "Käyttäjän ikä (vanhennettu)." - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "Käyttäjän absoluuttinen ikä" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "Käyttäjän absoluuttinen ikä (kuten 01/01/1970)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "Käyttäjän pituus" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "Käyttäjän pituus." - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "Käyttäjän askeltavoite" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "Päivittäisten askeleiden määrä jonka käyttäjä haluaa tavoittaa." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "Käyttäjän tavoitepaino" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "Paino jonka käyttäjä haluaa tavoittaa." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "Ikkunan korkeus" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "Ikkunan korkeus." - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "Ikkuna suurennettu" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "Onko ikkuna suurennettu." - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "Ikkunan leveys" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "Ikkunan leveys." +#: data/dev.Cogitri.Health.gschema.xml:84 +#, fuzzy +#| msgid "Active Minutes" +msgid "Active user ID" +msgstr "Aktiiviset minuutit" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -166,28 +99,23 @@ msgstr "Ikkunan leveys." msgid "Health" msgstr "Terveys" -#: data/dev.Cogitri.Health.Autostart.desktop.in.in:5 -#: data/dev.Cogitri.Health.desktop.in.in:5 -msgid "@APPLICATION_ID@" -msgstr "@APPLICATION_ID@" - -#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 src/core/application.rs:167 -msgid "A health tracking app for the GNOME desktop." -msgstr "Sovellus terveyden seurantaa varten Gnome-työpöydälle." +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 +msgid "Track your fitness goals" +msgstr "Seuraa kuntoilutavoitteitasi" #: data/dev.Cogitri.Health.metainfo.xml.in.in:11 msgid "" -"A health tracking app for the GNOME desktop. Health can visualize how many " -"steps you've made daily, your weight development over time and your daily " -"activities. Data can be synched from Google Fit or manually entered into " -"Health. Afterwards, it can be viewed and edited in Health." +"Health can visualize how many steps you’ve made daily, your weight " +"development over time and your daily activities. Data can be synched from " +"Google Fit or manually entered into Health. Afterwards, it can be viewed and " +"edited in Health." msgstr "" -"Sovellus terveyden seurantaa varten Gnome-työpöydälle. Terveys visualisoi " -"päivittäiset askeleet, painon kehityksen ja päivittäiset aktiviteetit. " -"Tiedot voi synkronoida Google Fitistä tai tiedot on mahdollista syöttää " -"käsin. Kerättyjä tietoja on tämän jälkeen mahdollista katsella ja muokata." +"Terveys visualisoi päivittäiset askeleet, painon kehityksen ja päivittäiset " +"aktiviteetit. Tiedot voi synkronoida Google Fitistä tai tiedot on " +"mahdollista syöttää käsin. Kerättyjä tietoja on tämän jälkeen mahdollista " +"katsella ja muokata." -#: data/dev.Cogitri.Health.metainfo.xml.in.in:37 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:36 msgid "Rasmus “Cogitri” Thomsen" msgstr "Rasmus “Cogitri” Thomsen" @@ -202,63 +130,63 @@ msgstr "_Peru" msgid "_Save" msgstr "_Tallenna" -#: data/ui/date_selector.blp:17 +#: data/ui/date_selector.blp:18 msgid "January" msgstr "Tammikuu" -#: data/ui/date_selector.blp:18 src/widgets/date_selector.rs:223 +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:223 msgid "February" msgstr "Helmikuu" -#: data/ui/date_selector.blp:19 +#: data/ui/date_selector.blp:20 msgid "March" msgstr "Maaliskuu" -#: data/ui/date_selector.blp:20 +#: data/ui/date_selector.blp:21 msgid "April" msgstr "Huhtikuu" -#: data/ui/date_selector.blp:21 +#: data/ui/date_selector.blp:22 msgid "May" msgstr "Toukokuu" -#: data/ui/date_selector.blp:22 +#: data/ui/date_selector.blp:23 msgid "June" msgstr "Kesäkuu" -#: data/ui/date_selector.blp:23 +#: data/ui/date_selector.blp:24 msgid "July" msgstr "Heinäkuu" -#: data/ui/date_selector.blp:24 +#: data/ui/date_selector.blp:25 msgid "August" msgstr "Elokuu" -#: data/ui/date_selector.blp:25 +#: data/ui/date_selector.blp:26 msgid "September" msgstr "Syyskuu" -#: data/ui/date_selector.blp:26 +#: data/ui/date_selector.blp:27 msgid "October" msgstr "Lokakuu" -#: data/ui/date_selector.blp:27 +#: data/ui/date_selector.blp:28 msgid "November" msgstr "Marraskuu" -#: data/ui/date_selector.blp:28 +#: data/ui/date_selector.blp:29 msgid "December" msgstr "Joulukuu" -#: data/ui/date_selector.blp:34 +#: data/ui/date_selector.blp:35 msgid "Day" msgstr "Päivä" -#: data/ui/date_selector.blp:60 +#: data/ui/date_selector.blp:61 msgid "Month" msgstr "Kuukausi" -#: data/ui/date_selector.blp:83 +#: data/ui/date_selector.blp:84 msgid "Year" msgstr "Vuosi" @@ -314,7 +242,7 @@ msgid "" msgstr "" #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "Askeleet" @@ -351,91 +279,98 @@ msgstr "Terveyden asetukset" msgid "General" msgstr "Yleiset" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "Käyttäjä" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "Yksikköjärjestelmä" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "Imperiaalinen" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "Metrinen" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "Käyttäjätunnus" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "Syntymäpäivä" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "Pituus" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "Ilmoitukset" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "Käytä ilmoituksia" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "Aikaväli" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "Päivittäisen muistutuksen aika" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "Askeltavoite" -#: data/ui/preferences_window.blp:170 -msgid "The WHO recommends 10,000 steps per day." -msgstr "" -"Maailman terveysjärjestö WHO suosittelee päivittäisten askelten määräksi 10 " -"000." +#: data/ui/preferences_window.blp:179 +msgid "7,500 steps per day are recommended." +msgstr "7500 askelta päivässä on suositus." -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "Tavoitepaino" -#: data/ui/preferences_window.blp:188 data/ui/setup_window.blp:286 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "" "Maailman terveysjärjestö suosittelee painoindeksin olevan välillä 18,5-24,9." -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "Tavoitepainoindeksi" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "Synkronointi" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "Aloita synkronointi kolmansien osapuolien kanssa." -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "Tietojen tuominen ja vieminen" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "Vie tietoa CSV-tiedostoon" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "Vie…" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "Tuo tietoa CSV-tiedostosta" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "Tuo…" @@ -467,32 +402,41 @@ msgstr "Tervetuloa Terveyden pariin!" msgid "Please enter some information to get setup." msgstr "Anna hieman tietoja, jotta määritykset saadaan tehtyä." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "Määritä päivittäisen askelmäärän tavoite." -#: data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." +#: data/ui/setup_window.blp:236 +msgid "The WHO recommends 7.500 steps per day." msgstr "" -"Maailman terveysjärjestö suosittelee päivittäisten askelten määräksi 10 000." +"Maailman terveysjärjestö suosittelee päivittäisten askelten määräksi 7500." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "Määritä tavoitepaino." -#: data/ui/setup_window.blp:314 +#: data/ui/setup_window.blp:298 +msgid "The WHO recommends a BMI of 18.5–24.9." +msgstr "" +"Maailman terveysjärjestö suosittelee painoindeksin olevan välillä 18,5-24,9." + +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "Nykyinen paino" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "Nykyinen painoindeksi" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "Tavoitepaino" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "Määritä synkronointi kolmannen osapuolten palvelujen kanssa." -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "" @@ -582,11 +526,15 @@ msgstr "_Tietoja - Terveys" msgid "Enable plugin" msgstr "Ota liitännäinen käyttöön" -#: src/core/application.rs:169 +#: src/core/application.rs:189 +msgid "A health tracking app for the GNOME desktop." +msgstr "Sovellus terveyden seurantaa varten Gnome-työpöydälle." + +#: src/core/application.rs:191 msgid "translator-credits" msgstr "Jiri Grönroos" -#: src/core/application.rs:171 +#: src/core/application.rs:193 msgid "Websites" msgstr "Verkkosivustot" @@ -714,22 +662,23 @@ msgid_plural "{} calories burned today" msgstr[0] "{} kalori poltettu tänään" msgstr[1] "{} kaloria poltettu tänään" -#: src/plugins/steps/details.rs:186 -msgid "Today's steps: {}" +#: src/plugins/steps/details.rs:187 +#| msgid "Today's steps: {}" +msgid "Today’s steps: {}" msgstr "Askeleita tänään: {}" -#: src/plugins/steps/details.rs:201 +#: src/plugins/steps/details.rs:206 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" "Ei putkea vielä. Saavuta askeltavoitteesi useina päivinä aloittaaksesi " "putken!" -#: src/plugins/steps/details.rs:205 +#: src/plugins/steps/details.rs:210 msgid "" -"You're on a streak for {} day. Reach your step goal today to continue it!" +"You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" -"You're on a streak for {} days. Reach your step goal today to continue it!" +"You’re on a streak for {} days. Reach your step goal today to continue it!" msgstr[0] "" "Putkesi on jatkunut {} päivän ajan. Saavuta askeltavoitteesi jatkaaksesi " "putkea!" @@ -737,64 +686,64 @@ msgstr[1] "" "Putkesi on jatkunut {} päivän ajan. Saavuta askeltavoitteesi jatkaaksesi " "putkea!" -#: src/plugins/steps/details.rs:213 -msgid "You've reached your step goal today. Keep going to start a streak!" +#: src/plugins/steps/details.rs:218 +msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "" "Olet saavuttanut päivittäisen askeltavoitteesi. Jatka kävelyä aloittaaksesi " "putken!" -#: src/plugins/steps/details.rs:216 -msgid "You're on a streak for {} day. Good job!" -msgid_plural "You're on a streak for {} days. Good job!" +#: src/plugins/steps/details.rs:221 +msgid "You’re on a streak for {} day. Good job!" +msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Olet {} päivän putkessa. Hieno juttu!" -msgstr[1] "Olet {} päivän putkessa. Hyvä juttu!" +msgstr[1] "Olet {} päivän putkessa. Hieno juttu!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} askel {}" msgstr[1] "{} askelta {}" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "{} askel tänään" msgstr[1] "{} askelta tänään" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "Saavutettu {} prosentti päivittäisestä askeltavoitteesta" msgstr[1] "Saavutettu {} prosenttia päivittäisestä askeltavoitteesta" -#: src/plugins/steps/summary.rs:112 +#: src/plugins/steps/summary.rs:114 msgid "Well done! You have reached your daily step goal!" msgstr "Hyvin tehty! Saavutit päivittäisen askeltavoitteesi!" -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "Nykyinen painoindeksi: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} pauna {}" msgstr[1] "{} paunaa {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} kilogramma {}" msgstr[1] "{} kilogrammaa {}" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "Tuntematon painoindeksi" -#: src/plugins/weight/details.rs:270 +#: src/plugins/weight/details.rs:280 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -804,7 +753,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/plugins/weight/details.rs:277 +#: src/plugins/weight/details.rs:287 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -818,42 +767,38 @@ msgstr[1] "" "Tavoitepainosi on {} kilogrammaa. Lisää ensimmäinen painomittaus nähdäksesi, " "kuinka lähellä olet tavoitteen toteutumista." -#: src/plugins/weight/details.rs:286 -msgid "You've reached your weight goal. Great job!" +#: src/plugins/weight/details.rs:296 +msgid "You’ve reached your weight goal. Great job!" msgstr "Saavutit tavoitepainosi. Hieno juttu!" -#. TRANSLATORS: First part of message, ends with [...] you have {} pound left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:302 -msgid "Your weight goal is {} pound," -msgid_plural "Your weight goal is {} pounds," -msgstr[0] "Tavoitepainosi on {} pauna," -msgstr[1] "Tavoitepainosi on {} paunaa," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:307 -msgid "you have {} pound left to reach it" -msgid_plural "you have {} pounds left to reach it" -msgstr[0] "" -msgstr[1] "" +#: src/plugins/weight/details.rs:312 +msgid "Your weight goal is {} pound." +msgid_plural "Your weight goal is {} pounds." +msgstr[0] "Tavoitepainosi on {} pauna." +msgstr[1] "Tavoitepainosi on {} paunaa." -#. TRANSLATORS: First part of message, ends with [...] you have {} kilogram left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:314 -msgid "Your weight goal is {} kilogram," -msgid_plural "Your weight goal is {} kilograms," -msgstr[0] "Tavoitepainosi on {} kilogramma," -msgstr[1] "Tavoitepainosi on {} kilogrammaa," +#: src/plugins/weight/details.rs:317 +msgid "You have {} pound left to reach it." +msgid_plural "You have {} pounds left to reach it." +msgstr[0] "Sinulla on {} pauna jäljellä tavoitteeseen." +msgstr[1] "Sinulla on {} paunaa jäljellä tavoitteeseen." -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:320 -msgid "you have {} kilogram left to reach it" -msgid_plural "you have {} kilograms left to reach it" -msgstr[0] "sinulla on {} kilogramma jäljellä tavoitteeseen" -msgstr[1] "sinulla on {} kilogrammaa jäljellä tavoitteeseen" +#: src/plugins/weight/details.rs:324 +msgid "Your weight goal is {} kilogram." +msgid_plural "Your weight goal is {} kilograms." +msgstr[0] "Tavoitepainosi on {} kilogramma." +msgstr[1] "Tavoitepainosi on {} kilogrammaa." #: src/plugins/weight/details.rs:330 -msgid "No weight goal set yet. You can set it in Health's preferences." +msgid "You have {} kilogram left to reach it" +msgid_plural "You have {} kilograms left to reach it" +msgstr[0] "Sinulla on {} kilogramma jäljellä tavoitteeseen" +msgstr[1] "Sinulla on {} kilogrammaa jäljellä tavoitteeseen" + +#: src/plugins/weight/details.rs:340 +msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" -"Tavoitepainoa ei ole vielä asetettu. Voit lisätä tavoitteen Terveyden " +"Tavoitepainoa ei ole vielä asetettu. Voit lisätä tavoitteen sovelluksen " "asetuksissa." #: src/plugins/weight/summary.rs:119 @@ -905,35 +850,35 @@ msgid "No weight data available" msgstr "Painotietoja ei ole saatavilla" #: src/sync/csv.rs:81 src/sync/csv.rs:370 -msgid "No activities added yet; can't create empty export!" +msgid "No activities added yet; can’t create empty export!" msgstr "Aktiviteetteja ei ole lisätty vielä; tyhjää vientiä ei voi luoda!" #: src/sync/csv.rs:111 src/sync/csv.rs:388 -msgid "No weight measurements added yet; can't create empty export!" +msgid "No weight measurements added yet; can’t create empty export!" msgstr "Painomittauksia ei ole vielä lisätty; tyhjää vientiä ei voi luoda!" #: src/sync/csv.rs:184 src/sync/csv.rs:332 -msgid "Can't parse encrypted backup without encryption key!" +msgid "Can’t parse encrypted backup without encryption key!" msgstr "Salattua varmuuskopiota ei voi jäsentää ilman salausavainta!" #: src/sync/csv.rs:195 src/sync/csv.rs:352 msgid "" -"Couldn't parse CSV. Are you trying to read an unencrypted backup as an " +"Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " "encrypted one?" msgstr "" "CSV-tiedostoa ei voitu jäsentää. Yritätkö lukea salaamatonta varmuuskopiota " "siten, että se olisi salattu?" #: src/sync/csv.rs:208 -msgid "Couldn't decrypt data. Are you sure you're using the right key?" +msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" msgstr "Tietojen salausta ei voitu purkaa. Käytätkö varmasti oikeaa avainta?" #: src/sync/database_receiver.rs:46 -msgid "Couldn't synchronize steps due to error {}" +msgid "Couldn’t synchronize steps due to error {}" msgstr "Askeleita ei voitu synkronoida virheen {} vuoksi" #: src/sync/database_receiver.rs:60 -msgid "Couldn't synchronize weight measurements due to error {}" +msgid "Couldn’t synchronize weight measurements due to error {}" msgstr "Painomittauksia ei voitu synkronoida virheen {} vuoksi" #: src/sync/google_fit.rs:211 @@ -946,7 +891,7 @@ msgstr "OAuth2-poletin pyytäminen epäonnistui virheen {} vuoksi" #: src/sync/sync_provider.rs:109 msgid "" -"Can't retrieve OAuth2 token when no refresh token is set! Please re-" +"Can’t retrieve OAuth2 token when no refresh token is set! Please re-" "authenticate with your sync provider." msgstr "" "OAuth2-polettia ei voi noutaa, kun päivityspolettia ei ole asetettu! " @@ -961,7 +906,7 @@ msgid "Successfully authenticated, please return to Health." msgstr "Tunnistautuminen onnistui, palaa Terveyteen." #: src/sync/sync_provider.rs:228 -msgid "Couldn't parse OAuth2 response" +msgid "Couldn’t parse OAuth2 response" msgstr "OAuth2-vastausta ei voitu jäsentää" #: src/views/bar_graph_view.rs:583 @@ -1010,10 +955,6 @@ msgid_plural "{} yards" msgstr[0] "" msgstr[1] "" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -msgid "Current BMI" -msgstr "Nykyinen painoindeksi" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "Nykyinen painoindeksi: {}" @@ -1035,42 +976,42 @@ msgid "Feet" msgstr "Jalka" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "" @@ -1088,6 +1029,11 @@ msgstr "Aktiviteetit.csv.salattu" msgid "Activities.csv" msgstr "Aktiviteetit.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Tiedostoa ei ole valittu." + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "Tallenna painomittaus" @@ -1148,18 +1094,56 @@ msgstr "Tapahtui virhe!" msgid "Close" msgstr "Sulje" -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "Tavoitepainoindeksi" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "Tietokannan migraatio uuteen versioon {} epäonnistui virheen vuoksi" - #: src/windows/window.rs:267 -msgid "Couldn't sync Google Fit data due to error: {}" +msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "Google Fit -tietoja ei voitu synkronoida virheen vuoksi: {}" +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "Onko käyttäjä tehnyt alkuasetukset vai ei" + +#~ msgid "Whether to enable notifications." +#~ msgstr "Ovatko ilmoitukset käytössä vai ei." + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "" +#~ "Käyttäjän valitsema yksikköjärjestelmä, esim. senttimetrit vs. tuumat " +#~ "pituuden osalta" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "Käyttäjän ikä (vanhennettu)." + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "Käyttäjän absoluuttinen ikä (kuten 01/01/1970)" + +#~ msgid "The height of the user." +#~ msgstr "Käyttäjän pituus." + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "Päivittäisten askeleiden määrä jonka käyttäjä haluaa tavoittaa." + +#~ msgid "The weight the user wants to reach." +#~ msgstr "Paino jonka käyttäjä haluaa tavoittaa." + +#~ msgid "The height of the window." +#~ msgstr "Ikkunan korkeus." + +#~ msgid "Whether the window is maximized." +#~ msgstr "Onko ikkuna suurennettu." + +#~ msgid "The width of the window." +#~ msgstr "Ikkunan leveys." + +#~ msgid "@APPLICATION_ID@" +#~ msgstr "@APPLICATION_ID@" + +#~ msgid "The WHO recommends 10,000 steps per day." +#~ msgstr "" +#~ "Maailman terveysjärjestö WHO suosittelee päivittäisten askelten määräksi " +#~ "10 000." + +#~ msgid "Failed to migrate database to new version due to error {}" +#~ msgstr "Tietokannan migraatio uuteen versioon {} epäonnistui virheen vuoksi" + #~ msgid "Last opened view" #~ msgstr "Viimeksi avattu näkymä" -- 2.40.1 From 5602d09e27147d8e84812ca2d72f7b0fd19bbc99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Benvenuti?= Date: Mon, 10 Oct 2022 20:47:43 +0000 Subject: [PATCH 70/83] Update German translation --- po/de.po | 395 +++++++++++++++++++++++++++---------------------------- 1 file changed, 194 insertions(+), 201 deletions(-) diff --git a/po/de.po b/po/de.po index 2e8422a..6c8f0b4 100644 --- a/po/de.po +++ b/po/de.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-26 13:31+0000\n" -"PO-Revision-Date: 2022-07-29 09:18+0200\n" -"Last-Translator: Jürgen Benvenuti \n" +"POT-Creation-Date: 2022-09-25 07:24+0000\n" +"PO-Revision-Date: 2022-10-10 22:32+0200\n" +"Last-Translator: Christian Kirbach \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" @@ -25,150 +25,74 @@ msgstr "" msgid "First time setup done" msgstr "Erstmalige Einrichtung abgeschlossen" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "Legt fest, ob der Nutzer den Einrichtungsassistenten beendet hat" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "Benachrichtigungen ein-/ausschalten" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "Legt fest, ob Benachrichtigungen aktiviert werden sollen." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "Aktivierte Plugins festlegen" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "Legt die Datenquellen-Plugins fest, die in Gesundheit aktiviert sind." - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "Benachrichtigungszeit" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "" -"Die Zeit, zu der Gesundheit den Nutzer an das Schrittziel erinnern soll" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "Häufigkeit der Benachrichtigungen" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "" -"Gibt an, wie oft der Nutzer daran erinnert wird, sein tägliches Schrittziel " -"zu erreichen." - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "Liste mit kürzlich durchgeführten Aktivitäten" -#: data/dev.Cogitri.Health.gschema.xml:42 -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector’s list" -msgstr "" -"Die vom Nutzer kürzlich verwendeten Aktivitäten-Typen, die als erstes in der " -"Aktivitäten-Auswahlliste angezeigt werden" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "Synchronisierung mit Google Fit eingerichtet" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "Gibt an, ob Google Fit zur Synchronisation eingerichtet ist" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "Letzter Abgleich mit Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "" -"Der Zeitpunkt des letzten Abgleichs von Schrittzahl, Gewicht etc. mit Google " -"Fit" - # Maßeinheiten -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "Verwendetes Maßeinheitensystem" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "" -"Das Einheitensystem, das der Nutzer ausgewählt hat, z. B. cm oder Zoll für " -"die Größe" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "Alter des Nutzers" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "Das Alter des Nutzers (veraltet)." - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "Absolutes Alter des Nutzers" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "Das Alter des Nutzers als absoluter Wert (z.B. 01.01.1970)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "Größe des Nutzers" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "Die Größe des Nutzers." - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "Schrittziel des Nutzers" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "Die Zahl der Schritte, die der Nutzer täglich erreichen möchte." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "Zielgewicht des Nutzers" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "Das Gewicht, welches der Nutzer erreichen möchte." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "Fensterhöhe" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "Die Höhe des Fensters." - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "Fenster maximiert" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "Legt fest, ob das Fenster maximiert ist." - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "Fensterbreite" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "Die Breite des Fensters." +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "Aktive Nutzerkennung" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -213,7 +137,7 @@ msgstr "_Speichern" msgid "January" msgstr "Januar" -#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:223 +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:220 msgid "February" msgstr "Februar" @@ -269,7 +193,7 @@ msgstr "Monat" msgid "Year" msgstr "Jahr" -#: data/ui/distance_action_row.blp:11 src/widgets/activity_row.rs:131 +#: data/ui/distance_action_row.blp:11 src/widgets/activity_row.rs:125 msgid "Distance" msgstr "Distanz" @@ -324,7 +248,7 @@ msgstr "" "Plugin, um Ihre tatsächlichen Daten zu sehen." #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "Schritte" @@ -365,88 +289,98 @@ msgstr "Gesundheit-Einstellungen" msgid "General" msgstr "Allgemein" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1097 msgid "User" msgstr "Nutzer" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "Einheitensystem" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "Imperial" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "Metrisch" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "Benutzername" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "Geburtstag" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "Größe" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "Benachrichtigungen" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "Benachrichtigungen aktivieren" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "Häufigkeit" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "Zeit der täglichen Erinnerung" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:244 msgid "Step goal" msgstr "Schrittziel" -#: data/ui/preferences_window.blp:170 +#: data/ui/preferences_window.blp:179 msgid "7,500 steps per day are recommended." msgstr "7.500 Schritte pro Tag sind empfohlen." -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "Zielgewicht" -#: data/ui/preferences_window.blp:188 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "Die WHO empfiehlt einen BMI zwischen 18,5 und 24,9." -#: data/ui/preferences_window.blp:212 +# Freiere Übersetzung "Erwünschter BMI". +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "Ziel-BMI" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "Abgleichen" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "Abgleich mit Drittanbietern starten." -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "Daten importieren und exportieren" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "Daten als CSV exportieren" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "Exportieren …" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "Daten von CSV importieren" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "Importieren …" @@ -478,35 +412,39 @@ msgstr "Willkommen bei Gesundheit!" msgid "Please enter some information to get setup." msgstr "Bitte geben Sie ein paar Informationen an, um zu beginnen." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "Bitte geben Sie Ihr tägliches Schrittziel ein." -#: data/ui/setup_window.blp:224 +#: data/ui/setup_window.blp:236 msgid "The WHO recommends 7.500 steps per day." msgstr "Die WHO empfiehlt 7.500 Schritte pro Tag." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "Bitte geben Sie Ihr Zielgewicht ein." -#: data/ui/setup_window.blp:286 +#: data/ui/setup_window.blp:298 msgid "The WHO recommends a BMI of 18.5–24.9." msgstr "Die WHO empfiehlt einen BMI zwischen 18,5 und 24,9." -#: data/ui/setup_window.blp:314 +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "Aktuelles Gewicht" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:253 +msgid "Current BMI" +msgstr "Aktueller BMI" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:229 msgid "Weight goal" msgstr "Zielgewicht" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "Synchronisierung mit Drittanbietern einrichten." -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "" @@ -596,11 +534,11 @@ msgstr "_Über Gesundheit" msgid "Enable plugin" msgstr "Plugin aktivieren" -#: src/core/application.rs:176 +#: src/core/application.rs:189 msgid "A health tracking app for the GNOME desktop." msgstr "Eine Gesundheitstracker-Anwendung für die GNOME Arbeitsumgebung." -#: src/core/application.rs:178 +#: src/core/application.rs:191 msgid "translator-credits" msgstr "" "Philipp Kiemle , 2022\n" @@ -608,7 +546,7 @@ msgstr "" "Christian Kirbach , 2022\n" "Jürgen Benvenuti , 2022" -#: src/core/application.rs:180 +#: src/core/application.rs:193 msgid "Websites" msgstr "Webseiten" @@ -692,11 +630,11 @@ msgstr "Volleyball" msgid "Walking" msgstr "Gehen" -#: src/model/model_notification.rs:234 +#: src/model/model_notification.rs:214 msgid "Health: walking reminder" msgstr "Gesundheit: Bewegungserinnerung" -#: src/model/model_notification.rs:250 +#: src/model/model_notification.rs:230 msgid "{} step remaining to complete your daily step goal." msgid_plural "{} steps remaining to complete your daily step goal." msgstr[0] "Noch {} Schritt verbleibend bis zum täglichen Schrittziel." @@ -712,7 +650,7 @@ msgid_plural "{} active minutes today" msgstr[0] "Heute {} Minute aktiv" msgstr[1] "Heute {} Minuten aktiv" -#: src/plugins/calories/details.rs:217 +#: src/plugins/calories/details.rs:216 msgid "" "{}:\n" "{} calorie\n" @@ -740,14 +678,14 @@ msgstr[1] "Heute {} Kalorien verbraucht" msgid "Today’s steps: {}" msgstr "Heutige Schritte: {}" -#: src/plugins/steps/details.rs:201 +#: src/plugins/steps/details.rs:205 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" "Noch keine Serie vorhanden. Erreichen Sie Ihr Schrittziel an mehreren Tagen, " "um eine Serie zu starten!" -#: src/plugins/steps/details.rs:205 +#: src/plugins/steps/details.rs:209 msgid "" "You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" @@ -759,64 +697,64 @@ msgstr[1] "" "Sie halten seit {} Tagen eine Serie. Erreichen Sie heute Ihr Schrittziel, um " "sie fortzusetzen!" -#: src/plugins/steps/details.rs:213 +#: src/plugins/steps/details.rs:217 msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "" "Sie haben heute Ihr Schrittziel erreicht. Machen Sie weiter, um eine Serie " "zu starten!" -#: src/plugins/steps/details.rs:216 +#: src/plugins/steps/details.rs:220 msgid "You’re on a streak for {} day. Good job!" msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Sie halten seit {} Tag eine Serie. Gut gemacht!" msgstr[1] "Sie halten seit {} Tagen eine Serie. Gut gemacht!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:237 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} Schritt am {}" msgstr[1] "{} Schritte am {}" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "Heute {} Schritt gegangen" msgstr[1] "Heute {} Schritte gegangen" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "{} % des täglichen Schrittziels erreicht" msgstr[1] "{} % des täglichen Schrittziels erreicht" -#: src/plugins/steps/summary.rs:112 +#: src/plugins/steps/summary.rs:114 msgid "Well done! You have reached your daily step goal!" msgstr "Gut gemacht! Sie haben Ihr tägliches Schrittziel erreicht!" -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:201 msgid "Current BMI: {}" msgstr "Aktueller BMI: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:216 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} Pfund am {}" msgstr[1] "{} Pfund am {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:219 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} Kilo am {}" msgstr[1] "{} Kilo am {}" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:256 src/plugins/weight/details.rs:261 msgid "Unknown BMI" msgstr "Unbekannter BMI" -#: src/plugins/weight/details.rs:268 +#: src/plugins/weight/details.rs:279 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -830,7 +768,7 @@ msgstr[1] "" "Ihr Zielgewicht beträgt {} Pfund. Fügen Sie eine erste Gewichtsmessung " "hinzu, um zu sehen, wie nah Sie Ihrem Ziel sind." -#: src/plugins/weight/details.rs:275 +#: src/plugins/weight/details.rs:286 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -844,37 +782,37 @@ msgstr[1] "" "Ihr Zielgewicht beträgt {} Kilogramm. Fügen Sie eine erste Gewichtsmessung " "hinzu, um zu sehen, wie nah Sie Ihrem Ziel sind." -#: src/plugins/weight/details.rs:284 +#: src/plugins/weight/details.rs:295 msgid "You’ve reached your weight goal. Great job!" msgstr "Sie haben Ihr Zielgewicht erreicht. Herzlichen Glückwunsch!" -#: src/plugins/weight/details.rs:300 +#: src/plugins/weight/details.rs:311 msgid "Your weight goal is {} pound." msgid_plural "Your weight goal is {} pounds." msgstr[0] "Ihr Zielgewicht beträgt {} Pfund." msgstr[1] "Ihr Zielgewicht beträgt {} Pfund." # Ist das das Ende eines Satzes, der woanders anfängt, oder warum ist "noch" hier klein geschrieben? - jb -#: src/plugins/weight/details.rs:305 +#: src/plugins/weight/details.rs:316 msgid "You have {} pound left to reach it." msgid_plural "You have {} pounds left to reach it." msgstr[0] "noch {} Pfund, bis Sie es erreicht haben." msgstr[1] "noch {} Pfund, bis Sie es erreicht haben." -#: src/plugins/weight/details.rs:312 +#: src/plugins/weight/details.rs:323 msgid "Your weight goal is {} kilogram." msgid_plural "Your weight goal is {} kilograms." msgstr[0] "Ihr Zielgewicht beträgt {} Kilogramm." msgstr[1] "Ihr Zielgewicht beträgt {} Kilogramm." # s. o. -#: src/plugins/weight/details.rs:318 +#: src/plugins/weight/details.rs:329 msgid "You have {} kilogram left to reach it" msgid_plural "You have {} kilograms left to reach it" msgstr[0] "noch {} Kilogramm, bis Sie es erreicht haben" msgstr[1] "noch {} Kilogramm, bis Sie es erreicht haben" -#: src/plugins/weight/details.rs:328 +#: src/plugins/weight/details.rs:339 msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" "Bisher wurde kein Zielgewicht festgelegt. Fügen Sie eines in den " @@ -994,114 +932,110 @@ msgstr "Authentifizierung erfolgreich, bitte kehren Sie zu Gesundheit zurück." msgid "Couldn’t parse OAuth2 response" msgstr "OAuth2-Antwort konnte nicht verarbeitet werden" -#: src/views/bar_graph_view.rs:583 +#: src/views/bar_graph_view.rs:568 msgid "Enter weight record to calculate idle calories" msgstr "" "Geben Sie Gewichtsdaten ein, um Ihren Grundumsatz an Kalorien zu berechnen" -#: src/views/bar_graph_view.rs:587 +#: src/views/bar_graph_view.rs:572 msgid "Idle calories" msgstr "Kalorien-Grundumsatz" -#: src/views/view_add_activity.rs:236 +#: src/views/view_add_activity.rs:231 msgid "Activity" msgstr "Aktivität" -#: src/widgets/activity_row.rs:79 +#: src/widgets/activity_row.rs:73 msgid "{} for {} Minute" msgid_plural "{} for {} Minutes" msgstr[0] "{} für {} Minute" msgstr[1] "{} für {} Minuten" -#: src/widgets/activity_row.rs:91 +#: src/widgets/activity_row.rs:85 msgid "Calories burned" msgstr "Verbrauchte Kalorien" -#: src/widgets/activity_row.rs:101 +#: src/widgets/activity_row.rs:95 msgid "Average heart rate" msgstr "Durchschnittliche Herzfrequenz" -#: src/widgets/activity_row.rs:107 +#: src/widgets/activity_row.rs:101 msgid "Maximum heart rate" msgstr "Maximale Herzfrequenz" -#: src/widgets/activity_row.rs:113 +#: src/widgets/activity_row.rs:107 msgid "Minimum heart rate" msgstr "Minimale Herzfrequenz" -#: src/widgets/activity_row.rs:126 +#: src/widgets/activity_row.rs:120 msgid "{} meter" msgid_plural "{} meters" msgstr[0] "{} Meter" msgstr[1] "{} Meter" -#: src/widgets/activity_row.rs:129 +#: src/widgets/activity_row.rs:123 msgid "{} yard" msgid_plural "{} yards" msgstr[0] "{} Yard" msgstr[1] "{} Yard" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -msgid "Current BMI" -msgstr "Aktueller BMI" - -#: src/widgets/bmi_level_bar.rs:274 +#: src/widgets/bmi_level_bar.rs:260 msgid "Current BMI: {}" msgstr "Aktueller BMI: {}" -#: src/widgets/distance_action_row.rs:303 +#: src/widgets/distance_action_row.rs:293 msgid "KM" msgstr "Km" -#: src/widgets/distance_action_row.rs:304 +#: src/widgets/distance_action_row.rs:294 msgid "Meters" msgstr "Meter" -#: src/widgets/distance_action_row.rs:306 +#: src/widgets/distance_action_row.rs:296 msgid "Miles" msgstr "Meilen" -#: src/widgets/distance_action_row.rs:307 +#: src/widgets/distance_action_row.rs:297 msgid "Feet" msgstr "Fuß" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 +#: src/widgets/unit_spinbutton.rs:458 src/widgets/unit_spinbutton.rs:624 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:490 +#: src/widgets/unit_spinbutton.rs:460 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:492 +#: src/widgets/unit_spinbutton.rs:462 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:494 +#: src/widgets/unit_spinbutton.rs:464 msgid "kg" msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 +#: src/widgets/unit_spinbutton.rs:466 src/widgets/unit_spinbutton.rs:626 msgid "in" msgstr "in" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:498 +#: src/widgets/unit_spinbutton.rs:468 msgid "ft" msgstr "ft" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:500 +#: src/widgets/unit_spinbutton.rs:470 msgid "mi" msgstr "mi" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:502 +#: src/widgets/unit_spinbutton.rs:472 msgid "lb" msgstr "lb" @@ -1156,50 +1090,109 @@ msgstr "Gewichtsmessung öffnen" msgid "Import data" msgstr "Daten importieren" -#: src/windows/import_export_dialog_base.rs:214 +#: src/windows/import_export_dialog_base.rs:210 msgid "Import activities" msgstr "Aktivitäten importieren" -#: src/windows/import_export_dialog_base.rs:216 +#: src/windows/import_export_dialog_base.rs:212 msgid "Import is encrypted" msgstr "Import ist verschlüsselt" -#: src/windows/import_export_dialog_base.rs:217 +#: src/windows/import_export_dialog_base.rs:213 msgid "Import weights" msgstr "Gewichte importieren" -#: src/windows/import_export_dialog_base.rs:218 +#: src/windows/import_export_dialog_base.rs:214 msgid "Import" msgstr "Importieren" -#: src/windows/import_export_dialog_base.rs:296 +#: src/windows/import_export_dialog_base.rs:292 msgid "Success!" msgstr "Geschafft!" -#: src/windows/import_export_dialog_base.rs:300 +#: src/windows/import_export_dialog_base.rs:296 msgid "An error occurred!" msgstr "Ein Fehler ist aufgetreten!" -#: src/windows/import_export_dialog_base.rs:305 +#: src/windows/import_export_dialog_base.rs:301 msgid "Close" msgstr "Schließen" -# Freiere Übersetzung "Erwünschter BMI". -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "Ziel-BMI" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "" -"Datenbank konnte aufgrund eines Fehlers nicht auf die neue Version migriert " -"werden: {}" - #: src/windows/window.rs:267 msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "" "Google Fit-Daten konnten aufgrund eines Fehlers nicht verarbeitet werden: {}" +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "Legt fest, ob der Nutzer den Einrichtungsassistenten beendet hat" + +#~ msgid "Whether to enable notifications." +#~ msgstr "Legt fest, ob Benachrichtigungen aktiviert werden sollen." + +#~ msgid "Sets all data source plugins that are enabled in Health." +#~ msgstr "" +#~ "Legt die Datenquellen-Plugins fest, die in Gesundheit aktiviert sind." + +#~ msgid "The time at which Health should remind the user of their step goal" +#~ msgstr "" +#~ "Die Zeit, zu der Gesundheit den Nutzer an das Schrittziel erinnern soll" + +#~ msgid "" +#~ "How frequent should the user be notified to complete their daily step-" +#~ "goal." +#~ msgstr "" +#~ "Gibt an, wie oft der Nutzer daran erinnert wird, sein tägliches " +#~ "Schrittziel zu erreichen." + +#~ msgid "" +#~ "Activity types the user used recently, to be shown first in the activity " +#~ "types selector’s list" +#~ msgstr "" +#~ "Die vom Nutzer kürzlich verwendeten Aktivitäten-Typen, die als erstes in " +#~ "der Aktivitäten-Auswahlliste angezeigt werden" + +#~ msgid "Whether Google Fit has been setup as sync provider" +#~ msgstr "Gibt an, ob Google Fit zur Synchronisation eingerichtet ist" + +#~ msgid "The last time we synched steps, weight etc. with Google Fit" +#~ msgstr "" +#~ "Der Zeitpunkt des letzten Abgleichs von Schrittzahl, Gewicht etc. mit " +#~ "Google Fit" + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "" +#~ "Das Einheitensystem, das der Nutzer ausgewählt hat, z. B. cm oder Zoll " +#~ "für die Größe" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "Das Alter des Nutzers (veraltet)." + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "Das Alter des Nutzers als absoluter Wert (z.B. 01.01.1970)" + +#~ msgid "The height of the user." +#~ msgstr "Die Größe des Nutzers." + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "Die Zahl der Schritte, die der Nutzer täglich erreichen möchte." + +#~ msgid "The weight the user wants to reach." +#~ msgstr "Das Gewicht, welches der Nutzer erreichen möchte." + +#~ msgid "The height of the window." +#~ msgstr "Die Höhe des Fensters." + +#~ msgid "Whether the window is maximized." +#~ msgstr "Legt fest, ob das Fenster maximiert ist." + +#~ msgid "The width of the window." +#~ msgstr "Die Breite des Fensters." + +#~ msgid "Failed to migrate database to new version due to error {}" +#~ msgstr "" +#~ "Datenbank konnte aufgrund eines Fehlers nicht auf die neue Version " +#~ "migriert werden: {}" + #~ msgid "The WHO recommends 10,000 steps per day." #~ msgstr "Die WHO empfiehlt 10.000 Schritte pro Tag." -- 2.40.1 From d88d3a3c2ea61bcbc0ddd0eddd76e7dae65ce997 Mon Sep 17 00:00:00 2001 From: Asier Sarasua Garmendia Date: Sun, 16 Oct 2022 20:33:06 +0000 Subject: [PATCH 71/83] Update Basque translation --- po/eu.po | 311 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 157 insertions(+), 154 deletions(-) diff --git a/po/eu.po b/po/eu.po index 60c97e2..51c8696 100644 --- a/po/eu.po +++ b/po/eu.po @@ -6,8 +6,8 @@ msgid "" msgstr "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-24 21:36+0000\n" -"PO-Revision-Date: 2022-08-07 17:00+0100\n" +"POT-Creation-Date: 2022-09-13 17:26+0000\n" +"PO-Revision-Date: 2022-10-16 17:00+0100\n" "Last-Translator: Asier Sarasua Garmendia \n" "Language-Team: Basque \n" "Language: eu\n" @@ -20,140 +20,73 @@ msgstr "Project-Id-Version: health master\n" msgid "First time setup done" msgstr "Lehen aldiko konfigurazioa burutu da" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "Erabiltzaileak konfigurazio-morroia osatu duen ala ez" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "Txandakatu jakinarazpenak" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "Jakinarazpenak gaituko diren ala ez." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "Ezarri gaitutako pluginak" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "Osasuna aplikazioan gaituta dauden datu-iturburuen plugin guztiak ezartzen ditu." - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "Jakinarazpen-ordua" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "Osasuna aplikazioak erabiltzaileari bere helburuen oroigarri bat noiz emango dion" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "jakinarazpenen maiztasuna" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "Erabiltzailearei zein maiztasunarekin jakinaraziko zaion egunero bete behar duen urrats-helburua." - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "Azken aldiko jarduera moten zerrenda" -#: data/dev.Cogitri.Health.gschema.xml:42 -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector’s list" -msgstr "Erabiltzaileak azken aldian erabilitako jarduera motak, jarduera moten hautatzailearen zerrendan lehenak erakutsiak izan daitezen" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "Google Fit Sync hornitzailearen konfigurazioa" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "Google Fit sinkronizazio-hornitzaile gisa konfiguratu den ala ez" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "Azken sinkronizazioa Google Fit aplikazioarekin" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "Google Fit-ekin urratsak, pisua eta abar sinkronizatu zen azken aldia" - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "Erabilitako unitate-sistema" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "Erabiltzaileak hautatu duen unitate-sistema, adibidez zentimetroak edo hazbeteak altuerarako" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "Erabiltzailearen adina" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "Erabiltzailearen adina (zaharkituta)." - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "Erabiltzailearen adin absolutua" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "Erabitlzailearen adina termino absolutuetan (adibidez 1970/01/01)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "Erabiltzailearen altuera" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "Erabiltzailearen altuera." - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "Erabiltzailearen urrats-helburua" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "Erabiltzaileak egunero egin nahi duen urrats kopurua." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "Erabiltzailearen pisu-helburua" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "Erabiltzaileak erdietsi nahi duen pisua." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "Leihoaren altuera" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "Leihoaren altuera." - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "Leihoa maximizatuta" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "Leihoa maximizatuta dagoen edo ez." - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "Leihoaren zabalera" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "Leihoaren zabalera." +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "Erabiltzaile aktiboaren IDa" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -301,7 +234,7 @@ msgid "" msgstr "Hau, plugin batek datuak nola aurkezten dituen erakusten duen aurrebista bat da. Gaitu plugina zure uneko datu errealak ikusteko." #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "Urratsak" @@ -338,88 +271,97 @@ msgstr "Hobespenak" msgid "General" msgstr "Orokorra" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "Erabiltzailea" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "Unitate-sistema" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "Inperiala" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "Metrikoa" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "Erabiltzaile-izena" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "Urtebetetzea" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "Altuera" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "Jakinarazpenak" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "Gaitu jakinarazpenak" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "Maiztasuna" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "Eguneroko oroigarriaren ordua" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "Urrats-helburua" -#: data/ui/preferences_window.blp:170 +#: data/ui/preferences_window.blp:179 msgid "7,500 steps per day are recommended." msgstr "Egunean 7.500 urrats gomendatzen dira." -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "Pisu-helburua" -#: data/ui/preferences_window.blp:188 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "OMEk 18,5 eta 24,9 balioen arteko GMIa gomentatzen du." -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "Helburuko GMIa" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "Sinkronizatu" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "Hasi hirugarren hornitzaileekin sinkronizatzen." -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "Datuak inportatzea eta esportatzea" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "Esportatu datuak CSV gisa" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "Esportatu…" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "Itsatsi datuak CSV fitxategitik" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "Inportatu…" @@ -451,35 +393,39 @@ msgstr "Ongi etorri Osasuna aplikaziora!" msgid "Please enter some information to get setup." msgstr "Sartu informazioa konfigurazioa gauzatzeko." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "Sartu egunean zenbat urrats egingo dituzun." -#: data/ui/setup_window.blp:224 +#: data/ui/setup_window.blp:236 msgid "The WHO recommends 7.500 steps per day." msgstr "OMEk egunean 7.500 urrats egitea gomendatzen du." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "Sartu zein pisu izan nahi duzun." -#: data/ui/setup_window.blp:286 +#: data/ui/setup_window.blp:298 msgid "The WHO recommends a BMI of 18.5–24.9." msgstr "OMEk 18,5 eta 24,9 balioen arteko GMIa gomentatzen du." -#: data/ui/setup_window.blp:314 +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "Uneko pisua" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "Uneko GMIa" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "Pisu-helburua" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "Konfiguratu hirugarren hornitzaileen sinkronizazioa." -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "Urratsak eta pisu-neurketak hirugarren hornitzaileekin sinkronizatu dezakezu." @@ -565,15 +511,15 @@ msgstr "Osasuna aplikazioari _buruz" msgid "Enable plugin" msgstr "Gaitu plugina" -#: src/core/application.rs:176 +#: src/core/application.rs:189 msgid "A health tracking app for the GNOME desktop." msgstr "Osasunaren jarraipena egiteko aplikazioa GNOME mahaigainerako." -#: src/core/application.rs:178 +#: src/core/application.rs:191 msgid "translator-credits" msgstr "translator-credits" -#: src/core/application.rs:180 +#: src/core/application.rs:193 msgid "Websites" msgstr "Webgunea" @@ -699,16 +645,16 @@ msgid_plural "{} calories burned today" msgstr[0] "{} kaloria erre da gaur" msgstr[1] "Erretako kaloriak" -#: src/plugins/steps/details.rs:186 +#: src/plugins/steps/details.rs:187 msgid "Today’s steps: {}" msgstr "Gaurko urratsak: {}" -#: src/plugins/steps/details.rs:201 +#: src/plugins/steps/details.rs:206 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "Ez zaude bolada onean. Zure urrats-helburua zenbait egunez bete behar duzu boladan egokian sartzeko!" -#: src/plugins/steps/details.rs:205 +#: src/plugins/steps/details.rs:210 msgid "" "You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" @@ -716,62 +662,62 @@ msgid_plural "" msgstr[0] "Bolada onean zaude egun {}ez. Iritsi zure urrats-helburura bolada onarekin jarraitzeko" msgstr[1] "Bolada onean zaude {} egunez. Iritsi zure urrats-helburura bolada onarekin jarraitzeko" -#: src/plugins/steps/details.rs:213 +#: src/plugins/steps/details.rs:218 msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "Zure urrats-helburua bete duzu gaur. Jarraitu horrela bolada on bati ekiteko!" -#: src/plugins/steps/details.rs:216 +#: src/plugins/steps/details.rs:221 msgid "You’re on a streak for {} day. Good job!" msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Bolada onean zaude egun {}ez. Lan ona!" msgstr[1] "Bolada onean zaude {} egunez. Lan ona!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "Urrats {} honetan: {}" msgstr[1] "{} urrats honetan: {}" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "Urrats {} egin da gaur" msgstr[1] "{} urrats egin dira gaur" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "Eguneko urrats-helburuaren ehuneko {} egin da" msgstr[1] "Eguneko urrats-helburuaren ehuneko {} egin da" -#: src/plugins/steps/summary.rs:112 +#: src/plugins/steps/summary.rs:114 msgid "Well done! You have reached your daily step goal!" msgstr "Ondo! Egunerako duzun urrats-helburua osatu duzu!" -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "Uneko GMIa: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "Libera {} honetan: {}" msgstr[1] "{} libera honetan: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "Kilogramo {} honetan: {}" msgstr[1] "{} kilogramo honetan: {}" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "GMI ezezaguna" -#: src/plugins/weight/details.rs:268 +#: src/plugins/weight/details.rs:280 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -781,7 +727,7 @@ msgid_plural "" msgstr[0] "Zure pisu-helburua libera {} da. Gehitu pisu-neurketa bat hura iristetik zein hurbil zauden ikusteko." msgstr[1] "Zure pisu-helburua {} libera dira. Gehitu pisu-neurketa bat hura iristetik zein hurbil zauden ikusteko." -#: src/plugins/weight/details.rs:275 +#: src/plugins/weight/details.rs:287 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -791,35 +737,35 @@ msgid_plural "" msgstr[0] "Zure pisu-helburua kilogramo {} da. Gehitu pisu-neurketa bat hura iristetik zein hurbil zauden ikusteko." msgstr[1] "Zure pisu-helburua {} kilogramo dira. Gehitu pisu-neurketa bat hura iristetik zein hurbil zauden ikusteko." -#: src/plugins/weight/details.rs:284 +#: src/plugins/weight/details.rs:296 msgid "You’ve reached your weight goal. Great job!" msgstr "Zure pisu-helburura iritsi zara. Lan ona!" -#: src/plugins/weight/details.rs:300 +#: src/plugins/weight/details.rs:312 msgid "Your weight goal is {} pound." msgid_plural "Your weight goal is {} pounds." msgstr[0] "Zure pisu-helburua libera {} da." msgstr[1] "Zure pisu-helburua {} libera dira." -#: src/plugins/weight/details.rs:305 +#: src/plugins/weight/details.rs:317 msgid "You have {} pound left to reach it." msgid_plural "You have {} pounds left to reach it." msgstr[0] "Libera {} falta zaizu hartara iristeko." msgstr[1] "{} libera falta zaizkizu hartara iristeko." -#: src/plugins/weight/details.rs:312 +#: src/plugins/weight/details.rs:324 msgid "Your weight goal is {} kilogram." msgid_plural "Your weight goal is {} kilograms." msgstr[0] "Zure pisu-helburua kilogramo {} da." msgstr[1] "Zure pisu-helburua {} kilogramo dira." -#: src/plugins/weight/details.rs:318 +#: src/plugins/weight/details.rs:330 msgid "You have {} kilogram left to reach it" msgid_plural "You have {} kilograms left to reach it" msgstr[0] "Kilogramo {} falta zaizu hartara iristeko" msgstr[1] "{} kilogramo falta zaizkizu hartara iristeko" -#: src/plugins/weight/details.rs:328 +#: src/plugins/weight/details.rs:340 msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "Ez da pisu-helbururik ezarri oraindik. Hobespenetan ezarri dezakezu." @@ -969,10 +915,6 @@ msgid_plural "{} yards" msgstr[0] "Yarda {}" msgstr[1] "{} yarda" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -msgid "Current BMI" -msgstr "Uneko GMIa" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "Uneko GMIa: {}" @@ -1112,18 +1054,79 @@ msgstr "Errorea gertatu da!" msgid "Close" msgstr "Itxi" -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "Helburuko GMIa" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "Huts egin du datu-basea bertsio berrira migratzeak, {} errorea" - #: src/windows/window.rs:267 msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "Ezin izan da Google Fit-ekin sinkronizatu, errorea: {}" +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "Erabiltzaileak konfigurazio-morroia osatu duen ala ez" + +#~ msgid "Whether to enable notifications." +#~ msgstr "Jakinarazpenak gaituko diren ala ez." + +#~ msgid "Sets all data source plugins that are enabled in Health." +#~ msgstr "" +#~ "Osasuna aplikazioan gaituta dauden datu-iturburuen plugin guztiak " +#~ "ezartzen ditu." + +#~ msgid "The time at which Health should remind the user of their step goal" +#~ msgstr "" +#~ "Osasuna aplikazioak erabiltzaileari bere helburuen oroigarri bat noiz " +#~ "emango dion" + +#~ msgid "" +#~ "How frequent should the user be notified to complete their daily step-" +#~ "goal." +#~ msgstr "" +#~ "Erabiltzailearei zein maiztasunarekin jakinaraziko zaion egunero bete " +#~ "behar duen urrats-helburua." + +#~ msgid "" +#~ "Activity types the user used recently, to be shown first in the activity " +#~ "types selector’s list" +#~ msgstr "" +#~ "Erabiltzaileak azken aldian erabilitako jarduera motak, jarduera moten " +#~ "hautatzailearen zerrendan lehenak erakutsiak izan daitezen" + +#~ msgid "Whether Google Fit has been setup as sync provider" +#~ msgstr "Google Fit sinkronizazio-hornitzaile gisa konfiguratu den ala ez" + +#~ msgid "The last time we synched steps, weight etc. with Google Fit" +#~ msgstr "" +#~ "Google Fit-ekin urratsak, pisua eta abar sinkronizatu zen azken aldia" + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "" +#~ "Erabiltzaileak hautatu duen unitate-sistema, adibidez zentimetroak edo " +#~ "hazbeteak altuerarako" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "Erabiltzailearen adina (zaharkituta)." + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "Erabitlzailearen adina termino absolutuetan (adibidez 1970/01/01)" + +#~ msgid "The height of the user." +#~ msgstr "Erabiltzailearen altuera." + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "Erabiltzaileak egunero egin nahi duen urrats kopurua." + +#~ msgid "The weight the user wants to reach." +#~ msgstr "Erabiltzaileak erdietsi nahi duen pisua." + +#~ msgid "The height of the window." +#~ msgstr "Leihoaren altuera." + +#~ msgid "Whether the window is maximized." +#~ msgstr "Leihoa maximizatuta dagoen edo ez." + +#~ msgid "The width of the window." +#~ msgstr "Leihoaren zabalera." + +#~ msgid "Failed to migrate database to new version due to error {}" +#~ msgstr "Huts egin du datu-basea bertsio berrira migratzeak, {} errorea" + #~ msgid "@APPLICATION_ID@" #~ msgstr "@APPLICATION_ID@" -- 2.40.1 From 0a594ff41c66b94009c9aeab2969775ec215b55b Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Mon, 17 Oct 2022 08:54:23 +0200 Subject: [PATCH 72/83] chore(flatpak): update SDK --- .gitlab-ci.yml | 2 +- Health.code-workspace | 6 +++--- dev.Cogitri.Health.Devel.json | 30 ++++-------------------------- 3 files changed, 8 insertions(+), 30 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 98b9fed..331c030 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,7 +4,7 @@ variables: BUNDLE: "dev.Cogitri.Health.Devel.flatpak" MANIFEST_PATH: "dev.Cogitri.Health.Devel.json" FLATPAK_MODULE: "health" - FLATPAK_IMAGE: "quay.io/gnome_infrastructure/gnome-runtime-images:gnome-42" + FLATPAK_IMAGE: "quay.io/gnome_infrastructure/gnome-runtime-images:gnome-43" CI_IMAGE: "registry.gitlab.gnome.org/cogitri/health-ci-docker/health-ci:latest" TARBALL: "Health-${CI_COMMIT_TAG}.tar.xz" PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/release-tarballs/${CI_COMMIT_TAG}" diff --git a/Health.code-workspace b/Health.code-workspace index e45e3ad..beb6403 100644 --- a/Health.code-workspace +++ b/Health.code-workspace @@ -20,14 +20,14 @@ ".flatpak/**": true, "_build/**": true }, + "rust-analyzer.runnables.extraArgs": [ + "--target-dir=_build/src" + ], "mesonbuild.configureOnOpen": false, "mesonbuild.buildFolder": "_build", "mesonbuild.mesonPath": "/home/rasmus/Projects/Health/.flatpak/meson.sh", "rust-analyzer.server.path": "/home/rasmus/Projects/Health/.flatpak/rust-analyzer.sh", "rust-analyzer.runnables.command": "/home/rasmus/Projects/Health/.flatpak/cargo.sh", - "rust-analyzer.runnables.extraArgs": [ - "--target-dir=_build/src" - ], "rust-analyzer.files.excludeDirs": [ ".flatpak" ] diff --git a/dev.Cogitri.Health.Devel.json b/dev.Cogitri.Health.Devel.json index bb49429..e25b0c7 100644 --- a/dev.Cogitri.Health.Devel.json +++ b/dev.Cogitri.Health.Devel.json @@ -1,11 +1,11 @@ { "id": "dev.Cogitri.Health.Devel", "runtime": "org.gnome.Platform", - "runtime-version": "42", + "runtime-version": "43", "sdk": "org.gnome.Sdk", "sdk-extensions": [ "org.freedesktop.Sdk.Extension.rust-stable", - "org.freedesktop.Sdk.Extension.llvm12" + "org.freedesktop.Sdk.Extension.llvm14" ], "command": "dev.Cogitri.Health.Devel", "finish-args": [ @@ -35,8 +35,8 @@ "/share/gir-1.0" ], "build-options": { - "append-ld-library-path": "/usr/lib/sdk/llvm12/lib", - "append-path": "/usr/lib/sdk/llvm12/bin:/usr/lib/sdk/rust-stable/bin", + "append-ld-library-path": "/usr/lib/sdk/llvm14/lib", + "append-path": "/usr/lib/sdk/llvm14/bin:/usr/lib/sdk/rust-stable/bin", "env": { "CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER": "clang", "CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS": "-C link-arg=-fuse-ld=/usr/lib/sdk/rust-stable/bin/mold", @@ -61,28 +61,6 @@ } ] }, - { - "name": "tracker", - "buildsystem": "meson", - "builddir": true, - "config-opts": [ - "-Dman=false", - "-Dsystemd_user_services=false", - "-Ddocs=false", - "-Dbash_completion=false", - "-Dtests=false", - "-Dtest_utils=false", - "-Dintrospection=disabled", - "-Dsoup=soup3" - ], - "sources": [ - { - "type": "archive", - "url": "https://download.gnome.org/sources/tracker/3.4/tracker-3.4.0.tar.xz", - "sha512": "0a765d93cbe737a9cf902d1dc1ca00463065c1e7b3f93a7a8132919dfed97acdf80d99cf8f49b61e1a2bfc77a115f74e88731b3b0739651d2f727215c83f077f" - } - ] - }, { "name": "health", "builddir": true, -- 2.40.1 From 9c9caed143345b6c56547ce7057928a34f0dd3de Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Mon, 17 Oct 2022 08:55:48 +0200 Subject: [PATCH 73/83] chore(deps): upgrade --- Cargo.lock | 197 ++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 150 insertions(+), 47 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 588521f..0331121 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -224,6 +224,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + [[package]] name = "core-foundation-sys" version = "0.8.3" @@ -281,6 +291,50 @@ dependencies = [ "memchr", ] +[[package]] +name = "cxx" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f83d0ebf42c6eafb8d7c52f7e5f2d3003b89c7aa4fd2b79229209459a849af8" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07d050484b55975889284352b0ffc2ecbda25c0c55978017c132b29ba0818a86" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d2199b00553eda8012dfec8d3b1c75fce747cf27c169a270b3b99e3448ab78" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb67a6de1f602736dd7eaead0080cf3435df806c61b24b13328db128c58868f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "darling" version = "0.14.1" @@ -397,9 +451,9 @@ checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2" [[package]] name = "easy-ext" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2ddb5d6d3904e83114add6bbadf2b8307b4ae9fb4b2202afde1fe7bf3b56c0" +checksum = "49457524c7e65648794c98283282a0b7c73b10018e7091f1cdcfff314fd7ae59" [[package]] name = "either" @@ -448,9 +502,9 @@ dependencies = [ [[package]] name = "float_eq" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b59b6469c35ab601d6487d28879bccfbe8c896c33a3fe699c4d29817e552cc58" +checksum = "28a80e3145d8ad11ba0995949bbcf48b9df2be62772b3d351ef017dff6ecb853" [[package]] name = "fnv" @@ -885,23 +939,33 @@ checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ "bytes", "fnv", - "itoa 1.0.3", + "itoa 1.0.4", ] [[package]] name = "iana-time-zone" -version = "0.1.48" +version = "0.1.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "237a0714f28b1ee39ccec0770ccb544eb02c9ef2c82bb096230eefcffa6468b0" +checksum = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed" dependencies = [ "android_system_properties", "core-foundation-sys", + "iana-time-zone-haiku", "js-sys", - "once_cell", "wasm-bindgen", "winapi", ] +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +dependencies = [ + "cxx", + "cxx-build", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -938,9 +1002,9 @@ dependencies = [ [[package]] name = "itertools" -version = "0.10.4" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8bf247779e67a9082a4790b45e71ac7cfd1321331a5c856a74a9faebdab78d0" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" dependencies = [ "either", ] @@ -953,9 +1017,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" [[package]] name = "js-sys" @@ -1006,15 +1070,15 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.132" +version = "0.2.135" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" +checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c" [[package]] name = "libsecret" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4af5a2342942fa42d706a424e9f9914287fb8317132750fd73a241140ac38c1" +checksum = "a15ed5dab9789d9c4caedf88457214d822cfbad5562b63f6c8f61597501f6b8b" dependencies = [ "bitflags", "gio", @@ -1026,9 +1090,9 @@ dependencies = [ [[package]] name = "libsecret-sys" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b630bef24b542dc1609a14c56b9267c147dbef1ee7ad08fb1a852a07c17d492d" +checksum = "77abfe0fd35152462d1736d11f5c1ba381f74535171b2138fed1604bcb803d2b" dependencies = [ "gio-sys", "glib-sys", @@ -1038,6 +1102,15 @@ dependencies = [ "system-deps", ] +[[package]] +name = "link-cplusplus" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +dependencies = [ + "cc", +] + [[package]] name = "locale_config" version = "0.3.0" @@ -1183,9 +1256,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.14.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f7254b99e31cad77da24b08ebf628882739a608578bb1bcdfc1f9c21260d7c0" +checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" [[package]] name = "opaque-debug" @@ -1259,9 +1332,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb779fcf4bb850fbbb0edc96ff6cf34fd90c4b1a112ce042653280d9a7364048" +checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a" dependencies = [ "thiserror", "ucd-trie", @@ -1339,9 +1412,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.43" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" +checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" dependencies = [ "unicode-ident", ] @@ -1489,6 +1562,12 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" +[[package]] +name = "scratch" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" + [[package]] name = "sct" version = "0.7.0" @@ -1519,18 +1598,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.144" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860" +checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.144" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00" +checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" dependencies = [ "proc-macro2", "quote", @@ -1539,11 +1618,11 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.85" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" +checksum = "41feea4228a6f1cd09ec7a3593a682276702cd67b5273544757dae23c096f074" dependencies = [ - "itoa 1.0.3", + "itoa 1.0.4", "ryu", "serde", ] @@ -1559,9 +1638,9 @@ dependencies = [ [[package]] name = "serde_test" -version = "1.0.144" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c7f3621491f256177206a7c2152c17f322c0d0b30af05359088172437d29e25" +checksum = "9c17d2112159132660b4c5399e274f676fb75a2f8d70b7468f18f045b71138ed" dependencies = [ "serde", ] @@ -1588,9 +1667,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "spin" @@ -1634,9 +1713,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.100" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52205623b1b0f064a4e71182c3b18ae902267282930c6d5462c91b859668426e" +checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1" dependencies = [ "proc-macro2", "quote", @@ -1676,20 +1755,29 @@ dependencies = [ "winapi", ] +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + [[package]] name = "thiserror" -version = "1.0.35" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c53f98874615aea268107765aa1ed8f6116782501d18e53d08b471733bea6c85" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.35" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8b463991b4eab2d801e724172285ec4195c650e8ec79b149e6c2a8e6dd3f783" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" dependencies = [ "proc-macro2", "quote", @@ -1698,9 +1786,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3f9a28b618c3a6b9251b6908e9c99e04b9e5c02e6581ccbb67d59c34ef7f9b" +checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c" dependencies = [ "libc", "num_threads", @@ -1777,9 +1865,9 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" [[package]] name = "unicode-normalization" @@ -1790,6 +1878,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + [[package]] name = "universal-hash" version = "0.5.0" @@ -1941,9 +2035,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.4" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1c760f0d366a6c24a02ed7816e23e691f5d92291f94d15e836006fd11b04daf" +checksum = "368bfe657969fb01238bb756d351dcade285e0f6fcbd36dcb23359a5169975be" dependencies = [ "webpki", ] @@ -1964,6 +2058,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" -- 2.40.1 From 9bef5d44363252c7bada4fc5c7b2bcb981e48ab4 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Mon, 17 Oct 2022 09:01:48 +0200 Subject: [PATCH 74/83] chore(meson): add check kwarg --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 7442f27..edae929 100644 --- a/meson.build +++ b/meson.build @@ -16,7 +16,7 @@ gnome = import('gnome') version_suffix = '' if get_option('profile') == 'development' profile = '.Devel' - vcs_tag = run_command('git', 'rev-parse', '--short', 'HEAD').stdout().strip() + vcs_tag = run_command('git', 'rev-parse', '--short', 'HEAD', check: false).stdout().strip() if vcs_tag == '' version_suffix = '-devel' else -- 2.40.1 From 8c4bd678ed1e292359eadcd4561de8a6ea566337 Mon Sep 17 00:00:00 2001 From: Yosef Or Boczko Date: Sun, 23 Oct 2022 17:19:11 +0000 Subject: [PATCH 75/83] Update Hebrew translation --- po/he.po | 128 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 65 insertions(+), 63 deletions(-) diff --git a/po/he.po b/po/he.po index 0af8cf0..546a206 100644 --- a/po/he.po +++ b/po/he.po @@ -8,17 +8,17 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-09-13 17:26+0000\n" -"PO-Revision-Date: 2022-09-22 16:12+0300\n" -"Last-Translator: Yaron Shahrabani \n" +"POT-Creation-Date: 2022-09-22 13:13+0000\n" +"PO-Revision-Date: 2022-10-23 20:18+0300\n" +"Last-Translator: Yosef Or Boczko \n" "Language-Team: Hebrew <>\n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n>10 && n%10==0 ? " -"2 : 3);\n" -"X-Generator: Poedit 3.1\n" +"2 : 3)\n" +"X-Generator: Gtranslator 42.0\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" @@ -134,7 +134,7 @@ msgstr "_שמירה" msgid "January" msgstr "ינואר" -#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:223 +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:220 msgid "February" msgstr "פברואר" @@ -190,7 +190,7 @@ msgstr "חודש" msgid "Year" msgstr "שנה" -#: data/ui/distance_action_row.blp:11 src/widgets/activity_row.rs:131 +#: data/ui/distance_action_row.blp:11 src/widgets/activity_row.rs:125 msgid "Distance" msgstr "מרחק" @@ -282,7 +282,7 @@ msgid "General" msgstr "כללי" #: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 -#: data/ui/setup_window.blp:183 src/core/database.rs:1109 +#: data/ui/setup_window.blp:183 src/core/database.rs:1097 msgid "User" msgstr "משתמש" @@ -327,7 +327,7 @@ msgid "Daily reminder time" msgstr "מועד תזכורת יומית" #: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 -#: src/plugins/steps/details.rs:245 +#: src/plugins/steps/details.rs:244 msgid "Step goal" msgstr "יעד צעדים" @@ -423,11 +423,11 @@ msgstr "ארגון הבריאות העולמי ממליץ על BMI בין 18.5 msgid "Current weight" msgstr "משקל נוכחי" -#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:253 msgid "Current BMI" msgstr "BMI נוכחי" -#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:229 msgid "Weight goal" msgstr "יעד משקל" @@ -529,7 +529,9 @@ msgstr "יישום מעקב בריאות עבור שולחן העבודה GNOME. #: src/core/application.rs:191 msgid "translator-credits" -msgstr "ירון שהרבני " +msgstr "" +"ירון שהרבני \n" +"מיזם תרגום GNOME לעברית https://l10n.gnome.org/teams/he/" #: src/core/application.rs:193 msgid "Websites" @@ -615,11 +617,11 @@ msgstr "כדורעף" msgid "Walking" msgstr "הליכה" -#: src/model/model_notification.rs:234 +#: src/model/model_notification.rs:214 msgid "Health: walking reminder" msgstr "בריאות: תזכורת הליכה" -#: src/model/model_notification.rs:250 +#: src/model/model_notification.rs:230 msgid "{} step remaining to complete your daily step goal." msgid_plural "{} steps remaining to complete your daily step goal." msgstr[0] "נותר צעד אחד להשלמת יעד הצעדים היומי שלך." @@ -639,7 +641,7 @@ msgstr[1] "שתי דקות פעילות היום" msgstr[2] "{} דקות פעילות היום" msgstr[3] "היום עשית {} צעדים" -#: src/plugins/calories/details.rs:217 +#: src/plugins/calories/details.rs:216 msgid "" "{}:\n" "{} calorie\n" @@ -673,16 +675,16 @@ msgstr[1] "שתי קלוריות נשרפו היום" msgstr[2] "{} קלוריות נשרפו היום" msgstr[3] "{} קלוריות נשרפו היום" -#: src/plugins/steps/details.rs:187 +#: src/plugins/steps/details.rs:186 msgid "Today’s steps: {}" msgstr "צעדים יומיים: {}" -#: src/plugins/steps/details.rs:206 +#: src/plugins/steps/details.rs:205 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "אין רצף עדיין. נא להגיע ליעד הצעדים שלך במשך מספר ימים כדי להתחיל רצף!" -#: src/plugins/steps/details.rs:210 +#: src/plugins/steps/details.rs:209 msgid "" "You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" @@ -692,11 +694,11 @@ msgstr[1] "צברת רצף של יומיים. הגעה ליעד הצעדים ה msgstr[2] "צברת רצף של {} ימים. הגעה ליעד הצעדים היומי תמשיך אותו!" msgstr[3] "צברת רצף של {} ימים. הגעה ליעד הצעדים היומי תמשיך אותו!" -#: src/plugins/steps/details.rs:218 +#: src/plugins/steps/details.rs:217 msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "הגעת ליעד הצעדים היומי שלך. כדי להתחיל רצף נדרשים עוד כאלה!" -#: src/plugins/steps/details.rs:221 +#: src/plugins/steps/details.rs:220 msgid "You’re on a streak for {} day. Good job!" msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "צברת רצף של יום. כל הכבוד!" @@ -705,7 +707,7 @@ msgstr[2] "צברת רצף של {} ימים. כל הכבוד!" msgstr[3] "צברת רצף של {} ימים. כל הכבוד!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:238 +#: src/plugins/steps/details.rs:237 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "צעד {} ב־{}" @@ -733,12 +735,12 @@ msgstr[3] "הגעת ל־{} אחוז מיעד הצעדים היומי שלך" msgid "Well done! You have reached your daily step goal!" msgstr "כל הכבוד! השלמת את יעד הצעדים היומי שלך!" -#: src/plugins/weight/details.rs:202 +#: src/plugins/weight/details.rs:201 msgid "Current BMI: {}" msgstr "‫BMI נוכחי: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:217 +#: src/plugins/weight/details.rs:216 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "פאונד {} ב־{}" @@ -747,7 +749,7 @@ msgstr[2] "{} פאונד ב־{}" msgstr[3] "{} פאונד ב־{}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:220 +#: src/plugins/weight/details.rs:219 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "קילוגרם {} ב־{}" @@ -755,11 +757,11 @@ msgstr[1] "{} קילוגרמים ב־{}" msgstr[2] "{} קילוגרמים ב־{}" msgstr[3] "{} קילוגרמים ב־{}" -#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 +#: src/plugins/weight/details.rs:256 src/plugins/weight/details.rs:261 msgid "Unknown BMI" msgstr "‫BMI לא ידוע" -#: src/plugins/weight/details.rs:280 +#: src/plugins/weight/details.rs:279 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -778,7 +780,7 @@ msgstr[3] "" "יעד המשקל שלך הוא {} פאונד. יש להוסיף מדד משקל ראשון כדי לראות מה המרחק " "מהיעד." -#: src/plugins/weight/details.rs:287 +#: src/plugins/weight/details.rs:286 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -797,11 +799,11 @@ msgstr[3] "" "יעד המשקל שלך הוא {} קילוגרמים. יש להוסיף מדד משקל ראשון כדי לראות מה המרחק " "מהיעד." -#: src/plugins/weight/details.rs:296 +#: src/plugins/weight/details.rs:295 msgid "You’ve reached your weight goal. Great job!" msgstr "הגעת למשקל היעד שלך. כל הכבוד!" -#: src/plugins/weight/details.rs:312 +#: src/plugins/weight/details.rs:311 msgid "Your weight goal is {} pound." msgid_plural "Your weight goal is {} pounds." msgstr[0] "יעד המשקל שלך הוא פאונד." @@ -809,7 +811,7 @@ msgstr[1] "יעד המשקל שלך הוא שני פאונד." msgstr[2] "יעד המשקל שלך הוא {} פאונד." msgstr[3] "יעד המשקל שלך הוא {} פאונד." -#: src/plugins/weight/details.rs:317 +#: src/plugins/weight/details.rs:316 msgid "You have {} pound left to reach it." msgid_plural "You have {} pounds left to reach it." msgstr[0] "כדי להגיע אליו נותר לך עוד פאונד." @@ -817,7 +819,7 @@ msgstr[1] "כדי להגיע אליו נותרו לך עוד שני פאונד." msgstr[2] "כדי להגיע אליו נותרו לך עוד {} פאונד." msgstr[3] "כדי להגיע אליו נותרו לך עוד {} פאונד." -#: src/plugins/weight/details.rs:324 +#: src/plugins/weight/details.rs:323 msgid "Your weight goal is {} kilogram." msgid_plural "Your weight goal is {} kilograms." msgstr[0] "יעד המשקל שלך הוא קילוגרם." @@ -825,7 +827,7 @@ msgstr[1] "יעד המשקל שלך הוא שני קילוגרמים." msgstr[2] "יעד המשקל שלך הוא {} קילוגרמים." msgstr[3] "יעד המשקל שלך הוא {} קילוגרמים." -#: src/plugins/weight/details.rs:330 +#: src/plugins/weight/details.rs:329 msgid "You have {} kilogram left to reach it" msgid_plural "You have {} kilograms left to reach it" msgstr[0] "כדי להגיע אליו נותר לך עוד קילוגרם" @@ -833,7 +835,7 @@ msgstr[1] "כדי להגיע אליו נותרו לך עוד שני קילוגר msgstr[2] "כדי להגיע אליו נותרו לך עוד {} קילוגרמים" msgstr[3] "כדי להגיע אליו נותרו לך עוד {} קילוגרמים" -#: src/plugins/weight/details.rs:340 +#: src/plugins/weight/details.rs:339 msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "לא הוגדר יעד משקל עדיין. ניתן להגדיר אותו בהעדפות של תוכנית הבריאות." @@ -951,19 +953,19 @@ msgstr "האימות הצליח, נא לחזור לתכנית הבריאות." msgid "Couldn’t parse OAuth2 response" msgstr "לא ניתן לפענח את תגובת ה־OAuth2" -#: src/views/bar_graph_view.rs:583 +#: src/views/bar_graph_view.rs:568 msgid "Enter weight record to calculate idle calories" msgstr "נא למלא רשומת משקל כדי לחשב קלוריות במנוחה" -#: src/views/bar_graph_view.rs:587 +#: src/views/bar_graph_view.rs:572 msgid "Idle calories" msgstr "קלוריות במנוחה" -#: src/views/view_add_activity.rs:236 +#: src/views/view_add_activity.rs:231 msgid "Activity" msgstr "פעילות" -#: src/widgets/activity_row.rs:79 +#: src/widgets/activity_row.rs:73 msgid "{} for {} Minute" msgid_plural "{} for {} Minutes" msgstr[0] "{} למשך דקה" @@ -971,23 +973,23 @@ msgstr[1] "{} למשך שתי דקות" msgstr[2] "{} למשך {} דקות" msgstr[3] "{} למשך {} דקות" -#: src/widgets/activity_row.rs:91 +#: src/widgets/activity_row.rs:85 msgid "Calories burned" msgstr "קלוריות שנשרפו" -#: src/widgets/activity_row.rs:101 +#: src/widgets/activity_row.rs:95 msgid "Average heart rate" msgstr "דופק ממוצע" -#: src/widgets/activity_row.rs:107 +#: src/widgets/activity_row.rs:101 msgid "Maximum heart rate" msgstr "דופק מרבי" -#: src/widgets/activity_row.rs:113 +#: src/widgets/activity_row.rs:107 msgid "Minimum heart rate" msgstr "דופק מזערי" -#: src/widgets/activity_row.rs:126 +#: src/widgets/activity_row.rs:120 msgid "{} meter" msgid_plural "{} meters" msgstr[0] "מטר" @@ -995,7 +997,7 @@ msgstr[1] "שני מטרים" msgstr[2] "{} מטרים" msgstr[3] "{} מטרים" -#: src/widgets/activity_row.rs:129 +#: src/widgets/activity_row.rs:123 msgid "{} yard" msgid_plural "{} yards" msgstr[0] "יארד" @@ -1003,63 +1005,63 @@ msgstr[1] "שני יארד" msgstr[2] "{} יארד" msgstr[3] "{} יארד" -#: src/widgets/bmi_level_bar.rs:274 +#: src/widgets/bmi_level_bar.rs:260 msgid "Current BMI: {}" msgstr "‫BMI נוכחי: {}" -#: src/widgets/distance_action_row.rs:303 +#: src/widgets/distance_action_row.rs:293 msgid "KM" msgstr "ק״מ" -#: src/widgets/distance_action_row.rs:304 +#: src/widgets/distance_action_row.rs:294 msgid "Meters" msgstr "מטרים" -#: src/widgets/distance_action_row.rs:306 +#: src/widgets/distance_action_row.rs:296 msgid "Miles" msgstr "מיילים" -#: src/widgets/distance_action_row.rs:307 +#: src/widgets/distance_action_row.rs:297 msgid "Feet" msgstr "רגל" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 +#: src/widgets/unit_spinbutton.rs:458 src/widgets/unit_spinbutton.rs:624 msgid "cm" msgstr "ס״מ" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:490 +#: src/widgets/unit_spinbutton.rs:460 msgid "m" msgstr "מ׳" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:492 +#: src/widgets/unit_spinbutton.rs:462 msgid "km" msgstr "ק״מ" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:494 +#: src/widgets/unit_spinbutton.rs:464 msgid "kg" msgstr "ק״ג" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 +#: src/widgets/unit_spinbutton.rs:466 src/widgets/unit_spinbutton.rs:626 msgid "in" msgstr "אינ׳" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:498 +#: src/widgets/unit_spinbutton.rs:468 msgid "ft" msgstr "רגל" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:500 +#: src/widgets/unit_spinbutton.rs:470 msgid "mi" msgstr "מייל" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:502 +#: src/widgets/unit_spinbutton.rs:472 msgid "lb" msgstr "פאונד" @@ -1114,31 +1116,31 @@ msgstr "פתיחת מדדי משקל" msgid "Import data" msgstr "ייבוא נתונים" -#: src/windows/import_export_dialog_base.rs:214 +#: src/windows/import_export_dialog_base.rs:210 msgid "Import activities" msgstr "ייבוא פעילויות" -#: src/windows/import_export_dialog_base.rs:216 +#: src/windows/import_export_dialog_base.rs:212 msgid "Import is encrypted" msgstr "הייבוא מוצפן" -#: src/windows/import_export_dialog_base.rs:217 +#: src/windows/import_export_dialog_base.rs:213 msgid "Import weights" msgstr "ייבוא משקלים" -#: src/windows/import_export_dialog_base.rs:218 +#: src/windows/import_export_dialog_base.rs:214 msgid "Import" msgstr "ייבוא" -#: src/windows/import_export_dialog_base.rs:296 +#: src/windows/import_export_dialog_base.rs:292 msgid "Success!" msgstr "הצליח!" -#: src/windows/import_export_dialog_base.rs:300 +#: src/windows/import_export_dialog_base.rs:296 msgid "An error occurred!" msgstr "אירעה שגיאה!" -#: src/windows/import_export_dialog_base.rs:305 +#: src/windows/import_export_dialog_base.rs:301 msgid "Close" msgstr "סגירה" -- 2.40.1 From dc52ee995f5a391cb1782aefdae74c2810d44fff Mon Sep 17 00:00:00 2001 From: Nathan Follens Date: Wed, 2 Nov 2022 18:09:03 +0000 Subject: [PATCH 76/83] Update Dutch translation --- po/nl.po | 513 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 257 insertions(+), 256 deletions(-) diff --git a/po/nl.po b/po/nl.po index 3bb642d..3e34d46 100644 --- a/po/nl.po +++ b/po/nl.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: dev.Cogitri.Health\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-03-15 08:58+0000\n" -"PO-Revision-Date: 2022-03-25 17:55+0100\n" +"POT-Creation-Date: 2022-09-13 17:26+0000\n" +"PO-Revision-Date: 2022-11-02 19:08+0100\n" "Last-Translator: Nathan Follens \n" "Language-Team: Dutch \n" "Language: nl\n" @@ -17,155 +17,79 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 3.0.1\n" +"X-Generator: Poedit 3.1.1\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" msgstr "Instelhulp afgerond" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "Of de gebruiker de instelhulp heeft doorlopen" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "Meldingen aan/uit" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "Of meldingen getoond moeten worden." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "Ingeschakelde plug-ins instellen" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "" -"Stelt alle gegevensbronplug-ins in die in Gezondheid ingeschakeld zijn." - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "Meldingstijdstip" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "" -"Het tijdstip waarop een dagelijkse herinnering omtrent het aantal stappen " -"wordt getoond" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "meldingsfrequentie" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "Hoe vaak meldingen omtrent het aantal stappen getoond moeten worden." - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "Lijst met recente activiteiten" -#: data/dev.Cogitri.Health.gschema.xml:42 -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector's list" -msgstr "" -"De activiteiten die de gebruiker onlangs heeft uitgevoerd en bovenaan de " -"activiteitenlijst moeten worden getoond" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "Google Fit-synchronisatie" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "Of Google Fit is ingesteld als synchronisatiedienst" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "Recentste Google Fit-synchronisatie" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "" -"Het tijdstip waarop er voor het laatst met Google Fit gesynchroniseerd is" - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "De gebruikte eenheden" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "" -"De eenheden die de gebruiker gekozen heeft, bijv. cm of inch in het geval " -"van de lengte" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "Leeftijd" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "De leeftijd van de gebruiker (verouderd)." - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "Geboortedatum" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "" -"De leeftijd van de gebruiker als geboortedatumnotatie (bijv. 01-01-1970)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "Lengte" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "De lengte van de gebruiker." - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "Dagelijks aantal stappen" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "Het aantal stappen dat de gebruiker dagelijks wil zetten." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "Streefgewicht" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "Het gewicht dat de gebruiker wil bereiken." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "Vensterhoogte" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "De hoogte van het venster." - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "Venster gemaximaliseerd" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "Of het venster gemaximaliseerd moet zijn." - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "Vensterbreedte" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "De breedte van het venster." +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "Actieve gebruikers-ID" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -174,29 +98,23 @@ msgstr "De breedte van het venster." msgid "Health" msgstr "Gezondheid" -#: data/dev.Cogitri.Health.Autostart.desktop.in.in:5 -#: data/dev.Cogitri.Health.desktop.in.in:5 -msgid "@APPLICATION_ID@" -msgstr "@APPLICATION_ID@" - -#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 src/core/application.rs:167 -msgid "A health tracking app for the GNOME desktop." -msgstr "Een gezondheidstoepassing voor de Gnome-werkomgeving." +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 +msgid "Track your fitness goals" +msgstr "Houd uw fitnessdoelen bij" #: data/dev.Cogitri.Health.metainfo.xml.in.in:11 msgid "" -"A health tracking app for the GNOME desktop. Health can visualize how many " -"steps you've made daily, your weight development over time and your daily " -"activities. Data can be synched from Google Fit or manually entered into " -"Health. Afterwards, it can be viewed and edited in Health." +"Health can visualize how many steps you’ve made daily, your weight " +"development over time and your daily activities. Data can be synched from " +"Google Fit or manually entered into Health. Afterwards, it can be viewed and " +"edited in Health." msgstr "" -"Een gezondheidstoepassing voor de Gnome-werkomgeving. Met deze toepassing " -"kunt u bijhouden hoeveel stappen u dagelijks zet en welke activiteiten u " +"Gezondheid kan tonen hoeveel stappen u dagelijks zet en welke activiteiten u " "doet, alsmede uw gewicht monitoren. Gegevens kunnen gesynchroniseerd worden " "van Google Fit of handmatig ingevoerd worden in Gezondheid. Daarna kunt u ze " "in Gezondheid bekijken en bewerken." -#: data/dev.Cogitri.Health.metainfo.xml.in.in:37 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:36 msgid "Rasmus “Cogitri” Thomsen" msgstr "Rasmus “Cogitri” Thomsen" @@ -211,63 +129,63 @@ msgstr "_Annuleren" msgid "_Save" msgstr "Op_slaan" -#: data/ui/date_selector.blp:17 +#: data/ui/date_selector.blp:18 msgid "January" msgstr "januari" -#: data/ui/date_selector.blp:18 src/widgets/date_selector.rs:223 +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:223 msgid "February" msgstr "februari" -#: data/ui/date_selector.blp:19 +#: data/ui/date_selector.blp:20 msgid "March" msgstr "maart" -#: data/ui/date_selector.blp:20 +#: data/ui/date_selector.blp:21 msgid "April" msgstr "april" -#: data/ui/date_selector.blp:21 +#: data/ui/date_selector.blp:22 msgid "May" msgstr "mei" -#: data/ui/date_selector.blp:22 +#: data/ui/date_selector.blp:23 msgid "June" msgstr "juni" -#: data/ui/date_selector.blp:23 +#: data/ui/date_selector.blp:24 msgid "July" msgstr "juli" -#: data/ui/date_selector.blp:24 +#: data/ui/date_selector.blp:25 msgid "August" msgstr "augustus" -#: data/ui/date_selector.blp:25 +#: data/ui/date_selector.blp:26 msgid "September" msgstr "september" -#: data/ui/date_selector.blp:26 +#: data/ui/date_selector.blp:27 msgid "October" msgstr "oktober" -#: data/ui/date_selector.blp:27 +#: data/ui/date_selector.blp:28 msgid "November" msgstr "november" -#: data/ui/date_selector.blp:28 +#: data/ui/date_selector.blp:29 msgid "December" msgstr "december" -#: data/ui/date_selector.blp:34 +#: data/ui/date_selector.blp:35 msgid "Day" msgstr "Dag" -#: data/ui/date_selector.blp:60 +#: data/ui/date_selector.blp:61 msgid "Month" msgstr "Maand" -#: data/ui/date_selector.blp:83 +#: data/ui/date_selector.blp:84 msgid "Year" msgstr "Jaar" @@ -325,7 +243,7 @@ msgstr "" "in in om uw echte, live gegevens te bekijken." #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "Aantal stappen" @@ -362,90 +280,98 @@ msgstr "Gezondheid-voorkeuren" msgid "General" msgstr "Algemeen" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "Gebruiker" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "Eenheden" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "Imperiaal" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "Metrisch" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "Gebruikersnaam" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "Geboortedatum" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "Lengte" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "Meldingen" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "Meldingen tonen" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "Frequentie" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "Dagelijks herinneren om" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "Aantal stappen" -#: data/ui/preferences_window.blp:170 -msgid "The WHO recommends 10,000 steps per day." -msgstr "" -"De Wereldgezondheidsorganisatie adviseert dagelijks 10.000 stappen te zetten." +#: data/ui/preferences_window.blp:179 +msgid "7,500 steps per day are recommended." +msgstr "Het wordt aanbevolen dagelijks 7.500 stappen te zetten." -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "Streefgewicht" -#: data/ui/preferences_window.blp:188 data/ui/setup_window.blp:286 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "De WHO adviseert een BMI tussen de 18,5 en 24,9." -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "Doel-BMI" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "Synchronisatie" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "Synchroniseer met externe diensten." # 'im- en exporteren' ziet er te vreemd uit - Nathan -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "Gegevens importeren en exporteren" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "Exporteren naar csv-bestand" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "Exporteren…" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "Importeren uit csv-bestand" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "Importeren…" @@ -477,31 +403,39 @@ msgstr "Welkom bij Gezondheid!" msgid "Please enter some information to get setup." msgstr "Voer enkele gegevens in om aan de slag te gaan." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "Voer het aantal stappen in dat u dagelijks wilt zetten." -#: data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." -msgstr "De WHO adviseert dagelijks 10.000 stappen te zetten." +#: data/ui/setup_window.blp:236 +msgid "The WHO recommends 7.500 steps per day." +msgstr "De WHO adviseert dagelijks 7.500 stappen te zetten." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "Voer uw streefgewicht in." -#: data/ui/setup_window.blp:314 +#: data/ui/setup_window.blp:298 +msgid "The WHO recommends a BMI of 18.5–24.9." +msgstr "De WHO adviseert een BMI tussen de 18,5 en 24,9." + +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "Huidig gewicht" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "Huidige BMI" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "Streefgewicht" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "Stel synchronisatie met externe diensten in." -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "U kunt uw stappen en gewicht synchroniseren met externe diensten." @@ -589,7 +523,11 @@ msgstr "_Over Gezondheid" msgid "Enable plugin" msgstr "Plug-in inschakelen" -#: src/core/application.rs:169 +#: src/core/application.rs:189 +msgid "A health tracking app for the GNOME desktop." +msgstr "Een gezondheidstoepassing voor de Gnome-werkomgeving." + +#: src/core/application.rs:191 msgid "translator-credits" msgstr "" "Heimen Stoffels \n" @@ -597,7 +535,7 @@ msgstr "" "\n" "Meer info over Gnome-NL https://nl.gnome.org" -#: src/core/application.rs:171 +#: src/core/application.rs:193 msgid "Websites" msgstr "Websites" @@ -727,85 +665,85 @@ msgid_plural "{} calories burned today" msgstr[0] "U hebt vandaag {} calorie verbrand" msgstr[1] "U hebt vandaag {} calorieën verbrand" -#: src/plugins/steps/details.rs:186 -msgid "Today's steps: {}" +#: src/plugins/steps/details.rs:187 +msgid "Today’s steps: {}" msgstr "Aantal stappen vandaag: {}" -#: src/plugins/steps/details.rs:201 +#: src/plugins/steps/details.rs:206 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" "U hebt nog geen reeks genoteerd. Behaal meermaals uw doel om een reeks te " "noteren!" -#: src/plugins/steps/details.rs:205 +#: src/plugins/steps/details.rs:210 msgid "" -"You're on a streak for {} day. Reach your step goal today to continue it!" +"You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" -"You're on a streak for {} days. Reach your step goal today to continue it!" +"You’re on a streak for {} days. Reach your step goal today to continue it!" msgstr[0] "" -"Uw reeks staat al {} dag genoteerd. Behaal óók vandaag uw doel om de notatie " +"Uw reeks staat al {} dag genoteerd. Behaal ook vandaag uw doel om de notatie " "te behouden!" msgstr[1] "" -"Uw reeks staat al {} dagen genoteerd. Behaal óók vandaag uw doel om de " +"Uw reeks staat al {} dagen genoteerd. Behaal ook vandaag uw doel om de " "notatie te behouden!" -#: src/plugins/steps/details.rs:213 -msgid "You've reached your step goal today. Keep going to start a streak!" +#: src/plugins/steps/details.rs:218 +msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "U hebt vandaag uw doel bereikt. Ga zo door om een reeks te noteren!" -#: src/plugins/steps/details.rs:216 -msgid "You're on a streak for {} day. Good job!" -msgid_plural "You're on a streak for {} days. Good job!" +#: src/plugins/steps/details.rs:221 +msgid "You’re on a streak for {} day. Good job!" +msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Uw reeks staat al {} dag genoteerd. Ga zo door!" msgstr[1] "Uw reeks staat al {} dagen genoteerd. Ga zo door!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} stap op {}" msgstr[1] "{} stappen op {}" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "U hebt vandaag {} stap gezet" msgstr[1] "U hebt vandaag {} stappen gezet" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "U hebt {} procent van uw dagelijks aantal stappen bereikt" msgstr[1] "U hebt {} procent van uw dagelijks aantal stappen bereikt" -#: src/plugins/steps/summary.rs:112 +#: src/plugins/steps/summary.rs:114 msgid "Well done! You have reached your daily step goal!" msgstr "Goed gedaan! U hebt uw dagelijks aantal stappen bereikt!" -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "Huidige BMI: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} pond op {}" msgstr[1] "{} pond op {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} kilogram op {}" msgstr[1] "{} kilogram op {}" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "Onbekende BMI" -#: src/plugins/weight/details.rs:270 +#: src/plugins/weight/details.rs:280 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -819,7 +757,7 @@ msgstr[1] "" "Uw streefgewicht is {} pond. Voeg een gewicht toe om te zien hoe ver u al " "bent gekomen!" -#: src/plugins/weight/details.rs:277 +#: src/plugins/weight/details.rs:287 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -833,40 +771,36 @@ msgstr[1] "" "Uw streefgewicht is {} kilogram. Voeg een gewicht toe om te zien hoe ver u " "al bent gekomen!" -#: src/plugins/weight/details.rs:286 -msgid "You've reached your weight goal. Great job!" +#: src/plugins/weight/details.rs:296 +msgid "You’ve reached your weight goal. Great job!" msgstr "U hebt uw streefgewicht bereikt. Goed gedaan!" -#. TRANSLATORS: First part of message, ends with [...] you have {} pound left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:302 -msgid "Your weight goal is {} pound," -msgid_plural "Your weight goal is {} pounds," -msgstr[0] "Uw streefgewicht is {} pond," -msgstr[1] "Uw streefgewicht is {} pond," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:307 -msgid "you have {} pound left to reach it" -msgid_plural "you have {} pounds left to reach it" -msgstr[0] "nog {} pond te gaan om het te bereiken" -msgstr[1] "nog {} pond te gaan om het te bereiken" - -#. TRANSLATORS: First part of message, ends with [...] you have {} kilogram left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:314 -msgid "Your weight goal is {} kilogram," -msgid_plural "Your weight goal is {} kilograms," -msgstr[0] "Uw streefgewicht is {} kilogram," -msgstr[1] "Uw streefgewicht is {} kilogram," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:320 -msgid "you have {} kilogram left to reach it" -msgid_plural "you have {} kilograms left to reach it" -msgstr[0] "nog {} kilogram te gaan om het te bereiken" -msgstr[1] "nog {} kilogram te gaan om het te bereiken" +#: src/plugins/weight/details.rs:312 +msgid "Your weight goal is {} pound." +msgid_plural "Your weight goal is {} pounds." +msgstr[0] "Uw streefgewicht is {} pond." +msgstr[1] "Uw streefgewicht is {} pond." + +#: src/plugins/weight/details.rs:317 +msgid "You have {} pound left to reach it." +msgid_plural "You have {} pounds left to reach it." +msgstr[0] "Nog {} pond te gaan om het te bereiken." +msgstr[1] "Nog {} pond te gaan om het te bereiken." + +#: src/plugins/weight/details.rs:324 +msgid "Your weight goal is {} kilogram." +msgid_plural "Your weight goal is {} kilograms." +msgstr[0] "Uw streefgewicht is {} kilogram." +msgstr[1] "Uw streefgewicht is {} kilogram." #: src/plugins/weight/details.rs:330 -msgid "No weight goal set yet. You can set it in Health's preferences." +msgid "You have {} kilogram left to reach it" +msgid_plural "You have {} kilograms left to reach it" +msgstr[0] "Nog {} kilogram te gaan om het te bereiken" +msgstr[1] "Nog {} kilogram te gaan om het te bereiken" + +#: src/plugins/weight/details.rs:340 +msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" "U hebt nog geen streefgewicht ingesteld. Open de voorkeuren om dit in te " "stellen." @@ -916,41 +850,41 @@ msgid "No weight data available" msgstr "Geen gegevens over gewicht beschikbaar" #: src/sync/csv.rs:81 src/sync/csv.rs:370 -msgid "No activities added yet; can't create empty export!" +msgid "No activities added yet; can’t create empty export!" msgstr "Voeg activiteiten toe om ze te kunnen exporteren!" #: src/sync/csv.rs:111 src/sync/csv.rs:388 -msgid "No weight measurements added yet; can't create empty export!" +msgid "No weight measurements added yet; can’t create empty export!" msgstr "Voeg gewichten toe om ze te kunnen exporteren!" #: src/sync/csv.rs:184 src/sync/csv.rs:332 -msgid "Can't parse encrypted backup without encryption key!" +msgid "Can’t parse encrypted backup without encryption key!" msgstr "" -"Onversleutelde back-ups kunnen niet worden verwerkt zonder toegangssleutel!" +"Onversleutelde back-ups kunnen niet verwerkt worden zonder toegangssleutel!" #: src/sync/csv.rs:195 src/sync/csv.rs:352 msgid "" -"Couldn't parse CSV. Are you trying to read an unencrypted backup as an " +"Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " "encrypted one?" msgstr "" -"Het csv-bestand kan niet worden verwerkt. Probeert u een onversleutelde back-" +"Het CSV-bestand kan niet verwerkt worden. Probeert u een onversleutelde back-" "up uit te lezen als een versleutelde?" #: src/sync/csv.rs:208 -msgid "Couldn't decrypt data. Are you sure you're using the right key?" +msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" msgstr "" -"De gegevens kunnen niet worden ontsleuteld. Weet u zeker dat de sleutel " +"De gegevens kunnen niet ontsleuteld worden. Weet u zeker dat de sleutel " "klopt?" #: src/sync/database_receiver.rs:46 -msgid "Couldn't synchronize steps due to error {}" +msgid "Couldn’t synchronize steps due to error {}" msgstr "" -"De stappen kunnen niet worden gesynchroniseerd wegens een foutmelding: {}" +"De stappen kunnen niet gesynchroniseerd worden wegens een foutmelding: {}" #: src/sync/database_receiver.rs:60 -msgid "Couldn't synchronize weight measurements due to error {}" +msgid "Couldn’t synchronize weight measurements due to error {}" msgstr "" -"De gewichten kunnen niet worden gesynchroniseerd wegens een foutmelding: {}" +"De gewichten kunnen niet gesynchroniseerd worden wegens een foutmelding: {}" #: src/sync/google_fit.rs:211 msgid "CRSF Verification failed, got {}, expected {}" @@ -964,7 +898,7 @@ msgstr "" #: src/sync/sync_provider.rs:109 msgid "" -"Can't retrieve OAuth2 token when no refresh token is set! Please re-" +"Can’t retrieve OAuth2 token when no refresh token is set! Please re-" "authenticate with your sync provider." msgstr "" "De OAuth2-toegangssleutel kan niet worden opgehaald omdat er geen " @@ -980,8 +914,8 @@ msgid "Successfully authenticated, please return to Health." msgstr "De dienst is goedgekeurd - keer terug naar Gezondheid." #: src/sync/sync_provider.rs:228 -msgid "Couldn't parse OAuth2 response" -msgstr "Het OAuth2-antwoord kan niet worden verwerkt" +msgid "Couldn’t parse OAuth2 response" +msgstr "Het OAuth2-antwoord kan niet verwerkt worden" #: src/views/bar_graph_view.rs:583 msgid "Enter weight record to calculate idle calories" @@ -996,8 +930,6 @@ msgid "Activity" msgstr "Activiteit" #: src/widgets/activity_row.rs:79 -#| msgid "{} Minute" -#| msgid_plural "{} Minutes" msgid "{} for {} Minute" msgid_plural "{} for {} Minutes" msgstr[0] "{} voor {} minuut" @@ -1031,10 +963,6 @@ msgid_plural "{} yards" msgstr[0] "{} yard" msgstr[1] "{} yards" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -msgid "Current BMI" -msgstr "Huidige BMI" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "Huidige BMI: {}" @@ -1056,42 +984,42 @@ msgid "Feet" msgstr "Voet" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "in" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "ft" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "mi" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "lb" @@ -1109,6 +1037,11 @@ msgstr "Activiteiten.csv.encrypted" msgid "Activities.csv" msgstr "Activiteiten.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Geen bestand geselecteerd." + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "Gewichten opslaan" @@ -1169,21 +1102,89 @@ msgstr "Er is een fout opgetreden." msgid "Close" msgstr "Sluiten" -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "Doel-BMI" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "" -"De databank kan niet worden gemigreerd omdat er een fout is opgetreden: {}" - #: src/windows/window.rs:267 -msgid "Couldn't sync Google Fit data due to error: {}" +msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "" "De synchronisatie met Google Fit is mislukt omdat er een fout is opgetreden: " "{}" +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "Of de gebruiker de instelhulp heeft doorlopen" + +#~ msgid "Whether to enable notifications." +#~ msgstr "Of meldingen getoond moeten worden." + +#~ msgid "Sets all data source plugins that are enabled in Health." +#~ msgstr "" +#~ "Stelt alle gegevensbronplug-ins in die in Gezondheid ingeschakeld zijn." + +#~ msgid "The time at which Health should remind the user of their step goal" +#~ msgstr "" +#~ "Het tijdstip waarop een dagelijkse herinnering omtrent het aantal stappen " +#~ "wordt getoond" + +#~ msgid "" +#~ "How frequent should the user be notified to complete their daily step-" +#~ "goal." +#~ msgstr "" +#~ "Hoe vaak meldingen omtrent het aantal stappen getoond moeten worden." + +#~ msgid "" +#~ "Activity types the user used recently, to be shown first in the activity " +#~ "types selector's list" +#~ msgstr "" +#~ "De activiteiten die de gebruiker onlangs heeft uitgevoerd en bovenaan de " +#~ "activiteitenlijst moeten worden getoond" + +#~ msgid "Whether Google Fit has been setup as sync provider" +#~ msgstr "Of Google Fit is ingesteld als synchronisatiedienst" + +#~ msgid "The last time we synched steps, weight etc. with Google Fit" +#~ msgstr "" +#~ "Het tijdstip waarop er voor het laatst met Google Fit gesynchroniseerd is" + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "" +#~ "De eenheden die de gebruiker gekozen heeft, bijv. cm of inch in het geval " +#~ "van de lengte" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "De leeftijd van de gebruiker (verouderd)." + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "" +#~ "De leeftijd van de gebruiker als geboortedatumnotatie (bijv. 01-01-1970)" + +#~ msgid "The height of the user." +#~ msgstr "De lengte van de gebruiker." + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "Het aantal stappen dat de gebruiker dagelijks wil zetten." + +#~ msgid "The weight the user wants to reach." +#~ msgstr "Het gewicht dat de gebruiker wil bereiken." + +#~ msgid "The height of the window." +#~ msgstr "De hoogte van het venster." + +#~ msgid "Whether the window is maximized." +#~ msgstr "Of het venster gemaximaliseerd moet zijn." + +#~ msgid "The width of the window." +#~ msgstr "De breedte van het venster." + +#~ msgid "@APPLICATION_ID@" +#~ msgstr "@APPLICATION_ID@" + +#~ msgid "The WHO recommends 10,000 steps per day." +#~ msgstr "" +#~ "De Wereldgezondheidsorganisatie adviseert dagelijks 10.000 stappen te " +#~ "zetten." + +#~ msgid "Failed to migrate database to new version due to error {}" +#~ msgstr "" +#~ "De databank kan niet worden gemigreerd omdat er een fout is opgetreden: {}" + #~ msgid "Last opened view" #~ msgstr "Vorige weergave" -- 2.40.1 From e6c05e731cd59d28110a79448ba87ede9ffc674c Mon Sep 17 00:00:00 2001 From: Ask Hjorth Larsen Date: Wed, 4 Jan 2023 17:01:38 +0000 Subject: [PATCH 77/83] Update Danish translation --- po/da.po | 323 +++++++++++++++++++++++++++---------------------------- 1 file changed, 160 insertions(+), 163 deletions(-) diff --git a/po/da.po b/po/da.po index ee27d7d..2e868b2 100644 --- a/po/da.po +++ b/po/da.po @@ -1,14 +1,14 @@ # Danish translation for health. -# Copyright (C) 2022 health's COPYRIGHT HOLDER +# Copyright (C) 2022-2023 health's COPYRIGHT HOLDER # This file is distributed under the same license as the health package. -# Ask Hjorth Larsen , 2022. +# Ask Hjorth Larsen , 2022-2023. # msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-07-24 21:36+0000\n" -"PO-Revision-Date: 2022-07-29 14:51+0200\n" +"POT-Creation-Date: 2022-09-13 17:26+0000\n" +"PO-Revision-Date: 2023-01-01 18:42+0100\n" "Last-Translator: Ask Hjorth Larsen \n" "Language-Team: Danish \n" "Language: da\n" @@ -21,146 +21,73 @@ msgstr "" msgid "First time setup done" msgstr "Førstegangsopsætning er fuldført" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "Om brugeren har færdiggjort opsætningsguiden" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "Slå påmindelser til/fra" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "Om påmindelser skal slås til." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "Angiv aktiverede udvidelsesmoduler" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "" -"Angiver alle udgivelsesmodulerne med datakilder, som er slået til i Health." - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "Påmindelsestidspunkt" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "Hvornår Health skal minde brugeren om målet for antallet af skridt" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "påmindelsesfrekvens" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "" -"Hvor ofte brugeren skal mindes om at fuldføre det daglige mål for antal " -"skridt." - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "Liste over seneste typer aktivitet" -#: data/dev.Cogitri.Health.gschema.xml:42 -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector’s list" -msgstr "" -"Aktiviteterne som brugeren senest har brugt, og som vises først i listen " -"over aktivitetsvalg" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "Opsætning af synkroniseringsudbyderen Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "Om Google Fit er blevet konfigureret som synkroniseringsudbyder" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "Sidste synkronisering med Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "Sidste gang vi synkroniserede antal skridt, vægt osv. med Google Fit" - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "Måleenheder" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "" -"Hvilket måleenhedssystem brugeren valgte, f.eks. cm versus inch for højde" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "Brugerens alder" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "Brugerens alder (forældet)." - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "Brugerens absolutte alder" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "Brugerens alder som absolut angivelse (f.eks. 01/01/1970)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "Brugerens højde" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "Brugerens højde." - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "Brugerens mål for antal skridt" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "Antal daglige skridt brugeren vil nå." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "Brugerens ønskede vægt" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "Den vægt brugeren ønsker at nå." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "Vindueshøjde" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "Vinduets højde." - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "Vindue maksimeret" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "Om vinduet er maksimeret." - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "Vinduesbredde" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "Vinduets bredde." +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "ID for aktiv bruger" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -179,7 +106,10 @@ msgid "" "development over time and your daily activities. Data can be synched from " "Google Fit or manually entered into Health. Afterwards, it can be viewed and " "edited in Health." -msgstr "Health kan vise, hvor mange skridt du går hver dag, din vægtændring over tid samt dine daglige aktiviteter. Data kan synroniseres med Google Fit eller indtastes manuelt i Health. Bagefter kan data vises og redigeres i Health." +msgstr "" +"Health kan vise, hvor mange skridt du går hver dag, din vægtændring over tid " +"samt dine daglige aktiviteter. Data kan synroniseres med Google Fit eller " +"indtastes manuelt i Health. Bagefter kan data vises og redigeres i Health." #: data/dev.Cogitri.Health.metainfo.xml.in.in:36 msgid "Rasmus “Cogitri” Thomsen" @@ -310,7 +240,7 @@ msgstr "" "Aktivér udvidelsesmodulet for at se de faktiske data." #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "Skridt" @@ -348,89 +278,98 @@ msgstr "Indstillinger for Health" msgid "General" msgstr "Generelle" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "Bruger" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "Enheder" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "Britiske" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "SI" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "Brugernavn" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "Fødselsdag" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "Højde" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "Påmindelser" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "Slå påmindelser til" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "Frekvens" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "Tidspunkt for daglig påmindelse" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "Mål for antal skridt" -#: data/ui/preferences_window.blp:170 +#: data/ui/preferences_window.blp:179 msgid "7,500 steps per day are recommended." msgstr "Det anbefales at gå 7500 skridt om dagen." # Undgår ordet "mål" her, da det bliver forvirrende når man også kan "måle" vægt -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "Ønsket vægt" -#: data/ui/preferences_window.blp:188 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "WHO anbefaler en BMI mellem 18,5 og 24,9." -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "Ønsket BMI" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "Synkronisering" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "Start synkronisering med tredjepartsudbydere." -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "Dataimport og -eksport" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "Eksportér data som CSV" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "Eksportér …" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "Importér data fra CSV" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "Importér …" @@ -462,36 +401,40 @@ msgstr "Velkommen til Health!" msgid "Please enter some information to get setup." msgstr "Indtast venligst nogle oplysninger for at komme i gang." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "Indtast venligst dit mål for antal skridt per dag." -#: data/ui/setup_window.blp:224 +#: data/ui/setup_window.blp:236 msgid "The WHO recommends 7.500 steps per day." msgstr "WHO anbefaler 7500 skridt hver dag." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "Indtast venligst den vægt, du vil opnå." -#: data/ui/setup_window.blp:286 +#: data/ui/setup_window.blp:298 msgid "The WHO recommends a BMI of 18.5–24.9." msgstr "WHO anbefaler en BMI mellem 18,5 og 24,9." -#: data/ui/setup_window.blp:314 +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "Nuværende vægt" +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "Nuværende BMI" + # Undgår ordet "mål" her, da det bliver forvirrende når man også kan "måle" vægt -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "Ønsket vægt" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "Konfigurér synkronisering med tredjepartsudbydere." -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "" @@ -580,12 +523,12 @@ msgstr "_Om Health" msgid "Enable plugin" msgstr "Aktivér udvidelsesmodul" -#: src/core/application.rs:176 +#: src/core/application.rs:189 msgid "A health tracking app for the GNOME desktop." msgstr "" "Et program der holder styr på motion og helbred til GNOME-skrivebordet." -#: src/core/application.rs:178 +#: src/core/application.rs:191 msgid "translator-credits" msgstr "" "Ask Hjorth Larsen , 2022\n" @@ -594,7 +537,7 @@ msgstr "" "Websted http://dansk-gruppen.dk\n" "E-mail " -#: src/core/application.rs:180 +#: src/core/application.rs:193 msgid "Websites" msgstr "Websteder" @@ -724,18 +667,18 @@ msgid_plural "{} calories burned today" msgstr[0] "{} kalorie forbrændt i dag" msgstr[1] "{} kalorier forbrændt i dag" -#: src/plugins/steps/details.rs:186 +#: src/plugins/steps/details.rs:187 msgid "Today’s steps: {}" msgstr "Antal skridt i dag: {}" # Ideer til "streak"? -#: src/plugins/steps/details.rs:201 +#: src/plugins/steps/details.rs:206 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "Prøv at nå dit mål for antal skridt flere dage i træk!" # Ideer til "streak"? -#: src/plugins/steps/details.rs:205 +#: src/plugins/steps/details.rs:210 msgid "" "You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" @@ -744,64 +687,64 @@ msgstr[0] "Du har nået målet {} dag. Prøv at nå dit mål i dag også!" msgstr[1] "Du har nået målet {} dage i træk. Prøv at nå dit mål i dag også!" # Ideer til "streak"? -#: src/plugins/steps/details.rs:213 +#: src/plugins/steps/details.rs:218 msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "" "Du har nået dagens mål for antal skridt. Fortsæt med at nå målet så mange " "dage i træk som muligt!" -#: src/plugins/steps/details.rs:216 +#: src/plugins/steps/details.rs:221 msgid "You’re on a streak for {} day. Good job!" msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Du har nået målet {} dag. Godt arbejde!" msgstr[1] "Du har nået målet {} dage i træk. Godt arbejde!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} skridt {}" msgstr[1] "{} skridt {}" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "{} skridt i dag" msgstr[1] "{} skridt i dag" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" msgstr[0] "{} procent af dagens mål er nået" msgstr[1] "{} procent af dagens mål er nået" -#: src/plugins/steps/summary.rs:112 +#: src/plugins/steps/summary.rs:114 msgid "Well done! You have reached your daily step goal!" msgstr "Godt klaret! Dagens mål for antal skridt er nået." -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "Nuværende BMI: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} pund {}" msgstr[1] "{} pund {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} kilogram {}" msgstr[1] "{} kilogram {}" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "Ukendt BMI" -#: src/plugins/weight/details.rs:268 +#: src/plugins/weight/details.rs:280 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -815,7 +758,7 @@ msgstr[1] "" "Din ønskede vægt er {} pund. Tilføj den første vægtmåling for at se, hvor " "tæt på målet du er." -#: src/plugins/weight/details.rs:275 +#: src/plugins/weight/details.rs:287 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -829,35 +772,35 @@ msgstr[1] "" "Din ønskede vægt er {} kilogram. Tilføj den første vægtmåling for at se, " "hvor tæt på målet du er." -#: src/plugins/weight/details.rs:284 +#: src/plugins/weight/details.rs:296 msgid "You’ve reached your weight goal. Great job!" msgstr "Du har nået din ønskede vægt. Godt klaret!" -#: src/plugins/weight/details.rs:300 +#: src/plugins/weight/details.rs:312 msgid "Your weight goal is {} pound." msgid_plural "Your weight goal is {} pounds." msgstr[0] "Din ønskede vægt er {} pund." msgstr[1] "Din ønskede vægt er {} pund." -#: src/plugins/weight/details.rs:305 +#: src/plugins/weight/details.rs:317 msgid "You have {} pound left to reach it." msgid_plural "You have {} pounds left to reach it." msgstr[0] "Du er {} pund fra at nå målet." msgstr[1] "Du er {} pund fra at nå målet." -#: src/plugins/weight/details.rs:312 +#: src/plugins/weight/details.rs:324 msgid "Your weight goal is {} kilogram." msgid_plural "Your weight goal is {} kilograms." msgstr[0] "Din ønskede vægt er {} kilogram." msgstr[1] "Din ønskede vægt er {} kilogram." -#: src/plugins/weight/details.rs:318 +#: src/plugins/weight/details.rs:330 msgid "You have {} kilogram left to reach it" msgid_plural "You have {} kilograms left to reach it" msgstr[0] "Du er {} kilogram fra at nå målet" msgstr[1] "Du er {} kilogram fra at nå målet" -#: src/plugins/weight/details.rs:328 +#: src/plugins/weight/details.rs:340 msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" "Ingen ønsket vægt er angivet. Du kan angive den i indstillingerne for Health." @@ -1015,10 +958,6 @@ msgid_plural "{} yards" msgstr[0] "{} yard" msgstr[1] "{} yards" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -msgid "Current BMI" -msgstr "Nuværende BMI" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "Nuværende BMI: {}" @@ -1158,17 +1097,75 @@ msgstr "Der opstod en fejl!" msgid "Close" msgstr "Luk" -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "Ønsket BMI" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "Kunne ikke migrere databasen til ny version på grund af fejlen {}" - #: src/windows/window.rs:267 msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "Kunne ikke synkronisere data fra Google Fit på grund af fejl: {}" +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "Om brugeren har færdiggjort opsætningsguiden" + +#~ msgid "Whether to enable notifications." +#~ msgstr "Om påmindelser skal slås til." + +#~ msgid "Sets all data source plugins that are enabled in Health." +#~ msgstr "" +#~ "Angiver alle udgivelsesmodulerne med datakilder, som er slået til i " +#~ "Health." + +#~ msgid "The time at which Health should remind the user of their step goal" +#~ msgstr "Hvornår Health skal minde brugeren om målet for antallet af skridt" + +#~ msgid "" +#~ "How frequent should the user be notified to complete their daily step-" +#~ "goal." +#~ msgstr "" +#~ "Hvor ofte brugeren skal mindes om at fuldføre det daglige mål for antal " +#~ "skridt." + +#~ msgid "" +#~ "Activity types the user used recently, to be shown first in the activity " +#~ "types selector’s list" +#~ msgstr "" +#~ "Aktiviteterne som brugeren senest har brugt, og som vises først i listen " +#~ "over aktivitetsvalg" + +#~ msgid "Whether Google Fit has been setup as sync provider" +#~ msgstr "Om Google Fit er blevet konfigureret som synkroniseringsudbyder" + +#~ msgid "The last time we synched steps, weight etc. with Google Fit" +#~ msgstr "" +#~ "Sidste gang vi synkroniserede antal skridt, vægt osv. med Google Fit" + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "" +#~ "Hvilket måleenhedssystem brugeren valgte, f.eks. cm versus inch for højde" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "Brugerens alder (forældet)." + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "Brugerens alder som absolut angivelse (f.eks. 01/01/1970)" + +#~ msgid "The height of the user." +#~ msgstr "Brugerens højde." + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "Antal daglige skridt brugeren vil nå." + +#~ msgid "The weight the user wants to reach." +#~ msgstr "Den vægt brugeren ønsker at nå." + +#~ msgid "The height of the window." +#~ msgstr "Vinduets højde." + +#~ msgid "Whether the window is maximized." +#~ msgstr "Om vinduet er maksimeret." + +#~ msgid "The width of the window." +#~ msgstr "Vinduets bredde." + +#~ msgid "Failed to migrate database to new version due to error {}" +#~ msgstr "Kunne ikke migrere databasen til ny version på grund af fejlen {}" + #~ msgid "@APPLICATION_ID@" #~ msgstr "@APPLICATION_ID@" -- 2.40.1 From cab1bc51b341e0be3cf8c6d0d49a75e1fb070a63 Mon Sep 17 00:00:00 2001 From: Fabio Tomat Date: Wed, 11 Jan 2023 20:39:19 +0000 Subject: [PATCH 78/83] Add Friulian translation --- po/LINGUAS | 1 + po/fur.po | 1101 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1102 insertions(+) create mode 100644 po/fur.po diff --git a/po/LINGUAS b/po/LINGUAS index 9acc595..5830fb3 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -7,6 +7,7 @@ es eu fi fr +fur gl he hr diff --git a/po/fur.po b/po/fur.po new file mode 100644 index 0000000..460d3ad --- /dev/null +++ b/po/fur.po @@ -0,0 +1,1101 @@ +# Friulian translation for health. +# Copyright (C) 2023 health's COPYRIGHT HOLDER +# This file is distributed under the same license as the health package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: health master\n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" +"POT-Creation-Date: 2022-11-02 18:09+0000\n" +"PO-Revision-Date: 2023-01-11 03:02+0000\n" +"Last-Translator: Fabio T. \n" +"Language-Team: Friulian \n" +"Language: fur\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Editor: HaiPO 1.4 beta\n" + +#: data/dev.Cogitri.Health.gschema.xml:16 +msgid "First time setup done" +msgstr "Impostazions di prin inviament completadis" + +#: data/dev.Cogitri.Health.gschema.xml:20 +msgid "Toggle notifications" +msgstr "Comute notifichis" + +#: data/dev.Cogitri.Health.gschema.xml:24 +msgid "Set enabled plugins" +msgstr "Stabilìs i plugins abilitâts" + +#: data/dev.Cogitri.Health.gschema.xml:28 +msgid "Notification time" +msgstr "Orari di notifiche" + +#: data/dev.Cogitri.Health.gschema.xml:32 +msgid "notification frequency" +msgstr "frecuence di notifiche" + +#: data/dev.Cogitri.Health.gschema.xml:36 +msgid "List of recent activity types" +msgstr "Liste di resints gjenars di ativitâts" + +#: data/dev.Cogitri.Health.gschema.xml:40 +msgid "Google Fit Sync-Provider setup" +msgstr "Configurazion gjestôr de sincronizazion par Google Fit" + +#: data/dev.Cogitri.Health.gschema.xml:44 +msgid "Last sync with Google Fit" +msgstr "Ultime sincronizazion cun Google Fit" + +#: data/dev.Cogitri.Health.gschema.xml:48 +msgid "Unit system used" +msgstr "Sisteme di unitâts in ûs" + +#: data/dev.Cogitri.Health.gschema.xml:52 +msgid "User age" +msgstr "Etât dal utent" + +#: data/dev.Cogitri.Health.gschema.xml:56 +msgid "Absolute user age" +msgstr "Etât assolude dal utent" + +#: data/dev.Cogitri.Health.gschema.xml:60 +msgid "User height" +msgstr "Altece dal utent" + +#: data/dev.Cogitri.Health.gschema.xml:64 +msgid "User step goal" +msgstr "Obietîf pas dal utent" + +#: data/dev.Cogitri.Health.gschema.xml:68 +msgid "User weight goal" +msgstr "Obietîf pês dal utent" + +#: data/dev.Cogitri.Health.gschema.xml:72 +msgid "Window height" +msgstr "Altece dal barcon" + +#: data/dev.Cogitri.Health.gschema.xml:76 +msgid "Window maximized" +msgstr "Barcon slargjât" + +#: data/dev.Cogitri.Health.gschema.xml:80 +msgid "Window width" +msgstr "Largjece dal barcon" + +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "ID utent atîf" + +#: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 +#: data/dev.Cogitri.Health.desktop.in.in:3 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:4 data/ui/window.blp:37 +#: src/main.rs:31 +msgid "Health" +msgstr "Salût" + +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 +msgid "Track your fitness goals" +msgstr "Sta daûr ai tiei obietîfs pe forme fisiche" + +#: data/dev.Cogitri.Health.metainfo.xml.in.in:11 +msgid "" +"Health can visualize how many steps you’ve made daily, your weight " +"development over time and your daily activities. Data can be synched from " +"Google Fit or manually entered into Health. Afterwards, it can be viewed and" +" edited in Health." +msgstr "" +"Salût al pues visualizâ trops pas che tu âs fat ogni dì, l'andament dal pês " +"cul timp a lâ, e lis tôs ativitâts zornalieris. Al è pussibil sincronizâ i " +"dâts dal Google Fit o inserîju a man dentri di Salût. Dopo, tu ju puedis " +"visualizâ e modificâ cun Salût." + +#: data/dev.Cogitri.Health.metainfo.xml.in.in:36 +msgid "Rasmus “Cogitri” Thomsen" +msgstr "Rasmus “Cogitri” Thomsen" + +#: data/ui/data_add_dialog.blp:5 data/ui/import_export_dialog_base.blp:5 +#: src/windows/export_dialog.rs:53 src/windows/export_dialog.rs:89 +#: src/windows/import_dialog.rs:53 src/windows/import_dialog.rs:82 +msgid "_Cancel" +msgstr "_Anule" + +#: data/ui/data_add_dialog.blp:10 src/windows/export_dialog.rs:52 +#: src/windows/export_dialog.rs:88 +msgid "_Save" +msgstr "_Salve" + +#: data/ui/date_selector.blp:18 +msgid "January" +msgstr "Zenâr" + +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:220 +msgid "February" +msgstr "Fevrâr" + +#: data/ui/date_selector.blp:20 +msgid "March" +msgstr "Març" + +#: data/ui/date_selector.blp:21 +msgid "April" +msgstr "Avrîl" + +#: data/ui/date_selector.blp:22 +msgid "May" +msgstr "Mai" + +#: data/ui/date_selector.blp:23 +msgid "June" +msgstr "Jugn" + +#: data/ui/date_selector.blp:24 +msgid "July" +msgstr "Lui" + +#: data/ui/date_selector.blp:25 +msgid "August" +msgstr "Avost" + +#: data/ui/date_selector.blp:26 +msgid "September" +msgstr "Setembar" + +#: data/ui/date_selector.blp:27 +msgid "October" +msgstr "Otubar" + +#: data/ui/date_selector.blp:28 +msgid "November" +msgstr "Novembar" + +#: data/ui/date_selector.blp:29 +msgid "December" +msgstr "Dicembar" + +#: data/ui/date_selector.blp:35 +msgid "Day" +msgstr "Dì" + +#: data/ui/date_selector.blp:61 +msgid "Month" +msgstr "Mês" + +#: data/ui/date_selector.blp:84 +msgid "Year" +msgstr "An" + +#: data/ui/distance_action_row.blp:11 src/widgets/activity_row.rs:125 +msgid "Distance" +msgstr "Distance" + +#: data/ui/import_export_dialog_base.blp:10 +msgid "_Export" +msgstr "_Espuarte" + +#: data/ui/import_export_dialog_base.blp:56 +msgid "Export weight measurements" +msgstr "Espuarte lis misuris di pês" + +#: data/ui/import_export_dialog_base.blp:69 +msgid "Encrypt export" +msgstr "Cifre i dâts espuartâts" + +#: data/ui/password_entry.blp:9 +msgid "_Password" +msgstr "_Password" + +#: data/ui/password_entry.blp:40 +msgid "_Confirm password" +msgstr "_Conferme password" + +#: data/ui/plugins/activities/details.blp:5 +#: data/ui/plugins/calories/details.blp:4 data/ui/plugins/steps/details.blp:4 +msgid "You can use the + button to add a new activity." +msgstr "Tu puedis doprâ il boton + par zontâ une gnove ativitât." + +#: data/ui/plugins/activities/details.blp:8 +msgid "Recent Activities" +msgstr "Ativitâts resintis" + +#: data/ui/plugins/activities/summary.blp:5 data/ui/view_add_activity.blp:84 +msgid "Active Minutes" +msgstr "Minûts in ativitât" + +#: data/ui/plugins/calories/details.blp:7 src/plugins/calories/plugin.rs:39 +msgid "Calories" +msgstr "Caloriis" + +#: data/ui/plugins/calories/summary.blp:5 data/ui/view_add_activity.blp:66 +msgid "Calories Burned" +msgstr "Caloriis brusadis" + +#: data/ui/plugins/details.blp:68 +msgid "" +"This is a preview of how the plugin presents data. Enable the plugin to see " +"your actual, live data." +msgstr "" +"Cheste e je une anteprime di cemût che il plugin al presente i dâts. Abilite" +" il plugin par viodi i tiei dâts atuâi in timp reâl." + +#: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 +msgid "Steps" +msgstr "Pas" + +#: data/ui/plugins/weight/details.blp:5 +msgid "You can use the + button to add a new weight measurement." +msgstr "" +"Tu puedis doprâ il boton + par zontâ une gnove misurazion dal pês." + +#: data/ui/plugins/weight/details.blp:8 +msgid "Weight Measurements" +msgstr "Misurazions dal pês" + +#: data/ui/plugins/weight/summary.blp:5 data/ui/view_add_weight.blp:38 +#: src/plugins/weight/plugin.rs:39 src/views/view_add_weight.rs:87 +msgid "Weight" +msgstr "Pês" + +#: data/ui/preferences_window.blp:43 +msgid "_Every 1 hour" +msgstr "_Ogni 1 ore" + +#: data/ui/preferences_window.blp:49 +msgid "_Every 4 hours" +msgstr "_Ogni 4 oris" + +#: data/ui/preferences_window.blp:55 +msgid "_Fixed Time" +msgstr "Orari _fis" + +#: data/ui/preferences_window.blp:63 +msgid "Health Preferences" +msgstr "Preferencis di Salût" + +#: data/ui/preferences_window.blp:69 data/ui/shortcuts_window.blp:11 +msgid "General" +msgstr "Gjenerâl" + +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1097 +msgid "User" +msgstr "Utent" + +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 +msgid "Unit system" +msgstr "Sisteme di unitâts" + +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 +msgid "Imperial" +msgstr "Imperiâl" + +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 +msgid "Metric" +msgstr "Metric" + +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "Non utent" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 +msgid "Birthday" +msgstr "Date di nassite" + +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 +msgid "Height" +msgstr "Altece" + +#: data/ui/preferences_window.blp:131 +msgid "Notifications" +msgstr "Notifichis" + +#: data/ui/preferences_window.blp:134 +msgid "Enable notifications" +msgstr "Abilite notifichis" + +#: data/ui/preferences_window.blp:145 +msgid "Frequency" +msgstr "Frecuence" + +#: data/ui/preferences_window.blp:158 +msgid "Daily reminder time" +msgstr "Orari dal pro memoria zornalîr" + +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:244 +msgid "Step goal" +msgstr "Obietîf di pas" + +#: data/ui/preferences_window.blp:179 +msgid "7,500 steps per day are recommended." +msgstr "a son conseâts 7500 pas ogni dì." + +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 +msgid "Weight Goal" +msgstr "Obietîf di pês" + +#: data/ui/preferences_window.blp:196 +msgid "The WHO recommends a BMI of 18.5-24.9." +msgstr "La OMS e consee un IMC tra 18,5 e 24,9." + +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "Obietîf di IMC" + +#: data/ui/preferences_window.blp:220 +msgid "Sync" +msgstr "Sincronizazion" + +#: data/ui/preferences_window.blp:224 +msgid "Start sync with third-party providers." +msgstr "Scomence a sincronizâ cun gjestôrs dal servizi di tiercis parts." + +#: data/ui/preferences_window.blp:232 +msgid "Importing and exporting data" +msgstr "Importazion e esportazion dai dâts" + +#: data/ui/preferences_window.blp:235 +msgid "Export data as CSV" +msgstr "Espuarte dâts in un file CSV" + +#: data/ui/preferences_window.blp:238 +msgid "Export…" +msgstr "Espuarte…" + +#: data/ui/preferences_window.blp:245 +msgid "Import data from CSV" +msgstr "Impuarte dâts di un file CSV" + +#: data/ui/preferences_window.blp:248 +msgid "Import…" +msgstr "Impuarte…" + +#: data/ui/setup_window.blp:39 +msgid "Health Setup" +msgstr "Configurazion di Salût" + +#: data/ui/setup_window.blp:53 +msgid "_Quit" +msgstr "_Jes" + +#: data/ui/setup_window.blp:62 +msgid "_Previous" +msgstr "_Precedent" + +#: data/ui/setup_window.blp:77 +msgid "_Next" +msgstr "_Sucessîf" + +#: data/ui/setup_window.blp:90 +msgid "_Done" +msgstr "_Fat" + +#: data/ui/setup_window.blp:116 +msgid "Welcome to Health!" +msgstr "Benvignûts su Salût!" + +#: data/ui/setup_window.blp:128 +msgid "Please enter some information to get setup." +msgstr "Inserìs cualchi informazions par scomençâ." + +#: data/ui/setup_window.blp:224 +msgid "Please enter your daily step goal." +msgstr "Inserìs il to obietîf di pas zornalîr." + +#: data/ui/setup_window.blp:236 +msgid "The WHO recommends 7.500 steps per day." +msgstr "La OMS e consee 7500 pas ogni dì." + +#: data/ui/setup_window.blp:286 +msgid "Please enter your weight goal." +msgstr "Inserìs il to obietîf di pês." + +#: data/ui/setup_window.blp:298 +msgid "The WHO recommends a BMI of 18.5–24.9." +msgstr "La OMS e consee un IMC tra 18,5 e 24,9." + +#: data/ui/setup_window.blp:326 +msgid "Current weight" +msgstr "Pês atuâl" + +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:253 +msgid "Current BMI" +msgstr "IMC atuâl" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:229 +msgid "Weight goal" +msgstr "Obietîf di pês" + +#: data/ui/setup_window.blp:386 +msgid "Setup sync with third-party providers." +msgstr "" +"Configure la sincronizazion cun gjestôrs dal servizi di tiercis parts." + +#: data/ui/setup_window.blp:398 +msgid "" +"You can sync steps and weight measurements from/to third-party providers." +msgstr "" +"Tu puedis sincronizâ lis misurazions dai pas e dal pês dai/viers gjestôrs " +"dal servizi di tiercis parts." + +#: data/ui/shortcuts_window.blp:15 +msgid "Quit the application" +msgstr "Jes de aplicazion" + +#: data/ui/shortcuts_window.blp:20 +msgid "Show this shortcuts window" +msgstr "Mostre chest barcon des scurtis" + +#: data/ui/shortcuts_window.blp:25 +msgid "Show help" +msgstr "Mostre il jutori" + +#: data/ui/shortcuts_window.blp:30 +msgid "Show primary menu" +msgstr "Mostre il menù primari" + +#: data/ui/shortcuts_window.blp:35 +msgid "Toggle fullscreen mode" +msgstr "Comute modalitât plen visôr" + +#: data/ui/sync_list_box.blp:30 +msgid "Google Fit" +msgstr "Google Fit" + +#: data/ui/view_add_activity.blp:45 data/ui/view_add_weight.blp:30 +msgid "Date" +msgstr "Date" + +#: data/ui/view_add_activity.blp:57 +msgid "Activity Type" +msgstr "Gjenar di ativitât" + +#: data/ui/view_add_activity.blp:97 +msgid "Average Heart Rate" +msgstr "Bati dal cûr medi" + +#: data/ui/view_add_activity.blp:109 +msgid "Minimum Heart Rate" +msgstr "Bati dal cûr minim" + +#: data/ui/view_add_activity.blp:121 +msgid "Maximum Heart Rate" +msgstr "Bati dal cûr massim" + +#: data/ui/view_add_activity.blp:133 +msgid "Stepcount" +msgstr "Conte dai pas" + +#: data/ui/view_home_page.blp:61 +msgid "For you" +msgstr "Par te" + +#: data/ui/view_home_page.blp:86 +msgid "" +"No plugins enabled. Enable one from the list below to start using Health." +msgstr "" +"Nissun plugin abilitât. Abilite un de liste chi sot par scomençâ a doprâ " +"Salût." + +#: data/ui/view_home_page.blp:107 +msgid "All data" +msgstr "Ducj i dâts" + +#: data/ui/window.blp:8 +msgid "_Disable Current Plugin" +msgstr "_Disabilite il plugin atuâl" + +#: data/ui/window.blp:15 +msgid "_Preferences" +msgstr "_Preferencis" + +#: data/ui/window.blp:20 +msgid "_Keyboard Shortcuts" +msgstr "_Scurtis di tastiere" + +#: data/ui/window.blp:27 +msgid "_About Health" +msgstr "_Informazions su Salût" + +#: data/ui/window.blp:69 +msgid "Enable plugin" +msgstr "Abilite plugin" + +#: src/core/application.rs:189 +msgid "A health tracking app for the GNOME desktop." +msgstr "Une aplicazion par stâ daûr ae salût pal scritori GNOME." + +#: src/core/application.rs:191 +msgid "translator-credits" +msgstr "Fabio Tomat " + +#: src/core/application.rs:193 +msgid "Websites" +msgstr "Sîts Web" + +#: src/model/activity_info.rs:83 +msgid "Basketball" +msgstr "Bale tal zei" + +#: src/model/activity_info.rs:93 +msgid "Bicycling" +msgstr "Ciclisim" + +#: src/model/activity_info.rs:102 +msgid "Boxing" +msgstr "Pugjilât" + +#: src/model/activity_info.rs:111 +msgid "Dancing" +msgstr "Danze" + +#: src/model/activity_info.rs:120 +msgid "Football" +msgstr "Football american" + +#: src/model/activity_info.rs:127 +msgid "Golf" +msgstr "Golf" + +#: src/model/activity_info.rs:138 +msgid "Hiking" +msgstr "Escursionisim" + +#: src/model/activity_info.rs:147 +msgid "Hockey" +msgstr "Hockey" + +#: src/model/activity_info.rs:157 +msgid "Horse Riding" +msgstr "Ecuitazion" + +#: src/model/activity_info.rs:166 +msgid "Other Sports" +msgstr "Altris sports" + +#: src/model/activity_info.rs:176 +msgid "Rollerblading" +msgstr "Patinaç" + +#: src/model/activity_info.rs:187 +msgid "Running" +msgstr "Corse" + +#: src/model/activity_info.rs:197 +msgid "Skiing" +msgstr "Schi" + +#: src/model/activity_info.rs:206 +msgid "Soccer" +msgstr "Balon" + +#: src/model/activity_info.rs:215 +msgid "Softball" +msgstr "Softball" + +#: src/model/activity_info.rs:225 +msgid "Swimming" +msgstr "Nadâ" + +#: src/model/activity_info.rs:234 +msgid "Tennis" +msgstr "Tenis" + +#: src/model/activity_info.rs:243 +msgid "Track And Field" +msgstr "Atletiche lizere" + +#: src/model/activity_info.rs:254 +msgid "Volleyball" +msgstr "Bale al svol" + +#: src/model/activity_info.rs:265 +msgid "Walking" +msgstr "Cjaminade" + +#: src/model/model_notification.rs:214 +msgid "Health: walking reminder" +msgstr "Salût: pro memoria par cjaminâ" + +#: src/model/model_notification.rs:230 +msgid "{} step remaining to complete your daily step goal." +msgid_plural "{} steps remaining to complete your daily step goal." +msgstr[0] "Al reste {} pas par completâ il to obietîf di pas zornalîr." +msgstr[1] "A restin {} pas par completâ il to obietîf di pas zornalîr." + +#: src/plugins/activities/plugin.rs:39 +msgid "Activities" +msgstr "Ativitâts" + +#: src/plugins/activities/summary.rs:91 +msgid "{} active minute today" +msgid_plural "{} active minutes today" +msgstr[0] "{} minût di ativitât vuê" +msgstr[1] "{} minûts di ativitât vuê" + +#: src/plugins/calories/details.rs:216 +msgid "" +"{}:\n" +"{} calorie\n" +"{}" +msgid_plural "" +"{}:\n" +"{} calories\n" +"{}" +msgstr[0] "" +"{}:\n" +"{} calorie\n" +"{}" +msgstr[1] "" +"{}:\n" +"{} caloriis\n" +"{}" + +#: src/plugins/calories/summary.rs:97 src/plugins/calories/summary.rs:104 +msgid "{} calorie burned today" +msgid_plural "{} calories burned today" +msgstr[0] "{} calorie brusade vuê" +msgstr[1] "{} caloriis brusadis vuê" + +#: src/plugins/steps/details.rs:186 +msgid "Today’s steps: {}" +msgstr "Pas di vuê: {}" + +#: src/plugins/steps/details.rs:205 +msgid "" +"No streak yet. Reach your step goal for multiple days to start a streak!" +msgstr "" +"Ancjemò nissune serie. Rive al to obietîf di pas zornalîr par plui dîs e " +"scomence une serie!" + +#: src/plugins/steps/details.rs:209 +msgid "" +"You’re on a streak for {} day. Reach your step goal today to continue it!" +msgid_plural "" +"You’re on a streak for {} days. Reach your step goal today to continue it!" +msgstr[0] "" +"Tu stâs fasint une serie di {} dì. Rive al to obietîf di pas vuê par " +"continuâle!" +msgstr[1] "" +"Tu stâs fasint une serie di {} dîs. Rive al to obietîf di pas vuê par " +"continuâle!" + +#: src/plugins/steps/details.rs:217 +msgid "You’ve reached your step goal today. Keep going to start a streak!" +msgstr "" +"Vuê, l'obietîf di pas al è stât cjapât. Continue par scomençâ une serie!" + +#: src/plugins/steps/details.rs:220 +msgid "You’re on a streak for {} day. Good job!" +msgid_plural "You’re on a streak for {} days. Good job!" +msgstr[0] "Tu stâs fasint une serie di {} dì. Ben fate!" +msgstr[1] "Tu stâs fasint une serie di {} dîs. Ben fate!" + +#. TRANSLATORS: X step(s) on DATE +#: src/plugins/steps/details.rs:237 +msgid "{} step on {}" +msgid_plural "{} steps on {}" +msgstr[0] "{} pas al/ai {}" +msgstr[1] "{} pas al/ai {}" + +#: src/plugins/steps/summary.rs:96 +msgid "{} step taken today" +msgid_plural "{} steps taken today" +msgstr[0] "{} pas fat vuê" +msgstr[1] "{} pas fats vuê" + +#: src/plugins/steps/summary.rs:107 +msgid "Reached {} percent of daily step goal" +msgid_plural "Reached {} percent of daily step goal" +msgstr[0] "L'obietîf di pas zornalîr al è stât completât al {}%%" +msgstr[1] "L'obietîf di pas zornalîr al è stât completât al {}%%" + +#: src/plugins/steps/summary.rs:114 +msgid "Well done! You have reached your daily step goal!" +msgstr "Ben fate! Il to obietîf di pas zornalîr al è stât completât!" + +#: src/plugins/weight/details.rs:201 +msgid "Current BMI: {}" +msgstr "IMC atuâl: {}" + +#. TRANSLATORS: Weight X on date Y +#: src/plugins/weight/details.rs:216 +msgid "{} pound on {}" +msgid_plural "{} pounds on {}" +msgstr[0] "{} lire al/ai {}" +msgstr[1] "{} liris al/ai {}" + +#. TRANSLATORS: Weight X on date Y +#: src/plugins/weight/details.rs:219 +msgid "{} kilogram on {}" +msgid_plural "{} kilograms on {}" +msgstr[0] "{} chilogram al/ai {}" +msgstr[1] "{} chilograms al/ai {}" + +#: src/plugins/weight/details.rs:256 src/plugins/weight/details.rs:261 +msgid "Unknown BMI" +msgstr "IMC no cognossût" + +#: src/plugins/weight/details.rs:279 +msgid "" +"Your weight goal is {} pound. Add a first weight measurement to see how " +"close you are to reaching it." +msgid_plural "" +"Your weight goal is {} pounds. Add a first weight measurement to see how " +"close you are to reaching it." +msgstr[0] "" +"Il to obietîf di pês al è {} lire. Zonte une misurazion dal pês par viodi " +"trop dongje che tu sês tal cjapâlu." +msgstr[1] "" +"Il to obietîf di pês al è {} liris. Zonte une misurazion dal pês par viodi " +"trop dongje che tu sês tal cjapâlu." + +#: src/plugins/weight/details.rs:286 +msgid "" +"Your weight goal is {} kilogram. Add a first weight measurement to see how " +"close you are to reaching it." +msgid_plural "" +"Your weight goal is {} kilograms. Add a first weight measurement to see how " +"close you are to reaching it." +msgstr[0] "" +"Il to obietîf di pês al è {} chilo. Zonte une misurazion dal pês par viodi " +"trop dongje che tu sês tal cjapâlu." +msgstr[1] "" +"Il to obietîf di pês al è {} chilos. Zonte une misurazion dal pês par viodi " +"trop dongje che tu sês tal cjapâlu." + +#: src/plugins/weight/details.rs:295 +msgid "You’ve reached your weight goal. Great job!" +msgstr "Tu sês rivât al to obietîf di pês. Ben fate!" + +#: src/plugins/weight/details.rs:311 +msgid "Your weight goal is {} pound." +msgid_plural "Your weight goal is {} pounds." +msgstr[0] "Il to obietîf di pês al è {} lire." +msgstr[1] "Il to obietîf di pês al è {} liris." + +#: src/plugins/weight/details.rs:316 +msgid "You have {} pound left to reach it." +msgid_plural "You have {} pounds left to reach it." +msgstr[0] "Ti mancje {} lire par cjapâlu." +msgstr[1] "Ti mancjin {} liris par cjapâlu." + +#: src/plugins/weight/details.rs:323 +msgid "Your weight goal is {} kilogram." +msgid_plural "Your weight goal is {} kilograms." +msgstr[0] "Il to obietîf di pês al è {} chilo." +msgstr[1] "Il to obietîf di pês al è {} chilos." + +#: src/plugins/weight/details.rs:329 +msgid "You have {} kilogram left to reach it" +msgid_plural "You have {} kilograms left to reach it" +msgstr[0] "Ti mancje {} chilo par cjapâlu" +msgstr[1] "Ti mancjin {} chilos par cjapâlu" + +#: src/plugins/weight/details.rs:339 +msgid "No weight goal set yet. You can set it in Health’s preferences." +msgstr "" +"Nol è stât ancjemò stabilît nissun obietîf di pês. Tu puedis stabilîlu tes " +"preferencis di Salût." + +#: src/plugins/weight/summary.rs:119 +msgid "{} pound" +msgid_plural "{} pounds" +msgstr[0] "{} lire" +msgstr[1] "{} liris" + +#: src/plugins/weight/summary.rs:127 +msgid "{} kilogram" +msgid_plural "{} kilograms" +msgstr[0] "{} chilo" +msgstr[1] "{} chilos" + +#: src/plugins/weight/summary.rs:138 +msgid "+ {} pound compared to previous measurement" +msgid_plural "+ {} pounds compared to previous measurement" +msgstr[0] "+ {} lire in confront ae misurazion precedente" +msgstr[1] "+ {} liris in confront ae misurazion precedente" + +#: src/plugins/weight/summary.rs:146 +msgid "+ {} kilogram compared to previous measurement" +msgid_plural "+ {} kilograms compared to previous measurement" +msgstr[0] "+ {} chilo in confront ae misurazion precedente" +msgstr[1] "+ {} chilos in confront ae misurazion precedente" + +#: src/plugins/weight/summary.rs:157 +msgid "{} pound compared to previous measurement" +msgid_plural "{} pounds compared to previous measurement" +msgstr[0] "{} lire in confront ae misurazion precedente" +msgstr[1] "{} liris in confront ae misurazion precedente" + +#: src/plugins/weight/summary.rs:165 +msgid "{} kilogram compared to previous measurement" +msgid_plural "{} kilograms compared to previous measurement" +msgstr[0] "{} chilo in confront ae misurazion precedente" +msgstr[1] "{} chilos in confront ae misurazion precedente" + +#: src/plugins/weight/summary.rs:173 +msgid "No change in weight" +msgstr "Nissune variazion di pês" + +#: src/plugins/weight/summary.rs:178 +msgid "No weight data available" +msgstr "Nissun dât sul pês disponibil" + +#: src/sync/csv.rs:81 src/sync/csv.rs:370 +msgid "No activities added yet; can’t create empty export!" +msgstr "" +"No je stade ancjemò zontade nissune ativitât; nol è pussibil creâ une " +"esportazion vueide!" + +#: src/sync/csv.rs:111 src/sync/csv.rs:388 +msgid "No weight measurements added yet; can’t create empty export!" +msgstr "" +"No je stade zontade ancjemò nissune misurazion di pês; nol è pussibil creâ " +"une esportazion vueide!" + +#: src/sync/csv.rs:184 src/sync/csv.rs:332 +msgid "Can’t parse encrypted backup without encryption key!" +msgstr "Nol è pussibil analizâ il backup cifrât cence la clâf di cifradure!" + +#: src/sync/csv.rs:195 src/sync/csv.rs:352 +msgid "" +"Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " +"encrypted one?" +msgstr "" +"Impussibil analizâ il file CSV. Stâstu cirint di lei un backup no cifrât " +"come che al fos cifrât?" + +#: src/sync/csv.rs:208 +msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" +msgstr "Impussibil decifrâ i dâts. Ise doprade la clâf juste?" + +#: src/sync/database_receiver.rs:46 +msgid "Couldn’t synchronize steps due to error {}" +msgstr "Impussibil sincronizâ i pas par vie dal erôr {}" + +#: src/sync/database_receiver.rs:60 +msgid "Couldn’t synchronize weight measurements due to error {}" +msgstr "Impussibil sincronizâ lis misurazions di pês par vie dal erôr {}" + +#: src/sync/google_fit.rs:211 +msgid "CRSF Verification failed, got {}, expected {}" +msgstr "Verifiche CRSF falide, si à vût {}, si spietave {}" + +#: src/sync/google_fit.rs:227 +msgid "Requesting OAuth2 token failed due to error {}" +msgstr "Richieste dal gjeton OAuth2 falide par vie dal erôr {}" + +#: src/sync/sync_provider.rs:109 +msgid "" +"Can’t retrieve OAuth2 token when no refresh token is set! Please re-" +"authenticate with your sync provider." +msgstr "" +"Impussibil recuperâ il gjeton OAuth2 cuant che nol è stabilît nissun gjeton " +"di inzornament! Torne a autenticâti cul to gjestôr dal servizi di " +"sincronizazion." + +#: src/sync/sync_provider.rs:157 +msgid "Token for Health sync provider {}" +msgstr "Gjeton pal gjestôr dal servizi di sincronizazion di Salût {}" + +#: src/sync/sync_provider.rs:217 +msgid "Successfully authenticated, please return to Health." +msgstr "Autenticât cun sucès, torne su Salût." + +#: src/sync/sync_provider.rs:228 +msgid "Couldn’t parse OAuth2 response" +msgstr "Impussibil analizâ la rispueste OAuth2" + +#: src/views/bar_graph_view.rs:568 +msgid "Enter weight record to calculate idle calories" +msgstr "Inserìs il pês par calcolâ lis caloriis brusadis a ripôs" + +#: src/views/bar_graph_view.rs:572 +msgid "Idle calories" +msgstr "Caloriis brusadis a ripôs" + +#: src/views/view_add_activity.rs:231 +msgid "Activity" +msgstr "Ativitât" + +#: src/widgets/activity_row.rs:73 +msgid "{} for {} Minute" +msgid_plural "{} for {} Minutes" +msgstr[0] "{} par {} minût" +msgstr[1] "{} par {} minûts" + +#: src/widgets/activity_row.rs:85 +msgid "Calories burned" +msgstr "Caloriis brusadis" + +#: src/widgets/activity_row.rs:95 +msgid "Average heart rate" +msgstr "Bati dal cûr medi" + +#: src/widgets/activity_row.rs:101 +msgid "Maximum heart rate" +msgstr "Bati dal cûr massim" + +#: src/widgets/activity_row.rs:107 +msgid "Minimum heart rate" +msgstr "Bati dal cûr minim" + +#: src/widgets/activity_row.rs:120 +msgid "{} meter" +msgid_plural "{} meters" +msgstr[0] "{} metri" +msgstr[1] "{} metris" + +#: src/widgets/activity_row.rs:123 +msgid "{} yard" +msgid_plural "{} yards" +msgstr[0] "{} yard" +msgstr[1] "{} yards" + +#: src/widgets/bmi_level_bar.rs:260 +msgid "Current BMI: {}" +msgstr "IMC atuâl: {}" + +#: src/widgets/distance_action_row.rs:293 +msgid "KM" +msgstr "Chilometris" + +#: src/widgets/distance_action_row.rs:294 +msgid "Meters" +msgstr "Metris" + +#: src/widgets/distance_action_row.rs:296 +msgid "Miles" +msgstr "Miis" + +#: src/widgets/distance_action_row.rs:297 +msgid "Feet" +msgstr "Pîts" + +#. TRANSLATORS: Unit abbreviation (centimeters) +#: src/widgets/unit_spinbutton.rs:458 src/widgets/unit_spinbutton.rs:624 +msgid "cm" +msgstr "cm" + +#. TRANSLATORS: Unit abbreviation (meters) +#: src/widgets/unit_spinbutton.rs:460 +msgid "m" +msgstr "m" + +#. TRANSLATORS: Unit abbreviation (kilometers) +#: src/widgets/unit_spinbutton.rs:462 +msgid "km" +msgstr "km" + +#. TRANSLATORS: Unit abbreviation (kilograms) +#: src/widgets/unit_spinbutton.rs:464 +msgid "kg" +msgstr "kg" + +#. TRANSLATORS: Unit abbreviation (inch) +#: src/widgets/unit_spinbutton.rs:466 src/widgets/unit_spinbutton.rs:626 +msgid "in" +msgstr "in" + +#. TRANSLATORS: Unit abbreviation (feet) +#: src/widgets/unit_spinbutton.rs:468 +msgid "ft" +msgstr "ft" + +#. TRANSLATORS: Unit abbreviation (miles) +#: src/widgets/unit_spinbutton.rs:470 +msgid "mi" +msgstr "mi" + +#. TRANSLATORS: Unit abbreviation (pounds) +#: src/widgets/unit_spinbutton.rs:472 +msgid "lb" +msgstr "lb" + +#: src/windows/export_dialog.rs:51 +msgid "Save Activities" +msgstr "Salve lis ativitâts" + +#. TRANSLATORS: Please keep the file extension (.csv.encrypted) +#: src/windows/export_dialog.rs:60 +msgid "Activities.csv.encrypted" +msgstr "Ativitâts .csv.encrypted" + +#. TRANSLATORS: Please keep the file extension (.csv) +#: src/windows/export_dialog.rs:63 +msgid "Activities.csv" +msgstr "Ativitâts.csv" + +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Nissun file selezionât." + +#: src/windows/export_dialog.rs:87 +msgid "Save Weight Measurement" +msgstr "Salve la misurazion dal pês" + +#: src/windows/export_dialog.rs:95 +msgid "Weight Measurements.csv.encrypted" +msgstr "MisurePês.csv.encrypted" + +#: src/windows/export_dialog.rs:97 +msgid "Weight Measurements.csv" +msgstr "MisurePês.csv" + +#: src/windows/export_dialog.rs:132 +msgid "Export data" +msgstr "Espuarte dâts" + +#: src/windows/import_dialog.rs:51 +msgid "Open Activities" +msgstr "Vierç ativitâts" + +#: src/windows/import_dialog.rs:52 src/windows/import_dialog.rs:81 +msgid "_Open" +msgstr "_Vierç" + +#: src/windows/import_dialog.rs:80 +msgid "Open Weight Measurement" +msgstr "Vierç misurazion dal pês" + +#: src/windows/import_dialog.rs:121 +msgid "Import data" +msgstr "Impuarte dâts" + +#: src/windows/import_export_dialog_base.rs:210 +msgid "Import activities" +msgstr "Impuarte ativitâts" + +#: src/windows/import_export_dialog_base.rs:212 +msgid "Import is encrypted" +msgstr "La importazion e je cifrade" + +#: src/windows/import_export_dialog_base.rs:213 +msgid "Import weights" +msgstr "Impuarte pês" + +#: src/windows/import_export_dialog_base.rs:214 +msgid "Import" +msgstr "Impuarte" + +#: src/windows/import_export_dialog_base.rs:292 +msgid "Success!" +msgstr "Fat!" + +#: src/windows/import_export_dialog_base.rs:296 +msgid "An error occurred!" +msgstr "Al è vignût fûr un erôr!" + +#: src/windows/import_export_dialog_base.rs:301 +msgid "Close" +msgstr "Siere" + +#: src/windows/window.rs:267 +msgid "Couldn’t sync Google Fit data due to error: {}" +msgstr "Impussibil sincronizâ i dâts di Google Fit par vie dal erôr: {}" -- 2.40.1 From 7975220e420b382c7eb88ac7bce0dfce6f010446 Mon Sep 17 00:00:00 2001 From: Fran Dieguez Date: Sat, 25 Feb 2023 21:17:43 +0000 Subject: [PATCH 79/83] Update Galician translation --- po/gl.po | 560 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 283 insertions(+), 277 deletions(-) diff --git a/po/gl.po b/po/gl.po index 321bb54..177a771 100644 --- a/po/gl.po +++ b/po/gl.po @@ -9,168 +9,93 @@ msgid "" msgstr "" "Project-Id-Version: health master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-03-12 15:26+0000\n" -"PO-Revision-Date: 2022-03-14 17:49+0100\n" +"POT-Creation-Date: 2022-09-13 17:26+0000\n" +"PO-Revision-Date: 2023-02-25 22:17+0100\n" "Last-Translator: Fran Dieguez \n" "Language-Team: Galician >\n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-DL-Team: gl\n" "X-DL-Module: health\n" "X-DL-Branch: master\n" "X-DL-Domain: po\n" "X-DL-State: Translating\n" -"X-Generator: Gtranslator 40.0\n" +"X-Generator: Poedit 3.2.2\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" msgstr "Configuración inicial feita" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "Indica se o usuario completou o titorial de configuración" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "Trocar notificacións" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "Indica se actiar as notificacións." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "Estabelecer engadidos activados" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "" -"Estabelece todos engadidos de orixes de datos que están activos en Saúde" - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "Hora da notificación" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "A hora á cal Saúde debe recordarlle ao usuario a súa meta de pasos" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "frecuencia de notificación" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "" -"Con que frecuencia debería notificarse ao usuario para completar o seu " -"obxectivo de pasos diarios." - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "Lista dos tipos de actividades recentes" -#: data/dev.Cogitri.Health.gschema.xml:42 -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector's list" -msgstr "" -"Tipos de actividade que o usuario usou recentemente, para ser mostrados de " -"primeiras na lista de seleción de tipo de actividades" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "Configuración do fornecedor de sincronización de Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "" -"Indica se Google Fit pode configurarse como un fornecedor de sincronización" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "Última sincronización con Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "A última vez que se sincroniaron os pasos, peso etc. con Google Fit" - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "Sistema de unidades usado" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "" -"A unidade do sistema que o usuario escolle, p.ex. cm ou polgadas para a " -"altura" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "Idade do usuario" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "A idade o usuario (obsoleto)" - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "Idade absoluta do usuario" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "A idade do usuario en termos absolutos (como 01/01/1970)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "Altura de usuario" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "A altura do usuario." - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "Obxectivo de pasos do usuario" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "A cantidade de pasos que o usuario quere acadar cada día." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "Obxectivo de peso do usuario" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "O peso que o usuario quere acadar." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "Altura da xanela" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "A altura da xanela" - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "Xanela maximizadda" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "Indica se a xanela está maximizada" - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "Anchura da xanela" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "A anchura da xanela." +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "ID de usuario activo" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -179,29 +104,23 @@ msgstr "A anchura da xanela." msgid "Health" msgstr "Saúde" -#: data/dev.Cogitri.Health.Autostart.desktop.in.in:5 -#: data/dev.Cogitri.Health.desktop.in.in:5 -msgid "@APPLICATION_ID@" -msgstr "@APPLICATION_ID@" - -#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 src/core/application.rs:167 -msgid "A health tracking app for the GNOME desktop." -msgstr "Unha aplicación de seguimento da saúde para o escritorio de GNOME." +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 +msgid "Track your fitness goals" +msgstr "Faga un seguimento dos obxectivos de exercicio" #: data/dev.Cogitri.Health.metainfo.xml.in.in:11 msgid "" -"A health tracking app for the GNOME desktop. Health can visualize how many " -"steps you've made daily, your weight development over time and your daily " -"activities. Data can be synched from Google Fit or manually entered into " -"Health. Afterwards, it can be viewed and edited in Health." +"Health can visualize how many steps you’ve made daily, your weight " +"development over time and your daily activities. Data can be synched from " +"Google Fit or manually entered into Health. Afterwards, it can be viewed and " +"edited in Health." msgstr "" -"Unha aplicación de seguimento da saúde para o escritorio de GNOME. Saúde " -"pode mostrar cantos pasos fixo diariamente, a evolución do seu peso no tempo " -"e as súas actividades diarias. Os datos sincronízanse con Google Fit ou cos " -"datos inseridos manualmente en Saúde. Despois diso pode velo e editalos " -"desde Saúde." +"Saúde pode mostrar cantos pasos fixo diariamente, a evolución do seu peso no " +"tempo e as súas actividades diarias. Os datos sincronízanse con Google Fit " +"ou cos datos inseridos manualmente en Saúde. Despois diso pode velo e " +"editalos desde Saúde." -#: data/dev.Cogitri.Health.metainfo.xml.in.in:37 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:36 msgid "Rasmus “Cogitri” Thomsen" msgstr "Rasmus “Cogitri” Thomsen" @@ -216,63 +135,63 @@ msgstr "_Cancelar" msgid "_Save" msgstr "_Gardar" -#: data/ui/date_selector.blp:17 +#: data/ui/date_selector.blp:18 msgid "January" msgstr "Xaneiro" -#: data/ui/date_selector.blp:18 src/widgets/date_selector.rs:245 +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:223 msgid "February" msgstr "Febreiro" -#: data/ui/date_selector.blp:19 +#: data/ui/date_selector.blp:20 msgid "March" msgstr "Marzo" -#: data/ui/date_selector.blp:20 +#: data/ui/date_selector.blp:21 msgid "April" msgstr "Abril" -#: data/ui/date_selector.blp:21 +#: data/ui/date_selector.blp:22 msgid "May" msgstr "Maio" -#: data/ui/date_selector.blp:22 +#: data/ui/date_selector.blp:23 msgid "June" msgstr "Xuño" -#: data/ui/date_selector.blp:23 +#: data/ui/date_selector.blp:24 msgid "July" msgstr "Xullo" -#: data/ui/date_selector.blp:24 +#: data/ui/date_selector.blp:25 msgid "August" msgstr "Agosto" -#: data/ui/date_selector.blp:25 +#: data/ui/date_selector.blp:26 msgid "September" msgstr "Setembro" -#: data/ui/date_selector.blp:26 +#: data/ui/date_selector.blp:27 msgid "October" msgstr "Outubro" -#: data/ui/date_selector.blp:27 +#: data/ui/date_selector.blp:28 msgid "November" msgstr "Novembro" -#: data/ui/date_selector.blp:28 +#: data/ui/date_selector.blp:29 msgid "December" msgstr "Decembro" -#: data/ui/date_selector.blp:34 +#: data/ui/date_selector.blp:35 msgid "Day" msgstr "Día" -#: data/ui/date_selector.blp:60 +#: data/ui/date_selector.blp:61 msgid "Month" msgstr "Mes" -#: data/ui/date_selector.blp:83 +#: data/ui/date_selector.blp:84 msgid "Year" msgstr "Ano" @@ -330,7 +249,7 @@ msgstr "" "engadido para ver os datos reais e en vivo." #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "Pasos" @@ -342,8 +261,7 @@ msgstr "Pode usar o botón + para engadir unha nova pesaxe." msgid "Weight Measurements" msgstr "Medidas de peso" -#: data/ui/plugins/weight/summary.blp:5 data/ui/preferences_window.blp:184 -#: data/ui/preferences_window.blp:187 data/ui/view_add_weight.blp:38 +#: data/ui/plugins/weight/summary.blp:5 data/ui/view_add_weight.blp:38 #: src/plugins/weight/plugin.rs:39 src/views/view_add_weight.rs:87 msgid "Weight" msgstr "Peso" @@ -368,84 +286,97 @@ msgstr "Prererencias de Saúde" msgid "General" msgstr "Xeral" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "Usuario" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "Sistema de unidades" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "Imperial" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "Métrico" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "Nome de usuario" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "Día de nacemento" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "Altura" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "Notificacións" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "Activar notificacións" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "Frecuencia" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "Hora de recordatorio diario" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:241 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "Obxectivo de pasos" -#: data/ui/preferences_window.blp:170 data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." -msgstr "A OMS recomenda 10.000 pasos diarios." +#: data/ui/preferences_window.blp:179 +msgid "7,500 steps per day are recommended." +msgstr "Recoméndanse 7.500 pasos diarios." -#: data/ui/preferences_window.blp:188 data/ui/setup_window.blp:286 +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 +msgid "Weight Goal" +msgstr "Obxectivo de peso" + +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "A OMS recomenta un IMC de 18.5 a 24.9." -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "IMC obxectivo" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "Sincronizar" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "Comezar sincronización cos fornecedores de terceiros." -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "Importar e exportar datos" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "Exportar datos como CSV" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "Exportar…" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "Importar datos desde CSV" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "Importar…" @@ -477,28 +408,39 @@ msgstr "Benvida a Saúde!" msgid "Please enter some information to get setup." msgstr "Escriba algunha información para configurar." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "Introduza o obxectivo de pasos diario." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:236 +msgid "The WHO recommends 7.500 steps per day." +msgstr "A OMS recomenda 7.500 pasos diarios." + +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "Introduza o obxectivo de peso." -#: data/ui/setup_window.blp:314 -#| msgid "Import weights" +#: data/ui/setup_window.blp:298 +msgid "The WHO recommends a BMI of 18.5–24.9." +msgstr "A OMS recomenda un IMC de 18.5 a 24.9." + +#: data/ui/setup_window.blp:326 msgid "Current weight" msgstr "Peso actual" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:221 +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "IMC actual" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "Obxectivo de peso" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "Configurar a sincronización con fornecedores de terceiros." -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "" @@ -587,11 +529,15 @@ msgstr "_Sobre Saúde" msgid "Enable plugin" msgstr "Activar engadido" -#: src/core/application.rs:169 +#: src/core/application.rs:189 +msgid "A health tracking app for the GNOME desktop." +msgstr "Unha aplicación de seguimento da saúde para o escritorio de GNOME." + +#: src/core/application.rs:191 msgid "translator-credits" -msgstr "Fran Dieguez , 2021-2022." +msgstr "Fran Dieguez , 2021-2023" -#: src/core/application.rs:171 +#: src/core/application.rs:193 msgid "Websites" msgstr "Sitios web" @@ -665,7 +611,7 @@ msgstr "Tenis" #: src/model/activity_info.rs:243 msgid "Track And Field" -msgstr "" +msgstr "Atletismo" #: src/model/activity_info.rs:254 msgid "Volleyball" @@ -675,11 +621,11 @@ msgstr "Voleiball" msgid "Walking" msgstr "Andar" -#: src/model/model_notification.rs:236 +#: src/model/model_notification.rs:234 msgid "Health: walking reminder" msgstr "Saúde: recordatorio de andar" -#: src/model/model_notification.rs:252 +#: src/model/model_notification.rs:250 msgid "{} step remaining to complete your daily step goal." msgid_plural "{} steps remaining to complete your daily step goal." msgstr[0] "Falta {} paso para completar o seu obxectivo de pasos diarios." @@ -689,13 +635,13 @@ msgstr[1] "Faltan {} pasos para completar o seu obxectivo de pasos diarios." msgid "Activities" msgstr "Actividades" -#: src/plugins/activities/summary.rs:93 +#: src/plugins/activities/summary.rs:91 msgid "{} active minute today" msgid_plural "{} active minutes today" msgstr[0] "{} minuto activo hoxe" msgstr[1] "{} minutos activos hoxe" -#: src/plugins/calories/details.rs:215 +#: src/plugins/calories/details.rs:217 msgid "" "{}:\n" "{} calorie\n" @@ -713,86 +659,90 @@ msgstr[1] "" "{} calorias\n" "{}" -#: src/plugins/calories/summary.rs:96 src/plugins/calories/summary.rs:103 +#: src/plugins/calories/summary.rs:97 src/plugins/calories/summary.rs:104 msgid "{} calorie burned today" msgid_plural "{} calories burned today" msgstr[0] "{} caloría queimada hoxe" msgstr[1] "{} calorías queimadas hoxe" #: src/plugins/steps/details.rs:187 -msgid "Today's steps: {}" +msgid "Today’s steps: {}" msgstr "Pasos de hoxe: {}" -#: src/plugins/steps/details.rs:202 +#: src/plugins/steps/details.rs:206 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" "Aínda non hai ningunha racha. Alcance o seu obxectivo de pasos durante " "varios días para comezar unha racha!" -#: src/plugins/steps/details.rs:206 +#: src/plugins/steps/details.rs:210 msgid "" -"You're on a streak for {} day. Reach your step goal today to continue it!" +"You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" -"You're on a streak for {} days. Reach your step goal today to continue it!" +"You’re on a streak for {} days. Reach your step goal today to continue it!" msgstr[0] "" "Está nunha racha de {} día. Alcance o seu obxectivo diario para continuala!" msgstr[1] "" "Está nunha racha de {} días. Alcance o seu obxectivo diario para continuala!" -#: src/plugins/steps/details.rs:214 -msgid "You've reached your step goal today. Keep going to start a streak!" +#: src/plugins/steps/details.rs:218 +msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "" "Acadou o obxectivo de pasos de hoxe. Continúe así para comezar unha racha!" -#: src/plugins/steps/details.rs:217 -msgid "You're on a streak for {} day. Good job!" -msgid_plural "You're on a streak for {} days. Good job!" +#: src/plugins/steps/details.rs:221 +msgid "You’re on a streak for {} day. Good job!" +msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Está nunha racha de {} día. Bo traballo!" msgstr[1] "Está nunha racha de {} días. Bo traballo!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:234 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} paso de {}" msgstr[1] "{} pasos de {}" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "{} paso realizado hoxe" msgstr[1] "{} pasos realizados hoxe" -#: src/plugins/steps/summary.rs:104 +#: src/plugins/steps/summary.rs:107 msgid "Reached {} percent of daily step goal" msgid_plural "Reached {} percent of daily step goal" -msgstr[0] "Alcanzouse o {} porcentaxe do obxectivo de pasos diario." -msgstr[1] "Alcanzouse o {} porcentaxe do obxectivo de pasos diario." +msgstr[0] "Acadouse o {} porcentaxe do obxectivo de pasos diario" +msgstr[1] "Acadouse o {} porcentaxe do obxectivo de pasos diario" + +#: src/plugins/steps/summary.rs:114 +msgid "Well done! You have reached your daily step goal!" +msgstr "Ben feito! Acadou o obxectivo de pasos diario!" -#: src/plugins/weight/details.rs:193 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "IMC actual: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:208 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} libra de {}" msgstr[1] "{} libras de {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:211 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} quilogramo de {}" msgstr[1] "{} quilogramos de {}" -#: src/plugins/weight/details.rs:247 src/plugins/weight/details.rs:252 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "IMC descoñecido" -#: src/plugins/weight/details.rs:271 +#: src/plugins/weight/details.rs:280 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -806,7 +756,7 @@ msgstr[1] "" "O seu obxectivo de peso é {} libras. Engada unha primeira medición de peso " "para ver o cerca que está de alcanzalo." -#: src/plugins/weight/details.rs:278 +#: src/plugins/weight/details.rs:287 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -820,122 +770,118 @@ msgstr[1] "" "O seu obxectivo de peso é {} quilogramos. Engada unha primeira medición de " "peso para ver o cerca que está de alcanzalo." -#: src/plugins/weight/details.rs:287 -msgid "You've reached your weight goal. Great job!" +#: src/plugins/weight/details.rs:296 +msgid "You’ve reached your weight goal. Great job!" msgstr "Alcanzou o seu obxectivo de peso. Gran traballo!" -#. TRANSLATORS: First part of message, ends with [...] you have {} pound left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:303 -msgid "Your weight goal is {} pound," -msgid_plural "Your weight goal is {} pounds," -msgstr[0] "O seu obxectivo de peso é {} libra," -msgstr[1] "O seu obxectivo de peso é {} libras," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:308 -msgid "you have {} pound left to reach it" -msgid_plural "you have {} pounds left to reach it" -msgstr[0] "faltan {} libra para alcanzalo" -msgstr[1] "faltan {} libras para alcanzalo" - -#. TRANSLATORS: First part of message, ends with [...] you have {} kilogram left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:315 -msgid "Your weight goal is {} kilogram," -msgid_plural "Your weight goal is {} kilograms," -msgstr[0] "O seu obxectivo de peso é {} quilogramo," -msgstr[1] "O seu obxectivo de peso é {} quilogramos," - -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:321 -msgid "you have {} kilogram left to reach it" -msgid_plural "you have {} kilograms left to reach it" -msgstr[0] "falta {} quilogramo para alcanzalo" -msgstr[1] "falta {} quilogramos para alcanzalo" - -#: src/plugins/weight/details.rs:331 -msgid "No weight goal set yet. You can set it in Health's preferences." +#: src/plugins/weight/details.rs:312 +msgid "Your weight goal is {} pound." +msgid_plural "Your weight goal is {} pounds." +msgstr[0] "O seu obxectivo de peso é {} libra." +msgstr[1] "O seu obxectivo de peso é {} libras." + +#: src/plugins/weight/details.rs:317 +msgid "You have {} pound left to reach it." +msgid_plural "You have {} pounds left to reach it." +msgstr[0] "Fáltalle {} libra para acadalo." +msgstr[1] "Fáltanlle {} libras para acadalo." + +#: src/plugins/weight/details.rs:324 +msgid "Your weight goal is {} kilogram." +msgid_plural "Your weight goal is {} kilograms." +msgstr[0] "O seu obxectivo de peso é {} quilogramo." +msgstr[1] "O seu obxectivo de peso é {} quilogramos." + +#: src/plugins/weight/details.rs:330 +msgid "You have {} kilogram left to reach it" +msgid_plural "You have {} kilograms left to reach it" +msgstr[0] "Fáltalle {} quilogramo para alcanzalo" +msgstr[1] "Fáltanlle {} quilogramos para alcanzalo" + +#: src/plugins/weight/details.rs:340 +msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" "Non se estabeleceu un obxectivo aínda. Pode estabelecelo desde as " "preferencias de Saúde." -#: src/plugins/weight/summary.rs:120 +#: src/plugins/weight/summary.rs:119 msgid "{} pound" msgid_plural "{} pounds" msgstr[0] "{} libra" msgstr[1] "{} libras" -#: src/plugins/weight/summary.rs:128 +#: src/plugins/weight/summary.rs:127 msgid "{} kilogram" msgid_plural "{} kilograms" msgstr[0] "{} quilogramo" msgstr[1] "{} quilogramos" -#: src/plugins/weight/summary.rs:139 +#: src/plugins/weight/summary.rs:138 msgid "+ {} pound compared to previous measurement" msgid_plural "+ {} pounds compared to previous measurement" msgstr[0] "+ {} libra comparado coa pesaxe anterior" msgstr[1] "+ {} libras comparado coa pesaxe anterior" -#: src/plugins/weight/summary.rs:147 +#: src/plugins/weight/summary.rs:146 msgid "+ {} kilogram compared to previous measurement" msgid_plural "+ {} kilograms compared to previous measurement" msgstr[0] "+ {} quilogramo comparado coa anterior pesaxe" msgstr[1] "+ {} quilogramos comparado coa anterior pesaxe" -#: src/plugins/weight/summary.rs:158 +#: src/plugins/weight/summary.rs:157 msgid "{} pound compared to previous measurement" msgid_plural "{} pounds compared to previous measurement" msgstr[0] "{} libra comparado coa anterior pesaxe" msgstr[1] "{} libras comparado coa anterior pesaxe" -#: src/plugins/weight/summary.rs:166 +#: src/plugins/weight/summary.rs:165 msgid "{} kilogram compared to previous measurement" msgid_plural "{} kilograms compared to previous measurement" msgstr[0] "{} quilogramo comparado coa anterior pesaxe" msgstr[1] "{} quilogramos comparado coa anterior pesaxe" -#: src/plugins/weight/summary.rs:174 +#: src/plugins/weight/summary.rs:173 msgid "No change in weight" msgstr "Ningún cambio no peso" -#: src/plugins/weight/summary.rs:179 +#: src/plugins/weight/summary.rs:178 msgid "No weight data available" msgstr "Non hai datos de peso dispoñíbeis" -#: src/sync/csv.rs:81 src/sync/csv.rs:371 -msgid "No activities added yet; can't create empty export!" +#: src/sync/csv.rs:81 src/sync/csv.rs:370 +msgid "No activities added yet; can’t create empty export!" msgstr "" "Aínda non se engadiron actividades. Non é posíbel crear un exportado baleiro!" -#: src/sync/csv.rs:111 src/sync/csv.rs:389 -msgid "No weight measurements added yet; can't create empty export!" +#: src/sync/csv.rs:111 src/sync/csv.rs:388 +msgid "No weight measurements added yet; can’t create empty export!" msgstr "" -"Aínda non hai pesaxes engadidas. Non é posíbel crear un exportado baleiro!" +"Aínda non hai pesadas engadidas. Non é posíbel crear un exportado baleiro!" -#: src/sync/csv.rs:184 src/sync/csv.rs:333 -msgid "Can't parse encrypted backup without encryption key!" +#: src/sync/csv.rs:184 src/sync/csv.rs:332 +msgid "Can’t parse encrypted backup without encryption key!" msgstr "Non é posíbel analizar o respaldo cifrado sen unha chave de cifrado!" -#: src/sync/csv.rs:195 src/sync/csv.rs:353 +#: src/sync/csv.rs:195 src/sync/csv.rs:352 msgid "" -"Couldn't parse CSV. Are you trying to read an unencrypted backup as an " +"Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " "encrypted one?" msgstr "" "Non é posíbel analizar o CSV. Desexa tentar ler un respaldo non cifrado como " "un cifrado?" #: src/sync/csv.rs:208 -msgid "Couldn't decrypt data. Are you sure you're using the right key?" +msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" msgstr "" "Non é posíbel descifrar os datos. Ten certeza que está usando a chave " "equivocada?" #: src/sync/database_receiver.rs:46 -msgid "Couldn't synchronize steps due to error {}" +msgid "Couldn’t synchronize steps due to error {}" msgstr "Produciuse un fallo ao sincronizar os pasos debido a un erro {}" #: src/sync/database_receiver.rs:60 -msgid "Couldn't synchronize weight measurements due to error {}" +msgid "Couldn’t synchronize weight measurements due to error {}" msgstr "" "Produciuse un fallo ao sincronizar a medición de peso os pasos debido a un " "erro {}" @@ -950,7 +896,7 @@ msgstr "Produciuse un fallo ao solicitar o token de OAuth2 debido a erro {}" #: src/sync/sync_provider.rs:109 msgid "" -"Can't retrieve OAuth2 token when no refresh token is set! Please re-" +"Can’t retrieve OAuth2 token when no refresh token is set! Please re-" "authenticate with your sync provider." msgstr "" "Non é posíbel obter o token de OAuth2 cando non hai un token de refresco " @@ -958,25 +904,25 @@ msgstr "" #: src/sync/sync_provider.rs:157 msgid "Token for Health sync provider {}" -msgstr "" +msgstr "Token para o fornecedor de sincronización de saúde {}" #: src/sync/sync_provider.rs:217 msgid "Successfully authenticated, please return to Health." msgstr "Autenticación exitosa, volva a Saúde." #: src/sync/sync_provider.rs:228 -msgid "Couldn't parse OAuth2 response" +msgid "Couldn’t parse OAuth2 response" msgstr "Non foi posíbel analizar a resposta de OAuth2" -#: src/views/bar_graph_view.rs:584 +#: src/views/bar_graph_view.rs:583 msgid "Enter weight record to calculate idle calories" msgstr "Escriba o rexistro de peso para calcular as calorías baleiras" -#: src/views/bar_graph_view.rs:588 +#: src/views/bar_graph_view.rs:587 msgid "Idle calories" msgstr "Calorías baleiras" -#: src/views/view_add_activity.rs:237 +#: src/views/view_add_activity.rs:236 msgid "Activity" msgstr "Actividade" @@ -1014,13 +960,6 @@ msgid_plural "{} yards" msgstr[0] "{} iarda" msgstr[1] "{} iardas" -#: src/widgets/bmi_level_bar.rs:267 src/windows/preferences_window.rs:411 -#: src/windows/setup_window.rs:249 -#, fuzzy -#| msgid "Current BMI: {}" -msgid "Current BMI" -msgstr "IMC actual: {}" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "IMC actual: {}" @@ -1042,42 +981,42 @@ msgid "Feet" msgstr "Pés" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "qm" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "in" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "ft" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "mi" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "lb" @@ -1095,6 +1034,11 @@ msgstr "Actividades.csv.cifrado" msgid "Activities.csv" msgstr "Actividades.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Non se seleccionou ningún ficheiro." + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "Gardar medida de peso" @@ -1155,21 +1099,83 @@ msgstr "Produciuse un erro!" msgid "Close" msgstr "Pechar" -#: src/windows/setup_window.rs:250 -msgid "Target BMI" -msgstr "" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "" -"Produciuse un falo ao migrar a bases de datos á nova versión debido a un " -"erro {}" - #: src/windows/window.rs:267 -msgid "Couldn't sync Google Fit data due to error: {}" +msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "" "Non foi posíbel sincronizar os datos de Google Fit debido ao un erro: {}" +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "Indica se o usuario completou o titorial de configuración" + +#~ msgid "Whether to enable notifications." +#~ msgstr "Indica se actiar as notificacións." + +#~ msgid "Sets all data source plugins that are enabled in Health." +#~ msgstr "" +#~ "Estabelece todos engadidos de orixes de datos que están activos en Saúde" + +#~ msgid "The time at which Health should remind the user of their step goal" +#~ msgstr "A hora á cal Saúde debe recordarlle ao usuario a súa meta de pasos" + +#~ msgid "" +#~ "How frequent should the user be notified to complete their daily step-" +#~ "goal." +#~ msgstr "" +#~ "Con que frecuencia debería notificarse ao usuario para completar o seu " +#~ "obxectivo de pasos diarios." + +#~ msgid "" +#~ "Activity types the user used recently, to be shown first in the activity " +#~ "types selector's list" +#~ msgstr "" +#~ "Tipos de actividade que o usuario usou recentemente, para ser mostrados " +#~ "de primeiras na lista de seleción de tipo de actividades" + +#~ msgid "Whether Google Fit has been setup as sync provider" +#~ msgstr "" +#~ "Indica se Google Fit pode configurarse como un fornecedor de " +#~ "sincronización" + +#~ msgid "The last time we synched steps, weight etc. with Google Fit" +#~ msgstr "A última vez que se sincroniaron os pasos, peso etc. con Google Fit" + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "" +#~ "A unidade do sistema que o usuario escolle, p.ex. cm ou polgadas para a " +#~ "altura" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "A idade o usuario (obsoleto)" + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "A idade do usuario en termos absolutos (como 01/01/1970)" + +#~ msgid "The height of the user." +#~ msgstr "A altura do usuario." + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "A cantidade de pasos que o usuario quere acadar cada día." + +#~ msgid "The weight the user wants to reach." +#~ msgstr "O peso que o usuario quere acadar." + +#~ msgid "The height of the window." +#~ msgstr "A altura da xanela" + +#~ msgid "Whether the window is maximized." +#~ msgstr "Indica se a xanela está maximizada" + +#~ msgid "The width of the window." +#~ msgstr "A anchura da xanela." + +#~ msgid "@APPLICATION_ID@" +#~ msgstr "@APPLICATION_ID@" + +#~ msgid "Failed to migrate database to new version due to error {}" +#~ msgstr "" +#~ "Produciuse un falo ao migrar a bases de datos á nova versión debido a un " +#~ "erro {}" + #~ msgid "Last opened view" #~ msgstr "Última vista aberta" -- 2.40.1 From 45ac09ec7542559026da1c197caf4d32ffdd9ba4 Mon Sep 17 00:00:00 2001 From: Daniel Mustieles Date: Tue, 14 Mar 2023 16:07:55 +0000 Subject: [PATCH 80/83] Update Spanish translation --- po/es.po | 536 +++++++++++++++++++++++++++---------------------------- 1 file changed, 259 insertions(+), 277 deletions(-) diff --git a/po/es.po b/po/es.po index ddbc5c0..304a8d6 100644 --- a/po/es.po +++ b/po/es.po @@ -3,170 +3,97 @@ # This file is distributed under the same license as the dev.Cogitri.Health package. # Automatically generated, 2021. # Óscar Fernández Díaz , 2021. -# Daniel Mustieles García , 2022. # leo , 2022. +# Daniel Mustieles , 2022-2023. # msgid "" msgstr "" "Project-Id-Version: dev.Cogitri.Health\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" -"POT-Creation-Date: 2022-03-15 08:58+0000\n" -"PO-Revision-Date: 2022-04-16 11:22+0200\n" -"Last-Translator: leo \n" -"Language-Team: Español; Castellano \n" -"Language: es\n" +"POT-Creation-Date: 2022-09-13 17:26+0000\n" +"PO-Revision-Date: 2023-03-14 17:07+0100\n" +"Last-Translator: Daniel Mustieles \n" +"Language-Team: Spanish - Spain \n" +"Language: es_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"X-Generator: Gtranslator 3.38.0\n" +"X-Generator: Gtranslator 42.0\n" #: data/dev.Cogitri.Health.gschema.xml:16 msgid "First time setup done" msgstr "Primera vez que se hizo la instalación" -#: data/dev.Cogitri.Health.gschema.xml:17 -msgid "Whether the user has completed the setup wizard" -msgstr "Si el usuario ha completado el asistente de configuración" - -#: data/dev.Cogitri.Health.gschema.xml:21 +#: data/dev.Cogitri.Health.gschema.xml:20 msgid "Toggle notifications" msgstr "Alternar notificaciones" -#: data/dev.Cogitri.Health.gschema.xml:22 -msgid "Whether to enable notifications." -msgstr "Indica si se activan las notificaciones." - -#: data/dev.Cogitri.Health.gschema.xml:26 +#: data/dev.Cogitri.Health.gschema.xml:24 msgid "Set enabled plugins" msgstr "Configurar los complementos activados" -#: data/dev.Cogitri.Health.gschema.xml:27 -msgid "Sets all data source plugins that are enabled in Health." -msgstr "" - -#: data/dev.Cogitri.Health.gschema.xml:31 +#: data/dev.Cogitri.Health.gschema.xml:28 msgid "Notification time" msgstr "Hora de notificación" #: data/dev.Cogitri.Health.gschema.xml:32 -msgid "The time at which Health should remind the user of their step goal" -msgstr "" -"El momento en el que Salud debe recordarle al usuario su objetivo de pasos" - -#: data/dev.Cogitri.Health.gschema.xml:36 msgid "notification frequency" msgstr "Frecuencia de notificación" -#: data/dev.Cogitri.Health.gschema.xml:37 -msgid "" -"How frequent should the user be notified to complete their daily step-goal." -msgstr "" -"Indica con qué frecuencia se debe notificar al usuario para completar su " -"objetivo de pasos diario." - -#: data/dev.Cogitri.Health.gschema.xml:41 +#: data/dev.Cogitri.Health.gschema.xml:36 msgid "List of recent activity types" msgstr "Lista de tipos de actividad recientes" -#: data/dev.Cogitri.Health.gschema.xml:42 -msgid "" -"Activity types the user used recently, to be shown first in the activity " -"types selector's list" -msgstr "" -"Tipos de actividad que el usuario ha utilizado recientemente, se mostrarán " -"primero en la lista del selector de tipos de actividad" - -#: data/dev.Cogitri.Health.gschema.xml:46 +#: data/dev.Cogitri.Health.gschema.xml:40 msgid "Google Fit Sync-Provider setup" msgstr "Configuración del proveedor de sincronización de Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:47 -msgid "Whether Google Fit has been setup as sync provider" -msgstr "Si Google Fit ha sido configurado como proveedor de sincronización" - -#: data/dev.Cogitri.Health.gschema.xml:51 +#: data/dev.Cogitri.Health.gschema.xml:44 msgid "Last sync with Google Fit" msgstr "Última sincronización con Google Fit" -#: data/dev.Cogitri.Health.gschema.xml:52 -msgid "The last time we synched steps, weight etc. with Google Fit" -msgstr "" -"La última vez que sincronizamos los pasos, el peso, etc. con Google Fit" - -#: data/dev.Cogitri.Health.gschema.xml:56 +#: data/dev.Cogitri.Health.gschema.xml:48 msgid "Unit system used" msgstr "Sistema de unidades utilizado" -#: data/dev.Cogitri.Health.gschema.xml:57 -msgid "The unit system the user chose, e.g. for cm vs inch for height" -msgstr "" -"El sistema de unidades que el usuario eligió, por ejemplo, cm en lugar de " -"pulgadas para la altura" - -#: data/dev.Cogitri.Health.gschema.xml:61 +#: data/dev.Cogitri.Health.gschema.xml:52 msgid "User age" msgstr "Edad del usuario" -#: data/dev.Cogitri.Health.gschema.xml:62 -msgid "The age of the user (deprecated)." -msgstr "La edad del usuario (obsoleto)." - -#: data/dev.Cogitri.Health.gschema.xml:66 +#: data/dev.Cogitri.Health.gschema.xml:56 msgid "Absolute user age" msgstr "Edad absoluta del usuario" -#: data/dev.Cogitri.Health.gschema.xml:67 -msgid "The age of the user in absolute terms (like 01/01/1970)" -msgstr "La edad del usuario en términos absolutos (como 01/01/1970)" - -#: data/dev.Cogitri.Health.gschema.xml:71 +#: data/dev.Cogitri.Health.gschema.xml:60 msgid "User height" msgstr "Altura del usuario" -#: data/dev.Cogitri.Health.gschema.xml:72 -msgid "The height of the user." -msgstr "La altura del usuario." - -#: data/dev.Cogitri.Health.gschema.xml:76 +#: data/dev.Cogitri.Health.gschema.xml:64 msgid "User step goal" msgstr "Objetivo de pasos del usuario" -#: data/dev.Cogitri.Health.gschema.xml:77 -msgid "The amount of steps the user wants to reach daily." -msgstr "La cantidad de pasos que el usuario quiere lograr diariamente." - -#: data/dev.Cogitri.Health.gschema.xml:81 +#: data/dev.Cogitri.Health.gschema.xml:68 msgid "User weight goal" msgstr "Objetivo de peso del usuario" -#: data/dev.Cogitri.Health.gschema.xml:82 -msgid "The weight the user wants to reach." -msgstr "El peso que el usuario quiere lograr." - -#: data/dev.Cogitri.Health.gschema.xml:86 +#: data/dev.Cogitri.Health.gschema.xml:72 msgid "Window height" msgstr "Altura de la ventana" -#: data/dev.Cogitri.Health.gschema.xml:87 -msgid "The height of the window." -msgstr "La altura de la ventana." - -#: data/dev.Cogitri.Health.gschema.xml:91 +#: data/dev.Cogitri.Health.gschema.xml:76 msgid "Window maximized" msgstr "Ventana maximizada" -#: data/dev.Cogitri.Health.gschema.xml:92 -msgid "Whether the window is maximized." -msgstr "Si la ventana está maximizada." - -#: data/dev.Cogitri.Health.gschema.xml:96 +#: data/dev.Cogitri.Health.gschema.xml:80 msgid "Window width" msgstr "Anchura de la ventana" -#: data/dev.Cogitri.Health.gschema.xml:97 -msgid "The width of the window." -msgstr "La anchura de la ventana." +#: data/dev.Cogitri.Health.gschema.xml:84 +#, fuzzy +#| msgid "Active Minutes" +msgid "Active user ID" +msgstr "Minutos activos" #: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 #: data/dev.Cogitri.Health.desktop.in.in:3 @@ -175,14 +102,9 @@ msgstr "La anchura de la ventana." msgid "Health" msgstr "Salud" -#: data/dev.Cogitri.Health.Autostart.desktop.in.in:5 -#: data/dev.Cogitri.Health.desktop.in.in:5 -msgid "@APPLICATION_ID@" -msgstr "@APPLICATION_ID@" - -#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 src/core/application.rs:167 -msgid "A health tracking app for the GNOME desktop." -msgstr "Una aplicación de seguimiento de la salud para el escritorio GNOME." +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 +msgid "Track your fitness goals" +msgstr "" #: data/dev.Cogitri.Health.metainfo.xml.in.in:11 #, fuzzy @@ -191,16 +113,16 @@ msgstr "Una aplicación de seguimiento de la salud para el escritorio GNOME." #| "many steps you've made daily, your weight development over time and your " #| "daily activities." msgid "" -"A health tracking app for the GNOME desktop. Health can visualize how many " -"steps you've made daily, your weight development over time and your daily " -"activities. Data can be synched from Google Fit or manually entered into " -"Health. Afterwards, it can be viewed and edited in Health." +"Health can visualize how many steps you’ve made daily, your weight " +"development over time and your daily activities. Data can be synched from " +"Google Fit or manually entered into Health. Afterwards, it can be viewed and " +"edited in Health." msgstr "" "Una aplicación de seguimiento de la salud para el escritorio GNOME. Salud " "puede visualizar cuántos pasos ha hecho diariamente, el desarrollo de su " "peso durante el tiempo y sus actividades diarias." -#: data/dev.Cogitri.Health.metainfo.xml.in.in:37 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:36 msgid "Rasmus “Cogitri” Thomsen" msgstr "Rasmus “Cogitri” Thomsen" @@ -215,63 +137,63 @@ msgstr "_Cancelar" msgid "_Save" msgstr "_Guardar" -#: data/ui/date_selector.blp:17 +#: data/ui/date_selector.blp:18 msgid "January" msgstr "Enero" -#: data/ui/date_selector.blp:18 src/widgets/date_selector.rs:223 +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:223 msgid "February" msgstr "Febrero" -#: data/ui/date_selector.blp:19 +#: data/ui/date_selector.blp:20 msgid "March" msgstr "Marzo" -#: data/ui/date_selector.blp:20 +#: data/ui/date_selector.blp:21 msgid "April" msgstr "Abril" -#: data/ui/date_selector.blp:21 +#: data/ui/date_selector.blp:22 msgid "May" msgstr "Mayo" -#: data/ui/date_selector.blp:22 +#: data/ui/date_selector.blp:23 msgid "June" msgstr "Junio" -#: data/ui/date_selector.blp:23 +#: data/ui/date_selector.blp:24 msgid "July" msgstr "Julio" -#: data/ui/date_selector.blp:24 +#: data/ui/date_selector.blp:25 msgid "August" msgstr "Agosto" -#: data/ui/date_selector.blp:25 +#: data/ui/date_selector.blp:26 msgid "September" msgstr "Septiembre" -#: data/ui/date_selector.blp:26 +#: data/ui/date_selector.blp:27 msgid "October" msgstr "Octubre" -#: data/ui/date_selector.blp:27 +#: data/ui/date_selector.blp:28 msgid "November" msgstr "Noviembre" -#: data/ui/date_selector.blp:28 +#: data/ui/date_selector.blp:29 msgid "December" msgstr "Diciembre" -#: data/ui/date_selector.blp:34 +#: data/ui/date_selector.blp:35 msgid "Day" msgstr "Día" -#: data/ui/date_selector.blp:60 +#: data/ui/date_selector.blp:61 msgid "Month" msgstr "Mes" -#: data/ui/date_selector.blp:83 +#: data/ui/date_selector.blp:84 msgid "Year" msgstr "Año" @@ -327,7 +249,7 @@ msgid "" msgstr "" #: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 -#: data/ui/preferences_window.blp:166 src/plugins/steps/plugin.rs:39 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 msgid "Steps" msgstr "Pasos" @@ -364,92 +286,97 @@ msgstr "Preferencias de Salud" msgid "General" msgstr "General" -#: data/ui/preferences_window.blp:72 +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1109 msgid "User" msgstr "Usuario" -#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:152 +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 msgid "Unit system" msgstr "Sistema de unidades" -#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:162 +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 msgid "Imperial" msgstr "Imperial" -#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:168 +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 msgid "Metric" msgstr "Métrico" -#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:176 +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "Nombre de usuario" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 msgid "Birthday" msgstr "Cumpleaños" -#: data/ui/preferences_window.blp:108 data/ui/setup_window.blp:185 +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 msgid "Height" msgstr "Altura" -#: data/ui/preferences_window.blp:122 +#: data/ui/preferences_window.blp:131 msgid "Notifications" msgstr "Notificaciones" -#: data/ui/preferences_window.blp:125 +#: data/ui/preferences_window.blp:134 msgid "Enable notifications" msgstr "Activar notificaciones" -#: data/ui/preferences_window.blp:136 +#: data/ui/preferences_window.blp:145 msgid "Frequency" msgstr "Frecuencia" -#: data/ui/preferences_window.blp:149 +#: data/ui/preferences_window.blp:158 msgid "Daily reminder time" msgstr "Hora del recordatorio diario" -#: data/ui/preferences_window.blp:169 data/ui/setup_window.blp:248 -#: src/plugins/steps/details.rs:240 +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:245 msgid "Step goal" msgstr "Objetivo de pasos" -#: data/ui/preferences_window.blp:170 -#, fuzzy -#| msgid "The WHO recommends 10.000 steps per day." -msgid "The WHO recommends 10,000 steps per day." -msgstr "La OMS recomienda 10.000 pasos al día." +#: data/ui/preferences_window.blp:179 +msgid "7,500 steps per day are recommended." +msgstr "" -#: data/ui/preferences_window.blp:184 data/ui/preferences_window.blp:187 -#, fuzzy -#| msgid "Weight goal" +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 msgid "Weight Goal" msgstr "Objetivo de peso" -#: data/ui/preferences_window.blp:188 data/ui/setup_window.blp:286 +#: data/ui/preferences_window.blp:196 msgid "The WHO recommends a BMI of 18.5-24.9." msgstr "La OMS recomienda un IMC de 18,5-24,9." -#: data/ui/preferences_window.blp:212 +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "IMC objetivo" + +#: data/ui/preferences_window.blp:220 msgid "Sync" msgstr "Sincronizar" -#: data/ui/preferences_window.blp:216 +#: data/ui/preferences_window.blp:224 msgid "Start sync with third-party providers." msgstr "Iniciar la sincronización con proveedores de terceros." -#: data/ui/preferences_window.blp:224 +#: data/ui/preferences_window.blp:232 msgid "Importing and exporting data" msgstr "Importar y exportar datos" -#: data/ui/preferences_window.blp:227 +#: data/ui/preferences_window.blp:235 msgid "Export data as CSV" msgstr "Exportar datos como CSV" -#: data/ui/preferences_window.blp:230 +#: data/ui/preferences_window.blp:238 msgid "Export…" msgstr "Exportar…" -#: data/ui/preferences_window.blp:237 +#: data/ui/preferences_window.blp:245 msgid "Import data from CSV" msgstr "Importar datos desde CSV" -#: data/ui/preferences_window.blp:240 +#: data/ui/preferences_window.blp:248 msgid "Import…" msgstr "Importar…" @@ -481,33 +408,39 @@ msgstr "¡Bienvenido/a a Salud!" msgid "Please enter some information to get setup." msgstr "Por favor, introduce alguna información para prepararte." -#: data/ui/setup_window.blp:212 +#: data/ui/setup_window.blp:224 msgid "Please enter your daily step goal." msgstr "Introduzca su objetivo diario de pasos." -#: data/ui/setup_window.blp:224 -msgid "The WHO recommends 10.000 steps per day." -msgstr "La OMS recomienda 10.000 pasos al día." +#: data/ui/setup_window.blp:236 +msgid "The WHO recommends 7.500 steps per day." +msgstr "La OMS recomienda 7500 pasos al día." -#: data/ui/setup_window.blp:274 +#: data/ui/setup_window.blp:286 msgid "Please enter your weight goal." msgstr "Introduzca su objetivo de peso." -#: data/ui/setup_window.blp:314 -#, fuzzy -#| msgid "Import weights" +#: data/ui/setup_window.blp:298 +msgid "The WHO recommends a BMI of 18.5–24.9." +msgstr "La OMS recomienda un IMC de 18,5-24,9." + +#: data/ui/setup_window.blp:326 msgid "Current weight" -msgstr "Importar pesos" +msgstr "Peso actual" + +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:267 +msgid "Current BMI" +msgstr "IMC actual" -#: data/ui/setup_window.blp:337 src/plugins/weight/details.rs:220 +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:230 msgid "Weight goal" msgstr "Objetivo de peso" -#: data/ui/setup_window.blp:372 +#: data/ui/setup_window.blp:386 msgid "Setup sync with third-party providers." msgstr "Configurar la sincronización con proveedores de terceros." -#: data/ui/setup_window.blp:384 +#: data/ui/setup_window.blp:398 msgid "" "You can sync steps and weight measurements from/to third-party providers." msgstr "" @@ -595,13 +528,17 @@ msgstr "_Acerca de Salud" msgid "Enable plugin" msgstr "Activar complemento" -#: src/core/application.rs:169 +#: src/core/application.rs:189 +msgid "A health tracking app for the GNOME desktop." +msgstr "Una aplicación de seguimiento de la salud para el escritorio GNOME." + +#: src/core/application.rs:191 msgid "translator-credits" msgstr "" "Óscar Fernández Díaz\n" "Rodrigo Lledó , 2021" -#: src/core/application.rs:171 +#: src/core/application.rs:193 msgid "Websites" msgstr "Páginas web" @@ -690,13 +627,10 @@ msgid "Health: walking reminder" msgstr "Salud: recordatorio de caminata" #: src/model/model_notification.rs:250 -#, fuzzy -#| msgid "{} step remaining to complete your daily step goal" -#| msgid_plural "{} steps remaining to complete your daily step goal" msgid "{} step remaining to complete your daily step goal." msgid_plural "{} steps remaining to complete your daily step goal." -msgstr[0] "{} pasos restantes para completar su objetivo diario" -msgstr[1] "{} pasos restantes para completar su objetivo diario" +msgstr[0] "{} pasos restantes para completar su objetivo diario." +msgstr[1] "{} pasos restantes para completar su objetivo diario." #: src/plugins/activities/plugin.rs:39 msgid "Activities" @@ -732,22 +666,22 @@ msgid_plural "{} calories burned today" msgstr[0] "{} caloría quemada hoy" msgstr[1] "{} calorías quemadas hoy" -#: src/plugins/steps/details.rs:186 -msgid "Today's steps: {}" +#: src/plugins/steps/details.rs:187 +msgid "Today’s steps: {}" msgstr "Pasos hoy: {}" -#: src/plugins/steps/details.rs:201 +#: src/plugins/steps/details.rs:206 msgid "" "No streak yet. Reach your step goal for multiple days to start a streak!" msgstr "" "Aún no hay racha. ¡Alcance su objetivo de pasos durante varios días para " "comenzar una racha!" -#: src/plugins/steps/details.rs:205 +#: src/plugins/steps/details.rs:210 msgid "" -"You're on a streak for {} day. Reach your step goal today to continue it!" +"You’re on a streak for {} day. Reach your step goal today to continue it!" msgid_plural "" -"You're on a streak for {} days. Reach your step goal today to continue it!" +"You’re on a streak for {} days. Reach your step goal today to continue it!" msgstr[0] "" "Está en una racha de {} día. ¡Alcance su objetivo de pasos de hoy para " "continuar!" @@ -755,31 +689,31 @@ msgstr[1] "" "Está en una racha de {} días. ¡Alcance su objetivo de pasos de hoy para " "continuar!" -#: src/plugins/steps/details.rs:213 -msgid "You've reached your step goal today. Keep going to start a streak!" +#: src/plugins/steps/details.rs:218 +msgid "You’ve reached your step goal today. Keep going to start a streak!" msgstr "" "Ha alcanzado su objetivo de pasos de hoy. ¡Siga para comenzar una racha!" -#: src/plugins/steps/details.rs:216 -msgid "You're on a streak for {} day. Good job!" -msgid_plural "You're on a streak for {} days. Good job!" +#: src/plugins/steps/details.rs:221 +msgid "You’re on a streak for {} day. Good job!" +msgid_plural "You’re on a streak for {} days. Good job!" msgstr[0] "Está en una racha de {} día. ¡Buen trabajo!" msgstr[1] "Está en una racha de {} días. ¡Buen trabajo!" #. TRANSLATORS: X step(s) on DATE -#: src/plugins/steps/details.rs:233 +#: src/plugins/steps/details.rs:238 msgid "{} step on {}" msgid_plural "{} steps on {}" msgstr[0] "{} paso el {}" msgstr[1] "{} pasos el {}" -#: src/plugins/steps/summary.rs:94 +#: src/plugins/steps/summary.rs:96 msgid "{} step taken today" msgid_plural "{} steps taken today" msgstr[0] "{} paso dados hoy" msgstr[1] "{} pasos dados hoy" -#: src/plugins/steps/summary.rs:105 +#: src/plugins/steps/summary.rs:107 #, fuzzy #| msgid "Please enter your daily step goal." msgid "Reached {} percent of daily step goal" @@ -787,35 +721,35 @@ msgid_plural "Reached {} percent of daily step goal" msgstr[0] "Introduzca su objetivo diario de pasos." msgstr[1] "Introduzca su objetivo diario de pasos." -#: src/plugins/steps/summary.rs:112 +#: src/plugins/steps/summary.rs:114 #, fuzzy #| msgid "Please enter your daily step goal." msgid "Well done! You have reached your daily step goal!" msgstr "Introduzca su objetivo diario de pasos." -#: src/plugins/weight/details.rs:192 +#: src/plugins/weight/details.rs:202 msgid "Current BMI: {}" msgstr "IMC actual: {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:207 +#: src/plugins/weight/details.rs:217 msgid "{} pound on {}" msgid_plural "{} pounds on {}" msgstr[0] "{} libra el {}" msgstr[1] "{} libras el {}" #. TRANSLATORS: Weight X on date Y -#: src/plugins/weight/details.rs:210 +#: src/plugins/weight/details.rs:220 msgid "{} kilogram on {}" msgid_plural "{} kilograms on {}" msgstr[0] "{} kilogramo el {}" msgstr[1] "{} kilogramos el {}" -#: src/plugins/weight/details.rs:246 src/plugins/weight/details.rs:251 +#: src/plugins/weight/details.rs:257 src/plugins/weight/details.rs:262 msgid "Unknown BMI" msgstr "IMC desconocido" -#: src/plugins/weight/details.rs:270 +#: src/plugins/weight/details.rs:280 msgid "" "Your weight goal is {} pound. Add a first weight measurement to see how " "close you are to reaching it." @@ -829,7 +763,7 @@ msgstr[1] "" "Su objetivo de peso es de {} libras. Agregue una primera medida de peso para " "ver qué tan cerca está de alcanzarla." -#: src/plugins/weight/details.rs:277 +#: src/plugins/weight/details.rs:287 msgid "" "Your weight goal is {} kilogram. Add a first weight measurement to see how " "close you are to reaching it." @@ -843,40 +777,36 @@ msgstr[1] "" "Su objetivo de peso es de {} kilogramos. Agregue una primera medida de peso " "para ver qué tan cerca está de alcanzarla." -#: src/plugins/weight/details.rs:286 -msgid "You've reached your weight goal. Great job!" +#: src/plugins/weight/details.rs:296 +msgid "You’ve reached your weight goal. Great job!" msgstr "Ha alcanzado su objetivo de peso. ¡Gran trabajo!" -#. TRANSLATORS: First part of message, ends with [...] you have {} pound left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:302 -msgid "Your weight goal is {} pound," -msgid_plural "Your weight goal is {} pounds," +#: src/plugins/weight/details.rs:312 +msgid "Your weight goal is {} pound." +msgid_plural "Your weight goal is {} pounds." msgstr[0] "Su objetivo de peso es {} libra" msgstr[1] "Su objetivo de peso es {} libras" -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:307 -msgid "you have {} pound left to reach it" -msgid_plural "you have {} pounds left to reach it" -msgstr[0] "le queda {} libra para alcanzarlo" -msgstr[1] "le quedan {} libras para alcanzarlo" - -#. TRANSLATORS: First part of message, ends with [...] you have {} kilogram left to reach it[.] See next source string. -#: src/plugins/weight/details.rs:314 -msgid "Your weight goal is {} kilogram," -msgid_plural "Your weight goal is {} kilograms," +#: src/plugins/weight/details.rs:317 +msgid "You have {} pound left to reach it." +msgid_plural "You have {} pounds left to reach it." +msgstr[0] "Le queda {} libra para alcanzarlo" +msgstr[1] "Le quedan {} libras para alcanzarlo" + +#: src/plugins/weight/details.rs:324 +msgid "Your weight goal is {} kilogram." +msgid_plural "Your weight goal is {} kilograms." msgstr[0] "Su objetivo de peso es de {} kilogramo" msgstr[1] "Su objetivo de peso es de {} kilogramos" -#. TRANSLATORS: Second (final) part of message, see previous source string. -#: src/plugins/weight/details.rs:320 -msgid "you have {} kilogram left to reach it" -msgid_plural "you have {} kilograms left to reach it" -msgstr[0] "le queda {} kilogramo para alcanzar su objetivo" -msgstr[1] "le quedan {} kilogramos para alcanzar su objetivo" - #: src/plugins/weight/details.rs:330 -msgid "No weight goal set yet. You can set it in Health's preferences." +msgid "You have {} kilogram left to reach it" +msgid_plural "You have {} kilograms left to reach it" +msgstr[0] "Le queda {} kilogramo para alcanzar su objetivo" +msgstr[1] "Le quedan {} kilogramos para alcanzar su objetivo" + +#: src/plugins/weight/details.rs:340 +msgid "No weight goal set yet. You can set it in Health’s preferences." msgstr "" "Aún no se ha establecido un objetivo de peso. Puede configurarlo en las " "preferencias de Salud." @@ -894,36 +824,28 @@ msgstr[0] "{} kilogramo" msgstr[1] "{} kilogramos" #: src/plugins/weight/summary.rs:138 -#, fuzzy -#| msgid "compared to previous weight" msgid "+ {} pound compared to previous measurement" msgid_plural "+ {} pounds compared to previous measurement" -msgstr[0] "comparado con el peso anterior" -msgstr[1] "comparado con el peso anterior" +msgstr[0] "+ {} libra comparado con el peso anterior" +msgstr[1] "+ {} libras comparado con el peso anterior" #: src/plugins/weight/summary.rs:146 -#, fuzzy -#| msgid "compared to previous weight" msgid "+ {} kilogram compared to previous measurement" msgid_plural "+ {} kilograms compared to previous measurement" -msgstr[0] "comparado con el peso anterior" -msgstr[1] "comparado con el peso anterior" +msgstr[0] "{} kilogramo comparado con el peso anterior" +msgstr[1] "{} kilogramos comparado con el peso anterior" #: src/plugins/weight/summary.rs:157 -#, fuzzy -#| msgid "compared to previous weight" msgid "{} pound compared to previous measurement" msgid_plural "{} pounds compared to previous measurement" -msgstr[0] "comparado con el peso anterior" -msgstr[1] "comparado con el peso anterior" +msgstr[0] "+ {} libra comparado con el peso anterior" +msgstr[1] "+ {} libras comparado con el peso anterior" #: src/plugins/weight/summary.rs:165 -#, fuzzy -#| msgid "compared to previous weight" msgid "{} kilogram compared to previous measurement" msgid_plural "{} kilograms compared to previous measurement" -msgstr[0] "comparado con el peso anterior" -msgstr[1] "comparado con el peso anterior" +msgstr[0] "{} kilogramo comparado con el peso anterior" +msgstr[1] "{} kilogramos comparado con el peso anterior" #: src/plugins/weight/summary.rs:173 msgid "No change in weight" @@ -934,40 +856,40 @@ msgid "No weight data available" msgstr "No hay datos del peso disponibles" #: src/sync/csv.rs:81 src/sync/csv.rs:370 -msgid "No activities added yet; can't create empty export!" +msgid "No activities added yet; can’t create empty export!" msgstr "" -"Aún no se agregaron actividades. No se puede crear una exportación vacía." +"Aún no se han añadido actividades. No se puede crear una exportación vacía." #: src/sync/csv.rs:111 src/sync/csv.rs:388 -msgid "No weight measurements added yet; can't create empty export!" +msgid "No weight measurements added yet; can’t create empty export!" msgstr "" "Aún no se agregaron medidas de peso. No se puede crear una exportación vacía." #: src/sync/csv.rs:184 src/sync/csv.rs:332 -msgid "Can't parse encrypted backup without encryption key!" +msgid "Can’t parse encrypted backup without encryption key!" msgstr "" "No se puede analizar una copia de seguridad cifrada sin una clave de cifrado." #: src/sync/csv.rs:195 src/sync/csv.rs:352 msgid "" -"Couldn't parse CSV. Are you trying to read an unencrypted backup as an " +"Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " "encrypted one?" msgstr "" "No se pudo analizar el CSV. ¿Está intentando leer una copia de seguridad no " "cifrada como cifrada?" #: src/sync/csv.rs:208 -msgid "Couldn't decrypt data. Are you sure you're using the right key?" +msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" msgstr "" "No se pudieron descifrar los datos. ¿Está seguro de que está usando la clave " "correcta?" #: src/sync/database_receiver.rs:46 -msgid "Couldn't synchronize steps due to error {}" +msgid "Couldn’t synchronize steps due to error {}" msgstr "No se pudieron sincronizar los pasos debido al error {}" #: src/sync/database_receiver.rs:60 -msgid "Couldn't synchronize weight measurements due to error {}" +msgid "Couldn’t synchronize weight measurements due to error {}" msgstr "No se pudieron sincronizar las medidas de peso debido al error {}" #: src/sync/google_fit.rs:211 @@ -980,12 +902,11 @@ msgstr "Falló al solicitar el identificador OAuth2 debido al error {}" #: src/sync/sync_provider.rs:109 msgid "" -"Can't retrieve OAuth2 token when no refresh token is set! Please re-" +"Can’t retrieve OAuth2 token when no refresh token is set! Please re-" "authenticate with your sync provider." msgstr "" "No se puede recuperar el identificador OAuth2 cuando no se establece ningún " -"identificador de actualización. Vuelva a autenticarse con su proveedor de " -"sincronización." +"testigo. Vuelva a autenticarse con su proveedor de sincronización." #: src/sync/sync_provider.rs:157 msgid "Token for Health sync provider {}" @@ -996,7 +917,7 @@ msgid "Successfully authenticated, please return to Health." msgstr "Autenticado exitosamente, regrese a Salud." #: src/sync/sync_provider.rs:228 -msgid "Couldn't parse OAuth2 response" +msgid "Couldn’t parse OAuth2 response" msgstr "No se pudo analizar la respuesta de OAuth2" #: src/views/bar_graph_view.rs:583 @@ -1045,12 +966,6 @@ msgid_plural "{} yards" msgstr[0] "{} yarda" msgstr[1] "{} yardas" -#: src/widgets/bmi_level_bar.rs:267 src/windows/setup_window.rs:248 -#, fuzzy -#| msgid "Current BMI: {}" -msgid "Current BMI" -msgstr "IMC actual: {}" - #: src/widgets/bmi_level_bar.rs:274 msgid "Current BMI: {}" msgstr "IMC actual: {}" @@ -1072,42 +987,42 @@ msgid "Feet" msgstr "Pies" #. TRANSLATORS: Unit abbreviation (centimeters) -#: src/widgets/unit_spinbutton.rs:475 src/widgets/unit_spinbutton.rs:635 +#: src/widgets/unit_spinbutton.rs:488 src/widgets/unit_spinbutton.rs:654 msgid "cm" msgstr "cm" #. TRANSLATORS: Unit abbreviation (meters) -#: src/widgets/unit_spinbutton.rs:477 +#: src/widgets/unit_spinbutton.rs:490 msgid "m" msgstr "m" #. TRANSLATORS: Unit abbreviation (kilometers) -#: src/widgets/unit_spinbutton.rs:479 +#: src/widgets/unit_spinbutton.rs:492 msgid "km" msgstr "km" #. TRANSLATORS: Unit abbreviation (kilograms) -#: src/widgets/unit_spinbutton.rs:481 +#: src/widgets/unit_spinbutton.rs:494 msgid "kg" msgstr "kg" #. TRANSLATORS: Unit abbreviation (inch) -#: src/widgets/unit_spinbutton.rs:483 src/widgets/unit_spinbutton.rs:637 +#: src/widgets/unit_spinbutton.rs:496 src/widgets/unit_spinbutton.rs:656 msgid "in" msgstr "in" #. TRANSLATORS: Unit abbreviation (feet) -#: src/widgets/unit_spinbutton.rs:485 +#: src/widgets/unit_spinbutton.rs:498 msgid "ft" msgstr "ft" #. TRANSLATORS: Unit abbreviation (miles) -#: src/widgets/unit_spinbutton.rs:487 +#: src/widgets/unit_spinbutton.rs:500 msgid "mi" msgstr "mi" #. TRANSLATORS: Unit abbreviation (pounds) -#: src/widgets/unit_spinbutton.rs:489 +#: src/widgets/unit_spinbutton.rs:502 msgid "lb" msgstr "lb" @@ -1125,6 +1040,11 @@ msgstr "Actividades.csv.encrypted" msgid "Activities.csv" msgstr "Actividades.csv" +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "Ningún archivo seleccionado." + #: src/windows/export_dialog.rs:87 msgid "Save Weight Measurement" msgstr "Guardar medición de peso" @@ -1185,20 +1105,85 @@ msgstr "Ocurrió un error" msgid "Close" msgstr "Cerrar" -#: src/windows/preferences_window.rs:409 src/windows/setup_window.rs:249 -msgid "Target BMI" -msgstr "" - -#: src/windows/window.rs:97 -msgid "Failed to migrate database to new version due to error {}" -msgstr "" -"No se pudo migrar la base de datos a la nueva versión debido al error {}" - #: src/windows/window.rs:267 -msgid "Couldn't sync Google Fit data due to error: {}" +#, fuzzy +#| msgid "Couldn't sync Google Fit data due to error: {}" +msgid "Couldn’t sync Google Fit data due to error: {}" msgstr "" "No se pudieron sincronizar los datos de Google Fit debido a un error: {}" +#~ msgid "Whether the user has completed the setup wizard" +#~ msgstr "Si el usuario ha completado el asistente de configuración" + +#~ msgid "Whether to enable notifications." +#~ msgstr "Indica si se activan las notificaciones." + +#~ msgid "The time at which Health should remind the user of their step goal" +#~ msgstr "" +#~ "El momento en el que Salud debe recordarle al usuario su objetivo de pasos" + +#~ msgid "" +#~ "How frequent should the user be notified to complete their daily step-" +#~ "goal." +#~ msgstr "" +#~ "Indica con qué frecuencia se debe notificar al usuario para completar su " +#~ "objetivo de pasos diario." + +#~ msgid "" +#~ "Activity types the user used recently, to be shown first in the activity " +#~ "types selector's list" +#~ msgstr "" +#~ "Tipos de actividad que el usuario ha utilizado recientemente, se " +#~ "mostrarán primero en la lista del selector de tipos de actividad" + +#~ msgid "Whether Google Fit has been setup as sync provider" +#~ msgstr "Si Google Fit ha sido configurado como proveedor de sincronización" + +#~ msgid "The last time we synched steps, weight etc. with Google Fit" +#~ msgstr "" +#~ "La última vez que sincronizamos los pasos, el peso, etc. con Google Fit" + +#~ msgid "The unit system the user chose, e.g. for cm vs inch for height" +#~ msgstr "" +#~ "El sistema de unidades que el usuario eligió, por ejemplo, cm en lugar de " +#~ "pulgadas para la altura" + +#~ msgid "The age of the user (deprecated)." +#~ msgstr "La edad del usuario (obsoleto)." + +#~ msgid "The age of the user in absolute terms (like 01/01/1970)" +#~ msgstr "La edad del usuario en términos absolutos (como 01/01/1970)" + +#~ msgid "The height of the user." +#~ msgstr "La altura del usuario." + +#~ msgid "The amount of steps the user wants to reach daily." +#~ msgstr "La cantidad de pasos que el usuario quiere lograr diariamente." + +#~ msgid "The weight the user wants to reach." +#~ msgstr "El peso que el usuario quiere lograr." + +#~ msgid "The height of the window." +#~ msgstr "La altura de la ventana." + +#~ msgid "Whether the window is maximized." +#~ msgstr "Si la ventana está maximizada." + +#~ msgid "The width of the window." +#~ msgstr "La anchura de la ventana." + +#~ msgid "@APPLICATION_ID@" +#~ msgstr "@APPLICATION_ID@" + +#, fuzzy +#~| msgid "The WHO recommends 10.000 steps per day." +#~ msgid "The WHO recommends 10,000 steps per day." +#~ msgstr "La OMS recomienda 10.000 pasos al día." + +#~ msgid "Failed to migrate database to new version due to error {}" +#~ msgstr "" +#~ "No se pudo migrar la base de datos a la nueva versión debido al error {}" + #~ msgid "Last opened view" #~ msgstr "Última vista abierta" @@ -1295,9 +1280,6 @@ msgstr "" #~ msgid "Distance in Yards" #~ msgstr "Distancia en yardas" -#~ msgid "No activity selected" -#~ msgstr "No hay actividad seleccionada" - #~ msgid "Failed to save new data due to error %s" #~ msgstr "No se guardaron los nuevos datos debido a un error %s" -- 2.40.1 From 606c7ce4151fcea68e1975752629b9a4d3f4674c Mon Sep 17 00:00:00 2001 From: Ekaterine Papava Date: Wed, 22 Mar 2023 03:14:11 +0000 Subject: [PATCH 81/83] Add Georgian translation --- po/LINGUAS | 1 + po/ka.po | 1034 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1035 insertions(+) create mode 100644 po/ka.po diff --git a/po/LINGUAS b/po/LINGUAS index 5830fb3..67ca1a4 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -14,6 +14,7 @@ hr hu id it +ka nl oc pt diff --git a/po/ka.po b/po/ka.po new file mode 100644 index 0000000..774bdc2 --- /dev/null +++ b/po/ka.po @@ -0,0 +1,1034 @@ +# Georgian translation for health. +# Copyright (C) 2023 health's COPYRIGHT HOLDER +# This file is distributed under the same license as the health package. +# Ekaterine Papava , 2023. +# +msgid "" +msgstr "" +"Project-Id-Version: health master\n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/World/Health/issues\n" +"POT-Creation-Date: 2023-03-14 16:08+0000\n" +"PO-Revision-Date: 2023-03-22 04:13+0100\n" +"Last-Translator: Ekaterine Papava \n" +"Language-Team: Georgian \n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 3.2.2\n" + +#: data/dev.Cogitri.Health.gschema.xml:16 +msgid "First time setup done" +msgstr "პირველადი მორგება დასრულდა" + +#: data/dev.Cogitri.Health.gschema.xml:20 +msgid "Toggle notifications" +msgstr "შეტყობინებების გადართვა" + +#: data/dev.Cogitri.Health.gschema.xml:24 +msgid "Set enabled plugins" +msgstr "ჩართული დამატებების დაყენება" + +#: data/dev.Cogitri.Health.gschema.xml:28 +msgid "Notification time" +msgstr "შეტყობინების დრო" + +#: data/dev.Cogitri.Health.gschema.xml:32 +msgid "notification frequency" +msgstr "გაფრთხილების სიხშირე" + +#: data/dev.Cogitri.Health.gschema.xml:36 +msgid "List of recent activity types" +msgstr "" + +#: data/dev.Cogitri.Health.gschema.xml:40 +msgid "Google Fit Sync-Provider setup" +msgstr "" + +#: data/dev.Cogitri.Health.gschema.xml:44 +msgid "Last sync with Google Fit" +msgstr "" + +#: data/dev.Cogitri.Health.gschema.xml:48 +msgid "Unit system used" +msgstr "გამოყენებული ერთეულის სისტემა" + +#: data/dev.Cogitri.Health.gschema.xml:52 +msgid "User age" +msgstr "მომხმარებლის ასაკი" + +#: data/dev.Cogitri.Health.gschema.xml:56 +msgid "Absolute user age" +msgstr "მომხმარებლის აბსოლუტური ასაკი" + +#: data/dev.Cogitri.Health.gschema.xml:60 +msgid "User height" +msgstr "მომხმარებლის სიმაღლე" + +#: data/dev.Cogitri.Health.gschema.xml:64 +msgid "User step goal" +msgstr "მომხმარებლის ნაბიჯის მიზანი" + +#: data/dev.Cogitri.Health.gschema.xml:68 +msgid "User weight goal" +msgstr "მომხმარებლის წონის მიზანი" + +#: data/dev.Cogitri.Health.gschema.xml:72 +msgid "Window height" +msgstr "ფანჯრის სიმაღლე" + +#: data/dev.Cogitri.Health.gschema.xml:76 +msgid "Window maximized" +msgstr "გადიდებული ფანჯარა" + +#: data/dev.Cogitri.Health.gschema.xml:80 +msgid "Window width" +msgstr "ფანჯრის სიგანე" + +#: data/dev.Cogitri.Health.gschema.xml:84 +msgid "Active user ID" +msgstr "აქტიური მომხმარებლის ID" + +#: data/dev.Cogitri.Health.Autostart.desktop.in.in:3 +#: data/dev.Cogitri.Health.desktop.in.in:3 +#: data/dev.Cogitri.Health.metainfo.xml.in.in:4 data/ui/window.blp:37 +#: src/main.rs:31 +msgid "Health" +msgstr "ჯანმრთელობა" + +#: data/dev.Cogitri.Health.metainfo.xml.in.in:9 +msgid "Track your fitness goals" +msgstr "" + +#: data/dev.Cogitri.Health.metainfo.xml.in.in:11 +msgid "" +"Health can visualize how many steps you’ve made daily, your weight " +"development over time and your daily activities. Data can be synched from " +"Google Fit or manually entered into Health. Afterwards, it can be viewed and " +"edited in Health." +msgstr "" + +#: data/dev.Cogitri.Health.metainfo.xml.in.in:36 +msgid "Rasmus “Cogitri” Thomsen" +msgstr "Rasmus \"Cogitri\" Thomsen" + +#: data/ui/data_add_dialog.blp:5 data/ui/import_export_dialog_base.blp:5 +#: src/windows/export_dialog.rs:53 src/windows/export_dialog.rs:89 +#: src/windows/import_dialog.rs:53 src/windows/import_dialog.rs:82 +msgid "_Cancel" +msgstr "_გაუქმება" + +#: data/ui/data_add_dialog.blp:10 src/windows/export_dialog.rs:52 +#: src/windows/export_dialog.rs:88 +msgid "_Save" +msgstr "_შენახვა" + +#: data/ui/date_selector.blp:18 +msgid "January" +msgstr "იანვარი" + +#: data/ui/date_selector.blp:19 src/widgets/date_selector.rs:220 +msgid "February" +msgstr "თებერვალი" + +#: data/ui/date_selector.blp:20 +msgid "March" +msgstr "მარტი" + +#: data/ui/date_selector.blp:21 +msgid "April" +msgstr "აპრილი" + +#: data/ui/date_selector.blp:22 +msgid "May" +msgstr "მაი" + +#: data/ui/date_selector.blp:23 +msgid "June" +msgstr "ივნისი" + +#: data/ui/date_selector.blp:24 +msgid "July" +msgstr "ივლისი" + +#: data/ui/date_selector.blp:25 +msgid "August" +msgstr "აგვისტო" + +#: data/ui/date_selector.blp:26 +msgid "September" +msgstr "სექტემბერი" + +#: data/ui/date_selector.blp:27 +msgid "October" +msgstr "ოქტომბერი" + +#: data/ui/date_selector.blp:28 +msgid "November" +msgstr "ნოემბერი" + +#: data/ui/date_selector.blp:29 +msgid "December" +msgstr "დეკემბერი" + +#: data/ui/date_selector.blp:35 +msgid "Day" +msgstr "დღე" + +#: data/ui/date_selector.blp:61 +msgid "Month" +msgstr "თვე" + +#: data/ui/date_selector.blp:84 +msgid "Year" +msgstr "წელი" + +#: data/ui/distance_action_row.blp:11 src/widgets/activity_row.rs:125 +msgid "Distance" +msgstr "მანძილი" + +#: data/ui/import_export_dialog_base.blp:10 +msgid "_Export" +msgstr "_გატანა" + +#: data/ui/import_export_dialog_base.blp:56 +msgid "Export weight measurements" +msgstr "წონის ანაზომების გატანა" + +#: data/ui/import_export_dialog_base.blp:69 +msgid "Encrypt export" +msgstr "გატანის დაშიფვრა" + +#: data/ui/password_entry.blp:9 +msgid "_Password" +msgstr "_პაროლი" + +#: data/ui/password_entry.blp:40 +msgid "_Confirm password" +msgstr "პაროლის _დადასტურება" + +#: data/ui/plugins/activities/details.blp:5 +#: data/ui/plugins/calories/details.blp:4 data/ui/plugins/steps/details.blp:4 +msgid "You can use the + button to add a new activity." +msgstr "" + +#: data/ui/plugins/activities/details.blp:8 +msgid "Recent Activities" +msgstr "უახლესი აქტივობები" + +#: data/ui/plugins/activities/summary.blp:5 data/ui/view_add_activity.blp:84 +msgid "Active Minutes" +msgstr "აქტიური წუთები" + +#: data/ui/plugins/calories/details.blp:7 src/plugins/calories/plugin.rs:39 +msgid "Calories" +msgstr "კალორიები" + +#: data/ui/plugins/calories/summary.blp:5 data/ui/view_add_activity.blp:66 +msgid "Calories Burned" +msgstr "დამწვარი კალორიები" + +#: data/ui/plugins/details.blp:68 +msgid "" +"This is a preview of how the plugin presents data. Enable the plugin to see " +"your actual, live data." +msgstr "" + +#: data/ui/plugins/steps/details.blp:7 data/ui/plugins/steps/summary.blp:5 +#: data/ui/preferences_window.blp:175 src/plugins/steps/plugin.rs:39 +msgid "Steps" +msgstr "ნაბიჯები" + +#: data/ui/plugins/weight/details.blp:5 +msgid "You can use the + button to add a new weight measurement." +msgstr "" + +#: data/ui/plugins/weight/details.blp:8 +msgid "Weight Measurements" +msgstr "წონის გაზომვები" + +#: data/ui/plugins/weight/summary.blp:5 data/ui/view_add_weight.blp:38 +#: src/plugins/weight/plugin.rs:39 src/views/view_add_weight.rs:87 +msgid "Weight" +msgstr "სიმძიმე" + +#: data/ui/preferences_window.blp:43 +msgid "_Every 1 hour" +msgstr "ყოველ _ერთ საათში" + +#: data/ui/preferences_window.blp:49 +msgid "_Every 4 hours" +msgstr "ყოველ 4 საათში" + +#: data/ui/preferences_window.blp:55 +msgid "_Fixed Time" +msgstr "ფიქსირებული _დრო" + +#: data/ui/preferences_window.blp:63 +msgid "Health Preferences" +msgstr "განმრთელობის მორგება" + +#: data/ui/preferences_window.blp:69 data/ui/shortcuts_window.blp:11 +msgid "General" +msgstr "ზოგადი" + +#: data/ui/preferences_window.blp:72 data/ui/preferences_window.blp:104 +#: data/ui/setup_window.blp:183 src/core/database.rs:1097 +msgid "User" +msgstr "მომხმარებელი" + +#: data/ui/preferences_window.blp:75 data/ui/setup_window.blp:154 +msgid "Unit system" +msgstr "ერთეულების სისტემა" + +#: data/ui/preferences_window.blp:85 data/ui/setup_window.blp:164 +msgid "Imperial" +msgstr "იმპერიული" + +#: data/ui/preferences_window.blp:91 data/ui/setup_window.blp:170 +msgid "Metric" +msgstr "მეტრული სისტემა" + +#: data/ui/preferences_window.blp:99 data/ui/setup_window.blp:178 +msgid "Username" +msgstr "მომხმარებლის სახელი" + +#: data/ui/preferences_window.blp:109 data/ui/setup_window.blp:188 +msgid "Birthday" +msgstr "დაბადების დღე" + +#: data/ui/preferences_window.blp:118 data/ui/setup_window.blp:197 +msgid "Height" +msgstr "სიმაღლე" + +#: data/ui/preferences_window.blp:131 +msgid "Notifications" +msgstr "გაფრთხილებები" + +#: data/ui/preferences_window.blp:134 +msgid "Enable notifications" +msgstr "გაფრთხილებების ჩართვა" + +#: data/ui/preferences_window.blp:145 +msgid "Frequency" +msgstr "სიხშირე" + +#: data/ui/preferences_window.blp:158 +msgid "Daily reminder time" +msgstr "ყოველდღიური შეხსენების დრო" + +#: data/ui/preferences_window.blp:178 data/ui/setup_window.blp:260 +#: src/plugins/steps/details.rs:244 +msgid "Step goal" +msgstr "ნაბიჯების მიზანი" + +#: data/ui/preferences_window.blp:179 +msgid "7,500 steps per day are recommended." +msgstr "რეკომენდებულია დღეში 7,500 ნაბიჯი." + +#: data/ui/preferences_window.blp:192 data/ui/preferences_window.blp:195 +msgid "Weight Goal" +msgstr "წონის მიზანი" + +#: data/ui/preferences_window.blp:196 +msgid "The WHO recommends a BMI of 18.5-24.9." +msgstr "" + +#: data/ui/preferences_window.blp:204 data/ui/setup_window.blp:367 +msgid "Target BMI" +msgstr "სამიზნე BMI" + +#: data/ui/preferences_window.blp:220 +msgid "Sync" +msgstr "სინქრონიზაცია" + +#: data/ui/preferences_window.blp:224 +msgid "Start sync with third-party providers." +msgstr "" + +#: data/ui/preferences_window.blp:232 +msgid "Importing and exporting data" +msgstr "" + +#: data/ui/preferences_window.blp:235 +msgid "Export data as CSV" +msgstr "მონაცემების გატანა CSV ფორმატში" + +#: data/ui/preferences_window.blp:238 +msgid "Export…" +msgstr "გატანა…" + +#: data/ui/preferences_window.blp:245 +msgid "Import data from CSV" +msgstr "მონაცემების შემოტანა CSV ფორმატიდან" + +#: data/ui/preferences_window.blp:248 +msgid "Import…" +msgstr "შემოტანა…" + +#: data/ui/setup_window.blp:39 +msgid "Health Setup" +msgstr "ჯანმრთელობის მორგება" + +#: data/ui/setup_window.blp:53 +msgid "_Quit" +msgstr "გასვ_ლა" + +#: data/ui/setup_window.blp:62 +msgid "_Previous" +msgstr "_წინა" + +#: data/ui/setup_window.blp:77 +msgid "_Next" +msgstr "_შემდეგი" + +#: data/ui/setup_window.blp:90 +msgid "_Done" +msgstr "_მზადაა" + +#: data/ui/setup_window.blp:116 +msgid "Welcome to Health!" +msgstr "მოგესალმებათ ჯანმრთელობის პროგრამა!" + +#: data/ui/setup_window.blp:128 +msgid "Please enter some information to get setup." +msgstr "" + +#: data/ui/setup_window.blp:224 +msgid "Please enter your daily step goal." +msgstr "" + +#: data/ui/setup_window.blp:236 +msgid "The WHO recommends 7.500 steps per day." +msgstr "" + +#: data/ui/setup_window.blp:286 +msgid "Please enter your weight goal." +msgstr "გთხოვთ, შეიყვანოთ თქვენი წონის მიზანი." + +#: data/ui/setup_window.blp:298 +msgid "The WHO recommends a BMI of 18.5–24.9." +msgstr "" + +#: data/ui/setup_window.blp:326 +msgid "Current weight" +msgstr "მიმდინარე წონა" + +#: data/ui/setup_window.blp:342 src/widgets/bmi_level_bar.rs:253 +msgid "Current BMI" +msgstr "მიმდინარე BMI" + +#: data/ui/setup_window.blp:350 src/plugins/weight/details.rs:229 +msgid "Weight goal" +msgstr "სამიზნე წონა" + +#: data/ui/setup_window.blp:386 +msgid "Setup sync with third-party providers." +msgstr "" + +#: data/ui/setup_window.blp:398 +msgid "" +"You can sync steps and weight measurements from/to third-party providers." +msgstr "" + +#: data/ui/shortcuts_window.blp:15 +msgid "Quit the application" +msgstr "აპლიკაციიდან გასვლა" + +#: data/ui/shortcuts_window.blp:20 +msgid "Show this shortcuts window" +msgstr "ამ მალსახმობების ფანჯრის ჩვენება" + +#: data/ui/shortcuts_window.blp:25 +msgid "Show help" +msgstr "დახმარების ჩვენება" + +#: data/ui/shortcuts_window.blp:30 +msgid "Show primary menu" +msgstr "ძირითადი მენიუს ჩვენება" + +#: data/ui/shortcuts_window.blp:35 +msgid "Toggle fullscreen mode" +msgstr "სრული ეკრანის რეჟიმზე გადასვლა" + +#: data/ui/sync_list_box.blp:30 +msgid "Google Fit" +msgstr "Google Fit" + +#: data/ui/view_add_activity.blp:45 data/ui/view_add_weight.blp:30 +msgid "Date" +msgstr "თარიღი" + +#: data/ui/view_add_activity.blp:57 +msgid "Activity Type" +msgstr "აქტივობის ტიპი" + +#: data/ui/view_add_activity.blp:97 +msgid "Average Heart Rate" +msgstr "საშუალო გულისცემა" + +#: data/ui/view_add_activity.blp:109 +msgid "Minimum Heart Rate" +msgstr "მინიმალური გულისცემა" + +#: data/ui/view_add_activity.blp:121 +msgid "Maximum Heart Rate" +msgstr "მაქსიმალური გულისცემა" + +#: data/ui/view_add_activity.blp:133 +msgid "Stepcount" +msgstr "ბიჯების რაოდენობა" + +#: data/ui/view_home_page.blp:61 +msgid "For you" +msgstr "თქვენთვის" + +#: data/ui/view_home_page.blp:86 +msgid "" +"No plugins enabled. Enable one from the list below to start using Health." +msgstr "" + +#: data/ui/view_home_page.blp:107 +msgid "All data" +msgstr "ყველა მონაცემი" + +#: data/ui/window.blp:8 +msgid "_Disable Current Plugin" +msgstr "მიმდინარე დამატების _გამორთვა" + +#: data/ui/window.blp:15 +msgid "_Preferences" +msgstr "_პარამეტრები" + +#: data/ui/window.blp:20 +msgid "_Keyboard Shortcuts" +msgstr "_კლავიატურის მალსახმობები" + +#: data/ui/window.blp:27 +msgid "_About Health" +msgstr "ჯანმრთელობის შესახებ" + +#: data/ui/window.blp:69 +msgid "Enable plugin" +msgstr "დამატების ჩართვა" + +#: src/core/application.rs:189 +msgid "A health tracking app for the GNOME desktop." +msgstr "" + +#: src/core/application.rs:191 +msgid "translator-credits" +msgstr "თემური დოღონაძე" + +#: src/core/application.rs:193 +msgid "Websites" +msgstr "ვებგვერდები" + +#: src/model/activity_info.rs:83 +msgid "Basketball" +msgstr "კალათბურთი" + +#: src/model/activity_info.rs:93 +msgid "Bicycling" +msgstr "ველოსიპედები" + +#: src/model/activity_info.rs:102 +msgid "Boxing" +msgstr "კრივი" + +#: src/model/activity_info.rs:111 +msgid "Dancing" +msgstr "ცეკვა" + +#: src/model/activity_info.rs:120 +msgid "Football" +msgstr "ფეხბურთი" + +#: src/model/activity_info.rs:127 +msgid "Golf" +msgstr "გოლფი" + +#: src/model/activity_info.rs:138 +msgid "Hiking" +msgstr "ჰაიკინგი" + +#: src/model/activity_info.rs:147 +msgid "Hockey" +msgstr "ჰოკეი" + +#: src/model/activity_info.rs:157 +msgid "Horse Riding" +msgstr "ცხენის ჭენება" + +#: src/model/activity_info.rs:166 +msgid "Other Sports" +msgstr "სხვა სპორტი" + +#: src/model/activity_info.rs:176 +msgid "Rollerblading" +msgstr "" + +#: src/model/activity_info.rs:187 +msgid "Running" +msgstr "სირბილი" + +#: src/model/activity_info.rs:197 +msgid "Skiing" +msgstr "სრიალი" + +#: src/model/activity_info.rs:206 +msgid "Soccer" +msgstr "სოკერი" + +#: src/model/activity_info.rs:215 +msgid "Softball" +msgstr "" + +#: src/model/activity_info.rs:225 +msgid "Swimming" +msgstr "ცურვა" + +#: src/model/activity_info.rs:234 +msgid "Tennis" +msgstr "ტენისი" + +#: src/model/activity_info.rs:243 +msgid "Track And Field" +msgstr "" + +#: src/model/activity_info.rs:254 +msgid "Volleyball" +msgstr "ფრენბურთი" + +#: src/model/activity_info.rs:265 +msgid "Walking" +msgstr "სიარული" + +#: src/model/model_notification.rs:214 +msgid "Health: walking reminder" +msgstr "" + +#: src/model/model_notification.rs:230 +msgid "{} step remaining to complete your daily step goal." +msgid_plural "{} steps remaining to complete your daily step goal." +msgstr[0] "" + +#: src/plugins/activities/plugin.rs:39 +msgid "Activities" +msgstr "ქმედებები" + +#: src/plugins/activities/summary.rs:91 +msgid "{} active minute today" +msgid_plural "{} active minutes today" +msgstr[0] "" + +#: src/plugins/calories/details.rs:216 +msgid "" +"{}:\n" +"{} calorie\n" +"{}" +msgid_plural "" +"{}:\n" +"{} calories\n" +"{}" +msgstr[0] "" +"{}:\n" +"{} კალორია\n" +"{}" + +#: src/plugins/calories/summary.rs:97 src/plugins/calories/summary.rs:104 +msgid "{} calorie burned today" +msgid_plural "{} calories burned today" +msgstr[0] "" + +#: src/plugins/steps/details.rs:186 +msgid "Today’s steps: {}" +msgstr "" + +#: src/plugins/steps/details.rs:205 +msgid "" +"No streak yet. Reach your step goal for multiple days to start a streak!" +msgstr "" + +#: src/plugins/steps/details.rs:209 +msgid "" +"You’re on a streak for {} day. Reach your step goal today to continue it!" +msgid_plural "" +"You’re on a streak for {} days. Reach your step goal today to continue it!" +msgstr[0] "" + +#: src/plugins/steps/details.rs:217 +msgid "You’ve reached your step goal today. Keep going to start a streak!" +msgstr "" + +#: src/plugins/steps/details.rs:220 +msgid "You’re on a streak for {} day. Good job!" +msgid_plural "You’re on a streak for {} days. Good job!" +msgstr[0] "" + +#. TRANSLATORS: X step(s) on DATE +#: src/plugins/steps/details.rs:237 +msgid "{} step on {}" +msgid_plural "{} steps on {}" +msgstr[0] "" + +#: src/plugins/steps/summary.rs:96 +msgid "{} step taken today" +msgid_plural "{} steps taken today" +msgstr[0] "" + +#: src/plugins/steps/summary.rs:107 +msgid "Reached {} percent of daily step goal" +msgid_plural "Reached {} percent of daily step goal" +msgstr[0] "" + +#: src/plugins/steps/summary.rs:114 +msgid "Well done! You have reached your daily step goal!" +msgstr "" + +#: src/plugins/weight/details.rs:201 +msgid "Current BMI: {}" +msgstr "მიმდინარე BMI: {}" + +#. TRANSLATORS: Weight X on date Y +#: src/plugins/weight/details.rs:216 +msgid "{} pound on {}" +msgid_plural "{} pounds on {}" +msgstr[0] "{} ფუნტი {}-ზე" + +#. TRANSLATORS: Weight X on date Y +#: src/plugins/weight/details.rs:219 +msgid "{} kilogram on {}" +msgid_plural "{} kilograms on {}" +msgstr[0] "{} კილოგრამი {}-ზე" + +#: src/plugins/weight/details.rs:256 src/plugins/weight/details.rs:261 +msgid "Unknown BMI" +msgstr "უცნობი BMI" + +#: src/plugins/weight/details.rs:279 +msgid "" +"Your weight goal is {} pound. Add a first weight measurement to see how " +"close you are to reaching it." +msgid_plural "" +"Your weight goal is {} pounds. Add a first weight measurement to see how " +"close you are to reaching it." +msgstr[0] "" + +#: src/plugins/weight/details.rs:286 +msgid "" +"Your weight goal is {} kilogram. Add a first weight measurement to see how " +"close you are to reaching it." +msgid_plural "" +"Your weight goal is {} kilograms. Add a first weight measurement to see how " +"close you are to reaching it." +msgstr[0] "" + +#: src/plugins/weight/details.rs:295 +msgid "You’ve reached your weight goal. Great job!" +msgstr "" + +#: src/plugins/weight/details.rs:311 +msgid "Your weight goal is {} pound." +msgid_plural "Your weight goal is {} pounds." +msgstr[0] "" + +#: src/plugins/weight/details.rs:316 +msgid "You have {} pound left to reach it." +msgid_plural "You have {} pounds left to reach it." +msgstr[0] "" + +#: src/plugins/weight/details.rs:323 +msgid "Your weight goal is {} kilogram." +msgid_plural "Your weight goal is {} kilograms." +msgstr[0] "" + +#: src/plugins/weight/details.rs:329 +msgid "You have {} kilogram left to reach it" +msgid_plural "You have {} kilograms left to reach it" +msgstr[0] "" + +#: src/plugins/weight/details.rs:339 +msgid "No weight goal set yet. You can set it in Health’s preferences." +msgstr "" + +#: src/plugins/weight/summary.rs:119 +msgid "{} pound" +msgid_plural "{} pounds" +msgstr[0] "{} ფუნტი" + +#: src/plugins/weight/summary.rs:127 +msgid "{} kilogram" +msgid_plural "{} kilograms" +msgstr[0] "{} კილოგრამი" + +#: src/plugins/weight/summary.rs:138 +msgid "+ {} pound compared to previous measurement" +msgid_plural "+ {} pounds compared to previous measurement" +msgstr[0] "" + +#: src/plugins/weight/summary.rs:146 +msgid "+ {} kilogram compared to previous measurement" +msgid_plural "+ {} kilograms compared to previous measurement" +msgstr[0] "" + +#: src/plugins/weight/summary.rs:157 +msgid "{} pound compared to previous measurement" +msgid_plural "{} pounds compared to previous measurement" +msgstr[0] "" + +#: src/plugins/weight/summary.rs:165 +msgid "{} kilogram compared to previous measurement" +msgid_plural "{} kilograms compared to previous measurement" +msgstr[0] "" + +#: src/plugins/weight/summary.rs:173 +msgid "No change in weight" +msgstr "წონის ცვლილების გარეშე" + +#: src/plugins/weight/summary.rs:178 +msgid "No weight data available" +msgstr "წონის მონაცემები ხელმიუწვდომელია" + +#: src/sync/csv.rs:81 src/sync/csv.rs:370 +msgid "No activities added yet; can’t create empty export!" +msgstr "" + +#: src/sync/csv.rs:111 src/sync/csv.rs:388 +msgid "No weight measurements added yet; can’t create empty export!" +msgstr "" + +#: src/sync/csv.rs:184 src/sync/csv.rs:332 +msgid "Can’t parse encrypted backup without encryption key!" +msgstr "" + +#: src/sync/csv.rs:195 src/sync/csv.rs:352 +msgid "" +"Couldn’t parse CSV. Are you trying to read an unencrypted backup as an " +"encrypted one?" +msgstr "" + +#: src/sync/csv.rs:208 +msgid "Couldn’t decrypt data. Are you sure you’re using the right key?" +msgstr "" + +#: src/sync/database_receiver.rs:46 +msgid "Couldn’t synchronize steps due to error {}" +msgstr "" + +#: src/sync/database_receiver.rs:60 +msgid "Couldn’t synchronize weight measurements due to error {}" +msgstr "" + +#: src/sync/google_fit.rs:211 +msgid "CRSF Verification failed, got {}, expected {}" +msgstr "" + +#: src/sync/google_fit.rs:227 +msgid "Requesting OAuth2 token failed due to error {}" +msgstr "" + +#: src/sync/sync_provider.rs:109 +msgid "" +"Can’t retrieve OAuth2 token when no refresh token is set! Please re-" +"authenticate with your sync provider." +msgstr "" + +#: src/sync/sync_provider.rs:157 +msgid "Token for Health sync provider {}" +msgstr "" + +#: src/sync/sync_provider.rs:217 +msgid "Successfully authenticated, please return to Health." +msgstr "" + +#: src/sync/sync_provider.rs:228 +msgid "Couldn’t parse OAuth2 response" +msgstr "" + +#: src/views/bar_graph_view.rs:568 +msgid "Enter weight record to calculate idle calories" +msgstr "" + +#: src/views/bar_graph_view.rs:572 +msgid "Idle calories" +msgstr "" + +#: src/views/view_add_activity.rs:231 +msgid "Activity" +msgstr "აქტივობა" + +#: src/widgets/activity_row.rs:73 +msgid "{} for {} Minute" +msgid_plural "{} for {} Minutes" +msgstr[0] "" + +#: src/widgets/activity_row.rs:85 +msgid "Calories burned" +msgstr "" + +#: src/widgets/activity_row.rs:95 +msgid "Average heart rate" +msgstr "" + +#: src/widgets/activity_row.rs:101 +msgid "Maximum heart rate" +msgstr "" + +#: src/widgets/activity_row.rs:107 +msgid "Minimum heart rate" +msgstr "" + +#: src/widgets/activity_row.rs:120 +msgid "{} meter" +msgid_plural "{} meters" +msgstr[0] "{} მეტრი" + +#: src/widgets/activity_row.rs:123 +msgid "{} yard" +msgid_plural "{} yards" +msgstr[0] "{} იარდი" + +#: src/widgets/bmi_level_bar.rs:260 +msgid "Current BMI: {}" +msgstr "მიმდინარე BMI: {}" + +#: src/widgets/distance_action_row.rs:293 +msgid "KM" +msgstr "KM" + +#: src/widgets/distance_action_row.rs:294 +msgid "Meters" +msgstr "მეტრი" + +#: src/widgets/distance_action_row.rs:296 +msgid "Miles" +msgstr "მილი" + +#: src/widgets/distance_action_row.rs:297 +msgid "Feet" +msgstr "ფუტი" + +#. TRANSLATORS: Unit abbreviation (centimeters) +#: src/widgets/unit_spinbutton.rs:458 src/widgets/unit_spinbutton.rs:624 +msgid "cm" +msgstr "სმ" + +#. TRANSLATORS: Unit abbreviation (meters) +#: src/widgets/unit_spinbutton.rs:460 +msgid "m" +msgstr "თვე" + +#. TRANSLATORS: Unit abbreviation (kilometers) +#: src/widgets/unit_spinbutton.rs:462 +msgid "km" +msgstr "კმ" + +#. TRANSLATORS: Unit abbreviation (kilograms) +#: src/widgets/unit_spinbutton.rs:464 +msgid "kg" +msgstr "კგ" + +#. TRANSLATORS: Unit abbreviation (inch) +#: src/widgets/unit_spinbutton.rs:466 src/widgets/unit_spinbutton.rs:626 +msgid "in" +msgstr "დუიმი" + +#. TRANSLATORS: Unit abbreviation (feet) +#: src/widgets/unit_spinbutton.rs:468 +msgid "ft" +msgstr "ფტ" + +#. TRANSLATORS: Unit abbreviation (miles) +#: src/widgets/unit_spinbutton.rs:470 +msgid "mi" +msgstr "მი" + +#. TRANSLATORS: Unit abbreviation (pounds) +#: src/widgets/unit_spinbutton.rs:472 +msgid "lb" +msgstr "ფუნტი" + +#: src/windows/export_dialog.rs:51 +msgid "Save Activities" +msgstr "აქტივობების შენახვა" + +#. TRANSLATORS: Please keep the file extension (.csv.encrypted) +#: src/windows/export_dialog.rs:60 +msgid "Activities.csv.encrypted" +msgstr "" + +#. TRANSLATORS: Please keep the file extension (.csv) +#: src/windows/export_dialog.rs:63 +msgid "Activities.csv" +msgstr "" + +#: src/windows/export_dialog.rs:75 src/windows/export_dialog.rs:109 +#: src/windows/import_dialog.rs:68 src/windows/import_dialog.rs:97 +msgid "No file selected." +msgstr "ფაილი არჩეული არაა." + +#: src/windows/export_dialog.rs:87 +msgid "Save Weight Measurement" +msgstr "" + +#: src/windows/export_dialog.rs:95 +msgid "Weight Measurements.csv.encrypted" +msgstr "" + +#: src/windows/export_dialog.rs:97 +msgid "Weight Measurements.csv" +msgstr "" + +#: src/windows/export_dialog.rs:132 +msgid "Export data" +msgstr "" + +#: src/windows/import_dialog.rs:51 +msgid "Open Activities" +msgstr "" + +#: src/windows/import_dialog.rs:52 src/windows/import_dialog.rs:81 +msgid "_Open" +msgstr "_გახსნა" + +#: src/windows/import_dialog.rs:80 +msgid "Open Weight Measurement" +msgstr "" + +#: src/windows/import_dialog.rs:121 +msgid "Import data" +msgstr "მონაცემების შემოტანა" + +#: src/windows/import_export_dialog_base.rs:210 +msgid "Import activities" +msgstr "აქტივობების შემოტანა" + +#: src/windows/import_export_dialog_base.rs:212 +msgid "Import is encrypted" +msgstr "შემოტანა დაშიფრულია" + +#: src/windows/import_export_dialog_base.rs:213 +msgid "Import weights" +msgstr "წონების შემოტანა" + +#: src/windows/import_export_dialog_base.rs:214 +msgid "Import" +msgstr "შემოტანა" + +#: src/windows/import_export_dialog_base.rs:292 +msgid "Success!" +msgstr "წარმატება!" + +#: src/windows/import_export_dialog_base.rs:296 +msgid "An error occurred!" +msgstr "აღმოჩენილია შეცდომა!" + +#: src/windows/import_export_dialog_base.rs:301 +msgid "Close" +msgstr "დახურვა" + +#: src/windows/window.rs:267 +msgid "Couldn’t sync Google Fit data due to error: {}" +msgstr "" -- 2.40.1 From 65faeec0e404c29c82110e7bffb96e7f0f88c9f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sabri=20=C3=9Cnal?= Date: Tue, 6 Dec 2022 17:39:37 +0300 Subject: [PATCH 82/83] fix: Activate help-overlay Correct help-overlay action to activate help-overlay --- data/ui/window.blp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/ui/window.blp b/data/ui/window.blp index 1331f5f..7bf9e4f 100644 --- a/data/ui/window.blp +++ b/data/ui/window.blp @@ -16,7 +16,7 @@ menu primary_menu { } item { - action: "app.shortcuts"; + action: "win.show-help-overlay"; label: _("_Keyboard Shortcuts"); } } @@ -103,4 +103,4 @@ template HealthWindow : Adw.ApplicationWindow { view-changed => handle_view_changed() swapped; } } -} \ No newline at end of file +} -- 2.40.1 From 1199312f072c2aeb14d829106d595ca410b8ccb1 Mon Sep 17 00:00:00 2001 From: baarkerlounger Date: Thu, 18 May 2023 15:18:18 +0000 Subject: [PATCH 83/83] Update metainfo --- data/dev.Cogitri.Health.metainfo.xml.in.in | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/data/dev.Cogitri.Health.metainfo.xml.in.in b/data/dev.Cogitri.Health.metainfo.xml.in.in index e5b130b..23410e9 100644 --- a/data/dev.Cogitri.Health.metainfo.xml.in.in +++ b/data/dev.Cogitri.Health.metainfo.xml.in.in @@ -45,6 +45,11 @@ ModernToolkit + + workstation + mobile + +

-- 2.40.1