More translations, version page

pull/941/head
Piero Toffanin 2020-12-14 16:18:00 -05:00
rodzic 11ee54245d
commit f707d54f5d
18 zmienionych plików z 305 dodań i 113 usunięć

Wyświetl plik

@ -3,7 +3,6 @@ import ApiFactory from './ApiFactory';
import Map from './Map';
import Dashboard from './Dashboard';
import App from './App';
import $ from 'jquery';
import SystemJS from 'SystemJS';
if (!window.PluginsAPI){

Wyświetl plik

@ -12,13 +12,11 @@
<![endif]-->
{% if no_processingnodes %}
<h3>{% trans 'Welcome!' %}</h3>
<h3>{% trans 'Welcome!' %}</h3>
{% trans 'Add a Processing Node' as add_processing_node %}
{% with nodeodm_link='<a href="https://github.com/OpenDroneMap/NodeODM" target="_blank">NodeODM</a>' api_link='<a href="https://github.com/OpenDroneMap/NodeODM/blob/master/docs/index.adoc" target="_blank">API</a>' %}
<p>
{% blocktrans %}
To get started, "{{ add_processing_node }}". A processing node is a computer running an instance of {{ nodeodm_link }} or some other software that implements this {{ api_link }}.
{% endblocktrans %}
{% blocktrans %}To get started, "{{ add_processing_node }}". A processing node is a computer running an instance of {{ nodeodm_link }} or some other software that implements this {{ api_link }}.{% endblocktrans %}
</p>
{% endwith %}
<button class="btn btn-primary" onclick="location.href='{% url "admin:nodeodm_processingnode_add" %}';"><i class="fa fa-plus-circle"></i> {{ add_processing_node }}</button>
@ -26,10 +24,10 @@
{% else %}
{% if no_tasks %}
<h3>{% trans 'Welcome!' %}</h3>
<h3>{% trans 'Welcome!' %}</h3>
{% trans 'Select Images and GCP' as upload_images %}
<p>
{% blocktrans %} To create a map, press the "{{ upload_images }}" button, or drag and drop some images into a project. {% endblocktrans %}
{% blocktrans %}To create a map, press the "{{ upload_images }}" button, or drag and drop some images into a project.{% endblocktrans %}
</p>
<p>
<ul>

Wyświetl plik

@ -12,7 +12,7 @@
</a>
<ul class="dropdown-menu dropdown-user">
<li class="user-profile">
{% trans 'Hello' %}, {{ user.username }}<br/>
{{ user.username }}<br/>
<span class="email">{{ user.email }}</span>
</li>
<li class="divider"></li>
@ -56,7 +56,7 @@
{% if view_nodes %}
<li>
<a href="#"><i class="fa fa-wrench fa-fw"></i> Processing Nodes<span class="fa arrow"></span></a>
<a href="#"><i class="fa fa-wrench fa-fw"></i> {% trans 'Processing Nodes' %}<span class="fa arrow"></span></a>
<ul class="nav nav-second-level">
{% for node in nodes %}
<li>
@ -66,7 +66,7 @@
{% if add_nodes %}
<li>
<a href="{% url 'admin:nodeodm_processingnode_add' %}"><span class="fa fa-plus-circle"></span> Add New</a>
<a href="{% url 'admin:nodeodm_processingnode_add' %}"><span class="fa fa-plus-circle"></span> {% trans 'Add New' %}</a>
</li>
{% endif %}
</ul>
@ -100,6 +100,9 @@
<li>
<a href="/admin/app/"><i class="fa fa-cog fa-fw"></i> {% trans 'Application' %}</a>
</li>
<li>
<a href="/version/"><i class="fa fa-info-circle fa-fw"></i> {% trans 'Version' %}</a>
</li>
</ul>
</li>
{% endif %}

Wyświetl plik

@ -41,7 +41,7 @@
</tr>
<tr>
<td>{% trans "Last Refreshed" %}</td>
<td>{{ processing_node.last_refreshed|timesince }} {% trans 'ago' %} ({{ processing_node.last_refreshed|localtime }})</td> <!-- TODO: timezone? -->
<td>{{ processing_node.last_refreshed|timesince }} {% trans 'ago' context '5 minutes ago' %} ({{ processing_node.last_refreshed|localtime }})</td> <!-- TODO: timezone? -->
</tr>
<tr>
<td>{% trans "Options (JSON)" %}</td>

Wyświetl plik

@ -0,0 +1,15 @@
{% extends "app/logged_in_base.html" %}
{% load i18n settings %}
{% block content %}
<div class="text-center">
{% app_version as version %}
<h2>WebODM {{ version }}</h2>
<div style="margin-bottom: 16px; margin-top: 16px;"><i class="fab fa-github"></i> <a target="_blank" href="https://github.com/OpenDroneMap/WebODM">https://github.com/OpenDroneMap/WebODM</a></div>
<div class="theme-secondary" style="font-size: 90%">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 <a href="https://raw.githubusercontent.com/OpenDroneMap/WebODM/master/LICENSE.md">the GNU Affero General Public License</a> 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/.</div>
</div>
{% endblock %}

Wyświetl plik

@ -224,7 +224,7 @@
<p>{% trans "Uh oh! Could you please check the errors below?" %}</p>
</div>
{% else %}
<h3>{% trans 'Welcome!' %}</h3>
<h3>{% trans 'Welcome!' %}</h3>
<div style="margin-bottom: 28px;">Before we get started, we need to create an administrator account for you:</div>
{% endif %}

Wyświetl plik

@ -11,6 +11,9 @@ logger = logging.getLogger('app.logger')
def is_single_user_mode():
return settings.SINGLE_USER_MODE
@register.simple_tag
def app_version():
return settings.VERSION
@register.simple_tag(takes_context=True)
def settings_image_url(context, image):

Wyświetl plik

@ -39,6 +39,7 @@ urlpatterns = [
url(r'^plugins/(?P<plugin_name>[^/.]+)/(.*)$', app_view_handler),
url(r'^version/$', app_views.app_version, name='app_version'),
# TODO: add caching: https://docs.djangoproject.com/en/3.1/topics/i18n/translation/#note-on-performance
url(r'^jsi18n/', JavaScriptCatalog.as_view(packages=['app']), name='javascript-catalog'),
]

Wyświetl plik

@ -99,6 +99,8 @@ def model_display(request, project_pk=None, task_pk=None):
}.items()
})
def app_version(request):
return render(request, 'app/version.html', {'title': _('Version')})
@login_required
def processing_node(request, processing_node_id):

