Browse Source

Добавил перевод ru

devel
Dmitry 9 years ago
parent
commit
5bb2bd5b67
  1. 3
      devapp/forms.py
  2. 113
      devapp/locale/ru/LC_MESSAGES/django.po
  3. 17
      devapp/templates/devapp/dev.html
  4. 16
      devapp/templates/devapp/devices.html
  5. 9
      devapp/templates/devapp/ext.htm
  6. 25
      devapp/templates/devapp/ports.html
  7. 21
      devapp/views.py

3
devapp/forms.py

@ -28,5 +28,8 @@ class DeviceForm(forms.ModelForm):
}), }),
'map_dot': forms.Select(attrs={ 'map_dot': forms.Select(attrs={
'class': 'form-control' 'class': 'form-control'
}),
'user_group': forms.Select(attrs={
'class': 'form-control'
}) })
} }

113
devapp/locale/ru/LC_MESSAGES/django.po

@ -0,0 +1,113 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE"S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Dmitry Novikov nerosketch@gmail.com, 2017.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-02-22 01:50+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Dmitry Novikov nerosketch@gmail.com\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
"%100>=11 && n%100<=14)? 2 : 3);\n"
msgid "Device info"
msgstr "Инфа о железке"
msgid "Ip address"
msgstr "Ip адрес"
msgid "Comment"
msgstr "Комментарий"
msgid "Device type"
msgstr "Тип устройства"
msgid "SNMP password"
msgstr "Пароль SNMP"
msgid "Map point"
msgstr "Точка топологии"
msgid "Save"
msgstr "Сохранить"
msgid "Reset"
msgstr "Сбросить"
msgid "Devices"
msgstr 'Устройства'
msgid "Devices does not found"
msgstr "Нет созданных устройств"
msgid "Create"
msgstr "Cоздать"
msgid "Not assigned"
msgstr "&lt;Не назначено&gt;"
msgid "Ports"
msgstr "Порты"
msgid "Port"
msgstr "Порт"
msgid "Edit"
msgstr "Редактировать"
msgid "Title of the type of switch"
msgstr "Название типа свича"
msgid "Uptime"
msgstr "Без перезагрузки"
msgid "We have not received info, please check options :("
msgstr "Инфа не получена, проверьте настройки :("
msgid "Device log"
msgstr "Лог устройства"
msgid "Level"
msgstr "Уровень"
msgid "Description"
msgstr "Описание"
msgid "Date"
msgstr "Дата"
msgid "Ports comment"
msgstr "Комментарии портов"
msgid "Title"
msgstr "Название"
msgid "We have not received info for ports"
msgstr "Инфа о портах не получена"
msgid "Delete failed"
msgstr "Неизвестная ошибка при удалении :("
msgid "Device info has been saved"
msgstr "Инфа о точке сохранена"
msgid "Form is invalid, check fields and try again"
msgstr "Ошибка в данных, проверте их ещё раз"
msgid "Not Set snmp device password"
msgstr "Не указан snmp пароль для устройства"
msgid "Dot was not pinged"
msgstr "Эта точка не пингуется"
msgid "wait for a reply from the SNMP Timeout"
msgstr "Время ожидания ответа от SNMP истекло"

17
devapp/templates/devapp/dev.html

