aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Schadt <kingdread@gmx.de>2025-03-26 19:54:40 +0100
committerDaniel Schadt <kingdread@gmx.de>2025-03-26 19:54:40 +0100
commitda4b6b27e041697b66d6813a9d290b2a6d2b3940 (patch)
tree786b659901190885e4e888c284cd46c891f04d87
parentfcf75892a49fe35c36cad10c6597c6192f0d04b8 (diff)
downloadfietsboek-da4b6b27e041697b66d6813a9d290b2a6d2b3940.tar.gz
fietsboek-da4b6b27e041697b66d6813a9d290b2a6d2b3940.tar.bz2
fietsboek-da4b6b27e041697b66d6813a9d290b2a6d2b3940.zip
translate admin overview
-rw-r--r--fietsboek/locale/de/LC_MESSAGES/messages.mobin16196 -> 17256 bytes
-rw-r--r--fietsboek/locale/de/LC_MESSAGES/messages.po96
-rw-r--r--fietsboek/locale/en/LC_MESSAGES/messages.mobin15148 -> 16183 bytes
-rw-r--r--fietsboek/locale/en/LC_MESSAGES/messages.po96
-rw-r--r--fietsboek/locale/fietslog.pot96
-rw-r--r--fietsboek/templates/admin.jinja24
-rw-r--r--fietsboek/templates/admin_overview.jinja228
7 files changed, 264 insertions, 56 deletions
diff --git a/fietsboek/locale/de/LC_MESSAGES/messages.mo b/fietsboek/locale/de/LC_MESSAGES/messages.mo
index 9de152c..c953f1d 100644
--- a/fietsboek/locale/de/LC_MESSAGES/messages.mo
+++ b/fietsboek/locale/de/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/fietsboek/locale/de/LC_MESSAGES/messages.po b/fietsboek/locale/de/LC_MESSAGES/messages.po
index ccb46a3..7e00aac 100644
--- a/fietsboek/locale/de/LC_MESSAGES/messages.po
+++ b/fietsboek/locale/de/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-01-30 21:50+0100\n"
+"POT-Creation-Date: 2025-03-26 19:47+0100\n"
"PO-Revision-Date: 2022-07-02 17:35+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: de\n"
@@ -29,11 +29,11 @@ msgstr ""
"\n"
"Falls Du kein Konto angelegt hast, ignoriere diese E-Mail."
-#: fietsboek/util.py:333
+#: fietsboek/util.py:334
msgid "password_constraint.mismatch"
msgstr "Passwörter stimmen nicht überein"
-#: fietsboek/util.py:335
+#: fietsboek/util.py:336
msgid "password_constraint.length"
msgstr "Passwort zu kurz"
@@ -73,30 +73,98 @@ msgstr "Durchschnittsgeschwindigkeit"
msgid "page.admin.title"
msgstr "Administration"
-#: fietsboek/templates/admin.jinja2:7
+#: fietsboek/templates/admin.jinja2:10
+msgid "page.admin.nav.overview"
+msgstr "Übersicht"
+
+#: fietsboek/templates/admin.jinja2:11
+msgid "page.admin.nav.badges"
+msgstr "Wappen"
+
+#: fietsboek/templates/admin_badges.jinja2:5
msgid "page.admin.badges"
msgstr "Wappen"
-#: fietsboek/templates/admin.jinja2:23
+#: fietsboek/templates/admin_badges.jinja2:21
msgid "page.admin.badge.edit"
msgstr "Bearbeiten"
-#: fietsboek/templates/admin.jinja2:29
+#: fietsboek/templates/admin_badges.jinja2:27
msgid "page.admin.badge.delete_badge"
msgstr "Löschen"
-#: fietsboek/templates/admin.jinja2:37
+#: fietsboek/templates/admin_badges.jinja2:35
msgid "page.admin.badges.badge_title"
msgstr "Titel"
-#: fietsboek/templates/admin.jinja2:41
+#: fietsboek/templates/admin_badges.jinja2:39
msgid "page.admin.badges.badge_image"
msgstr "Bild"
-#: fietsboek/templates/admin.jinja2:45
+#: fietsboek/templates/admin_badges.jinja2:43
msgid "page.admin.badges.add_badge"
msgstr "Hinzufügen"
+#: fietsboek/templates/admin_overview.jinja2:5
+msgid "admin.overview.instance_has"
+msgstr "Diese Instanz hat"
+
+#: fietsboek/templates/admin_overview.jinja2:9
+msgid "admin.overview.stat.user"
+msgid_plural "admin.overview.stat.users"
+msgstr[0] "%(num)d Nutzer:in"
+msgstr[1] "%(num)d Nutzer:innen"
+
+#: fietsboek/templates/admin_overview.jinja2:13
+msgid "admin.overview.stat.track"
+msgid_plural "admin.overview.stat.tracks"
+msgstr[0] "%(num)d Strecke"
+msgstr[1] "%(num)d Strecken"
+
+#: fietsboek/templates/admin_overview.jinja2:17
+msgid "admin.overview.stats.mib"
+msgstr "MiB an Daten"
+
+#: fietsboek/templates/admin_overview.jinja2:24
+msgid "admin.overview.system_overview"
+msgstr "Systemübersicht"
+
+#: fietsboek/templates/admin_overview.jinja2:28
+msgid "admin.overview.fietsboek_version"
+msgstr "Fietsboek-Version"
+
+#: fietsboek/templates/admin_overview.jinja2:32
+msgid "admin.overview.python_version"
+msgstr "Python-Version"
+
+#: fietsboek/templates/admin_overview.jinja2:36
+msgid "admin.overview.kernel_version"
+msgstr "Kernel-Version"
+
+#: fietsboek/templates/admin_overview.jinja2:40
+msgid "admin.overview.distro_version"
+msgstr "Distribution"
+
+#: fietsboek/templates/admin_overview.jinja2:44
+msgid "admin.overview.last_cronjob"
+msgstr "Letzter Cronjob"
+
+#: fietsboek/templates/admin_overview.jinja2:55
+msgid "admin.overview.storage_graph.label.gpx"
+msgstr "GPX"
+
+#: fietsboek/templates/admin_overview.jinja2:56
+msgid "admin.overview.storage_graph.label.images"
+msgstr "Bilder"
+
+#: fietsboek/templates/admin_overview.jinja2:57
+msgid "admin.overview.storage_graph.label.user_maps"
+msgstr "Nutzerkarten"
+
+#: fietsboek/templates/admin_overview.jinja2:82
+msgid "admin.overview.storage_graph.title"
+msgstr "Speicherübersicht"
+
#: fietsboek/templates/browse.jinja2:4
msgid "page.browse.title"
msgstr "Stöbern"
@@ -544,13 +612,13 @@ msgstr ""
"Links, um sie fortzusetzen:"
#: fietsboek/templates/home.jinja2:44 fietsboek/templates/home.jinja2:53
-#: fietsboek/templates/home.jinja2:97
+#: fietsboek/templates/home.jinja2:99
msgid "page.home.summary.track"
msgid_plural "page.home.summary.tracks"
msgstr[0] "%(num)d Strecke"
msgstr[1] "%(num)d Strecken"
-#: fietsboek/templates/home.jinja2:97
+#: fietsboek/templates/home.jinja2:99
msgid "page.home.total"
msgstr "Gesamt"
@@ -888,15 +956,15 @@ msgstr "Ungültige E-Mail-Adresse"
msgid "flash.a_confirmation_link_has_been_sent"
msgstr "Ein Bestätigungslink wurde versandt"
-#: fietsboek/views/admin.py:49
+#: fietsboek/views/admin.py:157
msgid "flash.badge_added"
msgstr "Wappen hinzugefügt"
-#: fietsboek/views/admin.py:73
+#: fietsboek/views/admin.py:181
msgid "flash.badge_modified"
msgstr "Wappen bearbeitet"
-#: fietsboek/views/admin.py:93
+#: fietsboek/views/admin.py:201
msgid "flash.badge_deleted"
msgstr "Wappen gelöscht"
diff --git a/fietsboek/locale/en/LC_MESSAGES/messages.mo b/fietsboek/locale/en/LC_MESSAGES/messages.mo
index 5f8edc6..15c503b 100644
--- a/fietsboek/locale/en/LC_MESSAGES/messages.mo
+++ b/fietsboek/locale/en/LC_MESSAGES/messages.mo
Binary files differ
diff --git a/fietsboek/locale/en/LC_MESSAGES/messages.po b/fietsboek/locale/en/LC_MESSAGES/messages.po
index 981d134..9f8e8a5 100644
--- a/fietsboek/locale/en/LC_MESSAGES/messages.po
+++ b/fietsboek/locale/en/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-01-30 21:50+0100\n"
+"POT-Creation-Date: 2025-03-26 19:47+0100\n"
"PO-Revision-Date: 2023-04-03 20:42+0200\n"
"Last-Translator: \n"
"Language: en\n"
@@ -29,11 +29,11 @@ msgstr ""
"\n"
"If you did not create an account, ignore this email."
-#: fietsboek/util.py:333
+#: fietsboek/util.py:334
msgid "password_constraint.mismatch"
msgstr "Passwords don't match"
-#: fietsboek/util.py:335
+#: fietsboek/util.py:336
msgid "password_constraint.length"
msgstr "Password not long enough"
@@ -73,30 +73,98 @@ msgstr "Average Speed"
msgid "page.admin.title"
msgstr "Administration"
-#: fietsboek/templates/admin.jinja2:7
+#: fietsboek/templates/admin.jinja2:10
+msgid "page.admin.nav.overview"
+msgstr "Overview"
+
+#: fietsboek/templates/admin.jinja2:11
+msgid "page.admin.nav.badges"
+msgstr "Badges"
+
+#: fietsboek/templates/admin_badges.jinja2:5
msgid "page.admin.badges"
msgstr "Badges"
-#: fietsboek/templates/admin.jinja2:23
+#: fietsboek/templates/admin_badges.jinja2:21
msgid "page.admin.badge.edit"
msgstr "Edit"
-#: fietsboek/templates/admin.jinja2:29
+#: fietsboek/templates/admin_badges.jinja2:27
msgid "page.admin.badge.delete_badge"
msgstr "Delete badge"
-#: fietsboek/templates/admin.jinja2:37
+#: fietsboek/templates/admin_badges.jinja2:35
msgid "page.admin.badges.badge_title"
msgstr "Badge Title"
-#: fietsboek/templates/admin.jinja2:41
+#: fietsboek/templates/admin_badges.jinja2:39
msgid "page.admin.badges.badge_image"
msgstr "Badge Image"
-#: fietsboek/templates/admin.jinja2:45
+#: fietsboek/templates/admin_badges.jinja2:43
msgid "page.admin.badges.add_badge"
msgstr "Add Badge"
+#: fietsboek/templates/admin_overview.jinja2:5
+msgid "admin.overview.instance_has"
+msgstr "This instance has"
+
+#: fietsboek/templates/admin_overview.jinja2:9
+msgid "admin.overview.stat.user"
+msgid_plural "admin.overview.stat.users"
+msgstr[0] "%(num)d user"
+msgstr[1] "%(num)d users"
+
+#: fietsboek/templates/admin_overview.jinja2:13
+msgid "admin.overview.stat.track"
+msgid_plural "admin.overview.stat.tracks"
+msgstr[0] "%(num)d track"
+msgstr[1] "%(num)d tracks"
+
+#: fietsboek/templates/admin_overview.jinja2:17
+msgid "admin.overview.stats.mib"
+msgstr "MiB of data"
+
+#: fietsboek/templates/admin_overview.jinja2:24
+msgid "admin.overview.system_overview"
+msgstr "System information"
+
+#: fietsboek/templates/admin_overview.jinja2:28
+msgid "admin.overview.fietsboek_version"
+msgstr "Fietsboek version"
+
+#: fietsboek/templates/admin_overview.jinja2:32
+msgid "admin.overview.python_version"
+msgstr "Python version"
+
+#: fietsboek/templates/admin_overview.jinja2:36
+msgid "admin.overview.kernel_version"
+msgstr "Linux version"
+
+#: fietsboek/templates/admin_overview.jinja2:40
+msgid "admin.overview.distro_version"
+msgstr "Distribution"
+
+#: fietsboek/templates/admin_overview.jinja2:44
+msgid "admin.overview.last_cronjob"
+msgstr "Last cronjob"
+
+#: fietsboek/templates/admin_overview.jinja2:55
+msgid "admin.overview.storage_graph.label.gpx"
+msgstr "GPX"
+
+#: fietsboek/templates/admin_overview.jinja2:56
+msgid "admin.overview.storage_graph.label.images"
+msgstr "Images"
+
+#: fietsboek/templates/admin_overview.jinja2:57
+msgid "admin.overview.storage_graph.label.user_maps"
+msgstr "User maps"
+
+#: fietsboek/templates/admin_overview.jinja2:82
+msgid "admin.overview.storage_graph.title"
+msgstr "Storage breakdown"
+
#: fietsboek/templates/browse.jinja2:4
msgid "page.browse.title"
msgstr "Browse"
@@ -538,13 +606,13 @@ msgid "page.home.unfinished_uploads"
msgstr "You have unfinished uploads. Click on the links below to resume them:"
#: fietsboek/templates/home.jinja2:44 fietsboek/templates/home.jinja2:53
-#: fietsboek/templates/home.jinja2:97
+#: fietsboek/templates/home.jinja2:99
msgid "page.home.summary.track"
msgid_plural "page.home.summary.tracks"
msgstr[0] "%(num)d track"
msgstr[1] "%(num)d tracks"
-#: fietsboek/templates/home.jinja2:97
+#: fietsboek/templates/home.jinja2:99
msgid "page.home.total"
msgstr "Total"
@@ -878,15 +946,15 @@ msgstr "Invalid email"
msgid "flash.a_confirmation_link_has_been_sent"
msgstr "A confirmation link has been sent"
-#: fietsboek/views/admin.py:49
+#: fietsboek/views/admin.py:157
msgid "flash.badge_added"
msgstr "Badge has been added"
-#: fietsboek/views/admin.py:73
+#: fietsboek/views/admin.py:181
msgid "flash.badge_modified"
msgstr "Badge has been modified"
-#: fietsboek/views/admin.py:93
+#: fietsboek/views/admin.py:201
msgid "flash.badge_deleted"
msgstr "Badge has been deleted"
diff --git a/fietsboek/locale/fietslog.pot b/fietsboek/locale/fietslog.pot
index 60c77a5..58a9646 100644
--- a/fietsboek/locale/fietslog.pot
+++ b/fietsboek/locale/fietslog.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-01-30 21:50+0100\n"
+"POT-Creation-Date: 2025-03-26 19:47+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -25,11 +25,11 @@ msgstr ""
msgid "email.verify.text"
msgstr ""
-#: fietsboek/util.py:333
+#: fietsboek/util.py:334
msgid "password_constraint.mismatch"
msgstr ""
-#: fietsboek/util.py:335
+#: fietsboek/util.py:336
msgid "password_constraint.length"
msgstr ""
@@ -69,30 +69,98 @@ msgstr ""
msgid "page.admin.title"
msgstr ""
-#: fietsboek/templates/admin.jinja2:7
+#: fietsboek/templates/admin.jinja2:10
+msgid "page.admin.nav.overview"
+msgstr ""
+
+#: fietsboek/templates/admin.jinja2:11
+msgid "page.admin.nav.badges"
+msgstr ""
+
+#: fietsboek/templates/admin_badges.jinja2:5
msgid "page.admin.badges"
msgstr ""
-#: fietsboek/templates/admin.jinja2:23
+#: fietsboek/templates/admin_badges.jinja2:21
msgid "page.admin.badge.edit"
msgstr ""
-#: fietsboek/templates/admin.jinja2:29
+#: fietsboek/templates/admin_badges.jinja2:27
msgid "page.admin.badge.delete_badge"
msgstr ""
-#: fietsboek/templates/admin.jinja2:37
+#: fietsboek/templates/admin_badges.jinja2:35
msgid "page.admin.badges.badge_title"
msgstr ""
-#: fietsboek/templates/admin.jinja2:41
+#: fietsboek/templates/admin_badges.jinja2:39
msgid "page.admin.badges.badge_image"
msgstr ""
-#: fietsboek/templates/admin.jinja2:45
+#: fietsboek/templates/admin_badges.jinja2:43
msgid "page.admin.badges.add_badge"
msgstr ""
+#: fietsboek/templates/admin_overview.jinja2:5
+msgid "admin.overview.instance_has"
+msgstr ""
+
+#: fietsboek/templates/admin_overview.jinja2:9
+msgid "admin.overview.stat.user"
+msgid_plural "admin.overview.stat.users"
+msgstr[0] ""
+msgstr[1] ""
+
+#: fietsboek/templates/admin_overview.jinja2:13
+msgid "admin.overview.stat.track"
+msgid_plural "admin.overview.stat.tracks"
+msgstr[0] ""
+msgstr[1] ""
+
+#: fietsboek/templates/admin_overview.jinja2:17
+msgid "admin.overview.stats.mib"
+msgstr ""
+
+#: fietsboek/templates/admin_overview.jinja2:24
+msgid "admin.overview.system_overview"
+msgstr ""
+
+#: fietsboek/templates/admin_overview.jinja2:28
+msgid "admin.overview.fietsboek_version"
+msgstr ""
+
+#: fietsboek/templates/admin_overview.jinja2:32
+msgid "admin.overview.python_version"
+msgstr ""
+
+#: fietsboek/templates/admin_overview.jinja2:36
+msgid "admin.overview.kernel_version"
+msgstr ""
+
+#: fietsboek/templates/admin_overview.jinja2:40
+msgid "admin.overview.distro_version"
+msgstr ""
+
+#: fietsboek/templates/admin_overview.jinja2:44
+msgid "admin.overview.last_cronjob"
+msgstr ""
+
+#: fietsboek/templates/admin_overview.jinja2:55
+msgid "admin.overview.storage_graph.label.gpx"
+msgstr ""
+
+#: fietsboek/templates/admin_overview.jinja2:56
+msgid "admin.overview.storage_graph.label.images"
+msgstr ""
+
+#: fietsboek/templates/admin_overview.jinja2:57
+msgid "admin.overview.storage_graph.label.user_maps"
+msgstr ""
+
+#: fietsboek/templates/admin_overview.jinja2:82
+msgid "admin.overview.storage_graph.title"
+msgstr ""
+
#: fietsboek/templates/browse.jinja2:4
msgid "page.browse.title"
msgstr ""
@@ -532,13 +600,13 @@ msgid "page.home.unfinished_uploads"
msgstr ""
#: fietsboek/templates/home.jinja2:44 fietsboek/templates/home.jinja2:53
-#: fietsboek/templates/home.jinja2:97
+#: fietsboek/templates/home.jinja2:99
msgid "page.home.summary.track"
msgid_plural "page.home.summary.tracks"
msgstr[0] ""
msgstr[1] ""
-#: fietsboek/templates/home.jinja2:97
+#: fietsboek/templates/home.jinja2:99
msgid "page.home.total"
msgstr ""
@@ -866,15 +934,15 @@ msgstr ""
msgid "flash.a_confirmation_link_has_been_sent"
msgstr ""
-#: fietsboek/views/admin.py:49
+#: fietsboek/views/admin.py:157
msgid "flash.badge_added"
msgstr ""
-#: fietsboek/views/admin.py:73
+#: fietsboek/views/admin.py:181
msgid "flash.badge_modified"
msgstr ""
-#: fietsboek/views/admin.py:93
+#: fietsboek/views/admin.py:201
msgid "flash.badge_deleted"
msgstr ""
diff --git a/fietsboek/templates/admin.jinja2 b/fietsboek/templates/admin.jinja2
index 0cb9358..42b5975 100644
--- a/fietsboek/templates/admin.jinja2
+++ b/fietsboek/templates/admin.jinja2
@@ -7,8 +7,8 @@
<div id="adminContainer">
<aside id="adminNavigation">
<nav class="nav nav-pills nav-fill flex-column">
- <a class="nav-link{% if admin_index == 0 %} active{% endif %}" href="{{ request.route_url('admin') }}">Overview</a>
- <a class="nav-link{% if admin_index == 1 %} active{% endif %}" href="{{ request.route_url('admin-badge') }}">Badges</a>
+ <a class="nav-link{% if admin_index == 0 %} active{% endif %}" href="{{ request.route_url('admin') }}">{{ _("page.admin.nav.overview") }}</a>
+ <a class="nav-link{% if admin_index == 1 %} active{% endif %}" href="{{ request.route_url('admin-badge') }}">{{ _("page.admin.nav.badges") }}</a>
</nav>
</aside>
diff --git a/fietsboek/templates/admin_overview.jinja2 b/fietsboek/templates/admin_overview.jinja2
index dedd57e..5337a69 100644
--- a/fietsboek/templates/admin_overview.jinja2
+++ b/fietsboek/templates/admin_overview.jinja2
@@ -2,46 +2,46 @@
{% extends "admin.jinja2" %}
{% block admin_content %}
<p class="admin-stat">
- This instance has&hellip;
+ {{ _("admin.overview.instance_has") }}&hellip;
</p>
<p class="admin-stat">
- &hellip; {{ user_count }} users
+ &hellip; {{ ngettext("admin.overview.stat.user", "admin.overview.stat.users", user_count) }}
</p>
<p class="admin-stat">
- &hellip; {{ track_count }} tracks
+ &hellip; {{ ngettext("admin.overview.stat.track", "admin.overview.stat.tracks", track_count) }}
</p>
<p class="admin-stat">
- &hellip; {{ (total_size / 1024 / 1024) | round(2) }} MiB of data
+ &hellip; {{ (total_size / 1024 / 1024) | round(2) }} {{ _("admin.overview.stats.mib") }}
</p>
<div style="position: relative; height: 500px; margin: auto; width: 75%;">
<canvas id="graph-size-breakdown"></canvas>
</div>
-<h2>System information</h2>
+<h2>{{ _("admin.overview.system_overview") }}</h2>
<table class="table">
<tr>
- <td>Fietsboek version</td>
+ <td>{{ _("admin.overview.fietsboek_version") }}</td>
<td>{{ versions["fietsboek"] }}</td>
</tr>
<tr>
- <td>Python version</td>
+ <td>{{ _("admin.overview.python_version") }}</td>
<td>{{ versions["python"] }}</td>
</tr>
<tr>
- <td>Kernel version</td>
+ <td>{{ _("admin.overview.kernel_version") }}</td>
<td>{{ versions["linux"] }}</td>
</tr>
<tr>
- <td>Distribution</td>
+ <td>{{ _("admin.overview.distro_version") }}</td>
<td>{{ versions["distro"] }}</td>
</tr>
<tr class="{% if cron_good %}table-success{% else %}table-warning{% endif %}">
- <td>Last cronjob {% if not cron_good %}<i class="bi bi-exclamation-triangle-fill"></i>{% endif %}</td>
+ <td>{{ _("admin.overview.last_cronjob") }} {% if not cron_good %}<i class="bi bi-exclamation-triangle-fill"></i>{% endif %}</td>
<td>{{ last_cronjob }}</td>
</tr>
</table>
@@ -51,7 +51,11 @@
<script>
(function() {
const data = {
- labels: ['GPX', 'Images', 'User maps'],
+ labels: [
+ {{ _("admin.overview.storage_graph.label.gpx") | tojson }},
+ {{ _("admin.overview.storage_graph.label.images") | tojson }},
+ {{ _("admin.overview.storage_graph.label.user_maps") | tojson }}
+ ],
datasets: [
{
label: "MiB",
@@ -75,7 +79,7 @@
},
title: {
display: true,
- text: 'Storage breakdown'
+ text: {{ _("admin.overview.storage_graph.title") | tojson }}
}
}
}