i18n on the web - deepseek translations
This commit is contained in:
@@ -1,22 +1,18 @@
|
||||
{# GET /admin/ecb — crate::pages::admin::ecb::ui::EcbPage #}
|
||||
{% extends "ui/base.html" %}
|
||||
|
||||
{% block title %}Exchange rates{% endblock %}
|
||||
{% block title %}{{ nav.tr("ecb-title") }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<main>
|
||||
<section class="heading">
|
||||
<div>
|
||||
<p class="eyebrow">Exchange rates</p>
|
||||
<h1>ECB reference rates</h1>
|
||||
<p>
|
||||
The importer fetches the ECB's published rates once a day and records every
|
||||
attempt. Conversions read only what it has verified, so coverage is what decides
|
||||
whether a foreign-currency amount can be posted at all.
|
||||
</p>
|
||||
<p class="eyebrow">{{ nav.tr("ecb-title") }}</p>
|
||||
<h1>{{ nav.tr("ecb-heading") }}</h1>
|
||||
<p>{{ nav.tr("ecb-description") }}</p>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<a href="/admin">← Admin panel</a>
|
||||
<a href="/admin">{{ nav.tr("ui-back-to-admin-panel") }}</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -24,23 +20,19 @@
|
||||
|
||||
<section class="panel">
|
||||
<h2>
|
||||
Import attempts <span class="count">{{ page.batches.len() }}</span>
|
||||
{%- if page.failure_count() > 0 %}<span class="tag tag-bad">{{ page.failure_count() }} failed</span>{% endif -%}
|
||||
{{ nav.tr("ecb-import-attempts") }} <span class="count">{{ page.batches.len() }}</span>
|
||||
{%- if page.failure_count() > 0 %}<span class="tag tag-bad">{{ page.failed_count_label() }}</span>{% endif -%}
|
||||
</h2>
|
||||
{% if page.batches.is_empty() %}
|
||||
<p class="hint">
|
||||
The importer has not recorded an attempt. It runs on startup and then daily, so
|
||||
an empty log means the server has not completed a run since this table was
|
||||
created.
|
||||
</p>
|
||||
<p class="hint">{{ nav.tr("ecb-no-attempts-hint") }}</p>
|
||||
{% else %}
|
||||
<div class="table-scroll">
|
||||
<table class="builder-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="mark">#</th><th>Result</th><th>Started</th><th>Finished</th>
|
||||
<th>Took</th><th>Window</th><th class="numeric">Observations</th>
|
||||
<th>Verified through</th>
|
||||
<th class="mark">#</th><th>{{ nav.tr("ecb-th-result") }}</th><th>{{ nav.tr("ecb-th-started") }}</th><th>{{ nav.tr("ecb-th-finished") }}</th>
|
||||
<th>{{ nav.tr("ecb-th-took") }}</th><th>{{ nav.tr("ecb-th-window") }}</th><th class="numeric">{{ nav.tr("ecb-th-observations") }}</th>
|
||||
<th>{{ nav.tr("ecb-th-verified-through") }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -48,24 +40,24 @@
|
||||
<tr{% if batch.failed() %} class="attempt-failed"{% endif %}>
|
||||
<td class="mark">{{ batch.batch_id }}</td>
|
||||
<td>
|
||||
{%- if batch.succeeded() %}<span class="tag tag-ok">succeeded</span>
|
||||
{%- else if batch.running() %}<span class="tag">running</span>
|
||||
{%- else %}<span class="tag tag-bad">failed</span>{% endif -%}
|
||||
{%- if batch.succeeded() %}<span class="tag tag-ok">{{ nav.tr("ecb-batch-succeeded") }}</span>
|
||||
{%- else if batch.running() %}<span class="tag">{{ nav.tr("ecb-batch-running") }}</span>
|
||||
{%- else %}<span class="tag tag-bad">{{ nav.tr("ecb-batch-failed") }}</span>{% endif -%}
|
||||
</td>
|
||||
<td class="moment">{{ batch.started() }}</td>
|
||||
<td class="moment">
|
||||
{%- if let Some(finished) = batch.finished() %}{{ finished }}
|
||||
{%- else %}<span class="hint">still running</span>{% endif -%}
|
||||
{%- else %}<span class="hint">{{ nav.tr("ecb-still-running") }}</span>{% endif -%}
|
||||
</td>
|
||||
<td class="numeric">
|
||||
{%- if let Some(took) = batch.took() %}{{ took }}
|
||||
{%- if let Some(took) = batch.took(nav.locale) %}{{ took }}
|
||||
{%- else %}<span class="hint">—</span>{% endif -%}
|
||||
</td>
|
||||
<td>
|
||||
{{ batch.window() }}
|
||||
<div class="hint endpoint" title="{{ batch.endpoint }}"><code>{{ batch.endpoint }}</code></div>
|
||||
</td>
|
||||
<td class="numeric">{{ batch.observations() }}</td>
|
||||
<td class="numeric">{{ batch.observations(nav.locale) }}</td>
|
||||
<td class="moment">
|
||||
{%- if let Some(date) = batch.verified_through_date %}{{ date }}
|
||||
{%- else %}<span class="hint">—</span>{% endif -%}
|
||||
@@ -81,11 +73,7 @@
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p class="hint">
|
||||
Attempts are an audit record: they cannot be edited or deleted, and a batch that
|
||||
re-fetched a day an earlier one already owned inserts nothing, which is why the
|
||||
new count can be lower than the total.
|
||||
</p>
|
||||
<p class="hint">{{ nav.tr("ecb-audit-hint") }}</p>
|
||||
{% endif %}
|
||||
</section>
|
||||
</main>
|
||||
|
||||
Reference in New Issue
Block a user