@ -1,9 +1,10 @@
{% extends request.is_ajax|yesno:'nullcont.htm,devapp/ext.htm' %} {% extends request.is_ajax|yesno:'nullcont.htm,devapp/ext.htm' %}
{% load i18n %}
{% block content %} {% block content %}
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">
<h3 class="panel-title">Инфа о железке</h3>
<h3 class="panel-title">{% trans 'Device info' %}</h3>
</div> </div>
<div class="panel-body"> <div class="panel-body">
@ -15,7 +16,7 @@
{% endif %}" method="post">{% csrf_token %} {% endif %}" method="post">{% csrf_token %}
<div class="form-group"> <div class="form-group">
<label for="id_ip_address">Ip адрес</label>
<label for="id_ip_address">{% trans 'Ip address' %}</label>
<div class="input-group"> <div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-globe"></span></span> <span class="input-group-addon"><span class="glyphicon glyphicon-globe"></span></span>
@ -24,7 +25,7 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="id_comment">Комментарий</label>
<label for="id_comment">{% trans 'Comment' %}</label>
<div class="input-group"> <div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-comment"></span></span> <span class="input-group-addon"><span class="glyphicon glyphicon-comment"></span></span>
@ -33,7 +34,7 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="id_devtype">Тип устройства</label>
<label for="id_devtype">{% trans 'Device type' %}</label>
<div class="input-group"> <div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-hdd"></span></span> <span class="input-group-addon"><span class="glyphicon glyphicon-hdd"></span></span>
@ -42,7 +43,7 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="id_man_passw">Пароль SNMP</label>
<label for="id_man_passw">{% trans 'SNMP password' %}</label>
<div class="input-group"> <div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-lock"></span></span> <span class="input-group-addon"><span class="glyphicon glyphicon-lock"></span></span>
@ -51,7 +52,7 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="id_map_dot">Точка топологии</label>
<label for="id_map_dot">{% trans 'Map point' %}</label>
<div class="input-group"> <div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-map-marker"></span></span> <span class="input-group-addon"><span class="glyphicon glyphicon-map-marker"></span></span>
@ -61,10 +62,10 @@
<div class="btn-group"> <div class="btn-group">
<button type="submit" class="btn btn-sm btn-primary"> <button type="submit" class="btn btn-sm btn-primary">
<span class="glyphicon glyphicon-save"></span> Сохранить
<span class="glyphicon glyphicon-save"></span> {% trans 'Save' %}
</button> </button>
<button type="reset" class="btn btn-sm btn-default"> <button type="reset" class="btn btn-sm btn-default">
<span class="glyphicon glyphicon-remove-circle"></span> Отменить
<span class="glyphicon glyphicon-remove-circle"></span> {% trans 'Reset' %}
</button> </button>
</div> </div>

16
devapp/templates/devapp/devices.html

@ -1,22 +1,22 @@
{% extends request.is_ajax|yesno:'bajax.html,base.html' %} {% extends request.is_ajax|yesno:'bajax.html,base.html' %}
{% load i18n %}
{% block main %} {% block main %}
<ol class="breadcrumb"> <ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li> <li><span class="glyphicon glyphicon-home"></span></li>
<li class="active">Устройства</li>
<li class="active">{% trans 'Devices' %}</li>
</ol> </ol>
{% include 'message_block.html' %} {% include 'message_block.html' %}
<h3>Устройства</h3>
<h3>{% trans 'Devices' %}</h3>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-striped table-bordered"> <table class="table table-striped table-bordered">
<thead> <thead>
<tr> <tr>
<th>Ip</th>
<th>Комментарий</th>
<th width="250">Тип</th>
<th>{% trans 'Ip address' %}</th>
<th>{% trans 'Comment' %}</th>
<th width="250">{% trans 'Device type' %}</th>
<th width="100">Do</th> <th width="100">Do</th>
</tr> </tr>
</thead> </thead>
@ -37,7 +37,7 @@
</tr> </tr>
{% empty %} {% empty %}
<tr> <tr>
<td colspan="4">Нет созданных устройств, <a href="{% url 'devapp:add' %}">создать</a></td>
<td colspan="4">{% trans 'Devices does not found' %}. <a href="{% url 'devapp:add' %}">{% trans 'Create' %}</a></td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
@ -46,7 +46,7 @@
<tr> <tr>
<td colspan="4"> <td colspan="4">
<a href="{% url 'devapp:add' %}" class="btn btn-success btn-sm"> <a href="{% url 'devapp:add' %}" class="btn btn-success btn-sm">
<span class="glyphicon glyphicon-plus"></span> Добавить
<span class="glyphicon glyphicon-plus"></span> {% trans 'Create' %}
</a> </a>
</td> </td>
</tr> </tr>

