Skip to content

Commit e0090d1

Browse files
authored
Merge pull request #5 from parvathyabnair/new-translations
[EDITED] Release v1.3.1 documentation updates
2 parents 1450e4a + 1e1d894 commit e0090d1

79 files changed

Lines changed: 6430 additions & 86 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/user/user-manual/dashboard.md

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,27 @@ Located at the top of the screen.
3131

3232
### Features:
3333
* **Menu Icon:** Opens the side navigation menu.
34-
* **Account Name:** Displays the active user account.
34+
* **Account Name / Title:** Displays "Dashboard" and the currently active date range filter (e.g., "This Month").
35+
* **Filter Icon (Sliders):** Opens the Date Range filter dropdown to adjust the time period of the displayed data.
3536
* **Add Icon (Clock with +):** Used to quickly create a new timesheet entry.
36-
* **Notification Icon :** Displays alerts and updates.
37-
* **Info Icon:** Provides additional information about dashboard chart guide.
37+
* **Notification Icon:** Displays alerts and updates.
38+
* **Info Icon:** Provides additional information about the dashboard chart guid
39+
40+
---
41+
42+
## Date Range Filter
43+
A new filtering feature allows users to control the time period for the data displayed across the entire dashboard.
44+
45+
* **Default View:** By default, the dashboard displays data for **This Month**.
46+
* **Filter Options:** Clicking the Filter Icon in the header opens a "Date Range" dropdown menu with the following predefined options:
47+
* No Filter (All Time)
48+
* Today
49+
* This Week
50+
* This Month
51+
* This Quarter
52+
* This Year
53+
* Custom Range...
54+
* **Custom Date Range:** Selecting "Custom Range..." opens a dedicated dialog box. Users can specify an exact time period by selecting a **From:** date and a **To:** date using the date pickers. Clicking **Apply Range** updates the dashboard to reflect this custom period, while clicking **Cancel** dismisses the dialog without making changes.
3855

3956
---
4057

@@ -55,7 +72,7 @@ The Priority Matrix categorizes tasks based on urgency and importance. It is org
5572
* **Don’t Do (Not Urgent & Not Important):** Tasks that are unnecessary (Grey tile).
5673

5774
### Time Display:
58-
Each category displays total time spent (e.g., `0H`), helping users evaluate productivity and time allocation.
75+
Each category displays total time spent (e.g., `98H`), helping users evaluate productivity and time allocation for the selected date range.
5976

6077
---
6178

Lines changed: 39 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,97 +1,54 @@
11
---
2-
title: Dashboard
3-
sidebar_label: Dashboard
4-
description: Een overzicht van het Time Management App Dashboard, met de Prioriteitenmatrix, tijdsverdelingsgrafieken en snelle navigatie voor projecten en taken.
2+
title: Technische referentie dashboardmodule
3+
sidebar_label: Dashboardmodule
54
---
65

7-
# Dashboard
6+
# Technische referentie dashboardmodule
87

9-
## Introductie
10-
Het **Dashboard** is het hoofdscherm van de Time Management-applicatie. Het biedt een snel overzicht van taken, projecten en tijdsverdeling op basis van prioriteit.
8+
De Dashboard Module biedt geconsolideerde, op zoekopdrachten gebaseerde analytische inzichten met betrekking tot productiviteit, geregistreerde werkuren, actieve taken en prioriteringsstatistieken.
119

12-
Dit scherm stelt gebruikers in staat om:
13-
* Taken te identificeren die onmiddellijke aandacht vereisen.
14-
* Werk efficiënt te organiseren.
15-
* De bestede tijd aan activiteiten en projecten te monitoren.
10+
## Codebase-kaart
1611

