Update meta data for new release.

This commit is contained in:
James Cole
2021-03-14 20:03:27 +01:00
parent 5eb1f93851
commit 1817160d48
66 changed files with 1578 additions and 1117 deletions

View File

@@ -116,23 +116,26 @@ class UpdateRequest extends FormRequest
/** @var array $repetition */
foreach ($repetitions as $repetition) {
$current = [];
if(array_key_exists('type', $repetition)) {
if (array_key_exists('type', $repetition)) {
$current['type'] = $repetition['type'];
}
if(array_key_exists('moment', $repetition)) {
if (array_key_exists('moment', $repetition)) {
$current['moment'] = (string)$repetition['moment'];
}
if(array_key_exists('skip', $repetition)) {
if (array_key_exists('skip', $repetition)) {
$current['skip'] = (int)$repetition['skip'];
}
if(array_key_exists('weekend', $repetition)) {
$current['weekend'] = (int) $repetition['weekend'];
if (array_key_exists('weekend', $repetition)) {
$current['weekend'] = (int)$repetition['weekend'];
}
$return[] = $current;
}
if (0 === count($return)) {
return null;
}
return $return;
}
@@ -196,7 +199,7 @@ class UpdateRequest extends FormRequest
$validator->after(
function (Validator $validator) {
//$this->validateOneRecurrenceTransaction($validator);
$this->validateOneRepetitionUpdate($validator);
//$this->validateOneRepetitionUpdate($validator);
$this->validateRecurrenceRepetition($validator);
$this->validateRepetitionMoment($validator);
$this->validateForeignCurrencyInformation($validator);

View File

@@ -56,7 +56,7 @@ class BillUpdateService
if (array_key_exists('currency_id', $data) || array_key_exists('currency_code', $data)) {
$factory = app(TransactionCurrencyFactory::class);
$currency = $factory->find($data['currency_id'] ?? null, $data['currency_code'] ?? null) ?? app('amount')->getDefaultCurrencyByUser($bill->user);
$currency = $factory->find((int) ($data['currency_id'] ?? null), $data['currency_code'] ?? null) ?? app('amount')->getDefaultCurrencyByUser($bill->user);
// enable the currency if it isn't.
$currency->enabled = true;

View File

@@ -79,15 +79,18 @@ trait CalculateXOccurrencesSince
*/
protected function getXMonthlyOccurrencesSince(Carbon $date, Carbon $afterDate, int $count, int $skipMod, string $moment): array
{
Log::debug(sprintf('Now in %s', __METHOD__));
Log::debug(sprintf('Now in %s(%s, %s, %d)', __METHOD__, $date->format('Y-m-d'), $afterDate->format('Y-m-d'), $count));
$return = [];
$mutator = clone $date;
$total = 0;
$attempts = 0;
$dayOfMonth = (int)$moment;
$dayOfMonth = 0 === $dayOfMonth ? 1 : $dayOfMonth;
if ($mutator->day > $dayOfMonth) {
Log::debug(sprintf('%d is after %d, add a month. Mutator is now', $mutator->day, $dayOfMonth));
// day has passed already, add a month.
$mutator->addMonth();
Log::debug(sprintf('%s', $mutator->format('Y-m-d')));
}
while ($total < $count) {
@@ -98,7 +101,8 @@ trait CalculateXOccurrencesSince
$total++;
}
$attempts++;
$mutator->endOfMonth()->addDay();
$mutator = $mutator->endOfMonth()->addDay();
Log::debug(sprintf('Mutator is now %s', $mutator->format('Y-m-d')));
}
return $return;
@@ -213,7 +217,9 @@ trait CalculateXOccurrencesSince
$date = new Carbon($moment);
$date->year = $mutator->year;
if ($mutator > $date) {
Log::debug(sprintf('mutator (%s) > date (%s), so add a year to date (%s)', $mutator->format('Y-m-d'), $date->format('Y-m-d'), $date->format('Y-m-d'),));
Log::debug(
sprintf('mutator (%s) > date (%s), so add a year to date (%s)', $mutator->format('Y-m-d'), $date->format('Y-m-d'), $date->format('Y-m-d'),)
);
$date->addYear();
Log::debug(sprintf('Date is now %s', $date->format('Y-m-d')));
}

View File

@@ -7,13 +7,25 @@ This project adheres to [Semantic Versioning](http://semver.org/).
## 5.5.0 (API 1.5.0) 2021-xx-xx
### Added
- [Webhooks](https://docs.firefly-iii.org/firefly-iii/pages-and-features/webhooks/)
- [Issue 3717](https://github.com/firefly-iii/firefly-iii/issues/3717) Allow exporting in the CSV all the optional metadata
- Can search for transactions using `id:123`.
- [Issue 3717](https://github.com/firefly-iii/firefly-iii/issues/3717) Also export all optional metadata in the CSV files.
- [Issue 4007](https://github.com/firefly-iii/firefly-iii/issues/4007) Whe updating transactions using a rule, the message will return the number of changed transactions.
- [Issue 4334](https://github.com/firefly-iii/firefly-iii/issues/4334) Added the Portuguese language.
- [Issue 4338](https://github.com/firefly-iii/firefly-iii/issues/4338) The recurring transactions calendar was off by one day.
- [Issue 4339](https://github.com/firefly-iii/firefly-iii/issues/4339) When deleting recurring transactions you would be redirected to the deleted recurring transaction.
- [Issue 4340](https://github.com/firefly-iii/firefly-iii/issues/4340) When running rules, any date related actions and triggers will pick up the correct date.
- [Issue 4406](https://github.com/firefly-iii/firefly-iii/issues/4406) SQL errors when submitting large amounts to the budget overview.
- [Issue 4412](https://github.com/firefly-iii/firefly-iii/issues/4412) During the cron job a NULL pointer could pop up.
- [Issue 4488](https://github.com/firefly-iii/firefly-iii/issues/4488) The Japanese Yen was corrected to zero decimals.
- [Issue 4503](https://github.com/firefly-iii/firefly-iii/issues/4503) When bills skip a moment the amounts would be off.
- Firefly III now supports [webhooks](https://docs.firefly-iii.org/firefly-iii/pages-and-features/webhooks/).
- The search now also supports searching for transactions using `id:123`.
### Changed
- OAuth is visible for LDAP users.
- If you set `FIREFLY_III_LAYOUT=v2`, Firefly III will show you the new layout on pages where it's available.
- OAuth settings are visible for LDAP users.
- If you set `FIREFLY_III_LAYOUT=v2`, Firefly III will show you the new layout on pages where it's available.
### Deprecated
- The current layout will no longer receive fixes and changes.
### Fixed
- [Issue 4045](https://github.com/firefly-iii/firefly-iii/issues/4045) Error message for "Amount Missing" doesn't have a look up value
@@ -38,15 +50,17 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- PHP configs that have "MB" as size indicator would be parsed badly.
### API
*Lots of API changes, make sure you read [the documentation](https://api-docs.firefly-iii.org/).*
- [Issue 4050](https://github.com/firefly-iii/firefly-iii/issues/4050) Updated Transaction Search API to set limit from user preferences
- [Issue 4113](https://github.com/firefly-iii/firefly-iii/issues/4113) Piggy Bank API Deletes Some Piggy Metadata
- [Issue 4122](https://github.com/firefly-iii/firefly-iii/issues/4122) Remove reconciliation accounts from autocomplete
- [Issue 4195](https://github.com/firefly-iii/firefly-iii/issues/4195) User endpoint broken
- [Issue 4199](https://github.com/firefly-iii/firefly-iii/issues/4199) Unable to update tags using API
- API endpoint for budget limits applicable to a date range now has budget info.
- Add period and auto generated to budget limit
- Add spent to budget limit.
- [Issue 4394](https://github.com/firefly-iii/firefly-iii/issues/4394) Storing budgets works again.
- [Issue 4426](https://github.com/firefly-iii/firefly-iii/issues/4426) Storing accounts would lead to bad capitalization in liability type.
- [Issue 4435](https://github.com/firefly-iii/firefly-iii/issues/4435) Storing piggy banks with object group information would fail.
## 5.4.6 (API 1.4.0) - 2020-10-07

77
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "7294670d4c743796b6929563ab61451d",
"content-hash": "897bc804b3a43ff012021d9a363d9e53",
"packages": [
{
"name": "bacon/bacon-qr-code",
@@ -3267,16 +3267,16 @@
},
{
"name": "phpseclib/phpseclib",
"version": "3.0.5",
"version": "3.0.6",
"source": {
"type": "git",
"url": "https://github.com/phpseclib/phpseclib.git",
"reference": "7c751ea006577e4c2e83326d90c8b1e8c11b8ede"
"reference": "906a5fafabe5e6ba51ef3dc65b2722a677908837"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/7c751ea006577e4c2e83326d90c8b1e8c11b8ede",
"reference": "7c751ea006577e4c2e83326d90c8b1e8c11b8ede",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/906a5fafabe5e6ba51ef3dc65b2722a677908837",
"reference": "906a5fafabe5e6ba51ef3dc65b2722a677908837",
"shasum": ""
},
"require": {
@@ -3358,7 +3358,7 @@
],
"support": {
"issues": "https://github.com/phpseclib/phpseclib/issues",
"source": "https://github.com/phpseclib/phpseclib/tree/3.0.5"
"source": "https://github.com/phpseclib/phpseclib/tree/3.0.6"
},
"funding": [
{
@@ -3374,7 +3374,7 @@
"type": "tidelift"
}
],
"time": "2021-02-12T16:18:16+00:00"
"time": "2021-03-10T13:58:31+00:00"
},
{
"name": "pragmarx/google2fa",
@@ -8253,58 +8253,6 @@
},
"time": "2020-07-09T08:09:16+00:00"
},
{
"name": "johnkary/phpunit-speedtrap",
"version": "v3.3.0",
"source": {
"type": "git",
"url": "https://github.com/johnkary/phpunit-speedtrap.git",
"reference": "9ba81d42676da31366c85d3ff8c10a8352d02030"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/johnkary/phpunit-speedtrap/zipball/9ba81d42676da31366c85d3ff8c10a8352d02030",
"reference": "9ba81d42676da31366c85d3ff8c10a8352d02030",
"shasum": ""
},
"require": {
"php": ">=7.1",
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "4.0-dev"
}
},
"autoload": {
"psr-4": {
"JohnKary\\PHPUnit\\Listener\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "John Kary",
"email": "john@johnkary.net"
}
],
"description": "Find and report on slow tests in your PHPUnit test suite",
"homepage": "https://github.com/johnkary/phpunit-speedtrap",
"keywords": [
"phpunit",
"profile",
"slow"
],
"support": {
"issues": "https://github.com/johnkary/phpunit-speedtrap/issues",
"source": "https://github.com/johnkary/phpunit-speedtrap/tree/v3.3.0"
},
"time": "2020-12-18T16:20:16+00:00"
},
{
"name": "justinrainbow/json-schema",
"version": "5.2.10",
@@ -9751,12 +9699,12 @@
"source": {
"type": "git",
"url": "https://github.com/Roave/SecurityAdvisories.git",
"reference": "672ed7cb0191a12cf8b12b752c9ef74bb5d21cec"
"reference": "43a315341710475e88006a0e55864b348d3d781c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/672ed7cb0191a12cf8b12b752c9ef74bb5d21cec",
"reference": "672ed7cb0191a12cf8b12b752c9ef74bb5d21cec",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/43a315341710475e88006a0e55864b348d3d781c",
"reference": "43a315341710475e88006a0e55864b348d3d781c",
"shasum": ""
},
"conflict": {
@@ -9846,6 +9794,7 @@
"illuminate/database": "<6.20.14|>=7,<7.30.4|>=8,<8.24",
"illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15",
"illuminate/view": ">=7,<7.1.2",
"impresscms/impresscms": "<=1.4.2",
"ivankristianto/phpwhois": "<=4.3",
"james-heinrich/getid3": "<1.9.9",
"joomla/archive": "<1.1.10",
@@ -9921,7 +9870,7 @@
"sensiolabs/connect": "<4.2.3",
"serluck/phpwhois": "<=4.2.6",
"shopware/core": "<=6.3.4",
"shopware/platform": "<=6.3.5",
"shopware/platform": "<=6.3.5.1",
"shopware/shopware": "<5.6.9",
"silverstripe/admin": ">=1.0.3,<1.0.4|>=1.1,<1.1.1",
"silverstripe/assets": ">=1,<1.4.7|>=1.5,<1.5.2",
@@ -10073,7 +10022,7 @@
"type": "tidelift"
}
],
"time": "2021-03-11T18:09:51+00:00"
"time": "2021-03-13T00:05:05+00:00"
},
{
"name": "sebastian/cli-parser",

View File

@@ -99,9 +99,9 @@ return [
'webhooks' => false,
],
'version' => '5.5.0-beta.1',
'version' => '5.5.0-beta.2',
'api_version' => '1.5.0',
'db_version' => 15,
'db_version' => 16,
'maxUploadSize' => 1073741824, // 1 GB
'send_error_message' => env('SEND_ERROR_MESSAGE', true),
'site_owner' => env('SITE_OWNER', ''),

2
public/v1/js/app.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -5,26 +5,26 @@
*/
/*!
* Sizzle CSS Selector Engine v2.3.5
* Sizzle CSS Selector Engine v2.3.6
* https://sizzlejs.com/
*
* Copyright JS Foundation and other contributors
* Released under the MIT license
* https://js.foundation/
*
* Date: 2020-03-14
* Date: 2021-02-16
*/
/*!
* jQuery JavaScript Library v3.5.1
* jQuery JavaScript Library v3.6.0
* https://jquery.com/
*
* Includes Sizzle.js
* https://sizzlejs.com/
*
* Copyright JS Foundation and other contributors
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license
* https://jquery.org/license
*
* Date: 2020-05-04T22:49Z
* Date: 2021-03-02T17:08Z
*/

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -30,7 +30,7 @@
"category": "\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f",
"attachments": "\u041f\u0440\u0438\u043a\u0430\u0447\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435",
"notes": "\u0411\u0435\u043b\u0435\u0436\u043a\u0438",
"external_uri": "\u0412\u044a\u043d\u0448\u043d\u043e URI",
"external_uri": "External URL",
"update_transaction": "\u041e\u0431\u043d\u043e\u0432\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f\u0442\u0430",
"after_update_create_another": "\u0421\u043b\u0435\u0434 \u043e\u0431\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435\u0442\u043e \u0441\u0435 \u0432\u044a\u0440\u043d\u0435\u0442\u0435 \u0442\u0443\u043a, \u0437\u0430 \u0434\u0430 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0438\u0442\u0435 \u0441 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f\u0442\u0430.",
"store_as_new": "\u0421\u044a\u0445\u0440\u0430\u043d\u0435\u0442\u0435 \u043a\u0430\u0442\u043e \u043d\u043e\u0432\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f, \u0432\u043c\u0435\u0441\u0442\u043e \u0434\u0430 \u044f \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u0442\u0435.",

View File

@@ -30,7 +30,7 @@
"category": "Kategorie",
"attachments": "P\u0159\u00edlohy",
"notes": "Pozn\u00e1mky",
"external_uri": "External URI",
"external_uri": "External URL",
"update_transaction": "Update transaction",
"after_update_create_another": "After updating, return here to continue editing.",
"store_as_new": "Store as a new transaction instead of updating.",

View File

@@ -30,7 +30,7 @@
"category": "Kategorie",
"attachments": "Anh\u00e4nge",
"notes": "Notizen",
"external_uri": "Externe URI",
"external_uri": "Externe URL",
"update_transaction": "Buchung aktualisieren",
"after_update_create_another": "Nach dem Aktualisieren hierher zur\u00fcckkehren, um weiter zu bearbeiten.",
"store_as_new": "Als neue Buchung speichern statt zu aktualisieren.",

View File

@@ -30,7 +30,7 @@
"category": "\u039a\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1",
"attachments": "\u03a3\u03c5\u03bd\u03b7\u03bc\u03bc\u03ad\u03bd\u03b1",
"notes": "\u03a3\u03b7\u03bc\u03b5\u03b9\u03ce\u03c3\u03b5\u03b9\u03c2",
"external_uri": "\u0395\u03be\u03c9\u03c4\u03b5\u03c1\u03b9\u03ba\u03cc URI",
"external_uri": "External URL",
"update_transaction": "\u0395\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae\u03c2",
"after_update_create_another": "\u039c\u03b5\u03c4\u03ac \u03c4\u03b7\u03bd \u03b5\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7, \u03b5\u03c0\u03b9\u03c3\u03c4\u03c1\u03ad\u03c8\u03c4\u03b5 \u03b5\u03b4\u03ce \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1.",
"store_as_new": "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c9\u03c2 \u03bd\u03ad\u03b1 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae \u03b1\u03bd\u03c4\u03af \u03b3\u03b9\u03b1 \u03b5\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7.",

View File

@@ -30,7 +30,7 @@
"category": "Category",
"attachments": "Attachments",
"notes": "Notes",
"external_uri": "External URI",
"external_uri": "External URL",
"update_transaction": "Update transaction",
"after_update_create_another": "After updating, return here to continue editing.",
"store_as_new": "Store as a new transaction instead of updating.",

View File

@@ -30,7 +30,7 @@
"category": "Category",
"attachments": "Attachments",
"notes": "Notes",
"external_uri": "External URI",
"external_uri": "External URL",
"update_transaction": "Update transaction",
"after_update_create_another": "After updating, return here to continue editing.",
"store_as_new": "Store as a new transaction instead of updating.",

View File

@@ -30,7 +30,7 @@
"category": "Categoria",
"attachments": "Archivos adjuntos",
"notes": "Notas",
"external_uri": "URI externa",
"external_uri": "External URL",
"update_transaction": "Actualizar transacci\u00f3n",
"after_update_create_another": "Despu\u00e9s de actualizar, vuelve aqu\u00ed para continuar editando.",
"store_as_new": "Almacenar como una nueva transacci\u00f3n en lugar de actualizar.",

View File

@@ -30,7 +30,7 @@
"category": "Kategoria",
"attachments": "Liitteet",
"notes": "Muistiinpanot",
"external_uri": "External URI",
"external_uri": "External URL",
"update_transaction": "P\u00e4ivit\u00e4 tapahtuma",
"after_update_create_another": "P\u00e4ivityksen j\u00e4lkeen, palaa takaisin jatkamaan muokkausta.",
"store_as_new": "Tallenna uutena tapahtumana p\u00e4ivityksen sijaan.",

View File

@@ -30,7 +30,7 @@
"category": "Cat\u00e9gorie",
"attachments": "Pi\u00e8ces jointes",
"notes": "Notes",
"external_uri": "URI externe",
"external_uri": "URL externe",
"update_transaction": "Mettre \u00e0 jour l'op\u00e9ration",
"after_update_create_another": "Apr\u00e8s la mise \u00e0 jour, revenir ici pour continuer l'\u00e9dition.",
"store_as_new": "Enregistrer comme une nouvelle op\u00e9ration au lieu de mettre \u00e0 jour.",

View File

@@ -30,7 +30,7 @@
"category": "Kateg\u00f3ria",
"attachments": "Mell\u00e9kletek",
"notes": "Megjegyz\u00e9sek",
"external_uri": "K\u00fcls\u0151 hivatkoz\u00e1s",
"external_uri": "External URL",
"update_transaction": "Tranzakci\u00f3 friss\u00edt\u00e9se",
"after_update_create_another": "A friss\u00edt\u00e9s ut\u00e1n t\u00e9rjen vissza ide a szerkeszt\u00e9s folytat\u00e1s\u00e1hoz.",
"store_as_new": "T\u00e1rol\u00e1s \u00faj tranzakci\u00f3k\u00e9nt friss\u00edt\u00e9s helyett.",

View File

@@ -30,7 +30,7 @@
"category": "Categoria",
"attachments": "Allegati",
"notes": "Note",
"external_uri": "URI esterno",
"external_uri": "URL esterno",
"update_transaction": "Aggiorna transazione",
"after_update_create_another": "Dopo l'aggiornamento, torna qui per continuare la modifica.",
"store_as_new": "Salva come nuova transazione invece di aggiornarla.",

View File

@@ -30,7 +30,7 @@
"category": "Kategori",
"attachments": "Vedlegg",
"notes": "Notater",
"external_uri": "External URI",
"external_uri": "External URL",
"update_transaction": "Update transaction",
"after_update_create_another": "After updating, return here to continue editing.",
"store_as_new": "Store as a new transaction instead of updating.",

View File

@@ -30,7 +30,7 @@
"category": "Categorie",
"attachments": "Bijlagen",
"notes": "Notities",
"external_uri": "Externe URI",
"external_uri": "Externe URL",
"update_transaction": "Update transactie",
"after_update_create_another": "Na het opslaan terug om door te gaan met wijzigen.",
"store_as_new": "Opslaan als nieuwe transactie ipv de huidige bij te werken.",

View File

@@ -30,7 +30,7 @@
"category": "Kategoria",
"attachments": "Za\u0142\u0105czniki",
"notes": "Notatki",
"external_uri": "Zewn\u0119trzne URI",
"external_uri": "Zewn\u0119trzny adres URL",
"update_transaction": "Zaktualizuj transakcj\u0119",
"after_update_create_another": "Po aktualizacji wr\u00f3\u0107 tutaj, aby kontynuowa\u0107 edycj\u0119.",
"store_as_new": "Zapisz jako now\u0105 zamiast aktualizowa\u0107.",

View File

@@ -12,10 +12,10 @@
"transaction_updated_link": "<a href=\"transactions\/show\/{ID}\">Transa\u00e7\u00e3o #{ID}<\/a> foi atualizada.",
"transaction_new_stored_link": "<a href=\"transactions\/show\/{ID}\">Transa\u00e7\u00e3o #{ID}<\/a> foi salva.",
"transaction_journal_information": "Informa\u00e7\u00e3o da transa\u00e7\u00e3o",
"no_budget_pointer": "You seem to have no budgets yet. You should create some on the <a href=\"budgets\">budgets<\/a>-page. Budgets can help you keep track of expenses.",
"no_bill_pointer": "You seem to have no bills yet. You should create some on the <a href=\"bills\">bills<\/a>-page. Bills can help you keep track of expenses.",
"no_budget_pointer": "Parece que voc\u00ea ainda n\u00e3o tem or\u00e7amentos. Voc\u00ea deve criar alguns na p\u00e1gina de <a href=\"budgets\">or\u00e7amentos<\/a>. Or\u00e7amentos podem ajud\u00e1-lo a manter o controle das despesas.",
"no_bill_pointer": "Parece que voc\u00ea ainda n\u00e3o tem contas. Voc\u00ea deve criar algumas em <a href=\"bills\">contas<\/a>. Contas podem ajudar voc\u00ea a manter o controle de despesas.",
"source_account": "Conta origem",
"hidden_fields_preferences": "You can enable more transaction options in your <a href=\"preferences\">preferences<\/a>.",
"hidden_fields_preferences": "Voc\u00ea pode habilitar mais op\u00e7\u00f5es de transa\u00e7\u00e3o em suas <a href=\"preferences\">prefer\u00eancias<\/a>.",
"destination_account": "Conta destino",
"add_another_split": "Adicionar outra divis\u00e3o",
"submission": "Envio",
@@ -26,14 +26,14 @@
"date": "Data",
"tags": "Tags",
"no_budget": "(sem or\u00e7amento)",
"no_bill": "(sem fatura)",
"no_bill": "(sem conta)",
"category": "Categoria",
"attachments": "Anexos",
"notes": "Notas",
"external_uri": "URI externo",
"external_uri": "URL externa",
"update_transaction": "Atualizar transa\u00e7\u00e3o",
"after_update_create_another": "Depois de atualizar, retorne aqui para continuar editando.",
"store_as_new": "Store as a new transaction instead of updating.",
"store_as_new": "Armazene como uma nova transa\u00e7\u00e3o em vez de atualizar.",
"split_title_help": "Se voc\u00ea criar uma transa\u00e7\u00e3o dividida, \u00e9 necess\u00e1rio haver uma descri\u00e7\u00e3o global para todas as partes da transa\u00e7\u00e3o.",
"none_in_select_list": "(nenhum)",
"no_piggy_bank": "(nenhum cofrinho)",
@@ -43,9 +43,9 @@
"source_account_reconciliation": "Voc\u00ea n\u00e3o pode editar a conta de origem de uma transa\u00e7\u00e3o de reconcilia\u00e7\u00e3o.",
"budget": "Or\u00e7amento",
"bill": "Fatura",
"you_create_withdrawal": "Voc\u00ea est\u00e1 criando uma retirada.",
"you_create_withdrawal": "Voc\u00ea est\u00e1 criando uma sa\u00edda.",
"you_create_transfer": "Voc\u00ea est\u00e1 criando uma transfer\u00eancia.",
"you_create_deposit": "Voc\u00ea est\u00e1 criando um deposito.",
"you_create_deposit": "Voc\u00ea est\u00e1 criando uma entrada.",
"edit": "Editar",
"delete": "Apagar",
"name": "Nome",
@@ -83,8 +83,8 @@
"profile_oauth_confidential": "Confidencial",
"profile_oauth_confidential_help": "Exige que o cliente se autentique com um segredo. Clientes confidenciais podem manter credenciais de forma segura sem exp\u00f4-las \u00e0 partes n\u00e3o autorizadas. Aplica\u00e7\u00f5es p\u00fablicas, como aplica\u00e7\u00f5es de \u00e1rea de trabalho nativas ou JavaScript SPA, s\u00e3o incapazes de manter segredos com seguran\u00e7a.",
"multi_account_warning_unknown": "Dependendo do tipo de transa\u00e7\u00e3o que voc\u00ea criar, a conta de origem e\/ou de destino das divis\u00f5es subsequentes pode ser sobrescrita pelo que estiver definido na primeira divis\u00e3o da transa\u00e7\u00e3o.",
"multi_account_warning_withdrawal": "Tenha em mente que a conta de origem das subsequentes divis\u00f5es ser\u00e1 sobrescrita pelo que estiver definido na primeira divis\u00e3o da retirada.",
"multi_account_warning_deposit": "Tenha em mente que a conta de destino das divis\u00f5es subsequentes ser\u00e1 sobrescrita pelo que estiver definido na primeira divis\u00e3o do dep\u00f3sito.",
"multi_account_warning_withdrawal": "Tenha em mente que a conta de origem das subsequentes divis\u00f5es ser\u00e1 sobrescrita pelo que estiver definido na primeira divis\u00e3o da sa\u00edda.",
"multi_account_warning_deposit": "Tenha em mente que a conta de destino das divis\u00f5es subsequentes ser\u00e1 sobrescrita pelo que estiver definido na primeira divis\u00e3o da entrada.",
"multi_account_warning_transfer": "Tenha em mente que a conta de origem + de destino das divis\u00f5es subsequentes ser\u00e1 sobrescrita pelo que for definido na primeira divis\u00e3o da transfer\u00eancia."
},
"form": {

View File

@@ -0,0 +1,103 @@
{
"firefly": {
"welcome_back": "Tudo bem?",
"flash_error": "Erro!",
"flash_success": "Sucesso!",
"close": "Fechar",
"split_transaction_title": "Descri\u00e7\u00e3o da transac\u00e7\u00e3o dividida",
"errors_submission": "Aconteceu algo errado com a sua submiss\u00e3o. Por favor, verifique os erros.",
"split": "Dividir",
"single_split": "Dividir",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transa\u00e7\u00e3o #{ID} (\"{title}\")<\/a> foi guardada.",
"transaction_updated_link": "<a href=\"transactions\/show\/{ID}\">Transa\u00e7\u00e3o#{ID}<\/a> foi atualizada.",
"transaction_new_stored_link": "<a href=\"transactions\/show\/{ID}\">Transa\u00e7\u00e3o#{ID}<\/a> foi guardada.",
"transaction_journal_information": "Informacao da transaccao",
"no_budget_pointer": "Parece que ainda n\u00e3o tem or\u00e7amentos. Pode criar-los na p\u00e1gina de <a href=\"budgets\">or\u00e7amentos<\/a>. Or\u00e7amentos podem ajud\u00e1-lo a controlar as despesas.",
"no_bill_pointer": "Parece que ainda n\u00e3o tem contas. Pode criar-las na p\u00e1gina de <a href=\"bills\">contas<\/a>. Contas podem ajud\u00e1-lo a controlar as despesas.",
"source_account": "Conta de origem",
"hidden_fields_preferences": "Pode ativar mais op\u00e7\u00f5es de transa\u00e7\u00f5es nas suas <a href=\"preferences\">prefer\u00eancias<\/a>.",
"destination_account": "Conta de destino",
"add_another_split": "Adicionar outra divis\u00e3o",
"submission": "Submiss\u00e3o",
"create_another": "Depois de guardar, voltar aqui para criar outra.",
"reset_after": "Repor o formul\u00e1rio ap\u00f3s o envio",
"submit": "Enviar",
"amount": "Montante",
"date": "Data",
"tags": "Tags",
"no_budget": "(sem orcamento)",
"no_bill": "(sem contas)",
"category": "Categoria",
"attachments": "Anexos",
"notes": "Notas",
"external_uri": "URL Externo",
"update_transaction": "Actualizar transac\u00e7\u00e3o",
"after_update_create_another": "Ap\u00f3s a atualiza\u00e7\u00e3o, regresse aqui para continuar a editar.",
"store_as_new": "Guarde como uma nova transa\u00e7\u00e3o em vez de atualizar.",
"split_title_help": "Se criar uma transac\u00e7\u00e3o dividida, deve haver uma descri\u00e7\u00e3o global para todas as partes da transac\u00e7\u00e3o.",
"none_in_select_list": "(nenhum)",
"no_piggy_bank": "(nenhum mealheiro)",
"description": "Descricao",
"split_transaction_title_help": "Se criar uma transac\u00e7\u00e3o dividida, deve haver uma descri\u00e7\u00e3o global para todas as partes da transac\u00e7\u00e3o.",
"destination_account_reconciliation": "N\u00e3o pode editar a conta de destino de uma transac\u00e7\u00e3o de reconcilia\u00e7\u00e3o.",
"source_account_reconciliation": "N\u00e3o pode editar a conta de origem de uma transac\u00e7\u00e3o de reconcilia\u00e7\u00e3o.",
"budget": "Orcamento",
"bill": "Conta",
"you_create_withdrawal": "Est\u00e1 a criar um levantamento.",
"you_create_transfer": "Est\u00e1 a criar uma transfer\u00eancia.",
"you_create_deposit": "Est\u00e1 a criar um deposito.",
"edit": "Alterar",
"delete": "Apagar",
"name": "Nome",
"profile_whoops": "Oops!",
"profile_something_wrong": "Algo correu mal!",
"profile_try_again": "Algo correu mal. Por favor, tente novamente.",
"profile_oauth_clients": "Clientes OAuth",
"profile_oauth_no_clients": "N\u00e3o criou nenhum cliente OAuth.",
"profile_oauth_clients_header": "Clientes",
"profile_oauth_client_id": "ID do Cliente",
"profile_oauth_client_name": "Nome",
"profile_oauth_client_secret": "C\u00f3digo secreto",
"profile_oauth_create_new_client": "Criar Novo Cliente",
"profile_oauth_create_client": "Criar Cliente",
"profile_oauth_edit_client": "Editar Cliente",
"profile_oauth_name_help": "Algo que os utilizadores reconhe\u00e7am e confiem.",
"profile_oauth_redirect_url": "URL de redireccionamento",
"profile_oauth_redirect_url_help": "URL de callback de autoriza\u00e7\u00e3o da aplica\u00e7\u00e3o.",
"profile_authorized_apps": "Aplica\u00e7\u00f5es autorizados",
"profile_authorized_clients": "Clientes autorizados",
"profile_scopes": "Contextos",
"profile_revoke": "Revogar",
"profile_personal_access_tokens": "Tokens de acesso pessoal",
"profile_personal_access_token": "Token de acesso pessoal",
"profile_personal_access_token_explanation": "Aqui est\u00e1 o seu novo token de acesso pessoal. Esta \u00e9 a \u00fanica v\u00eas que o mesmo ser\u00e1 mostrado portanto n\u00e3o o perca! Pode utiliza-lo para fazer pedidos de API.",
"profile_no_personal_access_token": "Voc\u00ea ainda n\u00e3o criou tokens de acesso pessoal.",
"profile_create_new_token": "Criar novo token",
"profile_create_token": "Criar token",
"profile_create": "Criar",
"profile_save_changes": "Guardar altera\u00e7\u00f5es",
"default_group_title_name": "(n\u00e3o agrupado)",
"piggy_bank": "Mealheiro",
"profile_oauth_client_secret_title": "Segredo do cliente",
"profile_oauth_client_secret_expl": "Aqui est\u00e1 o seu segredo de cliente. Apenas estar\u00e1 vis\u00edvel uma vez portanto n\u00e3o o perca! Pode agora utilizar este segredo para fazer pedidos \u00e0 API.",
"profile_oauth_confidential": "Confidencial",
"profile_oauth_confidential_help": "Exigir que o cliente se autentique com um segredo. Clientes confidenciais podem manter credenciais de forma segura sem expor as mesmas a terceiros n\u00e3o autorizadas. Aplica\u00e7\u00f5es p\u00fablicas, como por exemplo aplica\u00e7\u00f5es nativas de sistema operativo ou SPA JavaScript, s\u00e3o incapazes de garantir a seguran\u00e7a dos segredos.",
"multi_account_warning_unknown": "Dependendo do tipo de transi\u00e7\u00e3o que quer criar, a conta de origem e\/ou a destino de subsequentes divis\u00f5es pode ser sub-escrita por quaisquer regra definida na primeira divis\u00e3o da transa\u00e7\u00e3o.",
"multi_account_warning_withdrawal": "Mantenha em mente que a conta de origem de divis\u00f5es subsequentes ser\u00e1 sobre-escrita por quaisquer regra definida na primeira divis\u00e3o do levantamento.",
"multi_account_warning_deposit": "Mantenha em mente que a conta de destino de divis\u00f5es subsequentes ser\u00e1 sobre-escrita por quaisquer regra definida na primeira divis\u00e3o do dep\u00f3sito.",
"multi_account_warning_transfer": "Mantenha em mente que a conta de origem + destino de divis\u00f5es subsequentes ser\u00e3o sobre-escritas por quaisquer regras definidas na divis\u00e3o da transfer\u00eancia."
},
"form": {
"interest_date": "Data de juros",
"book_date": "Data de registo",
"process_date": "Data de processamento",
"due_date": "Data de vencimento",
"foreign_amount": "Montante estrangeiro",
"payment_date": "Data de pagamento",
"invoice_date": "Data da factura",
"internal_reference": "Referencia interna"
},
"config": {
"html_language": "pt"
}
}

View File

@@ -30,7 +30,7 @@
"category": "Categorie",
"attachments": "Ata\u0219amente",
"notes": "Noti\u021be",
"external_uri": "External URI",
"external_uri": "External URL",
"update_transaction": "Actualiza\u021bi tranzac\u021bia",
"after_update_create_another": "Dup\u0103 actualizare, reveni\u021bi aici pentru a continua editarea.",
"store_as_new": "Stoca\u021bi ca o tranzac\u021bie nou\u0103 \u00een loc s\u0103 actualiza\u021bi.",

View File

@@ -5,7 +5,7 @@
"flash_success": "\u0423\u0441\u043f\u0435\u0448\u043d\u043e!",
"close": "\u0417\u0430\u043a\u0440\u044b\u0442\u044c",
"split_transaction_title": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"errors_submission": "\u041f\u0440\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0438\u0436\u0435.",
"split": "\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c",
"single_split": "\u0420\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u0430\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f #{ID} (\"{title}\")<\/a> \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430.",
@@ -15,9 +15,9 @@
"no_budget_pointer": "\u041f\u043e\u0445\u043e\u0436\u0435, \u0443 \u0432\u0430\u0441 \u043f\u043e\u043a\u0430 \u043d\u0435\u0442 \u0431\u044e\u0434\u0436\u0435\u0442\u043e\u0432. \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u0445 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 <a href=\"budgets\">\u0411\u044e\u0434\u0436\u0435\u0442\u044b<\/a>. \u0411\u044e\u0434\u0436\u0435\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u0430\u043c \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0445\u043e\u0434\u044b.",
"no_bill_pointer": "\u041f\u043e\u0445\u043e\u0436\u0435, \u0443 \u0432\u0430\u0441 \u043f\u043e\u043a\u0430 \u043d\u0435\u0442 \u0441\u0447\u0435\u0442\u043e\u0432 \u043d\u0430 \u043e\u043f\u043b\u0430\u0442\u0443. \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u0445 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 <a href=\"bills\">\u0421\u0447\u0435\u0442\u0430 \u043d\u0430 \u043e\u043f\u043b\u0430\u0442\u0443<\/a>. \u0421\u0447\u0435\u0442\u0430 \u043d\u0430 \u043e\u043f\u043b\u0430\u0442\u0443 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u0430\u043c \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0445\u043e\u0434\u044b.",
"source_account": "\u0421\u0447\u0451\u0442-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a",
"hidden_fields_preferences": "You can enable more transaction options in your <a href=\"preferences\">preferences<\/a>.",
"hidden_fields_preferences": "\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u0432 <a href=\"preferences\">\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445<\/a>.",
"destination_account": "\u0421\u0447\u0451\u0442 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f",
"add_another_split": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c",
"add_another_split": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u0447\u0430\u0441\u0442\u044c",
"submission": "\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c",
"create_another": "\u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0441\u044e\u0434\u0430 \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0435\u0449\u0451 \u043e\u0434\u043d\u0443 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c.",
"reset_after": "\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0444\u043e\u0440\u043c\u0443 \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438",
@@ -30,7 +30,7 @@
"category": "\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f",
"attachments": "\u0412\u043b\u043e\u0436\u0435\u043d\u0438\u044f",
"notes": "\u0417\u0430\u043c\u0435\u0442\u043a\u0438",
"external_uri": "\u0412\u043d\u0435\u0448\u043d\u0438\u0439 URI",
"external_uri": "External URL",
"update_transaction": "\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e",
"after_update_create_another": "\u041f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u043d\u0438\u0442\u0435\u0441\u044c \u0441\u044e\u0434\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.",
"store_as_new": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a \u043d\u043e\u0432\u0443\u044e \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f.",
@@ -88,10 +88,10 @@
"multi_account_warning_transfer": "\u0418\u043c\u0435\u0439\u0442\u0435 \u0432 \u0432\u0438\u0434\u0443, \u0447\u0442\u043e \u0441\u0447\u0451\u0442-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0438 \u0441\u0447\u0451\u0442 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0447\u0430\u0441\u0442\u044f\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0442\u0430\u043a\u0438\u043c\u0438 \u0436\u0435, \u043a\u0430\u043a \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430."
},
"form": {
"interest_date": "\u0414\u0430\u0442\u0430 \u0432\u044b\u043f\u043b\u0430\u0442\u044b",
"interest_date": "\u0414\u0430\u0442\u0430 \u043d\u0430\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432",
"book_date": "\u0414\u0430\u0442\u0430 \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f",
"process_date": "\u0414\u0430\u0442\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438",
"due_date": "\u0421\u0440\u043e\u043a",
"due_date": "\u0421\u0440\u043e\u043a \u043e\u043f\u043b\u0430\u0442\u044b",
"foreign_amount": "\u0421\u0443\u043c\u043c\u0430 \u0432 \u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0439 \u0432\u0430\u043b\u044e\u0442\u0435",
"payment_date": "\u0414\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430",
"invoice_date": "\u0414\u0430\u0442\u0430 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0447\u0451\u0442\u0430",

View File

@@ -30,7 +30,7 @@
"category": "Kategori",
"attachments": "Bilagor",
"notes": "Noteringar",
"external_uri": "Extern URI",
"external_uri": "External URL",
"update_transaction": "Uppdatera transaktion",
"after_update_create_another": "Efter uppdaterat, \u00e5terkom hit f\u00f6r att forts\u00e4tta redigera.",
"store_as_new": "Spara en ny transaktion ist\u00e4llet f\u00f6r att uppdatera.",

View File

@@ -30,7 +30,7 @@
"category": "Danh m\u1ee5c",
"attachments": "T\u1ec7p \u0111\u00ednh k\u00e8m",
"notes": "Ghi ch\u00fa",
"external_uri": "External URI",
"external_uri": "External URL",
"update_transaction": "C\u1eadp nh\u1eadt giao d\u1ecbch",
"after_update_create_another": "Sau khi c\u1eadp nh\u1eadt, quay l\u1ea1i \u0111\u00e2y \u0111\u1ec3 ti\u1ebfp t\u1ee5c ch\u1ec9nh s\u1eeda.",
"store_as_new": "L\u01b0u tr\u1eef nh\u01b0 m\u1ed9t giao d\u1ecbch m\u1edbi thay v\u00ec c\u1eadp nh\u1eadt.",

View File

@@ -5,97 +5,97 @@
"flash_success": "\u6210\u529f\uff01",
"close": "\u5173\u95ed",
"split_transaction_title": "\u62c6\u5206\u4ea4\u6613\u7684\u63cf\u8ff0",
"errors_submission": "There was something wrong with your submission. Please check out the errors.",
"split": "\u5206\u5272",
"single_split": "Split",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID} (\"{title}\")<\/a> has been stored.",
"transaction_updated_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID}<\/a> has been updated.",
"transaction_new_stored_link": "<a href=\"transactions\/show\/{ID}\">Transaction #{ID}<\/a> has been stored.",
"transaction_journal_information": "\u4ea4\u6613\u8d44\u8baf",
"no_budget_pointer": "You seem to have no budgets yet. You should create some on the <a href=\"budgets\">budgets<\/a>-page. Budgets can help you keep track of expenses.",
"no_bill_pointer": "You seem to have no bills yet. You should create some on the <a href=\"bills\">bills<\/a>-page. Bills can help you keep track of expenses.",
"source_account": "\u6765\u6e90\u5e10\u6237",
"hidden_fields_preferences": "You can enable more transaction options in your <a href=\"preferences\">preferences<\/a>.",
"destination_account": "\u76ee\u6807\u5e10\u6237",
"add_another_split": "\u589e\u52a0\u62c6\u5206",
"errors_submission": "\u60a8\u63d0\u4ea4\u7684\u5185\u5bb9\u6709\u8bef\uff0c\u8bf7\u68c0\u67e5\u9519\u8bef\u4fe1\u606f\u3002",
"split": "\u62c6\u5206",
"single_split": "\u62c6\u5206",
"transaction_stored_link": "<a href=\"transactions\/show\/{ID}\">\u4ea4\u6613 #{ID} (\u201c{title}\u201d)<\/a> \u5df2\u4fdd\u5b58\u3002",
"transaction_updated_link": "<a href=\"transactions\/show\/{ID}\">\u4ea4\u6613 #{ID}<\/a> \u5df2\u66f4\u65b0\u3002",
"transaction_new_stored_link": "<a href=\"transactions\/show\/{ID}\">\u4ea4\u6613 #{ID}<\/a> \u5df2\u4fdd\u5b58\u3002",
"transaction_journal_information": "\u4ea4\u6613\u4fe1\u606f",
"no_budget_pointer": "\u60a8\u8fd8\u6ca1\u6709\u9884\u7b97\uff0c\u60a8\u5e94\u8be5\u5728<a href=\"budgets\">\u9884\u7b97\u9875\u9762<\/a>\u8fdb\u884c\u521b\u5efa\u3002\u9884\u7b97\u53ef\u4ee5\u5e2e\u52a9\u60a8\u8ffd\u8e2a\u652f\u51fa\u3002",
"no_bill_pointer": "\u60a8\u8fd8\u6ca1\u6709\u8d26\u5355\uff0c\u60a8\u5e94\u8be5\u5728<a href=\"bills\">\u8d26\u5355\u9875\u9762<\/a>\u8fdb\u884c\u521b\u5efa\u3002\u8d26\u5355\u53ef\u4ee5\u5e2e\u52a9\u60a8\u8ffd\u8e2a\u652f\u51fa\u3002",
"source_account": "\u6765\u6e90\u8d26\u6237",
"hidden_fields_preferences": "\u60a8\u53ef\u4ee5\u5728<a href=\"preferences\">\u504f\u597d\u8bbe\u5b9a<\/a>\u4e2d\u542f\u7528\u66f4\u591a\u4ea4\u6613\u9009\u9879\u3002",
"destination_account": "\u76ee\u6807\u8d26\u6237",
"add_another_split": "\u589e\u52a0\u53e6\u4e00\u7b14\u62c6\u5206",
"submission": "\u63d0\u4ea4",
"create_another": "\u4fdd\u5b58\u540e\uff0c\u8fd4\u56de\u6b64\u9875\u9762\u521b\u5efa\u53e6\u4e00\u7b14\u8bb0\u5f55\u3002",
"create_another": "\u4fdd\u5b58\u540e\uff0c\u8fd4\u56de\u6b64\u9875\u9762\u4ee5\u521b\u5efa\u65b0\u8bb0\u5f55",
"reset_after": "\u63d0\u4ea4\u540e\u91cd\u7f6e\u8868\u5355",
"submit": "\u63d0\u4ea4",
"amount": "\u91d1\u989d",
"date": "\u65e5\u671f",
"tags": "\u6807\u7b7e",
"no_budget": "(\u65e0\u9884\u7b97)",
"no_bill": "(no bill)",
"no_bill": "(\u65e0\u8d26\u5355)",
"category": "\u5206\u7c7b",
"attachments": "\u9644\u52a0\u6863\u6848",
"notes": "\u6ce8\u91ca",
"external_uri": "External URI",
"attachments": "\u9644\u4ef6",
"notes": "\u5907\u6ce8",
"external_uri": "\u5916\u90e8\u94fe\u63a5",
"update_transaction": "\u66f4\u65b0\u4ea4\u6613",
"after_update_create_another": "\u66f4\u65b0\u540e\uff0c\u8fd4\u56de\u6b64\u9875\u9762\u7ee7\u7eed\u7f16\u8f91\u3002",
"store_as_new": "\u4fdd\u5b58\u4e3a\u65b0\u4ea4\u6613\u800c\u4e0d\u662f\u66f4\u65b0\u6b64\u4ea4\u6613\u3002",
"split_title_help": "\u5982\u679c\u60a8\u521b\u5efa\u4e00\u4e2a\u62c6\u5206\u4ea4\u6613\uff0c\u5fc5\u987b\u6709\u4e00\u4e2a\u5168\u5c40\u7684\u4ea4\u6613\u63cf\u8ff0\u3002",
"none_in_select_list": "\uff08\u7a7a\uff09",
"no_piggy_bank": "\uff08\u65e0\u5b58\u94b1\u7f50\uff09",
"split_title_help": "\u5982\u679c\u60a8\u521b\u5efa\u4e86\u4e00\u7b14\u62c6\u5206\u4ea4\u6613\uff0c\u5fc5\u987b\u6709\u4e00\u4e2a\u6240\u6709\u62c6\u5206\u7684\u5168\u5c40\u63cf\u8ff0\u3002",
"none_in_select_list": "(\u7a7a)",
"no_piggy_bank": "(\u65e0\u5b58\u94b1\u7f50)",
"description": "\u63cf\u8ff0",
"split_transaction_title_help": "\u5982\u679c\u60a8\u521b\u5efa\u4e86\u4e00\u4e2a\u5206\u5272\u4ea4\u6613\uff0c\u4ea4\u6613\u7684\u6240\u6709\u5206\u5272\u9879\u90fd\u5fc5\u987b\u6709\u5168\u5c40\u63cf\u8ff0\u3002",
"split_transaction_title_help": "\u5982\u679c\u60a8\u521b\u5efa\u4e86\u4e00\u7b14\u62c6\u5206\u4ea4\u6613\uff0c\u5fc5\u987b\u6709\u4e00\u4e2a\u6240\u6709\u62c6\u5206\u7684\u5168\u5c40\u63cf\u8ff0\u3002",
"destination_account_reconciliation": "\u60a8\u4e0d\u80fd\u7f16\u8f91\u5bf9\u8d26\u4ea4\u6613\u7684\u76ee\u6807\u8d26\u6237",
"source_account_reconciliation": "\u60a8\u4e0d\u80fd\u7f16\u8f91\u5bf9\u8d26\u4ea4\u6613\u7684\u6e90\u8d26\u6237",
"source_account_reconciliation": "\u60a8\u4e0d\u80fd\u7f16\u8f91\u5bf9\u8d26\u4ea4\u6613\u7684\u6765\u6e90\u8d26\u6237\u3002",
"budget": "\u9884\u7b97",
"bill": "\u5e10\u5355",
"you_create_withdrawal": "\u60a8\u6b63\u5728\u521b\u5efa\u4e00\u4e2a\u63d0\u6b3e",
"you_create_transfer": "\u60a8\u6b63\u5728\u521b\u5efa\u4e00\u4e2a\u8f6c\u8d26",
"you_create_deposit": "\u60a8\u6b63\u5728\u521b\u5efa\u4e00\u4e2a\u5b58\u6b3e",
"bill": "\u8d26\u5355",
"you_create_withdrawal": "\u60a8\u6b63\u5728\u521b\u5efa\u4e00\u7b14\u652f\u51fa",
"you_create_transfer": "\u60a8\u6b63\u5728\u521b\u5efa\u4e00\u7b14\u8f6c\u8d26",
"you_create_deposit": "\u60a8\u6b63\u5728\u521b\u5efa\u4e00\u7b14\u6536\u5165",
"edit": "\u7f16\u8f91",
"delete": "\u5220\u9664",
"name": "\u540d\u79f0",
"profile_whoops": "Whoops!",
"profile_something_wrong": "Something went wrong!",
"profile_try_again": "Something went wrong. Please try again.",
"profile_oauth_clients": "OAuth Clients",
"profile_oauth_no_clients": "You have not created any OAuth clients.",
"profile_oauth_clients_header": "Clients",
"profile_oauth_client_id": "Client ID",
"profile_oauth_client_name": "Name",
"profile_oauth_client_secret": "Secret",
"profile_oauth_create_new_client": "Create New Client",
"profile_oauth_create_client": "Create Client",
"profile_oauth_edit_client": "Edit Client",
"profile_oauth_name_help": "Something your users will recognize and trust.",
"profile_oauth_redirect_url": "Redirect URL",
"profile_oauth_redirect_url_help": "Your application's authorization callback URL.",
"profile_authorized_apps": "Authorized applications",
"profile_authorized_clients": "Authorized clients",
"profile_scopes": "Scopes",
"profile_revoke": "Revoke",
"profile_personal_access_tokens": "Personal Access Tokens",
"profile_personal_access_token": "Personal Access Token",
"profile_personal_access_token_explanation": "Here is your new personal access token. This is the only time it will be shown so don't lose it! You may now use this token to make API requests.",
"profile_no_personal_access_token": "You have not created any personal access tokens.",
"profile_create_new_token": "Create new token",
"profile_create_token": "Create token",
"profile_create": "Create",
"profile_save_changes": "Save changes",
"default_group_title_name": "(ungrouped)",
"profile_whoops": "\u5f88\u62b1\u6b49\uff01",
"profile_something_wrong": "\u53d1\u751f\u9519\u8bef\uff01",
"profile_try_again": "\u53d1\u751f\u9519\u8bef\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002",
"profile_oauth_clients": "OAuth \u5ba2\u6237\u7aef",
"profile_oauth_no_clients": "\u60a8\u5c1a\u672a\u521b\u5efa\u4efb\u4f55 OAuth \u5ba2\u6237\u7aef\u3002",
"profile_oauth_clients_header": "\u5ba2\u6237\u7aef",
"profile_oauth_client_id": "\u5ba2\u6237\u7aef ID",
"profile_oauth_client_name": "\u540d\u79f0",
"profile_oauth_client_secret": "\u5bc6\u94a5",
"profile_oauth_create_new_client": "\u521b\u5efa\u65b0\u5ba2\u6237\u7aef",
"profile_oauth_create_client": "\u521b\u5efa\u5ba2\u6237\u7aef",
"profile_oauth_edit_client": "\u7f16\u8f91\u5ba2\u6237\u7aef",
"profile_oauth_name_help": "\u60a8\u7684\u7528\u6237\u53ef\u4ee5\u8bc6\u522b\u5e76\u4fe1\u4efb\u7684\u4fe1\u606f",
"profile_oauth_redirect_url": "\u8df3\u8f6c\u7f51\u5740",
"profile_oauth_redirect_url_help": "\u60a8\u7684\u5e94\u7528\u7a0b\u5e8f\u7684\u6388\u6743\u56de\u8c03\u7f51\u5740",
"profile_authorized_apps": "\u5df2\u6388\u6743\u5e94\u7528",
"profile_authorized_clients": "\u5df2\u6388\u6743\u5ba2\u6237\u7aef",
"profile_scopes": "\u8303\u56f4",
"profile_revoke": "\u64a4\u6d88",
"profile_personal_access_tokens": "\u4e2a\u4eba\u8bbf\u95ee\u4ee4\u724c",
"profile_personal_access_token": "\u4e2a\u4eba\u8bbf\u95ee\u4ee4\u724c",
"profile_personal_access_token_explanation": "\u8bf7\u59a5\u5584\u4fdd\u5b58\u60a8\u7684\u65b0\u4e2a\u4eba\u8bbf\u95ee\u4ee4\u724c\uff0c\u6b64\u4ee4\u724c\u4ec5\u4f1a\u5728\u8fd9\u91cc\u5c55\u793a\u4e00\u6b21\u3002\u60a8\u73b0\u5728\u5df2\u53ef\u4ee5\u4f7f\u7528\u6b64\u4ee4\u724c\u8fdb\u884c API \u8bf7\u6c42\u3002",
"profile_no_personal_access_token": "\u60a8\u8fd8\u6ca1\u6709\u521b\u5efa\u4e2a\u4eba\u8bbf\u95ee\u4ee4\u724c\u3002",
"profile_create_new_token": "\u521b\u5efa\u65b0\u4ee4\u724c",
"profile_create_token": "\u521b\u5efa\u4ee4\u724c",
"profile_create": "\u521b\u5efa",
"profile_save_changes": "\u4fdd\u5b58\u66f4\u6539",
"default_group_title_name": "(\u672a\u5206\u7ec4)",
"piggy_bank": "\u5b58\u94b1\u7f50",
"profile_oauth_client_secret_title": "Client Secret",
"profile_oauth_client_secret_expl": "Here is your new client secret. This is the only time it will be shown so don't lose it! You may now use this secret to make API requests.",
"profile_oauth_confidential": "Confidential",
"profile_oauth_confidential_help": "Require the client to authenticate with a secret. Confidential clients can hold credentials in a secure way without exposing them to unauthorized parties. Public applications, such as native desktop or JavaScript SPA applications, are unable to hold secrets securely.",
"multi_account_warning_unknown": "Depending on the type of transaction you create, the source and\/or destination account of subsequent splits may be overruled by whatever is defined in the first split of the transaction.",
"multi_account_warning_withdrawal": "Keep in mind that the source account of subsequent splits will be overruled by whatever is defined in the first split of the withdrawal.",
"multi_account_warning_deposit": "Keep in mind that the destination account of subsequent splits will be overruled by whatever is defined in the first split of the deposit.",
"multi_account_warning_transfer": "Keep in mind that the source + destination account of subsequent splits will be overruled by whatever is defined in the first split of the transfer."
"profile_oauth_client_secret_title": "\u5ba2\u6237\u7aef\u5bc6\u94a5",
"profile_oauth_client_secret_expl": "\u8bf7\u59a5\u5584\u4fdd\u5b58\u60a8\u7684\u65b0\u5ba2\u6237\u7aef\u7684\u5bc6\u94a5\uff0c\u6b64\u5bc6\u94a5\u4ec5\u4f1a\u5728\u8fd9\u91cc\u5c55\u793a\u4e00\u6b21\u3002\u60a8\u73b0\u5728\u5df2\u53ef\u4ee5\u4f7f\u7528\u6b64\u5bc6\u94a5\u8fdb\u884c API \u8bf7\u6c42\u3002",
"profile_oauth_confidential": "\u4f7f\u7528\u52a0\u5bc6",
"profile_oauth_confidential_help": "\u8981\u6c42\u5ba2\u6237\u7aef\u4f7f\u7528\u5bc6\u94a5\u8fdb\u884c\u8ba4\u8bc1\u3002\u52a0\u5bc6\u5ba2\u6237\u7aef\u53ef\u4ee5\u5b89\u5168\u50a8\u5b58\u51ed\u636e\u4e14\u4e0d\u5c06\u5176\u6cc4\u9732\u7ed9\u672a\u6388\u6743\u65b9\uff0c\u800c\u516c\u5171\u5e94\u7528\u7a0b\u5e8f\uff08\u4f8b\u5982\u672c\u5730\u8ba1\u7b97\u673a\u6216 JavaScript SPA \u5e94\u7528\u7a0b\u5e8f\uff09\u65e0\u6cd5\u4fdd\u8bc1\u51ed\u636e\u7684\u5b89\u5168\u6027\u3002",
"multi_account_warning_unknown": "\u6839\u636e\u60a8\u521b\u5efa\u7684\u4ea4\u6613\u7c7b\u578b\uff0c\u540e\u7eed\u62c6\u5206\u7684\u6765\u6e90\u548c\/\u6216\u76ee\u6807\u8d26\u6237\u53ef\u80fd\u88ab\u4ea4\u6613\u7684\u9996\u7b14\u62c6\u5206\u7684\u914d\u7f6e\u6240\u8986\u76d6\u3002",
"multi_account_warning_withdrawal": "\u8bf7\u6ce8\u610f\uff0c\u540e\u7eed\u62c6\u5206\u7684\u6765\u6e90\u8d26\u6237\u5c06\u4f1a\u88ab\u652f\u51fa\u7684\u9996\u7b14\u62c6\u5206\u7684\u914d\u7f6e\u6240\u8986\u76d6\u3002",
"multi_account_warning_deposit": "\u8bf7\u6ce8\u610f\uff0c\u540e\u7eed\u62c6\u5206\u7684\u76ee\u6807\u8d26\u6237\u5c06\u4f1a\u88ab\u6536\u5165\u7684\u9996\u7b14\u62c6\u5206\u7684\u914d\u7f6e\u6240\u8986\u76d6\u3002",
"multi_account_warning_transfer": "\u8bf7\u6ce8\u610f\uff0c\u540e\u7eed\u62c6\u5206\u7684\u6765\u6e90\u548c\u76ee\u6807\u8d26\u6237\u5c06\u4f1a\u88ab\u8f6c\u8d26\u7684\u9996\u7b14\u62c6\u5206\u7684\u914d\u7f6e\u6240\u8986\u76d6\u3002"
},
"form": {
"interest_date": "\u5229\u7387\u65e5\u671f",
"interest_date": "\u5229\u606f\u65e5\u671f",
"book_date": "\u767b\u8bb0\u65e5\u671f",
"process_date": "\u5904\u7406\u65e5\u671f",
"due_date": "\u5230\u671f\u65e5",
"foreign_amount": "\u5916\u5e01\u91d1\u989d",
"payment_date": "\u4ed8\u6b3e\u65e5\u671f",
"invoice_date": "\u53d1\u7968\u65e5\u671f",
"internal_reference": "\u5185\u90e8\u53c2\u8003"
"internal_reference": "\u5185\u90e8\u5f15\u7528"
},
"config": {
"html_language": "zh-cn"

View File

@@ -30,7 +30,7 @@
"category": "\u5206\u985e",
"attachments": "\u9644\u52a0\u6a94\u6848",
"notes": "\u5099\u8a3b",
"external_uri": "External URI",
"external_uri": "External URL",
"update_transaction": "Update transaction",
"after_update_create_another": "After updating, return here to continue editing.",
"store_as_new": "Store as a new transaction instead of updating.",

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute трябва да е по-малко от 10 000 000',
'active_url' => ':attribute не е валиден URL адрес.',
'after' => ':attribute трябва да бъде дата след :date.',
'date_after' => 'End date must be before start date.',
'alpha' => ':attribute може да съдържа единствено букви.',
'alpha_dash' => ':attribute може да съдържа само букви, числа и тирета.',
'alpha_num' => ':attribute може да съдържа само букви и числа.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Трябва да използвате валидно ID на приходната сметка и / или валидно име на приходната сметка, за да продължите.',
'withdrawal_dest_bad_data' => 'Не може да се намери валидна приходна сметка при търсене на ID ":id" или име ":name".',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'Трябва да използвате валидно ID на разходната сметка и / или валидно име на разходната сметка, за да продължите.',
'deposit_source_bad_data' => 'Не може да се намери валидна разходна сметка при търсене на ID ":id" или име ":name".',
'deposit_dest_need_data' => 'Трябва да използвате валидно ID на приходната сметка и / или валидно име на приходната сметка, за да продължите.',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute musí být menší než 10.000.000',
'active_url' => ':attribute není platná adresa URL.',
'after' => ':attribute nemůže být dříve než :date.',
'date_after' => 'End date must be before start date.',
'alpha' => ':attribute může obsahovat pouze písmena.',
'alpha_dash' => ':attribute může obsahovat pouze písmena, čísla a pomlčky.',
'alpha_num' => ':attribute může obsahovat pouze písmena a čísla.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Pro pokračování je potřeba získat platné ID zdrojového účtu a/nebo platný název zdrojového účtu.',
'withdrawal_dest_bad_data' => 'Při hledání ID „:id“ nebo jména „:name“ nelze najít platný cílový účet.',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'Pro pokračování je potřeba získat platné ID zdrojového účtu a/nebo platný název zdrojového účtu.',
'deposit_source_bad_data' => 'Nelze najít platný zdrojový účet při hledání ID „:id“ nebo jména „:name“.',
'deposit_dest_need_data' => 'Pro pokračování je potřeba získat platné cílové ID účtu a/nebo platné jméno cílového účtu.',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute muss kleiner als 10.000.000 sein',
'active_url' => ':attribute ist keine gültige URL.',
'after' => ':attribute muss ein Datum nach :date sein.',
'date_after' => 'End date must be before start date.',
'alpha' => ':attribute darf nur Buchstaben enthalten.',
'alpha_dash' => ':attribute darf nur Buchstaben, Zahlen und Bindestrichen enthalten.',
'alpha_num' => ':attribute darf nur Buchstaben und Zahlen enthalten.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Um fortzufahren, benötigen Sie eine gültige Zielkontenkennung und/oder einen gültigen Zielkontonamen.',
'withdrawal_dest_bad_data' => 'Bei der Suche nach Kennung „:id” oder Name „:name” konnte kein gültiges Zielkonto gefunden werden.',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'Um fortzufahren, benötigen Sie eine gültige Quellkontenkennung und/oder einen gültigen Quellkontonamen.',
'deposit_source_bad_data' => 'Bei der Suche nach der Kennung „:id” oder dem Namen „:name” konnte kein gültiges Quellkonto gefunden werden.',
'deposit_dest_need_data' => 'Um fortzufahren, benötigen Sie eine gültige Zielkontenkennung und/oder einen gültigen Zielkontonamen.',

View File

@@ -60,6 +60,7 @@ return [
'less' => 'Το :attribute πρέπει να είναι μικρότερο από 10,000,000',
'active_url' => 'Το :attribute δεν είναι έγκυρο URL.',
'after' => 'Το :attribute πρέπει να είναι ημερομηνία μετά από :date.',
'date_after' => 'End date must be before start date.',
'alpha' => 'Το :attribute μπορεί να περιέχει μόνο γράμματα.',
'alpha_dash' => 'Το :attribute μπορεί να περιέχει γράμματα, αριθμοί, και παύλες.',
'alpha_num' => 'Το :attribute μπορεί να περιέχει γράμματα και αριθμούς.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Πρέπει να λάβετε ένα έγκυρο αναγνωριστικό ID λογαριασμού προέλευσης και/ή ένα έγκυρο όνομα λογαριασμού προορισμού για να συνεχίσετε.',
'withdrawal_dest_bad_data' => 'Δεν μπορεσε να βρεθεί έγκυρος λογαριασμός προορισμού κατά την αναζήτηση του αναγνωριστικού ID ":id" ή του ονόματος ":name".',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'Πρέπει να λάβετε ένα έγκυρο αναγνωριστικό ID λογαριασμού προέλευσης και/ή ένα έγκυρο όνομα λογαριασμού προέλευσης για να συνεχίσετε.',
'deposit_source_bad_data' => 'Δεν μπόρεσε να βρεθεί ένας έγκυρος λογαριασμός προέλευσης κατά την αναζήτηση του αναγνωριστικού ID ":id" ή του ονόματος ":name".',
'deposit_dest_need_data' => 'Πρέπει να λάβετε ένα έγκυρο αναγνωριστικό ID λογαριασμού προορισμού και/ή ένα έγκυρο όνομα λογαριασμού προορισμού για να συνεχίσετε.',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute must be less than 10,000,000',
'active_url' => 'The :attribute is not a valid URL.',
'after' => 'The :attribute must be a date after :date.',
'date_after' => 'End date must be before start date.',
'alpha' => 'The :attribute may only contain letters.',
'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.',
'alpha_num' => 'The :attribute may only contain letters and numbers.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Need to get a valid destination account ID and/or valid destination account name to continue.',
'withdrawal_dest_bad_data' => 'Could not find a valid destination account when searching for ID ":id" or name ":name".',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'Need to get a valid source account ID and/or valid source account name to continue.',
'deposit_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_dest_need_data' => 'Need to get a valid destination account ID and/or valid destination account name to continue.',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute debe ser menor que 10.000.000',
'active_url' => 'El campo :attribute no es una URL válida.',
'after' => 'El campo :attribute debe ser una fecha posterior a :date.',
'date_after' => 'End date must be before start date.',
'alpha' => 'El campo :attribute sólo puede contener letras.',
'alpha_dash' => 'El campo :attribute sólo puede contener letras, números y guiones.',
'alpha_num' => 'El campo :attribute sólo puede contener letras y números.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Necesita obtener un ID de cuenta de destino válido y/o nombre de cuenta de destino válido para continuar.',
'withdrawal_dest_bad_data' => 'No se pudo encontrar una cuenta de destino válida buscando ID ":id" o nombre ":name".',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'Necesita obtener un ID de cuenta de origen válido y/o nombre de cuenta de origen válido para continuar.',
'deposit_source_bad_data' => 'No se pudo encontrar una cuenta de origen válida para ID ":id" o nombre ":name".',
'deposit_dest_need_data' => 'Necesita obtener un ID de cuenta de destino válido y/o nombre de cuenta de destino válido para continuar.',

View File

@@ -60,6 +60,7 @@ return [
'less' => 'Määritteen :attribute täytyy olla pienempi kuin 10,000,000',
'active_url' => ':attribute ei ole verkko-osoite.',
'after' => 'Määritteen :attribute täytyy olla :date jälkeen oleva päivämäärä.',
'date_after' => 'End date must be before start date.',
'alpha' => ':attribute saa sisältää ainoastaan kirjaimia.',
'alpha_dash' => ':attribute saa sisältää ainoastaan kirjaimia, numeroita ja viivoja.',
'alpha_num' => ':attribute saa sisältää ainoastaan kirjaimia ja numeroita.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Tarvitset kelvollisen kohdetilin tunnuksen ja/tai kelvollisen kohdetilin nimen jatkaaksesi.',
'withdrawal_dest_bad_data' => 'Kelvollista kohdetiliä ei löytynyt tunnuksella ":id" tai nimellä ":name".',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'Tarvitset kelvollisen lähdetilin tunnuksen ja/tai kelvollisen lähdetilin nimen jatkaaksesi.',
'deposit_source_bad_data' => 'Nostolle kelvollista lähdetiliä ei löytynyt tunnuksella ":id" tai nimellä ":name".',
'deposit_dest_need_data' => 'Tarvitset kelvollisen kohdetilin tunnuksen ja/tai kelvollisen kohdetilin nimen jatkaaksesi.',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute doit être inférieur à 10 000 000',
'active_url' => 'Le champ :attribute n\'est pas une URL valide.',
'after' => 'Le champ :attribute doit être une date postérieure à :date.',
'date_after' => 'End date must be before start date.',
'alpha' => 'Le champ :attribute doit seulement contenir des lettres.',
'alpha_dash' => 'Le champ :attribute peut seulement contenir des lettres, des chiffres et des tirets.',
'alpha_num' => 'Le champ :attribute peut seulement contenir des chiffres et des lettres.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Vous devez obtenir un ID de compte de destination valide et/ou un nom de compte de destination valide pour continuer.',
'withdrawal_dest_bad_data' => 'Impossible de trouver un compte de destination valide lors de la recherche de l\'ID ":id" ou du nom ":name".',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'Vous devez obtenir un ID de compte source valide et/ou un nom de compte source valide pour continuer.',
'deposit_source_bad_data' => 'Impossible de trouver un compte source valide lors de la recherche de l\'ID ":id" ou du nom ":name".',
'deposit_dest_need_data' => 'Vous devez obtenir un ID de compte de destination valide et/ou un nom de compte de destination valide pour continuer.',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute kisebbnek kell lennie 10,000,000-nél',
'active_url' => ':attribute nem egy érvényes URL.',
'after' => ':attribute egy :date utáni dátum kell legyen.',
'date_after' => 'End date must be before start date.',
'alpha' => ':attribute csak betűket tartalmazhat.',
'alpha_dash' => ':attribute csak számokat, betűket és kötőjeleket tartalmazhat.',
'alpha_num' => ':attribute csak betűket és számokat tartalmazhat.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Egy érvényes célszámla azonosító és/vagy egy érvényes célszámla név kell a folytatáshoz.',
'withdrawal_dest_bad_data' => 'Nem található érvényes célszámla ":id" azonosító vagy ":name" név keresésekor.',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'Egy érvényes forrásszámla azonosító és/vagy egy érvényes forrásszámla név kell a folytatáshoz.',
'deposit_source_bad_data' => 'Nem található érvényes forrásszámla ":id" azonosító vagy ":name" név keresésekor.',
'deposit_dest_need_data' => 'Egy érvényes célszámla azonosító és/vagy egy érvényes célszámla név kell a folytatáshoz.',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute harus kurang dari 10,000,000',
'active_url' => ':attribute bukan URL yang valid.',
'after' => ':attribute harus tanggal setelah :date.',
'date_after' => 'End date must be before start date.',
'alpha' => ':attribute hanya boleh berisi huruf.',
'alpha_dash' => ':attribute hanya boleh berisi huruf, angka dan tanda hubung.',
'alpha_num' => ':attribute hanya boleh berisi huruf dan angka.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Need to get a valid destination account ID and/or valid destination account name to continue.',
'withdrawal_dest_bad_data' => 'Could not find a valid destination account when searching for ID ":id" or name ":name".',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'Need to get a valid source account ID and/or valid source account name to continue.',
'deposit_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_dest_need_data' => 'Need to get a valid destination account ID and/or valid destination account name to continue.',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute deve essere minore di 10.000.000',
'active_url' => ':attribute non è un URL valido.',
'after' => ':attribute deve essere una data dopo :date.',
'date_after' => 'End date must be before start date.',
'alpha' => ':attribute può contenere solo lettere.',
'alpha_dash' => ':attribute può contenere solo lettere, numeri e trattini.',
'alpha_num' => ':attribute può contenere solo lettere e numeri.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'È necessario ottenere un ID e/o un nome del conto di destinazione validi per continuare.',
'withdrawal_dest_bad_data' => 'Non è stato possibile trovare un conto di destinazione valido effettuando la ricerca con l\'ID ":id" o il nome ":name".',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'È necessario ottenere un ID e/o un nome del conto di origine validi per continuare.',
'deposit_source_bad_data' => 'Non è stato possibile trovare un conto d\'origine valido effettuando la ricerca con l\'ID ":id" o il nome ":name".',
'deposit_dest_need_data' => 'È necessario ottenere un ID e/o un nome del conto di destinazione validi per continuare.',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute må være mindre enn 10,000,000',
'active_url' => ':attribute er ikke en gyldig URL.',
'after' => ':attribute må være en dato etter :date.',
'date_after' => 'End date must be before start date.',
'alpha' => ':attribute kan kun inneholde bokstaver.',
'alpha_dash' => ':attribute kan bare inneholde bokstaver, tall og bindestreker.',
'alpha_num' => ':attribute kan bare inneholde bokstaver og tall.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Trenger en gyldig destinasjons konto-ID og/eller gyldig destinasjons kontonavn for å fortsette.',
'withdrawal_dest_bad_data' => 'Could not find a valid destination account when searching for ID ":id" or name ":name".',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'Trenger en gyldig kilde konto-ID og/eller gyldig kilde kontonavn for å fortsette.',
'deposit_source_bad_data' => 'Kunne ikke finne en gyldig kilde-konto ved å søke etter ID ":id" eller navn ":name".',
'deposit_dest_need_data' => 'Trenger en gyldig destinasjons konto-ID og/eller gyldig destinasjons kontonavn for å fortsette.',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute moet minder zijn dan 10.000.000',
'active_url' => ':attribute is geen geldige URL.',
'after' => ':attribute moet een datum na :date zijn.',
'date_after' => 'Einddatum kan niet vóór startdatum vallen.',
'alpha' => ':attribute mag alleen letters bevatten.',
'alpha_dash' => ':attribute mag alleen letters, nummers, onderstreep(_) en strepen(-) bevatten.',
'alpha_num' => ':attribute mag alleen letters en nummers bevatten.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Om door te gaan moet een geldig bronrekening ID en/of geldige bronrekeningnaam worden gevonden.',
'withdrawal_dest_bad_data' => 'Kan geen geldige doelrekening vinden bij het zoeken naar ID ":id" of naam ":name".',
'generic_source_bad_data' => 'Kan geen geldige bronrekening vinden bij het zoeken naar ID ":id" of naam ":name".',
'deposit_source_need_data' => 'Om door te gaan moet een geldige bronrekening ID en/of geldige bronrekeningnaam worden gevonden.',
'deposit_source_bad_data' => 'Kan geen geldige bronrekening vinden bij het zoeken naar ID ":id" of naam ":name".',
'deposit_dest_need_data' => 'Om door te gaan moet een geldig doelrekening ID en/of geldige doelrekeningnaam worden gevonden.',

View File

@@ -436,22 +436,22 @@ return [
'rule_trigger_source_account_ends_choice' => 'Konto źródłowe kończy się na..',
'rule_trigger_source_account_ends' => 'Konto źródłowe kończy się na ":trigger_value"',
'rule_trigger_source_account_is_choice' => 'Kontem źródłowym jest..',
'rule_trigger_source_account_is' => 'Source account name is ":trigger_value"',
'rule_trigger_source_account_contains_choice' => 'Source account name contains..',
'rule_trigger_source_account_contains' => 'Source account name contains ":trigger_value"',
'rule_trigger_account_id_choice' => 'Account ID (source/destination) is exactly..',
'rule_trigger_account_id' => 'Account ID (source/destination) is exactly :trigger_value',
'rule_trigger_source_account_id_choice' => 'Source account ID is exactly..',
'rule_trigger_source_account_id' => 'Source account ID is exactly :trigger_value',
'rule_trigger_destination_account_id_choice' => 'Destination account ID is exactly..',
'rule_trigger_destination_account_id' => 'Destination account ID is exactly :trigger_value',
'rule_trigger_account_is_cash_choice' => 'Account (source/destination) is (cash) account',
'rule_trigger_account_is_cash' => 'Account (source/destination) is (cash) account',
'rule_trigger_source_is_cash_choice' => 'Source account is (cash) account',
'rule_trigger_source_is_cash' => 'Source account is (cash) account',
'rule_trigger_destination_is_cash_choice' => 'Destination account is (cash) account',
'rule_trigger_destination_is_cash' => 'Destination account is (cash) account',
'rule_trigger_source_account_nr_starts_choice' => 'Source account number / IBAN starts with..',
'rule_trigger_source_account_is' => 'Nazwa konta źródłowego to ":trigger_value:"',
'rule_trigger_source_account_contains_choice' => 'Nazwa konta źródłowego zawiera..',
'rule_trigger_source_account_contains' => 'Nazwa konta źródłowego zawiera ":trigger_value"',
'rule_trigger_account_id_choice' => 'ID konta (źródłowego/docelowego) to dokładnie..',
'rule_trigger_account_id' => 'ID konta (źródłowego/docelowego) to dokładnie :trigger_value',
'rule_trigger_source_account_id_choice' => 'ID konta źródłowego to dokładnie..',
'rule_trigger_source_account_id' => 'ID konta źródłowego to dokładnie :trigger_value',
'rule_trigger_destination_account_id_choice' => 'ID konta docelowego to dokładnie..',
'rule_trigger_destination_account_id' => 'ID konta docelowego to dokładnie :trigger_value',
'rule_trigger_account_is_cash_choice' => 'Konto (źródłowe/docelowe) to konto (gotówkowe)',
'rule_trigger_account_is_cash' => 'Konto (źródłowe/docelowe) to konto (gotówkowe)',
'rule_trigger_source_is_cash_choice' => 'Konto źródłowe to konto (gotówkowe)',
'rule_trigger_source_is_cash' => 'Konto źródłowe to konto (gotówkowe)',
'rule_trigger_destination_is_cash_choice' => 'Konto docelowe to konto (gotówkowe)',
'rule_trigger_destination_is_cash' => 'Konto docelowe to konto (gotówkowe)',
'rule_trigger_source_account_nr_starts_choice' => 'Numer / IBAN konta źródłowego zaczyna się od..',
'rule_trigger_source_account_nr_starts' => 'Source account number / IBAN starts with ":trigger_value"',
'rule_trigger_source_account_nr_ends_choice' => 'Source account number / IBAN ends with..',
'rule_trigger_source_account_nr_ends' => 'Source account number / IBAN ends with ":trigger_value"',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute musi być mniejszy od 10 000 000',
'active_url' => ':attribute nie jest prawidłowym adresem URL.',
'after' => ':attribute musi być datą późniejszą od :date.',
'date_after' => 'End date must be before start date.',
'alpha' => ':attribute może zawierać tylko litery.',
'alpha_dash' => ':attribute może zawierać litery, cyfry oraz myślniki.',
'alpha_num' => ':attribute może zawierać jedynie litery oraz cyfry.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Aby kontynuować, musisz uzyskać prawidłowy identyfikator konta wydatków i/lub prawidłową nazwę konta wydatków.',
'withdrawal_dest_bad_data' => 'Nie można znaleźć poprawnego konta wydatków podczas wyszukiwania identyfikatora ":id" lub nazwy ":name".',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'Aby kontynuować, musisz uzyskać prawidłowy identyfikator konta źródłowego i/lub prawidłową nazwę konta źródłowego.',
'deposit_source_bad_data' => 'Nie można znaleźć poprawnego konta źródłowego podczas wyszukiwania identyfikatora ":id" lub nazwy ":name".',
'deposit_dest_need_data' => 'Aby kontynuować, musisz uzyskać prawidłowy identyfikator konta wydatków i/lub prawidłową nazwę konta wydatków.',

View File

@@ -1463,7 +1463,7 @@ return [
'left_to_spend' => 'Restante para gastar',
'earned' => 'Ganho',
'overspent' => 'Gasto excedido',
'left' => 'Esquerda',
'left' => 'Restante',
'max-amount' => 'Valor Máximo',
'min-amount' => 'Valor mínimo',
'journal-amount' => 'Valor atual da conta',
@@ -1792,7 +1792,7 @@ return [
'box_budgeted_in_currency' => 'Orçado (:currency)',
'box_bill_paid_in_currency' => 'Contas pagas (:currency)',
'box_bill_unpaid_in_currency' => 'Contas não pagas (:currency)',
'box_left_to_spend_in_currency' => 'Valor para gastar (:currency)',
'box_left_to_spend_in_currency' => 'Restante para gastar (:currency)',
'box_net_worth_in_currency' => 'Valor líquido (:currency)',
'box_spend_per_day' => 'Restante para gastar por dia: :amount',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute deve ser menor do que 10.000.000',
'active_url' => 'O campo :attribute não contém um URL válido.',
'after' => 'O campo :attribute deverá conter uma data posterior a :date.',
'date_after' => 'End date must be before start date.',
'alpha' => 'O campo :attribute deverá conter apenas letras.',
'alpha_dash' => 'O campo :attribute deverá conter apenas letras, números e traços.',
'alpha_num' => 'O campo :attribute deverá conter apenas letras e números .',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'É necessário obter um ID de uma conta de destino válida e/ou um nome de conta de destino válido para continuar.',
'withdrawal_dest_bad_data' => 'Não foi possível encontrar uma conta de destino válida ao pesquisar por ID ":id" ou nome ":name".',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'É necessário obter um ID de uma conta de origem válida e/ou um nome de conta de origem válido para continuar.',
'deposit_source_bad_data' => 'Não foi possível encontrar uma conta de origem válida ao pesquisar por ID ":id" ou nome ":name".',
'deposit_dest_need_data' => 'É necessário obter obter um ID de conta de destino válido e/ou nome de conta de destino válido para continuar.',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute tem de ser menor que 10,000,000',
'active_url' => 'O :attribute nao e um URL valido.',
'after' => 'I :attribute tem de ser uma data depois de :date.',
'date_after' => 'End date must be before start date.',
'alpha' => 'O :attribute apenas pode conter letras.',
'alpha_dash' => 'O :attribute apenas pode conter letras, numero e tracos.',
'alpha_num' => 'O :attribute apenas pode conter letras e numeros.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'É necessário ter um ID de conta de destino válido e/ou um nome de conta de destino válido para continuar.',
'withdrawal_dest_bad_data' => 'Não foi possível encontrar uma conta de destino válida ao pesquisar pelo ID ":id" ou nome ":name".',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'É preciso ter um ID de uma conta de origem válida e/ou um nome de uma conta de origem válida para continuar.',
'deposit_source_bad_data' => 'Não foi possível encontrar uma conta de origem válida ao pesquisar pelo ID ":id" ou nome ":name".',
'deposit_dest_need_data' => 'É necessário ter um ID de conta de destino válido e/ou um nome de conta de destino válido para continuar.',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute trebuie să fie mai mic decât 10,000,000',
'active_url' => ':attribute nu este o adresă URL validă.',
'after' => ':attribute trebuie să fie o dată ulterioară :date.',
'date_after' => 'End date must be before start date.',
'alpha' => ':attribute poate conține numai litere.',
'alpha_dash' => ':attribute poate conține numai litere, numere și liniuțe.',
'alpha_num' => ':attribute poate conține numai litere și numere.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Trebuie să continuați să obțineți un ID de cont de destinație valabil și / sau un nume de cont de destinație valabil.',
'withdrawal_dest_bad_data' => 'Nu s-a găsit un cont de destinaţie valabil la căutarea ID ":id" sau nume ":name".',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'Trebuie să continuați să obțineți un ID de cont sursă valabil și / sau un nume de cont sursă valabil.',
'deposit_source_bad_data' => 'Nu s-a găsit un cont sursă valabil la căutarea ID ":id" sau nume ":name".',
'deposit_dest_need_data' => 'Trebuie să continuați să obțineți un ID de cont de destinație valabil și / sau un nume de cont de destinație valabil.',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute должен быть меньше 10,000,000',
'active_url' => ':attribute не является допустимым URL-адресом.',
'after' => ':attribute должна быть позже :date.',
'date_after' => 'End date must be before start date.',
'alpha' => ':attribute может содержать только буквы.',
'alpha_dash' => ':attribute может содержать только буквы, числа и дефис.',
'alpha_num' => ':attribute может содержать только буквы и числа.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Для продолжения необходим действительный ID счёта назначения и/или действительное имя счёта.',
'withdrawal_dest_bad_data' => 'Не удалось найти действительный счёт назначения при поиске ID ":id" или имени ":name".',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'Для продолжения необходим действительный ID счёта-источника и/или действительное имя счёта.',
'deposit_source_bad_data' => 'Не удалось найти корректный счёт-источник при поиске ID ":id" или имени ":name".',
'deposit_dest_need_data' => 'Для продолжения необходим действительный ID счёта назначения и/или действительное имя счёта.',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute musí byť menej než 10.000.000',
'active_url' => ':attribute nie je platná adresa URL.',
'after' => ':attribute musí byť neskôr, než :date.',
'date_after' => 'End date must be before start date.',
'alpha' => ':attribute môže obsahovať len písmená.',
'alpha_dash' => ':attribute môže obsahovať len písmená, čísla a pomlčky.',
'alpha_num' => ':attribute môže obsahovať len písmená a čísla.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Pro pokračovanie je potrebné platné ID zdrojového účtu a/alebo platný názov zdrojového účtu.',
'withdrawal_dest_bad_data' => 'Pre ID „:id“ alebo mena „:name“ sa nenašiel žiadny platný cieľový účet.',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'Pre pokračovanie je potrebné platné ID zdrojového účtu a/alebo platný názov zdrojového účtu.',
'deposit_source_bad_data' => 'Pre ID „:id“ alebo „:name“ sa nenašiel žiadny platný zdrojový účet.',
'deposit_dest_need_data' => 'Pro pokračovanie je potrebné platné ID cieľového účtu a/alebo platné meno cieľového účtu.',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute måste vara mindre än 10 000 000',
'active_url' => ':attribute är inte en giltig URL.',
'after' => ':attribute måste vara ett datum efter :date.',
'date_after' => 'End date must be before start date.',
'alpha' => ':attribute får enbart innehålla bokstäver.',
'alpha_dash' => ':attribute får endast innehålla bokstäver, siffror och bindestreck.',
'alpha_num' => ':attribute får endast innehålla bokstäver och siffror.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Ett giltigt destinationskonto-ID och/eller giltigt mottagarkontonamn behövs för att gå vidare.',
'withdrawal_dest_bad_data' => 'Det gick inte att hitta ett giltigt mottagarkonto med ID ":id" eller namn ":name".',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'Ett giltigt källkonto-ID och/eller ett giltigt källkontonamn behövs för att gå vidare.',
'deposit_source_bad_data' => 'Det gick inte att hitta ett giltigt källkonto med ID ":id" eller namn ":name".',
'deposit_dest_need_data' => 'Ett giltigt destinationskonto-ID och/eller giltigt mottagarkontonamn behövs för att gå vidare.',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute 10.000.000 den daha az olmalıdır',
'active_url' => ':attribute geçerli bir URL değil.',
'after' => ':attribute :date tarihinden sonrası için tarihlendirilmelidir.',
'date_after' => 'End date must be before start date.',
'alpha' => ':attribute sadece harf içerebilir.',
'alpha_dash' => ':attribute sadece harf, sayı ve kısa çizgi içerebilir.',
'alpha_num' => ':attribute sadece harf ve sayı içerebilir.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Need to get a valid destination account ID and/or valid destination account name to continue.',
'withdrawal_dest_bad_data' => 'Could not find a valid destination account when searching for ID ":id" or name ":name".',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'Need to get a valid source account ID and/or valid source account name to continue.',
'deposit_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_dest_need_data' => 'Need to get a valid destination account ID and/or valid destination account name to continue.',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':thuộc tính phải nhỏ hơn 10,000,000',
'active_url' => 'Thuộc tính: không phải là một URL hợp lệ.',
'after' => 'Thuộc tính: phải là một ngày sau: ngày.',
'date_after' => 'End date must be before start date.',
'alpha' => 'Thuộc tính: chỉ có thể chứa các chữ cái.',
'alpha_dash' => 'Thuộc tính: chỉ có thể chứa chữ cái, số và dấu gạch ngang.',
'alpha_num' => 'Thuộc tính: chỉ có thể chứa các chữ cái và số.',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => 'Cần lấy ID tài khoản đích hợp lệ và / hoặc tên tài khoản đích hợp lệ để tiếp tục.',
'withdrawal_dest_bad_data' => 'Không thể tìm thấy tài khoản đích hợp lệ khi tìm kiếm ID ":id" hoặc tên ":name".',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => 'Cần lấy ID tài khoản nguồn hợp lệ và / hoặc tên tài khoản nguồn hợp lệ để tiếp tục.',
'deposit_source_bad_data' => 'Cần lấy ID tài khoản nguồn hợp lệ và / hoặc tên tài khoản nguồn hợp lệ để continuaCould không tìm thấy tài khoản nguồn hợp lệ khi tìm kiếm IDe ":id" hoặc tên ":name".',
'deposit_dest_need_data' => 'Cần lấy ID tài khoản đích hợp lệ và / hoặc tên tài khoản đích hợp lệ để tiếp tục.',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute 必须小于 10,000,000',
'active_url' => ':attribute 不是有效的网址',
'after' => ':attribute 必须是一个在 :date 之后的日期',
'date_after' => 'End date must be before start date.',
'alpha' => ':attribute 只能包含英文字母',
'alpha_dash' => ':attribute 只能包含英文字母、数字和减号',
'alpha_num' => ':attribute 只能包含英文字母和数字',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => '需要一个有效的目标账户 ID 和/或目标账户名称才能继续',
'withdrawal_dest_bad_data' => '搜索 ID “:id”或名称“:name”时找不到有效的目标账户',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => '需要一个有效的来源账户 ID 和/或来源账户名称才能继续',
'deposit_source_bad_data' => '搜索 ID “:id”或名称“:name”时找不到有效的来源账户',
'deposit_dest_need_data' => '需要一个有效的目标账户 ID 和/或目标账户名称才能继续',

View File

@@ -60,6 +60,7 @@ return [
'less' => ':attribute 必須小於 10,000,000。',
'active_url' => ':attribute 不是有效的 URL。',
'after' => ':attribute 必須是一個在 :date 之後的日期。',
'date_after' => 'End date must be before start date.',
'alpha' => ':attribute 只能包含字母。',
'alpha_dash' => ':attribute 只能包含字母、數字和破折號。',
'alpha_num' => ':attribute 只能包含數字和字母。',
@@ -182,6 +183,8 @@ return [
'withdrawal_dest_need_data' => '需要有效的目標帳戶 ID 及/或有效的目標帳戶名稱才能繼續。',
'withdrawal_dest_bad_data' => '搜尋 ID ":id" 或名稱 ":name" 都找不到有效的目標帳戶。',
'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".',
'deposit_source_need_data' => '需要有效的來源帳戶 ID 及/或有效的來源帳戶名稱才能繼續。',
'deposit_source_bad_data' => '搜尋 ID ":id" 或名稱 ":name" 都找不到有效的來源帳戶。',
'deposit_dest_need_data' => '需要有效的目標帳戶 ID 及/或有效的目標帳戶名稱才能繼續。',

View File

@@ -109,7 +109,7 @@ class StoreControllerTest extends TestCase
['weekly', (string)$faker->numberBetween(1, 7)],
['ndom', (string)$faker->numberBetween(1, 4) . ',' . $faker->numberBetween(1, 7)],
['monthly', (string)$faker->numberBetween(1, 31)],
['yearly', $faker->date()],
['yearly', $faker->dateTimeBetween('-1 year','now')->format('Y-m-d')],
];
$set = [];

View File

@@ -0,0 +1,244 @@
<?php
/*
* UpdateControllerTest.php
* Copyright (c) 2021 james@firefly-iii.org
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
namespace Tests\Api\Models\Recurrence;
use Faker\Factory;
use Laravel\Passport\Passport;
use Log;
use Tests\TestCase;
use Tests\Traits\CollectsValues;
use Tests\Traits\RandomValues;
use Tests\Traits\TestHelpers;
/**
* Class UpdateControllerTest
*/
class UpdateControllerTest extends TestCase
{
use RandomValues, TestHelpers, CollectsValues;
/**
*
*/
public function setUp(): void
{
parent::setUp();
Passport::actingAs($this->user());
Log::info(sprintf('Now in %s.', get_class($this)));
}
/**
* @dataProvider updateDataProvider
*/
public function testUpdate(array $submission): void
{
$ignore = [
'created_at',
'updated_at',
];
$route = route('api.v1.recurrences.update', [$submission['id']]);
$this->updateAndCompare($route, $submission, $ignore);
}
/**
* @return array
*/
public function updateDataProvider(): array
{
$submissions = [];
$all = $this->updateDataSet();
foreach ($all as $name => $data) {
$submissions[] = [$data];
}
return $submissions;
}
/**
* @return array
*/
public function updateDataSet(): array
{
$faker = Factory::create();
$types = [
['daily', ''],
['weekly', (string)$faker->numberBetween(1, 7)],
['ndom', (string)$faker->numberBetween(1, 4) . ',' . $faker->numberBetween(1, 7)],
['monthly', (string)$faker->numberBetween(1, 31)],
['yearly', $faker->dateTimeBetween('-1 year', 'now')->format('Y-m-d')],
];
$set = [
'title' => [
'id' => 1,
'fields' => [
'title' => ['test_value' => $faker->uuid],
],
'extra_ignore' => [],
],
'description' => [
'id' => 1,
'fields' => [
'description' => ['test_value' => $faker->uuid],
],
'extra_ignore' => [],
],
'first_date' => [
'id' => 1,
'fields' => [
'first_date' => ['test_value' => $faker->date()],
],
'extra_ignore' => [],
],
'repeat_until' => [
'id' => 1,
'fields' => [
'repeat_until' => ['test_value' => $faker->dateTimeBetween('1 year', '2 year')->format('Y-m-d')],
],
'extra_ignore' => [],
],
'nr_of_repetitions' => [
'id' => 1,
'fields' => [
'nr_of_repetitions' => ['test_value' => $faker->numberBetween(1, 5)],
],
'extra_ignore' => ['repeat_until'],
],
'apply_rules' => [
'id' => 1,
'fields' => [
'apply_rules' => ['test_value' => $faker->boolean],
],
'extra_ignore' => [],
],
'active' => [
'id' => 1,
'fields' => [
'active' => ['test_value' => $faker->boolean],
],
'extra_ignore' => [],
],
'notes' => [
'id' => 1,
'fields' => [
'notes' => ['test_value' => $faker->uuid],
],
'extra_ignore' => [],
],
];
// repetitions. Will submit 0,1 2 3 repetitions:
for ($i = 0; $i < 4; $i++) {
if (0 === $i) {
$set[] = [
'id' => 1,
'fields' => [
'repetitions' => [
'test_value' => [],
],
],
'extra_ignore' => [],
];
continue;
}
$extraRepetitions = [];
// do $i repetitions
for ($ii = 0; $ii < $i; $ii++) {
//echo 'Now at ' . $i . ':' . $ii . ' <br>' . "\n";
// now loop fields, enough to create sets I guess?
$thisType = $types[$faker->numberBetween(0, 4)];
// TODO maybe do some permutation stuff here?
$extraRepetition = [
'type' => $thisType[0],
'moment' => $thisType[1],
'skip' => $faker->numberBetween(1, 3),
'weekend' => $faker->numberBetween(1, 4),
];
$extraRepetitions[] = $extraRepetition;
}
$set[] = [
'id' => 1,
'fields' => [
'repetitions' => [
'test_value' => $extraRepetitions,
],
],
'extra_ignore' => [],
];
}
// transactions. Will submit 0,1 2 3 transactions:
for ($i = 0; $i < 4; $i++) {
if (0 === $i) {
$set[] = [
'id' => 1,
'fields' => [
'transactions' => [
'test_value' => [],
],
],
'extra_ignore' => [],
];
continue;
}
$extraTransactions = [];
// do $i repetitions
for ($ii = 0; $ii < $i; $ii++) {
//echo 'Now at ' . $i . ':' . $ii . ' <br>' . "\n";
// now loop fields, enough to create sets I guess?
// TODO maybe do some permutation stuff here?
$extraTransaction = [
'description' => $faker->uuid,
'amount' => number_format($faker->randomFloat(2, 10, 100), 2),
'skip' => $faker->numberBetween(1, 3),
'weekend' => $faker->numberBetween(1, 4),
'budget_id' => $faker->numberBetween(1, 2),
'category_id' => $faker->numberBetween(1, 2),
'tags' => ['a', 'c', 'd'],
'source_id' => 1,
'destination_id' => 8,
];
$extraTransactions[] = $extraTransaction;
}
// TODO later maybe
// $set[] = [
// 'id' => 1,
// 'fields' => [
// 'transactions' => [
// 'test_value' => $extraTransactions,
// ],
// ],
// 'extra_ignore' => [],
// ];
}
return $set;
}
}

View File

@@ -131,13 +131,13 @@ trait TestHelpers
{
foreach ($opts as $i => $func) {
if (array_key_exists($i, $set)) {
if(!is_array($set[$i])) {
if (!is_array($set[$i])) {
$set[$i] = $func();
}
if(is_array($set[$i])) {
foreach($set[$i] as $ii => $lines) {
foreach($lines as $iii => $value) {
if(isset($opts[$i][$ii][$iii])) {
if (is_array($set[$i])) {
foreach ($set[$i] as $ii => $lines) {
foreach ($lines as $iii => $value) {
if (isset($opts[$i][$ii][$iii])) {
$set[$i][$ii][$iii] = $opts[$i][$ii][$iii]();
}
}
@@ -194,19 +194,26 @@ trait TestHelpers
}
// field in response was also in body:
if (array_key_exists($rKey, $submissionArray)) {
if ($submissionArray[$rKey] !== $rValue) {
// comparison must be on array:
if (is_array($submissionArray[$rKey]) && is_array($rValue)) {
$this->compareArray($originalAttributes, $rKey, $submissionArray[$rKey], $rValue);
}
$message = sprintf(
"Expected field '%s' to be %s but its %s\nOriginal: %s\nSubmission: %s\nResult: %s",
$rKey,
var_export($submissionArray[$rKey], true),
var_export($rValue, true),
$originalString,
json_encode($submissionArray),
$responseString
);
$this->assertTrue(false, $message);
continue;
if (!is_array($submissionArray[$rKey]) && !is_array($rValue)) {
if ($submissionArray[$rKey] !== $rValue) {
$message = sprintf(
"Expected field '%s' to be %s but its %s\nOriginal: %s\nSubmission: %s\nResult: %s",
$rKey,
var_export($submissionArray[$rKey], true),
var_export($rValue, true),
$originalString,
json_encode($submissionArray),
$responseString
);
$this->assertTrue(false, $message);
continue;
}
}
continue;
}
@@ -282,13 +289,18 @@ trait TestHelpers
}
/**
* @param array $fullOriginal
* @param array $fullOriginal
* @param string $key
* @param array $original
* @param array $returned
*/
protected function compareArray(array $fullOriginal, string $key, array $original, array $returned)
{
// TODO this should be configurable but OK
if(in_array($key, ['transactions','repetitions'], true) && 0 === count($original) && 0 !== count($returned)) {
// accept this.
return;
}
$ignore = ['id', 'created_at', 'updated_at'];
foreach ($returned as $objectKey => $object) {
// each object is a transaction, a rule trigger, a rule action, whatever.

1826
yarn.lock

File diff suppressed because it is too large Load Diff