diff --git a/app/Api/V2/Controllers/Model/ExchangeRate/IndexController.php b/app/Api/V2/Controllers/Model/ExchangeRate/IndexController.php
new file mode 100644
index 0000000000..3caaabb2a1
--- /dev/null
+++ b/app/Api/V2/Controllers/Model/ExchangeRate/IndexController.php
@@ -0,0 +1,73 @@
+.
+ */
+
+declare(strict_types=1);
+
+namespace FireflyIII\Api\V2\Controllers\Model\ExchangeRate;
+
+use FireflyIII\Api\V2\Controllers\Controller;
+use FireflyIII\Repositories\UserGroups\ExchangeRate\ExchangeRateRepositoryInterface;
+use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait;
+use Illuminate\Http\JsonResponse;
+use Illuminate\Pagination\LengthAwarePaginator;
+
+/**
+ * Class ShowController
+ */
+class IndexController extends Controller
+{
+ public const string RESOURCE_KEY = 'exchange-rates';
+ use ValidatesUserGroupTrait;
+
+ private ExchangeRateRepositoryInterface $repository;
+
+ public function __construct()
+ {
+ parent::__construct();
+ $this->middleware(
+ function ($request, $next) {
+ $this->repository = app(ExchangeRateRepositoryInterface::class);
+ $this->repository->setUserGroup($this->validateUserGroup($request));
+
+ return $next($request);
+ }
+ );
+ }
+
+ public function index(): JsonResponse
+ {
+ $piggies = $this->repository->getAll();
+ $pageSize = $this->parameters->get('limit');
+ $count = $piggies->count();
+ $piggies = $piggies->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
+ $paginator = new LengthAwarePaginator($piggies, $count, $pageSize, $this->parameters->get('page'));
+
+ var_dump('here we are');
+
+ $transformer = new ExchangeRateTransformer();
+ $transformer->setParameters($this->parameters); // give params to transformer
+
+ return response()
+ ->json($this->jsonApiList(self::RESOURCE_KEY, $paginator, $transformer))
+ ->header('Content-Type', self::CONTENT_TYPE);
+ }
+}
diff --git a/app/Api/V2/Controllers/Model/ExchangeRate/ShowController.php b/app/Api/V2/Controllers/Model/ExchangeRate/ShowController.php
new file mode 100644
index 0000000000..0517dc6eec
--- /dev/null
+++ b/app/Api/V2/Controllers/Model/ExchangeRate/ShowController.php
@@ -0,0 +1,75 @@
+.
+ */
+
+declare(strict_types=1);
+
+namespace FireflyIII\Api\V2\Controllers\Model\ExchangeRate;
+
+use FireflyIII\Api\V2\Controllers\Controller;
+use FireflyIII\Models\TransactionCurrency;
+use FireflyIII\Repositories\UserGroups\ExchangeRate\ExchangeRateRepositoryInterface;
+use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait;
+use FireflyIII\Transformers\V2\ExchangeRateTransformer;
+use Illuminate\Http\JsonResponse;
+use Illuminate\Pagination\LengthAwarePaginator;
+
+/**
+ * Class ShowController
+ */
+class ShowController extends Controller
+{
+ public const string RESOURCE_KEY = 'exchange-rates';
+ use ValidatesUserGroupTrait;
+
+ private ExchangeRateRepositoryInterface $repository;
+
+ public function __construct()
+ {
+ parent::__construct();
+ $this->middleware(
+ function ($request, $next) {
+ $this->repository = app(ExchangeRateRepositoryInterface::class);
+ $this->repository->setUserGroup($this->validateUserGroup($request));
+
+ return $next($request);
+ }
+ );
+ }
+
+ public function show(TransactionCurrency $from, TransactionCurrency $to): JsonResponse
+ {
+// $piggies = $this->repository->getAll();
+//
+ $pageSize = $this->parameters->get('limit');
+ $rates = $this->repository->getRates($from, $to);
+ $count = $rates->count();
+ $rates = $rates->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
+ $paginator = new LengthAwarePaginator($rates, $count, $pageSize, $this->parameters->get('page'));
+
+ $transformer = new ExchangeRateTransformer();
+ $transformer->setParameters($this->parameters); // give params to transformer
+
+ return response()
+ ->json($this->jsonApiList(self::RESOURCE_KEY, $paginator, $transformer))
+ ->header('Content-Type', self::CONTENT_TYPE);
+ }
+}
diff --git a/app/Api/V2/Controllers/Model/TransactionCurrency/IndexController.php b/app/Api/V2/Controllers/Model/TransactionCurrency/IndexController.php
index ec311fb17b..947148a23e 100644
--- a/app/Api/V2/Controllers/Model/TransactionCurrency/IndexController.php
+++ b/app/Api/V2/Controllers/Model/TransactionCurrency/IndexController.php
@@ -39,9 +39,6 @@ class IndexController extends Controller
private CurrencyRepositoryInterface $repository;
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];
- /**
- * AccountController constructor.
- */
public function __construct()
{
parent::__construct();
diff --git a/app/Api/V2/Controllers/Model/TransactionCurrency/ShowController.php b/app/Api/V2/Controllers/Model/TransactionCurrency/ShowController.php
new file mode 100644
index 0000000000..f4d82134ac
--- /dev/null
+++ b/app/Api/V2/Controllers/Model/TransactionCurrency/ShowController.php
@@ -0,0 +1,78 @@
+.
+ */
+
+declare(strict_types=1);
+
+namespace FireflyIII\Api\V2\Controllers\Model\TransactionCurrency;
+
+use FireflyIII\Api\V2\Controllers\Controller;
+use FireflyIII\Models\TransactionCurrency;
+use FireflyIII\Models\UserGroup;
+use FireflyIII\Repositories\UserGroups\Currency\CurrencyRepositoryInterface;
+use FireflyIII\Transformers\V2\CurrencyTransformer;
+use Illuminate\Http\JsonResponse;
+
+/**
+ * Class ShowController
+ */
+class ShowController extends Controller
+{
+ public const string RESOURCE_KEY = 'transaction-currencies';
+
+ private CurrencyRepositoryInterface $repository;
+
+ public function __construct()
+ {
+ parent::__construct();
+ $this->middleware(
+ function ($request, $next) {
+ $this->repository = app(CurrencyRepositoryInterface::class);
+ // new way of user group validation
+ $userGroup = $this->validateUserGroup($request);
+ $this->repository->setUserGroup($userGroup);
+
+ return $next($request);
+ }
+ );
+ }
+
+ public function show(TransactionCurrency $currency): JsonResponse
+ {
+ $groups = $currency->userGroups()->where('user_groups.id', $this->repository->getUserGroup()->id)->get();
+ $enabled = $groups->count() > 0;
+ $default = false;
+ /** @var UserGroup $group */
+ foreach ($groups as $group) {
+ $default = 1 === $group->pivot->group_default;
+ }
+ $currency->userGroupEnabled = $enabled;
+ $currency->userGroupDefault = $default;
+
+
+ $transformer = new CurrencyTransformer();
+ $transformer->setParameters($this->parameters);
+
+ return response()
+ ->api($this->jsonApiObject(self::RESOURCE_KEY, $currency, $transformer))
+ ->header('Content-Type', self::CONTENT_TYPE);
+ }
+}
diff --git a/app/Models/TransactionCurrency.php b/app/Models/TransactionCurrency.php
index 96c8a8ea5b..1244484c9b 100644
--- a/app/Models/TransactionCurrency.php
+++ b/app/Models/TransactionCurrency.php
@@ -40,8 +40,8 @@ class TransactionCurrency extends Model
use ReturnsIntegerIdTrait;
use SoftDeletes;
- public ?bool $userGroupDefault;
- public ?bool $userGroupEnabled;
+ public ?bool $userGroupDefault = null;
+ public ?bool $userGroupEnabled = null;
protected $casts
= [
'created_at' => 'datetime',
diff --git a/app/Providers/CurrencyServiceProvider.php b/app/Providers/CurrencyServiceProvider.php
index 6643cfa4c4..d26d8c0b22 100644
--- a/app/Providers/CurrencyServiceProvider.php
+++ b/app/Providers/CurrencyServiceProvider.php
@@ -27,6 +27,8 @@ use FireflyIII\Repositories\Currency\CurrencyRepository;
use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use FireflyIII\Repositories\UserGroups\Currency\CurrencyRepository as GroupCurrencyRepository;
use FireflyIII\Repositories\UserGroups\Currency\CurrencyRepositoryInterface as GroupCurrencyRepositoryInterface;
+use FireflyIII\Repositories\UserGroups\ExchangeRate\ExchangeRateRepository;
+use FireflyIII\Repositories\UserGroups\ExchangeRate\ExchangeRateRepositoryInterface;
use Illuminate\Foundation\Application;
use Illuminate\Support\ServiceProvider;
@@ -71,5 +73,13 @@ class CurrencyServiceProvider extends ServiceProvider
return $repository;
}
);
+
+ $this->app->bind(
+ ExchangeRateRepositoryInterface::class,
+ static function (Application $app) {
+ /** @var ExchangeRateRepository $repository */
+ return app(ExchangeRateRepository::class);
+ }
+ );
}
}
diff --git a/app/Repositories/UserGroups/ExchangeRate/ExchangeRateRepository.php b/app/Repositories/UserGroups/ExchangeRate/ExchangeRateRepository.php
new file mode 100644
index 0000000000..5ae0292cbd
--- /dev/null
+++ b/app/Repositories/UserGroups/ExchangeRate/ExchangeRateRepository.php
@@ -0,0 +1,51 @@
+userGroup->currencyExchangeRates()
+ ->where(function (Builder $q) use ($from, $to) {
+ $q->where('from_currency_id', $from->id)
+ ->orWhere('to_currency_id', $to->id);
+ })
+ ->orWhere(function (Builder $q) use ($from, $to) {
+ $q->where('from_currency_id', $to->id)
+ ->orWhere('to_currency_id', $from->id);
+ })
+ ->orderBy('date', 'DESC')->get();
+
+ }
+}
diff --git a/app/Repositories/UserGroups/ExchangeRate/ExchangeRateRepositoryInterface.php b/app/Repositories/UserGroups/ExchangeRate/ExchangeRateRepositoryInterface.php
new file mode 100644
index 0000000000..95200d569b
--- /dev/null
+++ b/app/Repositories/UserGroups/ExchangeRate/ExchangeRateRepositoryInterface.php
@@ -0,0 +1,34 @@
+.
+ */
+
+declare(strict_types=1);
+
+namespace FireflyIII\Transformers\V2;
+
+use FireflyIII\Models\CurrencyExchangeRate;
+use Illuminate\Support\Collection;
+
+/**
+ * Class AccountTransformer
+ */
+class ExchangeRateTransformer extends AbstractTransformer
+{
+
+
+ /**
+ * This method collects meta-data for one or all accounts in the transformer's collection.
+ */
+ public function collectMetaData(Collection $objects): Collection
+ {
+ return $objects;
+ }
+
+ /**
+ * Transform the account.
+ */
+ public function transform(CurrencyExchangeRate $rate): array
+ {
+ return [
+ 'id' => (string) $rate->id,
+ 'created_at' => $rate->created_at->toAtomString(),
+ 'updated_at' => $rate->updated_at->toAtomString(),
+
+ 'from_currency_id' => (string) $rate->fromCurrency->id,
+ 'from_currency_code' => $rate->fromCurrency->code,
+ 'from_currency_symbol' => $rate->fromCurrency->symbol,
+ 'from_currency_decimal_places' => $rate->fromCurrency->decimal_places,
+
+ 'to_currency_id' => (string) $rate->toCurrency->id,
+ 'to_currency_code' => $rate->toCurrency->code,
+ 'to_currency_symbol' => $rate->toCurrency->symbol,
+ 'to_currency_decimal_places' => $rate->toCurrency->decimal_places,
+
+ 'rate' => $rate->rate,
+ 'date' => $rate->date->toAtomString(),
+ 'links' => [
+ [
+ 'rel' => 'self',
+ 'uri' => sprintf('/exchange-rates/%s', $rate->id),
+ ],
+ ],
+ ];
+ }
+}
diff --git a/config/translations.php b/config/translations.php
index f98060e92e..fd5feba0e6 100644
--- a/config/translations.php
+++ b/config/translations.php
@@ -272,7 +272,8 @@ return [
'reset_webhook_secret',
'header_exchange_rates',
'exchange_rates_intro',
- 'exchange_rates_from_to'
+ 'exchange_rates_from_to',
+ 'exchange_rates_intro_rates'
],
'form' => [
'url',
@@ -289,6 +290,8 @@ return [
'webhook_response',
'webhook_trigger',
'webhook_delivery',
+ 'from_currency_to_currency',
+ 'to_currency_from_currency'
],
'list' => [
'active',
diff --git a/resources/assets/v1/src/components/exchange-rates/Rates.vue b/resources/assets/v1/src/components/exchange-rates/Rates.vue
index e3f65d9419..f2a1328379 100644
--- a/resources/assets/v1/src/components/exchange-rates/Rates.vue
+++ b/resources/assets/v1/src/components/exchange-rates/Rates.vue
@@ -18,16 +18,92 @@
- along with this program. If not, see https://www.gnu.org/licenses/.
-->
-
-
-
-
+
+
+
+
+
+
+
+ {{ $t('firefly.exchange_rates_intro_rates') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('form.date') }} |
+ |
+ |
+ |
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/assets/v1/src/exchange-rates/rates.js b/resources/assets/v1/src/exchange-rates/rates.js
index 1711ca5997..ce02b5fe94 100644
--- a/resources/assets/v1/src/exchange-rates/rates.js
+++ b/resources/assets/v1/src/exchange-rates/rates.js
@@ -18,7 +18,7 @@
* along with this program. If not, see .
*/
-import Index from "../components/exchange-rates/Index";
+import Rates from "../components/exchange-rates/Rates";
/**
* First we will load Axios via bootstrap.js
@@ -34,6 +34,6 @@ const app = new Vue({
i18n,
el: "#exchange_rates_rates",
render: (createElement) => {
- return createElement(Index, {props: props})
+ return createElement(Rates, {props: props})
},
});
diff --git a/resources/assets/v1/src/locales/bg.json b/resources/assets/v1/src/locales/bg.json
index 819884d2d8..61a4cb7e7a 100644
--- a/resources/assets/v1/src/locales/bg.json
+++ b/resources/assets/v1/src/locales/bg.json
@@ -129,7 +129,10 @@
"logs": "Logs",
"response": "Response",
"visit_webhook_url": "Visit webhook URL",
- "reset_webhook_secret": "Reset webhook secret"
+ "reset_webhook_secret": "Reset webhook secret",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "\u0412\u044a\u0442\u0440\u0435\u0448\u043d\u0430 \u0440\u0435\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f",
"webhook_response": "Response",
"webhook_trigger": "Trigger",
- "webhook_delivery": "Delivery"
+ "webhook_delivery": "Delivery",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "\u0410\u043a\u0442\u0438\u0432\u0435\u043d \u043b\u0438 \u0435?",
diff --git a/resources/assets/v1/src/locales/ca.json b/resources/assets/v1/src/locales/ca.json
index c390c0f553..6645c48663 100644
--- a/resources/assets/v1/src/locales/ca.json
+++ b/resources/assets/v1/src/locales/ca.json
@@ -129,7 +129,10 @@
"logs": "Registres",
"response": "Resposta",
"visit_webhook_url": "Visitar l'URL del webhook",
- "reset_webhook_secret": "Reiniciar el secret del webhook"
+ "reset_webhook_secret": "Reiniciar el secret del webhook",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "Refer\u00e8ncia interna",
"webhook_response": "Resposta",
"webhook_trigger": "Activador",
- "webhook_delivery": "Lliurament"
+ "webhook_delivery": "Lliurament",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Est\u00e0 actiu?",
diff --git a/resources/assets/v1/src/locales/cs.json b/resources/assets/v1/src/locales/cs.json
index f2c3d8fee9..814f7b9ed2 100644
--- a/resources/assets/v1/src/locales/cs.json
+++ b/resources/assets/v1/src/locales/cs.json
@@ -129,7 +129,10 @@
"logs": "Logy",
"response": "Odpov\u011b\u010f",
"visit_webhook_url": "Nav\u0161t\u00edvit URL webhooku",
- "reset_webhook_secret": "Restartovat tajn\u00fd kl\u00ed\u010d webhooku"
+ "reset_webhook_secret": "Restartovat tajn\u00fd kl\u00ed\u010d webhooku",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "Intern\u00ed reference",
"webhook_response": "Response",
"webhook_trigger": "Spou\u0161t\u011b\u010d",
- "webhook_delivery": "Delivery"
+ "webhook_delivery": "Delivery",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Aktivn\u00ed?",
diff --git a/resources/assets/v1/src/locales/da.json b/resources/assets/v1/src/locales/da.json
index 03f0a3a0f5..079605e734 100644
--- a/resources/assets/v1/src/locales/da.json
+++ b/resources/assets/v1/src/locales/da.json
@@ -129,7 +129,10 @@
"logs": "Logs",
"response": "Svar",
"visit_webhook_url": "Bes\u00f8g webhook-URL",
- "reset_webhook_secret": "Nulstil webhook-hemmelighed"
+ "reset_webhook_secret": "Nulstil webhook-hemmelighed",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "Intern reference",
"webhook_response": "Svar",
"webhook_trigger": "Udl\u00f8ser",
- "webhook_delivery": "Levering"
+ "webhook_delivery": "Levering",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Aktiv?",
diff --git a/resources/assets/v1/src/locales/de.json b/resources/assets/v1/src/locales/de.json
index 6d51c1872e..6dd63043bf 100644
--- a/resources/assets/v1/src/locales/de.json
+++ b/resources/assets/v1/src/locales/de.json
@@ -129,7 +129,10 @@
"logs": "Protokolle",
"response": "Antwort",
"visit_webhook_url": "Webhook-URL besuchen",
- "reset_webhook_secret": "Webhook Secret zur\u00fccksetzen"
+ "reset_webhook_secret": "Webhook Secret zur\u00fccksetzen",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "Interne Referenz",
"webhook_response": "Antwort",
"webhook_trigger": "Ausl\u00f6ser",
- "webhook_delivery": "Zustellung"
+ "webhook_delivery": "Zustellung",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Aktiv?",
diff --git a/resources/assets/v1/src/locales/el.json b/resources/assets/v1/src/locales/el.json
index e2a6d65c7f..3485310dfe 100644
--- a/resources/assets/v1/src/locales/el.json
+++ b/resources/assets/v1/src/locales/el.json
@@ -129,7 +129,10 @@
"logs": "\u0391\u03c1\u03c7\u03b5\u03af\u03b1 \u03ba\u03b1\u03c4\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2 (Logs)",
"response": "\u0391\u03c0\u03cc\u03ba\u03c1\u03b9\u03c3\u03b7",
"visit_webhook_url": "\u0395\u03c0\u03b9\u03c3\u03ba\u03b5\u03c6\u03b8\u03b5\u03af\u03c4\u03b5 \u03c4\u03bf URL \u03c4\u03bf\u03c5 webhook",
- "reset_webhook_secret": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u03bc\u03c5\u03c3\u03c4\u03b9\u03ba\u03bf\u03cd webhook"
+ "reset_webhook_secret": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u03bc\u03c5\u03c3\u03c4\u03b9\u03ba\u03bf\u03cd webhook",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "\u0394\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 URL",
@@ -145,7 +148,9 @@
"internal_reference": "\u0395\u03c3\u03c9\u03c4\u03b5\u03c1\u03b9\u03ba\u03ae \u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac",
"webhook_response": "\u0391\u03c0\u03cc\u03ba\u03c1\u03b9\u03c3\u03b7",
"webhook_trigger": "\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7",
- "webhook_delivery": "\u03a0\u03b1\u03c1\u03ac\u03b4\u03bf\u03c3\u03b7"
+ "webhook_delivery": "\u03a0\u03b1\u03c1\u03ac\u03b4\u03bf\u03c3\u03b7",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "\u0395\u03af\u03bd\u03b1\u03b9 \u03b5\u03bd\u03b5\u03c1\u03b3\u03cc;",
diff --git a/resources/assets/v1/src/locales/en-gb.json b/resources/assets/v1/src/locales/en-gb.json
index 2999f99e7f..dc336a9d1a 100644
--- a/resources/assets/v1/src/locales/en-gb.json
+++ b/resources/assets/v1/src/locales/en-gb.json
@@ -129,7 +129,10 @@
"logs": "Logs",
"response": "Response",
"visit_webhook_url": "Visit webhook URL",
- "reset_webhook_secret": "Reset webhook secret"
+ "reset_webhook_secret": "Reset webhook secret",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "Internal reference",
"webhook_response": "Response",
"webhook_trigger": "Trigger",
- "webhook_delivery": "Delivery"
+ "webhook_delivery": "Delivery",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Is active?",
diff --git a/resources/assets/v1/src/locales/en.json b/resources/assets/v1/src/locales/en.json
index 1517f83aa4..a3496cf582 100644
--- a/resources/assets/v1/src/locales/en.json
+++ b/resources/assets/v1/src/locales/en.json
@@ -132,7 +132,7 @@
"reset_webhook_secret": "Reset webhook secret",
"header_exchange_rates": "Exchange rates",
"exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
- "exchange_rates_from_to": "Between {from} and {to}"
+ "exchange_rates_from_to": "Between {from} and {to} (and the other way around)"
},
"form": {
"url": "URL",
@@ -148,7 +148,9 @@
"internal_reference": "Internal reference",
"webhook_response": "Response",
"webhook_trigger": "Trigger",
- "webhook_delivery": "Delivery"
+ "webhook_delivery": "Delivery",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Is active?",
diff --git a/resources/assets/v1/src/locales/es.json b/resources/assets/v1/src/locales/es.json
index a48801ff0c..7b28396cf1 100644
--- a/resources/assets/v1/src/locales/es.json
+++ b/resources/assets/v1/src/locales/es.json
@@ -129,7 +129,10 @@
"logs": "Registros",
"response": "Respuesta",
"visit_webhook_url": "Visita la URL del webhook",
- "reset_webhook_secret": "Restablecer secreto del webhook"
+ "reset_webhook_secret": "Restablecer secreto del webhook",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "Referencia interna",
"webhook_response": "Respuesta",
"webhook_trigger": "Disparador",
- "webhook_delivery": "Entrega"
+ "webhook_delivery": "Entrega",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "\u00bfEst\u00e1 Activo?",
diff --git a/resources/assets/v1/src/locales/fi.json b/resources/assets/v1/src/locales/fi.json
index 468931fead..ec11c9f013 100644
--- a/resources/assets/v1/src/locales/fi.json
+++ b/resources/assets/v1/src/locales/fi.json
@@ -129,7 +129,10 @@
"logs": "Logs",
"response": "Response",
"visit_webhook_url": "Visit webhook URL",
- "reset_webhook_secret": "Reset webhook secret"
+ "reset_webhook_secret": "Reset webhook secret",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL-osoite",
@@ -145,7 +148,9 @@
"internal_reference": "Sis\u00e4inen viite",
"webhook_response": "Response",
"webhook_trigger": "Trigger",
- "webhook_delivery": "Delivery"
+ "webhook_delivery": "Delivery",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Aktiivinen?",
diff --git a/resources/assets/v1/src/locales/fr.json b/resources/assets/v1/src/locales/fr.json
index 32c4fd54e2..d31ab6bdb7 100644
--- a/resources/assets/v1/src/locales/fr.json
+++ b/resources/assets/v1/src/locales/fr.json
@@ -129,7 +129,10 @@
"logs": "Journaux",
"response": "R\u00e9ponse",
"visit_webhook_url": "Visiter l'URL du webhook",
- "reset_webhook_secret": "R\u00e9initialiser le secret du webhook"
+ "reset_webhook_secret": "R\u00e9initialiser le secret du webhook",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "Liens",
@@ -145,7 +148,9 @@
"internal_reference": "R\u00e9f\u00e9rence interne",
"webhook_response": "R\u00e9ponse",
"webhook_trigger": "D\u00e9clencheur",
- "webhook_delivery": "Distribution"
+ "webhook_delivery": "Distribution",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Actif ?",
diff --git a/resources/assets/v1/src/locales/hu.json b/resources/assets/v1/src/locales/hu.json
index 525f99061a..6422064f9d 100644
--- a/resources/assets/v1/src/locales/hu.json
+++ b/resources/assets/v1/src/locales/hu.json
@@ -129,7 +129,10 @@
"logs": "Napl\u00f3k",
"response": "V\u00e1lasz",
"visit_webhook_url": "Webhook URL megl\u00e1togat\u00e1sa",
- "reset_webhook_secret": "Webhook titok vissza\u00e1ll\u00edt\u00e1sa"
+ "reset_webhook_secret": "Webhook titok vissza\u00e1ll\u00edt\u00e1sa",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "Bels\u0151 hivatkoz\u00e1s",
"webhook_response": "Response",
"webhook_trigger": "Trigger",
- "webhook_delivery": "Delivery"
+ "webhook_delivery": "Delivery",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Akt\u00edv?",
diff --git a/resources/assets/v1/src/locales/id.json b/resources/assets/v1/src/locales/id.json
index 658f7bfcd4..1fc88dd2e8 100644
--- a/resources/assets/v1/src/locales/id.json
+++ b/resources/assets/v1/src/locales/id.json
@@ -129,7 +129,10 @@
"logs": "Logs",
"response": "Response",
"visit_webhook_url": "Visit webhook URL",
- "reset_webhook_secret": "Reset webhook secret"
+ "reset_webhook_secret": "Reset webhook secret",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "Referensi internal",
"webhook_response": "Response",
"webhook_trigger": "Trigger",
- "webhook_delivery": "Delivery"
+ "webhook_delivery": "Delivery",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Aktif?",
diff --git a/resources/assets/v1/src/locales/it.json b/resources/assets/v1/src/locales/it.json
index 83df157f95..c428cabc05 100644
--- a/resources/assets/v1/src/locales/it.json
+++ b/resources/assets/v1/src/locales/it.json
@@ -129,7 +129,10 @@
"logs": "Log",
"response": "Risposta",
"visit_webhook_url": "Visita URL webhook",
- "reset_webhook_secret": "Reimposta il segreto del webhook"
+ "reset_webhook_secret": "Reimposta il segreto del webhook",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "Riferimento interno",
"webhook_response": "Risposta",
"webhook_trigger": "Trigger",
- "webhook_delivery": "Consegna"
+ "webhook_delivery": "Consegna",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Attivo",
diff --git a/resources/assets/v1/src/locales/ja.json b/resources/assets/v1/src/locales/ja.json
index 7c7c7d34e1..430efaf1ed 100644
--- a/resources/assets/v1/src/locales/ja.json
+++ b/resources/assets/v1/src/locales/ja.json
@@ -129,7 +129,10 @@
"logs": "\u30ed\u30b0",
"response": "\u30ec\u30b9\u30dd\u30f3\u30b9",
"visit_webhook_url": "Webhook\u306eURL\u3092\u958b\u304f",
- "reset_webhook_secret": "Webhook\u306e\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u3092\u30ea\u30bb\u30c3\u30c8"
+ "reset_webhook_secret": "Webhook\u306e\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u3092\u30ea\u30bb\u30c3\u30c8",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "\u5185\u90e8\u53c2\u7167",
"webhook_response": "\u30ec\u30b9\u30dd\u30f3\u30b9",
"webhook_trigger": "\u30c8\u30ea\u30ac\u30fc",
- "webhook_delivery": "\u914d\u4fe1"
+ "webhook_delivery": "\u914d\u4fe1",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "\u6709\u52b9",
diff --git a/resources/assets/v1/src/locales/ko.json b/resources/assets/v1/src/locales/ko.json
index 74c4129281..c6defcf176 100644
--- a/resources/assets/v1/src/locales/ko.json
+++ b/resources/assets/v1/src/locales/ko.json
@@ -129,7 +129,10 @@
"logs": "\ub85c\uadf8",
"response": "\uc751\ub2f5",
"visit_webhook_url": "\uc6f9\ud6c5 URL \ubc29\ubb38",
- "reset_webhook_secret": "\uc6f9\ud6c5 \uc2dc\ud06c\ub9bf \uc7ac\uc124\uc815"
+ "reset_webhook_secret": "\uc6f9\ud6c5 \uc2dc\ud06c\ub9bf \uc7ac\uc124\uc815",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "\ub0b4\ubd80 \ucc38\uc870",
"webhook_response": "\uc751\ub2f5",
"webhook_trigger": "\ud2b8\ub9ac\uac70",
- "webhook_delivery": "\uc804\ub2ec"
+ "webhook_delivery": "\uc804\ub2ec",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "\ud65c\uc131 \uc0c1\ud0dc\uc785\ub2c8\uae4c?",
diff --git a/resources/assets/v1/src/locales/nb.json b/resources/assets/v1/src/locales/nb.json
index 3ee13ffde7..4e321ad0de 100644
--- a/resources/assets/v1/src/locales/nb.json
+++ b/resources/assets/v1/src/locales/nb.json
@@ -129,7 +129,10 @@
"logs": "Logger",
"response": "Respons",
"visit_webhook_url": "Bes\u00f8k URL til webhook",
- "reset_webhook_secret": "Tilbakestill Webhook n\u00f8kkel"
+ "reset_webhook_secret": "Tilbakestill Webhook n\u00f8kkel",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "Nettadresse",
@@ -145,7 +148,9 @@
"internal_reference": "Intern referanse",
"webhook_response": "Respons",
"webhook_trigger": "Utl\u00f8ser",
- "webhook_delivery": "Levering"
+ "webhook_delivery": "Levering",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Er aktiv?",
diff --git a/resources/assets/v1/src/locales/nl.json b/resources/assets/v1/src/locales/nl.json
index a0787e855a..743f95ef81 100644
--- a/resources/assets/v1/src/locales/nl.json
+++ b/resources/assets/v1/src/locales/nl.json
@@ -129,7 +129,10 @@
"logs": "Logboeken",
"response": "Reactie",
"visit_webhook_url": "Bezoek URL van webhook",
- "reset_webhook_secret": "Reset webhook-geheim"
+ "reset_webhook_secret": "Reset webhook-geheim",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "Interne verwijzing",
"webhook_response": "Reactie",
"webhook_trigger": "Trigger",
- "webhook_delivery": "Bericht"
+ "webhook_delivery": "Bericht",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Actief?",
diff --git a/resources/assets/v1/src/locales/nn.json b/resources/assets/v1/src/locales/nn.json
index 0c57001a34..ccde8ab200 100644
--- a/resources/assets/v1/src/locales/nn.json
+++ b/resources/assets/v1/src/locales/nn.json
@@ -129,7 +129,10 @@
"logs": "Logger",
"response": "Respons",
"visit_webhook_url": "Bes\u00f8k URL til webhook",
- "reset_webhook_secret": "Tilbakestill Webhook hemmelegheit"
+ "reset_webhook_secret": "Tilbakestill Webhook hemmelegheit",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "Nettadresse",
@@ -145,7 +148,9 @@
"internal_reference": "Intern referanse",
"webhook_response": "Respons",
"webhook_trigger": "Utl\u00f8ser",
- "webhook_delivery": "Levering"
+ "webhook_delivery": "Levering",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Er aktiv?",
diff --git a/resources/assets/v1/src/locales/pl.json b/resources/assets/v1/src/locales/pl.json
index dffb2fe39d..f4376672f2 100644
--- a/resources/assets/v1/src/locales/pl.json
+++ b/resources/assets/v1/src/locales/pl.json
@@ -129,7 +129,10 @@
"logs": "Logi",
"response": "Odpowied\u017a",
"visit_webhook_url": "Odwied\u017a adres URL webhooka",
- "reset_webhook_secret": "Resetuj sekret webhooka"
+ "reset_webhook_secret": "Resetuj sekret webhooka",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "Wewn\u0119trzny numer",
"webhook_response": "Odpowied\u017a",
"webhook_trigger": "Wyzwalacz",
- "webhook_delivery": "Dor\u0119czenie"
+ "webhook_delivery": "Dor\u0119czenie",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Jest aktywny?",
diff --git a/resources/assets/v1/src/locales/pt-br.json b/resources/assets/v1/src/locales/pt-br.json
index c1634e05a2..f11865a899 100644
--- a/resources/assets/v1/src/locales/pt-br.json
+++ b/resources/assets/v1/src/locales/pt-br.json
@@ -129,7 +129,10 @@
"logs": "Registros",
"response": "Resposta",
"visit_webhook_url": "Acesse a URL do webhook",
- "reset_webhook_secret": "Redefinir chave do webhook"
+ "reset_webhook_secret": "Redefinir chave do webhook",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "Refer\u00eancia interna",
"webhook_response": "Resposta",
"webhook_trigger": "Gatilho",
- "webhook_delivery": "Entrega"
+ "webhook_delivery": "Entrega",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Est\u00e1 ativo?",
diff --git a/resources/assets/v1/src/locales/pt.json b/resources/assets/v1/src/locales/pt.json
index 88df19b096..62b099d96b 100644
--- a/resources/assets/v1/src/locales/pt.json
+++ b/resources/assets/v1/src/locales/pt.json
@@ -129,7 +129,10 @@
"logs": "Logs",
"response": "Respostas",
"visit_webhook_url": "Ir para URL do webhook",
- "reset_webhook_secret": "Redefinir segredo webhook"
+ "reset_webhook_secret": "Redefinir segredo webhook",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "Refer\u00eancia interna",
"webhook_response": "Resposta",
"webhook_trigger": "Gatilho",
- "webhook_delivery": "Entrega"
+ "webhook_delivery": "Entrega",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Esta ativo?",
diff --git a/resources/assets/v1/src/locales/ro.json b/resources/assets/v1/src/locales/ro.json
index 06bf7bad93..207b56e393 100644
--- a/resources/assets/v1/src/locales/ro.json
+++ b/resources/assets/v1/src/locales/ro.json
@@ -129,7 +129,10 @@
"logs": "Jurnale",
"response": "R\u0103spuns",
"visit_webhook_url": "Vizita\u0163i URL-ul webhook",
- "reset_webhook_secret": "Resetare secret webhook"
+ "reset_webhook_secret": "Resetare secret webhook",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "Referin\u021b\u0103 intern\u0103",
"webhook_response": "R\u0103spuns",
"webhook_trigger": "Declan\u0219ator",
- "webhook_delivery": "Livrare"
+ "webhook_delivery": "Livrare",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Este activ?",
diff --git a/resources/assets/v1/src/locales/ru.json b/resources/assets/v1/src/locales/ru.json
index dab5f13086..d24af626d2 100644
--- a/resources/assets/v1/src/locales/ru.json
+++ b/resources/assets/v1/src/locales/ru.json
@@ -129,7 +129,10 @@
"logs": "\u041b\u043e\u0433\u0438",
"response": "\u041e\u0442\u0432\u0435\u0442",
"visit_webhook_url": "\u041f\u043e\u0441\u0435\u0442\u0438\u0442\u044c URL \u0432\u0435\u0431\u0445\u0443\u043a\u0430",
- "reset_webhook_secret": ""
+ "reset_webhook_secret": "",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "\u0421\u0441\u044b\u043b\u043a\u0430",
@@ -145,7 +148,9 @@
"internal_reference": "\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0441\u0441\u044b\u043b\u043a\u0430",
"webhook_response": "\u041e\u0442\u0432\u0435\u0442",
"webhook_trigger": "\u0421\u043e\u0431\u044b\u0442\u0438\u044f",
- "webhook_delivery": "\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430"
+ "webhook_delivery": "\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "\u0410\u043a\u0442\u0438\u0432\u0435\u043d?",
diff --git a/resources/assets/v1/src/locales/sk.json b/resources/assets/v1/src/locales/sk.json
index 61191157b4..79707551ec 100644
--- a/resources/assets/v1/src/locales/sk.json
+++ b/resources/assets/v1/src/locales/sk.json
@@ -129,7 +129,10 @@
"logs": "Logs",
"response": "Response",
"visit_webhook_url": "Visit webhook URL",
- "reset_webhook_secret": "Reset webhook secret"
+ "reset_webhook_secret": "Reset webhook secret",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "Intern\u00e1 referencia",
"webhook_response": "Response",
"webhook_trigger": "Trigger",
- "webhook_delivery": "Delivery"
+ "webhook_delivery": "Delivery",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Akt\u00edvne?",
diff --git a/resources/assets/v1/src/locales/sl.json b/resources/assets/v1/src/locales/sl.json
index f854cb8d09..9c5a985e09 100644
--- a/resources/assets/v1/src/locales/sl.json
+++ b/resources/assets/v1/src/locales/sl.json
@@ -129,7 +129,10 @@
"logs": "Dnevniki",
"response": "Odziv",
"visit_webhook_url": "Obi\u0161\u010dite URL webhooka",
- "reset_webhook_secret": "Ponastavi skrivno kodo webhooka"
+ "reset_webhook_secret": "Ponastavi skrivno kodo webhooka",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "Notranji sklic",
"webhook_response": "Odziv",
"webhook_trigger": "Spro\u017eilec",
- "webhook_delivery": "Dostava"
+ "webhook_delivery": "Dostava",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Aktiviran?",
diff --git a/resources/assets/v1/src/locales/sv.json b/resources/assets/v1/src/locales/sv.json
index 7bfa04fc1b..170e69b89c 100644
--- a/resources/assets/v1/src/locales/sv.json
+++ b/resources/assets/v1/src/locales/sv.json
@@ -129,7 +129,10 @@
"logs": "Loggar",
"response": "Svar",
"visit_webhook_url": "Visit webhook URL",
- "reset_webhook_secret": "Reset webhook secret"
+ "reset_webhook_secret": "Reset webhook secret",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "L\u00e4nk",
@@ -145,7 +148,9 @@
"internal_reference": "Intern referens",
"webhook_response": "Response",
"webhook_trigger": "Utl\u00f6sare",
- "webhook_delivery": "Delivery"
+ "webhook_delivery": "Delivery",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "\u00c4r aktiv?",
diff --git a/resources/assets/v1/src/locales/tr.json b/resources/assets/v1/src/locales/tr.json
index c4fc71fa5c..5b64f8eac4 100644
--- a/resources/assets/v1/src/locales/tr.json
+++ b/resources/assets/v1/src/locales/tr.json
@@ -129,7 +129,10 @@
"logs": "Logs",
"response": "Response",
"visit_webhook_url": "Visit webhook URL",
- "reset_webhook_secret": "Reset webhook secret"
+ "reset_webhook_secret": "Reset webhook secret",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "Dahili referans",
"webhook_response": "Response",
"webhook_trigger": "Trigger",
- "webhook_delivery": "Delivery"
+ "webhook_delivery": "Delivery",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "Aktif mi?",
diff --git a/resources/assets/v1/src/locales/uk.json b/resources/assets/v1/src/locales/uk.json
index e257a8f819..a35a5ddc43 100644
--- a/resources/assets/v1/src/locales/uk.json
+++ b/resources/assets/v1/src/locales/uk.json
@@ -129,7 +129,10 @@
"logs": "\u0416\u0443\u0440\u043d\u0430\u043b\u0438",
"response": "\u0412\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u044c",
"visit_webhook_url": "\u0412\u0456\u0434\u0432\u0456\u0434\u0430\u0439\u0442\u0435 URL-\u0430\u0434\u0440\u0435\u0441\u0443 \u0432\u0435\u0431-\u0445\u0443\u043a\u0443",
- "reset_webhook_secret": "\u0412\u0456\u0434\u043d\u043e\u0432\u0438\u0442\u0438 \u0441\u0456\u043a\u0440\u0435\u0442 \u0432\u0435\u0431-\u0445\u0443\u043a\u0430"
+ "reset_webhook_secret": "\u0412\u0456\u0434\u043d\u043e\u0432\u0438\u0442\u0438 \u0441\u0456\u043a\u0440\u0435\u0442 \u0432\u0435\u0431-\u0445\u0443\u043a\u0430",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL-\u0430\u0434\u0440\u0435\u0441\u0430",
@@ -145,7 +148,9 @@
"internal_reference": "\u0412\u043d\u0443\u0442\u0440\u0456\u0448\u043d\u0454 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f",
"webhook_response": "\u0412\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u044c",
"webhook_trigger": "\u0422\u0440\u0438\u0433\u0435\u0440",
- "webhook_delivery": "\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430"
+ "webhook_delivery": "\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "\u0427\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u0438\u0439?",
diff --git a/resources/assets/v1/src/locales/vi.json b/resources/assets/v1/src/locales/vi.json
index 41ba0ceae9..73bb7bd8de 100644
--- a/resources/assets/v1/src/locales/vi.json
+++ b/resources/assets/v1/src/locales/vi.json
@@ -129,7 +129,10 @@
"logs": "Nh\u1eadt k\u00fd",
"response": "\u0110\u00e1p l\u1ea1i",
"visit_webhook_url": "\u0110i \u0111\u1ebfn webhook URL",
- "reset_webhook_secret": "C\u00e0i l\u1ea1i kh\u00f3a webhook"
+ "reset_webhook_secret": "C\u00e0i l\u1ea1i kh\u00f3a webhook",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "T\u00e0i li\u1ec7u tham kh\u1ea3o n\u1ed9i b\u1ed9",
"webhook_response": "\u0110\u00e1p l\u1ea1i",
"webhook_trigger": "K\u00edch ho\u1ea1t",
- "webhook_delivery": "Ph\u00e2n ph\u1ed1i"
+ "webhook_delivery": "Ph\u00e2n ph\u1ed1i",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "\u0110ang ho\u1ea1t \u0111\u1ed9ng?",
diff --git a/resources/assets/v1/src/locales/zh-cn.json b/resources/assets/v1/src/locales/zh-cn.json
index 628b354443..fca138790b 100644
--- a/resources/assets/v1/src/locales/zh-cn.json
+++ b/resources/assets/v1/src/locales/zh-cn.json
@@ -129,7 +129,10 @@
"logs": "\u65e5\u5fd7",
"response": "\u54cd\u5e94",
"visit_webhook_url": "\u8bbf\u95ee webhook URL",
- "reset_webhook_secret": "\u91cd\u7f6e webhook \u5bc6\u94a5"
+ "reset_webhook_secret": "\u91cd\u7f6e webhook \u5bc6\u94a5",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "\u7f51\u5740",
@@ -145,7 +148,9 @@
"internal_reference": "\u5185\u90e8\u5f15\u7528",
"webhook_response": "\u54cd\u5e94\u5185\u5bb9",
"webhook_trigger": "\u89e6\u53d1\u6761\u4ef6",
- "webhook_delivery": "\u53d1\u9001\u683c\u5f0f"
+ "webhook_delivery": "\u53d1\u9001\u683c\u5f0f",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "\u662f\u5426\u542f\u7528\uff1f",
diff --git a/resources/assets/v1/src/locales/zh-tw.json b/resources/assets/v1/src/locales/zh-tw.json
index 931d5a63e3..5ddf3878cc 100644
--- a/resources/assets/v1/src/locales/zh-tw.json
+++ b/resources/assets/v1/src/locales/zh-tw.json
@@ -129,7 +129,10 @@
"logs": "\u7d00\u9304\u65e5\u8a8c",
"response": "\u56de\u8986",
"visit_webhook_url": "Visit webhook URL",
- "reset_webhook_secret": "Reset webhook secret"
+ "reset_webhook_secret": "Reset webhook secret",
+ "header_exchange_rates": "Exchange rates",
+ "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in the documentation<\/a>.",
+ "exchange_rates_from_to": "Between :from and :to"
},
"form": {
"url": "URL",
@@ -145,7 +148,9 @@
"internal_reference": "\u5167\u90e8\u53c3\u8003",
"webhook_response": "Response",
"webhook_trigger": "Trigger",
- "webhook_delivery": "Delivery"
+ "webhook_delivery": "Delivery",
+ "from_currency_to_currency": "{from} → {to}",
+ "to_currency_from_currency": "{to} → {from}"
},
"list": {
"active": "\u662f\u5426\u555f\u7528\uff1f",
diff --git a/resources/lang/en_US/firefly.php b/resources/lang/en_US/firefly.php
index bd0d71ebca..0d56f4ecea 100644
--- a/resources/lang/en_US/firefly.php
+++ b/resources/lang/en_US/firefly.php
@@ -1399,6 +1399,9 @@ return [
'header_exchange_rates' => 'Exchange rates',
'exchange_rates_intro' =>'Firefly III supports downloading and using exchange rates. Read more about this in the documentation.',
'exchange_rates_from_to' => 'Between {from} and {to} (and the other way around)',
+ 'header_exchange_rates_rates' => 'Exchange rates',
+ 'exchange_rates_intro_rates' => 'Firefly III bla bla bla exchange rates.',
+ 'header_exchange_rates_table' => 'Table with exchange rates',
// Financial administrations
'administration_index' => 'Financial administration',
diff --git a/resources/lang/en_US/form.php b/resources/lang/en_US/form.php
index 7a50aaae2f..595565eae5 100644
--- a/resources/lang/en_US/form.php
+++ b/resources/lang/en_US/form.php
@@ -111,6 +111,11 @@ return [
'startdate' => 'Start date',
'start_date' => 'Start date',
'tag' => 'Tag',
+
+ // exchange rates
+ 'from_currency_to_currency' => '{from} → {to}',
+ 'to_currency_from_currency' => '{to} → {from}',
+
'under' => 'Under',
'symbol' => 'Symbol',
'code' => 'Code',
diff --git a/resources/views/exchange-rates/rates.twig b/resources/views/exchange-rates/rates.twig
index 7be137ebfb..0155a2962a 100644
--- a/resources/views/exchange-rates/rates.twig
+++ b/resources/views/exchange-rates/rates.twig
@@ -5,7 +5,8 @@
{% endblock %}
{% block content %}
-
+
+
{% endblock %}
{% block scripts %}
diff --git a/routes/api.php b/routes/api.php
index 1c1e082f59..d5c3b0eec9 100644
--- a/routes/api.php
+++ b/routes/api.php
@@ -95,8 +95,9 @@ Route::group(
],
static function (): void {
Route::get('', ['uses' => 'IndexController@index', 'as' => 'index']);
+ Route::get('{currency_code}', ['uses' => 'ShowController@show', 'as' => 'show']);
// Route::post('', ['uses' => 'StoreController@store', 'as' => 'store']);
-// Route::get('{userGroup}', ['uses' => 'ShowController@show', 'as' => 'show']);
+//
// Route::put('{userGroup}', ['uses' => 'UpdateController@update', 'as' => 'update']);
// Route::post('{userGroup}/use', ['uses' => 'UpdateController@useUserGroup', 'as' => 'use']);
// Route::put('{userGroup}/update-membership', ['uses' => 'UpdateController@updateMembership', 'as' => 'updateMembership']);
@@ -104,6 +105,26 @@ Route::group(
}
);
+// exchange rates
+Route::group(
+ [
+ 'namespace' => 'FireflyIII\Api\V2\Controllers\Model\ExchangeRate',
+ 'prefix' => 'v2/exchange-rates',
+ 'as' => 'api.v2.exchange-rates.',
+ ],
+ static function (): void {
+ Route::get('', ['uses' => 'IndexController@index', 'as' => 'index']);
+ Route::get('{fromCurrencyCode}/{toCurrencyCode}', ['uses' => 'ShowController@show', 'as' => 'show']);
+// Route::post('', ['uses' => 'StoreController@store', 'as' => 'store']);
+//
+ // Route::put('{userGroup}', ['uses' => 'UpdateController@update', 'as' => 'update']);
+ // Route::post('{userGroup}/use', ['uses' => 'UpdateController@useUserGroup', 'as' => 'use']);
+ // Route::put('{userGroup}/update-membership', ['uses' => 'UpdateController@updateMembership', 'as' => 'updateMembership']);
+ // Route::delete('{userGroup}', ['uses' => 'DestroyController@destroy', 'as' => 'destroy']);
+ }
+);
+
+
// V2 API route for Summary boxes
// BASIC
//Route::group(