luci-app-ddns: Update to version 2.1.1-0

- adaption Makefile to changed luci.mk
- description in Makefile for correct version handling
- modified handling to detect and display installed version
- new functions ipkg_ver_installed() and ipkg_ver_compare
- correct wrong spellings
- modified language template and German translation

Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
This commit is contained in:
Christian Schoenebeck 2015-01-18 19:22:54 +01:00
parent 52ecc90b31
commit 819a733df3
13 changed files with 230 additions and 176 deletions

View file

@ -6,17 +6,32 @@
include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI Support for Dynamic DNS (ddns-scripts)
LUCI_DEPENDS:=+ddns-scripts +luci-mod-admin-full
# LuCI specific settings
LUCI_TITLE:=LuCI Support for Dynamic DNS Client (ddns-scripts)
LUCI_DEPENDS:=+luci-mod-admin-full +ddns-scripts
PKG_NAME:=luci-app-ddns
PKG_VERSION:=2.1.0
PKG_RELEASE:=4
PKG_LICENSE:=Apache-2.0
PKGARCH:=all
# Version == major.minor.patch
# increase on new functionality (minor) or patches (patch)
PKG_VERSION:=2.1.1
# Release == build
# increase on changes of translation files
PKG_RELEASE:=0
PKG_LICENSE:=Apache-2.0
PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com>
define Package/$(PKG_NAME)/config
# shown in make menuconfig <Help>
help
$(LUCI_TITLE)
Version : $(PKG_VERSION)-$(PKG_RELEASE)
Maintainer: $(PKG_MAINTAINER)
endef
include ../../luci.mk
# call BuildPackage - OpenWrt buildroot signature

View file