9
devapp/templates/devapp/ext.htm

@ -1,16 +1,17 @@
{% extends request.is_ajax|yesno:'bajax.html,base.html' %} {% extends request.is_ajax|yesno:'bajax.html,base.html' %}
{% load i18n %}
{% block main %} {% block main %}
<ol class="breadcrumb"> <ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li> <li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'devapp:devs' %}">Устройства</a></li>
<li><a href="{% url 'devapp:devs' %}">{% trans 'Devices' %}</a></li>
<li class="active">{{ dev.ip_address }}</li> <li class="active">{{ dev.ip_address }}</li>
</ol> </ol>
{% include 'message_block.html' %} {% include 'message_block.html' %}
<div class="page-header"> <div class="page-header">
<h2>{{ dev.comment|default:'Без названия' }}</h2>
<h2>{{ dev.comment|default:_('Not assigned') }}</h2>
</div> </div>
<ul class="nav nav-tabs"> <ul class="nav nav-tabs">
@ -18,13 +19,13 @@
{% url 'devapp:view' dev.id as devapp_view %} {% url 'devapp:view' dev.id as devapp_view %}
<li{% if devapp_view == request.path %} class="active"{% endif %}> <li{% if devapp_view == request.path %} class="active"{% endif %}>
<a href="{{ devapp_view }}"> <a href="{{ devapp_view }}">
Порты {{ dev.ip_address }}
{% trans 'Ports' %} {{ dev.ip_address }}
</a> </a>
</li> </li>
{% url 'devapp:edit' dev.id as devapp_edit %} {% url 'devapp:edit' dev.id as devapp_edit %}
<li{% if devapp_edit == request.path %} class="active"{% endif %}> <li{% if devapp_edit == request.path %} class="active"{% endif %}>
<a href="{{ devapp_edit }}">Редактировать</a>
<a href="{{ devapp_edit }}">{% trans 'Edit' %}</a>
</li> </li>
</ul> </ul>

25
devapp/templates/devapp/ports.html

@ -1,12 +1,13 @@
{% extends request.is_ajax|yesno:'nullcont.htm,devapp/ext.htm' %} {% extends request.is_ajax|yesno:'nullcont.htm,devapp/ext.htm' %}
{% load i18n %}
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-sm-12">
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">
<div class="panel-title">{{ dev.get_devtype_display|default:'Название типа свича' }}, без
перезагрузки {{ uptime }}</div>
<div class="panel-title">{{ dev.get_devtype_display|default:_('Title of the type of switch') }}.
{% trans 'Uptime' %} {{ uptime }}</div>
</div> </div>
<div class="panel-body"> <div class="panel-body">
@ -38,7 +39,7 @@
</div> </div>
</div> </div>
{% empty %} {% empty %}
<h3>Инфа не получена, проверьте настройки :(</h3>
<h3>{% trans 'We have not received info, please check options :(' %}</h3>
{% endfor %} {% endfor %}
</div> </div>
@ -50,16 +51,16 @@
<div class="col-sm-6"> <div class="col-sm-6">
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">
<h3 class="panel-title">Лог устройства</h3>
<h3 class="panel-title">{% trans 'Device log' %}</h3>
</div> </div>
<div class="panel-body"> <div class="panel-body">
<table class="table table-responsive"> <table class="table table-responsive">
<thead> <thead>
<tr> <tr>
<td>ID</td> <td>ID</td>
<td>уровень</td>
<td>описание</td>
<td>дата</td>
<td>{% trans 'Level' %}</td>
<td>{% trans 'Description' %}</td>
<td>{% trans 'Date' %}</td>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -125,25 +126,25 @@
<div class="col-sm-6"> <div class="col-sm-6">
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">
<h3 class="panel-title">Комментарии портов</h3>
<h3 class="panel-title">{% trans 'Ports comment' %}</h3>
</div> </div>
<div class="panel-body"> <div class="panel-body">
<table class="table table-responsive"> <table class="table table-responsive">
<thead> <thead>
<tr> <tr>
<th width="50">Порт</th>
<th>Название</th>
<th width="50">{% trans 'Port' %}</th>
<th>{% trans 'Title' %}</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for port in ports %} {% for port in ports %}
<tr> <tr>
<td>{{ port.num }}</td> <td>{{ port.num }}</td>
<td>{{ port.nm|default:"&lt;не назначен&gt;" }}</td>
<td>{{ port.nm|default:_('Not assigned') }}</td>
</tr> </tr>
{% empty %} {% empty %}
<tr> <tr>
<td colspan="2">инфа о портах не получена</td>
<td colspan="2">{% trans 'We have not received info for ports' %}</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>