Wyświetl plik

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-14 18:40+0000\n"
"POT-Creation-Date: 2020-12-14 20:25+0000\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"
@ -17,9 +17,9 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: app/templates/app/dashboard.html:15 app/templates/app/dashboard.html:29
#: app/templates/app/dashboard.html:15 app/templates/app/dashboard.html:27
#: app/templates/app/welcome.html:227
msgid "Welcome!"
msgid "Welcome!"
msgstr ""
#: app/templates/app/dashboard.html:16
@ -29,49 +29,43 @@ msgstr ""
#: app/templates/app/dashboard.html:19
#, python-format
msgid ""
" \n"
"\t\t\t\tTo get started, \"%(add_processing_node)s\". A processing node is a "
"computer running an instance of %(nodeodm_link)s or some other software that "
"implements this %(api_link)s.\n"
"\t\t\t"
"To get started, \"%(add_processing_node)s\". A processing node is a computer "
"running an instance of %(nodeodm_link)s or some other software that "
"implements this %(api_link)s."
msgstr ""
#: app/templates/app/dashboard.html:30
#: app/templates/app/dashboard.html:28
msgid "Select Images and GCP"
msgstr ""
#: app/templates/app/dashboard.html:32
#: app/templates/app/dashboard.html:30
#, python-format
msgid ""
" To create a map, press the \"%(upload_images)s\" button, or drag and drop "
"some images into a project. "
"To create a map, press the \"%(upload_images)s\" button, or drag and drop "
"some images into a project."
msgstr ""
#: app/templates/app/dashboard.html:36
#: app/templates/app/dashboard.html:34
msgid "You need at least 5 images"
msgstr ""
#: app/templates/app/dashboard.html:37
#: app/templates/app/dashboard.html:35
#, python-format
msgid "Images must overlap by 65%% or more"
msgstr ""
#: app/templates/app/dashboard.html:38
#: app/templates/app/dashboard.html:36
#, python-format
msgid "For great 3D, images must overlap by 83%%"
msgstr ""
#: app/templates/app/dashboard.html:39
#: app/templates/app/dashboard.html:37
msgid ""
"A <a href=\"https://github.com/OpenDroneMap/OpenDroneMap/wiki/Running-"
"OpenDroneMap#running-odm-with-ground-control\" target=\"_blank\">GCP file</"
"a> is optional, but can increase georeferencing accuracy"
msgstr ""
#: app/templates/app/logged_in_base.html:15
msgid "Hello"
msgstr ""
#: app/templates/app/logged_in_base.html:19
msgid "Logout"
msgstr ""
@ -80,6 +74,14 @@ msgstr ""
msgid "Dashboard"
msgstr ""
#: app/templates/app/logged_in_base.html:59
msgid "Processing Nodes"
msgstr ""
#: app/templates/app/logged_in_base.html:69
msgid "Add New"
msgstr ""
#: app/templates/app/logged_in_base.html:79
msgid "Administration"
msgstr ""
@ -145,6 +147,7 @@ msgid "Last Refreshed"
msgstr ""
#: app/templates/app/processing_node.html:44
msgctxt "5 minutes ago"
msgid "ago"
msgstr ""
@ -183,3 +186,88 @@ msgstr ""
#: plugins/cesium-ion/api_views.py:170
msgid "No matching enum type."
msgstr ""
#: plugins/diagnostic/plugin.py:36
msgid "Diagnostic"
msgstr ""
#: plugins/diagnostic/templates/diagnostic.html:6
msgid "Diagnostic Information"
msgstr ""
#: plugins/diagnostic/templates/diagnostic.html:8
msgid "App Version"
msgstr ""
#: plugins/diagnostic/templates/diagnostic.html:12
msgid "Storage Space"
msgstr ""
#: plugins/diagnostic/templates/diagnostic.html:16
#: plugins/diagnostic/templates/diagnostic.html:42
#: plugins/diagnostic/templates/diagnostic.html:47
msgctxt "Megabytes of storage space"
msgid "Free"
msgstr ""
#: plugins/diagnostic/templates/diagnostic.html:17
#: plugins/diagnostic/templates/diagnostic.html:41
#: plugins/diagnostic/templates/diagnostic.html:47
msgctxt "Megabytes of storage space"
msgid "Used"
msgstr ""
#: plugins/diagnostic/templates/diagnostic.html:18
msgctxt "Megabytes of storage space"
msgid "Total"
msgstr ""
#: plugins/diagnostic/templates/diagnostic.html:22
msgctxt "Computer memory (RAM)"
msgid "Memory"
msgstr ""
#: plugins/diagnostic/templates/diagnostic.html:26
#: plugins/diagnostic/templates/diagnostic.html:77
#: plugins/diagnostic/templates/diagnostic.html:82
msgctxt "Megabytes of memory space"
msgid "Free"
msgstr ""
#: plugins/diagnostic/templates/diagnostic.html:27
#: plugins/diagnostic/templates/diagnostic.html:76
#: plugins/diagnostic/templates/diagnostic.html:82
msgctxt "Megabytes of memory space"
msgid "Used"
msgstr ""
#: plugins/diagnostic/templates/diagnostic.html:28
msgctxt "Megabytes of memory space"
msgid "Total"
msgstr ""
#: plugins/diagnostic/templates/diagnostic.html:35
msgid "Note!"
msgstr ""
#: plugins/diagnostic/templates/diagnostic.html:35
#, python-format
msgid ""
"These values might be relative to the virtualization environment in which "
"the application is running, not necessarily the values of the your machine. "
"See instructions for %(win_link)s and %(mac_link)s for changing these values "
"in a docker setup."
msgstr ""
#: plugins/diagnostic/templates/diagnostic.html:49
#: plugins/diagnostic/templates/diagnostic.html:84
msgid "Disk Space"
msgstr ""
#: plugins/lightning/plugin.py:25 plugins/lightning/plugin.py:39
msgid "Lightning Network"
msgstr ""
#: plugins/posm-gcpi/plugin.py:8
msgid "GCP Interface"
msgstr ""