@ -15,19 +15,21 @@ local SYS = require "luci.sys"
local DDNS = require "luci.tools.ddns" -- ddns multiused functions
local UTIL = require "luci.util"
local luci_ddns_version = "2.1.0-4" -- luci-app-ddns / openwrt Makefile compatible version
local ddns_scripts_min = "2.1.0-3" -- minimum version of ddns-scripts required
DDNS_MIN = "2.1.0-2" -- minimum version of service required
function index()
-- no services_ipv6 file or no dynamic_dns_lucihelper.sh
-- do NOT start
if not nixio.fs.access("/usr/lib/ddns/services_ipv6")
or not nixio.fs.access("/usr/lib/ddns/dynamic_dns_lucihelper.sh") then
local nxfs = require "nixio.fs" -- global definitions not available
local sys = require "luci.sys" -- in function index()
local ddns = require "luci.tools.ddns" -- ddns multiused functions
local verinst = ddns.ipkg_ver_installed("ddns-scripts")
local verok = ddns.ipkg_ver_compare(verinst, ">=", "2.0.0-0")
-- do NOT start it not ddns-scripts version 2.x
if not verok then
return
end
-- no config create an empty one
if not nixio.fs.access("/etc/config/ddns") then
nixio.fs.writefile("/etc/config/ddns", "")
if not nxfs.access("/etc/config/ddns") then
nxfs.writefile("/etc/config/ddns", "")
end
entry( {"admin", "services", "ddns"}, cbi("ddns/overview"), _("Dynamic DNS"), 59)
@ -44,17 +46,11 @@ local function _get_status()
local uci = UCI.cursor()
local service = SYS.init.enabled("ddns") and 1 or 0
local url_start = DISP.build_url("admin", "system", "startup")
local luci_build = DDNS.ipkg_version("luci-app-ddns").version
local ddns_act = DDNS.ipkg_version("ddns-scripts").version
local data = {} -- Array to transfer data to javascript
data[#data+1] = {
enabled = service, -- service enabled
url_up = url_start, -- link to enable DDS (System-Startup)
luci_ver = luci_ddns_version, -- luci-app-ddns / openwrt Makefile compatible version
luci_build = luci_build, -- installed luci build
script_min = ddns_scripts_min, -- minimum version of ddns-scripts needed
script_ver = ddns_act -- installed ddns-scripts
}
uci:foreach("ddns", "service", function (s)
@ -63,8 +59,8 @@ local function _get_status()
-- and enabled state
local section = s[".name"]
local enabled = tonumber(s["enabled"]) or 0
local datelast = "_empty_" -- formated date of last update
local datenext = "_empty_" -- formated date of next update
local datelast = "_empty_" -- formatted date of last update
local datenext = "_empty_" -- formatted date of next update
-- get force seconds
local force_seconds = DDNS.calc_seconds(
@ -182,7 +178,7 @@ function startstop(section, enabled)
return
end
-- read uncommited changes
-- read uncommitted changes
-- we don't save and commit data from other section or other options
-- only enabled will be done
local exec = true
@ -210,9 +206,9 @@ function startstop(section, enabled)
end
-- we can not execute because other
-- uncommited changes pending, so exit here
-- uncommitted changes pending, so exit here
if not exec then
HTTP.write("_uncommited_")
HTTP.write("_uncommitted_")
return
end
@ -238,14 +234,3 @@ function status()
HTTP.prepare_content("application/json")
HTTP.write_json(data)
end
-- check if installed ddns-scripts version < required version
function update_needed()
local sver = DDNS.ipkg_version("ddns-scripts")
local rver = UTIL.split(ddns_scripts_min, "[%.%-]", nil, true)
return (sver.major < (tonumber(rver[1]) or 0))
or (sver.minor < (tonumber(rver[2]) or 0))
or (sver.patch < (tonumber(rver[3]) or 0))
or (sver.build < (tonumber(rver[4]) or 0))
end

View file

@ -22,7 +22,7 @@ has_ipv6 = DDNS.check_ipv6() -- IPv6 support
has_ssl = DDNS.check_ssl() -- HTTPS support
has_proxy = DDNS.check_proxy() -- Proxy support
has_dnstcp = DDNS.check_bind_host() -- DNS TCP support
has_force = has_ssl and has_dnstcp -- Force IP Protocoll
has_force = has_ssl and has_dnstcp -- Force IP Protocoll
-- html constants -- ###########################################################
font_red = "<font color='red'>"

View file

@ -11,7 +11,8 @@ local DDNS = require "luci.tools.ddns" -- ddns multiused functions
has_ssl = DDNS.check_ssl() -- HTTPS support
has_proxy = DDNS.check_proxy() -- Proxy support
has_dnstcp = DDNS.check_bind_host() -- DNS TCP support
need_update = CTRL.update_needed() -- correct ddns-scripts version
-- correct ddns-scripts version
need_update = DDNS.ipkg_ver_compare(DDNS.ipkg_ver_installed("ddns-scripts"), "<<", CTRL.DDNS_MIN)
-- html constants
font_red = [[<font color="red">]]

View file

@ -14,7 +14,8 @@ show_hints = not (DDNS.check_ipv6() -- IPv6 support
and DDNS.check_proxy() -- Proxy support
and DDNS.check_bind_host() -- DNS TCP support
)
need_update = CTRL.update_needed() -- correct ddns-scripts version
-- correct ddns-scripts version
need_update = DDNS.ipkg_ver_compare(DDNS.ipkg_ver_installed("ddns-scripts"), "<<", CTRL.DDNS_MIN)
-- html constants
font_red = [[<font color="red">]]
@ -28,8 +29,17 @@ m = Map("ddns")
-- first need to close <a> from cbi map template our <a> closed by template
--m.title = [[</a><a href="javascript:alert(']] .. CTRL.show_versions() ..[[')">]] ..
-- translate("Dynamic DNS")
m.title = [[</a><a href="#" onclick="onclick_maptitle();">]] ..
translate("Dynamic DNS")
m.title = [[</a><a href="javascript:alert(']]
.. translate("Version Information")
.. [[\n\nluci-app-ddns]]
.. [[\n\t]] .. translate("Version") .. [[:\t]] .. DDNS.ipkg_ver_installed("luci-app-ddns")
.. [[\n\nddns-scripts ]] .. translate("required") .. [[:]]
.. [[\n\t]] .. translate("Version") .. [[:\t]] .. CTRL.DDNS_MIN .. [[ ]] .. translate("or higher")
.. [[\n\nddns-scripts ]] .. translate("installed") .. [[:]]
.. [[\n\t]] .. translate("Version") .. [[:\t]] .. DDNS.ipkg_ver_installed("ddns-scripts")
.. [[\n\n]]
.. [[')">]]
.. translate("Dynamic DNS")
m.description = translate("Dynamic DNS allows that your router can be reached with " ..
"a fixed hostname while having a dynamically changing " ..

View file

@ -96,33 +96,29 @@ function get_pid(section)
return pid
end
-- read version information for given package if installed
function ipkg_version(package)
if not package then
-- compare versions using "<=" "<" ">" ">=" "=" "<<" ">>"
function ipkg_ver_compare(ver1, comp, ver2)
if not ver1 or not (#ver1 > 0)
or not ver2 or not (#ver2 > 0)
or not comp or not (#comp > 0) then
return nil
end
local info = OPKG.info(package)
local data = {}
local version = ""
local i = 0
for k, v in pairs(info) do
if v.Package == package and v.Status.installed then
version = v.Version
i = i + 1
end
return (tonumber(SYS.call(
[[opkg compare-versions "]] .. ver1 .. [[" "]] .. comp .. [[" "]] .. ver2 .. [["]]
)) == 1)
end
-- read version information for given package if installed
function ipkg_ver_installed(pkg)
if not pkg then
return nil
end
if i > 1 then -- more then one valid record
return data
-- opkg list-installed [pkg] | cut -d " " -f 3 - return version as sting
local ver = SYS.exec([[opkg list-installed ]] .. pkg .. [[ | cut -d " " -f 3 ]])
if (#ver > 0) then
return ver
end
local sver = UTIL.split(version, "[%.%-]", nil, true)
data = {
version = version,
major = tonumber(sver[1]) or 0,
minor = tonumber(sver[2]) or 0,
patch = tonumber(sver[3]) or 0,
build = tonumber(sver[4]) or 0
}
return data
return nil
end
-- replacement of build-in read of UCI option

View file

@ -1,6 +1,6 @@
<!-- ++ BEGIN ++ Dynamic DNS ++ detail_lvalue.htm ++ -->
<!-- no value header to supress next line -->
<!-- no value header to suppress next line -->
&#160;
<% if self.widget == "select" then %>
<select class="cbi-input-select" onchange="cbi_d_update(this.id)"<%= attr("id", cbid) .. attr("name", cbid) .. ifattr(self.size, "size") %>>

View file

@ -5,5 +5,5 @@
attr("name", cbid) .. attr("id", cbid) .. attr("value", self:cfgvalue(section) or self.default) ..
ifattr(self.size, "size") .. ifattr(self.placeholder, "placeholder")
%> />
<!-- no value footer to supress next line -->
<!-- no value footer to suppress next line -->
<!-- ++ END ++ Dynamic DNS ++ detail_value.htm ++ -->

View file

@ -6,7 +6,7 @@
-- We need to garantie that function cfgvalue run first to set missing parameters
%>
<!-- style="font-size: 100%;" needed for openwrt theme to fix font size -->
<!-- type="button" onclick="..." enable standard onclick functionalty -->
<!-- type="button" onclick="..." enable standard onclick functionality -->
<input class="cbi-button cbi-input-<%=self.inputstyle or "button" %>" style="font-size: 100%;" type="button" onclick="onclick_startstop(this.id)"
<%=
attr("name", section) .. attr("id", cbid) .. attr("value", self.inputtitle) .. ifattr(self.disabled, "disabled")

View file

@ -2,12 +2,6 @@
<!-- ++ BEGIN ++ Dynamic DNS ++ overview_status.htm ++ -->
<script type="text/javascript">//<![CDATA[
// variables to store version information
var luci_version
var luci_build
var ddns_version
var ddns_required
// helper to extract section from objects id
// cbi.ddns.SECTION._xyz
function _id2section(id) {
@ -19,13 +13,6 @@
// screen objects
// called by XHR.poll and onclick_startstop
function _data2elements(data) {
// DDNS Service
// fill Version informations
luci_version = data[0].luci_ver
luci_build = data[0].luci_build
ddns_version = data[0].script_ver
ddns_required = data[0].script_min
// Service sections
for( i = 1; i < data.length; i++ )
{
@ -135,27 +122,13 @@
}
}
// event handler for map.title link
function onclick_maptitle() {
var str = "<%:Version Information%>";
str += "\n\nluci-app-ddns:";
str += "\n\t<%:Version%>:\t" + luci_version;
str += "\n\t<%:Build%>:\t" + luci_build;
str += "\n\nddns-scripts <%:required%>:";
str += "\n\t<%:Version%>:\t" + ddns_required + " <%:or greater%>";
str += "\n\nddns-scripts <%:installed%>:";
str += "\n\t<%:Version%>:\t" + ddns_version;
str += "\n\n"
alert(str);
}
// event handler for start/stop button
function onclick_startstop(id) {
// extract section
var section = _id2section(id);
// get elements
var cbx = document.getElementById("cbid.ddns." + section + ".enabled"); // Enabled
var obj = document.getElementById("cbi-ddns-overview-status-legend"); // objext defined below to make in-/visible
var obj = document.getElementById("cbi-ddns-overview-status-legend"); // object defined below to make in-/visible
if ( !(obj && cbx) ) { return; } // security check
// make me visible
@ -165,7 +138,7 @@
var btnXHR = new XHR();
btnXHR.get('<%=luci.dispatcher.build_url("admin", "services", "ddns", "startstop")%>/' + section + '/' + cbx.checked, null,
function(x, data) {
if (x.responseText == "_uncommited_") {
if (x.responseText == "_uncommitted_") {
// we need a trick to display Ampersand "&" in stead of "&#38;" or "&amp;"
// after translation
txt="<%:Please [Save & Apply] your changes first%>";
@ -182,8 +155,9 @@
);
}
var ddns_ov_XHR = new XHR();
// force to immediate show status on page load (not waiting for XHR.poll)
XHR.get('<%=luci.dispatcher.build_url("admin", "services", "ddns", "status")%>', null,
ddns_ov_XHR.get('<%=luci.dispatcher.build_url("admin", "services", "ddns", "status")%>', null,
function(x, data) {
_data2elements(data);
}
@ -192,7 +166,7 @@
// define only ONE XHR.poll in a page because if one is running it blocks the other one
// optimum is to define on Map or Section Level from here you can reach all elements
// we need update every 15 seconds only
XHR.poll(15, '<%=luci.dispatcher.build_url("admin", "services", "ddns", "status")%>', null,
ddns_ov_XHR.poll(15, '<%=luci.dispatcher.build_url("admin", "services", "ddns", "status")%>', null,
function(x, data) {
_data2elements(data);
}

View file

@ -106,7 +106,7 @@
break;
}
// monitored interfacce
// monitored interface
if (data[i].iface == "_nonet_")
tr.insertCell(-1).innerHTML = '<em><%:Config error%></em>';
else
@ -125,14 +125,15 @@
}
}
var ddns_status_XHR = new XHR();
// force to immediate show status (not waiting for XHR.poll)
XHR.get('<%=luci.dispatcher.build_url("admin", "services", "ddns", "status")%>', null,
ddns_status_XHR.get('<%=luci.dispatcher.build_url("admin", "services", "ddns", "status")%>', null,
function(x, data) {
_data2elements(x, data);
}
);
XHR.poll(10, '<%=luci.dispatcher.build_url("admin", "services", "ddns", "status")%>', null,
ddns_status_XHR.poll(10, '<%=luci.dispatcher.build_url("admin", "services", "ddns", "status")%>', null,
function(x, data) {
_data2elements(x, data);
}

View file

@ -1,10 +1,10 @@
msgid ""
msgstr ""
"Project-Id-Version: luci-app-ddns\n"
"POT-Creation-Date: 2014-11-09 13:41+0100\n"
"PO-Revision-Date: 2014-11-09 14:29+0100\n"
"POT-Creation-Date: 2015-01-17 18:28+0100\n"
"PO-Revision-Date: 2015-01-17 18:36+0100\n"
"Last-Translator: Christian Schoenebeck <christian.schoenebeck@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language-Team: \n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -17,6 +17,15 @@ msgstr ""
msgid "&"
msgstr "&"
msgid "-- custom --"
msgstr "-- benutzerdefiniert --"
msgid "Advanced Settings"
msgstr "Erweiterte Einstellungen"
msgid "Applying changes"
msgstr "Änderungen anwenden"
msgid "Basic Settings"
msgstr "Grundlegende Einstellungen"
@ -36,9 +45,6 @@ msgstr ""
">Wenn Sie Aktualisierungen für IPv4 und IPv6 senden möchten benötigen Sie "
"zwei Konfigurationen z.B. 'myddns_ipv4' und 'myddns_ipv6'"
msgid "Build"
msgstr "Build"
msgid ""
"BusyBox's nslookup and Wget do not support to specify the IP version to use "
"for communication with DDNS Provider."
@ -56,15 +62,15 @@ msgstr ""
msgid "Check Interval"
msgstr "Prüfinterval"
msgid "Check for changed IP every"
msgstr "Teste auf neue IP alle"
msgid "Check-time unit"
msgstr "Zeiteinheit"
msgid "Collecting data..."
msgstr "Sammle Daten..."
msgid "Config error"
msgstr "Konfigurationsfehler"
msgid "Configuration"
msgstr "Einstellungen"
msgid "Configure here the details for selected Dynamic DNS service"
msgstr "Konfiguriere hier die Details für den gewählten Dynamik DNS Dienst"
@ -153,6 +159,9 @@ msgstr ""
msgid "Details for"
msgstr "Details für"
msgid "Disabled"
msgstr "Deaktiviert"
msgid "Dynamic DNS"
msgstr "Dynamisches DNS"
@ -166,6 +175,12 @@ msgstr ""
msgid "Enable secure communication with DDNS provider"
msgstr "Aktiviert sichere Kommunikation mit dem DDNS Anbieter"
msgid "Enabled"
msgstr "Aktiviert"
msgid "Error"
msgstr "Fehler"
msgid "Error Retry Counter"
msgstr "Wiederholungszähler bei Fehler"
@ -175,8 +190,8 @@ msgstr "Wiederholungsintervall bei Fehler"
msgid "Event Network"
msgstr "Ereignis Netzwerk"
msgid "Event interface"
msgstr "Ereignis Netzwerk"
msgid "File"
msgstr "Datei"
msgid "File not found"
msgstr "Datei nicht gefunden"
@ -203,12 +218,6 @@ msgstr "Erzwungene Aktualisierung"
msgid "Force TCP on DNS"
msgstr "Erzwinge TCP bei DNS-Anfragen"
msgid "Force update every"
msgstr "Erzwinge Aktualisierung alle"
msgid "Force-time unit"
msgstr "Zeiteinheit"
msgid "Forced IP Version don't matched"
msgstr "Erzwungene IP Version stimmt nicht überein"
@ -233,6 +242,9 @@ msgstr "IP-Adressquelle"
msgid "IP address version"
msgstr "IP-Adressversion"
msgid "IPv4-Address"
msgstr "IPv4-Adresse"
msgid "IPv6 address must be given in square brackets"
msgstr "Eine IPv6 Adresse muss in eckigen Klammern angegeben werden"
@ -248,6 +260,9 @@ msgstr ""
msgid "IPv6 not supported"
msgstr "IPv6 nicht unterstützt"
msgid "IPv6-Address"
msgstr "IPv6-Adresse"
msgid ""
"If this service section is disabled it could not be started.<br />Neither "
"from LuCI interface nor from console"
@ -261,6 +276,12 @@ msgstr ""
"In einigen Versionen von OpenWrt wurde cURL/libcurl ohne Proxy Unterstützung "
"compiliert."
msgid "Info"
msgstr "Informationen"
msgid "Interface"
msgstr "Schnittstelle"
msgid ""
"Interval to check for changed IP<br />Values below 5 minutes == 300 seconds "
"are not supported"
@ -280,6 +301,9 @@ msgstr ""
msgid "Last Update"
msgstr "Letztes Aktualisierung"
msgid "Loading"
msgstr "Lade"
msgid "Log File Viewer"
msgstr "Protokolldatei"
@ -296,6 +320,9 @@ msgstr ""
"Weder GNU Wget mit SSL noch cURL sind installiert um Aktualisierungen über "
"HTTPS Protokoll zu unterstützen."
msgid "Network"
msgstr "Netzwerk"
msgid "Network on which the ddns-updater scripts will be started"
msgstr "Netzwerk auf dem Ereignisse die ddns-updater Skripte starten"
@ -311,6 +338,9 @@ msgstr "Keine Daten"
msgid "No logging"
msgstr "Keine Protokollierung"
msgid "Notice"
msgstr "Notiz"
msgid "OPTIONAL: Force the usage of pure IPv4/IPv6 only communication."
msgstr ""
"OPTIONAL: Erzwingt die Verwendung einer reinen IPv4/IPv6 Kommunikation."
@ -338,12 +368,21 @@ msgstr ""
msgid "On Error the script will stop execution after given number of retrys"
msgstr "Das Skript wird nach der gegebener Anzahlt von Fehlversuchen beendet"
msgid "Overview"
msgstr "Übersicht"
msgid "PROXY-Server"
msgstr "Proxy-Server"
msgid "PROXY-Server not supported"
msgstr "Proxy-Server nicht unterstützt"
msgid "Password"
msgstr "Passwort"
msgid "Path to CA-Certificate"
msgstr "Pfad zum CA-Zertifikat"
msgid "Please [Save & Apply] your changes first"
msgstr "Bitte [Speichern & Anwenden] Sie Änderungen zunächst"
@ -377,17 +416,14 @@ msgstr "Einmalig ausführen"
msgid "Script"
msgstr "Skript"
msgid "Service"
msgstr "Dienst"
msgid "Show more"
msgstr "Zeige mehr"
msgid "Software update required"
msgstr "Softwareaktualisierung nötig"
msgid "Source of IP address"
msgstr "Quelle der IP-Adresse"
msgid "Start"
msgstr "Start"
msgid "Start / Stop"
msgstr "Start / Stopp"
@ -435,9 +471,24 @@ msgstr ""
"Definiert das Skript mit dem die aktuelle IP-Adresse des System gelesen "
"wird."
msgid "Username"
msgstr "Benutzername"
msgid "Verify"
msgstr "überprüfen"
msgid "Version"
msgstr "Version"
msgid "Version Information"
msgstr "Versionsinformationen"
msgid "Waiting for changes to be applied..."
msgstr "Änderungen werden angewandt..."
msgid "Warning"
msgstr "Warnung"
msgid ""
"Writes detailed messages to log file. File will be truncated automatically."
msgstr ""
@ -482,9 +533,6 @@ msgstr "Konnte Server nicht finden:"
msgid "config error"
msgstr "Konfigurationsfehler"
msgid "custom"
msgstr "benutzerdefiniert"
msgid "days"
msgstr "Tage"
@ -500,9 +548,6 @@ msgstr "hier aktivieren"
msgid "file or directory not found or not 'IGNORE'"
msgstr "Datei oder Verzeichnis nicht gefunden oder nicht 'IGNORE'"
msgid "h"
msgstr "Stunden"
msgid "hours"
msgstr "Stunden"
@ -512,15 +557,9 @@ msgstr "Aktualisierung hier installieren"
msgid "installed"
msgstr "installiert"
msgid "interface"
msgstr "Schnittstelle"
msgid "invalid - Sample"
msgstr "ungültig - Beispiel"
msgid "min"
msgstr "Minuten"
msgid "minimum value '0'"
msgstr "Minimum Wert '0'"
@ -545,9 +584,6 @@ msgstr "muss mit 'http://' beginnen"
msgid "nc (netcat) can not connect"
msgstr "nc (netcat) kann keine Verbindung herstellen"
msgid "network"
msgstr "Netzwerk"
msgid "never"
msgstr "nie"
@ -564,8 +600,8 @@ msgstr "nslookup kann den Namen nicht auflösen"
msgid "or"
msgstr "oder"
msgid "or greater"
msgstr "oder größer"
msgid "or higher"
msgstr "oder höher"
msgid "please disable"
msgstr "Bitte deaktivieren"

View file

@ -4,6 +4,15 @@ msgstr "Content-Type: text/plain; charset=UTF-8"
msgid "&"
msgstr ""
msgid "-- custom --"
msgstr ""
msgid "Advanced Settings"
msgstr ""
msgid "Applying changes"
msgstr ""
msgid "Basic Settings"
msgstr ""
@ -18,9 +27,6 @@ msgid ""
"separate Configurations i.e. 'myddns_ipv4' and 'myddns_ipv6'"
msgstr ""
msgid "Build"
msgstr ""
msgid ""
"BusyBox's nslookup and Wget do not support to specify the IP version to use "
"for communication with DDNS Provider."
@ -34,15 +40,15 @@ msgstr ""
msgid "Check Interval"
msgstr ""
msgid "Check for changed IP every"
msgstr ""
msgid "Check-time unit"
msgid "Collecting data..."
msgstr ""
msgid "Config error"
msgstr ""
msgid "Configuration"
msgstr ""
msgid "Configure here the details for selected Dynamic DNS service"
msgstr ""
@ -109,6 +115,9 @@ msgstr ""
msgid "Details for"
msgstr ""
msgid "Disabled"
msgstr ""
msgid "Dynamic DNS"
msgstr ""
@ -120,6 +129,12 @@ msgstr ""
msgid "Enable secure communication with DDNS provider"
msgstr ""
msgid "Enabled"
msgstr ""
msgid "Error"
msgstr ""
msgid "Error Retry Counter"
msgstr ""
@ -129,7 +144,7 @@ msgstr ""
msgid "Event Network"
msgstr ""
msgid "Event interface"
msgid "File"
msgstr ""
msgid "File not found"
@ -155,12 +170,6 @@ msgstr ""
msgid "Force TCP on DNS"
msgstr ""
msgid "Force update every"
msgstr ""
msgid "Force-time unit"
msgstr ""
msgid "Forced IP Version don't matched"
msgstr ""
@ -185,6 +194,9 @@ msgstr ""
msgid "IP address version"
msgstr ""
msgid "IPv4-Address"
msgstr ""
msgid "IPv6 address must be given in square brackets"
msgstr ""
@ -197,6 +209,9 @@ msgstr ""
msgid "IPv6 not supported"
msgstr ""
msgid "IPv6-Address"
msgstr ""
msgid ""
"If this service section is disabled it could not be started.<br />Neither "
"from LuCI interface nor from console"
@ -206,6 +221,12 @@ msgid ""
"In some versions cURL/libcurl in OpenWrt is compiled without proxy support."
msgstr ""
msgid "Info"
msgstr ""
msgid "Interface"
msgstr ""
msgid ""
"Interval to check for changed IP<br />Values below 5 minutes == 300 seconds "
"are not supported"
@ -220,6 +241,9 @@ msgstr ""
msgid "Last Update"
msgstr ""
msgid "Loading"
msgstr ""
msgid "Log File Viewer"
msgstr ""
@ -234,6 +258,9 @@ msgid ""
"protocol."
msgstr ""
msgid "Network"
msgstr ""
msgid "Network on which the ddns-updater scripts will be started"
msgstr ""
@ -249,6 +276,9 @@ msgstr ""
msgid "No logging"
msgstr ""
msgid "Notice"
msgstr ""
msgid "OPTIONAL: Force the usage of pure IPv4/IPv6 only communication."
msgstr ""
@ -270,12 +300,21 @@ msgstr ""
msgid "On Error the script will stop execution after given number of retrys"
msgstr ""
msgid "Overview"
msgstr ""
msgid "PROXY-Server"
msgstr ""
msgid "PROXY-Server not supported"
msgstr ""
msgid "Password"
msgstr ""
msgid "Path to CA-Certificate"
msgstr ""
msgid "Please [Save & Apply] your changes first"
msgstr ""
@ -309,16 +348,13 @@ msgstr ""
msgid "Script"
msgstr ""
msgid "Service"
msgstr ""
msgid "Show more"
msgstr ""
msgid "Software update required"
msgstr ""
msgid "Source of IP address"
msgid "Start"
msgstr ""
msgid "Start / Stop"
@ -361,9 +397,24 @@ msgstr ""
msgid "User defined script to read systems IP-Address"
msgstr ""
msgid "Username"
msgstr ""
msgid "Verify"
msgstr ""
msgid "Version"
msgstr ""
msgid "Version Information"
msgstr ""
msgid "Waiting for changes to be applied..."
msgstr ""
msgid "Warning"
msgstr ""
msgid ""
"Writes detailed messages to log file. File will be truncated automatically."
msgstr ""
@ -397,9 +448,6 @@ msgstr ""
msgid "config error"
msgstr ""
msgid "custom"
msgstr ""
msgid "days"
msgstr ""
@ -415,9 +463,6 @@ msgstr ""
msgid "file or directory not found or not 'IGNORE'"
msgstr ""
msgid "h"
msgstr ""
msgid "hours"
msgstr ""
@ -427,15 +472,9 @@ msgstr ""
msgid "installed"
msgstr ""
msgid "interface"
msgstr ""
msgid "invalid - Sample"
msgstr ""
msgid "min"
msgstr ""
msgid "minimum value '0'"
msgstr ""
@ -460,9 +499,6 @@ msgstr ""
msgid "nc (netcat) can not connect"
msgstr ""
msgid "network"
msgstr ""
msgid "never"
msgstr ""
@ -478,7 +514,7 @@ msgstr ""
msgid "or"
msgstr ""
msgid "or greater"
msgid "or higher"
msgstr ""
msgid "please disable"