luci-app-ddns: Update to version 2.1.1-0 297/head
authorChristian Schoenebeck <christian.schoenebeck@gmail.com>
Sun, 18 Jan 2015 18:22:54 +0000 (19:22 +0100)
committerChristian Schoenebeck <christian.schoenebeck@gmail.com>
Sun, 18 Jan 2015 18:22:54 +0000 (19:22 +0100)
- 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>
13 files changed:
applications/luci-app-ddns/Makefile
applications/luci-app-ddns/luasrc/controller/ddns.lua
applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua
applications/luci-app-ddns/luasrc/model/cbi/ddns/hints.lua
applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua
applications/luci-app-ddns/luasrc/tools/ddns.lua
applications/luci-app-ddns/luasrc/view/ddns/detail_lvalue.htm
applications/luci-app-ddns/luasrc/view/ddns/detail_value.htm
applications/luci-app-ddns/luasrc/view/ddns/overview_startstop.htm
applications/luci-app-ddns/luasrc/view/ddns/overview_status.htm
applications/luci-app-ddns/luasrc/view/ddns/system_status.htm
applications/luci-app-ddns/po/de/ddns.po
applications/luci-app-ddns/po/templates/ddns.pot

index d116f06..18906cd 100644 (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
index 3cd52e5..56d2b66 100644 (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
-
index 057b8c8..77753c0 100644 (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'>"
index 15da028..009ba99 100644 (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">]]
index 2944ec5..83b10e9 100644 (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 " ..
index 5c8ced5..2fbcff8 100644 (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
index d516837..0bcfd44 100644 (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") %>>
index 7cb28e2..cbe76ab 100644 (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 ++ -->
index 8255aa6..327028c 100644 (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")
index 37c54be..6cca0e7 100644 (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) {
        // 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++ )
                {
                }
        }
 
-       // 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
                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%>";
                );
        }
 
+       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);
                }
        // 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);
                }
index db9d1d1..7c60726 100644 (file)
                                        break;
                        }
 
-                       // monitored interfacce
+                       // monitored interface
                        if (data[i].iface == "_nonet_")
                                tr.insertCell(-1).innerHTML = '<em><%:Config error%></em>';
                        else
                }
        }
 
+       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);
                }
index 9706dbd..b965a91 100644 (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"
index c3b8c93..4b983ce 100644 (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,13 +40,13 @@ msgstr ""
 msgid "Check Interval"
 msgstr ""
 
-msgid "Check for changed IP every"
+msgid "Collecting data..."
 msgstr ""
 
-msgid "Check-time unit"
+msgid "Config error"
 msgstr ""
 
-msgid "Config error"
+msgid "Configuration"
 msgstr ""
 
 msgid "Configure here the details for selected Dynamic DNS service"
@@ -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"