From 58e2aa3c8a09d6c16dd37cb20d4416f844777635 Mon Sep 17 00:00:00 2001 From: eitchtee <10510126+eitchtee@users.noreply.github.com> Date: Sun, 8 Nov 2026 18:27:34 +0000 Subject: [PATCH] chore(locale): update translation files [skip ci] Automatically generated by Django makemessages workflow --- app/locale/de/LC_MESSAGES/django.po | 874 +++++++++++++++++----- app/locale/en/LC_MESSAGES/django.po | 816 ++++++++++++++++----- app/locale/es/LC_MESSAGES/django.po | 876 ++++++++++++++++++----- app/locale/fr/LC_MESSAGES/django.po | 876 ++++++++++++++++++----- app/locale/hu/LC_MESSAGES/django.po | 842 +++++++++++++++++----- app/locale/id/LC_MESSAGES/django.po | 816 ++++++++++++++++----- app/locale/it/LC_MESSAGES/django.po | 876 ++++++++++++++++++----- app/locale/nl/LC_MESSAGES/django.po | 876 ++++++++++++++++++----- app/locale/pl/LC_MESSAGES/django.po | 860 +++++++++++++++++----- app/locale/pt_BR/LC_MESSAGES/django.po | 876 ++++++++++++++++++----- app/locale/ru/LC_MESSAGES/django.po | 866 +++++++++++++++++----- app/locale/sv/LC_MESSAGES/django.po | 818 ++++++++++++++++----- app/locale/sw/LC_MESSAGES/django.po | 818 ++++++++++++++++----- app/locale/uk/LC_MESSAGES/django.po | 852 +++++++++++++++++----- app/locale/zh_Hant/LC_MESSAGES/django.po | 874 +++++++++++++++++----- 15 files changed, 9858 insertions(+), 2958 deletions(-) diff --git a/app/locale/de/LC_MESSAGES/django.po b/app/locale/de/LC_MESSAGES/django.po index 70fd32d0..4ed1ee37 100644 --- a/app/locale/de/LC_MESSAGES/django.po +++ b/app/locale/de/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-11-08 13:19+0000\n" +"POT-Creation-Date: 2026-11-08 18:27+0000\n" "PO-Revision-Date: 2026-08-10 12:57+0000\n" "Last-Translator: GitEbu \n" "Language-Team: German \n" "Language-Team: LANGUAGE \n" @@ -18,73 +18,80 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps/accounts/forms.py:28 +#: apps/accounts/forms.py:33 msgid "Group name" msgstr "" -#: apps/accounts/forms.py:43 apps/accounts/forms.py:109 -#: apps/currencies/forms.py:57 apps/currencies/forms.py:91 -#: apps/currencies/forms.py:166 apps/dca/forms.py:46 apps/dca/forms.py:192 -#: apps/import_app/forms.py:32 apps/rules/forms.py:60 apps/rules/forms.py:100 -#: apps/rules/forms.py:385 apps/transactions/forms.py:219 -#: apps/transactions/forms.py:452 apps/transactions/forms.py:571 -#: apps/transactions/forms.py:718 apps/transactions/forms.py:940 -#: apps/transactions/forms.py:987 apps/transactions/forms.py:1015 -#: apps/transactions/forms.py:1046 apps/transactions/forms.py:1208 -#: apps/users/forms.py:264 apps/users/forms.py:422 +#: apps/accounts/forms.py:48 apps/accounts/forms.py:76 +#: apps/accounts/forms.py:184 apps/currencies/forms.py:57 +#: apps/currencies/forms.py:91 apps/currencies/forms.py:168 +#: apps/dca/forms.py:46 apps/dca/forms.py:192 apps/import_app/forms.py:32 +#: apps/rules/forms.py:60 apps/rules/forms.py:100 apps/rules/forms.py:385 +#: apps/transactions/forms.py:219 apps/transactions/forms.py:452 +#: apps/transactions/forms.py:571 apps/transactions/forms.py:718 +#: apps/transactions/forms.py:940 apps/transactions/forms.py:987 +#: apps/transactions/forms.py:1015 apps/transactions/forms.py:1046 +#: apps/transactions/forms.py:1208 apps/users/forms.py:264 +#: apps/users/forms.py:422 #: templates/rules/fragments/transaction_rule/dry_run/updated.html:5 #: templates/rules/fragments/transaction_rule/view.html:128 msgid "Update" msgstr "" -#: apps/accounts/forms.py:49 apps/accounts/forms.py:115 -#: apps/common/widgets/tom_select.py:15 apps/currencies/forms.py:63 -#: apps/currencies/forms.py:97 apps/currencies/forms.py:172 -#: apps/dca/forms.py:52 apps/dca/forms.py:198 apps/import_app/forms.py:38 -#: apps/rules/forms.py:66 apps/rules/forms.py:106 apps/rules/forms.py:391 -#: apps/transactions/forms.py:206 apps/transactions/forms.py:226 -#: apps/transactions/forms.py:459 apps/transactions/forms.py:946 -#: apps/transactions/forms.py:993 apps/transactions/forms.py:1021 -#: apps/transactions/forms.py:1052 apps/transactions/forms.py:1214 -#: apps/users/forms.py:270 apps/users/forms.py:428 -#: templates/mini_tools/simulator.html:177 +#: apps/accounts/forms.py:54 apps/accounts/forms.py:76 +#: apps/accounts/forms.py:190 apps/common/widgets/tom_select.py:15 +#: apps/currencies/forms.py:63 apps/currencies/forms.py:97 +#: apps/currencies/forms.py:174 apps/dca/forms.py:52 apps/dca/forms.py:198 +#: apps/import_app/forms.py:38 apps/rules/forms.py:66 apps/rules/forms.py:106 +#: apps/rules/forms.py:391 apps/transactions/forms.py:206 +#: apps/transactions/forms.py:226 apps/transactions/forms.py:459 +#: apps/transactions/forms.py:946 apps/transactions/forms.py:993 +#: apps/transactions/forms.py:1021 apps/transactions/forms.py:1052 +#: apps/transactions/forms.py:1214 apps/users/forms.py:270 +#: apps/users/forms.py:428 templates/mini_tools/simulator.html:177 #: templates/mini_tools/unit_price_calculator.html:168 msgid "Add" msgstr "" -#: apps/accounts/forms.py:57 templates/accounts/fragments/list.html:23 +#: apps/accounts/forms.py:86 templates/accounts/fragments/list.html:23 msgid "Group" msgstr "" -#: apps/accounts/forms.py:123 +#: apps/accounts/forms.py:93 apps/accounts/models.py:73 +#: apps/accounts/models.py:130 +#: templates/investments/fragments/rebalance.html:22 +msgid "Asset class" +msgstr "" + +#: apps/accounts/forms.py:198 msgid "New balance" msgstr "" -#: apps/accounts/forms.py:129 apps/dca/forms.py:79 apps/dca/forms.py:86 +#: apps/accounts/forms.py:204 apps/dca/forms.py:79 apps/dca/forms.py:86 #: apps/insights/forms.py:117 apps/insights/views.py:44 apps/rules/forms.py:181 #: apps/rules/forms.py:197 apps/rules/models.py:44 apps/rules/models.py:311 #: apps/transactions/forms.py:62 apps/transactions/forms.py:330 #: apps/transactions/forms.py:510 apps/transactions/forms.py:607 #: apps/transactions/forms.py:614 apps/transactions/forms.py:823 #: apps/transactions/forms.py:1075 apps/transactions/models.py:357 -#: apps/transactions/models.py:743 apps/transactions/models.py:999 -#: apps/transactions/models.py:1306 +#: apps/transactions/models.py:767 apps/transactions/models.py:1023 +#: apps/transactions/models.py:1330 #: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/year_by_year.html:52 msgid "Category" msgstr "" -#: apps/accounts/forms.py:136 apps/dca/forms.py:95 apps/dca/forms.py:103 -#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 +#: apps/accounts/forms.py:211 apps/dca/forms.py:95 apps/dca/forms.py:103 +#: apps/export_app/forms.py:43 apps/export_app/forms.py:134 #: apps/insights/views.py:50 apps/rules/forms.py:184 apps/rules/forms.py:194 #: apps/rules/models.py:45 apps/rules/models.py:315 #: apps/transactions/filters.py:79 apps/transactions/forms.py:70 #: apps/transactions/forms.py:338 apps/transactions/forms.py:518 #: apps/transactions/forms.py:623 apps/transactions/forms.py:631 #: apps/transactions/forms.py:816 apps/transactions/forms.py:1068 -#: apps/transactions/models.py:363 apps/transactions/models.py:745 -#: apps/transactions/models.py:1003 apps/transactions/models.py:1312 -#: templates/includes/sidebar.html:156 +#: apps/transactions/models.py:363 apps/transactions/models.py:769 +#: apps/transactions/models.py:1027 apps/transactions/models.py:1336 +#: templates/includes/sidebar.html:162 #: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/year_by_year.html:24 @@ -93,23 +100,23 @@ msgstr "" msgid "Tags" msgstr "" -#: apps/accounts/forms.py:179 +#: apps/accounts/forms.py:254 msgid "All paid transactions" msgstr "" -#: apps/accounts/forms.py:180 +#: apps/accounts/forms.py:255 msgid "Up to date" msgstr "" -#: apps/accounts/forms.py:181 +#: apps/accounts/forms.py:256 msgid "Up to reference month" msgstr "" -#: apps/accounts/forms.py:185 +#: apps/accounts/forms.py:260 msgid "Balance against" msgstr "" -#: apps/accounts/forms.py:189 apps/currencies/forms.py:70 +#: apps/accounts/forms.py:264 apps/currencies/forms.py:70 #: apps/dca/models.py:158 apps/rules/forms.py:176 apps/rules/forms.py:190 #: apps/rules/models.py:38 apps/rules/models.py:279 #: apps/transactions/forms.py:86 apps/transactions/forms.py:482 @@ -120,14 +127,15 @@ msgstr "" msgid "Date" msgstr "" -#: apps/accounts/forms.py:194 +#: apps/accounts/forms.py:269 msgid "Reference month" msgstr "" -#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 +#: apps/accounts/models.py:19 apps/accounts/models.py:36 +#: apps/accounts/models.py:84 apps/dca/models.py:13 #: apps/import_app/models.py:20 apps/rules/models.py:13 #: apps/transactions/models.py:249 apps/transactions/models.py:274 -#: apps/transactions/models.py:298 apps/transactions/models.py:1274 +#: apps/transactions/models.py:298 apps/transactions/models.py:1298 #: apps/users/models.py:577 templates/account_groups/fragments/list.html:22 #: templates/accounts/fragments/list.html:22 #: templates/categories/fragments/table.html:17 @@ -136,6 +144,7 @@ msgstr "" #: templates/exchange_rates_services/fragments/list.html:28 #: templates/import_app/fragments/profiles/list.html:34 #: templates/installment_plans/fragments/table.html:16 +#: templates/investment_classes/fragments/list.html:27 #: templates/quick_transactions/fragments/list.html:13 #: templates/recurring_transactions/fragments/table.html:18 #: templates/rules/fragments/list.html:24 @@ -144,42 +153,119 @@ msgstr "" msgid "Name" msgstr "" -#: apps/accounts/models.py:18 apps/accounts/models.py:33 +#: apps/accounts/models.py:25 apps/accounts/models.py:88 msgid "Account Group" msgstr "" -#: apps/accounts/models.py:19 templates/account_groups/fragments/list.html:9 +#: apps/accounts/models.py:26 templates/account_groups/fragments/list.html:9 #: templates/account_groups/pages/index.html:4 -#: templates/includes/sidebar.html:176 +#: templates/includes/sidebar.html:182 msgid "Account Groups" msgstr "" -#: apps/accounts/models.py:39 apps/currencies/models.py:44 +#: apps/accounts/models.py:43 +msgid "Target allocation (%)" +msgstr "" + +#: apps/accounts/models.py:45 +msgid "" +"Share of your investments you want in this class. Leave it empty to leave " +"the class out of the targets." +msgstr "" + +#: apps/accounts/models.py:61 +msgid "You already have an asset class with this name." +msgstr "" + +#: apps/accounts/models.py:66 +#, python-format +msgid "" +"Targets can't add up to more than 100%%. Other classes already take " +"%(taken)s%%." +msgstr "" + +#: apps/accounts/models.py:74 apps/export_app/forms.py:131 +#: templates/includes/sidebar.html:190 +#: templates/investment_classes/fragments/list.html:9 +#: templates/investment_classes/pages/index.html:4 +#: templates/investments/fragments/rebalance.html:6 +#: templates/investments/fragments/rebalance.html:11 +msgid "Asset classes" +msgstr "" + +#: apps/accounts/models.py:94 apps/currencies/models.py:44 #: templates/accounts/fragments/list.html:24 #: templates/mini_tools/simulator.html:37 #: templates/yearly_overview/pages/yearly_overview_base.html:19 msgid "Currency" msgstr "" -#: apps/accounts/models.py:45 apps/currencies/models.py:27 +#: apps/accounts/models.py:100 apps/currencies/models.py:27 #: templates/accounts/fragments/list.html:25 msgid "Exchange Currency" msgstr "" -#: apps/accounts/models.py:50 apps/currencies/models.py:32 +#: apps/accounts/models.py:105 apps/currencies/models.py:32 msgid "Default currency for exchange calculations" msgstr "" -#: apps/accounts/models.py:55 +#: apps/accounts/models.py:110 msgid "Asset account" msgstr "" -#: apps/accounts/models.py:57 +#: apps/accounts/models.py:112 msgid "" "Asset accounts count towards your Net Worth, but not towards your month." msgstr "" -#: apps/accounts/models.py:62 apps/currencies/models.py:37 +#: apps/accounts/models.py:117 templates/investments/fragments/list.html:46 +msgid "Investment" +msgstr "" + +#: apps/accounts/models.py:119 +msgid "" +"Show this account in the Investments tracker. Set an exchange currency to " +"price it by units (stocks, ETFs, crypto); leave it empty to track it by " +"value (fixed income, property, pensions)." +msgstr "" + +#: apps/accounts/models.py:132 +msgid "" +"Groups investments in the allocation charts, e.g. Fixed income, Stocks, Real " +"estate." +msgstr "" + +#: apps/accounts/models.py:140 +msgid "Income entities" +msgstr "" + +#: apps/accounts/models.py:142 +msgid "" +"Transactions with any of these entities count towards this investment's " +"return: in this account, and income paid into other accounts (dividends, " +"rent)." +msgstr "" + +#: apps/accounts/models.py:151 +msgid "Income categories" +msgstr "" + +#: apps/accounts/models.py:153 +msgid "" +"Transactions in this account with any of these categories are its result " +"(interest, taxes, fees). On accounts tracked by value, everything else that " +"isn't a transfer counts as money coming in or going out." +msgstr "" + +#: apps/accounts/models.py:162 +msgid "Income tags" +msgstr "" + +#: apps/accounts/models.py:164 +msgid "Same as income categories, for transactions with any of these tags." +msgstr "" + +#: apps/accounts/models.py:169 apps/currencies/models.py:37 #: templates/accounts/fragments/list.html:27 #: templates/categories/fragments/list.html:20 #: templates/currencies/fragments/list.html:24 @@ -188,17 +274,17 @@ msgstr "" msgid "Archived" msgstr "" -#: apps/accounts/models.py:63 +#: apps/accounts/models.py:170 msgid "Archived accounts don't show up nor count towards your net worth" msgstr "" -#: apps/accounts/models.py:75 apps/rules/forms.py:173 apps/rules/forms.py:187 +#: apps/accounts/models.py:182 apps/rules/forms.py:173 apps/rules/forms.py:187 #: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/transactions/forms.py:82 apps/transactions/forms.py:350 #: apps/transactions/forms.py:477 apps/transactions/forms.py:808 #: apps/transactions/forms.py:1060 apps/transactions/models.py:329 -#: apps/transactions/models.py:703 apps/transactions/models.py:981 -#: apps/transactions/models.py:1280 +#: apps/transactions/models.py:727 apps/transactions/models.py:1005 +#: apps/transactions/models.py:1304 #: templates/installment_plans/fragments/table.html:17 #: templates/quick_transactions/fragments/list.html:14 #: templates/recurring_transactions/fragments/table.html:19 @@ -206,17 +292,17 @@ msgstr "" msgid "Account" msgstr "" -#: apps/accounts/models.py:76 apps/export_app/forms.py:19 -#: apps/export_app/forms.py:129 apps/transactions/filters.py:63 +#: apps/accounts/models.py:183 apps/export_app/forms.py:19 +#: apps/export_app/forms.py:130 apps/transactions/filters.py:63 #: templates/accounts/fragments/list.html:9 -#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:168 -#: templates/includes/sidebar.html:170 +#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:174 +#: templates/includes/sidebar.html:176 #: templates/monthly_overview/pages/overview.html:77 #: templates/transactions/pages/transactions.html:26 msgid "Accounts" msgstr "" -#: apps/accounts/models.py:93 +#: apps/accounts/models.py:200 msgid "Exchange currency cannot be the same as the account's main currency." msgstr "" @@ -308,7 +394,7 @@ msgstr "" msgid "Invalid entity data. Provide an ID or name." msgstr "" -#: apps/api/serializers/transactions.py:141 apps/transactions/models.py:953 +#: apps/api/serializers/transactions.py:141 apps/transactions/models.py:977 msgid "This field is required." msgstr "" @@ -328,13 +414,14 @@ msgstr "" msgid "Shared with users" msgstr "" -#: apps/common/fields/forms/dynamic_select.py:71 -#: apps/common/fields/forms/dynamic_select.py:142 +#: apps/common/fields/forms/dynamic_select.py:79 +#: apps/common/fields/forms/dynamic_select.py:150 msgid "Error creating new instance" msgstr "" #: apps/common/fields/forms/grouped_select.py:24 #: apps/common/widgets/tom_select.py:94 apps/common/widgets/tom_select.py:97 +#: templates/investments/fragments/list.html:26 msgid "Ungrouped" msgstr "" @@ -477,6 +564,7 @@ msgid "Today" msgstr "" #: apps/common/widgets/datepicker.py:142 +#: templates/investments/fragments/rebalance.html:24 msgid "Now" msgstr "" @@ -526,10 +614,10 @@ msgid "Decimal Places" msgstr "" #: apps/currencies/models.py:45 apps/export_app/forms.py:25 -#: apps/export_app/forms.py:130 apps/transactions/filters.py:70 +#: apps/export_app/forms.py:132 apps/transactions/filters.py:70 #: templates/currencies/fragments/list.html:9 -#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:182 -#: templates/includes/sidebar.html:184 +#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:196 +#: templates/includes/sidebar.html:198 #: templates/monthly_overview/pages/overview.html:63 #: templates/transactions/pages/transactions.html:12 msgid "Currencies" @@ -561,9 +649,9 @@ msgid "Auto" msgstr "" #: apps/currencies/models.py:82 apps/export_app/forms.py:67 -#: apps/export_app/forms.py:142 templates/exchange_rates/fragments/list.html:10 +#: apps/export_app/forms.py:144 templates/exchange_rates/fragments/list.html:10 #: templates/exchange_rates/pages/index.html:4 -#: templates/includes/sidebar.html:190 +#: templates/includes/sidebar.html:204 msgid "Exchange Rates" msgstr "" @@ -652,36 +740,47 @@ msgid "" msgstr "" #: apps/currencies/models.py:171 -msgid "Single exchange rate" +msgid "One exchange rate per day" msgstr "" #: apps/currencies/models.py:174 -msgid "Create one exchange rate and keep updating it. Avoids database clutter." +msgid "" +"Update the day's exchange rate on each fetch instead of adding a new one." msgstr "" -#: apps/currencies/models.py:179 +#: apps/currencies/models.py:178 +msgid "Exchange rates to keep" +msgstr "" + +#: apps/currencies/models.py:183 +msgid "" +"Keep at most this many automatic exchange rates per currency pair, deleting " +"the oldest first. Leave empty to keep all." +msgstr "" + +#: apps/currencies/models.py:188 msgid "Exchange Rate Service" msgstr "" -#: apps/currencies/models.py:180 +#: apps/currencies/models.py:189 msgid "Exchange Rate Services" msgstr "" -#: apps/currencies/models.py:234 +#: apps/currencies/models.py:243 msgid "'Every X hours' interval type requires a positive integer." msgstr "" -#: apps/currencies/models.py:243 +#: apps/currencies/models.py:252 msgid "'Every X hours' interval must be between 1 and 24." msgstr "" -#: apps/currencies/models.py:257 +#: apps/currencies/models.py:266 msgid "" "Invalid hour format. Use comma-separated hours (0-23) and/or ranges (e.g., " "'1-5,8,10-12')." msgstr "" -#: apps/currencies/models.py:268 +#: apps/currencies/models.py:277 msgid "" "Invalid format. Please check the requirements for your selected interval " "type." @@ -761,11 +860,11 @@ msgid "You must provide an account." msgstr "" #: apps/dca/forms.py:277 apps/transactions/forms.py:752 -#: apps/transactions/models.py:956 +#: apps/transactions/models.py:980 msgid "From and To accounts must be different." msgstr "" -#: apps/dca/forms.py:291 +#: apps/dca/forms.py:299 #, python-format msgid "DCA for %(strategy_name)s" msgstr "" @@ -781,8 +880,8 @@ msgstr "" #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/transactions/forms.py:504 apps/transactions/forms.py:651 -#: apps/transactions/models.py:353 apps/transactions/models.py:752 -#: apps/transactions/models.py:1009 apps/transactions/models.py:1302 +#: apps/transactions/models.py:353 apps/transactions/models.py:776 +#: apps/transactions/models.py:1033 apps/transactions/models.py:1326 msgid "Notes" msgstr "" @@ -790,7 +889,7 @@ msgstr "" msgid "DCA Strategy" msgstr "" -#: apps/dca/models.py:35 apps/export_app/forms.py:150 +#: apps/dca/models.py:35 apps/export_app/forms.py:152 msgid "DCA Strategies" msgstr "" @@ -810,7 +909,7 @@ msgstr "" msgid "DCA Entry" msgstr "" -#: apps/dca/models.py:187 apps/export_app/forms.py:151 +#: apps/dca/models.py:187 apps/export_app/forms.py:153 msgid "DCA Entries" msgstr "" @@ -838,25 +937,25 @@ msgstr "" msgid "Entry deleted successfully" msgstr "" -#: apps/export_app/forms.py:13 apps/export_app/forms.py:128 -#: templates/includes/sidebar.html:227 templates/users/fragments/list.html:10 +#: apps/export_app/forms.py:13 apps/export_app/forms.py:129 +#: templates/includes/sidebar.html:241 templates/users/fragments/list.html:10 #: templates/users/pages/index.html:4 msgid "Users" msgstr "" -#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 +#: apps/export_app/forms.py:31 apps/export_app/forms.py:136 #: apps/transactions/models.py:422 templates/includes/sidebar.html:81 -#: templates/includes/sidebar.html:148 +#: templates/includes/sidebar.html:154 #: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/table.html:37 #: templates/transactions/pages/transactions.html:5 msgid "Transactions" msgstr "" -#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 +#: apps/export_app/forms.py:37 apps/export_app/forms.py:133 #: apps/insights/views.py:43 apps/transactions/filters.py:74 #: templates/categories/fragments/list.html:9 -#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:150 +#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/year_by_year.html:13 @@ -864,16 +963,16 @@ msgstr "" msgid "Categories" msgstr "" -#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 +#: apps/export_app/forms.py:49 apps/export_app/forms.py:135 #: apps/insights/views.py:57 apps/rules/forms.py:185 apps/rules/forms.py:195 #: apps/rules/models.py:46 apps/rules/models.py:307 #: apps/transactions/filters.py:84 apps/transactions/forms.py:78 #: apps/transactions/forms.py:346 apps/transactions/forms.py:526 #: apps/transactions/forms.py:831 apps/transactions/forms.py:1083 #: apps/transactions/models.py:312 apps/transactions/models.py:368 -#: apps/transactions/models.py:748 apps/transactions/models.py:1006 -#: apps/transactions/models.py:1317 templates/entities/fragments/list.html:9 -#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:162 +#: apps/transactions/models.py:772 apps/transactions/models.py:1030 +#: apps/transactions/models.py:1341 templates/entities/fragments/list.html:9 +#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:168 #: templates/insights/fragments/month_by_month.html:40 #: templates/insights/fragments/month_by_month.html:43 #: templates/insights/fragments/year_by_year.html:35 @@ -881,28 +980,28 @@ msgstr "" msgid "Entities" msgstr "" -#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 -#: apps/transactions/models.py:1046 templates/includes/sidebar.html:110 +#: apps/export_app/forms.py:55 apps/export_app/forms.py:139 +#: apps/transactions/models.py:1070 templates/includes/sidebar.html:110 #: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/pages/index.html:4 msgid "Recurring Transactions" msgstr "" -#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 -#: apps/transactions/models.py:766 templates/includes/sidebar.html:104 +#: apps/export_app/forms.py:61 apps/export_app/forms.py:137 +#: apps/transactions/models.py:790 templates/includes/sidebar.html:104 #: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/pages/index.html:4 msgid "Installment Plans" msgstr "" -#: apps/export_app/forms.py:73 apps/export_app/forms.py:140 +#: apps/export_app/forms.py:73 apps/export_app/forms.py:142 #: templates/exchange_rates_services/fragments/list.html:10 #: templates/exchange_rates_services/pages/index.html:4 -#: templates/includes/sidebar.html:218 +#: templates/includes/sidebar.html:232 msgid "Automatic Exchange Rates" msgstr "" -#: apps/export_app/forms.py:79 templates/includes/sidebar.html:198 +#: apps/export_app/forms.py:79 templates/includes/sidebar.html:212 #: templates/rules/fragments/list.html:9 templates/rules/pages/index.html:4 msgid "Rules" msgstr "" @@ -911,57 +1010,57 @@ msgstr "" msgid "DCA" msgstr "" -#: apps/export_app/forms.py:91 apps/export_app/forms.py:152 +#: apps/export_app/forms.py:91 apps/export_app/forms.py:154 #: templates/import_app/fragments/profiles/list.html:21 #: templates/import_app/pages/profiles_index.html:4 msgid "Import Profiles" msgstr "" -#: apps/export_app/forms.py:117 templates/export_app/fragments/export.html:5 +#: apps/export_app/forms.py:118 templates/export_app/fragments/export.html:5 #: templates/export_app/pages/index.html:13 msgid "Export" msgstr "" -#: apps/export_app/forms.py:125 +#: apps/export_app/forms.py:126 msgid "Import a ZIP file exported from WYGIWYH" msgstr "" -#: apps/export_app/forms.py:126 +#: apps/export_app/forms.py:127 msgid "ZIP File" msgstr "" -#: apps/export_app/forms.py:143 apps/rules/models.py:27 +#: apps/export_app/forms.py:145 apps/rules/models.py:27 msgid "Transaction rules" msgstr "" -#: apps/export_app/forms.py:145 apps/rules/models.py:68 +#: apps/export_app/forms.py:147 apps/rules/models.py:68 msgid "Edit transaction action" msgstr "" -#: apps/export_app/forms.py:148 apps/rules/models.py:327 +#: apps/export_app/forms.py:150 apps/rules/models.py:327 msgid "Update or create transaction actions" msgstr "" -#: apps/export_app/forms.py:181 templates/cotton/transaction/item.html:341 +#: apps/export_app/forms.py:183 templates/cotton/transaction/item.html:341 #: templates/cotton/ui/deleted_transactions_action_bar.html:53 #: templates/export_app/fragments/restore.html:5 #: templates/export_app/pages/index.html:19 msgid "Restore" msgstr "" -#: apps/export_app/forms.py:191 +#: apps/export_app/forms.py:193 msgid "Please upload either a ZIP file or at least one CSV file" msgstr "" -#: apps/export_app/views.py:177 +#: apps/export_app/views.py:183 msgid "You have to select at least one export" msgstr "" -#: apps/export_app/views.py:197 +#: apps/export_app/views.py:203 msgid "Data restored successfully" msgstr "" -#: apps/export_app/views.py:209 +#: apps/export_app/views.py:215 msgid "" "There was an error restoring your data. Check the logs for more details." msgstr "" @@ -972,7 +1071,7 @@ msgstr "" #: apps/import_app/forms.py:55 #: templates/import_app/fragments/profiles/list.html:75 -#: templates/includes/sidebar.html:204 +#: templates/includes/sidebar.html:218 msgid "Import" msgstr "" @@ -1105,7 +1204,7 @@ msgstr "" msgid "Untagged" msgstr "" -#: apps/insights/views.py:53 apps/transactions/models.py:589 +#: apps/insights/views.py:53 apps/transactions/models.py:613 #: templates/tags/fragments/table.html:69 msgid "No tags" msgstr "" @@ -1126,6 +1225,26 @@ msgstr "" msgid "No entities" msgstr "" +#: apps/investments/views.py:104 +msgid "Other" +msgstr "" + +#: apps/investments/views.py:135 +msgid "Unclassified" +msgstr "" + +#: apps/investments/views.py:267 +msgid "Asset class added successfully" +msgstr "" + +#: apps/investments/views.py:275 +msgid "Asset class updated successfully" +msgstr "" + +#: apps/investments/views.py:296 +msgid "Asset class deleted successfully" +msgstr "" + #: apps/net_worth/views.py:137 templates/net_worth/net_worth.html:84 #: templates/net_worth/net_worth.html:85 msgid "Consolidated" @@ -1179,8 +1298,8 @@ msgstr "" #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/models.py:271 apps/transactions/forms.py:468 -#: apps/transactions/models.py:336 apps/transactions/models.py:708 -#: apps/transactions/models.py:987 apps/transactions/models.py:1287 +#: apps/transactions/models.py:336 apps/transactions/models.py:732 +#: apps/transactions/models.py:1011 apps/transactions/models.py:1311 #: templates/mini_tools/simulator.html:63 msgid "Type" msgstr "" @@ -1188,7 +1307,7 @@ msgstr "" #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/transactions/forms.py:472 apps/transactions/models.py:338 -#: apps/transactions/models.py:1289 templates/cotton/transaction/item.html:23 +#: apps/transactions/models.py:1313 templates/cotton/transaction/item.html:23 #: templates/cotton/transaction/item.html:34 #: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 @@ -1199,14 +1318,14 @@ msgstr "" #: apps/rules/models.py:283 apps/transactions/forms.py:90 #: apps/transactions/forms.py:488 apps/transactions/forms.py:638 #: apps/transactions/forms.py:837 apps/transactions/models.py:340 -#: apps/transactions/models.py:726 apps/transactions/models.py:1011 +#: apps/transactions/models.py:750 apps/transactions/models.py:1035 msgid "Reference Date" msgstr "" #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/models.py:287 apps/transactions/forms.py:495 -#: apps/transactions/models.py:346 apps/transactions/models.py:992 -#: apps/transactions/models.py:1295 +#: apps/transactions/models.py:346 apps/transactions/models.py:1016 +#: apps/transactions/models.py:1319 #: templates/insights/fragments/sankey.html:102 #: templates/installment_plans/fragments/table.html:18 #: templates/mini_tools/simulator.html:70 @@ -1218,27 +1337,27 @@ msgstr "" #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/transactions/forms.py:499 apps/transactions/forms.py:642 -#: apps/transactions/models.py:351 apps/transactions/models.py:710 -#: apps/transactions/models.py:995 apps/transactions/models.py:1300 +#: apps/transactions/models.py:351 apps/transactions/models.py:734 +#: apps/transactions/models.py:1019 apps/transactions/models.py:1324 msgid "Description" msgstr "" #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/models.py:299 apps/transactions/models.py:398 -#: apps/transactions/models.py:1322 +#: apps/transactions/models.py:1346 msgid "Internal Note" msgstr "" #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/models.py:303 apps/transactions/models.py:400 -#: apps/transactions/models.py:1324 +#: apps/transactions/models.py:1348 msgid "Internal ID" msgstr "" #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/models.py:319 apps/transactions/forms.py:655 #: apps/transactions/models.py:250 apps/transactions/models.py:341 -#: apps/transactions/models.py:1290 +#: apps/transactions/models.py:1314 msgid "Mute" msgstr "" @@ -1251,7 +1370,7 @@ msgid "Set Values" msgstr "" #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 -#: apps/transactions/models.py:421 apps/transactions/models.py:645 +#: apps/transactions/models.py:421 apps/transactions/models.py:669 msgid "Transaction" msgstr "" @@ -1287,7 +1406,12 @@ msgstr "" msgid "Field" msgstr "" -#: apps/rules/models.py:61 +#: apps/rules/models.py:61 templates/investments/fragments/charts.html:86 +#: templates/investments/fragments/detail.html:103 +#: templates/investments/fragments/detail.html:162 +#: templates/investments/fragments/list.html:48 +#: templates/investments/fragments/list.html:49 +#: templates/investments/fragments/rebalance.html:23 msgid "Value" msgstr "" @@ -1469,7 +1593,7 @@ msgid "Upload" msgstr "" #: apps/transactions/forms.py:355 apps/transactions/forms.py:1089 -#: apps/transactions/models.py:925 +#: apps/transactions/models.py:949 msgid "To account" msgstr "" @@ -1485,8 +1609,8 @@ msgstr "" msgid "To Amount" msgstr "" -#: apps/transactions/forms.py:718 apps/transactions/models.py:970 -#: apps/transactions/models.py:1267 templates/cotton/transaction/item.html:52 +#: apps/transactions/forms.py:718 apps/transactions/models.py:994 +#: apps/transactions/models.py:1291 templates/cotton/transaction/item.html:52 #: templates/cotton/transaction/item.html:60 #: templates/cotton/ui/quick_transactions_buttons.html:40 #: templates/cotton/ui/transactions_fab.html:44 @@ -1546,8 +1670,8 @@ msgid "" "transactions" msgstr "" -#: apps/transactions/models.py:323 apps/transactions/models.py:969 -#: apps/transactions/models.py:1266 +#: apps/transactions/models.py:323 apps/transactions/models.py:993 +#: apps/transactions/models.py:1290 #: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:52 @@ -1555,13 +1679,19 @@ msgstr "" #: templates/cotton/ui/quick_transactions_buttons.html:10 #: templates/cotton/ui/transactions_fab.html:10 #: templates/insights/fragments/overview/_results.html:12 +#: templates/investments/fragments/_totals.html:21 +#: templates/investments/fragments/_totals.html:42 +#: templates/investments/fragments/detail.html:106 +#: templates/investments/fragments/detail.html:210 +#: templates/investments/fragments/detail.html:252 +#: templates/investments/fragments/detail.html:320 #: templates/mini_tools/simulator.html:66 #: templates/monthly_overview/fragments/monthly_summary.html:42 msgid "Income" msgstr "" -#: apps/transactions/models.py:324 apps/transactions/models.py:971 -#: apps/transactions/models.py:1268 +#: apps/transactions/models.py:324 apps/transactions/models.py:995 +#: apps/transactions/models.py:1292 #: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:56 @@ -1573,14 +1703,14 @@ msgstr "" msgid "Expense" msgstr "" -#: apps/transactions/models.py:379 apps/transactions/models.py:765 +#: apps/transactions/models.py:379 apps/transactions/models.py:789 #: templates/cotton/transaction/item.html:291 #: templates/cotton/transaction/item.html:308 #: templates/cotton/transaction/item.html:318 msgid "Installment Plan" msgstr "" -#: apps/transactions/models.py:388 apps/transactions/models.py:1045 +#: apps/transactions/models.py:388 apps/transactions/models.py:1069 #: templates/cotton/transaction/item.html:281 #: templates/cotton/transaction/item.html:301 msgid "Recurring Transaction" @@ -1598,150 +1728,162 @@ msgstr "" msgid "Deleted At" msgstr "" -#: apps/transactions/models.py:591 +#: apps/transactions/models.py:517 +msgid "A transfer needs one expense and one income." +msgstr "" + +#: apps/transactions/models.py:519 +msgid "A transfer needs two different accounts." +msgstr "" + +#: apps/transactions/models.py:523 +msgid "This transaction is already part of another transfer." +msgstr "" + +#: apps/transactions/models.py:615 msgid "No category" msgstr "" -#: apps/transactions/models.py:593 +#: apps/transactions/models.py:617 msgid "No description" msgstr "" -#: apps/transactions/models.py:650 +#: apps/transactions/models.py:674 msgid "File" msgstr "" -#: apps/transactions/models.py:652 +#: apps/transactions/models.py:676 msgid "Original Name" msgstr "" -#: apps/transactions/models.py:654 +#: apps/transactions/models.py:678 msgid "Content Type" msgstr "" -#: apps/transactions/models.py:656 +#: apps/transactions/models.py:680 msgid "Size" msgstr "" -#: apps/transactions/models.py:661 +#: apps/transactions/models.py:685 msgid "Uploaded By" msgstr "" -#: apps/transactions/models.py:666 +#: apps/transactions/models.py:690 msgid "Transaction Attachment" msgstr "" -#: apps/transactions/models.py:667 +#: apps/transactions/models.py:691 msgid "Transaction Attachments" msgstr "" -#: apps/transactions/models.py:697 templates/includes/sidebar.html:57 +#: apps/transactions/models.py:721 templates/includes/sidebar.html:57 msgid "Yearly" msgstr "" -#: apps/transactions/models.py:698 apps/users/models.py:469 +#: apps/transactions/models.py:722 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "" -#: apps/transactions/models.py:699 +#: apps/transactions/models.py:723 msgid "Weekly" msgstr "" -#: apps/transactions/models.py:700 +#: apps/transactions/models.py:724 msgid "Daily" msgstr "" -#: apps/transactions/models.py:713 +#: apps/transactions/models.py:737 msgid "Number of Installments" msgstr "" -#: apps/transactions/models.py:718 +#: apps/transactions/models.py:742 msgid "Installment Start" msgstr "" -#: apps/transactions/models.py:719 +#: apps/transactions/models.py:743 msgid "The installment number to start counting from" msgstr "" -#: apps/transactions/models.py:724 apps/transactions/models.py:1015 +#: apps/transactions/models.py:748 apps/transactions/models.py:1039 msgid "Start Date" msgstr "" -#: apps/transactions/models.py:728 apps/transactions/models.py:1016 +#: apps/transactions/models.py:752 apps/transactions/models.py:1040 msgid "End Date" msgstr "" -#: apps/transactions/models.py:733 +#: apps/transactions/models.py:757 msgid "Recurrence" msgstr "" -#: apps/transactions/models.py:736 +#: apps/transactions/models.py:760 msgid "Installment Amount" msgstr "" -#: apps/transactions/models.py:755 apps/transactions/models.py:1035 +#: apps/transactions/models.py:779 apps/transactions/models.py:1059 msgid "Add description to transactions" msgstr "" -#: apps/transactions/models.py:758 apps/transactions/models.py:1038 +#: apps/transactions/models.py:782 apps/transactions/models.py:1062 msgid "Add notes to transactions" msgstr "" -#: apps/transactions/models.py:932 +#: apps/transactions/models.py:956 msgid "To amount" msgstr "" -#: apps/transactions/models.py:933 +#: apps/transactions/models.py:957 msgid "Leave empty to use the same amount" msgstr "" -#: apps/transactions/models.py:974 templates/mini_tools/simulator.html:129 +#: apps/transactions/models.py:998 templates/mini_tools/simulator.html:129 msgid "day(s)" msgstr "" -#: apps/transactions/models.py:975 templates/mini_tools/simulator.html:130 +#: apps/transactions/models.py:999 templates/mini_tools/simulator.html:130 msgid "week(s)" msgstr "" -#: apps/transactions/models.py:976 templates/mini_tools/simulator.html:131 +#: apps/transactions/models.py:1000 templates/mini_tools/simulator.html:131 msgid "month(s)" msgstr "" -#: apps/transactions/models.py:977 templates/mini_tools/simulator.html:132 +#: apps/transactions/models.py:1001 templates/mini_tools/simulator.html:132 msgid "year(s)" msgstr "" -#: apps/transactions/models.py:979 +#: apps/transactions/models.py:1003 #: templates/recurring_transactions/fragments/list.html:18 msgid "Paused" msgstr "" -#: apps/transactions/models.py:1018 +#: apps/transactions/models.py:1042 msgid "Recurrence Type" msgstr "" -#: apps/transactions/models.py:1021 +#: apps/transactions/models.py:1045 msgid "Recurrence Interval" msgstr "" -#: apps/transactions/models.py:1024 +#: apps/transactions/models.py:1048 msgid "Keep at most" msgstr "" -#: apps/transactions/models.py:1028 +#: apps/transactions/models.py:1052 msgid "Last Generated Date" msgstr "" -#: apps/transactions/models.py:1031 +#: apps/transactions/models.py:1055 msgid "Last Generated Reference Date" msgstr "" -#: apps/transactions/models.py:1334 templates/cotton/transaction/item.html:274 +#: apps/transactions/models.py:1358 templates/cotton/transaction/item.html:274 #: templates/cotton/ui/transactions_fab.html:59 msgid "Quick Transaction" msgstr "" -#: apps/transactions/models.py:1335 templates/includes/sidebar.html:98 +#: apps/transactions/models.py:1359 templates/includes/sidebar.html:98 #: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:15 msgid "Quick Transactions" @@ -1864,8 +2006,8 @@ msgid "Item deleted successfully" msgstr "" #: apps/transactions/views/quick_transactions.py:164 -#: apps/transactions/views/transactions.py:147 -#: apps/transactions/views/transactions.py:332 +#: apps/transactions/views/transactions.py:156 +#: apps/transactions/views/transactions.py:343 msgid "Transaction added successfully" msgstr "" @@ -1909,34 +2051,34 @@ msgstr "" msgid "Attachment deleted successfully" msgstr "" -#: apps/transactions/views/transactions.py:359 +#: apps/transactions/views/transactions.py:370 msgid "Transaction updated successfully" msgstr "" -#: apps/transactions/views/transactions.py:410 +#: apps/transactions/views/transactions.py:421 #, python-format msgid "%(count)s transaction updated successfully" msgid_plural "%(count)s transactions updated successfully" msgstr[0] "" msgstr[1] "" -#: apps/transactions/views/transactions.py:437 +#: apps/transactions/views/transactions.py:448 msgid "Transaction duplicated successfully" msgstr "" -#: apps/transactions/views/transactions.py:482 +#: apps/transactions/views/transactions.py:493 msgid "Transaction deleted successfully" msgstr "" -#: apps/transactions/views/transactions.py:512 +#: apps/transactions/views/transactions.py:523 msgid "Transaction restored successfully" msgstr "" -#: apps/transactions/views/transactions.py:538 +#: apps/transactions/views/transactions.py:549 msgid "Transfer added successfully" msgstr "" -#: apps/transactions/views/transactions.py:566 +#: apps/transactions/views/transactions.py:579 msgid "Transfer updated successfully" msgstr "" @@ -2240,6 +2382,7 @@ msgstr "" #: templates/exchange_rates_services/fragments/table.html:20 #: templates/import_app/fragments/profiles/list.html:42 #: templates/installment_plans/fragments/table.html:25 +#: templates/investment_classes/fragments/list.html:36 #: templates/quick_transactions/fragments/list.html:22 #: templates/recurring_transactions/fragments/table.html:27 #: templates/rules/fragments/list.html:31 @@ -2262,6 +2405,9 @@ msgstr "" #: templates/exchange_rates_services/fragments/table.html:23 #: templates/import_app/fragments/profiles/list.html:46 #: templates/installment_plans/fragments/table.html:28 +#: templates/investment_classes/fragments/list.html:39 +#: templates/investments/fragments/detail.html:305 +#: templates/investments/fragments/detail.html:331 #: templates/quick_transactions/fragments/list.html:25 #: templates/recurring_transactions/fragments/table.html:30 #: templates/rules/fragments/transaction_rule/view.html:22 @@ -2311,6 +2457,7 @@ msgstr "" #: templates/import_app/fragments/profiles/list.html:81 #: templates/import_app/fragments/runs/list.html:100 #: templates/installment_plans/fragments/table.html:54 +#: templates/investment_classes/fragments/list.html:45 #: templates/mini_tools/simulator.html:109 #: templates/mini_tools/unit_price_calculator.html:16 #: templates/quick_transactions/fragments/list.html:32 @@ -2344,6 +2491,7 @@ msgstr "" #: templates/import_app/fragments/runs/list.html:104 #: templates/installment_plans/fragments/table.html:47 #: templates/installment_plans/fragments/table.html:58 +#: templates/investment_classes/fragments/list.html:49 #: templates/quick_transactions/fragments/list.html:37 #: templates/recurring_transactions/fragments/table.html:52 #: templates/recurring_transactions/fragments/table.html:65 @@ -2393,6 +2541,7 @@ msgstr "" #: templates/import_app/fragments/profiles/list.html:87 #: templates/import_app/fragments/runs/list.html:106 #: templates/installment_plans/fragments/table.html:60 +#: templates/investment_classes/fragments/list.html:51 #: templates/quick_transactions/fragments/list.html:39 #: templates/recurring_transactions/fragments/table.html:94 #: templates/rules/fragments/list.html:62 @@ -2441,6 +2590,7 @@ msgid "Add account" msgstr "" #: templates/accounts/fragments/edit.html:5 +#: templates/investments/fragments/detail.html:40 msgid "Edit account" msgstr "" @@ -2742,6 +2892,8 @@ msgid "Add DCA strategy" msgstr "" #: templates/dca/fragments/strategy/details.html:28 +#: templates/investments/fragments/detail.html:92 +#: templates/investments/fragments/list.html:65 msgid "No exchange rate available" msgstr "" @@ -2923,7 +3075,7 @@ msgstr "" msgid "No services configured" msgstr "" -#: templates/export_app/pages/index.html:4 templates/includes/sidebar.html:211 +#: templates/export_app/pages/index.html:4 templates/includes/sidebar.html:225 msgid "Export and Restore" msgstr "" @@ -3094,52 +3246,61 @@ msgstr "" msgid "Tools" msgstr "" -#: templates/includes/sidebar.html:118 -msgid "Dollar Cost Average Tracker" +#: templates/includes/sidebar.html:118 templates/includes/sidebar.html:188 +#: templates/investment_classes/fragments/list.html:29 +#: templates/investments/fragments/detail.html:37 +#: templates/investments/fragments/list.html:9 +#: templates/investments/pages/detail.html:4 +#: templates/investments/pages/index.html:4 +msgid "Investments" msgstr "" #: templates/includes/sidebar.html:124 +msgid "Dollar Cost Average Tracker" +msgstr "" + +#: templates/includes/sidebar.html:130 #: templates/mini_tools/unit_price_calculator.html:4 #: templates/mini_tools/unit_price_calculator.html:9 msgid "Unit Price Calculator" msgstr "" -#: templates/includes/sidebar.html:130 +#: templates/includes/sidebar.html:136 #: templates/mini_tools/currency_converter/currency_converter.html:7 #: templates/mini_tools/currency_converter/currency_converter.html:14 msgid "Currency Converter" msgstr "" -#: templates/includes/sidebar.html:136 templates/mini_tools/simulator.html:5 +#: templates/includes/sidebar.html:142 templates/mini_tools/simulator.html:5 #: templates/mini_tools/simulator.html:21 msgid "Simulator" msgstr "" -#: templates/includes/sidebar.html:145 +#: templates/includes/sidebar.html:151 msgid "Management" msgstr "" -#: templates/includes/sidebar.html:196 +#: templates/includes/sidebar.html:210 msgid "Automation" msgstr "" -#: templates/includes/sidebar.html:225 +#: templates/includes/sidebar.html:239 msgid "Admin" msgstr "" -#: templates/includes/sidebar.html:233 +#: templates/includes/sidebar.html:247 msgid "Django Admin" msgstr "" -#: templates/includes/sidebar.html:234 +#: templates/includes/sidebar.html:248 msgid "Only use this if you know what you're doing" msgstr "" -#: templates/includes/sidebar.html:249 +#: templates/includes/sidebar.html:263 msgid "is available" msgstr "" -#: templates/includes/sidebar.html:257 +#: templates/includes/sidebar.html:271 msgid "Calculator" msgstr "" @@ -3206,6 +3367,7 @@ msgstr "" #: templates/insights/fragments/overview/_results.html:173 #: templates/insights/fragments/year_by_year.html:59 #: templates/insights/fragments/year_by_year.html:140 +#: templates/investment_classes/fragments/list.html:65 #: templates/monthly_overview/fragments/monthly_summary.html:168 msgid "Total" msgstr "" @@ -3401,6 +3563,273 @@ msgstr "" msgid "No installment plans" msgstr "" +#: templates/investment_classes/fragments/form.html:5 +msgid "Edit asset class" +msgstr "" + +#: templates/investment_classes/fragments/form.html:5 +msgid "Add asset class" +msgstr "" + +#: templates/investment_classes/fragments/list.html:19 +#: templates/investments/fragments/rebalance.html:10 +#, python-format +msgid "Targets add up to %(total)s%%. Set them to 100%% to see the rebalance." +msgstr "" + +#: templates/investment_classes/fragments/list.html:28 +#: templates/investments/fragments/rebalance.html:25 +msgid "Target" +msgstr "" + +#: templates/investment_classes/fragments/list.html:50 +msgid "Its investments will be left without an asset class." +msgstr "" + +#: templates/investment_classes/fragments/list.html:74 +msgid "No asset classes" +msgstr "" + +#: templates/investments/fragments/_allocation.html:3 +msgid "Allocation chart" +msgstr "" + +#: templates/investments/fragments/_allocation.html:11 +#, python-format +msgid "" +"%(share)s%% of your investments with a target, against a target of " +"%(target)s%%" +msgstr "" + +#: templates/investments/fragments/_mwr.html:1 +msgid "Annual return, weighted by when money went in and out" +msgstr "" + +#: templates/investments/fragments/_mwr.html:1 +msgid "" +"Return since the first contribution, weighted by when money went in and out" +msgstr "" + +#: templates/investments/fragments/_mwr.html:1 +msgid "/yr" +msgstr "" + +#: templates/investments/fragments/_totals.html:15 +#: templates/investments/fragments/detail.html:63 +msgid "total return" +msgstr "" + +#: templates/investments/fragments/_totals.html:20 +#: templates/investments/fragments/_totals.html:41 +#: templates/investments/fragments/charts.html:96 +#: templates/investments/fragments/detail.html:163 +#: templates/investments/fragments/detail.html:223 +#: templates/investments/fragments/list.html:47 +msgid "Invested" +msgstr "" + +#: templates/investments/fragments/_totals.html:24 +#: templates/investments/fragments/detail.html:74 +msgid "" +"How much of the return came from exchange rates moving since you invested" +msgstr "" + +#: templates/investments/fragments/_totals.html:24 +#: templates/investments/fragments/_totals.html:26 +msgid "Currency effect" +msgstr "" + +#: templates/investments/fragments/_totals.html:26 +#: templates/investments/fragments/detail.html:78 +msgid "" +"Every date is converted with the same rate. Add historical exchange rates " +"(or an automatic rate service) to see how much exchange rates moved your " +"return." +msgstr "" + +#: templates/investments/fragments/_totals.html:40 +#: templates/investments/fragments/list.html:49 +msgid "Return" +msgstr "" + +#: templates/investments/fragments/charts.html:10 +msgid "By asset class" +msgstr "" + +#: templates/investments/fragments/charts.html:17 +#: templates/net_worth/net_worth.html:52 +#: templates/yearly_overview/pages/overview_by_currency.html:6 +msgid "By currency" +msgstr "" + +#: templates/investments/fragments/charts.html:24 +msgid "Value and invested" +msgstr "" + +#: templates/investments/fragments/charts.html:31 +msgid "Return by investment" +msgstr "" + +#: templates/investments/fragments/charts.html:38 +msgid "Nothing to chart yet" +msgstr "" + +#: templates/investments/fragments/detail.html:10 +msgid "Buy / Contribute" +msgstr "" + +#: templates/investments/fragments/detail.html:16 +msgid "Sell / Withdraw" +msgstr "" + +#: templates/investments/fragments/detail.html:23 +msgid "Dividend / Income" +msgstr "" + +#: templates/investments/fragments/detail.html:30 +msgid "Update value" +msgstr "" + +#: templates/investments/fragments/detail.html:47 +#: templates/investments/fragments/list.html:67 +msgid "Tracked by value" +msgstr "" + +#: templates/investments/fragments/detail.html:48 +msgid "" +"Some incoming units have no linked payment, so their cost was estimated from " +"the market price of that day" +msgstr "" + +#: templates/investments/fragments/detail.html:68 +msgid "In" +msgstr "" + +#: templates/investments/fragments/detail.html:74 +#: templates/investments/fragments/detail.html:78 +msgid "currency effect" +msgstr "" + +#: templates/investments/fragments/detail.html:104 +#: templates/investments/fragments/detail.html:179 +msgid "Price" +msgstr "" + +#: templates/investments/fragments/detail.html:105 +#: templates/investments/fragments/detail.html:200 +#: templates/investments/fragments/detail.html:239 +#: templates/investments/fragments/detail.html:290 +msgid "Earnings" +msgstr "" + +#: templates/investments/fragments/detail.html:180 +#: templates/investments/fragments/detail.html:227 +msgid "Average cost" +msgstr "" + +#: templates/investments/fragments/detail.html:181 +#: templates/investments/fragments/rebalance.html:41 +msgid "Buy" +msgstr "" + +#: templates/investments/fragments/detail.html:182 +#: templates/investments/fragments/rebalance.html:43 +msgid "Sell" +msgstr "" + +#: templates/investments/fragments/detail.html:227 +#: templates/investments/fragments/detail.html:257 +msgid "Put in / taken out" +msgstr "" + +#: templates/investments/fragments/detail.html:239 +msgid "Unrealized" +msgstr "" + +#: templates/investments/fragments/detail.html:248 +msgid "Realized" +msgstr "" + +#: templates/investments/fragments/detail.html:271 +msgid "Movements" +msgstr "" + +#: templates/investments/fragments/detail.html:284 +msgid "Bought / contributed" +msgstr "" + +#: templates/investments/fragments/detail.html:284 +msgid "Sold / withdrew" +msgstr "" + +#: templates/investments/fragments/detail.html:288 +msgid "Money in" +msgstr "" + +#: templates/investments/fragments/detail.html:288 +msgid "Money out" +msgstr "" + +#: templates/investments/fragments/detail.html:290 +msgid "Gain" +msgstr "" + +#: templates/investments/fragments/detail.html:290 +msgid "Loss, tax or fee" +msgstr "" + +#: templates/investments/fragments/detail.html:315 +msgid "No movements yet" +msgstr "" + +#: templates/investments/fragments/detail.html:315 +msgid "Use the + button to buy or contribute" +msgstr "" + +#: templates/investments/fragments/list.html:21 +msgid "Holdings" +msgstr "" + +#: templates/investments/fragments/list.html:60 +msgid "Some costs were estimated from market prices" +msgstr "" + +#: templates/investments/fragments/list.html:92 +msgid "Charts" +msgstr "" + +#: templates/investments/fragments/list.html:97 +msgid "Rebalance" +msgstr "" + +#: templates/investments/fragments/list.html:105 +msgid "No investments yet" +msgstr "" + +#: templates/investments/fragments/list.html:106 +msgid "Mark an account as an investment in its settings to see it here" +msgstr "" + +#: templates/investments/fragments/rebalance.html:4 +msgid "No allocation targets" +msgstr "" + +#: templates/investments/fragments/rebalance.html:5 +msgid "Set a target for your asset classes to see what to buy and sell" +msgstr "" + +#: templates/investments/fragments/rebalance.html:26 +msgid "To reach the target" +msgstr "" + +#: templates/investments/fragments/rebalance.html:34 +msgid "Off target" +msgstr "" + +#: templates/investments/fragments/rebalance.html:55 +msgid "Left out: investments without an asset class or a target" +msgstr "" + #: templates/layouts/base.html:38 msgid "This is a demo!" msgstr "" @@ -3604,11 +4033,6 @@ msgstr "" msgid "Order by" msgstr "" -#: templates/net_worth/net_worth.html:52 -#: templates/yearly_overview/pages/overview_by_currency.html:6 -msgid "By currency" -msgstr "" - #: templates/net_worth/net_worth.html:135 msgid "Evolution" msgstr "" diff --git a/app/locale/es/LC_MESSAGES/django.po b/app/locale/es/LC_MESSAGES/django.po index 10745cca..af38a69d 100644 --- a/app/locale/es/LC_MESSAGES/django.po +++ b/app/locale/es/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-11-08 13:19+0000\n" +"POT-Creation-Date: 2026-11-08 18:27+0000\n" "PO-Revision-Date: 2026-07-10 04:57+0000\n" "Last-Translator: Juan David Afanador \n" "Language-Team: Spanish \n" "Language-Team: French 1;\n" "X-Generator: Weblate 2026.10.1\n" -#: apps/accounts/forms.py:28 +#: apps/accounts/forms.py:33 msgid "Group name" msgstr "Nom du groupe" -#: apps/accounts/forms.py:43 apps/accounts/forms.py:109 -#: apps/currencies/forms.py:57 apps/currencies/forms.py:91 -#: apps/currencies/forms.py:166 apps/dca/forms.py:46 apps/dca/forms.py:192 -#: apps/import_app/forms.py:32 apps/rules/forms.py:60 apps/rules/forms.py:100 -#: apps/rules/forms.py:385 apps/transactions/forms.py:219 -#: apps/transactions/forms.py:452 apps/transactions/forms.py:571 -#: apps/transactions/forms.py:718 apps/transactions/forms.py:940 -#: apps/transactions/forms.py:987 apps/transactions/forms.py:1015 -#: apps/transactions/forms.py:1046 apps/transactions/forms.py:1208 -#: apps/users/forms.py:264 apps/users/forms.py:422 +#: apps/accounts/forms.py:48 apps/accounts/forms.py:76 +#: apps/accounts/forms.py:184 apps/currencies/forms.py:57 +#: apps/currencies/forms.py:91 apps/currencies/forms.py:168 +#: apps/dca/forms.py:46 apps/dca/forms.py:192 apps/import_app/forms.py:32 +#: apps/rules/forms.py:60 apps/rules/forms.py:100 apps/rules/forms.py:385 +#: apps/transactions/forms.py:219 apps/transactions/forms.py:452 +#: apps/transactions/forms.py:571 apps/transactions/forms.py:718 +#: apps/transactions/forms.py:940 apps/transactions/forms.py:987 +#: apps/transactions/forms.py:1015 apps/transactions/forms.py:1046 +#: apps/transactions/forms.py:1208 apps/users/forms.py:264 +#: apps/users/forms.py:422 #: templates/rules/fragments/transaction_rule/dry_run/updated.html:5 #: templates/rules/fragments/transaction_rule/view.html:128 msgid "Update" msgstr "Mise à jour" -#: apps/accounts/forms.py:49 apps/accounts/forms.py:115 -#: apps/common/widgets/tom_select.py:15 apps/currencies/forms.py:63 -#: apps/currencies/forms.py:97 apps/currencies/forms.py:172 -#: apps/dca/forms.py:52 apps/dca/forms.py:198 apps/import_app/forms.py:38 -#: apps/rules/forms.py:66 apps/rules/forms.py:106 apps/rules/forms.py:391 -#: apps/transactions/forms.py:206 apps/transactions/forms.py:226 -#: apps/transactions/forms.py:459 apps/transactions/forms.py:946 -#: apps/transactions/forms.py:993 apps/transactions/forms.py:1021 -#: apps/transactions/forms.py:1052 apps/transactions/forms.py:1214 -#: apps/users/forms.py:270 apps/users/forms.py:428 -#: templates/mini_tools/simulator.html:177 +#: apps/accounts/forms.py:54 apps/accounts/forms.py:76 +#: apps/accounts/forms.py:190 apps/common/widgets/tom_select.py:15 +#: apps/currencies/forms.py:63 apps/currencies/forms.py:97 +#: apps/currencies/forms.py:174 apps/dca/forms.py:52 apps/dca/forms.py:198 +#: apps/import_app/forms.py:38 apps/rules/forms.py:66 apps/rules/forms.py:106 +#: apps/rules/forms.py:391 apps/transactions/forms.py:206 +#: apps/transactions/forms.py:226 apps/transactions/forms.py:459 +#: apps/transactions/forms.py:946 apps/transactions/forms.py:993 +#: apps/transactions/forms.py:1021 apps/transactions/forms.py:1052 +#: apps/transactions/forms.py:1214 apps/users/forms.py:270 +#: apps/users/forms.py:428 templates/mini_tools/simulator.html:177 #: templates/mini_tools/unit_price_calculator.html:168 msgid "Add" msgstr "Ajouter" -#: apps/accounts/forms.py:57 templates/accounts/fragments/list.html:23 +#: apps/accounts/forms.py:86 templates/accounts/fragments/list.html:23 msgid "Group" msgstr "Groupe" -#: apps/accounts/forms.py:123 +#: apps/accounts/forms.py:93 apps/accounts/models.py:73 +#: apps/accounts/models.py:130 +#: templates/investments/fragments/rebalance.html:22 +msgid "Asset class" +msgstr "" + +#: apps/accounts/forms.py:198 msgid "New balance" msgstr "Nouveau solde" -#: apps/accounts/forms.py:129 apps/dca/forms.py:79 apps/dca/forms.py:86 +#: apps/accounts/forms.py:204 apps/dca/forms.py:79 apps/dca/forms.py:86 #: apps/insights/forms.py:117 apps/insights/views.py:44 apps/rules/forms.py:181 #: apps/rules/forms.py:197 apps/rules/models.py:44 apps/rules/models.py:311 #: apps/transactions/forms.py:62 apps/transactions/forms.py:330 #: apps/transactions/forms.py:510 apps/transactions/forms.py:607 #: apps/transactions/forms.py:614 apps/transactions/forms.py:823 #: apps/transactions/forms.py:1075 apps/transactions/models.py:357 -#: apps/transactions/models.py:743 apps/transactions/models.py:999 -#: apps/transactions/models.py:1306 +#: apps/transactions/models.py:767 apps/transactions/models.py:1023 +#: apps/transactions/models.py:1330 #: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/year_by_year.html:52 msgid "Category" msgstr "Catégorie" -#: apps/accounts/forms.py:136 apps/dca/forms.py:95 apps/dca/forms.py:103 -#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 +#: apps/accounts/forms.py:211 apps/dca/forms.py:95 apps/dca/forms.py:103 +#: apps/export_app/forms.py:43 apps/export_app/forms.py:134 #: apps/insights/views.py:50 apps/rules/forms.py:184 apps/rules/forms.py:194 #: apps/rules/models.py:45 apps/rules/models.py:315 #: apps/transactions/filters.py:79 apps/transactions/forms.py:70 #: apps/transactions/forms.py:338 apps/transactions/forms.py:518 #: apps/transactions/forms.py:623 apps/transactions/forms.py:631 #: apps/transactions/forms.py:816 apps/transactions/forms.py:1068 -#: apps/transactions/models.py:363 apps/transactions/models.py:745 -#: apps/transactions/models.py:1003 apps/transactions/models.py:1312 -#: templates/includes/sidebar.html:156 +#: apps/transactions/models.py:363 apps/transactions/models.py:769 +#: apps/transactions/models.py:1027 apps/transactions/models.py:1336 +#: templates/includes/sidebar.html:162 #: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/year_by_year.html:24 @@ -94,23 +101,23 @@ msgstr "Catégorie" msgid "Tags" msgstr "Etiquettes" -#: apps/accounts/forms.py:179 +#: apps/accounts/forms.py:254 msgid "All paid transactions" msgstr "Toutes les transactions payées" -#: apps/accounts/forms.py:180 +#: apps/accounts/forms.py:255 msgid "Up to date" msgstr "à jour" -#: apps/accounts/forms.py:181 +#: apps/accounts/forms.py:256 msgid "Up to reference month" msgstr "Aller au mois de référence" -#: apps/accounts/forms.py:185 +#: apps/accounts/forms.py:260 msgid "Balance against" msgstr "Comparer" -#: apps/accounts/forms.py:189 apps/currencies/forms.py:70 +#: apps/accounts/forms.py:264 apps/currencies/forms.py:70 #: apps/dca/models.py:158 apps/rules/forms.py:176 apps/rules/forms.py:190 #: apps/rules/models.py:38 apps/rules/models.py:279 #: apps/transactions/forms.py:86 apps/transactions/forms.py:482 @@ -121,14 +128,15 @@ msgstr "Comparer" msgid "Date" msgstr "Date" -#: apps/accounts/forms.py:194 +#: apps/accounts/forms.py:269 msgid "Reference month" msgstr "Mois de référence" -#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 +#: apps/accounts/models.py:19 apps/accounts/models.py:36 +#: apps/accounts/models.py:84 apps/dca/models.py:13 #: apps/import_app/models.py:20 apps/rules/models.py:13 #: apps/transactions/models.py:249 apps/transactions/models.py:274 -#: apps/transactions/models.py:298 apps/transactions/models.py:1274 +#: apps/transactions/models.py:298 apps/transactions/models.py:1298 #: apps/users/models.py:577 templates/account_groups/fragments/list.html:22 #: templates/accounts/fragments/list.html:22 #: templates/categories/fragments/table.html:17 @@ -137,6 +145,7 @@ msgstr "Mois de référence" #: templates/exchange_rates_services/fragments/list.html:28 #: templates/import_app/fragments/profiles/list.html:34 #: templates/installment_plans/fragments/table.html:16 +#: templates/investment_classes/fragments/list.html:27 #: templates/quick_transactions/fragments/list.html:13 #: templates/recurring_transactions/fragments/table.html:18 #: templates/rules/fragments/list.html:24 @@ -145,43 +154,128 @@ msgstr "Mois de référence" msgid "Name" msgstr "Nom" -#: apps/accounts/models.py:18 apps/accounts/models.py:33 +#: apps/accounts/models.py:25 apps/accounts/models.py:88 msgid "Account Group" msgstr "Groupe de comptes" -#: apps/accounts/models.py:19 templates/account_groups/fragments/list.html:9 +#: apps/accounts/models.py:26 templates/account_groups/fragments/list.html:9 #: templates/account_groups/pages/index.html:4 -#: templates/includes/sidebar.html:176 +#: templates/includes/sidebar.html:182 msgid "Account Groups" msgstr "Groupes de comptes" -#: apps/accounts/models.py:39 apps/currencies/models.py:44 +#: apps/accounts/models.py:43 +msgid "Target allocation (%)" +msgstr "" + +#: apps/accounts/models.py:45 +msgid "" +"Share of your investments you want in this class. Leave it empty to leave " +"the class out of the targets." +msgstr "" + +#: apps/accounts/models.py:61 +msgid "You already have an asset class with this name." +msgstr "" + +#: apps/accounts/models.py:66 +#, python-format +msgid "" +"Targets can't add up to more than 100%%. Other classes already take " +"%(taken)s%%." +msgstr "" + +#: apps/accounts/models.py:74 apps/export_app/forms.py:131 +#: templates/includes/sidebar.html:190 +#: templates/investment_classes/fragments/list.html:9 +#: templates/investment_classes/pages/index.html:4 +#: templates/investments/fragments/rebalance.html:6 +#: templates/investments/fragments/rebalance.html:11 +msgid "Asset classes" +msgstr "" + +#: apps/accounts/models.py:94 apps/currencies/models.py:44 #: templates/accounts/fragments/list.html:24 #: templates/mini_tools/simulator.html:37 #: templates/yearly_overview/pages/yearly_overview_base.html:19 msgid "Currency" msgstr "Devise" -#: apps/accounts/models.py:45 apps/currencies/models.py:27 +#: apps/accounts/models.py:100 apps/currencies/models.py:27 #: templates/accounts/fragments/list.html:25 msgid "Exchange Currency" msgstr "Devise d'échange" -#: apps/accounts/models.py:50 apps/currencies/models.py:32 +#: apps/accounts/models.py:105 apps/currencies/models.py:32 msgid "Default currency for exchange calculations" msgstr "Devise par défaut pour le calcul de change" -#: apps/accounts/models.py:55 +#: apps/accounts/models.py:110 msgid "Asset account" msgstr "Compte d'actif" -#: apps/accounts/models.py:57 +#: apps/accounts/models.py:112 msgid "" "Asset accounts count towards your Net Worth, but not towards your month." msgstr "" "Les comptes d'actifs contribue à votre Valeur Nette mais pas à votre mois." -#: apps/accounts/models.py:62 apps/currencies/models.py:37 +#: apps/accounts/models.py:117 templates/investments/fragments/list.html:46 +#, fuzzy +#| msgid "Installment" +msgid "Investment" +msgstr "Paiement en plusieurs fois" + +#: apps/accounts/models.py:119 +msgid "" +"Show this account in the Investments tracker. Set an exchange currency to " +"price it by units (stocks, ETFs, crypto); leave it empty to track it by " +"value (fixed income, property, pensions)." +msgstr "" + +#: apps/accounts/models.py:132 +msgid "" +"Groups investments in the allocation charts, e.g. Fixed income, Stocks, Real " +"estate." +msgstr "" + +#: apps/accounts/models.py:140 +#, fuzzy +#| msgid "No entities" +msgid "Income entities" +msgstr "Pas d'entités" + +#: apps/accounts/models.py:142 +msgid "" +"Transactions with any of these entities count towards this investment's " +"return: in this account, and income paid into other accounts (dividends, " +"rent)." +msgstr "" + +#: apps/accounts/models.py:151 +#, fuzzy +#| msgid "No categories" +msgid "Income categories" +msgstr "Pas de catégories" + +#: apps/accounts/models.py:153 +msgid "" +"Transactions in this account with any of these categories are its result " +"(interest, taxes, fees). On accounts tracked by value, everything else that " +"isn't a transfer counts as money coming in or going out." +msgstr "" + +#: apps/accounts/models.py:162 +#, fuzzy +#| msgid "Income" +msgid "Income tags" +msgstr "Revenus" + +#: apps/accounts/models.py:164 +msgid "Same as income categories, for transactions with any of these tags." +msgstr "" + +#: apps/accounts/models.py:169 apps/currencies/models.py:37 #: templates/accounts/fragments/list.html:27 #: templates/categories/fragments/list.html:20 #: templates/currencies/fragments/list.html:24 @@ -190,19 +284,19 @@ msgstr "" msgid "Archived" msgstr "Archivé" -#: apps/accounts/models.py:63 +#: apps/accounts/models.py:170 msgid "Archived accounts don't show up nor count towards your net worth" msgstr "" "Les comptes archivés ne sont ni affichés ni comptabilisés dans votre valeur " "nette" -#: apps/accounts/models.py:75 apps/rules/forms.py:173 apps/rules/forms.py:187 +#: apps/accounts/models.py:182 apps/rules/forms.py:173 apps/rules/forms.py:187 #: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/transactions/forms.py:82 apps/transactions/forms.py:350 #: apps/transactions/forms.py:477 apps/transactions/forms.py:808 #: apps/transactions/forms.py:1060 apps/transactions/models.py:329 -#: apps/transactions/models.py:703 apps/transactions/models.py:981 -#: apps/transactions/models.py:1280 +#: apps/transactions/models.py:727 apps/transactions/models.py:1005 +#: apps/transactions/models.py:1304 #: templates/installment_plans/fragments/table.html:17 #: templates/quick_transactions/fragments/list.html:14 #: templates/recurring_transactions/fragments/table.html:19 @@ -210,17 +304,17 @@ msgstr "" msgid "Account" msgstr "Compte" -#: apps/accounts/models.py:76 apps/export_app/forms.py:19 -#: apps/export_app/forms.py:129 apps/transactions/filters.py:63 +#: apps/accounts/models.py:183 apps/export_app/forms.py:19 +#: apps/export_app/forms.py:130 apps/transactions/filters.py:63 #: templates/accounts/fragments/list.html:9 -#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:168 -#: templates/includes/sidebar.html:170 +#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:174 +#: templates/includes/sidebar.html:176 #: templates/monthly_overview/pages/overview.html:77 #: templates/transactions/pages/transactions.html:26 msgid "Accounts" msgstr "Comptes" -#: apps/accounts/models.py:93 +#: apps/accounts/models.py:200 msgid "Exchange currency cannot be the same as the account's main currency." msgstr "" "La devise de change ne peut pas être identique à la devise principal du " @@ -314,7 +408,7 @@ msgstr "Aucune entité avec cet ID n'existe." msgid "Invalid entity data. Provide an ID or name." msgstr "Donnée d'entité invalide. Veuillez fournir un ID ou nom." -#: apps/api/serializers/transactions.py:141 apps/transactions/models.py:953 +#: apps/api/serializers/transactions.py:141 apps/transactions/models.py:977 msgid "This field is required." msgstr "Ce champ est obligatoire." @@ -334,13 +428,14 @@ msgstr "Rendre privé" msgid "Shared with users" msgstr "Partagé avec les utilisateurs" -#: apps/common/fields/forms/dynamic_select.py:71 -#: apps/common/fields/forms/dynamic_select.py:142 +#: apps/common/fields/forms/dynamic_select.py:79 +#: apps/common/fields/forms/dynamic_select.py:150 msgid "Error creating new instance" msgstr "Erreur lors de la création d'une nouvelle instance" #: apps/common/fields/forms/grouped_select.py:24 #: apps/common/widgets/tom_select.py:94 apps/common/widgets/tom_select.py:97 +#: templates/investments/fragments/list.html:26 msgid "Ungrouped" msgstr "Non-groupé" @@ -488,6 +583,7 @@ msgid "Today" msgstr "Aujourd'hui" #: apps/common/widgets/datepicker.py:142 +#: templates/investments/fragments/rebalance.html:24 msgid "Now" msgstr "Maintenant" @@ -537,10 +633,10 @@ msgid "Decimal Places" msgstr "Décimales" #: apps/currencies/models.py:45 apps/export_app/forms.py:25 -#: apps/export_app/forms.py:130 apps/transactions/filters.py:70 +#: apps/export_app/forms.py:132 apps/transactions/filters.py:70 #: templates/currencies/fragments/list.html:9 -#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:182 -#: templates/includes/sidebar.html:184 +#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:196 +#: templates/includes/sidebar.html:198 #: templates/monthly_overview/pages/overview.html:63 #: templates/transactions/pages/transactions.html:12 msgid "Currencies" @@ -572,9 +668,9 @@ msgid "Auto" msgstr "Auto" #: apps/currencies/models.py:82 apps/export_app/forms.py:67 -#: apps/export_app/forms.py:142 templates/exchange_rates/fragments/list.html:10 +#: apps/export_app/forms.py:144 templates/exchange_rates/fragments/list.html:10 #: templates/exchange_rates/pages/index.html:4 -#: templates/includes/sidebar.html:190 +#: templates/includes/sidebar.html:204 msgid "Exchange Rates" msgstr "Taux de changes" @@ -669,32 +765,45 @@ msgstr "" "récupérés pour chaque compte par rapport à leur devise d'échange." #: apps/currencies/models.py:171 -msgid "Single exchange rate" +#, fuzzy +#| msgid "Single exchange rate" +msgid "One exchange rate per day" msgstr "Taux de change unique" #: apps/currencies/models.py:174 -msgid "Create one exchange rate and keep updating it. Avoids database clutter." +msgid "" +"Update the day's exchange rate on each fetch instead of adding a new one." msgstr "" -"Ne créer qu'un seul taux de change et le mettre à jour. Evite d'engorger la " -"base de donnée." -#: apps/currencies/models.py:179 +#: apps/currencies/models.py:178 +#, fuzzy +#| msgid "Exchange Rates" +msgid "Exchange rates to keep" +msgstr "Taux de changes" + +#: apps/currencies/models.py:183 +msgid "" +"Keep at most this many automatic exchange rates per currency pair, deleting " +"the oldest first. Leave empty to keep all." +msgstr "" + +#: apps/currencies/models.py:188 msgid "Exchange Rate Service" msgstr "Service de taux de change" -#: apps/currencies/models.py:180 +#: apps/currencies/models.py:189 msgid "Exchange Rate Services" msgstr "Services de taux de change" -#: apps/currencies/models.py:234 +#: apps/currencies/models.py:243 msgid "'Every X hours' interval type requires a positive integer." msgstr "'Toutes les X heures' l'intervalle requiert un entier positif." -#: apps/currencies/models.py:243 +#: apps/currencies/models.py:252 msgid "'Every X hours' interval must be between 1 and 24." msgstr "'Toutes les X heures' l'intervalle doit être compris entre 1 et 24." -#: apps/currencies/models.py:257 +#: apps/currencies/models.py:266 msgid "" "Invalid hour format. Use comma-separated hours (0-23) and/or ranges (e.g., " "'1-5,8,10-12')." @@ -702,7 +811,7 @@ msgstr "" "Format d'heure invalide. Utilisez les heures séparé par virgule (0-23) et/ou " "une plage (ex : '1-5,8,10-12')." -#: apps/currencies/models.py:268 +#: apps/currencies/models.py:277 msgid "" "Invalid format. Please check the requirements for your selected interval " "type." @@ -784,12 +893,12 @@ msgid "You must provide an account." msgstr "Vous devez fournir un compte." #: apps/dca/forms.py:277 apps/transactions/forms.py:752 -#: apps/transactions/models.py:956 +#: apps/transactions/models.py:980 msgid "From and To accounts must be different." msgstr "" "Le compte originateur et le compte bénéficiaire doivent être différent." -#: apps/dca/forms.py:291 +#: apps/dca/forms.py:299 #, python-format msgid "DCA for %(strategy_name)s" msgstr "DCA pour %(strategy_name)s" @@ -805,8 +914,8 @@ msgstr "Devise de paiement" #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/transactions/forms.py:504 apps/transactions/forms.py:651 -#: apps/transactions/models.py:353 apps/transactions/models.py:752 -#: apps/transactions/models.py:1009 apps/transactions/models.py:1302 +#: apps/transactions/models.py:353 apps/transactions/models.py:776 +#: apps/transactions/models.py:1033 apps/transactions/models.py:1326 msgid "Notes" msgstr "Notes" @@ -814,7 +923,7 @@ msgstr "Notes" msgid "DCA Strategy" msgstr "Stratégie DCA" -#: apps/dca/models.py:35 apps/export_app/forms.py:150 +#: apps/dca/models.py:35 apps/export_app/forms.py:152 msgid "DCA Strategies" msgstr "Stratégies DCA" @@ -834,7 +943,7 @@ msgstr "Somme reçue" msgid "DCA Entry" msgstr "Entrée DCA" -#: apps/dca/models.py:187 apps/export_app/forms.py:151 +#: apps/dca/models.py:187 apps/export_app/forms.py:153 msgid "DCA Entries" msgstr "Entrées DCA" @@ -862,25 +971,25 @@ msgstr "Entrée mise à jour avec succès" msgid "Entry deleted successfully" msgstr "Entrée supprimée avec succès" -#: apps/export_app/forms.py:13 apps/export_app/forms.py:128 -#: templates/includes/sidebar.html:227 templates/users/fragments/list.html:10 +#: apps/export_app/forms.py:13 apps/export_app/forms.py:129 +#: templates/includes/sidebar.html:241 templates/users/fragments/list.html:10 #: templates/users/pages/index.html:4 msgid "Users" msgstr "Utilisateurs" -#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 +#: apps/export_app/forms.py:31 apps/export_app/forms.py:136 #: apps/transactions/models.py:422 templates/includes/sidebar.html:81 -#: templates/includes/sidebar.html:148 +#: templates/includes/sidebar.html:154 #: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/table.html:37 #: templates/transactions/pages/transactions.html:5 msgid "Transactions" msgstr "Transactions" -#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 +#: apps/export_app/forms.py:37 apps/export_app/forms.py:133 #: apps/insights/views.py:43 apps/transactions/filters.py:74 #: templates/categories/fragments/list.html:9 -#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:150 +#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/year_by_year.html:13 @@ -888,16 +997,16 @@ msgstr "Transactions" msgid "Categories" msgstr "Catégories" -#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 +#: apps/export_app/forms.py:49 apps/export_app/forms.py:135 #: apps/insights/views.py:57 apps/rules/forms.py:185 apps/rules/forms.py:195 #: apps/rules/models.py:46 apps/rules/models.py:307 #: apps/transactions/filters.py:84 apps/transactions/forms.py:78 #: apps/transactions/forms.py:346 apps/transactions/forms.py:526 #: apps/transactions/forms.py:831 apps/transactions/forms.py:1083 #: apps/transactions/models.py:312 apps/transactions/models.py:368 -#: apps/transactions/models.py:748 apps/transactions/models.py:1006 -#: apps/transactions/models.py:1317 templates/entities/fragments/list.html:9 -#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:162 +#: apps/transactions/models.py:772 apps/transactions/models.py:1030 +#: apps/transactions/models.py:1341 templates/entities/fragments/list.html:9 +#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:168 #: templates/insights/fragments/month_by_month.html:40 #: templates/insights/fragments/month_by_month.html:43 #: templates/insights/fragments/year_by_year.html:35 @@ -905,28 +1014,28 @@ msgstr "Catégories" msgid "Entities" msgstr "Entités" -#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 -#: apps/transactions/models.py:1046 templates/includes/sidebar.html:110 +#: apps/export_app/forms.py:55 apps/export_app/forms.py:139 +#: apps/transactions/models.py:1070 templates/includes/sidebar.html:110 #: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/pages/index.html:4 msgid "Recurring Transactions" msgstr "Transactions récurrentes" -#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 -#: apps/transactions/models.py:766 templates/includes/sidebar.html:104 +#: apps/export_app/forms.py:61 apps/export_app/forms.py:137 +#: apps/transactions/models.py:790 templates/includes/sidebar.html:104 #: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/pages/index.html:4 msgid "Installment Plans" msgstr "Paiements en plusieurs fois" -#: apps/export_app/forms.py:73 apps/export_app/forms.py:140 +#: apps/export_app/forms.py:73 apps/export_app/forms.py:142 #: templates/exchange_rates_services/fragments/list.html:10 #: templates/exchange_rates_services/pages/index.html:4 -#: templates/includes/sidebar.html:218 +#: templates/includes/sidebar.html:232 msgid "Automatic Exchange Rates" msgstr "Taux de change automatique" -#: apps/export_app/forms.py:79 templates/includes/sidebar.html:198 +#: apps/export_app/forms.py:79 templates/includes/sidebar.html:212 #: templates/rules/fragments/list.html:9 templates/rules/pages/index.html:4 msgid "Rules" msgstr "Règles" @@ -935,57 +1044,57 @@ msgstr "Règles" msgid "DCA" msgstr "DCA" -#: apps/export_app/forms.py:91 apps/export_app/forms.py:152 +#: apps/export_app/forms.py:91 apps/export_app/forms.py:154 #: templates/import_app/fragments/profiles/list.html:21 #: templates/import_app/pages/profiles_index.html:4 msgid "Import Profiles" msgstr "Importer des profils" -#: apps/export_app/forms.py:117 templates/export_app/fragments/export.html:5 +#: apps/export_app/forms.py:118 templates/export_app/fragments/export.html:5 #: templates/export_app/pages/index.html:13 msgid "Export" msgstr "Exporter" -#: apps/export_app/forms.py:125 +#: apps/export_app/forms.py:126 msgid "Import a ZIP file exported from WYGIWYH" msgstr "Importer un fichier ZIP exporté de WYGIWYH" -#: apps/export_app/forms.py:126 +#: apps/export_app/forms.py:127 msgid "ZIP File" msgstr "Fichier ZIP" -#: apps/export_app/forms.py:143 apps/rules/models.py:27 +#: apps/export_app/forms.py:145 apps/rules/models.py:27 msgid "Transaction rules" msgstr "Règles de transaction" -#: apps/export_app/forms.py:145 apps/rules/models.py:68 +#: apps/export_app/forms.py:147 apps/rules/models.py:68 msgid "Edit transaction action" msgstr "Modifier l'action de transaction" -#: apps/export_app/forms.py:148 apps/rules/models.py:327 +#: apps/export_app/forms.py:150 apps/rules/models.py:327 msgid "Update or create transaction actions" msgstr "Mettre à jour ou créer des actions de transaction" -#: apps/export_app/forms.py:181 templates/cotton/transaction/item.html:341 +#: apps/export_app/forms.py:183 templates/cotton/transaction/item.html:341 #: templates/cotton/ui/deleted_transactions_action_bar.html:53 #: templates/export_app/fragments/restore.html:5 #: templates/export_app/pages/index.html:19 msgid "Restore" msgstr "Restaurer" -#: apps/export_app/forms.py:191 +#: apps/export_app/forms.py:193 msgid "Please upload either a ZIP file or at least one CSV file" msgstr "Veuillez charger un fichier ZIP ou au moins un fichier CSV" -#: apps/export_app/views.py:177 +#: apps/export_app/views.py:183 msgid "You have to select at least one export" msgstr "Vous devez sélectionner au moins un export" -#: apps/export_app/views.py:197 +#: apps/export_app/views.py:203 msgid "Data restored successfully" msgstr "Donnée restaurée avec succès" -#: apps/export_app/views.py:209 +#: apps/export_app/views.py:215 msgid "" "There was an error restoring your data. Check the logs for more details." msgstr "" @@ -998,7 +1107,7 @@ msgstr "Sélectionnez un fichier" #: apps/import_app/forms.py:55 #: templates/import_app/fragments/profiles/list.html:75 -#: templates/includes/sidebar.html:204 +#: templates/includes/sidebar.html:218 msgid "Import" msgstr "Importer" @@ -1131,7 +1240,7 @@ msgstr "Etiquette" msgid "Untagged" msgstr "Sans étiquettes" -#: apps/insights/views.py:53 apps/transactions/models.py:589 +#: apps/insights/views.py:53 apps/transactions/models.py:613 #: templates/tags/fragments/table.html:69 msgid "No tags" msgstr "Aucune étiquette" @@ -1152,6 +1261,32 @@ msgstr "Pas d'entité" msgid "No entities" msgstr "Pas d'entités" +#: apps/investments/views.py:104 +msgid "Other" +msgstr "" + +#: apps/investments/views.py:135 +msgid "Unclassified" +msgstr "" + +#: apps/investments/views.py:267 +#, fuzzy +#| msgid "Installment Plan added successfully" +msgid "Asset class added successfully" +msgstr "Paiement en plusieurs fois ajouté avec succès" + +#: apps/investments/views.py:275 +#, fuzzy +#| msgid "Tag updated successfully" +msgid "Asset class updated successfully" +msgstr "Etiquette mise à jour avec succès" + +#: apps/investments/views.py:296 +#, fuzzy +#| msgid "Tag deleted successfully" +msgid "Asset class deleted successfully" +msgstr "Etiquette supprimée avec succès" + #: apps/net_worth/views.py:137 templates/net_worth/net_worth.html:84 #: templates/net_worth/net_worth.html:85 msgid "Consolidated" @@ -1205,8 +1340,8 @@ msgstr "Opérateur" #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/models.py:271 apps/transactions/forms.py:468 -#: apps/transactions/models.py:336 apps/transactions/models.py:708 -#: apps/transactions/models.py:987 apps/transactions/models.py:1287 +#: apps/transactions/models.py:336 apps/transactions/models.py:732 +#: apps/transactions/models.py:1011 apps/transactions/models.py:1311 #: templates/mini_tools/simulator.html:63 msgid "Type" msgstr "Type" @@ -1214,7 +1349,7 @@ msgstr "Type" #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/transactions/forms.py:472 apps/transactions/models.py:338 -#: apps/transactions/models.py:1289 templates/cotton/transaction/item.html:23 +#: apps/transactions/models.py:1313 templates/cotton/transaction/item.html:23 #: templates/cotton/transaction/item.html:34 #: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 @@ -1225,14 +1360,14 @@ msgstr "Payé" #: apps/rules/models.py:283 apps/transactions/forms.py:90 #: apps/transactions/forms.py:488 apps/transactions/forms.py:638 #: apps/transactions/forms.py:837 apps/transactions/models.py:340 -#: apps/transactions/models.py:726 apps/transactions/models.py:1011 +#: apps/transactions/models.py:750 apps/transactions/models.py:1035 msgid "Reference Date" msgstr "Date de référence" #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/models.py:287 apps/transactions/forms.py:495 -#: apps/transactions/models.py:346 apps/transactions/models.py:992 -#: apps/transactions/models.py:1295 +#: apps/transactions/models.py:346 apps/transactions/models.py:1016 +#: apps/transactions/models.py:1319 #: templates/insights/fragments/sankey.html:102 #: templates/installment_plans/fragments/table.html:18 #: templates/mini_tools/simulator.html:70 @@ -1244,27 +1379,27 @@ msgstr "Montant" #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/transactions/forms.py:499 apps/transactions/forms.py:642 -#: apps/transactions/models.py:351 apps/transactions/models.py:710 -#: apps/transactions/models.py:995 apps/transactions/models.py:1300 +#: apps/transactions/models.py:351 apps/transactions/models.py:734 +#: apps/transactions/models.py:1019 apps/transactions/models.py:1324 msgid "Description" msgstr "Description" #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/models.py:299 apps/transactions/models.py:398 -#: apps/transactions/models.py:1322 +#: apps/transactions/models.py:1346 msgid "Internal Note" msgstr "Note interne" #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/models.py:303 apps/transactions/models.py:400 -#: apps/transactions/models.py:1324 +#: apps/transactions/models.py:1348 msgid "Internal ID" msgstr "ID interne" #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/models.py:319 apps/transactions/forms.py:655 #: apps/transactions/models.py:250 apps/transactions/models.py:341 -#: apps/transactions/models.py:1290 +#: apps/transactions/models.py:1314 msgid "Mute" msgstr "Silencieux" @@ -1277,7 +1412,7 @@ msgid "Set Values" msgstr "Configurer les valeurs" #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 -#: apps/transactions/models.py:421 apps/transactions/models.py:645 +#: apps/transactions/models.py:421 apps/transactions/models.py:669 msgid "Transaction" msgstr "Transaction" @@ -1313,7 +1448,12 @@ msgstr "Règle" msgid "Field" msgstr "Champ" -#: apps/rules/models.py:61 +#: apps/rules/models.py:61 templates/investments/fragments/charts.html:86 +#: templates/investments/fragments/detail.html:103 +#: templates/investments/fragments/detail.html:162 +#: templates/investments/fragments/list.html:48 +#: templates/investments/fragments/list.html:49 +#: templates/investments/fragments/rebalance.html:23 msgid "Value" msgstr "Valeur" @@ -1501,7 +1641,7 @@ msgid "Upload" msgstr "Envoi" #: apps/transactions/forms.py:355 apps/transactions/forms.py:1089 -#: apps/transactions/models.py:925 +#: apps/transactions/models.py:949 #, fuzzy #| msgid "To Account" msgid "To account" @@ -1520,8 +1660,8 @@ msgstr "Montant de départ" msgid "To Amount" msgstr "Montant d'arrivée" -#: apps/transactions/forms.py:718 apps/transactions/models.py:970 -#: apps/transactions/models.py:1267 templates/cotton/transaction/item.html:52 +#: apps/transactions/forms.py:718 apps/transactions/models.py:994 +#: apps/transactions/models.py:1291 templates/cotton/transaction/item.html:52 #: templates/cotton/transaction/item.html:60 #: templates/cotton/ui/quick_transactions_buttons.html:40 #: templates/cotton/ui/transactions_fab.html:44 @@ -1588,8 +1728,8 @@ msgstr "" "Les entités désactivées ne pourront pas être sélectionnées lors de la " "création de nouvelles transactions" -#: apps/transactions/models.py:323 apps/transactions/models.py:969 -#: apps/transactions/models.py:1266 +#: apps/transactions/models.py:323 apps/transactions/models.py:993 +#: apps/transactions/models.py:1290 #: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:52 @@ -1597,13 +1737,19 @@ msgstr "" #: templates/cotton/ui/quick_transactions_buttons.html:10 #: templates/cotton/ui/transactions_fab.html:10 #: templates/insights/fragments/overview/_results.html:12 +#: templates/investments/fragments/_totals.html:21 +#: templates/investments/fragments/_totals.html:42 +#: templates/investments/fragments/detail.html:106 +#: templates/investments/fragments/detail.html:210 +#: templates/investments/fragments/detail.html:252 +#: templates/investments/fragments/detail.html:320 #: templates/mini_tools/simulator.html:66 #: templates/monthly_overview/fragments/monthly_summary.html:42 msgid "Income" msgstr "Revenus" -#: apps/transactions/models.py:324 apps/transactions/models.py:971 -#: apps/transactions/models.py:1268 +#: apps/transactions/models.py:324 apps/transactions/models.py:995 +#: apps/transactions/models.py:1292 #: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:56 @@ -1615,14 +1761,14 @@ msgstr "Revenus" msgid "Expense" msgstr "Dépense" -#: apps/transactions/models.py:379 apps/transactions/models.py:765 +#: apps/transactions/models.py:379 apps/transactions/models.py:789 #: templates/cotton/transaction/item.html:291 #: templates/cotton/transaction/item.html:308 #: templates/cotton/transaction/item.html:318 msgid "Installment Plan" msgstr "Plan d'aménagement" -#: apps/transactions/models.py:388 apps/transactions/models.py:1045 +#: apps/transactions/models.py:388 apps/transactions/models.py:1069 #: templates/cotton/transaction/item.html:281 #: templates/cotton/transaction/item.html:301 msgid "Recurring Transaction" @@ -1640,152 +1786,164 @@ msgstr "Supprimé" msgid "Deleted At" msgstr "Supprimé à" -#: apps/transactions/models.py:591 +#: apps/transactions/models.py:517 +msgid "A transfer needs one expense and one income." +msgstr "" + +#: apps/transactions/models.py:519 +msgid "A transfer needs two different accounts." +msgstr "" + +#: apps/transactions/models.py:523 +msgid "This transaction is already part of another transfer." +msgstr "" + +#: apps/transactions/models.py:615 msgid "No category" msgstr "Pas de catégorie" -#: apps/transactions/models.py:593 +#: apps/transactions/models.py:617 msgid "No description" msgstr "Pas de description" -#: apps/transactions/models.py:650 +#: apps/transactions/models.py:674 msgid "File" msgstr "Fichier" -#: apps/transactions/models.py:652 +#: apps/transactions/models.py:676 msgid "Original Name" msgstr "Nom initial" -#: apps/transactions/models.py:654 +#: apps/transactions/models.py:678 msgid "Content Type" msgstr "Type de contenu" -#: apps/transactions/models.py:656 +#: apps/transactions/models.py:680 msgid "Size" msgstr "Taille" -#: apps/transactions/models.py:661 +#: apps/transactions/models.py:685 msgid "Uploaded By" msgstr "Envoyer par" -#: apps/transactions/models.py:666 +#: apps/transactions/models.py:690 msgid "Transaction Attachment" msgstr "Fichiers de la transaction" -#: apps/transactions/models.py:667 +#: apps/transactions/models.py:691 msgid "Transaction Attachments" msgstr "Fichiers de transactions" -#: apps/transactions/models.py:697 templates/includes/sidebar.html:57 +#: apps/transactions/models.py:721 templates/includes/sidebar.html:57 msgid "Yearly" msgstr "Annuel" -#: apps/transactions/models.py:698 apps/users/models.py:469 +#: apps/transactions/models.py:722 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "Mensuel" -#: apps/transactions/models.py:699 +#: apps/transactions/models.py:723 msgid "Weekly" msgstr "Hebdomadaire" -#: apps/transactions/models.py:700 +#: apps/transactions/models.py:724 msgid "Daily" msgstr "Quotidien" -#: apps/transactions/models.py:713 +#: apps/transactions/models.py:737 msgid "Number of Installments" msgstr "Nombre d'écheances" -#: apps/transactions/models.py:718 +#: apps/transactions/models.py:742 msgid "Installment Start" msgstr "Commencer à l'échéance" -#: apps/transactions/models.py:719 +#: apps/transactions/models.py:743 msgid "The installment number to start counting from" msgstr "L'échéance à partir de laquelle compter" -#: apps/transactions/models.py:724 apps/transactions/models.py:1015 +#: apps/transactions/models.py:748 apps/transactions/models.py:1039 msgid "Start Date" msgstr "Date de début" -#: apps/transactions/models.py:728 apps/transactions/models.py:1016 +#: apps/transactions/models.py:752 apps/transactions/models.py:1040 msgid "End Date" msgstr "Date de fin" -#: apps/transactions/models.py:733 +#: apps/transactions/models.py:757 msgid "Recurrence" msgstr "Récurrence" -#: apps/transactions/models.py:736 +#: apps/transactions/models.py:760 msgid "Installment Amount" msgstr "Montant des échéances" -#: apps/transactions/models.py:755 apps/transactions/models.py:1035 +#: apps/transactions/models.py:779 apps/transactions/models.py:1059 msgid "Add description to transactions" msgstr "Rajouter une description à la transaction" -#: apps/transactions/models.py:758 apps/transactions/models.py:1038 +#: apps/transactions/models.py:782 apps/transactions/models.py:1062 msgid "Add notes to transactions" msgstr "Ajouter des notes aux transactions" -#: apps/transactions/models.py:932 +#: apps/transactions/models.py:956 #, fuzzy #| msgid "To Amount" msgid "To amount" msgstr "Montant d'arrivée" -#: apps/transactions/models.py:933 +#: apps/transactions/models.py:957 msgid "Leave empty to use the same amount" msgstr "Laisser vide pour garder le même montant" -#: apps/transactions/models.py:974 templates/mini_tools/simulator.html:129 +#: apps/transactions/models.py:998 templates/mini_tools/simulator.html:129 msgid "day(s)" msgstr "jour(s)" -#: apps/transactions/models.py:975 templates/mini_tools/simulator.html:130 +#: apps/transactions/models.py:999 templates/mini_tools/simulator.html:130 msgid "week(s)" msgstr "semaine(s)" -#: apps/transactions/models.py:976 templates/mini_tools/simulator.html:131 +#: apps/transactions/models.py:1000 templates/mini_tools/simulator.html:131 msgid "month(s)" msgstr "mois" -#: apps/transactions/models.py:977 templates/mini_tools/simulator.html:132 +#: apps/transactions/models.py:1001 templates/mini_tools/simulator.html:132 msgid "year(s)" msgstr "année(s)" -#: apps/transactions/models.py:979 +#: apps/transactions/models.py:1003 #: templates/recurring_transactions/fragments/list.html:18 msgid "Paused" msgstr "Interrompu" -#: apps/transactions/models.py:1018 +#: apps/transactions/models.py:1042 msgid "Recurrence Type" msgstr "Type de récurrence" -#: apps/transactions/models.py:1021 +#: apps/transactions/models.py:1045 msgid "Recurrence Interval" msgstr "Intervalle de récurrence" -#: apps/transactions/models.py:1024 +#: apps/transactions/models.py:1048 msgid "Keep at most" msgstr "Répéter un maximum de" -#: apps/transactions/models.py:1028 +#: apps/transactions/models.py:1052 msgid "Last Generated Date" msgstr "Dernière date générée" -#: apps/transactions/models.py:1031 +#: apps/transactions/models.py:1055 msgid "Last Generated Reference Date" msgstr "Dernière date de référence générée" -#: apps/transactions/models.py:1334 templates/cotton/transaction/item.html:274 +#: apps/transactions/models.py:1358 templates/cotton/transaction/item.html:274 #: templates/cotton/ui/transactions_fab.html:59 msgid "Quick Transaction" msgstr "Transaction rapide" -#: apps/transactions/models.py:1335 templates/includes/sidebar.html:98 +#: apps/transactions/models.py:1359 templates/includes/sidebar.html:98 #: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:15 msgid "Quick Transactions" @@ -1908,8 +2066,8 @@ msgid "Item deleted successfully" msgstr "Item supprimée avec succès" #: apps/transactions/views/quick_transactions.py:164 -#: apps/transactions/views/transactions.py:147 -#: apps/transactions/views/transactions.py:332 +#: apps/transactions/views/transactions.py:156 +#: apps/transactions/views/transactions.py:343 msgid "Transaction added successfully" msgstr "Transaction ajoutée avec succès" @@ -1953,34 +2111,34 @@ msgstr "Fichier téléchargé avec succès" msgid "Attachment deleted successfully" msgstr "Fichier supprimé avec succès" -#: apps/transactions/views/transactions.py:359 +#: apps/transactions/views/transactions.py:370 msgid "Transaction updated successfully" msgstr "Transaction mise à jour avec succès" -#: apps/transactions/views/transactions.py:410 +#: apps/transactions/views/transactions.py:421 #, python-format msgid "%(count)s transaction updated successfully" msgid_plural "%(count)s transactions updated successfully" msgstr[0] "%(count)s transaction mise à jour avec succès" msgstr[1] "%(count)s transactions mises à jour avec succès" -#: apps/transactions/views/transactions.py:437 +#: apps/transactions/views/transactions.py:448 msgid "Transaction duplicated successfully" msgstr "Transaction dupliquée avec succès" -#: apps/transactions/views/transactions.py:482 +#: apps/transactions/views/transactions.py:493 msgid "Transaction deleted successfully" msgstr "Transaction supprimée avec succès" -#: apps/transactions/views/transactions.py:512 +#: apps/transactions/views/transactions.py:523 msgid "Transaction restored successfully" msgstr "Transaction restaurée avec succès" -#: apps/transactions/views/transactions.py:538 +#: apps/transactions/views/transactions.py:549 msgid "Transfer added successfully" msgstr "Virement ajouté avec succès" -#: apps/transactions/views/transactions.py:566 +#: apps/transactions/views/transactions.py:579 msgid "Transfer updated successfully" msgstr "Virement mis à jour avec succès" @@ -2301,6 +2459,7 @@ msgstr "Éditer un groupe de comptes" #: templates/exchange_rates_services/fragments/table.html:20 #: templates/import_app/fragments/profiles/list.html:42 #: templates/installment_plans/fragments/table.html:25 +#: templates/investment_classes/fragments/list.html:36 #: templates/quick_transactions/fragments/list.html:22 #: templates/recurring_transactions/fragments/table.html:27 #: templates/rules/fragments/list.html:31 @@ -2323,6 +2482,9 @@ msgstr "Actions" #: templates/exchange_rates_services/fragments/table.html:23 #: templates/import_app/fragments/profiles/list.html:46 #: templates/installment_plans/fragments/table.html:28 +#: templates/investment_classes/fragments/list.html:39 +#: templates/investments/fragments/detail.html:305 +#: templates/investments/fragments/detail.html:331 #: templates/quick_transactions/fragments/list.html:25 #: templates/recurring_transactions/fragments/table.html:30 #: templates/rules/fragments/transaction_rule/view.html:22 @@ -2372,6 +2534,7 @@ msgstr "Partager" #: templates/import_app/fragments/profiles/list.html:81 #: templates/import_app/fragments/runs/list.html:100 #: templates/installment_plans/fragments/table.html:54 +#: templates/investment_classes/fragments/list.html:45 #: templates/mini_tools/simulator.html:109 #: templates/mini_tools/unit_price_calculator.html:16 #: templates/quick_transactions/fragments/list.html:32 @@ -2405,6 +2568,7 @@ msgstr "Supprimer" #: templates/import_app/fragments/runs/list.html:104 #: templates/installment_plans/fragments/table.html:47 #: templates/installment_plans/fragments/table.html:58 +#: templates/investment_classes/fragments/list.html:49 #: templates/quick_transactions/fragments/list.html:37 #: templates/recurring_transactions/fragments/table.html:52 #: templates/recurring_transactions/fragments/table.html:65 @@ -2454,6 +2618,7 @@ msgstr "Cette opération est irréversible, vous ne pourrez pas l'annuler !" #: templates/import_app/fragments/profiles/list.html:87 #: templates/import_app/fragments/runs/list.html:106 #: templates/installment_plans/fragments/table.html:60 +#: templates/investment_classes/fragments/list.html:51 #: templates/quick_transactions/fragments/list.html:39 #: templates/recurring_transactions/fragments/table.html:94 #: templates/rules/fragments/list.html:62 @@ -2502,6 +2667,7 @@ msgid "Add account" msgstr "Ajouter un compte" #: templates/accounts/fragments/edit.html:5 +#: templates/investments/fragments/detail.html:40 msgid "Edit account" msgstr "Editer le compte" @@ -2805,6 +2971,8 @@ msgid "Add DCA strategy" msgstr "Ajouter une stratégie DCA" #: templates/dca/fragments/strategy/details.html:28 +#: templates/investments/fragments/detail.html:92 +#: templates/investments/fragments/list.html:65 msgid "No exchange rate available" msgstr "Pas de taux de changes disponibles" @@ -2987,7 +3155,7 @@ msgstr "Comptes" msgid "No services configured" msgstr "Pas de services configurés" -#: templates/export_app/pages/index.html:4 templates/includes/sidebar.html:211 +#: templates/export_app/pages/index.html:4 templates/includes/sidebar.html:225 msgid "Export and Restore" msgstr "Export et Restauration" @@ -3165,52 +3333,63 @@ msgstr "Corbeille" msgid "Tools" msgstr "Outils" -#: templates/includes/sidebar.html:118 +#: templates/includes/sidebar.html:118 templates/includes/sidebar.html:188 +#: templates/investment_classes/fragments/list.html:29 +#: templates/investments/fragments/detail.html:37 +#: templates/investments/fragments/list.html:9 +#: templates/investments/pages/detail.html:4 +#: templates/investments/pages/index.html:4 +#, fuzzy +#| msgid "Installments" +msgid "Investments" +msgstr "Paiements en plusieurs fois" + +#: templates/includes/sidebar.html:124 msgid "Dollar Cost Average Tracker" msgstr "Suivi Dollar Cost Average" -#: templates/includes/sidebar.html:124 +#: templates/includes/sidebar.html:130 #: templates/mini_tools/unit_price_calculator.html:4 #: templates/mini_tools/unit_price_calculator.html:9 msgid "Unit Price Calculator" msgstr "Calculateur de prix unitaire" -#: templates/includes/sidebar.html:130 +#: templates/includes/sidebar.html:136 #: templates/mini_tools/currency_converter/currency_converter.html:7 #: templates/mini_tools/currency_converter/currency_converter.html:14 msgid "Currency Converter" msgstr "Convertisseur de devises" -#: templates/includes/sidebar.html:136 templates/mini_tools/simulator.html:5 +#: templates/includes/sidebar.html:142 templates/mini_tools/simulator.html:5 #: templates/mini_tools/simulator.html:21 msgid "Simulator" msgstr "Simulateur" -#: templates/includes/sidebar.html:145 +#: templates/includes/sidebar.html:151 msgid "Management" msgstr "Gestion" -#: templates/includes/sidebar.html:196 +#: templates/includes/sidebar.html:210 msgid "Automation" msgstr "Automatisation" -#: templates/includes/sidebar.html:225 +#: templates/includes/sidebar.html:239 msgid "Admin" msgstr "Admin" -#: templates/includes/sidebar.html:233 +#: templates/includes/sidebar.html:247 msgid "Django Admin" msgstr "Administration Django" -#: templates/includes/sidebar.html:234 +#: templates/includes/sidebar.html:248 msgid "Only use this if you know what you're doing" msgstr "A n'utiliser que si vous savez ce que vous faites" -#: templates/includes/sidebar.html:249 +#: templates/includes/sidebar.html:263 msgid "is available" msgstr "est disponible" -#: templates/includes/sidebar.html:257 +#: templates/includes/sidebar.html:271 msgid "Calculator" msgstr "Calculatrice" @@ -3277,6 +3456,7 @@ msgstr "Aucune transaction récente" #: templates/insights/fragments/overview/_results.html:173 #: templates/insights/fragments/year_by_year.html:59 #: templates/insights/fragments/year_by_year.html:140 +#: templates/investment_classes/fragments/list.html:65 #: templates/monthly_overview/fragments/monthly_summary.html:168 msgid "Total" msgstr "Total" @@ -3480,6 +3660,305 @@ msgstr "" msgid "No installment plans" msgstr "Aucuns paiements en plusieurs fois" +#: templates/investment_classes/fragments/form.html:5 +msgid "Edit asset class" +msgstr "" + +#: templates/investment_classes/fragments/form.html:5 +msgid "Add asset class" +msgstr "" + +#: templates/investment_classes/fragments/list.html:19 +#: templates/investments/fragments/rebalance.html:10 +#, python-format +msgid "Targets add up to %(total)s%%. Set them to 100%% to see the rebalance." +msgstr "" + +#: templates/investment_classes/fragments/list.html:28 +#: templates/investments/fragments/rebalance.html:25 +#, fuzzy +#| msgid "Targeting" +msgid "Target" +msgstr "Ciblage" + +#: templates/investment_classes/fragments/list.html:50 +msgid "Its investments will be left without an asset class." +msgstr "" + +#: templates/investment_classes/fragments/list.html:74 +msgid "No asset classes" +msgstr "" + +#: templates/investments/fragments/_allocation.html:3 +msgid "Allocation chart" +msgstr "" + +#: templates/investments/fragments/_allocation.html:11 +#, python-format +msgid "" +"%(share)s%% of your investments with a target, against a target of " +"%(target)s%%" +msgstr "" + +#: templates/investments/fragments/_mwr.html:1 +msgid "Annual return, weighted by when money went in and out" +msgstr "" + +#: templates/investments/fragments/_mwr.html:1 +msgid "" +"Return since the first contribution, weighted by when money went in and out" +msgstr "" + +#: templates/investments/fragments/_mwr.html:1 +msgid "/yr" +msgstr "" + +#: templates/investments/fragments/_totals.html:15 +#: templates/investments/fragments/detail.html:63 +msgid "total return" +msgstr "" + +#: templates/investments/fragments/_totals.html:20 +#: templates/investments/fragments/_totals.html:41 +#: templates/investments/fragments/charts.html:96 +#: templates/investments/fragments/detail.html:163 +#: templates/investments/fragments/detail.html:223 +#: templates/investments/fragments/list.html:47 +#, fuzzy +#| msgid "Total Invested" +msgid "Invested" +msgstr "Total Investissement" + +#: templates/investments/fragments/_totals.html:24 +#: templates/investments/fragments/detail.html:74 +msgid "" +"How much of the return came from exchange rates moving since you invested" +msgstr "" + +#: templates/investments/fragments/_totals.html:24 +#: templates/investments/fragments/_totals.html:26 +#, fuzzy +#| msgid "Currency Code" +msgid "Currency effect" +msgstr "Code de devise" + +#: templates/investments/fragments/_totals.html:26 +#: templates/investments/fragments/detail.html:78 +msgid "" +"Every date is converted with the same rate. Add historical exchange rates " +"(or an automatic rate service) to see how much exchange rates moved your " +"return." +msgstr "" + +#: templates/investments/fragments/_totals.html:40 +#: templates/investments/fragments/list.html:49 +msgid "Return" +msgstr "" + +#: templates/investments/fragments/charts.html:10 +msgid "By asset class" +msgstr "" + +#: templates/investments/fragments/charts.html:17 +#: templates/net_worth/net_worth.html:52 +#: templates/yearly_overview/pages/overview_by_currency.html:6 +msgid "By currency" +msgstr "Par devises" + +#: templates/investments/fragments/charts.html:24 +#, fuzzy +#| msgid "Total Invested" +msgid "Value and invested" +msgstr "Total Investissement" + +#: templates/investments/fragments/charts.html:31 +msgid "Return by investment" +msgstr "" + +#: templates/investments/fragments/charts.html:38 +#, fuzzy +#| msgid "Nothing to see here..." +msgid "Nothing to chart yet" +msgstr "Rien à voir ici..." + +#: templates/investments/fragments/detail.html:10 +msgid "Buy / Contribute" +msgstr "" + +#: templates/investments/fragments/detail.html:16 +msgid "Sell / Withdraw" +msgstr "" + +#: templates/investments/fragments/detail.html:23 +msgid "Dividend / Income" +msgstr "" + +#: templates/investments/fragments/detail.html:30 +#, fuzzy +#| msgid "Updated at" +msgid "Update value" +msgstr "Mis à jour le" + +#: templates/investments/fragments/detail.html:47 +#: templates/investments/fragments/list.html:67 +msgid "Tracked by value" +msgstr "" + +#: templates/investments/fragments/detail.html:48 +msgid "" +"Some incoming units have no linked payment, so their cost was estimated from " +"the market price of that day" +msgstr "" + +#: templates/investments/fragments/detail.html:68 +#, fuzzy +#| msgid "Info" +msgid "In" +msgstr "Info" + +#: templates/investments/fragments/detail.html:74 +#: templates/investments/fragments/detail.html:78 +#, fuzzy +#| msgid "Currency Code" +msgid "currency effect" +msgstr "Code de devise" + +#: templates/investments/fragments/detail.html:104 +#: templates/investments/fragments/detail.html:179 +#, fuzzy +#| msgid "Entry Price" +msgid "Price" +msgstr "Prix d'entrée" + +#: templates/investments/fragments/detail.html:105 +#: templates/investments/fragments/detail.html:200 +#: templates/investments/fragments/detail.html:239 +#: templates/investments/fragments/detail.html:290 +#, fuzzy +#| msgid "Warning" +msgid "Earnings" +msgstr "Avertissement" + +#: templates/investments/fragments/detail.html:180 +#: templates/investments/fragments/detail.html:227 +msgid "Average cost" +msgstr "" + +#: templates/investments/fragments/detail.html:181 +#: templates/investments/fragments/rebalance.html:41 +#, fuzzy +#| msgid "By" +msgid "Buy" +msgstr "Par" + +#: templates/investments/fragments/detail.html:182 +#: templates/investments/fragments/rebalance.html:43 +msgid "Sell" +msgstr "" + +#: templates/investments/fragments/detail.html:227 +#: templates/investments/fragments/detail.html:257 +msgid "Put in / taken out" +msgstr "" + +#: templates/investments/fragments/detail.html:239 +#, fuzzy +#| msgid "Uncategorized" +msgid "Unrealized" +msgstr "Sans catégorie" + +#: templates/investments/fragments/detail.html:248 +msgid "Realized" +msgstr "" + +#: templates/investments/fragments/detail.html:271 +#, fuzzy +#| msgid "Management" +msgid "Movements" +msgstr "Gestion" + +#: templates/investments/fragments/detail.html:284 +msgid "Bought / contributed" +msgstr "" + +#: templates/investments/fragments/detail.html:284 +msgid "Sold / withdrew" +msgstr "" + +#: templates/investments/fragments/detail.html:288 +msgid "Money in" +msgstr "" + +#: templates/investments/fragments/detail.html:288 +msgid "Money out" +msgstr "" + +#: templates/investments/fragments/detail.html:290 +msgid "Gain" +msgstr "" + +#: templates/investments/fragments/detail.html:290 +msgid "Loss, tax or fee" +msgstr "" + +#: templates/investments/fragments/detail.html:315 +#, fuzzy +#| msgid "No presets yet" +msgid "No movements yet" +msgstr "Pas encore de préréglages" + +#: templates/investments/fragments/detail.html:315 +msgid "Use the + button to buy or contribute" +msgstr "" + +#: templates/investments/fragments/list.html:21 +msgid "Holdings" +msgstr "" + +#: templates/investments/fragments/list.html:60 +msgid "Some costs were estimated from market prices" +msgstr "" + +#: templates/investments/fragments/list.html:92 +msgid "Charts" +msgstr "" + +#: templates/investments/fragments/list.html:97 +#, fuzzy +#| msgid "New balance" +msgid "Rebalance" +msgstr "Nouveau solde" + +#: templates/investments/fragments/list.html:105 +#, fuzzy +#| msgid "No presets yet" +msgid "No investments yet" +msgstr "Pas encore de préréglages" + +#: templates/investments/fragments/list.html:106 +msgid "Mark an account as an investment in its settings to see it here" +msgstr "" + +#: templates/investments/fragments/rebalance.html:4 +msgid "No allocation targets" +msgstr "" + +#: templates/investments/fragments/rebalance.html:5 +msgid "Set a target for your asset classes to see what to buy and sell" +msgstr "" + +#: templates/investments/fragments/rebalance.html:26 +msgid "To reach the target" +msgstr "" + +#: templates/investments/fragments/rebalance.html:34 +msgid "Off target" +msgstr "" + +#: templates/investments/fragments/rebalance.html:55 +msgid "Left out: investments without an asset class or a target" +msgstr "" + #: templates/layouts/base.html:38 msgid "This is a demo!" msgstr "C'est une démo !" @@ -3691,11 +4170,6 @@ msgstr "Filtrer les transactions" msgid "Order by" msgstr "Trier par" -#: templates/net_worth/net_worth.html:52 -#: templates/yearly_overview/pages/overview_by_currency.html:6 -msgid "By currency" -msgstr "Par devises" - #: templates/net_worth/net_worth.html:135 msgid "Evolution" msgstr "Évolution" @@ -4153,6 +4627,12 @@ msgstr "Se connecter avec" msgid "Yearly Overview" msgstr "Aperçu annuel" +#~ msgid "" +#~ "Create one exchange rate and keep updating it. Avoids database clutter." +#~ msgstr "" +#~ "Ne créer qu'un seul taux de change et le mettre à jour. Evite d'engorger " +#~ "la base de donnée." + #~ msgid "Add as quick transaction" #~ msgstr "Ajouter aux transactions rapides" diff --git a/app/locale/hu/LC_MESSAGES/django.po b/app/locale/hu/LC_MESSAGES/django.po index b9ad78f5..15fd64cc 100644 --- a/app/locale/hu/LC_MESSAGES/django.po +++ b/app/locale/hu/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-11-08 13:19+0000\n" +"POT-Creation-Date: 2026-11-08 18:27+0000\n" "PO-Revision-Date: 2026-01-10 03:09+0000\n" "Last-Translator: Herculino Trotta \n" "Language-Team: Hungarian \n" "Language-Team: Italian \n" "Language-Team: Dutch \n" "Language-Team: Polish =20) ? 1 : 2;\n" "X-Generator: Weblate 2026.6\n" -#: apps/accounts/forms.py:28 +#: apps/accounts/forms.py:33 msgid "Group name" msgstr "Nazwa grupy" -#: apps/accounts/forms.py:43 apps/accounts/forms.py:109 -#: apps/currencies/forms.py:57 apps/currencies/forms.py:91 -#: apps/currencies/forms.py:166 apps/dca/forms.py:46 apps/dca/forms.py:192 -#: apps/import_app/forms.py:32 apps/rules/forms.py:60 apps/rules/forms.py:100 -#: apps/rules/forms.py:385 apps/transactions/forms.py:219 -#: apps/transactions/forms.py:452 apps/transactions/forms.py:571 -#: apps/transactions/forms.py:718 apps/transactions/forms.py:940 -#: apps/transactions/forms.py:987 apps/transactions/forms.py:1015 -#: apps/transactions/forms.py:1046 apps/transactions/forms.py:1208 -#: apps/users/forms.py:264 apps/users/forms.py:422 +#: apps/accounts/forms.py:48 apps/accounts/forms.py:76 +#: apps/accounts/forms.py:184 apps/currencies/forms.py:57 +#: apps/currencies/forms.py:91 apps/currencies/forms.py:168 +#: apps/dca/forms.py:46 apps/dca/forms.py:192 apps/import_app/forms.py:32 +#: apps/rules/forms.py:60 apps/rules/forms.py:100 apps/rules/forms.py:385 +#: apps/transactions/forms.py:219 apps/transactions/forms.py:452 +#: apps/transactions/forms.py:571 apps/transactions/forms.py:718 +#: apps/transactions/forms.py:940 apps/transactions/forms.py:987 +#: apps/transactions/forms.py:1015 apps/transactions/forms.py:1046 +#: apps/transactions/forms.py:1208 apps/users/forms.py:264 +#: apps/users/forms.py:422 #: templates/rules/fragments/transaction_rule/dry_run/updated.html:5 #: templates/rules/fragments/transaction_rule/view.html:128 msgid "Update" msgstr "Aktualizuj" -#: apps/accounts/forms.py:49 apps/accounts/forms.py:115 -#: apps/common/widgets/tom_select.py:15 apps/currencies/forms.py:63 -#: apps/currencies/forms.py:97 apps/currencies/forms.py:172 -#: apps/dca/forms.py:52 apps/dca/forms.py:198 apps/import_app/forms.py:38 -#: apps/rules/forms.py:66 apps/rules/forms.py:106 apps/rules/forms.py:391 -#: apps/transactions/forms.py:206 apps/transactions/forms.py:226 -#: apps/transactions/forms.py:459 apps/transactions/forms.py:946 -#: apps/transactions/forms.py:993 apps/transactions/forms.py:1021 -#: apps/transactions/forms.py:1052 apps/transactions/forms.py:1214 -#: apps/users/forms.py:270 apps/users/forms.py:428 -#: templates/mini_tools/simulator.html:177 +#: apps/accounts/forms.py:54 apps/accounts/forms.py:76 +#: apps/accounts/forms.py:190 apps/common/widgets/tom_select.py:15 +#: apps/currencies/forms.py:63 apps/currencies/forms.py:97 +#: apps/currencies/forms.py:174 apps/dca/forms.py:52 apps/dca/forms.py:198 +#: apps/import_app/forms.py:38 apps/rules/forms.py:66 apps/rules/forms.py:106 +#: apps/rules/forms.py:391 apps/transactions/forms.py:206 +#: apps/transactions/forms.py:226 apps/transactions/forms.py:459 +#: apps/transactions/forms.py:946 apps/transactions/forms.py:993 +#: apps/transactions/forms.py:1021 apps/transactions/forms.py:1052 +#: apps/transactions/forms.py:1214 apps/users/forms.py:270 +#: apps/users/forms.py:428 templates/mini_tools/simulator.html:177 #: templates/mini_tools/unit_price_calculator.html:168 msgid "Add" msgstr "Dodaj" -#: apps/accounts/forms.py:57 templates/accounts/fragments/list.html:23 +#: apps/accounts/forms.py:86 templates/accounts/fragments/list.html:23 msgid "Group" msgstr "Grupa" -#: apps/accounts/forms.py:123 +#: apps/accounts/forms.py:93 apps/accounts/models.py:73 +#: apps/accounts/models.py:130 +#: templates/investments/fragments/rebalance.html:22 +msgid "Asset class" +msgstr "" + +#: apps/accounts/forms.py:198 msgid "New balance" msgstr "Nowe saldo" -#: apps/accounts/forms.py:129 apps/dca/forms.py:79 apps/dca/forms.py:86 +#: apps/accounts/forms.py:204 apps/dca/forms.py:79 apps/dca/forms.py:86 #: apps/insights/forms.py:117 apps/insights/views.py:44 apps/rules/forms.py:181 #: apps/rules/forms.py:197 apps/rules/models.py:44 apps/rules/models.py:311 #: apps/transactions/forms.py:62 apps/transactions/forms.py:330 #: apps/transactions/forms.py:510 apps/transactions/forms.py:607 #: apps/transactions/forms.py:614 apps/transactions/forms.py:823 #: apps/transactions/forms.py:1075 apps/transactions/models.py:357 -#: apps/transactions/models.py:743 apps/transactions/models.py:999 -#: apps/transactions/models.py:1306 +#: apps/transactions/models.py:767 apps/transactions/models.py:1023 +#: apps/transactions/models.py:1330 #: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/year_by_year.html:52 msgid "Category" msgstr "Kategoria" -#: apps/accounts/forms.py:136 apps/dca/forms.py:95 apps/dca/forms.py:103 -#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 +#: apps/accounts/forms.py:211 apps/dca/forms.py:95 apps/dca/forms.py:103 +#: apps/export_app/forms.py:43 apps/export_app/forms.py:134 #: apps/insights/views.py:50 apps/rules/forms.py:184 apps/rules/forms.py:194 #: apps/rules/models.py:45 apps/rules/models.py:315 #: apps/transactions/filters.py:79 apps/transactions/forms.py:70 #: apps/transactions/forms.py:338 apps/transactions/forms.py:518 #: apps/transactions/forms.py:623 apps/transactions/forms.py:631 #: apps/transactions/forms.py:816 apps/transactions/forms.py:1068 -#: apps/transactions/models.py:363 apps/transactions/models.py:745 -#: apps/transactions/models.py:1003 apps/transactions/models.py:1312 -#: templates/includes/sidebar.html:156 +#: apps/transactions/models.py:363 apps/transactions/models.py:769 +#: apps/transactions/models.py:1027 apps/transactions/models.py:1336 +#: templates/includes/sidebar.html:162 #: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/year_by_year.html:24 @@ -95,27 +102,27 @@ msgstr "Kategoria" msgid "Tags" msgstr "Tagi" -#: apps/accounts/forms.py:179 +#: apps/accounts/forms.py:254 #, fuzzy #| msgid "All Transactions" msgid "All paid transactions" msgstr "Wszystkie transakcje" -#: apps/accounts/forms.py:180 +#: apps/accounts/forms.py:255 #, fuzzy #| msgid "Update" msgid "Up to date" msgstr "Aktualizuj" -#: apps/accounts/forms.py:181 +#: apps/accounts/forms.py:256 msgid "Up to reference month" msgstr "" -#: apps/accounts/forms.py:185 +#: apps/accounts/forms.py:260 msgid "Balance against" msgstr "" -#: apps/accounts/forms.py:189 apps/currencies/forms.py:70 +#: apps/accounts/forms.py:264 apps/currencies/forms.py:70 #: apps/dca/models.py:158 apps/rules/forms.py:176 apps/rules/forms.py:190 #: apps/rules/models.py:38 apps/rules/models.py:279 #: apps/transactions/forms.py:86 apps/transactions/forms.py:482 @@ -126,16 +133,17 @@ msgstr "" msgid "Date" msgstr "Data" -#: apps/accounts/forms.py:194 +#: apps/accounts/forms.py:269 #, fuzzy #| msgid "Reference Date" msgid "Reference month" msgstr "Data referencyjna" -#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 +#: apps/accounts/models.py:19 apps/accounts/models.py:36 +#: apps/accounts/models.py:84 apps/dca/models.py:13 #: apps/import_app/models.py:20 apps/rules/models.py:13 #: apps/transactions/models.py:249 apps/transactions/models.py:274 -#: apps/transactions/models.py:298 apps/transactions/models.py:1274 +#: apps/transactions/models.py:298 apps/transactions/models.py:1298 #: apps/users/models.py:577 templates/account_groups/fragments/list.html:22 #: templates/accounts/fragments/list.html:22 #: templates/categories/fragments/table.html:17 @@ -144,6 +152,7 @@ msgstr "Data referencyjna" #: templates/exchange_rates_services/fragments/list.html:28 #: templates/import_app/fragments/profiles/list.html:34 #: templates/installment_plans/fragments/table.html:16 +#: templates/investment_classes/fragments/list.html:27 #: templates/quick_transactions/fragments/list.html:13 #: templates/recurring_transactions/fragments/table.html:18 #: templates/rules/fragments/list.html:24 @@ -152,44 +161,129 @@ msgstr "Data referencyjna" msgid "Name" msgstr "Nazwa" -#: apps/accounts/models.py:18 apps/accounts/models.py:33 +#: apps/accounts/models.py:25 apps/accounts/models.py:88 msgid "Account Group" msgstr "Grupa konta" -#: apps/accounts/models.py:19 templates/account_groups/fragments/list.html:9 +#: apps/accounts/models.py:26 templates/account_groups/fragments/list.html:9 #: templates/account_groups/pages/index.html:4 -#: templates/includes/sidebar.html:176 +#: templates/includes/sidebar.html:182 msgid "Account Groups" msgstr "Grupy kont" -#: apps/accounts/models.py:39 apps/currencies/models.py:44 +#: apps/accounts/models.py:43 +msgid "Target allocation (%)" +msgstr "" + +#: apps/accounts/models.py:45 +msgid "" +"Share of your investments you want in this class. Leave it empty to leave " +"the class out of the targets." +msgstr "" + +#: apps/accounts/models.py:61 +msgid "You already have an asset class with this name." +msgstr "" + +#: apps/accounts/models.py:66 +#, python-format +msgid "" +"Targets can't add up to more than 100%%. Other classes already take " +"%(taken)s%%." +msgstr "" + +#: apps/accounts/models.py:74 apps/export_app/forms.py:131 +#: templates/includes/sidebar.html:190 +#: templates/investment_classes/fragments/list.html:9 +#: templates/investment_classes/pages/index.html:4 +#: templates/investments/fragments/rebalance.html:6 +#: templates/investments/fragments/rebalance.html:11 +msgid "Asset classes" +msgstr "" + +#: apps/accounts/models.py:94 apps/currencies/models.py:44 #: templates/accounts/fragments/list.html:24 #: templates/mini_tools/simulator.html:37 #: templates/yearly_overview/pages/yearly_overview_base.html:19 msgid "Currency" msgstr "Waluta" -#: apps/accounts/models.py:45 apps/currencies/models.py:27 +#: apps/accounts/models.py:100 apps/currencies/models.py:27 #: templates/accounts/fragments/list.html:25 msgid "Exchange Currency" msgstr "Wymiana waluty" -#: apps/accounts/models.py:50 apps/currencies/models.py:32 +#: apps/accounts/models.py:105 apps/currencies/models.py:32 msgid "Default currency for exchange calculations" msgstr "Domyślna waluta na potrzeby przeliczenia kursu wymiany" -#: apps/accounts/models.py:55 +#: apps/accounts/models.py:110 msgid "Asset account" msgstr "Rachunek aktywów" -#: apps/accounts/models.py:57 +#: apps/accounts/models.py:112 msgid "" "Asset accounts count towards your Net Worth, but not towards your month." msgstr "" "Rachunek aktywów wlicza się do dostępnej wartości netto, ale nie jest " "uwzględniany w miesięcznych podsumowaniach." -#: apps/accounts/models.py:62 apps/currencies/models.py:37 +#: apps/accounts/models.py:117 templates/investments/fragments/list.html:46 +#, fuzzy +#| msgid "Invert" +msgid "Investment" +msgstr "Zamień" + +#: apps/accounts/models.py:119 +msgid "" +"Show this account in the Investments tracker. Set an exchange currency to " +"price it by units (stocks, ETFs, crypto); leave it empty to track it by " +"value (fixed income, property, pensions)." +msgstr "" + +#: apps/accounts/models.py:132 +msgid "" +"Groups investments in the allocation charts, e.g. Fixed income, Stocks, Real " +"estate." +msgstr "" + +#: apps/accounts/models.py:140 +#, fuzzy +#| msgid "Entities" +msgid "Income entities" +msgstr "Encje" + +#: apps/accounts/models.py:142 +msgid "" +"Transactions with any of these entities count towards this investment's " +"return: in this account, and income paid into other accounts (dividends, " +"rent)." +msgstr "" + +#: apps/accounts/models.py:151 +#, fuzzy +#| msgid "No categories" +msgid "Income categories" +msgstr "Brak kategorii" + +#: apps/accounts/models.py:153 +msgid "" +"Transactions in this account with any of these categories are its result " +"(interest, taxes, fees). On accounts tracked by value, everything else that " +"isn't a transfer counts as money coming in or going out." +msgstr "" + +#: apps/accounts/models.py:162 +#, fuzzy +#| msgid "Income" +msgid "Income tags" +msgstr "Przychody" + +#: apps/accounts/models.py:164 +msgid "Same as income categories, for transactions with any of these tags." +msgstr "" + +#: apps/accounts/models.py:169 apps/currencies/models.py:37 #: templates/accounts/fragments/list.html:27 #: templates/categories/fragments/list.html:20 #: templates/currencies/fragments/list.html:24 @@ -198,19 +292,19 @@ msgstr "" msgid "Archived" msgstr "Zarchiwizowane" -#: apps/accounts/models.py:63 +#: apps/accounts/models.py:170 msgid "Archived accounts don't show up nor count towards your net worth" msgstr "" "Zarchiwizowane konta nie są wyświetlane oraz nie są uwzględniane w " "podsumowaniach" -#: apps/accounts/models.py:75 apps/rules/forms.py:173 apps/rules/forms.py:187 +#: apps/accounts/models.py:182 apps/rules/forms.py:173 apps/rules/forms.py:187 #: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/transactions/forms.py:82 apps/transactions/forms.py:350 #: apps/transactions/forms.py:477 apps/transactions/forms.py:808 #: apps/transactions/forms.py:1060 apps/transactions/models.py:329 -#: apps/transactions/models.py:703 apps/transactions/models.py:981 -#: apps/transactions/models.py:1280 +#: apps/transactions/models.py:727 apps/transactions/models.py:1005 +#: apps/transactions/models.py:1304 #: templates/installment_plans/fragments/table.html:17 #: templates/quick_transactions/fragments/list.html:14 #: templates/recurring_transactions/fragments/table.html:19 @@ -218,17 +312,17 @@ msgstr "" msgid "Account" msgstr "Konto" -#: apps/accounts/models.py:76 apps/export_app/forms.py:19 -#: apps/export_app/forms.py:129 apps/transactions/filters.py:63 +#: apps/accounts/models.py:183 apps/export_app/forms.py:19 +#: apps/export_app/forms.py:130 apps/transactions/filters.py:63 #: templates/accounts/fragments/list.html:9 -#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:168 -#: templates/includes/sidebar.html:170 +#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:174 +#: templates/includes/sidebar.html:176 #: templates/monthly_overview/pages/overview.html:77 #: templates/transactions/pages/transactions.html:26 msgid "Accounts" msgstr "Konta" -#: apps/accounts/models.py:93 +#: apps/accounts/models.py:200 msgid "Exchange currency cannot be the same as the account's main currency." msgstr "Waluta do wymiany nie może być taka sama jak waluta konta." @@ -320,7 +414,7 @@ msgstr "Encja o zadanym ID nie istnieje." msgid "Invalid entity data. Provide an ID or name." msgstr "Niepoprawne dane encji. Wprowadź ID lub nazwę encji." -#: apps/api/serializers/transactions.py:141 apps/transactions/models.py:953 +#: apps/api/serializers/transactions.py:141 apps/transactions/models.py:977 msgid "This field is required." msgstr "" @@ -342,13 +436,14 @@ msgstr "Uczyń prywatne" msgid "Shared with users" msgstr "Udostępnione użytkownikom" -#: apps/common/fields/forms/dynamic_select.py:71 -#: apps/common/fields/forms/dynamic_select.py:142 +#: apps/common/fields/forms/dynamic_select.py:79 +#: apps/common/fields/forms/dynamic_select.py:150 msgid "Error creating new instance" msgstr "Błąd podczas tworzenia wpisu" #: apps/common/fields/forms/grouped_select.py:24 #: apps/common/widgets/tom_select.py:94 apps/common/widgets/tom_select.py:97 +#: templates/investments/fragments/list.html:26 msgid "Ungrouped" msgstr "Niezgrupowane" @@ -504,6 +599,7 @@ msgid "Today" msgstr "Dzisiaj" #: apps/common/widgets/datepicker.py:142 +#: templates/investments/fragments/rebalance.html:24 msgid "Now" msgstr "Teraz" @@ -553,10 +649,10 @@ msgid "Decimal Places" msgstr "Liczba miejsc po przecinku" #: apps/currencies/models.py:45 apps/export_app/forms.py:25 -#: apps/export_app/forms.py:130 apps/transactions/filters.py:70 +#: apps/export_app/forms.py:132 apps/transactions/filters.py:70 #: templates/currencies/fragments/list.html:9 -#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:182 -#: templates/includes/sidebar.html:184 +#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:196 +#: templates/includes/sidebar.html:198 #: templates/monthly_overview/pages/overview.html:63 #: templates/transactions/pages/transactions.html:12 msgid "Currencies" @@ -588,9 +684,9 @@ msgid "Auto" msgstr "Automatycznie" #: apps/currencies/models.py:82 apps/export_app/forms.py:67 -#: apps/export_app/forms.py:142 templates/exchange_rates/fragments/list.html:10 +#: apps/export_app/forms.py:144 templates/exchange_rates/fragments/list.html:10 #: templates/exchange_rates/pages/index.html:4 -#: templates/includes/sidebar.html:190 +#: templates/includes/sidebar.html:204 msgid "Exchange Rates" msgstr "Kursy wymiany" @@ -685,30 +781,45 @@ msgstr "" "z walut na podstawie jej docelowej waluty wymiany." #: apps/currencies/models.py:171 -msgid "Single exchange rate" -msgstr "" +#, fuzzy +#| msgid "No exchange rates" +msgid "One exchange rate per day" +msgstr "Brak kursów wymiany walut" #: apps/currencies/models.py:174 -msgid "Create one exchange rate and keep updating it. Avoids database clutter." +msgid "" +"Update the day's exchange rate on each fetch instead of adding a new one." msgstr "" -#: apps/currencies/models.py:179 +#: apps/currencies/models.py:178 +#, fuzzy +#| msgid "Exchange Rates" +msgid "Exchange rates to keep" +msgstr "Kursy wymiany" + +#: apps/currencies/models.py:183 +msgid "" +"Keep at most this many automatic exchange rates per currency pair, deleting " +"the oldest first. Leave empty to keep all." +msgstr "" + +#: apps/currencies/models.py:188 msgid "Exchange Rate Service" msgstr "" -#: apps/currencies/models.py:180 +#: apps/currencies/models.py:189 msgid "Exchange Rate Services" msgstr "" -#: apps/currencies/models.py:234 +#: apps/currencies/models.py:243 msgid "'Every X hours' interval type requires a positive integer." msgstr "Cykliczność \"co X godzin\" wymaga dodatniej liczby." -#: apps/currencies/models.py:243 +#: apps/currencies/models.py:252 msgid "'Every X hours' interval must be between 1 and 24." msgstr "Cykliczność \"co X godzin\" musi być z przedziału 1-24." -#: apps/currencies/models.py:257 +#: apps/currencies/models.py:266 msgid "" "Invalid hour format. Use comma-separated hours (0-23) and/or ranges (e.g., " "'1-5,8,10-12')." @@ -716,7 +827,7 @@ msgstr "" "Niepoprawny format godziny. Użyj zakresów (0-23) i/lub oddziel godziny " "przecinkami (np. \"1-5,8,10-12\")." -#: apps/currencies/models.py:268 +#: apps/currencies/models.py:277 msgid "" "Invalid format. Please check the requirements for your selected interval " "type." @@ -796,11 +907,11 @@ msgid "You must provide an account." msgstr "Należy wybrać konto." #: apps/dca/forms.py:277 apps/transactions/forms.py:752 -#: apps/transactions/models.py:956 +#: apps/transactions/models.py:980 msgid "From and To accounts must be different." msgstr "Konta \"Z\" oraz \"Do\" muszą się różnić." -#: apps/dca/forms.py:291 +#: apps/dca/forms.py:299 #, python-format msgid "DCA for %(strategy_name)s" msgstr "" @@ -816,8 +927,8 @@ msgstr "Waluta dla płatności" #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/transactions/forms.py:504 apps/transactions/forms.py:651 -#: apps/transactions/models.py:353 apps/transactions/models.py:752 -#: apps/transactions/models.py:1009 apps/transactions/models.py:1302 +#: apps/transactions/models.py:353 apps/transactions/models.py:776 +#: apps/transactions/models.py:1033 apps/transactions/models.py:1326 msgid "Notes" msgstr "Notatki" @@ -825,7 +936,7 @@ msgstr "Notatki" msgid "DCA Strategy" msgstr "" -#: apps/dca/models.py:35 apps/export_app/forms.py:150 +#: apps/dca/models.py:35 apps/export_app/forms.py:152 msgid "DCA Strategies" msgstr "" @@ -845,7 +956,7 @@ msgstr "" msgid "DCA Entry" msgstr "" -#: apps/dca/models.py:187 apps/export_app/forms.py:151 +#: apps/dca/models.py:187 apps/export_app/forms.py:153 msgid "DCA Entries" msgstr "" @@ -873,25 +984,25 @@ msgstr "Pomyślnie zaktualizowano wpis" msgid "Entry deleted successfully" msgstr "Pomyślnie usunięto wpis" -#: apps/export_app/forms.py:13 apps/export_app/forms.py:128 -#: templates/includes/sidebar.html:227 templates/users/fragments/list.html:10 +#: apps/export_app/forms.py:13 apps/export_app/forms.py:129 +#: templates/includes/sidebar.html:241 templates/users/fragments/list.html:10 #: templates/users/pages/index.html:4 msgid "Users" msgstr "Użytkownicy" -#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 +#: apps/export_app/forms.py:31 apps/export_app/forms.py:136 #: apps/transactions/models.py:422 templates/includes/sidebar.html:81 -#: templates/includes/sidebar.html:148 +#: templates/includes/sidebar.html:154 #: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/table.html:37 #: templates/transactions/pages/transactions.html:5 msgid "Transactions" msgstr "Transakcje" -#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 +#: apps/export_app/forms.py:37 apps/export_app/forms.py:133 #: apps/insights/views.py:43 apps/transactions/filters.py:74 #: templates/categories/fragments/list.html:9 -#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:150 +#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/year_by_year.html:13 @@ -899,16 +1010,16 @@ msgstr "Transakcje" msgid "Categories" msgstr "Kategorie" -#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 +#: apps/export_app/forms.py:49 apps/export_app/forms.py:135 #: apps/insights/views.py:57 apps/rules/forms.py:185 apps/rules/forms.py:195 #: apps/rules/models.py:46 apps/rules/models.py:307 #: apps/transactions/filters.py:84 apps/transactions/forms.py:78 #: apps/transactions/forms.py:346 apps/transactions/forms.py:526 #: apps/transactions/forms.py:831 apps/transactions/forms.py:1083 #: apps/transactions/models.py:312 apps/transactions/models.py:368 -#: apps/transactions/models.py:748 apps/transactions/models.py:1006 -#: apps/transactions/models.py:1317 templates/entities/fragments/list.html:9 -#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:162 +#: apps/transactions/models.py:772 apps/transactions/models.py:1030 +#: apps/transactions/models.py:1341 templates/entities/fragments/list.html:9 +#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:168 #: templates/insights/fragments/month_by_month.html:40 #: templates/insights/fragments/month_by_month.html:43 #: templates/insights/fragments/year_by_year.html:35 @@ -916,28 +1027,28 @@ msgstr "Kategorie" msgid "Entities" msgstr "Encje" -#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 -#: apps/transactions/models.py:1046 templates/includes/sidebar.html:110 +#: apps/export_app/forms.py:55 apps/export_app/forms.py:139 +#: apps/transactions/models.py:1070 templates/includes/sidebar.html:110 #: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/pages/index.html:4 msgid "Recurring Transactions" msgstr "Zlecenia stałe" -#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 -#: apps/transactions/models.py:766 templates/includes/sidebar.html:104 +#: apps/export_app/forms.py:61 apps/export_app/forms.py:137 +#: apps/transactions/models.py:790 templates/includes/sidebar.html:104 #: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/pages/index.html:4 msgid "Installment Plans" msgstr "Plany ratalne" -#: apps/export_app/forms.py:73 apps/export_app/forms.py:140 +#: apps/export_app/forms.py:73 apps/export_app/forms.py:142 #: templates/exchange_rates_services/fragments/list.html:10 #: templates/exchange_rates_services/pages/index.html:4 -#: templates/includes/sidebar.html:218 +#: templates/includes/sidebar.html:232 msgid "Automatic Exchange Rates" msgstr "Automatyczne kursy walut" -#: apps/export_app/forms.py:79 templates/includes/sidebar.html:198 +#: apps/export_app/forms.py:79 templates/includes/sidebar.html:212 #: templates/rules/fragments/list.html:9 templates/rules/pages/index.html:4 msgid "Rules" msgstr "Reguły" @@ -946,57 +1057,57 @@ msgstr "Reguły" msgid "DCA" msgstr "DCA" -#: apps/export_app/forms.py:91 apps/export_app/forms.py:152 +#: apps/export_app/forms.py:91 apps/export_app/forms.py:154 #: templates/import_app/fragments/profiles/list.html:21 #: templates/import_app/pages/profiles_index.html:4 msgid "Import Profiles" msgstr "Profile importu" -#: apps/export_app/forms.py:117 templates/export_app/fragments/export.html:5 +#: apps/export_app/forms.py:118 templates/export_app/fragments/export.html:5 #: templates/export_app/pages/index.html:13 msgid "Export" msgstr "Eksport" -#: apps/export_app/forms.py:125 +#: apps/export_app/forms.py:126 msgid "Import a ZIP file exported from WYGIWYH" msgstr "Zaimportuj plik ZIP wyeksportowany z instancji WYGIWYH" -#: apps/export_app/forms.py:126 +#: apps/export_app/forms.py:127 msgid "ZIP File" msgstr "Plik ZIP" -#: apps/export_app/forms.py:143 apps/rules/models.py:27 +#: apps/export_app/forms.py:145 apps/rules/models.py:27 msgid "Transaction rules" msgstr "Reguły transakcji" -#: apps/export_app/forms.py:145 apps/rules/models.py:68 +#: apps/export_app/forms.py:147 apps/rules/models.py:68 msgid "Edit transaction action" msgstr "Edycja akcji transakcyjnych" -#: apps/export_app/forms.py:148 apps/rules/models.py:327 +#: apps/export_app/forms.py:150 apps/rules/models.py:327 msgid "Update or create transaction actions" msgstr "Stwórz lub uaktualnij akcje transakcyjne" -#: apps/export_app/forms.py:181 templates/cotton/transaction/item.html:341 +#: apps/export_app/forms.py:183 templates/cotton/transaction/item.html:341 #: templates/cotton/ui/deleted_transactions_action_bar.html:53 #: templates/export_app/fragments/restore.html:5 #: templates/export_app/pages/index.html:19 msgid "Restore" msgstr "Importuj" -#: apps/export_app/forms.py:191 +#: apps/export_app/forms.py:193 msgid "Please upload either a ZIP file or at least one CSV file" msgstr "Wrzuć plik ZIP lub przynajmniej jeden plik CSV" -#: apps/export_app/views.py:177 +#: apps/export_app/views.py:183 msgid "You have to select at least one export" msgstr "Musisz wybrać co najmniej jedną opcję do eksportu" -#: apps/export_app/views.py:197 +#: apps/export_app/views.py:203 msgid "Data restored successfully" msgstr "Pomyślnie odtworzono dane" -#: apps/export_app/views.py:209 +#: apps/export_app/views.py:215 msgid "" "There was an error restoring your data. Check the logs for more details." msgstr "" @@ -1009,7 +1120,7 @@ msgstr "Wybierz plik" #: apps/import_app/forms.py:55 #: templates/import_app/fragments/profiles/list.html:75 -#: templates/includes/sidebar.html:204 +#: templates/includes/sidebar.html:218 msgid "Import" msgstr "Import" @@ -1142,7 +1253,7 @@ msgstr "Tag" msgid "Untagged" msgstr "Nieotagowane" -#: apps/insights/views.py:53 apps/transactions/models.py:589 +#: apps/insights/views.py:53 apps/transactions/models.py:613 #: templates/tags/fragments/table.html:69 msgid "No tags" msgstr "Brak tagów" @@ -1163,6 +1274,32 @@ msgstr "Brak encji" msgid "No entities" msgstr "" +#: apps/investments/views.py:104 +msgid "Other" +msgstr "" + +#: apps/investments/views.py:135 +msgid "Unclassified" +msgstr "" + +#: apps/investments/views.py:267 +#, fuzzy +#| msgid "Installment Plan added successfully" +msgid "Asset class added successfully" +msgstr "Dodano plan ratalny" + +#: apps/investments/views.py:275 +#, fuzzy +#| msgid "Tag updated successfully" +msgid "Asset class updated successfully" +msgstr "Zaktualizowano tag" + +#: apps/investments/views.py:296 +#, fuzzy +#| msgid "Tag deleted successfully" +msgid "Asset class deleted successfully" +msgstr "Usunięto tag" + #: apps/net_worth/views.py:137 templates/net_worth/net_worth.html:84 #: templates/net_worth/net_worth.html:85 msgid "Consolidated" @@ -1216,8 +1353,8 @@ msgstr "Operator" #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/models.py:271 apps/transactions/forms.py:468 -#: apps/transactions/models.py:336 apps/transactions/models.py:708 -#: apps/transactions/models.py:987 apps/transactions/models.py:1287 +#: apps/transactions/models.py:336 apps/transactions/models.py:732 +#: apps/transactions/models.py:1011 apps/transactions/models.py:1311 #: templates/mini_tools/simulator.html:63 msgid "Type" msgstr "Typ" @@ -1225,7 +1362,7 @@ msgstr "Typ" #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/transactions/forms.py:472 apps/transactions/models.py:338 -#: apps/transactions/models.py:1289 templates/cotton/transaction/item.html:23 +#: apps/transactions/models.py:1313 templates/cotton/transaction/item.html:23 #: templates/cotton/transaction/item.html:34 #: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 @@ -1236,14 +1373,14 @@ msgstr "Zapłacono" #: apps/rules/models.py:283 apps/transactions/forms.py:90 #: apps/transactions/forms.py:488 apps/transactions/forms.py:638 #: apps/transactions/forms.py:837 apps/transactions/models.py:340 -#: apps/transactions/models.py:726 apps/transactions/models.py:1011 +#: apps/transactions/models.py:750 apps/transactions/models.py:1035 msgid "Reference Date" msgstr "Data referencyjna" #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/models.py:287 apps/transactions/forms.py:495 -#: apps/transactions/models.py:346 apps/transactions/models.py:992 -#: apps/transactions/models.py:1295 +#: apps/transactions/models.py:346 apps/transactions/models.py:1016 +#: apps/transactions/models.py:1319 #: templates/insights/fragments/sankey.html:102 #: templates/installment_plans/fragments/table.html:18 #: templates/mini_tools/simulator.html:70 @@ -1255,27 +1392,27 @@ msgstr "Kwota" #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/transactions/forms.py:499 apps/transactions/forms.py:642 -#: apps/transactions/models.py:351 apps/transactions/models.py:710 -#: apps/transactions/models.py:995 apps/transactions/models.py:1300 +#: apps/transactions/models.py:351 apps/transactions/models.py:734 +#: apps/transactions/models.py:1019 apps/transactions/models.py:1324 msgid "Description" msgstr "Opis" #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/models.py:299 apps/transactions/models.py:398 -#: apps/transactions/models.py:1322 +#: apps/transactions/models.py:1346 msgid "Internal Note" msgstr "Notatka" #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/models.py:303 apps/transactions/models.py:400 -#: apps/transactions/models.py:1324 +#: apps/transactions/models.py:1348 msgid "Internal ID" msgstr "Wewnętrzne ID" #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/models.py:319 apps/transactions/forms.py:655 #: apps/transactions/models.py:250 apps/transactions/models.py:341 -#: apps/transactions/models.py:1290 +#: apps/transactions/models.py:1314 msgid "Mute" msgstr "Wycisz" @@ -1288,7 +1425,7 @@ msgid "Set Values" msgstr "Ustaw wartości" #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 -#: apps/transactions/models.py:421 apps/transactions/models.py:645 +#: apps/transactions/models.py:421 apps/transactions/models.py:669 msgid "Transaction" msgstr "Transakcja" @@ -1324,7 +1461,12 @@ msgstr "Reguła" msgid "Field" msgstr "Pole" -#: apps/rules/models.py:61 +#: apps/rules/models.py:61 templates/investments/fragments/charts.html:86 +#: templates/investments/fragments/detail.html:103 +#: templates/investments/fragments/detail.html:162 +#: templates/investments/fragments/list.html:48 +#: templates/investments/fragments/list.html:49 +#: templates/investments/fragments/rebalance.html:23 msgid "Value" msgstr "Wartość" @@ -1510,7 +1652,7 @@ msgid "Upload" msgstr "Odśwież" #: apps/transactions/forms.py:355 apps/transactions/forms.py:1089 -#: apps/transactions/models.py:925 +#: apps/transactions/models.py:949 #, fuzzy #| msgid "To Account" msgid "To account" @@ -1528,8 +1670,8 @@ msgstr "Od kwoty" msgid "To Amount" msgstr "Do kwoty" -#: apps/transactions/forms.py:718 apps/transactions/models.py:970 -#: apps/transactions/models.py:1267 templates/cotton/transaction/item.html:52 +#: apps/transactions/forms.py:718 apps/transactions/models.py:994 +#: apps/transactions/models.py:1291 templates/cotton/transaction/item.html:52 #: templates/cotton/transaction/item.html:60 #: templates/cotton/ui/quick_transactions_buttons.html:40 #: templates/cotton/ui/transactions_fab.html:44 @@ -1595,8 +1737,8 @@ msgstr "" "Zdezaktywowanych encji nie da się wykorzystać przy tworzeniu nowych " "transakcji" -#: apps/transactions/models.py:323 apps/transactions/models.py:969 -#: apps/transactions/models.py:1266 +#: apps/transactions/models.py:323 apps/transactions/models.py:993 +#: apps/transactions/models.py:1290 #: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:52 @@ -1604,13 +1746,19 @@ msgstr "" #: templates/cotton/ui/quick_transactions_buttons.html:10 #: templates/cotton/ui/transactions_fab.html:10 #: templates/insights/fragments/overview/_results.html:12 +#: templates/investments/fragments/_totals.html:21 +#: templates/investments/fragments/_totals.html:42 +#: templates/investments/fragments/detail.html:106 +#: templates/investments/fragments/detail.html:210 +#: templates/investments/fragments/detail.html:252 +#: templates/investments/fragments/detail.html:320 #: templates/mini_tools/simulator.html:66 #: templates/monthly_overview/fragments/monthly_summary.html:42 msgid "Income" msgstr "Przychody" -#: apps/transactions/models.py:324 apps/transactions/models.py:971 -#: apps/transactions/models.py:1268 +#: apps/transactions/models.py:324 apps/transactions/models.py:995 +#: apps/transactions/models.py:1292 #: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:56 @@ -1622,14 +1770,14 @@ msgstr "Przychody" msgid "Expense" msgstr "Wydatek" -#: apps/transactions/models.py:379 apps/transactions/models.py:765 +#: apps/transactions/models.py:379 apps/transactions/models.py:789 #: templates/cotton/transaction/item.html:291 #: templates/cotton/transaction/item.html:308 #: templates/cotton/transaction/item.html:318 msgid "Installment Plan" msgstr "" -#: apps/transactions/models.py:388 apps/transactions/models.py:1045 +#: apps/transactions/models.py:388 apps/transactions/models.py:1069 #: templates/cotton/transaction/item.html:281 #: templates/cotton/transaction/item.html:301 msgid "Recurring Transaction" @@ -1649,156 +1797,168 @@ msgstr "Usunięte" msgid "Deleted At" msgstr "" -#: apps/transactions/models.py:591 +#: apps/transactions/models.py:517 +msgid "A transfer needs one expense and one income." +msgstr "" + +#: apps/transactions/models.py:519 +msgid "A transfer needs two different accounts." +msgstr "" + +#: apps/transactions/models.py:523 +msgid "This transaction is already part of another transfer." +msgstr "" + +#: apps/transactions/models.py:615 msgid "No category" msgstr "Brak kategorii" -#: apps/transactions/models.py:593 +#: apps/transactions/models.py:617 msgid "No description" msgstr "Brak opisu" -#: apps/transactions/models.py:650 +#: apps/transactions/models.py:674 #, fuzzy #| msgid "ZIP File" msgid "File" msgstr "Plik ZIP" -#: apps/transactions/models.py:652 +#: apps/transactions/models.py:676 msgid "Original Name" msgstr "" -#: apps/transactions/models.py:654 +#: apps/transactions/models.py:678 #, fuzzy #| msgid "Content" msgid "Content Type" msgstr "Zawartość" -#: apps/transactions/models.py:656 +#: apps/transactions/models.py:680 msgid "Size" msgstr "" -#: apps/transactions/models.py:661 +#: apps/transactions/models.py:685 msgid "Uploaded By" msgstr "" -#: apps/transactions/models.py:666 +#: apps/transactions/models.py:690 msgid "Transaction Attachment" msgstr "Załącznik transakcji" -#: apps/transactions/models.py:667 +#: apps/transactions/models.py:691 msgid "Transaction Attachments" msgstr "Załączniki transakcji" -#: apps/transactions/models.py:697 templates/includes/sidebar.html:57 +#: apps/transactions/models.py:721 templates/includes/sidebar.html:57 msgid "Yearly" msgstr "Rocznie" -#: apps/transactions/models.py:698 apps/users/models.py:469 +#: apps/transactions/models.py:722 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "Miesięcznie" -#: apps/transactions/models.py:699 +#: apps/transactions/models.py:723 msgid "Weekly" msgstr "Tygodniowo" -#: apps/transactions/models.py:700 +#: apps/transactions/models.py:724 msgid "Daily" msgstr "Dziennie" -#: apps/transactions/models.py:713 +#: apps/transactions/models.py:737 msgid "Number of Installments" msgstr "" -#: apps/transactions/models.py:718 +#: apps/transactions/models.py:742 msgid "Installment Start" msgstr "" -#: apps/transactions/models.py:719 +#: apps/transactions/models.py:743 msgid "The installment number to start counting from" msgstr "" -#: apps/transactions/models.py:724 apps/transactions/models.py:1015 +#: apps/transactions/models.py:748 apps/transactions/models.py:1039 msgid "Start Date" msgstr "Data startowa" -#: apps/transactions/models.py:728 apps/transactions/models.py:1016 +#: apps/transactions/models.py:752 apps/transactions/models.py:1040 msgid "End Date" msgstr "Data końcowa" -#: apps/transactions/models.py:733 +#: apps/transactions/models.py:757 msgid "Recurrence" msgstr "Zlecenie stałe" -#: apps/transactions/models.py:736 +#: apps/transactions/models.py:760 msgid "Installment Amount" msgstr "" -#: apps/transactions/models.py:755 apps/transactions/models.py:1035 +#: apps/transactions/models.py:779 apps/transactions/models.py:1059 msgid "Add description to transactions" msgstr "Dodaj opis dla transakcji" -#: apps/transactions/models.py:758 apps/transactions/models.py:1038 +#: apps/transactions/models.py:782 apps/transactions/models.py:1062 msgid "Add notes to transactions" msgstr "Dodaj notatki do transakcji" -#: apps/transactions/models.py:932 +#: apps/transactions/models.py:956 #, fuzzy #| msgid "To Amount" msgid "To amount" msgstr "Do kwoty" -#: apps/transactions/models.py:933 +#: apps/transactions/models.py:957 msgid "Leave empty to use the same amount" msgstr "" -#: apps/transactions/models.py:974 templates/mini_tools/simulator.html:129 +#: apps/transactions/models.py:998 templates/mini_tools/simulator.html:129 msgid "day(s)" msgstr "dni" -#: apps/transactions/models.py:975 templates/mini_tools/simulator.html:130 +#: apps/transactions/models.py:999 templates/mini_tools/simulator.html:130 msgid "week(s)" msgstr "tygodni" -#: apps/transactions/models.py:976 templates/mini_tools/simulator.html:131 +#: apps/transactions/models.py:1000 templates/mini_tools/simulator.html:131 msgid "month(s)" msgstr "miesięcy" -#: apps/transactions/models.py:977 templates/mini_tools/simulator.html:132 +#: apps/transactions/models.py:1001 templates/mini_tools/simulator.html:132 msgid "year(s)" msgstr "lat" -#: apps/transactions/models.py:979 +#: apps/transactions/models.py:1003 #: templates/recurring_transactions/fragments/list.html:18 msgid "Paused" msgstr "Zapauzowane" -#: apps/transactions/models.py:1018 +#: apps/transactions/models.py:1042 msgid "Recurrence Type" msgstr "Typ powtarzania" -#: apps/transactions/models.py:1021 +#: apps/transactions/models.py:1045 msgid "Recurrence Interval" msgstr "Co ile powtarzać" -#: apps/transactions/models.py:1024 +#: apps/transactions/models.py:1048 msgid "Keep at most" msgstr "Zachowuj co najwyżej" -#: apps/transactions/models.py:1028 +#: apps/transactions/models.py:1052 msgid "Last Generated Date" msgstr "" -#: apps/transactions/models.py:1031 +#: apps/transactions/models.py:1055 msgid "Last Generated Reference Date" msgstr "" -#: apps/transactions/models.py:1334 templates/cotton/transaction/item.html:274 +#: apps/transactions/models.py:1358 templates/cotton/transaction/item.html:274 #: templates/cotton/ui/transactions_fab.html:59 msgid "Quick Transaction" msgstr "Szablon transakcji" -#: apps/transactions/models.py:1335 templates/includes/sidebar.html:98 +#: apps/transactions/models.py:1359 templates/includes/sidebar.html:98 #: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:15 msgid "Quick Transactions" @@ -1932,8 +2092,8 @@ msgid "Item deleted successfully" msgstr "Pomyślnie usunięto" #: apps/transactions/views/quick_transactions.py:164 -#: apps/transactions/views/transactions.py:147 -#: apps/transactions/views/transactions.py:332 +#: apps/transactions/views/transactions.py:156 +#: apps/transactions/views/transactions.py:343 msgid "Transaction added successfully" msgstr "Dodano transakcję" @@ -1977,11 +2137,11 @@ msgstr "Pomyślnie dodano załącznik" msgid "Attachment deleted successfully" msgstr "Usunięto załącznik" -#: apps/transactions/views/transactions.py:359 +#: apps/transactions/views/transactions.py:370 msgid "Transaction updated successfully" msgstr "Zaktualizowano transakcję" -#: apps/transactions/views/transactions.py:410 +#: apps/transactions/views/transactions.py:421 #, python-format msgid "%(count)s transaction updated successfully" msgid_plural "%(count)s transactions updated successfully" @@ -1989,23 +2149,23 @@ msgstr[0] "Zaktualizowano %(count)s transakcję" msgstr[1] "Zaktualizowano %(count)s transakcje" msgstr[2] "Zaktualizowano %(count)s transakcji" -#: apps/transactions/views/transactions.py:437 +#: apps/transactions/views/transactions.py:448 msgid "Transaction duplicated successfully" msgstr "Zduplikowano transakcję" -#: apps/transactions/views/transactions.py:482 +#: apps/transactions/views/transactions.py:493 msgid "Transaction deleted successfully" msgstr "Usunięto transakcję" -#: apps/transactions/views/transactions.py:512 +#: apps/transactions/views/transactions.py:523 msgid "Transaction restored successfully" msgstr "Odtworzono transakcję" -#: apps/transactions/views/transactions.py:538 +#: apps/transactions/views/transactions.py:549 msgid "Transfer added successfully" msgstr "Dodano przelew" -#: apps/transactions/views/transactions.py:566 +#: apps/transactions/views/transactions.py:579 #, fuzzy #| msgid "Transfer added successfully" msgid "Transfer updated successfully" @@ -2337,6 +2497,7 @@ msgstr "Edytuj grupę kont" #: templates/exchange_rates_services/fragments/table.html:20 #: templates/import_app/fragments/profiles/list.html:42 #: templates/installment_plans/fragments/table.html:25 +#: templates/investment_classes/fragments/list.html:36 #: templates/quick_transactions/fragments/list.html:22 #: templates/recurring_transactions/fragments/table.html:27 #: templates/rules/fragments/list.html:31 @@ -2359,6 +2520,9 @@ msgstr "Akcje" #: templates/exchange_rates_services/fragments/table.html:23 #: templates/import_app/fragments/profiles/list.html:46 #: templates/installment_plans/fragments/table.html:28 +#: templates/investment_classes/fragments/list.html:39 +#: templates/investments/fragments/detail.html:305 +#: templates/investments/fragments/detail.html:331 #: templates/quick_transactions/fragments/list.html:25 #: templates/recurring_transactions/fragments/table.html:30 #: templates/rules/fragments/transaction_rule/view.html:22 @@ -2408,6 +2572,7 @@ msgstr "Udostępnij" #: templates/import_app/fragments/profiles/list.html:81 #: templates/import_app/fragments/runs/list.html:100 #: templates/installment_plans/fragments/table.html:54 +#: templates/investment_classes/fragments/list.html:45 #: templates/mini_tools/simulator.html:109 #: templates/mini_tools/unit_price_calculator.html:16 #: templates/quick_transactions/fragments/list.html:32 @@ -2441,6 +2606,7 @@ msgstr "Usuń" #: templates/import_app/fragments/runs/list.html:104 #: templates/installment_plans/fragments/table.html:47 #: templates/installment_plans/fragments/table.html:58 +#: templates/investment_classes/fragments/list.html:49 #: templates/quick_transactions/fragments/list.html:37 #: templates/recurring_transactions/fragments/table.html:52 #: templates/recurring_transactions/fragments/table.html:65 @@ -2490,6 +2656,7 @@ msgstr "Tej akcji nie da się odwrócić!" #: templates/import_app/fragments/profiles/list.html:87 #: templates/import_app/fragments/runs/list.html:106 #: templates/installment_plans/fragments/table.html:60 +#: templates/investment_classes/fragments/list.html:51 #: templates/quick_transactions/fragments/list.html:39 #: templates/recurring_transactions/fragments/table.html:94 #: templates/rules/fragments/list.html:62 @@ -2538,6 +2705,7 @@ msgid "Add account" msgstr "Dodaj konto" #: templates/accounts/fragments/edit.html:5 +#: templates/investments/fragments/detail.html:40 msgid "Edit account" msgstr "Edytuj konto" @@ -2841,6 +3009,8 @@ msgid "Add DCA strategy" msgstr "" #: templates/dca/fragments/strategy/details.html:28 +#: templates/investments/fragments/detail.html:92 +#: templates/investments/fragments/list.html:65 msgid "No exchange rate available" msgstr "" @@ -3023,7 +3193,7 @@ msgstr "konta" msgid "No services configured" msgstr "Nie zdefiniowano serwisów" -#: templates/export_app/pages/index.html:4 templates/includes/sidebar.html:211 +#: templates/export_app/pages/index.html:4 templates/includes/sidebar.html:225 msgid "Export and Restore" msgstr "Eksport i przywracanie" @@ -3197,54 +3367,65 @@ msgstr "" msgid "Tools" msgstr "Narzędzia" -#: templates/includes/sidebar.html:118 +#: templates/includes/sidebar.html:118 templates/includes/sidebar.html:188 +#: templates/investment_classes/fragments/list.html:29 +#: templates/investments/fragments/detail.html:37 +#: templates/investments/fragments/list.html:9 +#: templates/investments/pages/detail.html:4 +#: templates/investments/pages/index.html:4 +#, fuzzy +#| msgid "Installment Plans" +msgid "Investments" +msgstr "Plany ratalne" + +#: templates/includes/sidebar.html:124 msgid "Dollar Cost Average Tracker" msgstr "" -#: templates/includes/sidebar.html:124 +#: templates/includes/sidebar.html:130 #: templates/mini_tools/unit_price_calculator.html:4 #: templates/mini_tools/unit_price_calculator.html:9 msgid "Unit Price Calculator" msgstr "Kalkulator ceny jednostkowej" -#: templates/includes/sidebar.html:130 +#: templates/includes/sidebar.html:136 #: templates/mini_tools/currency_converter/currency_converter.html:7 #: templates/mini_tools/currency_converter/currency_converter.html:14 msgid "Currency Converter" msgstr "Kalkulator walut" -#: templates/includes/sidebar.html:136 templates/mini_tools/simulator.html:5 +#: templates/includes/sidebar.html:142 templates/mini_tools/simulator.html:5 #: templates/mini_tools/simulator.html:21 #, fuzzy #| msgid "Calculator" msgid "Simulator" msgstr "Kalkulator" -#: templates/includes/sidebar.html:145 +#: templates/includes/sidebar.html:151 msgid "Management" msgstr "Zarządzanie" -#: templates/includes/sidebar.html:196 +#: templates/includes/sidebar.html:210 msgid "Automation" msgstr "" -#: templates/includes/sidebar.html:225 +#: templates/includes/sidebar.html:239 msgid "Admin" msgstr "" -#: templates/includes/sidebar.html:233 +#: templates/includes/sidebar.html:247 msgid "Django Admin" msgstr "" -#: templates/includes/sidebar.html:234 +#: templates/includes/sidebar.html:248 msgid "Only use this if you know what you're doing" msgstr "" -#: templates/includes/sidebar.html:249 +#: templates/includes/sidebar.html:263 msgid "is available" msgstr "" -#: templates/includes/sidebar.html:257 +#: templates/includes/sidebar.html:271 msgid "Calculator" msgstr "Kalkulator" @@ -3311,6 +3492,7 @@ msgstr "Brak ostatnich transakcji" #: templates/insights/fragments/overview/_results.html:173 #: templates/insights/fragments/year_by_year.html:59 #: templates/insights/fragments/year_by_year.html:140 +#: templates/investment_classes/fragments/list.html:65 #: templates/monthly_overview/fragments/monthly_summary.html:168 msgid "Total" msgstr "Łącznie" @@ -3508,6 +3690,295 @@ msgstr "" msgid "No installment plans" msgstr "Brak planów ratalnych" +#: templates/investment_classes/fragments/form.html:5 +msgid "Edit asset class" +msgstr "" + +#: templates/investment_classes/fragments/form.html:5 +msgid "Add asset class" +msgstr "" + +#: templates/investment_classes/fragments/list.html:19 +#: templates/investments/fragments/rebalance.html:10 +#, python-format +msgid "Targets add up to %(total)s%%. Set them to 100%% to see the rebalance." +msgstr "" + +#: templates/investment_classes/fragments/list.html:28 +#: templates/investments/fragments/rebalance.html:25 +msgid "Target" +msgstr "" + +#: templates/investment_classes/fragments/list.html:50 +msgid "Its investments will be left without an asset class." +msgstr "" + +#: templates/investment_classes/fragments/list.html:74 +msgid "No asset classes" +msgstr "" + +#: templates/investments/fragments/_allocation.html:3 +msgid "Allocation chart" +msgstr "" + +#: templates/investments/fragments/_allocation.html:11 +#, python-format +msgid "" +"%(share)s%% of your investments with a target, against a target of " +"%(target)s%%" +msgstr "" + +#: templates/investments/fragments/_mwr.html:1 +msgid "Annual return, weighted by when money went in and out" +msgstr "" + +#: templates/investments/fragments/_mwr.html:1 +msgid "" +"Return since the first contribution, weighted by when money went in and out" +msgstr "" + +#: templates/investments/fragments/_mwr.html:1 +msgid "/yr" +msgstr "" + +#: templates/investments/fragments/_totals.html:15 +#: templates/investments/fragments/detail.html:63 +msgid "total return" +msgstr "" + +#: templates/investments/fragments/_totals.html:20 +#: templates/investments/fragments/_totals.html:41 +#: templates/investments/fragments/charts.html:96 +#: templates/investments/fragments/detail.html:163 +#: templates/investments/fragments/detail.html:223 +#: templates/investments/fragments/list.html:47 +#, fuzzy +#| msgid "Invert" +msgid "Invested" +msgstr "Zamień" + +#: templates/investments/fragments/_totals.html:24 +#: templates/investments/fragments/detail.html:74 +msgid "" +"How much of the return came from exchange rates moving since you invested" +msgstr "" + +#: templates/investments/fragments/_totals.html:24 +#: templates/investments/fragments/_totals.html:26 +#, fuzzy +#| msgid "Currency Code" +msgid "Currency effect" +msgstr "Symbol waluty" + +#: templates/investments/fragments/_totals.html:26 +#: templates/investments/fragments/detail.html:78 +msgid "" +"Every date is converted with the same rate. Add historical exchange rates " +"(or an automatic rate service) to see how much exchange rates moved your " +"return." +msgstr "" + +#: templates/investments/fragments/_totals.html:40 +#: templates/investments/fragments/list.html:49 +msgid "Return" +msgstr "" + +#: templates/investments/fragments/charts.html:10 +msgid "By asset class" +msgstr "" + +#: templates/investments/fragments/charts.html:17 +#: templates/net_worth/net_worth.html:52 +#: templates/yearly_overview/pages/overview_by_currency.html:6 +msgid "By currency" +msgstr "Według walut" + +#: templates/investments/fragments/charts.html:24 +msgid "Value and invested" +msgstr "" + +#: templates/investments/fragments/charts.html:31 +msgid "Return by investment" +msgstr "" + +#: templates/investments/fragments/charts.html:38 +msgid "Nothing to chart yet" +msgstr "" + +#: templates/investments/fragments/detail.html:10 +msgid "Buy / Contribute" +msgstr "" + +#: templates/investments/fragments/detail.html:16 +msgid "Sell / Withdraw" +msgstr "" + +#: templates/investments/fragments/detail.html:23 +msgid "Dividend / Income" +msgstr "" + +#: templates/investments/fragments/detail.html:30 +#, fuzzy +#| msgid "Update" +msgid "Update value" +msgstr "Aktualizuj" + +#: templates/investments/fragments/detail.html:47 +#: templates/investments/fragments/list.html:67 +msgid "Tracked by value" +msgstr "" + +#: templates/investments/fragments/detail.html:48 +msgid "" +"Some incoming units have no linked payment, so their cost was estimated from " +"the market price of that day" +msgstr "" + +#: templates/investments/fragments/detail.html:68 +#, fuzzy +#| msgid "Info" +msgid "In" +msgstr "Informacja" + +#: templates/investments/fragments/detail.html:74 +#: templates/investments/fragments/detail.html:78 +#, fuzzy +#| msgid "Currency Code" +msgid "currency effect" +msgstr "Symbol waluty" + +#: templates/investments/fragments/detail.html:104 +#: templates/investments/fragments/detail.html:179 +msgid "Price" +msgstr "" + +#: templates/investments/fragments/detail.html:105 +#: templates/investments/fragments/detail.html:200 +#: templates/investments/fragments/detail.html:239 +#: templates/investments/fragments/detail.html:290 +#, fuzzy +#| msgid "Warning" +msgid "Earnings" +msgstr "Ostrzeżenie" + +#: templates/investments/fragments/detail.html:180 +#: templates/investments/fragments/detail.html:227 +msgid "Average cost" +msgstr "" + +#: templates/investments/fragments/detail.html:181 +#: templates/investments/fragments/rebalance.html:41 +msgid "Buy" +msgstr "" + +#: templates/investments/fragments/detail.html:182 +#: templates/investments/fragments/rebalance.html:43 +msgid "Sell" +msgstr "" + +#: templates/investments/fragments/detail.html:227 +#: templates/investments/fragments/detail.html:257 +msgid "Put in / taken out" +msgstr "" + +#: templates/investments/fragments/detail.html:239 +#, fuzzy +#| msgid "Uncategorized" +msgid "Unrealized" +msgstr "Nieskategoryzowane" + +#: templates/investments/fragments/detail.html:248 +msgid "Realized" +msgstr "" + +#: templates/investments/fragments/detail.html:271 +#, fuzzy +#| msgid "Management" +msgid "Movements" +msgstr "Zarządzanie" + +#: templates/investments/fragments/detail.html:284 +msgid "Bought / contributed" +msgstr "" + +#: templates/investments/fragments/detail.html:284 +msgid "Sold / withdrew" +msgstr "" + +#: templates/investments/fragments/detail.html:288 +msgid "Money in" +msgstr "" + +#: templates/investments/fragments/detail.html:288 +msgid "Money out" +msgstr "" + +#: templates/investments/fragments/detail.html:290 +msgid "Gain" +msgstr "" + +#: templates/investments/fragments/detail.html:290 +msgid "Loss, tax or fee" +msgstr "" + +#: templates/investments/fragments/detail.html:315 +#, fuzzy +#| msgid "No attachments yet" +msgid "No movements yet" +msgstr "Brak załączników" + +#: templates/investments/fragments/detail.html:315 +msgid "Use the + button to buy or contribute" +msgstr "" + +#: templates/investments/fragments/list.html:21 +msgid "Holdings" +msgstr "" + +#: templates/investments/fragments/list.html:60 +msgid "Some costs were estimated from market prices" +msgstr "" + +#: templates/investments/fragments/list.html:92 +msgid "Charts" +msgstr "" + +#: templates/investments/fragments/list.html:97 +#, fuzzy +#| msgid "New balance" +msgid "Rebalance" +msgstr "Nowe saldo" + +#: templates/investments/fragments/list.html:105 +#, fuzzy +#| msgid "No attachments yet" +msgid "No investments yet" +msgstr "Brak załączników" + +#: templates/investments/fragments/list.html:106 +msgid "Mark an account as an investment in its settings to see it here" +msgstr "" + +#: templates/investments/fragments/rebalance.html:4 +msgid "No allocation targets" +msgstr "" + +#: templates/investments/fragments/rebalance.html:5 +msgid "Set a target for your asset classes to see what to buy and sell" +msgstr "" + +#: templates/investments/fragments/rebalance.html:26 +msgid "To reach the target" +msgstr "" + +#: templates/investments/fragments/rebalance.html:34 +msgid "Off target" +msgstr "" + +#: templates/investments/fragments/rebalance.html:55 +msgid "Left out: investments without an asset class or a target" +msgstr "" + #: templates/layouts/base.html:38 msgid "This is a demo!" msgstr "" @@ -3727,11 +4198,6 @@ msgstr "" msgid "Order by" msgstr "" -#: templates/net_worth/net_worth.html:52 -#: templates/yearly_overview/pages/overview_by_currency.html:6 -msgid "By currency" -msgstr "Według walut" - #: templates/net_worth/net_worth.html:135 msgid "Evolution" msgstr "Ewolucja" diff --git a/app/locale/pt_BR/LC_MESSAGES/django.po b/app/locale/pt_BR/LC_MESSAGES/django.po index cad975e6..e7856217 100644 --- a/app/locale/pt_BR/LC_MESSAGES/django.po +++ b/app/locale/pt_BR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-11-08 13:19+0000\n" +"POT-Creation-Date: 2026-11-08 18:27+0000\n" "PO-Revision-Date: 2026-11-02 19:49+0000\n" "Last-Translator: Herculino Trotta \n" "Language-Team: Portuguese (Brazil) 1;\n" "X-Generator: Weblate 2026.10.1\n" -#: apps/accounts/forms.py:28 +#: apps/accounts/forms.py:33 msgid "Group name" msgstr "Nome do grupo" -#: apps/accounts/forms.py:43 apps/accounts/forms.py:109 -#: apps/currencies/forms.py:57 apps/currencies/forms.py:91 -#: apps/currencies/forms.py:166 apps/dca/forms.py:46 apps/dca/forms.py:192 -#: apps/import_app/forms.py:32 apps/rules/forms.py:60 apps/rules/forms.py:100 -#: apps/rules/forms.py:385 apps/transactions/forms.py:219 -#: apps/transactions/forms.py:452 apps/transactions/forms.py:571 -#: apps/transactions/forms.py:718 apps/transactions/forms.py:940 -#: apps/transactions/forms.py:987 apps/transactions/forms.py:1015 -#: apps/transactions/forms.py:1046 apps/transactions/forms.py:1208 -#: apps/users/forms.py:264 apps/users/forms.py:422 +#: apps/accounts/forms.py:48 apps/accounts/forms.py:76 +#: apps/accounts/forms.py:184 apps/currencies/forms.py:57 +#: apps/currencies/forms.py:91 apps/currencies/forms.py:168 +#: apps/dca/forms.py:46 apps/dca/forms.py:192 apps/import_app/forms.py:32 +#: apps/rules/forms.py:60 apps/rules/forms.py:100 apps/rules/forms.py:385 +#: apps/transactions/forms.py:219 apps/transactions/forms.py:452 +#: apps/transactions/forms.py:571 apps/transactions/forms.py:718 +#: apps/transactions/forms.py:940 apps/transactions/forms.py:987 +#: apps/transactions/forms.py:1015 apps/transactions/forms.py:1046 +#: apps/transactions/forms.py:1208 apps/users/forms.py:264 +#: apps/users/forms.py:422 #: templates/rules/fragments/transaction_rule/dry_run/updated.html:5 #: templates/rules/fragments/transaction_rule/view.html:128 msgid "Update" msgstr "Atualizar" -#: apps/accounts/forms.py:49 apps/accounts/forms.py:115 -#: apps/common/widgets/tom_select.py:15 apps/currencies/forms.py:63 -#: apps/currencies/forms.py:97 apps/currencies/forms.py:172 -#: apps/dca/forms.py:52 apps/dca/forms.py:198 apps/import_app/forms.py:38 -#: apps/rules/forms.py:66 apps/rules/forms.py:106 apps/rules/forms.py:391 -#: apps/transactions/forms.py:206 apps/transactions/forms.py:226 -#: apps/transactions/forms.py:459 apps/transactions/forms.py:946 -#: apps/transactions/forms.py:993 apps/transactions/forms.py:1021 -#: apps/transactions/forms.py:1052 apps/transactions/forms.py:1214 -#: apps/users/forms.py:270 apps/users/forms.py:428 -#: templates/mini_tools/simulator.html:177 +#: apps/accounts/forms.py:54 apps/accounts/forms.py:76 +#: apps/accounts/forms.py:190 apps/common/widgets/tom_select.py:15 +#: apps/currencies/forms.py:63 apps/currencies/forms.py:97 +#: apps/currencies/forms.py:174 apps/dca/forms.py:52 apps/dca/forms.py:198 +#: apps/import_app/forms.py:38 apps/rules/forms.py:66 apps/rules/forms.py:106 +#: apps/rules/forms.py:391 apps/transactions/forms.py:206 +#: apps/transactions/forms.py:226 apps/transactions/forms.py:459 +#: apps/transactions/forms.py:946 apps/transactions/forms.py:993 +#: apps/transactions/forms.py:1021 apps/transactions/forms.py:1052 +#: apps/transactions/forms.py:1214 apps/users/forms.py:270 +#: apps/users/forms.py:428 templates/mini_tools/simulator.html:177 #: templates/mini_tools/unit_price_calculator.html:168 msgid "Add" msgstr "Adicionar" -#: apps/accounts/forms.py:57 templates/accounts/fragments/list.html:23 +#: apps/accounts/forms.py:86 templates/accounts/fragments/list.html:23 msgid "Group" msgstr "Grupo" -#: apps/accounts/forms.py:123 +#: apps/accounts/forms.py:93 apps/accounts/models.py:73 +#: apps/accounts/models.py:130 +#: templates/investments/fragments/rebalance.html:22 +msgid "Asset class" +msgstr "" + +#: apps/accounts/forms.py:198 msgid "New balance" msgstr "Novo saldo" -#: apps/accounts/forms.py:129 apps/dca/forms.py:79 apps/dca/forms.py:86 +#: apps/accounts/forms.py:204 apps/dca/forms.py:79 apps/dca/forms.py:86 #: apps/insights/forms.py:117 apps/insights/views.py:44 apps/rules/forms.py:181 #: apps/rules/forms.py:197 apps/rules/models.py:44 apps/rules/models.py:311 #: apps/transactions/forms.py:62 apps/transactions/forms.py:330 #: apps/transactions/forms.py:510 apps/transactions/forms.py:607 #: apps/transactions/forms.py:614 apps/transactions/forms.py:823 #: apps/transactions/forms.py:1075 apps/transactions/models.py:357 -#: apps/transactions/models.py:743 apps/transactions/models.py:999 -#: apps/transactions/models.py:1306 +#: apps/transactions/models.py:767 apps/transactions/models.py:1023 +#: apps/transactions/models.py:1330 #: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/year_by_year.html:52 msgid "Category" msgstr "Categoria" -#: apps/accounts/forms.py:136 apps/dca/forms.py:95 apps/dca/forms.py:103 -#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 +#: apps/accounts/forms.py:211 apps/dca/forms.py:95 apps/dca/forms.py:103 +#: apps/export_app/forms.py:43 apps/export_app/forms.py:134 #: apps/insights/views.py:50 apps/rules/forms.py:184 apps/rules/forms.py:194 #: apps/rules/models.py:45 apps/rules/models.py:315 #: apps/transactions/filters.py:79 apps/transactions/forms.py:70 #: apps/transactions/forms.py:338 apps/transactions/forms.py:518 #: apps/transactions/forms.py:623 apps/transactions/forms.py:631 #: apps/transactions/forms.py:816 apps/transactions/forms.py:1068 -#: apps/transactions/models.py:363 apps/transactions/models.py:745 -#: apps/transactions/models.py:1003 apps/transactions/models.py:1312 -#: templates/includes/sidebar.html:156 +#: apps/transactions/models.py:363 apps/transactions/models.py:769 +#: apps/transactions/models.py:1027 apps/transactions/models.py:1336 +#: templates/includes/sidebar.html:162 #: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/year_by_year.html:24 @@ -94,23 +101,23 @@ msgstr "Categoria" msgid "Tags" msgstr "Tags" -#: apps/accounts/forms.py:179 +#: apps/accounts/forms.py:254 msgid "All paid transactions" msgstr "Todas as transações pagas" -#: apps/accounts/forms.py:180 +#: apps/accounts/forms.py:255 msgid "Up to date" msgstr "Até a data" -#: apps/accounts/forms.py:181 +#: apps/accounts/forms.py:256 msgid "Up to reference month" msgstr "Até o mês de referência" -#: apps/accounts/forms.py:185 +#: apps/accounts/forms.py:260 msgid "Balance against" msgstr "Balancear contra" -#: apps/accounts/forms.py:189 apps/currencies/forms.py:70 +#: apps/accounts/forms.py:264 apps/currencies/forms.py:70 #: apps/dca/models.py:158 apps/rules/forms.py:176 apps/rules/forms.py:190 #: apps/rules/models.py:38 apps/rules/models.py:279 #: apps/transactions/forms.py:86 apps/transactions/forms.py:482 @@ -121,14 +128,15 @@ msgstr "Balancear contra" msgid "Date" msgstr "Data" -#: apps/accounts/forms.py:194 +#: apps/accounts/forms.py:269 msgid "Reference month" msgstr "Mês de referência" -#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 +#: apps/accounts/models.py:19 apps/accounts/models.py:36 +#: apps/accounts/models.py:84 apps/dca/models.py:13 #: apps/import_app/models.py:20 apps/rules/models.py:13 #: apps/transactions/models.py:249 apps/transactions/models.py:274 -#: apps/transactions/models.py:298 apps/transactions/models.py:1274 +#: apps/transactions/models.py:298 apps/transactions/models.py:1298 #: apps/users/models.py:577 templates/account_groups/fragments/list.html:22 #: templates/accounts/fragments/list.html:22 #: templates/categories/fragments/table.html:17 @@ -137,6 +145,7 @@ msgstr "Mês de referência" #: templates/exchange_rates_services/fragments/list.html:28 #: templates/import_app/fragments/profiles/list.html:34 #: templates/installment_plans/fragments/table.html:16 +#: templates/investment_classes/fragments/list.html:27 #: templates/quick_transactions/fragments/list.html:13 #: templates/recurring_transactions/fragments/table.html:18 #: templates/rules/fragments/list.html:24 @@ -145,44 +154,129 @@ msgstr "Mês de referência" msgid "Name" msgstr "Nome" -#: apps/accounts/models.py:18 apps/accounts/models.py:33 +#: apps/accounts/models.py:25 apps/accounts/models.py:88 msgid "Account Group" msgstr "Grupo da Conta" -#: apps/accounts/models.py:19 templates/account_groups/fragments/list.html:9 +#: apps/accounts/models.py:26 templates/account_groups/fragments/list.html:9 #: templates/account_groups/pages/index.html:4 -#: templates/includes/sidebar.html:176 +#: templates/includes/sidebar.html:182 msgid "Account Groups" msgstr "Grupos da Conta" -#: apps/accounts/models.py:39 apps/currencies/models.py:44 +#: apps/accounts/models.py:43 +msgid "Target allocation (%)" +msgstr "" + +#: apps/accounts/models.py:45 +msgid "" +"Share of your investments you want in this class. Leave it empty to leave " +"the class out of the targets." +msgstr "" + +#: apps/accounts/models.py:61 +msgid "You already have an asset class with this name." +msgstr "" + +#: apps/accounts/models.py:66 +#, python-format +msgid "" +"Targets can't add up to more than 100%%. Other classes already take " +"%(taken)s%%." +msgstr "" + +#: apps/accounts/models.py:74 apps/export_app/forms.py:131 +#: templates/includes/sidebar.html:190 +#: templates/investment_classes/fragments/list.html:9 +#: templates/investment_classes/pages/index.html:4 +#: templates/investments/fragments/rebalance.html:6 +#: templates/investments/fragments/rebalance.html:11 +msgid "Asset classes" +msgstr "" + +#: apps/accounts/models.py:94 apps/currencies/models.py:44 #: templates/accounts/fragments/list.html:24 #: templates/mini_tools/simulator.html:37 #: templates/yearly_overview/pages/yearly_overview_base.html:19 msgid "Currency" msgstr "Moeda" -#: apps/accounts/models.py:45 apps/currencies/models.py:27 +#: apps/accounts/models.py:100 apps/currencies/models.py:27 #: templates/accounts/fragments/list.html:25 msgid "Exchange Currency" msgstr "Moeda de Câmbio" -#: apps/accounts/models.py:50 apps/currencies/models.py:32 +#: apps/accounts/models.py:105 apps/currencies/models.py:32 msgid "Default currency for exchange calculations" msgstr "Moeda padrão para os cálculos de câmbio" -#: apps/accounts/models.py:55 +#: apps/accounts/models.py:110 msgid "Asset account" msgstr "Conta de ativos" -#: apps/accounts/models.py:57 +#: apps/accounts/models.py:112 msgid "" "Asset accounts count towards your Net Worth, but not towards your month." msgstr "" "As contas de ativos contam para o seu patrimônio líquido, mas não para o seu " "mês." -#: apps/accounts/models.py:62 apps/currencies/models.py:37 +#: apps/accounts/models.py:117 templates/investments/fragments/list.html:46 +#, fuzzy +#| msgid "Installment" +msgid "Investment" +msgstr "Parcelamento" + +#: apps/accounts/models.py:119 +msgid "" +"Show this account in the Investments tracker. Set an exchange currency to " +"price it by units (stocks, ETFs, crypto); leave it empty to track it by " +"value (fixed income, property, pensions)." +msgstr "" + +#: apps/accounts/models.py:132 +msgid "" +"Groups investments in the allocation charts, e.g. Fixed income, Stocks, Real " +"estate." +msgstr "" + +#: apps/accounts/models.py:140 +#, fuzzy +#| msgid "No entities" +msgid "Income entities" +msgstr "Sem entidades" + +#: apps/accounts/models.py:142 +msgid "" +"Transactions with any of these entities count towards this investment's " +"return: in this account, and income paid into other accounts (dividends, " +"rent)." +msgstr "" + +#: apps/accounts/models.py:151 +#, fuzzy +#| msgid "No categories" +msgid "Income categories" +msgstr "Nenhum categoria" + +#: apps/accounts/models.py:153 +msgid "" +"Transactions in this account with any of these categories are its result " +"(interest, taxes, fees). On accounts tracked by value, everything else that " +"isn't a transfer counts as money coming in or going out." +msgstr "" + +#: apps/accounts/models.py:162 +#, fuzzy +#| msgid "Income" +msgid "Income tags" +msgstr "Renda" + +#: apps/accounts/models.py:164 +msgid "Same as income categories, for transactions with any of these tags." +msgstr "" + +#: apps/accounts/models.py:169 apps/currencies/models.py:37 #: templates/accounts/fragments/list.html:27 #: templates/categories/fragments/list.html:20 #: templates/currencies/fragments/list.html:24 @@ -191,18 +285,18 @@ msgstr "" msgid "Archived" msgstr "Arquivada" -#: apps/accounts/models.py:63 +#: apps/accounts/models.py:170 msgid "Archived accounts don't show up nor count towards your net worth" msgstr "" "Contas arquivadas não aparecem nem contam para o seu patrimônio líquido" -#: apps/accounts/models.py:75 apps/rules/forms.py:173 apps/rules/forms.py:187 +#: apps/accounts/models.py:182 apps/rules/forms.py:173 apps/rules/forms.py:187 #: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/transactions/forms.py:82 apps/transactions/forms.py:350 #: apps/transactions/forms.py:477 apps/transactions/forms.py:808 #: apps/transactions/forms.py:1060 apps/transactions/models.py:329 -#: apps/transactions/models.py:703 apps/transactions/models.py:981 -#: apps/transactions/models.py:1280 +#: apps/transactions/models.py:727 apps/transactions/models.py:1005 +#: apps/transactions/models.py:1304 #: templates/installment_plans/fragments/table.html:17 #: templates/quick_transactions/fragments/list.html:14 #: templates/recurring_transactions/fragments/table.html:19 @@ -210,17 +304,17 @@ msgstr "" msgid "Account" msgstr "Conta" -#: apps/accounts/models.py:76 apps/export_app/forms.py:19 -#: apps/export_app/forms.py:129 apps/transactions/filters.py:63 +#: apps/accounts/models.py:183 apps/export_app/forms.py:19 +#: apps/export_app/forms.py:130 apps/transactions/filters.py:63 #: templates/accounts/fragments/list.html:9 -#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:168 -#: templates/includes/sidebar.html:170 +#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:174 +#: templates/includes/sidebar.html:176 #: templates/monthly_overview/pages/overview.html:77 #: templates/transactions/pages/transactions.html:26 msgid "Accounts" msgstr "Contas" -#: apps/accounts/models.py:93 +#: apps/accounts/models.py:200 msgid "Exchange currency cannot be the same as the account's main currency." msgstr "A moeda de câmbio não pode ser a mesma que a moeda principal da conta." @@ -312,7 +406,7 @@ msgstr "Entidade com esse ID não existe." msgid "Invalid entity data. Provide an ID or name." msgstr "Dados da entidade inválidos. Forneça um ID ou nome." -#: apps/api/serializers/transactions.py:141 apps/transactions/models.py:953 +#: apps/api/serializers/transactions.py:141 apps/transactions/models.py:977 msgid "This field is required." msgstr "Este campo é obrigatório." @@ -332,13 +426,14 @@ msgstr "Tornar privado" msgid "Shared with users" msgstr "Compartilhado com os usuários" -#: apps/common/fields/forms/dynamic_select.py:71 -#: apps/common/fields/forms/dynamic_select.py:142 +#: apps/common/fields/forms/dynamic_select.py:79 +#: apps/common/fields/forms/dynamic_select.py:150 msgid "Error creating new instance" msgstr "Erro criando nova instância" #: apps/common/fields/forms/grouped_select.py:24 #: apps/common/widgets/tom_select.py:94 apps/common/widgets/tom_select.py:97 +#: templates/investments/fragments/list.html:26 msgid "Ungrouped" msgstr "Não agrupado" @@ -486,6 +581,7 @@ msgid "Today" msgstr "Hoje" #: apps/common/widgets/datepicker.py:142 +#: templates/investments/fragments/rebalance.html:24 msgid "Now" msgstr "Agora" @@ -535,10 +631,10 @@ msgid "Decimal Places" msgstr "Casas Decimais" #: apps/currencies/models.py:45 apps/export_app/forms.py:25 -#: apps/export_app/forms.py:130 apps/transactions/filters.py:70 +#: apps/export_app/forms.py:132 apps/transactions/filters.py:70 #: templates/currencies/fragments/list.html:9 -#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:182 -#: templates/includes/sidebar.html:184 +#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:196 +#: templates/includes/sidebar.html:198 #: templates/monthly_overview/pages/overview.html:63 #: templates/transactions/pages/transactions.html:12 msgid "Currencies" @@ -570,9 +666,9 @@ msgid "Auto" msgstr "Automático" #: apps/currencies/models.py:82 apps/export_app/forms.py:67 -#: apps/export_app/forms.py:142 templates/exchange_rates/fragments/list.html:10 +#: apps/export_app/forms.py:144 templates/exchange_rates/fragments/list.html:10 #: templates/exchange_rates/pages/index.html:4 -#: templates/includes/sidebar.html:190 +#: templates/includes/sidebar.html:204 msgid "Exchange Rates" msgstr "Taxas de Câmbio" @@ -668,33 +764,46 @@ msgstr "" "definida." #: apps/currencies/models.py:171 -msgid "Single exchange rate" +#, fuzzy +#| msgid "Single exchange rate" +msgid "One exchange rate per day" msgstr "Taxa de câmbio única" #: apps/currencies/models.py:174 -msgid "Create one exchange rate and keep updating it. Avoids database clutter." +msgid "" +"Update the day's exchange rate on each fetch instead of adding a new one." msgstr "" -"Cria uma taxa de câmbio e mantenha-a atualizada. Evita a poluição do banco " -"de dados." -#: apps/currencies/models.py:179 +#: apps/currencies/models.py:178 +#, fuzzy +#| msgid "Exchange Rates" +msgid "Exchange rates to keep" +msgstr "Taxas de Câmbio" + +#: apps/currencies/models.py:183 +msgid "" +"Keep at most this many automatic exchange rates per currency pair, deleting " +"the oldest first. Leave empty to keep all." +msgstr "" + +#: apps/currencies/models.py:188 msgid "Exchange Rate Service" msgstr "Serviço de Taxa de Câmbio" -#: apps/currencies/models.py:180 +#: apps/currencies/models.py:189 msgid "Exchange Rate Services" msgstr "Serviços de Taxa de Câmbio" -#: apps/currencies/models.py:234 +#: apps/currencies/models.py:243 msgid "'Every X hours' interval type requires a positive integer." msgstr "" "Intervalo do tipo 'A cada X horas' requerer um número inteiro positivo." -#: apps/currencies/models.py:243 +#: apps/currencies/models.py:252 msgid "'Every X hours' interval must be between 1 and 24." msgstr "Intervalo do tipo 'A cada X horas' requerer um número entre 1 e 24." -#: apps/currencies/models.py:257 +#: apps/currencies/models.py:266 msgid "" "Invalid hour format. Use comma-separated hours (0-23) and/or ranges (e.g., " "'1-5,8,10-12')." @@ -702,7 +811,7 @@ msgstr "" "Formato inválido de hora. Use uma lista de horas separada por vírgulas " "(0-23) e/ou uma faixa (ex.: '1-5,8,10-12')." -#: apps/currencies/models.py:268 +#: apps/currencies/models.py:277 msgid "" "Invalid format. Please check the requirements for your selected interval " "type." @@ -784,11 +893,11 @@ msgid "You must provide an account." msgstr "Você deve informar uma conta." #: apps/dca/forms.py:277 apps/transactions/forms.py:752 -#: apps/transactions/models.py:956 +#: apps/transactions/models.py:980 msgid "From and To accounts must be different." msgstr "As contas De e Para devem ser diferentes." -#: apps/dca/forms.py:291 +#: apps/dca/forms.py:299 #, python-format msgid "DCA for %(strategy_name)s" msgstr "CMP para %(strategy_name)s" @@ -804,8 +913,8 @@ msgstr "Moeda de pagamento" #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/transactions/forms.py:504 apps/transactions/forms.py:651 -#: apps/transactions/models.py:353 apps/transactions/models.py:752 -#: apps/transactions/models.py:1009 apps/transactions/models.py:1302 +#: apps/transactions/models.py:353 apps/transactions/models.py:776 +#: apps/transactions/models.py:1033 apps/transactions/models.py:1326 msgid "Notes" msgstr "Notas" @@ -813,7 +922,7 @@ msgstr "Notas" msgid "DCA Strategy" msgstr "Estratégia CMP" -#: apps/dca/models.py:35 apps/export_app/forms.py:150 +#: apps/dca/models.py:35 apps/export_app/forms.py:152 msgid "DCA Strategies" msgstr "Estratégias CMP" @@ -833,7 +942,7 @@ msgstr "Quantia recebida" msgid "DCA Entry" msgstr "Entrada CMP" -#: apps/dca/models.py:187 apps/export_app/forms.py:151 +#: apps/dca/models.py:187 apps/export_app/forms.py:153 msgid "DCA Entries" msgstr "Entradas CMP" @@ -861,25 +970,25 @@ msgstr "Entrada atualizada com sucesso" msgid "Entry deleted successfully" msgstr "Entrada apagada com sucesso" -#: apps/export_app/forms.py:13 apps/export_app/forms.py:128 -#: templates/includes/sidebar.html:227 templates/users/fragments/list.html:10 +#: apps/export_app/forms.py:13 apps/export_app/forms.py:129 +#: templates/includes/sidebar.html:241 templates/users/fragments/list.html:10 #: templates/users/pages/index.html:4 msgid "Users" msgstr "Usuários" -#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 +#: apps/export_app/forms.py:31 apps/export_app/forms.py:136 #: apps/transactions/models.py:422 templates/includes/sidebar.html:81 -#: templates/includes/sidebar.html:148 +#: templates/includes/sidebar.html:154 #: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/table.html:37 #: templates/transactions/pages/transactions.html:5 msgid "Transactions" msgstr "Transações" -#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 +#: apps/export_app/forms.py:37 apps/export_app/forms.py:133 #: apps/insights/views.py:43 apps/transactions/filters.py:74 #: templates/categories/fragments/list.html:9 -#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:150 +#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/year_by_year.html:13 @@ -887,16 +996,16 @@ msgstr "Transações" msgid "Categories" msgstr "Categorias" -#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 +#: apps/export_app/forms.py:49 apps/export_app/forms.py:135 #: apps/insights/views.py:57 apps/rules/forms.py:185 apps/rules/forms.py:195 #: apps/rules/models.py:46 apps/rules/models.py:307 #: apps/transactions/filters.py:84 apps/transactions/forms.py:78 #: apps/transactions/forms.py:346 apps/transactions/forms.py:526 #: apps/transactions/forms.py:831 apps/transactions/forms.py:1083 #: apps/transactions/models.py:312 apps/transactions/models.py:368 -#: apps/transactions/models.py:748 apps/transactions/models.py:1006 -#: apps/transactions/models.py:1317 templates/entities/fragments/list.html:9 -#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:162 +#: apps/transactions/models.py:772 apps/transactions/models.py:1030 +#: apps/transactions/models.py:1341 templates/entities/fragments/list.html:9 +#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:168 #: templates/insights/fragments/month_by_month.html:40 #: templates/insights/fragments/month_by_month.html:43 #: templates/insights/fragments/year_by_year.html:35 @@ -904,28 +1013,28 @@ msgstr "Categorias" msgid "Entities" msgstr "Entidades" -#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 -#: apps/transactions/models.py:1046 templates/includes/sidebar.html:110 +#: apps/export_app/forms.py:55 apps/export_app/forms.py:139 +#: apps/transactions/models.py:1070 templates/includes/sidebar.html:110 #: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/pages/index.html:4 msgid "Recurring Transactions" msgstr "Transações Recorrentes" -#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 -#: apps/transactions/models.py:766 templates/includes/sidebar.html:104 +#: apps/export_app/forms.py:61 apps/export_app/forms.py:137 +#: apps/transactions/models.py:790 templates/includes/sidebar.html:104 #: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/pages/index.html:4 msgid "Installment Plans" msgstr "Parcelamentos" -#: apps/export_app/forms.py:73 apps/export_app/forms.py:140 +#: apps/export_app/forms.py:73 apps/export_app/forms.py:142 #: templates/exchange_rates_services/fragments/list.html:10 #: templates/exchange_rates_services/pages/index.html:4 -#: templates/includes/sidebar.html:218 +#: templates/includes/sidebar.html:232 msgid "Automatic Exchange Rates" msgstr "Taxas de Câmbio Automáticas" -#: apps/export_app/forms.py:79 templates/includes/sidebar.html:198 +#: apps/export_app/forms.py:79 templates/includes/sidebar.html:212 #: templates/rules/fragments/list.html:9 templates/rules/pages/index.html:4 msgid "Rules" msgstr "Regras" @@ -934,57 +1043,57 @@ msgstr "Regras" msgid "DCA" msgstr "CMP" -#: apps/export_app/forms.py:91 apps/export_app/forms.py:152 +#: apps/export_app/forms.py:91 apps/export_app/forms.py:154 #: templates/import_app/fragments/profiles/list.html:21 #: templates/import_app/pages/profiles_index.html:4 msgid "Import Profiles" msgstr "Perfis de Importação" -#: apps/export_app/forms.py:117 templates/export_app/fragments/export.html:5 +#: apps/export_app/forms.py:118 templates/export_app/fragments/export.html:5 #: templates/export_app/pages/index.html:13 msgid "Export" msgstr "Exportar" -#: apps/export_app/forms.py:125 +#: apps/export_app/forms.py:126 msgid "Import a ZIP file exported from WYGIWYH" msgstr "Importe um arquivo ZIP exportado do WYGIWYH" -#: apps/export_app/forms.py:126 +#: apps/export_app/forms.py:127 msgid "ZIP File" msgstr "Arquivo ZIP" -#: apps/export_app/forms.py:143 apps/rules/models.py:27 +#: apps/export_app/forms.py:145 apps/rules/models.py:27 msgid "Transaction rules" msgstr "Regra da transação" -#: apps/export_app/forms.py:145 apps/rules/models.py:68 +#: apps/export_app/forms.py:147 apps/rules/models.py:68 msgid "Edit transaction action" msgstr "Ação de editar de transação" -#: apps/export_app/forms.py:148 apps/rules/models.py:327 +#: apps/export_app/forms.py:150 apps/rules/models.py:327 msgid "Update or create transaction actions" msgstr "Ações de atualizar ou criar transação" -#: apps/export_app/forms.py:181 templates/cotton/transaction/item.html:341 +#: apps/export_app/forms.py:183 templates/cotton/transaction/item.html:341 #: templates/cotton/ui/deleted_transactions_action_bar.html:53 #: templates/export_app/fragments/restore.html:5 #: templates/export_app/pages/index.html:19 msgid "Restore" msgstr "Restaurar" -#: apps/export_app/forms.py:191 +#: apps/export_app/forms.py:193 msgid "Please upload either a ZIP file or at least one CSV file" msgstr "Carregue um arquivo ZIP ou pelo menos um arquivo CSV" -#: apps/export_app/views.py:177 +#: apps/export_app/views.py:183 msgid "You have to select at least one export" msgstr "É necessário selecionar pelo menos uma exportação" -#: apps/export_app/views.py:197 +#: apps/export_app/views.py:203 msgid "Data restored successfully" msgstr "Dados restaurados com sucesso" -#: apps/export_app/views.py:209 +#: apps/export_app/views.py:215 msgid "" "There was an error restoring your data. Check the logs for more details." msgstr "" @@ -997,7 +1106,7 @@ msgstr "Selecione um arquivo" #: apps/import_app/forms.py:55 #: templates/import_app/fragments/profiles/list.html:75 -#: templates/includes/sidebar.html:204 +#: templates/includes/sidebar.html:218 msgid "Import" msgstr "Importar" @@ -1130,7 +1239,7 @@ msgstr "Tag" msgid "Untagged" msgstr "Sem tag" -#: apps/insights/views.py:53 apps/transactions/models.py:589 +#: apps/insights/views.py:53 apps/transactions/models.py:613 #: templates/tags/fragments/table.html:69 msgid "No tags" msgstr "Nenhuma tag" @@ -1151,6 +1260,32 @@ msgstr "Sem entidade" msgid "No entities" msgstr "Sem entidades" +#: apps/investments/views.py:104 +msgid "Other" +msgstr "" + +#: apps/investments/views.py:135 +msgid "Unclassified" +msgstr "" + +#: apps/investments/views.py:267 +#, fuzzy +#| msgid "Installment Plan added successfully" +msgid "Asset class added successfully" +msgstr "Parcelamento adicionado com sucesso" + +#: apps/investments/views.py:275 +#, fuzzy +#| msgid "Tag updated successfully" +msgid "Asset class updated successfully" +msgstr "Tag atualizada com sucesso" + +#: apps/investments/views.py:296 +#, fuzzy +#| msgid "Tag deleted successfully" +msgid "Asset class deleted successfully" +msgstr "Tag apagada com sucesso" + #: apps/net_worth/views.py:137 templates/net_worth/net_worth.html:84 #: templates/net_worth/net_worth.html:85 msgid "Consolidated" @@ -1204,8 +1339,8 @@ msgstr "Operador" #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/models.py:271 apps/transactions/forms.py:468 -#: apps/transactions/models.py:336 apps/transactions/models.py:708 -#: apps/transactions/models.py:987 apps/transactions/models.py:1287 +#: apps/transactions/models.py:336 apps/transactions/models.py:732 +#: apps/transactions/models.py:1011 apps/transactions/models.py:1311 #: templates/mini_tools/simulator.html:63 msgid "Type" msgstr "Tipo" @@ -1213,7 +1348,7 @@ msgstr "Tipo" #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/transactions/forms.py:472 apps/transactions/models.py:338 -#: apps/transactions/models.py:1289 templates/cotton/transaction/item.html:23 +#: apps/transactions/models.py:1313 templates/cotton/transaction/item.html:23 #: templates/cotton/transaction/item.html:34 #: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 @@ -1224,14 +1359,14 @@ msgstr "Pago" #: apps/rules/models.py:283 apps/transactions/forms.py:90 #: apps/transactions/forms.py:488 apps/transactions/forms.py:638 #: apps/transactions/forms.py:837 apps/transactions/models.py:340 -#: apps/transactions/models.py:726 apps/transactions/models.py:1011 +#: apps/transactions/models.py:750 apps/transactions/models.py:1035 msgid "Reference Date" msgstr "Data de Referência" #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/models.py:287 apps/transactions/forms.py:495 -#: apps/transactions/models.py:346 apps/transactions/models.py:992 -#: apps/transactions/models.py:1295 +#: apps/transactions/models.py:346 apps/transactions/models.py:1016 +#: apps/transactions/models.py:1319 #: templates/insights/fragments/sankey.html:102 #: templates/installment_plans/fragments/table.html:18 #: templates/mini_tools/simulator.html:70 @@ -1243,27 +1378,27 @@ msgstr "Quantia" #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/transactions/forms.py:499 apps/transactions/forms.py:642 -#: apps/transactions/models.py:351 apps/transactions/models.py:710 -#: apps/transactions/models.py:995 apps/transactions/models.py:1300 +#: apps/transactions/models.py:351 apps/transactions/models.py:734 +#: apps/transactions/models.py:1019 apps/transactions/models.py:1324 msgid "Description" msgstr "Descrição" #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/models.py:299 apps/transactions/models.py:398 -#: apps/transactions/models.py:1322 +#: apps/transactions/models.py:1346 msgid "Internal Note" msgstr "Nota Interna" #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/models.py:303 apps/transactions/models.py:400 -#: apps/transactions/models.py:1324 +#: apps/transactions/models.py:1348 msgid "Internal ID" msgstr "ID Interna" #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/models.py:319 apps/transactions/forms.py:655 #: apps/transactions/models.py:250 apps/transactions/models.py:341 -#: apps/transactions/models.py:1290 +#: apps/transactions/models.py:1314 msgid "Mute" msgstr "Silenciada" @@ -1276,7 +1411,7 @@ msgid "Set Values" msgstr "Definir valores" #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 -#: apps/transactions/models.py:421 apps/transactions/models.py:645 +#: apps/transactions/models.py:421 apps/transactions/models.py:669 msgid "Transaction" msgstr "Transação" @@ -1312,7 +1447,12 @@ msgstr "Regra" msgid "Field" msgstr "Campo" -#: apps/rules/models.py:61 +#: apps/rules/models.py:61 templates/investments/fragments/charts.html:86 +#: templates/investments/fragments/detail.html:103 +#: templates/investments/fragments/detail.html:162 +#: templates/investments/fragments/list.html:48 +#: templates/investments/fragments/list.html:49 +#: templates/investments/fragments/rebalance.html:23 msgid "Value" msgstr "Valor" @@ -1498,7 +1638,7 @@ msgid "Upload" msgstr "Upload" #: apps/transactions/forms.py:355 apps/transactions/forms.py:1089 -#: apps/transactions/models.py:925 +#: apps/transactions/models.py:949 msgid "To account" msgstr "Conta de destino" @@ -1514,8 +1654,8 @@ msgstr "Quantia de origem" msgid "To Amount" msgstr "Quantia de destino" -#: apps/transactions/forms.py:718 apps/transactions/models.py:970 -#: apps/transactions/models.py:1267 templates/cotton/transaction/item.html:52 +#: apps/transactions/forms.py:718 apps/transactions/models.py:994 +#: apps/transactions/models.py:1291 templates/cotton/transaction/item.html:52 #: templates/cotton/transaction/item.html:60 #: templates/cotton/ui/quick_transactions_buttons.html:40 #: templates/cotton/ui/transactions_fab.html:44 @@ -1580,8 +1720,8 @@ msgstr "" "As entidades desativadas não poderão ser selecionadas ao criar novas " "transações" -#: apps/transactions/models.py:323 apps/transactions/models.py:969 -#: apps/transactions/models.py:1266 +#: apps/transactions/models.py:323 apps/transactions/models.py:993 +#: apps/transactions/models.py:1290 #: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:52 @@ -1589,13 +1729,19 @@ msgstr "" #: templates/cotton/ui/quick_transactions_buttons.html:10 #: templates/cotton/ui/transactions_fab.html:10 #: templates/insights/fragments/overview/_results.html:12 +#: templates/investments/fragments/_totals.html:21 +#: templates/investments/fragments/_totals.html:42 +#: templates/investments/fragments/detail.html:106 +#: templates/investments/fragments/detail.html:210 +#: templates/investments/fragments/detail.html:252 +#: templates/investments/fragments/detail.html:320 #: templates/mini_tools/simulator.html:66 #: templates/monthly_overview/fragments/monthly_summary.html:42 msgid "Income" msgstr "Renda" -#: apps/transactions/models.py:324 apps/transactions/models.py:971 -#: apps/transactions/models.py:1268 +#: apps/transactions/models.py:324 apps/transactions/models.py:995 +#: apps/transactions/models.py:1292 #: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:56 @@ -1607,14 +1753,14 @@ msgstr "Renda" msgid "Expense" msgstr "Despesa" -#: apps/transactions/models.py:379 apps/transactions/models.py:765 +#: apps/transactions/models.py:379 apps/transactions/models.py:789 #: templates/cotton/transaction/item.html:291 #: templates/cotton/transaction/item.html:308 #: templates/cotton/transaction/item.html:318 msgid "Installment Plan" msgstr "Parcelamento" -#: apps/transactions/models.py:388 apps/transactions/models.py:1045 +#: apps/transactions/models.py:388 apps/transactions/models.py:1069 #: templates/cotton/transaction/item.html:281 #: templates/cotton/transaction/item.html:301 msgid "Recurring Transaction" @@ -1632,150 +1778,162 @@ msgstr "Apagado" msgid "Deleted At" msgstr "Apagado Em" -#: apps/transactions/models.py:591 +#: apps/transactions/models.py:517 +msgid "A transfer needs one expense and one income." +msgstr "" + +#: apps/transactions/models.py:519 +msgid "A transfer needs two different accounts." +msgstr "" + +#: apps/transactions/models.py:523 +msgid "This transaction is already part of another transfer." +msgstr "" + +#: apps/transactions/models.py:615 msgid "No category" msgstr "Sem categoria" -#: apps/transactions/models.py:593 +#: apps/transactions/models.py:617 msgid "No description" msgstr "Sem descrição" -#: apps/transactions/models.py:650 +#: apps/transactions/models.py:674 msgid "File" msgstr "Arquivo" -#: apps/transactions/models.py:652 +#: apps/transactions/models.py:676 msgid "Original Name" msgstr "Nome Original" -#: apps/transactions/models.py:654 +#: apps/transactions/models.py:678 msgid "Content Type" msgstr "Tipo de Conteúdo" -#: apps/transactions/models.py:656 +#: apps/transactions/models.py:680 msgid "Size" msgstr "Tamanho" -#: apps/transactions/models.py:661 +#: apps/transactions/models.py:685 msgid "Uploaded By" msgstr "Enviado por" -#: apps/transactions/models.py:666 +#: apps/transactions/models.py:690 msgid "Transaction Attachment" msgstr "Anexo de transação" -#: apps/transactions/models.py:667 +#: apps/transactions/models.py:691 msgid "Transaction Attachments" msgstr "Anexo de transações" -#: apps/transactions/models.py:697 templates/includes/sidebar.html:57 +#: apps/transactions/models.py:721 templates/includes/sidebar.html:57 msgid "Yearly" msgstr "Anual" -#: apps/transactions/models.py:698 apps/users/models.py:469 +#: apps/transactions/models.py:722 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "Mensal" -#: apps/transactions/models.py:699 +#: apps/transactions/models.py:723 msgid "Weekly" msgstr "Semanal" -#: apps/transactions/models.py:700 +#: apps/transactions/models.py:724 msgid "Daily" msgstr "Diária" -#: apps/transactions/models.py:713 +#: apps/transactions/models.py:737 msgid "Number of Installments" msgstr "Número de Parcelas" -#: apps/transactions/models.py:718 +#: apps/transactions/models.py:742 msgid "Installment Start" msgstr "Parcela inicial" -#: apps/transactions/models.py:719 +#: apps/transactions/models.py:743 msgid "The installment number to start counting from" msgstr "O número da parcela a partir do qual se inicia a contagem" -#: apps/transactions/models.py:724 apps/transactions/models.py:1015 +#: apps/transactions/models.py:748 apps/transactions/models.py:1039 msgid "Start Date" msgstr "Data de Início" -#: apps/transactions/models.py:728 apps/transactions/models.py:1016 +#: apps/transactions/models.py:752 apps/transactions/models.py:1040 msgid "End Date" msgstr "Data Final" -#: apps/transactions/models.py:733 +#: apps/transactions/models.py:757 msgid "Recurrence" msgstr "Recorrência" -#: apps/transactions/models.py:736 +#: apps/transactions/models.py:760 msgid "Installment Amount" msgstr "Valor da Parcela" -#: apps/transactions/models.py:755 apps/transactions/models.py:1035 +#: apps/transactions/models.py:779 apps/transactions/models.py:1059 msgid "Add description to transactions" msgstr "Adicionar descrição às transações" -#: apps/transactions/models.py:758 apps/transactions/models.py:1038 +#: apps/transactions/models.py:782 apps/transactions/models.py:1062 msgid "Add notes to transactions" msgstr "Adicionar notas às transações" -#: apps/transactions/models.py:932 +#: apps/transactions/models.py:956 msgid "To amount" msgstr "Quantia de destino" -#: apps/transactions/models.py:933 +#: apps/transactions/models.py:957 msgid "Leave empty to use the same amount" msgstr "Deixe em branco para usar a mesma quantia" -#: apps/transactions/models.py:974 templates/mini_tools/simulator.html:129 +#: apps/transactions/models.py:998 templates/mini_tools/simulator.html:129 msgid "day(s)" msgstr "dia(s)" -#: apps/transactions/models.py:975 templates/mini_tools/simulator.html:130 +#: apps/transactions/models.py:999 templates/mini_tools/simulator.html:130 msgid "week(s)" msgstr "semana(s)" -#: apps/transactions/models.py:976 templates/mini_tools/simulator.html:131 +#: apps/transactions/models.py:1000 templates/mini_tools/simulator.html:131 msgid "month(s)" msgstr "mês(es)" -#: apps/transactions/models.py:977 templates/mini_tools/simulator.html:132 +#: apps/transactions/models.py:1001 templates/mini_tools/simulator.html:132 msgid "year(s)" msgstr "ano(s)" -#: apps/transactions/models.py:979 +#: apps/transactions/models.py:1003 #: templates/recurring_transactions/fragments/list.html:18 msgid "Paused" msgstr "Pausado" -#: apps/transactions/models.py:1018 +#: apps/transactions/models.py:1042 msgid "Recurrence Type" msgstr "Tipo de recorrência" -#: apps/transactions/models.py:1021 +#: apps/transactions/models.py:1045 msgid "Recurrence Interval" msgstr "Intervalo de recorrência" -#: apps/transactions/models.py:1024 +#: apps/transactions/models.py:1048 msgid "Keep at most" msgstr "Manter no máximo" -#: apps/transactions/models.py:1028 +#: apps/transactions/models.py:1052 msgid "Last Generated Date" msgstr "Última data gerada" -#: apps/transactions/models.py:1031 +#: apps/transactions/models.py:1055 msgid "Last Generated Reference Date" msgstr "Última data de referência gerada" -#: apps/transactions/models.py:1334 templates/cotton/transaction/item.html:274 +#: apps/transactions/models.py:1358 templates/cotton/transaction/item.html:274 #: templates/cotton/ui/transactions_fab.html:59 msgid "Quick Transaction" msgstr "Transação Rápida" -#: apps/transactions/models.py:1335 templates/includes/sidebar.html:98 +#: apps/transactions/models.py:1359 templates/includes/sidebar.html:98 #: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:15 msgid "Quick Transactions" @@ -1898,8 +2056,8 @@ msgid "Item deleted successfully" msgstr "Item apagado com sucesso" #: apps/transactions/views/quick_transactions.py:164 -#: apps/transactions/views/transactions.py:147 -#: apps/transactions/views/transactions.py:332 +#: apps/transactions/views/transactions.py:156 +#: apps/transactions/views/transactions.py:343 msgid "Transaction added successfully" msgstr "Transação adicionada com sucesso" @@ -1943,34 +2101,34 @@ msgstr "Anexo enviado com sucesso" msgid "Attachment deleted successfully" msgstr "Anexo apagado com sucesso" -#: apps/transactions/views/transactions.py:359 +#: apps/transactions/views/transactions.py:370 msgid "Transaction updated successfully" msgstr "Transação atualizada com sucesso" -#: apps/transactions/views/transactions.py:410 +#: apps/transactions/views/transactions.py:421 #, 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:437 +#: apps/transactions/views/transactions.py:448 msgid "Transaction duplicated successfully" msgstr "Transação duplicada com sucesso" -#: apps/transactions/views/transactions.py:482 +#: apps/transactions/views/transactions.py:493 msgid "Transaction deleted successfully" msgstr "Transação apagada com sucesso" -#: apps/transactions/views/transactions.py:512 +#: apps/transactions/views/transactions.py:523 msgid "Transaction restored successfully" msgstr "Transação restaurada com sucesso" -#: apps/transactions/views/transactions.py:538 +#: apps/transactions/views/transactions.py:549 msgid "Transfer added successfully" msgstr "Transferência adicionada com sucesso" -#: apps/transactions/views/transactions.py:566 +#: apps/transactions/views/transactions.py:579 msgid "Transfer updated successfully" msgstr "Transferência atualizada com sucesso" @@ -2283,6 +2441,7 @@ msgstr "Editar grupo de conta" #: templates/exchange_rates_services/fragments/table.html:20 #: templates/import_app/fragments/profiles/list.html:42 #: templates/installment_plans/fragments/table.html:25 +#: templates/investment_classes/fragments/list.html:36 #: templates/quick_transactions/fragments/list.html:22 #: templates/recurring_transactions/fragments/table.html:27 #: templates/rules/fragments/list.html:31 @@ -2305,6 +2464,9 @@ msgstr "Ações" #: templates/exchange_rates_services/fragments/table.html:23 #: templates/import_app/fragments/profiles/list.html:46 #: templates/installment_plans/fragments/table.html:28 +#: templates/investment_classes/fragments/list.html:39 +#: templates/investments/fragments/detail.html:305 +#: templates/investments/fragments/detail.html:331 #: templates/quick_transactions/fragments/list.html:25 #: templates/recurring_transactions/fragments/table.html:30 #: templates/rules/fragments/transaction_rule/view.html:22 @@ -2354,6 +2516,7 @@ msgstr "Compartilhar" #: templates/import_app/fragments/profiles/list.html:81 #: templates/import_app/fragments/runs/list.html:100 #: templates/installment_plans/fragments/table.html:54 +#: templates/investment_classes/fragments/list.html:45 #: templates/mini_tools/simulator.html:109 #: templates/mini_tools/unit_price_calculator.html:16 #: templates/quick_transactions/fragments/list.html:32 @@ -2387,6 +2550,7 @@ msgstr "Apagar" #: templates/import_app/fragments/runs/list.html:104 #: templates/installment_plans/fragments/table.html:47 #: templates/installment_plans/fragments/table.html:58 +#: templates/investment_classes/fragments/list.html:49 #: templates/quick_transactions/fragments/list.html:37 #: templates/recurring_transactions/fragments/table.html:52 #: templates/recurring_transactions/fragments/table.html:65 @@ -2436,6 +2600,7 @@ msgstr "Você não será capaz de reverter isso!" #: templates/import_app/fragments/profiles/list.html:87 #: templates/import_app/fragments/runs/list.html:106 #: templates/installment_plans/fragments/table.html:60 +#: templates/investment_classes/fragments/list.html:51 #: templates/quick_transactions/fragments/list.html:39 #: templates/recurring_transactions/fragments/table.html:94 #: templates/rules/fragments/list.html:62 @@ -2484,6 +2649,7 @@ msgid "Add account" msgstr "Adicionar conta" #: templates/accounts/fragments/edit.html:5 +#: templates/investments/fragments/detail.html:40 msgid "Edit account" msgstr "Editar conta" @@ -2785,6 +2951,8 @@ msgid "Add DCA strategy" msgstr "Adicionar estratégia CMP" #: templates/dca/fragments/strategy/details.html:28 +#: templates/investments/fragments/detail.html:92 +#: templates/investments/fragments/list.html:65 msgid "No exchange rate available" msgstr "Nenhuma taxa de câmbio disponível" @@ -2967,7 +3135,7 @@ msgstr "contas" msgid "No services configured" msgstr "Nenhum serviço configurado" -#: templates/export_app/pages/index.html:4 templates/includes/sidebar.html:211 +#: templates/export_app/pages/index.html:4 templates/includes/sidebar.html:225 msgid "Export and Restore" msgstr "Exportar e Restaurar" @@ -3142,52 +3310,63 @@ msgstr "Lixeira" msgid "Tools" msgstr "Ferramentas" -#: templates/includes/sidebar.html:118 +#: templates/includes/sidebar.html:118 templates/includes/sidebar.html:188 +#: templates/investment_classes/fragments/list.html:29 +#: templates/investments/fragments/detail.html:37 +#: templates/investments/fragments/list.html:9 +#: templates/investments/pages/detail.html:4 +#: templates/investments/pages/index.html:4 +#, fuzzy +#| msgid "Installments" +msgid "Investments" +msgstr "Parcelas" + +#: templates/includes/sidebar.html:124 msgid "Dollar Cost Average Tracker" msgstr "Rastreador de Custo Médio Ponderado" -#: templates/includes/sidebar.html:124 +#: templates/includes/sidebar.html:130 #: templates/mini_tools/unit_price_calculator.html:4 #: templates/mini_tools/unit_price_calculator.html:9 msgid "Unit Price Calculator" msgstr "Calculadora de preço unitário" -#: templates/includes/sidebar.html:130 +#: templates/includes/sidebar.html:136 #: templates/mini_tools/currency_converter/currency_converter.html:7 #: templates/mini_tools/currency_converter/currency_converter.html:14 msgid "Currency Converter" msgstr "Conversor de Moeda" -#: templates/includes/sidebar.html:136 templates/mini_tools/simulator.html:5 +#: templates/includes/sidebar.html:142 templates/mini_tools/simulator.html:5 #: templates/mini_tools/simulator.html:21 msgid "Simulator" msgstr "Simulador" -#: templates/includes/sidebar.html:145 +#: templates/includes/sidebar.html:151 msgid "Management" msgstr "Gerenciar" -#: templates/includes/sidebar.html:196 +#: templates/includes/sidebar.html:210 msgid "Automation" msgstr "Automação" -#: templates/includes/sidebar.html:225 +#: templates/includes/sidebar.html:239 msgid "Admin" msgstr "Admin" -#: templates/includes/sidebar.html:233 +#: templates/includes/sidebar.html:247 msgid "Django Admin" msgstr "Django Admin" -#: templates/includes/sidebar.html:234 +#: templates/includes/sidebar.html:248 msgid "Only use this if you know what you're doing" msgstr "Só use isso se você souber o que está fazendo" -#: templates/includes/sidebar.html:249 +#: templates/includes/sidebar.html:263 msgid "is available" msgstr "está disponível" -#: templates/includes/sidebar.html:257 +#: templates/includes/sidebar.html:271 msgid "Calculator" msgstr "Calculadora" @@ -3254,6 +3433,7 @@ msgstr "Nenhuma transação recente" #: templates/insights/fragments/overview/_results.html:173 #: templates/insights/fragments/year_by_year.html:59 #: templates/insights/fragments/year_by_year.html:140 +#: templates/investment_classes/fragments/list.html:65 #: templates/monthly_overview/fragments/monthly_summary.html:168 msgid "Total" msgstr "Total" @@ -3454,6 +3634,305 @@ msgstr "Isso excluirá o parcelamento e todas as transações associadas a ele" msgid "No installment plans" msgstr "Nenhum parcelamento" +#: templates/investment_classes/fragments/form.html:5 +msgid "Edit asset class" +msgstr "" + +#: templates/investment_classes/fragments/form.html:5 +msgid "Add asset class" +msgstr "" + +#: templates/investment_classes/fragments/list.html:19 +#: templates/investments/fragments/rebalance.html:10 +#, python-format +msgid "Targets add up to %(total)s%%. Set them to 100%% to see the rebalance." +msgstr "" + +#: templates/investment_classes/fragments/list.html:28 +#: templates/investments/fragments/rebalance.html:25 +#, fuzzy +#| msgid "Targeting" +msgid "Target" +msgstr "Alvos" + +#: templates/investment_classes/fragments/list.html:50 +msgid "Its investments will be left without an asset class." +msgstr "" + +#: templates/investment_classes/fragments/list.html:74 +msgid "No asset classes" +msgstr "" + +#: templates/investments/fragments/_allocation.html:3 +msgid "Allocation chart" +msgstr "" + +#: templates/investments/fragments/_allocation.html:11 +#, python-format +msgid "" +"%(share)s%% of your investments with a target, against a target of " +"%(target)s%%" +msgstr "" + +#: templates/investments/fragments/_mwr.html:1 +msgid "Annual return, weighted by when money went in and out" +msgstr "" + +#: templates/investments/fragments/_mwr.html:1 +msgid "" +"Return since the first contribution, weighted by when money went in and out" +msgstr "" + +#: templates/investments/fragments/_mwr.html:1 +msgid "/yr" +msgstr "" + +#: templates/investments/fragments/_totals.html:15 +#: templates/investments/fragments/detail.html:63 +msgid "total return" +msgstr "" + +#: templates/investments/fragments/_totals.html:20 +#: templates/investments/fragments/_totals.html:41 +#: templates/investments/fragments/charts.html:96 +#: templates/investments/fragments/detail.html:163 +#: templates/investments/fragments/detail.html:223 +#: templates/investments/fragments/list.html:47 +#, fuzzy +#| msgid "Total Invested" +msgid "Invested" +msgstr "Total investido" + +#: templates/investments/fragments/_totals.html:24 +#: templates/investments/fragments/detail.html:74 +msgid "" +"How much of the return came from exchange rates moving since you invested" +msgstr "" + +#: templates/investments/fragments/_totals.html:24 +#: templates/investments/fragments/_totals.html:26 +#, fuzzy +#| msgid "Currency Code" +msgid "Currency effect" +msgstr "Código da Moeda" + +#: templates/investments/fragments/_totals.html:26 +#: templates/investments/fragments/detail.html:78 +msgid "" +"Every date is converted with the same rate. Add historical exchange rates " +"(or an automatic rate service) to see how much exchange rates moved your " +"return." +msgstr "" + +#: templates/investments/fragments/_totals.html:40 +#: templates/investments/fragments/list.html:49 +msgid "Return" +msgstr "" + +#: templates/investments/fragments/charts.html:10 +msgid "By asset class" +msgstr "" + +#: templates/investments/fragments/charts.html:17 +#: templates/net_worth/net_worth.html:52 +#: templates/yearly_overview/pages/overview_by_currency.html:6 +msgid "By currency" +msgstr "Por moeda" + +#: templates/investments/fragments/charts.html:24 +#, fuzzy +#| msgid "Total Invested" +msgid "Value and invested" +msgstr "Total investido" + +#: templates/investments/fragments/charts.html:31 +msgid "Return by investment" +msgstr "" + +#: templates/investments/fragments/charts.html:38 +#, fuzzy +#| msgid "Nothing to see here..." +msgid "Nothing to chart yet" +msgstr "Nada para ver aqui..." + +#: templates/investments/fragments/detail.html:10 +msgid "Buy / Contribute" +msgstr "" + +#: templates/investments/fragments/detail.html:16 +msgid "Sell / Withdraw" +msgstr "" + +#: templates/investments/fragments/detail.html:23 +msgid "Dividend / Income" +msgstr "" + +#: templates/investments/fragments/detail.html:30 +#, fuzzy +#| msgid "Updated at" +msgid "Update value" +msgstr "Atualizado em" + +#: templates/investments/fragments/detail.html:47 +#: templates/investments/fragments/list.html:67 +msgid "Tracked by value" +msgstr "" + +#: templates/investments/fragments/detail.html:48 +msgid "" +"Some incoming units have no linked payment, so their cost was estimated from " +"the market price of that day" +msgstr "" + +#: templates/investments/fragments/detail.html:68 +#, fuzzy +#| msgid "Info" +msgid "In" +msgstr "Informação" + +#: templates/investments/fragments/detail.html:74 +#: templates/investments/fragments/detail.html:78 +#, fuzzy +#| msgid "Currency Code" +msgid "currency effect" +msgstr "Código da Moeda" + +#: templates/investments/fragments/detail.html:104 +#: templates/investments/fragments/detail.html:179 +#, fuzzy +#| msgid "Entry Price" +msgid "Price" +msgstr "Preço de Entrada" + +#: templates/investments/fragments/detail.html:105 +#: templates/investments/fragments/detail.html:200 +#: templates/investments/fragments/detail.html:239 +#: templates/investments/fragments/detail.html:290 +#, fuzzy +#| msgid "Warning" +msgid "Earnings" +msgstr "Aviso" + +#: templates/investments/fragments/detail.html:180 +#: templates/investments/fragments/detail.html:227 +msgid "Average cost" +msgstr "" + +#: templates/investments/fragments/detail.html:181 +#: templates/investments/fragments/rebalance.html:41 +#, fuzzy +#| msgid "By" +msgid "Buy" +msgstr "Por" + +#: templates/investments/fragments/detail.html:182 +#: templates/investments/fragments/rebalance.html:43 +msgid "Sell" +msgstr "" + +#: templates/investments/fragments/detail.html:227 +#: templates/investments/fragments/detail.html:257 +msgid "Put in / taken out" +msgstr "" + +#: templates/investments/fragments/detail.html:239 +#, fuzzy +#| msgid "Uncategorized" +msgid "Unrealized" +msgstr "Sem categoria" + +#: templates/investments/fragments/detail.html:248 +msgid "Realized" +msgstr "" + +#: templates/investments/fragments/detail.html:271 +#, fuzzy +#| msgid "Management" +msgid "Movements" +msgstr "Gerenciar" + +#: templates/investments/fragments/detail.html:284 +msgid "Bought / contributed" +msgstr "" + +#: templates/investments/fragments/detail.html:284 +msgid "Sold / withdrew" +msgstr "" + +#: templates/investments/fragments/detail.html:288 +msgid "Money in" +msgstr "" + +#: templates/investments/fragments/detail.html:288 +msgid "Money out" +msgstr "" + +#: templates/investments/fragments/detail.html:290 +msgid "Gain" +msgstr "" + +#: templates/investments/fragments/detail.html:290 +msgid "Loss, tax or fee" +msgstr "" + +#: templates/investments/fragments/detail.html:315 +#, fuzzy +#| msgid "No presets yet" +msgid "No movements yet" +msgstr "Nenhuma predefinição de importação ainda" + +#: templates/investments/fragments/detail.html:315 +msgid "Use the + button to buy or contribute" +msgstr "" + +#: templates/investments/fragments/list.html:21 +msgid "Holdings" +msgstr "" + +#: templates/investments/fragments/list.html:60 +msgid "Some costs were estimated from market prices" +msgstr "" + +#: templates/investments/fragments/list.html:92 +msgid "Charts" +msgstr "" + +#: templates/investments/fragments/list.html:97 +#, fuzzy +#| msgid "New balance" +msgid "Rebalance" +msgstr "Novo saldo" + +#: templates/investments/fragments/list.html:105 +#, fuzzy +#| msgid "No presets yet" +msgid "No investments yet" +msgstr "Nenhuma predefinição de importação ainda" + +#: templates/investments/fragments/list.html:106 +msgid "Mark an account as an investment in its settings to see it here" +msgstr "" + +#: templates/investments/fragments/rebalance.html:4 +msgid "No allocation targets" +msgstr "" + +#: templates/investments/fragments/rebalance.html:5 +msgid "Set a target for your asset classes to see what to buy and sell" +msgstr "" + +#: templates/investments/fragments/rebalance.html:26 +msgid "To reach the target" +msgstr "" + +#: templates/investments/fragments/rebalance.html:34 +msgid "Off target" +msgstr "" + +#: templates/investments/fragments/rebalance.html:55 +msgid "Left out: investments without an asset class or a target" +msgstr "" + #: templates/layouts/base.html:38 msgid "This is a demo!" msgstr "Isto é uma demonstração!" @@ -3665,11 +4144,6 @@ msgstr "Filtrar transações" msgid "Order by" msgstr "Ordernar por" -#: templates/net_worth/net_worth.html:52 -#: templates/yearly_overview/pages/overview_by_currency.html:6 -msgid "By currency" -msgstr "Por moeda" - #: templates/net_worth/net_worth.html:135 msgid "Evolution" msgstr "Evolução" @@ -4123,6 +4597,12 @@ msgstr "Login com" msgid "Yearly Overview" msgstr "Visão Anual" +#~ msgid "" +#~ "Create one exchange rate and keep updating it. Avoids database clutter." +#~ msgstr "" +#~ "Cria uma taxa de câmbio e mantenha-a atualizada. Evita a poluição do " +#~ "banco de dados." + #~ msgid "Add as quick transaction" #~ msgstr "Adicionar como transação rápida" diff --git a/app/locale/ru/LC_MESSAGES/django.po b/app/locale/ru/LC_MESSAGES/django.po index 602dd1df..462a4df4 100644 --- a/app/locale/ru/LC_MESSAGES/django.po +++ b/app/locale/ru/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-11-08 13:19+0000\n" +"POT-Creation-Date: 2026-11-08 18:27+0000\n" "PO-Revision-Date: 2026-05-01 07:24+0000\n" "Last-Translator: masttera \n" "Language-Team: Russian =20) ? 1 : 2;\n" "X-Generator: Weblate 5.17\n" -#: apps/accounts/forms.py:28 +#: apps/accounts/forms.py:33 msgid "Group name" msgstr "Имя группы" -#: apps/accounts/forms.py:43 apps/accounts/forms.py:109 -#: apps/currencies/forms.py:57 apps/currencies/forms.py:91 -#: apps/currencies/forms.py:166 apps/dca/forms.py:46 apps/dca/forms.py:192 -#: apps/import_app/forms.py:32 apps/rules/forms.py:60 apps/rules/forms.py:100 -#: apps/rules/forms.py:385 apps/transactions/forms.py:219 -#: apps/transactions/forms.py:452 apps/transactions/forms.py:571 -#: apps/transactions/forms.py:718 apps/transactions/forms.py:940 -#: apps/transactions/forms.py:987 apps/transactions/forms.py:1015 -#: apps/transactions/forms.py:1046 apps/transactions/forms.py:1208 -#: apps/users/forms.py:264 apps/users/forms.py:422 +#: apps/accounts/forms.py:48 apps/accounts/forms.py:76 +#: apps/accounts/forms.py:184 apps/currencies/forms.py:57 +#: apps/currencies/forms.py:91 apps/currencies/forms.py:168 +#: apps/dca/forms.py:46 apps/dca/forms.py:192 apps/import_app/forms.py:32 +#: apps/rules/forms.py:60 apps/rules/forms.py:100 apps/rules/forms.py:385 +#: apps/transactions/forms.py:219 apps/transactions/forms.py:452 +#: apps/transactions/forms.py:571 apps/transactions/forms.py:718 +#: apps/transactions/forms.py:940 apps/transactions/forms.py:987 +#: apps/transactions/forms.py:1015 apps/transactions/forms.py:1046 +#: apps/transactions/forms.py:1208 apps/users/forms.py:264 +#: apps/users/forms.py:422 #: templates/rules/fragments/transaction_rule/dry_run/updated.html:5 #: templates/rules/fragments/transaction_rule/view.html:128 msgid "Update" msgstr "Обновить" -#: apps/accounts/forms.py:49 apps/accounts/forms.py:115 -#: apps/common/widgets/tom_select.py:15 apps/currencies/forms.py:63 -#: apps/currencies/forms.py:97 apps/currencies/forms.py:172 -#: apps/dca/forms.py:52 apps/dca/forms.py:198 apps/import_app/forms.py:38 -#: apps/rules/forms.py:66 apps/rules/forms.py:106 apps/rules/forms.py:391 -#: apps/transactions/forms.py:206 apps/transactions/forms.py:226 -#: apps/transactions/forms.py:459 apps/transactions/forms.py:946 -#: apps/transactions/forms.py:993 apps/transactions/forms.py:1021 -#: apps/transactions/forms.py:1052 apps/transactions/forms.py:1214 -#: apps/users/forms.py:270 apps/users/forms.py:428 -#: templates/mini_tools/simulator.html:177 +#: apps/accounts/forms.py:54 apps/accounts/forms.py:76 +#: apps/accounts/forms.py:190 apps/common/widgets/tom_select.py:15 +#: apps/currencies/forms.py:63 apps/currencies/forms.py:97 +#: apps/currencies/forms.py:174 apps/dca/forms.py:52 apps/dca/forms.py:198 +#: apps/import_app/forms.py:38 apps/rules/forms.py:66 apps/rules/forms.py:106 +#: apps/rules/forms.py:391 apps/transactions/forms.py:206 +#: apps/transactions/forms.py:226 apps/transactions/forms.py:459 +#: apps/transactions/forms.py:946 apps/transactions/forms.py:993 +#: apps/transactions/forms.py:1021 apps/transactions/forms.py:1052 +#: apps/transactions/forms.py:1214 apps/users/forms.py:270 +#: apps/users/forms.py:428 templates/mini_tools/simulator.html:177 #: templates/mini_tools/unit_price_calculator.html:168 msgid "Add" msgstr "Добавить" -#: apps/accounts/forms.py:57 templates/accounts/fragments/list.html:23 +#: apps/accounts/forms.py:86 templates/accounts/fragments/list.html:23 msgid "Group" msgstr "Группа" -#: apps/accounts/forms.py:123 +#: apps/accounts/forms.py:93 apps/accounts/models.py:73 +#: apps/accounts/models.py:130 +#: templates/investments/fragments/rebalance.html:22 +msgid "Asset class" +msgstr "" + +#: apps/accounts/forms.py:198 msgid "New balance" msgstr "Новый баланс" -#: apps/accounts/forms.py:129 apps/dca/forms.py:79 apps/dca/forms.py:86 +#: apps/accounts/forms.py:204 apps/dca/forms.py:79 apps/dca/forms.py:86 #: apps/insights/forms.py:117 apps/insights/views.py:44 apps/rules/forms.py:181 #: apps/rules/forms.py:197 apps/rules/models.py:44 apps/rules/models.py:311 #: apps/transactions/forms.py:62 apps/transactions/forms.py:330 #: apps/transactions/forms.py:510 apps/transactions/forms.py:607 #: apps/transactions/forms.py:614 apps/transactions/forms.py:823 #: apps/transactions/forms.py:1075 apps/transactions/models.py:357 -#: apps/transactions/models.py:743 apps/transactions/models.py:999 -#: apps/transactions/models.py:1306 +#: apps/transactions/models.py:767 apps/transactions/models.py:1023 +#: apps/transactions/models.py:1330 #: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/year_by_year.html:52 msgid "Category" msgstr "Категория" -#: apps/accounts/forms.py:136 apps/dca/forms.py:95 apps/dca/forms.py:103 -#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 +#: apps/accounts/forms.py:211 apps/dca/forms.py:95 apps/dca/forms.py:103 +#: apps/export_app/forms.py:43 apps/export_app/forms.py:134 #: apps/insights/views.py:50 apps/rules/forms.py:184 apps/rules/forms.py:194 #: apps/rules/models.py:45 apps/rules/models.py:315 #: apps/transactions/filters.py:79 apps/transactions/forms.py:70 #: apps/transactions/forms.py:338 apps/transactions/forms.py:518 #: apps/transactions/forms.py:623 apps/transactions/forms.py:631 #: apps/transactions/forms.py:816 apps/transactions/forms.py:1068 -#: apps/transactions/models.py:363 apps/transactions/models.py:745 -#: apps/transactions/models.py:1003 apps/transactions/models.py:1312 -#: templates/includes/sidebar.html:156 +#: apps/transactions/models.py:363 apps/transactions/models.py:769 +#: apps/transactions/models.py:1027 apps/transactions/models.py:1336 +#: templates/includes/sidebar.html:162 #: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/year_by_year.html:24 @@ -95,31 +102,31 @@ msgstr "Категория" msgid "Tags" msgstr "Тэг" -#: apps/accounts/forms.py:179 +#: apps/accounts/forms.py:254 #, fuzzy #| msgid "All Transactions" msgid "All paid transactions" msgstr "Все транзакции" -#: apps/accounts/forms.py:180 +#: apps/accounts/forms.py:255 #, fuzzy #| msgid "Update" msgid "Up to date" msgstr "Обновить" -#: apps/accounts/forms.py:181 +#: apps/accounts/forms.py:256 #, fuzzy #| msgid "Move to next month" msgid "Up to reference month" msgstr "Перенести на следующий месяц" -#: apps/accounts/forms.py:185 +#: apps/accounts/forms.py:260 #, fuzzy #| msgid "Balance" msgid "Balance against" msgstr "Баланс" -#: apps/accounts/forms.py:189 apps/currencies/forms.py:70 +#: apps/accounts/forms.py:264 apps/currencies/forms.py:70 #: apps/dca/models.py:158 apps/rules/forms.py:176 apps/rules/forms.py:190 #: apps/rules/models.py:38 apps/rules/models.py:279 #: apps/transactions/forms.py:86 apps/transactions/forms.py:482 @@ -130,16 +137,17 @@ msgstr "Баланс" msgid "Date" msgstr "Дата" -#: apps/accounts/forms.py:194 +#: apps/accounts/forms.py:269 #, fuzzy #| msgid "Reference Date" msgid "Reference month" msgstr "Дата ссылки" -#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 +#: apps/accounts/models.py:19 apps/accounts/models.py:36 +#: apps/accounts/models.py:84 apps/dca/models.py:13 #: apps/import_app/models.py:20 apps/rules/models.py:13 #: apps/transactions/models.py:249 apps/transactions/models.py:274 -#: apps/transactions/models.py:298 apps/transactions/models.py:1274 +#: apps/transactions/models.py:298 apps/transactions/models.py:1298 #: apps/users/models.py:577 templates/account_groups/fragments/list.html:22 #: templates/accounts/fragments/list.html:22 #: templates/categories/fragments/table.html:17 @@ -148,6 +156,7 @@ msgstr "Дата ссылки" #: templates/exchange_rates_services/fragments/list.html:28 #: templates/import_app/fragments/profiles/list.html:34 #: templates/installment_plans/fragments/table.html:16 +#: templates/investment_classes/fragments/list.html:27 #: templates/quick_transactions/fragments/list.html:13 #: templates/recurring_transactions/fragments/table.html:18 #: templates/rules/fragments/list.html:24 @@ -156,44 +165,129 @@ msgstr "Дата ссылки" msgid "Name" msgstr "Имя" -#: apps/accounts/models.py:18 apps/accounts/models.py:33 +#: apps/accounts/models.py:25 apps/accounts/models.py:88 msgid "Account Group" msgstr "Группа счетов" -#: apps/accounts/models.py:19 templates/account_groups/fragments/list.html:9 +#: apps/accounts/models.py:26 templates/account_groups/fragments/list.html:9 #: templates/account_groups/pages/index.html:4 -#: templates/includes/sidebar.html:176 +#: templates/includes/sidebar.html:182 msgid "Account Groups" msgstr "Группы счетов" -#: apps/accounts/models.py:39 apps/currencies/models.py:44 +#: apps/accounts/models.py:43 +msgid "Target allocation (%)" +msgstr "" + +#: apps/accounts/models.py:45 +msgid "" +"Share of your investments you want in this class. Leave it empty to leave " +"the class out of the targets." +msgstr "" + +#: apps/accounts/models.py:61 +msgid "You already have an asset class with this name." +msgstr "" + +#: apps/accounts/models.py:66 +#, python-format +msgid "" +"Targets can't add up to more than 100%%. Other classes already take " +"%(taken)s%%." +msgstr "" + +#: apps/accounts/models.py:74 apps/export_app/forms.py:131 +#: templates/includes/sidebar.html:190 +#: templates/investment_classes/fragments/list.html:9 +#: templates/investment_classes/pages/index.html:4 +#: templates/investments/fragments/rebalance.html:6 +#: templates/investments/fragments/rebalance.html:11 +msgid "Asset classes" +msgstr "" + +#: apps/accounts/models.py:94 apps/currencies/models.py:44 #: templates/accounts/fragments/list.html:24 #: templates/mini_tools/simulator.html:37 #: templates/yearly_overview/pages/yearly_overview_base.html:19 msgid "Currency" msgstr "Валюта" -#: apps/accounts/models.py:45 apps/currencies/models.py:27 +#: apps/accounts/models.py:100 apps/currencies/models.py:27 #: templates/accounts/fragments/list.html:25 msgid "Exchange Currency" msgstr "Обмен валюты" -#: apps/accounts/models.py:50 apps/currencies/models.py:32 +#: apps/accounts/models.py:105 apps/currencies/models.py:32 msgid "Default currency for exchange calculations" msgstr "Валюта по умолчанию для расчетов обмена валют" -#: apps/accounts/models.py:55 +#: apps/accounts/models.py:110 msgid "Asset account" msgstr "Счет активов" -#: apps/accounts/models.py:57 +#: apps/accounts/models.py:112 msgid "" "Asset accounts count towards your Net Worth, but not towards your month." msgstr "" "Активы, находящиеся на счетах, учитываются при расчете вашего чистого " "капитала, но не в ежемесячном исчислении." -#: apps/accounts/models.py:62 apps/currencies/models.py:37 +#: apps/accounts/models.py:117 templates/investments/fragments/list.html:46 +#, fuzzy +#| msgid "Installment" +msgid "Investment" +msgstr "Рассрочка" + +#: apps/accounts/models.py:119 +msgid "" +"Show this account in the Investments tracker. Set an exchange currency to " +"price it by units (stocks, ETFs, crypto); leave it empty to track it by " +"value (fixed income, property, pensions)." +msgstr "" + +#: apps/accounts/models.py:132 +msgid "" +"Groups investments in the allocation charts, e.g. Fixed income, Stocks, Real " +"estate." +msgstr "" + +#: apps/accounts/models.py:140 +#, fuzzy +#| msgid "No entities" +msgid "Income entities" +msgstr "Нет объектов" + +#: apps/accounts/models.py:142 +msgid "" +"Transactions with any of these entities count towards this investment's " +"return: in this account, and income paid into other accounts (dividends, " +"rent)." +msgstr "" + +#: apps/accounts/models.py:151 +#, fuzzy +#| msgid "No categories" +msgid "Income categories" +msgstr "Категории отсутствуют" + +#: apps/accounts/models.py:153 +msgid "" +"Transactions in this account with any of these categories are its result " +"(interest, taxes, fees). On accounts tracked by value, everything else that " +"isn't a transfer counts as money coming in or going out." +msgstr "" + +#: apps/accounts/models.py:162 +#, fuzzy +#| msgid "Income" +msgid "Income tags" +msgstr "Доход" + +#: apps/accounts/models.py:164 +msgid "Same as income categories, for transactions with any of these tags." +msgstr "" + +#: apps/accounts/models.py:169 apps/currencies/models.py:37 #: templates/accounts/fragments/list.html:27 #: templates/categories/fragments/list.html:20 #: templates/currencies/fragments/list.html:24 @@ -202,19 +296,19 @@ msgstr "" msgid "Archived" msgstr "Архив" -#: apps/accounts/models.py:63 +#: apps/accounts/models.py:170 msgid "Archived accounts don't show up nor count towards your net worth" msgstr "" "Архивированные счета не отображаются и не учитываются при расчете вашего " "чистого капитала" -#: apps/accounts/models.py:75 apps/rules/forms.py:173 apps/rules/forms.py:187 +#: apps/accounts/models.py:182 apps/rules/forms.py:173 apps/rules/forms.py:187 #: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/transactions/forms.py:82 apps/transactions/forms.py:350 #: apps/transactions/forms.py:477 apps/transactions/forms.py:808 #: apps/transactions/forms.py:1060 apps/transactions/models.py:329 -#: apps/transactions/models.py:703 apps/transactions/models.py:981 -#: apps/transactions/models.py:1280 +#: apps/transactions/models.py:727 apps/transactions/models.py:1005 +#: apps/transactions/models.py:1304 #: templates/installment_plans/fragments/table.html:17 #: templates/quick_transactions/fragments/list.html:14 #: templates/recurring_transactions/fragments/table.html:19 @@ -222,17 +316,17 @@ msgstr "" msgid "Account" msgstr "Счет" -#: apps/accounts/models.py:76 apps/export_app/forms.py:19 -#: apps/export_app/forms.py:129 apps/transactions/filters.py:63 +#: apps/accounts/models.py:183 apps/export_app/forms.py:19 +#: apps/export_app/forms.py:130 apps/transactions/filters.py:63 #: templates/accounts/fragments/list.html:9 -#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:168 -#: templates/includes/sidebar.html:170 +#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:174 +#: templates/includes/sidebar.html:176 #: templates/monthly_overview/pages/overview.html:77 #: templates/transactions/pages/transactions.html:26 msgid "Accounts" msgstr "Счета" -#: apps/accounts/models.py:93 +#: apps/accounts/models.py:200 msgid "Exchange currency cannot be the same as the account's main currency." msgstr "Обменная валюта не может совпадать с основной валютой счета." @@ -324,7 +418,7 @@ msgstr "Объект с таким идентификатором не суще msgid "Invalid entity data. Provide an ID or name." msgstr "Неверные данные сущности. Укажите идентификатор или имя." -#: apps/api/serializers/transactions.py:141 apps/transactions/models.py:953 +#: apps/api/serializers/transactions.py:141 apps/transactions/models.py:977 msgid "This field is required." msgstr "" @@ -345,13 +439,14 @@ msgstr "Сделать приватным" msgid "Shared with users" msgstr "Доступно пользователям" -#: apps/common/fields/forms/dynamic_select.py:71 -#: apps/common/fields/forms/dynamic_select.py:142 +#: apps/common/fields/forms/dynamic_select.py:79 +#: apps/common/fields/forms/dynamic_select.py:150 msgid "Error creating new instance" msgstr "Ошибка при создании нового экземпляра" #: apps/common/fields/forms/grouped_select.py:24 #: apps/common/widgets/tom_select.py:94 apps/common/widgets/tom_select.py:97 +#: templates/investments/fragments/list.html:26 msgid "Ungrouped" msgstr "Негруппированный" @@ -506,6 +601,7 @@ msgid "Today" msgstr "Сегодня" #: apps/common/widgets/datepicker.py:142 +#: templates/investments/fragments/rebalance.html:24 msgid "Now" msgstr "Сейчас" @@ -555,10 +651,10 @@ msgid "Decimal Places" msgstr "Десятичные знаки" #: apps/currencies/models.py:45 apps/export_app/forms.py:25 -#: apps/export_app/forms.py:130 apps/transactions/filters.py:70 +#: apps/export_app/forms.py:132 apps/transactions/filters.py:70 #: templates/currencies/fragments/list.html:9 -#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:182 -#: templates/includes/sidebar.html:184 +#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:196 +#: templates/includes/sidebar.html:198 #: templates/monthly_overview/pages/overview.html:63 #: templates/transactions/pages/transactions.html:12 msgid "Currencies" @@ -590,9 +686,9 @@ msgid "Auto" msgstr "Авто" #: apps/currencies/models.py:82 apps/export_app/forms.py:67 -#: apps/export_app/forms.py:142 templates/exchange_rates/fragments/list.html:10 +#: apps/export_app/forms.py:144 templates/exchange_rates/fragments/list.html:10 #: templates/exchange_rates/pages/index.html:4 -#: templates/includes/sidebar.html:190 +#: templates/includes/sidebar.html:204 msgid "Exchange Rates" msgstr "Обменные курсы" @@ -686,33 +782,46 @@ msgstr "" "валюты." #: apps/currencies/models.py:171 -msgid "Single exchange rate" +#, fuzzy +#| msgid "Single exchange rate" +msgid "One exchange rate per day" msgstr "Единый обменный курс" #: apps/currencies/models.py:174 -msgid "Create one exchange rate and keep updating it. Avoids database clutter." +msgid "" +"Update the day's exchange rate on each fetch instead of adding a new one." msgstr "" -"Создайте один обменный курс и постоянно обновляйте его. Это позволит " -"избежать захламления базы данных." -#: apps/currencies/models.py:179 +#: apps/currencies/models.py:178 +#, fuzzy +#| msgid "Exchange Rates" +msgid "Exchange rates to keep" +msgstr "Обменные курсы" + +#: apps/currencies/models.py:183 +msgid "" +"Keep at most this many automatic exchange rates per currency pair, deleting " +"the oldest first. Leave empty to keep all." +msgstr "" + +#: apps/currencies/models.py:188 msgid "Exchange Rate Service" msgstr "Сервис обмена курсов" -#: apps/currencies/models.py:180 +#: apps/currencies/models.py:189 msgid "Exchange Rate Services" msgstr "Сервисы обмена курсов" -#: apps/currencies/models.py:234 +#: apps/currencies/models.py:243 msgid "'Every X hours' interval type requires a positive integer." msgstr "" "Для интервалов типа «Каждые X часов» требуется положительное целое число." -#: apps/currencies/models.py:243 +#: apps/currencies/models.py:252 msgid "'Every X hours' interval must be between 1 and 24." msgstr "Интервал «каждые X часов» должен составлять от 1 до 24." -#: apps/currencies/models.py:257 +#: apps/currencies/models.py:266 msgid "" "Invalid hour format. Use comma-separated hours (0-23) and/or ranges (e.g., " "'1-5,8,10-12')." @@ -720,7 +829,7 @@ msgstr "" "Неверный формат времени. Используйте часы, разделенные запятыми (0-23), и/" "или диапазоны (например, '1-5,8,10-12')." -#: apps/currencies/models.py:268 +#: apps/currencies/models.py:277 msgid "" "Invalid format. Please check the requirements for your selected interval " "type." @@ -802,11 +911,11 @@ msgid "You must provide an account." msgstr "Вы должны предоставить учетную запись." #: apps/dca/forms.py:277 apps/transactions/forms.py:752 -#: apps/transactions/models.py:956 +#: apps/transactions/models.py:980 msgid "From and To accounts must be different." msgstr "Счета «От» и «Получатель» должны быть разными." -#: apps/dca/forms.py:291 +#: apps/dca/forms.py:299 #, python-format msgid "DCA for %(strategy_name)s" msgstr "" @@ -822,8 +931,8 @@ msgstr "Валюта платежа" #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/transactions/forms.py:504 apps/transactions/forms.py:651 -#: apps/transactions/models.py:353 apps/transactions/models.py:752 -#: apps/transactions/models.py:1009 apps/transactions/models.py:1302 +#: apps/transactions/models.py:353 apps/transactions/models.py:776 +#: apps/transactions/models.py:1033 apps/transactions/models.py:1326 msgid "Notes" msgstr "Заметки" @@ -831,7 +940,7 @@ msgstr "Заметки" msgid "DCA Strategy" msgstr "Стратегия DCA" -#: apps/dca/models.py:35 apps/export_app/forms.py:150 +#: apps/dca/models.py:35 apps/export_app/forms.py:152 msgid "DCA Strategies" msgstr "Стратегии DCA" @@ -851,7 +960,7 @@ msgstr "Полученная сумма" msgid "DCA Entry" msgstr "" -#: apps/dca/models.py:187 apps/export_app/forms.py:151 +#: apps/dca/models.py:187 apps/export_app/forms.py:153 msgid "DCA Entries" msgstr "Записи DCA" @@ -879,25 +988,25 @@ msgstr "Запись успешно обновлена" msgid "Entry deleted successfully" msgstr "Запись успешно удалена" -#: apps/export_app/forms.py:13 apps/export_app/forms.py:128 -#: templates/includes/sidebar.html:227 templates/users/fragments/list.html:10 +#: apps/export_app/forms.py:13 apps/export_app/forms.py:129 +#: templates/includes/sidebar.html:241 templates/users/fragments/list.html:10 #: templates/users/pages/index.html:4 msgid "Users" msgstr "Пользователи" -#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 +#: apps/export_app/forms.py:31 apps/export_app/forms.py:136 #: apps/transactions/models.py:422 templates/includes/sidebar.html:81 -#: templates/includes/sidebar.html:148 +#: templates/includes/sidebar.html:154 #: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/table.html:37 #: templates/transactions/pages/transactions.html:5 msgid "Transactions" msgstr "Транзакции" -#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 +#: apps/export_app/forms.py:37 apps/export_app/forms.py:133 #: apps/insights/views.py:43 apps/transactions/filters.py:74 #: templates/categories/fragments/list.html:9 -#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:150 +#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/year_by_year.html:13 @@ -905,16 +1014,16 @@ msgstr "Транзакции" msgid "Categories" msgstr "Категории" -#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 +#: apps/export_app/forms.py:49 apps/export_app/forms.py:135 #: apps/insights/views.py:57 apps/rules/forms.py:185 apps/rules/forms.py:195 #: apps/rules/models.py:46 apps/rules/models.py:307 #: apps/transactions/filters.py:84 apps/transactions/forms.py:78 #: apps/transactions/forms.py:346 apps/transactions/forms.py:526 #: apps/transactions/forms.py:831 apps/transactions/forms.py:1083 #: apps/transactions/models.py:312 apps/transactions/models.py:368 -#: apps/transactions/models.py:748 apps/transactions/models.py:1006 -#: apps/transactions/models.py:1317 templates/entities/fragments/list.html:9 -#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:162 +#: apps/transactions/models.py:772 apps/transactions/models.py:1030 +#: apps/transactions/models.py:1341 templates/entities/fragments/list.html:9 +#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:168 #: templates/insights/fragments/month_by_month.html:40 #: templates/insights/fragments/month_by_month.html:43 #: templates/insights/fragments/year_by_year.html:35 @@ -922,28 +1031,28 @@ msgstr "Категории" msgid "Entities" msgstr "Объекты" -#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 -#: apps/transactions/models.py:1046 templates/includes/sidebar.html:110 +#: apps/export_app/forms.py:55 apps/export_app/forms.py:139 +#: apps/transactions/models.py:1070 templates/includes/sidebar.html:110 #: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/pages/index.html:4 msgid "Recurring Transactions" msgstr "Повторяющиеся транзакции" -#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 -#: apps/transactions/models.py:766 templates/includes/sidebar.html:104 +#: apps/export_app/forms.py:61 apps/export_app/forms.py:137 +#: apps/transactions/models.py:790 templates/includes/sidebar.html:104 #: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/pages/index.html:4 msgid "Installment Plans" msgstr "Планы рассрочки" -#: apps/export_app/forms.py:73 apps/export_app/forms.py:140 +#: apps/export_app/forms.py:73 apps/export_app/forms.py:142 #: templates/exchange_rates_services/fragments/list.html:10 #: templates/exchange_rates_services/pages/index.html:4 -#: templates/includes/sidebar.html:218 +#: templates/includes/sidebar.html:232 msgid "Automatic Exchange Rates" msgstr "Автоматические обменные курсы" -#: apps/export_app/forms.py:79 templates/includes/sidebar.html:198 +#: apps/export_app/forms.py:79 templates/includes/sidebar.html:212 #: templates/rules/fragments/list.html:9 templates/rules/pages/index.html:4 msgid "Rules" msgstr "Правила" @@ -952,57 +1061,57 @@ msgstr "Правила" msgid "DCA" msgstr "" -#: apps/export_app/forms.py:91 apps/export_app/forms.py:152 +#: apps/export_app/forms.py:91 apps/export_app/forms.py:154 #: templates/import_app/fragments/profiles/list.html:21 #: templates/import_app/pages/profiles_index.html:4 msgid "Import Profiles" msgstr "Импорт профилей" -#: apps/export_app/forms.py:117 templates/export_app/fragments/export.html:5 +#: apps/export_app/forms.py:118 templates/export_app/fragments/export.html:5 #: templates/export_app/pages/index.html:13 msgid "Export" msgstr "Экспорт" -#: apps/export_app/forms.py:125 +#: apps/export_app/forms.py:126 msgid "Import a ZIP file exported from WYGIWYH" msgstr "Импорт ZIP-файла, экспортированного из WYGIWYH" -#: apps/export_app/forms.py:126 +#: apps/export_app/forms.py:127 msgid "ZIP File" msgstr "ZIP File" -#: apps/export_app/forms.py:143 apps/rules/models.py:27 +#: apps/export_app/forms.py:145 apps/rules/models.py:27 msgid "Transaction rules" msgstr "Правила транзакций" -#: apps/export_app/forms.py:145 apps/rules/models.py:68 +#: apps/export_app/forms.py:147 apps/rules/models.py:68 msgid "Edit transaction action" msgstr "Редактировать действие транзакции" -#: apps/export_app/forms.py:148 apps/rules/models.py:327 +#: apps/export_app/forms.py:150 apps/rules/models.py:327 msgid "Update or create transaction actions" msgstr "Обновление или создание действий транзакции" -#: apps/export_app/forms.py:181 templates/cotton/transaction/item.html:341 +#: apps/export_app/forms.py:183 templates/cotton/transaction/item.html:341 #: templates/cotton/ui/deleted_transactions_action_bar.html:53 #: templates/export_app/fragments/restore.html:5 #: templates/export_app/pages/index.html:19 msgid "Restore" msgstr "Восстановить" -#: apps/export_app/forms.py:191 +#: apps/export_app/forms.py:193 msgid "Please upload either a ZIP file or at least one CSV file" msgstr "Пожалуйста, загрузите либо ZIP-файл, либо хотя бы один CSV-файл" -#: apps/export_app/views.py:177 +#: apps/export_app/views.py:183 msgid "You have to select at least one export" msgstr "Необходимо выбрать как минимум один экспорт" -#: apps/export_app/views.py:197 +#: apps/export_app/views.py:203 msgid "Data restored successfully" msgstr "Данные успешно восстановлены" -#: apps/export_app/views.py:209 +#: apps/export_app/views.py:215 msgid "" "There was an error restoring your data. Check the logs for more details." msgstr "" @@ -1015,7 +1124,7 @@ msgstr "Выберите файл" #: apps/import_app/forms.py:55 #: templates/import_app/fragments/profiles/list.html:75 -#: templates/includes/sidebar.html:204 +#: templates/includes/sidebar.html:218 msgid "Import" msgstr "Импорт" @@ -1148,7 +1257,7 @@ msgstr "" msgid "Untagged" msgstr "" -#: apps/insights/views.py:53 apps/transactions/models.py:589 +#: apps/insights/views.py:53 apps/transactions/models.py:613 #: templates/tags/fragments/table.html:69 msgid "No tags" msgstr "Нет тегов" @@ -1169,6 +1278,32 @@ msgstr "" msgid "No entities" msgstr "Нет объектов" +#: apps/investments/views.py:104 +msgid "Other" +msgstr "" + +#: apps/investments/views.py:135 +msgid "Unclassified" +msgstr "" + +#: apps/investments/views.py:267 +#, fuzzy +#| msgid "Installment Plan added successfully" +msgid "Asset class added successfully" +msgstr "План рассрочки успешно добавлен" + +#: apps/investments/views.py:275 +#, fuzzy +#| msgid "Tag updated successfully" +msgid "Asset class updated successfully" +msgstr "Тег успешно обновлен" + +#: apps/investments/views.py:296 +#, fuzzy +#| msgid "Tag deleted successfully" +msgid "Asset class deleted successfully" +msgstr "Тег успешно удален" + #: apps/net_worth/views.py:137 templates/net_worth/net_worth.html:84 #: templates/net_worth/net_worth.html:85 msgid "Consolidated" @@ -1222,8 +1357,8 @@ msgstr "Оператор" #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/models.py:271 apps/transactions/forms.py:468 -#: apps/transactions/models.py:336 apps/transactions/models.py:708 -#: apps/transactions/models.py:987 apps/transactions/models.py:1287 +#: apps/transactions/models.py:336 apps/transactions/models.py:732 +#: apps/transactions/models.py:1011 apps/transactions/models.py:1311 #: templates/mini_tools/simulator.html:63 msgid "Type" msgstr "" @@ -1231,7 +1366,7 @@ msgstr "" #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/transactions/forms.py:472 apps/transactions/models.py:338 -#: apps/transactions/models.py:1289 templates/cotton/transaction/item.html:23 +#: apps/transactions/models.py:1313 templates/cotton/transaction/item.html:23 #: templates/cotton/transaction/item.html:34 #: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 @@ -1242,14 +1377,14 @@ msgstr "Оплаченный" #: apps/rules/models.py:283 apps/transactions/forms.py:90 #: apps/transactions/forms.py:488 apps/transactions/forms.py:638 #: apps/transactions/forms.py:837 apps/transactions/models.py:340 -#: apps/transactions/models.py:726 apps/transactions/models.py:1011 +#: apps/transactions/models.py:750 apps/transactions/models.py:1035 msgid "Reference Date" msgstr "Дата ссылки" #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/models.py:287 apps/transactions/forms.py:495 -#: apps/transactions/models.py:346 apps/transactions/models.py:992 -#: apps/transactions/models.py:1295 +#: apps/transactions/models.py:346 apps/transactions/models.py:1016 +#: apps/transactions/models.py:1319 #: templates/insights/fragments/sankey.html:102 #: templates/installment_plans/fragments/table.html:18 #: templates/mini_tools/simulator.html:70 @@ -1261,27 +1396,27 @@ msgstr "" #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/transactions/forms.py:499 apps/transactions/forms.py:642 -#: apps/transactions/models.py:351 apps/transactions/models.py:710 -#: apps/transactions/models.py:995 apps/transactions/models.py:1300 +#: apps/transactions/models.py:351 apps/transactions/models.py:734 +#: apps/transactions/models.py:1019 apps/transactions/models.py:1324 msgid "Description" msgstr "" #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/models.py:299 apps/transactions/models.py:398 -#: apps/transactions/models.py:1322 +#: apps/transactions/models.py:1346 msgid "Internal Note" msgstr "" #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/models.py:303 apps/transactions/models.py:400 -#: apps/transactions/models.py:1324 +#: apps/transactions/models.py:1348 msgid "Internal ID" msgstr "" #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/models.py:319 apps/transactions/forms.py:655 #: apps/transactions/models.py:250 apps/transactions/models.py:341 -#: apps/transactions/models.py:1290 +#: apps/transactions/models.py:1314 msgid "Mute" msgstr "" @@ -1294,7 +1429,7 @@ msgid "Set Values" msgstr "" #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 -#: apps/transactions/models.py:421 apps/transactions/models.py:645 +#: apps/transactions/models.py:421 apps/transactions/models.py:669 msgid "Transaction" msgstr "Транзакция" @@ -1330,7 +1465,12 @@ msgstr "" msgid "Field" msgstr "" -#: apps/rules/models.py:61 +#: apps/rules/models.py:61 templates/investments/fragments/charts.html:86 +#: templates/investments/fragments/detail.html:103 +#: templates/investments/fragments/detail.html:162 +#: templates/investments/fragments/list.html:48 +#: templates/investments/fragments/list.html:49 +#: templates/investments/fragments/rebalance.html:23 msgid "Value" msgstr "" @@ -1516,7 +1656,7 @@ msgid "Upload" msgstr "Перезагрузка" #: apps/transactions/forms.py:355 apps/transactions/forms.py:1089 -#: apps/transactions/models.py:925 +#: apps/transactions/models.py:949 #, fuzzy #| msgid "To Account" msgid "To account" @@ -1534,8 +1674,8 @@ msgstr "" msgid "To Amount" msgstr "" -#: apps/transactions/forms.py:718 apps/transactions/models.py:970 -#: apps/transactions/models.py:1267 templates/cotton/transaction/item.html:52 +#: apps/transactions/forms.py:718 apps/transactions/models.py:994 +#: apps/transactions/models.py:1291 templates/cotton/transaction/item.html:52 #: templates/cotton/transaction/item.html:60 #: templates/cotton/ui/quick_transactions_buttons.html:40 #: templates/cotton/ui/transactions_fab.html:44 @@ -1598,8 +1738,8 @@ msgid "" msgstr "" "Деактивированные объекты нельзя будет выбрать при создании новых транзакций" -#: apps/transactions/models.py:323 apps/transactions/models.py:969 -#: apps/transactions/models.py:1266 +#: apps/transactions/models.py:323 apps/transactions/models.py:993 +#: apps/transactions/models.py:1290 #: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:52 @@ -1607,13 +1747,19 @@ msgstr "" #: templates/cotton/ui/quick_transactions_buttons.html:10 #: templates/cotton/ui/transactions_fab.html:10 #: templates/insights/fragments/overview/_results.html:12 +#: templates/investments/fragments/_totals.html:21 +#: templates/investments/fragments/_totals.html:42 +#: templates/investments/fragments/detail.html:106 +#: templates/investments/fragments/detail.html:210 +#: templates/investments/fragments/detail.html:252 +#: templates/investments/fragments/detail.html:320 #: templates/mini_tools/simulator.html:66 #: templates/monthly_overview/fragments/monthly_summary.html:42 msgid "Income" msgstr "Доход" -#: apps/transactions/models.py:324 apps/transactions/models.py:971 -#: apps/transactions/models.py:1268 +#: apps/transactions/models.py:324 apps/transactions/models.py:995 +#: apps/transactions/models.py:1292 #: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:56 @@ -1625,14 +1771,14 @@ msgstr "Доход" msgid "Expense" msgstr "Расход" -#: apps/transactions/models.py:379 apps/transactions/models.py:765 +#: apps/transactions/models.py:379 apps/transactions/models.py:789 #: templates/cotton/transaction/item.html:291 #: templates/cotton/transaction/item.html:308 #: templates/cotton/transaction/item.html:318 msgid "Installment Plan" msgstr "План рассрочки" -#: apps/transactions/models.py:388 apps/transactions/models.py:1045 +#: apps/transactions/models.py:388 apps/transactions/models.py:1069 #: templates/cotton/transaction/item.html:281 #: templates/cotton/transaction/item.html:301 msgid "Recurring Transaction" @@ -1652,160 +1798,172 @@ msgstr "Удалено" msgid "Deleted At" msgstr "" -#: apps/transactions/models.py:591 +#: apps/transactions/models.py:517 +msgid "A transfer needs one expense and one income." +msgstr "" + +#: apps/transactions/models.py:519 +msgid "A transfer needs two different accounts." +msgstr "" + +#: apps/transactions/models.py:523 +msgid "This transaction is already part of another transfer." +msgstr "" + +#: apps/transactions/models.py:615 msgid "No category" msgstr "Нет категории" -#: apps/transactions/models.py:593 +#: apps/transactions/models.py:617 msgid "No description" msgstr "Нет описания" -#: apps/transactions/models.py:650 +#: apps/transactions/models.py:674 #, fuzzy #| msgid "ZIP File" msgid "File" msgstr "ZIP File" -#: apps/transactions/models.py:652 +#: apps/transactions/models.py:676 msgid "Original Name" msgstr "" -#: apps/transactions/models.py:654 +#: apps/transactions/models.py:678 #, fuzzy #| msgid "Interval Type" msgid "Content Type" msgstr "Тип интервала" -#: apps/transactions/models.py:656 +#: apps/transactions/models.py:680 msgid "Size" msgstr "" -#: apps/transactions/models.py:661 +#: apps/transactions/models.py:685 msgid "Uploaded By" msgstr "" -#: apps/transactions/models.py:666 +#: apps/transactions/models.py:690 #, fuzzy #| msgid "Transaction rule" msgid "Transaction Attachment" msgstr "Правило транзакции" -#: apps/transactions/models.py:667 +#: apps/transactions/models.py:691 #, fuzzy #| msgid "Transaction Tags" msgid "Transaction Attachments" msgstr "Теги транзакций" -#: apps/transactions/models.py:697 templates/includes/sidebar.html:57 +#: apps/transactions/models.py:721 templates/includes/sidebar.html:57 msgid "Yearly" msgstr "Ежегодно" -#: apps/transactions/models.py:698 apps/users/models.py:469 +#: apps/transactions/models.py:722 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "Ежемесячно" -#: apps/transactions/models.py:699 +#: apps/transactions/models.py:723 msgid "Weekly" msgstr "Еженедельно" -#: apps/transactions/models.py:700 +#: apps/transactions/models.py:724 msgid "Daily" msgstr "Ежедневно" -#: apps/transactions/models.py:713 +#: apps/transactions/models.py:737 msgid "Number of Installments" msgstr "Количество платежей" -#: apps/transactions/models.py:718 +#: apps/transactions/models.py:742 msgid "Installment Start" msgstr "Начало выплаты рассрочки" -#: apps/transactions/models.py:719 +#: apps/transactions/models.py:743 msgid "The installment number to start counting from" msgstr "Номер платежа, с которого начинается отсчет" -#: apps/transactions/models.py:724 apps/transactions/models.py:1015 +#: apps/transactions/models.py:748 apps/transactions/models.py:1039 msgid "Start Date" msgstr "Дата начала" -#: apps/transactions/models.py:728 apps/transactions/models.py:1016 +#: apps/transactions/models.py:752 apps/transactions/models.py:1040 msgid "End Date" msgstr "Дата окончания" -#: apps/transactions/models.py:733 +#: apps/transactions/models.py:757 msgid "Recurrence" msgstr "" -#: apps/transactions/models.py:736 +#: apps/transactions/models.py:760 msgid "Installment Amount" msgstr "Сумма рассрочки" -#: apps/transactions/models.py:755 apps/transactions/models.py:1035 +#: apps/transactions/models.py:779 apps/transactions/models.py:1059 msgid "Add description to transactions" msgstr "Добавить описание к транзакциям" -#: apps/transactions/models.py:758 apps/transactions/models.py:1038 +#: apps/transactions/models.py:782 apps/transactions/models.py:1062 msgid "Add notes to transactions" msgstr "Добавить примечания к транзакциям" -#: apps/transactions/models.py:932 +#: apps/transactions/models.py:956 #, fuzzy #| msgid "Show amounts" msgid "To amount" msgstr "Показать суммы" -#: apps/transactions/models.py:933 +#: apps/transactions/models.py:957 msgid "Leave empty to use the same amount" msgstr "" -#: apps/transactions/models.py:974 templates/mini_tools/simulator.html:129 +#: apps/transactions/models.py:998 templates/mini_tools/simulator.html:129 msgid "day(s)" msgstr "день" -#: apps/transactions/models.py:975 templates/mini_tools/simulator.html:130 +#: apps/transactions/models.py:999 templates/mini_tools/simulator.html:130 msgid "week(s)" msgstr "неделя" -#: apps/transactions/models.py:976 templates/mini_tools/simulator.html:131 +#: apps/transactions/models.py:1000 templates/mini_tools/simulator.html:131 msgid "month(s)" msgstr "месяц" -#: apps/transactions/models.py:977 templates/mini_tools/simulator.html:132 +#: apps/transactions/models.py:1001 templates/mini_tools/simulator.html:132 msgid "year(s)" msgstr "год" -#: apps/transactions/models.py:979 +#: apps/transactions/models.py:1003 #: templates/recurring_transactions/fragments/list.html:18 msgid "Paused" msgstr "Приостановлено" -#: apps/transactions/models.py:1018 +#: apps/transactions/models.py:1042 msgid "Recurrence Type" msgstr "" -#: apps/transactions/models.py:1021 +#: apps/transactions/models.py:1045 msgid "Recurrence Interval" msgstr "" -#: apps/transactions/models.py:1024 +#: apps/transactions/models.py:1048 msgid "Keep at most" msgstr "Хранить максимум" -#: apps/transactions/models.py:1028 +#: apps/transactions/models.py:1052 msgid "Last Generated Date" msgstr "" -#: apps/transactions/models.py:1031 +#: apps/transactions/models.py:1055 msgid "Last Generated Reference Date" msgstr "" -#: apps/transactions/models.py:1334 templates/cotton/transaction/item.html:274 +#: apps/transactions/models.py:1358 templates/cotton/transaction/item.html:274 #: templates/cotton/ui/transactions_fab.html:59 msgid "Quick Transaction" msgstr "Быстрая сделка" -#: apps/transactions/models.py:1335 templates/includes/sidebar.html:98 +#: apps/transactions/models.py:1359 templates/includes/sidebar.html:98 #: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:15 msgid "Quick Transactions" @@ -1934,8 +2092,8 @@ msgid "Item deleted successfully" msgstr "Элемент успешно удален" #: apps/transactions/views/quick_transactions.py:164 -#: apps/transactions/views/transactions.py:147 -#: apps/transactions/views/transactions.py:332 +#: apps/transactions/views/transactions.py:156 +#: apps/transactions/views/transactions.py:343 msgid "Transaction added successfully" msgstr "Транзакция успешно добавлена" @@ -1983,34 +2141,34 @@ msgstr "Счет успешно обновлен" msgid "Attachment deleted successfully" msgstr "Счет успешно удален" -#: apps/transactions/views/transactions.py:359 +#: apps/transactions/views/transactions.py:370 msgid "Transaction updated successfully" msgstr "Транзакция успешно обновлена" -#: apps/transactions/views/transactions.py:410 +#: apps/transactions/views/transactions.py:421 #, python-format msgid "%(count)s transaction updated successfully" msgid_plural "%(count)s transactions updated successfully" msgstr[0] "" msgstr[1] "" -#: apps/transactions/views/transactions.py:437 +#: apps/transactions/views/transactions.py:448 msgid "Transaction duplicated successfully" msgstr "Транзакция успешно продублирована" -#: apps/transactions/views/transactions.py:482 +#: apps/transactions/views/transactions.py:493 msgid "Transaction deleted successfully" msgstr "Транзакция успешно удалена" -#: apps/transactions/views/transactions.py:512 +#: apps/transactions/views/transactions.py:523 msgid "Transaction restored successfully" msgstr "Транзакция успешно восстановлена" -#: apps/transactions/views/transactions.py:538 +#: apps/transactions/views/transactions.py:549 msgid "Transfer added successfully" msgstr "Перевод успешно добавлен" -#: apps/transactions/views/transactions.py:566 +#: apps/transactions/views/transactions.py:579 #, fuzzy #| msgid "Transfer added successfully" msgid "Transfer updated successfully" @@ -2341,6 +2499,7 @@ msgstr "Редактировать группу учетных записей" #: templates/exchange_rates_services/fragments/table.html:20 #: templates/import_app/fragments/profiles/list.html:42 #: templates/installment_plans/fragments/table.html:25 +#: templates/investment_classes/fragments/list.html:36 #: templates/quick_transactions/fragments/list.html:22 #: templates/recurring_transactions/fragments/table.html:27 #: templates/rules/fragments/list.html:31 @@ -2363,6 +2522,9 @@ msgstr "" #: templates/exchange_rates_services/fragments/table.html:23 #: templates/import_app/fragments/profiles/list.html:46 #: templates/installment_plans/fragments/table.html:28 +#: templates/investment_classes/fragments/list.html:39 +#: templates/investments/fragments/detail.html:305 +#: templates/investments/fragments/detail.html:331 #: templates/quick_transactions/fragments/list.html:25 #: templates/recurring_transactions/fragments/table.html:30 #: templates/rules/fragments/transaction_rule/view.html:22 @@ -2412,6 +2574,7 @@ msgstr "Поделиться" #: templates/import_app/fragments/profiles/list.html:81 #: templates/import_app/fragments/runs/list.html:100 #: templates/installment_plans/fragments/table.html:54 +#: templates/investment_classes/fragments/list.html:45 #: templates/mini_tools/simulator.html:109 #: templates/mini_tools/unit_price_calculator.html:16 #: templates/quick_transactions/fragments/list.html:32 @@ -2445,6 +2608,7 @@ msgstr "Удалить" #: templates/import_app/fragments/runs/list.html:104 #: templates/installment_plans/fragments/table.html:47 #: templates/installment_plans/fragments/table.html:58 +#: templates/investment_classes/fragments/list.html:49 #: templates/quick_transactions/fragments/list.html:37 #: templates/recurring_transactions/fragments/table.html:52 #: templates/recurring_transactions/fragments/table.html:65 @@ -2494,6 +2658,7 @@ msgstr "Вы не сможете отменить это!" #: templates/import_app/fragments/profiles/list.html:87 #: templates/import_app/fragments/runs/list.html:106 #: templates/installment_plans/fragments/table.html:60 +#: templates/investment_classes/fragments/list.html:51 #: templates/quick_transactions/fragments/list.html:39 #: templates/recurring_transactions/fragments/table.html:94 #: templates/rules/fragments/list.html:62 @@ -2542,6 +2707,7 @@ msgid "Add account" msgstr "Добавить счёт" #: templates/accounts/fragments/edit.html:5 +#: templates/investments/fragments/detail.html:40 msgid "Edit account" msgstr "" @@ -2843,6 +3009,8 @@ msgid "Add DCA strategy" msgstr "" #: templates/dca/fragments/strategy/details.html:28 +#: templates/investments/fragments/detail.html:92 +#: templates/investments/fragments/list.html:65 msgid "No exchange rate available" msgstr "Курс обмена недоступен" @@ -3024,7 +3192,7 @@ msgstr "" msgid "No services configured" msgstr "Службы не настроены" -#: templates/export_app/pages/index.html:4 templates/includes/sidebar.html:211 +#: templates/export_app/pages/index.html:4 templates/includes/sidebar.html:225 msgid "Export and Restore" msgstr "Экспорт и восстановление" @@ -3195,54 +3363,65 @@ msgstr "" msgid "Tools" msgstr "Инструменты" -#: templates/includes/sidebar.html:118 +#: templates/includes/sidebar.html:118 templates/includes/sidebar.html:188 +#: templates/investment_classes/fragments/list.html:29 +#: templates/investments/fragments/detail.html:37 +#: templates/investments/fragments/list.html:9 +#: templates/investments/pages/detail.html:4 +#: templates/investments/pages/index.html:4 +#, fuzzy +#| msgid "Installments" +msgid "Investments" +msgstr "Рассрочки" + +#: templates/includes/sidebar.html:124 msgid "Dollar Cost Average Tracker" msgstr "Трекер средней стоимости доллара" -#: templates/includes/sidebar.html:124 +#: templates/includes/sidebar.html:130 #: templates/mini_tools/unit_price_calculator.html:4 #: templates/mini_tools/unit_price_calculator.html:9 msgid "Unit Price Calculator" msgstr "Калькулятор цены за единицу" -#: templates/includes/sidebar.html:130 +#: templates/includes/sidebar.html:136 #: templates/mini_tools/currency_converter/currency_converter.html:7 #: templates/mini_tools/currency_converter/currency_converter.html:14 msgid "Currency Converter" msgstr "Конвертер валют" -#: templates/includes/sidebar.html:136 templates/mini_tools/simulator.html:5 +#: templates/includes/sidebar.html:142 templates/mini_tools/simulator.html:5 #: templates/mini_tools/simulator.html:21 #, fuzzy #| msgid "Calculator" msgid "Simulator" msgstr "Калькулятор" -#: templates/includes/sidebar.html:145 +#: templates/includes/sidebar.html:151 msgid "Management" msgstr "Управление" -#: templates/includes/sidebar.html:196 +#: templates/includes/sidebar.html:210 msgid "Automation" msgstr "" -#: templates/includes/sidebar.html:225 +#: templates/includes/sidebar.html:239 msgid "Admin" msgstr "Администратор" -#: templates/includes/sidebar.html:233 +#: templates/includes/sidebar.html:247 msgid "Django Admin" msgstr "Администратор Django" -#: templates/includes/sidebar.html:234 +#: templates/includes/sidebar.html:248 msgid "Only use this if you know what you're doing" msgstr "" -#: templates/includes/sidebar.html:249 +#: templates/includes/sidebar.html:263 msgid "is available" msgstr "" -#: templates/includes/sidebar.html:257 +#: templates/includes/sidebar.html:271 msgid "Calculator" msgstr "Калькулятор" @@ -3309,6 +3488,7 @@ msgstr "Нет недавних транзакций" #: templates/insights/fragments/overview/_results.html:173 #: templates/insights/fragments/year_by_year.html:59 #: templates/insights/fragments/year_by_year.html:140 +#: templates/investment_classes/fragments/list.html:65 #: templates/monthly_overview/fragments/monthly_summary.html:168 msgid "Total" msgstr "Итог" @@ -3506,6 +3686,295 @@ msgstr "" msgid "No installment plans" msgstr "" +#: templates/investment_classes/fragments/form.html:5 +msgid "Edit asset class" +msgstr "" + +#: templates/investment_classes/fragments/form.html:5 +msgid "Add asset class" +msgstr "" + +#: templates/investment_classes/fragments/list.html:19 +#: templates/investments/fragments/rebalance.html:10 +#, python-format +msgid "Targets add up to %(total)s%%. Set them to 100%% to see the rebalance." +msgstr "" + +#: templates/investment_classes/fragments/list.html:28 +#: templates/investments/fragments/rebalance.html:25 +msgid "Target" +msgstr "" + +#: templates/investment_classes/fragments/list.html:50 +msgid "Its investments will be left without an asset class." +msgstr "" + +#: templates/investment_classes/fragments/list.html:74 +msgid "No asset classes" +msgstr "" + +#: templates/investments/fragments/_allocation.html:3 +msgid "Allocation chart" +msgstr "" + +#: templates/investments/fragments/_allocation.html:11 +#, python-format +msgid "" +"%(share)s%% of your investments with a target, against a target of " +"%(target)s%%" +msgstr "" + +#: templates/investments/fragments/_mwr.html:1 +msgid "Annual return, weighted by when money went in and out" +msgstr "" + +#: templates/investments/fragments/_mwr.html:1 +msgid "" +"Return since the first contribution, weighted by when money went in and out" +msgstr "" + +#: templates/investments/fragments/_mwr.html:1 +msgid "/yr" +msgstr "" + +#: templates/investments/fragments/_totals.html:15 +#: templates/investments/fragments/detail.html:63 +msgid "total return" +msgstr "" + +#: templates/investments/fragments/_totals.html:20 +#: templates/investments/fragments/_totals.html:41 +#: templates/investments/fragments/charts.html:96 +#: templates/investments/fragments/detail.html:163 +#: templates/investments/fragments/detail.html:223 +#: templates/investments/fragments/list.html:47 +#, fuzzy +#| msgid "Total Invested" +msgid "Invested" +msgstr "Общий объем инвестиций" + +#: templates/investments/fragments/_totals.html:24 +#: templates/investments/fragments/detail.html:74 +msgid "" +"How much of the return came from exchange rates moving since you invested" +msgstr "" + +#: templates/investments/fragments/_totals.html:24 +#: templates/investments/fragments/_totals.html:26 +#, fuzzy +#| msgid "Currency Code" +msgid "Currency effect" +msgstr "Код валюты" + +#: templates/investments/fragments/_totals.html:26 +#: templates/investments/fragments/detail.html:78 +msgid "" +"Every date is converted with the same rate. Add historical exchange rates " +"(or an automatic rate service) to see how much exchange rates moved your " +"return." +msgstr "" + +#: templates/investments/fragments/_totals.html:40 +#: templates/investments/fragments/list.html:49 +msgid "Return" +msgstr "" + +#: templates/investments/fragments/charts.html:10 +msgid "By asset class" +msgstr "" + +#: templates/investments/fragments/charts.html:17 +#: templates/net_worth/net_worth.html:52 +#: templates/yearly_overview/pages/overview_by_currency.html:6 +msgid "By currency" +msgstr "По валюте" + +#: templates/investments/fragments/charts.html:24 +#, fuzzy +#| msgid "Total Invested" +msgid "Value and invested" +msgstr "Общий объем инвестиций" + +#: templates/investments/fragments/charts.html:31 +msgid "Return by investment" +msgstr "" + +#: templates/investments/fragments/charts.html:38 +msgid "Nothing to chart yet" +msgstr "" + +#: templates/investments/fragments/detail.html:10 +msgid "Buy / Contribute" +msgstr "" + +#: templates/investments/fragments/detail.html:16 +msgid "Sell / Withdraw" +msgstr "" + +#: templates/investments/fragments/detail.html:23 +msgid "Dividend / Income" +msgstr "" + +#: templates/investments/fragments/detail.html:30 +#, fuzzy +#| msgid "Update" +msgid "Update value" +msgstr "Обновить" + +#: templates/investments/fragments/detail.html:47 +#: templates/investments/fragments/list.html:67 +msgid "Tracked by value" +msgstr "" + +#: templates/investments/fragments/detail.html:48 +msgid "" +"Some incoming units have no linked payment, so their cost was estimated from " +"the market price of that day" +msgstr "" + +#: templates/investments/fragments/detail.html:68 +#, fuzzy +#| msgid "Info" +msgid "In" +msgstr "Информация" + +#: templates/investments/fragments/detail.html:74 +#: templates/investments/fragments/detail.html:78 +#, fuzzy +#| msgid "Currency Code" +msgid "currency effect" +msgstr "Код валюты" + +#: templates/investments/fragments/detail.html:104 +#: templates/investments/fragments/detail.html:179 +msgid "Price" +msgstr "" + +#: templates/investments/fragments/detail.html:105 +#: templates/investments/fragments/detail.html:200 +#: templates/investments/fragments/detail.html:239 +#: templates/investments/fragments/detail.html:290 +#, fuzzy +#| msgid "Warning" +msgid "Earnings" +msgstr "Предупреждение" + +#: templates/investments/fragments/detail.html:180 +#: templates/investments/fragments/detail.html:227 +msgid "Average cost" +msgstr "" + +#: templates/investments/fragments/detail.html:181 +#: templates/investments/fragments/rebalance.html:41 +msgid "Buy" +msgstr "" + +#: templates/investments/fragments/detail.html:182 +#: templates/investments/fragments/rebalance.html:43 +msgid "Sell" +msgstr "" + +#: templates/investments/fragments/detail.html:227 +#: templates/investments/fragments/detail.html:257 +msgid "Put in / taken out" +msgstr "" + +#: templates/investments/fragments/detail.html:239 +#, fuzzy +#| msgid "Uncategorized" +msgid "Unrealized" +msgstr "Без категории" + +#: templates/investments/fragments/detail.html:248 +msgid "Realized" +msgstr "" + +#: templates/investments/fragments/detail.html:271 +#, fuzzy +#| msgid "Management" +msgid "Movements" +msgstr "Управление" + +#: templates/investments/fragments/detail.html:284 +msgid "Bought / contributed" +msgstr "" + +#: templates/investments/fragments/detail.html:284 +msgid "Sold / withdrew" +msgstr "" + +#: templates/investments/fragments/detail.html:288 +msgid "Money in" +msgstr "" + +#: templates/investments/fragments/detail.html:288 +msgid "Money out" +msgstr "" + +#: templates/investments/fragments/detail.html:290 +msgid "Gain" +msgstr "" + +#: templates/investments/fragments/detail.html:290 +msgid "Loss, tax or fee" +msgstr "" + +#: templates/investments/fragments/detail.html:315 +msgid "No movements yet" +msgstr "" + +#: templates/investments/fragments/detail.html:315 +msgid "Use the + button to buy or contribute" +msgstr "" + +#: templates/investments/fragments/list.html:21 +msgid "Holdings" +msgstr "" + +#: templates/investments/fragments/list.html:60 +msgid "Some costs were estimated from market prices" +msgstr "" + +#: templates/investments/fragments/list.html:92 +msgid "Charts" +msgstr "" + +#: templates/investments/fragments/list.html:97 +#, fuzzy +#| msgid "New balance" +msgid "Rebalance" +msgstr "Новый баланс" + +#: templates/investments/fragments/list.html:105 +#, fuzzy +#| msgid "Number of Installments" +msgid "No investments yet" +msgstr "Количество платежей" + +#: templates/investments/fragments/list.html:106 +msgid "Mark an account as an investment in its settings to see it here" +msgstr "" + +#: templates/investments/fragments/rebalance.html:4 +msgid "No allocation targets" +msgstr "" + +#: templates/investments/fragments/rebalance.html:5 +msgid "Set a target for your asset classes to see what to buy and sell" +msgstr "" + +#: templates/investments/fragments/rebalance.html:26 +msgid "To reach the target" +msgstr "" + +#: templates/investments/fragments/rebalance.html:34 +msgid "Off target" +msgstr "" + +#: templates/investments/fragments/rebalance.html:55 +msgid "Left out: investments without an asset class or a target" +msgstr "" + #: templates/layouts/base.html:38 msgid "This is a demo!" msgstr "Это демо-версия!" @@ -3723,11 +4192,6 @@ msgstr "Фильтр транзакций" msgid "Order by" msgstr "Сортировать по" -#: templates/net_worth/net_worth.html:52 -#: templates/yearly_overview/pages/overview_by_currency.html:6 -msgid "By currency" -msgstr "По валюте" - #: templates/net_worth/net_worth.html:135 msgid "Evolution" msgstr "" @@ -4194,6 +4658,12 @@ msgstr "Войти с помощью" msgid "Yearly Overview" msgstr "Годовой обзор" +#~ msgid "" +#~ "Create one exchange rate and keep updating it. Avoids database clutter." +#~ msgstr "" +#~ "Создайте один обменный курс и постоянно обновляйте его. Это позволит " +#~ "избежать захламления базы данных." + #~ msgid "Add as quick transaction" #~ msgstr "Добавить как быструю транзакцию" diff --git a/app/locale/sv/LC_MESSAGES/django.po b/app/locale/sv/LC_MESSAGES/django.po index a0dfefaa..97346144 100644 --- a/app/locale/sv/LC_MESSAGES/django.po +++ b/app/locale/sv/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-11-08 13:19+0000\n" +"POT-Creation-Date: 2026-11-08 18:27+0000\n" "PO-Revision-Date: 2025-04-14 06:16+0000\n" "Last-Translator: Emil \n" "Language-Team: Swedish \n" "Language-Team: Swahili \n" "Language-Team: Ukrainian =20) ? 1 : 2;\n" "X-Generator: Weblate 5.14\n" -#: apps/accounts/forms.py:28 +#: apps/accounts/forms.py:33 msgid "Group name" msgstr "Назва групи" -#: apps/accounts/forms.py:43 apps/accounts/forms.py:109 -#: apps/currencies/forms.py:57 apps/currencies/forms.py:91 -#: apps/currencies/forms.py:166 apps/dca/forms.py:46 apps/dca/forms.py:192 -#: apps/import_app/forms.py:32 apps/rules/forms.py:60 apps/rules/forms.py:100 -#: apps/rules/forms.py:385 apps/transactions/forms.py:219 -#: apps/transactions/forms.py:452 apps/transactions/forms.py:571 -#: apps/transactions/forms.py:718 apps/transactions/forms.py:940 -#: apps/transactions/forms.py:987 apps/transactions/forms.py:1015 -#: apps/transactions/forms.py:1046 apps/transactions/forms.py:1208 -#: apps/users/forms.py:264 apps/users/forms.py:422 +#: apps/accounts/forms.py:48 apps/accounts/forms.py:76 +#: apps/accounts/forms.py:184 apps/currencies/forms.py:57 +#: apps/currencies/forms.py:91 apps/currencies/forms.py:168 +#: apps/dca/forms.py:46 apps/dca/forms.py:192 apps/import_app/forms.py:32 +#: apps/rules/forms.py:60 apps/rules/forms.py:100 apps/rules/forms.py:385 +#: apps/transactions/forms.py:219 apps/transactions/forms.py:452 +#: apps/transactions/forms.py:571 apps/transactions/forms.py:718 +#: apps/transactions/forms.py:940 apps/transactions/forms.py:987 +#: apps/transactions/forms.py:1015 apps/transactions/forms.py:1046 +#: apps/transactions/forms.py:1208 apps/users/forms.py:264 +#: apps/users/forms.py:422 #: templates/rules/fragments/transaction_rule/dry_run/updated.html:5 #: templates/rules/fragments/transaction_rule/view.html:128 msgid "Update" msgstr "Оновлення" -#: apps/accounts/forms.py:49 apps/accounts/forms.py:115 -#: apps/common/widgets/tom_select.py:15 apps/currencies/forms.py:63 -#: apps/currencies/forms.py:97 apps/currencies/forms.py:172 -#: apps/dca/forms.py:52 apps/dca/forms.py:198 apps/import_app/forms.py:38 -#: apps/rules/forms.py:66 apps/rules/forms.py:106 apps/rules/forms.py:391 -#: apps/transactions/forms.py:206 apps/transactions/forms.py:226 -#: apps/transactions/forms.py:459 apps/transactions/forms.py:946 -#: apps/transactions/forms.py:993 apps/transactions/forms.py:1021 -#: apps/transactions/forms.py:1052 apps/transactions/forms.py:1214 -#: apps/users/forms.py:270 apps/users/forms.py:428 -#: templates/mini_tools/simulator.html:177 +#: apps/accounts/forms.py:54 apps/accounts/forms.py:76 +#: apps/accounts/forms.py:190 apps/common/widgets/tom_select.py:15 +#: apps/currencies/forms.py:63 apps/currencies/forms.py:97 +#: apps/currencies/forms.py:174 apps/dca/forms.py:52 apps/dca/forms.py:198 +#: apps/import_app/forms.py:38 apps/rules/forms.py:66 apps/rules/forms.py:106 +#: apps/rules/forms.py:391 apps/transactions/forms.py:206 +#: apps/transactions/forms.py:226 apps/transactions/forms.py:459 +#: apps/transactions/forms.py:946 apps/transactions/forms.py:993 +#: apps/transactions/forms.py:1021 apps/transactions/forms.py:1052 +#: apps/transactions/forms.py:1214 apps/users/forms.py:270 +#: apps/users/forms.py:428 templates/mini_tools/simulator.html:177 #: templates/mini_tools/unit_price_calculator.html:168 msgid "Add" msgstr "Додати" -#: apps/accounts/forms.py:57 templates/accounts/fragments/list.html:23 +#: apps/accounts/forms.py:86 templates/accounts/fragments/list.html:23 msgid "Group" msgstr "Група" -#: apps/accounts/forms.py:123 +#: apps/accounts/forms.py:93 apps/accounts/models.py:73 +#: apps/accounts/models.py:130 +#: templates/investments/fragments/rebalance.html:22 +msgid "Asset class" +msgstr "" + +#: apps/accounts/forms.py:198 msgid "New balance" msgstr "Новий баланс" -#: apps/accounts/forms.py:129 apps/dca/forms.py:79 apps/dca/forms.py:86 +#: apps/accounts/forms.py:204 apps/dca/forms.py:79 apps/dca/forms.py:86 #: apps/insights/forms.py:117 apps/insights/views.py:44 apps/rules/forms.py:181 #: apps/rules/forms.py:197 apps/rules/models.py:44 apps/rules/models.py:311 #: apps/transactions/forms.py:62 apps/transactions/forms.py:330 #: apps/transactions/forms.py:510 apps/transactions/forms.py:607 #: apps/transactions/forms.py:614 apps/transactions/forms.py:823 #: apps/transactions/forms.py:1075 apps/transactions/models.py:357 -#: apps/transactions/models.py:743 apps/transactions/models.py:999 -#: apps/transactions/models.py:1306 +#: apps/transactions/models.py:767 apps/transactions/models.py:1023 +#: apps/transactions/models.py:1330 #: templates/insights/fragments/month_by_month.html:84 #: templates/insights/fragments/year_by_year.html:52 msgid "Category" msgstr "Категорія" -#: apps/accounts/forms.py:136 apps/dca/forms.py:95 apps/dca/forms.py:103 -#: apps/export_app/forms.py:43 apps/export_app/forms.py:132 +#: apps/accounts/forms.py:211 apps/dca/forms.py:95 apps/dca/forms.py:103 +#: apps/export_app/forms.py:43 apps/export_app/forms.py:134 #: apps/insights/views.py:50 apps/rules/forms.py:184 apps/rules/forms.py:194 #: apps/rules/models.py:45 apps/rules/models.py:315 #: apps/transactions/filters.py:79 apps/transactions/forms.py:70 #: apps/transactions/forms.py:338 apps/transactions/forms.py:518 #: apps/transactions/forms.py:623 apps/transactions/forms.py:631 #: apps/transactions/forms.py:816 apps/transactions/forms.py:1068 -#: apps/transactions/models.py:363 apps/transactions/models.py:745 -#: apps/transactions/models.py:1003 apps/transactions/models.py:1312 -#: templates/includes/sidebar.html:156 +#: apps/transactions/models.py:363 apps/transactions/models.py:769 +#: apps/transactions/models.py:1027 apps/transactions/models.py:1336 +#: templates/includes/sidebar.html:162 #: templates/insights/fragments/month_by_month.html:29 #: templates/insights/fragments/month_by_month.html:32 #: templates/insights/fragments/year_by_year.html:24 @@ -95,27 +102,27 @@ msgstr "Категорія" msgid "Tags" msgstr "Мітки" -#: apps/accounts/forms.py:179 +#: apps/accounts/forms.py:254 #, fuzzy #| msgid "Transactions" msgid "All paid transactions" msgstr "Транзакції" -#: apps/accounts/forms.py:180 +#: apps/accounts/forms.py:255 #, fuzzy #| msgid "Update" msgid "Up to date" msgstr "Оновлення" -#: apps/accounts/forms.py:181 +#: apps/accounts/forms.py:256 msgid "Up to reference month" msgstr "" -#: apps/accounts/forms.py:185 +#: apps/accounts/forms.py:260 msgid "Balance against" msgstr "" -#: apps/accounts/forms.py:189 apps/currencies/forms.py:70 +#: apps/accounts/forms.py:264 apps/currencies/forms.py:70 #: apps/dca/models.py:158 apps/rules/forms.py:176 apps/rules/forms.py:190 #: apps/rules/models.py:38 apps/rules/models.py:279 #: apps/transactions/forms.py:86 apps/transactions/forms.py:482 @@ -126,14 +133,15 @@ msgstr "" msgid "Date" msgstr "Дата" -#: apps/accounts/forms.py:194 +#: apps/accounts/forms.py:269 msgid "Reference month" msgstr "" -#: apps/accounts/models.py:12 apps/accounts/models.py:29 apps/dca/models.py:13 +#: apps/accounts/models.py:19 apps/accounts/models.py:36 +#: apps/accounts/models.py:84 apps/dca/models.py:13 #: apps/import_app/models.py:20 apps/rules/models.py:13 #: apps/transactions/models.py:249 apps/transactions/models.py:274 -#: apps/transactions/models.py:298 apps/transactions/models.py:1274 +#: apps/transactions/models.py:298 apps/transactions/models.py:1298 #: apps/users/models.py:577 templates/account_groups/fragments/list.html:22 #: templates/accounts/fragments/list.html:22 #: templates/categories/fragments/table.html:17 @@ -142,6 +150,7 @@ msgstr "" #: templates/exchange_rates_services/fragments/list.html:28 #: templates/import_app/fragments/profiles/list.html:34 #: templates/installment_plans/fragments/table.html:16 +#: templates/investment_classes/fragments/list.html:27 #: templates/quick_transactions/fragments/list.html:13 #: templates/recurring_transactions/fragments/table.html:18 #: templates/rules/fragments/list.html:24 @@ -150,44 +159,127 @@ msgstr "" msgid "Name" msgstr "Ім'я" -#: apps/accounts/models.py:18 apps/accounts/models.py:33 +#: apps/accounts/models.py:25 apps/accounts/models.py:88 msgid "Account Group" msgstr "Група рахунків" -#: apps/accounts/models.py:19 templates/account_groups/fragments/list.html:9 +#: apps/accounts/models.py:26 templates/account_groups/fragments/list.html:9 #: templates/account_groups/pages/index.html:4 -#: templates/includes/sidebar.html:176 +#: templates/includes/sidebar.html:182 msgid "Account Groups" msgstr "Групи рахунків" -#: apps/accounts/models.py:39 apps/currencies/models.py:44 +#: apps/accounts/models.py:43 +msgid "Target allocation (%)" +msgstr "" + +#: apps/accounts/models.py:45 +msgid "" +"Share of your investments you want in this class. Leave it empty to leave " +"the class out of the targets." +msgstr "" + +#: apps/accounts/models.py:61 +msgid "You already have an asset class with this name." +msgstr "" + +#: apps/accounts/models.py:66 +#, python-format +msgid "" +"Targets can't add up to more than 100%%. Other classes already take " +"%(taken)s%%." +msgstr "" + +#: apps/accounts/models.py:74 apps/export_app/forms.py:131 +#: templates/includes/sidebar.html:190 +#: templates/investment_classes/fragments/list.html:9 +#: templates/investment_classes/pages/index.html:4 +#: templates/investments/fragments/rebalance.html:6 +#: templates/investments/fragments/rebalance.html:11 +msgid "Asset classes" +msgstr "" + +#: apps/accounts/models.py:94 apps/currencies/models.py:44 #: templates/accounts/fragments/list.html:24 #: templates/mini_tools/simulator.html:37 #: templates/yearly_overview/pages/yearly_overview_base.html:19 msgid "Currency" msgstr "Валюта" -#: apps/accounts/models.py:45 apps/currencies/models.py:27 +#: apps/accounts/models.py:100 apps/currencies/models.py:27 #: templates/accounts/fragments/list.html:25 msgid "Exchange Currency" msgstr "Валюта обміну" -#: apps/accounts/models.py:50 apps/currencies/models.py:32 +#: apps/accounts/models.py:105 apps/currencies/models.py:32 msgid "Default currency for exchange calculations" msgstr "Валюта за замовчуванням для обмінних розрахунків" -#: apps/accounts/models.py:55 +#: apps/accounts/models.py:110 #, fuzzy msgid "Asset account" msgstr "Рахунок активу" -#: apps/accounts/models.py:57 +#: apps/accounts/models.py:112 msgid "" "Asset accounts count towards your Net Worth, but not towards your month." msgstr "" "Рахунки активів враховуються у вашій чистій вартості, але не у вашому місяці." -#: apps/accounts/models.py:62 apps/currencies/models.py:37 +#: apps/accounts/models.py:117 templates/investments/fragments/list.html:46 +msgid "Investment" +msgstr "" + +#: apps/accounts/models.py:119 +msgid "" +"Show this account in the Investments tracker. Set an exchange currency to " +"price it by units (stocks, ETFs, crypto); leave it empty to track it by " +"value (fixed income, property, pensions)." +msgstr "" + +#: apps/accounts/models.py:132 +msgid "" +"Groups investments in the allocation charts, e.g. Fixed income, Stocks, Real " +"estate." +msgstr "" + +#: apps/accounts/models.py:140 +#, fuzzy +#| msgid "Income Transaction" +msgid "Income entities" +msgstr "Дохідна транзакція" + +#: apps/accounts/models.py:142 +msgid "" +"Transactions with any of these entities count towards this investment's " +"return: in this account, and income paid into other accounts (dividends, " +"rent)." +msgstr "" + +#: apps/accounts/models.py:151 +#, fuzzy +#| msgid "Categories" +msgid "Income categories" +msgstr "Категорії" + +#: apps/accounts/models.py:153 +msgid "" +"Transactions in this account with any of these categories are its result " +"(interest, taxes, fees). On accounts tracked by value, everything else that " +"isn't a transfer counts as money coming in or going out." +msgstr "" + +#: apps/accounts/models.py:162 +#, fuzzy +#| msgid "Income Transaction" +msgid "Income tags" +msgstr "Дохідна транзакція" + +#: apps/accounts/models.py:164 +msgid "Same as income categories, for transactions with any of these tags." +msgstr "" + +#: apps/accounts/models.py:169 apps/currencies/models.py:37 #: templates/accounts/fragments/list.html:27 #: templates/categories/fragments/list.html:20 #: templates/currencies/fragments/list.html:24 @@ -196,19 +288,19 @@ msgstr "" msgid "Archived" msgstr "Архівовано" -#: apps/accounts/models.py:63 +#: apps/accounts/models.py:170 msgid "Archived accounts don't show up nor count towards your net worth" msgstr "" "Заархівовані рахунки не відображаються і не враховуються у вашій чистій " "вартості" -#: apps/accounts/models.py:75 apps/rules/forms.py:173 apps/rules/forms.py:187 +#: apps/accounts/models.py:182 apps/rules/forms.py:173 apps/rules/forms.py:187 #: apps/rules/models.py:35 apps/rules/models.py:267 #: apps/transactions/forms.py:82 apps/transactions/forms.py:350 #: apps/transactions/forms.py:477 apps/transactions/forms.py:808 #: apps/transactions/forms.py:1060 apps/transactions/models.py:329 -#: apps/transactions/models.py:703 apps/transactions/models.py:981 -#: apps/transactions/models.py:1280 +#: apps/transactions/models.py:727 apps/transactions/models.py:1005 +#: apps/transactions/models.py:1304 #: templates/installment_plans/fragments/table.html:17 #: templates/quick_transactions/fragments/list.html:14 #: templates/recurring_transactions/fragments/table.html:19 @@ -216,17 +308,17 @@ msgstr "" msgid "Account" msgstr "Рахунок" -#: apps/accounts/models.py:76 apps/export_app/forms.py:19 -#: apps/export_app/forms.py:129 apps/transactions/filters.py:63 +#: apps/accounts/models.py:183 apps/export_app/forms.py:19 +#: apps/export_app/forms.py:130 apps/transactions/filters.py:63 #: templates/accounts/fragments/list.html:9 -#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:168 -#: templates/includes/sidebar.html:170 +#: templates/accounts/pages/index.html:4 templates/includes/sidebar.html:174 +#: templates/includes/sidebar.html:176 #: templates/monthly_overview/pages/overview.html:77 #: templates/transactions/pages/transactions.html:26 msgid "Accounts" msgstr "Рахунки" -#: apps/accounts/models.py:93 +#: apps/accounts/models.py:200 msgid "Exchange currency cannot be the same as the account's main currency." msgstr "Валюта обміну не може збігатися з основною валютою рахунку." @@ -318,7 +410,7 @@ msgstr "Об'єкт з таким ідентифікатором не існує msgid "Invalid entity data. Provide an ID or name." msgstr "Невірні дані про об'єкт. Вкажіть ідентифікатор або ім'я." -#: apps/api/serializers/transactions.py:141 apps/transactions/models.py:953 +#: apps/api/serializers/transactions.py:141 apps/transactions/models.py:977 msgid "This field is required." msgstr "" @@ -340,13 +432,14 @@ msgstr "Private" msgid "Shared with users" msgstr "Поділитися з користувачами" -#: apps/common/fields/forms/dynamic_select.py:71 -#: apps/common/fields/forms/dynamic_select.py:142 +#: apps/common/fields/forms/dynamic_select.py:79 +#: apps/common/fields/forms/dynamic_select.py:150 msgid "Error creating new instance" msgstr "Помилка створення нового екземпляра" #: apps/common/fields/forms/grouped_select.py:24 #: apps/common/widgets/tom_select.py:94 apps/common/widgets/tom_select.py:97 +#: templates/investments/fragments/list.html:26 msgid "Ungrouped" msgstr "Не згруповані" @@ -500,6 +593,7 @@ msgid "Today" msgstr "Сьогодні" #: apps/common/widgets/datepicker.py:142 +#: templates/investments/fragments/rebalance.html:24 msgid "Now" msgstr "Зараз" @@ -549,10 +643,10 @@ msgid "Decimal Places" msgstr "Десяткові знаки" #: apps/currencies/models.py:45 apps/export_app/forms.py:25 -#: apps/export_app/forms.py:130 apps/transactions/filters.py:70 +#: apps/export_app/forms.py:132 apps/transactions/filters.py:70 #: templates/currencies/fragments/list.html:9 -#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:182 -#: templates/includes/sidebar.html:184 +#: templates/currencies/pages/index.html:4 templates/includes/sidebar.html:196 +#: templates/includes/sidebar.html:198 #: templates/monthly_overview/pages/overview.html:63 #: templates/transactions/pages/transactions.html:12 msgid "Currencies" @@ -584,9 +678,9 @@ msgid "Auto" msgstr "Авто" #: apps/currencies/models.py:82 apps/export_app/forms.py:67 -#: apps/export_app/forms.py:142 templates/exchange_rates/fragments/list.html:10 +#: apps/export_app/forms.py:144 templates/exchange_rates/fragments/list.html:10 #: templates/exchange_rates/pages/index.html:4 -#: templates/includes/sidebar.html:190 +#: templates/includes/sidebar.html:204 msgid "Exchange Rates" msgstr "Обмінні курси" @@ -681,32 +775,43 @@ msgstr "" #: apps/currencies/models.py:171 #, fuzzy #| msgid "Exchange Rate" -msgid "Single exchange rate" +msgid "One exchange rate per day" msgstr "Обмінний курс" #: apps/currencies/models.py:174 -msgid "Create one exchange rate and keep updating it. Avoids database clutter." +msgid "" +"Update the day's exchange rate on each fetch instead of adding a new one." msgstr "" -"Створіть один курс обміну та оновлюйте його постійно. Це запобігає " -"засміченню бази даних." -#: apps/currencies/models.py:179 +#: apps/currencies/models.py:178 +#, fuzzy +#| msgid "Exchange Rates" +msgid "Exchange rates to keep" +msgstr "Обмінні курси" + +#: apps/currencies/models.py:183 +msgid "" +"Keep at most this many automatic exchange rates per currency pair, deleting " +"the oldest first. Leave empty to keep all." +msgstr "" + +#: apps/currencies/models.py:188 msgid "Exchange Rate Service" msgstr "Сервіс Курсів Обміну" -#: apps/currencies/models.py:180 +#: apps/currencies/models.py:189 msgid "Exchange Rate Services" msgstr "Сервіси Курсів Обміну" -#: apps/currencies/models.py:234 +#: apps/currencies/models.py:243 msgid "'Every X hours' interval type requires a positive integer." msgstr "Інтервал типу «Кожні X годин» потребує додатнього цілого числа." -#: apps/currencies/models.py:243 +#: apps/currencies/models.py:252 msgid "'Every X hours' interval must be between 1 and 24." msgstr "Інтервал типу «Кожні X годин» повинен бути між 1 та 24." -#: apps/currencies/models.py:257 +#: apps/currencies/models.py:266 msgid "" "Invalid hour format. Use comma-separated hours (0-23) and/or ranges (e.g., " "'1-5,8,10-12')." @@ -714,7 +819,7 @@ msgstr "" "Неправильний формат годин. Використовуйте години, розділені комами (0–23) та/" "або діапазони (наприклад, '1-5,8,10-12')." -#: apps/currencies/models.py:268 +#: apps/currencies/models.py:277 msgid "" "Invalid format. Please check the requirements for your selected interval " "type." @@ -796,11 +901,11 @@ msgid "You must provide an account." msgstr "Необхідно вказати рахунок." #: apps/dca/forms.py:277 apps/transactions/forms.py:752 -#: apps/transactions/models.py:956 +#: apps/transactions/models.py:980 msgid "From and To accounts must be different." msgstr "Рахунки «З» та «На» повинні бути різними." -#: apps/dca/forms.py:291 +#: apps/dca/forms.py:299 #, python-format msgid "DCA for %(strategy_name)s" msgstr "" @@ -816,8 +921,8 @@ msgstr "Валюта платежу" #: apps/dca/models.py:26 apps/dca/models.py:181 apps/rules/forms.py:180 #: apps/rules/forms.py:196 apps/rules/models.py:43 apps/rules/models.py:295 #: apps/transactions/forms.py:504 apps/transactions/forms.py:651 -#: apps/transactions/models.py:353 apps/transactions/models.py:752 -#: apps/transactions/models.py:1009 apps/transactions/models.py:1302 +#: apps/transactions/models.py:353 apps/transactions/models.py:776 +#: apps/transactions/models.py:1033 apps/transactions/models.py:1326 msgid "Notes" msgstr "Примітки" @@ -825,7 +930,7 @@ msgstr "Примітки" msgid "DCA Strategy" msgstr "" -#: apps/dca/models.py:35 apps/export_app/forms.py:150 +#: apps/dca/models.py:35 apps/export_app/forms.py:152 msgid "DCA Strategies" msgstr "" @@ -845,7 +950,7 @@ msgstr "Отримана Сума" msgid "DCA Entry" msgstr "" -#: apps/dca/models.py:187 apps/export_app/forms.py:151 +#: apps/dca/models.py:187 apps/export_app/forms.py:153 msgid "DCA Entries" msgstr "" @@ -873,25 +978,25 @@ msgstr "Запис успішно оновлено" msgid "Entry deleted successfully" msgstr "Запис успішно видалено" -#: apps/export_app/forms.py:13 apps/export_app/forms.py:128 -#: templates/includes/sidebar.html:227 templates/users/fragments/list.html:10 +#: apps/export_app/forms.py:13 apps/export_app/forms.py:129 +#: templates/includes/sidebar.html:241 templates/users/fragments/list.html:10 #: templates/users/pages/index.html:4 msgid "Users" msgstr "Користувачі" -#: apps/export_app/forms.py:31 apps/export_app/forms.py:134 +#: apps/export_app/forms.py:31 apps/export_app/forms.py:136 #: apps/transactions/models.py:422 templates/includes/sidebar.html:81 -#: templates/includes/sidebar.html:148 +#: templates/includes/sidebar.html:154 #: templates/recurring_transactions/fragments/list_transactions.html:5 #: templates/recurring_transactions/fragments/table.html:37 #: templates/transactions/pages/transactions.html:5 msgid "Transactions" msgstr "Транзакції" -#: apps/export_app/forms.py:37 apps/export_app/forms.py:131 +#: apps/export_app/forms.py:37 apps/export_app/forms.py:133 #: apps/insights/views.py:43 apps/transactions/filters.py:74 #: templates/categories/fragments/list.html:9 -#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:150 +#: templates/categories/pages/index.html:4 templates/includes/sidebar.html:156 #: templates/insights/fragments/month_by_month.html:18 #: templates/insights/fragments/month_by_month.html:21 #: templates/insights/fragments/year_by_year.html:13 @@ -899,16 +1004,16 @@ msgstr "Транзакції" msgid "Categories" msgstr "Категорії" -#: apps/export_app/forms.py:49 apps/export_app/forms.py:133 +#: apps/export_app/forms.py:49 apps/export_app/forms.py:135 #: apps/insights/views.py:57 apps/rules/forms.py:185 apps/rules/forms.py:195 #: apps/rules/models.py:46 apps/rules/models.py:307 #: apps/transactions/filters.py:84 apps/transactions/forms.py:78 #: apps/transactions/forms.py:346 apps/transactions/forms.py:526 #: apps/transactions/forms.py:831 apps/transactions/forms.py:1083 #: apps/transactions/models.py:312 apps/transactions/models.py:368 -#: apps/transactions/models.py:748 apps/transactions/models.py:1006 -#: apps/transactions/models.py:1317 templates/entities/fragments/list.html:9 -#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:162 +#: apps/transactions/models.py:772 apps/transactions/models.py:1030 +#: apps/transactions/models.py:1341 templates/entities/fragments/list.html:9 +#: templates/entities/pages/index.html:4 templates/includes/sidebar.html:168 #: templates/insights/fragments/month_by_month.html:40 #: templates/insights/fragments/month_by_month.html:43 #: templates/insights/fragments/year_by_year.html:35 @@ -916,28 +1021,28 @@ msgstr "Категорії" msgid "Entities" msgstr "" -#: apps/export_app/forms.py:55 apps/export_app/forms.py:137 -#: apps/transactions/models.py:1046 templates/includes/sidebar.html:110 +#: apps/export_app/forms.py:55 apps/export_app/forms.py:139 +#: apps/transactions/models.py:1070 templates/includes/sidebar.html:110 #: templates/recurring_transactions/fragments/list.html:9 #: templates/recurring_transactions/pages/index.html:4 msgid "Recurring Transactions" msgstr "Регулярні транзакції" -#: apps/export_app/forms.py:61 apps/export_app/forms.py:135 -#: apps/transactions/models.py:766 templates/includes/sidebar.html:104 +#: apps/export_app/forms.py:61 apps/export_app/forms.py:137 +#: apps/transactions/models.py:790 templates/includes/sidebar.html:104 #: templates/installment_plans/fragments/list.html:9 #: templates/installment_plans/pages/index.html:4 msgid "Installment Plans" msgstr "Плани Розстрочки" -#: apps/export_app/forms.py:73 apps/export_app/forms.py:140 +#: apps/export_app/forms.py:73 apps/export_app/forms.py:142 #: templates/exchange_rates_services/fragments/list.html:10 #: templates/exchange_rates_services/pages/index.html:4 -#: templates/includes/sidebar.html:218 +#: templates/includes/sidebar.html:232 msgid "Automatic Exchange Rates" msgstr "Автоматичні Курси Обміну" -#: apps/export_app/forms.py:79 templates/includes/sidebar.html:198 +#: apps/export_app/forms.py:79 templates/includes/sidebar.html:212 #: templates/rules/fragments/list.html:9 templates/rules/pages/index.html:4 msgid "Rules" msgstr "Правила" @@ -946,57 +1051,57 @@ msgstr "Правила" msgid "DCA" msgstr "" -#: apps/export_app/forms.py:91 apps/export_app/forms.py:152 +#: apps/export_app/forms.py:91 apps/export_app/forms.py:154 #: templates/import_app/fragments/profiles/list.html:21 #: templates/import_app/pages/profiles_index.html:4 msgid "Import Profiles" msgstr "Імпортувати Профілі" -#: apps/export_app/forms.py:117 templates/export_app/fragments/export.html:5 +#: apps/export_app/forms.py:118 templates/export_app/fragments/export.html:5 #: templates/export_app/pages/index.html:13 msgid "Export" msgstr "Експортувати" -#: apps/export_app/forms.py:125 +#: apps/export_app/forms.py:126 msgid "Import a ZIP file exported from WYGIWYH" msgstr "Імпортувати ZIP-файл, експортований із WYGIWYH" -#: apps/export_app/forms.py:126 +#: apps/export_app/forms.py:127 msgid "ZIP File" msgstr "ZIP-Файл" -#: apps/export_app/forms.py:143 apps/rules/models.py:27 +#: apps/export_app/forms.py:145 apps/rules/models.py:27 msgid "Transaction rules" msgstr "Правила транзакцій" -#: apps/export_app/forms.py:145 apps/rules/models.py:68 +#: apps/export_app/forms.py:147 apps/rules/models.py:68 msgid "Edit transaction action" msgstr "" -#: apps/export_app/forms.py:148 apps/rules/models.py:327 +#: apps/export_app/forms.py:150 apps/rules/models.py:327 msgid "Update or create transaction actions" msgstr "" -#: apps/export_app/forms.py:181 templates/cotton/transaction/item.html:341 +#: apps/export_app/forms.py:183 templates/cotton/transaction/item.html:341 #: templates/cotton/ui/deleted_transactions_action_bar.html:53 #: templates/export_app/fragments/restore.html:5 #: templates/export_app/pages/index.html:19 msgid "Restore" msgstr "Відновити" -#: apps/export_app/forms.py:191 +#: apps/export_app/forms.py:193 msgid "Please upload either a ZIP file or at least one CSV file" msgstr "Будь ласка, завантажте або ZIP-файл, або принаймні один CSV-файл" -#: apps/export_app/views.py:177 +#: apps/export_app/views.py:183 msgid "You have to select at least one export" msgstr "Ви повинні обрати принаймні один експорт" -#: apps/export_app/views.py:197 +#: apps/export_app/views.py:203 msgid "Data restored successfully" msgstr "Дані успішно відновлено" -#: apps/export_app/views.py:209 +#: apps/export_app/views.py:215 msgid "" "There was an error restoring your data. Check the logs for more details." msgstr "" @@ -1009,7 +1114,7 @@ msgstr "Оберіть файл" #: apps/import_app/forms.py:55 #: templates/import_app/fragments/profiles/list.html:75 -#: templates/includes/sidebar.html:204 +#: templates/includes/sidebar.html:218 msgid "Import" msgstr "Імпортувати" @@ -1144,7 +1249,7 @@ msgstr "Мітки" msgid "Untagged" msgstr "" -#: apps/insights/views.py:53 apps/transactions/models.py:589 +#: apps/insights/views.py:53 apps/transactions/models.py:613 #: templates/tags/fragments/table.html:69 msgid "No tags" msgstr "" @@ -1165,6 +1270,32 @@ msgstr "" msgid "No entities" msgstr "" +#: apps/investments/views.py:104 +msgid "Other" +msgstr "" + +#: apps/investments/views.py:135 +msgid "Unclassified" +msgstr "" + +#: apps/investments/views.py:267 +#, fuzzy +#| msgid "Account added successfully" +msgid "Asset class added successfully" +msgstr "Рахунок додано успішно" + +#: apps/investments/views.py:275 +#, fuzzy +#| msgid "Account updated successfully" +msgid "Asset class updated successfully" +msgstr "Рахунок успішно оновлено" + +#: apps/investments/views.py:296 +#, fuzzy +#| msgid "Account deleted successfully" +msgid "Asset class deleted successfully" +msgstr "Рахунок успішно видалено" + #: apps/net_worth/views.py:137 templates/net_worth/net_worth.html:84 #: templates/net_worth/net_worth.html:85 msgid "Consolidated" @@ -1218,8 +1349,8 @@ msgstr "" #: apps/rules/forms.py:174 apps/rules/forms.py:188 apps/rules/models.py:36 #: apps/rules/models.py:271 apps/transactions/forms.py:468 -#: apps/transactions/models.py:336 apps/transactions/models.py:708 -#: apps/transactions/models.py:987 apps/transactions/models.py:1287 +#: apps/transactions/models.py:336 apps/transactions/models.py:732 +#: apps/transactions/models.py:1011 apps/transactions/models.py:1311 #: templates/mini_tools/simulator.html:63 msgid "Type" msgstr "" @@ -1227,7 +1358,7 @@ msgstr "" #: apps/rules/forms.py:175 apps/rules/forms.py:189 apps/rules/models.py:37 #: apps/rules/models.py:275 apps/transactions/filters.py:22 #: apps/transactions/forms.py:472 apps/transactions/models.py:338 -#: apps/transactions/models.py:1289 templates/cotton/transaction/item.html:23 +#: apps/transactions/models.py:1313 templates/cotton/transaction/item.html:23 #: templates/cotton/transaction/item.html:34 #: templates/transactions/widgets/paid_toggle_button.html:10 #: templates/transactions/widgets/unselectable_paid_toggle_button.html:13 @@ -1238,14 +1369,14 @@ msgstr "" #: apps/rules/models.py:283 apps/transactions/forms.py:90 #: apps/transactions/forms.py:488 apps/transactions/forms.py:638 #: apps/transactions/forms.py:837 apps/transactions/models.py:340 -#: apps/transactions/models.py:726 apps/transactions/models.py:1011 +#: apps/transactions/models.py:750 apps/transactions/models.py:1035 msgid "Reference Date" msgstr "" #: apps/rules/forms.py:178 apps/rules/forms.py:192 apps/rules/models.py:41 #: apps/rules/models.py:287 apps/transactions/forms.py:495 -#: apps/transactions/models.py:346 apps/transactions/models.py:992 -#: apps/transactions/models.py:1295 +#: apps/transactions/models.py:346 apps/transactions/models.py:1016 +#: apps/transactions/models.py:1319 #: templates/insights/fragments/sankey.html:102 #: templates/installment_plans/fragments/table.html:18 #: templates/mini_tools/simulator.html:70 @@ -1257,27 +1388,27 @@ msgstr "" #: apps/rules/forms.py:179 apps/rules/forms.py:193 apps/rules/models.py:14 #: apps/rules/models.py:42 apps/rules/models.py:291 #: apps/transactions/forms.py:499 apps/transactions/forms.py:642 -#: apps/transactions/models.py:351 apps/transactions/models.py:710 -#: apps/transactions/models.py:995 apps/transactions/models.py:1300 +#: apps/transactions/models.py:351 apps/transactions/models.py:734 +#: apps/transactions/models.py:1019 apps/transactions/models.py:1324 msgid "Description" msgstr "" #: apps/rules/forms.py:182 apps/rules/forms.py:198 apps/rules/models.py:47 #: apps/rules/models.py:299 apps/transactions/models.py:398 -#: apps/transactions/models.py:1322 +#: apps/transactions/models.py:1346 msgid "Internal Note" msgstr "" #: apps/rules/forms.py:183 apps/rules/forms.py:199 apps/rules/models.py:48 #: apps/rules/models.py:303 apps/transactions/models.py:400 -#: apps/transactions/models.py:1324 +#: apps/transactions/models.py:1348 msgid "Internal ID" msgstr "" #: apps/rules/forms.py:186 apps/rules/forms.py:200 apps/rules/models.py:40 #: apps/rules/models.py:319 apps/transactions/forms.py:655 #: apps/transactions/models.py:250 apps/transactions/models.py:341 -#: apps/transactions/models.py:1290 +#: apps/transactions/models.py:1314 msgid "Mute" msgstr "" @@ -1290,7 +1421,7 @@ msgid "Set Values" msgstr "" #: apps/rules/forms.py:407 apps/rules/forms.py:442 apps/rules/forms.py:477 -#: apps/transactions/models.py:421 apps/transactions/models.py:645 +#: apps/transactions/models.py:421 apps/transactions/models.py:669 msgid "Transaction" msgstr "" @@ -1326,7 +1457,12 @@ msgstr "" msgid "Field" msgstr "" -#: apps/rules/models.py:61 +#: apps/rules/models.py:61 templates/investments/fragments/charts.html:86 +#: templates/investments/fragments/detail.html:103 +#: templates/investments/fragments/detail.html:162 +#: templates/investments/fragments/list.html:48 +#: templates/investments/fragments/list.html:49 +#: templates/investments/fragments/rebalance.html:23 msgid "Value" msgstr "" @@ -1510,7 +1646,7 @@ msgid "Upload" msgstr "" #: apps/transactions/forms.py:355 apps/transactions/forms.py:1089 -#: apps/transactions/models.py:925 +#: apps/transactions/models.py:949 #, fuzzy #| msgid "To Account" msgid "To account" @@ -1528,8 +1664,8 @@ msgstr "" msgid "To Amount" msgstr "" -#: apps/transactions/forms.py:718 apps/transactions/models.py:970 -#: apps/transactions/models.py:1267 templates/cotton/transaction/item.html:52 +#: apps/transactions/forms.py:718 apps/transactions/models.py:994 +#: apps/transactions/models.py:1291 templates/cotton/transaction/item.html:52 #: templates/cotton/transaction/item.html:60 #: templates/cotton/ui/quick_transactions_buttons.html:40 #: templates/cotton/ui/transactions_fab.html:44 @@ -1589,8 +1725,8 @@ msgid "" "transactions" msgstr "" -#: apps/transactions/models.py:323 apps/transactions/models.py:969 -#: apps/transactions/models.py:1266 +#: apps/transactions/models.py:323 apps/transactions/models.py:993 +#: apps/transactions/models.py:1290 #: templates/calendar_view/fragments/list.html:42 #: templates/calendar_view/fragments/list.html:44 #: templates/calendar_view/fragments/list.html:52 @@ -1598,13 +1734,19 @@ msgstr "" #: templates/cotton/ui/quick_transactions_buttons.html:10 #: templates/cotton/ui/transactions_fab.html:10 #: templates/insights/fragments/overview/_results.html:12 +#: templates/investments/fragments/_totals.html:21 +#: templates/investments/fragments/_totals.html:42 +#: templates/investments/fragments/detail.html:106 +#: templates/investments/fragments/detail.html:210 +#: templates/investments/fragments/detail.html:252 +#: templates/investments/fragments/detail.html:320 #: templates/mini_tools/simulator.html:66 #: templates/monthly_overview/fragments/monthly_summary.html:42 msgid "Income" msgstr "" -#: apps/transactions/models.py:324 apps/transactions/models.py:971 -#: apps/transactions/models.py:1268 +#: apps/transactions/models.py:324 apps/transactions/models.py:995 +#: apps/transactions/models.py:1292 #: templates/calendar_view/fragments/list.html:46 #: templates/calendar_view/fragments/list.html:48 #: templates/calendar_view/fragments/list.html:56 @@ -1616,14 +1758,14 @@ msgstr "" msgid "Expense" msgstr "" -#: apps/transactions/models.py:379 apps/transactions/models.py:765 +#: apps/transactions/models.py:379 apps/transactions/models.py:789 #: templates/cotton/transaction/item.html:291 #: templates/cotton/transaction/item.html:308 #: templates/cotton/transaction/item.html:318 msgid "Installment Plan" msgstr "" -#: apps/transactions/models.py:388 apps/transactions/models.py:1045 +#: apps/transactions/models.py:388 apps/transactions/models.py:1069 #: templates/cotton/transaction/item.html:281 #: templates/cotton/transaction/item.html:301 msgid "Recurring Transaction" @@ -1643,160 +1785,172 @@ msgstr "" msgid "Deleted At" msgstr "" -#: apps/transactions/models.py:591 +#: apps/transactions/models.py:517 +msgid "A transfer needs one expense and one income." +msgstr "" + +#: apps/transactions/models.py:519 +msgid "A transfer needs two different accounts." +msgstr "" + +#: apps/transactions/models.py:523 +msgid "This transaction is already part of another transfer." +msgstr "" + +#: apps/transactions/models.py:615 msgid "No category" msgstr "" -#: apps/transactions/models.py:593 +#: apps/transactions/models.py:617 msgid "No description" msgstr "" -#: apps/transactions/models.py:650 +#: apps/transactions/models.py:674 #, fuzzy #| msgid "ZIP File" msgid "File" msgstr "ZIP-Файл" -#: apps/transactions/models.py:652 +#: apps/transactions/models.py:676 msgid "Original Name" msgstr "" -#: apps/transactions/models.py:654 +#: apps/transactions/models.py:678 #, fuzzy #| msgid "Interval Type" msgid "Content Type" msgstr "Тип інтервалу" -#: apps/transactions/models.py:656 +#: apps/transactions/models.py:680 msgid "Size" msgstr "" -#: apps/transactions/models.py:661 +#: apps/transactions/models.py:685 msgid "Uploaded By" msgstr "" -#: apps/transactions/models.py:666 +#: apps/transactions/models.py:690 #, fuzzy #| msgid "Transaction rules" msgid "Transaction Attachment" msgstr "Правила транзакцій" -#: apps/transactions/models.py:667 +#: apps/transactions/models.py:691 #, fuzzy #| msgid "Transaction rules" msgid "Transaction Attachments" msgstr "Правила транзакцій" -#: apps/transactions/models.py:697 templates/includes/sidebar.html:57 +#: apps/transactions/models.py:721 templates/includes/sidebar.html:57 msgid "Yearly" msgstr "" -#: apps/transactions/models.py:698 apps/users/models.py:469 +#: apps/transactions/models.py:722 apps/users/models.py:469 #: templates/includes/sidebar.html:51 msgid "Monthly" msgstr "" -#: apps/transactions/models.py:699 +#: apps/transactions/models.py:723 msgid "Weekly" msgstr "" -#: apps/transactions/models.py:700 +#: apps/transactions/models.py:724 msgid "Daily" msgstr "" -#: apps/transactions/models.py:713 +#: apps/transactions/models.py:737 msgid "Number of Installments" msgstr "" -#: apps/transactions/models.py:718 +#: apps/transactions/models.py:742 msgid "Installment Start" msgstr "" -#: apps/transactions/models.py:719 +#: apps/transactions/models.py:743 msgid "The installment number to start counting from" msgstr "" -#: apps/transactions/models.py:724 apps/transactions/models.py:1015 +#: apps/transactions/models.py:748 apps/transactions/models.py:1039 msgid "Start Date" msgstr "" -#: apps/transactions/models.py:728 apps/transactions/models.py:1016 +#: apps/transactions/models.py:752 apps/transactions/models.py:1040 msgid "End Date" msgstr "" -#: apps/transactions/models.py:733 +#: apps/transactions/models.py:757 msgid "Recurrence" msgstr "" -#: apps/transactions/models.py:736 +#: apps/transactions/models.py:760 msgid "Installment Amount" msgstr "" -#: apps/transactions/models.py:755 apps/transactions/models.py:1035 +#: apps/transactions/models.py:779 apps/transactions/models.py:1059 msgid "Add description to transactions" msgstr "" -#: apps/transactions/models.py:758 apps/transactions/models.py:1038 +#: apps/transactions/models.py:782 apps/transactions/models.py:1062 msgid "Add notes to transactions" msgstr "" -#: apps/transactions/models.py:932 +#: apps/transactions/models.py:956 #, fuzzy #| msgid "To Account" msgid "To amount" msgstr "На рахунок" -#: apps/transactions/models.py:933 +#: apps/transactions/models.py:957 msgid "Leave empty to use the same amount" msgstr "" -#: apps/transactions/models.py:974 templates/mini_tools/simulator.html:129 +#: apps/transactions/models.py:998 templates/mini_tools/simulator.html:129 msgid "day(s)" msgstr "" -#: apps/transactions/models.py:975 templates/mini_tools/simulator.html:130 +#: apps/transactions/models.py:999 templates/mini_tools/simulator.html:130 msgid "week(s)" msgstr "" -#: apps/transactions/models.py:976 templates/mini_tools/simulator.html:131 +#: apps/transactions/models.py:1000 templates/mini_tools/simulator.html:131 msgid "month(s)" msgstr "" -#: apps/transactions/models.py:977 templates/mini_tools/simulator.html:132 +#: apps/transactions/models.py:1001 templates/mini_tools/simulator.html:132 msgid "year(s)" msgstr "" -#: apps/transactions/models.py:979 +#: apps/transactions/models.py:1003 #: templates/recurring_transactions/fragments/list.html:18 msgid "Paused" msgstr "" -#: apps/transactions/models.py:1018 +#: apps/transactions/models.py:1042 msgid "Recurrence Type" msgstr "" -#: apps/transactions/models.py:1021 +#: apps/transactions/models.py:1045 msgid "Recurrence Interval" msgstr "" -#: apps/transactions/models.py:1024 +#: apps/transactions/models.py:1048 msgid "Keep at most" msgstr "" -#: apps/transactions/models.py:1028 +#: apps/transactions/models.py:1052 msgid "Last Generated Date" msgstr "" -#: apps/transactions/models.py:1031 +#: apps/transactions/models.py:1055 msgid "Last Generated Reference Date" msgstr "" -#: apps/transactions/models.py:1334 templates/cotton/transaction/item.html:274 +#: apps/transactions/models.py:1358 templates/cotton/transaction/item.html:274 #: templates/cotton/ui/transactions_fab.html:59 msgid "Quick Transaction" msgstr "" -#: apps/transactions/models.py:1335 templates/includes/sidebar.html:98 +#: apps/transactions/models.py:1359 templates/includes/sidebar.html:98 #: templates/quick_transactions/pages/index.html:5 #: templates/quick_transactions/pages/index.html:15 msgid "Quick Transactions" @@ -1927,8 +2081,8 @@ msgid "Item deleted successfully" msgstr "Рахунок успішно видалено" #: apps/transactions/views/quick_transactions.py:164 -#: apps/transactions/views/transactions.py:147 -#: apps/transactions/views/transactions.py:332 +#: apps/transactions/views/transactions.py:156 +#: apps/transactions/views/transactions.py:343 msgid "Transaction added successfully" msgstr "" @@ -1976,34 +2130,34 @@ msgstr "Рахунок успішно оновлено" msgid "Attachment deleted successfully" msgstr "Рахунок успішно видалено" -#: apps/transactions/views/transactions.py:359 +#: apps/transactions/views/transactions.py:370 msgid "Transaction updated successfully" msgstr "" -#: apps/transactions/views/transactions.py:410 +#: apps/transactions/views/transactions.py:421 #, python-format msgid "%(count)s transaction updated successfully" msgid_plural "%(count)s transactions updated successfully" msgstr[0] "" msgstr[1] "" -#: apps/transactions/views/transactions.py:437 +#: apps/transactions/views/transactions.py:448 msgid "Transaction duplicated successfully" msgstr "" -#: apps/transactions/views/transactions.py:482 +#: apps/transactions/views/transactions.py:493 msgid "Transaction deleted successfully" msgstr "" -#: apps/transactions/views/transactions.py:512 +#: apps/transactions/views/transactions.py:523 msgid "Transaction restored successfully" msgstr "" -#: apps/transactions/views/transactions.py:538 +#: apps/transactions/views/transactions.py:549 msgid "Transfer added successfully" msgstr "" -#: apps/transactions/views/transactions.py:566 +#: apps/transactions/views/transactions.py:579 #, fuzzy #| msgid "Entry updated successfully" msgid "Transfer updated successfully" @@ -2330,6 +2484,7 @@ msgstr "" #: templates/exchange_rates_services/fragments/table.html:20 #: templates/import_app/fragments/profiles/list.html:42 #: templates/installment_plans/fragments/table.html:25 +#: templates/investment_classes/fragments/list.html:36 #: templates/quick_transactions/fragments/list.html:22 #: templates/recurring_transactions/fragments/table.html:27 #: templates/rules/fragments/list.html:31 @@ -2352,6 +2507,9 @@ msgstr "" #: templates/exchange_rates_services/fragments/table.html:23 #: templates/import_app/fragments/profiles/list.html:46 #: templates/installment_plans/fragments/table.html:28 +#: templates/investment_classes/fragments/list.html:39 +#: templates/investments/fragments/detail.html:305 +#: templates/investments/fragments/detail.html:331 #: templates/quick_transactions/fragments/list.html:25 #: templates/recurring_transactions/fragments/table.html:30 #: templates/rules/fragments/transaction_rule/view.html:22 @@ -2401,6 +2559,7 @@ msgstr "" #: templates/import_app/fragments/profiles/list.html:81 #: templates/import_app/fragments/runs/list.html:100 #: templates/installment_plans/fragments/table.html:54 +#: templates/investment_classes/fragments/list.html:45 #: templates/mini_tools/simulator.html:109 #: templates/mini_tools/unit_price_calculator.html:16 #: templates/quick_transactions/fragments/list.html:32 @@ -2434,6 +2593,7 @@ msgstr "" #: templates/import_app/fragments/runs/list.html:104 #: templates/installment_plans/fragments/table.html:47 #: templates/installment_plans/fragments/table.html:58 +#: templates/investment_classes/fragments/list.html:49 #: templates/quick_transactions/fragments/list.html:37 #: templates/recurring_transactions/fragments/table.html:52 #: templates/recurring_transactions/fragments/table.html:65 @@ -2483,6 +2643,7 @@ msgstr "" #: templates/import_app/fragments/profiles/list.html:87 #: templates/import_app/fragments/runs/list.html:106 #: templates/installment_plans/fragments/table.html:60 +#: templates/investment_classes/fragments/list.html:51 #: templates/quick_transactions/fragments/list.html:39 #: templates/recurring_transactions/fragments/table.html:94 #: templates/rules/fragments/list.html:62 @@ -2531,6 +2692,7 @@ msgid "Add account" msgstr "" #: templates/accounts/fragments/edit.html:5 +#: templates/investments/fragments/detail.html:40 msgid "Edit account" msgstr "" @@ -2832,6 +2994,8 @@ msgid "Add DCA strategy" msgstr "" #: templates/dca/fragments/strategy/details.html:28 +#: templates/investments/fragments/detail.html:92 +#: templates/investments/fragments/list.html:65 msgid "No exchange rate available" msgstr "" @@ -3014,7 +3178,7 @@ msgstr "" msgid "No services configured" msgstr "" -#: templates/export_app/pages/index.html:4 templates/includes/sidebar.html:211 +#: templates/export_app/pages/index.html:4 templates/includes/sidebar.html:225 msgid "Export and Restore" msgstr "" @@ -3185,52 +3349,63 @@ msgstr "" msgid "Tools" msgstr "" -#: templates/includes/sidebar.html:118 +#: templates/includes/sidebar.html:118 templates/includes/sidebar.html:188 +#: templates/investment_classes/fragments/list.html:29 +#: templates/investments/fragments/detail.html:37 +#: templates/investments/fragments/list.html:9 +#: templates/investments/pages/detail.html:4 +#: templates/investments/pages/index.html:4 +#, fuzzy +#| msgid "Installment Plans" +msgid "Investments" +msgstr "Плани Розстрочки" + +#: templates/includes/sidebar.html:124 msgid "Dollar Cost Average Tracker" msgstr "" -#: templates/includes/sidebar.html:124 +#: templates/includes/sidebar.html:130 #: templates/mini_tools/unit_price_calculator.html:4 #: templates/mini_tools/unit_price_calculator.html:9 msgid "Unit Price Calculator" msgstr "" -#: templates/includes/sidebar.html:130 +#: templates/includes/sidebar.html:136 #: templates/mini_tools/currency_converter/currency_converter.html:7 #: templates/mini_tools/currency_converter/currency_converter.html:14 msgid "Currency Converter" msgstr "" -#: templates/includes/sidebar.html:136 templates/mini_tools/simulator.html:5 +#: templates/includes/sidebar.html:142 templates/mini_tools/simulator.html:5 #: templates/mini_tools/simulator.html:21 msgid "Simulator" msgstr "" -#: templates/includes/sidebar.html:145 +#: templates/includes/sidebar.html:151 msgid "Management" msgstr "" -#: templates/includes/sidebar.html:196 +#: templates/includes/sidebar.html:210 msgid "Automation" msgstr "" -#: templates/includes/sidebar.html:225 +#: templates/includes/sidebar.html:239 msgid "Admin" msgstr "" -#: templates/includes/sidebar.html:233 +#: templates/includes/sidebar.html:247 msgid "Django Admin" msgstr "" -#: templates/includes/sidebar.html:234 +#: templates/includes/sidebar.html:248 msgid "Only use this if you know what you're doing" msgstr "" -#: templates/includes/sidebar.html:249 +#: templates/includes/sidebar.html:263 msgid "is available" msgstr "" -#: templates/includes/sidebar.html:257 +#: templates/includes/sidebar.html:271 msgid "Calculator" msgstr "" @@ -3297,6 +3472,7 @@ msgstr "" #: templates/insights/fragments/overview/_results.html:173 #: templates/insights/fragments/year_by_year.html:59 #: templates/insights/fragments/year_by_year.html:140 +#: templates/investment_classes/fragments/list.html:65 #: templates/monthly_overview/fragments/monthly_summary.html:168 msgid "Total" msgstr "" @@ -3498,6 +3674,285 @@ msgstr "" msgid "No installment plans" msgstr "" +#: templates/investment_classes/fragments/form.html:5 +msgid "Edit asset class" +msgstr "" + +#: templates/investment_classes/fragments/form.html:5 +msgid "Add asset class" +msgstr "" + +#: templates/investment_classes/fragments/list.html:19 +#: templates/investments/fragments/rebalance.html:10 +#, python-format +msgid "Targets add up to %(total)s%%. Set them to 100%% to see the rebalance." +msgstr "" + +#: templates/investment_classes/fragments/list.html:28 +#: templates/investments/fragments/rebalance.html:25 +msgid "Target" +msgstr "" + +#: templates/investment_classes/fragments/list.html:50 +msgid "Its investments will be left without an asset class." +msgstr "" + +#: templates/investment_classes/fragments/list.html:74 +msgid "No asset classes" +msgstr "" + +#: templates/investments/fragments/_allocation.html:3 +msgid "Allocation chart" +msgstr "" + +#: templates/investments/fragments/_allocation.html:11 +#, python-format +msgid "" +"%(share)s%% of your investments with a target, against a target of " +"%(target)s%%" +msgstr "" + +#: templates/investments/fragments/_mwr.html:1 +msgid "Annual return, weighted by when money went in and out" +msgstr "" + +#: templates/investments/fragments/_mwr.html:1 +msgid "" +"Return since the first contribution, weighted by when money went in and out" +msgstr "" + +#: templates/investments/fragments/_mwr.html:1 +msgid "/yr" +msgstr "" + +#: templates/investments/fragments/_totals.html:15 +#: templates/investments/fragments/detail.html:63 +msgid "total return" +msgstr "" + +#: templates/investments/fragments/_totals.html:20 +#: templates/investments/fragments/_totals.html:41 +#: templates/investments/fragments/charts.html:96 +#: templates/investments/fragments/detail.html:163 +#: templates/investments/fragments/detail.html:223 +#: templates/investments/fragments/list.html:47 +msgid "Invested" +msgstr "" + +#: templates/investments/fragments/_totals.html:24 +#: templates/investments/fragments/detail.html:74 +msgid "" +"How much of the return came from exchange rates moving since you invested" +msgstr "" + +#: templates/investments/fragments/_totals.html:24 +#: templates/investments/fragments/_totals.html:26 +#, fuzzy +#| msgid "Currency Code" +msgid "Currency effect" +msgstr "Код валюти" + +#: templates/investments/fragments/_totals.html:26 +#: templates/investments/fragments/detail.html:78 +msgid "" +"Every date is converted with the same rate. Add historical exchange rates " +"(or an automatic rate service) to see how much exchange rates moved your " +"return." +msgstr "" + +#: templates/investments/fragments/_totals.html:40 +#: templates/investments/fragments/list.html:49 +msgid "Return" +msgstr "" + +#: templates/investments/fragments/charts.html:10 +msgid "By asset class" +msgstr "" + +#: templates/investments/fragments/charts.html:17 +#: templates/net_worth/net_worth.html:52 +#: templates/yearly_overview/pages/overview_by_currency.html:6 +msgid "By currency" +msgstr "" + +#: templates/investments/fragments/charts.html:24 +msgid "Value and invested" +msgstr "" + +#: templates/investments/fragments/charts.html:31 +msgid "Return by investment" +msgstr "" + +#: templates/investments/fragments/charts.html:38 +msgid "Nothing to chart yet" +msgstr "" + +#: templates/investments/fragments/detail.html:10 +msgid "Buy / Contribute" +msgstr "" + +#: templates/investments/fragments/detail.html:16 +msgid "Sell / Withdraw" +msgstr "" + +#: templates/investments/fragments/detail.html:23 +msgid "Dividend / Income" +msgstr "" + +#: templates/investments/fragments/detail.html:30 +#, fuzzy +#| msgid "Update" +msgid "Update value" +msgstr "Оновлення" + +#: templates/investments/fragments/detail.html:47 +#: templates/investments/fragments/list.html:67 +msgid "Tracked by value" +msgstr "" + +#: templates/investments/fragments/detail.html:48 +msgid "" +"Some incoming units have no linked payment, so their cost was estimated from " +"the market price of that day" +msgstr "" + +#: templates/investments/fragments/detail.html:68 +#, fuzzy +#| msgid "Info" +msgid "In" +msgstr "Info" + +#: templates/investments/fragments/detail.html:74 +#: templates/investments/fragments/detail.html:78 +#, fuzzy +#| msgid "Currency Code" +msgid "currency effect" +msgstr "Код валюти" + +#: templates/investments/fragments/detail.html:104 +#: templates/investments/fragments/detail.html:179 +msgid "Price" +msgstr "" + +#: templates/investments/fragments/detail.html:105 +#: templates/investments/fragments/detail.html:200 +#: templates/investments/fragments/detail.html:239 +#: templates/investments/fragments/detail.html:290 +#, fuzzy +#| msgid "Warning" +msgid "Earnings" +msgstr "Попередження" + +#: templates/investments/fragments/detail.html:180 +#: templates/investments/fragments/detail.html:227 +msgid "Average cost" +msgstr "" + +#: templates/investments/fragments/detail.html:181 +#: templates/investments/fragments/rebalance.html:41 +msgid "Buy" +msgstr "" + +#: templates/investments/fragments/detail.html:182 +#: templates/investments/fragments/rebalance.html:43 +msgid "Sell" +msgstr "" + +#: templates/investments/fragments/detail.html:227 +#: templates/investments/fragments/detail.html:257 +msgid "Put in / taken out" +msgstr "" + +#: templates/investments/fragments/detail.html:239 +msgid "Unrealized" +msgstr "" + +#: templates/investments/fragments/detail.html:248 +msgid "Realized" +msgstr "" + +#: templates/investments/fragments/detail.html:271 +msgid "Movements" +msgstr "" + +#: templates/investments/fragments/detail.html:284 +msgid "Bought / contributed" +msgstr "" + +#: templates/investments/fragments/detail.html:284 +msgid "Sold / withdrew" +msgstr "" + +#: templates/investments/fragments/detail.html:288 +msgid "Money in" +msgstr "" + +#: templates/investments/fragments/detail.html:288 +msgid "Money out" +msgstr "" + +#: templates/investments/fragments/detail.html:290 +msgid "Gain" +msgstr "" + +#: templates/investments/fragments/detail.html:290 +msgid "Loss, tax or fee" +msgstr "" + +#: templates/investments/fragments/detail.html:315 +msgid "No movements yet" +msgstr "" + +#: templates/investments/fragments/detail.html:315 +msgid "Use the + button to buy or contribute" +msgstr "" + +#: templates/investments/fragments/list.html:21 +msgid "Holdings" +msgstr "" + +#: templates/investments/fragments/list.html:60 +msgid "Some costs were estimated from market prices" +msgstr "" + +#: templates/investments/fragments/list.html:92 +msgid "Charts" +msgstr "" + +#: templates/investments/fragments/list.html:97 +#, fuzzy +#| msgid "New balance" +msgid "Rebalance" +msgstr "Новий баланс" + +#: templates/investments/fragments/list.html:105 +msgid "No investments yet" +msgstr "" + +#: templates/investments/fragments/list.html:106 +msgid "Mark an account as an investment in its settings to see it here" +msgstr "" + +#: templates/investments/fragments/rebalance.html:4 +msgid "No allocation targets" +msgstr "" + +#: templates/investments/fragments/rebalance.html:5 +msgid "Set a target for your asset classes to see what to buy and sell" +msgstr "" + +#: templates/investments/fragments/rebalance.html:26 +msgid "To reach the target" +msgstr "" + +#: templates/investments/fragments/rebalance.html:34 +msgid "Off target" +msgstr "" + +#: templates/investments/fragments/rebalance.html:55 +msgid "Left out: investments without an asset class or a target" +msgstr "" + #: templates/layouts/base.html:38 msgid "This is a demo!" msgstr "" @@ -3711,11 +4166,6 @@ msgstr "" msgid "Order by" msgstr "" -#: templates/net_worth/net_worth.html:52 -#: templates/yearly_overview/pages/overview_by_currency.html:6 -msgid "By currency" -msgstr "" - #: templates/net_worth/net_worth.html:135 msgid "Evolution" msgstr "" @@ -4169,3 +4619,9 @@ msgstr "Увiйти за допомогою" #: templates/yearly_overview/pages/yearly_overview_base.html:6 msgid "Yearly Overview" msgstr "" + +#~ msgid "" +#~ "Create one exchange rate and keep updating it. Avoids database clutter." +#~ msgstr "" +#~ "Створіть один курс обміну та оновлюйте його постійно. Це запобігає " +#~ "засміченню бази даних." diff --git a/app/locale/zh_Hant/LC_MESSAGES/django.po b/app/locale/zh_Hant/LC_MESSAGES/django.po index 751e6189..90aeda74 100644 --- a/app/locale/zh_Hant/LC_MESSAGES/django.po +++ b/app/locale/zh_Hant/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-11-08 13:19+0000\n" +"POT-Creation-Date: 2026-11-08 18:27+0000\n" "PO-Revision-Date: 2025-10-08 16:17+0000\n" "Last-Translator: doody \n" "Language-Team: Chinese (Traditional Han script)