Wyświetl plik

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-14 18:40+0000\n"
"POT-Creation-Date: 2020-12-14 20:25+0000\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"

Wyświetl plik

@ -3,12 +3,11 @@
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-14 18:40+0000\n"
"POT-Creation-Date: 2020-12-14 20:25+0000\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"
@ -18,9 +17,9 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: app/templates/app/dashboard.html:15 app/templates/app/dashboard.html:29
#: app/templates/app/dashboard.html:15 app/templates/app/dashboard.html:27
#: app/templates/app/welcome.html:227
msgid "Welcome!"
msgid "Welcome!"
msgstr ""
#: app/templates/app/dashboard.html:16
@ -30,157 +29,245 @@ msgstr ""
#: app/templates/app/dashboard.html:19
#, python-format
msgid ""
" \n"
"\t\t\t\tTo get started, \"%(add_processing_node)s\". A processing node is a "
"computer running an instance of %(nodeodm_link)s or some other software that "
"implements this %(api_link)s.\n"
"\t\t\t"
"To get started, \"%(add_processing_node)s\". A processing node is a computer "
"running an instance of %(nodeodm_link)s or some other software that "
"implements this %(api_link)s."
msgstr ""
#: app/templates/app/dashboard.html:30
#: app/templates/app/dashboard.html:28
msgid "Select Images and GCP"
msgstr ""
#: app/templates/app/dashboard.html:32
#: app/templates/app/dashboard.html:30
#, python-format
msgid ""
" To create a map, press the \"%(upload_images)s\" button, or drag and drop "
"some images into a project. "
"To create a map, press the \"%(upload_images)s\" button, or drag and drop "
"some images into a project."
msgstr ""
#: app/templates/app/dashboard.html:36
#: app/templates/app/dashboard.html:34
msgid "You need at least 5 images"
msgstr ""
#: app/templates/app/dashboard.html:37
#: app/templates/app/dashboard.html:35
#, python-format
msgid "Images must overlap by 65%% or more"
msgstr ""
#: app/templates/app/dashboard.html:38
#: app/templates/app/dashboard.html:36
#, python-format
msgid "For great 3D, images must overlap by 83%%"
msgstr ""
#: app/templates/app/dashboard.html:39
#: app/templates/app/dashboard.html:37
msgid ""
"A <a href=\"https://github.com/OpenDroneMap/OpenDroneMap/wiki/Running-"
"OpenDroneMap#running-odm-with-ground-control\" target=\"_blank\">GCP file</"
"a> is optional, but can increase georeferencing accuracy"
msgstr ""
#: app/templates/app/logged_in_base.html:15
msgid "Hello"
msgstr ""
#: app/templates/app/logged_in_base.html:19
msgid "Logout"
msgstr ""
msgstr "Chiudi Sessione"
#: app/templates/app/logged_in_base.html:33
msgid "Dashboard"
msgstr "Pannello di Controllo"
#: app/templates/app/logged_in_base.html:59
msgid "Processing Nodes"
msgstr "Nodi di Elaborazione"
#: app/templates/app/logged_in_base.html:69
msgid "Add New"
msgstr "Aggiungi Nuovo"
#: app/templates/app/logged_in_base.html:79
msgid "Administration"
msgstr ""
msgstr "Amministrazione"
#: app/templates/app/logged_in_base.html:84
msgid "Accounts"
msgstr ""
msgstr "Accounts"
#: app/templates/app/logged_in_base.html:87
msgid "Groups"
msgstr ""
msgstr "Gruppi"
#: app/templates/app/logged_in_base.html:92
msgid "Brand"
msgstr ""
msgstr "Marchio"
#: app/templates/app/logged_in_base.html:95
msgid "Theme"
msgstr ""
msgstr "Tema"
#: app/templates/app/logged_in_base.html:98
msgid "Plugins"
msgstr ""
msgstr "Plugins"
#: app/templates/app/logged_in_base.html:101
msgid "Application"
msgstr ""
msgstr "Applicazione"
#: app/templates/app/processing_node.html:11
msgid "Hostname"
msgstr ""
msgstr "Hostname"
#: app/templates/app/processing_node.html:15
msgid "Port"
msgstr ""
msgstr "Porta"
#: app/templates/app/processing_node.html:19
msgid "API Version"
msgstr ""
msgstr "Versione API"
#: app/templates/app/processing_node.html:23
msgid "Engine"
msgstr ""
msgstr "Motore"
#: app/templates/app/processing_node.html:27
msgid "Engine Version"
msgstr ""
msgstr "Versione Motore"
#: app/templates/app/processing_node.html:31
msgid "Queue Count"
msgstr ""
msgstr "Lunghezza Coda"
#: app/templates/app/processing_node.html:35
msgid "Max Images Limit"
msgstr ""
msgstr "Numero Massimo Immagini"
#: app/templates/app/processing_node.html:39
msgid "Label"
msgstr ""
msgstr "Etichetta"
#: app/templates/app/processing_node.html:43
msgid "Last Refreshed"
msgstr ""
msgstr "Ultimo Aggiornamento"
#: app/templates/app/processing_node.html:44
msgctxt "5 minutes ago"
msgid "ago"
msgstr ""
msgstr ""
#: app/templates/app/processing_node.html:47
msgid "Options (JSON)"
msgstr ""
msgstr "Opzioni (JSON)"
#: app/templates/app/processing_node.html:53
msgid "Edit"
msgstr ""
msgstr "Modifica"
#: app/templates/app/processing_node.html:54
msgid "Delete"
msgstr ""
msgstr "Cancella"
#: app/templates/app/welcome.html:224
msgid "Uh oh! Could you please check the errors below?"
msgstr ""
msgstr "Uh oh! Puoi per favore controllare gli errori qui sotto?"
#: app/templates/app/welcome.html:237
msgid "Create Account"
msgstr ""
msgstr "Crea Account"
#: app/views/app.py:44
msgid "First Project"
msgstr ""
msgstr "Primo Progetto"
#: app/views/app.py:54 app/views/public.py:26
msgid "Map"
msgstr ""
msgstr "Mappa"
#: app/views/app.py:81
msgid "3D Model Display"
msgstr ""
msgstr "Schermata Modello 3D"
#: plugins/cesium-ion/api_views.py:170
msgid "No matching enum type."
msgstr ""
#: plugins/diagnostic/plugin.py:36
msgid "Diagnostic"
msgstr "Diagnostica"
#: plugins/diagnostic/templates/diagnostic.html:6
msgid "Diagnostic Information"
msgstr "Informazioni di Diagnostica"
#: plugins/diagnostic/templates/diagnostic.html:8
msgid "App Version"
msgstr "Versione App"
#: plugins/diagnostic/templates/diagnostic.html:12
msgid "Storage Space"
msgstr "Spazio su Disco"
#: plugins/diagnostic/templates/diagnostic.html:16
#: plugins/diagnostic/templates/diagnostic.html:42
#: plugins/diagnostic/templates/diagnostic.html:47
msgctxt "Megabytes of storage space"
msgid "Free"
msgstr "Libero"
#: plugins/diagnostic/templates/diagnostic.html:17
#: plugins/diagnostic/templates/diagnostic.html:41
#: plugins/diagnostic/templates/diagnostic.html:47
msgctxt "Megabytes of storage space"
msgid "Used"
msgstr "Usato"
#: plugins/diagnostic/templates/diagnostic.html:18
msgctxt "Megabytes of storage space"
msgid "Total"
msgstr "Totale"
#: plugins/diagnostic/templates/diagnostic.html:22
msgctxt "Computer memory (RAM)"
msgid "Memory"
msgstr "Memoria"
#: plugins/diagnostic/templates/diagnostic.html:26
#: plugins/diagnostic/templates/diagnostic.html:77
#: plugins/diagnostic/templates/diagnostic.html:82
msgctxt "Megabytes of memory space"
msgid "Free"
msgstr "Libera"
#: plugins/diagnostic/templates/diagnostic.html:27
#: plugins/diagnostic/templates/diagnostic.html:76
#: plugins/diagnostic/templates/diagnostic.html:82
msgctxt "Megabytes of memory space"
msgid "Used"
msgstr "Usata"
#: plugins/diagnostic/templates/diagnostic.html:28
msgctxt "Megabytes of memory space"
msgid "Total"
msgstr "Totale"
#: plugins/diagnostic/templates/diagnostic.html:35
msgid "Note!"
msgstr "Nota!"
#: plugins/diagnostic/templates/diagnostic.html:35
#, python-format
msgid ""
"These values might be relative to the virtualization environment in which "
"the application is running, not necessarily the values of the your machine. "
"See instructions for %(win_link)s and %(mac_link)s for changing these values "
"in a docker setup."
msgstr ""
#: plugins/diagnostic/templates/diagnostic.html:49
#: plugins/diagnostic/templates/diagnostic.html:84
msgid "Disk Space"
msgstr "Spazio su Disco"
#: plugins/lightning/plugin.py:25 plugins/lightning/plugin.py:39
msgid "Lightning Network"
msgstr "Rete Lightning"
#: plugins/posm-gcpi/plugin.py:8
msgid "GCP Interface"
msgstr "Interfaccia GCP"