21
devapp/views.py

@ -3,6 +3,7 @@ from django.contrib.auth.decorators import login_required, permission_required
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.shortcuts import render, redirect, get_object_or_404 from django.shortcuts import render, redirect, get_object_or_404
from django.contrib import messages from django.contrib import messages
from django.utils.translation import ugettext as _
from easysnmp import EasySNMPTimeoutError from easysnmp import EasySNMPTimeoutError
from .models import Device from .models import Device
@ -25,10 +26,10 @@ def devices(request):
@permission_required('devapp.delete_device') @permission_required('devapp.delete_device')
def devdel(request, did): def devdel(request, did):
try: try:
get_object_or_404(Device, id=did).delete()
Device.objects.get(pk=did).delete()
return res_success(request, 'devapp:devs') return res_success(request, 'devapp:devs')
except:
return res_error(request, 'Неизвестная ошибка при удалении :(')
except Device.DoesNotExist:
return res_error(request, _('Delete failed'))
@login_required @login_required
@ -46,9 +47,9 @@ def dev(request, devid=0):
frm = DeviceForm(request.POST, instance=devinst) frm = DeviceForm(request.POST, instance=devinst)
if frm.is_valid(): if frm.is_valid():
frm.save() frm.save()
messages.success(request, 'Инфа о точке сохранена')
messages.success(request, _('Device info has been saved'))
else: else:
messages.error(request, 'Ошибка в данных, проверте их ещё раз')
messages.error(request, _('Form is invalid, check fields and try again'))
else: else:
frm = DeviceForm(instance=devinst) frm = DeviceForm(instance=devinst)
@ -72,11 +73,11 @@ def devview(request, did):
uptime = manager.uptime() uptime = manager.uptime()
ports = manager.get_ports() ports = manager.get_ports()
else: else:
messages.warning(request, 'Не указан snmp пароль для устройства')
messages.warning(request, _('Not Set snmp device password'))
else: else:
messages.error(request, 'Эта точка не пингуется')
messages.error(request, _('Dot was not pinged'))
except EasySNMPTimeoutError: except EasySNMPTimeoutError:
messages.error(request, 'Время ожидания ответа от SNMP истекло')
messages.error(request, _('wait for a reply from the SNMP Timeout'))
return render(request, 'devapp/ports.html', { return render(request, 'devapp/ports.html', {
'dev': dev, 'dev': dev,
@ -100,7 +101,7 @@ def toggle_port(request, did, portid, status=0):
else: else:
ports[portid-1].disable() ports[portid-1].disable()
else: else:
messages.warning(request, 'Не указан snmp пароль для устройства')
messages.warning(request, _('Not Set snmp device password'))
else: else:
messages.error(request, 'Эта точка не пингуется')
messages.error(request, _('Dot was not pinged'))
return redirect('devapp:view', did=did) return redirect('devapp:view', did=did)
Loading…
Cancel
Save