kopia lustrzana https://github.com/OpenDroneMap/WebODM
More translations, version page
rodzic
11ee54245d
commit
f707d54f5d
|
@ -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){
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 %}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 %}
|
|
@ -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 %}
|
||||
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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'),
|
||||
]
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 "fà"
|
||||
|
||||
#: 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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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": {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)"
|
||||
|
|
|
@ -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")
|
||||
})
|
||||
|
||||
|
|
|
@ -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 [
|
||||
|
|
Ładowanie…
Reference in New Issue