🤖 Auto commit for release 'develop' on 2025-04-11

This commit is contained in:
JC5
2025-04-11 20:00:17 +02:00
parent 9d900a69ed
commit d1880de30e
8 changed files with 97 additions and 97 deletions

View File

@@ -472,21 +472,22 @@ class BasicController extends Controller
{ {
Log::debug(sprintf('Now in getLeftToSpendInfo("%s", "%s")', $start->format('Y-m-d H:i:s'), $end->format('Y-m-d H:i:s'))); Log::debug(sprintf('Now in getLeftToSpendInfo("%s", "%s")', $start->format('Y-m-d H:i:s'), $end->format('Y-m-d H:i:s')));
$return = []; $return = [];
$today = today(config('app.timezone')); $today = today(config('app.timezone'));
$available = $this->abRepository->getAvailableBudgetWithCurrency($start, $end); $available = $this->abRepository->getAvailableBudgetWithCurrency($start, $end);
$budgets = $this->budgetRepository->getActiveBudgets(); $budgets = $this->budgetRepository->getActiveBudgets();
$spent = $this->opsRepository->sumExpenses($start, $end, null, $budgets); $spent = $this->opsRepository->sumExpenses($start, $end, null, $budgets);
$days = (int) $today->diffInDays($end, true) + 1; $days = (int) $today->diffInDays($end, true) + 1;
$currencies = []; $currencies = [];
// first, create an entry for each entry in the "available" array. // first, create an entry for each entry in the "available" array.
/** @var array $availableBudget */ /** @var array $availableBudget */
foreach($available as $currencyId => $availableBudget) { foreach ($available as $currencyId => $availableBudget) {
$currencies[$currencyId] ??= $this->currencyRepos->find($currencyId); $currencies[$currencyId] ??= $this->currencyRepos->find($currencyId);
$return[$currencyId] = [ $return[$currencyId] = [
'key' => sprintf('left-to-spend-in-%s', $currencies[$currencyId]->code), 'key' => sprintf('left-to-spend-in-%s', $currencies[$currencyId]->code),
'title' => trans('firefly.box_left_to_spend_in_currency', ['currency' => $currencies[$currencyId]->symbol]), 'title' => trans('firefly.box_left_to_spend_in_currency', ['currency' => $currencies[$currencyId]->symbol]),
'no_available_budgets' => false, 'no_available_budgets' => false,
'monetary_value' => $availableBudget, 'monetary_value' => $availableBudget,
'currency_id' => (string) $currencies[$currencyId]->id, 'currency_id' => (string) $currencies[$currencyId]->id,
'currency_code' => $currencies[$currencyId]->code, 'currency_code' => $currencies[$currencyId]->code,
@@ -504,25 +505,25 @@ class BasicController extends Controller
} }
foreach ($spent as $row) { foreach ($spent as $row) {
// either an amount was budgeted or 0 is available. // either an amount was budgeted or 0 is available.
$currencyId = (int) $row['currency_id']; $currencyId = (int) $row['currency_id'];
$amount = (string) ($available[$currencyId] ?? '0'); $amount = (string) ($available[$currencyId] ?? '0');
if(0 === bccomp($amount,'0')) { if (0 === bccomp($amount, '0')) {
// #9858 skip over currencies with no available budget. // #9858 skip over currencies with no available budget.
continue; continue;
} }
$spentInCurrency = $row['sum']; $spentInCurrency = $row['sum'];
$leftToSpend = bcadd($amount, $spentInCurrency); $leftToSpend = bcadd($amount, $spentInCurrency);
$perDay = '0'; $perDay = '0';
if (0 !== $days && bccomp($leftToSpend, '0') > -1) { if (0 !== $days && bccomp($leftToSpend, '0') > -1) {
$perDay = bcdiv($leftToSpend, (string) $days); $perDay = bcdiv($leftToSpend, (string) $days);
} }
Log::debug(sprintf('Spent %s %s', $row['currency_code'], $row['sum'])); Log::debug(sprintf('Spent %s %s', $row['currency_code'], $row['sum']));
$return[$currencyId] = [ $return[$currencyId] = [
'key' => sprintf('left-to-spend-in-%s', $row['currency_code']), 'key' => sprintf('left-to-spend-in-%s', $row['currency_code']),
'title' => trans('firefly.box_left_to_spend_in_currency', ['currency' => $row['currency_symbol']]), 'title' => trans('firefly.box_left_to_spend_in_currency', ['currency' => $row['currency_symbol']]),
'no_available_budgets' => false, 'no_available_budgets' => false,
'monetary_value' => $leftToSpend, 'monetary_value' => $leftToSpend,
'currency_id' => (string) $row['currency_id'], 'currency_id' => (string) $row['currency_id'],
'currency_code' => $row['currency_code'], 'currency_code' => $row['currency_code'],
@@ -539,12 +540,12 @@ class BasicController extends Controller
]; ];
} }
if (0 === count($return)) { if (0 === count($return)) {
$currency = $this->nativeCurrency; $currency = $this->nativeCurrency;
$return[$currency->id] = [ $return[$currency->id] = [
'key' => sprintf('left-to-spend-in-%s', $currency->code), 'key' => sprintf('left-to-spend-in-%s', $currency->code),
'title' => trans('firefly.box_left_to_spend_in_currency', ['currency' => $currency->symbol]), 'title' => trans('firefly.box_left_to_spend_in_currency', ['currency' => $currency->symbol]),
'monetary_value' => '0', 'monetary_value' => '0',
'no_available_budgets' => true, 'no_available_budgets' => true,
'currency_id' => (string) $currency->id, 'currency_id' => (string) $currency->id,
'currency_code' => $currency->code, 'currency_code' => $currency->code,
'currency_symbol' => $currency->symbol, 'currency_symbol' => $currency->symbol,

View File

@@ -80,10 +80,10 @@ class UnknownUserLoginAttempt extends Notification
{ {
$settings = ReturnsSettings::getSettings('ntfy', 'owner', null); $settings = ReturnsSettings::getSettings('ntfy', 'owner', null);
$message = new Message(); $message = new Message();
$ip = Request::ip(); $ip = Request::ip();
$message->topic($settings['ntfy_topic']); $message->topic($settings['ntfy_topic']);
$message->title((string) trans('email.unknown_user_subject')); $message->title((string) trans('email.unknown_user_subject'));
$message->body((string) trans('email.unknown_user_message', ['address' => $this->address, 'ip' =>$ip])); $message->body((string) trans('email.unknown_user_message', ['address' => $this->address, 'ip' => $ip]));
return $message; return $message;
} }
@@ -93,9 +93,9 @@ class UnknownUserLoginAttempt extends Notification
*/ */
public function toPushover(OwnerNotifiable $notifiable): PushoverMessage public function toPushover(OwnerNotifiable $notifiable): PushoverMessage
{ {
$ip = Request::ip(); $ip = Request::ip();
return PushoverMessage::create((string) trans('email.unknown_user_message', ['address' => $this->address, 'ip' =>$ip])) return PushoverMessage::create((string) trans('email.unknown_user_message', ['address' => $this->address, 'ip' => $ip]))
->title((string) trans('email.unknown_user_subject')) ->title((string) trans('email.unknown_user_subject'))
; ;
} }
@@ -105,7 +105,8 @@ class UnknownUserLoginAttempt extends Notification
*/ */
public function toSlack(OwnerNotifiable $notifiable): SlackMessage public function toSlack(OwnerNotifiable $notifiable): SlackMessage
{ {
$ip = Request::ip(); $ip = Request::ip();
return new SlackMessage()->content( return new SlackMessage()->content(
(string) trans('email.unknown_user_body', ['address' => $this->address, 'ip' => $ip]) (string) trans('email.unknown_user_body', ['address' => $this->address, 'ip' => $ip])
); );

View File

@@ -247,6 +247,6 @@ class OperationsRepository implements OperationsRepositoryInterface, UserGroupIn
} }
$summarizer = new TransactionSummarizer($this->user); $summarizer = new TransactionSummarizer($this->user);
return $summarizer->groupByCurrencyId($journals,'negative', false); return $summarizer->groupByCurrencyId($journals, 'negative', false);
} }
} }

78
composer.lock generated
View File

@@ -1010,16 +1010,16 @@
}, },
{ {
"name": "firebase/php-jwt", "name": "firebase/php-jwt",
"version": "v6.11.0", "version": "v6.11.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/firebase/php-jwt.git", "url": "https://github.com/firebase/php-jwt.git",
"reference": "8f718f4dfc9c5d5f0c994cdfd103921b43592712" "reference": "d1e91ecf8c598d073d0995afa8cd5c75c6e19e66"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/8f718f4dfc9c5d5f0c994cdfd103921b43592712", "url": "https://api.github.com/repos/firebase/php-jwt/zipball/d1e91ecf8c598d073d0995afa8cd5c75c6e19e66",
"reference": "8f718f4dfc9c5d5f0c994cdfd103921b43592712", "reference": "d1e91ecf8c598d073d0995afa8cd5c75c6e19e66",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1067,9 +1067,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/firebase/php-jwt/issues", "issues": "https://github.com/firebase/php-jwt/issues",
"source": "https://github.com/firebase/php-jwt/tree/v6.11.0" "source": "https://github.com/firebase/php-jwt/tree/v6.11.1"
}, },
"time": "2025-01-23T05:11:06+00:00" "time": "2025-04-09T20:32:01+00:00"
}, },
{ {
"name": "fruitcake/php-cors", "name": "fruitcake/php-cors",
@@ -3472,16 +3472,16 @@
}, },
{ {
"name": "mailersend/laravel-driver", "name": "mailersend/laravel-driver",
"version": "v2.9.0", "version": "v2.9.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/mailersend/mailersend-laravel-driver.git", "url": "https://github.com/mailersend/mailersend-laravel-driver.git",
"reference": "a34e2db5d63d2421b055d8271066d204479a8b6a" "reference": "87fd5ab76808bbaac9221be0d306baef13e98725"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/mailersend/mailersend-laravel-driver/zipball/a34e2db5d63d2421b055d8271066d204479a8b6a", "url": "https://api.github.com/repos/mailersend/mailersend-laravel-driver/zipball/87fd5ab76808bbaac9221be0d306baef13e98725",
"reference": "a34e2db5d63d2421b055d8271066d204479a8b6a", "reference": "87fd5ab76808bbaac9221be0d306baef13e98725",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3535,9 +3535,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/mailersend/mailersend-laravel-driver/issues", "issues": "https://github.com/mailersend/mailersend-laravel-driver/issues",
"source": "https://github.com/mailersend/mailersend-laravel-driver/tree/v2.9.0" "source": "https://github.com/mailersend/mailersend-laravel-driver/tree/v2.9.1"
}, },
"time": "2025-04-04T10:38:10+00:00" "time": "2025-04-09T09:33:07+00:00"
}, },
{ {
"name": "mailersend/mailersend", "name": "mailersend/mailersend",
@@ -6361,16 +6361,16 @@
}, },
{ {
"name": "spatie/laravel-package-tools", "name": "spatie/laravel-package-tools",
"version": "1.92.0", "version": "1.92.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/spatie/laravel-package-tools.git", "url": "https://github.com/spatie/laravel-package-tools.git",
"reference": "dd46cd0ed74015db28822d88ad2e667f4496a6f6" "reference": "d20b1969f836d210459b78683d85c9cd5c5f508c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/dd46cd0ed74015db28822d88ad2e667f4496a6f6", "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/d20b1969f836d210459b78683d85c9cd5c5f508c",
"reference": "dd46cd0ed74015db28822d88ad2e667f4496a6f6", "reference": "d20b1969f836d210459b78683d85c9cd5c5f508c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -6381,6 +6381,7 @@
"mockery/mockery": "^1.5", "mockery/mockery": "^1.5",
"orchestra/testbench": "^7.7|^8.0|^9.0|^10.0", "orchestra/testbench": "^7.7|^8.0|^9.0|^10.0",
"pestphp/pest": "^1.23|^2.1|^3.1", "pestphp/pest": "^1.23|^2.1|^3.1",
"phpunit/php-code-coverage": "^9.0|^10.0|^11.0",
"phpunit/phpunit": "^9.5.24|^10.5|^11.5", "phpunit/phpunit": "^9.5.24|^10.5|^11.5",
"spatie/pest-plugin-test-time": "^1.1|^2.2" "spatie/pest-plugin-test-time": "^1.1|^2.2"
}, },
@@ -6409,7 +6410,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/spatie/laravel-package-tools/issues", "issues": "https://github.com/spatie/laravel-package-tools/issues",
"source": "https://github.com/spatie/laravel-package-tools/tree/1.92.0" "source": "https://github.com/spatie/laravel-package-tools/tree/1.92.4"
}, },
"funding": [ "funding": [
{ {
@@ -6417,7 +6418,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2025-03-27T08:34:10+00:00" "time": "2025-04-11T15:27:14+00:00"
}, },
{ {
"name": "spatie/period", "name": "spatie/period",
@@ -10029,16 +10030,16 @@
"packages-dev": [ "packages-dev": [
{ {
"name": "barryvdh/laravel-debugbar", "name": "barryvdh/laravel-debugbar",
"version": "v3.15.2", "version": "v3.15.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/barryvdh/laravel-debugbar.git", "url": "https://github.com/barryvdh/laravel-debugbar.git",
"reference": "0bc1e1361e7fffc2be156f46ad1fba6927c01729" "reference": "4ccab20844d18c5af08b68d310e7151a791c3037"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/0bc1e1361e7fffc2be156f46ad1fba6927c01729", "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/4ccab20844d18c5af08b68d310e7151a791c3037",
"reference": "0bc1e1361e7fffc2be156f46ad1fba6927c01729", "reference": "4ccab20844d18c5af08b68d310e7151a791c3037",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -10049,9 +10050,6 @@
"php-debugbar/php-debugbar": "~2.1.1", "php-debugbar/php-debugbar": "~2.1.1",
"symfony/finder": "^6|^7" "symfony/finder": "^6|^7"
}, },
"conflict": {
"maximebf/debugbar": "*"
},
"require-dev": { "require-dev": {
"mockery/mockery": "^1.3.3", "mockery/mockery": "^1.3.3",
"orchestra/testbench-dusk": "^7|^8|^9|^10", "orchestra/testbench-dusk": "^7|^8|^9|^10",
@@ -10101,7 +10099,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/barryvdh/laravel-debugbar/issues", "issues": "https://github.com/barryvdh/laravel-debugbar/issues",
"source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.15.2" "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.15.3"
}, },
"funding": [ "funding": [
{ {
@@ -10113,7 +10111,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2025-02-25T15:25:22+00:00" "time": "2025-04-08T15:11:06+00:00"
}, },
{ {
"name": "barryvdh/laravel-ide-helper", "name": "barryvdh/laravel-ide-helper",
@@ -10263,16 +10261,16 @@
}, },
{ {
"name": "cloudcreativity/json-api-testing", "name": "cloudcreativity/json-api-testing",
"version": "v6.1.0", "version": "v6.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/cloudcreativity/json-api-testing.git", "url": "https://github.com/cloudcreativity/json-api-testing.git",
"reference": "6c7a09b75e4ea250983d5b80f6120f15db9914cb" "reference": "bb2ff0a87013d40781ca7f959023491d6f1b4ed2"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/cloudcreativity/json-api-testing/zipball/6c7a09b75e4ea250983d5b80f6120f15db9914cb", "url": "https://api.github.com/repos/cloudcreativity/json-api-testing/zipball/bb2ff0a87013d40781ca7f959023491d6f1b4ed2",
"reference": "6c7a09b75e4ea250983d5b80f6120f15db9914cb", "reference": "bb2ff0a87013d40781ca7f959023491d6f1b4ed2",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -10280,7 +10278,7 @@
"illuminate/contracts": "^10.0|^11.0|^12.0", "illuminate/contracts": "^10.0|^11.0|^12.0",
"illuminate/support": "^10.0|^11.0|^12.0", "illuminate/support": "^10.0|^11.0|^12.0",
"php": "^8.2", "php": "^8.2",
"phpunit/phpunit": "^10.5|^11.0" "phpunit/phpunit": "^10.5|^11.0|^12.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@@ -10315,9 +10313,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/cloudcreativity/json-api/issues", "issues": "https://github.com/cloudcreativity/json-api/issues",
"source": "https://github.com/cloudcreativity/json-api-testing/tree/v6.1.0" "source": "https://github.com/cloudcreativity/json-api-testing/tree/v6.2.0"
}, },
"time": "2025-02-24T20:34:56+00:00" "time": "2025-04-09T19:15:46+00:00"
}, },
{ {
"name": "composer/class-map-generator", "name": "composer/class-map-generator",
@@ -11703,16 +11701,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "11.5.15", "version": "11.5.17",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "4b6a4ee654e5e0c5e1f17e2f83c0f4c91dee1f9c" "reference": "fd2e863a2995cdfd864fb514b5e0b28b09895b5c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4b6a4ee654e5e0c5e1f17e2f83c0f4c91dee1f9c", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/fd2e863a2995cdfd864fb514b5e0b28b09895b5c",
"reference": "4b6a4ee654e5e0c5e1f17e2f83c0f4c91dee1f9c", "reference": "fd2e863a2995cdfd864fb514b5e0b28b09895b5c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -11784,7 +11782,7 @@
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues", "issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy", "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.15" "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.17"
}, },
"funding": [ "funding": [
{ {
@@ -11800,7 +11798,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-03-23T16:02:11+00:00" "time": "2025-04-08T07:59:11+00:00"
}, },
{ {
"name": "sebastian/cli-parser", "name": "sebastian/cli-parser",

View File

@@ -78,7 +78,7 @@ return [
'running_balance_column' => env('USE_RUNNING_BALANCE', false), 'running_balance_column' => env('USE_RUNNING_BALANCE', false),
// see cer.php for exchange rates feature flag. // see cer.php for exchange rates feature flag.
], ],
'version' => 'develop/2025-04-07', 'version' => 'develop/2025-04-11',
'api_version' => '2.1.0', // field is no longer used. 'api_version' => '2.1.0', // field is no longer used.
'db_version' => 25, 'db_version' => 25,

View File

@@ -33,9 +33,9 @@ return [
| and used as needed; however, this mailer will be used by default. | and used as needed; however, this mailer will be used by default.
| |
*/ */
'default' => envNonEmpty('MAIL_MAILER', 'log'), 'default' => envNonEmpty('MAIL_MAILER', 'log'),
'mailers' => [ 'mailers' => [
'smtp' => [ 'smtp' => [
'transport' => 'smtp', 'transport' => 'smtp',
'host' => envNonEmpty('MAIL_HOST', 'smtp.mailtrap.io'), 'host' => envNonEmpty('MAIL_HOST', 'smtp.mailtrap.io'),
@@ -58,34 +58,34 @@ return [
'transport' => 'ses', 'transport' => 'ses',
], ],
'mailgun' => [ 'mailgun' => [
'transport' => 'mailgun', 'transport' => 'mailgun',
], ],
'mandrill' => [ 'mandrill' => [
'transport' => 'mandrill', 'transport' => 'mandrill',
], ],
'postmark' => [ 'postmark' => [
'transport' => 'postmark', 'transport' => 'postmark',
], ],
'sendmail' => [ 'sendmail' => [
'transport' => 'sendmail', 'transport' => 'sendmail',
'path' => envNonEmpty('MAIL_SENDMAIL_COMMAND', '/usr/sbin/sendmail -bs'), 'path' => envNonEmpty('MAIL_SENDMAIL_COMMAND', '/usr/sbin/sendmail -bs'),
], ],
'log' => [ 'log' => [
'transport' => 'log', 'transport' => 'log',
'channel' => env('MAIL_LOG_CHANNEL', 'stack'), 'channel' => env('MAIL_LOG_CHANNEL', 'stack'),
'level' => 'info', 'level' => 'info',
], ],
'null' => [ 'null' => [
'transport' => 'log', 'transport' => 'log',
'channel' => env('MAIL_LOG_CHANNEL', 'stack'), 'channel' => env('MAIL_LOG_CHANNEL', 'stack'),
'level' => 'notice', 'level' => 'notice',
], ],
'array' => [ 'array' => [
'transport' => 'array', 'transport' => 'array',
], ],
], ],

30
package-lock.json generated
View File

@@ -4420,9 +4420,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001712", "version": "1.0.30001713",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001712.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001713.tgz",
"integrity": "sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig==", "integrity": "sha512-wCIWIg+A4Xr7NfhTuHdX+/FKh3+Op3LBbSp2N5Pfx6T/LhdQy3GTyoTg48BReaW/MyMNZAkTadsBtai3ldWK0Q==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@@ -5635,9 +5635,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.5.132", "version": "1.5.136",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.132.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.136.tgz",
"integrity": "sha512-QgX9EBvWGmvSRa74zqfnG7+Eno0Ak0vftBll0Pt2/z5b3bEGYL6OUXLgKPtvx73dn3dvwrlyVkjPKRRlhLYTEg==", "integrity": "sha512-kL4+wUTD7RSA5FHx5YwWtjDnEEkIIikFgWHR4P6fqjw1PPLlqYkxeOb++wAauAssat0YClCy8Y3C5SxgSkjibQ==",
"dev": true, "dev": true,
"license": "ISC" "license": "ISC"
}, },
@@ -6915,9 +6915,9 @@
} }
}, },
"node_modules/http-parser-js": { "node_modules/http-parser-js": {
"version": "0.5.9", "version": "0.5.10",
"resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz",
"integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==", "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
@@ -6937,9 +6937,9 @@
} }
}, },
"node_modules/http-proxy-middleware": { "node_modules/http-proxy-middleware": {
"version": "2.0.7", "version": "2.0.9",
"resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz",
"integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@@ -11593,9 +11593,9 @@
"license": "BSD-2-Clause" "license": "BSD-2-Clause"
}, },
"node_modules/webpack": { "node_modules/webpack": {
"version": "5.98.0", "version": "5.99.5",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.98.0.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.5.tgz",
"integrity": "sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==", "integrity": "sha512-q+vHBa6H9qwBLUlHL4Y7L0L1/LlyBKZtS9FHNCQmtayxjI5RKC9yD8gpvLeqGv5lCQp1Re04yi0MF40pf30Pvg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {

View File

@@ -3,8 +3,8 @@
"administrations_page_title": "\u8d22\u52a1\u7ba1\u7406", "administrations_page_title": "\u8d22\u52a1\u7ba1\u7406",
"administrations_index_menu": "\u8d22\u52a1\u7ba1\u7406", "administrations_index_menu": "\u8d22\u52a1\u7ba1\u7406",
"temp_administrations_introduction": "Firefly III \u4e0d\u4e45\u5c06\u80fd\u591f\u7ba1\u7406\u591a\u4e2a\u8d22\u52a1\u7ba1\u7406\u3002 \u73b0\u5728\uff0c\u4f60\u53ea\u80fd\u6709\u4e00\u4e2a\u8d22\u52a1\u7ba1\u7406\u3002\u4f60\u53ef\u4ee5\u8bbe\u7f6e\u8fd9\u4e2a\u8d22\u52a1\u7ba1\u7406\u7684\u6807\u9898\u53ca\u5176\u5f53\u5730\u8d27\u5e01\u3002 \u8fd9\u5c06\u53d6\u4ee3\u60a8\u5148\u524d\u8bbe\u7f6e\u7684\u201c\u9ed8\u8ba4\u8d27\u5e01\u201d\u3002 \u8fd9\u79cd\u8bbe\u7f6e\u73b0\u5728\u4e0e\u8d22\u52a1\u7ba1\u7406\u6302\u94a9\uff0c\u6bcf\u4e2a\u7ba1\u7406\u53ef\u4ee5\u6709\u4e0d\u540c\u7684\u8bbe\u7f6e\u3002", "temp_administrations_introduction": "Firefly III \u4e0d\u4e45\u5c06\u80fd\u591f\u7ba1\u7406\u591a\u4e2a\u8d22\u52a1\u7ba1\u7406\u3002 \u73b0\u5728\uff0c\u4f60\u53ea\u80fd\u6709\u4e00\u4e2a\u8d22\u52a1\u7ba1\u7406\u3002\u4f60\u53ef\u4ee5\u8bbe\u7f6e\u8fd9\u4e2a\u8d22\u52a1\u7ba1\u7406\u7684\u6807\u9898\u53ca\u5176\u5f53\u5730\u8d27\u5e01\u3002 \u8fd9\u5c06\u53d6\u4ee3\u60a8\u5148\u524d\u8bbe\u7f6e\u7684\u201c\u9ed8\u8ba4\u8d27\u5e01\u201d\u3002 \u8fd9\u79cd\u8bbe\u7f6e\u73b0\u5728\u4e0e\u8d22\u52a1\u7ba1\u7406\u6302\u94a9\uff0c\u6bcf\u4e2a\u7ba1\u7406\u53ef\u4ee5\u6709\u4e0d\u540c\u7684\u8bbe\u7f6e\u3002",
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.", "administration_currency_form_help": "\u5982\u679c\u60a8\u66f4\u6539\u672c\u5730\u8d27\u5e01\uff0c\u9875\u9762\u52a0\u8f7d\u53ef\u80fd\u9700\u8981\u5f88\u957f\u65f6\u95f4\uff0c\u56e0\u4e3a\u4ea4\u6613\u53ef\u80fd\u9700\u8981\u8f6c\u6362\u4e3a\u60a8\u7684(\u65b0)\u672c\u5730\u8d27\u5e01\u3002",
"administrations_page_edit_sub_title_js": "Edit financial administration \"{title}\"", "administrations_page_edit_sub_title_js": "\u7f16\u8f91\u8d22\u52a1\u7ba1\u7406{title}",
"table": "\u8868\u683c", "table": "\u8868\u683c",
"welcome_back": "\u4eca\u5929\u7406\u8d22\u4e86\u5417\uff1f", "welcome_back": "\u4eca\u5929\u7406\u8d22\u4e86\u5417\uff1f",
"flash_error": "\u9519\u8bef\uff01", "flash_error": "\u9519\u8bef\uff01",
@@ -140,12 +140,12 @@
"visit_webhook_url": "\u8bbf\u95ee webhook URL", "visit_webhook_url": "\u8bbf\u95ee webhook URL",
"reset_webhook_secret": "\u91cd\u7f6e webhook \u5bc6\u94a5", "reset_webhook_secret": "\u91cd\u7f6e webhook \u5bc6\u94a5",
"header_exchange_rates": "\u6c47\u7387", "header_exchange_rates": "\u6c47\u7387",
"exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in <a href=\"https:\/\/docs.firefly-iii.org\/explanation\/financial-concepts\/exchange-rates\/\">the documentation<\/a>.", "exchange_rates_intro": "Frefly III \u652f\u6301\u4e0b\u8f7d\u548c\u4f7f\u7528\u6c47\u7387\u3002\u8bf7\u5728 <a href=\"https:\/\/docs.firefly-iii.org\/explanation\/financial-concepts\/exchange-rates\/\">\u8fd9\u4efd\u6587\u6863<\/a>\u4e2d\u9605\u8bfb\u66f4\u591a\u3002",
"exchange_rates_from_to": "Between {from} and {to} (and the other way around)", "exchange_rates_from_to": "\u4ece {from} \u5230 {to} \u7684\uff08\u4ee5\u53ca\u53cd\u5411\uff09",
"exchange_rates_intro_rates": "Firefly III uses the following exchange rates. The inverse is automatically calculated when it is not provided. If no exchange rate exists for the date of the transaction, Firefly III will go back in time to find one. If none are present, the rate \"1\" will be used.", "exchange_rates_intro_rates": "Firefly III \u91c7\u7528\u4ee5\u4e0b\u6c47\u7387\u3002\u5982\u679c\u6ca1\u6709\u63d0\u4f9b\u53cd\u5411\u6c47\u7387\u5219\u81ea\u52a8\u8ba1\u7b97\u3002 \u5982\u679c\u4ea4\u6613\u65e5\u671f\u4e0d\u5b58\u5728\u6c47\u7387\uff0cFifrefly III \u5c06\u5bfb\u627e\u524d\u4e00\u4e2a\u53ef\u7528\u65e5\u671f\u7684\u6c47\u7387\u3002 \u5982\u679c\u6ca1\u6709\uff0c\u5c06\u6309\u6c47\u7387\u4e3a 1 \u8fdb\u884c\u8ba1\u7b97\u3002",
"header_exchange_rates_rates": "\u6c47\u7387", "header_exchange_rates_rates": "\u6c47\u7387",
"header_exchange_rates_table": "Table with exchange rates", "header_exchange_rates_table": "\u6c47\u7387\u8868",
"help_rate_form": "On this day, how many {to} will you get for one {from}?", "help_rate_form": "\u5728\u8fd9\u4e00\u5929\uff0c\u4f60\u80fd\u4ece\u6bcf 1 \u4e2a\u5355\u4f4d\u7684 {from} \u83b7\u5f97\u591a\u5c11 {to}\uff1f",
"add_new_rate": "\u6dfb\u52a0\u65b0\u6c47\u7387", "add_new_rate": "\u6dfb\u52a0\u65b0\u6c47\u7387",
"save_new_rate": "\u4fdd\u5b58\u65b0\u6c47\u7387" "save_new_rate": "\u4fdd\u5b58\u65b0\u6c47\u7387"
}, },