Wyświetl plik

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-14 18:40+0000\n"
"POT-Creation-Date: 2020-12-14 20:25+0000\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"

Wyświetl plik

@ -1,6 +1,6 @@
{
"name": "WebODM",
"version": "1.6.0",
"version": "1.7.0",
"description": "User-friendly, extendable application and API for processing aerial imagery.",
"main": "index.js",
"scripts": {

Wyświetl plik

@ -1,6 +1,7 @@
from app.plugins import PluginBase, Menu, MountPoint
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from django.utils.translation import gettext as _
import json, shutil
@ -32,22 +33,15 @@ def get_memory_stats():
class Plugin(PluginBase):
def main_menu(self):
return [Menu("Diagnostic", self.public_url(""), "fa fa-chart-pie fa-fw")]
return [Menu(_("Diagnostic"), self.public_url(""), "fa fa-chart-pie fa-fw")]
def app_mount_points(self):
@login_required
def diagnostic(request):
# Load version number
with open('./package.json') as f:
package = json.load(f)
version = package['version']
# Disk space
total_disk_space, used_disk_space, free_disk_space = shutil.disk_usage('./')
template_args = {
'title': 'Diagnostic',
'version': version,
'total_disk_space': total_disk_space,
'used_disk_space': used_disk_space,
'free_disk_space': free_disk_space

Wyświetl plik

@ -1,50 +1,50 @@
{% extends "app/plugins/templates/base.html" %}
{% load i18n %}
{% block content %}
<script src="./Chart.min.js"></script>
<h2>Diagnostic Information</h2>
<p><b>App Version:</b> {{ version }}</p>
<h2>{% trans 'Diagnostic Information' %}</h2>
<div class="row text-center">
<div class="col-md-4 col-sm-12">
<h4>Storage Space</h4>
<h4>{% trans 'Storage Space' %}</h4>
<div style="width: 80%; margin-left: 10%;">
<canvas id="diskChart" width="200" height="200" style="margin-bottom: 12px;"></canvas>
</div>
<p><b>Free:</b> {{ free_disk_space|filesizeformat }} |
<b>Used:</b> {{ used_disk_space|filesizeformat }} |
<b>Total:</b> {{ total_disk_space|filesizeformat }}</p>
<p><b>{% trans 'Free' context 'Megabytes of storage space' %}:</b> {{ free_disk_space|filesizeformat }} |
<b>{% trans 'Used' context 'Megabytes of storage space' %}:</b> {{ used_disk_space|filesizeformat }} |
<b>{% trans 'Total' context 'Megabytes of storage space' %}:</b> {{ total_disk_space|filesizeformat }}</p>
</div>
<div class="col-md-4 col-sm-12">
{% if total_memory %}
<h4>Memory</h4>
<h4>{% trans 'Memory' context 'Computer memory (RAM)' %}</h4>
<div style="width: 80%; margin-left: 10%;">
<canvas id="memoryChart" width="200" height="200" style="margin-bottom: 12px;"></canvas>
</div>
<p><b>Free:</b> {{ free_memory|filesizeformat }} |
<b>Used:</b> {{ used_memory|filesizeformat }} |
<b>Total:</b> {{ total_memory|filesizeformat }}</p>
<p><b>{% trans 'Free' context 'Megabytes of memory space' %}:</b> {{ free_memory|filesizeformat }} |
<b>{% trans 'Used' context 'Megabytes of memory space' %}:</b> {{ used_memory|filesizeformat }} |
<b>{% trans 'Total' context 'Megabytes of memory space'%}:</b> {{ total_memory|filesizeformat }}</p>
{% endif %}
</div>
</div>
<hr/>
<div style="margin-top: 20px;"><strong>Note!</strong> These values might be relative to the virtualization environment in which the application is running, not necessarily the values of the your machine. See instructions for <a href="http://stackoverflow.com/a/39720010">MacOS</a> and <a href="https://docs.docker.com/docker-for-windows/#advanced">Windows</a> for changing these values in a docker setup.</div>
<div style="margin-top: 20px;"><strong>{% trans 'Note!' %}</strong> {% blocktrans with win_link="<a href='https://docs.docker.com/docker-for-windows/#advanced'>Windows</a>" mac_link="<a href='http://stackoverflow.com/a/39720010'>MacOS</a>" %}These values might be relative to the virtualization environment in which the application is running, not necessarily the values of the your machine. See instructions for {{ win_link }} and {{ mac_link }} for changing these values in a docker setup.{% endblocktrans %}</div>
<script>
(function(){
var ctx = document.getElementById('diskChart').getContext('2d');
var labels = {
'Used': '{{ used_disk_space|filesizeformat }}',
'Free': '{{ free_disk_space|filesizeformat }}'
"{% trans 'Used' context 'Megabytes of storage space' %}": '{{ used_disk_space|filesizeformat }}',
"{% trans 'Free' context 'Megabytes of storage space' %}": '{{ free_disk_space|filesizeformat }}'
};
var chart = new Chart(ctx, {
type: 'doughnut',
data: {
labels: ["Used", "Free"],
labels: ["{% trans 'Used' context 'Megabytes of storage space' %}", "{% trans 'Free' context 'Megabytes of storage space' %}"],
datasets: [{
label: "Disk Space",
label: "{% trans 'Disk Space' %}",
backgroundColor:[
"rgb(255, 99, 132)",
"rgb(54, 162, 235)"
@ -71,15 +71,15 @@
(function(){
var ctx = document.getElementById('memoryChart').getContext('2d');
var labels = {
'Used': '{{ used_memory|filesizeformat }}',
'Free': '{{ free_memory|filesizeformat }}'
"{% trans 'Used' context 'Megabytes of memory space' %}": '{{ used_memory|filesizeformat }}',
"{% trans 'Free' context 'Megabytes of memory space' %}": '{{ free_memory|filesizeformat }}'
};
var chart = new Chart(ctx, {
type: 'doughnut',
data: {
labels: ["Used", "Free"],
labels: ["{% trans 'Used' context 'Megabytes of memory space' %}", "{% trans 'Free' context 'Megabytes of memory space' %}"],
datasets: [{
label: "Disk Space",
label: "{% trans 'Disk Space' %}",
backgroundColor:[
"rgb(255, 99, 132)",
"rgb(54, 162, 235)"

Wyświetl plik

@ -4,6 +4,7 @@ from django.dispatch import receiver
from django.http import HttpResponse
from guardian.shortcuts import get_objects_for_user, assign_perm
from rest_framework.renderers import JSONRenderer
from django.utils.translation import gettext as _
from app.plugins import GlobalDataStore, logger
from app.plugins import PluginBase, Menu, MountPoint, UserDataStore, signals
@ -21,7 +22,7 @@ def JsonResponse(dict):
class Plugin(PluginBase):
def main_menu(self):
return [Menu("Lightning Network", self.public_url(""), "fa fa-bolt fa-fw")]
return [Menu(_("Lightning Network"), self.public_url(""), "fa fa-bolt fa-fw")]
def include_js_files(self):
return ['add_cost_estimate.js']
@ -35,7 +36,7 @@ class Plugin(PluginBase):
uds = UserDataStore('lightning', request.user)
return render(request, self.template_path("index.html"), {
'title': 'Lightning Network',
'title': _('Lightning Network'),
'api_key': uds.get_string("api_key")
})

Wyświetl plik

@ -1,10 +1,11 @@
from app.plugins import PluginBase, Menu, MountPoint
from django.shortcuts import render
from django.utils.translation import gettext as _
class Plugin(PluginBase):
def main_menu(self):
return [Menu("GCP Interface", self.public_url(""), "fa fa-map-marker-alt fa-fw")]
return [Menu(_("GCP Interface"), self.public_url(""), "fa fa-map-marker-alt fa-fw")]
def app_mount_points(self):
return [