17-
---
18-
19-
## Dashboard Overzicht
20-
Het Dashboard bestaat uit de volgende hoofdsecties:
21-
1. Kopsectie (Bovenste Balk)
22-
2. Melding Ongeslagen Concepten (Unsaved Drafts)
23-
3. Prioriteitenmatrix
24-
4. Navigatietabbladen (Overzicht, Projecten, Taken)
25-
5. Snelle Actieknop
26-
27-
---
28-
29-
## Kopsectie
30-
Bevindt zich bovenaan het scherm.
31-
32-
### Kenmerken:
33-
* **Menu-icoon :** Opent het zijnavigatiemenu.
34-
* **Accountnaam:** Toont het actieve gebruikersaccount.
35-
* **Toevoegen-icoon (Klok met +):** Wordt gebruikt om snel een nieuwe urenstaat-invoer (timesheet entry) aan te maken.
36-
* **Meldingen-icoon :** Toont waarschuwingen en updates.
37-
* **Info-icoon :** Biedt aanvullende informatie over de dashboardgrafiekengids.
38-
39-
---
40-
41-
## Melding Ongeslagen Concepten
42-
Bij het starten van de app kan een pop-up **Ongeslagen Concepten Gevonden** verschijnen als er niet-ingediend werk is.
43-
* Stelt de gebruiker op de hoogte van niet-ingediend werk uit een vorige sessie (bijv. Urenstaten, Projectupdates).
44-
* Spoort de gebruiker aan om de betreffende formulieren te openen om hun wijzigingen te herstellen.
45-
46-
---
47-
48-
## Prioriteitenmatrix
49-
De Prioriteitenmatrix categoriseert taken op basis van urgentie en belangrijkheid. Het is visueel georganiseerd met **URGENT** (Dringend) en **NOT URGENT** (Niet Dringend) op de bovenste as, en **IMPORTANT** (Belangrijk) en **NOT IMPORTANT** (Niet Belangrijk) op de zij-as.
50-
51-
### Categorieën:
52-
* **Eerst Doen (Dringend & Belangrijk):** Taken die onmiddellijke aandacht vereisen (Rode tegel).
53-
* **Vervolgens Doen (Niet Dringend & Belangrijk):** Belangrijke taken die kunnen worden ingepland (Blauwe tegel).
54-
* **Later Doen (Dringend & Niet Belangrijk):** Taken die kunnen worden uitgesteld of gedelegeerd (Groene tegel).
55-
* **Niet Doen (Niet Dringend & Niet Belangrijk):** Taken die onnodig zijn (Grijze tegel).
56-
57-
### Tijdweergave:
58-
Elke categorie toont de totale bestede tijd (bijv. `0H`), wat gebruikers helpt bij het evalueren van productiviteit en tijdsbesteding.
59-
60-
---
12+
| Laag | Pad | Doel |
13+
|---|---|---|
14+
| **Frontend-UI** | `qml/features/dashboard/` | Analysepanelen, grafieken en prioriteitswidgets |
15+
| **State & Logica** | `models/Main.js` | Projecties, aggregaties en diagrambindingen voor databasequery's |
6116

62-
## Navigatietabbladen
63-
Onder de Prioriteitenmatrix is het dashboard verdeeld in drie primaire tabbladen: **Overzicht**, **Projecten** en **Taken**.
17+
## Metrieken en SQL-projecties
6418

65-
### 1. Tabblad Overzicht
66-
Toont visuele grafieken voor urenregistratie.
67-
* **Meest Tijdrovende Projecten (Donutgrafiek):** Visuele weergave van de tijdsverdeling over projecten. Grotere segmenten duiden op een hoger tijdsgebruik.
68-
* **Percentagewaarde:** Het exacte aandeel van de totale geregistreerde tijd dat aan dit specifieke project is toegewezen (bijv. "51,8%").
69-
### 2. Tabblad Projecten
70-
Toont gedetailleerde informatie over gebruikersprojecten, samen met een hoofdtotaal van de gelogde uren over alle projecten.
71-
* **Bestede Tijd per Project (Staafdiagram):** Toont de bestede tijd per project. De assen maken een visuele vergelijking van de inspanning over projecten mogelijk. Bevat **"Toon volgende 10"** en **"Toon minder"** knoppen zijn onderaan beschikbaar om de projectenlijst uit te breiden.
19+
Het dashboard geeft visuele statistieken weer met behulp van analytische SQLite-query's (met behulp van standaard QML LocalStorage-bindingen) in plaats van deze op een backend te berekenen.
7220

73-
### 3. Tabblad Taken
74-
Een speciaal tabblad voor het beheren en bekijken van individuele taken.*
21+
### 1. Categorisering van de Eisenhower-matrix
22+
Classificeert actieve taken en activiteiten op basis van urgentie en belang:
23+
```sql
24+
SELECT id, summary, res_model, res_id, date_deadline
25+
FROM mail_activity_app
26+
WHERE done = 0 AND eisenhower_priority = ?;
27+
```
7528

