Compare commits

..

31 Commits

Author SHA1 Message Date
eitchtee
c7e32d1576 chore(locale): update translation files
[skip ci] Automatically generated by Django makemessages workflow
2025-04-21 18:45:41 +00:00
Herculino Trotta
157e59a1d1 Merge pull request #250
fix(transactions): save and add similar not initializing dates properly
2025-04-21 15:45:05 -03:00
Herculino Trotta
d9c505ac79 fix(transactions): save and add similar not initializing dates properly
Fixes #248
2025-04-21 15:44:42 -03:00
Herculino Trotta
7274a13f3c Merge pull request #249
fix(accounts): unable to share some accounts; wrong url getting used
2025-04-21 14:33:41 -03:00
Herculino Trotta
5d64665ddd fix(accounts): unable to share some accounts; wrong url getting used 2025-04-21 14:33:11 -03:00
Herculino Trotta
e0d92d15c8 locale(Portuguese (Brazil)): update translation
Currently translated at 100.0% (650 of 650 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/pt_BR/
2025-04-20 21:16:53 +00:00
eitchtee
48dd658627 chore(locale): update translation files
[skip ci] Automatically generated by Django makemessages workflow
2025-04-20 18:57:34 +00:00
Herculino Trotta
80dbbd02f0 Merge pull request #246 from eitchtee/dev
feat(transactions): add another transaction (or a similar one)
2025-04-20 15:56:58 -03:00
Herculino Trotta
4b7ca61c29 feat(transactions): add another transaction (or a similar one) right after adding one 2025-04-20 15:55:50 -03:00
eitchtee
b2f04ae1f9 chore(locale): update translation files
[skip ci] Automatically generated by Django makemessages workflow
2025-04-19 15:30:24 +00:00
Herculino Trotta
f34d4b5e28 Merge pull request #245 from eitchtee/dev
feat(insights:category-overview): pick between Projected/Current/Final totals
2025-04-19 12:28:50 -03:00
Herculino Trotta
d2ebfbd615 feat(insights:category-overview): pick between Projected/Current/Final totals 2025-04-19 12:28:22 -03:00
Herculino Trotta
812abbe488 feat(insights:category-overview): pick between Projected/Current/Final totals 2025-04-19 12:16:21 -03:00
eitchtee
9602a4affc chore(locale): update translation files
[skip ci] Automatically generated by Django makemessages workflow
2025-04-19 05:41:07 +00:00
Herculino Trotta
bf548c0747 Merge pull request #244 from eitchtee/dev
feat(insights:category-overview): display tags breakdown alongside categories
2025-04-19 02:40:26 -03:00
Herculino Trotta
55ad2be08b feat(insights:category-overview): display tags breakdown alongside categories 2025-04-19 02:36:38 -03:00
eitchtee
2cd58c2464 chore(locale): update translation files
[skip ci] Automatically generated by Django makemessages workflow
2025-04-19 05:36:33 +00:00
Herculino Trotta
4675ba9d56 Merge pull request #243
feat(insights:category-overview): select if you want to view table or bar charts, defaults to table
2025-04-19 02:35:55 -03:00
Herculino Trotta
a25c992d5c feat(cotton): convert help icon to cotton template; allow setting custom icon 2025-04-19 02:34:16 -03:00
Herculino Trotta
2eadfe99a5 feat(insights:category-overview): select if you want to view table or bar charts, defaults to table 2025-04-19 00:00:31 -03:00
Herculino Trotta
11086a726f fix(insights): missing page title 2025-04-18 23:59:32 -03:00
Herculino Trotta
cd99b40b0a Merge pull request #242
fix(users): users doesn't activate management menu entry
2025-04-18 15:08:19 -03:00
Herculino Trotta
63aa51dc0d fix(users): users doesn't activate management menu entry 2025-04-18 15:08:00 -03:00
eitchtee
4708c5bc7e chore(locale): update translation files
[skip ci] Automatically generated by Django makemessages workflow
2025-04-18 18:05:59 +00:00
Herculino Trotta
5a8462c050 Merge pull request #241
fix(users): disables profile editing on demo mode
2025-04-18 15:05:24 -03:00
Herculino Trotta
6cac02e01f fix(users): disables profile editing on demo mode 2025-04-18 15:04:58 -03:00
Dimitri Decrock
8d12ceeebb locale(Dutch): update translation
Currently translated at 100.0% (643 of 643 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/nl/
2025-04-14 08:16:53 +00:00
Emil
4681d3ca1d locale(Swedish): update translation
Currently translated at 0.1% (1 of 643 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/sv/
2025-04-14 06:16:53 +00:00
Dimitri Decrock
60ded03ea9 locale(Dutch): update translation
Currently translated at 96.5% (621 of 643 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/nl/
2025-04-14 06:16:53 +00:00
Emil
b20d137dc3 locale((Swedish)): added translation using Weblate 2025-04-14 05:02:06 +00:00
Herculino Trotta
29ca6eed6c locale(Portuguese (Brazil)): update translation
Currently translated at 100.0% (643 of 643 strings)

Translation: WYGIWYH/App
Translate-URL: https://translations.herculino.com/projects/wygiwyh/app/pt_BR/
2025-04-13 23:16:53 +00:00
20 changed files with 4696 additions and 828 deletions

View File

@@ -51,7 +51,7 @@ urlpatterns = [
),
path(
"account-groups/<int:pk>/share/",
views.account_share,
views.account_group_share,
name="account_group_share_settings",
),
]

View File

@@ -145,7 +145,7 @@ def account_group_take_ownership(request, pk):
@only_htmx
@login_required
@require_http_methods(["GET", "POST"])
def account_share(request, pk):
def account_group_share(request, pk):
obj = get_object_or_404(AccountGroup, id=pk)
if obj.owner and obj.owner != request.user:

View File

@@ -10,7 +10,7 @@ from apps.currencies.utils.convert import convert
def get_categories_totals(transactions_queryset, ignore_empty=False):
# Get metrics for each category and currency in a single query
# First get the category totals as before
category_currency_metrics = (
transactions_queryset.values(
"category",
@@ -74,9 +74,65 @@ def get_categories_totals(transactions_queryset, ignore_empty=False):
.order_by("category__name")
)
# Get tag totals within each category with currency details
tag_metrics = transactions_queryset.values(
"category",
"tags",
"tags__name",
"account__currency",
"account__currency__code",
"account__currency__name",
"account__currency__decimal_places",
"account__currency__prefix",
"account__currency__suffix",
"account__currency__exchange_currency",
).annotate(
expense_current=Coalesce(
Sum(
Case(
When(type=Transaction.Type.EXPENSE, is_paid=True, then="amount"),
default=Value(0),
output_field=models.DecimalField(),
)
),
Decimal("0"),
),
expense_projected=Coalesce(
Sum(
Case(
When(type=Transaction.Type.EXPENSE, is_paid=False, then="amount"),
default=Value(0),
output_field=models.DecimalField(),
)
),
Decimal("0"),
),
income_current=Coalesce(
Sum(
Case(
When(type=Transaction.Type.INCOME, is_paid=True, then="amount"),
default=Value(0),
output_field=models.DecimalField(),
)
),
Decimal("0"),
),
income_projected=Coalesce(
Sum(
Case(
When(type=Transaction.Type.INCOME, is_paid=False, then="amount"),
default=Value(0),
output_field=models.DecimalField(),
)
),
Decimal("0"),
),
)
# Process the results to structure by category
result = {}
# Process category totals first
for metric in category_currency_metrics:
# Skip empty categories if ignore_empty is True
if ignore_empty and all(
@@ -101,7 +157,11 @@ def get_categories_totals(transactions_queryset, ignore_empty=False):
currency_id = metric["account__currency"]
if category_id not in result:
result[category_id] = {"name": metric["category__name"], "currencies": {}}
result[category_id] = {
"name": metric["category__name"],
"currencies": {},
"tags": {}, # Add tags container
}
# Add currency data
currency_data = {
@@ -162,4 +222,101 @@ def get_categories_totals(transactions_queryset, ignore_empty=False):
result[category_id]["currencies"][currency_id] = currency_data
# Process tag totals and add them to the result, including untagged
for tag_metric in tag_metrics:
category_id = tag_metric["category"]
tag_id = tag_metric["tags"] # Will be None for untagged transactions
if category_id in result:
# Initialize the tag container if not exists
if "tags" not in result[category_id]:
result[category_id]["tags"] = {}
# Determine if this is a tagged or untagged transaction
tag_key = tag_id if tag_id is not None else "untagged"
tag_name = tag_metric["tags__name"] if tag_id is not None else None
if tag_key not in result[category_id]["tags"]:
result[category_id]["tags"][tag_key] = {
"name": tag_name,
"currencies": {},
}
currency_id = tag_metric["account__currency"]
# Calculate tag totals
tag_total_current = (
tag_metric["income_current"] - tag_metric["expense_current"]
)
tag_total_projected = (
tag_metric["income_projected"] - tag_metric["expense_projected"]
)
tag_total_income = (
tag_metric["income_current"] + tag_metric["income_projected"]
)
tag_total_expense = (
tag_metric["expense_current"] + tag_metric["expense_projected"]
)
tag_total_final = tag_total_current + tag_total_projected
tag_currency_data = {
"currency": {
"code": tag_metric["account__currency__code"],
"name": tag_metric["account__currency__name"],
"decimal_places": tag_metric["account__currency__decimal_places"],
"prefix": tag_metric["account__currency__prefix"],
"suffix": tag_metric["account__currency__suffix"],
},
"expense_current": tag_metric["expense_current"],
"expense_projected": tag_metric["expense_projected"],
"total_expense": tag_total_expense,
"income_current": tag_metric["income_current"],
"income_projected": tag_metric["income_projected"],
"total_income": tag_total_income,
"total_current": tag_total_current,
"total_projected": tag_total_projected,
"total_final": tag_total_final,
}
# Add exchange currency support for tags
if tag_metric["account__currency__exchange_currency"]:
from_currency = Currency.objects.get(id=currency_id)
exchange_currency = Currency.objects.get(
id=tag_metric["account__currency__exchange_currency"]
)
exchanged = {}
for field in [
"expense_current",
"expense_projected",
"income_current",
"income_projected",
"total_income",
"total_expense",
"total_current",
"total_projected",
"total_final",
]:
amount, prefix, suffix, decimal_places = convert(
amount=tag_currency_data[field],
from_currency=from_currency,
to_currency=exchange_currency,
)
if amount is not None:
exchanged[field] = amount
if "currency" not in exchanged:
exchanged["currency"] = {
"prefix": prefix,
"suffix": suffix,
"decimal_places": decimal_places,
"code": exchange_currency.code,
"name": exchange_currency.name,
}
if exchanged:
tag_currency_data["exchanged"] = exchanged
result[category_id]["tags"][tag_key]["currencies"][
currency_id
] = tag_currency_data
return result

View File

@@ -168,6 +168,24 @@ def category_sum_by_currency(request):
@login_required
@require_http_methods(["GET"])
def category_overview(request):
if "view_type" in request.GET:
view_type = request.GET["view_type"]
request.session["insights_category_explorer_view_type"] = view_type
else:
view_type = request.session.get("insights_category_explorer_view_type", "table")
if "show_tags" in request.GET:
show_tags = request.GET["show_tags"] == "on"
request.session["insights_category_explorer_show_tags"] = show_tags
else:
show_tags = request.session.get("insights_category_explorer_show_tags", True)
if "showing" in request.GET:
showing = request.GET["showing"]
request.session["insights_category_explorer_showing"] = showing
else:
showing = request.session.get("insights_category_explorer_showing", "final")
# Get filtered transactions
transactions = get_transactions(request, include_silent=True)
@@ -178,7 +196,12 @@ def category_overview(request):
return render(
request,
"insights/fragments/category_overview/index.html",
{"total_table": total_table},
{
"total_table": total_table,
"view_type": view_type,
"show_tags": show_tags,
"showing": showing,
},
)

View File

@@ -6,6 +6,7 @@ from crispy_forms.layout import (
Row,
Column,
Field,
Div,
)
from django import forms
from django.db.models import Q
@@ -206,10 +207,21 @@ class TransactionForm(forms.ModelForm):
else:
self.fields["amount"].widget = ArbitraryDecimalDisplayNumberInput()
self.helper.layout.append(
FormActions(
Div(
NoClassSubmit(
"submit", _("Add"), css_class="btn btn-outline-primary w-100"
"submit", _("Add"), css_class="btn btn-outline-primary"
),
NoClassSubmit(
"submit_and_similar",
_("Save and add similar"),
css_class="btn btn-outline-primary",
),
NoClassSubmit(
"submit_and_another",
_("Save and add another"),
css_class="btn btn-outline-primary",
),
css_class="d-grid gap-2",
),
)

View File

@@ -43,16 +43,71 @@ def transaction_add(request):
year=year,
).date()
update = False
if request.method == "POST":
form = TransactionForm(request.POST)
if form.is_valid():
form.save()
saved_instance = form.save()
messages.success(request, _("Transaction added successfully"))
return HttpResponse(
status=204,
headers={"HX-Trigger": "updated, hide_offcanvas"},
)
if "submit" in request.POST:
return HttpResponse(
status=204,
headers={"HX-Trigger": "updated, hide_offcanvas"},
)
elif "submit_and_another" in request.POST:
form = TransactionForm(
initial={
"date": expected_date,
"type": transaction_type,
},
)
update = True
elif "submit_and_similar" in request.POST:
initial_data = {}
# Define fields to copy from the SAVED instance
direct_fields_to_copy = [
"account", # ForeignKey -> will copy the ID
"type", # ChoiceField -> will copy the value
"is_paid", # BooleanField -> will copy True/False
"date", # DateField -> will copy the date object
"reference_date", # DateField -> will copy the date object
"amount", # DecimalField -> will copy the decimal
"description", # CharField -> will copy the string
"notes", # TextField -> will copy the string
"category", # ForeignKey -> will copy the ID
]
m2m_fields_to_copy = [
"tags", # ManyToManyField -> will copy list of IDs
"entities", # ManyToManyField -> will copy list of IDs
]
# Copy direct fields from the saved instance
for field_name in direct_fields_to_copy:
value = getattr(saved_instance, field_name, None)
if value is not None:
# Handle ForeignKey: use the pk
if hasattr(value, "pk"):
initial_data[field_name] = value.pk
# Handle Date/DateTime/Decimal/Boolean/etc.: use the Python object directly
else:
initial_data[field_name] = (
value # This correctly handles date objects!
)
# Copy M2M fields: provide a list of related object pks
for field_name in m2m_fields_to_copy:
m2m_manager = getattr(saved_instance, field_name)
initial_data[field_name] = list(
m2m_manager.values_list("name", flat=True)
)
# Create a new form instance pre-filled with the correctly typed initial data
form = TransactionForm(initial=initial_data)
update = True # Signal HTMX to update the form area
else:
form = TransactionForm(
initial={
@@ -61,11 +116,15 @@ def transaction_add(request):
},
)
return render(
response = render(
request,
"transactions/fragments/add.html",
{"form": form},
)
if update:
response["HX-Trigger"] = "updated"
return response
@login_required

View File

@@ -20,6 +20,7 @@ from apps.users.forms import (
UserAddForm,
)
from apps.users.models import UserSettings
from apps.common.decorators.demo import disabled_on_demo
def logout_view(request):
@@ -168,6 +169,7 @@ def user_add(request):
@only_htmx
@htmx_login_required
@disabled_on_demo
@require_http_methods(["GET", "POST"])
def user_edit(request, pk):
user = get_object_or_404(get_user_model(), id=pk)

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-13 22:01+0000\n"
"POT-Creation-Date: 2025-04-21 18:45+0000\n"
"PO-Revision-Date: 2025-04-13 02:40+0000\n"
"Last-Translator: Prefill add-on <noreply-addon-prefill@weblate.org>\n"
"Language-Team: German <https://translations.herculino.com/projects/wygiwyh/"
@@ -27,10 +27,10 @@ msgstr "Gruppe Name"
#: apps/currencies/forms.py:53 apps/currencies/forms.py:91
#: apps/currencies/forms.py:142 apps/dca/forms.py:49 apps/dca/forms.py:224
#: apps/import_app/forms.py:34 apps/rules/forms.py:51 apps/rules/forms.py:93
#: apps/rules/forms.py:365 apps/transactions/forms.py:202
#: apps/transactions/forms.py:269 apps/transactions/forms.py:629
#: apps/transactions/forms.py:672 apps/transactions/forms.py:704
#: apps/transactions/forms.py:739 apps/transactions/forms.py:891
#: apps/rules/forms.py:365 apps/transactions/forms.py:203
#: apps/transactions/forms.py:281 apps/transactions/forms.py:641
#: apps/transactions/forms.py:684 apps/transactions/forms.py:716
#: apps/transactions/forms.py:751 apps/transactions/forms.py:903
#: apps/users/forms.py:210 apps/users/forms.py:372
msgid "Update"
msgstr "Aktualisierung"
@@ -40,10 +40,10 @@ msgstr "Aktualisierung"
#: apps/currencies/forms.py:99 apps/currencies/forms.py:150
#: apps/dca/forms.py:57 apps/dca/forms.py:232 apps/import_app/forms.py:42
#: apps/rules/forms.py:59 apps/rules/forms.py:101 apps/rules/forms.py:373
#: apps/transactions/forms.py:187 apps/transactions/forms.py:211
#: apps/transactions/forms.py:637 apps/transactions/forms.py:680
#: apps/transactions/forms.py:712 apps/transactions/forms.py:747
#: apps/transactions/forms.py:899 apps/users/forms.py:218
#: apps/transactions/forms.py:188 apps/transactions/forms.py:212
#: apps/transactions/forms.py:649 apps/transactions/forms.py:692
#: apps/transactions/forms.py:724 apps/transactions/forms.py:759
#: apps/transactions/forms.py:911 apps/users/forms.py:218
#: apps/users/forms.py:380 templates/account_groups/fragments/list.html:9
#: templates/accounts/fragments/list.html:9
#: templates/categories/fragments/list.html:9
@@ -74,12 +74,12 @@ msgstr "Neuer Saldo"
#: apps/accounts/forms.py:121 apps/dca/forms.py:85 apps/dca/forms.py:92
#: apps/insights/forms.py:118 apps/rules/forms.py:174 apps/rules/forms.py:189
#: apps/rules/models.py:38 apps/rules/models.py:286
#: apps/transactions/forms.py:40 apps/transactions/forms.py:303
#: apps/transactions/forms.py:310 apps/transactions/forms.py:510
#: apps/transactions/forms.py:771 apps/transactions/models.py:305
#: apps/transactions/forms.py:41 apps/transactions/forms.py:315
#: apps/transactions/forms.py:322 apps/transactions/forms.py:522
#: apps/transactions/forms.py:783 apps/transactions/models.py:305
#: apps/transactions/models.py:488 apps/transactions/models.py:688
#: templates/insights/fragments/category_overview/index.html:10
#: templates/insights/fragments/category_overview/index.html:215
#: templates/insights/fragments/category_overview/index.html:63
#: templates/insights/fragments/category_overview/index.html:420
msgid "Category"
msgstr "Kategorie"
@@ -87,12 +87,13 @@ msgstr "Kategorie"
#: apps/export_app/forms.py:44 apps/export_app/forms.py:135
#: apps/rules/forms.py:177 apps/rules/forms.py:186 apps/rules/models.py:39
#: apps/rules/models.py:290 apps/transactions/filters.py:74
#: apps/transactions/forms.py:48 apps/transactions/forms.py:319
#: apps/transactions/forms.py:327 apps/transactions/forms.py:503
#: apps/transactions/forms.py:764 apps/transactions/models.py:311
#: apps/transactions/forms.py:49 apps/transactions/forms.py:331
#: apps/transactions/forms.py:339 apps/transactions/forms.py:515
#: apps/transactions/forms.py:776 apps/transactions/models.py:311
#: apps/transactions/models.py:490 apps/transactions/models.py:692
#: templates/includes/navbar.html:108 templates/tags/fragments/list.html:5
#: templates/tags/pages/index.html:4
#: templates/includes/navbar.html:108
#: templates/insights/fragments/category_overview/index.html:35
#: templates/tags/fragments/list.html:5 templates/tags/pages/index.html:4
msgid "Tags"
msgstr "Tags"
@@ -164,8 +165,8 @@ msgstr ""
#: apps/accounts/models.py:70 apps/rules/forms.py:166 apps/rules/forms.py:179
#: apps/rules/models.py:30 apps/rules/models.py:242
#: apps/transactions/forms.py:60 apps/transactions/forms.py:495
#: apps/transactions/forms.py:756 apps/transactions/models.py:278
#: apps/transactions/forms.py:61 apps/transactions/forms.py:507
#: apps/transactions/forms.py:768 apps/transactions/models.py:278
#: apps/transactions/models.py:448 apps/transactions/models.py:670
msgid "Account"
msgstr "Konto"
@@ -461,7 +462,7 @@ msgstr "Suffix"
#: apps/currencies/forms.py:69 apps/dca/models.py:158 apps/rules/forms.py:169
#: apps/rules/forms.py:182 apps/rules/models.py:33 apps/rules/models.py:254
#: apps/transactions/forms.py:64 apps/transactions/forms.py:331
#: apps/transactions/forms.py:65 apps/transactions/forms.py:343
#: apps/transactions/models.py:288
#: templates/dca/fragments/strategy/details.html:52
#: templates/exchange_rates/fragments/table.html:10
@@ -672,11 +673,11 @@ msgstr "Dienst erfolgreich in die Warteschlange eingereiht"
msgid "Create transaction"
msgstr "Erstelle Transaktion"
#: apps/dca/forms.py:70 apps/transactions/forms.py:278
#: apps/dca/forms.py:70 apps/transactions/forms.py:290
msgid "From Account"
msgstr "Startkonto"
#: apps/dca/forms.py:76 apps/transactions/forms.py:283
#: apps/dca/forms.py:76 apps/transactions/forms.py:295
msgid "To Account"
msgstr "Zielkonto"
@@ -703,7 +704,7 @@ msgstr "Verknüpfe Transaktion"
msgid "You must provide an account."
msgstr "Du musst ein Konto angeben."
#: apps/dca/forms.py:312 apps/transactions/forms.py:445
#: apps/dca/forms.py:312 apps/transactions/forms.py:457
msgid "From and To accounts must be different."
msgstr "Start- und Zielkonten müssen unterschiedlich sein."
@@ -722,7 +723,7 @@ msgstr "Startwährung"
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:173
#: apps/rules/forms.py:188 apps/rules/models.py:37 apps/rules/models.py:270
#: apps/transactions/forms.py:347 apps/transactions/models.py:301
#: apps/transactions/forms.py:359 apps/transactions/models.py:301
#: apps/transactions/models.py:497 apps/transactions/models.py:698
msgid "Notes"
msgstr "Notizen"
@@ -803,8 +804,8 @@ msgstr "Kategorien"
#: apps/export_app/forms.py:50 apps/export_app/forms.py:136
#: apps/rules/forms.py:178 apps/rules/forms.py:187 apps/rules/models.py:40
#: apps/rules/models.py:282 apps/transactions/filters.py:81
#: apps/transactions/forms.py:56 apps/transactions/forms.py:518
#: apps/transactions/forms.py:779 apps/transactions/models.py:261
#: apps/transactions/forms.py:57 apps/transactions/forms.py:530
#: apps/transactions/forms.py:791 apps/transactions/models.py:261
#: apps/transactions/models.py:316 apps/transactions/models.py:493
#: apps/transactions/models.py:695 templates/entities/fragments/list.html:5
#: templates/entities/pages/index.html:4 templates/includes/navbar.html:110
@@ -974,9 +975,9 @@ msgstr "Vorgang erfolgreich gelöscht"
#: apps/insights/forms.py:119 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167
#: templates/insights/fragments/category_overview/index.html:19
#: templates/insights/fragments/category_overview/index.html:87
#: templates/insights/fragments/category_overview/index.html:116
#: templates/insights/fragments/category_overview/index.html:73
#: templates/insights/fragments/category_overview/index.html:285
#: templates/insights/fragments/category_overview/index.html:314
msgid "Uncategorized"
msgstr "Unkategorisiert"
@@ -1073,8 +1074,8 @@ msgid "Paid"
msgstr "Bezahlt"
#: apps/rules/forms.py:170 apps/rules/forms.py:183 apps/rules/models.py:34
#: apps/rules/models.py:258 apps/transactions/forms.py:68
#: apps/transactions/forms.py:334 apps/transactions/forms.py:524
#: apps/rules/models.py:258 apps/transactions/forms.py:69
#: apps/transactions/forms.py:346 apps/transactions/forms.py:536
#: apps/transactions/models.py:289 apps/transactions/models.py:471
#: apps/transactions/models.py:700
msgid "Reference Date"
@@ -1088,7 +1089,7 @@ msgstr "Betrag"
#: apps/rules/forms.py:172 apps/rules/forms.py:185 apps/rules/models.py:14
#: apps/rules/models.py:36 apps/rules/models.py:266
#: apps/transactions/forms.py:338 apps/transactions/models.py:299
#: apps/transactions/forms.py:350 apps/transactions/models.py:299
#: apps/transactions/models.py:455 apps/transactions/models.py:684
msgid "Description"
msgstr "Beschreibung"
@@ -1234,6 +1235,7 @@ msgstr ""
#: apps/transactions/filters.py:24 templates/cotton/transaction/item.html:21
#: templates/cotton/transaction/item.html:31 templates/includes/navbar.html:46
#: templates/insights/fragments/category_overview/index.html:46
#: templates/transactions/widgets/paid_toggle_button.html:8
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:12
msgid "Projected"
@@ -1267,40 +1269,48 @@ msgstr "Betrag Minimum"
msgid "Amount max"
msgstr "Betrag Maximum"
#: apps/transactions/forms.py:171
#: apps/transactions/forms.py:172
msgid "More"
msgstr "Mehr"
#: apps/transactions/forms.py:290
#: apps/transactions/forms.py:216
msgid "Save and add similar"
msgstr ""
#: apps/transactions/forms.py:221
msgid "Save and add another"
msgstr ""
#: apps/transactions/forms.py:302
msgid "From Amount"
msgstr "Startbetrag"
#: apps/transactions/forms.py:295
#: apps/transactions/forms.py:307
msgid "To Amount"
msgstr "Zielbetrag"
#: apps/transactions/forms.py:412
#: apps/transactions/forms.py:424
#: templates/cotton/ui/quick_transactions_buttons.html:40
msgid "Transfer"
msgstr "Transfer"
#: apps/transactions/forms.py:658
#: apps/transactions/forms.py:670
msgid "Tag name"
msgstr "Tagname"
#: apps/transactions/forms.py:690
#: apps/transactions/forms.py:702
msgid "Entity name"
msgstr "Entitätsname"
#: apps/transactions/forms.py:722
#: apps/transactions/forms.py:734
msgid "Category name"
msgstr "Kategoriename"
#: apps/transactions/forms.py:724
#: apps/transactions/forms.py:736
msgid "Muted categories won't count towards your monthly total"
msgstr "Ausgeblendete Kategorien zählen nicht zu deiner Monatsübersicht"
#: apps/transactions/forms.py:910
#: apps/transactions/forms.py:922
msgid "End date should be after the start date"
msgstr "Enddatum sollte hinter dem Startdatum liegen"
@@ -1353,7 +1363,7 @@ msgstr "Entität"
#: templates/calendar_view/fragments/list.html:52
#: templates/calendar_view/fragments/list.html:54
#: templates/cotton/ui/quick_transactions_buttons.html:10
#: templates/insights/fragments/category_overview/index.html:11
#: templates/insights/fragments/category_overview/index.html:64
#: templates/monthly_overview/fragments/monthly_summary.html:39
msgid "Income"
msgstr "Einnahme"
@@ -1364,7 +1374,7 @@ msgstr "Einnahme"
#: templates/calendar_view/fragments/list.html:56
#: templates/calendar_view/fragments/list.html:58
#: templates/cotton/ui/quick_transactions_buttons.html:18
#: templates/insights/fragments/category_overview/index.html:12
#: templates/insights/fragments/category_overview/index.html:65
msgid "Expense"
msgstr "Ausgabe"
@@ -1612,35 +1622,35 @@ msgstr "Tag erfolgreich aktualisiert"
msgid "Tag deleted successfully"
msgstr "Tag erfolgreich gelöscht"
#: apps/transactions/views/transactions.py:50
#: apps/transactions/views/transactions.py:89
#: apps/transactions/views/transactions.py:52
#: apps/transactions/views/transactions.py:148
msgid "Transaction added successfully"
msgstr "Transaktion erfolgreich hinzugefügt"
#: apps/transactions/views/transactions.py:123
#: apps/transactions/views/transactions.py:182
msgid "Transaction updated successfully"
msgstr "Transaktion erfolgreich aktualisiert"
#: apps/transactions/views/transactions.py:173
#: apps/transactions/views/transactions.py:232
#, python-format
msgid "%(count)s transaction updated successfully"
msgid_plural "%(count)s transactions updated successfully"
msgstr[0] "%(count)s Transaktion erfolgreich aktualisiert"
msgstr[1] "%(count)s Transaktionen erfolgreich aktualisiert"
#: apps/transactions/views/transactions.py:209
#: apps/transactions/views/transactions.py:268
msgid "Transaction duplicated successfully"
msgstr "Transaktion erfolgreich duplisiert"
#: apps/transactions/views/transactions.py:251
#: apps/transactions/views/transactions.py:310
msgid "Transaction deleted successfully"
msgstr "Transaktion erfolgreich gelöscht"
#: apps/transactions/views/transactions.py:269
#: apps/transactions/views/transactions.py:328
msgid "Transaction restored successfully"
msgstr "Transaktion erfolgreich wiederhergestellt"
#: apps/transactions/views/transactions.py:295
#: apps/transactions/views/transactions.py:354
msgid "Transfer added successfully"
msgstr "Transfer erfolgreich hinzugefügt"
@@ -1806,33 +1816,33 @@ msgstr "Zeitzone"
msgid "Start page"
msgstr "Startseite"
#: apps/users/views.py:67
#: apps/users/views.py:68
msgid "Transaction amounts are now hidden"
msgstr "Beträge sind nun versteckt"
#: apps/users/views.py:70
#: apps/users/views.py:71
msgid "Transaction amounts are now displayed"
msgstr "Beträge werden angezeigt"
#: apps/users/views.py:88
#: apps/users/views.py:89
msgid "Sounds are now muted"
msgstr "Sounds sind stummgeschaltet"
#: apps/users/views.py:91
#: apps/users/views.py:92
msgid "Sounds will now play"
msgstr "Sounds werden wiedergegeben"
#: apps/users/views.py:107
#: apps/users/views.py:108
msgid "Your settings have been updated"
msgstr "Deine Einstellungen wurden aktualisiert"
#: apps/users/views.py:151
#: apps/users/views.py:152
#, fuzzy
#| msgid "Rule added successfully"
msgid "Item added successfully"
msgstr "Regel erfolgreich hinzugefügt"
#: apps/users/views.py:182
#: apps/users/views.py:184
#, fuzzy
#| msgid "Rule updated successfully"
msgid "Item updated successfully"
@@ -2106,7 +2116,7 @@ msgid "Muted"
msgstr "Ausgeblendet"
#: templates/categories/fragments/table.html:75
#: templates/insights/fragments/category_overview/index.html:225
#: templates/insights/fragments/category_overview/index.html:430
msgid "No categories"
msgstr "Keine Kategorien"
@@ -2568,10 +2578,11 @@ msgid "Net Worth"
msgstr "Nettovermögen"
#: templates/includes/navbar.html:44
#: templates/insights/fragments/category_overview/index.html:50
msgid "Current"
msgstr "Aktuell"
#: templates/includes/navbar.html:50
#: templates/includes/navbar.html:50 templates/insights/pages/index.html:5
msgid "Insights"
msgstr "Einblicke"
@@ -2692,12 +2703,36 @@ msgstr "Einnahmen/Ausgaben nach Konto"
msgid "Income/Expense by Currency"
msgstr "Einnahmen/Ausgaben nach Währung"
#: templates/insights/fragments/category_overview/index.html:13
#: templates/insights/fragments/category_overview/index.html:14
msgid "Table"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:24
msgid "Bars"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:38
msgid ""
"Transaction amounts associated with multiple tags will be counted once for "
"each tag"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:54
#, fuzzy
#| msgid "final total"
msgid "Final total"
msgstr "Gesamtbilanz"
#: templates/insights/fragments/category_overview/index.html:66
#: templates/monthly_overview/fragments/monthly_summary.html:167
msgid "Total"
msgstr "Gesamt"
#: templates/insights/fragments/category_overview/index.html:202
#: templates/insights/fragments/category_overview/index.html:166
msgid "Untagged"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:407
#, fuzzy
#| msgid "final total"
msgid "Final Total"
@@ -2748,53 +2783,53 @@ msgstr "Von"
msgid "Percentage"
msgstr "Prozent"
#: templates/insights/pages/index.html:35
#: templates/insights/pages/index.html:37
msgid "Month"
msgstr "Monat"
#: templates/insights/pages/index.html:38
#: templates/insights/pages/index.html:40
#: templates/yearly_overview/pages/overview_by_account.html:61
#: templates/yearly_overview/pages/overview_by_currency.html:63
msgid "Year"
msgstr "Jahr"
#: templates/insights/pages/index.html:43
#: templates/insights/pages/index.html:45
msgid "Month Range"
msgstr "Monats-Zeitraum"
#: templates/insights/pages/index.html:48
#: templates/insights/pages/index.html:50
msgid "Year Range"
msgstr "Jahres-Zeitraum"
#: templates/insights/pages/index.html:53
#: templates/insights/pages/index.html:55
msgid "Date Range"
msgstr "Datums-Zeitraum"
#: templates/insights/pages/index.html:81
#: templates/insights/pages/index.html:83
msgid "Account Flow"
msgstr "Kontofluss"
#: templates/insights/pages/index.html:88
#: templates/insights/pages/index.html:90
msgid "Currency Flow"
msgstr "Währungsfluss"
#: templates/insights/pages/index.html:95
#: templates/insights/pages/index.html:97
msgid "Category Explorer"
msgstr "Kategorien-Explorer"
#: templates/insights/pages/index.html:102
#: templates/insights/pages/index.html:104
msgid "Categories Overview"
msgstr "Kategorien-Übersicht"
#: templates/insights/pages/index.html:109
#: templates/insights/pages/index.html:111
msgid "Late Transactions"
msgstr "Verspätete Transaktionen"
#: templates/insights/pages/index.html:115
#: templates/insights/pages/index.html:117
msgid "Latest Transactions"
msgstr "Letzte Transaktionen"
#: templates/insights/pages/index.html:121
#: templates/insights/pages/index.html:123
msgid "Emergency Fund"
msgstr "Notfall-Budget"
@@ -3207,6 +3242,11 @@ msgstr "Use the credentials below to login"
msgid "Yearly Overview"
msgstr "Jährliche Übersicht"
#, fuzzy
#~| msgid "No tags"
#~ msgid "Show tags"
#~ msgstr "Keine Tags"
#, fuzzy
#~| msgid "Management"
#~ msgid "Loan Payment"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-13 22:01+0000\n"
"POT-Creation-Date: 2025-04-21 18:45+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -26,10 +26,10 @@ msgstr ""
#: apps/currencies/forms.py:53 apps/currencies/forms.py:91
#: apps/currencies/forms.py:142 apps/dca/forms.py:49 apps/dca/forms.py:224
#: apps/import_app/forms.py:34 apps/rules/forms.py:51 apps/rules/forms.py:93
#: apps/rules/forms.py:365 apps/transactions/forms.py:202
#: apps/transactions/forms.py:269 apps/transactions/forms.py:629
#: apps/transactions/forms.py:672 apps/transactions/forms.py:704
#: apps/transactions/forms.py:739 apps/transactions/forms.py:891
#: apps/rules/forms.py:365 apps/transactions/forms.py:203
#: apps/transactions/forms.py:281 apps/transactions/forms.py:641
#: apps/transactions/forms.py:684 apps/transactions/forms.py:716
#: apps/transactions/forms.py:751 apps/transactions/forms.py:903
#: apps/users/forms.py:210 apps/users/forms.py:372
msgid "Update"
msgstr ""
@@ -39,10 +39,10 @@ msgstr ""
#: apps/currencies/forms.py:99 apps/currencies/forms.py:150
#: apps/dca/forms.py:57 apps/dca/forms.py:232 apps/import_app/forms.py:42
#: apps/rules/forms.py:59 apps/rules/forms.py:101 apps/rules/forms.py:373
#: apps/transactions/forms.py:187 apps/transactions/forms.py:211
#: apps/transactions/forms.py:637 apps/transactions/forms.py:680
#: apps/transactions/forms.py:712 apps/transactions/forms.py:747
#: apps/transactions/forms.py:899 apps/users/forms.py:218
#: apps/transactions/forms.py:188 apps/transactions/forms.py:212
#: apps/transactions/forms.py:649 apps/transactions/forms.py:692
#: apps/transactions/forms.py:724 apps/transactions/forms.py:759
#: apps/transactions/forms.py:911 apps/users/forms.py:218
#: apps/users/forms.py:380 templates/account_groups/fragments/list.html:9
#: templates/accounts/fragments/list.html:9
#: templates/categories/fragments/list.html:9
@@ -73,12 +73,12 @@ msgstr ""
#: apps/accounts/forms.py:121 apps/dca/forms.py:85 apps/dca/forms.py:92
#: apps/insights/forms.py:118 apps/rules/forms.py:174 apps/rules/forms.py:189
#: apps/rules/models.py:38 apps/rules/models.py:286
#: apps/transactions/forms.py:40 apps/transactions/forms.py:303
#: apps/transactions/forms.py:310 apps/transactions/forms.py:510
#: apps/transactions/forms.py:771 apps/transactions/models.py:305
#: apps/transactions/forms.py:41 apps/transactions/forms.py:315
#: apps/transactions/forms.py:322 apps/transactions/forms.py:522
#: apps/transactions/forms.py:783 apps/transactions/models.py:305
#: apps/transactions/models.py:488 apps/transactions/models.py:688
#: templates/insights/fragments/category_overview/index.html:10
#: templates/insights/fragments/category_overview/index.html:215
#: templates/insights/fragments/category_overview/index.html:63
#: templates/insights/fragments/category_overview/index.html:420
msgid "Category"
msgstr ""
@@ -86,12 +86,13 @@ msgstr ""
#: apps/export_app/forms.py:44 apps/export_app/forms.py:135
#: apps/rules/forms.py:177 apps/rules/forms.py:186 apps/rules/models.py:39
#: apps/rules/models.py:290 apps/transactions/filters.py:74
#: apps/transactions/forms.py:48 apps/transactions/forms.py:319
#: apps/transactions/forms.py:327 apps/transactions/forms.py:503
#: apps/transactions/forms.py:764 apps/transactions/models.py:311
#: apps/transactions/forms.py:49 apps/transactions/forms.py:331
#: apps/transactions/forms.py:339 apps/transactions/forms.py:515
#: apps/transactions/forms.py:776 apps/transactions/models.py:311
#: apps/transactions/models.py:490 apps/transactions/models.py:692
#: templates/includes/navbar.html:108 templates/tags/fragments/list.html:5
#: templates/tags/pages/index.html:4
#: templates/includes/navbar.html:108
#: templates/insights/fragments/category_overview/index.html:35
#: templates/tags/fragments/list.html:5 templates/tags/pages/index.html:4
msgid "Tags"
msgstr ""
@@ -160,8 +161,8 @@ msgstr ""
#: apps/accounts/models.py:70 apps/rules/forms.py:166 apps/rules/forms.py:179
#: apps/rules/models.py:30 apps/rules/models.py:242
#: apps/transactions/forms.py:60 apps/transactions/forms.py:495
#: apps/transactions/forms.py:756 apps/transactions/models.py:278
#: apps/transactions/forms.py:61 apps/transactions/forms.py:507
#: apps/transactions/forms.py:768 apps/transactions/models.py:278
#: apps/transactions/models.py:448 apps/transactions/models.py:670
msgid "Account"
msgstr ""
@@ -449,7 +450,7 @@ msgstr ""
#: apps/currencies/forms.py:69 apps/dca/models.py:158 apps/rules/forms.py:169
#: apps/rules/forms.py:182 apps/rules/models.py:33 apps/rules/models.py:254
#: apps/transactions/forms.py:64 apps/transactions/forms.py:331
#: apps/transactions/forms.py:65 apps/transactions/forms.py:343
#: apps/transactions/models.py:288
#: templates/dca/fragments/strategy/details.html:52
#: templates/exchange_rates/fragments/table.html:10
@@ -652,11 +653,11 @@ msgstr ""
msgid "Create transaction"
msgstr ""
#: apps/dca/forms.py:70 apps/transactions/forms.py:278
#: apps/dca/forms.py:70 apps/transactions/forms.py:290
msgid "From Account"
msgstr ""
#: apps/dca/forms.py:76 apps/transactions/forms.py:283
#: apps/dca/forms.py:76 apps/transactions/forms.py:295
msgid "To Account"
msgstr ""
@@ -681,7 +682,7 @@ msgstr ""
msgid "You must provide an account."
msgstr ""
#: apps/dca/forms.py:312 apps/transactions/forms.py:445
#: apps/dca/forms.py:312 apps/transactions/forms.py:457
msgid "From and To accounts must be different."
msgstr ""
@@ -700,7 +701,7 @@ msgstr ""
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:173
#: apps/rules/forms.py:188 apps/rules/models.py:37 apps/rules/models.py:270
#: apps/transactions/forms.py:347 apps/transactions/models.py:301
#: apps/transactions/forms.py:359 apps/transactions/models.py:301
#: apps/transactions/models.py:497 apps/transactions/models.py:698
msgid "Notes"
msgstr ""
@@ -781,8 +782,8 @@ msgstr ""
#: apps/export_app/forms.py:50 apps/export_app/forms.py:136
#: apps/rules/forms.py:178 apps/rules/forms.py:187 apps/rules/models.py:40
#: apps/rules/models.py:282 apps/transactions/filters.py:81
#: apps/transactions/forms.py:56 apps/transactions/forms.py:518
#: apps/transactions/forms.py:779 apps/transactions/models.py:261
#: apps/transactions/forms.py:57 apps/transactions/forms.py:530
#: apps/transactions/forms.py:791 apps/transactions/models.py:261
#: apps/transactions/models.py:316 apps/transactions/models.py:493
#: apps/transactions/models.py:695 templates/entities/fragments/list.html:5
#: templates/entities/pages/index.html:4 templates/includes/navbar.html:110
@@ -950,9 +951,9 @@ msgstr ""
#: apps/insights/forms.py:119 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167
#: templates/insights/fragments/category_overview/index.html:19
#: templates/insights/fragments/category_overview/index.html:87
#: templates/insights/fragments/category_overview/index.html:116
#: templates/insights/fragments/category_overview/index.html:73
#: templates/insights/fragments/category_overview/index.html:285
#: templates/insights/fragments/category_overview/index.html:314
msgid "Uncategorized"
msgstr ""
@@ -1049,8 +1050,8 @@ msgid "Paid"
msgstr ""
#: apps/rules/forms.py:170 apps/rules/forms.py:183 apps/rules/models.py:34
#: apps/rules/models.py:258 apps/transactions/forms.py:68
#: apps/transactions/forms.py:334 apps/transactions/forms.py:524
#: apps/rules/models.py:258 apps/transactions/forms.py:69
#: apps/transactions/forms.py:346 apps/transactions/forms.py:536
#: apps/transactions/models.py:289 apps/transactions/models.py:471
#: apps/transactions/models.py:700
msgid "Reference Date"
@@ -1064,7 +1065,7 @@ msgstr ""
#: apps/rules/forms.py:172 apps/rules/forms.py:185 apps/rules/models.py:14
#: apps/rules/models.py:36 apps/rules/models.py:266
#: apps/transactions/forms.py:338 apps/transactions/models.py:299
#: apps/transactions/forms.py:350 apps/transactions/models.py:299
#: apps/transactions/models.py:455 apps/transactions/models.py:684
msgid "Description"
msgstr ""
@@ -1203,6 +1204,7 @@ msgstr ""
#: apps/transactions/filters.py:24 templates/cotton/transaction/item.html:21
#: templates/cotton/transaction/item.html:31 templates/includes/navbar.html:46
#: templates/insights/fragments/category_overview/index.html:46
#: templates/transactions/widgets/paid_toggle_button.html:8
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:12
msgid "Projected"
@@ -1236,40 +1238,48 @@ msgstr ""
msgid "Amount max"
msgstr ""
#: apps/transactions/forms.py:171
#: apps/transactions/forms.py:172
msgid "More"
msgstr ""
#: apps/transactions/forms.py:290
#: apps/transactions/forms.py:216
msgid "Save and add similar"
msgstr ""
#: apps/transactions/forms.py:221
msgid "Save and add another"
msgstr ""
#: apps/transactions/forms.py:302
msgid "From Amount"
msgstr ""
#: apps/transactions/forms.py:295
#: apps/transactions/forms.py:307
msgid "To Amount"
msgstr ""
#: apps/transactions/forms.py:412
#: apps/transactions/forms.py:424
#: templates/cotton/ui/quick_transactions_buttons.html:40
msgid "Transfer"
msgstr ""
#: apps/transactions/forms.py:658
#: apps/transactions/forms.py:670
msgid "Tag name"
msgstr ""
#: apps/transactions/forms.py:690
#: apps/transactions/forms.py:702
msgid "Entity name"
msgstr ""
#: apps/transactions/forms.py:722
#: apps/transactions/forms.py:734
msgid "Category name"
msgstr ""
#: apps/transactions/forms.py:724
#: apps/transactions/forms.py:736
msgid "Muted categories won't count towards your monthly total"
msgstr ""
#: apps/transactions/forms.py:910
#: apps/transactions/forms.py:922
msgid "End date should be after the start date"
msgstr ""
@@ -1316,7 +1326,7 @@ msgstr ""
#: templates/calendar_view/fragments/list.html:52
#: templates/calendar_view/fragments/list.html:54
#: templates/cotton/ui/quick_transactions_buttons.html:10
#: templates/insights/fragments/category_overview/index.html:11
#: templates/insights/fragments/category_overview/index.html:64
#: templates/monthly_overview/fragments/monthly_summary.html:39
msgid "Income"
msgstr ""
@@ -1327,7 +1337,7 @@ msgstr ""
#: templates/calendar_view/fragments/list.html:56
#: templates/calendar_view/fragments/list.html:58
#: templates/cotton/ui/quick_transactions_buttons.html:18
#: templates/insights/fragments/category_overview/index.html:12
#: templates/insights/fragments/category_overview/index.html:65
msgid "Expense"
msgstr ""
@@ -1574,35 +1584,35 @@ msgstr ""
msgid "Tag deleted successfully"
msgstr ""
#: apps/transactions/views/transactions.py:50
#: apps/transactions/views/transactions.py:89
#: apps/transactions/views/transactions.py:52
#: apps/transactions/views/transactions.py:148
msgid "Transaction added successfully"
msgstr ""
#: apps/transactions/views/transactions.py:123
#: apps/transactions/views/transactions.py:182
msgid "Transaction updated successfully"
msgstr ""
#: apps/transactions/views/transactions.py:173
#: apps/transactions/views/transactions.py:232
#, python-format
msgid "%(count)s transaction updated successfully"
msgid_plural "%(count)s transactions updated successfully"
msgstr[0] ""
msgstr[1] ""
#: apps/transactions/views/transactions.py:209
#: apps/transactions/views/transactions.py:268
msgid "Transaction duplicated successfully"
msgstr ""
#: apps/transactions/views/transactions.py:251
#: apps/transactions/views/transactions.py:310
msgid "Transaction deleted successfully"
msgstr ""
#: apps/transactions/views/transactions.py:269
#: apps/transactions/views/transactions.py:328
msgid "Transaction restored successfully"
msgstr ""
#: apps/transactions/views/transactions.py:295
#: apps/transactions/views/transactions.py:354
msgid "Transfer added successfully"
msgstr ""
@@ -1764,31 +1774,31 @@ msgstr ""
msgid "Start page"
msgstr ""
#: apps/users/views.py:67
#: apps/users/views.py:68
msgid "Transaction amounts are now hidden"
msgstr ""
#: apps/users/views.py:70
#: apps/users/views.py:71
msgid "Transaction amounts are now displayed"
msgstr ""
#: apps/users/views.py:88
#: apps/users/views.py:89
msgid "Sounds are now muted"
msgstr ""
#: apps/users/views.py:91
#: apps/users/views.py:92
msgid "Sounds will now play"
msgstr ""
#: apps/users/views.py:107
#: apps/users/views.py:108
msgid "Your settings have been updated"
msgstr ""
#: apps/users/views.py:151
#: apps/users/views.py:152
msgid "Item added successfully"
msgstr ""
#: apps/users/views.py:182
#: apps/users/views.py:184
msgid "Item updated successfully"
msgstr ""
@@ -2060,7 +2070,7 @@ msgid "Muted"
msgstr ""
#: templates/categories/fragments/table.html:75
#: templates/insights/fragments/category_overview/index.html:225
#: templates/insights/fragments/category_overview/index.html:430
msgid "No categories"
msgstr ""
@@ -2519,10 +2529,11 @@ msgid "Net Worth"
msgstr ""
#: templates/includes/navbar.html:44
#: templates/insights/fragments/category_overview/index.html:50
msgid "Current"
msgstr ""
#: templates/includes/navbar.html:50
#: templates/includes/navbar.html:50 templates/insights/pages/index.html:5
msgid "Insights"
msgstr ""
@@ -2636,12 +2647,34 @@ msgstr ""
msgid "Income/Expense by Currency"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:13
#: templates/insights/fragments/category_overview/index.html:14
msgid "Table"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:24
msgid "Bars"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:38
msgid ""
"Transaction amounts associated with multiple tags will be counted once for "
"each tag"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:54
msgid "Final total"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:66
#: templates/monthly_overview/fragments/monthly_summary.html:167
msgid "Total"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:202
#: templates/insights/fragments/category_overview/index.html:166
msgid "Untagged"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:407
msgid "Final Total"
msgstr ""
@@ -2689,53 +2722,53 @@ msgstr ""
msgid "Percentage"
msgstr ""
#: templates/insights/pages/index.html:35
#: templates/insights/pages/index.html:37
msgid "Month"
msgstr ""
#: templates/insights/pages/index.html:38
#: templates/insights/pages/index.html:40
#: templates/yearly_overview/pages/overview_by_account.html:61
#: templates/yearly_overview/pages/overview_by_currency.html:63
msgid "Year"
msgstr ""
#: templates/insights/pages/index.html:43
#: templates/insights/pages/index.html:45
msgid "Month Range"
msgstr ""
#: templates/insights/pages/index.html:48
#: templates/insights/pages/index.html:50
msgid "Year Range"
msgstr ""
#: templates/insights/pages/index.html:53
#: templates/insights/pages/index.html:55
msgid "Date Range"
msgstr ""
#: templates/insights/pages/index.html:81
#: templates/insights/pages/index.html:83
msgid "Account Flow"
msgstr ""
#: templates/insights/pages/index.html:88
#: templates/insights/pages/index.html:90
msgid "Currency Flow"
msgstr ""
#: templates/insights/pages/index.html:95
#: templates/insights/pages/index.html:97
msgid "Category Explorer"
msgstr ""
#: templates/insights/pages/index.html:102
#: templates/insights/pages/index.html:104
msgid "Categories Overview"
msgstr ""
#: templates/insights/pages/index.html:109
#: templates/insights/pages/index.html:111
msgid "Late Transactions"
msgstr ""
#: templates/insights/pages/index.html:115
#: templates/insights/pages/index.html:117
msgid "Latest Transactions"
msgstr ""
#: templates/insights/pages/index.html:121
#: templates/insights/pages/index.html:123
msgid "Emergency Fund"
msgstr ""

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-13 22:01+0000\n"
"POT-Creation-Date: 2025-04-21 18:45+0000\n"
"PO-Revision-Date: 2025-04-13 02:40+0000\n"
"Last-Translator: Prefill add-on <noreply-addon-prefill@weblate.org>\n"
"Language-Team: Spanish <https://translations.herculino.com/projects/wygiwyh/"
@@ -28,10 +28,10 @@ msgstr "Group name"
#: apps/currencies/forms.py:53 apps/currencies/forms.py:91
#: apps/currencies/forms.py:142 apps/dca/forms.py:49 apps/dca/forms.py:224
#: apps/import_app/forms.py:34 apps/rules/forms.py:51 apps/rules/forms.py:93
#: apps/rules/forms.py:365 apps/transactions/forms.py:202
#: apps/transactions/forms.py:269 apps/transactions/forms.py:629
#: apps/transactions/forms.py:672 apps/transactions/forms.py:704
#: apps/transactions/forms.py:739 apps/transactions/forms.py:891
#: apps/rules/forms.py:365 apps/transactions/forms.py:203
#: apps/transactions/forms.py:281 apps/transactions/forms.py:641
#: apps/transactions/forms.py:684 apps/transactions/forms.py:716
#: apps/transactions/forms.py:751 apps/transactions/forms.py:903
#: apps/users/forms.py:210 apps/users/forms.py:372
#, fuzzy
msgid "Update"
@@ -42,10 +42,10 @@ msgstr "Update"
#: apps/currencies/forms.py:99 apps/currencies/forms.py:150
#: apps/dca/forms.py:57 apps/dca/forms.py:232 apps/import_app/forms.py:42
#: apps/rules/forms.py:59 apps/rules/forms.py:101 apps/rules/forms.py:373
#: apps/transactions/forms.py:187 apps/transactions/forms.py:211
#: apps/transactions/forms.py:637 apps/transactions/forms.py:680
#: apps/transactions/forms.py:712 apps/transactions/forms.py:747
#: apps/transactions/forms.py:899 apps/users/forms.py:218
#: apps/transactions/forms.py:188 apps/transactions/forms.py:212
#: apps/transactions/forms.py:649 apps/transactions/forms.py:692
#: apps/transactions/forms.py:724 apps/transactions/forms.py:759
#: apps/transactions/forms.py:911 apps/users/forms.py:218
#: apps/users/forms.py:380 templates/account_groups/fragments/list.html:9
#: templates/accounts/fragments/list.html:9
#: templates/categories/fragments/list.html:9
@@ -79,12 +79,12 @@ msgstr "New balance"
#: apps/accounts/forms.py:121 apps/dca/forms.py:85 apps/dca/forms.py:92
#: apps/insights/forms.py:118 apps/rules/forms.py:174 apps/rules/forms.py:189
#: apps/rules/models.py:38 apps/rules/models.py:286
#: apps/transactions/forms.py:40 apps/transactions/forms.py:303
#: apps/transactions/forms.py:310 apps/transactions/forms.py:510
#: apps/transactions/forms.py:771 apps/transactions/models.py:305
#: apps/transactions/forms.py:41 apps/transactions/forms.py:315
#: apps/transactions/forms.py:322 apps/transactions/forms.py:522
#: apps/transactions/forms.py:783 apps/transactions/models.py:305
#: apps/transactions/models.py:488 apps/transactions/models.py:688
#: templates/insights/fragments/category_overview/index.html:10
#: templates/insights/fragments/category_overview/index.html:215
#: templates/insights/fragments/category_overview/index.html:63
#: templates/insights/fragments/category_overview/index.html:420
#, fuzzy
msgid "Category"
msgstr "Category"
@@ -93,12 +93,13 @@ msgstr "Category"
#: apps/export_app/forms.py:44 apps/export_app/forms.py:135
#: apps/rules/forms.py:177 apps/rules/forms.py:186 apps/rules/models.py:39
#: apps/rules/models.py:290 apps/transactions/filters.py:74
#: apps/transactions/forms.py:48 apps/transactions/forms.py:319
#: apps/transactions/forms.py:327 apps/transactions/forms.py:503
#: apps/transactions/forms.py:764 apps/transactions/models.py:311
#: apps/transactions/forms.py:49 apps/transactions/forms.py:331
#: apps/transactions/forms.py:339 apps/transactions/forms.py:515
#: apps/transactions/forms.py:776 apps/transactions/models.py:311
#: apps/transactions/models.py:490 apps/transactions/models.py:692
#: templates/includes/navbar.html:108 templates/tags/fragments/list.html:5
#: templates/tags/pages/index.html:4
#: templates/includes/navbar.html:108
#: templates/insights/fragments/category_overview/index.html:35
#: templates/tags/fragments/list.html:5 templates/tags/pages/index.html:4
#, fuzzy
msgid "Tags"
msgstr "Tags"
@@ -179,8 +180,8 @@ msgstr "Archived accounts don't show up nor count towards your net worth"
#: apps/accounts/models.py:70 apps/rules/forms.py:166 apps/rules/forms.py:179
#: apps/rules/models.py:30 apps/rules/models.py:242
#: apps/transactions/forms.py:60 apps/transactions/forms.py:495
#: apps/transactions/forms.py:756 apps/transactions/models.py:278
#: apps/transactions/forms.py:61 apps/transactions/forms.py:507
#: apps/transactions/forms.py:768 apps/transactions/models.py:278
#: apps/transactions/models.py:448 apps/transactions/models.py:670
#, fuzzy
msgid "Account"
@@ -524,7 +525,7 @@ msgstr "Suffix"
#: apps/currencies/forms.py:69 apps/dca/models.py:158 apps/rules/forms.py:169
#: apps/rules/forms.py:182 apps/rules/models.py:33 apps/rules/models.py:254
#: apps/transactions/forms.py:64 apps/transactions/forms.py:331
#: apps/transactions/forms.py:65 apps/transactions/forms.py:343
#: apps/transactions/models.py:288
#: templates/dca/fragments/strategy/details.html:52
#: templates/exchange_rates/fragments/table.html:10
@@ -779,12 +780,12 @@ msgstr "Services queued successfully"
msgid "Create transaction"
msgstr "Create transaction"
#: apps/dca/forms.py:70 apps/transactions/forms.py:278
#: apps/dca/forms.py:70 apps/transactions/forms.py:290
#, fuzzy
msgid "From Account"
msgstr "From Account"
#: apps/dca/forms.py:76 apps/transactions/forms.py:283
#: apps/dca/forms.py:76 apps/transactions/forms.py:295
#, fuzzy
msgid "To Account"
msgstr "To Account"
@@ -815,7 +816,7 @@ msgstr "Link transaction"
msgid "You must provide an account."
msgstr "You must provide an account."
#: apps/dca/forms.py:312 apps/transactions/forms.py:445
#: apps/dca/forms.py:312 apps/transactions/forms.py:457
#, fuzzy
msgid "From and To accounts must be different."
msgstr "From and To accounts must be different."
@@ -837,7 +838,7 @@ msgstr "Payment Currency"
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:173
#: apps/rules/forms.py:188 apps/rules/models.py:37 apps/rules/models.py:270
#: apps/transactions/forms.py:347 apps/transactions/models.py:301
#: apps/transactions/forms.py:359 apps/transactions/models.py:301
#: apps/transactions/models.py:497 apps/transactions/models.py:698
#, fuzzy
msgid "Notes"
@@ -935,8 +936,8 @@ msgstr "Categories"
#: apps/export_app/forms.py:50 apps/export_app/forms.py:136
#: apps/rules/forms.py:178 apps/rules/forms.py:187 apps/rules/models.py:40
#: apps/rules/models.py:282 apps/transactions/filters.py:81
#: apps/transactions/forms.py:56 apps/transactions/forms.py:518
#: apps/transactions/forms.py:779 apps/transactions/models.py:261
#: apps/transactions/forms.py:57 apps/transactions/forms.py:530
#: apps/transactions/forms.py:791 apps/transactions/models.py:261
#: apps/transactions/models.py:316 apps/transactions/models.py:493
#: apps/transactions/models.py:695 templates/entities/fragments/list.html:5
#: templates/entities/pages/index.html:4 templates/includes/navbar.html:110
@@ -1139,9 +1140,9 @@ msgstr "Run deleted successfully"
#: apps/insights/forms.py:119 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167
#: templates/insights/fragments/category_overview/index.html:19
#: templates/insights/fragments/category_overview/index.html:87
#: templates/insights/fragments/category_overview/index.html:116
#: templates/insights/fragments/category_overview/index.html:73
#: templates/insights/fragments/category_overview/index.html:285
#: templates/insights/fragments/category_overview/index.html:314
#, fuzzy
msgid "Uncategorized"
msgstr "Uncategorized"
@@ -1254,8 +1255,8 @@ msgid "Paid"
msgstr "Paid"
#: apps/rules/forms.py:170 apps/rules/forms.py:183 apps/rules/models.py:34
#: apps/rules/models.py:258 apps/transactions/forms.py:68
#: apps/transactions/forms.py:334 apps/transactions/forms.py:524
#: apps/rules/models.py:258 apps/transactions/forms.py:69
#: apps/transactions/forms.py:346 apps/transactions/forms.py:536
#: apps/transactions/models.py:289 apps/transactions/models.py:471
#: apps/transactions/models.py:700
#, fuzzy
@@ -1271,7 +1272,7 @@ msgstr "Amount"
#: apps/rules/forms.py:172 apps/rules/forms.py:185 apps/rules/models.py:14
#: apps/rules/models.py:36 apps/rules/models.py:266
#: apps/transactions/forms.py:338 apps/transactions/models.py:299
#: apps/transactions/forms.py:350 apps/transactions/models.py:299
#: apps/transactions/models.py:455 apps/transactions/models.py:684
#, fuzzy
msgid "Description"
@@ -1445,6 +1446,7 @@ msgstr "Update or Create Transaction action deleted successfully"
#: apps/transactions/filters.py:24 templates/cotton/transaction/item.html:21
#: templates/cotton/transaction/item.html:31 templates/includes/navbar.html:46
#: templates/insights/fragments/category_overview/index.html:46
#: templates/transactions/widgets/paid_toggle_button.html:8
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:12
#, fuzzy
@@ -1486,48 +1488,56 @@ msgstr "Amount min"
msgid "Amount max"
msgstr "Amount max"
#: apps/transactions/forms.py:171
#: apps/transactions/forms.py:172
#, fuzzy
msgid "More"
msgstr "More"
#: apps/transactions/forms.py:290
#: apps/transactions/forms.py:216
msgid "Save and add similar"
msgstr ""
#: apps/transactions/forms.py:221
msgid "Save and add another"
msgstr ""
#: apps/transactions/forms.py:302
#, fuzzy
msgid "From Amount"
msgstr "From Amount"
#: apps/transactions/forms.py:295
#: apps/transactions/forms.py:307
#, fuzzy
msgid "To Amount"
msgstr "To Amount"
#: apps/transactions/forms.py:412
#: apps/transactions/forms.py:424
#: templates/cotton/ui/quick_transactions_buttons.html:40
#, fuzzy
msgid "Transfer"
msgstr "Transfer"
#: apps/transactions/forms.py:658
#: apps/transactions/forms.py:670
#, fuzzy
msgid "Tag name"
msgstr "Tag name"
#: apps/transactions/forms.py:690
#: apps/transactions/forms.py:702
#, fuzzy
msgid "Entity name"
msgstr "Entity name"
#: apps/transactions/forms.py:722
#: apps/transactions/forms.py:734
#, fuzzy
msgid "Category name"
msgstr "Category name"
#: apps/transactions/forms.py:724
#: apps/transactions/forms.py:736
#, fuzzy
msgid "Muted categories won't count towards your monthly total"
msgstr "Muted categories won't count towards your monthly total"
#: apps/transactions/forms.py:910
#: apps/transactions/forms.py:922
#, fuzzy
msgid "End date should be after the start date"
msgstr "End date should be after the start date"
@@ -1588,7 +1598,7 @@ msgstr "Entity"
#: templates/calendar_view/fragments/list.html:52
#: templates/calendar_view/fragments/list.html:54
#: templates/cotton/ui/quick_transactions_buttons.html:10
#: templates/insights/fragments/category_overview/index.html:11
#: templates/insights/fragments/category_overview/index.html:64
#: templates/monthly_overview/fragments/monthly_summary.html:39
#, fuzzy
msgid "Income"
@@ -1600,7 +1610,7 @@ msgstr "Income"
#: templates/calendar_view/fragments/list.html:56
#: templates/calendar_view/fragments/list.html:58
#: templates/cotton/ui/quick_transactions_buttons.html:18
#: templates/insights/fragments/category_overview/index.html:12
#: templates/insights/fragments/category_overview/index.html:65
#, fuzzy
msgid "Expense"
msgstr "Expense"
@@ -1897,40 +1907,40 @@ msgstr "Tag updated successfully"
msgid "Tag deleted successfully"
msgstr "Tag deleted successfully"
#: apps/transactions/views/transactions.py:50
#: apps/transactions/views/transactions.py:89
#: apps/transactions/views/transactions.py:52
#: apps/transactions/views/transactions.py:148
#, fuzzy
msgid "Transaction added successfully"
msgstr "Transaction added successfully"
#: apps/transactions/views/transactions.py:123
#: apps/transactions/views/transactions.py:182
#, fuzzy
msgid "Transaction updated successfully"
msgstr "Transaction updated successfully"
#: apps/transactions/views/transactions.py:173
#: apps/transactions/views/transactions.py:232
#, fuzzy, python-format
msgid "%(count)s transaction updated successfully"
msgid_plural "%(count)s transactions updated successfully"
msgstr[0] "%(count)s transaction updated successfully"
msgstr[1] "%(count)s transactions updated successfully"
#: apps/transactions/views/transactions.py:209
#: apps/transactions/views/transactions.py:268
#, fuzzy
msgid "Transaction duplicated successfully"
msgstr "Transaction duplicated successfully"
#: apps/transactions/views/transactions.py:251
#: apps/transactions/views/transactions.py:310
#, fuzzy
msgid "Transaction deleted successfully"
msgstr "Transaction deleted successfully"
#: apps/transactions/views/transactions.py:269
#: apps/transactions/views/transactions.py:328
#, fuzzy
msgid "Transaction restored successfully"
msgstr "Transaction restored successfully"
#: apps/transactions/views/transactions.py:295
#: apps/transactions/views/transactions.py:354
#, fuzzy
msgid "Transfer added successfully"
msgstr "Transfer added successfully"
@@ -2118,37 +2128,37 @@ msgstr "Time Zone"
msgid "Start page"
msgstr "Start page"
#: apps/users/views.py:67
#: apps/users/views.py:68
#, fuzzy
msgid "Transaction amounts are now hidden"
msgstr "Transaction amounts are now hidden"
#: apps/users/views.py:70
#: apps/users/views.py:71
#, fuzzy
msgid "Transaction amounts are now displayed"
msgstr "Transaction amounts are now displayed"
#: apps/users/views.py:88
#: apps/users/views.py:89
#, fuzzy
msgid "Sounds are now muted"
msgstr "Sounds are now muted"
#: apps/users/views.py:91
#: apps/users/views.py:92
#, fuzzy
msgid "Sounds will now play"
msgstr "Sounds will now play"
#: apps/users/views.py:107
#: apps/users/views.py:108
#, fuzzy
msgid "Your settings have been updated"
msgstr "Your settings have been updated"
#: apps/users/views.py:151
#: apps/users/views.py:152
#, fuzzy
msgid "Item added successfully"
msgstr "Rule added successfully"
#: apps/users/views.py:182
#: apps/users/views.py:184
#, fuzzy
msgid "Item updated successfully"
msgstr "Rule updated successfully"
@@ -2454,7 +2464,7 @@ msgid "Muted"
msgstr "Muted"
#: templates/categories/fragments/table.html:75
#: templates/insights/fragments/category_overview/index.html:225
#: templates/insights/fragments/category_overview/index.html:430
#, fuzzy
msgid "No categories"
msgstr "No categories"
@@ -3014,11 +3024,12 @@ msgid "Net Worth"
msgstr "Net Worth"
#: templates/includes/navbar.html:44
#: templates/insights/fragments/category_overview/index.html:50
#, fuzzy
msgid "Current"
msgstr "Current"
#: templates/includes/navbar.html:50
#: templates/includes/navbar.html:50 templates/insights/pages/index.html:5
#, fuzzy
msgid "Insights"
msgstr "Insights"
@@ -3157,13 +3168,36 @@ msgstr "Income/Expense by Account"
msgid "Income/Expense by Currency"
msgstr "Income/Expense by Currency"
#: templates/insights/fragments/category_overview/index.html:13
#: templates/insights/fragments/category_overview/index.html:14
msgid "Table"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:24
msgid "Bars"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:38
msgid ""
"Transaction amounts associated with multiple tags will be counted once for "
"each tag"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:54
#, fuzzy
msgid "Final total"
msgstr "final total"
#: templates/insights/fragments/category_overview/index.html:66
#: templates/monthly_overview/fragments/monthly_summary.html:167
#, fuzzy
msgid "Total"
msgstr "Total"
#: templates/insights/fragments/category_overview/index.html:202
#: templates/insights/fragments/category_overview/index.html:166
msgid "Untagged"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:407
#, fuzzy
msgid "Final Total"
msgstr "final total"
@@ -3223,64 +3257,64 @@ msgstr "From"
msgid "Percentage"
msgstr "Percentage"
#: templates/insights/pages/index.html:35
#: templates/insights/pages/index.html:37
#, fuzzy
msgid "Month"
msgstr "Month"
#: templates/insights/pages/index.html:38
#: templates/insights/pages/index.html:40
#: templates/yearly_overview/pages/overview_by_account.html:61
#: templates/yearly_overview/pages/overview_by_currency.html:63
#, fuzzy
msgid "Year"
msgstr "Year"
#: templates/insights/pages/index.html:43
#: templates/insights/pages/index.html:45
#, fuzzy
msgid "Month Range"
msgstr "Month Range"
#: templates/insights/pages/index.html:48
#: templates/insights/pages/index.html:50
#, fuzzy
msgid "Year Range"
msgstr "Year Range"
#: templates/insights/pages/index.html:53
#: templates/insights/pages/index.html:55
#, fuzzy
msgid "Date Range"
msgstr "Date Range"
#: templates/insights/pages/index.html:81
#: templates/insights/pages/index.html:83
#, fuzzy
msgid "Account Flow"
msgstr "Account Flow"
#: templates/insights/pages/index.html:88
#: templates/insights/pages/index.html:90
#, fuzzy
msgid "Currency Flow"
msgstr "Currency Flow"
#: templates/insights/pages/index.html:95
#: templates/insights/pages/index.html:97
#, fuzzy
msgid "Category Explorer"
msgstr "Category Explorer"
#: templates/insights/pages/index.html:102
#: templates/insights/pages/index.html:104
#, fuzzy
msgid "Categories Overview"
msgstr "Categories Overview"
#: templates/insights/pages/index.html:109
#: templates/insights/pages/index.html:111
#, fuzzy
msgid "Late Transactions"
msgstr "Late Transactions"
#: templates/insights/pages/index.html:115
#: templates/insights/pages/index.html:117
#, fuzzy
msgid "Latest Transactions"
msgstr "Latest Transactions"
#: templates/insights/pages/index.html:121
#: templates/insights/pages/index.html:123
#, fuzzy
msgid "Emergency Fund"
msgstr "Emergency Fund"
@@ -3767,3 +3801,7 @@ msgstr "Use the credentials below to login"
#, fuzzy
msgid "Yearly Overview"
msgstr "Yearly Overview"
#, fuzzy
#~ msgid "Show tags"
#~ msgstr "No tags"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-13 22:01+0000\n"
"POT-Creation-Date: 2025-04-21 18:45+0000\n"
"PO-Revision-Date: 2025-04-13 02:40+0000\n"
"Last-Translator: Prefill add-on <noreply-addon-prefill@weblate.org>\n"
"Language-Team: French <https://translations.herculino.com/projects/wygiwyh/"
@@ -27,10 +27,10 @@ msgstr "Nom de groupe"
#: apps/currencies/forms.py:53 apps/currencies/forms.py:91
#: apps/currencies/forms.py:142 apps/dca/forms.py:49 apps/dca/forms.py:224
#: apps/import_app/forms.py:34 apps/rules/forms.py:51 apps/rules/forms.py:93
#: apps/rules/forms.py:365 apps/transactions/forms.py:202
#: apps/transactions/forms.py:269 apps/transactions/forms.py:629
#: apps/transactions/forms.py:672 apps/transactions/forms.py:704
#: apps/transactions/forms.py:739 apps/transactions/forms.py:891
#: apps/rules/forms.py:365 apps/transactions/forms.py:203
#: apps/transactions/forms.py:281 apps/transactions/forms.py:641
#: apps/transactions/forms.py:684 apps/transactions/forms.py:716
#: apps/transactions/forms.py:751 apps/transactions/forms.py:903
#: apps/users/forms.py:210 apps/users/forms.py:372
msgid "Update"
msgstr "Mise à jour"
@@ -40,10 +40,10 @@ msgstr "Mise à jour"
#: apps/currencies/forms.py:99 apps/currencies/forms.py:150
#: apps/dca/forms.py:57 apps/dca/forms.py:232 apps/import_app/forms.py:42
#: apps/rules/forms.py:59 apps/rules/forms.py:101 apps/rules/forms.py:373
#: apps/transactions/forms.py:187 apps/transactions/forms.py:211
#: apps/transactions/forms.py:637 apps/transactions/forms.py:680
#: apps/transactions/forms.py:712 apps/transactions/forms.py:747
#: apps/transactions/forms.py:899 apps/users/forms.py:218
#: apps/transactions/forms.py:188 apps/transactions/forms.py:212
#: apps/transactions/forms.py:649 apps/transactions/forms.py:692
#: apps/transactions/forms.py:724 apps/transactions/forms.py:759
#: apps/transactions/forms.py:911 apps/users/forms.py:218
#: apps/users/forms.py:380 templates/account_groups/fragments/list.html:9
#: templates/accounts/fragments/list.html:9
#: templates/categories/fragments/list.html:9
@@ -74,12 +74,12 @@ msgstr "Nouveau solde"
#: apps/accounts/forms.py:121 apps/dca/forms.py:85 apps/dca/forms.py:92
#: apps/insights/forms.py:118 apps/rules/forms.py:174 apps/rules/forms.py:189
#: apps/rules/models.py:38 apps/rules/models.py:286
#: apps/transactions/forms.py:40 apps/transactions/forms.py:303
#: apps/transactions/forms.py:310 apps/transactions/forms.py:510
#: apps/transactions/forms.py:771 apps/transactions/models.py:305
#: apps/transactions/forms.py:41 apps/transactions/forms.py:315
#: apps/transactions/forms.py:322 apps/transactions/forms.py:522
#: apps/transactions/forms.py:783 apps/transactions/models.py:305
#: apps/transactions/models.py:488 apps/transactions/models.py:688
#: templates/insights/fragments/category_overview/index.html:10
#: templates/insights/fragments/category_overview/index.html:215
#: templates/insights/fragments/category_overview/index.html:63
#: templates/insights/fragments/category_overview/index.html:420
msgid "Category"
msgstr "Catégorie"
@@ -87,12 +87,13 @@ msgstr "Catégorie"
#: apps/export_app/forms.py:44 apps/export_app/forms.py:135
#: apps/rules/forms.py:177 apps/rules/forms.py:186 apps/rules/models.py:39
#: apps/rules/models.py:290 apps/transactions/filters.py:74
#: apps/transactions/forms.py:48 apps/transactions/forms.py:319
#: apps/transactions/forms.py:327 apps/transactions/forms.py:503
#: apps/transactions/forms.py:764 apps/transactions/models.py:311
#: apps/transactions/forms.py:49 apps/transactions/forms.py:331
#: apps/transactions/forms.py:339 apps/transactions/forms.py:515
#: apps/transactions/forms.py:776 apps/transactions/models.py:311
#: apps/transactions/models.py:490 apps/transactions/models.py:692
#: templates/includes/navbar.html:108 templates/tags/fragments/list.html:5
#: templates/tags/pages/index.html:4
#: templates/includes/navbar.html:108
#: templates/insights/fragments/category_overview/index.html:35
#: templates/tags/fragments/list.html:5 templates/tags/pages/index.html:4
msgid "Tags"
msgstr "Balises"
@@ -164,8 +165,8 @@ msgstr ""
#: apps/accounts/models.py:70 apps/rules/forms.py:166 apps/rules/forms.py:179
#: apps/rules/models.py:30 apps/rules/models.py:242
#: apps/transactions/forms.py:60 apps/transactions/forms.py:495
#: apps/transactions/forms.py:756 apps/transactions/models.py:278
#: apps/transactions/forms.py:61 apps/transactions/forms.py:507
#: apps/transactions/forms.py:768 apps/transactions/models.py:278
#: apps/transactions/models.py:448 apps/transactions/models.py:670
msgid "Account"
msgstr "Compte"
@@ -460,7 +461,7 @@ msgstr "Suffixe"
#: apps/currencies/forms.py:69 apps/dca/models.py:158 apps/rules/forms.py:169
#: apps/rules/forms.py:182 apps/rules/models.py:33 apps/rules/models.py:254
#: apps/transactions/forms.py:64 apps/transactions/forms.py:331
#: apps/transactions/forms.py:65 apps/transactions/forms.py:343
#: apps/transactions/models.py:288
#: templates/dca/fragments/strategy/details.html:52
#: templates/exchange_rates/fragments/table.html:10
@@ -671,11 +672,11 @@ msgstr "Services ajouté à la file avec succès"
msgid "Create transaction"
msgstr "Créer une transaction"
#: apps/dca/forms.py:70 apps/transactions/forms.py:278
#: apps/dca/forms.py:70 apps/transactions/forms.py:290
msgid "From Account"
msgstr "Compte originateur"
#: apps/dca/forms.py:76 apps/transactions/forms.py:283
#: apps/dca/forms.py:76 apps/transactions/forms.py:295
msgid "To Account"
msgstr "Compte bénéficiaire"
@@ -700,7 +701,7 @@ msgstr "Lié transaction"
msgid "You must provide an account."
msgstr "Vous devez fournir un compte."
#: apps/dca/forms.py:312 apps/transactions/forms.py:445
#: apps/dca/forms.py:312 apps/transactions/forms.py:457
msgid "From and To accounts must be different."
msgstr ""
"Le compte originateur et le compte bénéficiaire doivent être différent."
@@ -720,7 +721,7 @@ msgstr "Devise de paiement"
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:173
#: apps/rules/forms.py:188 apps/rules/models.py:37 apps/rules/models.py:270
#: apps/transactions/forms.py:347 apps/transactions/models.py:301
#: apps/transactions/forms.py:359 apps/transactions/models.py:301
#: apps/transactions/models.py:497 apps/transactions/models.py:698
msgid "Notes"
msgstr "Notes"
@@ -801,8 +802,8 @@ msgstr "Catégories"
#: apps/export_app/forms.py:50 apps/export_app/forms.py:136
#: apps/rules/forms.py:178 apps/rules/forms.py:187 apps/rules/models.py:40
#: apps/rules/models.py:282 apps/transactions/filters.py:81
#: apps/transactions/forms.py:56 apps/transactions/forms.py:518
#: apps/transactions/forms.py:779 apps/transactions/models.py:261
#: apps/transactions/forms.py:57 apps/transactions/forms.py:530
#: apps/transactions/forms.py:791 apps/transactions/models.py:261
#: apps/transactions/models.py:316 apps/transactions/models.py:493
#: apps/transactions/models.py:695 templates/entities/fragments/list.html:5
#: templates/entities/pages/index.html:4 templates/includes/navbar.html:110
@@ -983,9 +984,9 @@ msgstr "Run deleted successfully"
#: apps/insights/forms.py:119 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167
#: templates/insights/fragments/category_overview/index.html:19
#: templates/insights/fragments/category_overview/index.html:87
#: templates/insights/fragments/category_overview/index.html:116
#: templates/insights/fragments/category_overview/index.html:73
#: templates/insights/fragments/category_overview/index.html:285
#: templates/insights/fragments/category_overview/index.html:314
#, fuzzy
msgid "Uncategorized"
msgstr "Uncategorized"
@@ -1098,8 +1099,8 @@ msgid "Paid"
msgstr "Paid"
#: apps/rules/forms.py:170 apps/rules/forms.py:183 apps/rules/models.py:34
#: apps/rules/models.py:258 apps/transactions/forms.py:68
#: apps/transactions/forms.py:334 apps/transactions/forms.py:524
#: apps/rules/models.py:258 apps/transactions/forms.py:69
#: apps/transactions/forms.py:346 apps/transactions/forms.py:536
#: apps/transactions/models.py:289 apps/transactions/models.py:471
#: apps/transactions/models.py:700
#, fuzzy
@@ -1115,7 +1116,7 @@ msgstr "Amount"
#: apps/rules/forms.py:172 apps/rules/forms.py:185 apps/rules/models.py:14
#: apps/rules/models.py:36 apps/rules/models.py:266
#: apps/transactions/forms.py:338 apps/transactions/models.py:299
#: apps/transactions/forms.py:350 apps/transactions/models.py:299
#: apps/transactions/models.py:455 apps/transactions/models.py:684
#, fuzzy
msgid "Description"
@@ -1289,6 +1290,7 @@ msgstr "Update or Create Transaction action deleted successfully"
#: apps/transactions/filters.py:24 templates/cotton/transaction/item.html:21
#: templates/cotton/transaction/item.html:31 templates/includes/navbar.html:46
#: templates/insights/fragments/category_overview/index.html:46
#: templates/transactions/widgets/paid_toggle_button.html:8
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:12
#, fuzzy
@@ -1330,48 +1332,56 @@ msgstr "Amount min"
msgid "Amount max"
msgstr "Amount max"
#: apps/transactions/forms.py:171
#: apps/transactions/forms.py:172
#, fuzzy
msgid "More"
msgstr "More"
#: apps/transactions/forms.py:290
#: apps/transactions/forms.py:216
msgid "Save and add similar"
msgstr ""
#: apps/transactions/forms.py:221
msgid "Save and add another"
msgstr ""
#: apps/transactions/forms.py:302
#, fuzzy
msgid "From Amount"
msgstr "From Amount"
#: apps/transactions/forms.py:295
#: apps/transactions/forms.py:307
#, fuzzy
msgid "To Amount"
msgstr "To Amount"
#: apps/transactions/forms.py:412
#: apps/transactions/forms.py:424
#: templates/cotton/ui/quick_transactions_buttons.html:40
#, fuzzy
msgid "Transfer"
msgstr "Transfer"
#: apps/transactions/forms.py:658
#: apps/transactions/forms.py:670
#, fuzzy
msgid "Tag name"
msgstr "Tag name"
#: apps/transactions/forms.py:690
#: apps/transactions/forms.py:702
#, fuzzy
msgid "Entity name"
msgstr "Entity name"
#: apps/transactions/forms.py:722
#: apps/transactions/forms.py:734
#, fuzzy
msgid "Category name"
msgstr "Category name"
#: apps/transactions/forms.py:724
#: apps/transactions/forms.py:736
#, fuzzy
msgid "Muted categories won't count towards your monthly total"
msgstr "Muted categories won't count towards your monthly total"
#: apps/transactions/forms.py:910
#: apps/transactions/forms.py:922
#, fuzzy
msgid "End date should be after the start date"
msgstr "End date should be after the start date"
@@ -1432,7 +1442,7 @@ msgstr "Entity"
#: templates/calendar_view/fragments/list.html:52
#: templates/calendar_view/fragments/list.html:54
#: templates/cotton/ui/quick_transactions_buttons.html:10
#: templates/insights/fragments/category_overview/index.html:11
#: templates/insights/fragments/category_overview/index.html:64
#: templates/monthly_overview/fragments/monthly_summary.html:39
#, fuzzy
msgid "Income"
@@ -1444,7 +1454,7 @@ msgstr "Income"
#: templates/calendar_view/fragments/list.html:56
#: templates/calendar_view/fragments/list.html:58
#: templates/cotton/ui/quick_transactions_buttons.html:18
#: templates/insights/fragments/category_overview/index.html:12
#: templates/insights/fragments/category_overview/index.html:65
#, fuzzy
msgid "Expense"
msgstr "Expense"
@@ -1741,40 +1751,40 @@ msgstr "Tag updated successfully"
msgid "Tag deleted successfully"
msgstr "Tag deleted successfully"
#: apps/transactions/views/transactions.py:50
#: apps/transactions/views/transactions.py:89
#: apps/transactions/views/transactions.py:52
#: apps/transactions/views/transactions.py:148
#, fuzzy
msgid "Transaction added successfully"
msgstr "Transaction added successfully"
#: apps/transactions/views/transactions.py:123
#: apps/transactions/views/transactions.py:182
#, fuzzy
msgid "Transaction updated successfully"
msgstr "Transaction updated successfully"
#: apps/transactions/views/transactions.py:173
#: apps/transactions/views/transactions.py:232
#, fuzzy, python-format
msgid "%(count)s transaction updated successfully"
msgid_plural "%(count)s transactions updated successfully"
msgstr[0] "%(count)s transaction updated successfully"
msgstr[1] "%(count)s transactions updated successfully"
#: apps/transactions/views/transactions.py:209
#: apps/transactions/views/transactions.py:268
#, fuzzy
msgid "Transaction duplicated successfully"
msgstr "Transaction duplicated successfully"
#: apps/transactions/views/transactions.py:251
#: apps/transactions/views/transactions.py:310
#, fuzzy
msgid "Transaction deleted successfully"
msgstr "Transaction deleted successfully"
#: apps/transactions/views/transactions.py:269
#: apps/transactions/views/transactions.py:328
#, fuzzy
msgid "Transaction restored successfully"
msgstr "Transaction restored successfully"
#: apps/transactions/views/transactions.py:295
#: apps/transactions/views/transactions.py:354
#, fuzzy
msgid "Transfer added successfully"
msgstr "Transfer added successfully"
@@ -1962,37 +1972,37 @@ msgstr "Time Zone"
msgid "Start page"
msgstr "Start page"
#: apps/users/views.py:67
#: apps/users/views.py:68
#, fuzzy
msgid "Transaction amounts are now hidden"
msgstr "Transaction amounts are now hidden"
#: apps/users/views.py:70
#: apps/users/views.py:71
#, fuzzy
msgid "Transaction amounts are now displayed"
msgstr "Transaction amounts are now displayed"
#: apps/users/views.py:88
#: apps/users/views.py:89
#, fuzzy
msgid "Sounds are now muted"
msgstr "Sounds are now muted"
#: apps/users/views.py:91
#: apps/users/views.py:92
#, fuzzy
msgid "Sounds will now play"
msgstr "Sounds will now play"
#: apps/users/views.py:107
#: apps/users/views.py:108
#, fuzzy
msgid "Your settings have been updated"
msgstr "Your settings have been updated"
#: apps/users/views.py:151
#: apps/users/views.py:152
#, fuzzy
msgid "Item added successfully"
msgstr "Rule added successfully"
#: apps/users/views.py:182
#: apps/users/views.py:184
#, fuzzy
msgid "Item updated successfully"
msgstr "Rule updated successfully"
@@ -2298,7 +2308,7 @@ msgid "Muted"
msgstr "Muted"
#: templates/categories/fragments/table.html:75
#: templates/insights/fragments/category_overview/index.html:225
#: templates/insights/fragments/category_overview/index.html:430
#, fuzzy
msgid "No categories"
msgstr "No categories"
@@ -2858,11 +2868,12 @@ msgid "Net Worth"
msgstr "Net Worth"
#: templates/includes/navbar.html:44
#: templates/insights/fragments/category_overview/index.html:50
#, fuzzy
msgid "Current"
msgstr "Current"
#: templates/includes/navbar.html:50
#: templates/includes/navbar.html:50 templates/insights/pages/index.html:5
#, fuzzy
msgid "Insights"
msgstr "Insights"
@@ -3001,13 +3012,36 @@ msgstr "Income/Expense by Account"
msgid "Income/Expense by Currency"
msgstr "Income/Expense by Currency"
#: templates/insights/fragments/category_overview/index.html:13
#: templates/insights/fragments/category_overview/index.html:14
msgid "Table"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:24
msgid "Bars"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:38
msgid ""
"Transaction amounts associated with multiple tags will be counted once for "
"each tag"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:54
#, fuzzy
msgid "Final total"
msgstr "final total"
#: templates/insights/fragments/category_overview/index.html:66
#: templates/monthly_overview/fragments/monthly_summary.html:167
#, fuzzy
msgid "Total"
msgstr "Total"
#: templates/insights/fragments/category_overview/index.html:202
#: templates/insights/fragments/category_overview/index.html:166
msgid "Untagged"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:407
#, fuzzy
msgid "Final Total"
msgstr "final total"
@@ -3067,64 +3101,64 @@ msgstr "From"
msgid "Percentage"
msgstr "Percentage"
#: templates/insights/pages/index.html:35
#: templates/insights/pages/index.html:37
#, fuzzy
msgid "Month"
msgstr "Month"
#: templates/insights/pages/index.html:38
#: templates/insights/pages/index.html:40
#: templates/yearly_overview/pages/overview_by_account.html:61
#: templates/yearly_overview/pages/overview_by_currency.html:63
#, fuzzy
msgid "Year"
msgstr "Year"
#: templates/insights/pages/index.html:43
#: templates/insights/pages/index.html:45
#, fuzzy
msgid "Month Range"
msgstr "Month Range"
#: templates/insights/pages/index.html:48
#: templates/insights/pages/index.html:50
#, fuzzy
msgid "Year Range"
msgstr "Year Range"
#: templates/insights/pages/index.html:53
#: templates/insights/pages/index.html:55
#, fuzzy
msgid "Date Range"
msgstr "Date Range"
#: templates/insights/pages/index.html:81
#: templates/insights/pages/index.html:83
#, fuzzy
msgid "Account Flow"
msgstr "Account Flow"
#: templates/insights/pages/index.html:88
#: templates/insights/pages/index.html:90
#, fuzzy
msgid "Currency Flow"
msgstr "Currency Flow"
#: templates/insights/pages/index.html:95
#: templates/insights/pages/index.html:97
#, fuzzy
msgid "Category Explorer"
msgstr "Category Explorer"
#: templates/insights/pages/index.html:102
#: templates/insights/pages/index.html:104
#, fuzzy
msgid "Categories Overview"
msgstr "Categories Overview"
#: templates/insights/pages/index.html:109
#: templates/insights/pages/index.html:111
#, fuzzy
msgid "Late Transactions"
msgstr "Late Transactions"
#: templates/insights/pages/index.html:115
#: templates/insights/pages/index.html:117
#, fuzzy
msgid "Latest Transactions"
msgstr "Latest Transactions"
#: templates/insights/pages/index.html:121
#: templates/insights/pages/index.html:123
#, fuzzy
msgid "Emergency Fund"
msgstr "Emergency Fund"
@@ -3612,3 +3646,7 @@ msgstr "Use the credentials below to login"
#, fuzzy
msgid "Yearly Overview"
msgstr "Yearly Overview"
#, fuzzy
#~ msgid "Show tags"
#~ msgstr "No tags"

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-13 22:01+0000\n"
"PO-Revision-Date: 2025-04-13 11:16+0000\n"
"POT-Creation-Date: 2025-04-21 18:45+0000\n"
"PO-Revision-Date: 2025-04-14 08:16+0000\n"
"Last-Translator: Dimitri Decrock <dj.flashpower@gmail.com>\n"
"Language-Team: Dutch <https://translations.herculino.com/projects/wygiwyh/"
"app/nl/>\n"
@@ -27,10 +27,10 @@ msgstr "Groepsnaam"
#: apps/currencies/forms.py:53 apps/currencies/forms.py:91
#: apps/currencies/forms.py:142 apps/dca/forms.py:49 apps/dca/forms.py:224
#: apps/import_app/forms.py:34 apps/rules/forms.py:51 apps/rules/forms.py:93
#: apps/rules/forms.py:365 apps/transactions/forms.py:202
#: apps/transactions/forms.py:269 apps/transactions/forms.py:629
#: apps/transactions/forms.py:672 apps/transactions/forms.py:704
#: apps/transactions/forms.py:739 apps/transactions/forms.py:891
#: apps/rules/forms.py:365 apps/transactions/forms.py:203
#: apps/transactions/forms.py:281 apps/transactions/forms.py:641
#: apps/transactions/forms.py:684 apps/transactions/forms.py:716
#: apps/transactions/forms.py:751 apps/transactions/forms.py:903
#: apps/users/forms.py:210 apps/users/forms.py:372
msgid "Update"
msgstr "Bijwerken"
@@ -40,10 +40,10 @@ msgstr "Bijwerken"
#: apps/currencies/forms.py:99 apps/currencies/forms.py:150
#: apps/dca/forms.py:57 apps/dca/forms.py:232 apps/import_app/forms.py:42
#: apps/rules/forms.py:59 apps/rules/forms.py:101 apps/rules/forms.py:373
#: apps/transactions/forms.py:187 apps/transactions/forms.py:211
#: apps/transactions/forms.py:637 apps/transactions/forms.py:680
#: apps/transactions/forms.py:712 apps/transactions/forms.py:747
#: apps/transactions/forms.py:899 apps/users/forms.py:218
#: apps/transactions/forms.py:188 apps/transactions/forms.py:212
#: apps/transactions/forms.py:649 apps/transactions/forms.py:692
#: apps/transactions/forms.py:724 apps/transactions/forms.py:759
#: apps/transactions/forms.py:911 apps/users/forms.py:218
#: apps/users/forms.py:380 templates/account_groups/fragments/list.html:9
#: templates/accounts/fragments/list.html:9
#: templates/categories/fragments/list.html:9
@@ -74,12 +74,12 @@ msgstr "Nieuw saldo"
#: apps/accounts/forms.py:121 apps/dca/forms.py:85 apps/dca/forms.py:92
#: apps/insights/forms.py:118 apps/rules/forms.py:174 apps/rules/forms.py:189
#: apps/rules/models.py:38 apps/rules/models.py:286
#: apps/transactions/forms.py:40 apps/transactions/forms.py:303
#: apps/transactions/forms.py:310 apps/transactions/forms.py:510
#: apps/transactions/forms.py:771 apps/transactions/models.py:305
#: apps/transactions/forms.py:41 apps/transactions/forms.py:315
#: apps/transactions/forms.py:322 apps/transactions/forms.py:522
#: apps/transactions/forms.py:783 apps/transactions/models.py:305
#: apps/transactions/models.py:488 apps/transactions/models.py:688
#: templates/insights/fragments/category_overview/index.html:10
#: templates/insights/fragments/category_overview/index.html:215
#: templates/insights/fragments/category_overview/index.html:63
#: templates/insights/fragments/category_overview/index.html:420
msgid "Category"
msgstr "Categorie"
@@ -87,12 +87,13 @@ msgstr "Categorie"
#: apps/export_app/forms.py:44 apps/export_app/forms.py:135
#: apps/rules/forms.py:177 apps/rules/forms.py:186 apps/rules/models.py:39
#: apps/rules/models.py:290 apps/transactions/filters.py:74
#: apps/transactions/forms.py:48 apps/transactions/forms.py:319
#: apps/transactions/forms.py:327 apps/transactions/forms.py:503
#: apps/transactions/forms.py:764 apps/transactions/models.py:311
#: apps/transactions/forms.py:49 apps/transactions/forms.py:331
#: apps/transactions/forms.py:339 apps/transactions/forms.py:515
#: apps/transactions/forms.py:776 apps/transactions/models.py:311
#: apps/transactions/models.py:490 apps/transactions/models.py:692
#: templates/includes/navbar.html:108 templates/tags/fragments/list.html:5
#: templates/tags/pages/index.html:4
#: templates/includes/navbar.html:108
#: templates/insights/fragments/category_overview/index.html:35
#: templates/tags/fragments/list.html:5 templates/tags/pages/index.html:4
msgid "Tags"
msgstr "Labels"
@@ -165,8 +166,8 @@ msgstr ""
#: apps/accounts/models.py:70 apps/rules/forms.py:166 apps/rules/forms.py:179
#: apps/rules/models.py:30 apps/rules/models.py:242
#: apps/transactions/forms.py:60 apps/transactions/forms.py:495
#: apps/transactions/forms.py:756 apps/transactions/models.py:278
#: apps/transactions/forms.py:61 apps/transactions/forms.py:507
#: apps/transactions/forms.py:768 apps/transactions/models.py:278
#: apps/transactions/models.py:448 apps/transactions/models.py:670
msgid "Account"
msgstr "Rekening"
@@ -460,7 +461,7 @@ msgstr "Achtervoegsel"
#: apps/currencies/forms.py:69 apps/dca/models.py:158 apps/rules/forms.py:169
#: apps/rules/forms.py:182 apps/rules/models.py:33 apps/rules/models.py:254
#: apps/transactions/forms.py:64 apps/transactions/forms.py:331
#: apps/transactions/forms.py:65 apps/transactions/forms.py:343
#: apps/transactions/models.py:288
#: templates/dca/fragments/strategy/details.html:52
#: templates/exchange_rates/fragments/table.html:10
@@ -672,11 +673,11 @@ msgstr "Diensten succesvol in de wachtrij geplaatst"
msgid "Create transaction"
msgstr "Maak verrichtingen"
#: apps/dca/forms.py:70 apps/transactions/forms.py:278
#: apps/dca/forms.py:70 apps/transactions/forms.py:290
msgid "From Account"
msgstr "Van rekening"
#: apps/dca/forms.py:76 apps/transactions/forms.py:283
#: apps/dca/forms.py:76 apps/transactions/forms.py:295
msgid "To Account"
msgstr "Naar rekening"
@@ -702,7 +703,7 @@ msgstr "Koppel verrichting"
msgid "You must provide an account."
msgstr "Je moet een account opgeven."
#: apps/dca/forms.py:312 apps/transactions/forms.py:445
#: apps/dca/forms.py:312 apps/transactions/forms.py:457
msgid "From and To accounts must be different."
msgstr "Van en Naar rekening moeten verschillend zijn."
@@ -721,7 +722,7 @@ msgstr "Betaal Munteenheid"
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:173
#: apps/rules/forms.py:188 apps/rules/models.py:37 apps/rules/models.py:270
#: apps/transactions/forms.py:347 apps/transactions/models.py:301
#: apps/transactions/forms.py:359 apps/transactions/models.py:301
#: apps/transactions/models.py:497 apps/transactions/models.py:698
msgid "Notes"
msgstr "Opmerkingen"
@@ -802,8 +803,8 @@ msgstr "Categorieën"
#: apps/export_app/forms.py:50 apps/export_app/forms.py:136
#: apps/rules/forms.py:178 apps/rules/forms.py:187 apps/rules/models.py:40
#: apps/rules/models.py:282 apps/transactions/filters.py:81
#: apps/transactions/forms.py:56 apps/transactions/forms.py:518
#: apps/transactions/forms.py:779 apps/transactions/models.py:261
#: apps/transactions/forms.py:57 apps/transactions/forms.py:530
#: apps/transactions/forms.py:791 apps/transactions/models.py:261
#: apps/transactions/models.py:316 apps/transactions/models.py:493
#: apps/transactions/models.py:695 templates/entities/fragments/list.html:5
#: templates/entities/pages/index.html:4 templates/includes/navbar.html:110
@@ -973,9 +974,9 @@ msgstr "Run met succes verwijderd"
#: apps/insights/forms.py:119 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167
#: templates/insights/fragments/category_overview/index.html:19
#: templates/insights/fragments/category_overview/index.html:87
#: templates/insights/fragments/category_overview/index.html:116
#: templates/insights/fragments/category_overview/index.html:73
#: templates/insights/fragments/category_overview/index.html:285
#: templates/insights/fragments/category_overview/index.html:314
msgid "Uncategorized"
msgstr "Ongecategoriseerd"
@@ -1072,8 +1073,8 @@ msgid "Paid"
msgstr "Betaald"
#: apps/rules/forms.py:170 apps/rules/forms.py:183 apps/rules/models.py:34
#: apps/rules/models.py:258 apps/transactions/forms.py:68
#: apps/transactions/forms.py:334 apps/transactions/forms.py:524
#: apps/rules/models.py:258 apps/transactions/forms.py:69
#: apps/transactions/forms.py:346 apps/transactions/forms.py:536
#: apps/transactions/models.py:289 apps/transactions/models.py:471
#: apps/transactions/models.py:700
msgid "Reference Date"
@@ -1087,7 +1088,7 @@ msgstr "Bedrag"
#: apps/rules/forms.py:172 apps/rules/forms.py:185 apps/rules/models.py:14
#: apps/rules/models.py:36 apps/rules/models.py:266
#: apps/transactions/forms.py:338 apps/transactions/models.py:299
#: apps/transactions/forms.py:350 apps/transactions/models.py:299
#: apps/transactions/models.py:455 apps/transactions/models.py:684
msgid "Description"
msgstr "Beschrijving"
@@ -1228,6 +1229,7 @@ msgstr "Verrichting Bijwerken Of Maken succesvol verwijderd"
#: apps/transactions/filters.py:24 templates/cotton/transaction/item.html:21
#: templates/cotton/transaction/item.html:31 templates/includes/navbar.html:46
#: templates/insights/fragments/category_overview/index.html:46
#: templates/transactions/widgets/paid_toggle_button.html:8
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:12
msgid "Projected"
@@ -1261,40 +1263,48 @@ msgstr "Minimum bedrag"
msgid "Amount max"
msgstr "Maximaal bedrag"
#: apps/transactions/forms.py:171
#: apps/transactions/forms.py:172
msgid "More"
msgstr "Meer"
#: apps/transactions/forms.py:290
#: apps/transactions/forms.py:216
msgid "Save and add similar"
msgstr ""
#: apps/transactions/forms.py:221
msgid "Save and add another"
msgstr ""
#: apps/transactions/forms.py:302
msgid "From Amount"
msgstr "Van Bedrag"
#: apps/transactions/forms.py:295
#: apps/transactions/forms.py:307
msgid "To Amount"
msgstr "Naar Bedrag"
#: apps/transactions/forms.py:412
#: apps/transactions/forms.py:424
#: templates/cotton/ui/quick_transactions_buttons.html:40
msgid "Transfer"
msgstr "Overschrijving"
#: apps/transactions/forms.py:658
#: apps/transactions/forms.py:670
msgid "Tag name"
msgstr "Labelnaam"
#: apps/transactions/forms.py:690
#: apps/transactions/forms.py:702
msgid "Entity name"
msgstr "Naam van bedrijf"
#: apps/transactions/forms.py:722
#: apps/transactions/forms.py:734
msgid "Category name"
msgstr "Naam van categorie"
#: apps/transactions/forms.py:724
#: apps/transactions/forms.py:736
msgid "Muted categories won't count towards your monthly total"
msgstr "Gedempte categorieën tellen niet mee voor je maandtotaal"
#: apps/transactions/forms.py:910
#: apps/transactions/forms.py:922
msgid "End date should be after the start date"
msgstr "De einddatum moet na de begindatum vallen"
@@ -1347,7 +1357,7 @@ msgstr "Bedrijf"
#: templates/calendar_view/fragments/list.html:52
#: templates/calendar_view/fragments/list.html:54
#: templates/cotton/ui/quick_transactions_buttons.html:10
#: templates/insights/fragments/category_overview/index.html:11
#: templates/insights/fragments/category_overview/index.html:64
#: templates/monthly_overview/fragments/monthly_summary.html:39
msgid "Income"
msgstr "Ontvangsten Transactie"
@@ -1358,7 +1368,7 @@ msgstr "Ontvangsten Transactie"
#: templates/calendar_view/fragments/list.html:56
#: templates/calendar_view/fragments/list.html:58
#: templates/cotton/ui/quick_transactions_buttons.html:18
#: templates/insights/fragments/category_overview/index.html:12
#: templates/insights/fragments/category_overview/index.html:65
msgid "Expense"
msgstr "Uitgave"
@@ -1605,35 +1615,35 @@ msgstr "Label succesvol bijgewerkt"
msgid "Tag deleted successfully"
msgstr "Label succesvol verwijderd"
#: apps/transactions/views/transactions.py:50
#: apps/transactions/views/transactions.py:89
#: apps/transactions/views/transactions.py:52
#: apps/transactions/views/transactions.py:148
msgid "Transaction added successfully"
msgstr "Verrichting succesvol toegevoegd"
#: apps/transactions/views/transactions.py:123
#: apps/transactions/views/transactions.py:182
msgid "Transaction updated successfully"
msgstr "Verrichting succesvol bijgewerkt"
#: apps/transactions/views/transactions.py:173
#: apps/transactions/views/transactions.py:232
#, python-format
msgid "%(count)s transaction updated successfully"
msgid_plural "%(count)s transactions updated successfully"
msgstr[0] "%(count)s verrichting succesvol bijgewerkt"
msgstr[1] "%(count)s verrichtingen succesvol bijgewerkt"
#: apps/transactions/views/transactions.py:209
#: apps/transactions/views/transactions.py:268
msgid "Transaction duplicated successfully"
msgstr "Verrichting succesvol gedupliceerd"
#: apps/transactions/views/transactions.py:251
#: apps/transactions/views/transactions.py:310
msgid "Transaction deleted successfully"
msgstr "Verrichting succesvol verwijderd"
#: apps/transactions/views/transactions.py:269
#: apps/transactions/views/transactions.py:328
msgid "Transaction restored successfully"
msgstr "Verrichting succesvol hersteld"
#: apps/transactions/views/transactions.py:295
#: apps/transactions/views/transactions.py:354
msgid "Transfer added successfully"
msgstr "Transactie succesvol toegevoegd"
@@ -1703,64 +1713,64 @@ msgstr ""
"Overweeg om WYGIWYH te helpen vertalen naar jouw taal op %(translation_link)s"
#: apps/users/forms.py:150
#, fuzzy
#| msgid "Password"
msgid "New Password"
msgstr "Wachtwoord"
msgstr "Nieuw Wachtwoord"
#: apps/users/forms.py:153
msgid "Leave blank to keep the current password."
msgstr ""
msgstr "Laat leeg om het huidige wachtwoord te behouden."
#: apps/users/forms.py:156
msgid "Confirm New Password"
msgstr ""
msgstr "Bevestig Nieuw Wachtwoord"
#: apps/users/forms.py:168 apps/users/forms.py:329
msgid ""
"Designates whether this user should be treated as active. Unselect this "
"instead of deleting accounts."
msgstr ""
"Geeft aan of deze gebruiker als actief moet worden behandeld. Deselecteer "
"dit in plaats van accounts te verwijderen."
#: apps/users/forms.py:171 apps/users/forms.py:332
msgid ""
"Designates that this user has all permissions without explicitly assigning "
"them."
msgstr ""
"Geeft aan dat deze gebruiker alle rechten heeft zonder ze expliciet toe te "
"kennen."
#: apps/users/forms.py:242
msgid "This email address is already in use by another account."
msgstr ""
msgstr "Dit e-mailadres wordt al gebruikt door een ander account."
#: apps/users/forms.py:250
msgid "The two password fields didn't match."
msgstr ""
msgstr "De twee wachtwoordvelden komen niet overeen."
#: apps/users/forms.py:252
msgid "Please confirm your new password."
msgstr ""
msgstr "Bevestig je nieuwe wachtwoord."
#: apps/users/forms.py:254
msgid "Please enter the new password first."
msgstr ""
msgstr "Geef eerst het nieuwe wachtwoord op."
#: apps/users/forms.py:274
msgid "You cannot deactivate your own account using this form."
msgstr ""
msgstr "Je kunt je eigen account niet deactiveren met dit formulier."
#: apps/users/forms.py:287
msgid "Cannot remove status from the last superuser."
msgstr ""
msgstr "Kan de status van de laatste Hoofdadmin niet verwijderen."
#: apps/users/forms.py:293
msgid "You cannot remove your own superuser status using this form."
msgstr ""
msgstr "Je kunt je eigen hoofdadminrechten niet verwijderen met dit formulier."
#: apps/users/forms.py:390
#, fuzzy
#| msgid "A value for this field already exists in the rule."
msgid "A user with this email address already exists."
msgstr "Een waarde voor dit veld bestaat al in de regel."
msgstr "Er bestaat al een gebruiker met dit e-mailadres."
#: apps/users/models.py:27 templates/includes/navbar.html:28
msgid "Yearly by currency"
@@ -1802,37 +1812,33 @@ msgstr "Tijdszone"
msgid "Start page"
msgstr "Startpagina"
#: apps/users/views.py:67
#: apps/users/views.py:68
msgid "Transaction amounts are now hidden"
msgstr "Verrichtingsbedragen worden nu verborgen"
#: apps/users/views.py:70
#: apps/users/views.py:71
msgid "Transaction amounts are now displayed"
msgstr "Verrichtingsbedragen worden nu weergegeven"
#: apps/users/views.py:88
#: apps/users/views.py:89
msgid "Sounds are now muted"
msgstr "De Geluiden zijn nu gedempt"
#: apps/users/views.py:91
#: apps/users/views.py:92
msgid "Sounds will now play"
msgstr "De geluiden worden nu afgespeeld"
#: apps/users/views.py:107
#: apps/users/views.py:108
msgid "Your settings have been updated"
msgstr "Jouw instellingen zijn bijgewerkt"
#: apps/users/views.py:151
#, fuzzy
#| msgid "Rule added successfully"
#: apps/users/views.py:152
msgid "Item added successfully"
msgstr "Regel succesvol toegevoegd"
msgstr "Item succesvol toegevoegd"
#: apps/users/views.py:182
#, fuzzy
#| msgid "Rule updated successfully"
#: apps/users/views.py:184
msgid "Item updated successfully"
msgstr "Regel succesvol bijgewerkt"
msgstr "Item succesvol bijgewerkt"
#: templates/account_groups/fragments/add.html:5
msgid "Add account group"
@@ -2102,7 +2108,7 @@ msgid "Muted"
msgstr "Gedempt"
#: templates/categories/fragments/table.html:75
#: templates/insights/fragments/category_overview/index.html:225
#: templates/insights/fragments/category_overview/index.html:430
msgid "No categories"
msgstr "Geen categorieën"
@@ -2562,10 +2568,11 @@ msgid "Net Worth"
msgstr "Netto Waarde"
#: templates/includes/navbar.html:44
#: templates/insights/fragments/category_overview/index.html:50
msgid "Current"
msgstr "Huidige"
#: templates/includes/navbar.html:50
#: templates/includes/navbar.html:50 templates/insights/pages/index.html:5
msgid "Insights"
msgstr "Inzichten"
@@ -2603,7 +2610,7 @@ msgstr "Automatisatie"
#: templates/includes/navbar.html:145
msgid "Admin"
msgstr ""
msgstr "Admin"
#: templates/includes/navbar.html:154
msgid "Only use this if you know what you're doing"
@@ -2622,10 +2629,8 @@ msgid "Settings"
msgstr "Instellingen"
#: templates/includes/navbar/user_menu.html:19
#, fuzzy
#| msgid "Edit import profile"
msgid "Edit profile"
msgstr "Importprofiel bewerken"
msgstr "Profiel bewerken"
#: templates/includes/navbar/user_menu.html:46
msgid "Clear cache"
@@ -2685,12 +2690,36 @@ msgstr "Inkomsten/uitgaven per rekening"
msgid "Income/Expense by Currency"
msgstr "Inkomsten/uitgaven per Munteenheid"
#: templates/insights/fragments/category_overview/index.html:13
#: templates/insights/fragments/category_overview/index.html:14
msgid "Table"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:24
msgid "Bars"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:38
msgid ""
"Transaction amounts associated with multiple tags will be counted once for "
"each tag"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:54
#, fuzzy
#| msgid "final total"
msgid "Final total"
msgstr "eindtotaal"
#: templates/insights/fragments/category_overview/index.html:66
#: templates/monthly_overview/fragments/monthly_summary.html:167
msgid "Total"
msgstr "Totaal"
#: templates/insights/fragments/category_overview/index.html:202
#: templates/insights/fragments/category_overview/index.html:166
msgid "Untagged"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:407
msgid "Final Total"
msgstr "Eindtotaal"
@@ -2738,53 +2767,53 @@ msgstr "Van"
msgid "Percentage"
msgstr "Percentage"
#: templates/insights/pages/index.html:35
#: templates/insights/pages/index.html:37
msgid "Month"
msgstr "Maand"
#: templates/insights/pages/index.html:38
#: templates/insights/pages/index.html:40
#: templates/yearly_overview/pages/overview_by_account.html:61
#: templates/yearly_overview/pages/overview_by_currency.html:63
msgid "Year"
msgstr "Jaar"
#: templates/insights/pages/index.html:43
#: templates/insights/pages/index.html:45
msgid "Month Range"
msgstr "Maand Bereik"
#: templates/insights/pages/index.html:48
#: templates/insights/pages/index.html:50
msgid "Year Range"
msgstr "Jaar Bereik"
#: templates/insights/pages/index.html:53
#: templates/insights/pages/index.html:55
msgid "Date Range"
msgstr "Datum Bereik"
#: templates/insights/pages/index.html:81
#: templates/insights/pages/index.html:83
msgid "Account Flow"
msgstr "Rekeningstroom"
#: templates/insights/pages/index.html:88
#: templates/insights/pages/index.html:90
msgid "Currency Flow"
msgstr "Geldstroom"
#: templates/insights/pages/index.html:95
#: templates/insights/pages/index.html:97
msgid "Category Explorer"
msgstr "Categorie Verkenner"
#: templates/insights/pages/index.html:102
#: templates/insights/pages/index.html:104
msgid "Categories Overview"
msgstr "Categorieën Overzicht"
#: templates/insights/pages/index.html:109
#: templates/insights/pages/index.html:111
msgid "Late Transactions"
msgstr "Betalingsachterstanden"
#: templates/insights/pages/index.html:115
#: templates/insights/pages/index.html:117
msgid "Latest Transactions"
msgstr "Laatste Verrichtingen"
#: templates/insights/pages/index.html:121
#: templates/insights/pages/index.html:123
msgid "Emergency Fund"
msgstr "Noodfonds"
@@ -3135,36 +3164,28 @@ msgid "Unchanged"
msgstr "Ongewijzigd"
#: templates/users/fragments/add.html:5
#, fuzzy
#| msgid "Add new"
msgid "Add user"
msgstr "Nieuwe toevoegen"
msgstr "Gebruiker toevoegen"
#: templates/users/fragments/edit.html:5
#, fuzzy
#| msgid "Edit category"
msgid "Edit user"
msgstr "Categorie bewerken"
msgstr "Gebruiker bewerken"
#: templates/users/fragments/list.html:30
#, fuzzy
#| msgid "E-mail"
msgid "Email"
msgstr "E-mailadres"
#: templates/users/fragments/list.html:31
msgid "Superuser"
msgstr ""
msgstr "Hoofdadmin"
#: templates/users/fragments/list.html:51
msgid "Impersonate"
msgstr ""
msgstr "Doe je voor als"
#: templates/users/fragments/list.html:80
#, fuzzy
#| msgid "Users"
msgid "No users"
msgstr "Gebruikers"
msgstr "Geen gebruikers"
#: templates/users/generic/hide_amounts.html:2
msgid "Hide amounts"
@@ -3195,6 +3216,11 @@ msgstr "Gebruik de onderstaande gegevens om in te loggen"
msgid "Yearly Overview"
msgstr "Jaaroverzicht"
#, fuzzy
#~| msgid "No tags"
#~ msgid "Show tags"
#~ msgstr "Geen labels"
#, fuzzy
#~| msgid "From Amount"
#~ msgid "Principal Amount"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-13 22:01+0000\n"
"POT-Creation-Date: 2025-04-21 18:45+0000\n"
"PO-Revision-Date: 2025-04-13 08:16+0000\n"
"Last-Translator: Herculino Trotta <netotrotta@gmail.com>\n"
"Language-Team: Portuguese <https://translations.herculino.com/projects/"
@@ -27,10 +27,10 @@ msgstr "Nome do grupo"
#: apps/currencies/forms.py:53 apps/currencies/forms.py:91
#: apps/currencies/forms.py:142 apps/dca/forms.py:49 apps/dca/forms.py:224
#: apps/import_app/forms.py:34 apps/rules/forms.py:51 apps/rules/forms.py:93
#: apps/rules/forms.py:365 apps/transactions/forms.py:202
#: apps/transactions/forms.py:269 apps/transactions/forms.py:629
#: apps/transactions/forms.py:672 apps/transactions/forms.py:704
#: apps/transactions/forms.py:739 apps/transactions/forms.py:891
#: apps/rules/forms.py:365 apps/transactions/forms.py:203
#: apps/transactions/forms.py:281 apps/transactions/forms.py:641
#: apps/transactions/forms.py:684 apps/transactions/forms.py:716
#: apps/transactions/forms.py:751 apps/transactions/forms.py:903
#: apps/users/forms.py:210 apps/users/forms.py:372
msgid "Update"
msgstr "Atualizar"
@@ -40,10 +40,10 @@ msgstr "Atualizar"
#: apps/currencies/forms.py:99 apps/currencies/forms.py:150
#: apps/dca/forms.py:57 apps/dca/forms.py:232 apps/import_app/forms.py:42
#: apps/rules/forms.py:59 apps/rules/forms.py:101 apps/rules/forms.py:373
#: apps/transactions/forms.py:187 apps/transactions/forms.py:211
#: apps/transactions/forms.py:637 apps/transactions/forms.py:680
#: apps/transactions/forms.py:712 apps/transactions/forms.py:747
#: apps/transactions/forms.py:899 apps/users/forms.py:218
#: apps/transactions/forms.py:188 apps/transactions/forms.py:212
#: apps/transactions/forms.py:649 apps/transactions/forms.py:692
#: apps/transactions/forms.py:724 apps/transactions/forms.py:759
#: apps/transactions/forms.py:911 apps/users/forms.py:218
#: apps/users/forms.py:380 templates/account_groups/fragments/list.html:9
#: templates/accounts/fragments/list.html:9
#: templates/categories/fragments/list.html:9
@@ -74,12 +74,12 @@ msgstr "Novo saldo"
#: apps/accounts/forms.py:121 apps/dca/forms.py:85 apps/dca/forms.py:92
#: apps/insights/forms.py:118 apps/rules/forms.py:174 apps/rules/forms.py:189
#: apps/rules/models.py:38 apps/rules/models.py:286
#: apps/transactions/forms.py:40 apps/transactions/forms.py:303
#: apps/transactions/forms.py:310 apps/transactions/forms.py:510
#: apps/transactions/forms.py:771 apps/transactions/models.py:305
#: apps/transactions/forms.py:41 apps/transactions/forms.py:315
#: apps/transactions/forms.py:322 apps/transactions/forms.py:522
#: apps/transactions/forms.py:783 apps/transactions/models.py:305
#: apps/transactions/models.py:488 apps/transactions/models.py:688
#: templates/insights/fragments/category_overview/index.html:10
#: templates/insights/fragments/category_overview/index.html:215
#: templates/insights/fragments/category_overview/index.html:63
#: templates/insights/fragments/category_overview/index.html:420
msgid "Category"
msgstr "Categoria"
@@ -87,12 +87,13 @@ msgstr "Categoria"
#: apps/export_app/forms.py:44 apps/export_app/forms.py:135
#: apps/rules/forms.py:177 apps/rules/forms.py:186 apps/rules/models.py:39
#: apps/rules/models.py:290 apps/transactions/filters.py:74
#: apps/transactions/forms.py:48 apps/transactions/forms.py:319
#: apps/transactions/forms.py:327 apps/transactions/forms.py:503
#: apps/transactions/forms.py:764 apps/transactions/models.py:311
#: apps/transactions/forms.py:49 apps/transactions/forms.py:331
#: apps/transactions/forms.py:339 apps/transactions/forms.py:515
#: apps/transactions/forms.py:776 apps/transactions/models.py:311
#: apps/transactions/models.py:490 apps/transactions/models.py:692
#: templates/includes/navbar.html:108 templates/tags/fragments/list.html:5
#: templates/tags/pages/index.html:4
#: templates/includes/navbar.html:108
#: templates/insights/fragments/category_overview/index.html:35
#: templates/tags/fragments/list.html:5 templates/tags/pages/index.html:4
msgid "Tags"
msgstr "Tags"
@@ -164,8 +165,8 @@ msgstr ""
#: apps/accounts/models.py:70 apps/rules/forms.py:166 apps/rules/forms.py:179
#: apps/rules/models.py:30 apps/rules/models.py:242
#: apps/transactions/forms.py:60 apps/transactions/forms.py:495
#: apps/transactions/forms.py:756 apps/transactions/models.py:278
#: apps/transactions/forms.py:61 apps/transactions/forms.py:507
#: apps/transactions/forms.py:768 apps/transactions/models.py:278
#: apps/transactions/models.py:448 apps/transactions/models.py:670
msgid "Account"
msgstr "Conta"
@@ -458,7 +459,7 @@ msgstr "Sufixo"
#: apps/currencies/forms.py:69 apps/dca/models.py:158 apps/rules/forms.py:169
#: apps/rules/forms.py:182 apps/rules/models.py:33 apps/rules/models.py:254
#: apps/transactions/forms.py:64 apps/transactions/forms.py:331
#: apps/transactions/forms.py:65 apps/transactions/forms.py:343
#: apps/transactions/models.py:288
#: templates/dca/fragments/strategy/details.html:52
#: templates/exchange_rates/fragments/table.html:10
@@ -671,11 +672,11 @@ msgstr "Serviços marcados para execução com sucesso"
msgid "Create transaction"
msgstr "Criar transação"
#: apps/dca/forms.py:70 apps/transactions/forms.py:278
#: apps/dca/forms.py:70 apps/transactions/forms.py:290
msgid "From Account"
msgstr "Conta de origem"
#: apps/dca/forms.py:76 apps/transactions/forms.py:283
#: apps/dca/forms.py:76 apps/transactions/forms.py:295
msgid "To Account"
msgstr "Conta de destino"
@@ -700,7 +701,7 @@ msgstr "Conectar transação"
msgid "You must provide an account."
msgstr "Você deve informar uma conta."
#: apps/dca/forms.py:312 apps/transactions/forms.py:445
#: apps/dca/forms.py:312 apps/transactions/forms.py:457
msgid "From and To accounts must be different."
msgstr "As contas De e Para devem ser diferentes."
@@ -719,7 +720,7 @@ msgstr "Moeda de pagamento"
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:173
#: apps/rules/forms.py:188 apps/rules/models.py:37 apps/rules/models.py:270
#: apps/transactions/forms.py:347 apps/transactions/models.py:301
#: apps/transactions/forms.py:359 apps/transactions/models.py:301
#: apps/transactions/models.py:497 apps/transactions/models.py:698
msgid "Notes"
msgstr "Notas"
@@ -800,8 +801,8 @@ msgstr "Categorias"
#: apps/export_app/forms.py:50 apps/export_app/forms.py:136
#: apps/rules/forms.py:178 apps/rules/forms.py:187 apps/rules/models.py:40
#: apps/rules/models.py:282 apps/transactions/filters.py:81
#: apps/transactions/forms.py:56 apps/transactions/forms.py:518
#: apps/transactions/forms.py:779 apps/transactions/models.py:261
#: apps/transactions/forms.py:57 apps/transactions/forms.py:530
#: apps/transactions/forms.py:791 apps/transactions/models.py:261
#: apps/transactions/models.py:316 apps/transactions/models.py:493
#: apps/transactions/models.py:695 templates/entities/fragments/list.html:5
#: templates/entities/pages/index.html:4 templates/includes/navbar.html:110
@@ -971,9 +972,9 @@ msgstr "Importação apagada com sucesso"
#: apps/insights/forms.py:119 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167
#: templates/insights/fragments/category_overview/index.html:19
#: templates/insights/fragments/category_overview/index.html:87
#: templates/insights/fragments/category_overview/index.html:116
#: templates/insights/fragments/category_overview/index.html:73
#: templates/insights/fragments/category_overview/index.html:285
#: templates/insights/fragments/category_overview/index.html:314
msgid "Uncategorized"
msgstr "Sem categoria"
@@ -1070,8 +1071,8 @@ msgid "Paid"
msgstr "Pago"
#: apps/rules/forms.py:170 apps/rules/forms.py:183 apps/rules/models.py:34
#: apps/rules/models.py:258 apps/transactions/forms.py:68
#: apps/transactions/forms.py:334 apps/transactions/forms.py:524
#: apps/rules/models.py:258 apps/transactions/forms.py:69
#: apps/transactions/forms.py:346 apps/transactions/forms.py:536
#: apps/transactions/models.py:289 apps/transactions/models.py:471
#: apps/transactions/models.py:700
msgid "Reference Date"
@@ -1085,7 +1086,7 @@ msgstr "Quantia"
#: apps/rules/forms.py:172 apps/rules/forms.py:185 apps/rules/models.py:14
#: apps/rules/models.py:36 apps/rules/models.py:266
#: apps/transactions/forms.py:338 apps/transactions/models.py:299
#: apps/transactions/forms.py:350 apps/transactions/models.py:299
#: apps/transactions/models.py:455 apps/transactions/models.py:684
msgid "Description"
msgstr "Descrição"
@@ -1226,6 +1227,7 @@ msgstr "Ação Atualizar ou Criar Transação apagada com sucesso"
#: apps/transactions/filters.py:24 templates/cotton/transaction/item.html:21
#: templates/cotton/transaction/item.html:31 templates/includes/navbar.html:46
#: templates/insights/fragments/category_overview/index.html:46
#: templates/transactions/widgets/paid_toggle_button.html:8
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:12
msgid "Projected"
@@ -1259,40 +1261,48 @@ msgstr "Quantia miníma"
msgid "Amount max"
msgstr "Quantia máxima"
#: apps/transactions/forms.py:171
#: apps/transactions/forms.py:172
msgid "More"
msgstr "Mais"
#: apps/transactions/forms.py:290
#: apps/transactions/forms.py:216
msgid "Save and add similar"
msgstr ""
#: apps/transactions/forms.py:221
msgid "Save and add another"
msgstr ""
#: apps/transactions/forms.py:302
msgid "From Amount"
msgstr "Quantia de origem"
#: apps/transactions/forms.py:295
#: apps/transactions/forms.py:307
msgid "To Amount"
msgstr "Quantia de destino"
#: apps/transactions/forms.py:412
#: apps/transactions/forms.py:424
#: templates/cotton/ui/quick_transactions_buttons.html:40
msgid "Transfer"
msgstr "Transferir"
#: apps/transactions/forms.py:658
#: apps/transactions/forms.py:670
msgid "Tag name"
msgstr "Nome da Tag"
#: apps/transactions/forms.py:690
#: apps/transactions/forms.py:702
msgid "Entity name"
msgstr "Nome da entidade"
#: apps/transactions/forms.py:722
#: apps/transactions/forms.py:734
msgid "Category name"
msgstr "Nome da Categoria"
#: apps/transactions/forms.py:724
#: apps/transactions/forms.py:736
msgid "Muted categories won't count towards your monthly total"
msgstr "As categorias silenciadas não serão contabilizadas em seu total mensal"
#: apps/transactions/forms.py:910
#: apps/transactions/forms.py:922
msgid "End date should be after the start date"
msgstr "Data final deve ser após data inicial"
@@ -1344,7 +1354,7 @@ msgstr "Entidade"
#: templates/calendar_view/fragments/list.html:52
#: templates/calendar_view/fragments/list.html:54
#: templates/cotton/ui/quick_transactions_buttons.html:10
#: templates/insights/fragments/category_overview/index.html:11
#: templates/insights/fragments/category_overview/index.html:64
#: templates/monthly_overview/fragments/monthly_summary.html:39
msgid "Income"
msgstr "Renda"
@@ -1355,7 +1365,7 @@ msgstr "Renda"
#: templates/calendar_view/fragments/list.html:56
#: templates/calendar_view/fragments/list.html:58
#: templates/cotton/ui/quick_transactions_buttons.html:18
#: templates/insights/fragments/category_overview/index.html:12
#: templates/insights/fragments/category_overview/index.html:65
msgid "Expense"
msgstr "Despesa"
@@ -1602,35 +1612,35 @@ msgstr "Tag atualizada com sucesso"
msgid "Tag deleted successfully"
msgstr "Tag apagada com sucesso"
#: apps/transactions/views/transactions.py:50
#: apps/transactions/views/transactions.py:89
#: apps/transactions/views/transactions.py:52
#: apps/transactions/views/transactions.py:148
msgid "Transaction added successfully"
msgstr "Transação adicionada com sucesso"
#: apps/transactions/views/transactions.py:123
#: apps/transactions/views/transactions.py:182
msgid "Transaction updated successfully"
msgstr "Transação atualizada com sucesso"
#: apps/transactions/views/transactions.py:173
#: apps/transactions/views/transactions.py:232
#, python-format
msgid "%(count)s transaction updated successfully"
msgid_plural "%(count)s transactions updated successfully"
msgstr[0] "%(count)s transação atualizada com sucesso"
msgstr[1] "%(count)s transações atualizadas com sucesso"
#: apps/transactions/views/transactions.py:209
#: apps/transactions/views/transactions.py:268
msgid "Transaction duplicated successfully"
msgstr "Transação duplicada com sucesso"
#: apps/transactions/views/transactions.py:251
#: apps/transactions/views/transactions.py:310
msgid "Transaction deleted successfully"
msgstr "Transação apagada com sucesso"
#: apps/transactions/views/transactions.py:269
#: apps/transactions/views/transactions.py:328
msgid "Transaction restored successfully"
msgstr "Transação restaurada com sucesso"
#: apps/transactions/views/transactions.py:295
#: apps/transactions/views/transactions.py:354
msgid "Transfer added successfully"
msgstr "Transferência adicionada com sucesso"
@@ -1799,33 +1809,33 @@ msgstr "Fuso horário"
msgid "Start page"
msgstr "Página inicial"
#: apps/users/views.py:67
#: apps/users/views.py:68
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:71
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:89
msgid "Sounds are now muted"
msgstr "Os sons agora estão silenciados"
#: apps/users/views.py:91
#: apps/users/views.py:92
msgid "Sounds will now play"
msgstr "Os sons agora serão reproduzidos"
#: apps/users/views.py:107
#: apps/users/views.py:108
msgid "Your settings have been updated"
msgstr "Suas configurações foram atualizadas"
#: apps/users/views.py:151
#: apps/users/views.py:152
#, fuzzy
#| msgid "Rule added successfully"
msgid "Item added successfully"
msgstr "Regra adicionada com sucesso"
#: apps/users/views.py:182
#: apps/users/views.py:184
#, fuzzy
#| msgid "Rule updated successfully"
msgid "Item updated successfully"
@@ -2099,7 +2109,7 @@ msgid "Muted"
msgstr "Silenciada"
#: templates/categories/fragments/table.html:75
#: templates/insights/fragments/category_overview/index.html:225
#: templates/insights/fragments/category_overview/index.html:430
msgid "No categories"
msgstr "Nenhum categoria"
@@ -2561,10 +2571,11 @@ msgid "Net Worth"
msgstr "Patrimônio"
#: templates/includes/navbar.html:44
#: templates/insights/fragments/category_overview/index.html:50
msgid "Current"
msgstr "Atual"
#: templates/includes/navbar.html:50
#: templates/includes/navbar.html:50 templates/insights/pages/index.html:5
msgid "Insights"
msgstr "Insights"
@@ -2682,12 +2693,36 @@ msgstr "Gasto/Despesa por Conta"
msgid "Income/Expense by Currency"
msgstr "Gasto/Despesa por Moeda"
#: templates/insights/fragments/category_overview/index.html:13
#: templates/insights/fragments/category_overview/index.html:14
msgid "Table"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:24
msgid "Bars"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:38
msgid ""
"Transaction amounts associated with multiple tags will be counted once for "
"each tag"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:54
#, fuzzy
#| msgid "final total"
msgid "Final total"
msgstr "total final"
#: templates/insights/fragments/category_overview/index.html:66
#: templates/monthly_overview/fragments/monthly_summary.html:167
msgid "Total"
msgstr "Total"
#: templates/insights/fragments/category_overview/index.html:202
#: templates/insights/fragments/category_overview/index.html:166
msgid "Untagged"
msgstr ""
#: templates/insights/fragments/category_overview/index.html:407
msgid "Final Total"
msgstr "Total Final"
@@ -2735,53 +2770,53 @@ msgstr "De"
msgid "Percentage"
msgstr "Porcentagem"
#: templates/insights/pages/index.html:35
#: templates/insights/pages/index.html:37
msgid "Month"
msgstr "Mês"
#: templates/insights/pages/index.html:38
#: templates/insights/pages/index.html:40
#: templates/yearly_overview/pages/overview_by_account.html:61
#: templates/yearly_overview/pages/overview_by_currency.html:63
msgid "Year"
msgstr "Ano"
#: templates/insights/pages/index.html:43
#: templates/insights/pages/index.html:45
msgid "Month Range"
msgstr "Intervalo de Mês"
#: templates/insights/pages/index.html:48
#: templates/insights/pages/index.html:50
msgid "Year Range"
msgstr "Intervalo de Ano"
#: templates/insights/pages/index.html:53
#: templates/insights/pages/index.html:55
msgid "Date Range"
msgstr "Intervalo de Data"
#: templates/insights/pages/index.html:81
#: templates/insights/pages/index.html:83
msgid "Account Flow"
msgstr "Fluxo de Conta"
#: templates/insights/pages/index.html:88
#: templates/insights/pages/index.html:90
msgid "Currency Flow"
msgstr "Fluxo de Moeda"
#: templates/insights/pages/index.html:95
#: templates/insights/pages/index.html:97
msgid "Category Explorer"
msgstr "Explorador de Categoria"
#: templates/insights/pages/index.html:102
#: templates/insights/pages/index.html:104
msgid "Categories Overview"
msgstr "Visão geral das categorias"
#: templates/insights/pages/index.html:109
#: templates/insights/pages/index.html:111
msgid "Late Transactions"
msgstr "Transações Atrasadas"
#: templates/insights/pages/index.html:115
#: templates/insights/pages/index.html:117
msgid "Latest Transactions"
msgstr "Últimas Transações"
#: templates/insights/pages/index.html:121
#: templates/insights/pages/index.html:123
msgid "Emergency Fund"
msgstr "Reserva de Emergência"
@@ -3189,6 +3224,11 @@ msgstr "Use as credenciais abaixo para fazer login"
msgid "Yearly Overview"
msgstr "Visão Anual"
#, fuzzy
#~| msgid "No tags"
#~ msgid "Show tags"
#~ msgstr "Nenhuma tag"
#, fuzzy
#~| msgid "From Amount"
#~ msgid "Principal Amount"

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-13 22:01+0000\n"
"PO-Revision-Date: 2025-04-13 08:16+0000\n"
"POT-Creation-Date: 2025-04-21 18:45+0000\n"
"PO-Revision-Date: 2025-04-20 21:16+0000\n"
"Last-Translator: Herculino Trotta <netotrotta@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://translations.herculino.com/"
"projects/wygiwyh/app/pt_BR/>\n"
@@ -27,10 +27,10 @@ msgstr "Nome do grupo"
#: apps/currencies/forms.py:53 apps/currencies/forms.py:91
#: apps/currencies/forms.py:142 apps/dca/forms.py:49 apps/dca/forms.py:224
#: apps/import_app/forms.py:34 apps/rules/forms.py:51 apps/rules/forms.py:93
#: apps/rules/forms.py:365 apps/transactions/forms.py:202
#: apps/transactions/forms.py:269 apps/transactions/forms.py:629
#: apps/transactions/forms.py:672 apps/transactions/forms.py:704
#: apps/transactions/forms.py:739 apps/transactions/forms.py:891
#: apps/rules/forms.py:365 apps/transactions/forms.py:203
#: apps/transactions/forms.py:281 apps/transactions/forms.py:641
#: apps/transactions/forms.py:684 apps/transactions/forms.py:716
#: apps/transactions/forms.py:751 apps/transactions/forms.py:903
#: apps/users/forms.py:210 apps/users/forms.py:372
msgid "Update"
msgstr "Atualizar"
@@ -40,10 +40,10 @@ msgstr "Atualizar"
#: apps/currencies/forms.py:99 apps/currencies/forms.py:150
#: apps/dca/forms.py:57 apps/dca/forms.py:232 apps/import_app/forms.py:42
#: apps/rules/forms.py:59 apps/rules/forms.py:101 apps/rules/forms.py:373
#: apps/transactions/forms.py:187 apps/transactions/forms.py:211
#: apps/transactions/forms.py:637 apps/transactions/forms.py:680
#: apps/transactions/forms.py:712 apps/transactions/forms.py:747
#: apps/transactions/forms.py:899 apps/users/forms.py:218
#: apps/transactions/forms.py:188 apps/transactions/forms.py:212
#: apps/transactions/forms.py:649 apps/transactions/forms.py:692
#: apps/transactions/forms.py:724 apps/transactions/forms.py:759
#: apps/transactions/forms.py:911 apps/users/forms.py:218
#: apps/users/forms.py:380 templates/account_groups/fragments/list.html:9
#: templates/accounts/fragments/list.html:9
#: templates/categories/fragments/list.html:9
@@ -74,12 +74,12 @@ msgstr "Novo saldo"
#: apps/accounts/forms.py:121 apps/dca/forms.py:85 apps/dca/forms.py:92
#: apps/insights/forms.py:118 apps/rules/forms.py:174 apps/rules/forms.py:189
#: apps/rules/models.py:38 apps/rules/models.py:286
#: apps/transactions/forms.py:40 apps/transactions/forms.py:303
#: apps/transactions/forms.py:310 apps/transactions/forms.py:510
#: apps/transactions/forms.py:771 apps/transactions/models.py:305
#: apps/transactions/forms.py:41 apps/transactions/forms.py:315
#: apps/transactions/forms.py:322 apps/transactions/forms.py:522
#: apps/transactions/forms.py:783 apps/transactions/models.py:305
#: apps/transactions/models.py:488 apps/transactions/models.py:688
#: templates/insights/fragments/category_overview/index.html:10
#: templates/insights/fragments/category_overview/index.html:215
#: templates/insights/fragments/category_overview/index.html:63
#: templates/insights/fragments/category_overview/index.html:420
msgid "Category"
msgstr "Categoria"
@@ -87,12 +87,13 @@ msgstr "Categoria"
#: apps/export_app/forms.py:44 apps/export_app/forms.py:135
#: apps/rules/forms.py:177 apps/rules/forms.py:186 apps/rules/models.py:39
#: apps/rules/models.py:290 apps/transactions/filters.py:74
#: apps/transactions/forms.py:48 apps/transactions/forms.py:319
#: apps/transactions/forms.py:327 apps/transactions/forms.py:503
#: apps/transactions/forms.py:764 apps/transactions/models.py:311
#: apps/transactions/forms.py:49 apps/transactions/forms.py:331
#: apps/transactions/forms.py:339 apps/transactions/forms.py:515
#: apps/transactions/forms.py:776 apps/transactions/models.py:311
#: apps/transactions/models.py:490 apps/transactions/models.py:692
#: templates/includes/navbar.html:108 templates/tags/fragments/list.html:5
#: templates/tags/pages/index.html:4
#: templates/includes/navbar.html:108
#: templates/insights/fragments/category_overview/index.html:35
#: templates/tags/fragments/list.html:5 templates/tags/pages/index.html:4
msgid "Tags"
msgstr "Tags"
@@ -164,8 +165,8 @@ msgstr ""
#: apps/accounts/models.py:70 apps/rules/forms.py:166 apps/rules/forms.py:179
#: apps/rules/models.py:30 apps/rules/models.py:242
#: apps/transactions/forms.py:60 apps/transactions/forms.py:495
#: apps/transactions/forms.py:756 apps/transactions/models.py:278
#: apps/transactions/forms.py:61 apps/transactions/forms.py:507
#: apps/transactions/forms.py:768 apps/transactions/models.py:278
#: apps/transactions/models.py:448 apps/transactions/models.py:670
msgid "Account"
msgstr "Conta"
@@ -458,7 +459,7 @@ msgstr "Sufixo"
#: apps/currencies/forms.py:69 apps/dca/models.py:158 apps/rules/forms.py:169
#: apps/rules/forms.py:182 apps/rules/models.py:33 apps/rules/models.py:254
#: apps/transactions/forms.py:64 apps/transactions/forms.py:331
#: apps/transactions/forms.py:65 apps/transactions/forms.py:343
#: apps/transactions/models.py:288
#: templates/dca/fragments/strategy/details.html:52
#: templates/exchange_rates/fragments/table.html:10
@@ -671,11 +672,11 @@ msgstr "Serviços marcados para execução com sucesso"
msgid "Create transaction"
msgstr "Criar transação"
#: apps/dca/forms.py:70 apps/transactions/forms.py:278
#: apps/dca/forms.py:70 apps/transactions/forms.py:290
msgid "From Account"
msgstr "Conta de origem"
#: apps/dca/forms.py:76 apps/transactions/forms.py:283
#: apps/dca/forms.py:76 apps/transactions/forms.py:295
msgid "To Account"
msgstr "Conta de destino"
@@ -700,7 +701,7 @@ msgstr "Conectar transação"
msgid "You must provide an account."
msgstr "Você deve informar uma conta."
#: apps/dca/forms.py:312 apps/transactions/forms.py:445
#: apps/dca/forms.py:312 apps/transactions/forms.py:457
msgid "From and To accounts must be different."
msgstr "As contas De e Para devem ser diferentes."
@@ -719,7 +720,7 @@ msgstr "Moeda de pagamento"
#: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:173
#: apps/rules/forms.py:188 apps/rules/models.py:37 apps/rules/models.py:270
#: apps/transactions/forms.py:347 apps/transactions/models.py:301
#: apps/transactions/forms.py:359 apps/transactions/models.py:301
#: apps/transactions/models.py:497 apps/transactions/models.py:698
msgid "Notes"
msgstr "Notas"
@@ -800,8 +801,8 @@ msgstr "Categorias"
#: apps/export_app/forms.py:50 apps/export_app/forms.py:136
#: apps/rules/forms.py:178 apps/rules/forms.py:187 apps/rules/models.py:40
#: apps/rules/models.py:282 apps/transactions/filters.py:81
#: apps/transactions/forms.py:56 apps/transactions/forms.py:518
#: apps/transactions/forms.py:779 apps/transactions/models.py:261
#: apps/transactions/forms.py:57 apps/transactions/forms.py:530
#: apps/transactions/forms.py:791 apps/transactions/models.py:261
#: apps/transactions/models.py:316 apps/transactions/models.py:493
#: apps/transactions/models.py:695 templates/entities/fragments/list.html:5
#: templates/entities/pages/index.html:4 templates/includes/navbar.html:110
@@ -971,9 +972,9 @@ msgstr "Importação apagada com sucesso"
#: apps/insights/forms.py:119 apps/insights/utils/sankey.py:36
#: apps/insights/utils/sankey.py:167
#: templates/insights/fragments/category_overview/index.html:19
#: templates/insights/fragments/category_overview/index.html:87
#: templates/insights/fragments/category_overview/index.html:116
#: templates/insights/fragments/category_overview/index.html:73
#: templates/insights/fragments/category_overview/index.html:285
#: templates/insights/fragments/category_overview/index.html:314
msgid "Uncategorized"
msgstr "Sem categoria"
@@ -1070,8 +1071,8 @@ msgid "Paid"
msgstr "Pago"
#: apps/rules/forms.py:170 apps/rules/forms.py:183 apps/rules/models.py:34
#: apps/rules/models.py:258 apps/transactions/forms.py:68
#: apps/transactions/forms.py:334 apps/transactions/forms.py:524
#: apps/rules/models.py:258 apps/transactions/forms.py:69
#: apps/transactions/forms.py:346 apps/transactions/forms.py:536
#: apps/transactions/models.py:289 apps/transactions/models.py:471
#: apps/transactions/models.py:700
msgid "Reference Date"
@@ -1085,7 +1086,7 @@ msgstr "Quantia"
#: apps/rules/forms.py:172 apps/rules/forms.py:185 apps/rules/models.py:14
#: apps/rules/models.py:36 apps/rules/models.py:266
#: apps/transactions/forms.py:338 apps/transactions/models.py:299
#: apps/transactions/forms.py:350 apps/transactions/models.py:299
#: apps/transactions/models.py:455 apps/transactions/models.py:684
msgid "Description"
msgstr "Descrição"
@@ -1226,6 +1227,7 @@ msgstr "Ação Atualizar ou Criar Transação apagada com sucesso"
#: apps/transactions/filters.py:24 templates/cotton/transaction/item.html:21
#: templates/cotton/transaction/item.html:31 templates/includes/navbar.html:46
#: templates/insights/fragments/category_overview/index.html:46
#: templates/transactions/widgets/paid_toggle_button.html:8
#: templates/transactions/widgets/unselectable_paid_toggle_button.html:12
msgid "Projected"
@@ -1259,40 +1261,48 @@ msgstr "Quantia miníma"
msgid "Amount max"
msgstr "Quantia máxima"
#: apps/transactions/forms.py:171
#: apps/transactions/forms.py:172
msgid "More"
msgstr "Mais"
#: apps/transactions/forms.py:290
#: apps/transactions/forms.py:216
msgid "Save and add similar"
msgstr "Salvar e adicionar similar"
#: apps/transactions/forms.py:221
msgid "Save and add another"
msgstr "Salvar e adicionar outra"
#: apps/transactions/forms.py:302
msgid "From Amount"
msgstr "Quantia de origem"
#: apps/transactions/forms.py:295
#: apps/transactions/forms.py:307
msgid "To Amount"
msgstr "Quantia de destino"
#: apps/transactions/forms.py:412
#: apps/transactions/forms.py:424
#: templates/cotton/ui/quick_transactions_buttons.html:40
msgid "Transfer"
msgstr "Transferir"
#: apps/transactions/forms.py:658
#: apps/transactions/forms.py:670
msgid "Tag name"
msgstr "Nome da Tag"
#: apps/transactions/forms.py:690
#: apps/transactions/forms.py:702
msgid "Entity name"
msgstr "Nome da entidade"
#: apps/transactions/forms.py:722
#: apps/transactions/forms.py:734
msgid "Category name"
msgstr "Nome da Categoria"
#: apps/transactions/forms.py:724
#: apps/transactions/forms.py:736
msgid "Muted categories won't count towards your monthly total"
msgstr "As categorias silenciadas não serão contabilizadas em seu total mensal"
#: apps/transactions/forms.py:910
#: apps/transactions/forms.py:922
msgid "End date should be after the start date"
msgstr "Data final deve ser após data inicial"
@@ -1344,7 +1354,7 @@ msgstr "Entidade"
#: templates/calendar_view/fragments/list.html:52
#: templates/calendar_view/fragments/list.html:54
#: templates/cotton/ui/quick_transactions_buttons.html:10
#: templates/insights/fragments/category_overview/index.html:11
#: templates/insights/fragments/category_overview/index.html:64
#: templates/monthly_overview/fragments/monthly_summary.html:39
msgid "Income"
msgstr "Renda"
@@ -1355,7 +1365,7 @@ msgstr "Renda"
#: templates/calendar_view/fragments/list.html:56
#: templates/calendar_view/fragments/list.html:58
#: templates/cotton/ui/quick_transactions_buttons.html:18
#: templates/insights/fragments/category_overview/index.html:12
#: templates/insights/fragments/category_overview/index.html:65
msgid "Expense"
msgstr "Despesa"
@@ -1602,35 +1612,35 @@ msgstr "Tag atualizada com sucesso"
msgid "Tag deleted successfully"
msgstr "Tag apagada com sucesso"
#: apps/transactions/views/transactions.py:50
#: apps/transactions/views/transactions.py:89
#: apps/transactions/views/transactions.py:52
#: apps/transactions/views/transactions.py:148
msgid "Transaction added successfully"
msgstr "Transação adicionada com sucesso"
#: apps/transactions/views/transactions.py:123
#: apps/transactions/views/transactions.py:182
msgid "Transaction updated successfully"
msgstr "Transação atualizada com sucesso"
#: apps/transactions/views/transactions.py:173
#: apps/transactions/views/transactions.py:232
#, python-format
msgid "%(count)s transaction updated successfully"
msgid_plural "%(count)s transactions updated successfully"
msgstr[0] "%(count)s transação atualizada com sucesso"
msgstr[1] "%(count)s transações atualizadas com sucesso"
#: apps/transactions/views/transactions.py:209
#: apps/transactions/views/transactions.py:268
msgid "Transaction duplicated successfully"
msgstr "Transação duplicada com sucesso"
#: apps/transactions/views/transactions.py:251
#: apps/transactions/views/transactions.py:310
msgid "Transaction deleted successfully"
msgstr "Transação apagada com sucesso"
#: apps/transactions/views/transactions.py:269
#: apps/transactions/views/transactions.py:328
msgid "Transaction restored successfully"
msgstr "Transação restaurada com sucesso"
#: apps/transactions/views/transactions.py:295
#: apps/transactions/views/transactions.py:354
msgid "Transfer added successfully"
msgstr "Transferência adicionada com sucesso"
@@ -1700,64 +1710,66 @@ msgstr ""
"Considere ajudar a traduzir WYGIWYH para seu idioma em %(translation_link)s"
#: apps/users/forms.py:150
#, fuzzy
#| msgid "Password"
msgid "New Password"
msgstr "Senha"
msgstr "Nova senha"
#: apps/users/forms.py:153
msgid "Leave blank to keep the current password."
msgstr ""
msgstr "Deixe em branco para usar a senha atual."
#: apps/users/forms.py:156
msgid "Confirm New Password"
msgstr ""
msgstr "Confirmar nova senha"
#: apps/users/forms.py:168 apps/users/forms.py:329
msgid ""
"Designates whether this user should be treated as active. Unselect this "
"instead of deleting accounts."
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:171 apps/users/forms.py:332
msgid ""
"Designates that this user has all permissions without explicitly assigning "
"them."
msgstr ""
"Designa que esse usuário tem todas as permissões sem atribuí-las "
"explicitamente."
#: apps/users/forms.py:242
msgid "This email address is already in use by another account."
msgstr ""
msgstr "Esse endereço de e-mail já está sendo usado por outra conta."
#: apps/users/forms.py:250
msgid "The two password fields didn't match."
msgstr ""
msgstr "Os dois campos de senha não coincidem."
#: apps/users/forms.py:252
msgid "Please confirm your new password."
msgstr ""
msgstr "Confirme sua nova senha."
#: apps/users/forms.py:254
msgid "Please enter the new password first."
msgstr ""
msgstr "Digite a nova senha primeiro."
#: apps/users/forms.py:274
msgid "You cannot deactivate your own account using this form."
msgstr ""
msgstr "Não é possível desativar sua própria conta usando esse formulário."
#: apps/users/forms.py:287
msgid "Cannot remove status from the last superuser."
msgstr ""
msgstr "Não é possível remover o status do último superusuário."
#: apps/users/forms.py:293
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:390
#, fuzzy
#| msgid "A value for this field already exists in the rule."
msgid "A user with this email address already exists."
msgstr "Já existe um valor para esse campo na regra."
msgstr "Já existe um usuário com esse endereço de e-mail."
#: apps/users/models.py:27 templates/includes/navbar.html:28
msgid "Yearly by currency"
@@ -1799,37 +1811,33 @@ msgstr "Fuso horário"
msgid "Start page"
msgstr "Página inicial"
#: apps/users/views.py:67
#: apps/users/views.py:68
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:71
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:89
msgid "Sounds are now muted"
msgstr "Os sons agora estão silenciados"
#: apps/users/views.py:91
#: apps/users/views.py:92
msgid "Sounds will now play"
msgstr "Os sons agora serão reproduzidos"
#: apps/users/views.py:107
#: apps/users/views.py:108
msgid "Your settings have been updated"
msgstr "Suas configurações foram atualizadas"
#: apps/users/views.py:151
#, fuzzy
#| msgid "Rule added successfully"
#: apps/users/views.py:152
msgid "Item added successfully"
msgstr "Regra adicionada com sucesso"
msgstr "Item adicionado com sucesso"
#: apps/users/views.py:182
#, fuzzy
#| msgid "Rule updated successfully"
#: apps/users/views.py:184
msgid "Item updated successfully"
msgstr "Regra atualizada com sucesso"
msgstr "Item atualizado com sucesso"
#: templates/account_groups/fragments/add.html:5
msgid "Add account group"
@@ -2099,7 +2107,7 @@ msgid "Muted"
msgstr "Silenciada"
#: templates/categories/fragments/table.html:75
#: templates/insights/fragments/category_overview/index.html:225
#: templates/insights/fragments/category_overview/index.html:430
msgid "No categories"
msgstr "Nenhum categoria"
@@ -2561,10 +2569,11 @@ msgid "Net Worth"
msgstr "Patrimônio"
#: templates/includes/navbar.html:44
#: templates/insights/fragments/category_overview/index.html:50
msgid "Current"
msgstr "Atual"
#: templates/includes/navbar.html:50
#: templates/includes/navbar.html:50 templates/insights/pages/index.html:5
msgid "Insights"
msgstr "Insights"
@@ -2602,7 +2611,7 @@ msgstr "Automação"
#: templates/includes/navbar.html:145
msgid "Admin"
msgstr ""
msgstr "Admin"
#: templates/includes/navbar.html:154
msgid "Only use this if you know what you're doing"
@@ -2621,10 +2630,8 @@ msgid "Settings"
msgstr "Configurações"
#: templates/includes/navbar/user_menu.html:19
#, fuzzy
#| msgid "Edit import profile"
msgid "Edit profile"
msgstr "Editar perfil de importação"
msgstr "Editar perfil"
#: templates/includes/navbar/user_menu.html:46
msgid "Clear cache"
@@ -2682,12 +2689,36 @@ msgstr "Gasto/Despesa por Conta"
msgid "Income/Expense by Currency"
msgstr "Gasto/Despesa por Moeda"
#: templates/insights/fragments/category_overview/index.html:13
#: templates/insights/fragments/category_overview/index.html:14
msgid "Table"
msgstr "Tabela"
#: templates/insights/fragments/category_overview/index.html:24
msgid "Bars"
msgstr "Barras"
#: templates/insights/fragments/category_overview/index.html:38
msgid ""
"Transaction amounts associated with multiple tags will be counted once for "
"each tag"
msgstr ""
"Os valores das transações associadas a várias tags serão contados uma vez "
"para cada tag"
#: templates/insights/fragments/category_overview/index.html:54
msgid "Final total"
msgstr "Total final"
#: templates/insights/fragments/category_overview/index.html:66
#: templates/monthly_overview/fragments/monthly_summary.html:167
msgid "Total"
msgstr "Total"
#: templates/insights/fragments/category_overview/index.html:202
#: templates/insights/fragments/category_overview/index.html:166
msgid "Untagged"
msgstr "Sem tag"
#: templates/insights/fragments/category_overview/index.html:407
msgid "Final Total"
msgstr "Total Final"
@@ -2735,53 +2766,53 @@ msgstr "De"
msgid "Percentage"
msgstr "Porcentagem"
#: templates/insights/pages/index.html:35
#: templates/insights/pages/index.html:37
msgid "Month"
msgstr "Mês"
#: templates/insights/pages/index.html:38
#: templates/insights/pages/index.html:40
#: templates/yearly_overview/pages/overview_by_account.html:61
#: templates/yearly_overview/pages/overview_by_currency.html:63
msgid "Year"
msgstr "Ano"
#: templates/insights/pages/index.html:43
#: templates/insights/pages/index.html:45
msgid "Month Range"
msgstr "Intervalo de Mês"
#: templates/insights/pages/index.html:48
#: templates/insights/pages/index.html:50
msgid "Year Range"
msgstr "Intervalo de Ano"
#: templates/insights/pages/index.html:53
#: templates/insights/pages/index.html:55
msgid "Date Range"
msgstr "Intervalo de Data"
#: templates/insights/pages/index.html:81
#: templates/insights/pages/index.html:83
msgid "Account Flow"
msgstr "Fluxo de Conta"
#: templates/insights/pages/index.html:88
#: templates/insights/pages/index.html:90
msgid "Currency Flow"
msgstr "Fluxo de Moeda"
#: templates/insights/pages/index.html:95
#: templates/insights/pages/index.html:97
msgid "Category Explorer"
msgstr "Explorador de Categoria"
#: templates/insights/pages/index.html:102
#: templates/insights/pages/index.html:104
msgid "Categories Overview"
msgstr "Visão geral das categorias"
#: templates/insights/pages/index.html:109
#: templates/insights/pages/index.html:111
msgid "Late Transactions"
msgstr "Transações Atrasadas"
#: templates/insights/pages/index.html:115
#: templates/insights/pages/index.html:117
msgid "Latest Transactions"
msgstr "Últimas Transações"
#: templates/insights/pages/index.html:121
#: templates/insights/pages/index.html:123
msgid "Emergency Fund"
msgstr "Reserva de Emergência"
@@ -3129,36 +3160,28 @@ msgid "Unchanged"
msgstr "Inalterado"
#: templates/users/fragments/add.html:5
#, fuzzy
#| msgid "Add new"
msgid "Add user"
msgstr "Adicionar novo"
msgstr "Adicionar usuário"
#: templates/users/fragments/edit.html:5
#, fuzzy
#| msgid "Edit category"
msgid "Edit user"
msgstr "Editar categoria"
msgstr "Editar usuário"
#: templates/users/fragments/list.html:30
#, fuzzy
#| msgid "E-mail"
msgid "Email"
msgstr "E-mail"
msgstr "Email"
#: templates/users/fragments/list.html:31
msgid "Superuser"
msgstr ""
msgstr "Superusuário"
#: templates/users/fragments/list.html:51
msgid "Impersonate"
msgstr ""
msgstr "Personificar"
#: templates/users/fragments/list.html:80
#, fuzzy
#| msgid "Users"
msgid "No users"
msgstr "Usuários"
msgstr "Nenhum usuário"
#: templates/users/generic/hide_amounts.html:2
msgid "Hide amounts"
@@ -3189,6 +3212,11 @@ msgstr "Use as credenciais abaixo para fazer login"
msgid "Yearly Overview"
msgstr "Visão Anual"
#, fuzzy
#~| msgid "No tags"
#~ msgid "Show tags"
#~ msgstr "Nenhuma tag"
#, fuzzy
#~| msgid "From Amount"
#~ msgid "Principal Amount"

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,8 @@
{% spaceless %}
{% load i18n %}
<span class="tw-text-xs text-white-50 mx-1"
data-bs-toggle="tooltip"
data-bs-title="{{ content }}">
<i class="fa-solid fa-circle-question fa-fw"></i>
<i class="{% if not icon %}fa-solid fa-circle-question{% else %}{{ icon }}{% endif %} fa-fw"></i>
</span>
{% endspaceless %}

View File

@@ -3,7 +3,7 @@
{% if icon %}<i class="{{ icon }}"></i>{% else %}<span class="fw-bold">{{ title.0 }}</span>{% endif %}
</div>
<div class="card-body">
<h5 class="tw-text-{{ color }}-400 fw-bold tw-mr-[50px]" {{ attrs }}>{{ title }}{% if help_text %}{% include 'includes/help_icon.html' with content=help_text %}{% endif %}</h5>
<h5 class="tw-text-{{ color }}-400 fw-bold tw-mr-[50px]" {{ attrs }}>{{ title }}{% if help_text %}<c-ui.help-icon :content="help_text" icon=""></c-ui.help-icon>{% endif %}</h5>
{{ slot }}
</div>
</div>

View File

@@ -94,7 +94,7 @@
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle {% active_link views='tags_index||entities_index||categories_index||accounts_index||account_groups_index||currencies_index||exchange_rates_index||rules_index||import_profiles_index||automatic_exchange_rates_index||export_index' %}"
<a class="nav-link dropdown-toggle {% active_link views='tags_index||entities_index||categories_index||accounts_index||account_groups_index||currencies_index||exchange_rates_index||rules_index||import_profiles_index||automatic_exchange_rates_index||export_index||users_index' %}"
href="#" role="button"
data-bs-toggle="dropdown"
aria-expanded="false">

View File

@@ -1,226 +1,431 @@
{% load i18n %}
<div hx-get="{% url 'category_overview' %}" hx-trigger="updated from:window" class="show-loading" hx-swap="outerHTML"
hx-include="#picker-form, #picker-type">
hx-include="#picker-form, #picker-type, #view-type, #show-tags, #showing">
<div class="h-100 text-center mb-4">
<div class="btn-group gap-3" role="group" id="view-type" _="on change trigger updated">
<input type="radio" class="btn-check"
name="view_type"
id="table-view"
autocomplete="off"
value="table"
{% if view_type == "table" %}checked{% endif %}>
<label class="btn btn-outline-primary rounded-5" for="table-view"><i
class="fa-solid fa-table fa-fw me-2"></i>{% trans 'Table' %}</label>
<input type="radio"
class="btn-check"
name="view_type"
id="bars-view"
autocomplete="off"
value="bars"
{% if view_type == "bars" %}checked{% endif %}>
<label class="btn btn-outline-primary rounded-5" for="bars-view"><i
class="fa-solid fa-chart-bar fa-fw me-2"></i>{% trans 'Bars' %}</label>
</div>
</div>
<div class="mt-3 mb-1 d-flex flex-column flex-md-row justify-content-between">
<div class="form-check form-switch" id="show-tags">
{% if view_type == 'table' %}
<input type="hidden" name="show_tags" value="off">
<input class="form-check-input" type="checkbox" role="switch" id="show-tags-switch" name="show_tags"
_="on change trigger updated" {% if show_tags %}checked{% endif %}>
{% spaceless %}
<label class="form-check-label" for="show-tags-switch">
{% trans 'Tags' %}
</label>
<c-ui.help-icon
content="{% trans 'Transaction amounts associated with multiple tags will be counted once for each tag' %}"
icon="fa-solid fa-circle-exclamation"></c-ui.help-icon>
{% endspaceless %}
{% endif %}
</div>
<div class="btn-group btn-group-sm" role="group" id="showing" _="on change trigger updated">
<input type="radio" class="btn-check" name="showing" id="showing-projected" autocomplete="off"
value="projected" {% if showing == 'projected' %}checked{% endif %}>
<label class="btn btn-outline-primary" for="showing-projected">{% trans "Projected" %}</label>
<input type="radio" class="btn-check" name="showing" id="showing-current" autocomplete="off" value="current"
{% if showing == 'current' %}checked{% endif %}>
<label class="btn btn-outline-primary" for="showing-current">{% trans "Current" %}</label>
<input type="radio" class="btn-check" name="showing" id="showing-final" autocomplete="off" value="final"
{% if showing == 'final' %}checked{% endif %}>
<label class="btn btn-outline-primary" for="showing-final">{% trans "Final total" %}</label>
</div>
</div>
{% if total_table %}
<div class="table-responsive">
<table class="table table-striped table-hover">
<thead>
<tr>
<th scope="col">{% trans 'Category' %}</th>
<th scope="col">{% trans 'Income' %}</th>
<th scope="col">{% trans 'Expense' %}</th>
<th scope="col">{% trans 'Total' %}</th>
</tr>
</thead>
<tbody>
{% for category in total_table.values %}
{% if view_type == "table" %}
<div class="table-responsive">
<table class="table table-striped table-hover table-bordered align-middle">
<thead>
<tr>
<th>{% if category.name %}{{ category.name }}{% else %}{% trans 'Uncategorized' %}{% endif %}</th>
<td>
{% for currency in category.currencies.values %}
{% if currency.total_income != 0 %}
<c-amount.display
:amount="currency.total_income"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="green"></c-amount.display>
{% else %}
<div>-</div>
{% endif %}
{% endfor %}
</td>
<td>
{% for currency in category.currencies.values %}
{% if currency.total_expense != 0 %}
<c-amount.display
:amount="currency.total_expense"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="red"></c-amount.display>
{% else %}
<div>-</div>
{% endif %}
{% endfor %}
</td>
<td>
{% for currency in category.currencies.values %}
{% if currency.total_final != 0 %}
<c-amount.display
:amount="currency.total_final"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="{% if currency.total_final < 0 %}red{% else %}green{% endif %}"></c-amount.display>
{% else %}
<div>-</div>
{% endif %}
{% endfor %}
</td>
<th scope="col">{% trans 'Category' %}</th>
<th scope="col">{% trans 'Income' %}</th>
<th scope="col">{% trans 'Expense' %}</th>
<th scope="col">{% trans 'Total' %}</th>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</thead>
<tbody class="table-group-divider">
{% for category in total_table.values %}
<!-- Category row -->
<tr class="table-group-header">
<th>{% if category.name %}{{ category.name }}{% else %}{% trans 'Uncategorized' %}{% endif %}</th>
<td> {# income #}
{% for currency in category.currencies.values %}
{% if showing == 'current' and currency.income_current != 0 %}
<c-amount.display
:amount="currency.income_current"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="green"></c-amount.display>
{% elif showing == 'projected' and currency.income_projected != 0 %}
<c-amount.display
:amount="currency.income_projected"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="green"></c-amount.display>
{% elif showing == 'final' and currency.total_income != 0 %}
<c-amount.display
:amount="currency.total_income"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="green"></c-amount.display>
{% else %}
<div>-</div>
{% endif %}
{% endfor %}
</td>
<td> {# expenses #}
{% for currency in category.currencies.values %}
{% if showing == 'current' and currency.expense_current != 0 %}
<c-amount.display
:amount="currency.expense_current"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="red"></c-amount.display>
{% elif showing == 'projected' and currency.expense_projected != 0 %}
<c-amount.display
:amount="currency.expense_projected"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="red"></c-amount.display>
{% elif showing == 'final' and currency.total_expense != 0 %}
<c-amount.display
:amount="currency.total_expense"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="red"></c-amount.display>
{% else %}
<div>-</div>
{% endif %}
{% endfor %}
</td>
<td> {# total #}
{% for currency in category.currencies.values %}
{% if showing == 'current' and currency.total_current != 0 %}
<c-amount.display
:amount="currency.total_current"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="{% if currency.total_final < 0 %}red{% else %}green{% endif %}"></c-amount.display>
{% elif showing == 'projected' and currency.total_projected != 0 %}
<c-amount.display
:amount="currency.total_projected"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="{% if currency.total_final < 0 %}red{% else %}green{% endif %}"></c-amount.display>
{% elif showing == 'final' and currency.total_final != 0 %}
<c-amount.display
:amount="currency.total_final"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="{% if currency.total_final < 0 %}red{% else %}green{% endif %}"></c-amount.display>
{% else %}
<div>-</div>
{% endif %}
{% endfor %}
</td>
</tr>
<div class="mt-4">
<div class="chart-container" _="init call setupChart() end" style="position: relative; height:90vh; width:100%">
<canvas id="categoryChart"></canvas>
<!-- Tag rows -->
{% if show_tags %}
{% for tag_id, tag in category.tags.items %}
{% if tag.name or not tag.name and category.tags.values|length > 1 %}
<tr class="table-row-nested">
<td class="ps-4">
<i class="fa-solid fa-hashtag fa-fw me-2 text-muted"></i>{% if tag.name %}{{ tag.name }}{% else %}{% trans 'Untagged' %}{% endif %}
</td>
<td>
{% for currency in tag.currencies.values %}
{% if showing == 'current' and currency.income_current != 0 %}
<c-amount.display
:amount="currency.income_current"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="green"></c-amount.display>
{% elif showing == 'projected' and currency.income_projected != 0 %}
<c-amount.display
:amount="currency.income_projected"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="green"></c-amount.display>
{% elif showing == 'final' and currency.total_income != 0 %}
<c-amount.display
:amount="currency.total_income"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="green"></c-amount.display>
{% else %}
<div>-</div>
{% endif %}
{% endfor %}
</td>
<td>
{% for currency in tag.currencies.values %}
{% if showing == 'current' and currency.expense_current != 0 %}
<c-amount.display
:amount="currency.expense_current"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="red"></c-amount.display>
{% elif showing == 'projected' and currency.expense_projected != 0 %}
<c-amount.display
:amount="currency.expense_projected"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="red"></c-amount.display>
{% elif showing == 'final' and currency.total_expense != 0 %}
<c-amount.display
:amount="currency.total_expense"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="red"></c-amount.display>
{% else %}
<div>-</div>
{% endif %}
{% endfor %}
</td>
<td>
{% for currency in tag.currencies.values %}
{% if showing == 'current' and currency.total_current != 0 %}
<c-amount.display
:amount="currency.total_current"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="{% if currency.total_final < 0 %}red{% else %}green{% endif %}"></c-amount.display>
{% elif showing == 'projected' and currency.total_projected != 0 %}
<c-amount.display
:amount="currency.total_projected"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="{% if currency.total_final < 0 %}red{% else %}green{% endif %}"></c-amount.display>
{% elif showing == 'final' and currency.total_final != 0 %}
<c-amount.display
:amount="currency.total_final"
:prefix="currency.currency.prefix"
:suffix="currency.currency.suffix"
:decimal_places="currency.currency.decimal_places"
color="{% if currency.total_final < 0 %}red{% else %}green{% endif %}"></c-amount.display>
{% else %}
<div>-</div>
{% endif %}
{% endfor %}
</td>
</tr>
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
</tbody>
</table>
</div>
</div>
{{ total_table|json_script:"categoryOverviewData" }}
<script>
function setupChart() {
var rawData = JSON.parse(document.getElementById('categoryOverviewData').textContent);
{% elif view_type == "bars" %}
<div>
<div class="chart-container" _="init call setupChart() end" style="position: relative; height:78vh; width:100%">
<canvas id="categoryChart"></canvas>
</div>
</div>
// --- Dynamic Data Processing ---
var categories = [];
var currencyDetails = {}; // Stores details like { BRL: {code: 'BRL', name: 'Real', ...}, ... }
var currencyData = {}; // Stores data arrays like { BRL: [val1, null, val3,...], ... }
{{ total_table|json_script:"categoryOverviewData" }}
{{ showing|json_script:"showingString" }}
// Pass 1: Collect categories and currency details
Object.values(rawData).forEach(cat => {
var categoryName = cat.name === null ? "{% trans 'Uncategorized' %}" : cat.name;
if (!categories.includes(categoryName)) {
categories.push(categoryName);
}
if (cat.currencies) {
Object.values(cat.currencies).forEach(curr => {
var details = curr.currency;
if (details && details.code && !currencyDetails[details.code]) {
var decimals = parseInt(details.decimal_places, 10);
currencyDetails[details.code] = {
code: details.code,
name: details.name || details.code,
prefix: details.prefix || '',
suffix: details.suffix || '',
// Ensure decimal_places is a non-negative integer
decimal_places: !isNaN(decimals) && decimals >= 0 ? decimals : 2
};
}
});
}
});
<script>
function setupChart() {
var rawData = JSON.parse(document.getElementById('categoryOverviewData').textContent);
var showing_string = JSON.parse(document.getElementById('showingString').textContent);
console.log(showing_string)
// Initialize data structure for each currency with nulls
Object.keys(currencyDetails).forEach(code => {
currencyData[code] = new Array(categories.length).fill(null);
});
// --- Dynamic Data Processing ---
var categories = [];
var currencyDetails = {}; // Stores details like { BRL: {code: 'BRL', name: 'Real', ...}, ... }
var currencyData = {}; // Stores data arrays like { BRL: [val1, null, val3,...], ... }
// Pass 2: Populate data arrays (store all valid numbers now)
Object.values(rawData).forEach(cat => {
var categoryName = cat.name === null ? "{% trans 'Uncategorized' %}" : cat.name;
var catIndex = categories.indexOf(categoryName);
if (catIndex === -1) return;
// Pass 1: Collect categories and currency details
Object.values(rawData).forEach(cat => {
var categoryName = cat.name === null ? "{% trans 'Uncategorized' %}" : cat.name;
if (!categories.includes(categoryName)) {
categories.push(categoryName);
}
if (cat.currencies) {
Object.values(cat.currencies).forEach(curr => {
var details = curr.currency;
if (details && details.code && !currencyDetails[details.code]) {
var decimals = parseInt(details.decimal_places, 10);
currencyDetails[details.code] = {
code: details.code,
name: details.name || details.code,
prefix: details.prefix || '',
suffix: details.suffix || '',
// Ensure decimal_places is a non-negative integer
decimal_places: !isNaN(decimals) && decimals >= 0 ? decimals : 2
};
}
});
}
});
if (cat.currencies) {
Object.values(cat.currencies).forEach(curr => {
var code = curr.currency?.code;
if (code && currencyData[code]) {
var value = parseFloat(curr.total_final);
// Store the number if it's valid, otherwise keep null
currencyData[code][catIndex] = !isNaN(value) ? value : null;
}
});
}
});
// Initialize data structure for each currency with nulls
Object.keys(currencyDetails).forEach(code => {
currencyData[code] = new Array(categories.length).fill(null);
});
// --- Dynamic Chart Configuration ---
var datasets = Object.keys(currencyDetails).map((code, index) => {
return {
label: currencyDetails[code].name, // Use currency name for the legend label
data: currencyData[code],
currencyCode: code, // Store code for easy lookup in tooltip
borderWidth: 1
};
});
// Pass 2: Populate data arrays (store all valid numbers now)
Object.values(rawData).forEach(cat => {
var categoryName = cat.name === null ? "{% trans 'Uncategorized' %}" : cat.name;
var catIndex = categories.indexOf(categoryName);
if (catIndex === -1) return;
new Chart(document.getElementById('categoryChart'),
{
type: 'bar',
data: {
labels: categories,
datasets: datasets
},
options: {
indexAxis: 'y',
responsive: true,
interaction: {
intersect: false,
mode: 'nearest',
axis: "y"
},
maintainAspectRatio: false,
plugins: {
title: {
display: false
},
tooltip: {
callbacks: {
label: function (context) {
const dataset = context.dataset;
const currencyCode = dataset.currencyCode;
const details = currencyDetails[currencyCode];
const value = context.parsed.x; // Use 'x' because indexAxis is 'y'
if (cat.currencies) {
Object.values(cat.currencies).forEach(curr => {
var code = curr.currency?.code;
if (code && currencyData[code]) {
if (showing_string == 'current') {
var value = parseFloat(curr.total_current);
} else if (showing_string == 'projected') {
var value = parseFloat(curr.total_projected);
} else {
var value = parseFloat(curr.total_final);
}
if (value === null || value === undefined || !details) {
// Display the category name if the value is null/undefined
return null;
}
// Store the number if it's valid, otherwise keep null
currencyData[code][catIndex] = !isNaN(value) ? value : null;
}
});
}
});
let formattedValue = '';
try {
// Use Intl.NumberFormat for ALL values, configured with locale and exact decimal places
formattedValue = new Intl.NumberFormat(undefined, {
minimumFractionDigits: details.decimal_places,
maximumFractionDigits: details.decimal_places,
// Do NOT use style: 'currency' here, as we add prefix/suffix manually
}).format(value);
} catch (e) {
formattedValue = value.toFixed(details.decimal_places);
}
// --- Dynamic Chart Configuration ---
var datasets = Object.keys(currencyDetails).map((code, index) => {
return {
label: currencyDetails[code].name, // Use currency name for the legend label
data: currencyData[code],
currencyCode: code, // Store code for easy lookup in tooltip
borderWidth: 1
};
});
// Return label with currency name and formatted value including prefix/suffix
return `${details.prefix}${formattedValue}${details.suffix}`;
}
}
},
legend: {
position: 'top',
}
},
scales: {
x: {
stacked: true,
type: 'linear',
title: {
display: true,
text: '{% trans 'Final Total' %}'
},
ticks: {
// Format ticks using the detected locale
callback: function (value, index, ticks) {
return value.toLocaleString();
}
}
},
y: {
stacked: true,
title: {
display: false,
text: '{% trans 'Category' %}'
}
}
}
}
});
}
</script>
new Chart(document.getElementById('categoryChart'),
{
type: 'bar',
data: {
labels: categories,
datasets: datasets
},
options: {
indexAxis: 'y',
responsive: true,
interaction: {
intersect: false,
mode: 'nearest',
axis: "y"
},
maintainAspectRatio: false,
plugins: {
title: {
display: false
},
tooltip: {
callbacks: {
label: function (context) {
const dataset = context.dataset;
const currencyCode = dataset.currencyCode;
const details = currencyDetails[currencyCode];
const value = context.parsed.x; // Use 'x' because indexAxis is 'y'
if (value === null || value === undefined || !details) {
// Display the category name if the value is null/undefined
return null;
}
let formattedValue = '';
try {
// Use Intl.NumberFormat for ALL values, configured with locale and exact decimal places
formattedValue = new Intl.NumberFormat(undefined, {
minimumFractionDigits: details.decimal_places,
maximumFractionDigits: details.decimal_places,
// Do NOT use style: 'currency' here, as we add prefix/suffix manually
}).format(value);
} catch (e) {
formattedValue = value.toFixed(details.decimal_places);
}
// Return label with currency name and formatted value including prefix/suffix
return `${details.prefix}${formattedValue}${details.suffix}`;
}
}
},
legend: {
position: 'top',
}
},
scales: {
x: {
stacked: true,
type: 'linear',
title: {
display: true,
text: '{% trans 'Final Total' %}'
},
ticks: {
// Format ticks using the detected locale
callback: function (value, index, ticks) {
return value.toLocaleString();
}
}
},
y: {
stacked: true,
title: {
display: false,
text: '{% trans 'Category' %}'
}
}
}
}
});
}
</script>
{% endif %}
{% else %}
<c-msg.empty title="{% translate "No categories" %}"></c-msg.empty>
{% endif %}

View File

@@ -2,6 +2,8 @@
{% load crispy_forms_tags %}
{% load i18n %}
{% block title %}{% translate 'Insights' %}{% endblock %}
{% block content %}
<div class="container-fluid">
<div class="row my-3 h-100">