diff --git a/app/locale/de/LC_MESSAGES/django.po b/app/locale/de/LC_MESSAGES/django.po index 7b00e90..45e9ad9 100644 --- a/app/locale/de/LC_MESSAGES/django.po +++ b/app/locale/de/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-06 08:15+0000\n" +"POT-Creation-Date: 2026-07-04 15:39+0000\n" "PO-Revision-Date: 2026-04-09 11:24+0000\n" "Last-Translator: LordTimothyHKIT \n" "Language-Team: German Öffentlich: " "Sichtbar für alle Nutzer. Nur bearbeitbar durch Besitzer." -#: apps/common/forms.py:76 apps/users/forms.py:169 +#: apps/common/forms.py:76 apps/users/forms.py:173 msgid "Save" msgstr "Speichern" @@ -542,8 +542,8 @@ msgstr "Umrechnungskurs" msgid "Date and Time" msgstr "Datum und Uhrzeit" -#: apps/currencies/models.py:78 apps/users/models.py:12 -#: apps/users/models.py:497 +#: apps/currencies/models.py:78 apps/users/models.py:17 +#: apps/users/models.py:502 msgid "Auto" msgstr "Automatisch" @@ -584,7 +584,9 @@ msgstr "Diensttyp" #: templates/entities/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16 -#: templates/tags/fragments/list.html:16 templates/users/fragments/list.html:25 +#: templates/tags/fragments/list.html:16 +#: templates/users/fragments/api_tokens.html:54 +#: templates/users/fragments/list.html:25 msgid "Active" msgstr "Aktiv" @@ -1618,7 +1620,7 @@ msgstr "Tranksaktionstags" msgid "Yearly" msgstr "Jährlich" -#: apps/transactions/models.py:596 apps/users/models.py:464 +#: apps/transactions/models.py:596 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "Monatlich" @@ -1810,11 +1812,11 @@ msgid "Installment Plan deleted successfully" msgstr "Ratenzahlungs-Plan erfolgreich gelöscht" #: apps/transactions/views/quick_transactions.py:45 -#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:188 +#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:252 msgid "Item added successfully" msgstr "Objekt erfolgreich hinzugefügt" -#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:220 +#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:284 msgid "Item updated successfully" msgstr "Objekt erfolgreich aktualisiert" @@ -1903,44 +1905,48 @@ msgstr "Transaktion erfolgreich wiederhergestellt" msgid "Transfer added successfully" msgstr "Transfer erfolgreich hinzugefügt" -#: apps/users/admin.py:22 templates/users/fragments/user_settings.html:5 +#: apps/users/admin.py:17 +msgid "Revoke selected API tokens" +msgstr "" + +#: apps/users/admin.py:28 templates/users/fragments/user_settings.html:5 msgid "User Settings" msgstr "Nutzereinstellungen" -#: apps/users/admin.py:23 +#: apps/users/admin.py:29 msgid "User Setting" msgstr "Nutzereinstellung" -#: apps/users/admin.py:48 +#: apps/users/admin.py:54 msgid "Personal info" msgstr "Persönliche Daten" -#: apps/users/admin.py:50 +#: apps/users/admin.py:56 msgid "Permissions" msgstr "Berechtigungen" -#: apps/users/admin.py:61 +#: apps/users/admin.py:67 msgid "Important dates" msgstr "Wichtige Daten" -#: apps/users/forms.py:24 apps/users/forms.py:28 apps/users/models.py:451 +#: apps/users/forms.py:28 apps/users/forms.py:32 apps/users/models.py:456 #: templates/users/login.html:18 msgid "E-mail" msgstr "E-Mail" -#: apps/users/forms.py:35 apps/users/forms.py:40 templates/users/login.html:19 +#: apps/users/forms.py:39 apps/users/forms.py:44 templates/users/login.html:19 msgid "Password" msgstr "Passwort" -#: apps/users/forms.py:47 +#: apps/users/forms.py:51 msgid "Invalid e-mail or password" msgstr "Ungültige E-Mail oder Passwort" -#: apps/users/forms.py:48 +#: apps/users/forms.py:52 msgid "This account is deactivated" msgstr "Dieses Konto ist deaktiviert" -#: apps/users/forms.py:64 apps/users/forms.py:77 apps/users/forms.py:99 +#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:245 #: templates/transactions/pages/transactions.html:47 @@ -1948,23 +1954,23 @@ msgstr "Dieses Konto ist deaktiviert" msgid "Default" msgstr "Standard" -#: apps/users/forms.py:107 apps/users/models.py:484 +#: apps/users/forms.py:111 apps/users/models.py:489 msgid "Date Format" msgstr "Datumsformat" -#: apps/users/forms.py:112 apps/users/models.py:489 +#: apps/users/forms.py:116 apps/users/models.py:494 msgid "Datetime Format" msgstr "Datums- und Zeitformat" -#: apps/users/forms.py:118 apps/users/models.py:492 +#: apps/users/forms.py:122 apps/users/models.py:497 msgid "Number Format" msgstr "Zahlenformat" -#: apps/users/forms.py:125 +#: apps/users/forms.py:129 msgid "Default Account" msgstr "Standart Konto" -#: apps/users/forms.py:174 +#: apps/users/forms.py:178 #, python-format msgid "" "This changes the language (if available) and how numbers and dates are " @@ -1975,25 +1981,25 @@ msgstr "" "angezeigt werden.\n" "Hilf mit WYGIWYH in deine Sprache zu übersetzten: %(translation_link)s" -#: apps/users/forms.py:183 +#: apps/users/forms.py:187 msgid "New Password" msgstr "Neues Passwort" -#: apps/users/forms.py:186 +#: apps/users/forms.py:190 msgid "Leave blank to keep the current password." msgstr "Leer lassen um Passwort zu belassen." -#: apps/users/forms.py:189 +#: apps/users/forms.py:193 msgid "Confirm New Password" msgstr "Bestätige das neue Passwort" -#: apps/users/forms.py:201 apps/users/forms.py:358 +#: apps/users/forms.py:205 apps/users/forms.py:362 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." msgstr "Abwählen um den Nutzer zu deaktivieren. Besser als gleich zu löschen." -#: apps/users/forms.py:204 apps/users/forms.py:361 +#: apps/users/forms.py:208 apps/users/forms.py:365 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." @@ -2001,83 +2007,107 @@ msgstr "" "Anwählen damit der Nutzer alle Berechtigungen hat, ohne diese explizit " "hinzuzufügen." -#: apps/users/forms.py:271 +#: apps/users/forms.py:275 msgid "This email address is already in use by another account." msgstr "Diese E-Mail-Adresse wird bereits von jemand anders benutzt." -#: apps/users/forms.py:279 +#: apps/users/forms.py:283 msgid "The two password fields didn't match." msgstr "Die eingegebenen Passwörter stimmen nicht überein." -#: apps/users/forms.py:281 +#: apps/users/forms.py:285 msgid "Please confirm your new password." msgstr "Bitte bestätige dein neues Passwort." -#: apps/users/forms.py:283 +#: apps/users/forms.py:287 msgid "Please enter the new password first." msgstr "Bitte gebe erst dein neues Passwort ein." -#: apps/users/forms.py:303 +#: apps/users/forms.py:307 msgid "You cannot deactivate your own account using this form." msgstr "Du kannst deinen Nutzer nicht hier deaktivieren." -#: apps/users/forms.py:316 +#: apps/users/forms.py:320 msgid "Cannot remove status from the last superuser." msgstr "Sie können die Adminberechtigungen nicht vom letzten Admin entfernen." -#: apps/users/forms.py:322 +#: apps/users/forms.py:326 msgid "You cannot remove your own superuser status using this form." msgstr "Du kannst deinen eigenen Superuser-Status nicht hier entfernen." -#: apps/users/forms.py:415 +#: apps/users/forms.py:419 msgid "A user with this email address already exists." msgstr "Ein Benutzer mit dieser E-Mail-Adresse existiert bereits." -#: apps/users/models.py:465 +#: apps/users/forms.py:439 +#, fuzzy +#| msgid "Tag name" +msgid "Token name" +msgstr "Tagname" + +#: apps/users/forms.py:441 +msgid "Use a descriptive name such as n8n, Home Assistant, or backup job." +msgstr "" + +#: apps/users/forms.py:447 +msgid "Expires in days" +msgstr "" + +#: apps/users/forms.py:448 +msgid "Leave empty for a non-expiring token." +msgstr "" + +#: apps/users/forms.py:463 +#, fuzzy +#| msgid "Create transaction" +msgid "Create token" +msgstr "Erstelle Transaktion" + +#: apps/users/models.py:470 msgid "Yearly by currency" msgstr "Jährlich nach Währung" -#: apps/users/models.py:466 +#: apps/users/models.py:471 msgid "Yearly by account" msgstr "Jährlich nach Konto" -#: apps/users/models.py:467 templates/net_worth/net_worth.html:9 +#: apps/users/models.py:472 templates/net_worth/net_worth.html:9 msgid "Current Net Worth" msgstr "Aktuelles Nettovermögen" -#: apps/users/models.py:468 templates/net_worth/net_worth.html:11 +#: apps/users/models.py:473 templates/net_worth/net_worth.html:11 msgid "Projected Net Worth" msgstr "Erwartetes Nettovermögen" -#: apps/users/models.py:469 +#: apps/users/models.py:474 msgid "All Transactions" msgstr "Alle Transaktionen" -#: apps/users/models.py:470 templates/includes/sidebar.html:63 +#: apps/users/models.py:475 templates/includes/sidebar.html:63 msgid "Calendar" msgstr "Kalender" -#: apps/users/models.py:480 +#: apps/users/models.py:485 msgid "Volume" msgstr "Lautstärke" -#: apps/users/models.py:499 +#: apps/users/models.py:504 msgid "Language" msgstr "Sprache" -#: apps/users/models.py:505 +#: apps/users/models.py:510 msgid "Time Zone" msgstr "Zeitzone" -#: apps/users/models.py:511 +#: apps/users/models.py:516 msgid "Start page" msgstr "Startseite" -#: apps/users/models.py:516 +#: apps/users/models.py:521 msgid "Default account" msgstr "Standartkonto" -#: apps/users/models.py:517 +#: apps/users/models.py:522 #, fuzzy #| msgid "" #| "Deactivated tags won't be able to be selected when creating new " @@ -2087,26 +2117,94 @@ msgstr "" "Deaktivierte Tags können bei der Erstellung neuer Transaktionen nicht " "ausgewählt werden" -#: apps/users/views.py:67 +#: apps/users/models.py:570 +#, fuzzy +#| msgid "Users" +msgid "User" +msgstr "Nutzer" + +#: apps/users/models.py:577 +msgid "Token key" +msgstr "" + +#: apps/users/models.py:579 +msgid "Token hash" +msgstr "" + +#: apps/users/models.py:583 +#, fuzzy +#| msgid "Last Generated Date" +msgid "Last used at" +msgstr "Letztes generiertes Datum" + +#: apps/users/models.py:588 +msgid "Expires at" +msgstr "" + +#: apps/users/models.py:593 +msgid "Revoked at" +msgstr "" + +#: apps/users/models.py:595 +#, fuzzy +#| msgid "Create transaction" +msgid "Created at" +msgstr "Erstelle Transaktion" + +#: apps/users/models.py:596 +#, fuzzy +#| msgid "Update" +msgid "Updated at" +msgstr "Aktualisierung" + +#: apps/users/models.py:606 +#, fuzzy +#| msgid "API Key" +msgid "API token" +msgstr "API-Schlüssel" + +#: apps/users/models.py:607 +msgid "API tokens" +msgstr "" + +#: apps/users/views.py:69 msgid "Transaction amounts are now hidden" msgstr "Beträge sind nun versteckt" -#: apps/users/views.py:70 +#: apps/users/views.py:72 msgid "Transaction amounts are now displayed" msgstr "Beträge werden angezeigt" -#: apps/users/views.py:88 +#: apps/users/views.py:90 msgid "Sounds are now muted" msgstr "Sounds sind stummgeschaltet" -#: apps/users/views.py:91 +#: apps/users/views.py:93 msgid "Sounds will now play" msgstr "Sounds werden wiedergegeben" -#: apps/users/views.py:107 +#: apps/users/views.py:109 msgid "Your settings have been updated" msgstr "Deine Einstellungen wurden aktualisiert" +#: apps/users/views.py:148 +#, fuzzy +#| msgid "Action updated successfully" +msgid "API token created successfully" +msgstr "Aktion erfolgreich aktualisiert" + +#: apps/users/views.py:167 +#, fuzzy +#| msgid "Action deleted successfully" +msgid "API token revoked successfully" +msgstr "Aktion erfolgreich gelöscht" + +#: apps/users/views.py:178 +#, fuzzy +#| msgid "Action deleted successfully" +msgid "API token deleted successfully" +msgstr "Aktion erfolgreich gelöscht" + #: templates/account_groups/fragments/add.html:5 msgid "Add account group" msgstr "Kontogruppe hinzufügen" @@ -2204,6 +2302,7 @@ msgstr "Teilen" #: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:133 #: templates/tags/fragments/table.html:51 +#: templates/users/fragments/api_tokens.html:93 msgid "Delete" msgstr "Löschen" @@ -2281,6 +2380,7 @@ msgstr "Dies kann nicht rückgängig gemacht werden!" #: templates/rules/fragments/transaction_rule/view.html:98 #: templates/tags/fragments/table.html:57 #: templates/transactions/fragments/attachments.html:22 +#: templates/users/fragments/api_tokens.html:101 msgid "Yes, delete it!" msgstr "Ja, löschen!" @@ -3314,6 +3414,10 @@ msgstr "Keine Ratenzahlungs-Pläne" msgid "This is a demo!" msgstr "Dies ist eine Demo!" +#: templates/layouts/base.html:37 +msgid "Any data you add here will be wiped in 24hrs or less" +msgstr "Jegliche Eingaben hier werden innerhalb von 24 Stunden gelöscht" + #: templates/mini_tools/currency_converter/currency_converter.html:57 msgid "Invert" msgstr "Invertieren" @@ -3707,6 +3811,87 @@ msgstr "Unverändert" msgid "Add user" msgstr "Neue hinzufügen" +#: templates/users/fragments/api_tokens.html:5 +msgid "API Tokens" +msgstr "" + +#: templates/users/fragments/api_tokens.html:7 +msgid "" +"Use these tokens for automations such as n8n. The raw token is shown only " +"once after creation." +msgstr "" + +#: templates/users/fragments/api_tokens.html:14 +msgid "Copy this token now" +msgstr "" + +#: templates/users/fragments/api_tokens.html:16 +msgid "It will not be shown again after this response." +msgstr "" + +#: templates/users/fragments/api_tokens.html:31 +msgid "Copy" +msgstr "" + +#: templates/users/fragments/api_tokens.html:52 +msgid "Revoked" +msgstr "" + +#: templates/users/fragments/api_tokens.html:59 +#, python-format +msgid "Created %(created)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:62 +#, python-format +msgid "last used %(used)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:64 +msgid "never used" +msgstr "" + +#: templates/users/fragments/api_tokens.html:68 +#, python-format +msgid "expires %(expires)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:70 +msgid "no expiry" +msgstr "" + +#: templates/users/fragments/api_tokens.html:78 +msgid "Revoke" +msgstr "" + +#: templates/users/fragments/api_tokens.html:84 +msgid "Revoke token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:85 +msgid "This token will stop working immediately." +msgstr "" + +#: templates/users/fragments/api_tokens.html:86 +#, fuzzy +#| msgid "Yes, refresh it!" +msgid "Yes, revoke it!" +msgstr "Ja, aktualisieren!" + +#: templates/users/fragments/api_tokens.html:99 +#, fuzzy +#| msgid "Deleted At" +msgid "Delete token?" +msgstr "Gelöscht am" + +#: templates/users/fragments/api_tokens.html:100 +msgid "This permanently removes the token from the list. It cannot be undone." +msgstr "" + +#: templates/users/fragments/api_tokens.html:114 +msgid "No API tokens" +msgstr "" + #: templates/users/fragments/edit.html:5 #, fuzzy #| msgid "Edit category" @@ -3767,9 +3952,6 @@ msgstr "endet mit" msgid "Yearly Overview" msgstr "Jährliche Übersicht" -#~ msgid "Any data you add here will be wiped in 24hrs or less" -#~ msgstr "Jegliche Eingaben hier werden innerhalb von 24 Stunden gelöscht" - #, fuzzy #~| msgid "Are you sure?" #~ msgid " Are you sure?" diff --git a/app/locale/en/LC_MESSAGES/django.po b/app/locale/en/LC_MESSAGES/django.po index c5f3a91..2d14022 100644 --- a/app/locale/en/LC_MESSAGES/django.po +++ b/app/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-06 08:15+0000\n" +"POT-Creation-Date: 2026-07-04 15:39+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -30,8 +30,8 @@ msgstr "" #: apps/transactions/forms.py:417 apps/transactions/forms.py:536 #: apps/transactions/forms.py:880 apps/transactions/forms.py:919 #: apps/transactions/forms.py:947 apps/transactions/forms.py:978 -#: apps/transactions/forms.py:1128 apps/users/forms.py:242 -#: apps/users/forms.py:400 +#: apps/transactions/forms.py:1128 apps/users/forms.py:246 +#: apps/users/forms.py:404 #: templates/rules/fragments/transaction_rule/dry_run/updated.html:5 #: templates/rules/fragments/transaction_rule/view.html:128 msgid "Update" @@ -46,7 +46,7 @@ msgstr "" #: apps/transactions/forms.py:424 apps/transactions/forms.py:886 #: apps/transactions/forms.py:925 apps/transactions/forms.py:953 #: apps/transactions/forms.py:984 apps/transactions/forms.py:1134 -#: apps/users/forms.py:248 apps/users/forms.py:406 +#: apps/users/forms.py:252 apps/users/forms.py:410 #: templates/mini_tools/unit_price_calculator.html:168 msgid "Add" msgstr "" @@ -98,7 +98,7 @@ msgstr "" #: apps/import_app/models.py:14 apps/rules/models.py:13 #: apps/transactions/models.py:223 apps/transactions/models.py:248 #: apps/transactions/models.py:272 apps/transactions/models.py:1057 -#: templates/account_groups/fragments/list.html:22 +#: apps/users/models.py:572 templates/account_groups/fragments/list.html:22 #: templates/accounts/fragments/list.html:22 #: templates/categories/fragments/table.html:17 #: templates/currencies/fragments/list.html:23 @@ -344,7 +344,7 @@ msgid "" "owner.
Public: Shown for all users. Only editable by the owner." msgstr "" -#: apps/common/forms.py:76 apps/users/forms.py:169 +#: apps/common/forms.py:76 apps/users/forms.py:173 msgid "Save" msgstr "" @@ -530,8 +530,8 @@ msgstr "" msgid "Date and Time" msgstr "" -#: apps/currencies/models.py:78 apps/users/models.py:12 -#: apps/users/models.py:497 +#: apps/currencies/models.py:78 apps/users/models.py:17 +#: apps/users/models.py:502 msgid "Auto" msgstr "" @@ -572,7 +572,9 @@ msgstr "" #: templates/entities/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16 -#: templates/tags/fragments/list.html:16 templates/users/fragments/list.html:25 +#: templates/tags/fragments/list.html:16 +#: templates/users/fragments/api_tokens.html:54 +#: templates/users/fragments/list.html:25 msgid "Active" msgstr "" @@ -1564,7 +1566,7 @@ msgstr "" msgid "Yearly" msgstr "" -#: apps/transactions/models.py:596 apps/users/models.py:464 +#: apps/transactions/models.py:596 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "" @@ -1755,11 +1757,11 @@ msgid "Installment Plan deleted successfully" msgstr "" #: apps/transactions/views/quick_transactions.py:45 -#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:188 +#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:252 msgid "Item added successfully" msgstr "" -#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:220 +#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:284 msgid "Item updated successfully" msgstr "" @@ -1844,44 +1846,48 @@ msgstr "" msgid "Transfer added successfully" msgstr "" -#: apps/users/admin.py:22 templates/users/fragments/user_settings.html:5 +#: apps/users/admin.py:17 +msgid "Revoke selected API tokens" +msgstr "" + +#: apps/users/admin.py:28 templates/users/fragments/user_settings.html:5 msgid "User Settings" msgstr "" -#: apps/users/admin.py:23 +#: apps/users/admin.py:29 msgid "User Setting" msgstr "" -#: apps/users/admin.py:48 +#: apps/users/admin.py:54 msgid "Personal info" msgstr "" -#: apps/users/admin.py:50 +#: apps/users/admin.py:56 msgid "Permissions" msgstr "" -#: apps/users/admin.py:61 +#: apps/users/admin.py:67 msgid "Important dates" msgstr "" -#: apps/users/forms.py:24 apps/users/forms.py:28 apps/users/models.py:451 +#: apps/users/forms.py:28 apps/users/forms.py:32 apps/users/models.py:456 #: templates/users/login.html:18 msgid "E-mail" msgstr "" -#: apps/users/forms.py:35 apps/users/forms.py:40 templates/users/login.html:19 +#: apps/users/forms.py:39 apps/users/forms.py:44 templates/users/login.html:19 msgid "Password" msgstr "" -#: apps/users/forms.py:47 +#: apps/users/forms.py:51 msgid "Invalid e-mail or password" msgstr "" -#: apps/users/forms.py:48 +#: apps/users/forms.py:52 msgid "This account is deactivated" msgstr "" -#: apps/users/forms.py:64 apps/users/forms.py:77 apps/users/forms.py:99 +#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:245 #: templates/transactions/pages/transactions.html:47 @@ -1889,23 +1895,23 @@ msgstr "" msgid "Default" msgstr "" -#: apps/users/forms.py:107 apps/users/models.py:484 +#: apps/users/forms.py:111 apps/users/models.py:489 msgid "Date Format" msgstr "" -#: apps/users/forms.py:112 apps/users/models.py:489 +#: apps/users/forms.py:116 apps/users/models.py:494 msgid "Datetime Format" msgstr "" -#: apps/users/forms.py:118 apps/users/models.py:492 +#: apps/users/forms.py:122 apps/users/models.py:497 msgid "Number Format" msgstr "" -#: apps/users/forms.py:125 +#: apps/users/forms.py:129 msgid "Default Account" msgstr "" -#: apps/users/forms.py:174 +#: apps/users/forms.py:178 #, python-format msgid "" "This changes the language (if available) and how numbers and dates are " @@ -1913,130 +1919,202 @@ msgid "" "Consider helping translate WYGIWYH to your language at %(translation_link)s" msgstr "" -#: apps/users/forms.py:183 +#: apps/users/forms.py:187 msgid "New Password" msgstr "" -#: apps/users/forms.py:186 +#: apps/users/forms.py:190 msgid "Leave blank to keep the current password." msgstr "" -#: apps/users/forms.py:189 +#: apps/users/forms.py:193 msgid "Confirm New Password" msgstr "" -#: apps/users/forms.py:201 apps/users/forms.py:358 +#: apps/users/forms.py:205 apps/users/forms.py:362 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." msgstr "" -#: apps/users/forms.py:204 apps/users/forms.py:361 +#: apps/users/forms.py:208 apps/users/forms.py:365 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." msgstr "" -#: apps/users/forms.py:271 +#: apps/users/forms.py:275 msgid "This email address is already in use by another account." msgstr "" -#: apps/users/forms.py:279 +#: apps/users/forms.py:283 msgid "The two password fields didn't match." msgstr "" -#: apps/users/forms.py:281 +#: apps/users/forms.py:285 msgid "Please confirm your new password." msgstr "" -#: apps/users/forms.py:283 +#: apps/users/forms.py:287 msgid "Please enter the new password first." msgstr "" -#: apps/users/forms.py:303 +#: apps/users/forms.py:307 msgid "You cannot deactivate your own account using this form." msgstr "" -#: apps/users/forms.py:316 +#: apps/users/forms.py:320 msgid "Cannot remove status from the last superuser." msgstr "" -#: apps/users/forms.py:322 +#: apps/users/forms.py:326 msgid "You cannot remove your own superuser status using this form." msgstr "" -#: apps/users/forms.py:415 +#: apps/users/forms.py:419 msgid "A user with this email address already exists." msgstr "" -#: apps/users/models.py:465 +#: apps/users/forms.py:439 +msgid "Token name" +msgstr "" + +#: apps/users/forms.py:441 +msgid "Use a descriptive name such as n8n, Home Assistant, or backup job." +msgstr "" + +#: apps/users/forms.py:447 +msgid "Expires in days" +msgstr "" + +#: apps/users/forms.py:448 +msgid "Leave empty for a non-expiring token." +msgstr "" + +#: apps/users/forms.py:463 +msgid "Create token" +msgstr "" + +#: apps/users/models.py:470 msgid "Yearly by currency" msgstr "" -#: apps/users/models.py:466 +#: apps/users/models.py:471 msgid "Yearly by account" msgstr "" -#: apps/users/models.py:467 templates/net_worth/net_worth.html:9 +#: apps/users/models.py:472 templates/net_worth/net_worth.html:9 msgid "Current Net Worth" msgstr "" -#: apps/users/models.py:468 templates/net_worth/net_worth.html:11 +#: apps/users/models.py:473 templates/net_worth/net_worth.html:11 msgid "Projected Net Worth" msgstr "" -#: apps/users/models.py:469 +#: apps/users/models.py:474 msgid "All Transactions" msgstr "" -#: apps/users/models.py:470 templates/includes/sidebar.html:63 +#: apps/users/models.py:475 templates/includes/sidebar.html:63 msgid "Calendar" msgstr "" -#: apps/users/models.py:480 +#: apps/users/models.py:485 msgid "Volume" msgstr "" -#: apps/users/models.py:499 +#: apps/users/models.py:504 msgid "Language" msgstr "" -#: apps/users/models.py:505 +#: apps/users/models.py:510 msgid "Time Zone" msgstr "" -#: apps/users/models.py:511 +#: apps/users/models.py:516 msgid "Start page" msgstr "" -#: apps/users/models.py:516 +#: apps/users/models.py:521 msgid "Default account" msgstr "" -#: apps/users/models.py:517 +#: apps/users/models.py:522 msgid "Selects the account by default when creating new transactions" msgstr "" -#: apps/users/views.py:67 +#: apps/users/models.py:570 +msgid "User" +msgstr "" + +#: apps/users/models.py:577 +msgid "Token key" +msgstr "" + +#: apps/users/models.py:579 +msgid "Token hash" +msgstr "" + +#: apps/users/models.py:583 +msgid "Last used at" +msgstr "" + +#: apps/users/models.py:588 +msgid "Expires at" +msgstr "" + +#: apps/users/models.py:593 +msgid "Revoked at" +msgstr "" + +#: apps/users/models.py:595 +msgid "Created at" +msgstr "" + +#: apps/users/models.py:596 +msgid "Updated at" +msgstr "" + +#: apps/users/models.py:606 +msgid "API token" +msgstr "" + +#: apps/users/models.py:607 +msgid "API tokens" +msgstr "" + +#: apps/users/views.py:69 msgid "Transaction amounts are now hidden" msgstr "" -#: apps/users/views.py:70 +#: apps/users/views.py:72 msgid "Transaction amounts are now displayed" msgstr "" -#: apps/users/views.py:88 +#: apps/users/views.py:90 msgid "Sounds are now muted" msgstr "" -#: apps/users/views.py:91 +#: apps/users/views.py:93 msgid "Sounds will now play" msgstr "" -#: apps/users/views.py:107 +#: apps/users/views.py:109 msgid "Your settings have been updated" msgstr "" +#: apps/users/views.py:148 +msgid "API token created successfully" +msgstr "" + +#: apps/users/views.py:167 +msgid "API token revoked successfully" +msgstr "" + +#: apps/users/views.py:178 +msgid "API token deleted successfully" +msgstr "" + #: templates/account_groups/fragments/add.html:5 msgid "Add account group" msgstr "" @@ -2134,6 +2212,7 @@ msgstr "" #: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:133 #: templates/tags/fragments/table.html:51 +#: templates/users/fragments/api_tokens.html:93 msgid "Delete" msgstr "" @@ -2211,6 +2290,7 @@ msgstr "" #: templates/rules/fragments/transaction_rule/view.html:98 #: templates/tags/fragments/table.html:57 #: templates/transactions/fragments/attachments.html:22 +#: templates/users/fragments/api_tokens.html:101 msgid "Yes, delete it!" msgstr "" @@ -3206,6 +3286,10 @@ msgstr "" msgid "This is a demo!" msgstr "" +#: templates/layouts/base.html:37 +msgid "Any data you add here will be wiped in 24hrs or less" +msgstr "" + #: templates/mini_tools/currency_converter/currency_converter.html:57 msgid "Invert" msgstr "" @@ -3578,6 +3662,83 @@ msgstr "" msgid "Add user" msgstr "" +#: templates/users/fragments/api_tokens.html:5 +msgid "API Tokens" +msgstr "" + +#: templates/users/fragments/api_tokens.html:7 +msgid "" +"Use these tokens for automations such as n8n. The raw token is shown only " +"once after creation." +msgstr "" + +#: templates/users/fragments/api_tokens.html:14 +msgid "Copy this token now" +msgstr "" + +#: templates/users/fragments/api_tokens.html:16 +msgid "It will not be shown again after this response." +msgstr "" + +#: templates/users/fragments/api_tokens.html:31 +msgid "Copy" +msgstr "" + +#: templates/users/fragments/api_tokens.html:52 +msgid "Revoked" +msgstr "" + +#: templates/users/fragments/api_tokens.html:59 +#, python-format +msgid "Created %(created)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:62 +#, python-format +msgid "last used %(used)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:64 +msgid "never used" +msgstr "" + +#: templates/users/fragments/api_tokens.html:68 +#, python-format +msgid "expires %(expires)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:70 +msgid "no expiry" +msgstr "" + +#: templates/users/fragments/api_tokens.html:78 +msgid "Revoke" +msgstr "" + +#: templates/users/fragments/api_tokens.html:84 +msgid "Revoke token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:85 +msgid "This token will stop working immediately." +msgstr "" + +#: templates/users/fragments/api_tokens.html:86 +msgid "Yes, revoke it!" +msgstr "" + +#: templates/users/fragments/api_tokens.html:99 +msgid "Delete token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:100 +msgid "This permanently removes the token from the list. It cannot be undone." +msgstr "" + +#: templates/users/fragments/api_tokens.html:114 +msgid "No API tokens" +msgstr "" + #: templates/users/fragments/edit.html:5 msgid "Edit user" msgstr "" diff --git a/app/locale/es/LC_MESSAGES/django.po b/app/locale/es/LC_MESSAGES/django.po index e5e6c10..dbb1086 100644 --- a/app/locale/es/LC_MESSAGES/django.po +++ b/app/locale/es/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-06 08:15+0000\n" +"POT-Creation-Date: 2026-07-04 15:39+0000\n" "PO-Revision-Date: 2026-02-24 01:24+0000\n" "Last-Translator: Juan David Afanador \n" "Language-Team: Spanish Público: Visible para " "todos los usuarios. Solo el propietario puede editarlo." -#: apps/common/forms.py:76 apps/users/forms.py:169 +#: apps/common/forms.py:76 apps/users/forms.py:173 msgid "Save" msgstr "Guardar" @@ -539,8 +539,8 @@ msgstr "Tasa de cambio" msgid "Date and Time" msgstr "Fecha y Hora" -#: apps/currencies/models.py:78 apps/users/models.py:12 -#: apps/users/models.py:497 +#: apps/currencies/models.py:78 apps/users/models.py:17 +#: apps/users/models.py:502 msgid "Auto" msgstr "Automático" @@ -581,7 +581,9 @@ msgstr "Tipo de Servicio" #: templates/entities/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16 -#: templates/tags/fragments/list.html:16 templates/users/fragments/list.html:25 +#: templates/tags/fragments/list.html:16 +#: templates/users/fragments/api_tokens.html:54 +#: templates/users/fragments/list.html:25 msgid "Active" msgstr "Activo" @@ -1608,7 +1610,7 @@ msgstr "Etiquetas de Transacción" msgid "Yearly" msgstr "Anual" -#: apps/transactions/models.py:596 apps/users/models.py:464 +#: apps/transactions/models.py:596 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "Mensual" @@ -1799,11 +1801,11 @@ msgid "Installment Plan deleted successfully" msgstr "Plan de cuotas eliminado con éxito" #: apps/transactions/views/quick_transactions.py:45 -#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:188 +#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:252 msgid "Item added successfully" msgstr "Ítem agregado con éxito" -#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:220 +#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:284 msgid "Item updated successfully" msgstr "Ítem actualizado con éxito" @@ -1892,44 +1894,48 @@ msgstr "Transacción restaurada exitosamente" msgid "Transfer added successfully" msgstr "Transferencia añadida exitosamente" -#: apps/users/admin.py:22 templates/users/fragments/user_settings.html:5 +#: apps/users/admin.py:17 +msgid "Revoke selected API tokens" +msgstr "" + +#: apps/users/admin.py:28 templates/users/fragments/user_settings.html:5 msgid "User Settings" msgstr "Configuraciones de Usuario" -#: apps/users/admin.py:23 +#: apps/users/admin.py:29 msgid "User Setting" msgstr "Configuración de Usuario" -#: apps/users/admin.py:48 +#: apps/users/admin.py:54 msgid "Personal info" msgstr "Información Personal" -#: apps/users/admin.py:50 +#: apps/users/admin.py:56 msgid "Permissions" msgstr "Permisos" -#: apps/users/admin.py:61 +#: apps/users/admin.py:67 msgid "Important dates" msgstr "Fechas Importantes" -#: apps/users/forms.py:24 apps/users/forms.py:28 apps/users/models.py:451 +#: apps/users/forms.py:28 apps/users/forms.py:32 apps/users/models.py:456 #: templates/users/login.html:18 msgid "E-mail" msgstr "Correo Electrónico" -#: apps/users/forms.py:35 apps/users/forms.py:40 templates/users/login.html:19 +#: apps/users/forms.py:39 apps/users/forms.py:44 templates/users/login.html:19 msgid "Password" msgstr "Contraseña" -#: apps/users/forms.py:47 +#: apps/users/forms.py:51 msgid "Invalid e-mail or password" msgstr "Correo o contraseña no válidos" -#: apps/users/forms.py:48 +#: apps/users/forms.py:52 msgid "This account is deactivated" msgstr "Esta cuenta está desactivada" -#: apps/users/forms.py:64 apps/users/forms.py:77 apps/users/forms.py:99 +#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:245 #: templates/transactions/pages/transactions.html:47 @@ -1937,23 +1943,23 @@ msgstr "Esta cuenta está desactivada" msgid "Default" msgstr "Por Defecto" -#: apps/users/forms.py:107 apps/users/models.py:484 +#: apps/users/forms.py:111 apps/users/models.py:489 msgid "Date Format" msgstr "Formato de Fecha" -#: apps/users/forms.py:112 apps/users/models.py:489 +#: apps/users/forms.py:116 apps/users/models.py:494 msgid "Datetime Format" msgstr "Formato de Fecha y Hora" -#: apps/users/forms.py:118 apps/users/models.py:492 +#: apps/users/forms.py:122 apps/users/models.py:497 msgid "Number Format" msgstr "Formato de Número" -#: apps/users/forms.py:125 +#: apps/users/forms.py:129 msgid "Default Account" msgstr "Cuenta por Defecto" -#: apps/users/forms.py:174 +#: apps/users/forms.py:178 #, python-format msgid "" "This changes the language (if available) and how numbers and dates are " @@ -1964,19 +1970,19 @@ msgstr "" "y las fechas\n" "Ayude a traducir WYGIWYH a su idioma en %(translation_link)s" -#: apps/users/forms.py:183 +#: apps/users/forms.py:187 msgid "New Password" msgstr "Nueva Contraseña" -#: apps/users/forms.py:186 +#: apps/users/forms.py:190 msgid "Leave blank to keep the current password." msgstr "Deje en blanco para mantener la contraseña actual." -#: apps/users/forms.py:189 +#: apps/users/forms.py:193 msgid "Confirm New Password" msgstr "Confirmar nueva contraseña" -#: apps/users/forms.py:201 apps/users/forms.py:358 +#: apps/users/forms.py:205 apps/users/forms.py:362 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." @@ -1984,7 +1990,7 @@ msgstr "" "Establece si este usuario debe ser tratado como activo. Desmarque esta " "opción en lugar de borrar cuentas." -#: apps/users/forms.py:204 apps/users/forms.py:361 +#: apps/users/forms.py:208 apps/users/forms.py:365 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." @@ -1992,107 +1998,199 @@ msgstr "" "Establece que este usuario tiene todos los permisos sin asignárselos " "expresamente." -#: apps/users/forms.py:271 +#: apps/users/forms.py:275 msgid "This email address is already in use by another account." msgstr "Esta dirección de correo es usada por otra cuenta." -#: apps/users/forms.py:279 +#: apps/users/forms.py:283 msgid "The two password fields didn't match." msgstr "Los dos campos de contraseñas no coinciden." -#: apps/users/forms.py:281 +#: apps/users/forms.py:285 msgid "Please confirm your new password." msgstr "Por favor, confirme su nueva contraseña." -#: apps/users/forms.py:283 +#: apps/users/forms.py:287 msgid "Please enter the new password first." msgstr "Por favor, introduzca su nueva contraseña." -#: apps/users/forms.py:303 +#: apps/users/forms.py:307 msgid "You cannot deactivate your own account using this form." msgstr "No puede desactivar su propia cuenta usando este formulario." -#: apps/users/forms.py:316 +#: apps/users/forms.py:320 msgid "Cannot remove status from the last superuser." msgstr "No se puede eliminar el estado del último superusuario." -#: apps/users/forms.py:322 +#: apps/users/forms.py:326 msgid "You cannot remove your own superuser status using this form." msgstr "" "No puedes eliminar tu propio estado de superusuario usando este formulario." -#: apps/users/forms.py:415 +#: apps/users/forms.py:419 msgid "A user with this email address already exists." msgstr "Ya existe un usuario con este correo." -#: apps/users/models.py:465 +#: apps/users/forms.py:439 +#, fuzzy +#| msgid "Tag name" +msgid "Token name" +msgstr "Nombre de etiqueta" + +#: apps/users/forms.py:441 +msgid "Use a descriptive name such as n8n, Home Assistant, or backup job." +msgstr "" + +#: apps/users/forms.py:447 +msgid "Expires in days" +msgstr "" + +#: apps/users/forms.py:448 +msgid "Leave empty for a non-expiring token." +msgstr "" + +#: apps/users/forms.py:463 +#, fuzzy +#| msgid "Create transaction" +msgid "Create token" +msgstr "Crear transacción" + +#: apps/users/models.py:470 msgid "Yearly by currency" msgstr "Anual por moneda" -#: apps/users/models.py:466 +#: apps/users/models.py:471 msgid "Yearly by account" msgstr "Anual por cuenta" -#: apps/users/models.py:467 templates/net_worth/net_worth.html:9 +#: apps/users/models.py:472 templates/net_worth/net_worth.html:9 msgid "Current Net Worth" msgstr "Patrimonio Neto Actual" -#: apps/users/models.py:468 templates/net_worth/net_worth.html:11 +#: apps/users/models.py:473 templates/net_worth/net_worth.html:11 msgid "Projected Net Worth" msgstr "Patrimonio Neto Proyectado" -#: apps/users/models.py:469 +#: apps/users/models.py:474 msgid "All Transactions" msgstr "Todas las Transacciones" -#: apps/users/models.py:470 templates/includes/sidebar.html:63 +#: apps/users/models.py:475 templates/includes/sidebar.html:63 msgid "Calendar" msgstr "Calendario" -#: apps/users/models.py:480 +#: apps/users/models.py:485 msgid "Volume" msgstr "Volumen" -#: apps/users/models.py:499 +#: apps/users/models.py:504 msgid "Language" msgstr "Idioma" -#: apps/users/models.py:505 +#: apps/users/models.py:510 msgid "Time Zone" msgstr "Zona Horaria" -#: apps/users/models.py:511 +#: apps/users/models.py:516 msgid "Start page" msgstr "Página de Inicio" -#: apps/users/models.py:516 +#: apps/users/models.py:521 msgid "Default account" msgstr "Cuenta por Defecto" -#: apps/users/models.py:517 +#: apps/users/models.py:522 msgid "Selects the account by default when creating new transactions" msgstr "Usa la cuenta como predeterminada al crear nuevas transacciones" -#: apps/users/views.py:67 +#: apps/users/models.py:570 +#, fuzzy +#| msgid "Users" +msgid "User" +msgstr "Usuarios" + +#: apps/users/models.py:577 +msgid "Token key" +msgstr "" + +#: apps/users/models.py:579 +msgid "Token hash" +msgstr "" + +#: apps/users/models.py:583 +#, fuzzy +#| msgid "Last Generated Date" +msgid "Last used at" +msgstr "Última Fecha Generada" + +#: apps/users/models.py:588 +msgid "Expires at" +msgstr "" + +#: apps/users/models.py:593 +msgid "Revoked at" +msgstr "" + +#: apps/users/models.py:595 +#, fuzzy +#| msgid "Create" +msgid "Created at" +msgstr "Crear" + +#: apps/users/models.py:596 +#, fuzzy +#| msgid "Update" +msgid "Updated at" +msgstr "Actualizar" + +#: apps/users/models.py:606 +#, fuzzy +#| msgid "API Key" +msgid "API token" +msgstr "Clave API" + +#: apps/users/models.py:607 +msgid "API tokens" +msgstr "" + +#: apps/users/views.py:69 msgid "Transaction amounts are now hidden" msgstr "Los montos de las transacciones ahora están ocultos" -#: apps/users/views.py:70 +#: apps/users/views.py:72 msgid "Transaction amounts are now displayed" msgstr "Los montos de las transacciones ahora son visibles" -#: apps/users/views.py:88 +#: apps/users/views.py:90 msgid "Sounds are now muted" msgstr "Los sonidos ahora están silenciados" -#: apps/users/views.py:91 +#: apps/users/views.py:93 msgid "Sounds will now play" msgstr "Los sonidos se han activado" -#: apps/users/views.py:107 +#: apps/users/views.py:109 msgid "Your settings have been updated" msgstr "Tus ajustes han sido actualizados" +#: apps/users/views.py:148 +#, fuzzy +#| msgid "Action updated successfully" +msgid "API token created successfully" +msgstr "Acción actualizada con éxito" + +#: apps/users/views.py:167 +#, fuzzy +#| msgid "Action deleted successfully" +msgid "API token revoked successfully" +msgstr "Acción eliminada con éxito" + +#: apps/users/views.py:178 +#, fuzzy +#| msgid "Action deleted successfully" +msgid "API token deleted successfully" +msgstr "Acción eliminada con éxito" + #: templates/account_groups/fragments/add.html:5 msgid "Add account group" msgstr "Agregar grupo de cuentas" @@ -2190,6 +2288,7 @@ msgstr "Compartir" #: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:133 #: templates/tags/fragments/table.html:51 +#: templates/users/fragments/api_tokens.html:93 msgid "Delete" msgstr "Borrar" @@ -2267,6 +2366,7 @@ msgstr "¡No podrás revertir esto!" #: templates/rules/fragments/transaction_rule/view.html:98 #: templates/tags/fragments/table.html:57 #: templates/transactions/fragments/attachments.html:22 +#: templates/users/fragments/api_tokens.html:101 msgid "Yes, delete it!" msgstr "¡Sí, bórralo!" @@ -3270,6 +3370,10 @@ msgstr "Sin planes de cuotas" msgid "This is a demo!" msgstr "¡Esto es una demostración!" +#: templates/layouts/base.html:37 +msgid "Any data you add here will be wiped in 24hrs or less" +msgstr "Los datos que agregues aquí serán borrados en 24 horas o menos" + #: templates/mini_tools/currency_converter/currency_converter.html:57 msgid "Invert" msgstr "Intercambiar" @@ -3650,6 +3754,87 @@ msgstr "Sin cambios" msgid "Add user" msgstr "Agregar usuario" +#: templates/users/fragments/api_tokens.html:5 +msgid "API Tokens" +msgstr "" + +#: templates/users/fragments/api_tokens.html:7 +msgid "" +"Use these tokens for automations such as n8n. The raw token is shown only " +"once after creation." +msgstr "" + +#: templates/users/fragments/api_tokens.html:14 +msgid "Copy this token now" +msgstr "" + +#: templates/users/fragments/api_tokens.html:16 +msgid "It will not be shown again after this response." +msgstr "" + +#: templates/users/fragments/api_tokens.html:31 +msgid "Copy" +msgstr "" + +#: templates/users/fragments/api_tokens.html:52 +msgid "Revoked" +msgstr "" + +#: templates/users/fragments/api_tokens.html:59 +#, python-format +msgid "Created %(created)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:62 +#, python-format +msgid "last used %(used)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:64 +msgid "never used" +msgstr "" + +#: templates/users/fragments/api_tokens.html:68 +#, python-format +msgid "expires %(expires)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:70 +msgid "no expiry" +msgstr "" + +#: templates/users/fragments/api_tokens.html:78 +msgid "Revoke" +msgstr "" + +#: templates/users/fragments/api_tokens.html:84 +msgid "Revoke token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:85 +msgid "This token will stop working immediately." +msgstr "" + +#: templates/users/fragments/api_tokens.html:86 +#, fuzzy +#| msgid "Yes, refresh it!" +msgid "Yes, revoke it!" +msgstr "¡Sí, actualízalo!" + +#: templates/users/fragments/api_tokens.html:99 +#, fuzzy +#| msgid "Deleted At" +msgid "Delete token?" +msgstr "Eliminado en" + +#: templates/users/fragments/api_tokens.html:100 +msgid "This permanently removes the token from the list. It cannot be undone." +msgstr "" + +#: templates/users/fragments/api_tokens.html:114 +msgid "No API tokens" +msgstr "" + #: templates/users/fragments/edit.html:5 msgid "Edit user" msgstr "Editar usuario" @@ -3702,9 +3887,6 @@ msgstr "Iniciar sesión con" msgid "Yearly Overview" msgstr "Resumen Anual" -#~ msgid "Any data you add here will be wiped in 24hrs or less" -#~ msgstr "Los datos que agregues aquí serán borrados en 24 horas o menos" - #, fuzzy #~| msgid "Are you sure?" #~ msgid " Are you sure?" diff --git a/app/locale/fr/LC_MESSAGES/django.po b/app/locale/fr/LC_MESSAGES/django.po index 729a0d1..c716ace 100644 --- a/app/locale/fr/LC_MESSAGES/django.po +++ b/app/locale/fr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-06 08:15+0000\n" +"POT-Creation-Date: 2026-07-04 15:39+0000\n" "PO-Revision-Date: 2026-06-27 21:57+0000\n" "Last-Translator: sorcierwax \n" "Language-Team: French Publique : Visible " "par tous. Seulement modifiable par le propriétaire." -#: apps/common/forms.py:76 apps/users/forms.py:169 +#: apps/common/forms.py:76 apps/users/forms.py:173 msgid "Save" msgstr "Sauvegarder" @@ -541,8 +541,8 @@ msgstr "Taux de change" msgid "Date and Time" msgstr "Date et Heure" -#: apps/currencies/models.py:78 apps/users/models.py:12 -#: apps/users/models.py:497 +#: apps/currencies/models.py:78 apps/users/models.py:17 +#: apps/users/models.py:502 msgid "Auto" msgstr "Auto" @@ -583,7 +583,9 @@ msgstr "Type de Service" #: templates/entities/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16 -#: templates/tags/fragments/list.html:16 templates/users/fragments/list.html:25 +#: templates/tags/fragments/list.html:16 +#: templates/users/fragments/api_tokens.html:54 +#: templates/users/fragments/list.html:25 msgid "Active" msgstr "Actif" @@ -1602,7 +1604,7 @@ msgstr "Fichiers de transactions" msgid "Yearly" msgstr "Annuel" -#: apps/transactions/models.py:596 apps/users/models.py:464 +#: apps/transactions/models.py:596 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "Mensuel" @@ -1793,11 +1795,11 @@ msgid "Installment Plan deleted successfully" msgstr "Paiement en plusieurs fois supprimé avec succès" #: apps/transactions/views/quick_transactions.py:45 -#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:188 +#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:252 msgid "Item added successfully" msgstr "Item ajouté avec succès" -#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:220 +#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:284 msgid "Item updated successfully" msgstr "Item mis à jour avec succès" @@ -1882,44 +1884,48 @@ msgstr "Transaction restaurée avec succès" msgid "Transfer added successfully" msgstr "Virement ajouté avec succès" -#: apps/users/admin.py:22 templates/users/fragments/user_settings.html:5 +#: apps/users/admin.py:17 +msgid "Revoke selected API tokens" +msgstr "" + +#: apps/users/admin.py:28 templates/users/fragments/user_settings.html:5 msgid "User Settings" msgstr "Paramètres utilisateur" -#: apps/users/admin.py:23 +#: apps/users/admin.py:29 msgid "User Setting" msgstr "Paramètre utilisateur" -#: apps/users/admin.py:48 +#: apps/users/admin.py:54 msgid "Personal info" msgstr "Informations personnelles" -#: apps/users/admin.py:50 +#: apps/users/admin.py:56 msgid "Permissions" msgstr "Permissions" -#: apps/users/admin.py:61 +#: apps/users/admin.py:67 msgid "Important dates" msgstr "Dates importantes" -#: apps/users/forms.py:24 apps/users/forms.py:28 apps/users/models.py:451 +#: apps/users/forms.py:28 apps/users/forms.py:32 apps/users/models.py:456 #: templates/users/login.html:18 msgid "E-mail" msgstr "E-mail" -#: apps/users/forms.py:35 apps/users/forms.py:40 templates/users/login.html:19 +#: apps/users/forms.py:39 apps/users/forms.py:44 templates/users/login.html:19 msgid "Password" msgstr "Mot de passe" -#: apps/users/forms.py:47 +#: apps/users/forms.py:51 msgid "Invalid e-mail or password" msgstr "E-mail ou mot de passe invalide" -#: apps/users/forms.py:48 +#: apps/users/forms.py:52 msgid "This account is deactivated" msgstr "Ce compte est désactivé" -#: apps/users/forms.py:64 apps/users/forms.py:77 apps/users/forms.py:99 +#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:245 #: templates/transactions/pages/transactions.html:47 @@ -1927,23 +1933,23 @@ msgstr "Ce compte est désactivé" msgid "Default" msgstr "Par défaut" -#: apps/users/forms.py:107 apps/users/models.py:484 +#: apps/users/forms.py:111 apps/users/models.py:489 msgid "Date Format" msgstr "Format de date" -#: apps/users/forms.py:112 apps/users/models.py:489 +#: apps/users/forms.py:116 apps/users/models.py:494 msgid "Datetime Format" msgstr "Format de l'heure" -#: apps/users/forms.py:118 apps/users/models.py:492 +#: apps/users/forms.py:122 apps/users/models.py:497 msgid "Number Format" msgstr "Format numérique" -#: apps/users/forms.py:125 +#: apps/users/forms.py:129 msgid "Default Account" msgstr "Compte par défaut" -#: apps/users/forms.py:174 +#: apps/users/forms.py:178 #, python-format msgid "" "This changes the language (if available) and how numbers and dates are " @@ -1955,19 +1961,19 @@ msgstr "" "Considérez d'aider à la traduction de WYGIWYH dans votre langue sur " "%(translation_link)s" -#: apps/users/forms.py:183 +#: apps/users/forms.py:187 msgid "New Password" msgstr "Nouveau mot de passe" -#: apps/users/forms.py:186 +#: apps/users/forms.py:190 msgid "Leave blank to keep the current password." msgstr "Laisser vide pour garder le mot de passe actuel." -#: apps/users/forms.py:189 +#: apps/users/forms.py:193 msgid "Confirm New Password" msgstr "Confirmer le nouveau mot de passe" -#: apps/users/forms.py:201 apps/users/forms.py:358 +#: apps/users/forms.py:205 apps/users/forms.py:362 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." @@ -1975,7 +1981,7 @@ msgstr "" "Indique si cet utilisateur doit être traité comme actif. Désélectionnez ceci " "plutôt que supprimer des comptes." -#: apps/users/forms.py:204 apps/users/forms.py:361 +#: apps/users/forms.py:208 apps/users/forms.py:365 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." @@ -1983,113 +1989,205 @@ msgstr "" "Définir que cet utilisateur a toutes les permissions sans les assigner " "explicitement." -#: apps/users/forms.py:271 +#: apps/users/forms.py:275 msgid "This email address is already in use by another account." msgstr "" "Cette adresse email est déjà utiliser dans un autre compte utilisateur." -#: apps/users/forms.py:279 +#: apps/users/forms.py:283 msgid "The two password fields didn't match." msgstr "Les deux mot de passe ne correspondent pas." -#: apps/users/forms.py:281 +#: apps/users/forms.py:285 msgid "Please confirm your new password." msgstr "Merci de confirmer votre mot de passe." -#: apps/users/forms.py:283 +#: apps/users/forms.py:287 msgid "Please enter the new password first." msgstr "Merci d'indiquer d'abord le nouveau mot de passe." -#: apps/users/forms.py:303 +#: apps/users/forms.py:307 msgid "You cannot deactivate your own account using this form." msgstr "" "Vous ne pouvez pas désactiver votre propre compte utilisateur avec ce " "formulaire." -#: apps/users/forms.py:316 +#: apps/users/forms.py:320 msgid "Cannot remove status from the last superuser." msgstr "Impossible de supprimer le statut du dernier super utilisateur." -#: apps/users/forms.py:322 +#: apps/users/forms.py:326 msgid "You cannot remove your own superuser status using this form." msgstr "" "Vous ne pouvez pas supprimer votre propre statut de super utilisateur via ce " "formulaire." -#: apps/users/forms.py:415 +#: apps/users/forms.py:419 msgid "A user with this email address already exists." msgstr "Un utilisateur avec cette adresse email existe déjà." -#: apps/users/models.py:465 +#: apps/users/forms.py:439 +#, fuzzy +#| msgid "Tag name" +msgid "Token name" +msgstr "Libellé de l'étiquette" + +#: apps/users/forms.py:441 +msgid "Use a descriptive name such as n8n, Home Assistant, or backup job." +msgstr "" + +#: apps/users/forms.py:447 +msgid "Expires in days" +msgstr "" + +#: apps/users/forms.py:448 +msgid "Leave empty for a non-expiring token." +msgstr "" + +#: apps/users/forms.py:463 +#, fuzzy +#| msgid "Create transaction" +msgid "Create token" +msgstr "Créer une transaction" + +#: apps/users/models.py:470 msgid "Yearly by currency" msgstr "Annuel par devise" -#: apps/users/models.py:466 +#: apps/users/models.py:471 msgid "Yearly by account" msgstr "Annuel par comptes" -#: apps/users/models.py:467 templates/net_worth/net_worth.html:9 +#: apps/users/models.py:472 templates/net_worth/net_worth.html:9 msgid "Current Net Worth" msgstr "Valeur nette actuelle" -#: apps/users/models.py:468 templates/net_worth/net_worth.html:11 +#: apps/users/models.py:473 templates/net_worth/net_worth.html:11 msgid "Projected Net Worth" msgstr "Valeur nette prévisionnelle" -#: apps/users/models.py:469 +#: apps/users/models.py:474 msgid "All Transactions" msgstr "Toutes les transactions" -#: apps/users/models.py:470 templates/includes/sidebar.html:63 +#: apps/users/models.py:475 templates/includes/sidebar.html:63 msgid "Calendar" msgstr "Calendrier" -#: apps/users/models.py:480 +#: apps/users/models.py:485 msgid "Volume" msgstr "Volume" -#: apps/users/models.py:499 +#: apps/users/models.py:504 msgid "Language" msgstr "Langage" -#: apps/users/models.py:505 +#: apps/users/models.py:510 msgid "Time Zone" msgstr "Fuseau horaire" -#: apps/users/models.py:511 +#: apps/users/models.py:516 msgid "Start page" msgstr "Page d'accueil" -#: apps/users/models.py:516 +#: apps/users/models.py:521 msgid "Default account" msgstr "Compte par défaut" -#: apps/users/models.py:517 +#: apps/users/models.py:522 msgid "Selects the account by default when creating new transactions" msgstr "" "Sélectionner le compte par défaut lors de la création de nouvelles " "transactions" -#: apps/users/views.py:67 +#: apps/users/models.py:570 +#, fuzzy +#| msgid "Users" +msgid "User" +msgstr "Utilisateurs" + +#: apps/users/models.py:577 +msgid "Token key" +msgstr "" + +#: apps/users/models.py:579 +msgid "Token hash" +msgstr "" + +#: apps/users/models.py:583 +#, fuzzy +#| msgid "Last Generated Date" +msgid "Last used at" +msgstr "Dernière date générée" + +#: apps/users/models.py:588 +msgid "Expires at" +msgstr "" + +#: apps/users/models.py:593 +msgid "Revoked at" +msgstr "" + +#: apps/users/models.py:595 +#, fuzzy +#| msgid "Create" +msgid "Created at" +msgstr "Créer" + +#: apps/users/models.py:596 +#, fuzzy +#| msgid "Update" +msgid "Updated at" +msgstr "Mise à jour" + +#: apps/users/models.py:606 +#, fuzzy +#| msgid "API Key" +msgid "API token" +msgstr "Clé API" + +#: apps/users/models.py:607 +msgid "API tokens" +msgstr "" + +#: apps/users/views.py:69 msgid "Transaction amounts are now hidden" msgstr "Les montants des transactions sont maintenant masqués" -#: apps/users/views.py:70 +#: apps/users/views.py:72 msgid "Transaction amounts are now displayed" msgstr "Les montants des transactions sont maintenant affichés" -#: apps/users/views.py:88 +#: apps/users/views.py:90 msgid "Sounds are now muted" msgstr "Les sons sont désactivés" -#: apps/users/views.py:91 +#: apps/users/views.py:93 msgid "Sounds will now play" msgstr "Les sons sont activés" -#: apps/users/views.py:107 +#: apps/users/views.py:109 msgid "Your settings have been updated" msgstr "Vos réglages ont été mis à jour" +#: apps/users/views.py:148 +#, fuzzy +#| msgid "Action updated successfully" +msgid "API token created successfully" +msgstr "Action mis à jour avec succès" + +#: apps/users/views.py:167 +#, fuzzy +#| msgid "Action deleted successfully" +msgid "API token revoked successfully" +msgstr "Action supprimée avec succès" + +#: apps/users/views.py:178 +#, fuzzy +#| msgid "Action deleted successfully" +msgid "API token deleted successfully" +msgstr "Action supprimée avec succès" + #: templates/account_groups/fragments/add.html:5 msgid "Add account group" msgstr "Ajouter un groupe de comptes" @@ -2187,6 +2285,7 @@ msgstr "Partager" #: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:133 #: templates/tags/fragments/table.html:51 +#: templates/users/fragments/api_tokens.html:93 msgid "Delete" msgstr "Supprimer" @@ -2264,6 +2363,7 @@ msgstr "Cette opération est irréversible, vous ne pourrez pas l'annuler !" #: templates/rules/fragments/transaction_rule/view.html:98 #: templates/tags/fragments/table.html:57 #: templates/transactions/fragments/attachments.html:22 +#: templates/users/fragments/api_tokens.html:101 msgid "Yes, delete it!" msgstr "Oui, supprime !" @@ -3273,6 +3373,10 @@ msgstr "Aucuns paiements en plusieurs fois" msgid "This is a demo!" msgstr "C'est une démo !" +#: templates/layouts/base.html:37 +msgid "Any data you add here will be wiped in 24hrs or less" +msgstr "Toutes les données ajoutées ici seront purgées dans les 24 heures" + #: templates/mini_tools/currency_converter/currency_converter.html:57 msgid "Invert" msgstr "Inverser" @@ -3652,6 +3756,87 @@ msgstr "Identique" msgid "Add user" msgstr "Ajouter un nouvel utilisateur" +#: templates/users/fragments/api_tokens.html:5 +msgid "API Tokens" +msgstr "" + +#: templates/users/fragments/api_tokens.html:7 +msgid "" +"Use these tokens for automations such as n8n. The raw token is shown only " +"once after creation." +msgstr "" + +#: templates/users/fragments/api_tokens.html:14 +msgid "Copy this token now" +msgstr "" + +#: templates/users/fragments/api_tokens.html:16 +msgid "It will not be shown again after this response." +msgstr "" + +#: templates/users/fragments/api_tokens.html:31 +msgid "Copy" +msgstr "" + +#: templates/users/fragments/api_tokens.html:52 +msgid "Revoked" +msgstr "" + +#: templates/users/fragments/api_tokens.html:59 +#, python-format +msgid "Created %(created)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:62 +#, python-format +msgid "last used %(used)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:64 +msgid "never used" +msgstr "" + +#: templates/users/fragments/api_tokens.html:68 +#, python-format +msgid "expires %(expires)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:70 +msgid "no expiry" +msgstr "" + +#: templates/users/fragments/api_tokens.html:78 +msgid "Revoke" +msgstr "" + +#: templates/users/fragments/api_tokens.html:84 +msgid "Revoke token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:85 +msgid "This token will stop working immediately." +msgstr "" + +#: templates/users/fragments/api_tokens.html:86 +#, fuzzy +#| msgid "Yes, refresh it!" +msgid "Yes, revoke it!" +msgstr "Oui, mets à jour !" + +#: templates/users/fragments/api_tokens.html:99 +#, fuzzy +#| msgid "Deleted At" +msgid "Delete token?" +msgstr "Supprimé à" + +#: templates/users/fragments/api_tokens.html:100 +msgid "This permanently removes the token from the list. It cannot be undone." +msgstr "" + +#: templates/users/fragments/api_tokens.html:114 +msgid "No API tokens" +msgstr "" + #: templates/users/fragments/edit.html:5 msgid "Edit user" msgstr "Modifier l'utilisateur" @@ -3704,9 +3889,6 @@ msgstr "Se connecter avec" msgid "Yearly Overview" msgstr "Aperçu annuel" -#~ msgid "Any data you add here will be wiped in 24hrs or less" -#~ msgstr "Toutes les données ajoutées ici seront purgées dans les 24 heures" - #, fuzzy #~| msgid "Are you sure?" #~ msgid " Are you sure?" diff --git a/app/locale/hu/LC_MESSAGES/django.po b/app/locale/hu/LC_MESSAGES/django.po index 5558af9..8ea74b2 100644 --- a/app/locale/hu/LC_MESSAGES/django.po +++ b/app/locale/hu/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-06 08:15+0000\n" +"POT-Creation-Date: 2026-07-04 15:39+0000\n" "PO-Revision-Date: 2026-01-10 03:09+0000\n" "Last-Translator: Herculino Trotta \n" "Language-Team: Hungarian Public: Shown for all users. Only editable by the owner." msgstr "" -#: apps/common/forms.py:76 apps/users/forms.py:169 +#: apps/common/forms.py:76 apps/users/forms.py:173 msgid "Save" msgstr "Mentés" @@ -536,8 +536,8 @@ msgstr "Átváltási ráta" msgid "Date and Time" msgstr "Dátum és idő" -#: apps/currencies/models.py:78 apps/users/models.py:12 -#: apps/users/models.py:497 +#: apps/currencies/models.py:78 apps/users/models.py:17 +#: apps/users/models.py:502 msgid "Auto" msgstr "Automata" @@ -578,7 +578,9 @@ msgstr "Szolgáltatás típusa" #: templates/entities/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16 -#: templates/tags/fragments/list.html:16 templates/users/fragments/list.html:25 +#: templates/tags/fragments/list.html:16 +#: templates/users/fragments/api_tokens.html:54 +#: templates/users/fragments/list.html:25 msgid "Active" msgstr "Aktív" @@ -1578,7 +1580,7 @@ msgstr "Tranzakciós szabályok" msgid "Yearly" msgstr "Éves" -#: apps/transactions/models.py:596 apps/users/models.py:464 +#: apps/transactions/models.py:596 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "Havi" @@ -1769,11 +1771,11 @@ msgid "Installment Plan deleted successfully" msgstr "" #: apps/transactions/views/quick_transactions.py:45 -#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:188 +#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:252 msgid "Item added successfully" msgstr "" -#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:220 +#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:284 msgid "Item updated successfully" msgstr "" @@ -1862,44 +1864,48 @@ msgstr "" msgid "Transfer added successfully" msgstr "" -#: apps/users/admin.py:22 templates/users/fragments/user_settings.html:5 +#: apps/users/admin.py:17 +msgid "Revoke selected API tokens" +msgstr "" + +#: apps/users/admin.py:28 templates/users/fragments/user_settings.html:5 msgid "User Settings" msgstr "" -#: apps/users/admin.py:23 +#: apps/users/admin.py:29 msgid "User Setting" msgstr "" -#: apps/users/admin.py:48 +#: apps/users/admin.py:54 msgid "Personal info" msgstr "" -#: apps/users/admin.py:50 +#: apps/users/admin.py:56 msgid "Permissions" msgstr "" -#: apps/users/admin.py:61 +#: apps/users/admin.py:67 msgid "Important dates" msgstr "" -#: apps/users/forms.py:24 apps/users/forms.py:28 apps/users/models.py:451 +#: apps/users/forms.py:28 apps/users/forms.py:32 apps/users/models.py:456 #: templates/users/login.html:18 msgid "E-mail" msgstr "" -#: apps/users/forms.py:35 apps/users/forms.py:40 templates/users/login.html:19 +#: apps/users/forms.py:39 apps/users/forms.py:44 templates/users/login.html:19 msgid "Password" msgstr "" -#: apps/users/forms.py:47 +#: apps/users/forms.py:51 msgid "Invalid e-mail or password" msgstr "" -#: apps/users/forms.py:48 +#: apps/users/forms.py:52 msgid "This account is deactivated" msgstr "" -#: apps/users/forms.py:64 apps/users/forms.py:77 apps/users/forms.py:99 +#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:245 #: templates/transactions/pages/transactions.html:47 @@ -1907,25 +1913,25 @@ msgstr "" msgid "Default" msgstr "" -#: apps/users/forms.py:107 apps/users/models.py:484 +#: apps/users/forms.py:111 apps/users/models.py:489 msgid "Date Format" msgstr "" -#: apps/users/forms.py:112 apps/users/models.py:489 +#: apps/users/forms.py:116 apps/users/models.py:494 msgid "Datetime Format" msgstr "" -#: apps/users/forms.py:118 apps/users/models.py:492 +#: apps/users/forms.py:122 apps/users/models.py:497 msgid "Number Format" msgstr "" -#: apps/users/forms.py:125 +#: apps/users/forms.py:129 #, fuzzy #| msgid "Target Accounts" msgid "Default Account" msgstr "Cél számlák" -#: apps/users/forms.py:174 +#: apps/users/forms.py:178 #, python-format msgid "" "This changes the language (if available) and how numbers and dates are " @@ -1933,132 +1939,218 @@ msgid "" "Consider helping translate WYGIWYH to your language at %(translation_link)s" msgstr "" -#: apps/users/forms.py:183 +#: apps/users/forms.py:187 msgid "New Password" msgstr "" -#: apps/users/forms.py:186 +#: apps/users/forms.py:190 msgid "Leave blank to keep the current password." msgstr "" -#: apps/users/forms.py:189 +#: apps/users/forms.py:193 msgid "Confirm New Password" msgstr "" -#: apps/users/forms.py:201 apps/users/forms.py:358 +#: apps/users/forms.py:205 apps/users/forms.py:362 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." msgstr "" -#: apps/users/forms.py:204 apps/users/forms.py:361 +#: apps/users/forms.py:208 apps/users/forms.py:365 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." msgstr "" -#: apps/users/forms.py:271 +#: apps/users/forms.py:275 msgid "This email address is already in use by another account." msgstr "" -#: apps/users/forms.py:279 +#: apps/users/forms.py:283 msgid "The two password fields didn't match." msgstr "" -#: apps/users/forms.py:281 +#: apps/users/forms.py:285 msgid "Please confirm your new password." msgstr "" -#: apps/users/forms.py:283 +#: apps/users/forms.py:287 msgid "Please enter the new password first." msgstr "" -#: apps/users/forms.py:303 +#: apps/users/forms.py:307 msgid "You cannot deactivate your own account using this form." msgstr "" -#: apps/users/forms.py:316 +#: apps/users/forms.py:320 msgid "Cannot remove status from the last superuser." msgstr "" -#: apps/users/forms.py:322 +#: apps/users/forms.py:326 msgid "You cannot remove your own superuser status using this form." msgstr "" -#: apps/users/forms.py:415 +#: apps/users/forms.py:419 msgid "A user with this email address already exists." msgstr "" -#: apps/users/models.py:465 +#: apps/users/forms.py:439 +#, fuzzy +#| msgid "File name" +msgid "Token name" +msgstr "Fájlnév" + +#: apps/users/forms.py:441 +msgid "Use a descriptive name such as n8n, Home Assistant, or backup job." +msgstr "" + +#: apps/users/forms.py:447 +msgid "Expires in days" +msgstr "" + +#: apps/users/forms.py:448 +msgid "Leave empty for a non-expiring token." +msgstr "" + +#: apps/users/forms.py:463 +msgid "Create token" +msgstr "" + +#: apps/users/models.py:470 msgid "Yearly by currency" msgstr "" -#: apps/users/models.py:466 +#: apps/users/models.py:471 msgid "Yearly by account" msgstr "" -#: apps/users/models.py:467 templates/net_worth/net_worth.html:9 +#: apps/users/models.py:472 templates/net_worth/net_worth.html:9 msgid "Current Net Worth" msgstr "" -#: apps/users/models.py:468 templates/net_worth/net_worth.html:11 +#: apps/users/models.py:473 templates/net_worth/net_worth.html:11 msgid "Projected Net Worth" msgstr "Várható nettó vagyon" -#: apps/users/models.py:469 +#: apps/users/models.py:474 msgid "All Transactions" msgstr "" -#: apps/users/models.py:470 templates/includes/sidebar.html:63 +#: apps/users/models.py:475 templates/includes/sidebar.html:63 msgid "Calendar" msgstr "Naptár" -#: apps/users/models.py:480 +#: apps/users/models.py:485 msgid "Volume" msgstr "" -#: apps/users/models.py:499 +#: apps/users/models.py:504 msgid "Language" msgstr "" -#: apps/users/models.py:505 +#: apps/users/models.py:510 msgid "Time Zone" msgstr "" -#: apps/users/models.py:511 +#: apps/users/models.py:516 msgid "Start page" msgstr "" -#: apps/users/models.py:516 +#: apps/users/models.py:521 #, fuzzy #| msgid "Asset account" msgid "Default account" msgstr "Eszközszámla" -#: apps/users/models.py:517 +#: apps/users/models.py:522 msgid "Selects the account by default when creating new transactions" msgstr "" -#: apps/users/views.py:67 +#: apps/users/models.py:570 +#, fuzzy +#| msgid "Users" +msgid "User" +msgstr "Felhasználók" + +#: apps/users/models.py:577 +msgid "Token key" +msgstr "" + +#: apps/users/models.py:579 +msgid "Token hash" +msgstr "" + +#: apps/users/models.py:583 +msgid "Last used at" +msgstr "" + +#: apps/users/models.py:588 +msgid "Expires at" +msgstr "" + +#: apps/users/models.py:593 +msgid "Revoked at" +msgstr "" + +#: apps/users/models.py:595 +msgid "Created at" +msgstr "" + +#: apps/users/models.py:596 +#, fuzzy +#| msgid "Update" +msgid "Updated at" +msgstr "Frissítés" + +#: apps/users/models.py:606 +#, fuzzy +#| msgid "API Key" +msgid "API token" +msgstr "API kulcs" + +#: apps/users/models.py:607 +msgid "API tokens" +msgstr "" + +#: apps/users/views.py:69 msgid "Transaction amounts are now hidden" msgstr "" -#: apps/users/views.py:70 +#: apps/users/views.py:72 msgid "Transaction amounts are now displayed" msgstr "" -#: apps/users/views.py:88 +#: apps/users/views.py:90 msgid "Sounds are now muted" msgstr "" -#: apps/users/views.py:91 +#: apps/users/views.py:93 msgid "Sounds will now play" msgstr "" -#: apps/users/views.py:107 +#: apps/users/views.py:109 msgid "Your settings have been updated" msgstr "" +#: apps/users/views.py:148 +#, fuzzy +#| msgid "Account updated successfully" +msgid "API token created successfully" +msgstr "A számla módosítása sikeres volt" + +#: apps/users/views.py:167 +#, fuzzy +#| msgid "Account deleted successfully" +msgid "API token revoked successfully" +msgstr "A számla törlésre került" + +#: apps/users/views.py:178 +#, fuzzy +#| msgid "Account deleted successfully" +msgid "API token deleted successfully" +msgstr "A számla törlésre került" + #: templates/account_groups/fragments/add.html:5 msgid "Add account group" msgstr "" @@ -2156,6 +2248,7 @@ msgstr "" #: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:133 #: templates/tags/fragments/table.html:51 +#: templates/users/fragments/api_tokens.html:93 msgid "Delete" msgstr "" @@ -2233,6 +2326,7 @@ msgstr "" #: templates/rules/fragments/transaction_rule/view.html:98 #: templates/tags/fragments/table.html:57 #: templates/transactions/fragments/attachments.html:22 +#: templates/users/fragments/api_tokens.html:101 msgid "Yes, delete it!" msgstr "" @@ -3230,6 +3324,10 @@ msgstr "" msgid "This is a demo!" msgstr "" +#: templates/layouts/base.html:37 +msgid "Any data you add here will be wiped in 24hrs or less" +msgstr "" + #: templates/mini_tools/currency_converter/currency_converter.html:57 msgid "Invert" msgstr "" @@ -3604,6 +3702,83 @@ msgstr "" msgid "Add user" msgstr "" +#: templates/users/fragments/api_tokens.html:5 +msgid "API Tokens" +msgstr "" + +#: templates/users/fragments/api_tokens.html:7 +msgid "" +"Use these tokens for automations such as n8n. The raw token is shown only " +"once after creation." +msgstr "" + +#: templates/users/fragments/api_tokens.html:14 +msgid "Copy this token now" +msgstr "" + +#: templates/users/fragments/api_tokens.html:16 +msgid "It will not be shown again after this response." +msgstr "" + +#: templates/users/fragments/api_tokens.html:31 +msgid "Copy" +msgstr "" + +#: templates/users/fragments/api_tokens.html:52 +msgid "Revoked" +msgstr "" + +#: templates/users/fragments/api_tokens.html:59 +#, python-format +msgid "Created %(created)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:62 +#, python-format +msgid "last used %(used)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:64 +msgid "never used" +msgstr "" + +#: templates/users/fragments/api_tokens.html:68 +#, python-format +msgid "expires %(expires)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:70 +msgid "no expiry" +msgstr "" + +#: templates/users/fragments/api_tokens.html:78 +msgid "Revoke" +msgstr "" + +#: templates/users/fragments/api_tokens.html:84 +msgid "Revoke token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:85 +msgid "This token will stop working immediately." +msgstr "" + +#: templates/users/fragments/api_tokens.html:86 +msgid "Yes, revoke it!" +msgstr "" + +#: templates/users/fragments/api_tokens.html:99 +msgid "Delete token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:100 +msgid "This permanently removes the token from the list. It cannot be undone." +msgstr "" + +#: templates/users/fragments/api_tokens.html:114 +msgid "No API tokens" +msgstr "" + #: templates/users/fragments/edit.html:5 msgid "Edit user" msgstr "" diff --git a/app/locale/id/LC_MESSAGES/django.po b/app/locale/id/LC_MESSAGES/django.po index e571d91..a8288a9 100644 --- a/app/locale/id/LC_MESSAGES/django.po +++ b/app/locale/id/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-06 08:15+0000\n" +"POT-Creation-Date: 2026-07-04 15:39+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -29,8 +29,8 @@ msgstr "" #: apps/transactions/forms.py:417 apps/transactions/forms.py:536 #: apps/transactions/forms.py:880 apps/transactions/forms.py:919 #: apps/transactions/forms.py:947 apps/transactions/forms.py:978 -#: apps/transactions/forms.py:1128 apps/users/forms.py:242 -#: apps/users/forms.py:400 +#: apps/transactions/forms.py:1128 apps/users/forms.py:246 +#: apps/users/forms.py:404 #: templates/rules/fragments/transaction_rule/dry_run/updated.html:5 #: templates/rules/fragments/transaction_rule/view.html:128 msgid "Update" @@ -45,7 +45,7 @@ msgstr "" #: apps/transactions/forms.py:424 apps/transactions/forms.py:886 #: apps/transactions/forms.py:925 apps/transactions/forms.py:953 #: apps/transactions/forms.py:984 apps/transactions/forms.py:1134 -#: apps/users/forms.py:248 apps/users/forms.py:406 +#: apps/users/forms.py:252 apps/users/forms.py:410 #: templates/mini_tools/unit_price_calculator.html:168 msgid "Add" msgstr "" @@ -97,7 +97,7 @@ msgstr "" #: apps/import_app/models.py:14 apps/rules/models.py:13 #: apps/transactions/models.py:223 apps/transactions/models.py:248 #: apps/transactions/models.py:272 apps/transactions/models.py:1057 -#: templates/account_groups/fragments/list.html:22 +#: apps/users/models.py:572 templates/account_groups/fragments/list.html:22 #: templates/accounts/fragments/list.html:22 #: templates/categories/fragments/table.html:17 #: templates/currencies/fragments/list.html:23 @@ -343,7 +343,7 @@ msgid "" "owner.
Public: Shown for all users. Only editable by the owner." msgstr "" -#: apps/common/forms.py:76 apps/users/forms.py:169 +#: apps/common/forms.py:76 apps/users/forms.py:173 msgid "Save" msgstr "" @@ -529,8 +529,8 @@ msgstr "" msgid "Date and Time" msgstr "" -#: apps/currencies/models.py:78 apps/users/models.py:12 -#: apps/users/models.py:497 +#: apps/currencies/models.py:78 apps/users/models.py:17 +#: apps/users/models.py:502 msgid "Auto" msgstr "" @@ -571,7 +571,9 @@ msgstr "" #: templates/entities/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16 -#: templates/tags/fragments/list.html:16 templates/users/fragments/list.html:25 +#: templates/tags/fragments/list.html:16 +#: templates/users/fragments/api_tokens.html:54 +#: templates/users/fragments/list.html:25 msgid "Active" msgstr "" @@ -1563,7 +1565,7 @@ msgstr "" msgid "Yearly" msgstr "" -#: apps/transactions/models.py:596 apps/users/models.py:464 +#: apps/transactions/models.py:596 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "" @@ -1754,11 +1756,11 @@ msgid "Installment Plan deleted successfully" msgstr "" #: apps/transactions/views/quick_transactions.py:45 -#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:188 +#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:252 msgid "Item added successfully" msgstr "" -#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:220 +#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:284 msgid "Item updated successfully" msgstr "" @@ -1843,44 +1845,48 @@ msgstr "" msgid "Transfer added successfully" msgstr "" -#: apps/users/admin.py:22 templates/users/fragments/user_settings.html:5 +#: apps/users/admin.py:17 +msgid "Revoke selected API tokens" +msgstr "" + +#: apps/users/admin.py:28 templates/users/fragments/user_settings.html:5 msgid "User Settings" msgstr "" -#: apps/users/admin.py:23 +#: apps/users/admin.py:29 msgid "User Setting" msgstr "" -#: apps/users/admin.py:48 +#: apps/users/admin.py:54 msgid "Personal info" msgstr "" -#: apps/users/admin.py:50 +#: apps/users/admin.py:56 msgid "Permissions" msgstr "" -#: apps/users/admin.py:61 +#: apps/users/admin.py:67 msgid "Important dates" msgstr "" -#: apps/users/forms.py:24 apps/users/forms.py:28 apps/users/models.py:451 +#: apps/users/forms.py:28 apps/users/forms.py:32 apps/users/models.py:456 #: templates/users/login.html:18 msgid "E-mail" msgstr "" -#: apps/users/forms.py:35 apps/users/forms.py:40 templates/users/login.html:19 +#: apps/users/forms.py:39 apps/users/forms.py:44 templates/users/login.html:19 msgid "Password" msgstr "" -#: apps/users/forms.py:47 +#: apps/users/forms.py:51 msgid "Invalid e-mail or password" msgstr "" -#: apps/users/forms.py:48 +#: apps/users/forms.py:52 msgid "This account is deactivated" msgstr "" -#: apps/users/forms.py:64 apps/users/forms.py:77 apps/users/forms.py:99 +#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:245 #: templates/transactions/pages/transactions.html:47 @@ -1888,23 +1894,23 @@ msgstr "" msgid "Default" msgstr "" -#: apps/users/forms.py:107 apps/users/models.py:484 +#: apps/users/forms.py:111 apps/users/models.py:489 msgid "Date Format" msgstr "" -#: apps/users/forms.py:112 apps/users/models.py:489 +#: apps/users/forms.py:116 apps/users/models.py:494 msgid "Datetime Format" msgstr "" -#: apps/users/forms.py:118 apps/users/models.py:492 +#: apps/users/forms.py:122 apps/users/models.py:497 msgid "Number Format" msgstr "" -#: apps/users/forms.py:125 +#: apps/users/forms.py:129 msgid "Default Account" msgstr "" -#: apps/users/forms.py:174 +#: apps/users/forms.py:178 #, python-format msgid "" "This changes the language (if available) and how numbers and dates are " @@ -1912,130 +1918,202 @@ msgid "" "Consider helping translate WYGIWYH to your language at %(translation_link)s" msgstr "" -#: apps/users/forms.py:183 +#: apps/users/forms.py:187 msgid "New Password" msgstr "" -#: apps/users/forms.py:186 +#: apps/users/forms.py:190 msgid "Leave blank to keep the current password." msgstr "" -#: apps/users/forms.py:189 +#: apps/users/forms.py:193 msgid "Confirm New Password" msgstr "" -#: apps/users/forms.py:201 apps/users/forms.py:358 +#: apps/users/forms.py:205 apps/users/forms.py:362 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." msgstr "" -#: apps/users/forms.py:204 apps/users/forms.py:361 +#: apps/users/forms.py:208 apps/users/forms.py:365 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." msgstr "" -#: apps/users/forms.py:271 +#: apps/users/forms.py:275 msgid "This email address is already in use by another account." msgstr "" -#: apps/users/forms.py:279 +#: apps/users/forms.py:283 msgid "The two password fields didn't match." msgstr "" -#: apps/users/forms.py:281 +#: apps/users/forms.py:285 msgid "Please confirm your new password." msgstr "" -#: apps/users/forms.py:283 +#: apps/users/forms.py:287 msgid "Please enter the new password first." msgstr "" -#: apps/users/forms.py:303 +#: apps/users/forms.py:307 msgid "You cannot deactivate your own account using this form." msgstr "" -#: apps/users/forms.py:316 +#: apps/users/forms.py:320 msgid "Cannot remove status from the last superuser." msgstr "" -#: apps/users/forms.py:322 +#: apps/users/forms.py:326 msgid "You cannot remove your own superuser status using this form." msgstr "" -#: apps/users/forms.py:415 +#: apps/users/forms.py:419 msgid "A user with this email address already exists." msgstr "" -#: apps/users/models.py:465 +#: apps/users/forms.py:439 +msgid "Token name" +msgstr "" + +#: apps/users/forms.py:441 +msgid "Use a descriptive name such as n8n, Home Assistant, or backup job." +msgstr "" + +#: apps/users/forms.py:447 +msgid "Expires in days" +msgstr "" + +#: apps/users/forms.py:448 +msgid "Leave empty for a non-expiring token." +msgstr "" + +#: apps/users/forms.py:463 +msgid "Create token" +msgstr "" + +#: apps/users/models.py:470 msgid "Yearly by currency" msgstr "" -#: apps/users/models.py:466 +#: apps/users/models.py:471 msgid "Yearly by account" msgstr "" -#: apps/users/models.py:467 templates/net_worth/net_worth.html:9 +#: apps/users/models.py:472 templates/net_worth/net_worth.html:9 msgid "Current Net Worth" msgstr "" -#: apps/users/models.py:468 templates/net_worth/net_worth.html:11 +#: apps/users/models.py:473 templates/net_worth/net_worth.html:11 msgid "Projected Net Worth" msgstr "" -#: apps/users/models.py:469 +#: apps/users/models.py:474 msgid "All Transactions" msgstr "" -#: apps/users/models.py:470 templates/includes/sidebar.html:63 +#: apps/users/models.py:475 templates/includes/sidebar.html:63 msgid "Calendar" msgstr "" -#: apps/users/models.py:480 +#: apps/users/models.py:485 msgid "Volume" msgstr "" -#: apps/users/models.py:499 +#: apps/users/models.py:504 msgid "Language" msgstr "" -#: apps/users/models.py:505 +#: apps/users/models.py:510 msgid "Time Zone" msgstr "" -#: apps/users/models.py:511 +#: apps/users/models.py:516 msgid "Start page" msgstr "" -#: apps/users/models.py:516 +#: apps/users/models.py:521 msgid "Default account" msgstr "" -#: apps/users/models.py:517 +#: apps/users/models.py:522 msgid "Selects the account by default when creating new transactions" msgstr "" -#: apps/users/views.py:67 +#: apps/users/models.py:570 +msgid "User" +msgstr "" + +#: apps/users/models.py:577 +msgid "Token key" +msgstr "" + +#: apps/users/models.py:579 +msgid "Token hash" +msgstr "" + +#: apps/users/models.py:583 +msgid "Last used at" +msgstr "" + +#: apps/users/models.py:588 +msgid "Expires at" +msgstr "" + +#: apps/users/models.py:593 +msgid "Revoked at" +msgstr "" + +#: apps/users/models.py:595 +msgid "Created at" +msgstr "" + +#: apps/users/models.py:596 +msgid "Updated at" +msgstr "" + +#: apps/users/models.py:606 +msgid "API token" +msgstr "" + +#: apps/users/models.py:607 +msgid "API tokens" +msgstr "" + +#: apps/users/views.py:69 msgid "Transaction amounts are now hidden" msgstr "" -#: apps/users/views.py:70 +#: apps/users/views.py:72 msgid "Transaction amounts are now displayed" msgstr "" -#: apps/users/views.py:88 +#: apps/users/views.py:90 msgid "Sounds are now muted" msgstr "" -#: apps/users/views.py:91 +#: apps/users/views.py:93 msgid "Sounds will now play" msgstr "" -#: apps/users/views.py:107 +#: apps/users/views.py:109 msgid "Your settings have been updated" msgstr "" +#: apps/users/views.py:148 +msgid "API token created successfully" +msgstr "" + +#: apps/users/views.py:167 +msgid "API token revoked successfully" +msgstr "" + +#: apps/users/views.py:178 +msgid "API token deleted successfully" +msgstr "" + #: templates/account_groups/fragments/add.html:5 msgid "Add account group" msgstr "" @@ -2133,6 +2211,7 @@ msgstr "" #: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:133 #: templates/tags/fragments/table.html:51 +#: templates/users/fragments/api_tokens.html:93 msgid "Delete" msgstr "" @@ -2210,6 +2289,7 @@ msgstr "" #: templates/rules/fragments/transaction_rule/view.html:98 #: templates/tags/fragments/table.html:57 #: templates/transactions/fragments/attachments.html:22 +#: templates/users/fragments/api_tokens.html:101 msgid "Yes, delete it!" msgstr "" @@ -3204,6 +3284,10 @@ msgstr "" msgid "This is a demo!" msgstr "" +#: templates/layouts/base.html:37 +msgid "Any data you add here will be wiped in 24hrs or less" +msgstr "" + #: templates/mini_tools/currency_converter/currency_converter.html:57 msgid "Invert" msgstr "" @@ -3576,6 +3660,83 @@ msgstr "" msgid "Add user" msgstr "" +#: templates/users/fragments/api_tokens.html:5 +msgid "API Tokens" +msgstr "" + +#: templates/users/fragments/api_tokens.html:7 +msgid "" +"Use these tokens for automations such as n8n. The raw token is shown only " +"once after creation." +msgstr "" + +#: templates/users/fragments/api_tokens.html:14 +msgid "Copy this token now" +msgstr "" + +#: templates/users/fragments/api_tokens.html:16 +msgid "It will not be shown again after this response." +msgstr "" + +#: templates/users/fragments/api_tokens.html:31 +msgid "Copy" +msgstr "" + +#: templates/users/fragments/api_tokens.html:52 +msgid "Revoked" +msgstr "" + +#: templates/users/fragments/api_tokens.html:59 +#, python-format +msgid "Created %(created)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:62 +#, python-format +msgid "last used %(used)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:64 +msgid "never used" +msgstr "" + +#: templates/users/fragments/api_tokens.html:68 +#, python-format +msgid "expires %(expires)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:70 +msgid "no expiry" +msgstr "" + +#: templates/users/fragments/api_tokens.html:78 +msgid "Revoke" +msgstr "" + +#: templates/users/fragments/api_tokens.html:84 +msgid "Revoke token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:85 +msgid "This token will stop working immediately." +msgstr "" + +#: templates/users/fragments/api_tokens.html:86 +msgid "Yes, revoke it!" +msgstr "" + +#: templates/users/fragments/api_tokens.html:99 +msgid "Delete token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:100 +msgid "This permanently removes the token from the list. It cannot be undone." +msgstr "" + +#: templates/users/fragments/api_tokens.html:114 +msgid "No API tokens" +msgstr "" + #: templates/users/fragments/edit.html:5 msgid "Edit user" msgstr "" diff --git a/app/locale/it/LC_MESSAGES/django.po b/app/locale/it/LC_MESSAGES/django.po index d0e2cac..2dd1741 100644 --- a/app/locale/it/LC_MESSAGES/django.po +++ b/app/locale/it/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-06 08:15+0000\n" +"POT-Creation-Date: 2026-07-04 15:39+0000\n" "PO-Revision-Date: 2025-12-28 22:24+0000\n" "Last-Translator: icovada \n" "Language-Team: Italian Pubblico: visibile da tutti gli " "utenti. Modificabile solo dal proprietario." -#: apps/common/forms.py:76 apps/users/forms.py:169 +#: apps/common/forms.py:76 apps/users/forms.py:173 msgid "Save" msgstr "Salva" @@ -541,8 +541,8 @@ msgstr "Cambio valuta" msgid "Date and Time" msgstr "Data e ora" -#: apps/currencies/models.py:78 apps/users/models.py:12 -#: apps/users/models.py:497 +#: apps/currencies/models.py:78 apps/users/models.py:17 +#: apps/users/models.py:502 msgid "Auto" msgstr "Automatico" @@ -583,7 +583,9 @@ msgstr "Tipo di servizio" #: templates/entities/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16 -#: templates/tags/fragments/list.html:16 templates/users/fragments/list.html:25 +#: templates/tags/fragments/list.html:16 +#: templates/users/fragments/api_tokens.html:54 +#: templates/users/fragments/list.html:25 msgid "Active" msgstr "Attivo" @@ -1611,7 +1613,7 @@ msgstr "Tag di transazione" msgid "Yearly" msgstr "Annuale" -#: apps/transactions/models.py:596 apps/users/models.py:464 +#: apps/transactions/models.py:596 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "Mensile" @@ -1802,11 +1804,11 @@ msgid "Installment Plan deleted successfully" msgstr "Piano di rateizzazione eliminato correttamente" #: apps/transactions/views/quick_transactions.py:45 -#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:188 +#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:252 msgid "Item added successfully" msgstr "Elemento aggiunto con successo" -#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:220 +#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:284 msgid "Item updated successfully" msgstr "Elemento aggiornato con successo" @@ -1895,44 +1897,48 @@ msgstr "Transazione ripristinata con successo" msgid "Transfer added successfully" msgstr "Trasferimento aggiunto con successo" -#: apps/users/admin.py:22 templates/users/fragments/user_settings.html:5 +#: apps/users/admin.py:17 +msgid "Revoke selected API tokens" +msgstr "" + +#: apps/users/admin.py:28 templates/users/fragments/user_settings.html:5 msgid "User Settings" msgstr "Impostazioni utente" -#: apps/users/admin.py:23 +#: apps/users/admin.py:29 msgid "User Setting" msgstr "Impostazione utente" -#: apps/users/admin.py:48 +#: apps/users/admin.py:54 msgid "Personal info" msgstr "Informazioni personali" -#: apps/users/admin.py:50 +#: apps/users/admin.py:56 msgid "Permissions" msgstr "Permessi" -#: apps/users/admin.py:61 +#: apps/users/admin.py:67 msgid "Important dates" msgstr "Date importanti" -#: apps/users/forms.py:24 apps/users/forms.py:28 apps/users/models.py:451 +#: apps/users/forms.py:28 apps/users/forms.py:32 apps/users/models.py:456 #: templates/users/login.html:18 msgid "E-mail" msgstr "E-mail" -#: apps/users/forms.py:35 apps/users/forms.py:40 templates/users/login.html:19 +#: apps/users/forms.py:39 apps/users/forms.py:44 templates/users/login.html:19 msgid "Password" msgstr "Password" -#: apps/users/forms.py:47 +#: apps/users/forms.py:51 msgid "Invalid e-mail or password" msgstr "E-mail o password non valide" -#: apps/users/forms.py:48 +#: apps/users/forms.py:52 msgid "This account is deactivated" msgstr "Questo account è disattivato" -#: apps/users/forms.py:64 apps/users/forms.py:77 apps/users/forms.py:99 +#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:245 #: templates/transactions/pages/transactions.html:47 @@ -1940,25 +1946,25 @@ msgstr "Questo account è disattivato" msgid "Default" msgstr "Predefinito" -#: apps/users/forms.py:107 apps/users/models.py:484 +#: apps/users/forms.py:111 apps/users/models.py:489 msgid "Date Format" msgstr "Formato data" -#: apps/users/forms.py:112 apps/users/models.py:489 +#: apps/users/forms.py:116 apps/users/models.py:494 msgid "Datetime Format" msgstr "Formato data e ora" -#: apps/users/forms.py:118 apps/users/models.py:492 +#: apps/users/forms.py:122 apps/users/models.py:497 msgid "Number Format" msgstr "Formato numerico" -#: apps/users/forms.py:125 +#: apps/users/forms.py:129 #, fuzzy #| msgid "Target Accounts" msgid "Default Account" msgstr "Conti target" -#: apps/users/forms.py:174 +#: apps/users/forms.py:178 #, python-format msgid "" "This changes the language (if available) and how numbers and dates are " @@ -1970,19 +1976,19 @@ msgstr "" "Considera la possibilità di contribuire alla traduzione di WYGIWYH nella tua " "lingua su %(translation_link)s" -#: apps/users/forms.py:183 +#: apps/users/forms.py:187 msgid "New Password" msgstr "Nuova Password" -#: apps/users/forms.py:186 +#: apps/users/forms.py:190 msgid "Leave blank to keep the current password." msgstr "Lascia vuoto per mantenere la password attuale." -#: apps/users/forms.py:189 +#: apps/users/forms.py:193 msgid "Confirm New Password" msgstr "Conferma nuova password" -#: apps/users/forms.py:201 apps/users/forms.py:358 +#: apps/users/forms.py:205 apps/users/forms.py:362 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." @@ -1990,7 +1996,7 @@ msgstr "" "Indica se questo utente deve essere considerato attivo. Deseleziona questa " "opzione invece di eliminare gli account." -#: apps/users/forms.py:204 apps/users/forms.py:361 +#: apps/users/forms.py:208 apps/users/forms.py:365 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." @@ -1998,87 +2004,111 @@ msgstr "" "Indica che questo utente ha tutte le autorizzazioni senza assegnarle " "esplicitamente." -#: apps/users/forms.py:271 +#: apps/users/forms.py:275 msgid "This email address is already in use by another account." msgstr "Questo indirizzo email è già utilizzato da un altro account." -#: apps/users/forms.py:279 +#: apps/users/forms.py:283 msgid "The two password fields didn't match." msgstr "I due campi password non corrispondono." -#: apps/users/forms.py:281 +#: apps/users/forms.py:285 msgid "Please confirm your new password." msgstr "Conferma la nuova password." -#: apps/users/forms.py:283 +#: apps/users/forms.py:287 msgid "Please enter the new password first." msgstr "Inserisci prima la nuova password." -#: apps/users/forms.py:303 +#: apps/users/forms.py:307 msgid "You cannot deactivate your own account using this form." msgstr "Non è possibile disattivare il proprio account tramite questo modulo." -#: apps/users/forms.py:316 +#: apps/users/forms.py:320 msgid "Cannot remove status from the last superuser." msgstr "Impossibile rimuovere lo stato dall'ultimo superutente." -#: apps/users/forms.py:322 +#: apps/users/forms.py:326 msgid "You cannot remove your own superuser status using this form." msgstr "" "Non è possibile rimuovere il proprio stato di superutente tramite questo " "modulo." -#: apps/users/forms.py:415 +#: apps/users/forms.py:419 msgid "A user with this email address already exists." msgstr "Esiste già un utente con questo indirizzo email." -#: apps/users/models.py:465 +#: apps/users/forms.py:439 +#, fuzzy +#| msgid "Tag name" +msgid "Token name" +msgstr "Nome tag" + +#: apps/users/forms.py:441 +msgid "Use a descriptive name such as n8n, Home Assistant, or backup job." +msgstr "" + +#: apps/users/forms.py:447 +msgid "Expires in days" +msgstr "" + +#: apps/users/forms.py:448 +msgid "Leave empty for a non-expiring token." +msgstr "" + +#: apps/users/forms.py:463 +#, fuzzy +#| msgid "Create transaction" +msgid "Create token" +msgstr "Crea transazione" + +#: apps/users/models.py:470 msgid "Yearly by currency" msgstr "Annuale per valuta" -#: apps/users/models.py:466 +#: apps/users/models.py:471 msgid "Yearly by account" msgstr "Annuale per conto" -#: apps/users/models.py:467 templates/net_worth/net_worth.html:9 +#: apps/users/models.py:472 templates/net_worth/net_worth.html:9 msgid "Current Net Worth" msgstr "Patrimonio netto attuale" -#: apps/users/models.py:468 templates/net_worth/net_worth.html:11 +#: apps/users/models.py:473 templates/net_worth/net_worth.html:11 msgid "Projected Net Worth" msgstr "Patrimonio netto previsto" -#: apps/users/models.py:469 +#: apps/users/models.py:474 msgid "All Transactions" msgstr "Tutte le transazioni" -#: apps/users/models.py:470 templates/includes/sidebar.html:63 +#: apps/users/models.py:475 templates/includes/sidebar.html:63 msgid "Calendar" msgstr "Calendario" -#: apps/users/models.py:480 +#: apps/users/models.py:485 msgid "Volume" msgstr "Volume" -#: apps/users/models.py:499 +#: apps/users/models.py:504 msgid "Language" msgstr "Lingua" -#: apps/users/models.py:505 +#: apps/users/models.py:510 msgid "Time Zone" msgstr "Fuso orario" -#: apps/users/models.py:511 +#: apps/users/models.py:516 msgid "Start page" msgstr "Pagina iniziale" -#: apps/users/models.py:516 +#: apps/users/models.py:521 #, fuzzy #| msgid "Asset account" msgid "Default account" msgstr "Conto patrimoniale" -#: apps/users/models.py:517 +#: apps/users/models.py:522 #, fuzzy #| msgid "" #| "Deactivated tags won't be able to be selected when creating new " @@ -2088,26 +2118,94 @@ msgstr "" "I tag disattivati non potranno essere selezionati durante la creazione di " "nuove transazioni" -#: apps/users/views.py:67 +#: apps/users/models.py:570 +#, fuzzy +#| msgid "Users" +msgid "User" +msgstr "Utenti" + +#: apps/users/models.py:577 +msgid "Token key" +msgstr "" + +#: apps/users/models.py:579 +msgid "Token hash" +msgstr "" + +#: apps/users/models.py:583 +#, fuzzy +#| msgid "Last Generated Date" +msgid "Last used at" +msgstr "Data dell'ultima generazione" + +#: apps/users/models.py:588 +msgid "Expires at" +msgstr "" + +#: apps/users/models.py:593 +msgid "Revoked at" +msgstr "" + +#: apps/users/models.py:595 +#, fuzzy +#| msgid "Create" +msgid "Created at" +msgstr "Crea" + +#: apps/users/models.py:596 +#, fuzzy +#| msgid "Update" +msgid "Updated at" +msgstr "Aggiorna" + +#: apps/users/models.py:606 +#, fuzzy +#| msgid "API Key" +msgid "API token" +msgstr "Chiave API" + +#: apps/users/models.py:607 +msgid "API tokens" +msgstr "" + +#: apps/users/views.py:69 msgid "Transaction amounts are now hidden" msgstr "Gli importi delle transazioni sono nascosti" -#: apps/users/views.py:70 +#: apps/users/views.py:72 msgid "Transaction amounts are now displayed" msgstr "Gli importi delle transazioni sono visibili" -#: apps/users/views.py:88 +#: apps/users/views.py:90 msgid "Sounds are now muted" msgstr "I suoni sono disattivati" -#: apps/users/views.py:91 +#: apps/users/views.py:93 msgid "Sounds will now play" msgstr "I suoni verranno riprodotti" -#: apps/users/views.py:107 +#: apps/users/views.py:109 msgid "Your settings have been updated" msgstr "Le tue impostazioni sono state aggiornate" +#: apps/users/views.py:148 +#, fuzzy +#| msgid "Action updated successfully" +msgid "API token created successfully" +msgstr "Azione aggiornata con successo" + +#: apps/users/views.py:167 +#, fuzzy +#| msgid "Action deleted successfully" +msgid "API token revoked successfully" +msgstr "Azione eliminata con successo" + +#: apps/users/views.py:178 +#, fuzzy +#| msgid "Action deleted successfully" +msgid "API token deleted successfully" +msgstr "Azione eliminata con successo" + #: templates/account_groups/fragments/add.html:5 msgid "Add account group" msgstr "Aggiungi gruppo conti" @@ -2205,6 +2303,7 @@ msgstr "Condividi" #: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:133 #: templates/tags/fragments/table.html:51 +#: templates/users/fragments/api_tokens.html:93 msgid "Delete" msgstr "Elimina" @@ -2282,6 +2381,7 @@ msgstr "Non sarà possibile annullare questa operazione!" #: templates/rules/fragments/transaction_rule/view.html:98 #: templates/tags/fragments/table.html:57 #: templates/transactions/fragments/attachments.html:22 +#: templates/users/fragments/api_tokens.html:101 msgid "Yes, delete it!" msgstr "Sì, cancellalo!" @@ -3307,6 +3407,10 @@ msgstr "Nessun piano di rateizzazione" msgid "This is a demo!" msgstr "Questa è una demo!" +#: templates/layouts/base.html:37 +msgid "Any data you add here will be wiped in 24hrs or less" +msgstr "Tutti i dati che aggiungi qui verranno cancellati entro 24 ore o meno" + #: templates/mini_tools/currency_converter/currency_converter.html:57 msgid "Invert" msgstr "Investi" @@ -3688,6 +3792,87 @@ msgstr "Nessun cambio" msgid "Add user" msgstr "Aggiungi utente" +#: templates/users/fragments/api_tokens.html:5 +msgid "API Tokens" +msgstr "" + +#: templates/users/fragments/api_tokens.html:7 +msgid "" +"Use these tokens for automations such as n8n. The raw token is shown only " +"once after creation." +msgstr "" + +#: templates/users/fragments/api_tokens.html:14 +msgid "Copy this token now" +msgstr "" + +#: templates/users/fragments/api_tokens.html:16 +msgid "It will not be shown again after this response." +msgstr "" + +#: templates/users/fragments/api_tokens.html:31 +msgid "Copy" +msgstr "" + +#: templates/users/fragments/api_tokens.html:52 +msgid "Revoked" +msgstr "" + +#: templates/users/fragments/api_tokens.html:59 +#, python-format +msgid "Created %(created)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:62 +#, python-format +msgid "last used %(used)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:64 +msgid "never used" +msgstr "" + +#: templates/users/fragments/api_tokens.html:68 +#, python-format +msgid "expires %(expires)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:70 +msgid "no expiry" +msgstr "" + +#: templates/users/fragments/api_tokens.html:78 +msgid "Revoke" +msgstr "" + +#: templates/users/fragments/api_tokens.html:84 +msgid "Revoke token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:85 +msgid "This token will stop working immediately." +msgstr "" + +#: templates/users/fragments/api_tokens.html:86 +#, fuzzy +#| msgid "Yes, refresh it!" +msgid "Yes, revoke it!" +msgstr "Sì, aggiornalo!" + +#: templates/users/fragments/api_tokens.html:99 +#, fuzzy +#| msgid "Deleted At" +msgid "Delete token?" +msgstr "Eliminato alle" + +#: templates/users/fragments/api_tokens.html:100 +msgid "This permanently removes the token from the list. It cannot be undone." +msgstr "" + +#: templates/users/fragments/api_tokens.html:114 +msgid "No API tokens" +msgstr "" + #: templates/users/fragments/edit.html:5 msgid "Edit user" msgstr "Modifica utente" @@ -3740,10 +3925,6 @@ msgstr "Accedi con" msgid "Yearly Overview" msgstr "Panoramica annuale" -#~ msgid "Any data you add here will be wiped in 24hrs or less" -#~ msgstr "" -#~ "Tutti i dati che aggiungi qui verranno cancellati entro 24 ore o meno" - #, fuzzy #~| msgid "Are you sure?" #~ msgid " Are you sure?" diff --git a/app/locale/nl/LC_MESSAGES/django.po b/app/locale/nl/LC_MESSAGES/django.po index a86f083..ca7ed21 100644 --- a/app/locale/nl/LC_MESSAGES/django.po +++ b/app/locale/nl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-06 08:15+0000\n" +"POT-Creation-Date: 2026-07-04 15:39+0000\n" "PO-Revision-Date: 2026-06-07 08:57+0000\n" "Last-Translator: Dimitri Decrock \n" "Language-Team: Dutch Publiek: Weergegeven voor alle gebruikers. " "Alleen bewerkbaar door de eigenaar." -#: apps/common/forms.py:76 apps/users/forms.py:169 +#: apps/common/forms.py:76 apps/users/forms.py:173 msgid "Save" msgstr "Opslaan" @@ -541,8 +541,8 @@ msgstr "Wisselkoers" msgid "Date and Time" msgstr "Datum en Tijd" -#: apps/currencies/models.py:78 apps/users/models.py:12 -#: apps/users/models.py:497 +#: apps/currencies/models.py:78 apps/users/models.py:17 +#: apps/users/models.py:502 msgid "Auto" msgstr "Automatisch" @@ -583,7 +583,9 @@ msgstr "Soort Dienst" #: templates/entities/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16 -#: templates/tags/fragments/list.html:16 templates/users/fragments/list.html:25 +#: templates/tags/fragments/list.html:16 +#: templates/users/fragments/api_tokens.html:54 +#: templates/users/fragments/list.html:25 msgid "Active" msgstr "Actief" @@ -1599,7 +1601,7 @@ msgstr "Transactiebijlages" msgid "Yearly" msgstr "Jaarlijks" -#: apps/transactions/models.py:596 apps/users/models.py:464 +#: apps/transactions/models.py:596 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "Maandelijks" @@ -1790,11 +1792,11 @@ msgid "Installment Plan deleted successfully" msgstr "Afbetalingsplan succesvol verwijderd" #: apps/transactions/views/quick_transactions.py:45 -#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:188 +#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:252 msgid "Item added successfully" msgstr "Item succesvol toegevoegd" -#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:220 +#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:284 msgid "Item updated successfully" msgstr "Item succesvol bijgewerkt" @@ -1879,44 +1881,48 @@ msgstr "Verrichting succesvol hersteld" msgid "Transfer added successfully" msgstr "Transactie succesvol toegevoegd" -#: apps/users/admin.py:22 templates/users/fragments/user_settings.html:5 +#: apps/users/admin.py:17 +msgid "Revoke selected API tokens" +msgstr "" + +#: apps/users/admin.py:28 templates/users/fragments/user_settings.html:5 msgid "User Settings" msgstr "Gebruikersinstellingen" -#: apps/users/admin.py:23 +#: apps/users/admin.py:29 msgid "User Setting" msgstr "Gebruikersinstelling" -#: apps/users/admin.py:48 +#: apps/users/admin.py:54 msgid "Personal info" msgstr "Persoonlijke gegevens" -#: apps/users/admin.py:50 +#: apps/users/admin.py:56 msgid "Permissions" msgstr "Rechten" -#: apps/users/admin.py:61 +#: apps/users/admin.py:67 msgid "Important dates" msgstr "Belangrijke datums" -#: apps/users/forms.py:24 apps/users/forms.py:28 apps/users/models.py:451 +#: apps/users/forms.py:28 apps/users/forms.py:32 apps/users/models.py:456 #: templates/users/login.html:18 msgid "E-mail" msgstr "E-mailadres" -#: apps/users/forms.py:35 apps/users/forms.py:40 templates/users/login.html:19 +#: apps/users/forms.py:39 apps/users/forms.py:44 templates/users/login.html:19 msgid "Password" msgstr "Wachtwoord" -#: apps/users/forms.py:47 +#: apps/users/forms.py:51 msgid "Invalid e-mail or password" msgstr "Ongeldig e-mailadres of wachtwoord" -#: apps/users/forms.py:48 +#: apps/users/forms.py:52 msgid "This account is deactivated" msgstr "Deze gebruiker is gedeactiveerd" -#: apps/users/forms.py:64 apps/users/forms.py:77 apps/users/forms.py:99 +#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:245 #: templates/transactions/pages/transactions.html:47 @@ -1924,23 +1930,23 @@ msgstr "Deze gebruiker is gedeactiveerd" msgid "Default" msgstr "Standaard" -#: apps/users/forms.py:107 apps/users/models.py:484 +#: apps/users/forms.py:111 apps/users/models.py:489 msgid "Date Format" msgstr "Datumnotatie" -#: apps/users/forms.py:112 apps/users/models.py:489 +#: apps/users/forms.py:116 apps/users/models.py:494 msgid "Datetime Format" msgstr "Tijdsnotatie" -#: apps/users/forms.py:118 apps/users/models.py:492 +#: apps/users/forms.py:122 apps/users/models.py:497 msgid "Number Format" msgstr "Schrijfwijze Nummers" -#: apps/users/forms.py:125 +#: apps/users/forms.py:129 msgid "Default Account" msgstr "Standaard Rekening" -#: apps/users/forms.py:174 +#: apps/users/forms.py:178 #, python-format msgid "" "This changes the language (if available) and how numbers and dates are " @@ -1951,19 +1957,19 @@ msgstr "" "weergegeven\n" "Overweeg om WYGIWYH te helpen vertalen naar jouw taal op %(translation_link)s" -#: apps/users/forms.py:183 +#: apps/users/forms.py:187 msgid "New Password" msgstr "Nieuw Wachtwoord" -#: apps/users/forms.py:186 +#: apps/users/forms.py:190 msgid "Leave blank to keep the current password." msgstr "Laat leeg om het huidige wachtwoord te behouden." -#: apps/users/forms.py:189 +#: apps/users/forms.py:193 msgid "Confirm New Password" msgstr "Bevestig Nieuw Wachtwoord" -#: apps/users/forms.py:201 apps/users/forms.py:358 +#: apps/users/forms.py:205 apps/users/forms.py:362 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." @@ -1971,7 +1977,7 @@ msgstr "" "Geeft aan of deze gebruiker als actief moet worden behandeld. Deselecteer " "dit in plaats van accounts te verwijderen." -#: apps/users/forms.py:204 apps/users/forms.py:361 +#: apps/users/forms.py:208 apps/users/forms.py:365 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." @@ -1979,107 +1985,199 @@ msgstr "" "Geeft aan dat deze gebruiker alle rechten heeft zonder ze expliciet toe te " "kennen." -#: apps/users/forms.py:271 +#: apps/users/forms.py:275 msgid "This email address is already in use by another account." msgstr "Dit e-mailadres wordt al gebruikt door een ander account." -#: apps/users/forms.py:279 +#: apps/users/forms.py:283 msgid "The two password fields didn't match." msgstr "De twee wachtwoordvelden komen niet overeen." -#: apps/users/forms.py:281 +#: apps/users/forms.py:285 msgid "Please confirm your new password." msgstr "Bevestig je nieuwe wachtwoord." -#: apps/users/forms.py:283 +#: apps/users/forms.py:287 msgid "Please enter the new password first." msgstr "Geef eerst het nieuwe wachtwoord op." -#: apps/users/forms.py:303 +#: apps/users/forms.py:307 msgid "You cannot deactivate your own account using this form." msgstr "Je kunt je eigen account niet deactiveren met dit formulier." -#: apps/users/forms.py:316 +#: apps/users/forms.py:320 msgid "Cannot remove status from the last superuser." msgstr "Kan de status van de laatste Hoofdadmin niet verwijderen." -#: apps/users/forms.py:322 +#: apps/users/forms.py:326 msgid "You cannot remove your own superuser status using this form." msgstr "Je kunt je eigen hoofdadminrechten niet verwijderen met dit formulier." -#: apps/users/forms.py:415 +#: apps/users/forms.py:419 msgid "A user with this email address already exists." msgstr "Er bestaat al een gebruiker met dit e-mailadres." -#: apps/users/models.py:465 +#: apps/users/forms.py:439 +#, fuzzy +#| msgid "Tag name" +msgid "Token name" +msgstr "Labelnaam" + +#: apps/users/forms.py:441 +msgid "Use a descriptive name such as n8n, Home Assistant, or backup job." +msgstr "" + +#: apps/users/forms.py:447 +msgid "Expires in days" +msgstr "" + +#: apps/users/forms.py:448 +msgid "Leave empty for a non-expiring token." +msgstr "" + +#: apps/users/forms.py:463 +#, fuzzy +#| msgid "Create transaction" +msgid "Create token" +msgstr "Maak verrichtingen" + +#: apps/users/models.py:470 msgid "Yearly by currency" msgstr "Jaarlijks per munteenheid" -#: apps/users/models.py:466 +#: apps/users/models.py:471 msgid "Yearly by account" msgstr "Jaarlijks per rekening" -#: apps/users/models.py:467 templates/net_worth/net_worth.html:9 +#: apps/users/models.py:472 templates/net_worth/net_worth.html:9 msgid "Current Net Worth" msgstr "Huidige Nettowaarde" -#: apps/users/models.py:468 templates/net_worth/net_worth.html:11 +#: apps/users/models.py:473 templates/net_worth/net_worth.html:11 msgid "Projected Net Worth" msgstr "Verwachte Nettowaarde" -#: apps/users/models.py:469 +#: apps/users/models.py:474 msgid "All Transactions" msgstr "Alle Verrichtingen" -#: apps/users/models.py:470 templates/includes/sidebar.html:63 +#: apps/users/models.py:475 templates/includes/sidebar.html:63 msgid "Calendar" msgstr "Kalender" -#: apps/users/models.py:480 +#: apps/users/models.py:485 msgid "Volume" msgstr "Volume" -#: apps/users/models.py:499 +#: apps/users/models.py:504 msgid "Language" msgstr "Taal" -#: apps/users/models.py:505 +#: apps/users/models.py:510 msgid "Time Zone" msgstr "Tijdszone" -#: apps/users/models.py:511 +#: apps/users/models.py:516 msgid "Start page" msgstr "Startpagina" -#: apps/users/models.py:516 +#: apps/users/models.py:521 msgid "Default account" msgstr "Standaard rekening" -#: apps/users/models.py:517 +#: apps/users/models.py:522 msgid "Selects the account by default when creating new transactions" msgstr "" "Selecteer het account automatisch bij het maken van nieuwe verrichtingen" -#: apps/users/views.py:67 +#: apps/users/models.py:570 +#, fuzzy +#| msgid "Users" +msgid "User" +msgstr "Gebruikers" + +#: apps/users/models.py:577 +msgid "Token key" +msgstr "" + +#: apps/users/models.py:579 +msgid "Token hash" +msgstr "" + +#: apps/users/models.py:583 +#, fuzzy +#| msgid "Last Generated Date" +msgid "Last used at" +msgstr "Laatste Gegenereerde Datum" + +#: apps/users/models.py:588 +msgid "Expires at" +msgstr "" + +#: apps/users/models.py:593 +msgid "Revoked at" +msgstr "" + +#: apps/users/models.py:595 +#, fuzzy +#| msgid "Create" +msgid "Created at" +msgstr "Aanmaken" + +#: apps/users/models.py:596 +#, fuzzy +#| msgid "Update" +msgid "Updated at" +msgstr "Bijwerken" + +#: apps/users/models.py:606 +#, fuzzy +#| msgid "API Key" +msgid "API token" +msgstr "API Sleutel" + +#: apps/users/models.py:607 +msgid "API tokens" +msgstr "" + +#: apps/users/views.py:69 msgid "Transaction amounts are now hidden" msgstr "Verrichtingsbedragen worden nu verborgen" -#: apps/users/views.py:70 +#: apps/users/views.py:72 msgid "Transaction amounts are now displayed" msgstr "Verrichtingsbedragen worden nu weergegeven" -#: apps/users/views.py:88 +#: apps/users/views.py:90 msgid "Sounds are now muted" msgstr "De Geluiden zijn nu gedempt" -#: apps/users/views.py:91 +#: apps/users/views.py:93 msgid "Sounds will now play" msgstr "De geluiden worden nu afgespeeld" -#: apps/users/views.py:107 +#: apps/users/views.py:109 msgid "Your settings have been updated" msgstr "Jouw instellingen zijn bijgewerkt" +#: apps/users/views.py:148 +#, fuzzy +#| msgid "Action updated successfully" +msgid "API token created successfully" +msgstr "Actie succesvol bijgewerkt" + +#: apps/users/views.py:167 +#, fuzzy +#| msgid "Action deleted successfully" +msgid "API token revoked successfully" +msgstr "Actie succesvol verwijderd" + +#: apps/users/views.py:178 +#, fuzzy +#| msgid "Action deleted successfully" +msgid "API token deleted successfully" +msgstr "Actie succesvol verwijderd" + #: templates/account_groups/fragments/add.html:5 msgid "Add account group" msgstr "Rekeningsgroep toevoegen" @@ -2177,6 +2275,7 @@ msgstr "Deel" #: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:133 #: templates/tags/fragments/table.html:51 +#: templates/users/fragments/api_tokens.html:93 msgid "Delete" msgstr "Verwijderen" @@ -2254,6 +2353,7 @@ msgstr "Je kunt dit niet meer terugdraaien!" #: templates/rules/fragments/transaction_rule/view.html:98 #: templates/tags/fragments/table.html:57 #: templates/transactions/fragments/attachments.html:22 +#: templates/users/fragments/api_tokens.html:101 msgid "Yes, delete it!" msgstr "Ja, verwijder het!" @@ -3258,6 +3358,11 @@ msgstr "Geen afbetalingsplannen" msgid "This is a demo!" msgstr "Dit is een demo!" +#: templates/layouts/base.html:37 +msgid "Any data you add here will be wiped in 24hrs or less" +msgstr "" +"Alle gegevens die je hier toevoegt, worden binnen 24 uur of minder gewist" + #: templates/mini_tools/currency_converter/currency_converter.html:57 msgid "Invert" msgstr "Omdraaien" @@ -3636,6 +3741,87 @@ msgstr "Ongewijzigd" msgid "Add user" msgstr "Gebruiker toevoegen" +#: templates/users/fragments/api_tokens.html:5 +msgid "API Tokens" +msgstr "" + +#: templates/users/fragments/api_tokens.html:7 +msgid "" +"Use these tokens for automations such as n8n. The raw token is shown only " +"once after creation." +msgstr "" + +#: templates/users/fragments/api_tokens.html:14 +msgid "Copy this token now" +msgstr "" + +#: templates/users/fragments/api_tokens.html:16 +msgid "It will not be shown again after this response." +msgstr "" + +#: templates/users/fragments/api_tokens.html:31 +msgid "Copy" +msgstr "" + +#: templates/users/fragments/api_tokens.html:52 +msgid "Revoked" +msgstr "" + +#: templates/users/fragments/api_tokens.html:59 +#, python-format +msgid "Created %(created)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:62 +#, python-format +msgid "last used %(used)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:64 +msgid "never used" +msgstr "" + +#: templates/users/fragments/api_tokens.html:68 +#, python-format +msgid "expires %(expires)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:70 +msgid "no expiry" +msgstr "" + +#: templates/users/fragments/api_tokens.html:78 +msgid "Revoke" +msgstr "" + +#: templates/users/fragments/api_tokens.html:84 +msgid "Revoke token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:85 +msgid "This token will stop working immediately." +msgstr "" + +#: templates/users/fragments/api_tokens.html:86 +#, fuzzy +#| msgid "Yes, refresh it!" +msgid "Yes, revoke it!" +msgstr "Ja, vernieuw het!" + +#: templates/users/fragments/api_tokens.html:99 +#, fuzzy +#| msgid "Deleted At" +msgid "Delete token?" +msgstr "Verwijderd Op" + +#: templates/users/fragments/api_tokens.html:100 +msgid "This permanently removes the token from the list. It cannot be undone." +msgstr "" + +#: templates/users/fragments/api_tokens.html:114 +msgid "No API tokens" +msgstr "" + #: templates/users/fragments/edit.html:5 msgid "Edit user" msgstr "Gebruiker bewerken" @@ -3688,10 +3874,6 @@ msgstr "Aanmelden met" msgid "Yearly Overview" msgstr "Jaaroverzicht" -#~ msgid "Any data you add here will be wiped in 24hrs or less" -#~ msgstr "" -#~ "Alle gegevens die je hier toevoegt, worden binnen 24 uur of minder gewist" - #~ msgid " Are you sure?" #~ msgstr " Weet je het zeker?" diff --git a/app/locale/pl/LC_MESSAGES/django.po b/app/locale/pl/LC_MESSAGES/django.po index d708269..40d6450 100644 --- a/app/locale/pl/LC_MESSAGES/django.po +++ b/app/locale/pl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-06 08:15+0000\n" +"POT-Creation-Date: 2026-07-04 15:39+0000\n" "PO-Revision-Date: 2026-06-08 07:57+0000\n" "Last-Translator: Pawel Augustyn \n" "Language-Team: Polish Publiczny: " "Widoczne dla wszystkich. Tylko właściciel może dokonywać zmian." -#: apps/common/forms.py:76 apps/users/forms.py:169 +#: apps/common/forms.py:76 apps/users/forms.py:173 msgid "Save" msgstr "Zapisz" @@ -551,8 +551,8 @@ msgstr "Kurs wymiany" msgid "Date and Time" msgstr "Data i godzina" -#: apps/currencies/models.py:78 apps/users/models.py:12 -#: apps/users/models.py:497 +#: apps/currencies/models.py:78 apps/users/models.py:17 +#: apps/users/models.py:502 msgid "Auto" msgstr "Automatycznie" @@ -593,7 +593,9 @@ msgstr "Typ serwisu" #: templates/entities/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16 -#: templates/tags/fragments/list.html:16 templates/users/fragments/list.html:25 +#: templates/tags/fragments/list.html:16 +#: templates/users/fragments/api_tokens.html:54 +#: templates/users/fragments/list.html:25 msgid "Active" msgstr "Aktywny" @@ -1607,7 +1609,7 @@ msgstr "Załączniki transakcji" msgid "Yearly" msgstr "Rocznie" -#: apps/transactions/models.py:596 apps/users/models.py:464 +#: apps/transactions/models.py:596 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "Miesięcznie" @@ -1803,11 +1805,11 @@ msgid "Installment Plan deleted successfully" msgstr "Usunięto plan ratalny" #: apps/transactions/views/quick_transactions.py:45 -#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:188 +#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:252 msgid "Item added successfully" msgstr "Pomyślnie dodano" -#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:220 +#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:284 msgid "Item updated successfully" msgstr "Pomyślnie zaktualizowano" @@ -1893,44 +1895,48 @@ msgstr "Odtworzono transakcję" msgid "Transfer added successfully" msgstr "Dodano przelew" -#: apps/users/admin.py:22 templates/users/fragments/user_settings.html:5 +#: apps/users/admin.py:17 +msgid "Revoke selected API tokens" +msgstr "" + +#: apps/users/admin.py:28 templates/users/fragments/user_settings.html:5 msgid "User Settings" msgstr "Ustawienia użytkownika" -#: apps/users/admin.py:23 +#: apps/users/admin.py:29 msgid "User Setting" msgstr "Ustawienie użytkownika" -#: apps/users/admin.py:48 +#: apps/users/admin.py:54 msgid "Personal info" msgstr "Dane personalne" -#: apps/users/admin.py:50 +#: apps/users/admin.py:56 msgid "Permissions" msgstr "Uprawnienia" -#: apps/users/admin.py:61 +#: apps/users/admin.py:67 msgid "Important dates" msgstr "Ważne daty" -#: apps/users/forms.py:24 apps/users/forms.py:28 apps/users/models.py:451 +#: apps/users/forms.py:28 apps/users/forms.py:32 apps/users/models.py:456 #: templates/users/login.html:18 msgid "E-mail" msgstr "E-mail" -#: apps/users/forms.py:35 apps/users/forms.py:40 templates/users/login.html:19 +#: apps/users/forms.py:39 apps/users/forms.py:44 templates/users/login.html:19 msgid "Password" msgstr "Hasło" -#: apps/users/forms.py:47 +#: apps/users/forms.py:51 msgid "Invalid e-mail or password" msgstr "Niepoprawny e-mail lub hasło" -#: apps/users/forms.py:48 +#: apps/users/forms.py:52 msgid "This account is deactivated" msgstr "To konto jest nieaktywne" -#: apps/users/forms.py:64 apps/users/forms.py:77 apps/users/forms.py:99 +#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:245 #: templates/transactions/pages/transactions.html:47 @@ -1938,23 +1944,23 @@ msgstr "To konto jest nieaktywne" msgid "Default" msgstr "Domyślne" -#: apps/users/forms.py:107 apps/users/models.py:484 +#: apps/users/forms.py:111 apps/users/models.py:489 msgid "Date Format" msgstr "Format daty" -#: apps/users/forms.py:112 apps/users/models.py:489 +#: apps/users/forms.py:116 apps/users/models.py:494 msgid "Datetime Format" msgstr "Format daty i czasu" -#: apps/users/forms.py:118 apps/users/models.py:492 +#: apps/users/forms.py:122 apps/users/models.py:497 msgid "Number Format" msgstr "Format liczb" -#: apps/users/forms.py:125 +#: apps/users/forms.py:129 msgid "Default Account" msgstr "Konto główne/domyślne" -#: apps/users/forms.py:174 +#: apps/users/forms.py:178 #, python-format msgid "" "This changes the language (if available) and how numbers and dates are " @@ -1966,19 +1972,19 @@ msgstr "" "Rozważ wsparcie tłumaczenia WYGIWYH dla Twojego języka na " "%(translation_link)s" -#: apps/users/forms.py:183 +#: apps/users/forms.py:187 msgid "New Password" msgstr "Nowe hasło" -#: apps/users/forms.py:186 +#: apps/users/forms.py:190 msgid "Leave blank to keep the current password." msgstr "Pozostaw puste by zachować obecne hasło." -#: apps/users/forms.py:189 +#: apps/users/forms.py:193 msgid "Confirm New Password" msgstr "Potwierdź nowe hasło" -#: apps/users/forms.py:201 apps/users/forms.py:358 +#: apps/users/forms.py:205 apps/users/forms.py:362 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." @@ -1986,7 +1992,7 @@ msgstr "" "Określa czy ten użytkownik powinien być aktywny. Odznacz tę opcję zamiast " "kasować konta." -#: apps/users/forms.py:204 apps/users/forms.py:361 +#: apps/users/forms.py:208 apps/users/forms.py:365 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." @@ -1994,106 +2000,196 @@ msgstr "" "Określa czy ten użytkownik posiada wszystkie uprawnienia bez jawnego ich " "przypisania." -#: apps/users/forms.py:271 +#: apps/users/forms.py:275 msgid "This email address is already in use by another account." msgstr "Ten adres e-mail jest już zajęty przez innego użytkownika." -#: apps/users/forms.py:279 +#: apps/users/forms.py:283 msgid "The two password fields didn't match." msgstr "Hasła różnią się." -#: apps/users/forms.py:281 +#: apps/users/forms.py:285 msgid "Please confirm your new password." msgstr "Potwierdź nowe hasło." -#: apps/users/forms.py:283 +#: apps/users/forms.py:287 msgid "Please enter the new password first." msgstr "Wpisz najpierw nowe hasło." -#: apps/users/forms.py:303 +#: apps/users/forms.py:307 msgid "You cannot deactivate your own account using this form." msgstr "Nie możesz dezaktywować własnego konta przy użyciu tego formularza." -#: apps/users/forms.py:316 +#: apps/users/forms.py:320 msgid "Cannot remove status from the last superuser." msgstr "Nie można usunąć statusu ostatniemu superuserowi." -#: apps/users/forms.py:322 +#: apps/users/forms.py:326 msgid "You cannot remove your own superuser status using this form." msgstr "Nie możesz usunąć uprawnień superusera samemu sobie." -#: apps/users/forms.py:415 +#: apps/users/forms.py:419 msgid "A user with this email address already exists." msgstr "Użytkownik z tym adresem e-mail już istnieje." -#: apps/users/models.py:465 +#: apps/users/forms.py:439 +#, fuzzy +#| msgid "Tag name" +msgid "Token name" +msgstr "Nazwa taga" + +#: apps/users/forms.py:441 +msgid "Use a descriptive name such as n8n, Home Assistant, or backup job." +msgstr "" + +#: apps/users/forms.py:447 +msgid "Expires in days" +msgstr "" + +#: apps/users/forms.py:448 +msgid "Leave empty for a non-expiring token." +msgstr "" + +#: apps/users/forms.py:463 +#, fuzzy +#| msgid "Create transaction" +msgid "Create token" +msgstr "Stwórz transakcję" + +#: apps/users/models.py:470 msgid "Yearly by currency" msgstr "Podsumowanie roczne wg waluty" -#: apps/users/models.py:466 +#: apps/users/models.py:471 msgid "Yearly by account" msgstr "Podsumowanie roczne wg kont" -#: apps/users/models.py:467 templates/net_worth/net_worth.html:9 +#: apps/users/models.py:472 templates/net_worth/net_worth.html:9 msgid "Current Net Worth" msgstr "Obecne aktywa" -#: apps/users/models.py:468 templates/net_worth/net_worth.html:11 +#: apps/users/models.py:473 templates/net_worth/net_worth.html:11 msgid "Projected Net Worth" msgstr "Przewidywane aktywa" -#: apps/users/models.py:469 +#: apps/users/models.py:474 msgid "All Transactions" msgstr "Wszystkie transakcje" -#: apps/users/models.py:470 templates/includes/sidebar.html:63 +#: apps/users/models.py:475 templates/includes/sidebar.html:63 msgid "Calendar" msgstr "Kalendarz" -#: apps/users/models.py:480 +#: apps/users/models.py:485 msgid "Volume" msgstr "Głośność" -#: apps/users/models.py:499 +#: apps/users/models.py:504 msgid "Language" msgstr "Język" -#: apps/users/models.py:505 +#: apps/users/models.py:510 msgid "Time Zone" msgstr "Strefa czasowa" -#: apps/users/models.py:511 +#: apps/users/models.py:516 msgid "Start page" msgstr "Strona startowa" -#: apps/users/models.py:516 +#: apps/users/models.py:521 msgid "Default account" msgstr "Konto domyślne/główne" -#: apps/users/models.py:517 +#: apps/users/models.py:522 msgid "Selects the account by default when creating new transactions" msgstr "Domyślnie wybierz konto przy tworzeniu nowych transakcji" -#: apps/users/views.py:67 +#: apps/users/models.py:570 +#, fuzzy +#| msgid "Users" +msgid "User" +msgstr "Użytkownicy" + +#: apps/users/models.py:577 +msgid "Token key" +msgstr "" + +#: apps/users/models.py:579 +msgid "Token hash" +msgstr "" + +#: apps/users/models.py:583 +msgid "Last used at" +msgstr "" + +#: apps/users/models.py:588 +msgid "Expires at" +msgstr "" + +#: apps/users/models.py:593 +msgid "Revoked at" +msgstr "" + +#: apps/users/models.py:595 +#, fuzzy +#| msgid "Create transaction" +msgid "Created at" +msgstr "Stwórz transakcję" + +#: apps/users/models.py:596 +#, fuzzy +#| msgid "Update" +msgid "Updated at" +msgstr "Aktualizuj" + +#: apps/users/models.py:606 +#, fuzzy +#| msgid "API Key" +msgid "API token" +msgstr "Klucz API" + +#: apps/users/models.py:607 +msgid "API tokens" +msgstr "" + +#: apps/users/views.py:69 msgid "Transaction amounts are now hidden" msgstr "Kwoty transakcji są od teraz ukryte" -#: apps/users/views.py:70 +#: apps/users/views.py:72 msgid "Transaction amounts are now displayed" msgstr "Kwoty transakcji są od teraz widoczne" -#: apps/users/views.py:88 +#: apps/users/views.py:90 msgid "Sounds are now muted" msgstr "Dźwięki wyciszone" -#: apps/users/views.py:91 +#: apps/users/views.py:93 msgid "Sounds will now play" msgstr "Dźwięki będą teraz odtwarzane" -#: apps/users/views.py:107 +#: apps/users/views.py:109 msgid "Your settings have been updated" msgstr "Zapisano ustawienia" +#: apps/users/views.py:148 +#, fuzzy +#| msgid "Action updated successfully" +msgid "API token created successfully" +msgstr "Zaktualizowano akcję" + +#: apps/users/views.py:167 +#, fuzzy +#| msgid "Action deleted successfully" +msgid "API token revoked successfully" +msgstr "Usunięto akcję" + +#: apps/users/views.py:178 +#, fuzzy +#| msgid "Action deleted successfully" +msgid "API token deleted successfully" +msgstr "Usunięto akcję" + #: templates/account_groups/fragments/add.html:5 msgid "Add account group" msgstr "Dodaj grupę kont" @@ -2191,6 +2287,7 @@ msgstr "Udostępnij" #: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:133 #: templates/tags/fragments/table.html:51 +#: templates/users/fragments/api_tokens.html:93 msgid "Delete" msgstr "Usuń" @@ -2268,6 +2365,7 @@ msgstr "Tej akcji nie da się odwrócić!" #: templates/rules/fragments/transaction_rule/view.html:98 #: templates/tags/fragments/table.html:57 #: templates/transactions/fragments/attachments.html:22 +#: templates/users/fragments/api_tokens.html:101 msgid "Yes, delete it!" msgstr "Tak, usuń!" @@ -3267,6 +3365,10 @@ msgstr "Brak planów ratalnych" msgid "This is a demo!" msgstr "" +#: templates/layouts/base.html:37 +msgid "Any data you add here will be wiped in 24hrs or less" +msgstr "" + #: templates/mini_tools/currency_converter/currency_converter.html:57 msgid "Invert" msgstr "Zamień" @@ -3641,6 +3743,87 @@ msgstr "" msgid "Add user" msgstr "" +#: templates/users/fragments/api_tokens.html:5 +msgid "API Tokens" +msgstr "" + +#: templates/users/fragments/api_tokens.html:7 +msgid "" +"Use these tokens for automations such as n8n. The raw token is shown only " +"once after creation." +msgstr "" + +#: templates/users/fragments/api_tokens.html:14 +msgid "Copy this token now" +msgstr "" + +#: templates/users/fragments/api_tokens.html:16 +msgid "It will not be shown again after this response." +msgstr "" + +#: templates/users/fragments/api_tokens.html:31 +msgid "Copy" +msgstr "" + +#: templates/users/fragments/api_tokens.html:52 +msgid "Revoked" +msgstr "" + +#: templates/users/fragments/api_tokens.html:59 +#, python-format +msgid "Created %(created)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:62 +#, python-format +msgid "last used %(used)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:64 +msgid "never used" +msgstr "" + +#: templates/users/fragments/api_tokens.html:68 +#, python-format +msgid "expires %(expires)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:70 +msgid "no expiry" +msgstr "" + +#: templates/users/fragments/api_tokens.html:78 +msgid "Revoke" +msgstr "" + +#: templates/users/fragments/api_tokens.html:84 +msgid "Revoke token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:85 +msgid "This token will stop working immediately." +msgstr "" + +#: templates/users/fragments/api_tokens.html:86 +#, fuzzy +#| msgid "Yes, delete it!" +msgid "Yes, revoke it!" +msgstr "Tak, usuń!" + +#: templates/users/fragments/api_tokens.html:99 +#, fuzzy +#| msgid "Delete" +msgid "Delete token?" +msgstr "Usuń" + +#: templates/users/fragments/api_tokens.html:100 +msgid "This permanently removes the token from the list. It cannot be undone." +msgstr "" + +#: templates/users/fragments/api_tokens.html:114 +msgid "No API tokens" +msgstr "" + #: templates/users/fragments/edit.html:5 msgid "Edit user" msgstr "Edytuj użytkownika" diff --git a/app/locale/pt_BR/LC_MESSAGES/django.po b/app/locale/pt_BR/LC_MESSAGES/django.po index b9178fd..94cdaa9 100644 --- a/app/locale/pt_BR/LC_MESSAGES/django.po +++ b/app/locale/pt_BR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-06 08:15+0000\n" +"POT-Creation-Date: 2026-07-04 15:39+0000\n" "PO-Revision-Date: 2026-06-07 14:57+0000\n" "Last-Translator: Herculino Trotta \n" "Language-Team: Portuguese (Brazil) Público: Exibido para todos os " "usuários. Somente editável pelo proprietário." -#: apps/common/forms.py:76 apps/users/forms.py:169 +#: apps/common/forms.py:76 apps/users/forms.py:173 msgid "Save" msgstr "Salvar" @@ -539,8 +539,8 @@ msgstr "Taxa de Câmbio" msgid "Date and Time" msgstr "Data e Tempo" -#: apps/currencies/models.py:78 apps/users/models.py:12 -#: apps/users/models.py:497 +#: apps/currencies/models.py:78 apps/users/models.py:17 +#: apps/users/models.py:502 msgid "Auto" msgstr "Automático" @@ -581,7 +581,9 @@ msgstr "Tipo de Serviço" #: templates/entities/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16 -#: templates/tags/fragments/list.html:16 templates/users/fragments/list.html:25 +#: templates/tags/fragments/list.html:16 +#: templates/users/fragments/api_tokens.html:54 +#: templates/users/fragments/list.html:25 msgid "Active" msgstr "Ativo" @@ -1596,7 +1598,7 @@ msgstr "Anexo de transações" msgid "Yearly" msgstr "Anual" -#: apps/transactions/models.py:596 apps/users/models.py:464 +#: apps/transactions/models.py:596 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "Mensal" @@ -1787,11 +1789,11 @@ msgid "Installment Plan deleted successfully" msgstr "Parcelamento apagado com sucesso" #: apps/transactions/views/quick_transactions.py:45 -#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:188 +#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:252 msgid "Item added successfully" msgstr "Item adicionado com sucesso" -#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:220 +#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:284 msgid "Item updated successfully" msgstr "Item atualizado com sucesso" @@ -1876,44 +1878,48 @@ msgstr "Transação restaurada com sucesso" msgid "Transfer added successfully" msgstr "Transferência adicionada com sucesso" -#: apps/users/admin.py:22 templates/users/fragments/user_settings.html:5 +#: apps/users/admin.py:17 +msgid "Revoke selected API tokens" +msgstr "" + +#: apps/users/admin.py:28 templates/users/fragments/user_settings.html:5 msgid "User Settings" msgstr "Configurações do Usuário" -#: apps/users/admin.py:23 +#: apps/users/admin.py:29 msgid "User Setting" msgstr "Configuração do Usuário" -#: apps/users/admin.py:48 +#: apps/users/admin.py:54 msgid "Personal info" msgstr "Dados pessoais" -#: apps/users/admin.py:50 +#: apps/users/admin.py:56 msgid "Permissions" msgstr "Permissões" -#: apps/users/admin.py:61 +#: apps/users/admin.py:67 msgid "Important dates" msgstr "Datas importantes" -#: apps/users/forms.py:24 apps/users/forms.py:28 apps/users/models.py:451 +#: apps/users/forms.py:28 apps/users/forms.py:32 apps/users/models.py:456 #: templates/users/login.html:18 msgid "E-mail" msgstr "E-mail" -#: apps/users/forms.py:35 apps/users/forms.py:40 templates/users/login.html:19 +#: apps/users/forms.py:39 apps/users/forms.py:44 templates/users/login.html:19 msgid "Password" msgstr "Senha" -#: apps/users/forms.py:47 +#: apps/users/forms.py:51 msgid "Invalid e-mail or password" msgstr "E-mail ou senha inválidos" -#: apps/users/forms.py:48 +#: apps/users/forms.py:52 msgid "This account is deactivated" msgstr "Essa conta está desativada" -#: apps/users/forms.py:64 apps/users/forms.py:77 apps/users/forms.py:99 +#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:245 #: templates/transactions/pages/transactions.html:47 @@ -1921,23 +1927,23 @@ msgstr "Essa conta está desativada" msgid "Default" msgstr "Padrão" -#: apps/users/forms.py:107 apps/users/models.py:484 +#: apps/users/forms.py:111 apps/users/models.py:489 msgid "Date Format" msgstr "Formato de Data" -#: apps/users/forms.py:112 apps/users/models.py:489 +#: apps/users/forms.py:116 apps/users/models.py:494 msgid "Datetime Format" msgstr "Formato de Data e Hora" -#: apps/users/forms.py:118 apps/users/models.py:492 +#: apps/users/forms.py:122 apps/users/models.py:497 msgid "Number Format" msgstr "Formato de Número" -#: apps/users/forms.py:125 +#: apps/users/forms.py:129 msgid "Default Account" msgstr "Conta Padrão" -#: apps/users/forms.py:174 +#: apps/users/forms.py:178 #, python-format msgid "" "This changes the language (if available) and how numbers and dates are " @@ -1948,19 +1954,19 @@ msgstr "" "são exibidos\n" "Considere ajudar a traduzir WYGIWYH para seu idioma em %(translation_link)s" -#: apps/users/forms.py:183 +#: apps/users/forms.py:187 msgid "New Password" msgstr "Nova senha" -#: apps/users/forms.py:186 +#: apps/users/forms.py:190 msgid "Leave blank to keep the current password." msgstr "Deixe em branco para usar a senha atual." -#: apps/users/forms.py:189 +#: apps/users/forms.py:193 msgid "Confirm New Password" msgstr "Confirmar nova senha" -#: apps/users/forms.py:201 apps/users/forms.py:358 +#: apps/users/forms.py:205 apps/users/forms.py:362 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." @@ -1968,7 +1974,7 @@ msgstr "" "Designa se esse usuário deve ser tratado como ativo. Desmarque essa opção em " "vez de excluir usuários." -#: apps/users/forms.py:204 apps/users/forms.py:361 +#: apps/users/forms.py:208 apps/users/forms.py:365 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." @@ -1976,108 +1982,200 @@ msgstr "" "Designa que esse usuário tem todas as permissões sem atribuí-las " "explicitamente." -#: apps/users/forms.py:271 +#: apps/users/forms.py:275 msgid "This email address is already in use by another account." msgstr "Esse endereço de e-mail já está sendo usado por outra conta." -#: apps/users/forms.py:279 +#: apps/users/forms.py:283 msgid "The two password fields didn't match." msgstr "Os dois campos de senha não coincidem." -#: apps/users/forms.py:281 +#: apps/users/forms.py:285 msgid "Please confirm your new password." msgstr "Confirme sua nova senha." -#: apps/users/forms.py:283 +#: apps/users/forms.py:287 msgid "Please enter the new password first." msgstr "Digite a nova senha primeiro." -#: apps/users/forms.py:303 +#: apps/users/forms.py:307 msgid "You cannot deactivate your own account using this form." msgstr "Não é possível desativar sua própria conta usando esse formulário." -#: apps/users/forms.py:316 +#: apps/users/forms.py:320 msgid "Cannot remove status from the last superuser." msgstr "Não é possível remover o status do último superusuário." -#: apps/users/forms.py:322 +#: apps/users/forms.py:326 msgid "You cannot remove your own superuser status using this form." msgstr "" "Não é possível remover seu próprio status de superusuário usando esse " "formulário." -#: apps/users/forms.py:415 +#: apps/users/forms.py:419 msgid "A user with this email address already exists." msgstr "Já existe um usuário com esse endereço de e-mail." -#: apps/users/models.py:465 +#: apps/users/forms.py:439 +#, fuzzy +#| msgid "Tag name" +msgid "Token name" +msgstr "Nome da Tag" + +#: apps/users/forms.py:441 +msgid "Use a descriptive name such as n8n, Home Assistant, or backup job." +msgstr "" + +#: apps/users/forms.py:447 +msgid "Expires in days" +msgstr "" + +#: apps/users/forms.py:448 +msgid "Leave empty for a non-expiring token." +msgstr "" + +#: apps/users/forms.py:463 +#, fuzzy +#| msgid "Create transaction" +msgid "Create token" +msgstr "Criar transação" + +#: apps/users/models.py:470 msgid "Yearly by currency" msgstr "Anual por moeda" -#: apps/users/models.py:466 +#: apps/users/models.py:471 msgid "Yearly by account" msgstr "Anual por conta" -#: apps/users/models.py:467 templates/net_worth/net_worth.html:9 +#: apps/users/models.py:472 templates/net_worth/net_worth.html:9 msgid "Current Net Worth" msgstr "Patrimônio Atual" -#: apps/users/models.py:468 templates/net_worth/net_worth.html:11 +#: apps/users/models.py:473 templates/net_worth/net_worth.html:11 msgid "Projected Net Worth" msgstr "Patrimônio Previsto" -#: apps/users/models.py:469 +#: apps/users/models.py:474 msgid "All Transactions" msgstr "Todas as transações" -#: apps/users/models.py:470 templates/includes/sidebar.html:63 +#: apps/users/models.py:475 templates/includes/sidebar.html:63 msgid "Calendar" msgstr "Calendário" -#: apps/users/models.py:480 +#: apps/users/models.py:485 msgid "Volume" msgstr "Volume" -#: apps/users/models.py:499 +#: apps/users/models.py:504 msgid "Language" msgstr "Linguagem" -#: apps/users/models.py:505 +#: apps/users/models.py:510 msgid "Time Zone" msgstr "Fuso horário" -#: apps/users/models.py:511 +#: apps/users/models.py:516 msgid "Start page" msgstr "Página inicial" -#: apps/users/models.py:516 +#: apps/users/models.py:521 msgid "Default account" msgstr "Conta Padrão" -#: apps/users/models.py:517 +#: apps/users/models.py:522 msgid "Selects the account by default when creating new transactions" msgstr "Seleciona a conta por padrão ao criar novas transações" -#: apps/users/views.py:67 +#: apps/users/models.py:570 +#, fuzzy +#| msgid "Users" +msgid "User" +msgstr "Usuários" + +#: apps/users/models.py:577 +msgid "Token key" +msgstr "" + +#: apps/users/models.py:579 +msgid "Token hash" +msgstr "" + +#: apps/users/models.py:583 +#, fuzzy +#| msgid "Last Generated Date" +msgid "Last used at" +msgstr "Última data gerada" + +#: apps/users/models.py:588 +msgid "Expires at" +msgstr "" + +#: apps/users/models.py:593 +msgid "Revoked at" +msgstr "" + +#: apps/users/models.py:595 +#, fuzzy +#| msgid "Create" +msgid "Created at" +msgstr "Criar" + +#: apps/users/models.py:596 +#, fuzzy +#| msgid "Update" +msgid "Updated at" +msgstr "Atualizar" + +#: apps/users/models.py:606 +#, fuzzy +#| msgid "API Key" +msgid "API token" +msgstr "Chave de API" + +#: apps/users/models.py:607 +msgid "API tokens" +msgstr "" + +#: apps/users/views.py:69 msgid "Transaction amounts are now hidden" msgstr "Os valores das transações agora estão ocultos" -#: apps/users/views.py:70 +#: apps/users/views.py:72 msgid "Transaction amounts are now displayed" msgstr "Os valores das transações agora estão sendo exibidos" -#: apps/users/views.py:88 +#: apps/users/views.py:90 msgid "Sounds are now muted" msgstr "Os sons agora estão silenciados" -#: apps/users/views.py:91 +#: apps/users/views.py:93 msgid "Sounds will now play" msgstr "Os sons agora serão reproduzidos" -#: apps/users/views.py:107 +#: apps/users/views.py:109 msgid "Your settings have been updated" msgstr "Suas configurações foram atualizadas" +#: apps/users/views.py:148 +#, fuzzy +#| msgid "Action updated successfully" +msgid "API token created successfully" +msgstr "Ação atualizada com sucesso" + +#: apps/users/views.py:167 +#, fuzzy +#| msgid "Action deleted successfully" +msgid "API token revoked successfully" +msgstr "Ação apagada com sucesso" + +#: apps/users/views.py:178 +#, fuzzy +#| msgid "Action deleted successfully" +msgid "API token deleted successfully" +msgstr "Ação apagada com sucesso" + #: templates/account_groups/fragments/add.html:5 msgid "Add account group" msgstr "Adicionar grupo de conta" @@ -2175,6 +2273,7 @@ msgstr "Compartilhar" #: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:133 #: templates/tags/fragments/table.html:51 +#: templates/users/fragments/api_tokens.html:93 msgid "Delete" msgstr "Apagar" @@ -2252,6 +2351,7 @@ msgstr "Você não será capaz de reverter isso!" #: templates/rules/fragments/transaction_rule/view.html:98 #: templates/tags/fragments/table.html:57 #: templates/transactions/fragments/attachments.html:22 +#: templates/users/fragments/api_tokens.html:101 msgid "Yes, delete it!" msgstr "Sim, apague!" @@ -3256,6 +3356,11 @@ msgstr "Nenhum parcelamento" msgid "This is a demo!" msgstr "Isto é uma demonstração!" +#: templates/layouts/base.html:37 +msgid "Any data you add here will be wiped in 24hrs or less" +msgstr "" +"Todos os dados que você adicionar aqui serão apagados em 24 horas ou menos" + #: templates/mini_tools/currency_converter/currency_converter.html:57 msgid "Invert" msgstr "Inverter" @@ -3631,6 +3736,87 @@ msgstr "Inalterado" msgid "Add user" msgstr "Adicionar usuário" +#: templates/users/fragments/api_tokens.html:5 +msgid "API Tokens" +msgstr "" + +#: templates/users/fragments/api_tokens.html:7 +msgid "" +"Use these tokens for automations such as n8n. The raw token is shown only " +"once after creation." +msgstr "" + +#: templates/users/fragments/api_tokens.html:14 +msgid "Copy this token now" +msgstr "" + +#: templates/users/fragments/api_tokens.html:16 +msgid "It will not be shown again after this response." +msgstr "" + +#: templates/users/fragments/api_tokens.html:31 +msgid "Copy" +msgstr "" + +#: templates/users/fragments/api_tokens.html:52 +msgid "Revoked" +msgstr "" + +#: templates/users/fragments/api_tokens.html:59 +#, python-format +msgid "Created %(created)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:62 +#, python-format +msgid "last used %(used)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:64 +msgid "never used" +msgstr "" + +#: templates/users/fragments/api_tokens.html:68 +#, python-format +msgid "expires %(expires)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:70 +msgid "no expiry" +msgstr "" + +#: templates/users/fragments/api_tokens.html:78 +msgid "Revoke" +msgstr "" + +#: templates/users/fragments/api_tokens.html:84 +msgid "Revoke token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:85 +msgid "This token will stop working immediately." +msgstr "" + +#: templates/users/fragments/api_tokens.html:86 +#, fuzzy +#| msgid "Yes, refresh it!" +msgid "Yes, revoke it!" +msgstr "Sim, atualize!" + +#: templates/users/fragments/api_tokens.html:99 +#, fuzzy +#| msgid "Deleted At" +msgid "Delete token?" +msgstr "Apagado Em" + +#: templates/users/fragments/api_tokens.html:100 +msgid "This permanently removes the token from the list. It cannot be undone." +msgstr "" + +#: templates/users/fragments/api_tokens.html:114 +msgid "No API tokens" +msgstr "" + #: templates/users/fragments/edit.html:5 msgid "Edit user" msgstr "Editar usuário" @@ -3683,10 +3869,6 @@ msgstr "Login com" msgid "Yearly Overview" msgstr "Visão Anual" -#~ msgid "Any data you add here will be wiped in 24hrs or less" -#~ msgstr "" -#~ "Todos os dados que você adicionar aqui serão apagados em 24 horas ou menos" - #, fuzzy #~| msgid "Are you sure?" #~ msgid " Are you sure?" diff --git a/app/locale/ru/LC_MESSAGES/django.po b/app/locale/ru/LC_MESSAGES/django.po index 41c0e0d..e07b5b1 100644 --- a/app/locale/ru/LC_MESSAGES/django.po +++ b/app/locale/ru/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-06 08:15+0000\n" +"POT-Creation-Date: 2026-07-04 15:39+0000\n" "PO-Revision-Date: 2026-05-01 07:24+0000\n" "Last-Translator: masttera \n" "Language-Team: Russian Публичный: Отображается для всех " "пользователей. Может быть изменено только владельцем." -#: apps/common/forms.py:76 apps/users/forms.py:169 +#: apps/common/forms.py:76 apps/users/forms.py:173 msgid "Save" msgstr "Сохранить" @@ -549,8 +549,8 @@ msgstr "Обменный курс" msgid "Date and Time" msgstr "Дата и время" -#: apps/currencies/models.py:78 apps/users/models.py:12 -#: apps/users/models.py:497 +#: apps/currencies/models.py:78 apps/users/models.py:17 +#: apps/users/models.py:502 msgid "Auto" msgstr "Авто" @@ -591,7 +591,9 @@ msgstr "Тип услуги" #: templates/entities/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16 -#: templates/tags/fragments/list.html:16 templates/users/fragments/list.html:25 +#: templates/tags/fragments/list.html:16 +#: templates/users/fragments/api_tokens.html:54 +#: templates/users/fragments/list.html:25 msgid "Active" msgstr "Активный" @@ -1612,7 +1614,7 @@ msgstr "Теги транзакций" msgid "Yearly" msgstr "Ежегодно" -#: apps/transactions/models.py:596 apps/users/models.py:464 +#: apps/transactions/models.py:596 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "Ежемесячно" @@ -1803,11 +1805,11 @@ msgid "Installment Plan deleted successfully" msgstr "План рассрочки успешно удален" #: apps/transactions/views/quick_transactions.py:45 -#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:188 +#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:252 msgid "Item added successfully" msgstr "Элемент успешно добавлен" -#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:220 +#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:284 msgid "Item updated successfully" msgstr "Элемент успешно обновлен" @@ -1896,44 +1898,48 @@ msgstr "Транзакция успешно восстановлена" msgid "Transfer added successfully" msgstr "Перевод успешно добавлен" -#: apps/users/admin.py:22 templates/users/fragments/user_settings.html:5 +#: apps/users/admin.py:17 +msgid "Revoke selected API tokens" +msgstr "" + +#: apps/users/admin.py:28 templates/users/fragments/user_settings.html:5 msgid "User Settings" msgstr "Пользовательские настройки" -#: apps/users/admin.py:23 +#: apps/users/admin.py:29 msgid "User Setting" msgstr "Настройки пользователя" -#: apps/users/admin.py:48 +#: apps/users/admin.py:54 msgid "Personal info" msgstr "Персональная информация" -#: apps/users/admin.py:50 +#: apps/users/admin.py:56 msgid "Permissions" msgstr "Разрешения" -#: apps/users/admin.py:61 +#: apps/users/admin.py:67 msgid "Important dates" msgstr "" -#: apps/users/forms.py:24 apps/users/forms.py:28 apps/users/models.py:451 +#: apps/users/forms.py:28 apps/users/forms.py:32 apps/users/models.py:456 #: templates/users/login.html:18 msgid "E-mail" msgstr "E-mail" -#: apps/users/forms.py:35 apps/users/forms.py:40 templates/users/login.html:19 +#: apps/users/forms.py:39 apps/users/forms.py:44 templates/users/login.html:19 msgid "Password" msgstr "Пароль" -#: apps/users/forms.py:47 +#: apps/users/forms.py:51 msgid "Invalid e-mail or password" msgstr "Неверный адрес электронной почты или пароль" -#: apps/users/forms.py:48 +#: apps/users/forms.py:52 msgid "This account is deactivated" msgstr "Этот аккаунт деактивирован" -#: apps/users/forms.py:64 apps/users/forms.py:77 apps/users/forms.py:99 +#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:245 #: templates/transactions/pages/transactions.html:47 @@ -1941,23 +1947,23 @@ msgstr "Этот аккаунт деактивирован" msgid "Default" msgstr "По умолчанию" -#: apps/users/forms.py:107 apps/users/models.py:484 +#: apps/users/forms.py:111 apps/users/models.py:489 msgid "Date Format" msgstr "Формат даты" -#: apps/users/forms.py:112 apps/users/models.py:489 +#: apps/users/forms.py:116 apps/users/models.py:494 msgid "Datetime Format" msgstr "Формат даты и времени" -#: apps/users/forms.py:118 apps/users/models.py:492 +#: apps/users/forms.py:122 apps/users/models.py:497 msgid "Number Format" msgstr "Формат чисел" -#: apps/users/forms.py:125 +#: apps/users/forms.py:129 msgid "Default Account" msgstr "Учетная запись по умолчанию" -#: apps/users/forms.py:174 +#: apps/users/forms.py:178 #, python-format msgid "" "This changes the language (if available) and how numbers and dates are " @@ -1968,132 +1974,222 @@ msgstr "" "Пожалуйста, рассмотрите возможность помочь перевести WYGIWYH на ваш язык по " "ссылке %(translation_link)s" -#: apps/users/forms.py:183 +#: apps/users/forms.py:187 msgid "New Password" msgstr "Новый пароль" -#: apps/users/forms.py:186 +#: apps/users/forms.py:190 msgid "Leave blank to keep the current password." msgstr "Оставьте поле пустым, чтобы сохранить текущий пароль." -#: apps/users/forms.py:189 +#: apps/users/forms.py:193 msgid "Confirm New Password" msgstr "Подтвердите новый пароль" -#: apps/users/forms.py:201 apps/users/forms.py:358 +#: apps/users/forms.py:205 apps/users/forms.py:362 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." msgstr "" -#: apps/users/forms.py:204 apps/users/forms.py:361 +#: apps/users/forms.py:208 apps/users/forms.py:365 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." msgstr "" -#: apps/users/forms.py:271 +#: apps/users/forms.py:275 msgid "This email address is already in use by another account." msgstr "Этот адрес электронной почты уже используется другим аккаунтом." -#: apps/users/forms.py:279 +#: apps/users/forms.py:283 msgid "The two password fields didn't match." msgstr "Поля ввода пароля не совпадали." -#: apps/users/forms.py:281 +#: apps/users/forms.py:285 msgid "Please confirm your new password." msgstr "Пожалуйста, подтвердите свой новый пароль." -#: apps/users/forms.py:283 +#: apps/users/forms.py:287 msgid "Please enter the new password first." msgstr "Пожалуйста, сначала введите новый пароль." -#: apps/users/forms.py:303 +#: apps/users/forms.py:307 msgid "You cannot deactivate your own account using this form." msgstr "" -#: apps/users/forms.py:316 +#: apps/users/forms.py:320 msgid "Cannot remove status from the last superuser." msgstr "" -#: apps/users/forms.py:322 +#: apps/users/forms.py:326 msgid "You cannot remove your own superuser status using this form." msgstr "" -#: apps/users/forms.py:415 +#: apps/users/forms.py:419 msgid "A user with this email address already exists." msgstr "Пользователь с таким адресом электронной почты уже существует." -#: apps/users/models.py:465 +#: apps/users/forms.py:439 +#, fuzzy +#| msgid "Tag name" +msgid "Token name" +msgstr "Название тега" + +#: apps/users/forms.py:441 +msgid "Use a descriptive name such as n8n, Home Assistant, or backup job." +msgstr "" + +#: apps/users/forms.py:447 +msgid "Expires in days" +msgstr "" + +#: apps/users/forms.py:448 +msgid "Leave empty for a non-expiring token." +msgstr "" + +#: apps/users/forms.py:463 +#, fuzzy +#| msgid "Create transaction" +msgid "Create token" +msgstr "Создать транзакцию" + +#: apps/users/models.py:470 msgid "Yearly by currency" msgstr "Ежегодно по валютам" -#: apps/users/models.py:466 +#: apps/users/models.py:471 msgid "Yearly by account" msgstr "Ежегодно по счетам" -#: apps/users/models.py:467 templates/net_worth/net_worth.html:9 +#: apps/users/models.py:472 templates/net_worth/net_worth.html:9 msgid "Current Net Worth" msgstr "Текущее состояние" -#: apps/users/models.py:468 templates/net_worth/net_worth.html:11 +#: apps/users/models.py:473 templates/net_worth/net_worth.html:11 msgid "Projected Net Worth" msgstr "Прогнозируемый чистый капитал" -#: apps/users/models.py:469 +#: apps/users/models.py:474 msgid "All Transactions" msgstr "Все транзакции" -#: apps/users/models.py:470 templates/includes/sidebar.html:63 +#: apps/users/models.py:475 templates/includes/sidebar.html:63 msgid "Calendar" msgstr "Календарь" -#: apps/users/models.py:480 +#: apps/users/models.py:485 msgid "Volume" msgstr "" -#: apps/users/models.py:499 +#: apps/users/models.py:504 msgid "Language" msgstr "Язык" -#: apps/users/models.py:505 +#: apps/users/models.py:510 msgid "Time Zone" msgstr "Часовой пояс" -#: apps/users/models.py:511 +#: apps/users/models.py:516 msgid "Start page" msgstr "Начальная страница" -#: apps/users/models.py:516 +#: apps/users/models.py:521 msgid "Default account" msgstr "Выбор счета по умолчанию" -#: apps/users/models.py:517 +#: apps/users/models.py:522 msgid "Selects the account by default when creating new transactions" msgstr "" "При создании транзакций по умолчанию выбирается соответствующая учетная " "запись" -#: apps/users/views.py:67 +#: apps/users/models.py:570 +#, fuzzy +#| msgid "Users" +msgid "User" +msgstr "Пользователи" + +#: apps/users/models.py:577 +msgid "Token key" +msgstr "" + +#: apps/users/models.py:579 +msgid "Token hash" +msgstr "" + +#: apps/users/models.py:583 +msgid "Last used at" +msgstr "" + +#: apps/users/models.py:588 +msgid "Expires at" +msgstr "" + +#: apps/users/models.py:593 +msgid "Revoked at" +msgstr "" + +#: apps/users/models.py:595 +#, fuzzy +#| msgid "Create" +msgid "Created at" +msgstr "Создать" + +#: apps/users/models.py:596 +#, fuzzy +#| msgid "Update" +msgid "Updated at" +msgstr "Обновить" + +#: apps/users/models.py:606 +#, fuzzy +#| msgid "API Key" +msgid "API token" +msgstr "API ключ" + +#: apps/users/models.py:607 +msgid "API tokens" +msgstr "" + +#: apps/users/views.py:69 msgid "Transaction amounts are now hidden" msgstr "Суммы транзакций теперь скрыты" -#: apps/users/views.py:70 +#: apps/users/views.py:72 msgid "Transaction amounts are now displayed" msgstr "Суммы транзакций теперь отображаются" -#: apps/users/views.py:88 +#: apps/users/views.py:90 msgid "Sounds are now muted" msgstr "Звуки теперь отключены" -#: apps/users/views.py:91 +#: apps/users/views.py:93 msgid "Sounds will now play" msgstr "Звуки теперь включены" -#: apps/users/views.py:107 +#: apps/users/views.py:109 msgid "Your settings have been updated" msgstr "Ваши настройки обновлены" +#: apps/users/views.py:148 +#, fuzzy +#| msgid "Action updated successfully" +msgid "API token created successfully" +msgstr "Действие успешно обновлено" + +#: apps/users/views.py:167 +#, fuzzy +#| msgid "Action deleted successfully" +msgid "API token revoked successfully" +msgstr "Действие успешно удалено" + +#: apps/users/views.py:178 +#, fuzzy +#| msgid "Action deleted successfully" +msgid "API token deleted successfully" +msgstr "Действие успешно удалено" + #: templates/account_groups/fragments/add.html:5 msgid "Add account group" msgstr "Добавить группу учетных записей" @@ -2191,6 +2287,7 @@ msgstr "Поделиться" #: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:133 #: templates/tags/fragments/table.html:51 +#: templates/users/fragments/api_tokens.html:93 msgid "Delete" msgstr "Удалить" @@ -2268,6 +2365,7 @@ msgstr "Вы не сможете отменить это!" #: templates/rules/fragments/transaction_rule/view.html:98 #: templates/tags/fragments/table.html:57 #: templates/transactions/fragments/attachments.html:22 +#: templates/users/fragments/api_tokens.html:101 msgid "Yes, delete it!" msgstr "Да, удалите это!" @@ -3263,6 +3361,10 @@ msgstr "" msgid "This is a demo!" msgstr "Это демо-версия!" +#: templates/layouts/base.html:37 +msgid "Any data you add here will be wiped in 24hrs or less" +msgstr "" + #: templates/mini_tools/currency_converter/currency_converter.html:57 msgid "Invert" msgstr "" @@ -3641,6 +3743,87 @@ msgstr "Без изменений" msgid "Add user" msgstr "Добавить пользователя" +#: templates/users/fragments/api_tokens.html:5 +msgid "API Tokens" +msgstr "" + +#: templates/users/fragments/api_tokens.html:7 +msgid "" +"Use these tokens for automations such as n8n. The raw token is shown only " +"once after creation." +msgstr "" + +#: templates/users/fragments/api_tokens.html:14 +msgid "Copy this token now" +msgstr "" + +#: templates/users/fragments/api_tokens.html:16 +msgid "It will not be shown again after this response." +msgstr "" + +#: templates/users/fragments/api_tokens.html:31 +msgid "Copy" +msgstr "" + +#: templates/users/fragments/api_tokens.html:52 +msgid "Revoked" +msgstr "" + +#: templates/users/fragments/api_tokens.html:59 +#, python-format +msgid "Created %(created)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:62 +#, python-format +msgid "last used %(used)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:64 +msgid "never used" +msgstr "" + +#: templates/users/fragments/api_tokens.html:68 +#, python-format +msgid "expires %(expires)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:70 +msgid "no expiry" +msgstr "" + +#: templates/users/fragments/api_tokens.html:78 +msgid "Revoke" +msgstr "" + +#: templates/users/fragments/api_tokens.html:84 +msgid "Revoke token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:85 +msgid "This token will stop working immediately." +msgstr "" + +#: templates/users/fragments/api_tokens.html:86 +#, fuzzy +#| msgid "Yes, delete it!" +msgid "Yes, revoke it!" +msgstr "Да, удалите это!" + +#: templates/users/fragments/api_tokens.html:99 +#, fuzzy +#| msgid "Delete" +msgid "Delete token?" +msgstr "Удалить" + +#: templates/users/fragments/api_tokens.html:100 +msgid "This permanently removes the token from the list. It cannot be undone." +msgstr "" + +#: templates/users/fragments/api_tokens.html:114 +msgid "No API tokens" +msgstr "" + #: templates/users/fragments/edit.html:5 msgid "Edit user" msgstr "Редактировать пользователя" diff --git a/app/locale/sv/LC_MESSAGES/django.po b/app/locale/sv/LC_MESSAGES/django.po index 6c5385e..4e9e255 100644 --- a/app/locale/sv/LC_MESSAGES/django.po +++ b/app/locale/sv/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-06 08:15+0000\n" +"POT-Creation-Date: 2026-07-04 15:39+0000\n" "PO-Revision-Date: 2025-04-14 06:16+0000\n" "Last-Translator: Emil \n" "Language-Team: Swedish Public: Shown for all users. Only editable by the owner." msgstr "" -#: apps/common/forms.py:76 apps/users/forms.py:169 +#: apps/common/forms.py:76 apps/users/forms.py:173 msgid "Save" msgstr "" @@ -531,8 +531,8 @@ msgstr "" msgid "Date and Time" msgstr "" -#: apps/currencies/models.py:78 apps/users/models.py:12 -#: apps/users/models.py:497 +#: apps/currencies/models.py:78 apps/users/models.py:17 +#: apps/users/models.py:502 msgid "Auto" msgstr "" @@ -573,7 +573,9 @@ msgstr "" #: templates/entities/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16 -#: templates/tags/fragments/list.html:16 templates/users/fragments/list.html:25 +#: templates/tags/fragments/list.html:16 +#: templates/users/fragments/api_tokens.html:54 +#: templates/users/fragments/list.html:25 msgid "Active" msgstr "" @@ -1565,7 +1567,7 @@ msgstr "" msgid "Yearly" msgstr "" -#: apps/transactions/models.py:596 apps/users/models.py:464 +#: apps/transactions/models.py:596 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "" @@ -1756,11 +1758,11 @@ msgid "Installment Plan deleted successfully" msgstr "" #: apps/transactions/views/quick_transactions.py:45 -#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:188 +#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:252 msgid "Item added successfully" msgstr "" -#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:220 +#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:284 msgid "Item updated successfully" msgstr "" @@ -1845,44 +1847,48 @@ msgstr "" msgid "Transfer added successfully" msgstr "" -#: apps/users/admin.py:22 templates/users/fragments/user_settings.html:5 +#: apps/users/admin.py:17 +msgid "Revoke selected API tokens" +msgstr "" + +#: apps/users/admin.py:28 templates/users/fragments/user_settings.html:5 msgid "User Settings" msgstr "" -#: apps/users/admin.py:23 +#: apps/users/admin.py:29 msgid "User Setting" msgstr "" -#: apps/users/admin.py:48 +#: apps/users/admin.py:54 msgid "Personal info" msgstr "" -#: apps/users/admin.py:50 +#: apps/users/admin.py:56 msgid "Permissions" msgstr "" -#: apps/users/admin.py:61 +#: apps/users/admin.py:67 msgid "Important dates" msgstr "" -#: apps/users/forms.py:24 apps/users/forms.py:28 apps/users/models.py:451 +#: apps/users/forms.py:28 apps/users/forms.py:32 apps/users/models.py:456 #: templates/users/login.html:18 msgid "E-mail" msgstr "" -#: apps/users/forms.py:35 apps/users/forms.py:40 templates/users/login.html:19 +#: apps/users/forms.py:39 apps/users/forms.py:44 templates/users/login.html:19 msgid "Password" msgstr "" -#: apps/users/forms.py:47 +#: apps/users/forms.py:51 msgid "Invalid e-mail or password" msgstr "" -#: apps/users/forms.py:48 +#: apps/users/forms.py:52 msgid "This account is deactivated" msgstr "" -#: apps/users/forms.py:64 apps/users/forms.py:77 apps/users/forms.py:99 +#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:245 #: templates/transactions/pages/transactions.html:47 @@ -1890,23 +1896,23 @@ msgstr "" msgid "Default" msgstr "" -#: apps/users/forms.py:107 apps/users/models.py:484 +#: apps/users/forms.py:111 apps/users/models.py:489 msgid "Date Format" msgstr "" -#: apps/users/forms.py:112 apps/users/models.py:489 +#: apps/users/forms.py:116 apps/users/models.py:494 msgid "Datetime Format" msgstr "" -#: apps/users/forms.py:118 apps/users/models.py:492 +#: apps/users/forms.py:122 apps/users/models.py:497 msgid "Number Format" msgstr "" -#: apps/users/forms.py:125 +#: apps/users/forms.py:129 msgid "Default Account" msgstr "" -#: apps/users/forms.py:174 +#: apps/users/forms.py:178 #, python-format msgid "" "This changes the language (if available) and how numbers and dates are " @@ -1914,130 +1920,204 @@ msgid "" "Consider helping translate WYGIWYH to your language at %(translation_link)s" msgstr "" -#: apps/users/forms.py:183 +#: apps/users/forms.py:187 msgid "New Password" msgstr "" -#: apps/users/forms.py:186 +#: apps/users/forms.py:190 msgid "Leave blank to keep the current password." msgstr "" -#: apps/users/forms.py:189 +#: apps/users/forms.py:193 msgid "Confirm New Password" msgstr "" -#: apps/users/forms.py:201 apps/users/forms.py:358 +#: apps/users/forms.py:205 apps/users/forms.py:362 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." msgstr "" -#: apps/users/forms.py:204 apps/users/forms.py:361 +#: apps/users/forms.py:208 apps/users/forms.py:365 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." msgstr "" -#: apps/users/forms.py:271 +#: apps/users/forms.py:275 msgid "This email address is already in use by another account." msgstr "" -#: apps/users/forms.py:279 +#: apps/users/forms.py:283 msgid "The two password fields didn't match." msgstr "" -#: apps/users/forms.py:281 +#: apps/users/forms.py:285 msgid "Please confirm your new password." msgstr "" -#: apps/users/forms.py:283 +#: apps/users/forms.py:287 msgid "Please enter the new password first." msgstr "" -#: apps/users/forms.py:303 +#: apps/users/forms.py:307 msgid "You cannot deactivate your own account using this form." msgstr "" -#: apps/users/forms.py:316 +#: apps/users/forms.py:320 msgid "Cannot remove status from the last superuser." msgstr "" -#: apps/users/forms.py:322 +#: apps/users/forms.py:326 msgid "You cannot remove your own superuser status using this form." msgstr "" -#: apps/users/forms.py:415 +#: apps/users/forms.py:419 msgid "A user with this email address already exists." msgstr "" -#: apps/users/models.py:465 +#: apps/users/forms.py:439 +msgid "Token name" +msgstr "" + +#: apps/users/forms.py:441 +msgid "Use a descriptive name such as n8n, Home Assistant, or backup job." +msgstr "" + +#: apps/users/forms.py:447 +msgid "Expires in days" +msgstr "" + +#: apps/users/forms.py:448 +msgid "Leave empty for a non-expiring token." +msgstr "" + +#: apps/users/forms.py:463 +msgid "Create token" +msgstr "" + +#: apps/users/models.py:470 msgid "Yearly by currency" msgstr "" -#: apps/users/models.py:466 +#: apps/users/models.py:471 msgid "Yearly by account" msgstr "" -#: apps/users/models.py:467 templates/net_worth/net_worth.html:9 +#: apps/users/models.py:472 templates/net_worth/net_worth.html:9 msgid "Current Net Worth" msgstr "" -#: apps/users/models.py:468 templates/net_worth/net_worth.html:11 +#: apps/users/models.py:473 templates/net_worth/net_worth.html:11 msgid "Projected Net Worth" msgstr "" -#: apps/users/models.py:469 +#: apps/users/models.py:474 msgid "All Transactions" msgstr "" -#: apps/users/models.py:470 templates/includes/sidebar.html:63 +#: apps/users/models.py:475 templates/includes/sidebar.html:63 msgid "Calendar" msgstr "" -#: apps/users/models.py:480 +#: apps/users/models.py:485 msgid "Volume" msgstr "" -#: apps/users/models.py:499 +#: apps/users/models.py:504 msgid "Language" msgstr "" -#: apps/users/models.py:505 +#: apps/users/models.py:510 msgid "Time Zone" msgstr "" -#: apps/users/models.py:511 +#: apps/users/models.py:516 msgid "Start page" msgstr "" -#: apps/users/models.py:516 +#: apps/users/models.py:521 msgid "Default account" msgstr "" -#: apps/users/models.py:517 +#: apps/users/models.py:522 msgid "Selects the account by default when creating new transactions" msgstr "" -#: apps/users/views.py:67 +#: apps/users/models.py:570 +msgid "User" +msgstr "" + +#: apps/users/models.py:577 +msgid "Token key" +msgstr "" + +#: apps/users/models.py:579 +msgid "Token hash" +msgstr "" + +#: apps/users/models.py:583 +msgid "Last used at" +msgstr "" + +#: apps/users/models.py:588 +msgid "Expires at" +msgstr "" + +#: apps/users/models.py:593 +msgid "Revoked at" +msgstr "" + +#: apps/users/models.py:595 +msgid "Created at" +msgstr "" + +#: apps/users/models.py:596 +#, fuzzy +#| msgid "Update" +msgid "Updated at" +msgstr "Uppdatera" + +#: apps/users/models.py:606 +msgid "API token" +msgstr "" + +#: apps/users/models.py:607 +msgid "API tokens" +msgstr "" + +#: apps/users/views.py:69 msgid "Transaction amounts are now hidden" msgstr "" -#: apps/users/views.py:70 +#: apps/users/views.py:72 msgid "Transaction amounts are now displayed" msgstr "" -#: apps/users/views.py:88 +#: apps/users/views.py:90 msgid "Sounds are now muted" msgstr "" -#: apps/users/views.py:91 +#: apps/users/views.py:93 msgid "Sounds will now play" msgstr "" -#: apps/users/views.py:107 +#: apps/users/views.py:109 msgid "Your settings have been updated" msgstr "" +#: apps/users/views.py:148 +msgid "API token created successfully" +msgstr "" + +#: apps/users/views.py:167 +msgid "API token revoked successfully" +msgstr "" + +#: apps/users/views.py:178 +msgid "API token deleted successfully" +msgstr "" + #: templates/account_groups/fragments/add.html:5 msgid "Add account group" msgstr "" @@ -2135,6 +2215,7 @@ msgstr "" #: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:133 #: templates/tags/fragments/table.html:51 +#: templates/users/fragments/api_tokens.html:93 msgid "Delete" msgstr "" @@ -2212,6 +2293,7 @@ msgstr "" #: templates/rules/fragments/transaction_rule/view.html:98 #: templates/tags/fragments/table.html:57 #: templates/transactions/fragments/attachments.html:22 +#: templates/users/fragments/api_tokens.html:101 msgid "Yes, delete it!" msgstr "" @@ -3207,6 +3289,10 @@ msgstr "" msgid "This is a demo!" msgstr "" +#: templates/layouts/base.html:37 +msgid "Any data you add here will be wiped in 24hrs or less" +msgstr "" + #: templates/mini_tools/currency_converter/currency_converter.html:57 msgid "Invert" msgstr "" @@ -3579,6 +3665,83 @@ msgstr "" msgid "Add user" msgstr "" +#: templates/users/fragments/api_tokens.html:5 +msgid "API Tokens" +msgstr "" + +#: templates/users/fragments/api_tokens.html:7 +msgid "" +"Use these tokens for automations such as n8n. The raw token is shown only " +"once after creation." +msgstr "" + +#: templates/users/fragments/api_tokens.html:14 +msgid "Copy this token now" +msgstr "" + +#: templates/users/fragments/api_tokens.html:16 +msgid "It will not be shown again after this response." +msgstr "" + +#: templates/users/fragments/api_tokens.html:31 +msgid "Copy" +msgstr "" + +#: templates/users/fragments/api_tokens.html:52 +msgid "Revoked" +msgstr "" + +#: templates/users/fragments/api_tokens.html:59 +#, python-format +msgid "Created %(created)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:62 +#, python-format +msgid "last used %(used)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:64 +msgid "never used" +msgstr "" + +#: templates/users/fragments/api_tokens.html:68 +#, python-format +msgid "expires %(expires)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:70 +msgid "no expiry" +msgstr "" + +#: templates/users/fragments/api_tokens.html:78 +msgid "Revoke" +msgstr "" + +#: templates/users/fragments/api_tokens.html:84 +msgid "Revoke token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:85 +msgid "This token will stop working immediately." +msgstr "" + +#: templates/users/fragments/api_tokens.html:86 +msgid "Yes, revoke it!" +msgstr "" + +#: templates/users/fragments/api_tokens.html:99 +msgid "Delete token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:100 +msgid "This permanently removes the token from the list. It cannot be undone." +msgstr "" + +#: templates/users/fragments/api_tokens.html:114 +msgid "No API tokens" +msgstr "" + #: templates/users/fragments/edit.html:5 msgid "Edit user" msgstr "" diff --git a/app/locale/sw/LC_MESSAGES/django.po b/app/locale/sw/LC_MESSAGES/django.po index fe3dc3b..4d34ee5 100644 --- a/app/locale/sw/LC_MESSAGES/django.po +++ b/app/locale/sw/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-06 08:15+0000\n" +"POT-Creation-Date: 2026-07-04 15:39+0000\n" "PO-Revision-Date: 2026-01-18 19:24+0000\n" "Last-Translator: Ebrahim Tayabali \n" "Language-Team: Swahili Public: Shown for all users. Only editable by the owner." msgstr "" -#: apps/common/forms.py:76 apps/users/forms.py:169 +#: apps/common/forms.py:76 apps/users/forms.py:173 msgid "Save" msgstr "" @@ -535,8 +535,8 @@ msgstr "" msgid "Date and Time" msgstr "" -#: apps/currencies/models.py:78 apps/users/models.py:12 -#: apps/users/models.py:497 +#: apps/currencies/models.py:78 apps/users/models.py:17 +#: apps/users/models.py:502 msgid "Auto" msgstr "" @@ -577,7 +577,9 @@ msgstr "" #: templates/entities/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16 -#: templates/tags/fragments/list.html:16 templates/users/fragments/list.html:25 +#: templates/tags/fragments/list.html:16 +#: templates/users/fragments/api_tokens.html:54 +#: templates/users/fragments/list.html:25 msgid "Active" msgstr "" @@ -1569,7 +1571,7 @@ msgstr "" msgid "Yearly" msgstr "" -#: apps/transactions/models.py:596 apps/users/models.py:464 +#: apps/transactions/models.py:596 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "" @@ -1760,11 +1762,11 @@ msgid "Installment Plan deleted successfully" msgstr "" #: apps/transactions/views/quick_transactions.py:45 -#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:188 +#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:252 msgid "Item added successfully" msgstr "" -#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:220 +#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:284 msgid "Item updated successfully" msgstr "" @@ -1849,44 +1851,48 @@ msgstr "" msgid "Transfer added successfully" msgstr "" -#: apps/users/admin.py:22 templates/users/fragments/user_settings.html:5 +#: apps/users/admin.py:17 +msgid "Revoke selected API tokens" +msgstr "" + +#: apps/users/admin.py:28 templates/users/fragments/user_settings.html:5 msgid "User Settings" msgstr "" -#: apps/users/admin.py:23 +#: apps/users/admin.py:29 msgid "User Setting" msgstr "" -#: apps/users/admin.py:48 +#: apps/users/admin.py:54 msgid "Personal info" msgstr "" -#: apps/users/admin.py:50 +#: apps/users/admin.py:56 msgid "Permissions" msgstr "" -#: apps/users/admin.py:61 +#: apps/users/admin.py:67 msgid "Important dates" msgstr "" -#: apps/users/forms.py:24 apps/users/forms.py:28 apps/users/models.py:451 +#: apps/users/forms.py:28 apps/users/forms.py:32 apps/users/models.py:456 #: templates/users/login.html:18 msgid "E-mail" msgstr "" -#: apps/users/forms.py:35 apps/users/forms.py:40 templates/users/login.html:19 +#: apps/users/forms.py:39 apps/users/forms.py:44 templates/users/login.html:19 msgid "Password" msgstr "" -#: apps/users/forms.py:47 +#: apps/users/forms.py:51 msgid "Invalid e-mail or password" msgstr "" -#: apps/users/forms.py:48 +#: apps/users/forms.py:52 msgid "This account is deactivated" msgstr "" -#: apps/users/forms.py:64 apps/users/forms.py:77 apps/users/forms.py:99 +#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:245 #: templates/transactions/pages/transactions.html:47 @@ -1894,25 +1900,25 @@ msgstr "" msgid "Default" msgstr "" -#: apps/users/forms.py:107 apps/users/models.py:484 +#: apps/users/forms.py:111 apps/users/models.py:489 msgid "Date Format" msgstr "" -#: apps/users/forms.py:112 apps/users/models.py:489 +#: apps/users/forms.py:116 apps/users/models.py:494 msgid "Datetime Format" msgstr "" -#: apps/users/forms.py:118 apps/users/models.py:492 +#: apps/users/forms.py:122 apps/users/models.py:497 msgid "Number Format" msgstr "" -#: apps/users/forms.py:125 +#: apps/users/forms.py:129 #, fuzzy #| msgid "Asset account" msgid "Default Account" msgstr "Akaunti ya Mali" -#: apps/users/forms.py:174 +#: apps/users/forms.py:178 #, python-format msgid "" "This changes the language (if available) and how numbers and dates are " @@ -1920,132 +1926,206 @@ msgid "" "Consider helping translate WYGIWYH to your language at %(translation_link)s" msgstr "" -#: apps/users/forms.py:183 +#: apps/users/forms.py:187 msgid "New Password" msgstr "" -#: apps/users/forms.py:186 +#: apps/users/forms.py:190 msgid "Leave blank to keep the current password." msgstr "" -#: apps/users/forms.py:189 +#: apps/users/forms.py:193 msgid "Confirm New Password" msgstr "" -#: apps/users/forms.py:201 apps/users/forms.py:358 +#: apps/users/forms.py:205 apps/users/forms.py:362 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." msgstr "" -#: apps/users/forms.py:204 apps/users/forms.py:361 +#: apps/users/forms.py:208 apps/users/forms.py:365 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." msgstr "" -#: apps/users/forms.py:271 +#: apps/users/forms.py:275 msgid "This email address is already in use by another account." msgstr "" -#: apps/users/forms.py:279 +#: apps/users/forms.py:283 msgid "The two password fields didn't match." msgstr "" -#: apps/users/forms.py:281 +#: apps/users/forms.py:285 msgid "Please confirm your new password." msgstr "" -#: apps/users/forms.py:283 +#: apps/users/forms.py:287 msgid "Please enter the new password first." msgstr "" -#: apps/users/forms.py:303 +#: apps/users/forms.py:307 msgid "You cannot deactivate your own account using this form." msgstr "" -#: apps/users/forms.py:316 +#: apps/users/forms.py:320 msgid "Cannot remove status from the last superuser." msgstr "" -#: apps/users/forms.py:322 +#: apps/users/forms.py:326 msgid "You cannot remove your own superuser status using this form." msgstr "" -#: apps/users/forms.py:415 +#: apps/users/forms.py:419 msgid "A user with this email address already exists." msgstr "" -#: apps/users/models.py:465 +#: apps/users/forms.py:439 +#, fuzzy +#| msgid "Group name" +msgid "Token name" +msgstr "Jina La Kundi" + +#: apps/users/forms.py:441 +msgid "Use a descriptive name such as n8n, Home Assistant, or backup job." +msgstr "" + +#: apps/users/forms.py:447 +msgid "Expires in days" +msgstr "" + +#: apps/users/forms.py:448 +msgid "Leave empty for a non-expiring token." +msgstr "" + +#: apps/users/forms.py:463 +msgid "Create token" +msgstr "" + +#: apps/users/models.py:470 msgid "Yearly by currency" msgstr "" -#: apps/users/models.py:466 +#: apps/users/models.py:471 msgid "Yearly by account" msgstr "" -#: apps/users/models.py:467 templates/net_worth/net_worth.html:9 +#: apps/users/models.py:472 templates/net_worth/net_worth.html:9 msgid "Current Net Worth" msgstr "" -#: apps/users/models.py:468 templates/net_worth/net_worth.html:11 +#: apps/users/models.py:473 templates/net_worth/net_worth.html:11 msgid "Projected Net Worth" msgstr "" -#: apps/users/models.py:469 +#: apps/users/models.py:474 msgid "All Transactions" msgstr "" -#: apps/users/models.py:470 templates/includes/sidebar.html:63 +#: apps/users/models.py:475 templates/includes/sidebar.html:63 msgid "Calendar" msgstr "" -#: apps/users/models.py:480 +#: apps/users/models.py:485 msgid "Volume" msgstr "" -#: apps/users/models.py:499 +#: apps/users/models.py:504 msgid "Language" msgstr "" -#: apps/users/models.py:505 +#: apps/users/models.py:510 msgid "Time Zone" msgstr "" -#: apps/users/models.py:511 +#: apps/users/models.py:516 msgid "Start page" msgstr "" -#: apps/users/models.py:516 +#: apps/users/models.py:521 #, fuzzy #| msgid "Asset account" msgid "Default account" msgstr "Akaunti ya Mali" -#: apps/users/models.py:517 +#: apps/users/models.py:522 msgid "Selects the account by default when creating new transactions" msgstr "" -#: apps/users/views.py:67 +#: apps/users/models.py:570 +msgid "User" +msgstr "" + +#: apps/users/models.py:577 +msgid "Token key" +msgstr "" + +#: apps/users/models.py:579 +msgid "Token hash" +msgstr "" + +#: apps/users/models.py:583 +msgid "Last used at" +msgstr "" + +#: apps/users/models.py:588 +msgid "Expires at" +msgstr "" + +#: apps/users/models.py:593 +msgid "Revoked at" +msgstr "" + +#: apps/users/models.py:595 +msgid "Created at" +msgstr "" + +#: apps/users/models.py:596 +msgid "Updated at" +msgstr "" + +#: apps/users/models.py:606 +msgid "API token" +msgstr "" + +#: apps/users/models.py:607 +msgid "API tokens" +msgstr "" + +#: apps/users/views.py:69 msgid "Transaction amounts are now hidden" msgstr "" -#: apps/users/views.py:70 +#: apps/users/views.py:72 msgid "Transaction amounts are now displayed" msgstr "" -#: apps/users/views.py:88 +#: apps/users/views.py:90 msgid "Sounds are now muted" msgstr "" -#: apps/users/views.py:91 +#: apps/users/views.py:93 msgid "Sounds will now play" msgstr "" -#: apps/users/views.py:107 +#: apps/users/views.py:109 msgid "Your settings have been updated" msgstr "" +#: apps/users/views.py:148 +msgid "API token created successfully" +msgstr "" + +#: apps/users/views.py:167 +msgid "API token revoked successfully" +msgstr "" + +#: apps/users/views.py:178 +msgid "API token deleted successfully" +msgstr "" + #: templates/account_groups/fragments/add.html:5 msgid "Add account group" msgstr "" @@ -2143,6 +2223,7 @@ msgstr "" #: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:133 #: templates/tags/fragments/table.html:51 +#: templates/users/fragments/api_tokens.html:93 msgid "Delete" msgstr "" @@ -2220,6 +2301,7 @@ msgstr "" #: templates/rules/fragments/transaction_rule/view.html:98 #: templates/tags/fragments/table.html:57 #: templates/transactions/fragments/attachments.html:22 +#: templates/users/fragments/api_tokens.html:101 msgid "Yes, delete it!" msgstr "" @@ -3215,6 +3297,10 @@ msgstr "" msgid "This is a demo!" msgstr "" +#: templates/layouts/base.html:37 +msgid "Any data you add here will be wiped in 24hrs or less" +msgstr "" + #: templates/mini_tools/currency_converter/currency_converter.html:57 msgid "Invert" msgstr "" @@ -3587,6 +3673,83 @@ msgstr "" msgid "Add user" msgstr "" +#: templates/users/fragments/api_tokens.html:5 +msgid "API Tokens" +msgstr "" + +#: templates/users/fragments/api_tokens.html:7 +msgid "" +"Use these tokens for automations such as n8n. The raw token is shown only " +"once after creation." +msgstr "" + +#: templates/users/fragments/api_tokens.html:14 +msgid "Copy this token now" +msgstr "" + +#: templates/users/fragments/api_tokens.html:16 +msgid "It will not be shown again after this response." +msgstr "" + +#: templates/users/fragments/api_tokens.html:31 +msgid "Copy" +msgstr "" + +#: templates/users/fragments/api_tokens.html:52 +msgid "Revoked" +msgstr "" + +#: templates/users/fragments/api_tokens.html:59 +#, python-format +msgid "Created %(created)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:62 +#, python-format +msgid "last used %(used)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:64 +msgid "never used" +msgstr "" + +#: templates/users/fragments/api_tokens.html:68 +#, python-format +msgid "expires %(expires)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:70 +msgid "no expiry" +msgstr "" + +#: templates/users/fragments/api_tokens.html:78 +msgid "Revoke" +msgstr "" + +#: templates/users/fragments/api_tokens.html:84 +msgid "Revoke token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:85 +msgid "This token will stop working immediately." +msgstr "" + +#: templates/users/fragments/api_tokens.html:86 +msgid "Yes, revoke it!" +msgstr "" + +#: templates/users/fragments/api_tokens.html:99 +msgid "Delete token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:100 +msgid "This permanently removes the token from the list. It cannot be undone." +msgstr "" + +#: templates/users/fragments/api_tokens.html:114 +msgid "No API tokens" +msgstr "" + #: templates/users/fragments/edit.html:5 msgid "Edit user" msgstr "" diff --git a/app/locale/uk/LC_MESSAGES/django.po b/app/locale/uk/LC_MESSAGES/django.po index cc6824c..290fab1 100644 --- a/app/locale/uk/LC_MESSAGES/django.po +++ b/app/locale/uk/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-06 08:15+0000\n" +"POT-Creation-Date: 2026-07-04 15:39+0000\n" "PO-Revision-Date: 2025-11-01 01:17+0000\n" "Last-Translator: mlystopad \n" "Language-Team: Ukrainian Public: Відображається для всіх " "користувачів. Редагувати може лише власник." -#: apps/common/forms.py:76 apps/users/forms.py:169 +#: apps/common/forms.py:76 apps/users/forms.py:173 msgid "Save" msgstr "Зберегти" @@ -549,8 +549,8 @@ msgstr "Обмінний курс" msgid "Date and Time" msgstr "Дата і час" -#: apps/currencies/models.py:78 apps/users/models.py:12 -#: apps/users/models.py:497 +#: apps/currencies/models.py:78 apps/users/models.py:17 +#: apps/users/models.py:502 msgid "Auto" msgstr "Авто" @@ -591,7 +591,9 @@ msgstr "Тип сервісу" #: templates/entities/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16 -#: templates/tags/fragments/list.html:16 templates/users/fragments/list.html:25 +#: templates/tags/fragments/list.html:16 +#: templates/users/fragments/api_tokens.html:54 +#: templates/users/fragments/list.html:25 msgid "Active" msgstr "Активний" @@ -1607,7 +1609,7 @@ msgstr "Правила транзакцій" msgid "Yearly" msgstr "" -#: apps/transactions/models.py:596 apps/users/models.py:464 +#: apps/transactions/models.py:596 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "" @@ -1798,11 +1800,11 @@ msgid "Installment Plan deleted successfully" msgstr "" #: apps/transactions/views/quick_transactions.py:45 -#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:188 +#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:252 msgid "Item added successfully" msgstr "" -#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:220 +#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:284 msgid "Item updated successfully" msgstr "" @@ -1893,44 +1895,48 @@ msgstr "" msgid "Transfer added successfully" msgstr "" -#: apps/users/admin.py:22 templates/users/fragments/user_settings.html:5 +#: apps/users/admin.py:17 +msgid "Revoke selected API tokens" +msgstr "" + +#: apps/users/admin.py:28 templates/users/fragments/user_settings.html:5 msgid "User Settings" msgstr "" -#: apps/users/admin.py:23 +#: apps/users/admin.py:29 msgid "User Setting" msgstr "" -#: apps/users/admin.py:48 +#: apps/users/admin.py:54 msgid "Personal info" msgstr "" -#: apps/users/admin.py:50 +#: apps/users/admin.py:56 msgid "Permissions" msgstr "" -#: apps/users/admin.py:61 +#: apps/users/admin.py:67 msgid "Important dates" msgstr "" -#: apps/users/forms.py:24 apps/users/forms.py:28 apps/users/models.py:451 +#: apps/users/forms.py:28 apps/users/forms.py:32 apps/users/models.py:456 #: templates/users/login.html:18 msgid "E-mail" msgstr "" -#: apps/users/forms.py:35 apps/users/forms.py:40 templates/users/login.html:19 +#: apps/users/forms.py:39 apps/users/forms.py:44 templates/users/login.html:19 msgid "Password" msgstr "" -#: apps/users/forms.py:47 +#: apps/users/forms.py:51 msgid "Invalid e-mail or password" msgstr "" -#: apps/users/forms.py:48 +#: apps/users/forms.py:52 msgid "This account is deactivated" msgstr "" -#: apps/users/forms.py:64 apps/users/forms.py:77 apps/users/forms.py:99 +#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:245 #: templates/transactions/pages/transactions.html:47 @@ -1938,25 +1944,25 @@ msgstr "" msgid "Default" msgstr "" -#: apps/users/forms.py:107 apps/users/models.py:484 +#: apps/users/forms.py:111 apps/users/models.py:489 msgid "Date Format" msgstr "" -#: apps/users/forms.py:112 apps/users/models.py:489 +#: apps/users/forms.py:116 apps/users/models.py:494 msgid "Datetime Format" msgstr "" -#: apps/users/forms.py:118 apps/users/models.py:492 +#: apps/users/forms.py:122 apps/users/models.py:497 msgid "Number Format" msgstr "" -#: apps/users/forms.py:125 +#: apps/users/forms.py:129 #, fuzzy #| msgid "Target Accounts" msgid "Default Account" msgstr "Цільові Рахунки" -#: apps/users/forms.py:174 +#: apps/users/forms.py:178 #, python-format msgid "" "This changes the language (if available) and how numbers and dates are " @@ -1964,131 +1970,221 @@ msgid "" "Consider helping translate WYGIWYH to your language at %(translation_link)s" msgstr "" -#: apps/users/forms.py:183 +#: apps/users/forms.py:187 msgid "New Password" msgstr "" -#: apps/users/forms.py:186 +#: apps/users/forms.py:190 msgid "Leave blank to keep the current password." msgstr "" -#: apps/users/forms.py:189 +#: apps/users/forms.py:193 msgid "Confirm New Password" msgstr "" -#: apps/users/forms.py:201 apps/users/forms.py:358 +#: apps/users/forms.py:205 apps/users/forms.py:362 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." msgstr "" -#: apps/users/forms.py:204 apps/users/forms.py:361 +#: apps/users/forms.py:208 apps/users/forms.py:365 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." msgstr "" -#: apps/users/forms.py:271 +#: apps/users/forms.py:275 msgid "This email address is already in use by another account." msgstr "" -#: apps/users/forms.py:279 +#: apps/users/forms.py:283 msgid "The two password fields didn't match." msgstr "" -#: apps/users/forms.py:281 +#: apps/users/forms.py:285 msgid "Please confirm your new password." msgstr "" -#: apps/users/forms.py:283 +#: apps/users/forms.py:287 msgid "Please enter the new password first." msgstr "" -#: apps/users/forms.py:303 +#: apps/users/forms.py:307 msgid "You cannot deactivate your own account using this form." msgstr "" -#: apps/users/forms.py:316 +#: apps/users/forms.py:320 msgid "Cannot remove status from the last superuser." msgstr "" -#: apps/users/forms.py:322 +#: apps/users/forms.py:326 msgid "You cannot remove your own superuser status using this form." msgstr "" -#: apps/users/forms.py:415 +#: apps/users/forms.py:419 msgid "A user with this email address already exists." msgstr "" -#: apps/users/models.py:465 +#: apps/users/forms.py:439 +#, fuzzy +#| msgid "Group name" +msgid "Token name" +msgstr "Назва групи" + +#: apps/users/forms.py:441 +msgid "Use a descriptive name such as n8n, Home Assistant, or backup job." +msgstr "" + +#: apps/users/forms.py:447 +msgid "Expires in days" +msgstr "" + +#: apps/users/forms.py:448 +msgid "Leave empty for a non-expiring token." +msgstr "" + +#: apps/users/forms.py:463 +#, fuzzy +#| msgid "Create transaction" +msgid "Create token" +msgstr "Створити транзакцію" + +#: apps/users/models.py:470 msgid "Yearly by currency" msgstr "" -#: apps/users/models.py:466 +#: apps/users/models.py:471 msgid "Yearly by account" msgstr "" -#: apps/users/models.py:467 templates/net_worth/net_worth.html:9 +#: apps/users/models.py:472 templates/net_worth/net_worth.html:9 msgid "Current Net Worth" msgstr "" -#: apps/users/models.py:468 templates/net_worth/net_worth.html:11 +#: apps/users/models.py:473 templates/net_worth/net_worth.html:11 msgid "Projected Net Worth" msgstr "" -#: apps/users/models.py:469 +#: apps/users/models.py:474 msgid "All Transactions" msgstr "" -#: apps/users/models.py:470 templates/includes/sidebar.html:63 +#: apps/users/models.py:475 templates/includes/sidebar.html:63 msgid "Calendar" msgstr "" -#: apps/users/models.py:480 +#: apps/users/models.py:485 msgid "Volume" msgstr "" -#: apps/users/models.py:499 +#: apps/users/models.py:504 msgid "Language" msgstr "" -#: apps/users/models.py:505 +#: apps/users/models.py:510 msgid "Time Zone" msgstr "" -#: apps/users/models.py:511 +#: apps/users/models.py:516 msgid "Start page" msgstr "" -#: apps/users/models.py:516 +#: apps/users/models.py:521 #, fuzzy msgid "Default account" msgstr "Рахунок активу" -#: apps/users/models.py:517 +#: apps/users/models.py:522 msgid "Selects the account by default when creating new transactions" msgstr "" -#: apps/users/views.py:67 +#: apps/users/models.py:570 +#, fuzzy +#| msgid "Users" +msgid "User" +msgstr "Користувачі" + +#: apps/users/models.py:577 +msgid "Token key" +msgstr "" + +#: apps/users/models.py:579 +msgid "Token hash" +msgstr "" + +#: apps/users/models.py:583 +msgid "Last used at" +msgstr "" + +#: apps/users/models.py:588 +msgid "Expires at" +msgstr "" + +#: apps/users/models.py:593 +msgid "Revoked at" +msgstr "" + +#: apps/users/models.py:595 +#, fuzzy +#| msgid "Create transaction" +msgid "Created at" +msgstr "Створити транзакцію" + +#: apps/users/models.py:596 +#, fuzzy +#| msgid "Update" +msgid "Updated at" +msgstr "Оновлення" + +#: apps/users/models.py:606 +#, fuzzy +#| msgid "API Key" +msgid "API token" +msgstr "Ключ API" + +#: apps/users/models.py:607 +msgid "API tokens" +msgstr "" + +#: apps/users/views.py:69 msgid "Transaction amounts are now hidden" msgstr "" -#: apps/users/views.py:70 +#: apps/users/views.py:72 msgid "Transaction amounts are now displayed" msgstr "" -#: apps/users/views.py:88 +#: apps/users/views.py:90 msgid "Sounds are now muted" msgstr "" -#: apps/users/views.py:91 +#: apps/users/views.py:93 msgid "Sounds will now play" msgstr "" -#: apps/users/views.py:107 +#: apps/users/views.py:109 msgid "Your settings have been updated" msgstr "" +#: apps/users/views.py:148 +#, fuzzy +#| msgid "Account deleted successfully" +msgid "API token created successfully" +msgstr "Рахунок успішно видалено" + +#: apps/users/views.py:167 +#, fuzzy +#| msgid "Account deleted successfully" +msgid "API token revoked successfully" +msgstr "Рахунок успішно видалено" + +#: apps/users/views.py:178 +#, fuzzy +#| msgid "Account deleted successfully" +msgid "API token deleted successfully" +msgstr "Рахунок успішно видалено" + #: templates/account_groups/fragments/add.html:5 msgid "Add account group" msgstr "" @@ -2186,6 +2282,7 @@ msgstr "" #: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:133 #: templates/tags/fragments/table.html:51 +#: templates/users/fragments/api_tokens.html:93 msgid "Delete" msgstr "" @@ -2263,6 +2360,7 @@ msgstr "" #: templates/rules/fragments/transaction_rule/view.html:98 #: templates/tags/fragments/table.html:57 #: templates/transactions/fragments/attachments.html:22 +#: templates/users/fragments/api_tokens.html:101 msgid "Yes, delete it!" msgstr "" @@ -3267,6 +3365,10 @@ msgstr "" msgid "This is a demo!" msgstr "" +#: templates/layouts/base.html:37 +msgid "Any data you add here will be wiped in 24hrs or less" +msgstr "" + #: templates/mini_tools/currency_converter/currency_converter.html:57 msgid "Invert" msgstr "" @@ -3641,6 +3743,83 @@ msgstr "" msgid "Add user" msgstr "Додати користувача" +#: templates/users/fragments/api_tokens.html:5 +msgid "API Tokens" +msgstr "" + +#: templates/users/fragments/api_tokens.html:7 +msgid "" +"Use these tokens for automations such as n8n. The raw token is shown only " +"once after creation." +msgstr "" + +#: templates/users/fragments/api_tokens.html:14 +msgid "Copy this token now" +msgstr "" + +#: templates/users/fragments/api_tokens.html:16 +msgid "It will not be shown again after this response." +msgstr "" + +#: templates/users/fragments/api_tokens.html:31 +msgid "Copy" +msgstr "" + +#: templates/users/fragments/api_tokens.html:52 +msgid "Revoked" +msgstr "" + +#: templates/users/fragments/api_tokens.html:59 +#, python-format +msgid "Created %(created)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:62 +#, python-format +msgid "last used %(used)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:64 +msgid "never used" +msgstr "" + +#: templates/users/fragments/api_tokens.html:68 +#, python-format +msgid "expires %(expires)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:70 +msgid "no expiry" +msgstr "" + +#: templates/users/fragments/api_tokens.html:78 +msgid "Revoke" +msgstr "" + +#: templates/users/fragments/api_tokens.html:84 +msgid "Revoke token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:85 +msgid "This token will stop working immediately." +msgstr "" + +#: templates/users/fragments/api_tokens.html:86 +msgid "Yes, revoke it!" +msgstr "" + +#: templates/users/fragments/api_tokens.html:99 +msgid "Delete token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:100 +msgid "This permanently removes the token from the list. It cannot be undone." +msgstr "" + +#: templates/users/fragments/api_tokens.html:114 +msgid "No API tokens" +msgstr "" + #: templates/users/fragments/edit.html:5 msgid "Edit user" msgstr "Редагувати користувача" diff --git a/app/locale/zh_Hant/LC_MESSAGES/django.po b/app/locale/zh_Hant/LC_MESSAGES/django.po index 00a4594..a00f146 100644 --- a/app/locale/zh_Hant/LC_MESSAGES/django.po +++ b/app/locale/zh_Hant/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-06 08:15+0000\n" +"POT-Creation-Date: 2026-07-04 15:39+0000\n" "PO-Revision-Date: 2025-10-08 16:17+0000\n" "Last-Translator: doody \n" "Language-Team: Chinese (Traditional Han script) 公" "開:所有使用者都可以看到。只有擁有者可以編輯這個選項。" -#: apps/common/forms.py:76 apps/users/forms.py:169 +#: apps/common/forms.py:76 apps/users/forms.py:173 msgid "Save" msgstr "儲存" @@ -529,8 +529,8 @@ msgstr "換算匯率" msgid "Date and Time" msgstr "日期和時間" -#: apps/currencies/models.py:78 apps/users/models.py:12 -#: apps/users/models.py:497 +#: apps/currencies/models.py:78 apps/users/models.py:17 +#: apps/users/models.py:502 msgid "Auto" msgstr "自動" @@ -571,7 +571,9 @@ msgstr "服務類型" #: templates/entities/fragments/list.html:16 #: templates/installment_plans/fragments/list.html:16 #: templates/recurring_transactions/fragments/list.html:16 -#: templates/tags/fragments/list.html:16 templates/users/fragments/list.html:25 +#: templates/tags/fragments/list.html:16 +#: templates/users/fragments/api_tokens.html:54 +#: templates/users/fragments/list.html:25 msgid "Active" msgstr "啟用" @@ -1577,7 +1579,7 @@ msgstr "交易標籤" msgid "Yearly" msgstr "年" -#: apps/transactions/models.py:596 apps/users/models.py:464 +#: apps/transactions/models.py:596 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "月" @@ -1763,11 +1765,11 @@ msgid "Installment Plan deleted successfully" msgstr "成功刪除分期付款計劃" #: apps/transactions/views/quick_transactions.py:45 -#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:188 +#: apps/transactions/views/quick_transactions.py:224 apps/users/views.py:252 msgid "Item added successfully" msgstr "成功新增項目" -#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:220 +#: apps/transactions/views/quick_transactions.py:73 apps/users/views.py:284 msgid "Item updated successfully" msgstr "成功更新項目" @@ -1855,44 +1857,48 @@ msgstr "成功復原交易" msgid "Transfer added successfully" msgstr "成功新增轉帳" -#: apps/users/admin.py:22 templates/users/fragments/user_settings.html:5 +#: apps/users/admin.py:17 +msgid "Revoke selected API tokens" +msgstr "" + +#: apps/users/admin.py:28 templates/users/fragments/user_settings.html:5 msgid "User Settings" msgstr "使用者設定" -#: apps/users/admin.py:23 +#: apps/users/admin.py:29 msgid "User Setting" msgstr "使用者設定" -#: apps/users/admin.py:48 +#: apps/users/admin.py:54 msgid "Personal info" msgstr "個人資訊" -#: apps/users/admin.py:50 +#: apps/users/admin.py:56 msgid "Permissions" msgstr "權限" -#: apps/users/admin.py:61 +#: apps/users/admin.py:67 msgid "Important dates" msgstr "重要的日子" -#: apps/users/forms.py:24 apps/users/forms.py:28 apps/users/models.py:451 +#: apps/users/forms.py:28 apps/users/forms.py:32 apps/users/models.py:456 #: templates/users/login.html:18 msgid "E-mail" msgstr "電子郵件" -#: apps/users/forms.py:35 apps/users/forms.py:40 templates/users/login.html:19 +#: apps/users/forms.py:39 apps/users/forms.py:44 templates/users/login.html:19 msgid "Password" msgstr "密碼" -#: apps/users/forms.py:47 +#: apps/users/forms.py:51 msgid "Invalid e-mail or password" msgstr "無效的電子郵件或著密碼" -#: apps/users/forms.py:48 +#: apps/users/forms.py:52 msgid "This account is deactivated" msgstr "這個帳號已經被停用" -#: apps/users/forms.py:64 apps/users/forms.py:77 apps/users/forms.py:99 +#: apps/users/forms.py:68 apps/users/forms.py:81 apps/users/forms.py:103 #: templates/monthly_overview/pages/overview.html:98 #: templates/monthly_overview/pages/overview.html:245 #: templates/transactions/pages/transactions.html:47 @@ -1900,25 +1906,25 @@ msgstr "這個帳號已經被停用" msgid "Default" msgstr "預設" -#: apps/users/forms.py:107 apps/users/models.py:484 +#: apps/users/forms.py:111 apps/users/models.py:489 msgid "Date Format" msgstr "日期格式" -#: apps/users/forms.py:112 apps/users/models.py:489 +#: apps/users/forms.py:116 apps/users/models.py:494 msgid "Datetime Format" msgstr "日期時間格式" -#: apps/users/forms.py:118 apps/users/models.py:492 +#: apps/users/forms.py:122 apps/users/models.py:497 msgid "Number Format" msgstr "數字格式" -#: apps/users/forms.py:125 +#: apps/users/forms.py:129 #, fuzzy #| msgid "Target Accounts" msgid "Default Account" msgstr "目標帳戶" -#: apps/users/forms.py:174 +#: apps/users/forms.py:178 #, python-format msgid "" "This changes the language (if available) and how numbers and dates are " @@ -1928,109 +1934,133 @@ msgstr "" "這會改變語言(如果支援的話)以及數字和日期的顯示方式\n" "若您有興趣也可以到%(translation_link)s幫助WYGIWYH進行翻譯" -#: apps/users/forms.py:183 +#: apps/users/forms.py:187 msgid "New Password" msgstr "新密碼" -#: apps/users/forms.py:186 +#: apps/users/forms.py:190 msgid "Leave blank to keep the current password." msgstr "若不想改變密碼請留白。" -#: apps/users/forms.py:189 +#: apps/users/forms.py:193 msgid "Confirm New Password" msgstr "確認新密碼" -#: apps/users/forms.py:201 apps/users/forms.py:358 +#: apps/users/forms.py:205 apps/users/forms.py:362 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." msgstr "指定這個使用者是否為啟用狀態,如果沒有選擇的話帳號將無法使用。" -#: apps/users/forms.py:204 apps/users/forms.py:361 +#: apps/users/forms.py:208 apps/users/forms.py:365 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." msgstr "指定這個使用者是否擁有全部的權限。" -#: apps/users/forms.py:271 +#: apps/users/forms.py:275 msgid "This email address is already in use by another account." msgstr "這個email已經被另一個帳號使用。" -#: apps/users/forms.py:279 +#: apps/users/forms.py:283 msgid "The two password fields didn't match." msgstr "兩個密碼欄位的內容不符。" -#: apps/users/forms.py:281 +#: apps/users/forms.py:285 msgid "Please confirm your new password." msgstr "請確認你的新密碼。" -#: apps/users/forms.py:283 +#: apps/users/forms.py:287 msgid "Please enter the new password first." msgstr "請先輸入新的密碼。" -#: apps/users/forms.py:303 +#: apps/users/forms.py:307 msgid "You cannot deactivate your own account using this form." msgstr "無法透過這個頁面停止自己的帳號。" -#: apps/users/forms.py:316 +#: apps/users/forms.py:320 msgid "Cannot remove status from the last superuser." msgstr "最後一位超級使用者無法移除這個權限。" -#: apps/users/forms.py:322 +#: apps/users/forms.py:326 msgid "You cannot remove your own superuser status using this form." msgstr "無法使用這個頁面移除自己的超級使用者權限。" -#: apps/users/forms.py:415 +#: apps/users/forms.py:419 msgid "A user with this email address already exists." msgstr "這個電子郵件的使用者已經存在。" -#: apps/users/models.py:465 +#: apps/users/forms.py:439 +#, fuzzy +#| msgid "Tag name" +msgid "Token name" +msgstr "標籤名稱" + +#: apps/users/forms.py:441 +msgid "Use a descriptive name such as n8n, Home Assistant, or backup job." +msgstr "" + +#: apps/users/forms.py:447 +msgid "Expires in days" +msgstr "" + +#: apps/users/forms.py:448 +msgid "Leave empty for a non-expiring token." +msgstr "" + +#: apps/users/forms.py:463 +#, fuzzy +#| msgid "Create transaction" +msgid "Create token" +msgstr "建立交易" + +#: apps/users/models.py:470 msgid "Yearly by currency" msgstr "以貨幣排序的年報" -#: apps/users/models.py:466 +#: apps/users/models.py:471 msgid "Yearly by account" msgstr "以帳戶為主的年報" -#: apps/users/models.py:467 templates/net_worth/net_worth.html:9 +#: apps/users/models.py:472 templates/net_worth/net_worth.html:9 msgid "Current Net Worth" msgstr "目前的淨資產" -#: apps/users/models.py:468 templates/net_worth/net_worth.html:11 +#: apps/users/models.py:473 templates/net_worth/net_worth.html:11 msgid "Projected Net Worth" msgstr "預期的淨資產" -#: apps/users/models.py:469 +#: apps/users/models.py:474 msgid "All Transactions" msgstr "全部的交易" -#: apps/users/models.py:470 templates/includes/sidebar.html:63 +#: apps/users/models.py:475 templates/includes/sidebar.html:63 msgid "Calendar" msgstr "行事曆" -#: apps/users/models.py:480 +#: apps/users/models.py:485 msgid "Volume" msgstr "音量" -#: apps/users/models.py:499 +#: apps/users/models.py:504 msgid "Language" msgstr "語言" -#: apps/users/models.py:505 +#: apps/users/models.py:510 msgid "Time Zone" msgstr "時區" -#: apps/users/models.py:511 +#: apps/users/models.py:516 msgid "Start page" msgstr "起始頁面" -#: apps/users/models.py:516 +#: apps/users/models.py:521 #, fuzzy #| msgid "Asset account" msgid "Default account" msgstr "資產帳戶" -#: apps/users/models.py:517 +#: apps/users/models.py:522 #, fuzzy #| msgid "" #| "Deactivated tags won't be able to be selected when creating new " @@ -2038,26 +2068,94 @@ msgstr "資產帳戶" msgid "Selects the account by default when creating new transactions" msgstr "新增交易的時候無法選擇停用的標籤" -#: apps/users/views.py:67 +#: apps/users/models.py:570 +#, fuzzy +#| msgid "Users" +msgid "User" +msgstr "使用者" + +#: apps/users/models.py:577 +msgid "Token key" +msgstr "" + +#: apps/users/models.py:579 +msgid "Token hash" +msgstr "" + +#: apps/users/models.py:583 +#, fuzzy +#| msgid "Last Generated Date" +msgid "Last used at" +msgstr "最後產生的日期" + +#: apps/users/models.py:588 +msgid "Expires at" +msgstr "" + +#: apps/users/models.py:593 +msgid "Revoked at" +msgstr "" + +#: apps/users/models.py:595 +#, fuzzy +#| msgid "Create" +msgid "Created at" +msgstr "建立" + +#: apps/users/models.py:596 +#, fuzzy +#| msgid "Update" +msgid "Updated at" +msgstr "更新" + +#: apps/users/models.py:606 +#, fuzzy +#| msgid "API Key" +msgid "API token" +msgstr "API金鑰" + +#: apps/users/models.py:607 +msgid "API tokens" +msgstr "" + +#: apps/users/views.py:69 msgid "Transaction amounts are now hidden" msgstr "已隱藏交易金額" -#: apps/users/views.py:70 +#: apps/users/views.py:72 msgid "Transaction amounts are now displayed" msgstr "已顯示交易金額" -#: apps/users/views.py:88 +#: apps/users/views.py:90 msgid "Sounds are now muted" msgstr "音效已調整為靜音" -#: apps/users/views.py:91 +#: apps/users/views.py:93 msgid "Sounds will now play" msgstr "音效已恢復播放" -#: apps/users/views.py:107 +#: apps/users/views.py:109 msgid "Your settings have been updated" msgstr "您的設定已經更新" +#: apps/users/views.py:148 +#, fuzzy +#| msgid "Action updated successfully" +msgid "API token created successfully" +msgstr "成功更新行為" + +#: apps/users/views.py:167 +#, fuzzy +#| msgid "Action deleted successfully" +msgid "API token revoked successfully" +msgstr "成功刪除行為" + +#: apps/users/views.py:178 +#, fuzzy +#| msgid "Action deleted successfully" +msgid "API token deleted successfully" +msgstr "成功刪除行為" + #: templates/account_groups/fragments/add.html:5 msgid "Add account group" msgstr "新增帳戶組" @@ -2155,6 +2253,7 @@ msgstr "分享" #: templates/rules/fragments/transaction_rule/view.html:92 #: templates/rules/fragments/transaction_rule/view.html:133 #: templates/tags/fragments/table.html:51 +#: templates/users/fragments/api_tokens.html:93 msgid "Delete" msgstr "刪除" @@ -2232,6 +2331,7 @@ msgstr "您將無法復原這個行為!" #: templates/rules/fragments/transaction_rule/view.html:98 #: templates/tags/fragments/table.html:57 #: templates/transactions/fragments/attachments.html:22 +#: templates/users/fragments/api_tokens.html:101 msgid "Yes, delete it!" msgstr "確認,刪除它!" @@ -3250,6 +3350,10 @@ msgstr "沒有分期付款計劃" msgid "This is a demo!" msgstr "這是展示!" +#: templates/layouts/base.html:37 +msgid "Any data you add here will be wiped in 24hrs or less" +msgstr "任何新增的資料都會在24小時內被刪除" + #: templates/mini_tools/currency_converter/currency_converter.html:57 msgid "Invert" msgstr "交換" @@ -3628,6 +3732,87 @@ msgstr "未變更" msgid "Add user" msgstr "新增使用者" +#: templates/users/fragments/api_tokens.html:5 +msgid "API Tokens" +msgstr "" + +#: templates/users/fragments/api_tokens.html:7 +msgid "" +"Use these tokens for automations such as n8n. The raw token is shown only " +"once after creation." +msgstr "" + +#: templates/users/fragments/api_tokens.html:14 +msgid "Copy this token now" +msgstr "" + +#: templates/users/fragments/api_tokens.html:16 +msgid "It will not be shown again after this response." +msgstr "" + +#: templates/users/fragments/api_tokens.html:31 +msgid "Copy" +msgstr "" + +#: templates/users/fragments/api_tokens.html:52 +msgid "Revoked" +msgstr "" + +#: templates/users/fragments/api_tokens.html:59 +#, python-format +msgid "Created %(created)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:62 +#, python-format +msgid "last used %(used)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:64 +msgid "never used" +msgstr "" + +#: templates/users/fragments/api_tokens.html:68 +#, python-format +msgid "expires %(expires)s" +msgstr "" + +#: templates/users/fragments/api_tokens.html:70 +msgid "no expiry" +msgstr "" + +#: templates/users/fragments/api_tokens.html:78 +msgid "Revoke" +msgstr "" + +#: templates/users/fragments/api_tokens.html:84 +msgid "Revoke token?" +msgstr "" + +#: templates/users/fragments/api_tokens.html:85 +msgid "This token will stop working immediately." +msgstr "" + +#: templates/users/fragments/api_tokens.html:86 +#, fuzzy +#| msgid "Yes, refresh it!" +msgid "Yes, revoke it!" +msgstr "確定,重新整理!" + +#: templates/users/fragments/api_tokens.html:99 +#, fuzzy +#| msgid "Deleted At" +msgid "Delete token?" +msgstr "刪除時間" + +#: templates/users/fragments/api_tokens.html:100 +msgid "This permanently removes the token from the list. It cannot be undone." +msgstr "" + +#: templates/users/fragments/api_tokens.html:114 +msgid "No API tokens" +msgstr "" + #: templates/users/fragments/edit.html:5 msgid "Edit user" msgstr "編輯使用者" @@ -3680,9 +3865,6 @@ msgstr "登入" msgid "Yearly Overview" msgstr "年份總覽" -#~ msgid "Any data you add here will be wiped in 24hrs or less" -#~ msgstr "任何新增的資料都會在24小時內被刪除" - #, fuzzy #~| msgid "Are you sure?" #~ msgid " Are you sure?"