76-
* **Zoekbalk:** Maakt het snel opzoeken van projecten mogelijk ("Zoek projecten...").
77-
* **Sorteeropties:**
78-
* **Meeste Tijd:** Sorteer op de hoogste bestede tijd.
79-
* **Taken:** Sorteer op het aantal taken.
80-
* **A–Z:** Alfabetische sortering.
81-
* **Projectenlijst:** Toont individuele projecten met hun specifieke aantallen taken, totale bestede tijd en een visuele voortgangsindicator.
29+
### 2. Projectgewijs geregistreerde tijd (Top 10 projecten)
30+
Verzamelt het totale aantal gelogde uren van `account_analytic_line_app`, gegroepeerd op projectnaam:
31+
```sql
32+
SELECT p.name AS project_name, SUM(t.unit_amount) AS total_hours
33+
FROM account_analytic_line_app t
34+
JOIN project_project_app p ON t.project_id = p.id
35+
GROUP BY t.project_id
36+
ORDER BY total_hours DESC
37+
LIMIT 10;
38+
```
8239

83-
**Weergave Projectdetails:**
84-
Tikken op een specifiek project in de lijst navigeert naar een gedetailleerde weergave voor dat project, die het volgende omvat:
85-
* Een samenvattende koptekst die de `TOTALE` tijd, `GEMIDDELDE` tijd, het totale aantal `TAKEN` en de `TOPTAAK` toont.
86-
* Een specifiek staafdiagram dat de bestede tijd uitsplitst naar individuele taken binnen dat project.
87-
* Een lijst met individuele taken met hun percentage van de projecttijd, het totale aantal uren en een navigatiepijl voor verdere details.
40+
### 3. Voortgang van voltooiing van taken
41+
Berekent de algehele voortgang van taken die aan een project zijn gekoppeld:
42+
```sql
43+
SELECT
44+
COUNT(CASE WHEN stage_id = ? THEN 1 END) AS completed_tasks,
45+
COUNT(id) AS total_tasks
46+
FROM project_task_app
47+
WHERE project_id = ?;
48+
```
8849

8950
---
9051

91-
## Snelle Actieknop
92-
Een zwevende actieknop (cyaan cirkel met een menu-icoon) in de rechterbenedenhoek van het scherm.
52+
## Synchronisatiemechanisme en netwerkprotocol
9353

