summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2008-06-08 13:03:55 +0000
committerSteven Barth <steven@midlink.org>2008-06-08 13:03:55 +0000
commitb088031a8e5966a0782549149f9920e9639d0581 (patch)
tree7485d1438d4cd9ab745f2ea463c6f3ecf39da2d6
parent7d03f8ea8a5edf72b708a8a4f45346048274fae6 (diff)
* Core translation
-rw-r--r--i18n/english/luasrc/i18n/admin-core.en.lua47
-rw-r--r--i18n/english/luasrc/i18n/default.en.lua12
-rw-r--r--i18n/german/luasrc/i18n/admin-core.de.lua44
-rw-r--r--modules/admin-core/luasrc/controller/admin/network.lua13
-rw-r--r--modules/admin-core/luasrc/model/cbi/admin_network/dhcp.lua21
-rw-r--r--modules/admin-core/luasrc/model/cbi/admin_network/ifaces.lua23
-rw-r--r--modules/admin-core/luasrc/model/cbi/admin_network/ptp.lua18
-rw-r--r--modules/admin-core/luasrc/model/cbi/admin_network/routes.lua12
-rw-r--r--modules/admin-core/luasrc/model/cbi/admin_network/vlan.lua11
-rw-r--r--modules/admin-core/luasrc/view/admin_network/index.htm10
10 files changed, 151 insertions, 60 deletions
diff --git a/i18n/english/luasrc/i18n/admin-core.en.lua b/i18n/english/luasrc/i18n/admin-core.en.lua
index c5d9e7db0..1fdd1f0bc 100644
--- a/i18n/english/luasrc/i18n/admin-core.en.lua
+++ b/i18n/english/luasrc/i18n/admin-core.en.lua
@@ -181,3 +181,50 @@ dhcp_dnsmasq_dhcpleasemax = "max. DHCP-Leases"
dhcp_dnsmasq_addnhosts = "additional hostfile"
dhcp_dnsmasq_queryport = "query port"
+a_n_switch = "Switch"
+a_n_routes = "Routes"
+
+a_network1 = "In this area you find all network-related settings."
+a_network2 = "On most routers the network switch can be freely configured and splitted up into several VLANs."
+a_network3 = "Interfaces and PPPoE / PPTP-Settings allow a custom organisation of the network and connections to other networks like the internet."
+a_network4 = "With DHCP devices in your local network can be automatically configured for network communication."
+a_network5 = "Firewall and portforwarding can be used to secure your network while providing services to external networks."
+
+a_n_switch1 = [[The network ports on your router can be combined to several VLANs
+in which computers can communicate directly with each other.
+VLANs are often used to separate different network segments.
+Often there is by default one Uplink port for a connection to the next greater network like the internet
+and other ports for a local network.]]
+network_switch_desc = [[Ports belonging to a VLAN are separated with spaces.
+The port with the highest number (usually 5) is oftern the connection to the internal network interface of the router.
+On devices with 5 ports often the one with the lowest number (0) is the predefined Uplink port.]]
+
+a_n_ifaces1 = [[On this page you can configure the network interfaces.
+You can bridge several interfaces by ticking the "bridge interfaces" field and enter the names
+of several network interfaces separated by spaces.
+You can also use VLAN notation INTERFACE.VLANNR (e.g.: eth0.1).]]
+a_n_i_bridge = "Bridge interfaces"
+a_n_i_bridge1 = "creates a bridge over specified interface(s)"
+
+dhcp_desc = [[With DHCP network members can automatically receive
+their network settings (IP-address, netmaske, DNS-server, ...).]]
+dhcp_dhcp_leasetime = "Leasetime"
+dhcp_dhcp_dynamicdhcp = "Dynamic DHCP"
+dhcp_dhcp_ignore = "Ignore interface"
+dhcp_dhcp_ignore_desc = "disable DHCP for this interface"
+dhcp_dhcp_force = "Force"
+
+a_n_ptp = "Point-to-Point Connections"
+a_n_ptp1 = [[Point-to-Point connections with PPPoE or PPTP are often used to connect a device
+over DSL or similar technologies to an internet access point.]]
+network_interface_server = "PPTP-Server"
+network_interface_demand = "Automatic Disconnect"
+network_interface_demand_desc = "Time after which an unused connection will be closed"
+network_interface_keepalive = "Keep-Alive"
+network_interface_keepalive_desc = "Reconnect lost connections"
+
+a_n_routes = "Static Routes"
+a_n_routes1 = [[With Static Routes you can specify through which
+interface and gateway a certain host or network can be reached.]]
+a_n_r_target1 = "host-IP or network"
+a_n_r_netmask1 = "if target is a network" \ No newline at end of file
diff --git a/i18n/english/luasrc/i18n/default.en.lua b/i18n/english/luasrc/i18n/default.en.lua
index b9933216c..0a0b23b28 100644
--- a/i18n/english/luasrc/i18n/default.en.lua
+++ b/i18n/english/luasrc/i18n/default.en.lua
@@ -17,6 +17,7 @@ device = "Device"
devices = "Devices"
disable = "disable"
distance = "Distance"
+dnsserver = "DNS-Server"
enable = "enable"
encryption = "Encryption"
@@ -25,6 +26,7 @@ error = "Error"
filesystem = "Filesystem"
filter = "Filter"
+gateway = "Gateway"
general = "General"
hostname = "Hostname"
@@ -32,15 +34,21 @@ hostname = "Hostname"
install = "Install"
installed = "installed"
interface = "Interface"
+interfaces = "Interfaces"
+ipaddress = "IP-Address"
key = "Key"
language = "Language"
+limit = "Limit"
load = "Load"
+macaddress = "MAC-Address"
manpage = "see '%s' manpage"
mode = "Mode"
+name = "Name"
+netmask = "Netmask"
network = "Network"
networks = "Networks"
notinstalled = "not installed"
@@ -53,6 +61,7 @@ packagemanager = "Package Manager"
password = "Password"
path = "Path"
port = "Port"
+protocol = "Protocol"
reboot = "Reboot"
reset = "Reset"
@@ -61,6 +70,8 @@ revert = "Revert"
save = "Save"
services = "Services"
settings = "Settings"
+start = "Start"
+static = "static"
statistics = "Statistics"
syslog = "System Log"
system = "System"
@@ -68,6 +79,7 @@ system = "System"
target = "Target"
type = "Type"
+username = "Username"
unknownerror = "Unknown Error"
version = "Version"
diff --git a/i18n/german/luasrc/i18n/admin-core.de.lua b/i18n/german/luasrc/i18n/admin-core.de.lua
index 8b1cb3b47..e56793246 100644
--- a/i18n/german/luasrc/i18n/admin-core.de.lua
+++ b/i18n/german/luasrc/i18n/admin-core.de.lua
@@ -32,3 +32,47 @@ dhcp_dnsmasq_ednspacket_max = "max. EDNS.0 Paketgröße"
dhcp_dnsmasq_dhcpleasemax = "max. DHCP-Leases"
dhcp_dnsmasq_addnhosts = "Zusätzliche Hostdatei"
dhcp_dnsmasq_queryport = "Abfrageport"
+
+
+a_n_switch1 = [[Die Netzwerkschnittstellen am Router
+können zu verschienden VLANs zusammengefasst werden, in denen Geräte miteinander direkt
+kommunizieren können. VLANs werden auch häufig dazu genutzt, um Netzwerke voneiander zu trennen.
+So ist oftmals eine Schnittstelle als Uplink zu einem größerem Netz, wie dem Internet vorkonfiguriert
+und die anderen Schnittstellen bilden ein VLAN für das lokale Netzwerk.]]
+
+network_switch_desc = [[Die zu einem VLAN gehörenden Schnittstellen
+werden durch Leerzeichen getrennt. Die Schnittstelle mit der höchsten Nummer (meistens 5) bildet
+in der Regel die Verbindung zur internen Netzschnittstelle des Routers. Bei Geräten mit 5 Schnittstellen
+ist in der Regel die Schnittstelle mit der niedrigsten Nummer (0) die standardmäßige Uplinkschnittstelle des Routers.]]
+
+a_n_ifaces1 = [[An dieser Stelle können die einzelnen Schnittstellen
+des Netzwerkes konfiguriert werden. Es können mehrere Schnittstellen zu einer Brücke zusammengefasst werden,
+indem diese durch Leerzeichen getrennt aufgezählt werden und ein entsprechender Haken im Feld Netzwerkbrücke
+gesetzt wird. Es können VLANs in der Notation SCHNITTSTELLE.VLANNR (z.B.: eth0.1) verwendet werden.]]
+a_n_i_bridge = "Netzwerkbrücke"
+a_n_i_bridge1 = "überbrückt angegebene Schnittstelle(n)"
+
+dhcp_desc = [[Mit Hilfe von DHCP können Netzteilnehmer automatisch
+ihre Netzwerkkonfiguration (IP-Adresse, Netzmaske, DNS-Server, ...) beziehen.]]
+dhcp_dhcp_leasetime = "Laufzeit"
+dhcp_dhcp_dynamicdhcp = "Dynamisches DHCP"
+dhcp_dhcp_ignore = "Schnittstelle ignorieren"
+dhcp_dhcp_ignore_desc = "DHCP für dieses Netzwerk deaktivieren"
+dhcp_dhcp_force = "Start erzwingen"
+
+a_n_ptp = "Punkt-zu-Punkt Verbindungen"
+a_n_ptp1 = [[Punkt-zu-Punkt Verbindungen
+über PPPoE oder PPTP werden häufig dazu verwendet, um über DSL o.ä. Techniken eine
+Verbindung zum Internetgateway eines Internetzugangsanbieters aufzubauen.]]
+network_interface_server = "PPTP-Server"
+network_interface_demand = "Automatische Trennung"
+network_interface_demand_desc = "Zeit nach der die Verbindung bei Inaktivität getrennt wird"
+network_interface_keepalive = "Keep-Alive"
+network_interface_keepalive_desc = "Bei einer Verbindungstrennung automatisch neu verbinden"
+
+a_n_routes = "Statische Routen"
+a_n_routes1 = [[Statische Routen geben an,
+über welche Schnittstelle und welches Gateway ein bestimmter Host
+oder ein bestimmtes Netzwerk erreicht werden kann.]]
+a_n_r_target1 = "Host-IP oder Netzwerk"
+a_n_r_netmask1 = "falls Ziel ein Netzwerk ist" \ No newline at end of file
diff --git a/modules/admin-core/luasrc/controller/admin/network.lua b/modules/admin-core/luasrc/controller/admin/network.lua
index 3f8c4f303..871263334 100644
--- a/modules/admin-core/luasrc/controller/admin/network.lua
+++ b/modules/admin-core/luasrc/controller/admin/network.lua
@@ -14,24 +14,27 @@ $Id$
module("luci.controller.admin.network", package.seeall)
function index()
+ require("luci.i18n")
+ local i18n = luci.i18n.translate
+
local page = node("admin", "network")
page.target = template("admin_network/index")
- page.title = "Netzwerk"
+ page.title = i18n("network", "Netzwerk")
page.order = 50
local page = node("admin", "network", "vlan")
page.target = cbi("admin_network/vlan")
- page.title = "Switch"
+ page.title = i18n("a_n_switch", "Switch")
page.order = 10
local page = node("admin", "network", "ifaces")
page.target = cbi("admin_network/ifaces")
- page.title = "Schnittstellen"
+ page.title = i18n("interfaces", "Schnittstellen")
page.order = 20
local page = node("admin", "network", "dhcp")
page.target = cbi("admin_network/dhcp")
- page.title = "DHCP-Server"
+ page.title = "DHCP"
page.order = 30
local page = node("admin", "network", "ptp")
@@ -41,6 +44,6 @@ function index()
local page = node("admin", "network", "routes")
page.target = cbi("admin_network/routes")
- page.title = "Statische Routen"
+ page.title = i18n("a_n_routes", "Routen")
page.order = 50
end \ No newline at end of file
diff --git a/modules/admin-core/luasrc/model/cbi/admin_network/dhcp.lua b/modules/admin-core/luasrc/model/cbi/admin_network/dhcp.lua
index 321fd88ff..4110d8b6a 100644
--- a/modules/admin-core/luasrc/model/cbi/admin_network/dhcp.lua
+++ b/modules/admin-core/luasrc/model/cbi/admin_network/dhcp.lua
@@ -14,14 +14,13 @@ $Id$
require("luci.model.uci")
require("luci.sys")
-m = Map("dhcp", "DHCP", [[Mit Hilfe von DHCP können Netzteilnehmer automatisch
-ihre Netzwerkkonfiguration (IP-Adresse, Netzmaske, DNS-Server, DHCP, ...) beziehen.]])
+m = Map("dhcp", "DHCP")
s = m:section(TypedSection, "dhcp", "")
s.addremove = true
s.anonymous = true
-iface = s:option(ListValue, "interface", "Schnittstelle")
+iface = s:option(ListValue, "interface", translate("interface", "Schnittstelle"))
luci.model.uci.foreach("network", "interface",
function (section)
if section[".name"] ~= "loopback" then
@@ -30,21 +29,21 @@ luci.model.uci.foreach("network", "interface",
end
end)
-s:option(Value, "start", "Start", "Erste vergebene Adresse (letztes Oktett)").rmempty = true
+s:option(Value, "start", translate("start", "Start"), "Erste vergebene Adresse (letztes Oktett)").rmempty = true
-s:option(Value, "limit", "Limit", "Anzahl zu vergebender Adressen -1").rmempty = true
+s:option(Value, "limit", translate("limit", "Limit"), "Anzahl zu vergebender Adressen -1").rmempty = true
-s:option(Value, "leasetime", "Laufzeit").rmempty = true
+s:option(Value, "leasetime").rmempty = true
-s:option(Flag, "dynamicdhcp", "Dynamisches DHCP").rmempty = true
+s:option(Flag, "dynamicdhcp").rmempty = true
-s:option(Value, "name", "Name").optional = true
+s:option(Value, "name", translate("name", "Name")).optional = true
-s:option(Flag, "ignore", "Schnittstelle ignorieren", "DHCP für dieses Netzwerk deaktivieren").optional = true
+s:option(Flag, "ignore").optional = true
-s:option(Value, "netmask", "Netzmaske").optional = true
+s:option(Value, "netmask", translate("netmask", "Netzmaske")).optional = true
-s:option(Flag, "force", "Start erzwingen").optional = true
+s:option(Flag, "force").optional = true
for i, line in pairs(luci.sys.execl("dnsmasq --help dhcp")) do
k, v = line:match("([^ ]+) +([^ ]+)")
diff --git a/modules/admin-core/luasrc/model/cbi/admin_network/ifaces.lua b/modules/admin-core/luasrc/model/cbi/admin_network/ifaces.lua
index 3e06d6623..d44206ed8 100644
--- a/modules/admin-core/luasrc/model/cbi/admin_network/ifaces.lua
+++ b/modules/admin-core/luasrc/model/cbi/admin_network/ifaces.lua
@@ -11,10 +11,7 @@ You may obtain a copy of the License at
$Id$
]]--
-m = Map("network", "Schnittstellen", [[An dieser Stelle können die einzelnen Schnittstellen
-des Netzwerkes konfiguriert werden. Es können mehrere Schnittstellen zu einer Brücke zusammengefasst werden,
-indem diese durch Leerzeichen getrennt aufgezählt werden und ein entsprechender Haken im Feld Netzwerkbrücke
-gesetzt wird. Es können VLANs in der Notation SCHNITTSTELLE.VLANNR (z.B.: eth0.1) verwendet werden.]])
+m = Map("network", translate("interfaces", "Schnittstellen"), translate("a_n_ifaces1"))
s = m:section(TypedSection, "interface", "")
s.addremove = true
@@ -22,26 +19,26 @@ s:exclude("loopback")
s:depends("proto", "static")
s:depends("proto", "dhcp")
-p = s:option(ListValue, "proto", "Protokoll")
-p:value("static", "statisch")
+p = s:option(ListValue, "proto", translate("protocol", "Protokoll"))
+p:value("static", translate("static", "statisch"))
p:value("dhcp", "DHCP")
p.default = "static"
-br = s:option(Flag, "type", "Netzwerkbrücke", "überbrückt angegebene Schnittstelle(n)")
+br = s:option(Flag, "type", translate("a_n_i_bridge"), translate("a_n_i_bridge1"))
br.enabled = "bridge"
br.rmempty = true
-s:option(Value, "ifname", "Schnittstelle")
+s:option(Value, "ifname", translate("interface", "Schnittstelle"))
-s:option(Value, "ipaddr", "IP-Adresse")
+s:option(Value, "ipaddr", translate("ipaddress", "IP-Adresse"))
-s:option(Value, "netmask", "Netzmaske"):depends("proto", "static")
+s:option(Value, "netmask", translate("netmask", "Netzmaske")):depends("proto", "static")
-gw = s:option(Value, "gateway", "Gateway")
+gw = s:option(Value, "gateway", translate("gateway", "Gateway"))
gw:depends("proto", "static")
gw.rmempty = true
-dns = s:option(Value, "dns", "DNS-Server")
+dns = s:option(Value, "dns", translate("dnsserver", "DNS-Server"))
dns:depends("proto", "static")
dns.optional = true
@@ -49,7 +46,7 @@ mtu = s:option(Value, "mtu", "MTU")
mtu.optional = true
mtu.isinteger = true
-mac = s:option(Value, "macaddr", "MAC-Adresse")
+mac = s:option(Value, "macaddr", translate("macaddress", "MAC-Adresse"))
mac.optional = true
return m \ No newline at end of file
diff --git a/modules/admin-core/luasrc/model/cbi/admin_network/ptp.lua b/modules/admin-core/luasrc/model/cbi/admin_network/ptp.lua
index 622240f1f..956e234f2 100644
--- a/modules/admin-core/luasrc/model/cbi/admin_network/ptp.lua
+++ b/modules/admin-core/luasrc/model/cbi/admin_network/ptp.lua
@@ -11,30 +11,28 @@ You may obtain a copy of the License at
$Id$
]]--
-m = Map("network", "Punkt-zu-Punkt Verbindungen", [[Punkt-zu-Punkt Verbindungen
-über PPPoE oder PPTP werden häufig dazu verwendet, um über DSL o.ä. Techniken eine
-Verbindung zum Internetgateway eines Internetzugangsanbieters aufzubauen.]])
+m = Map("network", translate("a_n_ptp"), translate("a_n_ptp1"))
s = m:section(TypedSection, "interface", "")
s.addremove = true
s:depends("proto", "pppoe")
s:depends("proto", "pptp")
-p = s:option(ListValue, "proto", "Protokoll")
+p = s:option(ListValue, "proto", translate("protocol", "Protokoll"))
p:value("pppoe", "PPPoE")
p:value("pptp", "PPTP")
p.default = "pppoe"
-s:option(Value, "ifname", "Schnittstelle")
+s:option(Value, "ifname", translate("interface", "Schnittstelle"))
-s:option(Value, "username", "Benutzername")
-s:option(Value, "password", "Passwort")
+s:option(Value, "username", translate("username", "Benutzername"))
+s:option(Value, "password", translate("password", "Passwort"))
-s:option(Value, "keepalive", "Keep-Alive", "Bei einer Verbindungstrennung automatisch neu verbinden").optional = true
+s:option(Value, "keepalive").optional = true
-s:option(Value, "demand", "Dial on Demand (idle time)", "Zeit nach der die Verbindung bei Inaktivität getrennt wird").optional = true
+s:option(Value, "demand").optional = true
-srv = s:option(Value, "server", "PPTP-Server")
+srv = s:option(Value, "server")
srv:depends("proto", "pptp")
srv.optional = true
diff --git a/modules/admin-core/luasrc/model/cbi/admin_network/routes.lua b/modules/admin-core/luasrc/model/cbi/admin_network/routes.lua
index da115bdfe..a261c1020 100644
--- a/modules/admin-core/luasrc/model/cbi/admin_network/routes.lua
+++ b/modules/admin-core/luasrc/model/cbi/admin_network/routes.lua
@@ -11,16 +11,14 @@ You may obtain a copy of the License at
$Id$
]]--
-m = Map("network", "Statische Routen", [[Statische Routen geben an,
-über welche Schnittstelle und welches Gateway ein bestimmter Host
-oder ein bestimmtes Netzwerk erreicht werden kann.]])
+m = Map("network", translate("a_n_routes"), translate("a_n_routes1"))
s = m:section(TypedSection, "route", "")
s.addremove = true
s.anonymous = true
s.template = "cbi/tblsection"
-iface = s:option(ListValue, "interface", "Schnittstelle")
+iface = s:option(ListValue, "interface", translate("interface", "Schnittstelle"))
luci.model.uci.foreach("network", "interface",
function (section)
if section[".name"] ~= "loopback" then
@@ -28,10 +26,10 @@ luci.model.uci.foreach("network", "interface",
end
end)
-s:option(Value, "target", "Ziel", "Host-IP oder Netzwerk")
+s:option(Value, "target", translate("target", "Ziel"), translate("a_n_r_target1"))
-s:option(Value, "netmask", "Netzmaske", "falls Ziel ein Netzwerk ist").rmemepty = true
+s:option(Value, "netmask", translate("netmask", "Netzmaske"), translate("a_n_r_netmask1")).rmemepty = true
-s:option(Value, "gateway", "Gateway")
+s:option(Value, "gateway", translate("gateway", "Gateway"))
return m \ No newline at end of file
diff --git a/modules/admin-core/luasrc/model/cbi/admin_network/vlan.lua b/modules/admin-core/luasrc/model/cbi/admin_network/vlan.lua
index 487c0371e..7f5255594 100644
--- a/modules/admin-core/luasrc/model/cbi/admin_network/vlan.lua
+++ b/modules/admin-core/luasrc/model/cbi/admin_network/vlan.lua
@@ -11,16 +11,9 @@ You may obtain a copy of the License at
$Id$
]]--
-m = Map("network", "VLAN", [[Die Netzwerkschnittstellen am Router
-können zu verschienden VLANs zusammengefasst werden, in denen Geräte miteinander direkt
-kommunizieren können. VLANs werden auch häufig dazu genutzt, um Netzwerke voneiander zu trennen.
-So ist oftmals eine Schnittstelle als Uplink zu einem größerem Netz, wie dem Internet vorkonfiguriert
-und die anderen Schnittstellen bilden ein VLAN für das lokale Netzwerk.]])
+m = Map("network", translate("a_n_switch", "Switch"), translate("a_n_switch1"))
-s = m:section(TypedSection, "switch", "", [[Die zu einem VLAN gehörenden Schnittstellen
-werden durch Leerzeichen getrennt. Die Schnittstelle mit der höchsten Nummer (meistens 5) bildet
-in der Regel die Verbindung zur internen Netzschnittstelle des Routers. Bei Geräten mit 5 Schnittstellen
-ist in der Regel die Schnittstelle mit der niedrigsten Nummer (0) die standardmäßige Uplinkschnittstelle des Routers.]])
+s = m:section(TypedSection, "switch", "")
for i = 0, 15 do
s:option(Value, "vlan"..i, "vlan"..i).optional = true
diff --git a/modules/admin-core/luasrc/view/admin_network/index.htm b/modules/admin-core/luasrc/view/admin_network/index.htm
index 7fa4f5565..fb42201cc 100644
--- a/modules/admin-core/luasrc/view/admin_network/index.htm
+++ b/modules/admin-core/luasrc/view/admin_network/index.htm
@@ -1,11 +1,11 @@
<%+header%>
<h1><%:network Netzwerk%></h1>
-<p><%:network1 In diesem Bereich finden sich alle netzwerkbezogenen Einstellungen.%></p>
-<p><%:network2 Der Netzwerkswitch kann bei den meisten Routern frei konfiguriert
+<p><%:a_network1 In diesem Bereich finden sich alle netzwerkbezogenen Einstellungen.%></p>
+<p><%:a_network2 Der Netzwerkswitch kann bei den meisten Routern frei konfiguriert
und in mehrere VLANs aufgeteilt werden. %></p>
-<p><%:network3 Schnittstellen und PPPoE/PPTP-Einstellungen ermöglichen
+<p><%:a_network3 Schnittstellen und PPPoE/PPTP-Einstellungen ermöglichen
die freie Organisation des Netzwerks und die Anbindung an ein WAN.%></p>
-<p><%:network4 DHCP ermöglichst die automatische Netzwerkkonfiguration von Rechnern im (W)LAN.%></p>
-<p><%:network5 Portweiterleitung und Firewall erlauben eine effektive Absicherung des Netzes, bei gleichzeitiger
+<p><%:a_network4 DHCP ermöglichst die automatische Netzwerkkonfiguration von Rechnern im (W)LAN.%></p>
+<p><%:a_network5 Portweiterleitung und Firewall erlauben eine effektive Absicherung des Netzes, bei gleichzeitiger
Bereitstellung von externen Diensten.%></p>
<%+footer%> \ No newline at end of file