mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-10-29 12:55:13 +08:00
🌈 Sync 2026-06-15 00:02:19
This commit is contained in:
1 parent
3921a22889
commit
9475a645b7
31 files changed
+7013
-837
No files matched your search
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-daede
|
||||
PKG_VERSION:=1.12.0
|
||||
PKG_RELEASE:=6
|
||||
PKG_RELEASE:=7
|
||||
PKG_MAINTAINER:=kenzok8
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
|
||||
|
||||
|
||||
@@ -63,6 +63,29 @@ function fmtMtime(epoch) {
|
||||
return d.toISOString().slice(0, 10);
|
||||
}
|
||||
|
||||
// Compare two version strings like `sort -V`: split into numeric / non-numeric
|
||||
// chunks and compare chunk by chunk (numeric chunks numerically). Returns
|
||||
// <0 if a<b, 0 if equal, >0 if a>b. Used so a stale third-party feed that
|
||||
// happens to provide an OLDER build (e.g. compile-jell) is never offered as an
|
||||
// "upgrade" over a newer locally installed package.
|
||||
function cmpVer(a, b) {
|
||||
const ax = String(a).match(/(\d+|\D+)/g) || [];
|
||||
const bx = String(b).match(/(\d+|\D+)/g) || [];
|
||||
const n = Math.max(ax.length, bx.length);
|
||||
for (let i = 0; i < n; i++) {
|
||||
const as = ax[i], bs = bx[i];
|
||||
if (as === undefined) return -1;
|
||||
if (bs === undefined) return 1;
|
||||
if (/^\d+$/.test(as) && /^\d+$/.test(bs)) {
|
||||
const d = parseInt(as, 10) - parseInt(bs, 10);
|
||||
if (d !== 0) return d < 0 ? -1 : 1;
|
||||
} else if (as !== bs) {
|
||||
return as < bs ? -1 : 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
function probeFile(path) {
|
||||
return L.resolveDefault(fs.stat(path), null).then(function(st) {
|
||||
return { exists: !!st, size: st ? st.size : 0, mtime: st ? st.mtime : 0 };
|
||||
@@ -210,24 +233,27 @@ return view.extend({
|
||||
]).forEach(function(entry) {
|
||||
const btn = E('button', { 'class': 'dd-up-btn dd-up-btn-primary' }, _('Upgrade'));
|
||||
btn.addEventListener('click', function() { upgradePkg(entry.k, btn); });
|
||||
const sameVersion = entry.r.installed && entry.r.latest && entry.r.installed === entry.r.latest;
|
||||
const updatable = entry.r.installed && entry.r.latest && entry.r.installed !== entry.r.latest;
|
||||
// Only treat it as upgradable when the feed version is STRICTLY
|
||||
// higher than what's installed. A lower/equal feed version (e.g.
|
||||
// a stale compile-jell build) must never be offered as an upgrade.
|
||||
const cmp = (entry.r.installed && entry.r.latest)
|
||||
? cmpVer(entry.r.latest, entry.r.installed) : null;
|
||||
const updatable = cmp !== null && cmp > 0;
|
||||
let meta;
|
||||
if (!entry.r.installed) {
|
||||
meta = _('not installed via package manager');
|
||||
btn.disabled = true;
|
||||
btn.textContent = _('Unavailable');
|
||||
} else if (sameVersion) {
|
||||
meta = _('installed') + ': ' + entry.r.installed + ' · ' + _('up to date');
|
||||
btn.disabled = true;
|
||||
} else if (!entry.r.latest) {
|
||||
// latest unknown (registry unreachable) - nothing to upgrade to
|
||||
meta = _('installed') + ': ' + entry.r.installed + ' · ' + _('latest version unknown');
|
||||
btn.disabled = true;
|
||||
} else if (updatable) {
|
||||
meta = _('installed') + ': ' + entry.r.installed + ' → ' + _('latest') + ': ' + entry.r.latest;
|
||||
} else {
|
||||
meta = _('installed') + ': ' + entry.r.installed + (entry.r.latest ? ' · ' + _('latest') + ': ' + entry.r.latest : '');
|
||||
} else {
|
||||
// installed >= feed: already up to date (feed may even be older)
|
||||
meta = _('installed') + ': ' + entry.r.installed + ' · ' + _('up to date');
|
||||
btn.disabled = true;
|
||||
}
|
||||
pkgBody.appendChild(mkRow(
|
||||
updatable ? '⚠' : (entry.r.installed ? '✓' : '✗'),
|
||||
|
||||
@@ -23,7 +23,16 @@ if command -v apk >/dev/null 2>&1; then
|
||||
}
|
||||
')
|
||||
fi
|
||||
latest=$(apk search "^${PKG}\$" 2>/dev/null | sort -V | tail -1 | sed "s/^${PKG}-//")
|
||||
# apk search treats ^ and $ as literal chars (not regex anchors), so the old
|
||||
# `apk search "^pkg$"` matched nothing. Enumerate the exact-name package
|
||||
# across all feeds via `apk list` and take the highest version. Restricting
|
||||
# to "<pkg>-<digit>" avoids sibling names like <pkg>-geoip / luci-app-<pkg>.
|
||||
latest=$(apk list "$PKG" 2>/dev/null | awk -v p="$PKG" '
|
||||
$1 ~ "^" p "-[0-9]" {
|
||||
v = $1; sub("^" p "-", "", v);
|
||||
print v
|
||||
}
|
||||
' | sort -V | tail -1)
|
||||
elif command -v opkg >/dev/null 2>&1; then
|
||||
installed=$(opkg status "$PKG" 2>/dev/null | awk -F': ' '$1=="Version"{print $2; exit}')
|
||||
latest=$(opkg info "$PKG" 2>/dev/null | awk -F': ' '$1=="Version"{print $2; exit}')
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2022-2024 Rafał Wabik - IceG - From eko.one.pl forum
|
||||
# Copyright 2022-2026 Rafał Wabik - IceG - From eko.one.pl forum
|
||||
#
|
||||
# MIT License
|
||||
#
|
||||
@@ -8,15 +8,16 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-lite-watchdog
|
||||
LUCI_TITLE:=LuCI JS Support for lite-watchdog the connection monitor
|
||||
MAINTAINER:=Rafał Wabik <4Rafal@gmail.com>
|
||||
PKG_MAINTAINER:=Rafał Wabik <4Rafal@gmail.com>
|
||||
LUCI_DESCRIPTION:=LuCI JS interface for the lite-watchdog scripts.
|
||||
LUCI_DEPENDS:=+sms-tool +kmod-usb-serial +kmod-usb-serial-option +comgt
|
||||
LUCI_PKGARCH:=all
|
||||
PKG_VERSION:=1.0.15
|
||||
PKG_RELEASE:=1
|
||||
PKG_VERSION:=1.0.17
|
||||
PKG_RELEASE:=2
|
||||
|
||||
define Package/luci-app-lite-watchdog/conffiles
|
||||
/etc/modem/log.txt
|
||||
/etc/lite_watchdog.user
|
||||
endef
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
@@ -8,142 +8,141 @@
|
||||
'require tools.widgets as widgets'
|
||||
|
||||
/*
|
||||
Copyright 2022-2024 Rafał Wabik - IceG - From eko.one.pl forum
|
||||
|
||||
Copyright 2022-2026 Rafał Wabik - IceG - From eko.one.pl forum
|
||||
|
||||
MIT License
|
||||
|
||||
*/
|
||||
|
||||
function pop(a, message, severity) {
|
||||
ui.addNotification(a, message, severity)
|
||||
}
|
||||
|
||||
function popTimeout(a, message, timeout, severity) {
|
||||
ui.addTimeLimitedNotification(a, message, timeout, severity)
|
||||
}
|
||||
|
||||
return view.extend({
|
||||
usrScriptPath : '/etc/lite_watchdog.user',
|
||||
|
||||
load: function() {
|
||||
return fs.list('/dev').then(function(devs) {
|
||||
return devs.filter(function(dev) {
|
||||
return dev.name.match(/^ttyUSB/) || dev.name.match(/^cdc-wdm/) || dev.name.match(/^ttyACM/) || dev.name.match(/^mhi_/) || dev.name.match(/^wwan/);
|
||||
});
|
||||
return Promise.all([
|
||||
L.resolveDefault(fs.list('/dev'), null),
|
||||
L.resolveDefault(uci.load('watchdog'))
|
||||
]);
|
||||
},
|
||||
|
||||
fileEditDialog: baseclass.extend({
|
||||
__init__: function(file, title, description, callback, fileExists = false) {
|
||||
this.file = file;
|
||||
this.title = title;
|
||||
this.description = description;
|
||||
this.callback = callback;
|
||||
this.fileExists = fileExists;
|
||||
},
|
||||
|
||||
load: function() {
|
||||
return L.resolveDefault(fs.read(this.file), '');
|
||||
},
|
||||
|
||||
handleSave: function(ev) {
|
||||
let textarea = document.getElementById('widget.modal_content');
|
||||
let value = textarea.value.trim().replace(/\r\n/g, '\n') + '\n';
|
||||
return fs.write(this.file, value).then(rc => {
|
||||
textarea.value = value;
|
||||
popTimeout(null, E('p', _('Contents have been saved.')), 5000, 'info');
|
||||
if (this.callback) {
|
||||
return this.callback(rc);
|
||||
}
|
||||
}).catch(e => {
|
||||
ui.addNotification(null, E('p', _('Unable to save the contents') + ': %s'.format(e.message)));
|
||||
}).finally(() => {
|
||||
ui.hideModal();
|
||||
});
|
||||
},
|
||||
|
||||
fileEditDialog: baseclass.extend({
|
||||
__init__: function(file, title, description, callback, fileExists=false) {
|
||||
this.file = file;
|
||||
this.title = title;
|
||||
this.description = description;
|
||||
this.callback = callback;
|
||||
this.fileExists = fileExists;
|
||||
},
|
||||
|
||||
load: function() {
|
||||
return L.resolveDefault(fs.read(this.file), '');
|
||||
},
|
||||
|
||||
render: function(content) {
|
||||
error: function(e) {
|
||||
if (!this.fileExists && e instanceof Error && e.name === 'NotFoundError') {
|
||||
return this.render();
|
||||
} else {
|
||||
ui.showModal(this.title, [
|
||||
E('div', { 'class': 'cbi-section' }, [
|
||||
E('div', { 'class': 'cbi-section-descr' }, this.description),
|
||||
E('div', { 'class': 'cbi-section' },
|
||||
E('p', {},
|
||||
E('textarea', {
|
||||
'id': 'widget.modal_content',
|
||||
'class': 'cbi-input-textarea',
|
||||
'style': 'width:100% !important',
|
||||
'rows': 10,
|
||||
'wrap': 'off',
|
||||
'spellcheck': 'false',
|
||||
},
|
||||
content)
|
||||
)
|
||||
),
|
||||
]),
|
||||
E('p', {}, _('Unable to read the contents') + ': %s'.format(e.message)),
|
||||
E('div', { 'class': 'right' }, [
|
||||
E('button', {
|
||||
'class': 'btn',
|
||||
'click': ui.hideModal,
|
||||
}, _('Dismiss')),
|
||||
' ',
|
||||
E('button', {
|
||||
'id': 'btn_save',
|
||||
'class': 'btn cbi-button-positive important',
|
||||
'click': ui.createHandlerFn(this, this.handleSave),
|
||||
}, _('Save')),
|
||||
]),
|
||||
]);
|
||||
},
|
||||
}, _('Dismiss'))
|
||||
])
|
||||
], 'cbi-modal');
|
||||
}
|
||||
},
|
||||
|
||||
handleSave: function(ev) {
|
||||
let textarea = document.getElementById('widget.modal_content');
|
||||
let value = textarea.value.trim().replace(/\r\n/g, '\n') + '\n';
|
||||
show: function() {
|
||||
ui.showModal(null, E('p', { 'class': 'spinning' }, _('Loading')));
|
||||
this.load().then(content => {
|
||||
ui.hideModal();
|
||||
return this.render(content);
|
||||
}).catch(e => {
|
||||
ui.hideModal();
|
||||
return this.error(e);
|
||||
});
|
||||
},
|
||||
|
||||
return fs.write(this.file, value).then(rc => {
|
||||
textarea.value = value;
|
||||
ui.addNotification(null, E('p', _('Contents have been saved.')),
|
||||
'info');
|
||||
if(this.callback) {
|
||||
return this.callback(rc);
|
||||
};
|
||||
}).catch(e => {
|
||||
ui.addNotification(null, E('p', _('Unable to save the contents')
|
||||
+ ': %s'.format(e.message)));
|
||||
}).finally(() => {
|
||||
ui.hideModal();
|
||||
});
|
||||
},
|
||||
render: function(content) {
|
||||
ui.showModal(this.title, [
|
||||
E('p', this.description),
|
||||
E('textarea', {
|
||||
'id': 'widget.modal_content',
|
||||
'class': 'cbi-input-textarea',
|
||||
'style': 'width:100% !important; height: 60vh; min-height: 500px;',
|
||||
'wrap': 'off',
|
||||
'spellcheck': 'false'
|
||||
}, content.trim()),
|
||||
E('div', { 'class': 'right' }, [
|
||||
E('button', {
|
||||
'class': 'btn cbi-button-remove',
|
||||
'click': () => {
|
||||
document.getElementById('widget.modal_content').value = '';
|
||||
fs.write('/etc/lite_watchdog.user', '').then(() => {
|
||||
}).catch(e => {
|
||||
ui.addNotification(null, E('p', _('Unable to clear the file') + ': %s'.format(e.message)), 'error');
|
||||
});
|
||||
}
|
||||
}, _('Clear')),
|
||||
' ',
|
||||
E('button', {
|
||||
'id': 'btn_save',
|
||||
'class': 'btn cbi-button-positive important',
|
||||
'click': ui.createHandlerFn(this, this.handleSave)
|
||||
}, _('Save')),
|
||||
' ',
|
||||
E('button', {
|
||||
'class': 'btn',
|
||||
'click': ui.hideModal
|
||||
}, _('Dismiss'))
|
||||
])
|
||||
], 'cbi-modal');
|
||||
}
|
||||
}),
|
||||
|
||||
error: function(e) {
|
||||
if(!this.fileExists && e instanceof Error && e.name === 'NotFoundError') {
|
||||
return this.render();
|
||||
} else {
|
||||
ui.showModal(this.title, [
|
||||
E('div', { 'class': 'cbi-section' },
|
||||
E('p', {}, _('Unable to read the contents')
|
||||
+ ': %s'.format(e.message))
|
||||
),
|
||||
E('div', { 'class': 'right' },
|
||||
E('button', {
|
||||
'class': 'btn',
|
||||
'click': ui.hideModal,
|
||||
}, _('Dismiss'))
|
||||
),
|
||||
]);
|
||||
};
|
||||
},
|
||||
render: function(res) {
|
||||
|
||||
show: function() {
|
||||
ui.showModal(null,
|
||||
E('p', { 'class': 'spinning' }, _('Loading'))
|
||||
);
|
||||
this.load().then(content => {
|
||||
ui.hideModal();
|
||||
return this.render(content);
|
||||
}).catch(e => {
|
||||
ui.hideModal();
|
||||
return this.error(e);
|
||||
})
|
||||
},
|
||||
}),
|
||||
|
||||
render: function(devs) {
|
||||
|
||||
let usrScriptEditDialog = new this.fileEditDialog(
|
||||
this.usrScriptPath,
|
||||
_('User script'),
|
||||
_("User-defined commands."),
|
||||
);
|
||||
|
||||
|
||||
let sections = uci.sections('watchdog');
|
||||
let mainAction = sections[0].action;
|
||||
|
||||
let m, s, o;
|
||||
m = new form.Map('watchdog', _('Configuration lite-watchdog'), _('Configuration panel for lite-watchdog and gui application.'));
|
||||
|
||||
s = m.section(form.TypedSection, 'watchdog', '', _(''));
|
||||
s.anonymous = true;
|
||||
|
||||
/* Old config
|
||||
o = s.option(widgets.DeviceSelect, 'iface', _('Interface'),
|
||||
_('Network interface for Internet access.')
|
||||
);
|
||||
o.noaliases = false;
|
||||
o.default = 'wan';
|
||||
*/
|
||||
|
||||
o = s.option(widgets.NetworkSelect, 'iface', _('Interface'),
|
||||
_('Network interface for Internet access.')
|
||||
);
|
||||
@@ -151,54 +150,338 @@ return view.extend({
|
||||
o.nocreate = true;
|
||||
o.rmempty = false;
|
||||
o.default = 'wan';
|
||||
|
||||
o = s.option(form.Button,
|
||||
'_usr_script_btn', _('Edit user script'),
|
||||
_('Before executing the action, system calls a script in which user can place his own commands.')
|
||||
);
|
||||
o.onclick = () => usrScriptEditDialog.show();
|
||||
o.inputtitle = _('Edit');
|
||||
o.inputstyle = 'edit btn';
|
||||
|
||||
o = s.option(form.Flag, 'modemrestart', _('Modem restart'),
|
||||
_('Perform a modem restart before resuming the connection.')
|
||||
);
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.option(form.Value, 'set_port', _('Port for communication with the modem'),
|
||||
_("Select one of the available ttyUSBX ports."));
|
||||
devs.sort((a, b) => a.name > b.name);
|
||||
devs.forEach(dev => o.value('/dev/' + dev.name));
|
||||
o.placeholder = _('Please select a port');
|
||||
o.rmempty = false;
|
||||
o.depends("modemrestart", "1");
|
||||
|
||||
o = s.option(form.Value, 'restartcmd', _('Restart modem with AT command'),
|
||||
_('AT command to restart the modem.')
|
||||
);
|
||||
o.default = 'at+cfun=1,1';
|
||||
o.rmempty = false;
|
||||
o.depends("modemrestart", "1");
|
||||
|
||||
o = s.option(form.Flag, 'ledstatus', _('LED settings'),
|
||||
_('The LED shows the internet connection status.')
|
||||
);
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.option(form.ListValue, 'led',_('<abbr title="Light Emitting Diode">LED</abbr> Name'),
|
||||
_("Select the status LED."));
|
||||
o.load = function(section_id) {
|
||||
let led = s.option(form.ListValue, 'led', _('<abbr title="Light Emitting Diode">LED</abbr> Name'), _("Select the status LED."));
|
||||
|
||||
led.load = function(section_id) {
|
||||
return L.resolveDefault(fs.list('/sys/class/leds'), []).then(L.bind(function(leds) {
|
||||
if(leds.length > 0) {
|
||||
leds.sort((a, b) => a.name > b.name);
|
||||
leds.forEach(e => o.value(e.name));
|
||||
if (leds.length > 0) {
|
||||
leds.sort((a, b) => a.name > b.name);
|
||||
leds.forEach(e => this.value(e.name));
|
||||
}
|
||||
return this.super('load', [section_id]);
|
||||
}, this));
|
||||
};
|
||||
o.rmempty = false;
|
||||
o.depends("ledstatus", "1");
|
||||
led.depends("ledstatus", "1");
|
||||
|
||||
return m.render();
|
||||
s = m.section(form.TypedSection, 'watchdog', _('User Script Wizard'), _('Before executing the action, system calls a script in which user can place his own commands.'));
|
||||
s.anonymous = true;
|
||||
|
||||
s.tab('uscriptTab', _('Settings'));
|
||||
|
||||
function handleID(ev, section_id, value) {
|
||||
let fa = this.section.getUIElement(section_id, 'first_action');
|
||||
let ma = this.section.getUIElement(section_id, 'modem_action');
|
||||
let cmport = this.section.getUIElement(section_id, 'set_port');
|
||||
let rcmd = this.section.getUIElement(section_id, 'restartcmd');
|
||||
let rgpio = this.section.getUIElement(section_id, 'gpio');
|
||||
|
||||
let contentLines = [];
|
||||
|
||||
if (mainAction === "wan") {
|
||||
// restart interface
|
||||
if (fa.getValue() === "mr") {
|
||||
// modem restart
|
||||
if (ma.getValue() === "sr") {
|
||||
// soft restart
|
||||
contentLines.push('#!/bin/sh');
|
||||
contentLines.push('');
|
||||
contentLines.push('#');
|
||||
contentLines.push('# (c) 2025-2026 Rafał Wabik - IceG - From eko.one.pl forum');
|
||||
contentLines.push('# Script generated by user');
|
||||
contentLines.push('#');
|
||||
contentLines.push('# ENV from main');
|
||||
contentLines.push('# ACTION=wan|reboot');
|
||||
contentLines.push('# PHASE=pre|post');
|
||||
contentLines.push('#');
|
||||
contentLines.push('');
|
||||
contentLines.push('safe_log() {');
|
||||
contentLines.push(' [ -n "$LOG_FILE" ] || return 0');
|
||||
contentLines.push(' date +"%A %d-%B %Y %T, USER-SCRIPT: $1" >> "$LOG_FILE"');
|
||||
contentLines.push('}');
|
||||
contentLines.push('');
|
||||
contentLines.push('reset_counters_and_stage() {');
|
||||
contentLines.push(' [ -n "$CNT_FILE" ] && : > "$CNT_FILE"');
|
||||
contentLines.push(' [ -n "$GCNT_FILE" ] && : > "$GCNT_FILE"');
|
||||
contentLines.push(' if [ -n "$INDEX_FILE" ]; then');
|
||||
contentLines.push(' echo 0 > "$INDEX_FILE"');
|
||||
contentLines.push(' fi');
|
||||
contentLines.push(' [ -n "$STAGE_FILE" ] && rm -f "$STAGE_FILE"');
|
||||
contentLines.push('}');
|
||||
contentLines.push('');
|
||||
contentLines.push('if [ "$PHASE" = "pre" ]; then');
|
||||
contentLines.push('');
|
||||
contentLines.push(' safe_log "Commands before main action"');
|
||||
contentLines.push('');
|
||||
contentLines.push(' # ---Space for user actions---');
|
||||
contentLines.push('');
|
||||
contentLines.push(' # ---Space for user actions---');
|
||||
contentLines.push('');
|
||||
contentLines.push('elif [ "$PHASE" = "post" ]; then');
|
||||
contentLines.push('');
|
||||
contentLines.push(' safe_log "Commands after main action"');
|
||||
contentLines.push('');
|
||||
contentLines.push(' /bin/date +"%A %d-%B %Y %T, Status: OFFLINE ➜ Action from script: Soft modem restart" >> "$LOG_FILE" && sleep 5');
|
||||
contentLines.push(' (/bin/sms_tool -d ' + cmport.getValue() + ' at "' + rcmd.getValue() + '") && sleep 30');
|
||||
contentLines.push('');
|
||||
contentLines.push(' reset_counters_and_stage');
|
||||
contentLines.push('fi');
|
||||
contentLines.push('');
|
||||
contentLines.push('exit 0');
|
||||
} else {
|
||||
// hard restart
|
||||
contentLines.push('#!/bin/sh');
|
||||
contentLines.push('');
|
||||
contentLines.push('#');
|
||||
contentLines.push('# (c) 2025-2026 Rafał Wabik - IceG - From eko.one.pl forum');
|
||||
contentLines.push('# Script generated by user');
|
||||
contentLines.push('#');
|
||||
contentLines.push('# ENV from main');
|
||||
contentLines.push('# ACTION=wan|reboot');
|
||||
contentLines.push('# PHASE=pre|post');
|
||||
contentLines.push('#');
|
||||
contentLines.push('');
|
||||
contentLines.push('safe_log() {');
|
||||
contentLines.push(' [ -n "$LOG_FILE" ] || return 0');
|
||||
contentLines.push(' date +"%A %d-%B %Y %T, USER-SCRIPT: $1" >> "$LOG_FILE"');
|
||||
contentLines.push('}');
|
||||
contentLines.push('');
|
||||
contentLines.push('reset_counters_and_stage() {');
|
||||
contentLines.push(' [ -n "$CNT_FILE" ] && : > "$CNT_FILE"');
|
||||
contentLines.push(' [ -n "$GCNT_FILE" ] && : > "$GCNT_FILE"');
|
||||
contentLines.push(' if [ -n "$INDEX_FILE" ]; then');
|
||||
contentLines.push(' echo 0 > "$INDEX_FILE"');
|
||||
contentLines.push(' fi');
|
||||
contentLines.push(' [ -n "$STAGE_FILE" ] && rm -f "$STAGE_FILE"');
|
||||
contentLines.push('}');
|
||||
contentLines.push('');
|
||||
contentLines.push('if [ "$PHASE" = "pre" ]; then');
|
||||
contentLines.push('');
|
||||
contentLines.push(' safe_log "Commands before main action"');
|
||||
contentLines.push('');
|
||||
contentLines.push(' # ---Space for user actions---');
|
||||
contentLines.push('');
|
||||
contentLines.push(' # ---Space for user actions---');
|
||||
contentLines.push('');
|
||||
contentLines.push('elif [ "$PHASE" = "post" ]; then');
|
||||
contentLines.push('');
|
||||
contentLines.push(' safe_log "Commands after main action"');
|
||||
contentLines.push('');
|
||||
contentLines.push(' /bin/date +"%A %d-%B %Y %T, Status: OFFLINE ➜ Action from script: Hard modem restart" >> "$LOG_FILE" && sleep 5');
|
||||
contentLines.push(' /bin/echo "0" > /sys/class/gpio/' + rgpio.getValue() + '/value');
|
||||
contentLines.push(' sleep 20');
|
||||
contentLines.push(' /bin/echo "1" > /sys/class/gpio/' + rgpio.getValue() + '/value');
|
||||
contentLines.push('');
|
||||
contentLines.push(' reset_counters_and_stage');
|
||||
contentLines.push('fi');
|
||||
contentLines.push('');
|
||||
contentLines.push('exit 0');
|
||||
}
|
||||
} else {
|
||||
// restart router
|
||||
contentLines.push('#!/bin/sh');
|
||||
contentLines.push('');
|
||||
contentLines.push('#');
|
||||
contentLines.push('# (c) 2025-2026 Rafał Wabik - IceG - From eko.one.pl forum');
|
||||
contentLines.push('# Script generated by user');
|
||||
contentLines.push('#');
|
||||
contentLines.push('# ENV from main');
|
||||
contentLines.push('# ACTION=wan|reboot');
|
||||
contentLines.push('# PHASE=pre|post');
|
||||
contentLines.push('#');
|
||||
contentLines.push('');
|
||||
contentLines.push('safe_log() {');
|
||||
contentLines.push(' [ -n "$LOG_FILE" ] || return 0');
|
||||
contentLines.push(' date +"%A %d-%B %Y %T, USER-SCRIPT: $1" >> "$LOG_FILE"');
|
||||
contentLines.push('}');
|
||||
contentLines.push('');
|
||||
contentLines.push('reset_counters_and_stage() {');
|
||||
contentLines.push(' [ -n "$CNT_FILE" ] && : > "$CNT_FILE"');
|
||||
contentLines.push(' [ -n "$GCNT_FILE" ] && : > "$GCNT_FILE"');
|
||||
contentLines.push(' if [ -n "$INDEX_FILE" ]; then');
|
||||
contentLines.push(' echo 0 > "$INDEX_FILE"');
|
||||
contentLines.push(' fi');
|
||||
contentLines.push(' [ -n "$STAGE_FILE" ] && rm -f "$STAGE_FILE"');
|
||||
contentLines.push('}');
|
||||
contentLines.push('');
|
||||
contentLines.push('if [ "$PHASE" = "pre" ]; then');
|
||||
contentLines.push('');
|
||||
contentLines.push(' safe_log "Commands before main action"');
|
||||
contentLines.push('');
|
||||
contentLines.push(' # ---Space for user actions---');
|
||||
contentLines.push('');
|
||||
contentLines.push(' # ---Space for user actions---');
|
||||
contentLines.push('');
|
||||
contentLines.push('elif [ "$PHASE" = "post" ]; then');
|
||||
contentLines.push('');
|
||||
contentLines.push(' safe_log "Commands after main action"');
|
||||
contentLines.push('');
|
||||
contentLines.push(' reset_counters_and_stage');
|
||||
contentLines.push('');
|
||||
contentLines.push(' /bin/date +"%A %d-%B %Y %T, Status: OFFLINE ➜ Action from script: Reboot" >> "$LOG_FILE" && sleep 5');
|
||||
contentLines.push(' reboot');
|
||||
contentLines.push('');
|
||||
contentLines.push('fi');
|
||||
contentLines.push('');
|
||||
contentLines.push('exit 0');
|
||||
}
|
||||
} else {
|
||||
// restart
|
||||
contentLines.push('#!/bin/sh');
|
||||
contentLines.push('');
|
||||
contentLines.push('#');
|
||||
contentLines.push('# (c) 2025-2026 Rafał Wabik - IceG - From eko.one.pl forum');
|
||||
contentLines.push('# Script generated by user');
|
||||
contentLines.push('#');
|
||||
contentLines.push('# ENV from main');
|
||||
contentLines.push('# ACTION=wan|reboot');
|
||||
contentLines.push('# PHASE=pre|post');
|
||||
contentLines.push('#');
|
||||
contentLines.push('');
|
||||
contentLines.push('safe_log() {');
|
||||
contentLines.push(' [ -n "$LOG_FILE" ] || return 0');
|
||||
contentLines.push(' date +"%A %d-%B %Y %T, USER-SCRIPT: $1" >> "$LOG_FILE"');
|
||||
contentLines.push('}');
|
||||
contentLines.push('');
|
||||
contentLines.push('reset_counters_and_stage() {');
|
||||
contentLines.push(' [ -n "$CNT_FILE" ] && : > "$CNT_FILE"');
|
||||
contentLines.push(' [ -n "$GCNT_FILE" ] && : > "$GCNT_FILE"');
|
||||
contentLines.push(' if [ -n "$INDEX_FILE" ]; then');
|
||||
contentLines.push(' echo 0 > "$INDEX_FILE"');
|
||||
contentLines.push(' fi');
|
||||
contentLines.push(' [ -n "$STAGE_FILE" ] && rm -f "$STAGE_FILE"');
|
||||
contentLines.push('}');
|
||||
contentLines.push('');
|
||||
contentLines.push('if [ "$PHASE" = "pre" ]; then');
|
||||
contentLines.push('');
|
||||
contentLines.push(' safe_log "Commands before main action"');
|
||||
contentLines.push('');
|
||||
contentLines.push(' # ---Space for user actions---');
|
||||
contentLines.push('');
|
||||
contentLines.push(' # ---Space for user actions---');
|
||||
contentLines.push('');
|
||||
contentLines.push(' reset_counters_and_stage');
|
||||
contentLines.push('');
|
||||
contentLines.push('fi');
|
||||
contentLines.push('');
|
||||
contentLines.push('exit 0');
|
||||
}
|
||||
|
||||
let contentToSave = contentLines.join('\n') + '\n';
|
||||
|
||||
return fs.write('/etc/lite_watchdog.user', contentToSave).then(function(rc) {
|
||||
popTimeout(null, E('p', _('Contents have been saved.')), 5000, 'info');
|
||||
}).catch(function(e) {
|
||||
ui.addNotification(null, E('p', _('Unable to save contents: %s').format(e.message)));
|
||||
});
|
||||
}
|
||||
|
||||
o = s.taboption('uscriptTab', form.DummyValue, '_dummy');
|
||||
o.rawhtml = true;
|
||||
o.default = '<div class="cbi-section-descr">' +
|
||||
_('Hint: You do not need to save anything in the settings. Select the actions and click the Generate button.') +
|
||||
'</div>';
|
||||
|
||||
if (mainAction === "wan") {
|
||||
|
||||
o = s.taboption('uscriptTab', form.RichListValue, "first_action", _('Actions in script'),
|
||||
_("The available options depend on the previously defined main action (interface or router restart)."));
|
||||
o.value('nn', _("None"));
|
||||
o.value('mr', _("modem restart"), _('Restart modem if restarting the interfaces did not restore internet access.'));
|
||||
o.value('rr', _("reboot"), _('Router reboot if restarting the interfaces did not restore internet access.'));
|
||||
o.optional = false;
|
||||
|
||||
o = s.taboption('uscriptTab', form.RichListValue, "modem_action", _("Modem actions"));
|
||||
o.value('sr', _("soft restart"), _('Restart modem using at commands')+' ('+_('effect depends on modem')+'). '+_('Some at commands can also restart the router.'));
|
||||
o.value('hr', _("hard restart"), _('Restart modem via GPIO.'));
|
||||
o.optional = false;
|
||||
o.depends("first_action", "mr");
|
||||
|
||||
o = s.taboption('uscriptTab', form.Value, 'set_port', _('Port for communication with the modem'),
|
||||
_("Select one of the available ttyUSBX ports."));
|
||||
res[0].sort((a, b) => a.name > b.name);
|
||||
res[0].forEach(dev => {
|
||||
if (dev.name.match(/^ttyUSB/) || dev.name.match(/^ttyACM/) || dev.name.match(/^mhi_/) || dev.name.match(/^wwan/)) {
|
||||
o.value('/dev/' + dev.name);
|
||||
}
|
||||
});
|
||||
o.placeholder = _('Please select a port');
|
||||
o.rmempty = false;
|
||||
o.depends("modem_action", "sr");
|
||||
|
||||
o = s.taboption('uscriptTab', form.Value, 'restartcmd', _('AT command'),
|
||||
_('AT command to restart the modem.')
|
||||
);
|
||||
o.default = 'at+cfun=1,1';
|
||||
o.rmempty = false;
|
||||
o.depends("modem_action", "sr");
|
||||
|
||||
let gpio = s.taboption('uscriptTab', form.ListValue, 'gpio', _('Restart modem using GPIO'), _("Select the GPIO related to 4G/5G modem."));
|
||||
|
||||
gpio.load = function(section_id) {
|
||||
return L.resolveDefault(fs.read('/sys/kernel/debug/gpio'), '').then(L.bind(function(output) {
|
||||
if (output) {
|
||||
output.split('\n').forEach(line => {
|
||||
if (/4g|5g|lte|modem/i.test(line)) {
|
||||
let cleanLine = line.replace(/\|/g, '').trim();
|
||||
let value = cleanLine.match(/\(\s*(.*?)\s*\)/)?.[1];
|
||||
|
||||
if (value)
|
||||
gpio.value(value, cleanLine);
|
||||
}
|
||||
});
|
||||
}
|
||||
return this.super('load', [section_id]);
|
||||
}, this));
|
||||
};
|
||||
gpio.depends("modem_action", "hr");
|
||||
|
||||
o = s.taboption('uscriptTab', form.Button, '_Generate');
|
||||
o.title = _('Generate a script');
|
||||
o.inputtitle = _('Generate user script');
|
||||
o.inputstyle = 'cbi-button cbi-button-action important';
|
||||
o.description = _('Generate and save the prepared script.');
|
||||
o.onclick = function(ev) {
|
||||
let section_id = this.section.cfgsections()[0];
|
||||
handleID.call(this, ev, section_id, null);
|
||||
};
|
||||
o.depends("first_action", "mr");
|
||||
o.depends("first_action", "rr");
|
||||
|
||||
} else {
|
||||
|
||||
o = s.taboption('uscriptTab', form.RichListValue, "first_action", _('Actions in script'),
|
||||
_("The availability of actions depends on the selection of the main action (interface or router restart)."));
|
||||
o.value('nn', _("None"));
|
||||
o.value('ua', _("user code"), _('Add custom commands before restarting the device.'));
|
||||
o.optional = false;
|
||||
|
||||
o = s.taboption('uscriptTab', form.Button, '_Generate');
|
||||
o.title = _('Generate a script');
|
||||
o.inputtitle = _('Generate user script');
|
||||
o.inputstyle = 'cbi-button cbi-button-action important';
|
||||
o.description = _('Generate and save the prepared script.');
|
||||
o.onclick = function(ev) {
|
||||
let section_id = this.section.cfgsections()[0];
|
||||
handleID.call(this, ev, section_id, null);
|
||||
};
|
||||
o.depends("first_action", "ua");
|
||||
|
||||
}
|
||||
|
||||
o = s.taboption('uscriptTab', form.Button,
|
||||
'_usr_script_btn', _('Edit user script'),
|
||||
_('User can add his script or generate a new one from the selection options.')
|
||||
);
|
||||
o.onclick = () => usrScriptEditDialog.show();
|
||||
o.inputtitle = _('Edit');
|
||||
o.inputstyle = 'edit btn';
|
||||
|
||||
return m.render();
|
||||
}
|
||||
});
|
||||
@@ -4,16 +4,16 @@
|
||||
'require ui';
|
||||
'require uci';
|
||||
|
||||
|
||||
/*
|
||||
Copyright 2023-2024 Rafał Wabik - IceG - From eko.one.pl forum
|
||||
|
||||
Copyright 2023-2026 Rafał Wabik - IceG - From eko.one.pl forum
|
||||
|
||||
MIT License
|
||||
|
||||
|
||||
Tab is a modification of the package https://github.com/gSpotx2f/luci-app-syslog
|
||||
|
||||
*/
|
||||
|
||||
|
||||
return L.view.extend({
|
||||
tailDefault: 20,
|
||||
|
||||
@@ -25,8 +25,15 @@ return L.view.extend({
|
||||
logdata = logdata.replaceAll('OFFLINE', _('OFFLINE'));
|
||||
logdata = logdata.replaceAll('ONLINE', _('ONLINE'));
|
||||
logdata = logdata.replaceAll('Action', _('Action'));
|
||||
logdata = logdata.replaceAll('Commands before main action', _('Commands before main action'));
|
||||
logdata = logdata.replaceAll('Commands after main action', _('Commands after main action'));
|
||||
logdata = logdata.replaceAll('Restarting interface', _('Restarting interface'));
|
||||
logdata = logdata.replaceAll('At command was sent to modem', _('At command was sent to modem'));
|
||||
logdata = logdata.replaceAll('from script:', _('from script:'));
|
||||
logdata = logdata.replaceAll('USER-SCRIPT:', _('USER-SCRIPT:'));
|
||||
logdata = logdata.replaceAll('Soft modem restart', _('Soft modem restart'));
|
||||
logdata = logdata.replaceAll('Hard modem restart', _('Hard modem restart'));
|
||||
logdata = logdata.replaceAll('Space for user actions', _('Space for user actions'));
|
||||
logdata = logdata.replaceAll('Reboot', _('Reboot'));
|
||||
|
||||
logdata = logdata.replaceAll('January', _('January'));
|
||||
@@ -49,89 +56,89 @@ return L.view.extend({
|
||||
logdata = logdata.replaceAll('Friday', _('Friday'));
|
||||
logdata = logdata.replaceAll('Saturday', _('Saturday'));
|
||||
logdata = logdata.replaceAll('Sunday', _('Sunday'));
|
||||
|
||||
logdata = logdata.replaceAll('Watchdog initialized', _('Watchdog initialized'));
|
||||
logdata = logdata.replaceAll('uptime', _('uptime'));
|
||||
logdata = logdata.replaceAll('hosts', _('hosts'));
|
||||
/* Log file translation */
|
||||
return logdata.trim().split(/\n/).map(line => line.replace(/^<\d+>/, ''));
|
||||
return logdata.trim().split(/\n/).map(function(line){ return line.replace(/^<\d+>/, ''); });
|
||||
},
|
||||
|
||||
setLogTail: function(cArr) {
|
||||
let tailNumVal = document.getElementById('tailValue').value;
|
||||
if(tailNumVal && tailNumVal > 0 && cArr) {
|
||||
return cArr.slice(-tailNumVal);
|
||||
};
|
||||
if (tailNumVal && tailNumVal > 0 && cArr) return cArr.slice(-tailNumVal);
|
||||
return cArr;
|
||||
},
|
||||
|
||||
setLogFilter: function(cArr) {
|
||||
let fPattern = document.getElementById('logFilter').value;
|
||||
|
||||
if(!fPattern) {
|
||||
return cArr;
|
||||
};
|
||||
let fArr = [];
|
||||
let fPattern = document.getElementById('logFilter').value;
|
||||
if (!fPattern) return cArr;
|
||||
try {
|
||||
fArr = cArr.filter(s => new RegExp(fPattern, 'iu').test(s));
|
||||
const re = new RegExp(fPattern, 'iu');
|
||||
const fArr = cArr.filter(function(s){ return re.test(s); });
|
||||
return (fArr.length ? fArr : [ _('No matches...') ]);
|
||||
} catch(err) {
|
||||
if(err.name === 'SyntaxError') {
|
||||
ui.addNotification(null,
|
||||
E('p', {}, _('Wrong regular expression') + ': ' + err.message));
|
||||
if (err.name === 'SyntaxError') {
|
||||
ui.addNotification(null, E('p', {}, _('Wrong regular expression') + ': ' + err.message));
|
||||
return cArr;
|
||||
} else {
|
||||
throw err;
|
||||
};
|
||||
};
|
||||
if(fArr.length === 0) {
|
||||
fArr.push(_('No matches...'));
|
||||
};
|
||||
return fArr;
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
},
|
||||
|
||||
handleClear: function(ev) {
|
||||
if (confirm(_('Clear connection monitor log?')))
|
||||
{
|
||||
var ov = document.getElementById('syslog');
|
||||
ov.value = '';
|
||||
return fs.write('/etc/modem/log.txt', '');
|
||||
}
|
||||
if (confirm(_('Clear connection monitor log?'))) {
|
||||
var ov = document.getElementById('syslog'); if (ov) ov.value = '';
|
||||
var ln = document.getElementById('lineNumbers'); if (ln) ln.value = '';
|
||||
|
||||
fs.write('/etc/modem/log.txt', '');
|
||||
fs.write('/tmp/lite_watchdog_cnt', '');
|
||||
fs.write('/tmp/lite_watchdog_gcnt', '');
|
||||
fs.write('/tmp/lite_watchdog_index', '0');
|
||||
fs.remove('/tmp/lite_watchdog_stage');
|
||||
|
||||
return true;
|
||||
}
|
||||
},
|
||||
|
||||
handleChangeDetail: function(ev) {
|
||||
var x = document.getElementById('log_detail').value;
|
||||
|
||||
return uci.load('watchdog').then(function() {
|
||||
uci.set('watchdog', '@watchdog[0]', 'log', x.toString());
|
||||
uci.save();
|
||||
uci.apply();
|
||||
});
|
||||
|
||||
return uci.load('watchdog').then(function() {
|
||||
uci.set('watchdog', '@watchdog[0]', 'log', x.toString());
|
||||
uci.save(); uci.apply();
|
||||
});
|
||||
},
|
||||
|
||||
handleDownload: function(ev) {
|
||||
return L.resolveDefault(fs.read_direct('/etc/modem/log.txt'), null).then(function (res) {
|
||||
if (res) {
|
||||
var link = E('a', {
|
||||
'download': 'log.txt',
|
||||
'href': URL.createObjectURL(
|
||||
new Blob([ res ], { type: 'text/plain' })),
|
||||
});
|
||||
link.click();
|
||||
URL.revokeObjectURL(link.href);
|
||||
}
|
||||
}).catch(() => {
|
||||
ui.addNotification(null, E('p', {}, _('Download error') + ': ' + err.message));
|
||||
if (res) {
|
||||
var link = E('a', {
|
||||
'download': 'log.txt',
|
||||
'href': URL.createObjectURL(new Blob([ res ], { type: 'text/plain' })),
|
||||
});
|
||||
link.click();
|
||||
URL.revokeObjectURL(link.href);
|
||||
}
|
||||
}).catch(function(err){
|
||||
ui.addNotification(null, E('p', {}, _('Download error') + ': ' + err.message));
|
||||
});
|
||||
},
|
||||
|
||||
handleRestoreLOG: function(ev) {
|
||||
return ui.uploadFile('/etc/modem/log.txt', ev.target)
|
||||
.then(L.bind(function(btn, res) {}, this, ev.target))
|
||||
.catch(function(e) { ui.addNotification(null, E('p', e.message)) })
|
||||
.finally(L.bind(function(btn, input) {}, this, ev.target));
|
||||
},
|
||||
|
||||
load: function() {
|
||||
return fs.read_direct('/etc/modem/log.txt').catch(err => {
|
||||
return fs.read_direct('/etc/modem/log.txt').catch(function(err){
|
||||
ui.addNotification(null, E('p', {}, _('Unable to load log data:') + ' ' + err.message));
|
||||
return '';
|
||||
});
|
||||
},
|
||||
|
||||
render: function(logdata) {
|
||||
let navBtnsTop = '1px';
|
||||
|
||||
/* Log file translation */
|
||||
logdata = logdata.replaceAll('Failed', _('Failed'));
|
||||
logdata = logdata.replaceAll('out of', _('out of'));
|
||||
@@ -139,8 +146,15 @@ return L.view.extend({
|
||||
logdata = logdata.replaceAll('OFFLINE', _('OFFLINE'));
|
||||
logdata = logdata.replaceAll('ONLINE', _('ONLINE'));
|
||||
logdata = logdata.replaceAll('Action', _('Action'));
|
||||
logdata = logdata.replaceAll('Commands before main action', _('Commands before main action'));
|
||||
logdata = logdata.replaceAll('Commands after main action', _('Commands after main action'));
|
||||
logdata = logdata.replaceAll('Restarting interface', _('Restarting interface'));
|
||||
logdata = logdata.replaceAll('At command was sent to modem', _('At command was sent to modem'));
|
||||
logdata = logdata.replaceAll('from script:', _('from script:'));
|
||||
logdata = logdata.replaceAll('USER-SCRIPT:', _('USER-SCRIPT:'));
|
||||
logdata = logdata.replaceAll('Soft modem restart', _('Soft modem restart'));
|
||||
logdata = logdata.replaceAll('Hard modem restart', _('Hard modem restart'));
|
||||
logdata = logdata.replaceAll('Space for user actions', _('Space for user actions'));
|
||||
logdata = logdata.replaceAll('Reboot', _('Reboot'));
|
||||
|
||||
logdata = logdata.replaceAll('January', _('January'));
|
||||
@@ -163,40 +177,121 @@ return L.view.extend({
|
||||
logdata = logdata.replaceAll('Friday', _('Friday'));
|
||||
logdata = logdata.replaceAll('Saturday', _('Saturday'));
|
||||
logdata = logdata.replaceAll('Sunday', _('Sunday'));
|
||||
/* Log file translation */
|
||||
|
||||
logdata = logdata.replaceAll('Watchdog initialized', _('Watchdog initialized'));
|
||||
logdata = logdata.replaceAll('uptime', _('uptime'));
|
||||
logdata = logdata.replaceAll('hosts', _('hosts'));
|
||||
/* Log file translation */
|
||||
|
||||
let loglines = this.parseLogData(logdata);
|
||||
|
||||
uci.load('watchdog').then(function() {
|
||||
var logsettings = (uci.get('watchdog', '@watchdog[0]', 'log'));
|
||||
|
||||
var logsettings = (uci.get('watchdog', '@watchdog[0]', 'log'));
|
||||
switch (logsettings) {
|
||||
case 'all':
|
||||
document.getElementById('log_detail').value = 'all';
|
||||
break;
|
||||
case 'offline':
|
||||
document.getElementById('log_detail').value = 'offline';
|
||||
break;
|
||||
default:
|
||||
}
|
||||
|
||||
case 'all': document.getElementById('log_detail').value = 'all'; break;
|
||||
case 'offline': document.getElementById('log_detail').value = 'offline'; break;
|
||||
default: ;
|
||||
}
|
||||
});
|
||||
|
||||
let logTextarea = E('textarea', {
|
||||
const fontSize = '11px';
|
||||
const lineH = '1.4em';
|
||||
const padTop = '6px', padBottom = '6px';
|
||||
const logHeight = '400px';
|
||||
|
||||
let lineNumbers = E('textarea', {
|
||||
'id': 'lineNumbers',
|
||||
'readonly': 'readonly',
|
||||
'class': 'cbi-input-textarea',
|
||||
'style': [
|
||||
'resize:none',
|
||||
'height:' + logHeight,'max-height:800px','min-height:' + logHeight,
|
||||
'font-size:' + fontSize,'font-family:monospace',
|
||||
'text-align:right','color:#888','background:var(--border-color-soft)',
|
||||
'border:1px solid var(--border-color-medium)','border-right:0',
|
||||
'overflow:hidden',
|
||||
'padding:' + padTop + ' 6px ' + padBottom + ' 0',
|
||||
'line-height:' + lineH,'box-sizing:border-box',
|
||||
'min-width:6ch'
|
||||
].join(';'),
|
||||
'wrap': 'off','spellcheck': 'false',
|
||||
});
|
||||
|
||||
let logTextWrapper = E('div', {
|
||||
'style': 'position:relative; flex:1 1 auto; min-width:0;'
|
||||
});
|
||||
|
||||
let logTextarea = E('textarea', {
|
||||
'id': 'syslog',
|
||||
'class': 'cbi-input-textarea',
|
||||
'style': 'width: 100%; resize: vertical; height:400px; max-height:800px; min-height:400px; min-width:100%; padding: 0 0 0 45px; font-size:12px; font-family: monospace',
|
||||
'style': [
|
||||
'display:block','width:100%','resize:vertical',
|
||||
'height:' + logHeight,'max-height:800px','min-height:' + logHeight,
|
||||
'padding:' + padTop + ' 36px ' + padBottom + ' 8px',
|
||||
'font-size:' + fontSize,'font-family:monospace','white-space:pre',
|
||||
'line-height:' + lineH,'box-sizing:border-box',
|
||||
'overflow:auto'
|
||||
].join(';'),
|
||||
'readonly': 'readonly',
|
||||
'wrap': 'off',
|
||||
'rows': this.tailDefault,
|
||||
'spellcheck': 'false',
|
||||
}, [ loglines.slice(-this.tailDefault).join('\n') ]);
|
||||
|
||||
let overlayNav = E('div', {
|
||||
'style': 'position:absolute; right:6px; top:6px; display:flex; gap:6px; z-index:2;'
|
||||
}, [
|
||||
E('button', {
|
||||
'class': 'btn','title': _('Go to top'),
|
||||
'click': function(ev){
|
||||
logTextarea.scrollTop = 0;
|
||||
ev.target.blur();
|
||||
},
|
||||
'style': 'line-height:1; padding:6px 10px; font-size:16px;'
|
||||
}, '\u25b2'),
|
||||
E('button', {
|
||||
'class': 'btn','title': _('Go to bottom'),
|
||||
'click': function(ev){
|
||||
logTextarea.scrollTop = logTextarea.scrollHeight - logTextarea.clientHeight;
|
||||
ev.target.blur();
|
||||
},
|
||||
'style': 'line-height:1; padding:6px 10px; font-size:16px;'
|
||||
}, '\u25bc'),
|
||||
]);
|
||||
|
||||
logTextWrapper.appendChild(overlayNav);
|
||||
logTextWrapper.appendChild(logTextarea);
|
||||
|
||||
let logContainer = E('div', {
|
||||
'style': 'display:flex; flex-direction:row; gap:0;'
|
||||
}, [ lineNumbers, logTextWrapper ]);
|
||||
|
||||
const setLineNumberWidth = function(lines) {
|
||||
const digits = String(Math.max(1, lines)).length;
|
||||
const ch = Math.max(6, Math.min(10, digits + 2.5));
|
||||
lineNumbers.style.width = ch + 'ch';
|
||||
};
|
||||
|
||||
const updateLineNumbers = function(text) {
|
||||
const lines = text.length ? text.split('\n').length : 1;
|
||||
lineNumbers.value = Array.from({ length: lines }, function(_, i){ return i + 1; }).join('\n');
|
||||
|
||||
const rowsCount = (lines < this.tailDefault) ? this.tailDefault : lines;
|
||||
lineNumbers.rows = rowsCount;
|
||||
logTextarea.rows = rowsCount;
|
||||
|
||||
setLineNumberWidth(lines);
|
||||
|
||||
lineNumbers.style.height = logTextarea.offsetHeight + 'px';
|
||||
lineNumbers.scrollTop = logTextarea.scrollTop;
|
||||
}.bind(this);
|
||||
|
||||
updateLineNumbers(logTextarea.value);
|
||||
lineNumbers.addEventListener('scroll', function(){ logTextarea.scrollTop = lineNumbers.scrollTop; });
|
||||
logTextarea.addEventListener('scroll', function(){ lineNumbers.scrollTop = logTextarea.scrollTop; });
|
||||
|
||||
let tailValue = E('input', {
|
||||
'id': 'tailValue',
|
||||
'name': 'tailValue',
|
||||
'type': 'text',
|
||||
'form': 'logForm',
|
||||
'id': 'tailValue','name': 'tailValue','type': 'text','form': 'logForm',
|
||||
'class': 'cbi-input-text',
|
||||
'style': 'width:4em !important; min-width:4em !important; margin-bottom:0.3em !important',
|
||||
'maxlength': 5,
|
||||
@@ -205,155 +300,97 @@ return L.view.extend({
|
||||
ui.addValidator(tailValue, 'uinteger', true);
|
||||
|
||||
let logFilter = E('input', {
|
||||
'id': 'logFilter',
|
||||
'name': 'logFilter',
|
||||
'type': 'text',
|
||||
'form': 'logForm',
|
||||
'id': 'logFilter','name': 'logFilter','type': 'text','form': 'logForm',
|
||||
'class': 'cbi-input-text',
|
||||
'style': 'min-width:16em !important; margin-right:1em !important; margin-bottom:0.3em !important',
|
||||
'placeholder': _('Entries filter'),
|
||||
'data-tooltip': _('Filter entries using regexp, press [Delete] to delete all text'),
|
||||
'keydown': function(ev) {
|
||||
if (ev.keyCode === 46)
|
||||
{
|
||||
if (ev.keyCode === 46) {
|
||||
var del = document.getElementById('logFilter');
|
||||
if (del)
|
||||
var ov = document.getElementById('logFilter');
|
||||
ov.value = '';
|
||||
document.getElementById('logFilter').focus();
|
||||
}
|
||||
},
|
||||
if (del) { var ov = document.getElementById('logFilter'); ov.value = ''; document.getElementById('logFilter').focus(); }
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
let logFormSubmitBtn = E('input', {
|
||||
'type': 'submit',
|
||||
'form': 'logForm',
|
||||
'class': 'cbi-button cbi-button-add',
|
||||
'type': 'submit','form': 'logForm','class': 'cbi-button cbi-button-add',
|
||||
'style': 'margin-right:1em !important; margin-bottom:0.3em !important;',
|
||||
'value': _('Refresh'),
|
||||
'click': ev => ev.target.blur(),
|
||||
'value': _('Refresh'),'click': function(ev){ ev.target.blur(); },
|
||||
});
|
||||
|
||||
return E([
|
||||
E('h2', { 'id': 'logTitle', 'class': 'fade-in' }, _('Connection monitor activity log')),
|
||||
E('div', { 'class': 'cbi-map-descr' }, _('Connection monitor activity log, which is a conversion of the monitor known from the easyconfig package. More information on the %seko.one.pl forum%s.').format('<a href="https://eko.one.pl/?p=easyconfig" target="_blank">', '</a>')),
|
||||
E('div', { 'class': 'cbi-map-descr' }, _('Connection monitor activity log known from the easyconfig package. More information on the %seko.one.pl forum%s.').format('<a href="https://eko.one.pl/?p=easyconfig" target="_blank">', '</a>')),
|
||||
E('hr'),
|
||||
E('div', { 'class': 'cbi-section-descr fade-in' }),
|
||||
|
||||
E('div', { 'class': 'cbi-section fade-in' },
|
||||
E('div', { 'class': 'cbi-section-node' },
|
||||
E('div', { 'id': 'contentSyslog', 'class': 'cbi-value' }, [
|
||||
E('label', {
|
||||
'class': 'cbi-value-title',
|
||||
'for': 'tailValue',
|
||||
'style': 'margin-bottom:0.3em !important',
|
||||
}, _('Show only the last entries')),
|
||||
E('label', { 'class': 'cbi-value-title', 'for': 'tailValue', 'style': 'margin-bottom:0.3em !important' },
|
||||
_('Show only the last entries')),
|
||||
E('div', { 'class': 'cbi-value-field' }, [
|
||||
tailValue,
|
||||
E('input', {
|
||||
'type': 'button',
|
||||
'form': 'logForm',
|
||||
'class': 'btn cbi-button',
|
||||
'value': 'x',
|
||||
'click': ev => {
|
||||
tailValue.value = null;
|
||||
logFormSubmitBtn.click();
|
||||
ev.target.blur();
|
||||
},
|
||||
'type': 'button','form': 'logForm','class': 'btn cbi-button','value': 'x',
|
||||
'click': function(ev){ tailValue.value = null; logFormSubmitBtn.click(); ev.target.blur(); },
|
||||
'style': 'margin-right:1em !important; margin-bottom:0.3em !important; max-width:4em !important',
|
||||
}),
|
||||
E('form', {
|
||||
'id': 'logForm',
|
||||
'name': 'logForm',
|
||||
'id': 'logForm','name': 'logForm',
|
||||
'style': 'display:inline-block; margin-bottom:0.3em !important',
|
||||
'submit': ui.createHandlerFn(this, function(ev) {
|
||||
ev.preventDefault();
|
||||
let formElems = Array.from(document.forms.logForm.elements);
|
||||
formElems.forEach(e => e.disabled = true);
|
||||
return this.load().then(logdata => {
|
||||
let loglines = this.setLogFilter(this.setLogTail(
|
||||
this.parseLogData(logdata)));
|
||||
logTextarea.rows = (loglines.length < this.tailDefault) ? this.tailDefault : loglines.length;
|
||||
logTextarea.value = loglines.join('\n');
|
||||
}).finally(() => {
|
||||
formElems.forEach(e => e.disabled = false);
|
||||
formElems.forEach(function(e){ e.disabled = true; });
|
||||
return this.load().then(function(logdata){
|
||||
let loglines = this.setLogFilter(this.setLogTail(this.parseLogData(logdata)));
|
||||
const text = loglines.join('\n');
|
||||
logTextarea.value = text;
|
||||
updateLineNumbers(text);
|
||||
logTextarea.scrollTop = logTextarea.scrollHeight - logTextarea.clientHeight;
|
||||
}.bind(this)).finally(function(){
|
||||
formElems.forEach(function(e){ e.disabled = false; });
|
||||
});
|
||||
}),
|
||||
}, E('span', {}, ' ')),
|
||||
]),
|
||||
|
||||
])
|
||||
)
|
||||
),
|
||||
|
||||
E('div', { 'class': 'cbi-value' }, [
|
||||
E('label', {
|
||||
'class': 'cbi-value-title',
|
||||
'for' : 'logFilter',
|
||||
}, _('Type of messages')),
|
||||
E('div', { 'class': 'cbi-value-field' }, [
|
||||
E('select', { 'class': 'cbi-input-select', 'id': 'log_detail', 'change': ui.createHandlerFn(this, 'handleChangeDetail') }, [
|
||||
E('option', { 'value': 'all' }, _('All actions')),
|
||||
E('option', { 'value': 'offline' }, _('Only connection problems'))
|
||||
]),
|
||||
])
|
||||
]),
|
||||
E('div', { 'class': 'cbi-value' }, [
|
||||
E('label', { 'class': 'cbi-value-title', 'for': 'log_detail' }, _('Type of messages')),
|
||||
E('div', { 'class': 'cbi-value-field' }, [
|
||||
E('select', { 'class': 'cbi-input-select', 'id': 'log_detail', 'change': ui.createHandlerFn(this, 'handleChangeDetail') }, [
|
||||
E('option', { 'value': 'all' }, _('All actions')),
|
||||
E('option', { 'value': 'offline' }, _('Only connection problems'))
|
||||
]),
|
||||
])
|
||||
]),
|
||||
|
||||
E('div', { 'class': 'cbi-value' }, [
|
||||
E('label', {
|
||||
'class': 'cbi-value-title',
|
||||
'for' : 'logFilter',
|
||||
}, _('Message filter')),
|
||||
E('div', { 'class': 'cbi-value-field' }, logFilter),
|
||||
]),
|
||||
E('div', { 'class': 'cbi-value' }, [
|
||||
E('label', { 'class': 'cbi-value-title', 'for': 'logFilter' }, _('Message filter')),
|
||||
E('div', { 'class': 'cbi-value-field' }, logFilter),
|
||||
]),
|
||||
|
||||
E('div', { 'class': 'cbi-value' }, [
|
||||
E('label', {
|
||||
'class': 'cbi-value-title',
|
||||
'for' : 'logFormSubmitBtn',
|
||||
}, _('Refresh log')),
|
||||
E('div', { 'class': 'cbi-value-field' }, [
|
||||
logFormSubmitBtn,
|
||||
])
|
||||
]),
|
||||
E('div', { 'class': 'cbi-value' }, [
|
||||
E('label', { 'class': 'cbi-value-title', 'for': 'logFormSubmitBtn' }, _('Refresh log')),
|
||||
E('div', { 'class': 'cbi-value-field' }, [ logFormSubmitBtn ])
|
||||
]),
|
||||
|
||||
E('div', { 'class': 'cbi-section fade-in' },
|
||||
E('div', { 'class': 'cbi-section-node' }, [
|
||||
E('div', { 'style': 'position:fixed' }, [
|
||||
E('button', {
|
||||
'class': 'btn',
|
||||
'style': 'position:relative; display:block; margin:0 !important; left:1px; top:'
|
||||
+ navBtnsTop,
|
||||
'click': ev => {
|
||||
document.getElementById('logTitle').scrollIntoView(true);
|
||||
ev.target.blur();
|
||||
},
|
||||
}, '\u25b2'),
|
||||
E('button', {
|
||||
'class': 'btn',
|
||||
'style': 'position:relative; display:block; margin:0 !important; margin-top:1px !important; left:1px; top:'
|
||||
+ navBtnsTop,
|
||||
'click': ev => {
|
||||
logTextarea.scrollIntoView(false);
|
||||
ev.target.blur();
|
||||
},
|
||||
}, '\u25bc'),
|
||||
]),
|
||||
logTextarea,
|
||||
])
|
||||
E('div', { 'class': 'cbi-section-node' }, [ logContainer ])
|
||||
),
|
||||
E('div', { 'class': 'right' }, [
|
||||
E('button', {
|
||||
'class': 'cbi-button cbi-button-remove',
|
||||
'id': 'clear',
|
||||
'click': ui.createHandlerFn(this, 'handleClear')
|
||||
}, [ _('Clear log') ]),
|
||||
'\xa0\xa0\xa0',
|
||||
E('button', {
|
||||
'class': 'cbi-button cbi-button-apply important',
|
||||
'id': 'download',
|
||||
'click': ui.createHandlerFn(this, 'handleDownload')
|
||||
}, [ _('Download log') ]),
|
||||
]),
|
||||
|
||||
E('div', { 'class': 'right' }, [
|
||||
E('button', { 'class': 'cbi-button cbi-button-remove', 'id': 'clear', 'click': ui.createHandlerFn(this, 'handleClear') }, [ _('Clear log') ]),
|
||||
'\xa0\xa0\xa0',
|
||||
E('button', { 'class': 'cbi-button cbi-button-action important', 'id': 'upload-log', 'click': ui.createHandlerFn(this, 'handleRestoreLOG') }, [ _('Upload log file') ]),
|
||||
'\xa0\xa0\xa0',
|
||||
E('button', { 'class': 'cbi-button cbi-button-apply important', 'id': 'download-log', 'click': ui.createHandlerFn(this, 'handleDownload') }, [ _('Download log') ]),
|
||||
]),
|
||||
]);
|
||||
},
|
||||
|
||||
|
||||
@@ -1,303 +1,305 @@
|
||||
'use strict';
|
||||
'require form';
|
||||
'require fs';
|
||||
'require view';
|
||||
'require ui';
|
||||
'require uci';
|
||||
'require poll';
|
||||
'require dom';
|
||||
'require tools.widgets as widgets';
|
||||
|
||||
/*
|
||||
Copyright 2022-2024 Rafał Wabik - IceG - From eko.one.pl forum
|
||||
|
||||
MIT License
|
||||
*/
|
||||
|
||||
return view.extend({
|
||||
formdata: { watchdog: {} },
|
||||
|
||||
load: function() {
|
||||
return L.resolveDefault(fs.exec_direct('/usr/bin/lite-watchdog-data.sh', [ 'json' ]));
|
||||
uci.load('watchdog')
|
||||
},
|
||||
|
||||
render: function(data) {
|
||||
var m, s, o;
|
||||
|
||||
if (data != null){
|
||||
try {
|
||||
|
||||
var json = JSON.parse(data);
|
||||
|
||||
if (!("error" in json)) {
|
||||
|
||||
var testtime = json.testtime;
|
||||
var min = json.min;
|
||||
var avg = json.avg;
|
||||
var max = json.max;
|
||||
|
||||
if (min != '') {
|
||||
if (!min.includes('ms')) {
|
||||
min = min + " ms";
|
||||
}
|
||||
if (!avg.includes('ms')) {
|
||||
avg = avg + " ms";
|
||||
}
|
||||
if (!max.includes('ms')) {
|
||||
max = max + " ms";
|
||||
}
|
||||
}
|
||||
|
||||
var onoff = json.enable;
|
||||
var dest = json.dest;
|
||||
var delay = parseInt(json.delay)/60;
|
||||
var period = json.period;
|
||||
var count = json.count;
|
||||
var action = json.action;
|
||||
|
||||
pollData: poll.add(function() {
|
||||
return L.resolveDefault(fs.exec_direct('/usr/bin/lite-watchdog-data.sh', [ 'json' ]))
|
||||
.then(function(res) {
|
||||
var json = JSON.parse(res);
|
||||
|
||||
if ( json != null ) {
|
||||
|
||||
var view = document.getElementById("testtime");
|
||||
var view2 = document.getElementById("min");
|
||||
var view3 = document.getElementById("avg");
|
||||
var view4 = document.getElementById("max");
|
||||
|
||||
var min = json.min.toString();
|
||||
|
||||
var ttime = json.testtime.toString();
|
||||
var countz = json.now_count.toString();
|
||||
if (countz != '-1') {
|
||||
var renderHTML = "";
|
||||
renderHTML = ttime + ' (' + _('failed') + ' ' + countz + ' ' + _('out of') + ' ' + count + ')';
|
||||
view.innerHTML = '';
|
||||
view.innerHTML = renderHTML.trim();
|
||||
}
|
||||
|
||||
if (min == '') {
|
||||
view2.textContent = '-';
|
||||
view3.textContent = '-';
|
||||
view4.textContent = '-';
|
||||
}
|
||||
else {
|
||||
var ttime = json.testtime.toString();
|
||||
var countz = json.now_count.toString();
|
||||
var testz = json.now_count.toString();
|
||||
var renderHTML = "";
|
||||
renderHTML = ttime + ' (' + _('failed') + ' ' + countz + ' ' + _('out of') + ' ' + count + ')';
|
||||
view.innerHTML = '';
|
||||
view.innerHTML = renderHTML.trim();
|
||||
|
||||
var renderHTML2 = "";
|
||||
if (!min.includes('ms')) {
|
||||
min = min + " ms";
|
||||
}
|
||||
renderHTML2 = min;
|
||||
view2.innerHTML = '';
|
||||
view2.innerHTML = renderHTML2.trim();
|
||||
|
||||
var renderHTML3 = "";
|
||||
var avg = json.avg.toString();
|
||||
if (!avg.includes('ms')) {
|
||||
avg = avg + " ms";
|
||||
}
|
||||
renderHTML3 = avg;
|
||||
view3.innerHTML = '';
|
||||
view3.innerHTML = renderHTML3.trim();
|
||||
|
||||
var max = json.max.toString();
|
||||
var renderHTML4 = "";
|
||||
if (!max.includes('ms')) {
|
||||
max = max + " ms";
|
||||
}
|
||||
renderHTML4 = max;
|
||||
view4.innerHTML = '';
|
||||
view4.innerHTML = renderHTML4.trim();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
} catch (err) {
|
||||
console.log('Error: ', err.message);
|
||||
}
|
||||
}
|
||||
|
||||
var info = _('Configuration of the connection monitor, which is a conversion of the monitor known from the easyconfig package. More information on the %seko.one.pl forum%s.').format('<a href="https://eko.one.pl/?p=easyconfig" target="_blank">', '</a>');
|
||||
|
||||
m = new form.JSONMap(this.formdata, _('Connection monitor settings'), info);
|
||||
|
||||
s = m.section(form.TypedSection, 'watchdog', '', _(''));
|
||||
s.anonymous = true;
|
||||
|
||||
s.render = L.bind(function(view, section_id) {
|
||||
return E('div', { 'class': 'cbi-section' }, [
|
||||
E('h3', _('Information')),
|
||||
E('table', { 'class': 'table' }, [
|
||||
E('tr', { 'class': 'tr' }, [
|
||||
E('td', { 'class': 'td left', 'width': '33%' }, [ _('Last check')]),
|
||||
E('td', { 'class': 'td left', 'id': 'testtime' }, [ testtime || '-' ]),
|
||||
]),
|
||||
|
||||
E('tr', { 'class': 'tr' }, [
|
||||
E('td', { 'class': 'td left', 'width': '33%' }, [ _('minimum')]),
|
||||
E('td', { 'class': 'td left', 'id': 'min' }, [ min || '-' ]),
|
||||
]),
|
||||
|
||||
E('tr', { 'class': 'tr' }, [
|
||||
E('td', { 'class': 'td left', 'width': '33%' }, [ _('average')]),
|
||||
E('td', { 'class': 'td left', 'id': 'avg' }, [ avg || '-' ]),
|
||||
]),
|
||||
E('tr', { 'class': 'tr' }, [
|
||||
E('td', { 'class': 'td left', 'width': '33%' }, [ _('maximum')]),
|
||||
E('td', { 'class': 'td left', 'id': 'max' }, [ max || '-' ]),
|
||||
]),
|
||||
])
|
||||
]);
|
||||
}, o, this);
|
||||
|
||||
s = m.section(form.TypedSection, 'watchdog', _(''));
|
||||
s.anonymous = true;
|
||||
s.addremove = false;
|
||||
|
||||
if(!("error" in json)) {
|
||||
s.tab('basic', _('Basic settings'));
|
||||
|
||||
o = s.taboption('basic', form.Flag, 'enabled', _('Enabled'),
|
||||
_('Enable a connection monitor.')
|
||||
);
|
||||
o.rmempty = false;
|
||||
o.default = onoff;
|
||||
|
||||
o = s.taboption('basic', form.Value, 'delay', _('System startup delay'),
|
||||
_('[1 - 59] minute(s)')
|
||||
);
|
||||
o.default = delay || "3";
|
||||
o.rmempty = false;
|
||||
o.validate = function(section_id, value) {
|
||||
|
||||
if (value.match(/^[0-9]+(?:\.[0-9]+)?$/) && +value >= 1 && +value < 60)
|
||||
return true;
|
||||
|
||||
return _('Expect a decimal value between one and fifty-nine');
|
||||
};
|
||||
o.datatype = 'range(1, 59)';
|
||||
|
||||
o = s.taboption('basic', form.Value, 'dest', _('Address or name'),
|
||||
_('')
|
||||
);
|
||||
o.default = dest || "google.com";
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('basic', form.Value, 'period', _('Verification period'),
|
||||
_('[1 - 59] minute(s)')
|
||||
);
|
||||
o.default = period || "1";
|
||||
o.rmempty = false;
|
||||
o.validate = function(section_id, value) {
|
||||
|
||||
if (value.match(/^[0-9]+(?:\.[0-9]+)?$/) && +value >= 1 && +value < 60)
|
||||
return true;
|
||||
|
||||
return _('Expect a decimal value between one and fifty-nine');
|
||||
};
|
||||
o.datatype = 'range(1, 59)';
|
||||
|
||||
o = s.taboption('basic', form.Value, 'period_count', _('Number of failed checks'),
|
||||
_('[1 - 59]')
|
||||
);
|
||||
o.default = count || "10";
|
||||
o.rmempty = false;
|
||||
o.validate = function(section_id, value) {
|
||||
|
||||
if (value.match(/^[0-9]+(?:\.[0-9]+)?$/) && +value >= 1 && +value < 60)
|
||||
return true;
|
||||
|
||||
return _('Expect a decimal value between one and fifty-nine');
|
||||
};
|
||||
o.datatype = 'range(1, 59)';
|
||||
|
||||
o = s.taboption('basic', form.ListValue, 'action', _('Action'));
|
||||
o.value('wan', _('Connection restart'));
|
||||
o.value('reboot', _('Reboot'));
|
||||
o.default = action || "wan";
|
||||
|
||||
}
|
||||
|
||||
return m.render();
|
||||
},
|
||||
|
||||
handleWATCHDOGSETup: function(ev) {
|
||||
var map = document.querySelector('#maincontent .cbi-map'),
|
||||
data = this.formdata;
|
||||
|
||||
return dom.callClassMethod(map, 'save').then(function() {
|
||||
var args = [];
|
||||
args.push(data.watchdog.enabled);
|
||||
var ax = args.toString();
|
||||
|
||||
if ( ax == "1" ) {
|
||||
ui.addNotification(null, E('p', _('Changes have been saved. Connection Monitor has started.') ), 'info');
|
||||
}
|
||||
else {
|
||||
ui.addNotification(null, E('p', _('Changes have been saved. Connection Monitor is not running.') ), 'info');
|
||||
}
|
||||
|
||||
var args2 = [];
|
||||
args2.push(data.watchdog.delay);
|
||||
var ax2 = parseInt(args2)*60;
|
||||
|
||||
var args3 = [];
|
||||
args3.push(data.watchdog.dest);
|
||||
var ax3 = args3.toString();
|
||||
|
||||
var args4 = [];
|
||||
args4.push(data.watchdog.period);
|
||||
var ax4 = args4.toString();
|
||||
|
||||
var args5 = [];
|
||||
args5.push(data.watchdog.period_count);
|
||||
var ax5 = args5.toString();
|
||||
|
||||
var args6 = [];
|
||||
args6.push(data.watchdog.action);
|
||||
var ax6 = args6.toString();
|
||||
|
||||
return uci.load('watchdog').then(function() {
|
||||
uci.set('watchdog', '@watchdog[0]', 'enabled', ax.toString());
|
||||
uci.set('watchdog', '@watchdog[0]', 'delay', ax2.toString());
|
||||
uci.set('watchdog', '@watchdog[0]', 'dest', ax3.toString());
|
||||
uci.set('watchdog', '@watchdog[0]', 'period', ax4.toString());
|
||||
uci.set('watchdog', '@watchdog[0]', 'period_count', ax5.toString());
|
||||
uci.set('watchdog', '@watchdog[0]', 'action', ax6.toString());
|
||||
uci.save();
|
||||
uci.apply();
|
||||
fs.exec_direct('/sbin/watchdog2cron.sh');
|
||||
|
||||
if ( ax == "1" ) {
|
||||
fs.exec('sleep 2');
|
||||
fs.exec_direct('/sbin/refresh2cron.sh');
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
addFooter: function() {
|
||||
return E('div', { 'class': 'cbi-page-actions' }, [
|
||||
E('button', {
|
||||
'class': 'cbi-button cbi-button-save',
|
||||
'click': L.ui.createHandlerFn(this, 'handleWATCHDOGSETup')
|
||||
}, [ _('Save') ])
|
||||
]);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
'use strict';
|
||||
'require form';
|
||||
'require fs';
|
||||
'require view';
|
||||
'require ui';
|
||||
'require uci';
|
||||
'require poll';
|
||||
'require dom';
|
||||
'require tools.widgets as widgets';
|
||||
|
||||
/*
|
||||
Copyright 2022-2026 Rafał Wabik - IceG - From eko.one.pl forum
|
||||
|
||||
MIT License
|
||||
*/
|
||||
|
||||
function pop(a, message, severity) {
|
||||
ui.addNotification(a, message, severity)
|
||||
}
|
||||
|
||||
function popTimeout(a, message, timeout, severity) {
|
||||
ui.addTimeLimitedNotification(a, message, timeout, severity)
|
||||
}
|
||||
|
||||
function setSpinner(id) {
|
||||
var el = document.getElementById(id);
|
||||
if (!el) return;
|
||||
el.innerHTML = '';
|
||||
el.appendChild(E('span', { 'class': 'spinning', 'style': 'font-size: inherit;' }, _('Loading...')));
|
||||
}
|
||||
|
||||
function setText(id, value) {
|
||||
var el = document.getElementById(id);
|
||||
if (!el) return;
|
||||
el.innerHTML = '';
|
||||
el.textContent = value || '-';
|
||||
}
|
||||
|
||||
function setHTML(id, value) {
|
||||
var el = document.getElementById(id);
|
||||
if (!el) return;
|
||||
el.innerHTML = '';
|
||||
el.innerHTML = (value || '-').trim();
|
||||
}
|
||||
|
||||
return view.extend({
|
||||
formdata: { watchdog: {} },
|
||||
|
||||
load: function() {
|
||||
return L.resolveDefault(fs.exec_direct('/usr/bin/lite-watchdog-data.sh', [ 'json' ]));
|
||||
uci.load('watchdog')
|
||||
},
|
||||
|
||||
render: function(data) {
|
||||
var m, s, o;
|
||||
|
||||
|
||||
var spinEl = E('span', { 'class': 'spinning', 'style': 'font-size: inherit;' }, _('Loading...'));
|
||||
var testtime = spinEl;
|
||||
var min = E('span', { 'class': 'spinning', 'style': 'font-size: inherit;' }, _('Loading...'));
|
||||
var avg = E('span', { 'class': 'spinning', 'style': 'font-size: inherit;' }, _('Loading...'));
|
||||
var max = E('span', { 'class': 'spinning', 'style': 'font-size: inherit;' }, _('Loading...'));
|
||||
|
||||
var onoff = '1', dest = '', delay = 3, period = '1', count = 10, allcount = 10, action = 'wan';
|
||||
var json = null;
|
||||
|
||||
if (data != null) {
|
||||
try {
|
||||
json = JSON.parse(data);
|
||||
|
||||
if (!("error" in json)) {
|
||||
testtime = json.testtime || '-';
|
||||
min = json.min || '--.---';
|
||||
avg = json.avg || '--.---';
|
||||
max = json.max || '--.---';
|
||||
|
||||
if (min !== '--.---' && !min.includes('ms')) min = min + ' ms';
|
||||
if (avg !== '--.---' && !avg.includes('ms')) avg = avg + ' ms';
|
||||
if (max !== '--.---' && !max.includes('ms')) max = max + ' ms';
|
||||
|
||||
onoff = json.enable;
|
||||
dest = json.dest;
|
||||
var countdest = dest.split(',');
|
||||
delay = parseInt(json.delay) / 60;
|
||||
period = json.period;
|
||||
count = parseInt(json.count);
|
||||
allcount = parseInt(json.count) * countdest.length;
|
||||
action = json.action;
|
||||
}
|
||||
} catch (err) {
|
||||
console.log('Error parsing initial data: ', err.message);
|
||||
}
|
||||
}
|
||||
|
||||
poll.add(function() {
|
||||
setSpinner('testtime');
|
||||
setSpinner('min');
|
||||
setSpinner('avg');
|
||||
setSpinner('max');
|
||||
|
||||
return L.resolveDefault(fs.exec_direct('/usr/bin/lite-watchdog-data.sh', [ 'json' ]))
|
||||
.then(function(res) {
|
||||
if (!res) {
|
||||
setText('testtime', '-');
|
||||
setText('min', '-');
|
||||
setText('avg', '-');
|
||||
setText('max', '-');
|
||||
return;
|
||||
}
|
||||
|
||||
var pjson;
|
||||
try { pjson = JSON.parse(res); } catch(e) { return; }
|
||||
if (!pjson) return;
|
||||
|
||||
var pmin = (pjson.min || '').toString();
|
||||
var pavg = (pjson.avg || '').toString();
|
||||
var pmax = (pjson.max || '').toString();
|
||||
var ttime = (pjson.testtime || '').toString();
|
||||
var countz = (pjson.now_count || '0').toString();
|
||||
|
||||
if (countz === '' || parseInt(countz) < 0) countz = '0';
|
||||
|
||||
if (pmin !== '' && !pmin.includes('ms')) pmin = pmin + ' ms';
|
||||
if (pavg !== '' && !pavg.includes('ms')) pavg = pavg + ' ms';
|
||||
if (pmax !== '' && !pmax.includes('ms')) pmax = pmax + ' ms';
|
||||
|
||||
if (ttime === '' || ttime === '-') {
|
||||
var waitingHTML = '<span class="spinning" style="font-size: inherit;"></span> ' + _('Waiting for ping command execution...');
|
||||
setHTML('testtime', waitingHTML);
|
||||
} else {
|
||||
var timeHTML = ttime + ' (' + _('failed') + ' ' + countz + ' ' + _('out of') + ' ' + count + ')';
|
||||
setHTML('testtime', timeHTML);
|
||||
}
|
||||
|
||||
if (pmin === '' || pmin === '--.--- ms') {
|
||||
setText('min', '-');
|
||||
setText('avg', '-');
|
||||
setText('max', '-');
|
||||
} else {
|
||||
setText('min', pmin);
|
||||
setText('avg', pavg);
|
||||
setText('max', pmax);
|
||||
}
|
||||
});
|
||||
}, 60);
|
||||
|
||||
var info = _('Configuration of the connection monitor known from the easyconfig package. More information on the %seko.one.pl forum%s.').format('<a href="https://eko.one.pl/?p=easyconfig" target="_blank">', '</a>');
|
||||
|
||||
m = new form.JSONMap(this.formdata, _('Connection monitor settings'), info);
|
||||
|
||||
s = m.section(form.TypedSection, 'watchdog', '', _(''));
|
||||
s.anonymous = true;
|
||||
|
||||
s.render = L.bind(function(view, section_id) {
|
||||
return E('div', { 'class': 'cbi-section' }, [
|
||||
E('h3', _('Information')),
|
||||
E('table', { 'class': 'table' }, [
|
||||
E('tr', { 'class': 'tr' }, [
|
||||
E('td', { 'class': 'td left', 'width': '33%' }, [ _('Last check') ]),
|
||||
E('td', { 'class': 'td left', 'id': 'testtime' }, [ testtime ]),
|
||||
]),
|
||||
E('tr', { 'class': 'tr' }, [
|
||||
E('td', { 'class': 'td left', 'width': '33%' }, [ _('minimum') ]),
|
||||
E('td', { 'class': 'td left', 'id': 'min' }, [ min ]),
|
||||
]),
|
||||
E('tr', { 'class': 'tr' }, [
|
||||
E('td', { 'class': 'td left', 'width': '33%' }, [ _('average') ]),
|
||||
E('td', { 'class': 'td left', 'id': 'avg' }, [ avg ]),
|
||||
]),
|
||||
E('tr', { 'class': 'tr' }, [
|
||||
E('td', { 'class': 'td left', 'width': '33%' }, [ _('maximum') ]),
|
||||
E('td', { 'class': 'td left', 'id': 'max' }, [ max ]),
|
||||
]),
|
||||
])
|
||||
]);
|
||||
}, o, this);
|
||||
|
||||
s = m.section(form.TypedSection, 'watchdog', _(''));
|
||||
s.anonymous = true;
|
||||
s.addremove = false;
|
||||
|
||||
if (json && !("error" in json)) {
|
||||
s.tab('basic', _('Basic settings'));
|
||||
|
||||
o = s.taboption('basic', form.Flag, 'enabled', _('Enabled'),
|
||||
_('Enable a connection monitor.')
|
||||
);
|
||||
o.rmempty = false;
|
||||
o.default = onoff;
|
||||
|
||||
o = s.taboption('basic', form.Value, 'delay', _('System startup delay'),
|
||||
_('[1 - 59] minute(s)')
|
||||
);
|
||||
o.default = delay || "3";
|
||||
o.rmempty = false;
|
||||
o.validate = function(section_id, value) {
|
||||
if (value.match(/^[0-9]+(?:\.[0-9]+)?$/) && +value >= 1 && +value < 60)
|
||||
return true;
|
||||
return _('Expect a decimal value between one and fifty-nine');
|
||||
};
|
||||
o.datatype = 'range(1, 59)';
|
||||
|
||||
o = s.taboption('basic', form.DynamicList, 'dest', _('Address or name'), _('Set test address (only one recommended).'));
|
||||
o.default = dest ? dest.split(',') : "google.com";
|
||||
o.rmempty = false;
|
||||
o.datatype = 'host';
|
||||
o.max = 3;
|
||||
|
||||
o.validate = function(section_id, value) {
|
||||
if (Array.isArray(value) && value.length > 3) {
|
||||
return _('You can add up to 2 destinations.');
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
o = s.taboption('basic', form.Value, 'period', _('Verification period'),
|
||||
_('[1 - 59] minute(s)')
|
||||
);
|
||||
o.default = period || "1";
|
||||
o.rmempty = false;
|
||||
o.validate = function(section_id, value) {
|
||||
if (value.match(/^[0-9]+(?:\.[0-9]+)?$/) && +value >= 1 && +value < 60)
|
||||
return true;
|
||||
return _('Expect a decimal value between one and fifty-nine');
|
||||
};
|
||||
o.datatype = 'range(1, 59)';
|
||||
|
||||
o = s.taboption('basic', form.Value, 'period_count', _('Number of failed checks'),
|
||||
_('[1 - 59]')
|
||||
);
|
||||
o.default = count || "10";
|
||||
o.rmempty = false;
|
||||
o.validate = function(section_id, value) {
|
||||
if (value.match(/^[0-9]+(?:\.[0-9]+)?$/) && +value >= 1 && +value < 60)
|
||||
return true;
|
||||
return _('Expect a decimal value between one and fifty-nine');
|
||||
};
|
||||
o.datatype = 'range(1, 59)';
|
||||
|
||||
o = s.taboption('basic', form.ListValue, 'action', _('Action'));
|
||||
o.value('wan', _('Connection restart'));
|
||||
o.value('reboot', _('Reboot'));
|
||||
o.default = action || "wan";
|
||||
}
|
||||
|
||||
return m.render();
|
||||
},
|
||||
|
||||
handleWATCHDOGSETup: function(ev) {
|
||||
var map = document.querySelector('#maincontent .cbi-map'),
|
||||
data = this.formdata;
|
||||
|
||||
return dom.callClassMethod(map, 'save').then(function() {
|
||||
var ax = (data.watchdog.enabled || '').toString();
|
||||
var ax2 = parseInt(data.watchdog.delay || 0) * 60;
|
||||
var ax3 = (data.watchdog.dest || '').toString();
|
||||
var ax4 = (data.watchdog.period || '').toString();
|
||||
var ax5 = (data.watchdog.period_count || '').toString();
|
||||
var ax6 = (data.watchdog.action || '').toString();
|
||||
|
||||
return uci.load('watchdog').then(function() {
|
||||
uci.set('watchdog', '@watchdog[0]', 'enabled', ax);
|
||||
uci.set('watchdog', '@watchdog[0]', 'delay', ax2.toString());
|
||||
uci.set('watchdog', '@watchdog[0]', 'dest', ax3);
|
||||
uci.set('watchdog', '@watchdog[0]', 'period', ax4);
|
||||
uci.set('watchdog', '@watchdog[0]', 'period_count', ax5);
|
||||
uci.set('watchdog', '@watchdog[0]', 'action', ax6);
|
||||
uci.save();
|
||||
uci.apply();
|
||||
|
||||
}).then(function() {
|
||||
return L.resolveDefault(fs.read('/etc/crontabs/root'), '');
|
||||
}).then(function(crontab) {
|
||||
var lines = (crontab || '').replace(/\r\n/g, '\n').split('\n');
|
||||
var filtered = lines.filter(function(l) {
|
||||
return l.trim() !== '' && !l.includes('watchdog');
|
||||
});
|
||||
|
||||
if (ax === '1') {
|
||||
filtered.push('*/' + ax4 + ' * * * * /usr/bin/lite_watchdog.sh ' + ax2 + ' 3 "' + ax3 + '" ' + ax5 + ' ' + ax6);
|
||||
}
|
||||
|
||||
return fs.write('/etc/crontabs/root', filtered.join('\n') + '\n');
|
||||
}).then(function() {
|
||||
return fs.exec('/etc/init.d/cron', ['restart']);
|
||||
}).then(function() {
|
||||
if (ax === '1') {
|
||||
popTimeout(null, E('p', _('Changes have been saved. Connection Monitor has started.')), 5000, 'info');
|
||||
} else {
|
||||
popTimeout(null, E('p', _('Changes have been saved. Connection Monitor is not running.')), 5000, 'info');
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
addFooter: function() {
|
||||
return E('div', { 'class': 'cbi-page-actions' }, [
|
||||
E('button', {
|
||||
'class': 'cbi-button cbi-button-save',
|
||||
'click': L.ui.createHandlerFn(this, 'handleWATCHDOGSETup')
|
||||
}, [ _('Save') ])
|
||||
]);
|
||||
}
|
||||
|
||||
});
|
||||
@@ -0,0 +1,400 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Rafał Wabik (IceG)\n"
|
||||
"Language: cs\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
|
||||
|
||||
msgid "Connection Monitor"
|
||||
msgstr "Monitor připojení"
|
||||
|
||||
msgid "Connection monitor settings"
|
||||
msgstr "Nastavení monitoru připojení"
|
||||
|
||||
msgid "Configuration lite-watchdog"
|
||||
msgstr "Konfigurace lite-watchdog"
|
||||
|
||||
msgid "Configuration panel for lite-watchdog and gui application."
|
||||
msgstr "Panel nastavení pro aplikaci lite-watchdog a uživatelské rozhraní."
|
||||
|
||||
msgid "Interface"
|
||||
msgstr "Rozhraní"
|
||||
|
||||
msgid "Network interface for Internet access."
|
||||
msgstr "Síťové rozhraní pro přístup na Internet."
|
||||
|
||||
msgid "Port for communication with the modem"
|
||||
msgstr "Port pro komunikaci s modemem"
|
||||
|
||||
msgid "Select one of the available ttyUSBX ports."
|
||||
msgstr "Vyberte jeden z dostupných portů ttyUSBX."
|
||||
|
||||
msgid "Please select a port"
|
||||
msgstr "Vyberte port"
|
||||
|
||||
msgid "Perform a modem restart before resuming the connection."
|
||||
msgstr "Proveďte restartování modemu před obnovením připojení."
|
||||
|
||||
msgid "Restart modem with AT command"
|
||||
msgstr "Restartování modemu příkazem AT"
|
||||
|
||||
msgid "AT command to restart the modem."
|
||||
msgstr "Příkaz AT pro restartování modemu."
|
||||
|
||||
msgid "AT command"
|
||||
msgstr "Příkaz AT"
|
||||
|
||||
msgid "total checks"
|
||||
msgstr "celkem kontrol"
|
||||
|
||||
msgid "Configuration of the connection monitor known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Konfigurace monitoru připojení známého z balíčku easyconfig. Více informací na %sfóru eko.one.pl%s."
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "fórum eko.one.pl"
|
||||
|
||||
msgid "Enable a connection monitor."
|
||||
msgstr "Povolte monitor připojení."
|
||||
|
||||
msgid "System startup delay"
|
||||
msgstr "Zpoždění při spuštění systému"
|
||||
|
||||
msgid "[1 - 59] minute(s)"
|
||||
msgstr "[1 - 59] minut(-y)"
|
||||
|
||||
msgid "Expect a decimal value between one and fifty-nine"
|
||||
msgstr "Očekávána je desítková hodnota mezi jednou a padesáti devíti"
|
||||
|
||||
msgid "Address or name"
|
||||
msgstr "Adresa nebo název"
|
||||
|
||||
msgid "Verification period"
|
||||
msgstr "Období ověření"
|
||||
|
||||
msgid "Number of failed checks"
|
||||
msgstr "Počet neúspěšných kontrol"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Akce"
|
||||
|
||||
msgid "Connection restart"
|
||||
msgstr "Restartování připojení k internetu"
|
||||
|
||||
msgid "Modem restart"
|
||||
msgstr "Restartování modemu"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Restartování zařízení"
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor has started."
|
||||
msgstr "Změny byly uloženy. Monitor připojení byl spuštěn."
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor is not running."
|
||||
msgstr "Změny byly uloženy. Monitor připojení není spuštěn."
|
||||
|
||||
msgid "Last check"
|
||||
msgstr "Poslední kontrola"
|
||||
|
||||
msgid "minimum"
|
||||
msgstr "minimum"
|
||||
|
||||
msgid "average"
|
||||
msgstr "průměr"
|
||||
|
||||
msgid "maximum"
|
||||
msgstr "maximum"
|
||||
|
||||
msgid "Information"
|
||||
msgstr "Informace"
|
||||
|
||||
msgid "Basic settings"
|
||||
msgstr "Základní nastavení"
|
||||
|
||||
msgid "failed"
|
||||
msgstr "neúspěšných"
|
||||
|
||||
msgid "Failed"
|
||||
msgstr "Neúspěšných"
|
||||
|
||||
msgid "out of"
|
||||
msgstr "z"
|
||||
|
||||
msgid "Activity log"
|
||||
msgstr "Protokol aktivit"
|
||||
|
||||
msgid "Wrong regular expression"
|
||||
msgstr "Nesprávný regulární výraz"
|
||||
|
||||
msgid "No matches..."
|
||||
msgstr "Žádné výsledky..."
|
||||
|
||||
msgid "Clear connection monitor log?"
|
||||
msgstr "Vymazat protokol monitoru připojení?"
|
||||
|
||||
msgid "Download error"
|
||||
msgstr "Chyba stahování"
|
||||
|
||||
msgid "Unable to load log data:"
|
||||
msgstr "Nelze načíst data protokolu:"
|
||||
|
||||
msgid "Entries filter"
|
||||
msgstr "Filtr položek"
|
||||
|
||||
msgid "Filter entries using regexp, press [Delete] to delete all text"
|
||||
msgstr "Filtrujte položky pomocí regulárního výrazu, stiskněte [Delete] pro smazání veškerého textu"
|
||||
|
||||
msgid "Refresh"
|
||||
msgstr "Obnovit"
|
||||
|
||||
msgid "Connection monitor activity log"
|
||||
msgstr "Protokol aktivit monitoru připojení"
|
||||
|
||||
msgid "Connection monitor activity log known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Protokol aktivit monitoru připojení známý z balíčku easyconfig. Více informací na %sfóru eko.one.pl%s."
|
||||
|
||||
msgid "Show only the last entries"
|
||||
msgstr "Zobrazit pouze poslední položky"
|
||||
|
||||
msgid "Message filter"
|
||||
msgstr "Filtr zpráv"
|
||||
|
||||
msgid "Refresh log"
|
||||
msgstr "Obnovit protokol"
|
||||
|
||||
msgid "Clear log"
|
||||
msgstr "Vymazat protokol"
|
||||
|
||||
msgid "Download log"
|
||||
msgstr "Stáhnout protokol"
|
||||
|
||||
msgid "Upload log file"
|
||||
msgstr "Nahrát soubor protokolu"
|
||||
|
||||
msgid "Type of messages"
|
||||
msgstr "Typ zpráv"
|
||||
|
||||
msgid "All actions"
|
||||
msgstr "Všechny akce"
|
||||
|
||||
msgid "Only connection problems"
|
||||
msgstr "Pouze problémy s připojením"
|
||||
|
||||
msgid "LED settings"
|
||||
msgstr "Nastavení LED"
|
||||
|
||||
msgid "The LED shows the internet connection status."
|
||||
msgstr "LED indikátor zobrazuje stav připojení na Internet."
|
||||
|
||||
msgid "Select the status LED."
|
||||
msgstr "Vyberte LED indikátor stavu."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Upravit uživatelský skript"
|
||||
|
||||
msgid "Before executing the action, system calls a script in which user can place his own commands."
|
||||
msgstr "Před provedením akce systém zavolá skript, do kterého může uživatel umístit své vlastní příkazy."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Upravit uživatelský skript"
|
||||
|
||||
msgid "User script"
|
||||
msgstr "Uživatelský skript"
|
||||
|
||||
msgid "User-defined commands."
|
||||
msgstr "Příkazy definované uživatelem."
|
||||
|
||||
msgid "Contents have been saved"
|
||||
msgstr "Obsah byl uložen"
|
||||
|
||||
msgid "Unable to save the contents"
|
||||
msgstr "Obsah nelze uložit"
|
||||
|
||||
msgid "Unable to read the contents"
|
||||
msgstr "Obsah nelze načíst"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "Stav"
|
||||
|
||||
msgid "ONLINE"
|
||||
msgstr "ONLINE"
|
||||
|
||||
msgid "OFFLINE"
|
||||
msgstr "OFFLINE"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Akce"
|
||||
|
||||
msgid "Restarting interface"
|
||||
msgstr "Restartování připojení k internetu"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Restartování zařízení"
|
||||
|
||||
msgid "At command was sent to modem"
|
||||
msgstr "Příkaz AT byl poslán do modemu"
|
||||
|
||||
msgid "January"
|
||||
msgstr "Leden"
|
||||
|
||||
msgid "February"
|
||||
msgstr "Únor"
|
||||
|
||||
msgid "March"
|
||||
msgstr "Březen"
|
||||
|
||||
msgid "April"
|
||||
msgstr "Duben"
|
||||
|
||||
msgid "May"
|
||||
msgstr "Květen"
|
||||
|
||||
msgid "June"
|
||||
msgstr "Červen"
|
||||
|
||||
msgid "July"
|
||||
msgstr "Červenec"
|
||||
|
||||
msgid "August"
|
||||
msgstr "Srpen"
|
||||
|
||||
msgid "September"
|
||||
msgstr "Září"
|
||||
|
||||
msgid "October"
|
||||
msgstr "Říjen"
|
||||
|
||||
msgid "November"
|
||||
msgstr "Listopad"
|
||||
|
||||
msgid "December"
|
||||
msgstr "Prosinec"
|
||||
|
||||
msgid "Monday"
|
||||
msgstr "Pondělí"
|
||||
|
||||
msgid "Tuesday"
|
||||
msgstr "Úterý"
|
||||
|
||||
msgid "Wednesday"
|
||||
msgstr "Středa"
|
||||
|
||||
msgid "Thursday"
|
||||
msgstr "Čtvrtek"
|
||||
|
||||
msgid "Friday"
|
||||
msgstr "Pátek"
|
||||
|
||||
msgid "Saturday"
|
||||
msgstr "Sobota"
|
||||
|
||||
msgid "Sunday"
|
||||
msgstr "Neděle"
|
||||
|
||||
msgid "User Script Wizard"
|
||||
msgstr "Průvodce uživatelským skriptem"
|
||||
|
||||
msgid "Hint: You do not need to save anything in the settings. Select the actions and click the Generate button."
|
||||
msgstr "Tip: Nemusíte nic ukládat v nastavení. Vyberte akce a klikněte na tlačítko Generovat."
|
||||
|
||||
msgid "modem restart"
|
||||
msgstr "restartování modemu"
|
||||
|
||||
msgid "reboot"
|
||||
msgstr "restartování zařízení"
|
||||
|
||||
msgid "Restart modem if restarting the interfaces did not restore internet access."
|
||||
msgstr "Restartujte modem, pokud restartování rozhraní neobnovilo přístup na Internet."
|
||||
|
||||
msgid "Router reboot if restarting the interfaces did not restore internet access."
|
||||
msgstr "Pokud restartování rozhraní neobnovilo přístup na Internet, restartujte router."
|
||||
|
||||
msgid "Actions in script"
|
||||
msgstr "Akce ve skriptu"
|
||||
|
||||
msgid "Modem actions"
|
||||
msgstr "Akce s modemem"
|
||||
|
||||
msgid "Restart modem using at commands"
|
||||
msgstr "Restartujte modem pomocí příkazů AT."
|
||||
|
||||
msgid "effect depends on modem"
|
||||
msgstr "efekt závisí na modemu"
|
||||
|
||||
msgid "Some at commands can also restart the router."
|
||||
msgstr "Některé příkazy AT mohou také restartovat router."
|
||||
|
||||
msgid "soft restart"
|
||||
msgstr "měkký restart"
|
||||
|
||||
msgid "hard restart"
|
||||
msgstr "tvrdý restart"
|
||||
|
||||
msgid "Restart modem via GPIO."
|
||||
msgstr "Restartování modemu přes GPIO."
|
||||
|
||||
msgid "Restart modem using GPIO"
|
||||
msgstr "Restartujte modem pomocí GPIO"
|
||||
|
||||
msgid "Select the GPIO related to 4G/5G modem."
|
||||
msgstr "Vyberte GPIO související s modemem 4G/5G."
|
||||
|
||||
msgid "Generate a script"
|
||||
msgstr "Vygenerujte skript"
|
||||
|
||||
msgid "Generate user script"
|
||||
msgstr "Vygenerujte uživatelský skript"
|
||||
|
||||
msgid "Generate and save the prepared script."
|
||||
msgstr "Vygenerujte a uložte připravený skript."
|
||||
|
||||
msgid "User can add his script or generate a new one from the selection options."
|
||||
msgstr "Uživatel může přidat svůj skript nebo vygenerovat nový z možností výběru."
|
||||
|
||||
msgid "Set test address (only one recommended)."
|
||||
msgstr "Nastavte testovací adresu (doporučuje se pouze jedna)."
|
||||
|
||||
msgid "The available options depend on the previously defined main action (interface or router restart)."
|
||||
msgstr "Dostupné možnosti závisí na dříve definované hlavní akci (restart rozhraní nebo routeru)."
|
||||
|
||||
msgid "user code"
|
||||
msgstr "uživatelský kód"
|
||||
|
||||
msgid "Add custom commands before restarting the device."
|
||||
msgstr "Před restartováním zařízení přidejte vlastní příkazy."
|
||||
|
||||
msgid "from script:"
|
||||
msgstr "ze skriptu:"
|
||||
|
||||
msgid "USER-SCRIPT:"
|
||||
msgstr "Uživatelský skript:"
|
||||
|
||||
msgid "Soft modem restart"
|
||||
msgstr "Měkký restart modemu"
|
||||
|
||||
msgid "Hard modem restart"
|
||||
msgstr "Tvrdý restart modemu"
|
||||
|
||||
msgid "Space for user actions"
|
||||
msgstr "Prostor pro uživatelské akce"
|
||||
|
||||
msgid "Commands before main action"
|
||||
msgstr "Příkazy před hlavní akcí"
|
||||
|
||||
msgid "Commands after main action"
|
||||
msgstr "Příkazy po hlavní akci"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "Načítání..."
|
||||
|
||||
msgid "Waiting for ping command execution..."
|
||||
msgstr "Čekání na provedení příkazu ping..."
|
||||
|
||||
msgid "Watchdog initialized"
|
||||
msgstr "Watchdog inicializován"
|
||||
|
||||
msgid "uptime"
|
||||
msgstr "doba provozu"
|
||||
|
||||
msgid "hosts"
|
||||
msgstr "hostitele"
|
||||
@@ -0,0 +1,400 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Rafał Wabik (IceG)\n"
|
||||
"Language: da\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
|
||||
msgid "Connection Monitor"
|
||||
msgstr "Forbindelsesmonitor"
|
||||
|
||||
msgid "Connection monitor settings"
|
||||
msgstr "Forbindelsesoritorindstillinger"
|
||||
|
||||
msgid "Configuration lite-watchdog"
|
||||
msgstr "Konfiguration af lite-watchdog"
|
||||
|
||||
msgid "Configuration panel for lite-watchdog and gui application."
|
||||
msgstr "Konfigurationspanel til lite-watchdog og GUI-applikation."
|
||||
|
||||
msgid "Interface"
|
||||
msgstr "Grænseflade"
|
||||
|
||||
msgid "Network interface for Internet access."
|
||||
msgstr "Netværksgraenseflade til internetadgang."
|
||||
|
||||
msgid "Port for communication with the modem"
|
||||
msgstr "Port til kommunikation med modemet"
|
||||
|
||||
msgid "Select one of the available ttyUSBX ports."
|
||||
msgstr "Vælg en af de tilgængelige ttyUSBX-porte."
|
||||
|
||||
msgid "Please select a port"
|
||||
msgstr "Vælg venligst en port"
|
||||
|
||||
msgid "Perform a modem restart before resuming the connection."
|
||||
msgstr "Udfør en modemgenstart inden forbindelsen genoptages."
|
||||
|
||||
msgid "Restart modem with AT command"
|
||||
msgstr "Genstart modem med AT-kommando"
|
||||
|
||||
msgid "AT command to restart the modem."
|
||||
msgstr "AT-kommando til at genstarte modemet."
|
||||
|
||||
msgid "AT command"
|
||||
msgstr "AT-kommando"
|
||||
|
||||
msgid "total checks"
|
||||
msgstr "i alt kontroler"
|
||||
|
||||
msgid "Configuration of the connection monitor known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Konfiguration af forbindelsesmonitoren kendt fra easyconfig-pakken. Mere information på %seko.one.pl-forummet%s."
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "eko.one.pl-forum"
|
||||
|
||||
msgid "Enable a connection monitor."
|
||||
msgstr "Aktivér en forbindelsesmonitor."
|
||||
|
||||
msgid "System startup delay"
|
||||
msgstr "Systemstartsforsinkelses"
|
||||
|
||||
msgid "[1 - 59] minute(s)"
|
||||
msgstr "[1 - 59] minut(ter)"
|
||||
|
||||
msgid "Expect a decimal value between one and fifty-nine"
|
||||
msgstr "Forvent en decimalværdi mellem en og nioghalvtreds"
|
||||
|
||||
msgid "Address or name"
|
||||
msgstr "Adresse eller navn"
|
||||
|
||||
msgid "Verification period"
|
||||
msgstr "Verifikationsperiode"
|
||||
|
||||
msgid "Number of failed checks"
|
||||
msgstr "Antal mislykkede kontroler"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Handling"
|
||||
|
||||
msgid "Connection restart"
|
||||
msgstr "Forbindelsesgenstart"
|
||||
|
||||
msgid "Modem restart"
|
||||
msgstr "Modemgenstart"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Genstart enhed"
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor has started."
|
||||
msgstr "Ændringer er blevet gemt. Forbindelsesmonitor er startet."
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor is not running."
|
||||
msgstr "Ændringer er blevet gemt. Forbindelsesmonitor kører ikke."
|
||||
|
||||
msgid "Last check"
|
||||
msgstr "Sidste kontrol"
|
||||
|
||||
msgid "minimum"
|
||||
msgstr "minimum"
|
||||
|
||||
msgid "average"
|
||||
msgstr "gennemsnit"
|
||||
|
||||
msgid "maximum"
|
||||
msgstr "maksimum"
|
||||
|
||||
msgid "Information"
|
||||
msgstr "Information"
|
||||
|
||||
msgid "Basic settings"
|
||||
msgstr "Grundlæggende indstillinger"
|
||||
|
||||
msgid "failed"
|
||||
msgstr "mislykkede"
|
||||
|
||||
msgid "Failed"
|
||||
msgstr "Mislykkede"
|
||||
|
||||
msgid "out of"
|
||||
msgstr "ud af"
|
||||
|
||||
msgid "Activity log"
|
||||
msgstr "Aktivitetslog"
|
||||
|
||||
msgid "Wrong regular expression"
|
||||
msgstr "Forkert regulært udtryk"
|
||||
|
||||
msgid "No matches..."
|
||||
msgstr "Ingen resultater..."
|
||||
|
||||
msgid "Clear connection monitor log?"
|
||||
msgstr "Ryd forbindelsesmonitorlog?"
|
||||
|
||||
msgid "Download error"
|
||||
msgstr "Downloadfejl"
|
||||
|
||||
msgid "Unable to load log data:"
|
||||
msgstr "Kan ikke indlæse logdata:"
|
||||
|
||||
msgid "Entries filter"
|
||||
msgstr "Poster filter"
|
||||
|
||||
msgid "Filter entries using regexp, press [Delete] to delete all text"
|
||||
msgstr "Filtrer poster ved hjælp af regexp, tryk [Delete] for at slette al tekst"
|
||||
|
||||
msgid "Refresh"
|
||||
msgstr "Opdater"
|
||||
|
||||
msgid "Connection monitor activity log"
|
||||
msgstr "Forbindelsesoritoraktivitetslog"
|
||||
|
||||
msgid "Connection monitor activity log known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Forbindelsesoritoraktivitetslog kendt fra easyconfig-pakken. Mere information på %seko.one.pl-forummet%s."
|
||||
|
||||
msgid "Show only the last entries"
|
||||
msgstr "Vis kun de seneste poster"
|
||||
|
||||
msgid "Message filter"
|
||||
msgstr "Beskedfilter"
|
||||
|
||||
msgid "Refresh log"
|
||||
msgstr "Opdater log"
|
||||
|
||||
msgid "Clear log"
|
||||
msgstr "Ryd log"
|
||||
|
||||
msgid "Download log"
|
||||
msgstr "Download log"
|
||||
|
||||
msgid "Upload log file"
|
||||
msgstr "Upload logfil"
|
||||
|
||||
msgid "Type of messages"
|
||||
msgstr "Type af beskeder"
|
||||
|
||||
msgid "All actions"
|
||||
msgstr "Alle handlinger"
|
||||
|
||||
msgid "Only connection problems"
|
||||
msgstr "Kun forbindelsesproblemer"
|
||||
|
||||
msgid "LED settings"
|
||||
msgstr "LED-indstillinger"
|
||||
|
||||
msgid "The LED shows the internet connection status."
|
||||
msgstr "LED'en viser status for internetforbindelsen."
|
||||
|
||||
msgid "Select the status LED."
|
||||
msgstr "Vælg status-LED'en."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Rediger brugerskript"
|
||||
|
||||
msgid "Before executing the action, system calls a script in which user can place his own commands."
|
||||
msgstr "Før udførelse af handlingen kalder systemet et script, hvor brugeren kan placere sine egne kommandoer."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Rediger brugerskript"
|
||||
|
||||
msgid "User script"
|
||||
msgstr "Brugerskript"
|
||||
|
||||
msgid "User-defined commands."
|
||||
msgstr "Brugerdefinerede kommandoer."
|
||||
|
||||
msgid "Contents have been saved"
|
||||
msgstr "Indhold er blevet gemt"
|
||||
|
||||
msgid "Unable to save the contents"
|
||||
msgstr "Kan ikke gemme indholdet"
|
||||
|
||||
msgid "Unable to read the contents"
|
||||
msgstr "Kan ikke læse indholdet"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
msgid "ONLINE"
|
||||
msgstr "ONLINE"
|
||||
|
||||
msgid "OFFLINE"
|
||||
msgstr "OFFLINE"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Handling"
|
||||
|
||||
msgid "Restarting interface"
|
||||
msgstr "Genstart forbindelse til internettet"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Genstart enhed"
|
||||
|
||||
msgid "At command was sent to modem"
|
||||
msgstr "AT-kommando blev sendt til modem"
|
||||
|
||||
msgid "January"
|
||||
msgstr "Januar"
|
||||
|
||||
msgid "February"
|
||||
msgstr "Februar"
|
||||
|
||||
msgid "March"
|
||||
msgstr "Marts"
|
||||
|
||||
msgid "April"
|
||||
msgstr "April"
|
||||
|
||||
msgid "May"
|
||||
msgstr "Maj"
|
||||
|
||||
msgid "June"
|
||||
msgstr "Juni"
|
||||
|
||||
msgid "July"
|
||||
msgstr "Juli"
|
||||
|
||||
msgid "August"
|
||||
msgstr "August"
|
||||
|
||||
msgid "September"
|
||||
msgstr "September"
|
||||
|
||||
msgid "October"
|
||||
msgstr "Oktober"
|
||||
|
||||
msgid "November"
|
||||
msgstr "November"
|
||||
|
||||
msgid "December"
|
||||
msgstr "December"
|
||||
|
||||
msgid "Monday"
|
||||
msgstr "Mandag"
|
||||
|
||||
msgid "Tuesday"
|
||||
msgstr "Tirsdag"
|
||||
|
||||
msgid "Wednesday"
|
||||
msgstr "Onsdag"
|
||||
|
||||
msgid "Thursday"
|
||||
msgstr "Torsdag"
|
||||
|
||||
msgid "Friday"
|
||||
msgstr "Fredag"
|
||||
|
||||
msgid "Saturday"
|
||||
msgstr "Lørdag"
|
||||
|
||||
msgid "Sunday"
|
||||
msgstr "Søndag"
|
||||
|
||||
msgid "User Script Wizard"
|
||||
msgstr "Brugerskript-guide"
|
||||
|
||||
msgid "Hint: You do not need to save anything in the settings. Select the actions and click the Generate button."
|
||||
msgstr "Tip: Du behøver ikke at gemme noget i indstillingerne. Vælg handlingerne og klik på Generer-knappen."
|
||||
|
||||
msgid "modem restart"
|
||||
msgstr "modemgenstart"
|
||||
|
||||
msgid "reboot"
|
||||
msgstr "enhedsgenstart"
|
||||
|
||||
msgid "Restart modem if restarting the interfaces did not restore internet access."
|
||||
msgstr "Genstart modemet, hvis genstart af grænsefladerne ikke gendannede internetadgangen."
|
||||
|
||||
msgid "Router reboot if restarting the interfaces did not restore internet access."
|
||||
msgstr "Hvis genstart af grænsefladerne ikke gendannede internetadgangen, skal du genstarte routeren."
|
||||
|
||||
msgid "Actions in script"
|
||||
msgstr "Handlinger i script"
|
||||
|
||||
msgid "Modem actions"
|
||||
msgstr "Modemhandlinger"
|
||||
|
||||
msgid "Restart modem using at commands"
|
||||
msgstr "Genstart modem ved hjælp af AT-kommandoer."
|
||||
|
||||
msgid "effect depends on modem"
|
||||
msgstr "effekten afhænger af modemet"
|
||||
|
||||
msgid "Some at commands can also restart the router."
|
||||
msgstr "Nogle AT-kommandoer kan også genstarte routeren."
|
||||
|
||||
msgid "soft restart"
|
||||
msgstr "blød genstart"
|
||||
|
||||
msgid "hard restart"
|
||||
msgstr "hård genstart"
|
||||
|
||||
msgid "Restart modem via GPIO."
|
||||
msgstr "Genstart modem via GPIO."
|
||||
|
||||
msgid "Restart modem using GPIO"
|
||||
msgstr "Genstart modem ved hjælp af GPIO"
|
||||
|
||||
msgid "Select the GPIO related to 4G/5G modem."
|
||||
msgstr "Vælg GPIO'en relateret til 4G/5G-modem."
|
||||
|
||||
msgid "Generate a script"
|
||||
msgstr "Generer et script"
|
||||
|
||||
msgid "Generate user script"
|
||||
msgstr "Generer brugerskript"
|
||||
|
||||
msgid "Generate and save the prepared script."
|
||||
msgstr "Generer og gem det forberedte script."
|
||||
|
||||
msgid "User can add his script or generate a new one from the selection options."
|
||||
msgstr "Brugeren kan tilføje sit script eller generere et nyt fra valgmulighederne."
|
||||
|
||||
msgid "Set test address (only one recommended)."
|
||||
msgstr "Indstil testadresse (kun én anbefalet)."
|
||||
|
||||
msgid "The available options depend on the previously defined main action (interface or router restart)."
|
||||
msgstr "De tilgængelige muligheder afhænger af den tidligere definerede hovedhandling (grænseflade- eller routergenstart)."
|
||||
|
||||
msgid "user code"
|
||||
msgstr "brugerkode"
|
||||
|
||||
msgid "Add custom commands before restarting the device."
|
||||
msgstr "Tilføj brugerdefinerede kommandoer før enhedsgenstart."
|
||||
|
||||
msgid "from script:"
|
||||
msgstr "fra script:"
|
||||
|
||||
msgid "USER-SCRIPT:"
|
||||
msgstr "BRUGERSKRIPT:"
|
||||
|
||||
msgid "Soft modem restart"
|
||||
msgstr "Blød modemgenstart"
|
||||
|
||||
msgid "Hard modem restart"
|
||||
msgstr "Hård modemgenstart"
|
||||
|
||||
msgid "Space for user actions"
|
||||
msgstr "Plads til brugerhandlinger"
|
||||
|
||||
msgid "Commands before main action"
|
||||
msgstr "Kommandoer før hovedhandling"
|
||||
|
||||
msgid "Commands after main action"
|
||||
msgstr "Kommandoer efter hovedhandling"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "Indlæser..."
|
||||
|
||||
msgid "Waiting for ping command execution..."
|
||||
msgstr "Venter på udførelse af ping-kommando..."
|
||||
|
||||
msgid "Watchdog initialized"
|
||||
msgstr "Watchdog initialiseret"
|
||||
|
||||
msgid "uptime"
|
||||
msgstr "opetid"
|
||||
|
||||
msgid "hosts"
|
||||
msgstr "værtsmaskiner"
|
||||
@@ -0,0 +1,400 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Rafał Wabik (IceG)\n"
|
||||
"Language: de\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
|
||||
msgid "Connection Monitor"
|
||||
msgstr "Verbindungsmonitor"
|
||||
|
||||
msgid "Connection monitor settings"
|
||||
msgstr "Verbindungsmonitor-Einstellungen"
|
||||
|
||||
msgid "Configuration lite-watchdog"
|
||||
msgstr "Konfiguration lite-watchdog"
|
||||
|
||||
msgid "Configuration panel for lite-watchdog and gui application."
|
||||
msgstr "Konfigurationspanel für lite-watchdog und GUI-Anwendung."
|
||||
|
||||
msgid "Interface"
|
||||
msgstr "Schnittstelle"
|
||||
|
||||
msgid "Network interface for Internet access."
|
||||
msgstr "Netzwerkschnittstelle für den Internetzugang."
|
||||
|
||||
msgid "Port for communication with the modem"
|
||||
msgstr "Port für die Kommunikation mit dem Modem"
|
||||
|
||||
msgid "Select one of the available ttyUSBX ports."
|
||||
msgstr "Wählen Sie einen der verfügbaren ttyUSBX-Ports."
|
||||
|
||||
msgid "Please select a port"
|
||||
msgstr "Bitte wählen Sie einen Port"
|
||||
|
||||
msgid "Perform a modem restart before resuming the connection."
|
||||
msgstr "Starten Sie das Modem neu, bevor die Verbindung wieder aufgenommen wird."
|
||||
|
||||
msgid "Restart modem with AT command"
|
||||
msgstr "Modem mit AT-Befehl neu starten"
|
||||
|
||||
msgid "AT command to restart the modem."
|
||||
msgstr "AT-Befehl zum Neustart des Modems."
|
||||
|
||||
msgid "AT command"
|
||||
msgstr "AT-Befehl"
|
||||
|
||||
msgid "total checks"
|
||||
msgstr "Prüfungen insgesamt"
|
||||
|
||||
msgid "Configuration of the connection monitor known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Konfiguration des Verbindungsmonitors aus dem easyconfig-Paket. Weitere Informationen im %sForum eko.one.pl%s."
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "Forum eko.one.pl"
|
||||
|
||||
msgid "Enable a connection monitor."
|
||||
msgstr "Verbindungsmonitor aktivieren."
|
||||
|
||||
msgid "System startup delay"
|
||||
msgstr "Systemstartverzögerung"
|
||||
|
||||
msgid "[1 - 59] minute(s)"
|
||||
msgstr "[1 - 59] Minute(n)"
|
||||
|
||||
msgid "Expect a decimal value between one and fifty-nine"
|
||||
msgstr "Es wird ein Dezimalwert zwischen eins und neunundfünfzig erwartet"
|
||||
|
||||
msgid "Address or name"
|
||||
msgstr "Adresse oder Name"
|
||||
|
||||
msgid "Verification period"
|
||||
msgstr "Überprüfungszeitraum"
|
||||
|
||||
msgid "Number of failed checks"
|
||||
msgstr "Anzahl fehlgeschlagener Prüfungen"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Aktion"
|
||||
|
||||
msgid "Connection restart"
|
||||
msgstr "Verbindungsneustart"
|
||||
|
||||
msgid "Modem restart"
|
||||
msgstr "Modem-Neustart"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Neustart"
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor has started."
|
||||
msgstr "Änderungen wurden gespeichert. Verbindungsmonitor wurde gestartet."
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor is not running."
|
||||
msgstr "Änderungen wurden gespeichert. Verbindungsmonitor läuft nicht."
|
||||
|
||||
msgid "Last check"
|
||||
msgstr "Letzte Prüfung"
|
||||
|
||||
msgid "minimum"
|
||||
msgstr "Minimum"
|
||||
|
||||
msgid "average"
|
||||
msgstr "Durchschnitt"
|
||||
|
||||
msgid "maximum"
|
||||
msgstr "Maximum"
|
||||
|
||||
msgid "Information"
|
||||
msgstr "Informationen"
|
||||
|
||||
msgid "Basic settings"
|
||||
msgstr "Grundeinstellungen"
|
||||
|
||||
msgid "failed"
|
||||
msgstr "fehlgeschlagen"
|
||||
|
||||
msgid "Failed"
|
||||
msgstr "Fehlgeschlagen"
|
||||
|
||||
msgid "out of"
|
||||
msgstr "von"
|
||||
|
||||
msgid "Activity log"
|
||||
msgstr "Aktivitätsprotokoll"
|
||||
|
||||
msgid "Wrong regular expression"
|
||||
msgstr "Falscher regulärer Ausdruck"
|
||||
|
||||
msgid "No matches..."
|
||||
msgstr "Keine Treffer..."
|
||||
|
||||
msgid "Clear connection monitor log?"
|
||||
msgstr "Verbindungsmonitor-Protokoll löschen?"
|
||||
|
||||
msgid "Download error"
|
||||
msgstr "Downloadfehler"
|
||||
|
||||
msgid "Unable to load log data:"
|
||||
msgstr "Protokolldaten können nicht geladen werden:"
|
||||
|
||||
msgid "Entries filter"
|
||||
msgstr "Eintragsfilter"
|
||||
|
||||
msgid "Filter entries using regexp, press [Delete] to delete all text"
|
||||
msgstr "Einträge mit regulärem Ausdruck filtern, [Delete] drücken um Text zu löschen"
|
||||
|
||||
msgid "Refresh"
|
||||
msgstr "Aktualisieren"
|
||||
|
||||
msgid "Connection monitor activity log"
|
||||
msgstr "Aktivitätsprotokoll des Verbindungsmonitors"
|
||||
|
||||
msgid "Connection monitor activity log known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Aktivitätsprotokoll des Verbindungsmonitors aus dem easyconfig-Paket. Weitere Informationen im %sForum eko.one.pl%s."
|
||||
|
||||
msgid "Show only the last entries"
|
||||
msgstr "Nur die letzten Einträge anzeigen"
|
||||
|
||||
msgid "Message filter"
|
||||
msgstr "Nachrichtenfilter"
|
||||
|
||||
msgid "Refresh log"
|
||||
msgstr "Protokoll aktualisieren"
|
||||
|
||||
msgid "Clear log"
|
||||
msgstr "Protokoll löschen"
|
||||
|
||||
msgid "Download log"
|
||||
msgstr "Protokoll herunterladen"
|
||||
|
||||
msgid "Upload log file"
|
||||
msgstr "Protokolldatei hochladen"
|
||||
|
||||
msgid "Type of messages"
|
||||
msgstr "Nachrichtentyp"
|
||||
|
||||
msgid "All actions"
|
||||
msgstr "Alle Aktionen"
|
||||
|
||||
msgid "Only connection problems"
|
||||
msgstr "Nur Verbindungsprobleme"
|
||||
|
||||
msgid "LED settings"
|
||||
msgstr "LED-Einstellungen"
|
||||
|
||||
msgid "The LED shows the internet connection status."
|
||||
msgstr "Die LED zeigt den Internetverbindungsstatus an."
|
||||
|
||||
msgid "Select the status LED."
|
||||
msgstr "Status-LED auswählen."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Benutzerskript bearbeiten"
|
||||
|
||||
msgid "Before executing the action, system calls a script in which user can place his own commands."
|
||||
msgstr "Vor der Ausführung der Aktion ruft das System ein Skript auf, in dem der Benutzer eigene Befehle platzieren kann."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Benutzerskript bearbeiten"
|
||||
|
||||
msgid "User script"
|
||||
msgstr "Benutzerskript"
|
||||
|
||||
msgid "User-defined commands."
|
||||
msgstr "Benutzerdefinierte Befehle."
|
||||
|
||||
msgid "Contents have been saved"
|
||||
msgstr "Inhalt wurde gespeichert"
|
||||
|
||||
msgid "Unable to save the contents"
|
||||
msgstr "Inhalt kann nicht gespeichert werden"
|
||||
|
||||
msgid "Unable to read the contents"
|
||||
msgstr "Inhalt kann nicht gelesen werden"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
msgid "ONLINE"
|
||||
msgstr "ONLINE"
|
||||
|
||||
msgid "OFFLINE"
|
||||
msgstr "OFFLINE"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Aktion"
|
||||
|
||||
msgid "Restarting interface"
|
||||
msgstr "Schnittstelle wird neu gestartet"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Neustart"
|
||||
|
||||
msgid "At command was sent to modem"
|
||||
msgstr "AT-Befehl wurde an das Modem gesendet"
|
||||
|
||||
msgid "January"
|
||||
msgstr "Januar"
|
||||
|
||||
msgid "February"
|
||||
msgstr "Februar"
|
||||
|
||||
msgid "March"
|
||||
msgstr "März"
|
||||
|
||||
msgid "April"
|
||||
msgstr "April"
|
||||
|
||||
msgid "May"
|
||||
msgstr "Mai"
|
||||
|
||||
msgid "June"
|
||||
msgstr "Juni"
|
||||
|
||||
msgid "July"
|
||||
msgstr "Juli"
|
||||
|
||||
msgid "August"
|
||||
msgstr "August"
|
||||
|
||||
msgid "September"
|
||||
msgstr "September"
|
||||
|
||||
msgid "October"
|
||||
msgstr "Oktober"
|
||||
|
||||
msgid "November"
|
||||
msgstr "November"
|
||||
|
||||
msgid "December"
|
||||
msgstr "Dezember"
|
||||
|
||||
msgid "Monday"
|
||||
msgstr "Montag"
|
||||
|
||||
msgid "Tuesday"
|
||||
msgstr "Dienstag"
|
||||
|
||||
msgid "Wednesday"
|
||||
msgstr "Mittwoch"
|
||||
|
||||
msgid "Thursday"
|
||||
msgstr "Donnerstag"
|
||||
|
||||
msgid "Friday"
|
||||
msgstr "Freitag"
|
||||
|
||||
msgid "Saturday"
|
||||
msgstr "Samstag"
|
||||
|
||||
msgid "Sunday"
|
||||
msgstr "Sonntag"
|
||||
|
||||
msgid "User Script Wizard"
|
||||
msgstr "Benutzerskript-Assistent"
|
||||
|
||||
msgid "Hint: You do not need to save anything in the settings. Select the actions and click the Generate button."
|
||||
msgstr "Hinweis: Sie müssen nichts in den Einstellungen speichern. Wählen Sie die Aktionen aus und klicken Sie auf die Schaltfläche Generieren."
|
||||
|
||||
msgid "modem restart"
|
||||
msgstr "Modem-Neustart"
|
||||
|
||||
msgid "reboot"
|
||||
msgstr "Neustart"
|
||||
|
||||
msgid "Restart modem if restarting the interfaces did not restore internet access."
|
||||
msgstr "Starten Sie das Modem neu, wenn der Neustart der Schnittstellen keinen Internetzugang wiederhergestellt hat."
|
||||
|
||||
msgid "Router reboot if restarting the interfaces did not restore internet access."
|
||||
msgstr "Router neu starten, wenn der Neustart der Schnittstellen keinen Internetzugang wiederhergestellt hat."
|
||||
|
||||
msgid "Actions in script"
|
||||
msgstr "Aktionen im Skript"
|
||||
|
||||
msgid "Modem actions"
|
||||
msgstr "Modemaktionen"
|
||||
|
||||
msgid "Restart modem using at commands"
|
||||
msgstr "Modem mit AT-Befehlen neu starten"
|
||||
|
||||
msgid "effect depends on modem"
|
||||
msgstr "Wirkung hängt vom Modem ab"
|
||||
|
||||
msgid "Some at commands can also restart the router."
|
||||
msgstr "Einige AT-Befehle können auch den Router neu starten."
|
||||
|
||||
msgid "soft restart"
|
||||
msgstr "Soft-Neustart"
|
||||
|
||||
msgid "hard restart"
|
||||
msgstr "Hard-Neustart"
|
||||
|
||||
msgid "Restart modem via GPIO."
|
||||
msgstr "Modem über GPIO neu starten."
|
||||
|
||||
msgid "Restart modem using GPIO"
|
||||
msgstr "Modem über GPIO neu starten"
|
||||
|
||||
msgid "Select the GPIO related to 4G/5G modem."
|
||||
msgstr "GPIO für das 4G/5G-Modem auswählen."
|
||||
|
||||
msgid "Generate a script"
|
||||
msgstr "Skript generieren"
|
||||
|
||||
msgid "Generate user script"
|
||||
msgstr "Benutzerskript generieren"
|
||||
|
||||
msgid "Generate and save the prepared script."
|
||||
msgstr "Vorbereitetes Skript generieren und speichern."
|
||||
|
||||
msgid "User can add his script or generate a new one from the selection options."
|
||||
msgstr "Der Benutzer kann sein Skript hinzufügen oder ein neues aus den Auswahloptionen generieren."
|
||||
|
||||
msgid "Set test address (only one recommended)."
|
||||
msgstr "Testadresse festlegen (nur eine empfohlen)."
|
||||
|
||||
msgid "The available options depend on the previously defined main action (interface or router restart)."
|
||||
msgstr "Die verfügbaren Optionen hängen von der zuvor definierten Hauptaktion (Schnittstellen- oder Router-Neustart) ab."
|
||||
|
||||
msgid "user code"
|
||||
msgstr "Benutzercode"
|
||||
|
||||
msgid "Add custom commands before restarting the device."
|
||||
msgstr "Benutzerdefinierte Befehle hinzufügen, bevor das Gerät neu gestartet wird."
|
||||
|
||||
msgid "from script:"
|
||||
msgstr "aus Skript:"
|
||||
|
||||
msgid "USER-SCRIPT:"
|
||||
msgstr "BENUTZERSKRIPT:"
|
||||
|
||||
msgid "Soft modem restart"
|
||||
msgstr "Soft-Modem-Neustart"
|
||||
|
||||
msgid "Hard modem restart"
|
||||
msgstr "Hard-Modem-Neustart"
|
||||
|
||||
msgid "Space for user actions"
|
||||
msgstr "Platz für Benutzeraktionen"
|
||||
|
||||
msgid "Commands before main action"
|
||||
msgstr "Befehle vor der Hauptaktion"
|
||||
|
||||
msgid "Commands after main action"
|
||||
msgstr "Befehle nach der Hauptaktion"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "Wird geladen..."
|
||||
|
||||
msgid "Waiting for ping command execution..."
|
||||
msgstr "Warte auf Ausführung des Ping-Befehls..."
|
||||
|
||||
msgid "Watchdog initialized"
|
||||
msgstr "Watchdog initialisiert"
|
||||
|
||||
msgid "uptime"
|
||||
msgstr "Betriebszeit"
|
||||
|
||||
msgid "hosts"
|
||||
msgstr "Hosts"
|
||||
@@ -0,0 +1,391 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Rafał Wabik (IceG)\n"
|
||||
"Language: es\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
|
||||
msgid "Connection Monitor"
|
||||
msgstr "Monitor de conexión"
|
||||
|
||||
msgid "Connection monitor settings"
|
||||
msgstr "Ajustes del monitor de conexión"
|
||||
|
||||
msgid "Configuration lite-watchdog"
|
||||
msgstr "Configuración de lite-watchdog"
|
||||
|
||||
msgid "Configuration panel for lite-watchdog and gui application."
|
||||
msgstr "Panel de configuración para lite-watchdog y la aplicación GUI."
|
||||
|
||||
msgid "Interface"
|
||||
msgstr "Interfaz"
|
||||
|
||||
msgid "Network interface for Internet access."
|
||||
msgstr "Interfaz de red para el acceso a Internet."
|
||||
|
||||
msgid "Port for communication with the modem"
|
||||
msgstr "Puerto para comunicación con el módem"
|
||||
|
||||
msgid "Select one of the available ttyUSBX ports."
|
||||
msgstr "Seleccione uno de los puertos ttyUSBX disponibles."
|
||||
|
||||
msgid "Please select a port"
|
||||
msgstr "Por favor, seleccione un puerto"
|
||||
|
||||
msgid "Perform a modem restart before resuming the connection."
|
||||
msgstr "Realizar un reinicio del módem antes de reanudar la conexión."
|
||||
|
||||
msgid "Restart modem with AT command"
|
||||
msgstr "Reiniciar módem con comando AT"
|
||||
|
||||
msgid "AT command to restart the modem."
|
||||
msgstr "Comando AT para reiniciar el módem."
|
||||
|
||||
msgid "AT command"
|
||||
msgstr "Comando AT"
|
||||
|
||||
msgid "total checks"
|
||||
msgstr "total de comprobaciones"
|
||||
|
||||
msgid "Configuration of the connection monitor known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Configuración del monitor de conexión conocido del paquete easyconfig. Más información en el %sforo eko.one.pl%s."
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "foro eko.one.pl"
|
||||
|
||||
msgid "Enable a connection monitor."
|
||||
msgstr "Activar monitor de conexión."
|
||||
|
||||
msgid "System startup delay"
|
||||
msgstr "Retraso de inicio del sistema"
|
||||
|
||||
msgid "[1 - 59] minute(s)"
|
||||
msgstr "[1 - 59] minuto(s)"
|
||||
|
||||
msgid "Expect a decimal value between one and fifty-nine"
|
||||
msgstr "Se espera un valor decimal entre uno y cincuenta y nueve"
|
||||
|
||||
msgid "Address or name"
|
||||
msgstr "Dirección o nombre"
|
||||
|
||||
msgid "Verification period"
|
||||
msgstr "Periodo de verificación"
|
||||
|
||||
msgid "Number of failed checks"
|
||||
msgstr "Número de comprobaciones fallidas"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Acción"
|
||||
|
||||
msgid "Connection restart"
|
||||
msgstr "Reiniciar conexión"
|
||||
|
||||
msgid "Modem restart"
|
||||
msgstr "Reiniciar módem"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Reiniciar dispositivo"
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor has started."
|
||||
msgstr "Los cambios han sido guardados. El Monitor de conexión se ha iniciado."
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor is not running."
|
||||
msgstr "Los cambios han sido guardados. El Monitor de conexión no está en ejecución."
|
||||
|
||||
msgid "Last check"
|
||||
msgstr "Última comprobación"
|
||||
|
||||
msgid "minimum"
|
||||
msgstr "mínimo"
|
||||
|
||||
msgid "average"
|
||||
msgstr "promedio"
|
||||
|
||||
msgid "maximum"
|
||||
msgstr "máximo"
|
||||
|
||||
msgid "Information"
|
||||
msgstr "Información"
|
||||
|
||||
msgid "Basic settings"
|
||||
msgstr "Ajustes básicos"
|
||||
|
||||
msgid "failed"
|
||||
msgstr "fallido"
|
||||
|
||||
msgid "Failed"
|
||||
msgstr "Fallido"
|
||||
|
||||
msgid "out of"
|
||||
msgstr "de"
|
||||
|
||||
msgid "Activity log"
|
||||
msgstr "Registro de actividad"
|
||||
|
||||
msgid "Wrong regular expression"
|
||||
msgstr "Expresión regular incorrecta"
|
||||
|
||||
msgid "No matches..."
|
||||
msgstr "Sin coincidencias..."
|
||||
|
||||
msgid "Clear connection monitor log?"
|
||||
msgstr "¿Borrar el registro del monitor de conexión?"
|
||||
|
||||
msgid "Download error"
|
||||
msgstr "Error de descarga"
|
||||
|
||||
msgid "Unable to load log data:"
|
||||
msgstr "No se pudo cargar los datos del registro:"
|
||||
|
||||
msgid "Entries filter"
|
||||
msgstr "Filtro de entradas"
|
||||
|
||||
msgid "Filter entries using regexp, press [Delete] to delete all text"
|
||||
msgstr "Filtrar entradas usando regexp, presione [Suprimir] para borrar todo el texto"
|
||||
|
||||
msgid "Refresh"
|
||||
msgstr "Actualizar"
|
||||
|
||||
msgid "Connection monitor activity log"
|
||||
msgstr "Registro de actividad del monitor de conexión"
|
||||
|
||||
msgid "Connection monitor activity log known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Registro de actividad del monitor de conexión conocido del paquete easyconfig. Más información en el %sforo eko.one.pl%s."
|
||||
|
||||
msgid "Show only the last entries"
|
||||
msgstr "Mostrar solo las últimas entradas"
|
||||
|
||||
msgid "Message filter"
|
||||
msgstr "Filtro de mensajes"
|
||||
|
||||
msgid "Refresh log"
|
||||
msgstr "Actualizar registro"
|
||||
|
||||
msgid "Clear log"
|
||||
msgstr "Borrar registro"
|
||||
|
||||
msgid "Download log"
|
||||
msgstr "Descargar registro"
|
||||
|
||||
msgid "Upload log file"
|
||||
msgstr "Subir archivo de registro"
|
||||
|
||||
msgid "Type of messages"
|
||||
msgstr "Tipo de mensajes"
|
||||
|
||||
msgid "All actions"
|
||||
msgstr "Todas las acciones"
|
||||
|
||||
msgid "Only connection problems"
|
||||
msgstr "Solo problemas de conexión"
|
||||
|
||||
msgid "LED settings"
|
||||
msgstr "Ajustes de LED"
|
||||
|
||||
msgid "The LED shows the internet connection status."
|
||||
msgstr "El LED muestra el estado de la conexión a Internet."
|
||||
|
||||
msgid "Select the status LED."
|
||||
msgstr "Seleccione el LED de estado."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Editar script de usuario"
|
||||
|
||||
msgid "Before executing the action, system calls a script in which user can place his own commands."
|
||||
msgstr "Antes de ejecutar la acción, el sistema llama a un script donde el usuario puede colocar sus propios comandos."
|
||||
|
||||
msgid "User script"
|
||||
msgstr "Script de usuario"
|
||||
|
||||
msgid "User-defined commands."
|
||||
msgstr "Comandos definidos por el usuario."
|
||||
|
||||
msgid "Contents have been saved"
|
||||
msgstr "El contenido ha sido guardado"
|
||||
|
||||
msgid "Unable to save the contents"
|
||||
msgstr "No se pudo guardar el contenido"
|
||||
|
||||
msgid "Unable to read the contents"
|
||||
msgstr "No se pudo leer el contenido"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "Estado"
|
||||
|
||||
msgid "ONLINE"
|
||||
msgstr "EN LÍNEA"
|
||||
|
||||
msgid "OFFLINE"
|
||||
msgstr "DESCONECTADO"
|
||||
|
||||
msgid "Restarting interface"
|
||||
msgstr "Reiniciando interfaz"
|
||||
|
||||
msgid "At command was sent to modem"
|
||||
msgstr "Se envió el comando AT al módem"
|
||||
|
||||
msgid "January"
|
||||
msgstr "Enero"
|
||||
|
||||
msgid "February"
|
||||
msgstr "Febrero"
|
||||
|
||||
msgid "March"
|
||||
msgstr "Marzo"
|
||||
|
||||
msgid "April"
|
||||
msgstr "Abril"
|
||||
|
||||
msgid "May"
|
||||
msgstr "Mayo"
|
||||
|
||||
msgid "June"
|
||||
msgstr "Junio"
|
||||
|
||||
msgid "July"
|
||||
msgstr "Julio"
|
||||
|
||||
msgid "August"
|
||||
msgstr "Agosto"
|
||||
|
||||
msgid "September"
|
||||
msgstr "Septiembre"
|
||||
|
||||
msgid "October"
|
||||
msgstr "Octubre"
|
||||
|
||||
msgid "November"
|
||||
msgstr "Noviembre"
|
||||
|
||||
msgid "December"
|
||||
msgstr "Diciembre"
|
||||
|
||||
msgid "Monday"
|
||||
msgstr "Lunes"
|
||||
|
||||
msgid "Tuesday"
|
||||
msgstr "Martes"
|
||||
|
||||
msgid "Wednesday"
|
||||
msgstr "Miércoles"
|
||||
|
||||
msgid "Thursday"
|
||||
msgstr "Jueves"
|
||||
|
||||
msgid "Friday"
|
||||
msgstr "Viernes"
|
||||
|
||||
msgid "Saturday"
|
||||
msgstr "Sábado"
|
||||
|
||||
msgid "Sunday"
|
||||
msgstr "Domingo"
|
||||
|
||||
msgid "User Script Wizard"
|
||||
msgstr "Asistente de script de usuario"
|
||||
|
||||
msgid "Hint: You do not need to save anything in the settings. Select the actions and click the Generate button."
|
||||
msgstr "Sugerencia: No necesita guardar nada en los ajustes. Seleccione las acciones y haga clic en el botón Generar."
|
||||
|
||||
msgid "modem restart"
|
||||
msgstr "reinicio de módem"
|
||||
|
||||
msgid "reboot"
|
||||
msgstr "reinicio de dispositivo"
|
||||
|
||||
msgid "Restart modem if restarting the interfaces did not restore internet access."
|
||||
msgstr "Reiniciar el módem si el reinicio de las interfaces no restauró el acceso a Internet."
|
||||
|
||||
msgid "Router reboot if restarting the interfaces did not restore internet access."
|
||||
msgstr "Reiniciar el router si el reinicio de las interfaces no restauró el acceso a Internet."
|
||||
|
||||
msgid "Actions in script"
|
||||
msgstr "Acciones en el script"
|
||||
|
||||
msgid "Modem actions"
|
||||
msgstr "Acciones del módem"
|
||||
|
||||
msgid "Restart modem using at commands"
|
||||
msgstr "Reiniciar módem usando comandos AT"
|
||||
|
||||
msgid "effect depends on modem"
|
||||
msgstr "el efecto depende del módem"
|
||||
|
||||
msgid "Some at commands can also restart the router."
|
||||
msgstr "Algunos comandos AT también pueden reiniciar el router."
|
||||
|
||||
msgid "soft restart"
|
||||
msgstr "reinicio suave (soft)"
|
||||
|
||||
msgid "hard restart"
|
||||
msgstr "reinicio forzado (hard)"
|
||||
|
||||
msgid "Restart modem via GPIO."
|
||||
msgstr "Reiniciar módem mediante GPIO."
|
||||
|
||||
msgid "Restart modem using GPIO"
|
||||
msgstr "Reiniciar módem usando GPIO"
|
||||
|
||||
msgid "Select the GPIO related to 4G/5G modem."
|
||||
msgstr "Seleccione el GPIO relacionado con el módem 4G/5G."
|
||||
|
||||
msgid "Generate a script"
|
||||
msgstr "Generar un script"
|
||||
|
||||
msgid "Generate user script"
|
||||
msgstr "Generar script de usuario"
|
||||
|
||||
msgid "Generate and save the prepared script."
|
||||
msgstr "Generar y guardar el script preparado."
|
||||
|
||||
msgid "User can add his script or generate a new one from the selection options."
|
||||
msgstr "El usuario puede añadir su propio script o generar uno nuevo desde las opciones de selección."
|
||||
|
||||
msgid "Set test address (only one recommended)."
|
||||
msgstr "Establecer dirección de prueba (se recomienda solo una)."
|
||||
|
||||
msgid "The available options depend on the previously defined main action (interface or router restart)."
|
||||
msgstr "Las opciones disponibles dependen de la acción principal definida previamente (reinicio de interfaz o de router)."
|
||||
|
||||
msgid "user code"
|
||||
msgstr "código de usuario"
|
||||
|
||||
msgid "Add custom commands before restarting the device."
|
||||
msgstr "Añadir comandos personalizados antes de reiniciar el dispositivo."
|
||||
|
||||
msgid "from script:"
|
||||
msgstr "del script:"
|
||||
|
||||
msgid "USER-SCRIPT:"
|
||||
msgstr "SCRIPT-USUARIO:"
|
||||
|
||||
msgid "Soft modem restart"
|
||||
msgstr "Reinicio de módem suave"
|
||||
|
||||
msgid "Hard modem restart"
|
||||
msgstr "Reinicio de módem forzado"
|
||||
|
||||
msgid "Space for user actions"
|
||||
msgstr "Espacio para acciones del usuario"
|
||||
|
||||
msgid "Commands before main action"
|
||||
msgstr "Comandos antes de la acción principal"
|
||||
|
||||
msgid "Commands after main action"
|
||||
msgstr "Comandos después de la acción principal"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "Cargando..."
|
||||
|
||||
msgid "Waiting for ping command execution..."
|
||||
msgstr "Esperando la ejecución del comando ping..."
|
||||
|
||||
msgid "Watchdog initialized"
|
||||
msgstr "Watchdog inicializado"
|
||||
|
||||
msgid "uptime"
|
||||
msgstr "tiempo de actividad"
|
||||
|
||||
msgid "hosts"
|
||||
msgstr "hosts"
|
||||
@@ -0,0 +1,400 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Rafał Wabik (IceG)\n"
|
||||
"Language: fr\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
|
||||
msgid "Connection Monitor"
|
||||
msgstr "Moniteur de connexion"
|
||||
|
||||
msgid "Connection monitor settings"
|
||||
msgstr "Paramètres du moniteur de connexion"
|
||||
|
||||
msgid "Configuration lite-watchdog"
|
||||
msgstr "Configuration lite-watchdog"
|
||||
|
||||
msgid "Configuration panel for lite-watchdog and gui application."
|
||||
msgstr "Panneau de configuration pour l'application lite-watchdog et l'interface graphique."
|
||||
|
||||
msgid "Interface"
|
||||
msgstr "Interface"
|
||||
|
||||
msgid "Network interface for Internet access."
|
||||
msgstr "Interface réseau pour l'accès à Internet."
|
||||
|
||||
msgid "Port for communication with the modem"
|
||||
msgstr "Port de communication avec le modem"
|
||||
|
||||
msgid "Select one of the available ttyUSBX ports."
|
||||
msgstr "Sélectionnez l'un des ports ttyUSBX disponibles."
|
||||
|
||||
msgid "Please select a port"
|
||||
msgstr "Veuillez sélectionner un port"
|
||||
|
||||
msgid "Perform a modem restart before resuming the connection."
|
||||
msgstr "Effectuez un redémarrage du modem avant de reprendre la connexion."
|
||||
|
||||
msgid "Restart modem with AT command"
|
||||
msgstr "Redémarrer le modem avec la commande AT"
|
||||
|
||||
msgid "AT command to restart the modem."
|
||||
msgstr "Commande AT pour redémarrer le modem."
|
||||
|
||||
msgid "AT command"
|
||||
msgstr "Commande AT"
|
||||
|
||||
msgid "total checks"
|
||||
msgstr "vérifications totales"
|
||||
|
||||
msgid "Configuration of the connection monitor known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Configuration du moniteur de connexion du paquet easyconfig. Plus d'informations sur le %sforum eko.one.pl%s."
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "forum eko.one.pl"
|
||||
|
||||
msgid "Enable a connection monitor."
|
||||
msgstr "Activer un moniteur de connexion."
|
||||
|
||||
msgid "System startup delay"
|
||||
msgstr "Délai de démarrage du système"
|
||||
|
||||
msgid "[1 - 59] minute(s)"
|
||||
msgstr "[1 - 59] minute(s)"
|
||||
|
||||
msgid "Expect a decimal value between one and fifty-nine"
|
||||
msgstr "Une valeur décimale entre un et cinquante-neuf est attendue"
|
||||
|
||||
msgid "Address or name"
|
||||
msgstr "Adresse ou nom"
|
||||
|
||||
msgid "Verification period"
|
||||
msgstr "Période de vérification"
|
||||
|
||||
msgid "Number of failed checks"
|
||||
msgstr "Nombre de vérifications échouées"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Action"
|
||||
|
||||
msgid "Connection restart"
|
||||
msgstr "Redémarrage de la connexion"
|
||||
|
||||
msgid "Modem restart"
|
||||
msgstr "Redémarrage du modem"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Redémarrage"
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor has started."
|
||||
msgstr "Les modifications ont été enregistrées. Le moniteur de connexion a démarré."
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor is not running."
|
||||
msgstr "Les modifications ont été enregistrées. Le moniteur de connexion ne fonctionne pas."
|
||||
|
||||
msgid "Last check"
|
||||
msgstr "Dernière vérification"
|
||||
|
||||
msgid "minimum"
|
||||
msgstr "minimum"
|
||||
|
||||
msgid "average"
|
||||
msgstr "moyenne"
|
||||
|
||||
msgid "maximum"
|
||||
msgstr "maximum"
|
||||
|
||||
msgid "Information"
|
||||
msgstr "Informations"
|
||||
|
||||
msgid "Basic settings"
|
||||
msgstr "Paramètres de base"
|
||||
|
||||
msgid "failed"
|
||||
msgstr "échoué"
|
||||
|
||||
msgid "Failed"
|
||||
msgstr "Échoué"
|
||||
|
||||
msgid "out of"
|
||||
msgstr "sur"
|
||||
|
||||
msgid "Activity log"
|
||||
msgstr "Journal d'activité"
|
||||
|
||||
msgid "Wrong regular expression"
|
||||
msgstr "Expression régulière incorrecte"
|
||||
|
||||
msgid "No matches..."
|
||||
msgstr "Aucun résultat..."
|
||||
|
||||
msgid "Clear connection monitor log?"
|
||||
msgstr "Effacer le journal du moniteur de connexion ?"
|
||||
|
||||
msgid "Download error"
|
||||
msgstr "Erreur de téléchargement"
|
||||
|
||||
msgid "Unable to load log data:"
|
||||
msgstr "Impossible de charger les données du journal :"
|
||||
|
||||
msgid "Entries filter"
|
||||
msgstr "Filtre des entrées"
|
||||
|
||||
msgid "Filter entries using regexp, press [Delete] to delete all text"
|
||||
msgstr "Filtrer les entrées avec une expression régulière, appuyer sur [Suppr] pour supprimer tout le texte"
|
||||
|
||||
msgid "Refresh"
|
||||
msgstr "Actualiser"
|
||||
|
||||
msgid "Connection monitor activity log"
|
||||
msgstr "Journal d'activité du moniteur de connexion"
|
||||
|
||||
msgid "Connection monitor activity log known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Journal d'activité du moniteur de connexion du paquet easyconfig. Plus d'informations sur le %sforum eko.one.pl%s."
|
||||
|
||||
msgid "Show only the last entries"
|
||||
msgstr "Afficher uniquement les dernières entrées"
|
||||
|
||||
msgid "Message filter"
|
||||
msgstr "Filtre de messages"
|
||||
|
||||
msgid "Refresh log"
|
||||
msgstr "Actualiser le journal"
|
||||
|
||||
msgid "Clear log"
|
||||
msgstr "Effacer le journal"
|
||||
|
||||
msgid "Download log"
|
||||
msgstr "Télécharger le journal"
|
||||
|
||||
msgid "Upload log file"
|
||||
msgstr "Téléverser le fichier journal"
|
||||
|
||||
msgid "Type of messages"
|
||||
msgstr "Type de messages"
|
||||
|
||||
msgid "All actions"
|
||||
msgstr "Toutes les actions"
|
||||
|
||||
msgid "Only connection problems"
|
||||
msgstr "Problèmes de connexion uniquement"
|
||||
|
||||
msgid "LED settings"
|
||||
msgstr "Paramètres LED"
|
||||
|
||||
msgid "The LED shows the internet connection status."
|
||||
msgstr "La LED indique l'état de la connexion Internet."
|
||||
|
||||
msgid "Select the status LED."
|
||||
msgstr "Sélectionner la LED de statut."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Modifier le script utilisateur"
|
||||
|
||||
msgid "Before executing the action, system calls a script in which user can place his own commands."
|
||||
msgstr "Avant d'exécuter l'action, le système appelle un script dans lequel l'utilisateur peut placer ses propres commandes."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Modifier le script utilisateur"
|
||||
|
||||
msgid "User script"
|
||||
msgstr "Script utilisateur"
|
||||
|
||||
msgid "User-defined commands."
|
||||
msgstr "Commandes définies par l'utilisateur."
|
||||
|
||||
msgid "Contents have been saved"
|
||||
msgstr "Le contenu a été enregistré"
|
||||
|
||||
msgid "Unable to save the contents"
|
||||
msgstr "Impossible d'enregistrer le contenu"
|
||||
|
||||
msgid "Unable to read the contents"
|
||||
msgstr "Impossible de lire le contenu"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "Statut"
|
||||
|
||||
msgid "ONLINE"
|
||||
msgstr "EN LIGNE"
|
||||
|
||||
msgid "OFFLINE"
|
||||
msgstr "HORS LIGNE"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Action"
|
||||
|
||||
msgid "Restarting interface"
|
||||
msgstr "Redémarrage de l'interface"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Redémarrage"
|
||||
|
||||
msgid "At command was sent to modem"
|
||||
msgstr "La commande AT a été envoyée au modem"
|
||||
|
||||
msgid "January"
|
||||
msgstr "Janvier"
|
||||
|
||||
msgid "February"
|
||||
msgstr "Février"
|
||||
|
||||
msgid "March"
|
||||
msgstr "Mars"
|
||||
|
||||
msgid "April"
|
||||
msgstr "Avril"
|
||||
|
||||
msgid "May"
|
||||
msgstr "Mai"
|
||||
|
||||
msgid "June"
|
||||
msgstr "Juin"
|
||||
|
||||
msgid "July"
|
||||
msgstr "Juillet"
|
||||
|
||||
msgid "August"
|
||||
msgstr "Août"
|
||||
|
||||
msgid "September"
|
||||
msgstr "Septembre"
|
||||
|
||||
msgid "October"
|
||||
msgstr "Octobre"
|
||||
|
||||
msgid "November"
|
||||
msgstr "Novembre"
|
||||
|
||||
msgid "December"
|
||||
msgstr "Décembre"
|
||||
|
||||
msgid "Monday"
|
||||
msgstr "Lundi"
|
||||
|
||||
msgid "Tuesday"
|
||||
msgstr "Mardi"
|
||||
|
||||
msgid "Wednesday"
|
||||
msgstr "Mercredi"
|
||||
|
||||
msgid "Thursday"
|
||||
msgstr "Jeudi"
|
||||
|
||||
msgid "Friday"
|
||||
msgstr "Vendredi"
|
||||
|
||||
msgid "Saturday"
|
||||
msgstr "Samedi"
|
||||
|
||||
msgid "Sunday"
|
||||
msgstr "Dimanche"
|
||||
|
||||
msgid "User Script Wizard"
|
||||
msgstr "Assistant de script utilisateur"
|
||||
|
||||
msgid "Hint: You do not need to save anything in the settings. Select the actions and click the Generate button."
|
||||
msgstr "Conseil : Vous n'avez pas besoin de sauvegarder quoi que ce soit dans les paramètres. Sélectionnez les actions et cliquez sur le bouton Générer."
|
||||
|
||||
msgid "modem restart"
|
||||
msgstr "redémarrage du modem"
|
||||
|
||||
msgid "reboot"
|
||||
msgstr "redémarrage"
|
||||
|
||||
msgid "Restart modem if restarting the interfaces did not restore internet access."
|
||||
msgstr "Redémarrez le modem si le redémarrage des interfaces n'a pas rétabli l'accès à Internet."
|
||||
|
||||
msgid "Router reboot if restarting the interfaces did not restore internet access."
|
||||
msgstr "Redémarrage du routeur si le redémarrage des interfaces n'a pas rétabli l'accès à Internet."
|
||||
|
||||
msgid "Actions in script"
|
||||
msgstr "Actions dans le script"
|
||||
|
||||
msgid "Modem actions"
|
||||
msgstr "Actions du modem"
|
||||
|
||||
msgid "Restart modem using at commands"
|
||||
msgstr "Redémarrer le modem avec des commandes AT"
|
||||
|
||||
msgid "effect depends on modem"
|
||||
msgstr "l'effet dépend du modem"
|
||||
|
||||
msgid "Some at commands can also restart the router."
|
||||
msgstr "Certaines commandes AT peuvent également redémarrer le routeur."
|
||||
|
||||
msgid "soft restart"
|
||||
msgstr "redémarrage logiciel"
|
||||
|
||||
msgid "hard restart"
|
||||
msgstr "redémarrage matériel"
|
||||
|
||||
msgid "Restart modem via GPIO."
|
||||
msgstr "Redémarrer le modem via GPIO."
|
||||
|
||||
msgid "Restart modem using GPIO"
|
||||
msgstr "Redémarrer le modem via GPIO"
|
||||
|
||||
msgid "Select the GPIO related to 4G/5G modem."
|
||||
msgstr "Sélectionner le GPIO associé au modem 4G/5G."
|
||||
|
||||
msgid "Generate a script"
|
||||
msgstr "Générer un script"
|
||||
|
||||
msgid "Generate user script"
|
||||
msgstr "Générer un script utilisateur"
|
||||
|
||||
msgid "Generate and save the prepared script."
|
||||
msgstr "Générer et sauvegarder le script préparé."
|
||||
|
||||
msgid "User can add his script or generate a new one from the selection options."
|
||||
msgstr "L'utilisateur peut ajouter son script ou en générer un nouveau à partir des options de sélection."
|
||||
|
||||
msgid "Set test address (only one recommended)."
|
||||
msgstr "Définir l'adresse de test (une seule recommandée)."
|
||||
|
||||
msgid "The available options depend on the previously defined main action (interface or router restart)."
|
||||
msgstr "Les options disponibles dépendent de l'action principale définie précédemment (redémarrage de l'interface ou du routeur)."
|
||||
|
||||
msgid "user code"
|
||||
msgstr "code utilisateur"
|
||||
|
||||
msgid "Add custom commands before restarting the device."
|
||||
msgstr "Ajouter des commandes personnalisées avant de redémarrer l'appareil."
|
||||
|
||||
msgid "from script:"
|
||||
msgstr "depuis le script :"
|
||||
|
||||
msgid "USER-SCRIPT:"
|
||||
msgstr "SCRIPT-UTILISATEUR :"
|
||||
|
||||
msgid "Soft modem restart"
|
||||
msgstr "Redémarrage logiciel du modem"
|
||||
|
||||
msgid "Hard modem restart"
|
||||
msgstr "Redémarrage matériel du modem"
|
||||
|
||||
msgid "Space for user actions"
|
||||
msgstr "Espace pour les actions utilisateur"
|
||||
|
||||
msgid "Commands before main action"
|
||||
msgstr "Commandes avant l'action principale"
|
||||
|
||||
msgid "Commands after main action"
|
||||
msgstr "Commandes après l'action principale"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "Chargement..."
|
||||
|
||||
msgid "Waiting for ping command execution..."
|
||||
msgstr "En attente de l'exécution de la commande ping..."
|
||||
|
||||
msgid "Watchdog initialized"
|
||||
msgstr "Watchdog initialisé"
|
||||
|
||||
msgid "uptime"
|
||||
msgstr "disponibilité"
|
||||
|
||||
msgid "hosts"
|
||||
msgstr "hôtes"
|
||||
@@ -0,0 +1,401 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Rafał Wabik (IceG)\n"
|
||||
"Language: lt\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"(n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
msgid "Connection Monitor"
|
||||
msgstr "Monitor connessione"
|
||||
|
||||
msgid "Connection monitor settings"
|
||||
msgstr "Impostazioni monitor connessione"
|
||||
|
||||
msgid "Configuration lite-watchdog"
|
||||
msgstr "Configurazione lite-watchdog"
|
||||
|
||||
msgid "Configuration panel for lite-watchdog and gui application."
|
||||
msgstr "Pannello di configurazione per l'applicazione lite-watchdog e GUI."
|
||||
|
||||
msgid "Interface"
|
||||
msgstr "Interfaccia"
|
||||
|
||||
msgid "Network interface for Internet access."
|
||||
msgstr "Interfaccia di rete per l'accesso a Internet."
|
||||
|
||||
msgid "Port for communication with the modem"
|
||||
msgstr "Porta per la comunicazione con il modem"
|
||||
|
||||
msgid "Select one of the available ttyUSBX ports."
|
||||
msgstr "Selezionare una delle porte ttyUSBX disponibili."
|
||||
|
||||
msgid "Please select a port"
|
||||
msgstr "Selezionare una porta"
|
||||
|
||||
msgid "Perform a modem restart before resuming the connection."
|
||||
msgstr "Eseguire un riavvio del modem prima di riprendere la connessione."
|
||||
|
||||
msgid "Restart modem with AT command"
|
||||
msgstr "Riavvia il modem con il comando AT"
|
||||
|
||||
msgid "AT command to restart the modem."
|
||||
msgstr "Comando AT per riavviare il modem."
|
||||
|
||||
msgid "AT command"
|
||||
msgstr "Comando AT"
|
||||
|
||||
msgid "total checks"
|
||||
msgstr "verifiche totali"
|
||||
|
||||
msgid "Configuration of the connection monitor known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Configurazione del monitor di connessione del pacchetto easyconfig. Ulteriori informazioni nel %sforum eko.one.pl%s."
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "forum eko.one.pl"
|
||||
|
||||
msgid "Enable a connection monitor."
|
||||
msgstr "Attiva un monitor di connessione."
|
||||
|
||||
msgid "System startup delay"
|
||||
msgstr "Ritardo di avvio del sistema"
|
||||
|
||||
msgid "[1 - 59] minute(s)"
|
||||
msgstr "[1 - 59] minuto/i"
|
||||
|
||||
msgid "Expect a decimal value between one and fifty-nine"
|
||||
msgstr "Si attende un valore decimale tra uno e cinquantanove"
|
||||
|
||||
msgid "Address or name"
|
||||
msgstr "Indirizzo o nome"
|
||||
|
||||
msgid "Verification period"
|
||||
msgstr "Periodo di verifica"
|
||||
|
||||
msgid "Number of failed checks"
|
||||
msgstr "Numero di verifiche fallite"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Azione"
|
||||
|
||||
msgid "Connection restart"
|
||||
msgstr "Riavvio connessione"
|
||||
|
||||
msgid "Modem restart"
|
||||
msgstr "Riavvio modem"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Riavvio"
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor has started."
|
||||
msgstr "Le modifiche sono state salvate. Il monitor di connessione è stato avviato."
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor is not running."
|
||||
msgstr "Le modifiche sono state salvate. Il monitor di connessione non è in esecuzione."
|
||||
|
||||
msgid "Last check"
|
||||
msgstr "Ultima verifica"
|
||||
|
||||
msgid "minimum"
|
||||
msgstr "minimo"
|
||||
|
||||
msgid "average"
|
||||
msgstr "media"
|
||||
|
||||
msgid "maximum"
|
||||
msgstr "massimo"
|
||||
|
||||
msgid "Information"
|
||||
msgstr "Informazioni"
|
||||
|
||||
msgid "Basic settings"
|
||||
msgstr "Impostazioni di base"
|
||||
|
||||
msgid "failed"
|
||||
msgstr "fallite"
|
||||
|
||||
msgid "Failed"
|
||||
msgstr "Fallite"
|
||||
|
||||
msgid "out of"
|
||||
msgstr "su"
|
||||
|
||||
msgid "Activity log"
|
||||
msgstr "Registro attività"
|
||||
|
||||
msgid "Wrong regular expression"
|
||||
msgstr "Espressione regolare errata"
|
||||
|
||||
msgid "No matches..."
|
||||
msgstr "Nessun risultato..."
|
||||
|
||||
msgid "Clear connection monitor log?"
|
||||
msgstr "Cancellare il registro del monitor di connessione?"
|
||||
|
||||
msgid "Download error"
|
||||
msgstr "Errore di download"
|
||||
|
||||
msgid "Unable to load log data:"
|
||||
msgstr "Impossibile caricare i dati del registro:"
|
||||
|
||||
msgid "Entries filter"
|
||||
msgstr "Filtro voci"
|
||||
|
||||
msgid "Filter entries using regexp, press [Delete] to delete all text"
|
||||
msgstr "Filtrare le voci con espressione regolare, premere [Canc] per eliminare tutto il testo"
|
||||
|
||||
msgid "Refresh"
|
||||
msgstr "Aggiorna"
|
||||
|
||||
msgid "Connection monitor activity log"
|
||||
msgstr "Registro attività monitor connessione"
|
||||
|
||||
msgid "Connection monitor activity log known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Registro attività del monitor di connessione del pacchetto easyconfig. Ulteriori informazioni nel %sforum eko.one.pl%s."
|
||||
|
||||
msgid "Show only the last entries"
|
||||
msgstr "Mostra solo le ultime voci"
|
||||
|
||||
msgid "Message filter"
|
||||
msgstr "Filtro messaggi"
|
||||
|
||||
msgid "Refresh log"
|
||||
msgstr "Aggiorna registro"
|
||||
|
||||
msgid "Clear log"
|
||||
msgstr "Cancella registro"
|
||||
|
||||
msgid "Download log"
|
||||
msgstr "Scarica registro"
|
||||
|
||||
msgid "Upload log file"
|
||||
msgstr "Carica file registro"
|
||||
|
||||
msgid "Type of messages"
|
||||
msgstr "Tipo di messaggi"
|
||||
|
||||
msgid "All actions"
|
||||
msgstr "Tutte le azioni"
|
||||
|
||||
msgid "Only connection problems"
|
||||
msgstr "Solo problemi di connessione"
|
||||
|
||||
msgid "LED settings"
|
||||
msgstr "Impostazioni LED"
|
||||
|
||||
msgid "The LED shows the internet connection status."
|
||||
msgstr "Il LED mostra lo stato della connessione Internet."
|
||||
|
||||
msgid "Select the status LED."
|
||||
msgstr "Selezionare il LED di stato."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Modifica script utente"
|
||||
|
||||
msgid "Before executing the action, system calls a script in which user can place his own commands."
|
||||
msgstr "Prima di eseguire l'azione, il sistema chiama uno script in cui l'utente può inserire i propri comandi."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Modifica script utente"
|
||||
|
||||
msgid "User script"
|
||||
msgstr "Script utente"
|
||||
|
||||
msgid "User-defined commands."
|
||||
msgstr "Comandi definiti dall'utente."
|
||||
|
||||
msgid "Contents have been saved"
|
||||
msgstr "Il contenuto è stato salvato"
|
||||
|
||||
msgid "Unable to save the contents"
|
||||
msgstr "Impossibile salvare il contenuto"
|
||||
|
||||
msgid "Unable to read the contents"
|
||||
msgstr "Impossibile leggere il contenuto"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "Stato"
|
||||
|
||||
msgid "ONLINE"
|
||||
msgstr "ONLINE"
|
||||
|
||||
msgid "OFFLINE"
|
||||
msgstr "OFFLINE"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Azione"
|
||||
|
||||
msgid "Restarting interface"
|
||||
msgstr "Riavvio interfaccia"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Riavvio"
|
||||
|
||||
msgid "At command was sent to modem"
|
||||
msgstr "Il comando AT è stato inviato al modem"
|
||||
|
||||
msgid "January"
|
||||
msgstr "Gennaio"
|
||||
|
||||
msgid "February"
|
||||
msgstr "Febbraio"
|
||||
|
||||
msgid "March"
|
||||
msgstr "Marzo"
|
||||
|
||||
msgid "April"
|
||||
msgstr "Aprile"
|
||||
|
||||
msgid "May"
|
||||
msgstr "Maggio"
|
||||
|
||||
msgid "June"
|
||||
msgstr "Giugno"
|
||||
|
||||
msgid "July"
|
||||
msgstr "Luglio"
|
||||
|
||||
msgid "August"
|
||||
msgstr "Agosto"
|
||||
|
||||
msgid "September"
|
||||
msgstr "Settembre"
|
||||
|
||||
msgid "October"
|
||||
msgstr "Ottobre"
|
||||
|
||||
msgid "November"
|
||||
msgstr "Novembre"
|
||||
|
||||
msgid "December"
|
||||
msgstr "Dicembre"
|
||||
|
||||
msgid "Monday"
|
||||
msgstr "Lunedì"
|
||||
|
||||
msgid "Tuesday"
|
||||
msgstr "Martedì"
|
||||
|
||||
msgid "Wednesday"
|
||||
msgstr "Mercoledì"
|
||||
|
||||
msgid "Thursday"
|
||||
msgstr "Giovedì"
|
||||
|
||||
msgid "Friday"
|
||||
msgstr "Venerdì"
|
||||
|
||||
msgid "Saturday"
|
||||
msgstr "Sabato"
|
||||
|
||||
msgid "Sunday"
|
||||
msgstr "Domenica"
|
||||
|
||||
msgid "User Script Wizard"
|
||||
msgstr "Procedura guidata script utente"
|
||||
|
||||
msgid "Hint: You do not need to save anything in the settings. Select the actions and click the Generate button."
|
||||
msgstr "Suggerimento: Non è necessario salvare nulla nelle impostazioni. Selezionare le azioni e fare clic sul pulsante Genera."
|
||||
|
||||
msgid "modem restart"
|
||||
msgstr "riavvio modem"
|
||||
|
||||
msgid "reboot"
|
||||
msgstr "riavvio"
|
||||
|
||||
msgid "Restart modem if restarting the interfaces did not restore internet access."
|
||||
msgstr "Riavviare il modem se il riavvio delle interfacce non ha ripristinato l'accesso a Internet."
|
||||
|
||||
msgid "Router reboot if restarting the interfaces did not restore internet access."
|
||||
msgstr "Riavvio del router se il riavvio delle interfacce non ha ripristinato l'accesso a Internet."
|
||||
|
||||
msgid "Actions in script"
|
||||
msgstr "Azioni nello script"
|
||||
|
||||
msgid "Modem actions"
|
||||
msgstr "Azioni modem"
|
||||
|
||||
msgid "Restart modem using at commands"
|
||||
msgstr "Riavvia il modem con i comandi AT"
|
||||
|
||||
msgid "effect depends on modem"
|
||||
msgstr "l'effetto dipende dal modem"
|
||||
|
||||
msgid "Some at commands can also restart the router."
|
||||
msgstr "Alcuni comandi AT possono anche riavviare il router."
|
||||
|
||||
msgid "soft restart"
|
||||
msgstr "riavvio software"
|
||||
|
||||
msgid "hard restart"
|
||||
msgstr "riavvio hardware"
|
||||
|
||||
msgid "Restart modem via GPIO."
|
||||
msgstr "Riavvia il modem tramite GPIO."
|
||||
|
||||
msgid "Restart modem using GPIO"
|
||||
msgstr "Riavvia il modem tramite GPIO"
|
||||
|
||||
msgid "Select the GPIO related to 4G/5G modem."
|
||||
msgstr "Selezionare il GPIO relativo al modem 4G/5G."
|
||||
|
||||
msgid "Generate a script"
|
||||
msgstr "Genera uno script"
|
||||
|
||||
msgid "Generate user script"
|
||||
msgstr "Genera script utente"
|
||||
|
||||
msgid "Generate and save the prepared script."
|
||||
msgstr "Genera e salva lo script preparato."
|
||||
|
||||
msgid "User can add his script or generate a new one from the selection options."
|
||||
msgstr "L'utente può aggiungere il proprio script o generarne uno nuovo dalle opzioni di selezione."
|
||||
|
||||
msgid "Set test address (only one recommended)."
|
||||
msgstr "Impostare l'indirizzo di test (si consiglia solo uno)."
|
||||
|
||||
msgid "The available options depend on the previously defined main action (interface or router restart)."
|
||||
msgstr "Le opzioni disponibili dipendono dall'azione principale definita in precedenza (riavvio dell'interfaccia o del router)."
|
||||
|
||||
msgid "user code"
|
||||
msgstr "codice utente"
|
||||
|
||||
msgid "Add custom commands before restarting the device."
|
||||
msgstr "Aggiungere comandi personalizzati prima di riavviare il dispositivo."
|
||||
|
||||
msgid "from script:"
|
||||
msgstr "dallo script:"
|
||||
|
||||
msgid "USER-SCRIPT:"
|
||||
msgstr "SCRIPT-UTENTE:"
|
||||
|
||||
msgid "Soft modem restart"
|
||||
msgstr "Riavvio software del modem"
|
||||
|
||||
msgid "Hard modem restart"
|
||||
msgstr "Riavvio hardware del modem"
|
||||
|
||||
msgid "Space for user actions"
|
||||
msgstr "Spazio per le azioni utente"
|
||||
|
||||
msgid "Commands before main action"
|
||||
msgstr "Comandi prima dell'azione principale"
|
||||
|
||||
msgid "Commands after main action"
|
||||
msgstr "Comandi dopo l'azione principale"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "Caricamento..."
|
||||
|
||||
msgid "Waiting for ping command execution..."
|
||||
msgstr "In attesa dell'esecuzione del comando ping..."
|
||||
|
||||
msgid "Watchdog initialized"
|
||||
msgstr "Watchdog inizializzato"
|
||||
|
||||
msgid "uptime"
|
||||
msgstr "disponibilità"
|
||||
|
||||
msgid "hosts"
|
||||
msgstr "host"
|
||||
@@ -0,0 +1,399 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language: ja\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
msgid "Connection Monitor"
|
||||
msgstr "接続モニター"
|
||||
|
||||
msgid "Connection monitor settings"
|
||||
msgstr "接続モニター設定"
|
||||
|
||||
msgid "Configuration lite-watchdog"
|
||||
msgstr "lite-watchdog設定"
|
||||
|
||||
msgid "Configuration panel for lite-watchdog and gui application."
|
||||
msgstr "lite-watchdogおよびGUIアプリケーションの設定パネル。"
|
||||
|
||||
msgid "Interface"
|
||||
msgstr "インターフェース"
|
||||
|
||||
msgid "Network interface for Internet access."
|
||||
msgstr "インターネットアクセス用ネットワークインターフェース。"
|
||||
|
||||
msgid "Port for communication with the modem"
|
||||
msgstr "モデムとの通信用ポート"
|
||||
|
||||
msgid "Select one of the available ttyUSBX ports."
|
||||
msgstr "利用可能なttyUSBXポートから1つを選択してください。"
|
||||
|
||||
msgid "Please select a port"
|
||||
msgstr "ポートを選択してください"
|
||||
|
||||
msgid "Perform a modem restart before resuming the connection."
|
||||
msgstr "接続を再開する前にモデムを再起動します。"
|
||||
|
||||
msgid "Restart modem with AT command"
|
||||
msgstr "ATコマンドでモデムを再起動"
|
||||
|
||||
msgid "AT command to restart the modem."
|
||||
msgstr "モデムを再起動するATコマンド。"
|
||||
|
||||
msgid "AT command"
|
||||
msgstr "ATコマンド"
|
||||
|
||||
msgid "total checks"
|
||||
msgstr "合計チェック数"
|
||||
|
||||
msgid "Configuration of the connection monitor known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "easyconfigパッケージで知られている接続モニターの設定。詳しくは%seko.one.plフォーラム%sを参照。"
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "eko.one.plフォーラム"
|
||||
|
||||
msgid "Enable a connection monitor."
|
||||
msgstr "接続モニターを有効にします。"
|
||||
|
||||
msgid "System startup delay"
|
||||
msgstr "システム起動遅延"
|
||||
|
||||
msgid "[1 - 59] minute(s)"
|
||||
msgstr "[1~59]分"
|
||||
|
||||
msgid "Expect a decimal value between one and fifty-nine"
|
||||
msgstr "1から59までの10進値を指定してください"
|
||||
|
||||
msgid "Address or name"
|
||||
msgstr "アドレスまたは名前"
|
||||
|
||||
msgid "Verification period"
|
||||
msgstr "検証期間"
|
||||
|
||||
msgid "Number of failed checks"
|
||||
msgstr "失敗したチェック数"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "アクション"
|
||||
|
||||
msgid "Connection restart"
|
||||
msgstr "接続再起動"
|
||||
|
||||
msgid "Modem restart"
|
||||
msgstr "モデム再起動"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "再起動"
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor has started."
|
||||
msgstr "変更が保存されました。接続モニターが開始されました。"
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor is not running."
|
||||
msgstr "変更が保存されました。接続モニターは実行されていません。"
|
||||
|
||||
msgid "Last check"
|
||||
msgstr "最後のチェック"
|
||||
|
||||
msgid "minimum"
|
||||
msgstr "最小"
|
||||
|
||||
msgid "average"
|
||||
msgstr "平均"
|
||||
|
||||
msgid "maximum"
|
||||
msgstr "最大"
|
||||
|
||||
msgid "Information"
|
||||
msgstr "情報"
|
||||
|
||||
msgid "Basic settings"
|
||||
msgstr "基本設定"
|
||||
|
||||
msgid "failed"
|
||||
msgstr "失敗"
|
||||
|
||||
msgid "Failed"
|
||||
msgstr "失敗"
|
||||
|
||||
msgid "out of"
|
||||
msgstr "~の中"
|
||||
|
||||
msgid "Activity log"
|
||||
msgstr "アクティビティログ"
|
||||
|
||||
msgid "Wrong regular expression"
|
||||
msgstr "正規表現が間違っています"
|
||||
|
||||
msgid "No matches..."
|
||||
msgstr "マッチしませんでした..."
|
||||
|
||||
msgid "Clear connection monitor log?"
|
||||
msgstr "接続モニターログをクリアしますか?"
|
||||
|
||||
msgid "Download error"
|
||||
msgstr "ダウンロードエラー"
|
||||
|
||||
msgid "Unable to load log data:"
|
||||
msgstr "ログデータを読み込めません:"
|
||||
|
||||
msgid "Entries filter"
|
||||
msgstr "エントリフィルター"
|
||||
|
||||
msgid "Filter entries using regexp, press [Delete] to delete all text"
|
||||
msgstr "正規表現を使用してエントリをフィルター処理し、[削除]を押して全テキストを削除"
|
||||
|
||||
msgid "Refresh"
|
||||
msgstr "更新"
|
||||
|
||||
msgid "Connection monitor activity log"
|
||||
msgstr "接続モニターアクティビティログ"
|
||||
|
||||
msgid "Connection monitor activity log known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "easyconfigパッケージで知られている接続モニターアクティビティログ。詳しくは%seko.one.plフォーラム%sを参照。"
|
||||
|
||||
msgid "Show only the last entries"
|
||||
msgstr "最後のエントリのみ表示"
|
||||
|
||||
msgid "Message filter"
|
||||
msgstr "メッセージフィルター"
|
||||
|
||||
msgid "Refresh log"
|
||||
msgstr "ログを更新"
|
||||
|
||||
msgid "Clear log"
|
||||
msgstr "ログをクリア"
|
||||
|
||||
msgid "Download log"
|
||||
msgstr "ログをダウンロード"
|
||||
|
||||
msgid "Upload log file"
|
||||
msgstr "ログファイルをアップロード"
|
||||
|
||||
msgid "Type of messages"
|
||||
msgstr "メッセージの種類"
|
||||
|
||||
msgid "All actions"
|
||||
msgstr "すべてのアクション"
|
||||
|
||||
msgid "Only connection problems"
|
||||
msgstr "接続の問題のみ"
|
||||
|
||||
msgid "LED settings"
|
||||
msgstr "LED設定"
|
||||
|
||||
msgid "The LED shows the internet connection status."
|
||||
msgstr "LEDはインターネット接続ステータスを表示します。"
|
||||
|
||||
msgid "Select the status LED."
|
||||
msgstr "ステータスLEDを選択します。"
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "ユーザースクリプトを編集"
|
||||
|
||||
msgid "Before executing the action, system calls a script in which user can place his own commands."
|
||||
msgstr "アクション実行前にシステムがスクリプトを呼び出し、ユーザーが独自のコマンドを配置できます。"
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "ユーザースクリプトを編集"
|
||||
|
||||
msgid "User script"
|
||||
msgstr "ユーザースクリプト"
|
||||
|
||||
msgid "User-defined commands."
|
||||
msgstr "ユーザー定義コマンド。"
|
||||
|
||||
msgid "Contents have been saved"
|
||||
msgstr "コンテンツが保存されました"
|
||||
|
||||
msgid "Unable to save the contents"
|
||||
msgstr "コンテンツを保存できません"
|
||||
|
||||
msgid "Unable to read the contents"
|
||||
msgstr "コンテンツを読み込めません"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "ステータス"
|
||||
|
||||
msgid "ONLINE"
|
||||
msgstr "オンライン"
|
||||
|
||||
msgid "OFFLINE"
|
||||
msgstr "オフライン"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "アクション"
|
||||
|
||||
msgid "Restarting interface"
|
||||
msgstr "インターフェースを再起動中"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "再起動"
|
||||
|
||||
msgid "At command was sent to modem"
|
||||
msgstr "ATコマンドがモデムに送信されました"
|
||||
|
||||
msgid "January"
|
||||
msgstr "1月"
|
||||
|
||||
msgid "February"
|
||||
msgstr "2月"
|
||||
|
||||
msgid "March"
|
||||
msgstr "3月"
|
||||
|
||||
msgid "April"
|
||||
msgstr "4月"
|
||||
|
||||
msgid "May"
|
||||
msgstr "5月"
|
||||
|
||||
msgid "June"
|
||||
msgstr "6月"
|
||||
|
||||
msgid "July"
|
||||
msgstr "7月"
|
||||
|
||||
msgid "August"
|
||||
msgstr "8月"
|
||||
|
||||
msgid "September"
|
||||
msgstr "9月"
|
||||
|
||||
msgid "October"
|
||||
msgstr "10月"
|
||||
|
||||
msgid "November"
|
||||
msgstr "11月"
|
||||
|
||||
msgid "December"
|
||||
msgstr "12月"
|
||||
|
||||
msgid "Monday"
|
||||
msgstr "月曜日"
|
||||
|
||||
msgid "Tuesday"
|
||||
msgstr "火曜日"
|
||||
|
||||
msgid "Wednesday"
|
||||
msgstr "水曜日"
|
||||
|
||||
msgid "Thursday"
|
||||
msgstr "木曜日"
|
||||
|
||||
msgid "Friday"
|
||||
msgstr "金曜日"
|
||||
|
||||
msgid "Saturday"
|
||||
msgstr "土曜日"
|
||||
|
||||
msgid "Sunday"
|
||||
msgstr "日曜日"
|
||||
|
||||
msgid "User Script Wizard"
|
||||
msgstr "ユーザースクリプトウィザード"
|
||||
|
||||
msgid "Hint: You do not need to save anything in the settings. Select the actions and click the Generate button."
|
||||
msgstr "ヒント:設定に何も保存する必要はありません。アクションを選択して[生成]ボタンをクリックします。"
|
||||
|
||||
msgid "modem restart"
|
||||
msgstr "モデム再起動"
|
||||
|
||||
msgid "reboot"
|
||||
msgstr "再起動"
|
||||
|
||||
msgid "Restart modem if restarting the interfaces did not restore internet access."
|
||||
msgstr "インターフェースの再起動がインターネットアクセスを復元しなかった場合、モデムを再起動します。"
|
||||
|
||||
msgid "Router reboot if restarting the interfaces did not restore internet access."
|
||||
msgstr "インターフェースの再起動がインターネットアクセスを復元しなかった場合、ルーターを再起動します。"
|
||||
|
||||
msgid "Actions in script"
|
||||
msgstr "スクリプト内のアクション"
|
||||
|
||||
msgid "Modem actions"
|
||||
msgstr "モデムアクション"
|
||||
|
||||
msgid "Restart modem using at commands"
|
||||
msgstr "ATコマンドを使用してモデムを再起動"
|
||||
|
||||
msgid "effect depends on modem"
|
||||
msgstr "効果はモデムに依存します"
|
||||
|
||||
msgid "Some at commands can also restart the router."
|
||||
msgstr "一部のATコマンドはルーターの再起動も可能です。"
|
||||
|
||||
msgid "soft restart"
|
||||
msgstr "ソフト再起動"
|
||||
|
||||
msgid "hard restart"
|
||||
msgstr "ハード再起動"
|
||||
|
||||
msgid "Restart modem via GPIO."
|
||||
msgstr "GPIOを介してモデムを再起動します。"
|
||||
|
||||
msgid "Restart modem using GPIO"
|
||||
msgstr "GPIOを使用してモデムを再起動"
|
||||
|
||||
msgid "Select the GPIO related to 4G/5G modem."
|
||||
msgstr "4G/5Gモデムに関連するGPIOを選択します。"
|
||||
|
||||
msgid "Generate a script"
|
||||
msgstr "スクリプトを生成"
|
||||
|
||||
msgid "Generate user script"
|
||||
msgstr "ユーザースクリプトを生成"
|
||||
|
||||
msgid "Generate and save the prepared script."
|
||||
msgstr "準備されたスクリプトを生成して保存します。"
|
||||
|
||||
msgid "User can add his script or generate a new one from the selection options."
|
||||
msgstr "ユーザーは独自のスクリプトを追加するか、選択オプションから新しいスクリプトを生成できます。"
|
||||
|
||||
msgid "Set test address (only one recommended)."
|
||||
msgstr "テストアドレスを設定(1つのみ推奨)。"
|
||||
|
||||
msgid "The available options depend on the previously defined main action (interface or router restart)."
|
||||
msgstr "利用可能なオプションは、以前に定義されたメインアクション(インターフェースまたはルーター再起動)に依存します。"
|
||||
|
||||
msgid "user code"
|
||||
msgstr "ユーザーコード"
|
||||
|
||||
msgid "Add custom commands before restarting the device."
|
||||
msgstr "デバイスを再起動する前にカスタムコマンドを追加します。"
|
||||
|
||||
msgid "from script:"
|
||||
msgstr "スクリプトから:"
|
||||
|
||||
msgid "USER-SCRIPT:"
|
||||
msgstr "ユーザースクリプト:"
|
||||
|
||||
msgid "Soft modem restart"
|
||||
msgstr "モデムソフト再起動"
|
||||
|
||||
msgid "Hard modem restart"
|
||||
msgstr "モデムハード再起動"
|
||||
|
||||
msgid "Space for user actions"
|
||||
msgstr "ユーザーアクションのスペース"
|
||||
|
||||
msgid "Commands before main action"
|
||||
msgstr "メインアクション前のコマンド"
|
||||
|
||||
msgid "Commands after main action"
|
||||
msgstr "メインアクション後のコマンド"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "読み込み中..."
|
||||
|
||||
msgid "Waiting for ping command execution..."
|
||||
msgstr "pingコマンド実行を待機中..."
|
||||
|
||||
msgid "Watchdog initialized"
|
||||
msgstr "ウォッチドッグが初期化されました"
|
||||
|
||||
msgid "uptime"
|
||||
msgstr "アップタイム"
|
||||
|
||||
msgid "hosts"
|
||||
msgstr "ホスト"
|
||||
@@ -0,0 +1,399 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language: ko\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
msgid "Connection Monitor"
|
||||
msgstr "연결 모니터"
|
||||
|
||||
msgid "Connection monitor settings"
|
||||
msgstr "연결 모니터 설정"
|
||||
|
||||
msgid "Configuration lite-watchdog"
|
||||
msgstr "lite-watchdog 설정"
|
||||
|
||||
msgid "Configuration panel for lite-watchdog and gui application."
|
||||
msgstr "lite-watchdog 및 GUI 응용 프로그램의 설정 패널입니다."
|
||||
|
||||
msgid "Interface"
|
||||
msgstr "인터페이스"
|
||||
|
||||
msgid "Network interface for Internet access."
|
||||
msgstr "인터넷 접속용 네트워크 인터페이스."
|
||||
|
||||
msgid "Port for communication with the modem"
|
||||
msgstr "모뎀과의 통신용 포트"
|
||||
|
||||
msgid "Select one of the available ttyUSBX ports."
|
||||
msgstr "사용 가능한 ttyUSBX 포트 중 하나를 선택하세요."
|
||||
|
||||
msgid "Please select a port"
|
||||
msgstr "포트를 선택하세요"
|
||||
|
||||
msgid "Perform a modem restart before resuming the connection."
|
||||
msgstr "연결을 재개하기 전에 모뎀을 다시 시작합니다."
|
||||
|
||||
msgid "Restart modem with AT command"
|
||||
msgstr "AT 명령으로 모뎀 다시 시작"
|
||||
|
||||
msgid "AT command to restart the modem."
|
||||
msgstr "모뎀을 다시 시작하는 AT 명령입니다."
|
||||
|
||||
msgid "AT command"
|
||||
msgstr "AT 명령"
|
||||
|
||||
msgid "total checks"
|
||||
msgstr "총 검사"
|
||||
|
||||
msgid "Configuration of the connection monitor known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "easyconfig 패키지에서 알려진 연결 모니터 구성입니다. %seko.one.pl 포럼%s에서 자세한 정보를 확인하세요."
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "eko.one.pl 포럼"
|
||||
|
||||
msgid "Enable a connection monitor."
|
||||
msgstr "연결 모니터를 활성화합니다."
|
||||
|
||||
msgid "System startup delay"
|
||||
msgstr "시스템 시작 지연"
|
||||
|
||||
msgid "[1 - 59] minute(s)"
|
||||
msgstr "[1~59]분"
|
||||
|
||||
msgid "Expect a decimal value between one and fifty-nine"
|
||||
msgstr "1에서 59 사이의 10진수 값을 입력하세요"
|
||||
|
||||
msgid "Address or name"
|
||||
msgstr "주소 또는 이름"
|
||||
|
||||
msgid "Verification period"
|
||||
msgstr "검증 기간"
|
||||
|
||||
msgid "Number of failed checks"
|
||||
msgstr "실패한 검사 수"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "작업"
|
||||
|
||||
msgid "Connection restart"
|
||||
msgstr "연결 재시작"
|
||||
|
||||
msgid "Modem restart"
|
||||
msgstr "모뎀 재시작"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "다시 시작"
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor has started."
|
||||
msgstr "변경 사항이 저장되었습니다. 연결 모니터가 시작되었습니다."
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor is not running."
|
||||
msgstr "변경 사항이 저장되었습니다. 연결 모니터가 실행되지 않습니다."
|
||||
|
||||
msgid "Last check"
|
||||
msgstr "마지막 검사"
|
||||
|
||||
msgid "minimum"
|
||||
msgstr "최소"
|
||||
|
||||
msgid "average"
|
||||
msgstr "평균"
|
||||
|
||||
msgid "maximum"
|
||||
msgstr "최대"
|
||||
|
||||
msgid "Information"
|
||||
msgstr "정보"
|
||||
|
||||
msgid "Basic settings"
|
||||
msgstr "기본 설정"
|
||||
|
||||
msgid "failed"
|
||||
msgstr "실패"
|
||||
|
||||
msgid "Failed"
|
||||
msgstr "실패"
|
||||
|
||||
msgid "out of"
|
||||
msgstr "~의"
|
||||
|
||||
msgid "Activity log"
|
||||
msgstr "활동 로그"
|
||||
|
||||
msgid "Wrong regular expression"
|
||||
msgstr "정규식이 잘못되었습니다"
|
||||
|
||||
msgid "No matches..."
|
||||
msgstr "일치하는 항목이 없습니다..."
|
||||
|
||||
msgid "Clear connection monitor log?"
|
||||
msgstr "연결 모니터 로그를 삭제하시겠습니까?"
|
||||
|
||||
msgid "Download error"
|
||||
msgstr "다운로드 오류"
|
||||
|
||||
msgid "Unable to load log data:"
|
||||
msgstr "로그 데이터를 로드할 수 없습니다:"
|
||||
|
||||
msgid "Entries filter"
|
||||
msgstr "항목 필터"
|
||||
|
||||
msgid "Filter entries using regexp, press [Delete] to delete all text"
|
||||
msgstr "정규식을 사용하여 항목을 필터링하고, [삭제]를 눌러 모든 텍스트 삭제"
|
||||
|
||||
msgid "Refresh"
|
||||
msgstr "새로고침"
|
||||
|
||||
msgid "Connection monitor activity log"
|
||||
msgstr "연결 모니터 활동 로그"
|
||||
|
||||
msgid "Connection monitor activity log known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "easyconfig 패키지에서 알려진 연결 모니터 활동 로그입니다. %seko.one.pl 포럼%s에서 자세한 정보를 확인하세요."
|
||||
|
||||
msgid "Show only the last entries"
|
||||
msgstr "마지막 항목만 표시"
|
||||
|
||||
msgid "Message filter"
|
||||
msgstr "메시지 필터"
|
||||
|
||||
msgid "Refresh log"
|
||||
msgstr "로그 새로고침"
|
||||
|
||||
msgid "Clear log"
|
||||
msgstr "로그 삭제"
|
||||
|
||||
msgid "Download log"
|
||||
msgstr "로그 다운로드"
|
||||
|
||||
msgid "Upload log file"
|
||||
msgstr "로그 파일 업로드"
|
||||
|
||||
msgid "Type of messages"
|
||||
msgstr "메시지 유형"
|
||||
|
||||
msgid "All actions"
|
||||
msgstr "모든 작업"
|
||||
|
||||
msgid "Only connection problems"
|
||||
msgstr "연결 문제만"
|
||||
|
||||
msgid "LED settings"
|
||||
msgstr "LED 설정"
|
||||
|
||||
msgid "The LED shows the internet connection status."
|
||||
msgstr "LED는 인터넷 연결 상태를 표시합니다."
|
||||
|
||||
msgid "Select the status LED."
|
||||
msgstr "상태 LED를 선택합니다."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "사용자 스크립트 편집"
|
||||
|
||||
msgid "Before executing the action, system calls a script in which user can place his own commands."
|
||||
msgstr "작업 실행 전에 시스템이 사용자가 고유한 명령을 배치할 수 있는 스크립트를 호출합니다."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "사용자 스크립트 편집"
|
||||
|
||||
msgid "User script"
|
||||
msgstr "사용자 스크립트"
|
||||
|
||||
msgid "User-defined commands."
|
||||
msgstr "사용자 정의 명령."
|
||||
|
||||
msgid "Contents have been saved"
|
||||
msgstr "콘텐츠가 저장되었습니다"
|
||||
|
||||
msgid "Unable to save the contents"
|
||||
msgstr "콘텐츠를 저장할 수 없습니다"
|
||||
|
||||
msgid "Unable to read the contents"
|
||||
msgstr "콘텐츠를 읽을 수 없습니다"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "상태"
|
||||
|
||||
msgid "ONLINE"
|
||||
msgstr "온라인"
|
||||
|
||||
msgid "OFFLINE"
|
||||
msgstr "오프라인"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "작업"
|
||||
|
||||
msgid "Restarting interface"
|
||||
msgstr "인터페이스 재시작 중"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "다시 시작"
|
||||
|
||||
msgid "At command was sent to modem"
|
||||
msgstr "AT 명령이 모뎀으로 전송되었습니다"
|
||||
|
||||
msgid "January"
|
||||
msgstr "1월"
|
||||
|
||||
msgid "February"
|
||||
msgstr "2월"
|
||||
|
||||
msgid "March"
|
||||
msgstr "3월"
|
||||
|
||||
msgid "April"
|
||||
msgstr "4월"
|
||||
|
||||
msgid "May"
|
||||
msgstr "5월"
|
||||
|
||||
msgid "June"
|
||||
msgstr "6월"
|
||||
|
||||
msgid "July"
|
||||
msgstr "7월"
|
||||
|
||||
msgid "August"
|
||||
msgstr "8월"
|
||||
|
||||
msgid "September"
|
||||
msgstr "9월"
|
||||
|
||||
msgid "October"
|
||||
msgstr "10월"
|
||||
|
||||
msgid "November"
|
||||
msgstr "11월"
|
||||
|
||||
msgid "December"
|
||||
msgstr "12월"
|
||||
|
||||
msgid "Monday"
|
||||
msgstr "월요일"
|
||||
|
||||
msgid "Tuesday"
|
||||
msgstr "화요일"
|
||||
|
||||
msgid "Wednesday"
|
||||
msgstr "수요일"
|
||||
|
||||
msgid "Thursday"
|
||||
msgstr "목요일"
|
||||
|
||||
msgid "Friday"
|
||||
msgstr "금요일"
|
||||
|
||||
msgid "Saturday"
|
||||
msgstr "토요일"
|
||||
|
||||
msgid "Sunday"
|
||||
msgstr "일요일"
|
||||
|
||||
msgid "User Script Wizard"
|
||||
msgstr "사용자 스크립트 마법사"
|
||||
|
||||
msgid "Hint: You do not need to save anything in the settings. Select the actions and click the Generate button."
|
||||
msgstr "힌트: 설정에 아무것도 저장할 필요가 없습니다. 작업을 선택하고 [생성] 버튼을 클릭합니다."
|
||||
|
||||
msgid "modem restart"
|
||||
msgstr "모뎀 재시작"
|
||||
|
||||
msgid "reboot"
|
||||
msgstr "재시작"
|
||||
|
||||
msgid "Restart modem if restarting the interfaces did not restore internet access."
|
||||
msgstr "인터페이스 재시작이 인터넷 액세스를 복구하지 못한 경우 모뎀을 재시작합니다."
|
||||
|
||||
msgid "Router reboot if restarting the interfaces did not restore internet access."
|
||||
msgstr "인터페이스 재시작이 인터넷 액세스를 복구하지 못한 경우 라우터를 재시작합니다."
|
||||
|
||||
msgid "Actions in script"
|
||||
msgstr "스크립트의 작업"
|
||||
|
||||
msgid "Modem actions"
|
||||
msgstr "모뎀 작업"
|
||||
|
||||
msgid "Restart modem using at commands"
|
||||
msgstr "AT 명령을 사용하여 모뎀 재시작"
|
||||
|
||||
msgid "effect depends on modem"
|
||||
msgstr "효과는 모뎀에 따라 다릅니다"
|
||||
|
||||
msgid "Some at commands can also restart the router."
|
||||
msgstr "일부 AT 명령은 라우터도 재시작할 수 있습니다."
|
||||
|
||||
msgid "soft restart"
|
||||
msgstr "소프트 재시작"
|
||||
|
||||
msgid "hard restart"
|
||||
msgstr "하드 재시작"
|
||||
|
||||
msgid "Restart modem via GPIO."
|
||||
msgstr "GPIO를 통해 모뎀을 재시작합니다."
|
||||
|
||||
msgid "Restart modem using GPIO"
|
||||
msgstr "GPIO를 사용하여 모뎀 재시작"
|
||||
|
||||
msgid "Select the GPIO related to 4G/5G modem."
|
||||
msgstr "4G/5G 모뎀과 관련된 GPIO를 선택합니다."
|
||||
|
||||
msgid "Generate a script"
|
||||
msgstr "스크립트 생성"
|
||||
|
||||
msgid "Generate user script"
|
||||
msgstr "사용자 스크립트 생성"
|
||||
|
||||
msgid "Generate and save the prepared script."
|
||||
msgstr "준비된 스크립트를 생성하고 저장합니다."
|
||||
|
||||
msgid "User can add his script or generate a new one from the selection options."
|
||||
msgstr "사용자는 고유한 스크립트를 추가하거나 선택 옵션에서 새 스크립트를 생성할 수 있습니다."
|
||||
|
||||
msgid "Set test address (only one recommended)."
|
||||
msgstr "테스트 주소 설정(1개만 권장)."
|
||||
|
||||
msgid "The available options depend on the previously defined main action (interface or router restart)."
|
||||
msgstr "사용 가능한 옵션은 이전에 정의된 주요 작업(인터페이스 또는 라우터 재시작)에 따라 다릅니다."
|
||||
|
||||
msgid "user code"
|
||||
msgstr "사용자 코드"
|
||||
|
||||
msgid "Add custom commands before restarting the device."
|
||||
msgstr "장치를 재시작하기 전에 사용자 정의 명령을 추가합니다."
|
||||
|
||||
msgid "from script:"
|
||||
msgstr "스크립트에서:"
|
||||
|
||||
msgid "USER-SCRIPT:"
|
||||
msgstr "사용자 스크립트:"
|
||||
|
||||
msgid "Soft modem restart"
|
||||
msgstr "모뎀 소프트 재시작"
|
||||
|
||||
msgid "Hard modem restart"
|
||||
msgstr "모뎀 하드 재시작"
|
||||
|
||||
msgid "Space for user actions"
|
||||
msgstr "사용자 작업 공간"
|
||||
|
||||
msgid "Commands before main action"
|
||||
msgstr "주요 작업 전 명령"
|
||||
|
||||
msgid "Commands after main action"
|
||||
msgstr "주요 작업 후 명령"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "로드 중..."
|
||||
|
||||
msgid "Waiting for ping command execution..."
|
||||
msgstr "ping 명령 실행 대기 중..."
|
||||
|
||||
msgid "Watchdog initialized"
|
||||
msgstr "워치도그가 초기화되었습니다"
|
||||
|
||||
msgid "uptime"
|
||||
msgstr "가동 시간"
|
||||
|
||||
msgid "hosts"
|
||||
msgstr "호스트"
|
||||
@@ -0,0 +1,400 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Rafał Wabik (IceG)\n"
|
||||
"Language: nl\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
|
||||
msgid "Connection Monitor"
|
||||
msgstr "Verbindingsmonitor"
|
||||
|
||||
msgid "Connection monitor settings"
|
||||
msgstr "Instellingen verbindingsmonitor"
|
||||
|
||||
msgid "Configuration lite-watchdog"
|
||||
msgstr "Configuratie lite-watchdog"
|
||||
|
||||
msgid "Configuration panel for lite-watchdog and gui application."
|
||||
msgstr "Configuratiepaneel voor lite-watchdog en GUI-applicatie."
|
||||
|
||||
msgid "Interface"
|
||||
msgstr "Interface"
|
||||
|
||||
msgid "Network interface for Internet access."
|
||||
msgstr "Netwerkinterface voor internettoegang."
|
||||
|
||||
msgid "Port for communication with the modem"
|
||||
msgstr "Poort voor communicatie met de modem"
|
||||
|
||||
msgid "Select one of the available ttyUSBX ports."
|
||||
msgstr "Selecteer een van de beschikbare ttyUSBX-poorten."
|
||||
|
||||
msgid "Please select a port"
|
||||
msgstr "Selecteer alstublieft een poort"
|
||||
|
||||
msgid "Perform a modem restart before resuming the connection."
|
||||
msgstr "Voer een modemherstartuit alvorens de verbinding te hervatten."
|
||||
|
||||
msgid "Restart modem with AT command"
|
||||
msgstr "Modem herstarten met AT-commando"
|
||||
|
||||
msgid "AT command to restart the modem."
|
||||
msgstr "AT-commando om de modem opnieuw te starten."
|
||||
|
||||
msgid "AT command"
|
||||
msgstr "AT-commando"
|
||||
|
||||
msgid "total checks"
|
||||
msgstr "totale controles"
|
||||
|
||||
msgid "Configuration of the connection monitor known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Configuratie van de verbindingsmonitor bekend uit het easyconfig-pakket. Meer informatie op het %seko.one.pl-forum%s."
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "eko.one.pl-forum"
|
||||
|
||||
msgid "Enable a connection monitor."
|
||||
msgstr "Schakel een verbindingsmonitor in."
|
||||
|
||||
msgid "System startup delay"
|
||||
msgstr "Systeemstartvertraging"
|
||||
|
||||
msgid "[1 - 59] minute(s)"
|
||||
msgstr "[1 - 59] minuten"
|
||||
|
||||
msgid "Expect a decimal value between one and fifty-nine"
|
||||
msgstr "Verwacht een decimale waarde tussen een en negenenvijftig"
|
||||
|
||||
msgid "Address or name"
|
||||
msgstr "Adres of naam"
|
||||
|
||||
msgid "Verification period"
|
||||
msgstr "Verificatieperiode"
|
||||
|
||||
msgid "Number of failed checks"
|
||||
msgstr "Aantal mislukte controles"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Actie"
|
||||
|
||||
msgid "Connection restart"
|
||||
msgstr "Verbinding opnieuw starten"
|
||||
|
||||
msgid "Modem restart"
|
||||
msgstr "Modem herstarten"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Apparaat opnieuw starten"
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor has started."
|
||||
msgstr "Wijzigingen zijn opgeslagen. Verbindingsmonitor is gestart."
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor is not running."
|
||||
msgstr "Wijzigingen zijn opgeslagen. Verbindingsmonitor wordt niet uitgevoerd."
|
||||
|
||||
msgid "Last check"
|
||||
msgstr "Laatste controle"
|
||||
|
||||
msgid "minimum"
|
||||
msgstr "minimum"
|
||||
|
||||
msgid "average"
|
||||
msgstr "gemiddelde"
|
||||
|
||||
msgid "maximum"
|
||||
msgstr "maximum"
|
||||
|
||||
msgid "Information"
|
||||
msgstr "Informatie"
|
||||
|
||||
msgid "Basic settings"
|
||||
msgstr "Basisinstellingen"
|
||||
|
||||
msgid "failed"
|
||||
msgstr "mislukt"
|
||||
|
||||
msgid "Failed"
|
||||
msgstr "Mislukt"
|
||||
|
||||
msgid "out of"
|
||||
msgstr "van"
|
||||
|
||||
msgid "Activity log"
|
||||
msgstr "Activiteitenlogboek"
|
||||
|
||||
msgid "Wrong regular expression"
|
||||
msgstr "Onjuiste reguliere expressie"
|
||||
|
||||
msgid "No matches..."
|
||||
msgstr "Geen resultaten..."
|
||||
|
||||
msgid "Clear connection monitor log?"
|
||||
msgstr "Verbindingsmonitorlog wissen?"
|
||||
|
||||
msgid "Download error"
|
||||
msgstr "Downloadfout"
|
||||
|
||||
msgid "Unable to load log data:"
|
||||
msgstr "Kan loggegevens niet laden:"
|
||||
|
||||
msgid "Entries filter"
|
||||
msgstr "Invoerfilter"
|
||||
|
||||
msgid "Filter entries using regexp, press [Delete] to delete all text"
|
||||
msgstr "Filter invoeren met behulp van regexp, druk [Delete] om alle tekst te verwijderen"
|
||||
|
||||
msgid "Refresh"
|
||||
msgstr "Vernieuwen"
|
||||
|
||||
msgid "Connection monitor activity log"
|
||||
msgstr "Verbindingsmonitor activiteitenlogboek"
|
||||
|
||||
msgid "Connection monitor activity log known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Verbindingsmonitor activiteitenlogboek bekend uit het easyconfig-pakket. Meer informatie op het %seko.one.pl-forum%s."
|
||||
|
||||
msgid "Show only the last entries"
|
||||
msgstr "Alleen de laatste invoeren weergeven"
|
||||
|
||||
msgid "Message filter"
|
||||
msgstr "Berichtfilter"
|
||||
|
||||
msgid "Refresh log"
|
||||
msgstr "Logboek vernieuwen"
|
||||
|
||||
msgid "Clear log"
|
||||
msgstr "Logboek wissen"
|
||||
|
||||
msgid "Download log"
|
||||
msgstr "Logboek downloaden"
|
||||
|
||||
msgid "Upload log file"
|
||||
msgstr "Logbestand uploaden"
|
||||
|
||||
msgid "Type of messages"
|
||||
msgstr "Type berichten"
|
||||
|
||||
msgid "All actions"
|
||||
msgstr "Alle acties"
|
||||
|
||||
msgid "Only connection problems"
|
||||
msgstr "Alleen verbindingsproblemen"
|
||||
|
||||
msgid "LED settings"
|
||||
msgstr "LED-instellingen"
|
||||
|
||||
msgid "The LED shows the internet connection status."
|
||||
msgstr "De LED geeft de status van de internetverbinding aan."
|
||||
|
||||
msgid "Select the status LED."
|
||||
msgstr "Selecteer de status-LED."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Gebruikersscript bewerken"
|
||||
|
||||
msgid "Before executing the action, system calls a script in which user can place his own commands."
|
||||
msgstr "Alvorens de actie uit te voeren, roept het systeem een script aan waarin de gebruiker zijn eigen commando's kan plaatsen."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Gebruikersscript bewerken"
|
||||
|
||||
msgid "User script"
|
||||
msgstr "Gebruikersscript"
|
||||
|
||||
msgid "User-defined commands."
|
||||
msgstr "Door gebruiker gedefinieerde commando's."
|
||||
|
||||
msgid "Contents have been saved"
|
||||
msgstr "Inhoud is opgeslagen"
|
||||
|
||||
msgid "Unable to save the contents"
|
||||
msgstr "Kan inhoud niet opslaan"
|
||||
|
||||
msgid "Unable to read the contents"
|
||||
msgstr "Kan inhoud niet lezen"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
msgid "ONLINE"
|
||||
msgstr "ONLINE"
|
||||
|
||||
msgid "OFFLINE"
|
||||
msgstr "OFFLINE"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Actie"
|
||||
|
||||
msgid "Restarting interface"
|
||||
msgstr "Verbinding opnieuw starten"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Apparaat opnieuw starten"
|
||||
|
||||
msgid "At command was sent to modem"
|
||||
msgstr "AT-commando is naar modem verzonden"
|
||||
|
||||
msgid "January"
|
||||
msgstr "Januari"
|
||||
|
||||
msgid "February"
|
||||
msgstr "Februari"
|
||||
|
||||
msgid "March"
|
||||
msgstr "Maart"
|
||||
|
||||
msgid "April"
|
||||
msgstr "April"
|
||||
|
||||
msgid "May"
|
||||
msgstr "Mei"
|
||||
|
||||
msgid "June"
|
||||
msgstr "Juni"
|
||||
|
||||
msgid "July"
|
||||
msgstr "Juli"
|
||||
|
||||
msgid "August"
|
||||
msgstr "Augustus"
|
||||
|
||||
msgid "September"
|
||||
msgstr "September"
|
||||
|
||||
msgid "October"
|
||||
msgstr "Oktober"
|
||||
|
||||
msgid "November"
|
||||
msgstr "November"
|
||||
|
||||
msgid "December"
|
||||
msgstr "December"
|
||||
|
||||
msgid "Monday"
|
||||
msgstr "Maandag"
|
||||
|
||||
msgid "Tuesday"
|
||||
msgstr "Dinsdag"
|
||||
|
||||
msgid "Wednesday"
|
||||
msgstr "Woensdag"
|
||||
|
||||
msgid "Thursday"
|
||||
msgstr "Donderdag"
|
||||
|
||||
msgid "Friday"
|
||||
msgstr "Vrijdag"
|
||||
|
||||
msgid "Saturday"
|
||||
msgstr "Zaterdag"
|
||||
|
||||
msgid "Sunday"
|
||||
msgstr "Zondag"
|
||||
|
||||
msgid "User Script Wizard"
|
||||
msgstr "Wizard gebruikersscript"
|
||||
|
||||
msgid "Hint: You do not need to save anything in the settings. Select the actions and click the Generate button."
|
||||
msgstr "Hint: U hoeft niets in de instellingen op te slaan. Selecteer de acties en klik op de knop Genereren."
|
||||
|
||||
msgid "modem restart"
|
||||
msgstr "modem herstarten"
|
||||
|
||||
msgid "reboot"
|
||||
msgstr "apparaat opnieuw starten"
|
||||
|
||||
msgid "Restart modem if restarting the interfaces did not restore internet access."
|
||||
msgstr "Start de modem opnieuw op als het herstarten van de interfaces internettoegangnie heeft hersteld."
|
||||
|
||||
msgid "Router reboot if restarting the interfaces did not restore internet access."
|
||||
msgstr "Als het herstarten van de interfaces internettoegangnie heeft hersteld, start u de router opnieuw op."
|
||||
|
||||
msgid "Actions in script"
|
||||
msgstr "Acties in script"
|
||||
|
||||
msgid "Modem actions"
|
||||
msgstr "Modemacties"
|
||||
|
||||
msgid "Restart modem using at commands"
|
||||
msgstr "Start modem opnieuw op met AT-commando's."
|
||||
|
||||
msgid "effect depends on modem"
|
||||
msgstr "effect is afhankelijk van modem"
|
||||
|
||||
msgid "Some at commands can also restart the router."
|
||||
msgstr "Sommige AT-commando's kunnen ook de router opnieuw starten."
|
||||
|
||||
msgid "soft restart"
|
||||
msgstr "zachte herstart"
|
||||
|
||||
msgid "hard restart"
|
||||
msgstr "harde herstart"
|
||||
|
||||
msgid "Restart modem via GPIO."
|
||||
msgstr "Modem herstarten via GPIO."
|
||||
|
||||
msgid "Restart modem using GPIO"
|
||||
msgstr "Start modem opnieuw op met behulp van GPIO"
|
||||
|
||||
msgid "Select the GPIO related to 4G/5G modem."
|
||||
msgstr "Selecteer de GPIO met betrekking tot 4G/5G-modem."
|
||||
|
||||
msgid "Generate a script"
|
||||
msgstr "Een script genereren"
|
||||
|
||||
msgid "Generate user script"
|
||||
msgstr "Gebruikersscript genereren"
|
||||
|
||||
msgid "Generate and save the prepared script."
|
||||
msgstr "Genereer en sla het voorbereide script op."
|
||||
|
||||
msgid "User can add his script or generate a new one from the selection options."
|
||||
msgstr "Gebruiker kan zijn script toevoegen of een nieuw genereren uit de selectieopties."
|
||||
|
||||
msgid "Set test address (only one recommended)."
|
||||
msgstr "Stel testadres in (slechts één aanbevolen)."
|
||||
|
||||
msgid "The available options depend on the previously defined main action (interface or router restart)."
|
||||
msgstr "De beschikbare opties zijn afhankelijk van de eerder gedefinieerde hoofdactie (interface- of routerherstarten)."
|
||||
|
||||
msgid "user code"
|
||||
msgstr "gebruikerscode"
|
||||
|
||||
msgid "Add custom commands before restarting the device."
|
||||
msgstr "Voeg aangepaste commando's toe alvorens het apparaat opnieuw te starten."
|
||||
|
||||
msgid "from script:"
|
||||
msgstr "uit script:"
|
||||
|
||||
msgid "USER-SCRIPT:"
|
||||
msgstr "GEBRUIKERSSCRIPT:"
|
||||
|
||||
msgid "Soft modem restart"
|
||||
msgstr "Zachte modemherstart"
|
||||
|
||||
msgid "Hard modem restart"
|
||||
msgstr "Harde modemherstart"
|
||||
|
||||
msgid "Space for user actions"
|
||||
msgstr "Ruimte voor gebruikersacties"
|
||||
|
||||
msgid "Commands before main action"
|
||||
msgstr "Commando's vóór hoofdactie"
|
||||
|
||||
msgid "Commands after main action"
|
||||
msgstr "Commando's na hoofdactie"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "Laden..."
|
||||
|
||||
msgid "Waiting for ping command execution..."
|
||||
msgstr "Wachten op uitvoering van ping-commando..."
|
||||
|
||||
msgid "Watchdog initialized"
|
||||
msgstr "Watchdog geïnitialiseerd"
|
||||
|
||||
msgid "uptime"
|
||||
msgstr "uptime"
|
||||
|
||||
msgid "hosts"
|
||||
msgstr "hosts"
|
||||
@@ -37,8 +37,14 @@ msgstr "Restart modemu za pomocą polecenia AT"
|
||||
msgid "AT command to restart the modem."
|
||||
msgstr "Polecenie AT restartujące modem."
|
||||
|
||||
msgid "Configuration of the connection monitor, which is a conversion of the monitor known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Konfiguracja monitora połączenia, który jest konwersją monitora znanego z pakietu easyconfig. Więcej informacji na %sforum eko.one.pl%s."
|
||||
msgid "AT command"
|
||||
msgstr "Polecenie AT"
|
||||
|
||||
msgid "total checks"
|
||||
msgstr "łącznie sprawdzeń"
|
||||
|
||||
msgid "Configuration of the connection monitor known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Konfiguracja monitora połączenia znanego z pakietu easyconfig. Więcej informacji na %sforum eko.one.pl%s."
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "forum eko.one.pl"
|
||||
@@ -68,7 +74,7 @@ msgid "Action"
|
||||
msgstr "Akcja"
|
||||
|
||||
msgid "Connection restart"
|
||||
msgstr "Restart połączenia z internetem"
|
||||
msgstr "Ponowne uruchomienie połączenia z internetem"
|
||||
|
||||
msgid "Modem restart"
|
||||
msgstr "Restart modemu"
|
||||
@@ -139,8 +145,8 @@ msgstr "Odśwież"
|
||||
msgid "Connection monitor activity log"
|
||||
msgstr "Dziennik aktywności monitora połączenia"
|
||||
|
||||
msgid "Connection monitor activity log, which is a conversion of the monitor known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Dziennik aktywności monitora połączenia, który jest konwersją monitora znanego z pakietu easyconfig. Więcej informacji na %sforum eko.one.pl%s."
|
||||
msgid "Connection monitor activity log known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Dziennik aktywności monitora połączenia znanego z pakietu easyconfig. Więcej informacji na %sforum eko.one.pl%s."
|
||||
|
||||
msgid "Show only the last entries"
|
||||
msgstr "Pokaż tylko ostatnie wpisy"
|
||||
@@ -157,6 +163,9 @@ msgstr "Wyczyść dziennik"
|
||||
msgid "Download log"
|
||||
msgstr "Pobierz dziennik"
|
||||
|
||||
msgid "Upload log file"
|
||||
msgstr "Załaduj plik dziennika"
|
||||
|
||||
msgid "Type of messages"
|
||||
msgstr "Rodzaj komunikatów"
|
||||
|
||||
@@ -218,7 +227,7 @@ msgid "Reboot"
|
||||
msgstr "Ponowne uruchomienie urządzenia"
|
||||
|
||||
msgid "At command was sent to modem"
|
||||
msgstr "Polecenie at zostało wysłane do modemu"
|
||||
msgstr "Wysłano polecenie at do modemu"
|
||||
|
||||
msgid "January"
|
||||
msgstr "Styczeń"
|
||||
@@ -276,3 +285,111 @@ msgstr "Sobota"
|
||||
|
||||
msgid "Sunday"
|
||||
msgstr "Niedziela"
|
||||
|
||||
msgid "User Script Wizard"
|
||||
msgstr "Kreator skryptów użytkownika"
|
||||
|
||||
msgid "Hint: You do not need to save anything in the settings. Select the actions and click the Generate button."
|
||||
msgstr "Wskazówka: Nie musisz niczego zapisywać w ustawieniach. Wybierz akcje i kliknij przycisk Generuj."
|
||||
|
||||
msgid "modem restart"
|
||||
msgstr "restart modemu"
|
||||
|
||||
msgid "reboot"
|
||||
msgstr "ponowne uruchomienie urządzenia"
|
||||
|
||||
msgid "Restart modem if restarting the interfaces did not restore internet access."
|
||||
msgstr "Uruchom ponownie modem, jeśli restart interfejsu nie przywrócił dostępu do internetu."
|
||||
|
||||
msgid "Router reboot if restarting the interfaces did not restore internet access."
|
||||
msgstr "Jeśli restart interfejsu nie przywrócił dostępu do internetu, uruchom ponownie router."
|
||||
|
||||
msgid "Actions in script"
|
||||
msgstr "Akcje w skrypcie"
|
||||
|
||||
msgid "Modem actions"
|
||||
msgstr "Obsługa modemu"
|
||||
|
||||
msgid "Restart modem using at commands"
|
||||
msgstr "Uruchom ponownie modem za pomocą poleceń at."
|
||||
|
||||
msgid "effect depends on modem"
|
||||
msgstr "efekt zależy od modemu"
|
||||
|
||||
msgid "Some at commands can also restart the router."
|
||||
msgstr "Niektóre polecenia at mogą również obsługiwać ponowne uruchomienie routera."
|
||||
|
||||
msgid "soft restart"
|
||||
msgstr "miękki restart"
|
||||
|
||||
msgid "hard restart"
|
||||
msgstr "twardy restart"
|
||||
|
||||
msgid "Restart modem via GPIO."
|
||||
msgstr "Restart modemu za pomocą interfejsu GPIO."
|
||||
|
||||
msgid "Restart modem using GPIO"
|
||||
msgstr "Uruchom ponownie modem za pomocą GPIO"
|
||||
|
||||
msgid "Select the GPIO related to 4G/5G modem."
|
||||
msgstr "Wybierz GPIO przypisane do modemu 4G/5G."
|
||||
|
||||
msgid "Generate a script"
|
||||
msgstr "Wygeneruj skrypt"
|
||||
|
||||
msgid "Generate user script"
|
||||
msgstr "Wygeneruj skrypt użytkownika"
|
||||
|
||||
msgid "Generate and save the prepared script."
|
||||
msgstr "Wygeneruj i zapisz przygotowany skrypt."
|
||||
|
||||
msgid "User can add his script or generate a new one from the selection options."
|
||||
msgstr "Użytkownik może dodać swój skrypt lub wygenerować nowy z opcji wyboru."
|
||||
|
||||
msgid "Set test address (only one recommended)."
|
||||
msgstr "Ustaw adres do odpytywania (zalecany tylko jeden)."
|
||||
|
||||
msgid "The available options depend on the previously defined main action (interface or router restart)."
|
||||
msgstr "Dostępne opcje zależą od zdefiniowanej wcześniej akcji głównej (restartu interfejsu lub routera)."
|
||||
|
||||
msgid "user code"
|
||||
msgstr "kod użytkownika"
|
||||
|
||||
msgid "Add custom commands before restarting the device."
|
||||
msgstr "Przed ponownym uruchomieniem urządzenia dodaj polecenia niestandardowe."
|
||||
|
||||
msgid "from script:"
|
||||
msgstr "ze skryptu:"
|
||||
|
||||
msgid "USER-SCRIPT:"
|
||||
msgstr "Skrypt użytkownika:"
|
||||
|
||||
msgid "Soft modem restart"
|
||||
msgstr "Miękki restart modemu"
|
||||
|
||||
msgid "Hard modem restart"
|
||||
msgstr "Twardy restart modemu"
|
||||
|
||||
msgid "Space for user actions"
|
||||
msgstr "Miejsce na akcje użytkownika"
|
||||
|
||||
msgid "Commands before main action"
|
||||
msgstr "Polecenia przed główną akcją"
|
||||
|
||||
msgid "Commands after main action"
|
||||
msgstr "Polecenia po akcji głównej"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "Wczytywanie..."
|
||||
|
||||
msgid "Waiting for ping command execution..."
|
||||
msgstr "Oczekiwanie na wykonanie polecenia ping..."
|
||||
|
||||
msgid "Watchdog initialized"
|
||||
msgstr "Watchdog zainicjowany"
|
||||
|
||||
msgid "uptime"
|
||||
msgstr "czas działania"
|
||||
|
||||
msgid "hosts"
|
||||
msgstr "host(-y)"
|
||||
@@ -0,0 +1,399 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language: pt_BR\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
|
||||
msgid "Connection Monitor"
|
||||
msgstr "Monitor de Conexão"
|
||||
|
||||
msgid "Connection monitor settings"
|
||||
msgstr "Configurações do monitor de conexão"
|
||||
|
||||
msgid "Configuration lite-watchdog"
|
||||
msgstr "Configuração lite-watchdog"
|
||||
|
||||
msgid "Configuration panel for lite-watchdog and gui application."
|
||||
msgstr "Painel de configuração para aplicativo lite-watchdog e GUI."
|
||||
|
||||
msgid "Interface"
|
||||
msgstr "Interface"
|
||||
|
||||
msgid "Network interface for Internet access."
|
||||
msgstr "Interface de rede para acesso à Internet."
|
||||
|
||||
msgid "Port for communication with the modem"
|
||||
msgstr "Porta para comunicação com o modem"
|
||||
|
||||
msgid "Select one of the available ttyUSBX ports."
|
||||
msgstr "Selecione uma das portas ttyUSBX disponíveis."
|
||||
|
||||
msgid "Please select a port"
|
||||
msgstr "Selecione uma porta"
|
||||
|
||||
msgid "Perform a modem restart before resuming the connection."
|
||||
msgstr "Execute uma reinicialização do modem antes de retomar a conexão."
|
||||
|
||||
msgid "Restart modem with AT command"
|
||||
msgstr "Reiniciar modem com comando AT"
|
||||
|
||||
msgid "AT command to restart the modem."
|
||||
msgstr "Comando AT para reiniciar o modem."
|
||||
|
||||
msgid "AT command"
|
||||
msgstr "Comando AT"
|
||||
|
||||
msgid "total checks"
|
||||
msgstr "verificações totais"
|
||||
|
||||
msgid "Configuration of the connection monitor known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Configuração do monitor de conexão conhecido do pacote easyconfig. Mais informações no %sfórum eko.one.pl%s."
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "fórum eko.one.pl"
|
||||
|
||||
msgid "Enable a connection monitor."
|
||||
msgstr "Ative um monitor de conexão."
|
||||
|
||||
msgid "System startup delay"
|
||||
msgstr "Atraso de inicialização do sistema"
|
||||
|
||||
msgid "[1 - 59] minute(s)"
|
||||
msgstr "[1 - 59] minuto(s)"
|
||||
|
||||
msgid "Expect a decimal value between one and fifty-nine"
|
||||
msgstr "Esperado um valor decimal entre um e cinquenta e nove"
|
||||
|
||||
msgid "Address or name"
|
||||
msgstr "Endereço ou nome"
|
||||
|
||||
msgid "Verification period"
|
||||
msgstr "Período de verificação"
|
||||
|
||||
msgid "Number of failed checks"
|
||||
msgstr "Número de verificações com falha"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Ação"
|
||||
|
||||
msgid "Connection restart"
|
||||
msgstr "Reinicializar conexão"
|
||||
|
||||
msgid "Modem restart"
|
||||
msgstr "Reinicializar modem"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Reiniciar"
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor has started."
|
||||
msgstr "As alterações foram salvas. Monitor de Conexão foi iniciado."
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor is not running."
|
||||
msgstr "As alterações foram salvas. Monitor de Conexão não está em execução."
|
||||
|
||||
msgid "Last check"
|
||||
msgstr "Última verificação"
|
||||
|
||||
msgid "minimum"
|
||||
msgstr "mínimo"
|
||||
|
||||
msgid "average"
|
||||
msgstr "médio"
|
||||
|
||||
msgid "maximum"
|
||||
msgstr "máximo"
|
||||
|
||||
msgid "Information"
|
||||
msgstr "Informação"
|
||||
|
||||
msgid "Basic settings"
|
||||
msgstr "Configurações básicas"
|
||||
|
||||
msgid "failed"
|
||||
msgstr "falha"
|
||||
|
||||
msgid "Failed"
|
||||
msgstr "Falha"
|
||||
|
||||
msgid "out of"
|
||||
msgstr "de"
|
||||
|
||||
msgid "Activity log"
|
||||
msgstr "Log de atividades"
|
||||
|
||||
msgid "Wrong regular expression"
|
||||
msgstr "Expressão regular incorreta"
|
||||
|
||||
msgid "No matches..."
|
||||
msgstr "Nenhuma correspondência..."
|
||||
|
||||
msgid "Clear connection monitor log?"
|
||||
msgstr "Limpar o log do monitor de conexão?"
|
||||
|
||||
msgid "Download error"
|
||||
msgstr "Erro de download"
|
||||
|
||||
msgid "Unable to load log data:"
|
||||
msgstr "Não é possível carregar dados de log:"
|
||||
|
||||
msgid "Entries filter"
|
||||
msgstr "Filtro de entradas"
|
||||
|
||||
msgid "Filter entries using regexp, press [Delete] to delete all text"
|
||||
msgstr "Filtrar entradas usando regexp, pressione [Excluir] para excluir todo o texto"
|
||||
|
||||
msgid "Refresh"
|
||||
msgstr "Atualizar"
|
||||
|
||||
msgid "Connection monitor activity log"
|
||||
msgstr "Log de atividades do monitor de conexão"
|
||||
|
||||
msgid "Connection monitor activity log known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Log de atividades do monitor de conexão conhecido do pacote easyconfig. Mais informações no %sfórum eko.one.pl%s."
|
||||
|
||||
msgid "Show only the last entries"
|
||||
msgstr "Mostrar apenas as últimas entradas"
|
||||
|
||||
msgid "Message filter"
|
||||
msgstr "Filtro de mensagens"
|
||||
|
||||
msgid "Refresh log"
|
||||
msgstr "Atualizar log"
|
||||
|
||||
msgid "Clear log"
|
||||
msgstr "Limpar log"
|
||||
|
||||
msgid "Download log"
|
||||
msgstr "Download log"
|
||||
|
||||
msgid "Upload log file"
|
||||
msgstr "Carregar arquivo de log"
|
||||
|
||||
msgid "Type of messages"
|
||||
msgstr "Tipo de mensagens"
|
||||
|
||||
msgid "All actions"
|
||||
msgstr "Todas as ações"
|
||||
|
||||
msgid "Only connection problems"
|
||||
msgstr "Apenas problemas de conexão"
|
||||
|
||||
msgid "LED settings"
|
||||
msgstr "Configurações de LED"
|
||||
|
||||
msgid "The LED shows the internet connection status."
|
||||
msgstr "O LED mostra o status da conexão com a Internet."
|
||||
|
||||
msgid "Select the status LED."
|
||||
msgstr "Selecione o LED de status."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Editar script do usuário"
|
||||
|
||||
msgid "Before executing the action, system calls a script in which user can place his own commands."
|
||||
msgstr "Antes de executar a ação, o sistema chama um script em que o usuário pode inserir seus próprios comandos."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Editar script do usuário"
|
||||
|
||||
msgid "User script"
|
||||
msgstr "Script do usuário"
|
||||
|
||||
msgid "User-defined commands."
|
||||
msgstr "Comandos definidos pelo usuário."
|
||||
|
||||
msgid "Contents have been saved"
|
||||
msgstr "O conteúdo foi salvo"
|
||||
|
||||
msgid "Unable to save the contents"
|
||||
msgstr "Não é possível salvar o conteúdo"
|
||||
|
||||
msgid "Unable to read the contents"
|
||||
msgstr "Não é possível ler o conteúdo"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
msgid "ONLINE"
|
||||
msgstr "Online"
|
||||
|
||||
msgid "OFFLINE"
|
||||
msgstr "Offline"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Ação"
|
||||
|
||||
msgid "Restarting interface"
|
||||
msgstr "Reiniciando interface"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Reiniciar"
|
||||
|
||||
msgid "At command was sent to modem"
|
||||
msgstr "Comando AT foi enviado para o modem"
|
||||
|
||||
msgid "January"
|
||||
msgstr "Janeiro"
|
||||
|
||||
msgid "February"
|
||||
msgstr "Fevereiro"
|
||||
|
||||
msgid "March"
|
||||
msgstr "Março"
|
||||
|
||||
msgid "April"
|
||||
msgstr "Abril"
|
||||
|
||||
msgid "May"
|
||||
msgstr "Maio"
|
||||
|
||||
msgid "June"
|
||||
msgstr "Junho"
|
||||
|
||||
msgid "July"
|
||||
msgstr "Julho"
|
||||
|
||||
msgid "August"
|
||||
msgstr "Agosto"
|
||||
|
||||
msgid "September"
|
||||
msgstr "Setembro"
|
||||
|
||||
msgid "October"
|
||||
msgstr "Outubro"
|
||||
|
||||
msgid "November"
|
||||
msgstr "Novembro"
|
||||
|
||||
msgid "December"
|
||||
msgstr "Dezembro"
|
||||
|
||||
msgid "Monday"
|
||||
msgstr "Segunda-feira"
|
||||
|
||||
msgid "Tuesday"
|
||||
msgstr "Terça-feira"
|
||||
|
||||
msgid "Wednesday"
|
||||
msgstr "Quarta-feira"
|
||||
|
||||
msgid "Thursday"
|
||||
msgstr "Quinta-feira"
|
||||
|
||||
msgid "Friday"
|
||||
msgstr "Sexta-feira"
|
||||
|
||||
msgid "Saturday"
|
||||
msgstr "Sábado"
|
||||
|
||||
msgid "Sunday"
|
||||
msgstr "Domingo"
|
||||
|
||||
msgid "User Script Wizard"
|
||||
msgstr "Assistente de Script do Usuário"
|
||||
|
||||
msgid "Hint: You do not need to save anything in the settings. Select the actions and click the Generate button."
|
||||
msgstr "Dica: Você não precisa salvar nada nas configurações. Selecione as ações e clique no botão Gerar."
|
||||
|
||||
msgid "modem restart"
|
||||
msgstr "reinicializar modem"
|
||||
|
||||
msgid "reboot"
|
||||
msgstr "reinicializar"
|
||||
|
||||
msgid "Restart modem if restarting the interfaces did not restore internet access."
|
||||
msgstr "Reinicie o modem se reiniciar as interfaces não restaurar o acesso à Internet."
|
||||
|
||||
msgid "Router reboot if restarting the interfaces did not restore internet access."
|
||||
msgstr "Reiniciar o roteador se reiniciar as interfaces não restaurar o acesso à Internet."
|
||||
|
||||
msgid "Actions in script"
|
||||
msgstr "Ações no script"
|
||||
|
||||
msgid "Modem actions"
|
||||
msgstr "Ações do modem"
|
||||
|
||||
msgid "Restart modem using at commands"
|
||||
msgstr "Reiniciar modem usando comandos AT"
|
||||
|
||||
msgid "effect depends on modem"
|
||||
msgstr "o efeito depende do modem"
|
||||
|
||||
msgid "Some at commands can also restart the router."
|
||||
msgstr "Alguns comandos AT também podem reiniciar o roteador."
|
||||
|
||||
msgid "soft restart"
|
||||
msgstr "reinicialização suave"
|
||||
|
||||
msgid "hard restart"
|
||||
msgstr "reinicialização forçada"
|
||||
|
||||
msgid "Restart modem via GPIO."
|
||||
msgstr "Reiniciar modem via GPIO."
|
||||
|
||||
msgid "Restart modem using GPIO"
|
||||
msgstr "Reiniciar modem usando GPIO"
|
||||
|
||||
msgid "Select the GPIO related to 4G/5G modem."
|
||||
msgstr "Selecione o GPIO relacionado ao modem 4G/5G."
|
||||
|
||||
msgid "Generate a script"
|
||||
msgstr "Gerar um script"
|
||||
|
||||
msgid "Generate user script"
|
||||
msgstr "Gerar script do usuário"
|
||||
|
||||
msgid "Generate and save the prepared script."
|
||||
msgstr "Gere e salve o script preparado."
|
||||
|
||||
msgid "User can add his script or generate a new one from the selection options."
|
||||
msgstr "O usuário pode adicionar seu script ou gerar um novo a partir das opções de seleção."
|
||||
|
||||
msgid "Set test address (only one recommended)."
|
||||
msgstr "Definir endereço de teste (apenas um recomendado)."
|
||||
|
||||
msgid "The available options depend on the previously defined main action (interface or router restart)."
|
||||
msgstr "As opções disponíveis dependem da ação principal definida anteriormente (reinicialização da interface ou do roteador)."
|
||||
|
||||
msgid "user code"
|
||||
msgstr "código do usuário"
|
||||
|
||||
msgid "Add custom commands before restarting the device."
|
||||
msgstr "Adicione comandos personalizados antes de reiniciar o dispositivo."
|
||||
|
||||
msgid "from script:"
|
||||
msgstr "do script:"
|
||||
|
||||
msgid "USER-SCRIPT:"
|
||||
msgstr "SCRIPT-USUÁRIO:"
|
||||
|
||||
msgid "Soft modem restart"
|
||||
msgstr "Reinicialização suave do modem"
|
||||
|
||||
msgid "Hard modem restart"
|
||||
msgstr "Reinicialização forçada do modem"
|
||||
|
||||
msgid "Space for user actions"
|
||||
msgstr "Espaço para ações do usuário"
|
||||
|
||||
msgid "Commands before main action"
|
||||
msgstr "Comandos antes da ação principal"
|
||||
|
||||
msgid "Commands after main action"
|
||||
msgstr "Comandos após a ação principal"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "Carregando..."
|
||||
|
||||
msgid "Waiting for ping command execution..."
|
||||
msgstr "Aguardando execução do comando ping..."
|
||||
|
||||
msgid "Watchdog initialized"
|
||||
msgstr "Watchdog inicializado"
|
||||
|
||||
msgid "uptime"
|
||||
msgstr "tempo de atividade"
|
||||
|
||||
msgid "hosts"
|
||||
msgstr "hosts"
|
||||
@@ -0,0 +1,401 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Rafał Wabik (IceG)\n"
|
||||
"Language: ru\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
msgid "Connection Monitor"
|
||||
msgstr "Монитор подключения"
|
||||
|
||||
msgid "Connection monitor settings"
|
||||
msgstr "Настройки монитора подключения"
|
||||
|
||||
msgid "Configuration lite-watchdog"
|
||||
msgstr "Конфигурация lite-watchdog"
|
||||
|
||||
msgid "Configuration panel for lite-watchdog and gui application."
|
||||
msgstr "Панель настройки для приложения lite-watchdog и графического интерфейса."
|
||||
|
||||
msgid "Interface"
|
||||
msgstr "Интерфейс"
|
||||
|
||||
msgid "Network interface for Internet access."
|
||||
msgstr "Сетевой интерфейс для доступа в Интернет."
|
||||
|
||||
msgid "Port for communication with the modem"
|
||||
msgstr "Порт для связи с модемом"
|
||||
|
||||
msgid "Select one of the available ttyUSBX ports."
|
||||
msgstr "Выберите один из доступных портов ttyUSBX."
|
||||
|
||||
msgid "Please select a port"
|
||||
msgstr "Выберите порт"
|
||||
|
||||
msgid "Perform a modem restart before resuming the connection."
|
||||
msgstr "Выполните перезапуск модема перед возобновлением соединения."
|
||||
|
||||
msgid "Restart modem with AT command"
|
||||
msgstr "Перезапустить модем с помощью команды AT"
|
||||
|
||||
msgid "AT command to restart the modem."
|
||||
msgstr "Команда AT для перезапуска модема."
|
||||
|
||||
msgid "AT command"
|
||||
msgstr "Команда AT"
|
||||
|
||||
msgid "total checks"
|
||||
msgstr "всего проверок"
|
||||
|
||||
msgid "Configuration of the connection monitor known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Конфигурация монитора подключения из пакета easyconfig. Дополнительная информация на %sфоруме eko.one.pl%s."
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "форум eko.one.pl"
|
||||
|
||||
msgid "Enable a connection monitor."
|
||||
msgstr "Включить монитор подключения."
|
||||
|
||||
msgid "System startup delay"
|
||||
msgstr "Задержка запуска системы"
|
||||
|
||||
msgid "[1 - 59] minute(s)"
|
||||
msgstr "[1 - 59] минут(ы)"
|
||||
|
||||
msgid "Expect a decimal value between one and fifty-nine"
|
||||
msgstr "Ожидается десятичное значение от одного до пятидесяти девяти"
|
||||
|
||||
msgid "Address or name"
|
||||
msgstr "Адрес или имя"
|
||||
|
||||
msgid "Verification period"
|
||||
msgstr "Период проверки"
|
||||
|
||||
msgid "Number of failed checks"
|
||||
msgstr "Количество неудачных проверок"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Действие"
|
||||
|
||||
msgid "Connection restart"
|
||||
msgstr "Перезапуск соединения"
|
||||
|
||||
msgid "Modem restart"
|
||||
msgstr "Перезапуск модема"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Перезагрузка"
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor has started."
|
||||
msgstr "Изменения сохранены. Монитор подключения запущен."
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor is not running."
|
||||
msgstr "Изменения сохранены. Монитор подключения не работает."
|
||||
|
||||
msgid "Last check"
|
||||
msgstr "Последняя проверка"
|
||||
|
||||
msgid "minimum"
|
||||
msgstr "минимум"
|
||||
|
||||
msgid "average"
|
||||
msgstr "среднее"
|
||||
|
||||
msgid "maximum"
|
||||
msgstr "максимум"
|
||||
|
||||
msgid "Information"
|
||||
msgstr "Информация"
|
||||
|
||||
msgid "Basic settings"
|
||||
msgstr "Основные настройки"
|
||||
|
||||
msgid "failed"
|
||||
msgstr "неудачных"
|
||||
|
||||
msgid "Failed"
|
||||
msgstr "Неудачных"
|
||||
|
||||
msgid "out of"
|
||||
msgstr "из"
|
||||
|
||||
msgid "Activity log"
|
||||
msgstr "Журнал активности"
|
||||
|
||||
msgid "Wrong regular expression"
|
||||
msgstr "Неверное регулярное выражение"
|
||||
|
||||
msgid "No matches..."
|
||||
msgstr "Совпадений не найдено..."
|
||||
|
||||
msgid "Clear connection monitor log?"
|
||||
msgstr "Очистить журнал монитора подключения?"
|
||||
|
||||
msgid "Download error"
|
||||
msgstr "Ошибка загрузки"
|
||||
|
||||
msgid "Unable to load log data:"
|
||||
msgstr "Не удаётся загрузить данные журнала:"
|
||||
|
||||
msgid "Entries filter"
|
||||
msgstr "Фильтр записей"
|
||||
|
||||
msgid "Filter entries using regexp, press [Delete] to delete all text"
|
||||
msgstr "Фильтровать записи с помощью регулярного выражения, нажмите [Delete] для удаления всего текста"
|
||||
|
||||
msgid "Refresh"
|
||||
msgstr "Обновить"
|
||||
|
||||
msgid "Connection monitor activity log"
|
||||
msgstr "Журнал активности монитора подключения"
|
||||
|
||||
msgid "Connection monitor activity log known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Журнал активности монитора подключения из пакета easyconfig. Дополнительная информация на %sфоруме eko.one.pl%s."
|
||||
|
||||
msgid "Show only the last entries"
|
||||
msgstr "Показать только последние записи"
|
||||
|
||||
msgid "Message filter"
|
||||
msgstr "Фильтр сообщений"
|
||||
|
||||
msgid "Refresh log"
|
||||
msgstr "Обновить журнал"
|
||||
|
||||
msgid "Clear log"
|
||||
msgstr "Очистить журнал"
|
||||
|
||||
msgid "Download log"
|
||||
msgstr "Скачать журнал"
|
||||
|
||||
msgid "Upload log file"
|
||||
msgstr "Загрузить файл журнала"
|
||||
|
||||
msgid "Type of messages"
|
||||
msgstr "Тип сообщений"
|
||||
|
||||
msgid "All actions"
|
||||
msgstr "Все действия"
|
||||
|
||||
msgid "Only connection problems"
|
||||
msgstr "Только проблемы с подключением"
|
||||
|
||||
msgid "LED settings"
|
||||
msgstr "Настройки светодиода"
|
||||
|
||||
msgid "The LED shows the internet connection status."
|
||||
msgstr "Светодиод показывает состояние интернет-соединения."
|
||||
|
||||
msgid "Select the status LED."
|
||||
msgstr "Выбрать индикаторный светодиод."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Редактировать пользовательский скрипт"
|
||||
|
||||
msgid "Before executing the action, system calls a script in which user can place his own commands."
|
||||
msgstr "Перед выполнением действия система вызывает скрипт, в котором пользователь может разместить собственные команды."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Редактировать пользовательский скрипт"
|
||||
|
||||
msgid "User script"
|
||||
msgstr "Пользовательский скрипт"
|
||||
|
||||
msgid "User-defined commands."
|
||||
msgstr "Команды, определённые пользователем."
|
||||
|
||||
msgid "Contents have been saved"
|
||||
msgstr "Содержимое сохранено"
|
||||
|
||||
msgid "Unable to save the contents"
|
||||
msgstr "Не удаётся сохранить содержимое"
|
||||
|
||||
msgid "Unable to read the contents"
|
||||
msgstr "Не удаётся прочитать содержимое"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "Статус"
|
||||
|
||||
msgid "ONLINE"
|
||||
msgstr "ОНЛАЙН"
|
||||
|
||||
msgid "OFFLINE"
|
||||
msgstr "ОФЛАЙН"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Действие"
|
||||
|
||||
msgid "Restarting interface"
|
||||
msgstr "Перезапуск интерфейса"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Перезагрузка"
|
||||
|
||||
msgid "At command was sent to modem"
|
||||
msgstr "Команда AT отправлена модему"
|
||||
|
||||
msgid "January"
|
||||
msgstr "Январь"
|
||||
|
||||
msgid "February"
|
||||
msgstr "Февраль"
|
||||
|
||||
msgid "March"
|
||||
msgstr "Март"
|
||||
|
||||
msgid "April"
|
||||
msgstr "Апрель"
|
||||
|
||||
msgid "May"
|
||||
msgstr "Май"
|
||||
|
||||
msgid "June"
|
||||
msgstr "Июнь"
|
||||
|
||||
msgid "July"
|
||||
msgstr "Июль"
|
||||
|
||||
msgid "August"
|
||||
msgstr "Август"
|
||||
|
||||
msgid "September"
|
||||
msgstr "Сентябрь"
|
||||
|
||||
msgid "October"
|
||||
msgstr "Октябрь"
|
||||
|
||||
msgid "November"
|
||||
msgstr "Ноябрь"
|
||||
|
||||
msgid "December"
|
||||
msgstr "Декабрь"
|
||||
|
||||
msgid "Monday"
|
||||
msgstr "Понедельник"
|
||||
|
||||
msgid "Tuesday"
|
||||
msgstr "Вторник"
|
||||
|
||||
msgid "Wednesday"
|
||||
msgstr "Среда"
|
||||
|
||||
msgid "Thursday"
|
||||
msgstr "Четверг"
|
||||
|
||||
msgid "Friday"
|
||||
msgstr "Пятница"
|
||||
|
||||
msgid "Saturday"
|
||||
msgstr "Суббота"
|
||||
|
||||
msgid "Sunday"
|
||||
msgstr "Воскресенье"
|
||||
|
||||
msgid "User Script Wizard"
|
||||
msgstr "Мастер пользовательских скриптов"
|
||||
|
||||
msgid "Hint: You do not need to save anything in the settings. Select the actions and click the Generate button."
|
||||
msgstr "Подсказка: Вам не нужно ничего сохранять в настройках. Выберите действия и нажмите кнопку Генерировать."
|
||||
|
||||
msgid "modem restart"
|
||||
msgstr "перезапуск модема"
|
||||
|
||||
msgid "reboot"
|
||||
msgstr "перезагрузка"
|
||||
|
||||
msgid "Restart modem if restarting the interfaces did not restore internet access."
|
||||
msgstr "Перезапустите модем, если перезапуск интерфейсов не восстановил доступ в Интернет."
|
||||
|
||||
msgid "Router reboot if restarting the interfaces did not restore internet access."
|
||||
msgstr "Перезагрузка маршрутизатора, если перезапуск интерфейсов не восстановил доступ в Интернет."
|
||||
|
||||
msgid "Actions in script"
|
||||
msgstr "Действия в скрипте"
|
||||
|
||||
msgid "Modem actions"
|
||||
msgstr "Действия с модемом"
|
||||
|
||||
msgid "Restart modem using at commands"
|
||||
msgstr "Перезапустить модем с помощью команд AT"
|
||||
|
||||
msgid "effect depends on modem"
|
||||
msgstr "эффект зависит от модема"
|
||||
|
||||
msgid "Some at commands can also restart the router."
|
||||
msgstr "Некоторые команды AT могут также перезапустить маршрутизатор."
|
||||
|
||||
msgid "soft restart"
|
||||
msgstr "мягкая перезагрузка"
|
||||
|
||||
msgid "hard restart"
|
||||
msgstr "жёсткая перезагрузка"
|
||||
|
||||
msgid "Restart modem via GPIO."
|
||||
msgstr "Перезапустить модем через GPIO."
|
||||
|
||||
msgid "Restart modem using GPIO"
|
||||
msgstr "Перезапустить модем через GPIO"
|
||||
|
||||
msgid "Select the GPIO related to 4G/5G modem."
|
||||
msgstr "Выбрать GPIO, связанный с модемом 4G/5G."
|
||||
|
||||
msgid "Generate a script"
|
||||
msgstr "Создать скрипт"
|
||||
|
||||
msgid "Generate user script"
|
||||
msgstr "Создать пользовательский скрипт"
|
||||
|
||||
msgid "Generate and save the prepared script."
|
||||
msgstr "Создать и сохранить подготовленный скрипт."
|
||||
|
||||
msgid "User can add his script or generate a new one from the selection options."
|
||||
msgstr "Пользователь может добавить свой скрипт или создать новый из параметров выбора."
|
||||
|
||||
msgid "Set test address (only one recommended)."
|
||||
msgstr "Задать тестовый адрес (рекомендуется только один)."
|
||||
|
||||
msgid "The available options depend on the previously defined main action (interface or router restart)."
|
||||
msgstr "Доступные параметры зависят от ранее определённого основного действия (перезапуск интерфейса или маршрутизатора)."
|
||||
|
||||
msgid "user code"
|
||||
msgstr "пользовательский код"
|
||||
|
||||
msgid "Add custom commands before restarting the device."
|
||||
msgstr "Добавить пользовательские команды перед перезапуском устройства."
|
||||
|
||||
msgid "from script:"
|
||||
msgstr "из скрипта:"
|
||||
|
||||
msgid "USER-SCRIPT:"
|
||||
msgstr "ПОЛЬЗОВАТЕЛЬСКИЙ-СКРИПТ:"
|
||||
|
||||
msgid "Soft modem restart"
|
||||
msgstr "Мягкий перезапуск модема"
|
||||
|
||||
msgid "Hard modem restart"
|
||||
msgstr "Жёсткий перезапуск модема"
|
||||
|
||||
msgid "Space for user actions"
|
||||
msgstr "Место для пользовательских действий"
|
||||
|
||||
msgid "Commands before main action"
|
||||
msgstr "Команды перед основным действием"
|
||||
|
||||
msgid "Commands after main action"
|
||||
msgstr "Команды после основного действия"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "Загрузка..."
|
||||
|
||||
msgid "Waiting for ping command execution..."
|
||||
msgstr "Ожидание выполнения команды ping..."
|
||||
|
||||
msgid "Watchdog initialized"
|
||||
msgstr "Watchdog инициализирован"
|
||||
|
||||
msgid "uptime"
|
||||
msgstr "время работы"
|
||||
|
||||
msgid "hosts"
|
||||
msgstr "хосты"
|
||||
@@ -0,0 +1,400 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Rafał Wabik (IceG)\n"
|
||||
"Language: vi\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
msgid "Connection Monitor"
|
||||
msgstr "Giám sát kết nối"
|
||||
|
||||
msgid "Connection monitor settings"
|
||||
msgstr "Cài đặt giám sát kết nối"
|
||||
|
||||
msgid "Configuration lite-watchdog"
|
||||
msgstr "Cấu hình lite-watchdog"
|
||||
|
||||
msgid "Configuration panel for lite-watchdog and gui application."
|
||||
msgstr "Bảng cấu hình cho ứng dụng lite-watchdog và giao diện đồ họa."
|
||||
|
||||
msgid "Interface"
|
||||
msgstr "Giao diện mạng"
|
||||
|
||||
msgid "Network interface for Internet access."
|
||||
msgstr "Giao diện mạng để truy cập Internet."
|
||||
|
||||
msgid "Port for communication with the modem"
|
||||
msgstr "Cổng giao tiếp với modem"
|
||||
|
||||
msgid "Select one of the available ttyUSBX ports."
|
||||
msgstr "Chọn một trong các cổng ttyUSBX có sẵn."
|
||||
|
||||
msgid "Please select a port"
|
||||
msgstr "Vui lòng chọn một cổng"
|
||||
|
||||
msgid "Perform a modem restart before resuming the connection."
|
||||
msgstr "Thực hiện khởi động lại modem trước khi tiếp tục kết nối."
|
||||
|
||||
msgid "Restart modem with AT command"
|
||||
msgstr "Khởi động lại modem bằng lệnh AT"
|
||||
|
||||
msgid "AT command to restart the modem."
|
||||
msgstr "Lệnh AT để khởi động lại modem."
|
||||
|
||||
msgid "AT command"
|
||||
msgstr "Lệnh AT"
|
||||
|
||||
msgid "total checks"
|
||||
msgstr "tổng số lần kiểm tra"
|
||||
|
||||
msgid "Configuration of the connection monitor known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Cấu hình giám sát kết nối từ gói easyconfig. Thông tin thêm trên %sdiễn đàn eko.one.pl%s."
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "diễn đàn eko.one.pl"
|
||||
|
||||
msgid "Enable a connection monitor."
|
||||
msgstr "Bật giám sát kết nối."
|
||||
|
||||
msgid "System startup delay"
|
||||
msgstr "Độ trễ khởi động hệ thống"
|
||||
|
||||
msgid "[1 - 59] minute(s)"
|
||||
msgstr "[1 - 59] phút"
|
||||
|
||||
msgid "Expect a decimal value between one and fifty-nine"
|
||||
msgstr "Yêu cầu giá trị thập phân từ một đến năm mươi chín"
|
||||
|
||||
msgid "Address or name"
|
||||
msgstr "Địa chỉ hoặc tên"
|
||||
|
||||
msgid "Verification period"
|
||||
msgstr "Khoảng thời gian kiểm tra"
|
||||
|
||||
msgid "Number of failed checks"
|
||||
msgstr "Số lần kiểm tra thất bại"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Hành động"
|
||||
|
||||
msgid "Connection restart"
|
||||
msgstr "Khởi động lại kết nối"
|
||||
|
||||
msgid "Modem restart"
|
||||
msgstr "Khởi động lại modem"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Khởi động lại thiết bị"
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor has started."
|
||||
msgstr "Các thay đổi đã được lưu. Giám sát kết nối đã bắt đầu."
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor is not running."
|
||||
msgstr "Các thay đổi đã được lưu. Giám sát kết nối không hoạt động."
|
||||
|
||||
msgid "Last check"
|
||||
msgstr "Lần kiểm tra cuối"
|
||||
|
||||
msgid "minimum"
|
||||
msgstr "tối thiểu"
|
||||
|
||||
msgid "average"
|
||||
msgstr "trung bình"
|
||||
|
||||
msgid "maximum"
|
||||
msgstr "tối đa"
|
||||
|
||||
msgid "Information"
|
||||
msgstr "Thông tin"
|
||||
|
||||
msgid "Basic settings"
|
||||
msgstr "Cài đặt cơ bản"
|
||||
|
||||
msgid "failed"
|
||||
msgstr "thất bại"
|
||||
|
||||
msgid "Failed"
|
||||
msgstr "Thất bại"
|
||||
|
||||
msgid "out of"
|
||||
msgstr "trong"
|
||||
|
||||
msgid "Activity log"
|
||||
msgstr "Nhật ký hoạt động"
|
||||
|
||||
msgid "Wrong regular expression"
|
||||
msgstr "Biểu thức chính quy không hợp lệ"
|
||||
|
||||
msgid "No matches..."
|
||||
msgstr "Không có kết quả..."
|
||||
|
||||
msgid "Clear connection monitor log?"
|
||||
msgstr "Xóa nhật ký giám sát kết nối?"
|
||||
|
||||
msgid "Download error"
|
||||
msgstr "Lỗi tải xuống"
|
||||
|
||||
msgid "Unable to load log data:"
|
||||
msgstr "Không thể tải dữ liệu nhật ký:"
|
||||
|
||||
msgid "Entries filter"
|
||||
msgstr "Bộ lọc mục"
|
||||
|
||||
msgid "Filter entries using regexp, press [Delete] to delete all text"
|
||||
msgstr "Lọc mục bằng biểu thức chính quy, nhấn [Delete] để xóa tất cả văn bản"
|
||||
|
||||
msgid "Refresh"
|
||||
msgstr "Làm mới"
|
||||
|
||||
msgid "Connection monitor activity log"
|
||||
msgstr "Nhật ký hoạt động giám sát kết nối"
|
||||
|
||||
msgid "Connection monitor activity log known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "Nhật ký hoạt động giám sát kết nối từ gói easyconfig. Thông tin thêm trên %sdiễn đàn eko.one.pl%s."
|
||||
|
||||
msgid "Show only the last entries"
|
||||
msgstr "Chỉ hiển thị các mục cuối cùng"
|
||||
|
||||
msgid "Message filter"
|
||||
msgstr "Bộ lọc thông báo"
|
||||
|
||||
msgid "Refresh log"
|
||||
msgstr "Làm mới nhật ký"
|
||||
|
||||
msgid "Clear log"
|
||||
msgstr "Xóa nhật ký"
|
||||
|
||||
msgid "Download log"
|
||||
msgstr "Tải nhật ký"
|
||||
|
||||
msgid "Upload log file"
|
||||
msgstr "Tải lên tệp nhật ký"
|
||||
|
||||
msgid "Type of messages"
|
||||
msgstr "Loại thông báo"
|
||||
|
||||
msgid "All actions"
|
||||
msgstr "Tất cả hành động"
|
||||
|
||||
msgid "Only connection problems"
|
||||
msgstr "Chỉ sự cố kết nối"
|
||||
|
||||
msgid "LED settings"
|
||||
msgstr "Cài đặt đèn LED"
|
||||
|
||||
msgid "The LED shows the internet connection status."
|
||||
msgstr "Đèn LED hiển thị trạng thái kết nối Internet."
|
||||
|
||||
msgid "Select the status LED."
|
||||
msgstr "Chọn đèn LED trạng thái."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Chỉnh sửa tập lệnh người dùng"
|
||||
|
||||
msgid "Before executing the action, system calls a script in which user can place his own commands."
|
||||
msgstr "Trước khi thực hiện hành động, hệ thống gọi một tập lệnh mà người dùng có thể đặt các lệnh của riêng mình."
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "Chỉnh sửa tập lệnh người dùng"
|
||||
|
||||
msgid "User script"
|
||||
msgstr "Tập lệnh người dùng"
|
||||
|
||||
msgid "User-defined commands."
|
||||
msgstr "Các lệnh do người dùng định nghĩa."
|
||||
|
||||
msgid "Contents have been saved"
|
||||
msgstr "Nội dung đã được lưu"
|
||||
|
||||
msgid "Unable to save the contents"
|
||||
msgstr "Không thể lưu nội dung"
|
||||
|
||||
msgid "Unable to read the contents"
|
||||
msgstr "Không thể đọc nội dung"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "Trạng thái"
|
||||
|
||||
msgid "ONLINE"
|
||||
msgstr "TRỰC TUYẾN"
|
||||
|
||||
msgid "OFFLINE"
|
||||
msgstr "NGOẠI TUYẾN"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "Hành động"
|
||||
|
||||
msgid "Restarting interface"
|
||||
msgstr "Khởi động lại giao diện mạng"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "Khởi động lại thiết bị"
|
||||
|
||||
msgid "At command was sent to modem"
|
||||
msgstr "Lệnh AT đã được gửi đến modem"
|
||||
|
||||
msgid "January"
|
||||
msgstr "Tháng Một"
|
||||
|
||||
msgid "February"
|
||||
msgstr "Tháng Hai"
|
||||
|
||||
msgid "March"
|
||||
msgstr "Tháng Ba"
|
||||
|
||||
msgid "April"
|
||||
msgstr "Tháng Tư"
|
||||
|
||||
msgid "May"
|
||||
msgstr "Tháng Năm"
|
||||
|
||||
msgid "June"
|
||||
msgstr "Tháng Sáu"
|
||||
|
||||
msgid "July"
|
||||
msgstr "Tháng Bảy"
|
||||
|
||||
msgid "August"
|
||||
msgstr "Tháng Tám"
|
||||
|
||||
msgid "September"
|
||||
msgstr "Tháng Chín"
|
||||
|
||||
msgid "October"
|
||||
msgstr "Tháng Mười"
|
||||
|
||||
msgid "November"
|
||||
msgstr "Tháng Mười Một"
|
||||
|
||||
msgid "December"
|
||||
msgstr "Tháng Mười Hai"
|
||||
|
||||
msgid "Monday"
|
||||
msgstr "Thứ Hai"
|
||||
|
||||
msgid "Tuesday"
|
||||
msgstr "Thứ Ba"
|
||||
|
||||
msgid "Wednesday"
|
||||
msgstr "Thứ Tư"
|
||||
|
||||
msgid "Thursday"
|
||||
msgstr "Thứ Năm"
|
||||
|
||||
msgid "Friday"
|
||||
msgstr "Thứ Sáu"
|
||||
|
||||
msgid "Saturday"
|
||||
msgstr "Thứ Bảy"
|
||||
|
||||
msgid "Sunday"
|
||||
msgstr "Chủ Nhật"
|
||||
|
||||
msgid "User Script Wizard"
|
||||
msgstr "Trình hướng dẫn tập lệnh người dùng"
|
||||
|
||||
msgid "Hint: You do not need to save anything in the settings. Select the actions and click the Generate button."
|
||||
msgstr "Gợi ý: Bạn không cần lưu bất cứ điều gì trong cài đặt. Chọn các hành động và nhấp vào nút Tạo."
|
||||
|
||||
msgid "modem restart"
|
||||
msgstr "khởi động lại modem"
|
||||
|
||||
msgid "reboot"
|
||||
msgstr "khởi động lại thiết bị"
|
||||
|
||||
msgid "Restart modem if restarting the interfaces did not restore internet access."
|
||||
msgstr "Khởi động lại modem nếu khởi động lại giao diện không khôi phục được truy cập Internet."
|
||||
|
||||
msgid "Router reboot if restarting the interfaces did not restore internet access."
|
||||
msgstr "Khởi động lại bộ định tuyến nếu khởi động lại giao diện không khôi phục được truy cập Internet."
|
||||
|
||||
msgid "Actions in script"
|
||||
msgstr "Hành động trong tập lệnh"
|
||||
|
||||
msgid "Modem actions"
|
||||
msgstr "Hành động modem"
|
||||
|
||||
msgid "Restart modem using at commands"
|
||||
msgstr "Khởi động lại modem bằng lệnh AT"
|
||||
|
||||
msgid "effect depends on modem"
|
||||
msgstr "hiệu quả phụ thuộc vào modem"
|
||||
|
||||
msgid "Some at commands can also restart the router."
|
||||
msgstr "Một số lệnh AT cũng có thể khởi động lại bộ định tuyến."
|
||||
|
||||
msgid "soft restart"
|
||||
msgstr "khởi động lại mềm"
|
||||
|
||||
msgid "hard restart"
|
||||
msgstr "khởi động lại cứng"
|
||||
|
||||
msgid "Restart modem via GPIO."
|
||||
msgstr "Khởi động lại modem qua GPIO."
|
||||
|
||||
msgid "Restart modem using GPIO"
|
||||
msgstr "Khởi động lại modem qua GPIO"
|
||||
|
||||
msgid "Select the GPIO related to 4G/5G modem."
|
||||
msgstr "Chọn GPIO liên quan đến modem 4G/5G."
|
||||
|
||||
msgid "Generate a script"
|
||||
msgstr "Tạo tập lệnh"
|
||||
|
||||
msgid "Generate user script"
|
||||
msgstr "Tạo tập lệnh người dùng"
|
||||
|
||||
msgid "Generate and save the prepared script."
|
||||
msgstr "Tạo và lưu tập lệnh đã chuẩn bị."
|
||||
|
||||
msgid "User can add his script or generate a new one from the selection options."
|
||||
msgstr "Người dùng có thể thêm tập lệnh của mình hoặc tạo tập lệnh mới từ các tùy chọn."
|
||||
|
||||
msgid "Set test address (only one recommended)."
|
||||
msgstr "Đặt địa chỉ kiểm tra (chỉ khuyến nghị một địa chỉ)."
|
||||
|
||||
msgid "The available options depend on the previously defined main action (interface or router restart)."
|
||||
msgstr "Các tùy chọn có sẵn phụ thuộc vào hành động chính đã định nghĩa trước (khởi động lại giao diện hoặc bộ định tuyến)."
|
||||
|
||||
msgid "user code"
|
||||
msgstr "mã người dùng"
|
||||
|
||||
msgid "Add custom commands before restarting the device."
|
||||
msgstr "Thêm các lệnh tùy chỉnh trước khi khởi động lại thiết bị."
|
||||
|
||||
msgid "from script:"
|
||||
msgstr "từ tập lệnh:"
|
||||
|
||||
msgid "USER-SCRIPT:"
|
||||
msgstr "TẬP-LỆNH-NGƯỜI-DÙNG:"
|
||||
|
||||
msgid "Soft modem restart"
|
||||
msgstr "Khởi động lại modem mềm"
|
||||
|
||||
msgid "Hard modem restart"
|
||||
msgstr "Khởi động lại modem cứng"
|
||||
|
||||
msgid "Space for user actions"
|
||||
msgstr "Không gian cho hành động người dùng"
|
||||
|
||||
msgid "Commands before main action"
|
||||
msgstr "Lệnh trước hành động chính"
|
||||
|
||||
msgid "Commands after main action"
|
||||
msgstr "Lệnh sau hành động chính"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "Đang tải..."
|
||||
|
||||
msgid "Waiting for ping command execution..."
|
||||
msgstr "Đang chờ thực thi lệnh ping..."
|
||||
|
||||
msgid "Watchdog initialized"
|
||||
msgstr "Watchdog đã khởi tạo"
|
||||
|
||||
msgid "uptime"
|
||||
msgstr "thời gian hoạt động"
|
||||
|
||||
msgid "hosts"
|
||||
msgstr "máy chủ"
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
zh_Hans
|
||||
@@ -0,0 +1,400 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Rafał Wabik (IceG)\n"
|
||||
"Language: zh_Hans\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
msgid "Connection Monitor"
|
||||
msgstr "连接监控器"
|
||||
|
||||
msgid "Connection monitor settings"
|
||||
msgstr "连接监控器设置"
|
||||
|
||||
msgid "Configuration lite-watchdog"
|
||||
msgstr "lite-watchdog 配置"
|
||||
|
||||
msgid "Configuration panel for lite-watchdog and gui application."
|
||||
msgstr "lite-watchdog 及图形界面应用程序的配置面板。"
|
||||
|
||||
msgid "Interface"
|
||||
msgstr "网络接口"
|
||||
|
||||
msgid "Network interface for Internet access."
|
||||
msgstr "用于访问互联网的网络接口。"
|
||||
|
||||
msgid "Port for communication with the modem"
|
||||
msgstr "与调制解调器通信的端口"
|
||||
|
||||
msgid "Select one of the available ttyUSBX ports."
|
||||
msgstr "选择一个可用的 ttyUSBX 端口。"
|
||||
|
||||
msgid "Please select a port"
|
||||
msgstr "请选择一个端口"
|
||||
|
||||
msgid "Perform a modem restart before resuming the connection."
|
||||
msgstr "恢复连接前请重启调制解调器。"
|
||||
|
||||
msgid "Restart modem with AT command"
|
||||
msgstr "使用 AT 命令重启调制解调器"
|
||||
|
||||
msgid "AT command to restart the modem."
|
||||
msgstr "用于重启调制解调器的 AT 命令。"
|
||||
|
||||
msgid "AT command"
|
||||
msgstr "AT 命令"
|
||||
|
||||
msgid "total checks"
|
||||
msgstr "检查总次数"
|
||||
|
||||
msgid "Configuration of the connection monitor known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "来自 easyconfig 软件包的连接监控器配置。更多信息请访问 %seko.one.pl 论坛%s。"
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "eko.one.pl 论坛"
|
||||
|
||||
msgid "Enable a connection monitor."
|
||||
msgstr "启用连接监控器。"
|
||||
|
||||
msgid "System startup delay"
|
||||
msgstr "系统启动延迟"
|
||||
|
||||
msgid "[1 - 59] minute(s)"
|
||||
msgstr "[1 - 59] 分钟"
|
||||
|
||||
msgid "Expect a decimal value between one and fifty-nine"
|
||||
msgstr "请输入 1 到 59 之间的整数值"
|
||||
|
||||
msgid "Address or name"
|
||||
msgstr "地址或名称"
|
||||
|
||||
msgid "Verification period"
|
||||
msgstr "检查周期"
|
||||
|
||||
msgid "Number of failed checks"
|
||||
msgstr "失败检查次数"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "操作"
|
||||
|
||||
msgid "Connection restart"
|
||||
msgstr "重启连接"
|
||||
|
||||
msgid "Modem restart"
|
||||
msgstr "重启调制解调器"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "重启设备"
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor has started."
|
||||
msgstr "更改已保存。连接监控器已启动。"
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor is not running."
|
||||
msgstr "更改已保存。连接监控器未运行。"
|
||||
|
||||
msgid "Last check"
|
||||
msgstr "上次检查"
|
||||
|
||||
msgid "minimum"
|
||||
msgstr "最小值"
|
||||
|
||||
msgid "average"
|
||||
msgstr "平均值"
|
||||
|
||||
msgid "maximum"
|
||||
msgstr "最大值"
|
||||
|
||||
msgid "Information"
|
||||
msgstr "信息"
|
||||
|
||||
msgid "Basic settings"
|
||||
msgstr "基本设置"
|
||||
|
||||
msgid "failed"
|
||||
msgstr "失败"
|
||||
|
||||
msgid "Failed"
|
||||
msgstr "失败"
|
||||
|
||||
msgid "out of"
|
||||
msgstr "共"
|
||||
|
||||
msgid "Activity log"
|
||||
msgstr "活动日志"
|
||||
|
||||
msgid "Wrong regular expression"
|
||||
msgstr "正则表达式错误"
|
||||
|
||||
msgid "No matches..."
|
||||
msgstr "无匹配结果..."
|
||||
|
||||
msgid "Clear connection monitor log?"
|
||||
msgstr "清除连接监控器日志?"
|
||||
|
||||
msgid "Download error"
|
||||
msgstr "下载错误"
|
||||
|
||||
msgid "Unable to load log data:"
|
||||
msgstr "无法加载日志数据:"
|
||||
|
||||
msgid "Entries filter"
|
||||
msgstr "条目过滤器"
|
||||
|
||||
msgid "Filter entries using regexp, press [Delete] to delete all text"
|
||||
msgstr "使用正则表达式过滤条目,按 [Delete] 删除所有文本"
|
||||
|
||||
msgid "Refresh"
|
||||
msgstr "刷新"
|
||||
|
||||
msgid "Connection monitor activity log"
|
||||
msgstr "连接监控器活动日志"
|
||||
|
||||
msgid "Connection monitor activity log known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "来自 easyconfig 软件包的连接监控器活动日志。更多信息请访问 %seko.one.pl 论坛%s。"
|
||||
|
||||
msgid "Show only the last entries"
|
||||
msgstr "仅显示最新条目"
|
||||
|
||||
msgid "Message filter"
|
||||
msgstr "消息过滤器"
|
||||
|
||||
msgid "Refresh log"
|
||||
msgstr "刷新日志"
|
||||
|
||||
msgid "Clear log"
|
||||
msgstr "清除日志"
|
||||
|
||||
msgid "Download log"
|
||||
msgstr "下载日志"
|
||||
|
||||
msgid "Upload log file"
|
||||
msgstr "上传日志文件"
|
||||
|
||||
msgid "Type of messages"
|
||||
msgstr "消息类型"
|
||||
|
||||
msgid "All actions"
|
||||
msgstr "所有操作"
|
||||
|
||||
msgid "Only connection problems"
|
||||
msgstr "仅连接问题"
|
||||
|
||||
msgid "LED settings"
|
||||
msgstr "LED 设置"
|
||||
|
||||
msgid "The LED shows the internet connection status."
|
||||
msgstr "LED 显示互联网连接状态。"
|
||||
|
||||
msgid "Select the status LED."
|
||||
msgstr "选择状态 LED。"
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "编辑用户脚本"
|
||||
|
||||
msgid "Before executing the action, system calls a script in which user can place his own commands."
|
||||
msgstr "执行操作前,系统调用一个脚本,用户可在其中放置自定义命令。"
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "编辑用户脚本"
|
||||
|
||||
msgid "User script"
|
||||
msgstr "用户脚本"
|
||||
|
||||
msgid "User-defined commands."
|
||||
msgstr "用户自定义命令。"
|
||||
|
||||
msgid "Contents have been saved"
|
||||
msgstr "内容已保存"
|
||||
|
||||
msgid "Unable to save the contents"
|
||||
msgstr "无法保存内容"
|
||||
|
||||
msgid "Unable to read the contents"
|
||||
msgstr "无法读取内容"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "状态"
|
||||
|
||||
msgid "ONLINE"
|
||||
msgstr "在线"
|
||||
|
||||
msgid "OFFLINE"
|
||||
msgstr "离线"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "操作"
|
||||
|
||||
msgid "Restarting interface"
|
||||
msgstr "正在重启网络接口"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "重启设备"
|
||||
|
||||
msgid "At command was sent to modem"
|
||||
msgstr "AT 命令已发送至调制解调器"
|
||||
|
||||
msgid "January"
|
||||
msgstr "一月"
|
||||
|
||||
msgid "February"
|
||||
msgstr "二月"
|
||||
|
||||
msgid "March"
|
||||
msgstr "三月"
|
||||
|
||||
msgid "April"
|
||||
msgstr "四月"
|
||||
|
||||
msgid "May"
|
||||
msgstr "五月"
|
||||
|
||||
msgid "June"
|
||||
msgstr "六月"
|
||||
|
||||
msgid "July"
|
||||
msgstr "七月"
|
||||
|
||||
msgid "August"
|
||||
msgstr "八月"
|
||||
|
||||
msgid "September"
|
||||
msgstr "九月"
|
||||
|
||||
msgid "October"
|
||||
msgstr "十月"
|
||||
|
||||
msgid "November"
|
||||
msgstr "十一月"
|
||||
|
||||
msgid "December"
|
||||
msgstr "十二月"
|
||||
|
||||
msgid "Monday"
|
||||
msgstr "星期一"
|
||||
|
||||
msgid "Tuesday"
|
||||
msgstr "星期二"
|
||||
|
||||
msgid "Wednesday"
|
||||
msgstr "星期三"
|
||||
|
||||
msgid "Thursday"
|
||||
msgstr "星期四"
|
||||
|
||||
msgid "Friday"
|
||||
msgstr "星期五"
|
||||
|
||||
msgid "Saturday"
|
||||
msgstr "星期六"
|
||||
|
||||
msgid "Sunday"
|
||||
msgstr "星期日"
|
||||
|
||||
msgid "User Script Wizard"
|
||||
msgstr "用户脚本向导"
|
||||
|
||||
msgid "Hint: You do not need to save anything in the settings. Select the actions and click the Generate button."
|
||||
msgstr "提示:无需在设置中保存任何内容。选择操作并点击生成按钮。"
|
||||
|
||||
msgid "modem restart"
|
||||
msgstr "重启调制解调器"
|
||||
|
||||
msgid "reboot"
|
||||
msgstr "重启设备"
|
||||
|
||||
msgid "Restart modem if restarting the interfaces did not restore internet access."
|
||||
msgstr "如果重启接口未能恢复互联网访问,请重启调制解调器。"
|
||||
|
||||
msgid "Router reboot if restarting the interfaces did not restore internet access."
|
||||
msgstr "如果重启接口未能恢复互联网访问,请重启路由器。"
|
||||
|
||||
msgid "Actions in script"
|
||||
msgstr "脚本中的操作"
|
||||
|
||||
msgid "Modem actions"
|
||||
msgstr "调制解调器操作"
|
||||
|
||||
msgid "Restart modem using at commands"
|
||||
msgstr "使用 AT 命令重启调制解调器"
|
||||
|
||||
msgid "effect depends on modem"
|
||||
msgstr "效果取决于调制解调器"
|
||||
|
||||
msgid "Some at commands can also restart the router."
|
||||
msgstr "某些 AT 命令也可以重启路由器。"
|
||||
|
||||
msgid "soft restart"
|
||||
msgstr "软重启"
|
||||
|
||||
msgid "hard restart"
|
||||
msgstr "硬重启"
|
||||
|
||||
msgid "Restart modem via GPIO."
|
||||
msgstr "通过 GPIO 重启调制解调器。"
|
||||
|
||||
msgid "Restart modem using GPIO"
|
||||
msgstr "通过 GPIO 重启调制解调器"
|
||||
|
||||
msgid "Select the GPIO related to 4G/5G modem."
|
||||
msgstr "选择与 4G/5G 调制解调器相关的 GPIO。"
|
||||
|
||||
msgid "Generate a script"
|
||||
msgstr "生成脚本"
|
||||
|
||||
msgid "Generate user script"
|
||||
msgstr "生成用户脚本"
|
||||
|
||||
msgid "Generate and save the prepared script."
|
||||
msgstr "生成并保存准备好的脚本。"
|
||||
|
||||
msgid "User can add his script or generate a new one from the selection options."
|
||||
msgstr "用户可以添加自己的脚本或从选项中生成新脚本。"
|
||||
|
||||
msgid "Set test address (only one recommended)."
|
||||
msgstr "设置测试地址(建议仅设置一个)。"
|
||||
|
||||
msgid "The available options depend on the previously defined main action (interface or router restart)."
|
||||
msgstr "可用选项取决于之前定义的主操作(接口或路由器重启)。"
|
||||
|
||||
msgid "user code"
|
||||
msgstr "用户代码"
|
||||
|
||||
msgid "Add custom commands before restarting the device."
|
||||
msgstr "在重启设备前添加自定义命令。"
|
||||
|
||||
msgid "from script:"
|
||||
msgstr "来自脚本:"
|
||||
|
||||
msgid "USER-SCRIPT:"
|
||||
msgstr "用户脚本:"
|
||||
|
||||
msgid "Soft modem restart"
|
||||
msgstr "调制解调器软重启"
|
||||
|
||||
msgid "Hard modem restart"
|
||||
msgstr "调制解调器硬重启"
|
||||
|
||||
msgid "Space for user actions"
|
||||
msgstr "用户操作空间"
|
||||
|
||||
msgid "Commands before main action"
|
||||
msgstr "主操作前的命令"
|
||||
|
||||
msgid "Commands after main action"
|
||||
msgstr "主操作后的命令"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "正在加载..."
|
||||
|
||||
msgid "Waiting for ping command execution..."
|
||||
msgstr "等待执行 ping 命令..."
|
||||
|
||||
msgid "Watchdog initialized"
|
||||
msgstr "看门狗已初始化"
|
||||
|
||||
msgid "uptime"
|
||||
msgstr "运行时间"
|
||||
|
||||
msgid "hosts"
|
||||
msgstr "主机"
|
||||
@@ -0,0 +1,400 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Rafał Wabik (IceG)\n"
|
||||
"Language: zh_Hant\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
msgid "Connection Monitor"
|
||||
msgstr "連線監控器"
|
||||
|
||||
msgid "Connection monitor settings"
|
||||
msgstr "連線監控器設定"
|
||||
|
||||
msgid "Configuration lite-watchdog"
|
||||
msgstr "lite-watchdog 設定"
|
||||
|
||||
msgid "Configuration panel for lite-watchdog and gui application."
|
||||
msgstr "lite-watchdog 及圖形介面應用程式的設定面板。"
|
||||
|
||||
msgid "Interface"
|
||||
msgstr "網路介面"
|
||||
|
||||
msgid "Network interface for Internet access."
|
||||
msgstr "用於存取網際網路的網路介面。"
|
||||
|
||||
msgid "Port for communication with the modem"
|
||||
msgstr "與數據機通訊的連接埠"
|
||||
|
||||
msgid "Select one of the available ttyUSBX ports."
|
||||
msgstr "選擇一個可用的 ttyUSBX 連接埠。"
|
||||
|
||||
msgid "Please select a port"
|
||||
msgstr "請選擇一個連接埠"
|
||||
|
||||
msgid "Perform a modem restart before resuming the connection."
|
||||
msgstr "恢復連線前請重新啟動數據機。"
|
||||
|
||||
msgid "Restart modem with AT command"
|
||||
msgstr "使用 AT 命令重新啟動數據機"
|
||||
|
||||
msgid "AT command to restart the modem."
|
||||
msgstr "用於重新啟動數據機的 AT 命令。"
|
||||
|
||||
msgid "AT command"
|
||||
msgstr "AT 命令"
|
||||
|
||||
msgid "total checks"
|
||||
msgstr "檢查總次數"
|
||||
|
||||
msgid "Configuration of the connection monitor known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "來自 easyconfig 套件的連線監控器設定。更多資訊請訪問 %seko.one.pl 論壇%s。"
|
||||
|
||||
msgid "eko.one.pl forum"
|
||||
msgstr "eko.one.pl 論壇"
|
||||
|
||||
msgid "Enable a connection monitor."
|
||||
msgstr "啟用連線監控器。"
|
||||
|
||||
msgid "System startup delay"
|
||||
msgstr "系統啟動延遲"
|
||||
|
||||
msgid "[1 - 59] minute(s)"
|
||||
msgstr "[1 - 59] 分鐘"
|
||||
|
||||
msgid "Expect a decimal value between one and fifty-nine"
|
||||
msgstr "請輸入 1 到 59 之間的整數值"
|
||||
|
||||
msgid "Address or name"
|
||||
msgstr "位址或名稱"
|
||||
|
||||
msgid "Verification period"
|
||||
msgstr "檢查週期"
|
||||
|
||||
msgid "Number of failed checks"
|
||||
msgstr "失敗檢查次數"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "操作"
|
||||
|
||||
msgid "Connection restart"
|
||||
msgstr "重新啟動連線"
|
||||
|
||||
msgid "Modem restart"
|
||||
msgstr "重新啟動數據機"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "重新啟動裝置"
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor has started."
|
||||
msgstr "變更已儲存。連線監控器已啟動。"
|
||||
|
||||
msgid "Changes have been saved. Connection Monitor is not running."
|
||||
msgstr "變更已儲存。連線監控器未執行。"
|
||||
|
||||
msgid "Last check"
|
||||
msgstr "上次檢查"
|
||||
|
||||
msgid "minimum"
|
||||
msgstr "最小值"
|
||||
|
||||
msgid "average"
|
||||
msgstr "平均值"
|
||||
|
||||
msgid "maximum"
|
||||
msgstr "最大值"
|
||||
|
||||
msgid "Information"
|
||||
msgstr "資訊"
|
||||
|
||||
msgid "Basic settings"
|
||||
msgstr "基本設定"
|
||||
|
||||
msgid "failed"
|
||||
msgstr "失敗"
|
||||
|
||||
msgid "Failed"
|
||||
msgstr "失敗"
|
||||
|
||||
msgid "out of"
|
||||
msgstr "共"
|
||||
|
||||
msgid "Activity log"
|
||||
msgstr "活動記錄"
|
||||
|
||||
msgid "Wrong regular expression"
|
||||
msgstr "正規表示式錯誤"
|
||||
|
||||
msgid "No matches..."
|
||||
msgstr "無符合結果..."
|
||||
|
||||
msgid "Clear connection monitor log?"
|
||||
msgstr "清除連線監控器記錄?"
|
||||
|
||||
msgid "Download error"
|
||||
msgstr "下載錯誤"
|
||||
|
||||
msgid "Unable to load log data:"
|
||||
msgstr "無法載入記錄資料:"
|
||||
|
||||
msgid "Entries filter"
|
||||
msgstr "項目篩選器"
|
||||
|
||||
msgid "Filter entries using regexp, press [Delete] to delete all text"
|
||||
msgstr "使用正規表示式篩選項目,按 [Delete] 刪除所有文字"
|
||||
|
||||
msgid "Refresh"
|
||||
msgstr "重新整理"
|
||||
|
||||
msgid "Connection monitor activity log"
|
||||
msgstr "連線監控器活動記錄"
|
||||
|
||||
msgid "Connection monitor activity log known from the easyconfig package. More information on the %seko.one.pl forum%s."
|
||||
msgstr "來自 easyconfig 套件的連線監控器活動記錄。更多資訊請訪問 %seko.one.pl 論壇%s。"
|
||||
|
||||
msgid "Show only the last entries"
|
||||
msgstr "僅顯示最新項目"
|
||||
|
||||
msgid "Message filter"
|
||||
msgstr "訊息篩選器"
|
||||
|
||||
msgid "Refresh log"
|
||||
msgstr "重新整理記錄"
|
||||
|
||||
msgid "Clear log"
|
||||
msgstr "清除記錄"
|
||||
|
||||
msgid "Download log"
|
||||
msgstr "下載記錄"
|
||||
|
||||
msgid "Upload log file"
|
||||
msgstr "上傳記錄檔案"
|
||||
|
||||
msgid "Type of messages"
|
||||
msgstr "訊息類型"
|
||||
|
||||
msgid "All actions"
|
||||
msgstr "所有操作"
|
||||
|
||||
msgid "Only connection problems"
|
||||
msgstr "僅連線問題"
|
||||
|
||||
msgid "LED settings"
|
||||
msgstr "LED 設定"
|
||||
|
||||
msgid "The LED shows the internet connection status."
|
||||
msgstr "LED 顯示網際網路連線狀態。"
|
||||
|
||||
msgid "Select the status LED."
|
||||
msgstr "選擇狀態 LED。"
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "編輯使用者指令碼"
|
||||
|
||||
msgid "Before executing the action, system calls a script in which user can place his own commands."
|
||||
msgstr "執行操作前,系統呼叫一個指令碼,使用者可在其中放置自訂命令。"
|
||||
|
||||
msgid "Edit user script"
|
||||
msgstr "編輯使用者指令碼"
|
||||
|
||||
msgid "User script"
|
||||
msgstr "使用者指令碼"
|
||||
|
||||
msgid "User-defined commands."
|
||||
msgstr "使用者自訂命令。"
|
||||
|
||||
msgid "Contents have been saved"
|
||||
msgstr "內容已儲存"
|
||||
|
||||
msgid "Unable to save the contents"
|
||||
msgstr "無法儲存內容"
|
||||
|
||||
msgid "Unable to read the contents"
|
||||
msgstr "無法讀取內容"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "狀態"
|
||||
|
||||
msgid "ONLINE"
|
||||
msgstr "線上"
|
||||
|
||||
msgid "OFFLINE"
|
||||
msgstr "離線"
|
||||
|
||||
msgid "Action"
|
||||
msgstr "操作"
|
||||
|
||||
msgid "Restarting interface"
|
||||
msgstr "正在重新啟動網路介面"
|
||||
|
||||
msgid "Reboot"
|
||||
msgstr "重新啟動裝置"
|
||||
|
||||
msgid "At command was sent to modem"
|
||||
msgstr "AT 命令已傳送至數據機"
|
||||
|
||||
msgid "January"
|
||||
msgstr "一月"
|
||||
|
||||
msgid "February"
|
||||
msgstr "二月"
|
||||
|
||||
msgid "March"
|
||||
msgstr "三月"
|
||||
|
||||
msgid "April"
|
||||
msgstr "四月"
|
||||
|
||||
msgid "May"
|
||||
msgstr "五月"
|
||||
|
||||
msgid "June"
|
||||
msgstr "六月"
|
||||
|
||||
msgid "July"
|
||||
msgstr "七月"
|
||||
|
||||
msgid "August"
|
||||
msgstr "八月"
|
||||
|
||||
msgid "September"
|
||||
msgstr "九月"
|
||||
|
||||
msgid "October"
|
||||
msgstr "十月"
|
||||
|
||||
msgid "November"
|
||||
msgstr "十一月"
|
||||
|
||||
msgid "December"
|
||||
msgstr "十二月"
|
||||
|
||||
msgid "Monday"
|
||||
msgstr "星期一"
|
||||
|
||||
msgid "Tuesday"
|
||||
msgstr "星期二"
|
||||
|
||||
msgid "Wednesday"
|
||||
msgstr "星期三"
|
||||
|
||||
msgid "Thursday"
|
||||
msgstr "星期四"
|
||||
|
||||
msgid "Friday"
|
||||
msgstr "星期五"
|
||||
|
||||
msgid "Saturday"
|
||||
msgstr "星期六"
|
||||
|
||||
msgid "Sunday"
|
||||
msgstr "星期日"
|
||||
|
||||
msgid "User Script Wizard"
|
||||
msgstr "使用者指令碼精靈"
|
||||
|
||||
msgid "Hint: You do not need to save anything in the settings. Select the actions and click the Generate button."
|
||||
msgstr "提示:無需在設定中儲存任何內容。選擇操作並點擊產生按鈕。"
|
||||
|
||||
msgid "modem restart"
|
||||
msgstr "重新啟動數據機"
|
||||
|
||||
msgid "reboot"
|
||||
msgstr "重新啟動裝置"
|
||||
|
||||
msgid "Restart modem if restarting the interfaces did not restore internet access."
|
||||
msgstr "如果重新啟動介面未能恢復網際網路存取,請重新啟動數據機。"
|
||||
|
||||
msgid "Router reboot if restarting the interfaces did not restore internet access."
|
||||
msgstr "如果重新啟動介面未能恢復網際網路存取,請重新啟動路由器。"
|
||||
|
||||
msgid "Actions in script"
|
||||
msgstr "指令碼中的操作"
|
||||
|
||||
msgid "Modem actions"
|
||||
msgstr "數據機操作"
|
||||
|
||||
msgid "Restart modem using at commands"
|
||||
msgstr "使用 AT 命令重新啟動數據機"
|
||||
|
||||
msgid "effect depends on modem"
|
||||
msgstr "效果取決於數據機"
|
||||
|
||||
msgid "Some at commands can also restart the router."
|
||||
msgstr "某些 AT 命令也可以重新啟動路由器。"
|
||||
|
||||
msgid "soft restart"
|
||||
msgstr "軟重啟"
|
||||
|
||||
msgid "hard restart"
|
||||
msgstr "硬重啟"
|
||||
|
||||
msgid "Restart modem via GPIO."
|
||||
msgstr "透過 GPIO 重新啟動數據機。"
|
||||
|
||||
msgid "Restart modem using GPIO"
|
||||
msgstr "透過 GPIO 重新啟動數據機"
|
||||
|
||||
msgid "Select the GPIO related to 4G/5G modem."
|
||||
msgstr "選擇與 4G/5G 數據機相關的 GPIO。"
|
||||
|
||||
msgid "Generate a script"
|
||||
msgstr "產生指令碼"
|
||||
|
||||
msgid "Generate user script"
|
||||
msgstr "產生使用者指令碼"
|
||||
|
||||
msgid "Generate and save the prepared script."
|
||||
msgstr "產生並儲存準備好的指令碼。"
|
||||
|
||||
msgid "User can add his script or generate a new one from the selection options."
|
||||
msgstr "使用者可以新增自己的指令碼或從選項中產生新指令碼。"
|
||||
|
||||
msgid "Set test address (only one recommended)."
|
||||
msgstr "設定測試位址(建議僅設定一個)。"
|
||||
|
||||
msgid "The available options depend on the previously defined main action (interface or router restart)."
|
||||
msgstr "可用選項取決於之前定義的主操作(介面或路由器重新啟動)。"
|
||||
|
||||
msgid "user code"
|
||||
msgstr "使用者程式碼"
|
||||
|
||||
msgid "Add custom commands before restarting the device."
|
||||
msgstr "在重新啟動裝置前新增自訂命令。"
|
||||
|
||||
msgid "from script:"
|
||||
msgstr "來自指令碼:"
|
||||
|
||||
msgid "USER-SCRIPT:"
|
||||
msgstr "使用者指令碼:"
|
||||
|
||||
msgid "Soft modem restart"
|
||||
msgstr "數據機軟重啟"
|
||||
|
||||
msgid "Hard modem restart"
|
||||
msgstr "數據機硬重啟"
|
||||
|
||||
msgid "Space for user actions"
|
||||
msgstr "使用者操作空間"
|
||||
|
||||
msgid "Commands before main action"
|
||||
msgstr "主操作前的命令"
|
||||
|
||||
msgid "Commands after main action"
|
||||
msgstr "主操作後的命令"
|
||||
|
||||
msgid "Loading..."
|
||||
msgstr "正在載入..."
|
||||
|
||||
msgid "Waiting for ping command execution..."
|
||||
msgstr "等待執行 ping 命令..."
|
||||
|
||||
msgid "Watchdog initialized"
|
||||
msgstr "看門狗已初始化"
|
||||
|
||||
msgid "uptime"
|
||||
msgstr "運行時間"
|
||||
|
||||
msgid "hosts"
|
||||
msgstr "主機"
|
||||
@@ -1,9 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Copyright 2020-2023 Rafał Wabik (IceG) - From eko.one.pl forum
|
||||
# Copyright 2020-2026 Rafał Wabik (IceG) - From eko.one.pl forum
|
||||
# MIT License
|
||||
|
||||
chmod +x /sbin/watchdog2cron.sh 2>&1 &
|
||||
chmod +x /sbin/refresh2cron.sh 2>&1 &
|
||||
chmod +x /usr/bin/lite-watchdog-data.sh 2>&1 &
|
||||
chmod +x /usr/bin/lite_watchdog.sh 2>&1 &
|
||||
chmod +x /etc/lite_watchdog.user 2>&1 &
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
[ -e /etc/crontabs/root ] || touch /etc/crontabs/root
|
||||
|
||||
if grep -q "watchdog" /etc/crontabs/root; then
|
||||
grep -v "watchdog" /etc/crontabs/root > /tmp/new_cron
|
||||
mv /tmp/new_cron /etc/crontabs/root
|
||||
/etc/init.d/cron restart
|
||||
fi
|
||||
|
||||
sleep 2
|
||||
|
||||
if ! grep -q "watchdog" /etc/crontabs/root; then
|
||||
|
||||
DY=$(uci -q get watchdog.@watchdog[0].delay)
|
||||
PD=$(uci -q get watchdog.@watchdog[0].period)
|
||||
DT=$(uci -q get watchdog.@watchdog[0].dest)
|
||||
CT=$(uci -q get watchdog.@watchdog[0].period_count)
|
||||
AN=$(uci -q get watchdog.@watchdog[0].action)
|
||||
|
||||
echo "*/$PD * * * * /usr/bin/lite_watchdog.sh $DY 3 $DT $CT $AN" >> /etc/crontabs/root
|
||||
/etc/init.d/cron restart
|
||||
fi
|
||||
|
||||
exit 0
|
||||
@@ -1,31 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
[ -e /etc/crontabs/root ] || touch /etc/crontabs/root
|
||||
|
||||
sleep 4
|
||||
ONF=$(uci -q get watchdog.@watchdog[0].enabled)
|
||||
if [ "x$ONF" != "x1" ]; then
|
||||
if grep -q "watchdog" /etc/crontabs/root; then
|
||||
grep -v "watchdog" /etc/crontabs/root > /tmp/new_cron
|
||||
mv /tmp/new_cron /etc/crontabs/root
|
||||
/etc/init.d/cron restart
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if ! grep -q "watchdog" /etc/crontabs/root; then
|
||||
|
||||
grep -v "watchdog" /etc/crontabs/root > /tmp/new_cron
|
||||
mv /tmp/new_cron /etc/crontabs/root
|
||||
|
||||
DY=$(uci -q get watchdog.@watchdog[0].delay)
|
||||
PD=$(uci -q get watchdog.@watchdog[0].period)
|
||||
DT=$(uci -q get watchdog.@watchdog[0].dest)
|
||||
CT=$(uci -q get watchdog.@watchdog[0].period_count)
|
||||
AN=$(uci -q get watchdog.@watchdog[0].action)
|
||||
|
||||
echo "*/$PD * * * * /usr/bin/lite_watchdog.sh $DY 3 $DT $CT $AN" >> /etc/crontabs/root
|
||||
/etc/init.d/cron restart
|
||||
fi
|
||||
|
||||
exit 0
|
||||
@@ -1,29 +1,57 @@
|
||||
#!/bin/sh
|
||||
|
||||
VPING="$(cat /tmp/lite_watchdog)"
|
||||
VMIN=$(echo $VPING | awk -v FS="(round-trip|ms)" '{print $2}')
|
||||
MIN=$(echo $VMIN | awk -F[=/] '{print $4}' | xargs)
|
||||
AVG=$(echo $VMIN | awk -F[=/] '{print $5}' | xargs)
|
||||
MAX=$(echo $VMIN | awk -F[=/] '{print $6}' | xargs)
|
||||
PING_FILE="/tmp/lite_watchdog"
|
||||
TEST_TIME_FILE="/tmp/lite_watchdog_tt"
|
||||
GCNT_FILE="/tmp/lite_watchdog_gcnt"
|
||||
|
||||
TEST_TIME="$(cat /tmp/lite_watchdog_tt)"
|
||||
MIN=""
|
||||
AVG=""
|
||||
MAX=""
|
||||
|
||||
CNT=$(wc -l < /tmp/lite_watchdog_cnt)
|
||||
CNT=$((CNT-1))
|
||||
if [ -f "$PING_FILE" ]; then
|
||||
VPING="$(cat "$PING_FILE" 2>/dev/null)"
|
||||
|
||||
ONV=$(uci -q get watchdog.@watchdog[0].enabled)
|
||||
if [ $ONV == "0" ]; then
|
||||
LINE="$(printf '%s\n' "$VPING" | grep -E '(^|[[:space:]])(rtt|round-trip)[^=]*min/avg/max' | tail -n1)"
|
||||
if [ -n "$LINE" ]; then
|
||||
STATS="$(printf '%s' "$LINE" | sed -n 's/.*=\s*\([^ ]*\)\s*ms.*/\1/p')"
|
||||
|
||||
ON="0"
|
||||
else
|
||||
ON="1"
|
||||
MIN="$(printf '%s' "$STATS" | cut -d'/' -f1)"
|
||||
AVG="$(printf '%s' "$STATS" | cut -d'/' -f2)"
|
||||
MAX="$(printf '%s' "$STATS" | cut -d'/' -f3)"
|
||||
fi
|
||||
fi
|
||||
|
||||
DT=$(uci -q get watchdog.@watchdog[0].dest)
|
||||
DY=$(uci -q get watchdog.@watchdog[0].delay)
|
||||
PD=$(uci -q get watchdog.@watchdog[0].period)
|
||||
CT=$(uci -q get watchdog.@watchdog[0].period_count)
|
||||
AN=$(uci -q get watchdog.@watchdog[0].action)
|
||||
[ -n "$MIN" ] || MIN="--.---"
|
||||
[ -n "$AVG" ] || AVG="--.---"
|
||||
[ -n "$MAX" ] || MAX="--.---"
|
||||
|
||||
if [ -f "$TEST_TIME_FILE" ]; then
|
||||
TEST_TIME="$(cat "$TEST_TIME_FILE" 2>/dev/null)"
|
||||
else
|
||||
TEST_TIME=""
|
||||
fi
|
||||
|
||||
if [ -f "$GCNT_FILE" ]; then
|
||||
NOW_COUNT="$(wc -l < "$GCNT_FILE" 2>/dev/null)"
|
||||
case "$NOW_COUNT" in ''|*[!0-9]*) NOW_COUNT=0 ;; esac
|
||||
else
|
||||
NOW_COUNT=0
|
||||
fi
|
||||
|
||||
ONV="$(uci -q get watchdog.@watchdog[0].enabled)"
|
||||
if [ "$ONV" = "0" ]; then ON="0"; else ON="1"; fi
|
||||
|
||||
DT="$(uci -q get watchdog.@watchdog[0].dest)"
|
||||
DY="$(uci -q get watchdog.@watchdog[0].delay)"
|
||||
PD="$(uci -q get watchdog.@watchdog[0].period)"
|
||||
CT="$(uci -q get watchdog.@watchdog[0].period_count)"
|
||||
AN="$(uci -q get watchdog.@watchdog[0].action)"
|
||||
|
||||
[ -n "$DT" ] || DT=""
|
||||
[ -n "$DY" ] || DY="0"
|
||||
[ -n "$PD" ] || PD="0"
|
||||
[ -n "$CT" ] || CT="0"
|
||||
[ -n "$AN" ] || AN=""
|
||||
|
||||
cat <<EOF
|
||||
{
|
||||
@@ -32,7 +60,7 @@ cat <<EOF
|
||||
"delay":"$DY",
|
||||
"period":"$PD",
|
||||
"count":"$CT",
|
||||
"now_count":"$CNT",
|
||||
"now_count":"$NOW_COUNT",
|
||||
"action":"$AN",
|
||||
"testtime":"$TEST_TIME",
|
||||
"min":"$MIN",
|
||||
@@ -40,4 +68,5 @@ cat <<EOF
|
||||
"max":"$MAX"
|
||||
}
|
||||
EOF
|
||||
|
||||
exit 0
|
||||
@@ -1,115 +1,249 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# $1 delay time
|
||||
# $2 ping count
|
||||
# $3 host
|
||||
# $4 period count
|
||||
# $3 hosts
|
||||
# $4 period count (PRD – offline action counter)
|
||||
# $5 action reboot|wan
|
||||
#
|
||||
# Status files:
|
||||
# /tmp/lite_watchdog_gcnt (offline counter)
|
||||
# /tmp/lite_watchdog_hidx (host index)
|
||||
# Lock:
|
||||
# /tmp/lite_watchdog.lock
|
||||
# Action:
|
||||
# /tmp/lite_watchdog_stage
|
||||
|
||||
T=$(uci -q get watchdog.@watchdog[0].iface)
|
||||
|
||||
T="$(uci -q get watchdog.@watchdog[0].iface)"
|
||||
[ -z "$T" ] && exit 0
|
||||
[ "x$T" = "xnone" ] && exit 0
|
||||
|
||||
UPTIME=$(awk '{printf "%d", $1}' /proc/uptime)
|
||||
[ $UPTIME -le $1 ] && exit 0
|
||||
UPTIME="$(awk '{printf "%d", $1}' /proc/uptime)"
|
||||
[ "$UPTIME" -le "$1" ] && exit 0
|
||||
|
||||
DIR="/etc/modem"
|
||||
LOG_FILE="$DIR/log.txt"
|
||||
CNT_FILE="/tmp/lite_watchdog_cnt"
|
||||
GCNT_FILE="/tmp/lite_watchdog_gcnt"
|
||||
HIDX_FILE="/tmp/lite_watchdog_hidx"
|
||||
LOCKDIR="/tmp/lite_watchdog.lock"
|
||||
STAGE_FILE="/tmp/lite_watchdog_stage"
|
||||
|
||||
LINES_MAX=11000
|
||||
LINES_MIN=6000
|
||||
LINES_COUNT=$(wc -l $LOG_FILE | awk '{print $1}')
|
||||
|
||||
LOG_D=$(uci -q get watchdog.@watchdog[0].log)
|
||||
LOG_D="$(uci -q get watchdog.@watchdog[0].log)"
|
||||
|
||||
LEDST=$(uci -q get watchdog.@watchdog[0].ledstatus)
|
||||
LEDX=$(uci -q get watchdog.@watchdog[0].led)
|
||||
LEDON="/sys/class/leds/$LEDX/brightness"
|
||||
LEDST="$(uci -q get watchdog.@watchdog[0].ledstatus)"
|
||||
LEDX="$(uci -q get watchdog.@watchdog[0].led)"
|
||||
LEDPATH="/sys/class/leds/$LEDX"
|
||||
LEDON="$LEDPATH/brightness"
|
||||
LEDMAX="255"
|
||||
[ -f "$LEDPATH/max_brightness" ] && LEDMAX="$(cat "$LEDPATH/max_brightness" 2>/dev/null || echo 255)"
|
||||
|
||||
if [[ "$LINES_COUNT" -ge "$LINES_MAX" ]]; then
|
||||
echo "$(tail -$LINES_MIN $LOG_FILE)" > $LOG_FILE
|
||||
[ -d "$DIR" ] || mkdir -p "$DIR" 2>/dev/null
|
||||
[ -f "$LOG_FILE" ] || : > "$LOG_FILE"
|
||||
|
||||
LINES_COUNT="$(wc -l < "$LOG_FILE" 2>/dev/null)"
|
||||
[ -z "$LINES_COUNT" ] && LINES_COUNT=0
|
||||
if [ "$LINES_COUNT" -ge "$LINES_MAX" ]; then
|
||||
tmpf="$(mktemp /tmp/lwlog.XXXXXX)"
|
||||
tail -n "$LINES_MIN" "$LOG_FILE" > "$tmpf" 2>/dev/null
|
||||
cat "$tmpf" > "$LOG_FILE"
|
||||
rm -f "$tmpf"
|
||||
fi
|
||||
|
||||
if [ ! -f "$CNT_FILE" ]; then
|
||||
echo -n "" > /tmp/lite_watchdog_cnt
|
||||
echo 0 >> /tmp/lite_watchdog_cnt
|
||||
acquire_lock() {
|
||||
i=0
|
||||
while ! mkdir "$LOCKDIR" 2>/dev/null; do
|
||||
i=$((i+1))
|
||||
[ "$i" -ge 10 ] && break
|
||||
sleep 1
|
||||
done
|
||||
}
|
||||
release_lock() {
|
||||
rmdir "$LOCKDIR" 2>/dev/null
|
||||
}
|
||||
|
||||
lines_count() {
|
||||
f="$1"
|
||||
[ -f "$f" ] || { echo 0; return; }
|
||||
n="$(wc -l < "$f" 2>/dev/null)"
|
||||
case "$n" in ''|*[!0-9]*) n=0 ;; esac
|
||||
echo "$n"
|
||||
}
|
||||
lines_reset() { : > "$1"; }
|
||||
lines_inc() { echo "fail" >> "$1"; }
|
||||
|
||||
read_int_file() {
|
||||
f="$1"
|
||||
[ -f "$f" ] || { echo 0; return; }
|
||||
v="$(cat "$f" 2>/dev/null)"
|
||||
case "$v" in ''|*[!0-9]*) v=0 ;; esac
|
||||
echo "$v"
|
||||
}
|
||||
|
||||
init_temp_files() {
|
||||
local init_needed=0
|
||||
|
||||
if [ ! -d "/tmp" ] || [ ! -w "/tmp" ]; then
|
||||
logger -t LITE-WATCHDOG "ERROR: /tmp directory is not accessible or writable"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$GCNT_FILE" ]; then
|
||||
: > "$GCNT_FILE" 2>/dev/null || {
|
||||
logger -t LITE-WATCHDOG "ERROR: Cannot create $GCNT_FILE"
|
||||
exit 1
|
||||
}
|
||||
init_needed=1
|
||||
else
|
||||
if ! wc -l < "$GCNT_FILE" >/dev/null 2>&1; then
|
||||
: > "$GCNT_FILE"
|
||||
init_needed=1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -f "$HIDX_FILE" ]; then
|
||||
echo "0" > "$HIDX_FILE" 2>/dev/null || {
|
||||
logger -t LITE-WATCHDOG "ERROR: Cannot create $HIDX_FILE"
|
||||
exit 1
|
||||
}
|
||||
init_needed=1
|
||||
else
|
||||
hidx_val="$(read_int_file "$HIDX_FILE")"
|
||||
if [ "$hidx_val" -ge "$HOST_COUNT" ]; then
|
||||
echo "0" > "$HIDX_FILE"
|
||||
init_needed=1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -f "$STAGE_FILE" ] && [ "$UPTIME" -lt 300 ]; then
|
||||
rm -f "$STAGE_FILE"
|
||||
init_needed=1
|
||||
fi
|
||||
|
||||
if [ "$init_needed" -eq 1 ]; then
|
||||
date +"%A %d-%B %Y %T, Watchdog initialized (uptime: ${UPTIME}s, hosts: $HOST_COUNT)" >> "$LOG_FILE"
|
||||
fi
|
||||
}
|
||||
|
||||
PC="$2"
|
||||
case "$PC" in
|
||||
''|*[!0-9]*) PC=1 ;;
|
||||
*) [ "$PC" -le 0 ] && PC=1 ;;
|
||||
esac
|
||||
|
||||
HOSTS="$(echo "$3" | tr ',' ' ')"
|
||||
HOST_COUNT=0
|
||||
for H in $HOSTS; do
|
||||
[ -n "$H" ] || continue
|
||||
eval "HOST_${HOST_COUNT}=\$H"
|
||||
HOST_COUNT=$((HOST_COUNT + 1))
|
||||
done
|
||||
[ "$HOST_COUNT" -le 0 ] && exit 0
|
||||
|
||||
PRD="$4"
|
||||
case "$PRD" in
|
||||
''|*[!0-9]*) PRD=3 ;;
|
||||
*) if [ "$PRD" -le 0 ] || [ "$PRD" -gt 100 ]; then PRD=3; fi ;;
|
||||
esac
|
||||
|
||||
MAX_GLOBAL_COUNT=$((PRD + 5))
|
||||
|
||||
init_temp_files
|
||||
|
||||
date +"%Y-%m-%d %T" > /tmp/lite_watchdog_tt
|
||||
|
||||
acquire_lock
|
||||
HIDX="$(read_int_file "$HIDX_FILE")"
|
||||
if [ "$HIDX" -ge "$HOST_COUNT" ] || [ "$HIDX" -lt 0 ]; then
|
||||
HIDX=0
|
||||
echo "0" > "$HIDX_FILE"
|
||||
fi
|
||||
|
||||
date +"%Y-%m-%d %T" 2>&1 > /tmp/lite_watchdog_tt
|
||||
ping -q -4 -w 10 -c $2 $3 > /tmp/lite_watchdog 2>/dev/null
|
||||
eval "CURRENT_HOST=\$HOST_${HIDX}"
|
||||
|
||||
PR=$(awk '/packets received/ {print $4}' /tmp/lite_watchdog)
|
||||
[ -z "$PR" ] && PR=0
|
||||
if [ "$PR" = "0" ]; then
|
||||
if [ -z "$CURRENT_HOST" ]; then
|
||||
logger -t LITE-WATCHDOG "ERROR: Cannot read host at index $HIDX"
|
||||
release_lock
|
||||
exit 1
|
||||
fi
|
||||
release_lock
|
||||
|
||||
echo 0 >> /tmp/lite_watchdog_cnt
|
||||
if ping -q -4 -w 10 -c "$PC" "$CURRENT_HOST" >/tmp/lite_watchdog 2>&1; then
|
||||
# ONLINE
|
||||
acquire_lock
|
||||
if [ "$LOG_D" != "offline" ]; then
|
||||
date +"%A %d-%B %Y %T, Status: ONLINE (host: $CURRENT_HOST)" >> "$LOG_FILE"
|
||||
fi
|
||||
lines_reset "$GCNT_FILE"
|
||||
release_lock
|
||||
rm -f "$STAGE_FILE"
|
||||
|
||||
TSTC=$(wc -l < /tmp/lite_watchdog_cnt)
|
||||
TST=$((TSTC-1))
|
||||
|
||||
date +"%A %d-%B %Y %T, Status: OFFLINE > Failed $TST out of $4" >> $LOG_FILE
|
||||
|
||||
if [ "x$LEDST" = "x1" ]; then
|
||||
echo "0" > $LEDON
|
||||
fi
|
||||
if [ "x$LEDST" = "x1" ] && [ -w "$LEDON" ]; then
|
||||
echo "$LEDMAX" > "$LEDON" 2>/dev/null
|
||||
fi
|
||||
exit 0
|
||||
else
|
||||
if [ "$LOG_D" != "offline" ]; then
|
||||
date +"%A %d-%B %Y %T, Status: ONLINE" >> $LOG_FILE
|
||||
fi
|
||||
|
||||
if [ "x$LEDST" = "x1" ]; then
|
||||
echo "255" > $LEDON
|
||||
fi
|
||||
# OFFLINE
|
||||
acquire_lock
|
||||
GCNT_BEFORE="$(lines_count "$GCNT_FILE")"
|
||||
[ "$GCNT_BEFORE" -lt "$MAX_GLOBAL_COUNT" ] && lines_inc "$GCNT_FILE"
|
||||
GCNT="$(lines_count "$GCNT_FILE")"
|
||||
|
||||
NEXT_HIDX=$(( (HIDX + 1) % HOST_COUNT ))
|
||||
echo "$NEXT_HIDX" > "$HIDX_FILE"
|
||||
release_lock
|
||||
|
||||
echo 1 > /tmp/lite_watchdog_cnt
|
||||
exit 0
|
||||
fi
|
||||
CNT=$(wc -l < /tmp/lite_watchdog_cnt)
|
||||
CNT=$((CNT-1))
|
||||
date +"%A %d-%B %Y %T, Status: OFFLINE, host: $CURRENT_HOST ➜ Failed $GCNT out of $PRD" >> "$LOG_FILE"
|
||||
|
||||
if [ $CNT -ge $4 ]; then
|
||||
if [ "x$LEDST" = "x1" ] && [ -w "$LEDON" ]; then
|
||||
echo "0" > "$LEDON" 2>/dev/null
|
||||
fi
|
||||
|
||||
case "$5" in
|
||||
"reboot")
|
||||
[ -e /etc/lite_watchdog.user ] && env -i ACTION="reboot" /bin/sh /etc/lite_watchdog.user
|
||||
if [ "$GCNT" -ge "$PRD" ]; then
|
||||
ACTION="$5"
|
||||
WAN="$(uci -q get watchdog.@watchdog[0].iface)"
|
||||
|
||||
date +"%A %d-%B %Y %T, Status: OFFLINE > Action: Reboot" >> $LOG_FILE && sleep 5
|
||||
if [ -x /etc/lite_watchdog.user ]; then
|
||||
env -i \
|
||||
ACTION="$ACTION" PHASE="pre" \
|
||||
HOST_COUNT="$HOST_COUNT" PRD="$PRD" \
|
||||
GCNT_FILE="$GCNT_FILE" \
|
||||
GCNT="$GCNT" GLOBAL_THRESHOLD="$PRD" \
|
||||
LOG_FILE="$LOG_FILE" STAGE_FILE="$STAGE_FILE" \
|
||||
/bin/sh /etc/lite_watchdog.user >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
logger -t LITE-WATCHDOG "Reboot"
|
||||
reboot
|
||||
;;
|
||||
"wan")
|
||||
[ -e /etc/lite_watchdog.user ] && env -i ACTION="wan" /bin/sh /etc/lite_watchdog.user
|
||||
case "$ACTION" in
|
||||
reboot)
|
||||
date +"%A %d-%B %Y %T, Status: OFFLINE ➜ Action: Reboot" >> "$LOG_FILE" && sleep 5
|
||||
logger -t LITE-WATCHDOG "Reboot"
|
||||
reboot
|
||||
;;
|
||||
wan)
|
||||
if [ ! -f "$STAGE_FILE" ]; then
|
||||
date +"%A %d-%B %Y %T, Status: OFFLINE ➜ Action: Restarting interface" >> "$LOG_FILE" && sleep 5
|
||||
logger -t LITE-WATCHDOG "Restarting network interface: \"$WAN\"."
|
||||
: > "$STAGE_FILE"
|
||||
( ifdown "$WAN"; sleep 5; ifup "$WAN" ) &
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
echo -n "" > /tmp/lite_watchdog_cnt
|
||||
echo 0 >> /tmp/lite_watchdog_cnt
|
||||
|
||||
MODRES=$(uci -q get watchdog.@watchdog[0].modemrestart)
|
||||
if [ "$MODRES" == "1" ]; then
|
||||
CMD=$(uci -q get watchdog.@watchdog[0].restartcmd)
|
||||
PORT=$(uci -q get watchdog.@watchdog[0].set_port)
|
||||
|
||||
logger -t LITE-WATCHDOG "Restart modem on port: \"$PORT\"."
|
||||
(sms_tool -d $PORT at "$CMD") &
|
||||
|
||||
date +"%A %d-%B %Y %T, Status: OFFLINE > Action: At command was sent to modem" >> $LOG_FILE && sleep 59
|
||||
fi
|
||||
|
||||
WANT=$(uci -q get watchdog.@watchdog[0].iface)
|
||||
|
||||
if [[ "$WANT" == *"@"* ]]; then
|
||||
WAN=$(echo $WANT | sed 's/@//')
|
||||
else
|
||||
WAN=$(uci -q get watchdog.@watchdog[0].iface)
|
||||
fi
|
||||
|
||||
date +"%A %d-%B %Y %T, Status: OFFLINE > Action: Restarting interface" >> $LOG_FILE && sleep 5
|
||||
|
||||
logger -t LITE-WATCHDOG "Restarting network interface: \"$WAN\"."
|
||||
(ifdown $WAN; sleep 5; ifup $WAN) &
|
||||
;;
|
||||
esac
|
||||
if [ -f "$STAGE_FILE" ] && [ "$GCNT" -ge $((PRD + 1)) ]; then
|
||||
if [ -x /etc/lite_watchdog.user ]; then
|
||||
env -i \
|
||||
ACTION="$5" PHASE="post" \
|
||||
HOST_COUNT="$HOST_COUNT" PRD="$PRD" \
|
||||
GCNT_FILE="$GCNT_FILE" \
|
||||
GCNT="$GCNT" GLOBAL_THRESHOLD="$PRD" \
|
||||
LOG_FILE="$LOG_FILE" STAGE_FILE="$STAGE_FILE" \
|
||||
/bin/sh /etc/lite_watchdog.user >/dev/null 2>&1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
exit 0
|
||||
@@ -1,34 +1,39 @@
|
||||
{
|
||||
"luci-app-lite-watchdog": {
|
||||
"description": "Grant access to LuCI app lite-watchdog",
|
||||
"read": {
|
||||
"file": {
|
||||
"/usr/bin/lite-watchdog-data.sh": [ "exec" ],
|
||||
"/usr/bin/lite_watchdog.sh": [ "exec" ],
|
||||
"/sbin/watchdog2cron.sh": [ "exec" ],
|
||||
"/sbin/refresh2cron.sh": [ "exec" ],
|
||||
"/etc/lite_watchdog.user": [ "exec" ],
|
||||
"/etc/modem/log.txt": [ "read" ],
|
||||
"/tmp/lite_watchdog_cnt": [ "read" ],
|
||||
"/tmp/lite_watchdog": [ "read" ],
|
||||
"/tmp/lite_watchdog_tt": [ "read" ],
|
||||
"/etc/lite_watchdog.user": [ "read" ],
|
||||
"/etc/watchdog": [ "read" ]
|
||||
},
|
||||
"uci": [ "watchdog", "luci-app-lite-watchdog" ]
|
||||
},
|
||||
"write": {
|
||||
"file": {
|
||||
"/etc/watchdog": [ "write" ],
|
||||
"/tmp/lite_watchdog_cnt": [ "write" ],
|
||||
"/tmp/lite_watchdog": [ "write" ],
|
||||
"/tmp/lite_watchdog_tt": [ "write" ],
|
||||
"/etc/lite_watchdog.user": [ "write" ],
|
||||
"/sys/class/leds/*/brightness": [ "write" ],
|
||||
"/etc/modem/log.txt": [ "write" ]
|
||||
},
|
||||
"uci": [ "watchdog", "luci-app-lite-watchdog" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
"luci-app-lite-watchdog": {
|
||||
"description": "Grant access to LuCI app lite-watchdog",
|
||||
"read": {
|
||||
"file": {
|
||||
"/usr/bin/lite-watchdog-data.sh": [ "exec" ],
|
||||
"/usr/bin/lite_watchdog.sh": [ "exec" ],
|
||||
"/etc/init.d/cron restart": [ "exec" ],
|
||||
"/etc/lite_watchdog.user": [ "exec" ],
|
||||
"/etc/modem/log.txt": [ "read" ],
|
||||
"/tmp/lite_watchdog_cnt": [ "read" ],
|
||||
"/tmp/lite_watchdog": [ "read" ],
|
||||
"/tmp/lite_watchdog_tt": [ "read" ],
|
||||
"/etc/lite_watchdog.user": [ "read" ],
|
||||
"/etc/watchdog": [ "read" ],
|
||||
"/etc/crontabs/root": [ "read" ]
|
||||
},
|
||||
"uci": [ "watchdog", "luci-app-lite-watchdog" ]
|
||||
},
|
||||
"write": {
|
||||
"file": {
|
||||
"/etc/watchdog": [ "write" ],
|
||||
"/etc/init.d/cron restart": [ "exec" ],
|
||||
"/tmp/lite_watchdog_cnt": [ "write" ],
|
||||
"/tmp/lite_watchdog_gcnt": [ "write" ],
|
||||
"/tmp/lite_watchdog_index": [ "write" ],
|
||||
"/tmp/lite_watchdog_stage": [ "write" ],
|
||||
"/tmp/lite_watchdog": [ "write" ],
|
||||
"/tmp/lite_watchdog_tt": [ "write" ],
|
||||
"/etc/lite_watchdog.user": [ "write" ],
|
||||
"/etc/crontabs/root": [ "write" ],
|
||||
"/sys/class/leds/*/brightness": [ "write" ],
|
||||
"/etc/modem/log.txt": [ "write" ]
|
||||
},
|
||||
"uci": [ "watchdog", "luci-app-lite-watchdog" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-log-viewer
|
||||
PKG_VERSION:=1.5.0
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
LUCI_TITLE:=Advanced syslog and kernel log (tail, search, etc)
|
||||
LUCI_DEPENDS:=+ucode +ucode-mod-fs
|
||||
LUCI_PKGARCH:=all
|
||||
|
||||
@@ -724,7 +724,7 @@ return baseclass.extend({
|
||||
if(!fPattern) {
|
||||
return entriesArray;
|
||||
};
|
||||
fPattern = this.htmlEntities(fPattern);
|
||||
//fPattern = this.htmlEntities(fPattern);
|
||||
return (this.msgFilterReValue) ?
|
||||
this.setRegexpFilter(entriesArray, 5, fPattern) :
|
||||
this.setStringFilter(entriesArray, 5, fPattern);
|
||||
|
||||
Reference in new issue
Block a user