94-
### Functies:
95-
* Een nieuwe taak toevoegen.
96-
* Een urenstaat-invoer aanmaken.
97-
* Een activiteit loggen.
54+
Het dashboard draait volledig client-side op de lokale SQLite-replicadatabase. Het initieert zelf geen externe HTTP/XML-RPC-verzoeken. Gegevensupdates worden op natuurlijke wijze doorgegeven aan het dashboard wanneer synchronisatietaken op de achtergrond de onderliggende SQL-tabellen bijwerken.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"version.label": {
3+
"message": "Volgende 🚧",
4+
"description": "The label for version current"
5+
},
6+
"sidebar.docs.category.Functional": {
7+
"message": "Functioneel",
8+
"description": "The label for category 'Functional' in sidebar 'docs'"
9+
},
10+
"sidebar.docs.category.User Manual": {
11+
"message": "Gebruikershandleiding",
12+
"description": "The label for category 'User Manual' in sidebar 'docs'"
13+
},
14+
"sidebar.docs.category.Technical": {
15+
"message": "Technisch",
16+
"description": "The label for category 'Technical' in sidebar 'docs'"
17+
},
18+
"sidebar.docs.category.Module Implementations": {
19+
"message": "Module-implementaties",
20+
"description": "The label for category 'Module Implementations' in sidebar 'docs'"
21+
},
22+
"sidebar.docs.category.Contributor": {
23+
"message": "Bijdrager",
24+
"description": "The label for category 'Contributor' in sidebar 'docs'"
25+
}
26+
}
Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
---
2+
title: Handleiding voor App-vertaling en lokalisatie
3+
sidebar_label: App-vertaling
4+
description: Een stapsgewijze handleiding voor bijdragers om de interface van de Time Management App te vertalen in verschillende talen.
5+
---
6+
7+
# Handleiding voor App-vertaling en lokalisatie
8+
9+
Deze handleiding biedt stapsgewijze instructies voor het vertalen van de interface van de **Time Management App** zelf (de client-applicatie gebouwd met QML en Python) naar uw taal.
10+
11+
Het vertaalsysteem van de app is gebaseerd op **gettext**. Vertalers bewerken `.po` (Portable Object)-bestanden met vertaalparen, die automatisch worden gecompileerd naar binaire `.mo`/`.gmo`-bestanden tijdens het bouwproces.
12+
13+
---
14+
15+
## 1. Mappenstructuur en vertaalbestanden
16+
17+
Alle vertaalgerelateerde bestanden bevinden zich in de map `po/` in de root van de repository:
18+
19+
```text
20+
timemanagement/
21+
├── po/
22+
│ ├── CMakeLists.txt # Integratie van het bouwsysteem voor vertalingen
23+
│ ├── ubtms.pot # Vertaalsjabloon (bevat alle onvertaalde strings)
24+
│ └── nl.po # Nederlands vertaalbestand (voorbeeld van de huidige vertaling)
25+
```
26+
27+
* **`ubtms.pot`**: Het centrale sjabloonbestand dat rechtstreeks uit de codebase is geëxtraheerd. Het bevat alle originele Engelstalige strings.
28+
* **`<locale_code>.po`**: Taalspecifieke vertaalbestanden (bijv. `nl.po` voor het Nederlands, `es.po` voor het Spaans). Dit is het bestand dat u maakt of aanpast.
29+
30+
---
31+
32+
## 2. Vereisten
33+
34+
Om bij te dragen aan de vertalingen, moeten de volgende hulpprogramma's geïnstalleerd zijn:
35+
36+
1. **Gettext Utilities**: Command-line hulpprogramma's om vertalingen te initialiseren, samen te voegen en te compileren.
37+
* **Ubuntu/Debian**:
38+
```bash
39+
sudo apt update && sudo apt install gettext
40+
```
41+
2. **Teksteditor**: Een standaard teksteditor naar keuze (zoals VS Code, Vim, Gedit, enz.) om de vertaalbestanden te bewerken.
42+
3. **Clickable**: De bouwtool voor de applicatie, gebruikt om uw vertaling lokaal te compileren en te testen. Zie de **Getting Started**-handleiding voor details over de configuratie.
43+
44+
---
45+
46+
## 3. Vertaalworkflow
47+
48+
### Stap 1: Het vertaalsjabloon (`ubtms.pot`) bijwerken
49+
Voordat u met de vertaling begint, compileert u het project eenmalig om er zeker van te zijn dat het vertaalsjabloon `po/ubtms.pot` is bijgewerkt met de nieuwste strings uit de broncode:
50+
51+
```bash
52+
clickable build
53+
```
54+
*Opmerking: Het CMake-bouwsysteem voert automatisch het doel voor de extractie van de vertaling uit en analyseert alle QML- en desktopbestanden om `po/ubtms.pot` bij te werken.*
55+
56+
### Stap 2: Uw vertaalbestand initialiseren of bijwerken
57+
58+
#### Optie A: Een nieuwe taal starten
59+
Bepaal de tweeletterige taalcode (en optionele regio, bijv. `fr` voor Frans, `es` voor Spaans, `pt_BR` voor Braziliaans Portugees).
60+
Navigeer naar de map `po/` en initialiseer het vertaalbestand met `msginit`:
61+
62+
```bash
63+
cd po
64+
msginit --locale=<locale_code> --input=ubtms.pot --output=<locale_code>.po
65+
```
66+
*Voorbeeld voor Spaans:*
67+
```bash
68+
msginit --locale=es --input=ubtms.pot --output=es.po
69+
```
70+
71+
#### Optie B: Een bestaande taal bijwerken
72+
Als u nieuwe strings vertaalt die zijn toegevoegd aan een bestaande vertaling (bijv. het Nederlandse `nl.po`), voeg dan het bijgewerkte sjabloon samen met het vertaalbestand met `msgmerge`:
73+
74+
```bash
75+
cd po
76+
msgmerge --update <locale_code>.po ubtms.pot
77+
```
78+
*Voorbeeld voor Nederlands:*
79+
```bash
80+
msgmerge --update nl.po ubtms.pot
81+
```
82+
Dit voegt eventuele nieuwe strings toe, markeert verwijderde strings als verouderd en markeert gewijzigde strings als `#, fuzzy` voor uw beoordeling.
83+
84+
---
85+
86+
### Stap 3: De strings vertalen
87+
Open uw `<locale_code>.po`-bestand in uw teksteditor.
88+
89+
Vertaal voor elk item de bronstring (`msgid`) naar de vertaalde string (`msgstr`):
90+
91+
```po
92+
msgid "Time Manager - Time Management Dashboard"
93+
msgstr "Tijdbeheer - Dashboard Tijdbeheer"
94+
```
95+
96+
#### Belangrijke regels & best practices:
97+
1. **Behoud placeholders**: Laat parameters zoals `%1`, `%2` of `%3` intact. Ze vertegenwoordigen dynamische waarden die tijdens runtime worden ingevoegd.
98+
* *Voorbeeld*: `i18n.dtr("ubtms", "You have %1 new notification(s)")` -> `Je hebt %1 nieuwe melding(en)`
99+
2. **Behoud escape sequences**: Tekens zoals `\n` (nieuwe regels) of `\t` (tabs) moeten in de vertaalde string behouden blijven.
100+
3. **Verwijder fuzzy-vlaggen**: Als u een string bijwerkt die is gemarkeerd met `#, fuzzy`, verwijder dan de commentaarregel met `#, fuzzy` nadat u hebt gecontroleerd of de vertaling correct is. Anders compileert het niet.
101+
102+
---
103+
104+
### Stap 4: Uw vertaling lokaal testen
105+
106+
1. Bouw de applicatie met Clickable om het `.po`-vertaalbestand te compileren naar een binair `.mo`-bestand:
107+
```bash
108+
clickable build
109+
```
110+
2. Voer de desktopversie van de applicatie uit met de gewenste taal geconfigureerd in de omgeving:
111+
```bash
112+
LANG=<locale_code>.UTF-8 clickable desktop
113+
```
114+
*Voorbeeld voor Nederlands:*
115+
```bash
116+
LANG=nl_NL.UTF-8 clickable desktop
117+
```
118+
3. Controleer of alle vertaalde elementen correct in de interface verschijnen en of er geen lay-out- of tekstafkappingsproblemen zijn.
119+
120+
---
121+
122+
## 4. Richtlijnen voor ontwikkelaars (Strings markeren)
123+
124+
Als u code (QML) schrijft en wilt zorgen dat de tekst vertaald kan worden, gebruik dan de volgende patronen:
125+
126+
### In QML / JavaScript
127+
* **Standaardvertalingen**:
128+
```qml
129+
title: i18n.dtr("ubtms", "Settings")
130+
```
131+
* **Vertalen met argumenten**:
132+
```qml
133+
text: i18n.dtr("ubtms", "Account [%1]").arg(accountName)
134+
```
135+
* **Meervoudsvormen**:
136+
Gebruik `i18n.tr` met meervoudsvormen bij het weergeven van hoeveelheden:
137+
```qml
138+
// Syntaxis: i18n.tr(singular, plural, count)
139+
text: i18n.tr("You have %1 task", "You have %1 tasks", count).arg(count)
140+
```
141+
142+
### In Desktop Entry bestanden (`ubtms.desktop.in`)
143+
Voor desktopconfiguraties op systeemniveau geeft u de vertaalbare sleutels een prefix met een liggend streepje (underscore):
144+
```desktop
145+
_Name=Time Management
146+
```
147+
*Het bouwsysteem gebruikt `intltool` om deze desktop-sleutels te extraheren naar `ubtms.pot`.*
148+
149+
---
150+
151+
## 5. Uw bijdrage indienen (de PR maken)
152+
153+
Zodra u de vertalingen hebt getest en hebt gecontroleerd of het `.po`-bestand correct is, bent u klaar om een Pull Request (PR) in te dienen:
154+
155+
1. **Tijdelijke back-upbestanden opschonen**: Sommige editors maken tijdelijke back-upbestanden aan (bijv. `nl.po~` of `nl.po.bak`). Verwijder deze voordat u gaat committen.
156+
2. **Een Git-branch maken**:
157+
```bash
158+
git checkout -b translation/add-<locale_code>
159+
```
160+
3. **Stagen en committen**:
161+
```bash
162+
git add po/<locale_code>.po
163+
git commit -m "translation: Add <Language_Name> translation"
164+
```
165+
4. **De branch pushen**:
166+
```bash
167+
git push origin translation/add-<locale_code>
168+
```
169+
5. **De Pull Request openen**:
170+
* Navigeer naar de originele repository op GitHub.
171+
* Klik op **Compare & pull request**.
172+
* Vul het PR-sjabloon in. Zorg ervoor dat u de toegevoegde of bijgewerkte taal beschrijft en bevestig dat u de app lokaal hebt gebouwd en getest.

0 commit comments

Comments
 (0)