From: RISCi_ATOM Date: Fri, 1 Dec 2017 19:17:43 +0000 (-0500) Subject: Fresh pull from upstream lede-17.01 branch @ commit d77fe9219af17dce2d00147d904267d44... X-Git-Tag: v1.4.2~39 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=f6b96b205220c51feefb39b6dffe56acdcc8ef95;p=librecmc%2Flibrecmc.git Fresh pull from upstream lede-17.01 branch @ commit d77fe9219af17dce2d00147d904267d4489ae841 --- diff --git a/include/host-build.mk b/include/host-build.mk index 70bf6e5a39..b5f1a6bfa7 100644 --- a/include/host-build.mk +++ b/include/host-build.mk @@ -77,6 +77,10 @@ HOST_MAKE_FLAGS = HOST_CONFIGURE_CMD = $(BASH) ./configure +ifeq ($(HOST_OS),Darwin) + HOST_CONFIG_SITE:=$(INCLUDE_DIR)/site/darwin +endif + define Host/Configure/Default $(if $(HOST_CONFIGURE_PARALLEL),+)(cd $(HOST_BUILD_DIR)/$(3); \ if [ -x configure ]; then \ @@ -127,6 +131,7 @@ define Host/Exports/Default $(1) : export PKG_CONFIG_PATH=$$(STAGING_DIR_HOST)/lib/pkgconfig:$$(HOST_BUILD_PREFIX)/lib/pkgconfig $(1) : export PKG_CONFIG_LIBDIR=$$(HOST_BUILD_PREFIX)/lib/pkgconfig $(1) : export CCACHE_DIR:=$(STAGING_DIR_HOST)/ccache + $(if $(HOST_CONFIG_SITE),$(1) : export CONFIG_SITE:=$(HOST_CONFIG_SITE)) $(if $(IS_PACKAGE_BUILD),$(1) : export PATH=$$(TARGET_PATH_PKG)) endef Host/Exports=$(Host/Exports/Default) diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 1ab8f0c5b8..d5679ed919 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -2,11 +2,9 @@ LINUX_RELEASE?=1 -LINUX_VERSION-3.18 = .43 -LINUX_VERSION-4.4 = .87 +LINUX_VERSION-4.4 = .102 -LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c -LINUX_KERNEL_HASH-4.4.87 = f2e26505e3aecf622d4f4e1ede44b3b97a38739ad8b78ede14eb354f22d1387a +LINUX_KERNEL_HASH-4.4.102 = 67104295ed20d23291773b41fe4514e4b12f47351f8ca5f2bbfd87b3071a549a ifdef KERNEL_PATCHVER LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER))) diff --git a/include/kernel.mk b/include/kernel.mk index 8c08a5d7d3..e915e8f8a3 100644 --- a/include/kernel.mk +++ b/include/kernel.mk @@ -59,7 +59,7 @@ else LINUX_SOURCE:=linux-libre-$(LINUX_VERSION)-gnu.tar.xz TESTING:=$(if $(findstring -rc,$(LINUX_VERSION)),/testing,) ifeq ($(call qstrip,$(CONFIG_EXTERNAL_KERNEL_TREE))$(call qstrip,$(CONFIG_KERNEL_GIT_CLONE_URI)),) - LINUX_SITE:=@KERNEL_LIBRE/$(LINUX_VERSION)-gnu$(TESTING) + LINUX_SITE:=@KERNEL_LIBRE/$(LINUX_VERSION)-gnu$(TESTING) endif ifneq ($(TARGET_BUILD),1) @@ -95,15 +95,16 @@ define ModuleAutoLoad $(SH_FUNC) \ export modules=; \ probe_module() { \ - mods="$$$$$$$$1"; \ - boot="$$$$$$$$2"; \ + local mods="$$$$$$$$1"; \ + local boot="$$$$$$$$2"; \ + local mod; \ shift 2; \ - for mod in $(sort $$$$$$$$mods); do \ + for mod in $$$$$$$$mods; do \ mkdir -p $(2)/etc/modules.d; \ echo "$$$$$$$$mod" >> $(2)/etc/modules.d/$(1); \ done; \ if [ -e $(2)/etc/modules.d/$(1) ]; then \ - if [ "$$$$$$$$boot" = "1" ]; then \ + if [ "$$$$$$$$boot" = "1" -a ! -e $(2)/etc/modules-boot.d/$(1) ]; then \ mkdir -p $(2)/etc/modules-boot.d; \ ln -s ../modules.d/$(1) $(2)/etc/modules-boot.d/; \ fi; \ @@ -111,16 +112,17 @@ define ModuleAutoLoad fi; \ }; \ add_module() { \ - priority="$$$$$$$$1"; \ - mods="$$$$$$$$2"; \ - boot="$$$$$$$$3"; \ + local priority="$$$$$$$$1"; \ + local mods="$$$$$$$$2"; \ + local boot="$$$$$$$$3"; \ + local mod; \ shift 3; \ - for mod in $(sort $$$$$$$$mods); do \ + for mod in $$$$$$$$mods; do \ mkdir -p $(2)/etc/modules.d; \ echo "$$$$$$$$mod" >> $(2)/etc/modules.d/$$$$$$$$priority-$(1); \ done; \ if [ -e $(2)/etc/modules.d/$$$$$$$$priority-$(1) ]; then \ - if [ "$$$$$$$$boot" = "1" ]; then \ + if [ "$$$$$$$$boot" = "1" -a ! -e $(2)/etc/modules-boot.d/$$$$$$$$priority-$(1) ]; then \ mkdir -p $(2)/etc/modules-boot.d; \ ln -s ../modules.d/$$$$$$$$priority-$(1) $(2)/etc/modules-boot.d/; \ fi; \ @@ -129,6 +131,7 @@ define ModuleAutoLoad }; \ $(3) \ if [ -n "$$$$$$$$modules" ]; then \ + modules="$$$$$$$$(echo "$$$$$$$$modules" | tr ' ' '\n' | sort | uniq | paste -s -d' ' -)"; \ mkdir -p $(2)/etc/modules.d; \ mkdir -p $(2)/CONTROL; \ echo "#!/bin/sh" > $(2)/CONTROL/postinst-pkg; \ diff --git a/include/prereq-build.mk b/include/prereq-build.mk index 2768c0278f..af4e8b5e14 100644 --- a/include/prereq-build.mk +++ b/include/prereq-build.mk @@ -20,7 +20,7 @@ $(eval $(call TestHostCommand,working-make, \ $(MAKE) -v | grep -E 'Make (3\.8[1-9]|3\.9[0-9]|[4-9]\.)')) $(eval $(call TestHostCommand,case-sensitive-fs, \ - libreCMC can only be built on a case-sensitive filesystem, \ + LEDE can only be built on a case-sensitive filesystem, \ rm -f $(TMP_DIR)/test.*; touch $(TMP_DIR)/test.fs; \ test ! -f $(TMP_DIR)/test.FS)) diff --git a/include/site/darwin b/include/site/darwin new file mode 100644 index 0000000000..ec38f67be6 --- /dev/null +++ b/include/site/darwin @@ -0,0 +1,2 @@ +ac_cv_func_futimens=no +ac_cv_func_utimensat=no diff --git a/include/target.mk b/include/target.mk index e65c5884a5..30994485e1 100644 --- a/include/target.mk +++ b/include/target.mk @@ -13,18 +13,13 @@ __target_inc=1 DEVICE_TYPE?=router # Default packages - the really basic set -DEFAULT_PACKAGES:=base-files ca-bundle libmbedtls libustream-mbedtls libc libgcc busybox dropbear mtd uci opkg netifd fstools uclient-fetch logd - +DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools uclient-fetch logd # For nas targets DEFAULT_PACKAGES.nas:=block-mount fdisk lsblk mdadm - # For router targets -DEFAULT_PACKAGES.router:=dnsmasq iptables ip6tables ppp ppp-mod-pppoe ppp-mod-pppoa firewall odhcpd odhcp6c +DEFAULT_PACKAGES.router:=dnsmasq iptables ip6tables ppp ppp-mod-pppoe firewall odhcpd odhcp6c DEFAULT_PACKAGES.bootloader:= -# Small Router Targets -DEFAULT_PACKAGES.small-router:=-ca-bundle -opkg -libmbedtls -libustream-mbedtls - ifneq ($(DUMP),) all: dumpinfo endif diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 356ef969ce..fdeda95a17 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -31,7 +31,7 @@ endif define Package/base-files SECTION:=base CATEGORY:=Base system - DEPENDS:=+netifd +libc +procd +jsonfilter +SIGNED_PACKAGES:usign +SIGNED_PACKAGES:librecmc-keyring +fstools +fwtool + DEPENDS:=+netifd +libc +procd +jsonfilter +SIGNED_PACKAGES:usign +SIGNED_PACKAGES:lede-keyring +fstools +fwtool TITLE:=Base filesystem for Lede URL:=http://openwrt.org/ VERSION:=$(PKG_RELEASE)-$(REVISION) @@ -75,9 +75,9 @@ define ImageConfigOptions echo 'pi_init_cmd=$(if $(CONFIG_TARGET_INIT_CMD),$(CONFIG_TARGET_INIT_CMD),"/sbin/init")' >>$(1)/lib/preinit/00_preinit.conf echo 'pi_init_suppress_stderr="$(CONFIG_TARGET_INIT_SUPPRESS_STDERR)"' >>$(1)/lib/preinit/00_preinit.conf echo 'pi_ifname=$(if $(CONFIG_TARGET_PREINIT_IFNAME),$(CONFIG_TARGET_PREINIT_IFNAME),"")' >>$(1)/lib/preinit/00_preinit.conf - echo 'pi_ip=$(if $(CONFIG_TARGET_PREINIT_IP),$(CONFIG_TARGET_PREINIT_IP),"192.168.10.1")' >>$(1)/lib/preinit/00_preinit.conf + echo 'pi_ip=$(if $(CONFIG_TARGET_PREINIT_IP),$(CONFIG_TARGET_PREINIT_IP),"192.168.1.1")' >>$(1)/lib/preinit/00_preinit.conf echo 'pi_netmask=$(if $(CONFIG_TARGET_PREINIT_NETMASK),$(CONFIG_TARGET_PREINIT_NETMASK),"255.255.255.0")' >>$(1)/lib/preinit/00_preinit.conf - echo 'pi_broadcast=$(if $(CONFIG_TARGET_PREINIT_BROADCAST),$(CONFIG_TARGET_PREINIT_BROADCAST),"192.168.10.255")' >>$(1)/lib/preinit/00_preinit.conf + echo 'pi_broadcast=$(if $(CONFIG_TARGET_PREINIT_BROADCAST),$(CONFIG_TARGET_PREINIT_BROADCAST),"192.168.1.255")' >>$(1)/lib/preinit/00_preinit.conf echo 'pi_preinit_net_messages="$(CONFIG_TARGET_PREINIT_SHOW_NETMSG)"' >>$(1)/lib/preinit/00_preinit.conf echo 'pi_preinit_no_failsafe_netmsg="$(CONFIG_TARGET_PREINIT_SUPPRESS_FAILSAFE_NETMSG)"' >>$(1)/lib/preinit/00_preinit.conf echo 'pi_preinit_no_failsafe="$(CONFIG_TARGET_PREINIT_DISABLE_FAILSAFE)"' >>$(1)/lib/preinit/00_preinit.conf diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate index 183bd6b7a9..03dca9a31b 100755 --- a/package/base-files/files/bin/config_generate +++ b/package/base-files/files/bin/config_generate @@ -91,7 +91,7 @@ generate_network() { static) local ipad case "$1" in - lan) ipad=${ipaddr:-"192.168.10.1"} ;; + lan) ipad=${ipaddr:-"192.168.1.1"} ;; *) ipad=${ipaddr:-"192.168.$((addr_offset++)).1"} ;; esac diff --git a/package/base-files/files/etc/init.d/system b/package/base-files/files/etc/init.d/system index c947ad340e..8c5f677299 100755 --- a/package/base-files/files/etc/init.d/system +++ b/package/base-files/files/etc/init.d/system @@ -7,7 +7,7 @@ USE_PROCD=1 validate_system_section() { uci_validate_section system system "${1}" \ - 'hostname:string:librecmc' \ + 'hostname:string:lede' \ 'conloglevel:uinteger' \ 'buffersize:uinteger' \ 'timezone:string:UTC' \ diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh index b68db6b6bd..992d88f964 100755 --- a/package/base-files/files/lib/functions.sh +++ b/package/base-files/files/lib/functions.sh @@ -240,7 +240,7 @@ default_postinst() { [ -d /tmp/.uci ] || mkdir -p /tmp/.uci for i in $(sed -ne 's!^/etc/uci-defaults/!!p' "/usr/lib/opkg/info/${pkgname}.list"); do ( cd /etc/uci-defaults - [ -f "$i" ] && . "$i" && rm -f "$i" + [ -f "$i" ] && . ./"$i" && rm -f "$i" ) done uci commit fi diff --git a/package/base-files/files/usr/lib/os-release b/package/base-files/files/usr/lib/os-release index d134bf4575..21abf969e1 100644 --- a/package/base-files/files/usr/lib/os-release +++ b/package/base-files/files/usr/lib/os-release @@ -1,7 +1,7 @@ NAME="%D" VERSION="%V, %N" ID="%d" -ID_LIKE="librecmc openwrt" +ID_LIKE="lede openwrt" PRETTY_NAME="%D %N %V" VERSION_ID="%v" HOME_URL="%m" diff --git a/package/boot/uboot-envtools/files/ipq b/package/boot/uboot-envtools/files/ipq old mode 100755 new mode 100644 diff --git a/package/boot/uboot-xburst/Makefile b/package/boot/uboot-xburst/Makefile deleted file mode 100644 index 413289a7f9..0000000000 --- a/package/boot/uboot-xburst/Makefile +++ /dev/null @@ -1,88 +0,0 @@ -# -# Copyright (C) 2010 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk -include $(INCLUDE_DIR)/kernel.mk - -PKG_NAME:=u-boot -PKG_VERSION:=2012.10-rc2 -PKG_RELEASE:=1 - -PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 -PKG_SOURCE_URL:= \ - http://mirror2.openwrt.org/sources \ - ftp://ftp.denx.de/pub/u-boot -PKG_HASH:=6d094cafa7ecea8b671fbdcd21130b6a4f5744fc47dd263e101ed5d3629dffd4 -PKG_TARGETS:=bin - -PKG_LICENSE:=GPL-2.0 GPL-2.0+ -PKG_LICENSE_FILES:=Licenses/README - -include $(INCLUDE_DIR)/package.mk - -define uboot/Default - TITLE:= - CONFIG:= - IMAGE:= -endef - -define uboot/qi_lb60 - TITLE:=U-boot for the qi_lb60 board -endef - -UBOOTS:=qi_lb60 - -define Package/uboot/template -define Package/uboot-xburst-$(1) - SECTION:=boot - CATEGORY:=Boot Loaders - DEPENDS:=@TARGET_xburst - TITLE:=$(2) - URL:=http://www.denx.de/wiki/UBoot/WebHome - VARIANT:=$(1) -endef -endef - -define BuildUbootPackage - $(eval $(uboot/Default)) - $(eval $(uboot/$(1))) - $(call Package/uboot/template,$(1),$(TITLE)) -endef - - -ifdef BUILD_VARIANT -$(eval $(call uboot/$(BUILD_VARIANT))) -UBOOT_CONFIG:=$(if $(CONFIG),$(CONFIG),$(BUILD_VARIANT)) -UBOOT_IMAGE:=$(if $(IMAGE),$(IMAGE),openwrt-$(BOARD)-$(BUILD_VARIANT)-u-boot.bin) -endif - -define Build/Configure - $(MAKE) -C $(PKG_BUILD_DIR) \ - $(UBOOT_CONFIG)_config -endef - -define Build/Compile - $(MAKE) -C $(PKG_BUILD_DIR) \ - CROSS_COMPILE=$(TARGET_CROSS) -endef - -define Package/uboot/install/template -define Package/uboot-xburst-$(1)/install - $(CP) $(PKG_BUILD_DIR)/u-boot-xburst.bin $(BIN_DIR)/$(2) - rmdir $$(1) -endef -endef - -$(foreach u,$(UBOOTS), \ - $(eval $(call Package/uboot/install/template,$(u),openwrt-$(BOARD)-$(u)-u-boot.bin)) \ -) - -$(foreach u,$(UBOOTS), \ - $(eval $(call BuildUbootPackage,$(u))) \ - $(eval $(call BuildPackage,uboot-xburst-$(u))) \ -) diff --git a/package/boot/uboot-xburst/patches/0001-qi_lb60-add-nand-spl-support.patch b/package/boot/uboot-xburst/patches/0001-qi_lb60-add-nand-spl-support.patch deleted file mode 100644 index e770243528..0000000000 --- a/package/boot/uboot-xburst/patches/0001-qi_lb60-add-nand-spl-support.patch +++ /dev/null @@ -1,894 +0,0 @@ -From 0329cf7965956a5a7044827e0ce88ae8d5150e54 Mon Sep 17 00:00:00 2001 -From: Xiangfu -Date: Fri, 12 Oct 2012 09:46:58 +0800 -Subject: [PATCH 1/6] qi_lb60: add nand spl support - - The JZ4740 CPU can load 8KB from two different addresses: - 1. the normal area up to 8KB starting from NAND flash address 0x00000000 - 2. the backup area up to 8KB starting from NAND flash address 0x00002000 - -Signed-off-by: Xiangfu ---- - Makefile | 12 +++ - arch/mips/cpu/xburst/Makefile | 7 +- - arch/mips/cpu/xburst/cpu.c | 4 + - arch/mips/cpu/xburst/jz4740.c | 82 +++++++---------- - arch/mips/cpu/xburst/spl/Makefile | 47 ++++++++++ - arch/mips/cpu/xburst/spl/start.S | 63 +++++++++++++ - board/qi/qi_lb60/Makefile | 4 + - board/qi/qi_lb60/qi_lb60-spl.c | 30 +++++++ - board/qi/qi_lb60/qi_lb60.c | 8 +- - board/qi/qi_lb60/u-boot-spl.lds | 61 +++++++++++++ - drivers/mtd/nand/jz4740_nand.c | 39 ++++++++- - include/configs/qi_lb60.h | 175 ++++++++++++++++++------------------- - 12 files changed, 386 insertions(+), 146 deletions(-) - create mode 100644 arch/mips/cpu/xburst/spl/Makefile - create mode 100644 arch/mips/cpu/xburst/spl/start.S - create mode 100644 board/qi/qi_lb60/qi_lb60-spl.c - create mode 100644 board/qi/qi_lb60/u-boot-spl.lds - -diff --git a/Makefile b/Makefile -index 34d9075..a22778e 100644 ---- a/Makefile -+++ b/Makefile -@@ -393,6 +393,10 @@ ALL-y += $(obj)u-boot-nodtb-tegra.bin - endif - endif - -+ifeq ($(CPU),xburst) -+ALL-y += $(obj)u-boot-xburst.bin -+endif -+ - all: $(ALL-y) $(SUBDIR_EXAMPLES) - - $(obj)u-boot.dtb: $(obj)u-boot -@@ -506,6 +510,14 @@ $(obj)u-boot-nodtb-tegra.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin - endif - endif - -+ifeq ($(CPU),xburst) -+$(obj)u-boot-xburst.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin -+ dd if=$(obj)spl/u-boot-spl.bin of=$(obj)spl/u-boot-pad.bin conv=sync bs=8192 count=1 -+ dd if=$(obj)spl/u-boot-spl.bin of=$(obj)spl/u-boot-pad.bin conv=sync,notrunc oflag=append bs=8192 count=1 -+ tr '\0' '\377' < /dev/zero | dd of=$(obj)spl/u-boot-pad.bin conv=sync,notrunc oflag=append bs=16384 count=1 -+ cat $(obj)spl/u-boot-pad.bin u-boot.bin > $@ -+endif -+ - ifeq ($(CONFIG_SANDBOX),y) - GEN_UBOOT = \ - cd $(LNDIR) && $(CC) $(SYMS) -T $(obj)u-boot.lds \ -diff --git a/arch/mips/cpu/xburst/Makefile b/arch/mips/cpu/xburst/Makefile -index b1f2ae4..ec35e55 100644 ---- a/arch/mips/cpu/xburst/Makefile -+++ b/arch/mips/cpu/xburst/Makefile -@@ -24,9 +24,12 @@ include $(TOPDIR)/config.mk - - LIB = $(obj)lib$(CPU).o - -+COBJS-y = cpu.o jz_serial.o -+ -+ifneq ($(CONFIG_SPL_BUILD),y) - START = start.o --SOBJS-y = --COBJS-y = cpu.o timer.o jz_serial.o -+COBJS-y += timer.o -+endif - - COBJS-$(CONFIG_JZ4740) += jz4740.o - -diff --git a/arch/mips/cpu/xburst/cpu.c b/arch/mips/cpu/xburst/cpu.c -index ddcbfaa..1432838 100644 ---- a/arch/mips/cpu/xburst/cpu.c -+++ b/arch/mips/cpu/xburst/cpu.c -@@ -42,6 +42,8 @@ - : \ - : "i" (op), "R" (*(unsigned char *)(addr))) - -+#ifndef CONFIG_SPL_BUILD -+ - void __attribute__((weak)) _machine_restart(void) - { - struct jz4740_wdt *wdt = (struct jz4740_wdt *)JZ4740_WDT_BASE; -@@ -109,6 +111,8 @@ void invalidate_dcache_range(ulong start_addr, ulong stop) - cache_op(Hit_Invalidate_D, addr); - } - -+#endif -+ - void flush_icache_all(void) - { - u32 addr, t = 0; -diff --git a/arch/mips/cpu/xburst/jz4740.c b/arch/mips/cpu/xburst/jz4740.c -index c0b9817..8816aa3 100644 ---- a/arch/mips/cpu/xburst/jz4740.c -+++ b/arch/mips/cpu/xburst/jz4740.c -@@ -32,31 +32,19 @@ int disable_interrupts(void) - return 0; - } - --/* -- * PLL output clock = EXTAL * NF / (NR * NO) -- * NF = FD + 2, NR = RD + 2 -- * NO = 1 (if OD = 0), NO = 2 (if OD = 1 or 2), NO = 4 (if OD = 3) -- */ - void pll_init(void) - { - struct jz4740_cpm *cpm = (struct jz4740_cpm *)JZ4740_CPM_BASE; - -- register unsigned int cfcr, plcr1; -- int n2FR[33] = { -- 0, 0, 1, 2, 3, 0, 4, 0, 5, 0, 0, 0, 6, 0, 0, 0, -- 7, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, -- 9 -- }; -- int div[5] = {1, 3, 3, 3, 3}; /* divisors of I:S:P:L:M */ -- int nf, pllout2; -+ register unsigned int cfcr, plcr; -+ unsigned int nf, pllout2; - - cfcr = CPM_CPCCR_CLKOEN | -- CPM_CPCCR_PCS | -- (n2FR[div[0]] << CPM_CPCCR_CDIV_BIT) | -- (n2FR[div[1]] << CPM_CPCCR_HDIV_BIT) | -- (n2FR[div[2]] << CPM_CPCCR_PDIV_BIT) | -- (n2FR[div[3]] << CPM_CPCCR_MDIV_BIT) | -- (n2FR[div[4]] << CPM_CPCCR_LDIV_BIT); -+ (0 << CPM_CPCCR_CDIV_BIT) | -+ (2 << CPM_CPCCR_HDIV_BIT) | -+ (2 << CPM_CPCCR_PDIV_BIT) | -+ (2 << CPM_CPCCR_MDIV_BIT) | -+ (2 << CPM_CPCCR_LDIV_BIT); - - pllout2 = (cfcr & CPM_CPCCR_PCS) ? - CONFIG_SYS_CPU_SPEED : (CONFIG_SYS_CPU_SPEED / 2); -@@ -65,15 +53,18 @@ void pll_init(void) - writel(pllout2 / 48000000 - 1, &cpm->uhccdr); - - nf = CONFIG_SYS_CPU_SPEED * 2 / CONFIG_SYS_EXTAL; -- plcr1 = ((nf - 2) << CPM_CPPCR_PLLM_BIT) | /* FD */ -+ plcr = ((nf - 2) << CPM_CPPCR_PLLM_BIT) | /* FD */ - (0 << CPM_CPPCR_PLLN_BIT) | /* RD=0, NR=2 */ - (0 << CPM_CPPCR_PLLOD_BIT) | /* OD=0, NO=1 */ -- (0x20 << CPM_CPPCR_PLLST_BIT) | /* PLL stable time */ -+ (0x32 << CPM_CPPCR_PLLST_BIT) | /* PLL stable time */ - CPM_CPPCR_PLLEN; /* enable PLL */ - - /* init PLL */ - writel(cfcr, &cpm->cpccr); -- writel(plcr1, &cpm->cppcr); -+ writel(plcr, &cpm->cppcr); -+ -+ while (!(readl(&cpm->cppcr) & CPM_CPPCR_PLLS)) -+ ; - } - - void sdram_init(void) -@@ -92,26 +83,12 @@ void sdram_init(void) - 2 << EMC_DMCR_TCL_BIT /* CAS latency is 3 */ - }; - -- int div[] = {1, 2, 3, 4, 6, 8, 12, 16, 24, 32}; -- - cpu_clk = CONFIG_SYS_CPU_SPEED; -- mem_clk = cpu_clk * div[__cpm_get_cdiv()] / div[__cpm_get_mdiv()]; -+ mem_clk = 84000000; - - writel(0, &emc->bcr); /* Disable bus release */ - writew(0, &emc->rtcsr); /* Disable clock for counting */ - -- /* Fault DMCR value for mode register setting*/ --#define SDRAM_ROW0 11 --#define SDRAM_COL0 8 --#define SDRAM_BANK40 0 -- -- dmcr0 = ((SDRAM_ROW0 - 11) << EMC_DMCR_RA_BIT) | -- ((SDRAM_COL0 - 8) << EMC_DMCR_CA_BIT) | -- (SDRAM_BANK40 << EMC_DMCR_BA_BIT) | -- (SDRAM_BW16 << EMC_DMCR_BW_BIT) | -- EMC_DMCR_EPIN | -- cas_latency_dmcr[((SDRAM_CASL == 3) ? 1 : 0)]; -- - /* Basic DMCR value */ - dmcr = ((SDRAM_ROW - 11) << EMC_DMCR_RA_BIT) | - ((SDRAM_COL - 8) << EMC_DMCR_CA_BIT) | -@@ -128,31 +105,31 @@ void sdram_init(void) - if (tmp > 11) - tmp = 11; - dmcr |= (tmp - 4) << EMC_DMCR_TRAS_BIT; -- tmp = SDRAM_RCD / ns; - -+ tmp = SDRAM_RCD / ns; - if (tmp > 3) - tmp = 3; - dmcr |= tmp << EMC_DMCR_RCD_BIT; -- tmp = SDRAM_TPC / ns; - -+ tmp = SDRAM_TPC / ns; - if (tmp > 7) - tmp = 7; - dmcr |= tmp << EMC_DMCR_TPC_BIT; -- tmp = SDRAM_TRWL / ns; - -+ tmp = SDRAM_TRWL / ns; - if (tmp > 3) - tmp = 3; - dmcr |= tmp << EMC_DMCR_TRWL_BIT; -- tmp = (SDRAM_TRAS + SDRAM_TPC) / ns; - -+ tmp = (SDRAM_TRAS + SDRAM_TPC) / ns; - if (tmp > 14) - tmp = 14; - dmcr |= ((tmp + 1) >> 1) << EMC_DMCR_TRC_BIT; - - /* SDRAM mode value */ -- sdmode = EMC_SDMR_BT_SEQ | -- EMC_SDMR_OM_NORMAL | -- EMC_SDMR_BL_4 | -+ sdmode = EMC_SDMR_BT_SEQ | -+ EMC_SDMR_OM_NORMAL | -+ EMC_SDMR_BL_4 | - cas_latency_sdmr[((SDRAM_CASL == 3) ? 1 : 0)]; - - /* Stage 1. Precharge all banks by writing SDMR with DMCR.MRSET=0 */ -@@ -172,8 +149,8 @@ void sdram_init(void) - if (tmp > 0xff) - tmp = 0xff; - writew(tmp, &emc->rtcor); -+ - writew(0, &emc->rtcnt); -- /* Divisor is 64, CKO/64 */ - writew(EMC_RTCSR_CKS_64, &emc->rtcsr); - - /* Wait for number of auto-refresh cycles */ -@@ -182,13 +159,17 @@ void sdram_init(void) - ; - - /* Stage 3. Mode Register Set */ -+ dmcr0 = (11 << EMC_DMCR_RA_BIT) | -+ (8 << EMC_DMCR_CA_BIT) | -+ (0 << EMC_DMCR_BA_BIT) | -+ EMC_DMCR_EPIN | -+ (SDRAM_BW16 << EMC_DMCR_BW_BIT) | -+ cas_latency_dmcr[((SDRAM_CASL == 3) ? 1 : 0)]; - writel(dmcr0 | EMC_DMCR_RFSH | EMC_DMCR_MRSET, &emc->dmcr); - writeb(0, JZ4740_EMC_SDMR0 | sdmode); - - /* Set back to basic DMCR value */ - writel(dmcr | EMC_DMCR_RFSH | EMC_DMCR_MRSET, &emc->dmcr); -- -- /* everything is ok now */ - } - - DECLARE_GLOBAL_DATA_PTR; -@@ -232,9 +213,10 @@ void rtc_init(void) - phys_size_t initdram(int board_type) - { - struct jz4740_emc *emc = (struct jz4740_emc *)JZ4740_EMC_BASE; -- u32 dmcr; -- u32 rows, cols, dw, banks; -- ulong size; -+ -+ unsigned int dmcr; -+ unsigned int rows, cols, dw, banks; -+ unsigned long size; - - dmcr = readl(&emc->dmcr); - rows = 11 + ((dmcr & EMC_DMCR_RA_MASK) >> EMC_DMCR_RA_BIT); -diff --git a/arch/mips/cpu/xburst/spl/Makefile b/arch/mips/cpu/xburst/spl/Makefile -new file mode 100644 -index 0000000..f45e8c8 ---- /dev/null -+++ b/arch/mips/cpu/xburst/spl/Makefile -@@ -0,0 +1,47 @@ -+# -+# Copyright (C) 2011 Xiangfu Liu -+# -+# See file CREDITS for list of people who contributed to this -+# project. -+# -+# This program is free software; you can redistribute it and/or -+# modify it under the terms of the GNU General Public License as -+# published by the Free Software Foundation; either version 2 of -+# the License, or (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+# MA 02111-1307 USA -+# -+ -+include $(TOPDIR)/config.mk -+ -+LIB = $(obj)lib$(CPU).o -+ -+START = start.o -+SOBJS-y = -+COBJS-y = -+ -+SRCS := $(START:.o=.S) $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c) -+OBJS := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y)) -+START := $(addprefix $(obj),$(START)) -+ -+all: $(obj).depend $(START) $(LIB) -+ -+$(LIB): $(OBJS) -+ $(call cmd_link_o_target, $(OBJS)) -+ -+######################################################################### -+ -+# defines $(obj).depend target -+include $(SRCTREE)/rules.mk -+ -+sinclude $(obj).depend -+ -+######################################################################### -diff --git a/arch/mips/cpu/xburst/spl/start.S b/arch/mips/cpu/xburst/spl/start.S -new file mode 100644 -index 0000000..e31c4c8 ---- /dev/null -+++ b/arch/mips/cpu/xburst/spl/start.S -@@ -0,0 +1,63 @@ -+/* -+ * Copyright (c) 2010 Xiangfu Liu -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 3 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+ .set noreorder -+ -+ .globl _start -+ .text -+_start: -+ .word JZ4740_NANDBOOT_CFG /* fetched during NAND Boot */ -+reset: -+ /* -+ * STATUS register -+ * CU0=UM=EXL=IE=0, BEV=ERL=1, IP2~7=1 -+ */ -+ li t0, 0x0040FC04 -+ mtc0 t0, CP0_STATUS -+ /* -+ * CAUSE register -+ * IV=1, use the specical interrupt vector (0x200) -+ */ -+ li t1, 0x00800000 -+ mtc0 t1, CP0_CAUSE -+ -+ bal 1f -+ nop -+ .word _GLOBAL_OFFSET_TABLE_ -+1: -+ move gp, ra -+ lw t1, 0(ra) -+ move gp, t1 -+ -+ la sp, 0x80004000 -+ la t9, nand_spl_boot -+ j t9 -+ nop -diff --git a/board/qi/qi_lb60/Makefile b/board/qi/qi_lb60/Makefile -index 5dae11b..e399246 100644 ---- a/board/qi/qi_lb60/Makefile -+++ b/board/qi/qi_lb60/Makefile -@@ -22,7 +22,11 @@ include $(TOPDIR)/config.mk - - LIB = $(obj)lib$(BOARD).o - -+ifeq ($(CONFIG_SPL_BUILD),y) -+COBJS := $(BOARD)-spl.o -+else - COBJS := $(BOARD).o -+endif - - SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) - OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS)) -diff --git a/board/qi/qi_lb60/qi_lb60-spl.c b/board/qi/qi_lb60/qi_lb60-spl.c -new file mode 100644 -index 0000000..3fe3fa3 ---- /dev/null -+++ b/board/qi/qi_lb60/qi_lb60-spl.c -@@ -0,0 +1,30 @@ -+/* -+ * Authors: Xiangfu Liu -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version -+ * 3 of the License, or (at your option) any later version. -+ */ -+ -+#include -+#include -+#include -+#include -+ -+void nand_spl_boot(void) -+{ -+ __gpio_as_sdram_16bit_4720(); -+ __gpio_as_uart0(); -+ __gpio_jtag_to_uart0(); -+ -+ serial_init(); -+ -+ pll_init(); -+ sdram_init(); -+ -+ nand_init(); -+ -+ puts("\nQi LB60 SPL: Starting U-Boot ...\n"); -+ nand_boot(); -+} -diff --git a/board/qi/qi_lb60/qi_lb60.c b/board/qi/qi_lb60/qi_lb60.c -index d975209..3bd4e2f 100644 ---- a/board/qi/qi_lb60/qi_lb60.c -+++ b/board/qi/qi_lb60/qi_lb60.c -@@ -1,5 +1,5 @@ - /* -- * Authors: Xiangfu Liu -+ * Authors: Xiangfu Liu - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License -@@ -97,8 +97,10 @@ int board_early_init_f(void) - /* U-Boot common routines */ - int checkboard(void) - { -- printf("Board: Qi LB60 (Ingenic XBurst Jz4740 SoC, Speed %ld MHz)\n", -- gd->cpu_clk / 1000000); -+ printf("Board: Qi LB60 (Ingenic XBurst Jz4740 SoC)\n"); -+ printf(" CPU: %ld\n", gd->cpu_clk); -+ printf(" MEM: %ld\n", gd->mem_clk); -+ printf(" DEV: %ld\n", gd->dev_clk); - - return 0; - } -diff --git a/board/qi/qi_lb60/u-boot-spl.lds b/board/qi/qi_lb60/u-boot-spl.lds -new file mode 100644 -index 0000000..930537f ---- /dev/null -+++ b/board/qi/qi_lb60/u-boot-spl.lds -@@ -0,0 +1,61 @@ -+/* -+ * (C) Copyright 2012 Xiangfu Liu -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+OUTPUT_FORMAT("elf32-tradlittlemips", "elf32-tradlittlemips", "elf32-tradlittlemips") -+ -+OUTPUT_ARCH(mips) -+ENTRY(_start) -+SECTIONS -+{ -+ . = 0x80000000; -+ . = ALIGN(4); -+ .text : -+ { -+ *(.text) -+ } -+ -+ . = ALIGN(4); -+ .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } -+ -+ . = ALIGN(4); -+ .data : { *(.data) } -+ -+ . = ALIGN(4); -+ .sdata : { *(.sdata) } -+ -+ _gp = ALIGN(16); -+ -+ __got_start = .; -+ .got : { *(.got) } -+ __got_end = .; -+ -+ . = .; -+ __u_boot_cmd_start = .; -+ .u_boot_cmd : { *(.u_boot_cmd) } -+ __u_boot_cmd_end = .; -+ -+ uboot_end_data = .; -+ num_got_entries = (__got_end - __got_start) >> 2; -+ -+ . = ALIGN(4); -+ .sbss : { *(.sbss) } -+ .bss : { *(.bss) } -+ uboot_end = .; -+} -+ASSERT(uboot_end <= 0x80002000, "NAND bootstrap too big"); -diff --git a/drivers/mtd/nand/jz4740_nand.c b/drivers/mtd/nand/jz4740_nand.c -index 3ec34f3..24a4921 100644 ---- a/drivers/mtd/nand/jz4740_nand.c -+++ b/drivers/mtd/nand/jz4740_nand.c -@@ -15,6 +15,9 @@ - #include - #include - -+#ifdef CONFIG_SPL_BUILD -+#define printf(s) puts(s) -+#endif - #define JZ_NAND_DATA_ADDR ((void __iomem *)0xB8000000) - #define JZ_NAND_CMD_ADDR (JZ_NAND_DATA_ADDR + 0x8000) - #define JZ_NAND_ADDR_ADDR (JZ_NAND_DATA_ADDR + 0x10000) -@@ -176,7 +179,7 @@ static int jz_nand_rs_correct_data(struct mtd_info *mtd, u_char *dat, - for (k = 0; k < 9; k++) - writeb(read_ecc[k], &emc->nfpar[k]); - } -- /* Set PRDY */ -+ - writel(readl(&emc->nfecr) | EMC_NFECR_PRDY, &emc->nfecr); - - /* Wait for completion */ -@@ -184,7 +187,7 @@ static int jz_nand_rs_correct_data(struct mtd_info *mtd, u_char *dat, - status = readl(&emc->nfints); - } while (!(status & EMC_NFINTS_DECF)); - -- /* disable ecc */ -+ /* Disable ECC */ - writel(readl(&emc->nfecr) & ~EMC_NFECR_ECCE, &emc->nfecr); - - /* Check decoding */ -@@ -192,7 +195,7 @@ static int jz_nand_rs_correct_data(struct mtd_info *mtd, u_char *dat, - return 0; - - if (status & EMC_NFINTS_UNCOR) { -- printf("uncorrectable ecc\n"); -+ printf("JZ4740 uncorrectable ECC\n"); - return -1; - } - -@@ -230,6 +233,32 @@ static int jz_nand_rs_correct_data(struct mtd_info *mtd, u_char *dat, - return errcnt; - } - -+#ifdef CONFIG_SPL_BUILD -+static void jz_nand_read_buf(struct mtd_info *mtd, uint8_t *buf, int len) -+{ -+ int i; -+ struct nand_chip *this = mtd->priv; -+ -+#if (JZ4740_NANDBOOT_CFG == JZ4740_NANDBOOT_B16R3) || \ -+ (JZ4740_NANDBOOT_CFG == JZ4740_NANDBOOT_B16R2) -+ for (i = 0; i < len; i += 2) -+ buf[i] = readw(this->IO_ADDR_R); -+#elif (JZ4740_NANDBOOT_CFG == JZ4740_NANDBOOT_B8R3) || \ -+ (JZ4740_NANDBOOT_CFG == JZ4740_NANDBOOT_B8R2) -+ for (i = 0; i < len; i++) -+ buf[i] = readb(this->IO_ADDR_R); -+#else -+ #error JZ4740_NANDBOOT_CFG not defined or wrong -+#endif -+} -+ -+static uint8_t jz_nand_read_byte(struct mtd_info *mtd) -+{ -+ struct nand_chip *this = mtd->priv; -+ return readb(this->IO_ADDR_R); -+} -+#endif -+ - /* - * Main initialization routine - */ -@@ -254,6 +283,10 @@ int board_nand_init(struct nand_chip *nand) - nand->ecc.size = CONFIG_SYS_NAND_ECCSIZE; - nand->ecc.bytes = CONFIG_SYS_NAND_ECCBYTES; - nand->ecc.layout = &qi_lb60_ecclayout_2gb; -+#ifdef CONFIG_SPL_BUILD -+ nand->read_byte = jz_nand_read_byte; -+ nand->read_buf = jz_nand_read_buf; -+#endif - nand->chip_delay = 50; - nand->options = NAND_USE_FLASH_BBT; - -diff --git a/include/configs/qi_lb60.h b/include/configs/qi_lb60.h -index 4bb5bbc..7bff444 100644 ---- a/include/configs/qi_lb60.h -+++ b/include/configs/qi_lb60.h -@@ -1,5 +1,5 @@ - /* -- * Authors: Xiangfu Liu -+ * Authors: Xiangfu Liu - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License -@@ -14,7 +14,6 @@ - #define CONFIG_SYS_LITTLE_ENDIAN - #define CONFIG_JZSOC /* Jz SoC */ - #define CONFIG_JZ4740 /* Jz4740 SoC */ --#define CONFIG_NAND_JZ4740 - - #define CONFIG_SYS_CPU_SPEED 336000000 /* CPU clock: 336 MHz */ - #define CONFIG_SYS_EXTAL 12000000 /* EXTAL freq: 12 MHz */ -@@ -24,24 +23,43 @@ - #define CONFIG_SYS_UART_BASE JZ4740_UART0_BASE /* Base of the UART channel */ - #define CONFIG_BAUDRATE 57600 - -+#define CONFIG_BOOTP_MASK (CONFIG_BOOTP_DEFAUL) -+#define CONFIG_BOOTDELAY 0 -+#define CONFIG_BOOTARGS "mem=32M console=tty0 console=ttyS0,57600n8 ubi.mtd=2 rootfstype=ubifs root=ubi0:rootfs rw rootwait" -+#define CONFIG_BOOTCOMMAND "nand read 0x80600000 0x400000 0x280000;bootm" -+ -+/* -+ * Miscellaneous configurable options -+ */ -+#define CONFIG_SYS_SDRAM_BASE 0x80000000 /* Cached addr */ -+#define CONFIG_SYS_INIT_SP_OFFSET 0x400000 -+#define CONFIG_SYS_LOAD_ADDR 0x80600000 -+#define CONFIG_SYS_MEMTEST_START 0x80100000 -+#define CONFIG_SYS_MEMTEST_END 0x80A00000 -+#define CONFIG_SYS_TEXT_BASE 0x80100000 -+#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE -+ -+#define CONFIG_SYS_MALLOC_LEN (4 * 1024 * 1024) -+#define CONFIG_SYS_BOOTPARAMS_LEN (128 * 1024) -+ -+#define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */ -+#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) -+ -+#define CONFIG_SYS_LONGHELP -+#define CONFIG_SYS_MAXARGS 16 -+#define CONFIG_SYS_PROMPT "NanoNote# " -+ - #define CONFIG_SKIP_LOWLEVEL_INIT - #define CONFIG_BOARD_EARLY_INIT_F - #define CONFIG_SYS_NO_FLASH - #define CONFIG_SYS_FLASH_BASE 0 /* init flash_base as 0 */ --#define CONFIG_ENV_OVERWRITE -- --#define CONFIG_BOOTP_MASK (CONFIG_BOOTP_DEFAUL) --#define CONFIG_BOOTDELAY 0 --#define CONFIG_BOOTARGS "mem=32M console=tty0 console=ttyS0,57600n8 ubi.mtd=2 rootfstype=ubifs root=ubi0:rootfs rw rootwait" --#define CONFIG_BOOTCOMMAND "nand read 0x80600000 0x400000 0x200000;bootm" - - /* -- * Command line configuration. -+ * Command line configuration - */ - #define CONFIG_CMD_BOOTD /* bootd */ - #define CONFIG_CMD_CONSOLE /* coninfo */ - #define CONFIG_CMD_ECHO /* echo arguments */ -- - #define CONFIG_CMD_LOADB /* loadb */ - #define CONFIG_CMD_LOADS /* loads */ - #define CONFIG_CMD_MEMORY /* md mm nm mw cp cmp crc base loop mtest */ -@@ -58,45 +76,16 @@ - #define CONFIG_LOADS_ECHO 1 /* echo on for serial download */ - - /* -- * Miscellaneous configurable options -- */ --#define CONFIG_SYS_MAXARGS 16 --#define CONFIG_SYS_LONGHELP --#define CONFIG_SYS_PROMPT "NanoNote# " --#define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */ --#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) -- --#define CONFIG_SYS_MALLOC_LEN (4 * 1024 * 1024) --#define CONFIG_SYS_BOOTPARAMS_LEN (128 * 1024) -- --#define CONFIG_SYS_SDRAM_BASE 0x80000000 /* Cached addr */ --#define CONFIG_SYS_INIT_SP_OFFSET 0x400000 --#define CONFIG_SYS_LOAD_ADDR 0x80600000 --#define CONFIG_SYS_MEMTEST_START 0x80100000 --#define CONFIG_SYS_MEMTEST_END 0x80800000 -- --/* -- * Environment -+ * NAND driver configuration - */ --#define CONFIG_ENV_IS_IN_NAND /* use NAND for environment vars */ -- --#define CONFIG_SYS_NAND_5_ADDR_CYCLE --/* -- * if board nand flash is 1GB, set to 1 -- * if board nand flash is 2GB, set to 2 -- * for change the PAGE_SIZE and BLOCK_SIZE -- * will delete when there is no 1GB flash -- */ --#define NANONOTE_NAND_SIZE 2 -- --#define CONFIG_SYS_NAND_PAGE_SIZE (2048 * NANONOTE_NAND_SIZE) --#define CONFIG_SYS_NAND_BLOCK_SIZE (256 * NANONOTE_NAND_SIZE << 10) --/* nand bad block was marked at this page in a block, start from 0 */ -+#define CONFIG_NAND_JZ4740 -+#define CONFIG_SYS_NAND_PAGE_SIZE 4096 -+#define CONFIG_SYS_NAND_BLOCK_SIZE (512 << 10) -+/* NAND bad block was marked at this page in a block, start from 0 */ - #define CONFIG_SYS_NAND_BADBLOCK_PAGE 127 - #define CONFIG_SYS_NAND_PAGE_COUNT 128 - #define CONFIG_SYS_NAND_BAD_BLOCK_POS 0 --/* ECC offset position in oob area, default value is 6 if it isn't defined */ --#define CONFIG_SYS_NAND_ECC_POS (6 * NANONOTE_NAND_SIZE) -+#define CONFIG_SYS_NAND_ECC_POS 12 - #define CONFIG_SYS_NAND_ECCSIZE 512 - #define CONFIG_SYS_NAND_ECCBYTES 9 - #define CONFIG_SYS_NAND_ECCPOS \ -@@ -115,10 +104,9 @@ - #define CONFIG_SYS_ONENAND_BASE CONFIG_SYS_NAND_BASE - #define CONFIG_SYS_MAX_NAND_DEVICE 1 - #define CONFIG_SYS_NAND_SELECT_DEVICE 1 /* nand driver supports mutipl.*/ --#define CONFIG_NAND_SPL_TEXT_BASE 0x80000000 - - /* -- * IPL (Initial Program Loader, integrated inside CPU) -+ * IPL (Initial Program Loader, integrated inside Ingenic Xburst JZ4740 CPU) - * Will load first 8k from NAND (SPL) into cache and execute it from there. - * - * SPL (Secondary Program Loader) -@@ -130,77 +118,88 @@ - * NUB (NAND U-Boot) - * This NAND U-Boot (NUB) is a special U-Boot version which can be started - * from RAM. Therefore it mustn't (re-)configure the SDRAM controller. -- * - */ -+ -+/* -+ * NAND SPL configuration -+ */ -+#define CONFIG_SPL -+#define CONFIG_SPL_LIBGENERIC_SUPPORT -+#define CONFIG_SPL_LIBCOMMON_SUPPORT -+#define CONFIG_SPL_NAND_LOAD -+#define CONFIG_SPL_NAND_SIMPLE -+#define CONFIG_SPL_NAND_SUPPORT -+#define CONFIG_SPL_TEXT_BASE 0x80000000 -+#define CONFIG_SPL_START_S_PATH "arch/mips/cpu/xburst/spl" -+ -+#define CONFIG_SYS_NAND_5_ADDR_CYCLE -+#define CONFIG_SYS_NAND_HW_ECC_OOBFIRST -+#define JZ4740_NANDBOOT_CFG JZ4740_NANDBOOT_B8R3 -+ - #define CONFIG_SYS_NAND_U_BOOT_DST 0x80100000 /* Load NUB to this addr */ - #define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_NAND_U_BOOT_DST --/* Start NUB from this addr*/ -+ /* Start NUB from this addr */ -+#define CONFIG_SYS_NAND_U_BOOT_OFFS (32 << 10) /* Offset of NUB */ -+#define CONFIG_SYS_NAND_U_BOOT_SIZE (256 << 10) /* Size of NUB */ - - /* -- * Define the partitioning of the NAND chip (only RAM U-Boot is needed here) -+ * Environment configuration - */ --#define CONFIG_SYS_NAND_U_BOOT_OFFS (256 << 10) /* Offset to RAM U-Boot image */ --#define CONFIG_SYS_NAND_U_BOOT_SIZE (512 << 10) /* Size of RAM U-Boot image */ -- -+#define CONFIG_ENV_OVERWRITE -+#define CONFIG_ENV_IS_IN_NAND - #define CONFIG_ENV_SIZE (4 << 10) - #define CONFIG_ENV_OFFSET \ - (CONFIG_SYS_NAND_BLOCK_SIZE + CONFIG_SYS_NAND_U_BOOT_SIZE) - #define CONFIG_ENV_OFFSET_REDUND \ - (CONFIG_ENV_OFFSET + CONFIG_SYS_NAND_BLOCK_SIZE) - --#define CONFIG_SYS_TEXT_BASE 0x80100000 --#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE -- - /* -- * SDRAM Info. -+ * CPU cache configuration - */ --#define CONFIG_NR_DRAM_BANKS 1 -+#define CONFIG_SYS_DCACHE_SIZE 16384 -+#define CONFIG_SYS_ICACHE_SIZE 16384 -+#define CONFIG_SYS_CACHELINE_SIZE 32 - - /* -- * Cache Configuration -+ * SDRAM configuration - */ --#define CONFIG_SYS_DCACHE_SIZE 16384 --#define CONFIG_SYS_ICACHE_SIZE 16384 --#define CONFIG_SYS_CACHELINE_SIZE 32 -+#define CONFIG_NR_DRAM_BANKS 1 -+ -+#define SDRAM_BW16 1 /* Data bus width: 0-32bit, 1-16bit */ -+#define SDRAM_BANK4 1 /* Banks each chip: 0-2bank, 1-4bank */ -+#define SDRAM_ROW 13 /* Row address: 11 to 13 */ -+#define SDRAM_COL 9 /* Column address: 8 to 12 */ -+#define SDRAM_CASL 2 /* CAS latency: 2 or 3 */ -+#define SDRAM_TRAS 45 /* RAS# Active Time */ -+#define SDRAM_RCD 20 /* RAS# to CAS# Delay */ -+#define SDRAM_TPC 20 /* RAS# Precharge Time */ -+#define SDRAM_TRWL 7 /* Write Latency Time */ -+#define SDRAM_TREF 15625 /* Refresh period: 8192 cycles/64ms */ - - /* -- * GPIO definition -+ * GPIO configuration - */ --#define GPIO_LCD_CS (2 * 32 + 21) --#define GPIO_AMP_EN (3 * 32 + 4) -+#define GPIO_LCD_CS (2 * 32 + 21) -+#define GPIO_AMP_EN (3 * 32 + 4) - --#define GPIO_SDPW_EN (3 * 32 + 2) --#define GPIO_SD_DETECT (3 * 32 + 0) -+#define GPIO_SDPW_EN (3 * 32 + 2) -+#define GPIO_SD_DETECT (3 * 32 + 0) - --#define GPIO_BUZZ_PWM (3 * 32 + 27) --#define GPIO_USB_DETECT (3 * 32 + 28) -+#define GPIO_BUZZ_PWM (3 * 32 + 27) -+#define GPIO_USB_DETECT (3 * 32 + 28) - --#define GPIO_AUDIO_POP (1 * 32 + 29) --#define GPIO_COB_TEST (1 * 32 + 30) -+#define GPIO_AUDIO_POP (1 * 32 + 29) -+#define GPIO_COB_TEST (1 * 32 + 30) - - #define GPIO_KEYOUT_BASE (2 * 32 + 10) --#define GPIO_KEYIN_BASE (3 * 32 + 18) --#define GPIO_KEYIN_8 (3 * 32 + 26) -+#define GPIO_KEYIN_BASE (3 * 32 + 18) -+#define GPIO_KEYIN_8 (3 * 32 + 26) - --#define GPIO_SD_CD_N GPIO_SD_DETECT /* SD Card insert detect */ -+#define GPIO_SD_CD_N GPIO_SD_DETECT /* SD Card insert detect */ - #define GPIO_SD_VCC_EN_N GPIO_SDPW_EN /* SD Card Power Enable */ - - #define SPEN GPIO_LCD_CS /* LCDCS :Serial command enable */ - #define SPDA (2 * 32 + 22) /* LCDSCL:Serial command clock input */ - #define SPCK (2 * 32 + 23) /* LCDSDA:Serial command data input */ - --/* SDRAM paramters */ --#define SDRAM_BW16 1 /* Data bus width: 0-32bit, 1-16bit */ --#define SDRAM_BANK4 1 /* Banks each chip: 0-2bank, 1-4bank */ --#define SDRAM_ROW 13 /* Row address: 11 to 13 */ --#define SDRAM_COL 9 /* Column address: 8 to 12 */ --#define SDRAM_CASL 2 /* CAS latency: 2 or 3 */ -- --/* SDRAM Timings, unit: ns */ --#define SDRAM_TRAS 45 /* RAS# Active Time */ --#define SDRAM_RCD 20 /* RAS# to CAS# Delay */ --#define SDRAM_TPC 20 /* RAS# Precharge Time */ --#define SDRAM_TRWL 7 /* Write Latency Time */ --#define SDRAM_TREF 15625 /* Refresh period: 8192 cycles/64ms */ -- - #endif --- -1.7.9.5 - diff --git a/package/boot/uboot-xburst/patches/0002-qi_lb60-add-software-usbboot-support.patch b/package/boot/uboot-xburst/patches/0002-qi_lb60-add-software-usbboot-support.patch deleted file mode 100644 index feaf297b7c..0000000000 --- a/package/boot/uboot-xburst/patches/0002-qi_lb60-add-software-usbboot-support.patch +++ /dev/null @@ -1,916 +0,0 @@ -From fa51192b912d296b8eec10f7d44c6c17eb1dd368 Mon Sep 17 00:00:00 2001 -From: Xiangfu -Date: Fri, 12 Oct 2012 09:47:39 +0800 -Subject: [PATCH 2/6] qi_lb60: add software usbboot support - - JZ4740 CPU have a internal ROM have such kind of code, that make - JZ4740 can boot from USB - - usbboot.S can downloads user program from the USB port to internal - SRAM and branches to the internal SRAM to execute the program - -Signed-off-by: Xiangfu ---- - board/qi/qi_lb60/Makefile | 1 + - board/qi/qi_lb60/qi_lb60-spl.c | 20 + - board/qi/qi_lb60/usbboot.S | 838 ++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 859 insertions(+) - create mode 100644 board/qi/qi_lb60/usbboot.S - -diff --git a/board/qi/qi_lb60/Makefile b/board/qi/qi_lb60/Makefile -index e399246..6dd8c6f 100644 ---- a/board/qi/qi_lb60/Makefile -+++ b/board/qi/qi_lb60/Makefile -@@ -23,6 +23,7 @@ include $(TOPDIR)/config.mk - LIB = $(obj)lib$(BOARD).o - - ifeq ($(CONFIG_SPL_BUILD),y) -+SOBJS := usbboot.o - COBJS := $(BOARD)-spl.o - else - COBJS := $(BOARD).o -diff --git a/board/qi/qi_lb60/qi_lb60-spl.c b/board/qi/qi_lb60/qi_lb60-spl.c -index 3fe3fa3..aea459c 100644 ---- a/board/qi/qi_lb60/qi_lb60-spl.c -+++ b/board/qi/qi_lb60/qi_lb60-spl.c -@@ -12,6 +12,24 @@ - #include - #include - -+#define KEY_U_OUT (32 * 2 + 16) -+#define KEY_U_IN (32 * 3 + 19) -+ -+extern void usb_boot(void); -+ -+static void check_usb_boot(void) -+{ -+ __gpio_as_input(KEY_U_IN); -+ __gpio_enable_pull(KEY_U_IN); -+ __gpio_as_output(KEY_U_OUT); -+ __gpio_clear_pin(KEY_U_OUT); -+ -+ if (!__gpio_get_pin(KEY_U_IN)) { -+ puts("[U] pressed, goto USBBOOT mode\n"); -+ usb_boot(); -+ } -+} -+ - void nand_spl_boot(void) - { - __gpio_as_sdram_16bit_4720(); -@@ -23,6 +41,8 @@ void nand_spl_boot(void) - pll_init(); - sdram_init(); - -+ check_usb_boot(); -+ - nand_init(); - - puts("\nQi LB60 SPL: Starting U-Boot ...\n"); -diff --git a/board/qi/qi_lb60/usbboot.S b/board/qi/qi_lb60/usbboot.S -new file mode 100644 -index 0000000..c872266 ---- /dev/null -+++ b/board/qi/qi_lb60/usbboot.S -@@ -0,0 +1,838 @@ -+/* -+ * for jz4740 usb boot -+ * -+ * Copyright (c) 2009 Author: -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ .set noreorder -+ .globl usb_boot -+ .text -+ -+/* -+ * Both NAND and USB boot load data to D-Cache first, then transfer -+ * data from D-Cache to I-Cache, and jump to execute the code in I-Cache. -+ * So init caches first and then dispatch to a proper boot routine. -+ */ -+ -+.macro load_addr reg addr -+ li \reg, 0x80000000 -+ addiu \reg, \reg, \addr -+ la $2, usbboot_begin -+ subu \reg, \reg, $2 -+.endm -+ -+usb_boot: -+ /* Initialize PLL: set ICLK to 84MHz and HCLK to 42MHz. */ -+ la $9, 0xB0000000 /* CPCCR: Clock Control Register */ -+ la $8, 0x42041110 /* I:S:M:P=1:2:2:2 */ -+ sw $8, 0($9) -+ -+ la $9, 0xB0000010 /* CPPCR: PLL Control Register */ -+ la $8, 0x06000120 /* M=12 N=0 D=0 CLK=12*(M+2)/(N+2) */ -+ sw $8, 0($9) -+ -+ mtc0 $0, $26 /* CP0_ERRCTL, restore WST reset state */ -+ nop -+ -+ mtc0 $0, $16 /* CP0_CONFIG */ -+ nop -+ -+ /* Relocate code to beginning of the ram */ -+ -+ la $2, usbboot_begin -+ la $3, usbboot_end -+ li $4, 0x80000000 -+ -+1: -+ lw $5, 0($2) -+ sw $5, 0($4) -+ addiu $2, $2, 4 -+ bne $2, $3, 1b -+ addiu $4, $4, 4 -+ -+ li $2, 0x80000000 -+ ori $3, $2, 0 -+ addiu $3, $3, usbboot_end -+ la $4, usbboot_begin -+ subu $3, $3, $4 -+ -+ -+2: -+ cache 0x0, 0($2) /* Index_Invalidate_I */ -+ cache 0x1, 0($2) /* Index_Writeback_Inv_D */ -+ addiu $2, $2, 32 -+ subu $4, $3, $2 -+ bgtz $4, 2b -+ nop -+ -+ load_addr $3, usb_boot_return -+ -+ jr $3 -+ -+usbboot_begin: -+ -+init_caches: -+ li $2, 3 /* cacheable for kseg0 access */ -+ mtc0 $2, $16 /* CP0_CONFIG */ -+ nop -+ -+ li $2, 0x20000000 /* enable idx-store-data cache insn */ -+ mtc0 $2, $26 /* CP0_ERRCTL */ -+ -+ ori $2, $28, 0 /* start address */ -+ ori $3, $2, 0x3fe0 /* end address, total 16KB */ -+ mtc0 $0, $28, 0 /* CP0_TAGLO */ -+ mtc0 $0, $28, 1 /* CP0_DATALO */ -+cache_clear_a_line: -+ cache 0x8, 0($2) /* Index_Store_Tag_I */ -+ cache 0x9, 0($2) /* Index_Store_Tag_D */ -+ bne $2, $3, cache_clear_a_line -+ addiu $2, $2, 32 /* increment CACHE_LINE_SIZE */ -+ -+ ori $2, $28, 0 /* start address */ -+ ori $3, $2, 0x3fe0 /* end address, total 16KB */ -+ la $4, 0x1ffff000 /* physical address and 4KB page mask */ -+cache_alloc_a_line: -+ and $5, $2, $4 -+ ori $5, $5, 1 /* V bit of the physical tag */ -+ mtc0 $5, $28, 0 /* CP0_TAGLO */ -+ cache 0x8, 0($2) /* Index_Store_Tag_I */ -+ cache 0x9, 0($2) /* Index_Store_Tag_D */ -+ bne $2, $3, cache_alloc_a_line -+ addiu $2, $2, 32 /* increment CACHE_LINE_SIZE */ -+ -+ nop -+ nop -+ nop -+ /* -+ * Transfer data from dcache to icache, then jump to icache. -+ * Input parameters: -+ * $19: data length in bytes -+ * $20: jump target address -+ */ -+xfer_d2i: -+ -+ ori $8, $20, 0 -+ addu $9, $8, $19 /* total 16KB */ -+ -+1: -+ cache 0x0, 0($8) /* Index_Invalidate_I */ -+ cache 0x1, 0($8) /* Index_Writeback_Inv_D */ -+ bne $8, $9, 1b -+ addiu $8, $8, 32 -+ -+ /* flush write-buffer */ -+ sync -+ -+ /* Invalidate BTB */ -+ mfc0 $8, $16, 7 /* CP0_CONFIG */ -+ nop -+ ori $8, 2 -+ mtc0 $8, $16, 7 -+ nop -+ -+ /* Overwrite config to disable ram initalisation */ -+ li $2, 0xff -+ sb $2, 20($20) -+ -+ jalr $20 -+ nop -+ -+icache_return: -+ /* User code can return to here after executing itself in -+ icache, by jumping to $31. */ -+ b usb_boot_return -+ nop -+ -+ -+usb_boot_return: -+ /* Enable the USB PHY */ -+ la $9, 0xB0000024 /* CPM_SCR */ -+ lw $8, 0($9) -+ ori $8, 0x40 /* USBPHY_ENABLE */ -+ sw $8, 0($9) -+ -+ /* Initialize USB registers */ -+ la $27, 0xb3040000 /* USB registers base address */ -+ -+ sb $0, 0x0b($27) /* INTRUSBE: disable common USB interrupts */ -+ sh $0, 0x06($27) /* INTRINE: disable EPIN interrutps */ -+ sh $0, 0x08($27) /* INTROUTE: disable EPOUT interrutps */ -+ -+ li $9, 0x61 -+ sb $9, 0x01($27) /* POWER: HSENAB | SUSPENDM | SOFTCONN */ -+ -+ /* Initialize USB states */ -+ li $22, 0 /* set EP0 to IDLE state */ -+ li $23, 1 /* no data stage */ -+ -+ /* Main loop of polling the usb commands */ -+usb_command_loop: -+ lbu $9, 0x0a($27) /* read INTRUSB */ -+ andi $9, 0x04 /* check USB_INTR_RESET */ -+ beqz $9, check_intr_ep0in -+ nop -+ -+ /* 1. Handle USB reset interrupt */ -+handle_reset_intr: -+ lbu $9, 0x01($27) /* read POWER */ -+ andi $9, 0x10 /* test HS_MODE */ -+ bnez $9, _usb_set_maxpktsize -+ li $9, 512 /* max packet size of HS mode */ -+ li $9, 64 /* max packet size of FS mode */ -+ -+_usb_set_maxpktsize: -+ li $8, 1 -+ sb $8, 0x0e($27) /* set INDEX 1 */ -+ -+ sh $9, 0x10($27) /* INMAXP */ -+ sb $0, 0x13($27) /* INCSRH */ -+ sh $9, 0x14($27) /* OUTMAXP */ -+ sb $0, 0x17($27) /* OUTCSRH */ -+ -+_usb_flush_fifo: -+ li $8, 0x48 /* INCSR_CDT && INCSR_FF */ -+ sb $8, 0x12($27) /* INCSR */ -+ li $8, 0x90 /* OUTCSR_CDT && OUTCSR_FF */ -+ sb $8, 0x16($27) /* OUTCSR */ -+ -+ li $22, 0 /* set EP0 to IDLE state */ -+ li $23, 1 /* no data stage */ -+ -+ /* 2. Check and handle EP0 interrupt */ -+check_intr_ep0in: -+ lhu $10, 0x02($27) /* read INTRIN */ -+ andi $9, $10, 0x1 /* check EP0 interrupt */ -+ beqz $9, check_intr_ep1in -+ nop -+ -+handle_ep0_intr: -+ sb $0, 0x0e($27) /* set INDEX 0 */ -+ lbu $11, 0x12($27) /* read CSR0 */ -+ -+ andi $9, $11, 0x04 /* check SENTSTALL */ -+ beqz $9, _ep0_setupend -+ nop -+ -+_ep0_sentstall: -+ andi $9, $11, 0xdb -+ sb $9, 0x12($27) /* clear SENDSTALL and SENTSTALL */ -+ li $22, 0 /* set EP0 to IDLE state */ -+ -+_ep0_setupend: -+ andi $9, $11, 0x10 /* check SETUPEND */ -+ beqz $9, ep0_idle_state -+ nop -+ -+ ori $9, $11, 0x80 -+ sb $9, 0x12($27) /* set SVDSETUPEND */ -+ li $22, 0 /* set EP0 to IDLE state */ -+ -+ep0_idle_state: -+ bnez $22, ep0_tx_state -+ nop -+ -+ /* 2.1 Handle EP0 IDLE state interrupt */ -+ andi $9, $11, 0x01 /* check OUTPKTRDY */ -+ beqz $9, check_intr_ep1in -+ nop -+ -+ /* Read 8-bytes setup packet from the FIFO */ -+ lw $25, 0x20($27) /* first word of setup packet */ -+ lw $26, 0x20($27) /* second word of setup packet */ -+ -+ andi $9, $25, 0x60 /* bRequestType & USB_TYPE_MASK */ -+ beqz $9, _ep0_std_req -+ nop -+ -+ /* 2.1.1 Vendor-specific setup request */ -+_ep0_vend_req: -+ li $22, 0 /* set EP0 to IDLE state */ -+ li $23, 1 /* NoData = 1 */ -+ -+ andi $9, $25, 0xff00 /* check bRequest */ -+ srl $9, $9, 8 -+ beqz $9, __ep0_get_cpu_info -+ sub $8, $9, 0x1 -+ beqz $8, __ep0_set_data_address -+ sub $8, $9, 0x2 -+ beqz $8, __ep0_set_data_length -+ sub $8, $9, 0x3 -+ beqz $8, __ep0_flush_caches -+ sub $8, $9, 0x4 -+ beqz $8, __ep0_prog_start1 -+ sub $8, $9, 0x5 -+ beqz $8, __ep0_prog_start2 -+ nop -+ b _ep0_idle_state_fini /* invalid request */ -+ nop -+ -+__ep0_get_cpu_info: -+ load_addr $20, cpu_info_data /* data pointer to transfer */ -+ li $21, 8 /* bytes left to transfer */ -+ li $22, 1 /* set EP0 to TX state */ -+ li $23, 0 /* NoData = 0 */ -+ -+ b _ep0_idle_state_fini -+ nop -+ -+__ep0_set_data_address: -+ li $9, 0xffff0000 -+ and $9, $25, $9 -+ andi $8, $26, 0xffff -+ or $20, $9, $8 /* data address of next transfer */ -+ -+ b _ep0_idle_state_fini -+ nop -+ -+__ep0_set_data_length: -+ li $9, 0xffff0000 -+ and $9, $25, $9 -+ andi $8, $26, 0xffff -+ or $21, $9, $8 /* data length of next transfer */ -+ -+ li $9, 0x48 /* SVDOUTPKTRDY and DATAEND */ -+ sb $9, 0x12($27) /* CSR0 */ -+ -+ /* We must write packet to FIFO before EP1-IN interrupt here. */ -+ b handle_epin1_intr -+ nop -+ -+__ep0_flush_caches: -+ /* Flush dcache and invalidate icache. */ -+ li $8, 0x80000000 -+ addi $9, $8, 0x3fe0 /* total 16KB */ -+ -+1: -+ cache 0x0, 0($8) /* Index_Invalidate_I */ -+ cache 0x1, 0($8) /* Index_Writeback_Inv_D */ -+ bne $8, $9, 1b -+ addiu $8, $8, 32 -+ -+ /* flush write-buffer */ -+ sync -+ -+ /* Invalidate BTB */ -+ mfc0 $8, $16, 7 /* CP0_CONFIG */ -+ nop -+ ori $8, 2 -+ mtc0 $8, $16, 7 -+ nop -+ -+ b _ep0_idle_state_fini -+ nop -+ -+__ep0_prog_start1: -+ li $9, 0x48 /* SVDOUTPKTRDY and DATAEND */ -+ sb $9, 0x12($27) /* CSR0 */ -+ -+ li $9, 0xffff0000 -+ and $9, $25, $9 -+ andi $8, $26, 0xffff -+ or $20, $9, $8 /* target address */ -+ -+ b xfer_d2i -+ li $19, 0x2000 /* 16KB data length */ -+ -+__ep0_prog_start2: -+ li $9, 0x48 /* SVDOUTPKTRDY and DATAEND */ -+ sb $9, 0x12($27) /* CSR0 */ -+ -+ li $9, 0xffff0000 -+ and $9, $25, $9 -+ andi $8, $26, 0xffff -+ or $20, $9, $8 /* target address */ -+ -+ jalr $20 /* jump, and place the return address in $31 */ -+ nop -+ -+__ep0_prog_start2_return: -+/* User code can return to here after executing itself, by jumping to $31 */ -+ b usb_boot_return -+ nop -+ -+ /* 2.1.2 Standard setup request */ -+_ep0_std_req: -+ andi $12, $25, 0xff00 /* check bRequest */ -+ srl $12, $12, 8 -+ sub $9, $12, 0x05 /* check USB_REQ_SET_ADDRESS */ -+ bnez $9, __ep0_req_set_config -+ nop -+ -+ /* Handle USB_REQ_SET_ADDRESS */ -+__ep0_req_set_addr: -+ srl $9, $25, 16 /* get wValue */ -+ sb $9, 0x0($27) /* set FADDR */ -+ li $23, 1 /* NoData = 1 */ -+ b _ep0_idle_state_fini -+ nop -+ -+__ep0_req_set_config: -+ sub $9, $12, 0x09 /* check USB_REQ_SET_CONFIGURATION */ -+ bnez $9, __ep0_req_get_desc -+ nop -+ -+ /* Handle USB_REQ_SET_CONFIGURATION */ -+ li $23, 1 /* NoData = 1 */ -+ b _ep0_idle_state_fini -+ nop -+ -+__ep0_req_get_desc: -+ sub $9, $12, 0x06 /* check USB_REQ_GET_DESCRIPTOR */ -+ bnez $9, _ep0_idle_state_fini -+ li $23, 1 /* NoData = 1 */ -+ -+ /* Handle USB_REQ_GET_DESCRIPTOR */ -+ li $23, 0 /* NoData = 0 */ -+ -+ srl $9, $25, 24 /* wValue >> 8 */ -+ sub $8, $9, 0x01 /* check USB_DT_DEVICE */ -+ beqz $8, ___ep0_get_dev_desc -+ srl $21, $26, 16 /* get wLength */ -+ sub $8, $9, 0x02 /* check USB_DT_CONFIG */ -+ beqz $8, ___ep0_get_conf_desc -+ sub $8, $9, 0x03 /* check USB_DT_STRING */ -+ beqz $8, ___ep0_get_string_desc -+ sub $8, $9, 0x06 /* check USB_DT_DEVICE_QUALIFIER */ -+ beqz $8, ___ep0_get_dev_qualifier -+ nop -+ b _ep0_idle_state_fini -+ nop -+ -+___ep0_get_dev_desc: -+ load_addr $20, device_desc /* data pointer */ -+ li $22, 1 /* set EP0 to TX state */ -+ sub $8, $21, 18 -+ blez $8, _ep0_idle_state_fini /* wLength <= 18 */ -+ nop -+ li $21, 18 /* max length of device_desc */ -+ b _ep0_idle_state_fini -+ nop -+ -+___ep0_get_dev_qualifier: -+ load_addr $20, dev_qualifier /* data pointer */ -+ li $22, 1 /* set EP0 to TX state */ -+ sub $8, $21, 10 -+ blez $8, _ep0_idle_state_fini /* wLength <= 10 */ -+ nop -+ li $21, 10 /* max length of dev_qualifier */ -+ b _ep0_idle_state_fini -+ nop -+ -+___ep0_get_conf_desc: -+ load_addr $20, config_desc_fs /* data pointer of FS mode */ -+ lbu $8, 0x01($27) /* read POWER */ -+ andi $8, 0x10 /* test HS_MODE */ -+ beqz $8, ___ep0_get_conf_desc2 -+ nop -+ load_addr $20, config_desc_hs /* data pointer of HS mode */ -+ -+___ep0_get_conf_desc2: -+ li $22, 1 /* set EP0 to TX state */ -+ sub $8, $21, 32 -+ blez $8, _ep0_idle_state_fini /* wLength <= 32 */ -+ nop -+ li $21, 32 /* max length of config_desc */ -+ b _ep0_idle_state_fini -+ nop -+ -+___ep0_get_string_desc: -+ li $22, 1 /* set EP0 to TX state */ -+ -+ srl $9, $25, 16 /* wValue & 0xff */ -+ andi $9, 0xff -+ -+ sub $8, $9, 1 -+ beqz $8, ___ep0_get_string_manufacture -+ sub $8, $9, 2 -+ beqz $8, ___ep0_get_string_product -+ nop -+ -+___ep0_get_string_lang_ids: -+ load_addr $20, string_lang_ids /* data pointer */ -+ b _ep0_idle_state_fini -+ li $21, 4 /* data length */ -+ -+___ep0_get_string_manufacture: -+ load_addr $20, string_manufacture /* data pointer */ -+ b _ep0_idle_state_fini -+ li $21, 16 /* data length */ -+ -+___ep0_get_string_product: -+ load_addr $20, string_product /* data pointer */ -+ b _ep0_idle_state_fini -+ li $21, 46 /* data length */ -+ -+_ep0_idle_state_fini: -+ li $9, 0x40 /* SVDOUTPKTRDY */ -+ beqz $23, _ep0_idle_state_fini2 -+ nop -+ ori $9, $9, 0x08 /* DATAEND */ -+_ep0_idle_state_fini2: -+ sb $9, 0x12($27) /* CSR0 */ -+ beqz $22, check_intr_ep1in -+ nop -+ -+ /* 2.2 Handle EP0 TX state interrupt */ -+ep0_tx_state: -+ sub $9, $22, 1 -+ bnez $9, check_intr_ep1in -+ nop -+ -+ sub $9, $21, 64 /* max packetsize */ -+ blez $9, _ep0_tx_state2 /* data count <= 64 */ -+ ori $19, $21, 0 -+ li $19, 64 -+ -+_ep0_tx_state2: -+ beqz $19, _ep0_tx_state3 /* send ZLP */ -+ ori $18, $19, 0 /* record bytes to be transferred */ -+ sub $21, $21, $19 /* decrement data count */ -+ -+_ep0_fifo_write_loop: -+ lbu $9, 0($20) /* read data */ -+ sb $9, 0x20($27) /* load FIFO */ -+ sub $19, $19, 1 /* decrement counter */ -+ bnez $19, _ep0_fifo_write_loop -+ addi $20, $20, 1 /* increment data pointer */ -+ -+ sub $9, $18, 64 /* max packetsize */ -+ beqz $9, _ep0_tx_state4 -+ nop -+ -+_ep0_tx_state3: -+ /* transferred bytes < max packetsize */ -+ li $9, 0x0a /* set INPKTRDY and DATAEND */ -+ sb $9, 0x12($27) /* CSR0 */ -+ li $22, 0 /* set EP0 to IDLE state */ -+ b check_intr_ep1in -+ nop -+ -+_ep0_tx_state4: -+ /* transferred bytes == max packetsize */ -+ li $9, 0x02 /* set INPKTRDY */ -+ sb $9, 0x12($27) /* CSR0 */ -+ b check_intr_ep1in -+ nop -+ -+ /* 3. Check and handle EP1 BULK-IN interrupt */ -+check_intr_ep1in: -+ andi $9, $10, 0x2 /* check EP1 IN interrupt */ -+ beqz $9, check_intr_ep1out -+ nop -+ -+handle_epin1_intr: -+ li $9, 1 -+ sb $9, 0x0e($27) /* set INDEX 1 */ -+ lbu $9, 0x12($27) /* read INCSR */ -+ -+ andi $8, $9, 0x2 /* check INCSR_FFNOTEMPT */ -+ bnez $8, _epin1_tx_state4 -+ nop -+ -+_epin1_write_fifo: -+ lhu $9, 0x10($27) /* get INMAXP */ -+ sub $8, $21, $9 -+ blez $8, _epin1_tx_state1 /* bytes left <= INMAXP */ -+ ori $19, $21, 0 -+ ori $19, $9, 0 -+ -+_epin1_tx_state1: -+ beqz $19, _epin1_tx_state4 /* No data */ -+ nop -+ -+ sub $21, $21, $19 /* decrement data count */ -+ -+ srl $5, $19, 2 /* # of word */ -+ andi $6, $19, 0x3 /* # of byte */ -+ beqz $5, _epin1_tx_state2 -+ nop -+ -+_epin1_fifo_write_word: -+ lw $9, 0($20) /* read data from source address */ -+ sw $9, 0x24($27) /* write FIFO */ -+ sub $5, $5, 1 /* decrement counter */ -+ bnez $5, _epin1_fifo_write_word -+ addiu $20, $20, 4 /* increment dest address */ -+ -+_epin1_tx_state2: -+ beqz $6, _epin1_tx_state3 -+ nop -+ -+_epin1_fifo_write_byte: -+ lbu $9, 0($20) /* read data from source address */ -+ sb $9, 0x24($27) /* write FIFO */ -+ sub $6, $6, 1 /* decrement counter */ -+ bnez $6, _epin1_fifo_write_byte -+ addiu $20, $20, 1 /* increment dest address */ -+ -+_epin1_tx_state3: -+ li $9, 0x1 -+ sb $9, 0x12($27) /* INCSR, set INPKTRDY */ -+ -+_epin1_tx_state4: -+ /* 4. Check and handle EP1 BULK-OUT interrupt */ -+check_intr_ep1out: -+ lhu $9, 0x04($27) /* read INTROUT */ -+ andi $9, 0x2 -+ beqz $9, check_status_next -+ nop -+ -+handle_epout1_intr: -+ li $9, 1 -+ sb $9, 0x0e($27) /* set INDEX 1 */ -+ -+ lbu $9, 0x16($27) /* read OUTCSR */ -+ andi $9, 0x1 /* check OUTPKTRDY */ -+ beqz $9, check_status_next -+ nop -+ -+_epout1_read_fifo: -+ lhu $19, 0x18($27) /* read OUTCOUNT */ -+ srl $5, $19, 2 /* # of word */ -+ andi $6, $19, 0x3 /* # of byte */ -+ beqz $5, _epout1_rx_state1 -+ nop -+ -+_epout1_fifo_read_word: -+ lw $9, 0x24($27) /* read FIFO */ -+ sw $9, 0($20) /* store to dest address */ -+ sub $5, $5, 1 /* decrement counter */ -+ bnez $5, _epout1_fifo_read_word -+ addiu $20, $20, 4 /* increment dest address */ -+ -+_epout1_rx_state1: -+ beqz $6, _epout1_rx_state2 -+ nop -+ -+_epout1_fifo_read_byte: -+ lbu $9, 0x24($27) /* read FIFO */ -+ sb $9, 0($20) /* store to dest address */ -+ sub $6, $6, 1 /* decrement counter */ -+ bnez $6, _epout1_fifo_read_byte -+ addiu $20, $20, 1 /* increment dest address */ -+ -+_epout1_rx_state2: -+ sb $0, 0x16($27) /* clear OUTPKTRDY */ -+ -+check_status_next: -+ b usb_command_loop -+ nop -+ -+/* Device/Configuration/Interface/Endpoint/String Descriptors */ -+ -+ .align 2 -+device_desc: -+ .byte 0x12 /* bLength */ -+ .byte 0x01 /* bDescriptorType */ -+ .byte 0x00 /* bcdUSB */ -+ .byte 0x02 /* bcdUSB */ -+ .byte 0x00 /* bDeviceClass */ -+ .byte 0x00 /* bDeviceSubClass */ -+ .byte 0x00 /* bDeviceProtocol */ -+ .byte 0x40 /* bMaxPacketSize0 */ -+ .byte 0x1a /* idVendor */ -+ .byte 0x60 /* idVendor */ -+ .byte 0x40 /* idProduct */ -+ .byte 0x47 /* idProduct */ -+ .byte 0x00 /* bcdDevice */ -+ .byte 0x01 /* bcdDevice */ -+ .byte 0x01 /* iManufacturer */ -+ .byte 0x02 /* iProduct */ -+ .byte 0x00 /* iSerialNumber */ -+ .byte 0x01 /* bNumConfigurations */ -+ -+ .align 2 -+dev_qualifier: -+ .byte 0x0a /* bLength */ -+ .byte 0x06 /* bDescriptorType */ -+ .byte 0x00 /* bcdUSB */ -+ .byte 0x02 /* bcdUSB */ -+ .byte 0x00 /* bDeviceClass */ -+ .byte 0x00 /* bDeviceSubClass */ -+ .byte 0x00 /* bDeviceProtocol */ -+ .byte 0x40 /* bMaxPacketSize0 */ -+ .byte 0x01 /* bNumConfigurations */ -+ .byte 0x00 /* bRESERVED */ -+ -+ .align 2 -+config_desc_hs: -+ .byte 0x09 /* bLength */ -+ .byte 0x02 /* bDescriptorType */ -+ .byte 0x20 /* wTotalLength */ -+ .byte 0x00 /* wTotalLength */ -+ .byte 0x01 /* bNumInterfaces */ -+ .byte 0x01 /* bConfigurationValue */ -+ .byte 0x00 /* iConfiguration */ -+ .byte 0xc0 /* bmAttributes */ -+ .byte 0x01 /* MaxPower */ -+intf_desc_hs: -+ .byte 0x09 /* bLength */ -+ .byte 0x04 /* bDescriptorType */ -+ .byte 0x00 /* bInterfaceNumber */ -+ .byte 0x00 /* bAlternateSetting */ -+ .byte 0x02 /* bNumEndpoints */ -+ .byte 0xff /* bInterfaceClass */ -+ .byte 0x00 /* bInterfaceSubClass */ -+ .byte 0x50 /* bInterfaceProtocol */ -+ .byte 0x00 /* iInterface */ -+ep1_desc_hs: -+ .byte 0x07 /* bLength */ -+ .byte 0x05 /* bDescriptorType */ -+ .byte 0x01 /* bEndpointAddress */ -+ .byte 0x02 /* bmAttributes */ -+ .byte 0x00 /* wMaxPacketSize */ -+ .byte 0x02 /* wMaxPacketSize */ -+ .byte 0x00 /* bInterval */ -+ep2_desc_hs: -+ .byte 0x07 /* bLength */ -+ .byte 0x05 /* bDescriptorType */ -+ .byte 0x81 /* bEndpointAddress */ -+ .byte 0x02 /* bmAttributes */ -+ .byte 0x00 /* wMaxPacketSize */ -+ .byte 0x02 /* wMaxPacketSize */ -+ .byte 0x00 /* bInterval */ -+ -+ .align 2 -+config_desc_fs: -+ .byte 0x09 /* bLength */ -+ .byte 0x02 /* bDescriptorType */ -+ .byte 0x20 /* wTotalLength */ -+ .byte 0x00 /* wTotalLength */ -+ .byte 0x01 /* bNumInterfaces */ -+ .byte 0x01 /* bConfigurationValue */ -+ .byte 0x00 /* iConfiguration */ -+ .byte 0xc0 /* bmAttributes */ -+ .byte 0x01 /* MaxPower */ -+intf_desc_fs: -+ .byte 0x09 /* bLength */ -+ .byte 0x04 /* bDescriptorType */ -+ .byte 0x00 /* bInterfaceNumber */ -+ .byte 0x00 /* bAlternateSetting */ -+ .byte 0x02 /* bNumEndpoints */ -+ .byte 0xff /* bInterfaceClass */ -+ .byte 0x00 /* bInterfaceSubClass */ -+ .byte 0x50 /* bInterfaceProtocol */ -+ .byte 0x00 /* iInterface */ -+ep1_desc_fs: -+ .byte 0x07 /* bLength */ -+ .byte 0x05 /* bDescriptorType */ -+ .byte 0x01 /* bEndpointAddress */ -+ .byte 0x02 /* bmAttributes */ -+ .byte 0x40 /* wMaxPacketSize */ -+ .byte 0x00 /* wMaxPacketSize */ -+ .byte 0x00 /* bInterval */ -+ep2_desc_fs: -+ .byte 0x07 /* bLength */ -+ .byte 0x05 /* bDescriptorType */ -+ .byte 0x81 /* bEndpointAddress */ -+ .byte 0x02 /* bmAttributes */ -+ .byte 0x40 /* wMaxPacketSize */ -+ .byte 0x00 /* wMaxPacketSize */ -+ .byte 0x00 /* bInterval */ -+ -+ .align 2 -+string_lang_ids: -+ .byte 0x04 -+ .byte 0x03 -+ .byte 0x09 -+ .byte 0x04 -+ -+ .align 2 -+string_manufacture: -+ .byte 0x10 -+ .byte 0x03 -+ .byte 0x49 -+ .byte 0x00 -+ .byte 0x6e -+ .byte 0x00 -+ .byte 0x67 -+ .byte 0x00 -+ .byte 0x65 -+ .byte 0x00 -+ .byte 0x6e -+ .byte 0x00 -+ .byte 0x69 -+ .byte 0x00 -+ .byte 0x63 -+ .byte 0x00 -+ -+ .align 2 -+string_product: -+ .byte 0x2e -+ .byte 0x03 -+ .byte 0x4a -+ .byte 0x00 -+ .byte 0x5a -+ .byte 0x00 -+ .byte 0x34 -+ .byte 0x00 -+ .byte 0x37 -+ .byte 0x00 -+ .byte 0x34 -+ .byte 0x00 -+ .byte 0x30 -+ .byte 0x00 -+ .byte 0x20 -+ .byte 0x00 -+ .byte 0x55 -+ .byte 0x00 -+ .byte 0x53 -+ .byte 0x00 -+ .byte 0x42 -+ .byte 0x00 -+ .byte 0x20 -+ .byte 0x00 -+ .byte 0x42 -+ .byte 0x00 -+ .byte 0x6f -+ .byte 0x00 -+ .byte 0x6f -+ .byte 0x00 -+ .byte 0x74 -+ .byte 0x00 -+ .byte 0x20 -+ .byte 0x00 -+ .byte 0x44 -+ .byte 0x00 -+ .byte 0x65 -+ .byte 0x00 -+ .byte 0x76 -+ .byte 0x00 -+ .byte 0x69 -+ .byte 0x00 -+ .byte 0x63 -+ .byte 0x00 -+ .byte 0x65 -+ .byte 0x00 -+ -+ .align 2 -+cpu_info_data: -+ .byte 0x4a -+ .byte 0x5a -+ .byte 0x34 -+ .byte 0x37 -+ .byte 0x34 -+ .byte 0x30 -+ .byte 0x56 -+ .byte 0x31 -+usbboot_end: -+ -+ .set reorder --- -1.7.9.5 - diff --git a/package/boot/uboot-xburst/patches/0003-add-mmc-support.patch b/package/boot/uboot-xburst/patches/0003-add-mmc-support.patch deleted file mode 100644 index e9baa7c373..0000000000 --- a/package/boot/uboot-xburst/patches/0003-add-mmc-support.patch +++ /dev/null @@ -1,1664 +0,0 @@ -From bd36739e77669e8df45c38f6acfe2cea511534d9 Mon Sep 17 00:00:00 2001 -From: Xiangfu -Date: Wed, 10 Oct 2012 18:19:41 +0800 -Subject: [PATCH 3/6] add mmc support - ---- - arch/mips/include/asm/jz4740.h | 166 ++++++ - board/qi/qi_lb60/qi_lb60.c | 9 +- - drivers/mmc/Makefile | 1 + - drivers/mmc/jz_mmc.c | 1179 ++++++++++++++++++++++++++++++++++++++++ - drivers/mmc/jz_mmc.h | 176 ++++++ - include/configs/qi_lb60.h | 9 + - include/mmc.h | 40 ++ - 7 files changed, 1578 insertions(+), 2 deletions(-) - create mode 100644 drivers/mmc/jz_mmc.c - create mode 100644 drivers/mmc/jz_mmc.h - -diff --git a/arch/mips/include/asm/jz4740.h b/arch/mips/include/asm/jz4740.h -index 7a7cfff..68287fb 100644 ---- a/arch/mips/include/asm/jz4740.h -+++ b/arch/mips/include/asm/jz4740.h -@@ -1146,5 +1146,171 @@ extern void sdram_init(void); - extern void calc_clocks(void); - extern void rtc_init(void); - -+/************************************************************************* -+ * MSC -+ *************************************************************************/ -+#define REG8(addr) *((volatile u8 *)(addr)) -+#define REG16(addr) *((volatile u16 *)(addr)) -+#define REG32(addr) *((volatile u32 *)(addr)) -+ -+#define CPM_BASE 0xB0000000 -+#define CPM_CPCCR (CPM_BASE+0x00) -+#define CPM_MSCCDR (CPM_BASE+0x68) -+#define REG_CPM_MSCCDR REG32(CPM_MSCCDR) -+#define REG_CPM_CPCCR REG32(CPM_CPCCR) -+ -+#define MSC_BASE 0xB0021000 -+ -+#define MSC_STRPCL (MSC_BASE + 0x000) -+#define MSC_STAT (MSC_BASE + 0x004) -+#define MSC_CLKRT (MSC_BASE + 0x008) -+#define MSC_CMDAT (MSC_BASE + 0x00C) -+#define MSC_RESTO (MSC_BASE + 0x010) -+#define MSC_RDTO (MSC_BASE + 0x014) -+#define MSC_BLKLEN (MSC_BASE + 0x018) -+#define MSC_NOB (MSC_BASE + 0x01C) -+#define MSC_SNOB (MSC_BASE + 0x020) -+#define MSC_IMASK (MSC_BASE + 0x024) -+#define MSC_IREG (MSC_BASE + 0x028) -+#define MSC_CMD (MSC_BASE + 0x02C) -+#define MSC_ARG (MSC_BASE + 0x030) -+#define MSC_RES (MSC_BASE + 0x034) -+#define MSC_RXFIFO (MSC_BASE + 0x038) -+#define MSC_TXFIFO (MSC_BASE + 0x03C) -+ -+#define REG_MSC_STRPCL REG16(MSC_STRPCL) -+#define REG_MSC_STAT REG32(MSC_STAT) -+#define REG_MSC_CLKRT REG16(MSC_CLKRT) -+#define REG_MSC_CMDAT REG32(MSC_CMDAT) -+#define REG_MSC_RESTO REG16(MSC_RESTO) -+#define REG_MSC_RDTO REG16(MSC_RDTO) -+#define REG_MSC_BLKLEN REG16(MSC_BLKLEN) -+#define REG_MSC_NOB REG16(MSC_NOB) -+#define REG_MSC_SNOB REG16(MSC_SNOB) -+#define REG_MSC_IMASK REG16(MSC_IMASK) -+#define REG_MSC_IREG REG16(MSC_IREG) -+#define REG_MSC_CMD REG8(MSC_CMD) -+#define REG_MSC_ARG REG32(MSC_ARG) -+#define REG_MSC_RES REG16(MSC_RES) -+#define REG_MSC_RXFIFO REG32(MSC_RXFIFO) -+#define REG_MSC_TXFIFO REG32(MSC_TXFIFO) -+ -+/* MSC Clock and Control Register (MSC_STRPCL) */ -+ -+#define MSC_STRPCL_EXIT_MULTIPLE (1 << 7) -+#define MSC_STRPCL_EXIT_TRANSFER (1 << 6) -+#define MSC_STRPCL_START_READWAIT (1 << 5) -+#define MSC_STRPCL_STOP_READWAIT (1 << 4) -+#define MSC_STRPCL_RESET (1 << 3) -+#define MSC_STRPCL_START_OP (1 << 2) -+#define MSC_STRPCL_CLOCK_CONTROL_BIT 0 -+#define MSC_STRPCL_CLOCK_CONTROL_MASK (0x3 << MSC_STRPCL_CLOCK_CONTROL_BIT) -+ #define MSC_STRPCL_CLOCK_CONTROL_STOP (0x1 << MSC_STRPCL_CLOCK_CONTROL_BIT) /* Stop MMC/SD clock */ -+ #define MSC_STRPCL_CLOCK_CONTROL_START (0x2 << MSC_STRPCL_CLOCK_CONTROL_BIT) /* Start MMC/SD clock */ -+ -+/* MSC Status Register (MSC_STAT) */ -+ -+#define MSC_STAT_IS_RESETTING (1 << 15) -+#define MSC_STAT_SDIO_INT_ACTIVE (1 << 14) -+#define MSC_STAT_PRG_DONE (1 << 13) -+#define MSC_STAT_DATA_TRAN_DONE (1 << 12) -+#define MSC_STAT_END_CMD_RES (1 << 11) -+#define MSC_STAT_DATA_FIFO_AFULL (1 << 10) -+#define MSC_STAT_IS_READWAIT (1 << 9) -+#define MSC_STAT_CLK_EN (1 << 8) -+#define MSC_STAT_DATA_FIFO_FULL (1 << 7) -+#define MSC_STAT_DATA_FIFO_EMPTY (1 << 6) -+#define MSC_STAT_CRC_RES_ERR (1 << 5) -+#define MSC_STAT_CRC_READ_ERROR (1 << 4) -+#define MSC_STAT_CRC_WRITE_ERROR_BIT 2 -+#define MSC_STAT_CRC_WRITE_ERROR_MASK (0x3 << MSC_STAT_CRC_WRITE_ERROR_BIT) -+ #define MSC_STAT_CRC_WRITE_ERROR_NO (0 << MSC_STAT_CRC_WRITE_ERROR_BIT) /* No error on transmission of data */ -+ #define MSC_STAT_CRC_WRITE_ERROR (1 << MSC_STAT_CRC_WRITE_ERROR_BIT) /* Card observed erroneous transmission of data */ -+ #define MSC_STAT_CRC_WRITE_ERROR_NOSTS (2 << MSC_STAT_CRC_WRITE_ERROR_BIT) /* No CRC status is sent back */ -+#define MSC_STAT_TIME_OUT_RES (1 << 1) -+#define MSC_STAT_TIME_OUT_READ (1 << 0) -+ -+/* MSC Bus Clock Control Register (MSC_CLKRT) */ -+ -+#define MSC_CLKRT_CLK_RATE_BIT 0 -+#define MSC_CLKRT_CLK_RATE_MASK (0x7 << MSC_CLKRT_CLK_RATE_BIT) -+ #define MSC_CLKRT_CLK_RATE_DIV_1 (0x0 << MSC_CLKRT_CLK_RATE_BIT) /* CLK_SRC */ -+ #define MSC_CLKRT_CLK_RATE_DIV_2 (0x1 << MSC_CLKRT_CLK_RATE_BIT) /* 1/2 of CLK_SRC */ -+ #define MSC_CLKRT_CLK_RATE_DIV_4 (0x2 << MSC_CLKRT_CLK_RATE_BIT) /* 1/4 of CLK_SRC */ -+ #define MSC_CLKRT_CLK_RATE_DIV_8 (0x3 << MSC_CLKRT_CLK_RATE_BIT) /* 1/8 of CLK_SRC */ -+ #define MSC_CLKRT_CLK_RATE_DIV_16 (0x4 << MSC_CLKRT_CLK_RATE_BIT) /* 1/16 of CLK_SRC */ -+ #define MSC_CLKRT_CLK_RATE_DIV_32 (0x5 << MSC_CLKRT_CLK_RATE_BIT) /* 1/32 of CLK_SRC */ -+ #define MSC_CLKRT_CLK_RATE_DIV_64 (0x6 << MSC_CLKRT_CLK_RATE_BIT) /* 1/64 of CLK_SRC */ -+ #define MSC_CLKRT_CLK_RATE_DIV_128 (0x7 << MSC_CLKRT_CLK_RATE_BIT) /* 1/128 of CLK_SRC */ -+ -+/* MSC Command Sequence Control Register (MSC_CMDAT) */ -+ -+#define MSC_CMDAT_IO_ABORT (1 << 11) -+#define MSC_CMDAT_BUS_WIDTH_BIT 9 -+#define MSC_CMDAT_BUS_WIDTH_MASK (0x3 << MSC_CMDAT_BUS_WIDTH_BIT) -+#define MSC_CMDAT_BUS_WIDTH_1BIT (0x0 << MSC_CMDAT_BUS_WIDTH_BIT) -+#define MSC_CMDAT_BUS_WIDTH_4BIT (0x2 << MSC_CMDAT_BUS_WIDTH_BIT) -+#define MSC_CMDAT_DMA_EN (1 << 8) -+#define MSC_CMDAT_INIT (1 << 7) -+#define MSC_CMDAT_BUSY (1 << 6) -+#define MSC_CMDAT_STREAM_BLOCK (1 << 5) -+#define MSC_CMDAT_WRITE (1 << 4) -+#define MSC_CMDAT_READ (0 << 4) -+#define MSC_CMDAT_DATA_EN (1 << 3) -+#define MSC_CMDAT_RESPONSE_BIT 0 -+#define MSC_CMDAT_RESPONSE_MASK (0x7 << MSC_CMDAT_RESPONSE_BIT) -+#define MSC_CMDAT_RESPONSE_NONE (0x0 << MSC_CMDAT_RESPONSE_BIT) -+#define MSC_CMDAT_RESPONSE_R1 (0x1 << MSC_CMDAT_RESPONSE_BIT) -+#define MSC_CMDAT_RESPONSE_R2 (0x2 << MSC_CMDAT_RESPONSE_BIT) -+#define MSC_CMDAT_RESPONSE_R3 (0x3 << MSC_CMDAT_RESPONSE_BIT) -+#define MSC_CMDAT_RESPONSE_R4 (0x4 << MSC_CMDAT_RESPONSE_BIT) -+#define MSC_CMDAT_RESPONSE_R5 (0x5 << MSC_CMDAT_RESPONSE_BIT) -+#define MSC_CMDAT_RESPONSE_R6 (0x6 << MSC_CMDAT_RESPONSE_BIT) -+ -+/* MSC Interrupts Mask Register (MSC_IMASK) */ -+#define MSC_IMASK_SDIO (1 << 7) -+#define MSC_IMASK_TXFIFO_WR_REQ (1 << 6) -+#define MSC_IMASK_RXFIFO_RD_REQ (1 << 5) -+#define MSC_IMASK_END_CMD_RES (1 << 2) -+#define MSC_IMASK_PRG_DONE (1 << 1) -+#define MSC_IMASK_DATA_TRAN_DONE (1 << 0) -+ -+ -+/* MSC Interrupts Status Register (MSC_IREG) */ -+#define MSC_IREG_SDIO (1 << 7) -+#define MSC_IREG_TXFIFO_WR_REQ (1 << 6) -+#define MSC_IREG_RXFIFO_RD_REQ (1 << 5) -+#define MSC_IREG_END_CMD_RES (1 << 2) -+#define MSC_IREG_PRG_DONE (1 << 1) -+#define MSC_IREG_DATA_TRAN_DONE (1 << 0) -+ -+static __inline__ unsigned int __cpm_get_pllout2(void) -+{ -+ if (REG_CPM_CPCCR & CPM_CPCCR_PCS) -+ return __cpm_get_pllout(); -+ else -+ return __cpm_get_pllout()/2; -+} -+ -+static inline void __cpm_select_msc_clk(int sd) -+{ -+ unsigned int pllout2 = __cpm_get_pllout2(); -+ unsigned int div = 0; -+ -+ if (sd) { -+ div = pllout2 / 24000000; -+ } -+ else { -+ div = pllout2 / 16000000; -+ } -+ -+ REG_CPM_MSCCDR = div - 1; -+} -+#define __msc_reset() \ -+do { \ -+ REG_MSC_STRPCL = MSC_STRPCL_RESET; \ -+ while (REG_MSC_STAT & MSC_STAT_IS_RESETTING); \ -+} while (0) -+ - #endif /* !__ASSEMBLY__ */ - #endif /* __JZ4740_H__ */ -diff --git a/board/qi/qi_lb60/qi_lb60.c b/board/qi/qi_lb60/qi_lb60.c -index 3bd4e2f..a2ba648 100644 ---- a/board/qi/qi_lb60/qi_lb60.c -+++ b/board/qi/qi_lb60/qi_lb60.c -@@ -40,8 +40,13 @@ static void gpio_init(void) - __gpio_clear_pin(GPIO_KEYOUT_BASE + i); - } - -- __gpio_as_input(GPIO_KEYIN_8); -- __gpio_enable_pull(GPIO_KEYIN_8); -+ if (__gpio_get_pin(GPIO_KEYIN_BASE + 2) == 0){ -+ printf("[S] pressed, enable UART0\n"); -+ __gpio_as_uart0(); -+ } else { -+ __gpio_as_input(GPIO_KEYIN_8); -+ __gpio_enable_pull(GPIO_KEYIN_8); -+ } - - /* enable the TP4, TP5 as UART0 */ - __gpio_jtag_to_uart0(); -diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile -index 565ba6a..3c717b1 100644 ---- a/drivers/mmc/Makefile -+++ b/drivers/mmc/Makefile -@@ -47,6 +47,7 @@ COBJS-$(CONFIG_SDHCI) += sdhci.o - COBJS-$(CONFIG_S5P_SDHCI) += s5p_sdhci.o - COBJS-$(CONFIG_SH_MMCIF) += sh_mmcif.o - COBJS-$(CONFIG_TEGRA_MMC) += tegra_mmc.o -+COBJS-$(CONFIG_JZ4740_MMC) += jz_mmc.o - - COBJS := $(COBJS-y) - SRCS := $(COBJS:.o=.c) -diff --git a/drivers/mmc/jz_mmc.c b/drivers/mmc/jz_mmc.c -new file mode 100644 -index 0000000..642cecc ---- /dev/null -+++ b/drivers/mmc/jz_mmc.c -@@ -0,0 +1,1179 @@ -+/* -+ * (C) Copyright 2003 -+ * Kyle Harris, Nexus Technologies, Inc. kharris@nexus-tech.net -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include "jz_mmc.h" -+ -+static int sd2_0 = 0; -+static int mmc_ready = 0; -+static int use_4bit; /* Use 4-bit data bus */ -+/* -+ * MMC Events -+ */ -+#define MMC_EVENT_NONE 0x00 /* No events */ -+#define MMC_EVENT_RX_DATA_DONE 0x01 /* Rx data done */ -+#define MMC_EVENT_TX_DATA_DONE 0x02 /* Tx data done */ -+#define MMC_EVENT_PROG_DONE 0x04 /* Programming is done */ -+ -+ -+#define MMC_IRQ_MASK() \ -+do { \ -+ REG_MSC_IMASK = 0xffff; \ -+ REG_MSC_IREG = 0xffff; \ -+} while (0) -+ -+/* -+ * GPIO definition -+ */ -+#if defined(CONFIG_SAKC) -+ -+#define __msc_init_io() \ -+do { \ -+ __gpio_as_input(GPIO_SD_CD_N); \ -+} while (0) -+ -+#else -+#define __msc_init_io() \ -+do { \ -+ __gpio_as_output(GPIO_SD_VCC_EN_N); \ -+ __gpio_as_input(GPIO_SD_CD_N); \ -+} while (0) -+ -+#define __msc_enable_power() \ -+do { \ -+ __gpio_clear_pin(GPIO_SD_VCC_EN_N); \ -+} while (0) -+ -+#define __msc_disable_power() \ -+do { \ -+ __gpio_set_pin(GPIO_SD_VCC_EN_N); \ -+} while (0) -+ -+#endif /* CONFIG_SAKE */ -+ -+#define __msc_card_detected() \ -+({ \ -+ int detected = 1; \ -+ __gpio_as_input(GPIO_SD_CD_N); \ -+ __gpio_disable_pull(GPIO_SD_CD_N); \ -+ if (!__gpio_get_pin(GPIO_SD_CD_N)) \ -+ detected = 0; \ -+ detected; \ -+}) -+ -+/* -+ * Local functions -+ */ -+ -+extern int -+fat_register_device(block_dev_desc_t *dev_desc, int part_no); -+ -+static block_dev_desc_t mmc_dev; -+ -+block_dev_desc_t * mmc_get_dev(int dev) -+{ -+ return ((block_dev_desc_t *)&mmc_dev); -+} -+ -+/* Stop the MMC clock and wait while it happens */ -+static inline int jz_mmc_stop_clock(void) -+{ -+ int timeout = 1000; -+ -+ REG_MSC_STRPCL = MSC_STRPCL_CLOCK_CONTROL_STOP; -+ -+ while (timeout && (REG_MSC_STAT & MSC_STAT_CLK_EN)) { -+ timeout--; -+ if (timeout == 0) -+ return MMC_ERROR_TIMEOUT; -+ udelay(1); -+ } -+ return MMC_NO_ERROR; -+} -+ -+/* Start the MMC clock and operation */ -+static inline int jz_mmc_start_clock(void) -+{ -+ REG_MSC_STRPCL = MSC_STRPCL_CLOCK_CONTROL_START | MSC_STRPCL_START_OP; -+ return MMC_NO_ERROR; -+} -+ -+static inline u32 jz_mmc_calc_clkrt(int is_sd, u32 rate) -+{ -+ u32 clkrt = 0; -+ u32 clk_src = is_sd ? 24000000 : 16000000; -+ -+ while (rate < clk_src) { -+ clkrt ++; -+ clk_src >>= 1; -+ } -+ -+ return clkrt; -+} -+ -+/* Set the MMC clock frequency */ -+void jz_mmc_set_clock(int sd, u32 rate) -+{ -+ jz_mmc_stop_clock(); -+ -+ /* Select clock source of MSC */ -+ __cpm_select_msc_clk(sd); -+ -+ /* Set clock dividor of MSC */ -+ REG_MSC_CLKRT = jz_mmc_calc_clkrt(sd, rate); -+} -+ -+static int jz_mmc_check_status(struct mmc_request *request) -+{ -+ u32 status = REG_MSC_STAT; -+ -+ /* Checking for response or data timeout */ -+ if (status & (MSC_STAT_TIME_OUT_RES | MSC_STAT_TIME_OUT_READ)) { -+ printf("MMC/SD timeout, MMC_STAT 0x%x CMD %d\n", status, request->cmd); -+ return MMC_ERROR_TIMEOUT; -+ } -+ -+ /* Checking for CRC error */ -+ if (status & (MSC_STAT_CRC_READ_ERROR | MSC_STAT_CRC_WRITE_ERROR | MSC_STAT_CRC_RES_ERR)) { -+ printf("MMC/CD CRC error, MMC_STAT 0x%x\n", status); -+ return MMC_ERROR_CRC; -+ } -+ -+ return MMC_NO_ERROR; -+} -+ -+/* Obtain response to the command and store it to response buffer */ -+static void jz_mmc_get_response(struct mmc_request *request) -+{ -+ int i; -+ u8 *buf; -+ u32 data; -+ -+ debug("fetch response for request %d, cmd %d\n", -+ request->rtype, request->cmd); -+ -+ buf = request->response; -+ request->result = MMC_NO_ERROR; -+ -+ switch (request->rtype) { -+ case RESPONSE_R1: case RESPONSE_R1B: case RESPONSE_R6: -+ case RESPONSE_R3: case RESPONSE_R4: case RESPONSE_R5: -+ { -+ data = REG_MSC_RES; -+ buf[0] = (data >> 8) & 0xff; -+ buf[1] = data & 0xff; -+ data = REG_MSC_RES; -+ buf[2] = (data >> 8) & 0xff; -+ buf[3] = data & 0xff; -+ data = REG_MSC_RES; -+ buf[4] = data & 0xff; -+ -+ debug("request %d, response [%02x %02x %02x %02x %02x]\n", -+ request->rtype, buf[0], buf[1], buf[2], buf[3], buf[4]); -+ break; -+ } -+ case RESPONSE_R2_CID: case RESPONSE_R2_CSD: -+ { -+ for (i = 0; i < 16; i += 2) { -+ data = REG_MSC_RES; -+ buf[i] = (data >> 8) & 0xff; -+ buf[i+1] = data & 0xff; -+ } -+ debug("request %d, response [", request->rtype); -+#if CONFIG_MMC_DEBUG_VERBOSE > 2 -+ if (g_mmc_debug >= 3) { -+ int n; -+ for (n = 0; n < 17; n++) -+ printk("%02x ", buf[n]); -+ printk("]\n"); -+ } -+#endif -+ break; -+ } -+ case RESPONSE_NONE: -+ debug("No response\n"); -+ break; -+ -+ default: -+ debug("unhandled response type for request %d\n", request->rtype); -+ break; -+ } -+} -+ -+static int jz_mmc_receive_data(struct mmc_request *req) -+{ -+ u32 stat, timeout, data, cnt; -+ u8 *buf = req->buffer; -+ u32 wblocklen = (u32)(req->block_len + 3) >> 2; /* length in word */ -+ -+ timeout = 0x3ffffff; -+ -+ while (timeout) { -+ timeout--; -+ stat = REG_MSC_STAT; -+ -+ if (stat & MSC_STAT_TIME_OUT_READ) -+ return MMC_ERROR_TIMEOUT; -+ else if (stat & MSC_STAT_CRC_READ_ERROR) -+ return MMC_ERROR_CRC; -+ else if (!(stat & MSC_STAT_DATA_FIFO_EMPTY) -+ || (stat & MSC_STAT_DATA_FIFO_AFULL)) { -+ /* Ready to read data */ -+ break; -+ } -+ udelay(1); -+ } -+ if (!timeout) -+ return MMC_ERROR_TIMEOUT; -+ -+ /* Read data from RXFIFO. It could be FULL or PARTIAL FULL */ -+ cnt = wblocklen; -+ while (cnt) { -+ data = REG_MSC_RXFIFO; -+ { -+ *buf++ = (u8)(data >> 0); -+ *buf++ = (u8)(data >> 8); -+ *buf++ = (u8)(data >> 16); -+ *buf++ = (u8)(data >> 24); -+ } -+ cnt --; -+ while (cnt && (REG_MSC_STAT & MSC_STAT_DATA_FIFO_EMPTY)) -+ ; -+ } -+ return MMC_NO_ERROR; -+} -+ -+static int jz_mmc_transmit_data(struct mmc_request *req) -+{ -+#if 0 -+ u32 nob = req->nob; -+ u32 wblocklen = (u32)(req->block_len + 3) >> 2; /* length in word */ -+ u8 *buf = req->buffer; -+ u32 *wbuf = (u32 *)buf; -+ u32 waligned = (((u32)buf & 0x3) == 0); /* word aligned ? */ -+ u32 stat, timeout, data, cnt; -+ -+ for (nob; nob >= 1; nob--) { -+ timeout = 0x3FFFFFF; -+ -+ while (timeout) { -+ timeout--; -+ stat = REG_MSC_STAT; -+ -+ if (stat & (MSC_STAT_CRC_WRITE_ERROR | MSC_STAT_CRC_WRITE_ERROR_NOSTS)) -+ return MMC_ERROR_CRC; -+ else if (!(stat & MSC_STAT_DATA_FIFO_FULL)) { -+ /* Ready to write data */ -+ break; -+ } -+ -+ udelay(1); -+ } -+ -+ if (!timeout) -+ return MMC_ERROR_TIMEOUT; -+ -+ /* Write data to TXFIFO */ -+ cnt = wblocklen; -+ while (cnt) { -+ while (REG_MSC_STAT & MSC_STAT_DATA_FIFO_FULL) -+ ; -+ -+ if (waligned) { -+ REG_MSC_TXFIFO = *wbuf++; -+ } -+ else { -+ data = *buf++ | (*buf++ << 8) | (*buf++ << 16) | (*buf++ << 24); -+ REG_MSC_TXFIFO = data; -+ } -+ -+ cnt--; -+ } -+ } -+#endif -+ return MMC_NO_ERROR; -+} -+ -+ -+/* -+ * Name: int jz_mmc_exec_cmd() -+ * Function: send command to the card, and get a response -+ * Input: struct mmc_request *req : MMC/SD request -+ * Output: 0: right >0: error code -+ */ -+int jz_mmc_exec_cmd(struct mmc_request *request) -+{ -+ u32 cmdat = 0, events = 0; -+ int retval, timeout = 0x3fffff; -+ -+ /* Indicate we have no result yet */ -+ request->result = MMC_NO_RESPONSE; -+ if (request->cmd == MMC_CIM_RESET) { -+ /* On reset, 1-bit bus width */ -+ use_4bit = 0; -+ -+ /* Reset MMC/SD controller */ -+ __msc_reset(); -+ -+ /* On reset, drop MMC clock down */ -+ jz_mmc_set_clock(0, MMC_CLOCK_SLOW); -+ -+ /* On reset, stop MMC clock */ -+ jz_mmc_stop_clock(); -+ } -+ if (request->cmd == MMC_CMD_SEND_OP_COND) { -+ debug("Have an MMC card\n"); -+ /* always use 1bit for MMC */ -+ use_4bit = 0; -+ } -+ if (request->cmd == SET_BUS_WIDTH) { -+ if (request->arg == 0x2) { -+ printf("Use 4-bit bus width\n"); -+ use_4bit = 1; -+ } else { -+ printf("Use 1-bit bus width\n"); -+ use_4bit = 0; -+ } -+ } -+ -+ /* stop clock */ -+ jz_mmc_stop_clock(); -+ -+ /* mask all interrupts */ -+ REG_MSC_IMASK = 0xffff; -+ -+ /* clear status */ -+ REG_MSC_IREG = 0xffff; -+ -+ /* use 4-bit bus width when possible */ -+ if (use_4bit) -+ cmdat |= MSC_CMDAT_BUS_WIDTH_4BIT; -+ -+ /* Set command type and events */ -+ switch (request->cmd) { -+ /* MMC core extra command */ -+ case MMC_CIM_RESET: -+ cmdat |= MSC_CMDAT_INIT; /* Initialization sequence sent prior to command */ -+ break; -+ -+ /* bc - broadcast - no response */ -+ case MMC_CMD_GO_IDLE_STATE: -+ case MMC_CMD_SET_DSR: -+ break; -+ -+ /* bcr - broadcast with response */ -+ case MMC_CMD_SEND_OP_COND: -+ case MMC_CMD_ALL_SEND_CID: -+ case MMC_GO_IRQ_STATE: -+ break; -+ -+ /* adtc - addressed with data transfer */ -+ case MMC_READ_DAT_UNTIL_STOP: -+ case MMC_CMD_READ_SINGLE_BLOCK: -+ case MMC_CMD_READ_MULTIPLE_BLOCK: -+ case SD_CMD_APP_SEND_SCR: -+ cmdat |= MSC_CMDAT_DATA_EN | MSC_CMDAT_READ; -+ events = MMC_EVENT_RX_DATA_DONE; -+ break; -+ -+ case MMC_WRITE_DAT_UNTIL_STOP: -+ case MMC_CMD_WRITE_SINGLE_BLOCK: -+ case MMC_CMD_WRITE_MULTIPLE_BLOCK: -+ case MMC_PROGRAM_CID: -+ case MMC_PROGRAM_CSD: -+ case MMC_SEND_WRITE_PROT: -+ case MMC_GEN_CMD: -+ case MMC_LOCK_UNLOCK: -+ cmdat |= MSC_CMDAT_DATA_EN | MSC_CMDAT_WRITE; -+ events = MMC_EVENT_TX_DATA_DONE | MMC_EVENT_PROG_DONE; -+ -+ break; -+ -+ case MMC_CMD_STOP_TRANSMISSION: -+ events = MMC_EVENT_PROG_DONE; -+ break; -+ -+ /* ac - no data transfer */ -+ default: -+ break; -+ } -+ -+ /* Set response type */ -+ switch (request->rtype) { -+ case RESPONSE_NONE: -+ break; -+ -+ case RESPONSE_R1B: -+ cmdat |= MSC_CMDAT_BUSY; -+ /*FALLTHRU*/ -+ case RESPONSE_R1: -+ cmdat |= MSC_CMDAT_RESPONSE_R1; -+ break; -+ case RESPONSE_R2_CID: -+ case RESPONSE_R2_CSD: -+ cmdat |= MSC_CMDAT_RESPONSE_R2; -+ break; -+ case RESPONSE_R3: -+ cmdat |= MSC_CMDAT_RESPONSE_R3; -+ break; -+ case RESPONSE_R4: -+ cmdat |= MSC_CMDAT_RESPONSE_R4; -+ break; -+ case RESPONSE_R5: -+ cmdat |= MSC_CMDAT_RESPONSE_R5; -+ break; -+ case RESPONSE_R6: -+ cmdat |= MSC_CMDAT_RESPONSE_R6; -+ break; -+ default: -+ break; -+ } -+ -+ /* Set command index */ -+ if (request->cmd == MMC_CIM_RESET) { -+ REG_MSC_CMD = MMC_CMD_GO_IDLE_STATE; -+ } else { -+ REG_MSC_CMD = request->cmd; -+ } -+ -+ /* Set argument */ -+ REG_MSC_ARG = request->arg; -+ -+ /* Set block length and nob */ -+ if (request->cmd == SD_CMD_APP_SEND_SCR) { /* get SCR from DataFIFO */ -+ REG_MSC_BLKLEN = 8; -+ REG_MSC_NOB = 1; -+ } else { -+ REG_MSC_BLKLEN = request->block_len; -+ REG_MSC_NOB = request->nob; -+ } -+ -+ /* Set command */ -+ REG_MSC_CMDAT = cmdat; -+ -+ debug("Send cmd %d cmdat: %x arg: %x resp %d\n", request->cmd, -+ cmdat, request->arg, request->rtype); -+ -+ /* Start MMC/SD clock and send command to card */ -+ jz_mmc_start_clock(); -+ -+ /* Wait for command completion */ -+ while (timeout-- && !(REG_MSC_STAT & MSC_STAT_END_CMD_RES)) -+ ; -+ -+ if (timeout == 0) -+ return MMC_ERROR_TIMEOUT; -+ -+ REG_MSC_IREG = MSC_IREG_END_CMD_RES; /* clear flag */ -+ -+ /* Check for status */ -+ retval = jz_mmc_check_status(request); -+ if (retval) { -+ return retval; -+ } -+ -+ /* Complete command with no response */ -+ if (request->rtype == RESPONSE_NONE) { -+ return MMC_NO_ERROR; -+ } -+ -+ /* Get response */ -+ jz_mmc_get_response(request); -+ -+ /* Start data operation */ -+ if (events & (MMC_EVENT_RX_DATA_DONE | MMC_EVENT_TX_DATA_DONE)) { -+ if (events & MMC_EVENT_RX_DATA_DONE) { -+ if (request->cmd == SD_CMD_APP_SEND_SCR) { -+ /* SD card returns SCR register as data. -+ MMC core expect it in the response buffer, -+ after normal response. */ -+ request->buffer = (u8 *)((u32)request->response + 5); -+ } -+ jz_mmc_receive_data(request); -+ } -+ -+ if (events & MMC_EVENT_TX_DATA_DONE) { -+ jz_mmc_transmit_data(request); -+ } -+ -+ /* Wait for Data Done */ -+ while (!(REG_MSC_IREG & MSC_IREG_DATA_TRAN_DONE)) -+ ; -+ REG_MSC_IREG = MSC_IREG_DATA_TRAN_DONE; /* clear status */ -+ } -+ -+ /* Wait for Prog Done event */ -+ if (events & MMC_EVENT_PROG_DONE) { -+ while (!(REG_MSC_IREG & MSC_IREG_PRG_DONE)) -+ ; -+ REG_MSC_IREG = MSC_IREG_PRG_DONE; /* clear status */ -+ } -+ -+ /* Command completed */ -+ -+ return MMC_NO_ERROR; /* return successfully */ -+} -+ -+int mmc_block_read(u8 *dst, ulong src, ulong len) -+{ -+ -+ struct mmc_request request; -+ struct mmc_response_r1 r1; -+ int retval = 0; -+ -+ if (len == 0) -+ goto exit; -+ -+ mmc_simple_cmd(&request, MMC_CMD_SEND_STATUS, mmcinfo.rca, RESPONSE_R1); -+ retval = mmc_unpack_r1(&request, &r1, 0); -+ if (retval && (retval != MMC_ERROR_STATE_MISMATCH)) -+ goto exit; -+ -+ mmc_simple_cmd(&request, MMC_CMD_SET_BLOCKLEN, len, RESPONSE_R1); -+ if (retval = mmc_unpack_r1(&request, &r1, 0)) -+ goto exit; -+ -+ if (!sd2_0) -+ src *= mmcinfo.block_len; -+ -+ mmc_send_cmd(&request, MMC_CMD_READ_SINGLE_BLOCK, src, 1, len, RESPONSE_R1, dst); -+ if (retval = mmc_unpack_r1(&request, &r1, 0)) -+ goto exit; -+ -+exit: -+ return retval; -+} -+ -+ulong mmc_bread(int dev_num, ulong blkstart, ulong blkcnt, ulong *dst) -+{ -+ if (!mmc_ready) { -+ printf("Please initial the MMC first\n"); -+ return -1; -+ } -+ -+ int i = 0; -+ ulong dst_tmp = dst; -+ -+ for (i = 0; i < blkcnt; i++) { -+ if ((mmc_block_read((uchar *)(dst_tmp), blkstart, mmcinfo.block_len)) < 0) -+ return -1; -+ -+ dst_tmp += mmcinfo.block_len; -+ blkstart++; -+ } -+ -+ return i; -+} -+ -+int mmc_select_card(void) -+{ -+ struct mmc_request request; -+ struct mmc_response_r1 r1; -+ int retval; -+ -+ mmc_simple_cmd(&request, MMC_CMD_SELECT_CARD, mmcinfo.rca, RESPONSE_R1B); -+ retval = mmc_unpack_r1(&request, &r1, 0); -+ if (retval) { -+ return retval; -+ } -+ -+ if (mmcinfo.sd) { -+ mmc_simple_cmd(&request, MMC_CMD_APP_CMD, mmcinfo.rca, RESPONSE_R1); -+ retval = mmc_unpack_r1(&request,&r1,0); -+ if (retval) { -+ return retval; -+ } -+#if defined(MMC_BUS_WIDTH_1BIT) -+ mmc_simple_cmd(&request, SET_BUS_WIDTH, 1, RESPONSE_R1); -+#else -+ mmc_simple_cmd(&request, SET_BUS_WIDTH, 2, RESPONSE_R1); -+#endif -+ retval = mmc_unpack_r1(&request,&r1,0); -+ if (retval) { -+ return retval; -+ } -+ } -+ return 0; -+} -+ -+/* -+ * Configure card -+ */ -+static void mmc_configure_card(void) -+{ -+ u32 rate; -+ -+ /* Get card info */ -+ if (sd2_0) -+ mmcinfo.block_num = (mmcinfo.csd.c_size + 1) << 10; -+ else -+ mmcinfo.block_num = (mmcinfo.csd.c_size + 1) * (1 << (mmcinfo.csd.c_size_mult + 2)); -+ -+ mmcinfo.block_len = 1 << mmcinfo.csd.read_bl_len; -+ -+ mmc_dev.if_type = IF_TYPE_SD; -+ mmc_dev.part_type = PART_TYPE_DOS; -+ mmc_dev.dev = 0; -+ mmc_dev.lun = 0; -+ mmc_dev.type = 0; -+ mmc_dev.blksz = mmcinfo.block_len; -+ mmc_dev.lba = mmcinfo.block_num; -+ mmc_dev.removable = 0; -+ -+ printf("%s Detected: %lu blocks of %lu bytes\n", -+ sd2_0 == 1 ? "SDHC" : "SD", -+ mmc_dev.lba, -+ mmc_dev.blksz); -+ -+ /* Fix the clock rate */ -+ rate = mmc_tran_speed(mmcinfo.csd.tran_speed); -+ if (rate < MMC_CLOCK_SLOW) -+ rate = MMC_CLOCK_SLOW; -+ if ((mmcinfo.sd == 0) && (rate > MMC_CLOCK_FAST)) -+ rate = MMC_CLOCK_FAST; -+ if ((mmcinfo.sd) && (rate > SD_CLOCK_FAST)) -+ rate = SD_CLOCK_FAST; -+ -+ debug("%s: block_len=%d block_num=%d rate=%d\n", -+ __func__, mmcinfo.block_len, mmcinfo.block_num, rate); -+ -+ jz_mmc_set_clock(mmcinfo.sd, rate); -+} -+ -+/* -+ * State machine routines to initialize card(s) -+ */ -+ -+/* -+ CIM_SINGLE_CARD_ACQ (frequency at 400 kHz) -+ --- Must enter from GO_IDLE_STATE --- -+ 1. SD_SEND_OP_COND (SD Card) [CMD55] + [CMD41] -+ 2. SEND_OP_COND (Full Range) [CMD1] {optional} -+ 3. SEND_OP_COND (Set Range ) [CMD1] -+ If busy, delay and repeat step 2 -+ 4. ALL_SEND_CID [CMD2] -+ If timeout, set an error (no cards found) -+ 5. SET_RELATIVE_ADDR [CMD3] -+ 6. SEND_CSD [CMD9] -+ 7. SET_DSR [CMD4] Only call this if (csd.dsr_imp). -+ 8. Set clock frequency (check available in csd.tran_speed) -+ */ -+ -+#define MMC_INIT_DOING 0 -+#define MMC_INIT_PASSED 1 -+#define MMC_INIT_FAILED 2 -+ -+static int mmc_init_card_state(struct mmc_request *request) -+{ -+ struct mmc_response_r1 r1; -+ struct mmc_response_r3 r3; -+ int retval; -+ int ocr = 0x40300000; -+ int limit_41 = 0; -+ -+ switch (request->cmd) { -+ case MMC_CMD_GO_IDLE_STATE: /* No response to parse */ -+ if (mmcinfo.sd) -+ mmc_simple_cmd(request, 8, 0x1aa, RESPONSE_R1); -+ else -+ mmc_simple_cmd(request, MMC_CMD_SEND_OP_COND, MMC_OCR_ARG, RESPONSE_R3); -+ break; -+ -+ case 8: -+ retval = mmc_unpack_r1(request,&r1,mmcinfo.state); -+ mmc_simple_cmd(request, MMC_CMD_APP_CMD, 0, RESPONSE_R1); -+ break; -+ -+ case MMC_CMD_APP_CMD: -+ retval = mmc_unpack_r1(request,&r1,mmcinfo.state); -+ if (retval & (limit_41 < 100)) { -+ debug("%s: unable to MMC_APP_CMD error=%d (%s)\n", -+ __func__, retval, mmc_result_to_string(retval)); -+ limit_41++; -+ mmc_simple_cmd(request, SD_CMD_APP_SEND_OP_COND, ocr, RESPONSE_R3); -+ } else if (limit_41 < 100) { -+ limit_41++; -+ mmc_simple_cmd(request, SD_CMD_APP_SEND_OP_COND, ocr, RESPONSE_R3); -+ } else{ -+ /* reset the card to idle*/ -+ mmc_simple_cmd(request, MMC_CMD_GO_IDLE_STATE, 0, RESPONSE_NONE); -+ mmcinfo.sd = 0; -+ } -+ break; -+ -+ case SD_CMD_APP_SEND_OP_COND: -+ retval = mmc_unpack_r3(request, &r3); -+ if (retval) { -+ debug("%s: try MMC card\n", __func__); -+ mmc_simple_cmd(request, SD_CMD_APP_SEND_OP_COND, MMC_OCR_ARG, RESPONSE_R3); -+ break; -+ } -+ -+ debug("%s: read ocr value = 0x%08x\n", __func__, r3.ocr); -+ -+ if(!(r3.ocr & MMC_CARD_BUSY || ocr == 0)){ -+ udelay(50000); -+ mmc_simple_cmd(request, MMC_CMD_APP_CMD, 0, RESPONSE_R1); -+ } else { -+ mmcinfo.sd = 1; /* SD Card ready */ -+ mmcinfo.state = CARD_STATE_READY; -+ mmc_simple_cmd(request, MMC_CMD_ALL_SEND_CID, 0, RESPONSE_R2_CID); -+ } -+ break; -+ -+ case MMC_CMD_SEND_OP_COND: -+ retval = mmc_unpack_r3(request, &r3); -+ if (retval) { -+ debug("%s: failed SEND_OP_COND error=%d (%s)\n", -+ __func__, retval, mmc_result_to_string(retval)); -+ return MMC_INIT_FAILED; -+ } -+ -+ debug("%s: read ocr value = 0x%08x\n", __func__, r3.ocr); -+ if (!(r3.ocr & MMC_CARD_BUSY)) { -+ mmc_simple_cmd(request, MMC_CMD_SEND_OP_COND, MMC_OCR_ARG, RESPONSE_R3); -+ } else { -+ mmcinfo.sd = 0; /* MMC Card ready */ -+ mmcinfo.state = CARD_STATE_READY; -+ mmc_simple_cmd(request, MMC_CMD_ALL_SEND_CID, 0, RESPONSE_R2_CID); -+ } -+ break; -+ -+ case MMC_CMD_ALL_SEND_CID: -+ retval = mmc_unpack_cid( request, &mmcinfo.cid ); -+ /*FIXME:ignore CRC error for CMD2/CMD9/CMD10 */ -+ if ( retval && (retval != MMC_ERROR_CRC)) { -+ debug("mmc_init_card_state: unable to ALL_SEND_CID error=%d (%s)\n", -+ retval, mmc_result_to_string(retval)); -+ return MMC_INIT_FAILED; -+ } -+ mmcinfo.state = CARD_STATE_IDENT; -+ if(mmcinfo.sd) -+ mmc_simple_cmd(request, MMC_CMD_SET_RELATIVE_ADDR, 0, RESPONSE_R6); -+ else -+ mmc_simple_cmd(request, MMC_CMD_SET_RELATIVE_ADDR, ID_TO_RCA(mmcinfo.id) << 16, RESPONSE_R1); -+ break; -+ -+ case MMC_CMD_SET_RELATIVE_ADDR: -+ if (mmcinfo.sd) { -+ retval = mmc_unpack_r6(request, &r1, mmcinfo.state, &mmcinfo.rca); -+ mmcinfo.rca = mmcinfo.rca << 16; -+ debug("%s: Get RCA from SD: 0x%04x Status: %x\n", -+ __func__, mmcinfo.rca, r1.status); -+ } else { -+ retval = mmc_unpack_r1(request,&r1,mmcinfo.state); -+ mmcinfo.rca = ID_TO_RCA(mmcinfo.id) << 16; -+ } -+ if (retval) { -+ debug("%s: unable to SET_RELATIVE_ADDR error=%d (%s)\n", -+ __func__, retval, mmc_result_to_string(retval)); -+ return MMC_INIT_FAILED; -+ } -+ -+ mmcinfo.state = CARD_STATE_STBY; -+ mmc_simple_cmd(request, MMC_CMD_SEND_CSD, mmcinfo.rca, RESPONSE_R2_CSD); -+ -+ break; -+ -+ case MMC_CMD_SEND_CSD: -+ retval = mmc_unpack_csd(request, &mmcinfo.csd); -+ mmc_ready = 1; -+ /*FIXME:ignore CRC error for CMD2/CMD9/CMD10 */ -+ if (retval && (retval != MMC_ERROR_CRC)) { -+ debug("%s: unable to SEND_CSD error=%d (%s)\n", -+ __func__, retval, mmc_result_to_string(retval)); -+ return MMC_INIT_FAILED; -+ } -+ if (mmcinfo.csd.dsr_imp) { -+ debug("%s: driver doesn't support setting DSR\n", __func__); -+ } -+ mmc_configure_card(); -+ return MMC_INIT_PASSED; -+ -+ default: -+ debug("%s: error! Illegal last cmd %d\n", __func__, request->cmd); -+ return MMC_INIT_FAILED; -+ } -+ -+ return MMC_INIT_DOING; -+} -+ -+int mmc_init_card(void) -+{ -+ struct mmc_request request; -+ int retval; -+ -+ mmc_simple_cmd(&request, MMC_CIM_RESET, 0, RESPONSE_NONE); /* reset card */ -+ mmc_simple_cmd(&request, MMC_CMD_GO_IDLE_STATE, 0, RESPONSE_NONE); -+ mmcinfo.sd = 1; /* assuming a SD card */ -+ -+ while ((retval = mmc_init_card_state(&request)) == MMC_INIT_DOING) -+ ; -+ -+ if (retval == MMC_INIT_PASSED) -+ return MMC_NO_ERROR; -+ else -+ return MMC_NO_RESPONSE; -+} -+ -+int mmc_legacy_init(int verbose) -+{ -+ if (!__msc_card_detected()) -+ return 1; -+ -+ /* Step-1: init GPIO */ -+ __gpio_as_msc(); -+ __msc_init_io(); -+ -+ /* Step-2: turn on power of card */ -+#if !defined(CONFIG_SAKC) -+ __msc_enable_power(); -+#endif -+ -+ /* Step-3: Reset MSC Controller. */ -+ __msc_reset(); -+ -+ /* Step-3: mask all IRQs. */ -+ MMC_IRQ_MASK(); -+ -+ /* Step-4: stop MMC/SD clock */ -+ jz_mmc_stop_clock(); -+ mmc_init_card(); -+ mmc_select_card(); -+ -+ mmc_dev.block_read = mmc_bread; -+ fat_register_device(&mmc_dev,1); /* partitions start counting with 1 */ -+ -+ return 0; -+} -+ -+/* -+ * Debugging functions -+ */ -+static char * mmc_result_strings[] = { -+ "NO_RESPONSE", -+ "NO_ERROR", -+ "ERROR_OUT_OF_RANGE", -+ "ERROR_ADDRESS", -+ "ERROR_BLOCK_LEN", -+ "ERROR_ERASE_SEQ", -+ "ERROR_ERASE_PARAM", -+ "ERROR_WP_VIOLATION", -+ "ERROR_CARD_IS_LOCKED", -+ "ERROR_LOCK_UNLOCK_FAILED", -+ "ERROR_COM_CRC", -+ "ERROR_ILLEGAL_COMMAND", -+ "ERROR_CARD_ECC_FAILED", -+ "ERROR_CC", -+ "ERROR_GENERAL", -+ "ERROR_UNDERRUN", -+ "ERROR_OVERRUN", -+ "ERROR_CID_CSD_OVERWRITE", -+ "ERROR_STATE_MISMATCH", -+ "ERROR_HEADER_MISMATCH", -+ "ERROR_TIMEOUT", -+ "ERROR_CRC", -+ "ERROR_DRIVER_FAILURE", -+}; -+ -+char * mmc_result_to_string(int i) -+{ -+ return mmc_result_strings[i+1]; -+} -+ -+static char * card_state_strings[] = { -+ "empty", -+ "idle", -+ "ready", -+ "ident", -+ "stby", -+ "tran", -+ "data", -+ "rcv", -+ "prg", -+ "dis", -+}; -+ -+static inline char * card_state_to_string(int i) -+{ -+ return card_state_strings[i+1]; -+} -+ -+/* -+ * Utility functions -+ */ -+ -+#define PARSE_U32(_buf,_index) \ -+ (((u32)_buf[_index]) << 24) | (((u32)_buf[_index+1]) << 16) | \ -+ (((u32)_buf[_index+2]) << 8) | ((u32)_buf[_index+3]); -+ -+#define PARSE_U16(_buf,_index) \ -+ (((u16)_buf[_index]) << 8) | ((u16)_buf[_index+1]); -+ -+int mmc_unpack_csd(struct mmc_request *request, struct mmc_csd *csd) -+{ -+ u8 *buf = request->response; -+ int num = 0; -+ -+ if (request->result) -+ return request->result; -+ -+ if (buf[0] != 0x3f) -+ return MMC_ERROR_HEADER_MISMATCH; -+ -+ csd->csd_structure = (buf[1] & 0xc0) >> 6; -+ if (csd->csd_structure) -+ sd2_0 = 1; -+ else -+ sd2_0 = 0; -+ -+ switch (csd->csd_structure) { -+ case 0 :/* Version 1.01-1.10 -+ * Version 2.00/Standard Capacity */ -+ csd->taac = buf[2]; -+ csd->nsac = buf[3]; -+ csd->tran_speed = buf[4]; -+ csd->ccc = (((u16)buf[5]) << 4) | ((buf[6] & 0xf0) >> 4); -+ csd->read_bl_len = buf[6] & 0x0f; -+ /* for support 2GB card*/ -+ if (csd->read_bl_len >= 10) -+ { -+ num = csd->read_bl_len - 9; -+ csd->read_bl_len = 9; -+ } -+ -+ csd->read_bl_partial = (buf[7] & 0x80) ? 1 : 0; -+ csd->write_blk_misalign = (buf[7] & 0x40) ? 1 : 0; -+ csd->read_blk_misalign = (buf[7] & 0x20) ? 1 : 0; -+ csd->dsr_imp = (buf[7] & 0x10) ? 1 : 0; -+ csd->c_size = ((((u16)buf[7]) & 0x03) << 10) | (((u16)buf[8]) << 2) | (((u16)buf[9]) & 0xc0) >> 6; -+ -+ if (num) -+ csd->c_size = csd->c_size << num; -+ -+ -+ csd->vdd_r_curr_min = (buf[9] & 0x38) >> 3; -+ csd->vdd_r_curr_max = buf[9] & 0x07; -+ csd->vdd_w_curr_min = (buf[10] & 0xe0) >> 5; -+ csd->vdd_w_curr_max = (buf[10] & 0x1c) >> 2; -+ csd->c_size_mult = ((buf[10] & 0x03) << 1) | ((buf[11] & 0x80) >> 7); -+ csd->sector_size = (buf[11] & 0x7c) >> 2; -+ csd->erase_grp_size = ((buf[11] & 0x03) << 3) | ((buf[12] & 0xe0) >> 5); -+ csd->wp_grp_size = buf[12] & 0x1f; -+ csd->wp_grp_enable = (buf[13] & 0x80) ? 1 : 0; -+ csd->default_ecc = (buf[13] & 0x60) >> 5; -+ csd->r2w_factor = (buf[13] & 0x1c) >> 2; -+ csd->write_bl_len = ((buf[13] & 0x03) << 2) | ((buf[14] & 0xc0) >> 6); -+ if (csd->write_bl_len >= 10) -+ csd->write_bl_len = 9; -+ -+ csd->write_bl_partial = (buf[14] & 0x20) ? 1 : 0; -+ csd->file_format_grp = (buf[15] & 0x80) ? 1 : 0; -+ csd->copy = (buf[15] & 0x40) ? 1 : 0; -+ csd->perm_write_protect = (buf[15] & 0x20) ? 1 : 0; -+ csd->tmp_write_protect = (buf[15] & 0x10) ? 1 : 0; -+ csd->file_format = (buf[15] & 0x0c) >> 2; -+ csd->ecc = buf[15] & 0x03; -+ break; -+ case 1 : /* Version 2.00/High Capacity */ -+ csd->taac = 0; -+ csd->nsac = 0; -+ csd->tran_speed = buf[4]; -+ csd->ccc = (((u16)buf[5]) << 4) | ((buf[6] & 0xf0) >> 4); -+ -+ csd->read_bl_len = 9; -+ csd->read_bl_partial = 0; -+ csd->write_blk_misalign = 0; -+ csd->read_blk_misalign = 0; -+ csd->dsr_imp = (buf[7] & 0x10) ? 1 : 0; -+ csd->c_size = ((((u16)buf[8]) & 0x3f) << 16) | (((u16)buf[9]) << 8) | ((u16)buf[10]) ; -+ csd->sector_size = 0x7f; -+ csd->erase_grp_size = 0; -+ csd->wp_grp_size = 0; -+ csd->wp_grp_enable = 0; -+ csd->default_ecc = (buf[13] & 0x60) >> 5; -+ csd->r2w_factor = 4;/* Unused */ -+ csd->write_bl_len = 9; -+ -+ csd->write_bl_partial = 0; -+ csd->file_format_grp = 0; -+ csd->copy = (buf[15] & 0x40) ? 1 : 0; -+ csd->perm_write_protect = (buf[15] & 0x20) ? 1 : 0; -+ csd->tmp_write_protect = (buf[15] & 0x10) ? 1 : 0; -+ csd->file_format = 0; -+ csd->ecc = buf[15] & 0x03; -+ } -+ -+ return 0; -+} -+ -+int mmc_unpack_r1(struct mmc_request *request, struct mmc_response_r1 *r1, enum card_state state) -+{ -+ u8 *buf = request->response; -+ -+ if (request->result) -+ return request->result; -+ -+ r1->cmd = buf[0]; -+ r1->status = PARSE_U32(buf,1); -+ -+ debug("mmc_unpack_r1: cmd=%d status=%08x\n", r1->cmd, r1->status); -+ -+ if (R1_STATUS(r1->status)) { -+ if (r1->status & R1_OUT_OF_RANGE) return MMC_ERROR_OUT_OF_RANGE; -+ if (r1->status & R1_ADDRESS_ERROR) return MMC_ERROR_ADDRESS; -+ if (r1->status & R1_BLOCK_LEN_ERROR) return MMC_ERROR_BLOCK_LEN; -+ if (r1->status & R1_ERASE_SEQ_ERROR) return MMC_ERROR_ERASE_SEQ; -+ if (r1->status & R1_ERASE_PARAM) return MMC_ERROR_ERASE_PARAM; -+ if (r1->status & R1_WP_VIOLATION) return MMC_ERROR_WP_VIOLATION; -+ /*if (r1->status & R1_CARD_IS_LOCKED) return MMC_ERROR_CARD_IS_LOCKED; */ -+ if (r1->status & R1_LOCK_UNLOCK_FAILED) return MMC_ERROR_LOCK_UNLOCK_FAILED; -+ if (r1->status & R1_COM_CRC_ERROR) return MMC_ERROR_COM_CRC; -+ if (r1->status & R1_ILLEGAL_COMMAND) return MMC_ERROR_ILLEGAL_COMMAND; -+ if (r1->status & R1_CARD_ECC_FAILED) return MMC_ERROR_CARD_ECC_FAILED; -+ if (r1->status & R1_CC_ERROR) return MMC_ERROR_CC; -+ if (r1->status & R1_ERROR) return MMC_ERROR_GENERAL; -+ if (r1->status & R1_UNDERRUN) return MMC_ERROR_UNDERRUN; -+ if (r1->status & R1_OVERRUN) return MMC_ERROR_OVERRUN; -+ if (r1->status & R1_CID_CSD_OVERWRITE) return MMC_ERROR_CID_CSD_OVERWRITE; -+ } -+ -+ if (buf[0] != request->cmd) -+ return MMC_ERROR_HEADER_MISMATCH; -+ -+ /* This should be last - it's the least dangerous error */ -+ -+ return 0; -+} -+ -+int mmc_unpack_scr(struct mmc_request *request, struct mmc_response_r1 *r1, enum card_state state, u32 *scr) -+{ -+ u8 *buf = request->response; -+ if (request->result) -+ return request->result; -+ -+ *scr = PARSE_U32(buf, 5); /* Save SCR returned by the SD Card */ -+ return mmc_unpack_r1(request, r1, state); -+ -+} -+ -+int mmc_unpack_r6(struct mmc_request *request, struct mmc_response_r1 *r1, enum card_state state, int *rca) -+{ -+ u8 *buf = request->response; -+ -+ if (request->result) -+ return request->result; -+ -+ *rca = PARSE_U16(buf,1); /* Save RCA returned by the SD Card */ -+ -+ *(buf+1) = 0; -+ *(buf+2) = 0; -+ -+ return mmc_unpack_r1(request, r1, state); -+} -+ -+int mmc_unpack_cid(struct mmc_request *request, struct mmc_cid *cid) -+{ -+ int i; -+ u8 *buf = request->response; -+ -+ if (request->result) -+ return request->result; -+ -+ cid->mid = buf[1]; -+ cid->oid = PARSE_U16(buf,2); -+ for (i = 0 ; i < 5 ; i++) -+ cid->pnm[i] = buf[4+i]; -+ cid->pnm[6] = 0; -+ cid->prv = buf[10]; -+ cid->psn = PARSE_U32(buf,10); -+ cid->mdt = buf[15]; -+ -+ printf("Man %02x OEM 0x%04x \"%s\" %d.%d 0x%08x " -+ "Date %02u/%04u\n", -+ cid->mid, -+ cid->oid, -+ cid->pnm, -+ cid->prv >> 4, -+ cid->prv & 0xf, -+ cid->psn, -+ cid->mdt & 0xf, -+ (cid->mdt >> 4) + 2000); -+ -+ if (buf[0] != 0x3f) -+ return MMC_ERROR_HEADER_MISMATCH; -+ return 0; -+} -+ -+int mmc_unpack_r3(struct mmc_request *request, struct mmc_response_r3 *r3) -+{ -+ u8 *buf = request->response; -+ -+ if (request->result) -+ return request->result; -+ -+ r3->ocr = PARSE_U32(buf,1); -+ debug("mmc_unpack_r3: ocr=%08x\n", r3->ocr); -+ -+ if (buf[0] != 0x3f) return MMC_ERROR_HEADER_MISMATCH; -+ return 0; -+} -+ -+#define KBPS 1 -+#define MBPS 1000 -+ -+static u32 ts_exp[] = { 100*KBPS, 1*MBPS, 10*MBPS, 100*MBPS, 0, 0, 0, 0 }; -+static u32 ts_mul[] = { 0, 1000, 1200, 1300, 1500, 2000, 2500, 3000, -+ 3500, 4000, 4500, 5000, 5500, 6000, 7000, 8000 }; -+ -+u32 mmc_tran_speed(u8 ts) -+{ -+ u32 rate = ts_exp[(ts & 0x7)] * ts_mul[(ts & 0x78) >> 3]; -+ -+ if (rate <= 0) { -+ debug("%s: error - unrecognized speed 0x%02x\n", __func__, ts); -+ return 1; -+ } -+ -+ return rate; -+} -+ -+void mmc_send_cmd(struct mmc_request *request, int cmd, u32 arg, -+ u16 nob, u16 block_len, enum mmc_rsp_t rtype, u8 *buffer) -+{ -+ request->cmd = cmd; -+ request->arg = arg; -+ request->rtype = rtype; -+ request->nob = nob; -+ request->block_len = block_len; -+ request->buffer = buffer; -+ request->cnt = nob * block_len; -+ -+ jz_mmc_exec_cmd(request); -+} -diff --git a/drivers/mmc/jz_mmc.h b/drivers/mmc/jz_mmc.h -new file mode 100644 -index 0000000..936c514 ---- /dev/null -+++ b/drivers/mmc/jz_mmc.h -@@ -0,0 +1,176 @@ -+/* -+ * linux/drivers/mmc/jz_mmc.h -+ * -+ * Author: Vladimir Shebordaev, Igor Oblakov -+ * Copyright: MontaVista Software Inc. -+ * -+ * $Id: jz_mmc.h,v 1.3 2007-06-15 08:04:20 jlwei Exp $ -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+#ifndef __MMC_JZMMC_H__ -+#define __MMC_JZMMC_H__ -+ -+#define ID_TO_RCA(x) ((x)+1) -+#define MMC_OCR_ARG 0x00ff8000 /* Argument of OCR */ -+ -+/* Standard MMC/SD clock speeds */ -+#define MMC_CLOCK_SLOW 400000 /* 400 kHz for initial setup */ -+#define MMC_CLOCK_FAST 20000000 /* 20 MHz for maximum for normal operation */ -+#define SD_CLOCK_FAST 24000000 /* 24 MHz for SD Cards */ -+ -+/* Use negative numbers to disambiguate */ -+#define MMC_CIM_RESET -1 -+#define SET_BUS_WIDTH 6 /* ac [1:0] bus width R1 */ -+ -+#define R1_OUT_OF_RANGE (1 << 31) /* er, c */ -+#define R1_ADDRESS_ERROR (1 << 30) /* erx, c */ -+#define R1_BLOCK_LEN_ERROR (1 << 29) /* er, c */ -+#define R1_ERASE_SEQ_ERROR (1 << 28) /* er, c */ -+#define R1_ERASE_PARAM (1 << 27) /* ex, c */ -+#define R1_WP_VIOLATION (1 << 26) /* erx, c */ -+#define R1_CARD_IS_LOCKED (1 << 25) /* sx, a */ -+#define R1_LOCK_UNLOCK_FAILED (1 << 24) /* erx, c */ -+#define R1_COM_CRC_ERROR (1 << 23) /* er, b */ -+#define R1_ILLEGAL_COMMAND (1 << 22) /* er, b */ -+#define R1_CARD_ECC_FAILED (1 << 21) /* ex, c */ -+#define R1_CC_ERROR (1 << 20) /* erx, c */ -+#define R1_ERROR (1 << 19) /* erx, c */ -+#define R1_UNDERRUN (1 << 18) /* ex, c */ -+#define R1_OVERRUN (1 << 17) /* ex, c */ -+#define R1_CID_CSD_OVERWRITE (1 << 16) /* erx, c, CID/CSD overwrite */ -+#define R1_WP_ERASE_SKIP (1 << 15) /* sx, c */ -+#define R1_CARD_ECC_DISABLED (1 << 14) /* sx, a */ -+#define R1_ERASE_RESET (1 << 13) /* sr, c */ -+#define R1_STATUS(x) (x & 0xFFFFE000) -+ -+#define MMC_CARD_BUSY 0x80000000 /* Card Power up status bit */ -+ -+#define MMC_PROGRAM_CID 26 /* adtc R1 */ -+#define MMC_PROGRAM_CSD 27 /* adtc R1 */ -+ -+#define MMC_GO_IRQ_STATE 40 /* bcr R5 */ -+#define MMC_GEN_CMD 56 /* adtc [0] RD/WR R1b */ -+#define MMC_LOCK_UNLOCK 42 /* adtc R1b */ -+#define MMC_WRITE_DAT_UNTIL_STOP 20 /* adtc [31:0] data addr R1 */ -+#define MMC_READ_DAT_UNTIL_STOP 11 /* adtc [31:0] dadr R1 */ -+#define MMC_SEND_WRITE_PROT 30 /* adtc [31:0] wpdata addr R1 */ -+ -+ -+enum mmc_result_t { -+ MMC_NO_RESPONSE = -1, -+ MMC_NO_ERROR = 0, -+ MMC_ERROR_OUT_OF_RANGE, -+ MMC_ERROR_ADDRESS, -+ MMC_ERROR_BLOCK_LEN, -+ MMC_ERROR_ERASE_SEQ, -+ MMC_ERROR_ERASE_PARAM, -+ MMC_ERROR_WP_VIOLATION, -+ MMC_ERROR_CARD_IS_LOCKED, -+ MMC_ERROR_LOCK_UNLOCK_FAILED, -+ MMC_ERROR_COM_CRC, -+ MMC_ERROR_ILLEGAL_COMMAND, -+ MMC_ERROR_CARD_ECC_FAILED, -+ MMC_ERROR_CC, -+ MMC_ERROR_GENERAL, -+ MMC_ERROR_UNDERRUN, -+ MMC_ERROR_OVERRUN, -+ MMC_ERROR_CID_CSD_OVERWRITE, -+ MMC_ERROR_STATE_MISMATCH, -+ MMC_ERROR_HEADER_MISMATCH, -+ MMC_ERROR_TIMEOUT, -+ MMC_ERROR_CRC, -+ MMC_ERROR_DRIVER_FAILURE, -+}; -+ -+enum card_state { -+ CARD_STATE_EMPTY = -1, -+ CARD_STATE_IDLE = 0, -+ CARD_STATE_READY = 1, -+ CARD_STATE_IDENT = 2, -+ CARD_STATE_STBY = 3, -+ CARD_STATE_TRAN = 4, -+ CARD_STATE_DATA = 5, -+ CARD_STATE_RCV = 6, -+ CARD_STATE_PRG = 7, -+ CARD_STATE_DIS = 8, -+}; -+ -+enum mmc_rsp_t { -+ RESPONSE_NONE = 0, -+ RESPONSE_R1 = 1, -+ RESPONSE_R1B = 2, -+ RESPONSE_R2_CID = 3, -+ RESPONSE_R2_CSD = 4, -+ RESPONSE_R3 = 5, -+ RESPONSE_R4 = 6, -+ RESPONSE_R5 = 7, -+ RESPONSE_R6 = 8, -+}; -+ -+struct mmc_response_r1 { -+ u8 cmd; -+ u32 status; -+}; -+ -+struct mmc_response_r3 { -+ u32 ocr; -+}; -+ -+/* the information structure of MMC/SD Card */ -+struct mmc_info { -+ int id; /* Card index */ -+ int sd; /* MMC or SD card */ -+ int rca; /* RCA */ -+ u32 scr; /* SCR 63:32*/ -+ int flags; /* Ejected, inserted */ -+ enum card_state state; /* empty, ident, ready, whatever */ -+ -+ /* Card specific information */ -+ struct mmc_cid cid; -+ struct mmc_csd csd; -+ u32 block_num; -+ u32 block_len; -+ u32 erase_unit; -+}; -+ -+struct mmc_info mmcinfo; -+ -+struct mmc_request { -+ int index; /* Slot index - used for CS lines */ -+ int cmd; /* Command to send */ -+ u32 arg; /* Argument to send */ -+ enum mmc_rsp_t rtype; /* Response type expected */ -+ -+ /* Data transfer (these may be modified at the low level) */ -+ u16 nob; /* Number of blocks to transfer*/ -+ u16 block_len; /* Block length */ -+ u8 *buffer; /* Data buffer */ -+ u32 cnt; /* Data length, for PIO */ -+ -+ /* Results */ -+ u8 response[18]; /* Buffer to store response - CRC is optional */ -+ enum mmc_result_t result; -+}; -+ -+char * mmc_result_to_string(int); -+int mmc_unpack_csd(struct mmc_request *request, struct mmc_csd *csd); -+int mmc_unpack_r1(struct mmc_request *request, struct mmc_response_r1 *r1, enum card_state state); -+int mmc_unpack_r6(struct mmc_request *request, struct mmc_response_r1 *r1, enum card_state state, int *rca); -+int mmc_unpack_scr(struct mmc_request *request, struct mmc_response_r1 *r1, enum card_state state, u32 *scr); -+int mmc_unpack_cid(struct mmc_request *request, struct mmc_cid *cid); -+int mmc_unpack_r3(struct mmc_request *request, struct mmc_response_r3 *r3); -+ -+void mmc_send_cmd(struct mmc_request *request, int cmd, u32 arg, -+ u16 nob, u16 block_len, enum mmc_rsp_t rtype, u8 *buffer); -+u32 mmc_tran_speed(u8 ts); -+void jz_mmc_set_clock(int sd, u32 rate); -+ -+static inline void mmc_simple_cmd(struct mmc_request *request, int cmd, u32 arg, enum mmc_rsp_t rtype) -+{ -+ mmc_send_cmd( request, cmd, arg, 0, 0, rtype, 0); -+} -+ -+#endif /* __MMC_JZMMC_H__ */ -diff --git a/include/configs/qi_lb60.h b/include/configs/qi_lb60.h -index 7bff444..7b33be0 100644 ---- a/include/configs/qi_lb60.h -+++ b/include/configs/qi_lb60.h -@@ -31,6 +31,15 @@ - /* - * Miscellaneous configurable options - */ -+#define CONFIG_JZ4740_MMC -+#define CONFIG_MMC 1 -+#define CONFIG_FAT 1 -+#define CONFIG_DOS_PARTITION 1 -+#define CONFIG_CMD_MMC -+#define CONFIG_CMD_FAT -+#define CONFIG_CMD_EXT2 -+ -+ - #define CONFIG_SYS_SDRAM_BASE 0x80000000 /* Cached addr */ - #define CONFIG_SYS_INIT_SP_OFFSET 0x400000 - #define CONFIG_SYS_LOAD_ADDR 0x80600000 -diff --git a/include/mmc.h b/include/mmc.h -index a13e2bd..3c4761c 100644 ---- a/include/mmc.h -+++ b/include/mmc.h -@@ -283,4 +283,44 @@ struct mmc *mmc_spi_init(uint bus, uint cs, uint speed, uint mode); - int mmc_legacy_init(int verbose); - #endif - -+struct mmc_csd -+{ -+ u8 csd_structure:2, -+ spec_vers:4, -+ rsvd1:2; -+ u8 taac; -+ u8 nsac; -+ u8 tran_speed; -+ u16 ccc:12, -+ read_bl_len:4; -+ u32 c_size:22; -+ u64 read_bl_partial:1, -+ write_blk_misalign:1, -+ read_blk_misalign:1, -+ dsr_imp:1, -+ rsvd2:2, -+ vdd_r_curr_min:3, -+ vdd_r_curr_max:3, -+ vdd_w_curr_min:3, -+ vdd_w_curr_max:3, -+ c_size_mult:3, -+ sector_size:5, -+ erase_grp_size:5, -+ wp_grp_size:5, -+ wp_grp_enable:1, -+ default_ecc:2, -+ r2w_factor:3, -+ write_bl_len:4, -+ write_bl_partial:1, -+ rsvd3:5; -+ u8 file_format_grp:1, -+ copy:1, -+ perm_write_protect:1, -+ tmp_write_protect:1, -+ file_format:2, -+ ecc:2; -+ u8 crc:7; -+ u8 one:1; -+}; -+ - #endif /* _MMC_H_ */ --- -1.7.9.5 - diff --git a/package/boot/uboot-xburst/patches/0004-add-more-boot-options-F1-F2-F3-F4-M-S.patch b/package/boot/uboot-xburst/patches/0004-add-more-boot-options-F1-F2-F3-F4-M-S.patch deleted file mode 100644 index 73e03243c3..0000000000 --- a/package/boot/uboot-xburst/patches/0004-add-more-boot-options-F1-F2-F3-F4-M-S.patch +++ /dev/null @@ -1,200 +0,0 @@ -From c52b6168979d03fc31205444c3278c537787472a Mon Sep 17 00:00:00 2001 -From: Xiangfu -Date: Wed, 10 Oct 2012 18:39:55 +0800 -Subject: [PATCH 4/6] add more boot options(F1/F2/F3/F4/M/S) - ---- - arch/mips/include/asm/global_data.h | 3 +++ - arch/mips/lib/bootm.c | 17 ++++++++++++++++- - board/qi/qi_lb60/qi_lb60.c | 26 +++++++++++++++++++++++--- - common/main.c | 21 +++++++++++++++++++-- - include/configs/qi_lb60.h | 32 ++++++++++++++++++++++++++++++++ - 5 files changed, 93 insertions(+), 6 deletions(-) - -diff --git a/arch/mips/include/asm/global_data.h b/arch/mips/include/asm/global_data.h -index 6e2cdc7..cd03d7e 100644 ---- a/arch/mips/include/asm/global_data.h -+++ b/arch/mips/include/asm/global_data.h -@@ -59,6 +59,9 @@ typedef struct global_data { - unsigned long env_valid; /* Checksum of Environment valid? */ - void **jt; /* jump table */ - char env_buf[32]; /* buffer for getenv() before reloc. */ -+#if defined(CONFIG_NANONOTE) -+ unsigned long boot_option; -+#endif - } gd_t; - - #include -diff --git a/arch/mips/lib/bootm.c b/arch/mips/lib/bootm.c -index 608c1a7..e00416b 100644 ---- a/arch/mips/lib/bootm.c -+++ b/arch/mips/lib/bootm.c -@@ -47,10 +47,25 @@ int do_bootm_linux(int flag, int argc, char * const argv[], - bootm_headers_t *images) - { - void (*theKernel) (int, char **, char **, int *); -- char *commandline = getenv("bootargs"); -+ char *commandline; - char env_buf[12]; - char *cp; - -+#if defined(CONFIG_NANONOTE) -+ if (gd->boot_option & BOOT_FROM_MEMCARD) -+ commandline = getenv ("bootargsfromsd"); -+ else if (gd->boot_option & BOOT_WITH_F1) -+ commandline = getenv ("bootargsf1"); -+ else if (gd->boot_option & BOOT_WITH_F2) -+ commandline = getenv ("bootargsf2"); -+ else if (gd->boot_option & BOOT_WITH_F3) -+ commandline = getenv ("bootargsf3"); -+ else if (gd->boot_option & BOOT_WITH_F4) -+ commandline = getenv ("bootargsf4"); -+ else -+#endif -+ commandline = getenv ("bootargs"); -+ - if ((flag != 0) && (flag != BOOTM_STATE_OS_GO)) - return 1; - -diff --git a/board/qi/qi_lb60/qi_lb60.c b/board/qi/qi_lb60/qi_lb60.c -index a2ba648..d622219 100644 ---- a/board/qi/qi_lb60/qi_lb60.c -+++ b/board/qi/qi_lb60/qi_lb60.c -@@ -15,7 +15,7 @@ DECLARE_GLOBAL_DATA_PTR; - - static void gpio_init(void) - { -- unsigned int i; -+ unsigned int i, j; - - /* Initialize NAND Flash Pins */ - __gpio_as_nand(); -@@ -42,14 +42,34 @@ static void gpio_init(void) - - if (__gpio_get_pin(GPIO_KEYIN_BASE + 2) == 0){ - printf("[S] pressed, enable UART0\n"); -+ gd->boot_option |= BOOT_WITH_ENABLE_UART; - __gpio_as_uart0(); - } else { - __gpio_as_input(GPIO_KEYIN_8); - __gpio_enable_pull(GPIO_KEYIN_8); - } - -- /* enable the TP4, TP5 as UART0 */ -- __gpio_jtag_to_uart0(); -+ if (__gpio_get_pin(GPIO_KEYIN_BASE + 3) == 0) { -+ printf("[M] pressed, boot from memory card\n"); -+ gd->boot_option |= BOOT_FROM_MEMCARD; -+ __gpio_jtag_to_uart0(); -+ } -+ -+ for (j = 0; j < 4; j++) { -+ for (i = 0; i < 4; i++) -+ __gpio_set_pin(GPIO_KEYOUT_BASE + i); -+ -+ __gpio_clear_pin(GPIO_KEYOUT_BASE + j); -+ -+ if (__gpio_get_pin(GPIO_KEYIN_BASE) == 0) { -+ printf("[F%d] pressed", (j + 1)); -+ gd->boot_option |= (1 << (j + 2)); -+ /* BOOT_WITH_F1 (1 << 2) */ -+ /* BOOT_WITH_F2 (1 << 3) */ -+ /* BOOT_WITH_F3 (1 << 4) */ -+ /* BOOT_WITH_F4 (1 << 5) */ -+ } -+ } - - __gpio_as_output(GPIO_AUDIO_POP); - __gpio_set_pin(GPIO_AUDIO_POP); -diff --git a/common/main.c b/common/main.c -index 9507cec..dbfb7ca 100644 ---- a/common/main.c -+++ b/common/main.c -@@ -355,7 +355,11 @@ void main_loop (void) - #if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0) - s = getenv ("bootdelay"); - bootdelay = s ? (int)simple_strtol(s, NULL, 10) : CONFIG_BOOTDELAY; -- -+#if defined(CONFIG_NANONOTE) -+ DECLARE_GLOBAL_DATA_PTR; -+ if (gd->boot_option & BOOT_WITH_ENABLE_UART) -+ bootdelay = 3; -+# endif - debug ("### main_loop entered: bootdelay=%d\n\n", bootdelay); - - #if defined(CONFIG_MENU_SHOW) -@@ -379,7 +383,20 @@ void main_loop (void) - } - else - #endif /* CONFIG_BOOTCOUNT_LIMIT */ -- s = getenv ("bootcmd"); -+#if defined(CONFIG_NANONOTE) -+ if (gd->boot_option & BOOT_FROM_MEMCARD) -+ s = getenv ("bootcmdfromsd"); -+ else if (gd->boot_option & BOOT_WITH_F1) -+ s = getenv ("bootcmdf1"); -+ else if (gd->boot_option & BOOT_WITH_F2) -+ s = getenv ("bootcmdf2"); -+ else if (gd->boot_option & BOOT_WITH_F3) -+ s = getenv ("bootcmdf3"); -+ else if (gd->boot_option & BOOT_WITH_F4) -+ s = getenv ("bootcmdf4"); -+ else -+#endif -+ s = getenv ("bootcmd"); - - debug ("### main_loop: bootcmd=\"%s\"\n", s ? s : ""); - -diff --git a/include/configs/qi_lb60.h b/include/configs/qi_lb60.h -index 7b33be0..52b370c 100644 ---- a/include/configs/qi_lb60.h -+++ b/include/configs/qi_lb60.h -@@ -31,6 +31,7 @@ - /* - * Miscellaneous configurable options - */ -+#define CONFIG_NANONOTE - #define CONFIG_JZ4740_MMC - #define CONFIG_MMC 1 - #define CONFIG_FAT 1 -@@ -39,6 +40,37 @@ - #define CONFIG_CMD_FAT - #define CONFIG_CMD_EXT2 - -+#define CONFIG_CMD_UBIFS -+#define CONFIG_CMD_UBI -+#define CONFIG_MTD_PARTITIONS -+#define CONFIG_MTD_DEVICE -+#define CONFIG_CMD_MTDPARTS -+#define CONFIG_CMD_UBI -+#define CONFIG_CMD_UBIFS -+#define CONFIG_LZO -+#define CONFIG_RBTREE -+ -+#define MTDIDS_DEFAULT "nand0=jz4740-nand" -+#define MTDPARTS_DEFAULT "mtdparts=jz4740-nand:4M@0(uboot)ro,4M@4M(kernel)ro,512M@8M(rootfs)ro,-(data)ro" -+ -+#define BOOT_FROM_MEMCARD 1 -+#define BOOT_WITH_ENABLE_UART (1 << 1) /* Vaule for global_data.h gd->boot_option */ -+#define BOOT_WITH_F1 (1 << 2) -+#define BOOT_WITH_F2 (1 << 3) -+#define BOOT_WITH_F3 (1 << 4) -+#define BOOT_WITH_F4 (1 << 5) -+ -+#define CONFIG_EXTRA_ENV_SETTINGS \ -+ "bootcmdfromsd=mmc init; ext2load mmc 0 0x80600000 /boot/uImage; bootm;\0" \ -+ "bootargsfromsd=mem=32M console=tty0 console=ttyS0,57600n8 rootfstype=ext2 root=/dev/mmcblk0p1 rw rootwait\0" \ -+ "bootcmdf1=mmc init; ext2load mmc 0:1 0x80600000 /boot/uImage; bootm;\0" \ -+ "bootargsf1=mem=32M console=tty0 console=ttyS0,57600n8 rootfstype=ext2 root=/dev/mmcblk0p1 rw rootwait\0" \ -+ "bootcmdf2=mmc init; ext2load mmc 0:2 0x80600000 /boot/uImage; bootm;\0" \ -+ "bootargsf2=mem=32M console=tty0 console=ttyS0,57600n8 rootfstype=ext2 root=/dev/mmcblk0p2 rw rootwait\0" \ -+ "bootcmdf3=mmc init; ext2load mmc 0:3 0x80600000 /boot/uImage; bootm;\0" \ -+ "bootargsf3=mem=32M console=tty0 console=ttyS0,57600n8 rootfstype=ext2 root=/dev/mmcblk0p3 rw rootwait\0" \ -+ "bootcmdf4=mtdparts default;ubi part rootfs;ubifsmount rootfs;ubifsload 0x80600000 /boot/uImage; bootm;\0" \ -+ "bootargsf4=mem=32M console=tty0 console=ttyS0,57600n8 ubi.mtd=2 rootfstype=ubifs root=ubi0:rootfs rw rootwait" - - #define CONFIG_SYS_SDRAM_BASE 0x80000000 /* Cached addr */ - #define CONFIG_SYS_INIT_SP_OFFSET 0x400000 --- -1.7.9.5 - diff --git a/package/boot/uboot-xburst/patches/0005-add-nanonote-lcd-support.patch b/package/boot/uboot-xburst/patches/0005-add-nanonote-lcd-support.patch deleted file mode 100644 index 2c550f7205..0000000000 --- a/package/boot/uboot-xburst/patches/0005-add-nanonote-lcd-support.patch +++ /dev/null @@ -1,847 +0,0 @@ -From ca8c5216cfd3ad3fda9867ed2d157ae5a209834b Mon Sep 17 00:00:00 2001 -From: Xiangfu -Date: Wed, 10 Oct 2012 22:05:27 +0800 -Subject: [PATCH 5/6] add nanonote lcd support - ---- - arch/mips/include/asm/global_data.h | 1 + - arch/mips/include/asm/jz4740.h | 90 ++++++++ - arch/mips/lib/board.c | 6 + - common/lcd.c | 9 +- - drivers/video/Makefile | 1 + - drivers/video/nanonote_gpm940b0.c | 400 +++++++++++++++++++++++++++++++++++ - drivers/video/nanonote_gpm940b0.h | 135 ++++++++++++ - include/configs/qi_lb60.h | 7 + - include/lcd.h | 52 ++++- - 9 files changed, 697 insertions(+), 4 deletions(-) - create mode 100644 drivers/video/nanonote_gpm940b0.c - create mode 100644 drivers/video/nanonote_gpm940b0.h - -diff --git a/arch/mips/include/asm/global_data.h b/arch/mips/include/asm/global_data.h -index cd03d7e..7cec2de 100644 ---- a/arch/mips/include/asm/global_data.h -+++ b/arch/mips/include/asm/global_data.h -@@ -44,6 +44,7 @@ typedef struct global_data { - unsigned long per_clk; /* Peripheral bus clock */ - unsigned long mem_clk; /* Memory bus clock */ - unsigned long dev_clk; /* Device clock */ -+ unsigned long fb_base; /* base address of framebuffer */ - /* "static data" needed by most of timer.c */ - unsigned long tbl; - unsigned long lastinc; -diff --git a/arch/mips/include/asm/jz4740.h b/arch/mips/include/asm/jz4740.h -index 68287fb..13724a2 100644 ---- a/arch/mips/include/asm/jz4740.h -+++ b/arch/mips/include/asm/jz4740.h -@@ -1312,5 +1312,95 @@ do { \ - while (REG_MSC_STAT & MSC_STAT_IS_RESETTING); \ - } while (0) - -+/************************************************************************* -+ * LCD (LCD Controller) -+ *************************************************************************/ -+#define REG32(addr) *((volatile u32 *)(addr)) -+ -+#define CPM_BASE 0xB0000000 -+#define CPM_CPCCR (CPM_BASE+0x00) -+#define REG_CPM_CPCCR REG32(CPM_CPCCR) -+ -+#define LCD_BASE 0xB3050000 -+#define LCD_CFG (LCD_BASE + 0x00) /* LCD Configure Register */ -+#define LCD_VSYNC (LCD_BASE + 0x04) /* Vertical Synchronize Register */ -+#define LCD_HSYNC (LCD_BASE + 0x08) /* Horizontal Synchronize Register */ -+#define LCD_VAT (LCD_BASE + 0x0c) /* Virtual Area Setting Register */ -+#define LCD_DAH (LCD_BASE + 0x10) /* Display Area Horizontal Start/End Point */ -+#define LCD_DAV (LCD_BASE + 0x14) /* Display Area Vertical Start/End Point */ -+#define LCD_PS (LCD_BASE + 0x18) /* PS Signal Setting */ -+#define LCD_CLS (LCD_BASE + 0x1c) /* CLS Signal Setting */ -+#define LCD_SPL (LCD_BASE + 0x20) /* SPL Signal Setting */ -+#define LCD_REV (LCD_BASE + 0x24) /* REV Signal Setting */ -+#define LCD_CTRL (LCD_BASE + 0x30) /* LCD Control Register */ -+#define LCD_STATE (LCD_BASE + 0x34) /* LCD Status Register */ -+#define LCD_IID (LCD_BASE + 0x38) /* Interrupt ID Register */ -+#define LCD_DA0 (LCD_BASE + 0x40) /* Descriptor Address Register 0 */ -+#define LCD_SA0 (LCD_BASE + 0x44) /* Source Address Register 0 */ -+#define LCD_FID0 (LCD_BASE + 0x48) /* Frame ID Register 0 */ -+#define LCD_CMD0 (LCD_BASE + 0x4c) /* DMA Command Register 0 */ -+#define LCD_DA1 (LCD_BASE + 0x50) /* Descriptor Address Register 1 */ -+#define LCD_SA1 (LCD_BASE + 0x54) /* Source Address Register 1 */ -+#define LCD_FID1 (LCD_BASE + 0x58) /* Frame ID Register 1 */ -+#define LCD_CMD1 (LCD_BASE + 0x5c) /* DMA Command Register 1 */ -+ -+#define REG_LCD_CFG REG32(LCD_CFG) -+#define REG_LCD_VSYNC REG32(LCD_VSYNC) -+#define REG_LCD_HSYNC REG32(LCD_HSYNC) -+#define REG_LCD_VAT REG32(LCD_VAT) -+#define REG_LCD_DAH REG32(LCD_DAH) -+#define REG_LCD_DAV REG32(LCD_DAV) -+#define REG_LCD_PS REG32(LCD_PS) -+#define REG_LCD_CLS REG32(LCD_CLS) -+#define REG_LCD_SPL REG32(LCD_SPL) -+#define REG_LCD_REV REG32(LCD_REV) -+#define REG_LCD_CTRL REG32(LCD_CTRL) -+#define REG_LCD_STATE REG32(LCD_STATE) -+#define REG_LCD_IID REG32(LCD_IID) -+#define REG_LCD_DA0 REG32(LCD_DA0) -+#define REG_LCD_SA0 REG32(LCD_SA0) -+#define REG_LCD_FID0 REG32(LCD_FID0) -+#define REG_LCD_CMD0 REG32(LCD_CMD0) -+#define REG_LCD_DA1 REG32(LCD_DA1) -+#define REG_LCD_SA1 REG32(LCD_SA1) -+#define REG_LCD_FID1 REG32(LCD_FID1) -+#define REG_LCD_CMD1 REG32(LCD_CMD1) -+ -+#define LCD_CTRL_BPP_BIT 0 /* Bits Per Pixel */ -+#define LCD_CTRL_BPP_MASK (0x07 << LCD_CTRL_BPP_BIT) -+ #define LCD_CTRL_BPP_1 (0 << LCD_CTRL_BPP_BIT) /* 1 bpp */ -+ #define LCD_CTRL_BPP_2 (1 << LCD_CTRL_BPP_BIT) /* 2 bpp */ -+ #define LCD_CTRL_BPP_4 (2 << LCD_CTRL_BPP_BIT) /* 4 bpp */ -+ #define LCD_CTRL_BPP_8 (3 << LCD_CTRL_BPP_BIT) /* 8 bpp */ -+ #define LCD_CTRL_BPP_16 (4 << LCD_CTRL_BPP_BIT) /* 15/16 bpp */ -+ #define LCD_CTRL_BPP_18_24 (5 << LCD_CTRL_BPP_BIT) /* 18/24/32 bpp */ -+ -+#define LCD_CTRL_BST_BIT 28 /* Burst Length Selection */ -+#define LCD_CTRL_BST_MASK (0x03 << LCD_CTRL_BST_BIT) -+ #define LCD_CTRL_BST_4 (0 << LCD_CTRL_BST_BIT) /* 4-word */ -+ #define LCD_CTRL_BST_8 (1 << LCD_CTRL_BST_BIT) /* 8-word */ -+ #define LCD_CTRL_BST_16 (2 << LCD_CTRL_BST_BIT) /* 16-word */ -+#define LCD_CTRL_RGB565 (0 << 27) /* RGB565 mode */ -+#define LCD_CTRL_RGB555 (1 << 27) /* RGB555 mode */ -+#define LCD_CTRL_OFUP (1 << 26) /* Output FIFO underrun protection enable */ -+#define LCD_CTRL_FRC_BIT 24 /* STN FRC Algorithm Selection */ -+#define LCD_CTRL_FRC_MASK (0x03 << LCD_CTRL_FRC_BIT) -+ #define LCD_CTRL_FRC_16 (0 << LCD_CTRL_FRC_BIT) /* 16 grayscale */ -+ #define LCD_CTRL_FRC_4 (1 << LCD_CTRL_FRC_BIT) /* 4 grayscale */ -+ #define LCD_CTRL_FRC_2 (2 << LCD_CTRL_FRC_BIT) /* 2 grayscale */ -+ -+#define CPM_LPCDR (CPM_BASE+0x64) -+#define CPM_CLKGR (CPM_BASE+0x20) -+#define REG_CPM_LPCDR REG32(CPM_LPCDR) -+#define REG_CPM_CLKGR REG32(CPM_CLKGR) -+ -+#define __cpm_start_tcu() (REG_CPM_CLKGR &= ~CPM_CLKGR_TCU) -+#define __cpm_stop_lcd() (REG_CPM_CLKGR |= CPM_CLKGR_LCD) -+#define __cpm_set_pixdiv(v) \ -+ (REG_CPM_LPCDR = (REG_CPM_LPCDR & ~CPM_LPCDR_PIXDIV_MASK) | ((v) << (CPM_LPCDR_PIXDIV_BIT))) -+#define __cpm_set_ldiv(v) \ -+ (REG_CPM_CPCCR = (REG_CPM_CPCCR & ~CPM_CPCCR_LDIV_MASK) | ((v) << (CPM_CPCCR_LDIV_BIT))) -+#define __cpm_start_lcd() (REG_CPM_CLKGR &= ~CPM_CLKGR_LCD) -+ - #endif /* !__ASSEMBLY__ */ - #endif /* __JZ4740_H__ */ -diff --git a/arch/mips/lib/board.c b/arch/mips/lib/board.c -index b14b33e..c2e64d9 100644 ---- a/arch/mips/lib/board.c -+++ b/arch/mips/lib/board.c -@@ -172,6 +172,12 @@ void board_init_f(ulong bootflag) - addr &= ~(4096 - 1); - debug("Top of RAM usable for U-Boot at: %08lx\n", addr); - -+#ifdef CONFIG_LCD -+ /* reserve memory for LCD display (always full pages) */ -+ addr = lcd_setmem (addr); -+ gd->fb_base = addr; -+#endif /* CONFIG_LCD */ -+ - /* Reserve memory for U-Boot code, data & bss - * round down to next 16 kB limit - */ -diff --git a/common/lcd.c b/common/lcd.c -index b6be800..af1281a 100644 ---- a/common/lcd.c -+++ b/common/lcd.c -@@ -263,6 +263,13 @@ static void lcd_drawchars(ushort x, ushort y, uchar *str, int count) - lcd_color_fg : lcd_color_bg; - bits <<= 1; - } -+#elif LCD_BPP == LCD_COLOR32 -+ uint *m = (uint *)d; -+ for (c=0; c<32; ++c) { -+ *m++ = (bits & 0x80) ? -+ lcd_color_fg : lcd_color_bg; -+ bits <<= 1; -+ } - #endif - } - #if LCD_BPP == LCD_MONOCHROME -@@ -509,7 +516,7 @@ static inline ushort *configuration_get_cmap(void) - return (ushort *)&(cp->lcd_cmap[255 * sizeof(ushort)]); - #elif defined(CONFIG_ATMEL_LCD) - return (ushort *)(panel_info.mmio + ATMEL_LCDC_LUT(0)); --#elif !defined(CONFIG_ATMEL_HLCD) && !defined(CONFIG_EXYNOS_FB) -+#elif !defined(CONFIG_ATMEL_HLCD) && !defined(CONFIG_EXYNOS_FB) && !defined(CONFIG_VIDEO_GPM940B0) - return panel_info.cmap; - #else - #if defined(CONFIG_LCD_LOGO) -diff --git a/drivers/video/Makefile b/drivers/video/Makefile -index ebb6da8..03625bc 100644 ---- a/drivers/video/Makefile -+++ b/drivers/video/Makefile -@@ -50,6 +50,7 @@ COBJS-$(CONFIG_VIDEO_SED13806) += sed13806.o - COBJS-$(CONFIG_VIDEO_SM501) += sm501.o - COBJS-$(CONFIG_VIDEO_SMI_LYNXEM) += smiLynxEM.o videomodes.o - COBJS-$(CONFIG_VIDEO_VCXK) += bus_vcxk.o -+COBJS-$(CONFIG_VIDEO_GPM940B0) += nanonote_gpm940b0.o - - COBJS := $(sort $(COBJS-y)) - SRCS := $(COBJS:.o=.c) -diff --git a/drivers/video/nanonote_gpm940b0.c b/drivers/video/nanonote_gpm940b0.c -new file mode 100644 -index 0000000..11efb72 ---- /dev/null -+++ b/drivers/video/nanonote_gpm940b0.c -@@ -0,0 +1,400 @@ -+/* -+ * JzRISC lcd controller -+ * -+ * Xiangfu Liu -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include -+#include -+#include -+ -+#include /* virt_to_phys() */ -+#include -+ -+#include "nanonote_gpm940b0.h" -+ -+#define align2(n) (n)=((((n)+1)>>1)<<1) -+#define align4(n) (n)=((((n)+3)>>2)<<2) -+#define align8(n) (n)=((((n)+7)>>3)<<3) -+ -+struct jzfb_info { -+ unsigned int cfg; /* panel mode and pin usage etc. */ -+ unsigned int w; -+ unsigned int h; -+ unsigned int bpp; /* bit per pixel */ -+ unsigned int fclk; /* frame clk */ -+ unsigned int hsw; /* hsync width, in pclk */ -+ unsigned int vsw; /* vsync width, in line count */ -+ unsigned int elw; /* end of line, in pclk */ -+ unsigned int blw; /* begin of line, in pclk */ -+ unsigned int efw; /* end of frame, in line count */ -+ unsigned int bfw; /* begin of frame, in line count */ -+}; -+ -+static struct jzfb_info jzfb = { -+ MODE_8BIT_SERIAL_TFT | PCLK_N | HSYNC_N | VSYNC_N, -+ 320, 240, 32, 70, 1, 1, 273, 140, 1, 20 -+}; -+ -+vidinfo_t panel_info = { -+ 320, 240, LCD_BPP, -+}; -+ -+void *lcd_base; -+void *lcd_console_address; -+int lcd_line_length; -+int lcd_color_fg; -+int lcd_color_bg; -+short console_col; -+short console_row; -+ -+static int jz_lcd_init_mem(void *lcdbase, vidinfo_t *vid) -+{ -+ u_long palette_mem_size; -+ struct jz_fb_info *fbi = &vid->jz_fb; -+ int fb_size = vid->vl_row * (vid->vl_col * NBITS (vid->vl_bpix)) / 8; -+ -+ fbi->screen = (u_long)lcdbase; -+ fbi->palette_size = 256; -+ palette_mem_size = fbi->palette_size * sizeof(u16); -+ -+ debug("jz_lcd.c palette_mem_size = 0x%08lx\n", (u_long) palette_mem_size); -+ /* locate palette and descs at end of page following fb */ -+ fbi->palette = (u_long)lcdbase + fb_size + PAGE_SIZE - palette_mem_size; -+ -+ return 0; -+} -+ -+static void jz_lcd_desc_init(vidinfo_t *vid) -+{ -+ struct jz_fb_info * fbi; -+ fbi = &vid->jz_fb; -+ fbi->dmadesc_fblow = (struct jz_fb_dma_descriptor *)((unsigned int)fbi->palette - 3*16); -+ fbi->dmadesc_fbhigh = (struct jz_fb_dma_descriptor *)((unsigned int)fbi->palette - 2*16); -+ fbi->dmadesc_palette = (struct jz_fb_dma_descriptor *)((unsigned int)fbi->palette - 1*16); -+ -+ #define BYTES_PER_PANEL (vid->vl_col * vid->vl_row * NBITS(vid->vl_bpix) / 8) -+ -+ /* populate descriptors */ -+ fbi->dmadesc_fblow->fdadr = virt_to_phys(fbi->dmadesc_fblow); -+ fbi->dmadesc_fblow->fsadr = virt_to_phys((void *)(fbi->screen + BYTES_PER_PANEL)); -+ fbi->dmadesc_fblow->fidr = 0; -+ fbi->dmadesc_fblow->ldcmd = BYTES_PER_PANEL / 4 ; -+ -+ fbi->fdadr1 = virt_to_phys(fbi->dmadesc_fblow); /* only used in dual-panel mode */ -+ -+ fbi->dmadesc_fbhigh->fsadr = virt_to_phys((void *)fbi->screen); -+ fbi->dmadesc_fbhigh->fidr = 0; -+ fbi->dmadesc_fbhigh->ldcmd = BYTES_PER_PANEL / 4; /* length in word */ -+ -+ fbi->dmadesc_palette->fsadr = virt_to_phys((void *)fbi->palette); -+ fbi->dmadesc_palette->fidr = 0; -+ fbi->dmadesc_palette->ldcmd = (fbi->palette_size * 2)/4 | (1<<28); -+ -+ if(NBITS(vid->vl_bpix) < 12) { -+ /* assume any mode with <12 bpp is palette driven */ -+ fbi->dmadesc_palette->fdadr = virt_to_phys(fbi->dmadesc_fbhigh); -+ fbi->dmadesc_fbhigh->fdadr = virt_to_phys(fbi->dmadesc_palette); -+ /* flips back and forth between pal and fbhigh */ -+ fbi->fdadr0 = virt_to_phys(fbi->dmadesc_palette); -+ } else { -+ /* palette shouldn't be loaded in true-color mode */ -+ fbi->dmadesc_fbhigh->fdadr = virt_to_phys((void *)fbi->dmadesc_fbhigh); -+ fbi->fdadr0 = virt_to_phys(fbi->dmadesc_fbhigh); /* no pal just fbhigh */ -+ } -+} -+ -+static int jz_lcd_hw_init(vidinfo_t *vid) -+{ -+ struct jz_fb_info *fbi = &vid->jz_fb; -+ unsigned int val = 0; -+ unsigned int pclk; -+ unsigned int stnH; -+ int pll_div; -+ -+ /* Setting Control register */ -+ switch (jzfb.bpp) { -+ case 1: -+ val |= LCD_CTRL_BPP_1; -+ break; -+ case 2: -+ val |= LCD_CTRL_BPP_2; -+ break; -+ case 4: -+ val |= LCD_CTRL_BPP_4; -+ break; -+ case 8: -+ val |= LCD_CTRL_BPP_8; -+ break; -+ case 15: -+ val |= LCD_CTRL_RGB555; -+ case 16: -+ val |= LCD_CTRL_BPP_16; -+ break; -+ case 17 ... 32: -+ val |= LCD_CTRL_BPP_18_24; /* target is 4bytes/pixel */ -+ break; -+ -+ default: -+ printf("jz_lcd.c The BPP %d is not supported\n", jzfb.bpp); -+ val |= LCD_CTRL_BPP_16; -+ break; -+ } -+ -+ switch (jzfb.cfg & MODE_MASK) { -+ case MODE_STN_MONO_DUAL: -+ case MODE_STN_COLOR_DUAL: -+ case MODE_STN_MONO_SINGLE: -+ case MODE_STN_COLOR_SINGLE: -+ switch (jzfb.bpp) { -+ case 1: -+ /* val |= LCD_CTRL_PEDN; */ -+ case 2: -+ val |= LCD_CTRL_FRC_2; -+ break; -+ case 4: -+ val |= LCD_CTRL_FRC_4; -+ break; -+ case 8: -+ default: -+ val |= LCD_CTRL_FRC_16; -+ break; -+ } -+ break; -+ } -+ -+ val |= LCD_CTRL_BST_16; /* Burst Length is 16WORD=64Byte */ -+ val |= LCD_CTRL_OFUP; /* OutFIFO underrun protect */ -+ -+ switch (jzfb.cfg & MODE_MASK) { -+ case MODE_STN_MONO_DUAL: -+ case MODE_STN_COLOR_DUAL: -+ case MODE_STN_MONO_SINGLE: -+ case MODE_STN_COLOR_SINGLE: -+ switch (jzfb.cfg & STN_DAT_PINMASK) { -+ case STN_DAT_PIN1: -+ /* Do not adjust the hori-param value. */ -+ break; -+ case STN_DAT_PIN2: -+ align2(jzfb.hsw); -+ align2(jzfb.elw); -+ align2(jzfb.blw); -+ break; -+ case STN_DAT_PIN4: -+ align4(jzfb.hsw); -+ align4(jzfb.elw); -+ align4(jzfb.blw); -+ break; -+ case STN_DAT_PIN8: -+ align8(jzfb.hsw); -+ align8(jzfb.elw); -+ align8(jzfb.blw); -+ break; -+ } -+ break; -+ } -+ -+ REG_LCD_CTRL = val; -+ -+ switch (jzfb.cfg & MODE_MASK) { -+ case MODE_STN_MONO_DUAL: -+ case MODE_STN_COLOR_DUAL: -+ case MODE_STN_MONO_SINGLE: -+ case MODE_STN_COLOR_SINGLE: -+ if (((jzfb.cfg & MODE_MASK) == MODE_STN_MONO_DUAL) || -+ ((jzfb.cfg & MODE_MASK) == MODE_STN_COLOR_DUAL)) -+ stnH = jzfb.h >> 1; -+ else -+ stnH = jzfb.h; -+ -+ REG_LCD_VSYNC = (0 << 16) | jzfb.vsw; -+ REG_LCD_HSYNC = ((jzfb.blw+jzfb.w) << 16) | (jzfb.blw+jzfb.w+jzfb.hsw); -+ -+ /* Screen setting */ -+ REG_LCD_VAT = ((jzfb.blw + jzfb.w + jzfb.hsw + jzfb.elw) << 16) | (stnH + jzfb.vsw + jzfb.bfw + jzfb.efw); -+ REG_LCD_DAH = (jzfb.blw << 16) | (jzfb.blw + jzfb.w); -+ REG_LCD_DAV = (0 << 16) | (stnH); -+ -+ /* AC BIAs signal */ -+ REG_LCD_PS = (0 << 16) | (stnH+jzfb.vsw+jzfb.efw+jzfb.bfw); -+ -+ break; -+ -+ case MODE_TFT_GEN: -+ case MODE_TFT_SHARP: -+ case MODE_TFT_CASIO: -+ case MODE_TFT_SAMSUNG: -+ case MODE_8BIT_SERIAL_TFT: -+ case MODE_TFT_18BIT: -+ REG_LCD_VSYNC = (0 << 16) | jzfb.vsw; -+ REG_LCD_HSYNC = (0 << 16) | jzfb.hsw; -+ REG_LCD_DAV =((jzfb.vsw+jzfb.bfw) << 16) | (jzfb.vsw +jzfb.bfw+jzfb.h); -+ REG_LCD_DAH = ((jzfb.hsw + jzfb.blw) << 16) | (jzfb.hsw + jzfb.blw + jzfb.w ); -+ REG_LCD_VAT = (((jzfb.blw + jzfb.w + jzfb.elw + jzfb.hsw)) << 16) \ -+ | (jzfb.vsw + jzfb.bfw + jzfb.h + jzfb.efw); -+ break; -+ } -+ -+ switch (jzfb.cfg & MODE_MASK) { -+ case MODE_TFT_SAMSUNG: -+ { -+ unsigned int total, tp_s, tp_e, ckv_s, ckv_e; -+ unsigned int rev_s, rev_e, inv_s, inv_e; -+ -+ pclk = val * (jzfb.w + jzfb.hsw + jzfb.elw + jzfb.blw) * -+ (jzfb.h + jzfb.vsw + jzfb.efw + jzfb.bfw); /* Pixclk */ -+ -+ total = jzfb.blw + jzfb.w + jzfb.elw + jzfb.hsw; -+ tp_s = jzfb.blw + jzfb.w + 1; -+ tp_e = tp_s + 1; -+ ckv_s = tp_s - pclk/(1000000000/4100); -+ ckv_e = tp_s + total; -+ rev_s = tp_s - 11; /* -11.5 clk */ -+ rev_e = rev_s + total; -+ inv_s = tp_s; -+ inv_e = inv_s + total; -+ REG_LCD_CLS = (tp_s << 16) | tp_e; -+ REG_LCD_PS = (ckv_s << 16) | ckv_e; -+ REG_LCD_SPL = (rev_s << 16) | rev_e; -+ REG_LCD_REV = (inv_s << 16) | inv_e; -+ jzfb.cfg |= STFT_REVHI | STFT_SPLHI; -+ break; -+ } -+ case MODE_TFT_SHARP: -+ { -+ unsigned int total, cls_s, cls_e, ps_s, ps_e; -+ unsigned int spl_s, spl_e, rev_s, rev_e; -+ total = jzfb.blw + jzfb.w + jzfb.elw + jzfb.hsw; -+ spl_s = 1; -+ spl_e = spl_s + 1; -+ cls_s = 0; -+ cls_e = total - 60; /* > 4us (pclk = 80ns) */ -+ ps_s = cls_s; -+ ps_e = cls_e; -+ rev_s = total - 40; /* > 3us (pclk = 80ns) */ -+ rev_e = rev_s + total; -+ jzfb.cfg |= STFT_PSHI; -+ REG_LCD_SPL = (spl_s << 16) | spl_e; -+ REG_LCD_CLS = (cls_s << 16) | cls_e; -+ REG_LCD_PS = (ps_s << 16) | ps_e; -+ REG_LCD_REV = (rev_s << 16) | rev_e; -+ break; -+ } -+ case MODE_TFT_CASIO: -+ break; -+ } -+ -+ /* Configure the LCD panel */ -+ REG_LCD_CFG = jzfb.cfg; -+ -+ /* Timing setting */ -+ __cpm_stop_lcd(); -+ -+ val = jzfb.fclk; /* frame clk */ -+ if ( (jzfb.cfg & MODE_MASK) != MODE_8BIT_SERIAL_TFT) { -+ pclk = val * (jzfb.w + jzfb.hsw + jzfb.elw + jzfb.blw) * -+ (jzfb.h + jzfb.vsw + jzfb.efw + jzfb.bfw); /* Pixclk */ -+ } else { -+ /* serial mode: Hsync period = 3*Width_Pixel */ -+ pclk = val * (jzfb.w*3 + jzfb.hsw + jzfb.elw + jzfb.blw) * -+ (jzfb.h + jzfb.vsw + jzfb.efw + jzfb.bfw); /* Pixclk */ -+ } -+ -+ if (((jzfb.cfg & MODE_MASK) == MODE_STN_COLOR_SINGLE) || -+ ((jzfb.cfg & MODE_MASK) == MODE_STN_COLOR_DUAL)) -+ pclk = (pclk * 3); -+ -+ if (((jzfb.cfg & MODE_MASK) == MODE_STN_COLOR_SINGLE) || -+ ((jzfb.cfg & MODE_MASK) == MODE_STN_COLOR_DUAL) || -+ ((jzfb.cfg & MODE_MASK) == MODE_STN_MONO_SINGLE) || -+ ((jzfb.cfg & MODE_MASK) == MODE_STN_MONO_DUAL)) -+ pclk = pclk >> ((jzfb.cfg & STN_DAT_PINMASK) >> 4); -+ -+ if (((jzfb.cfg & MODE_MASK) == MODE_STN_COLOR_DUAL) || -+ ((jzfb.cfg & MODE_MASK) == MODE_STN_MONO_DUAL)) -+ pclk >>= 1; -+ -+ pll_div = (REG_CPM_CPCCR & CPM_CPCCR_PCS); /* clock source,0:pllout/2 1: pllout */ -+ pll_div = pll_div ? 1 : 2; -+ val = (__cpm_get_pllout() / pll_div) / pclk; -+ val--; -+ if (val > 0x1ff) { -+ printf("CPM_LPCDR too large, set it to 0x1ff\n"); -+ val = 0x1ff; -+ } -+ __cpm_set_pixdiv(val); -+ -+ val = pclk * 3 ; /* LCDClock > 2.5*Pixclock */ -+ if (val > 150000000) { -+ printf("Warning: LCDClock=%d\n, LCDClock must less or equal to 150MHz.\n", val); -+ printf("Change LCDClock to 150MHz\n"); -+ val = 150000000; -+ } -+ val = (__cpm_get_pllout() / pll_div) / val; -+ val--; -+ if (val > 0x1f) { -+ printf("CPM_CPCCR.LDIV too large, set it to 0x1f\n"); -+ val = 0x1f; -+ } -+ __cpm_set_ldiv( val ); -+ REG_CPM_CPCCR |= CPM_CPCCR_CE ; /* update divide */ -+ -+ __cpm_start_lcd(); -+ udelay(1000); -+ -+ REG_LCD_DA0 = fbi->fdadr0; /* frame descripter*/ -+ -+ if (((jzfb.cfg & MODE_MASK) == MODE_STN_COLOR_DUAL) || -+ ((jzfb.cfg & MODE_MASK) == MODE_STN_MONO_DUAL)) -+ REG_LCD_DA1 = fbi->fdadr1; /* frame descripter*/ -+ -+ return 0; -+} -+ -+void lcd_ctrl_init (void *lcdbase) -+{ -+ __lcd_display_pin_init(); -+ __lcd_display_on() ; -+ -+ jz_lcd_init_mem(lcdbase, &panel_info); -+ jz_lcd_desc_init(&panel_info); -+ jz_lcd_hw_init(&panel_info); -+ -+} -+ -+/* -+ * Before enabled lcd controller, lcd registers should be configured correctly. -+ */ -+void lcd_enable (void) -+{ -+ REG_LCD_CTRL &= ~(1<<4); /* LCDCTRL.DIS */ -+ REG_LCD_CTRL |= 1<<3; /* LCDCTRL.ENA*/ -+} -+ -+void lcd_disable (void) -+{ -+ REG_LCD_CTRL |= (1<<4); -+} -+ -+void lcd_setcolreg (ushort regno, ushort red, ushort green, ushort blue) -+{ -+} -+ -+void lcd_initcolregs (void) -+{ -+} -diff --git a/drivers/video/nanonote_gpm940b0.h b/drivers/video/nanonote_gpm940b0.h -new file mode 100644 -index 0000000..efe491e ---- /dev/null -+++ b/drivers/video/nanonote_gpm940b0.h -@@ -0,0 +1,135 @@ -+/* -+ * JzRISC lcd controller -+ * -+ * Xiangfu Liu -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#ifndef __QI_LB60_GPM940B0_H__ -+#define __QI_LB60_GPM940B0_H__ -+ -+struct lcd_desc{ -+ unsigned int next_desc; /* LCDDAx */ -+ unsigned int databuf; /* LCDSAx */ -+ unsigned int frame_id; /* LCDFIDx */ -+ unsigned int cmd; /* LCDCMDx */ -+}; -+ -+#define MODE_MASK 0x0f -+#define MODE_TFT_GEN 0x00 -+#define MODE_TFT_SHARP 0x01 -+#define MODE_TFT_CASIO 0x02 -+#define MODE_TFT_SAMSUNG 0x03 -+#define MODE_CCIR656_NONINT 0x04 -+#define MODE_CCIR656_INT 0x05 -+#define MODE_STN_COLOR_SINGLE 0x08 -+#define MODE_STN_MONO_SINGLE 0x09 -+#define MODE_STN_COLOR_DUAL 0x0a -+#define MODE_STN_MONO_DUAL 0x0b -+#define MODE_8BIT_SERIAL_TFT 0x0c -+ -+#define MODE_TFT_18BIT (1<<7) -+ -+#define STN_DAT_PIN1 (0x00 << 4) -+#define STN_DAT_PIN2 (0x01 << 4) -+#define STN_DAT_PIN4 (0x02 << 4) -+#define STN_DAT_PIN8 (0x03 << 4) -+#define STN_DAT_PINMASK STN_DAT_PIN8 -+ -+#define STFT_PSHI (1 << 15) -+#define STFT_CLSHI (1 << 14) -+#define STFT_SPLHI (1 << 13) -+#define STFT_REVHI (1 << 12) -+ -+#define SYNC_MASTER (0 << 16) -+#define SYNC_SLAVE (1 << 16) -+ -+#define DE_P (0 << 9) -+#define DE_N (1 << 9) -+ -+#define PCLK_P (0 << 10) -+#define PCLK_N (1 << 10) -+ -+#define HSYNC_P (0 << 11) -+#define HSYNC_N (1 << 11) -+ -+#define VSYNC_P (0 << 8) -+#define VSYNC_N (1 << 8) -+ -+#define DATA_NORMAL (0 << 17) -+#define DATA_INVERSE (1 << 17) -+ -+ -+/* Jz LCDFB supported I/O controls. */ -+#define FBIOSETBACKLIGHT 0x4688 -+#define FBIODISPON 0x4689 -+#define FBIODISPOFF 0x468a -+#define FBIORESET 0x468b -+#define FBIOPRINT_REG 0x468c -+ -+/* -+ * LCD panel specific definition -+ */ -+#define MODE (0xc9) /* 8bit serial RGB */ -+ -+#define __spi_write_reg1(reg, val) \ -+do { \ -+ unsigned char no; \ -+ unsigned short value; \ -+ unsigned char a=reg; \ -+ unsigned char b=val; \ -+ __gpio_set_pin(SPEN); \ -+ __gpio_set_pin(SPCK); \ -+ __gpio_clear_pin(SPDA); \ -+ __gpio_clear_pin(SPEN); \ -+ value=((a<<8)|(b&0xFF)); \ -+ for(no=0;no<16;no++) \ -+ { \ -+ __gpio_clear_pin(SPCK); \ -+ if((value&0x8000)==0x8000) \ -+ __gpio_set_pin(SPDA); \ -+ else \ -+ __gpio_clear_pin(SPDA); \ -+ __gpio_set_pin(SPCK); \ -+ value=(value<<1); \ -+ } \ -+ __gpio_set_pin(SPEN); \ -+} while (0) -+ -+#define __lcd_display_pin_init() \ -+do { \ -+ __cpm_start_tcu(); \ -+ __gpio_as_output(SPEN); /* use SPDA */ \ -+ __gpio_as_output(SPCK); /* use SPCK */ \ -+ __gpio_as_output(SPDA); /* use SPDA */ \ -+} while (0) -+ -+#define __lcd_display_on() \ -+do { \ -+ __spi_write_reg1(0x05, 0x1e); \ -+ __spi_write_reg1(0x05, 0x5e); \ -+ __spi_write_reg1(0x07, 0x8d); \ -+ __spi_write_reg1(0x13, 0x01); \ -+ __spi_write_reg1(0x05, 0x5f); \ -+} while (0) -+ -+#define __lcd_display_off() \ -+do { \ -+ __spi_write_reg1(0x05, 0x5e); \ -+} while (0) -+ -+#endif /* __QI_LB60_GPM940B0_H__ */ -diff --git a/include/configs/qi_lb60.h b/include/configs/qi_lb60.h -index 52b370c..d3e78ad 100644 ---- a/include/configs/qi_lb60.h -+++ b/include/configs/qi_lb60.h -@@ -32,6 +32,13 @@ - * Miscellaneous configurable options - */ - #define CONFIG_NANONOTE -+ -+#define CONFIG_LCD -+#define CONFIG_SYS_WHITE_ON_BLACK -+#define LCD_BPP LCD_COLOR32 -+#define CONFIG_VIDEO_GPM940B0 -+ -+ - #define CONFIG_JZ4740_MMC - #define CONFIG_MMC 1 - #define CONFIG_FAT 1 -diff --git a/include/lcd.h b/include/lcd.h -index 42070d7..6de5482 100644 ---- a/include/lcd.h -+++ b/include/lcd.h -@@ -263,8 +263,44 @@ typedef struct vidinfo { - - void init_panel_info(vidinfo_t *vid); - --#else -+#elif defined(CONFIG_JZSOC) -+/* -+ * LCD controller stucture for JZSOC: JZ4740 -+ */ -+struct jz_fb_dma_descriptor { -+ u_long fdadr; /* Frame descriptor address register */ -+ u_long fsadr; /* Frame source address register */ -+ u_long fidr; /* Frame ID register */ -+ u_long ldcmd; /* Command register */ -+}; -+ -+/* -+ * Jz LCD info -+ */ -+struct jz_fb_info { -+ -+ u_long fdadr0; /* physical address of frame/palette descriptor */ -+ u_long fdadr1; /* physical address of frame descriptor */ -+ -+ /* DMA descriptors */ -+ struct jz_fb_dma_descriptor * dmadesc_fblow; -+ struct jz_fb_dma_descriptor * dmadesc_fbhigh; -+ struct jz_fb_dma_descriptor * dmadesc_palette; -+ u_long screen; /* address of frame buffer */ -+ u_long palette; /* address of palette memory */ -+ u_int palette_size; -+}; -+typedef struct vidinfo { -+ ushort vl_col; /* Number of columns (i.e. 640) */ -+ ushort vl_row; /* Number of rows (i.e. 480) */ -+ u_char vl_bpix; /* Bits per pixel, 0 = 1, 1 = 2, 2 = 4, 3 = 8 */ -+ -+ struct jz_fb_info jz_fb; -+} vidinfo_t; -+ -+extern vidinfo_t panel_info; - -+#else - typedef struct vidinfo { - ushort vl_col; /* Number of columns (i.e. 160) */ - ushort vl_row; /* Number of rows (i.e. 100) */ -@@ -318,6 +354,7 @@ void lcd_show_board_info(void); - #define LCD_COLOR4 2 - #define LCD_COLOR8 3 - #define LCD_COLOR16 4 -+#define LCD_COLOR32 5 - - /*----------------------------------------------------------------------*/ - #if defined(CONFIG_LCD_INFO_BELOW_LOGO) -@@ -369,7 +406,7 @@ void lcd_show_board_info(void); - # define CONSOLE_COLOR_GREY 14 - # define CONSOLE_COLOR_WHITE 15 /* Must remain last / highest */ - --#else -+#elif LCD_BPP == LCD_COLOR16 - - /* - * 16bpp color definitions -@@ -377,6 +414,15 @@ void lcd_show_board_info(void); - # define CONSOLE_COLOR_BLACK 0x0000 - # define CONSOLE_COLOR_WHITE 0xffff /* Must remain last / highest */ - -+#elif LCD_BPP == LCD_COLOR32 -+/* -+ * 18,24,32 bpp color definitions -+ */ -+# define CONSOLE_COLOR_BLACK 0x00000000 -+# define CONSOLE_COLOR_WHITE 0xffffffff /* Must remain last / highest */ -+ -+#else -+ - #endif /* color definitions */ - - /************************************************************************/ -@@ -406,7 +452,7 @@ void lcd_show_board_info(void); - #if LCD_BPP == LCD_MONOCHROME - # define COLOR_MASK(c) ((c) | (c) << 1 | (c) << 2 | (c) << 3 | \ - (c) << 4 | (c) << 5 | (c) << 6 | (c) << 7) --#elif (LCD_BPP == LCD_COLOR8) || (LCD_BPP == LCD_COLOR16) -+#elif (LCD_BPP == LCD_COLOR8) || (LCD_BPP == LCD_COLOR16) || (LCD_BPP == LCD_COLOR32) - # define COLOR_MASK(c) (c) - #else - # error Unsupported LCD BPP. --- -1.7.9.5 - diff --git a/package/boot/uboot-xburst/patches/0006-enable-silent-console.patch b/package/boot/uboot-xburst/patches/0006-enable-silent-console.patch deleted file mode 100644 index ebd6a6a7bf..0000000000 --- a/package/boot/uboot-xburst/patches/0006-enable-silent-console.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 5eb4d4c598f2806bd1b3d1140e917bfead7851ad Mon Sep 17 00:00:00 2001 -From: Xiangfu -Date: Wed, 10 Oct 2012 23:51:26 +0800 -Subject: [PATCH 6/6] enable silent console - ---- - common/console.c | 16 ++++++++++++++++ - include/configs/qi_lb60.h | 2 ++ - 2 files changed, 18 insertions(+) - -diff --git a/common/console.c b/common/console.c -index 1177f7d..e8a2078 100644 ---- a/common/console.c -+++ b/common/console.c -@@ -685,6 +685,14 @@ done: - - gd->flags |= GD_FLG_DEVINIT; /* device initialization completed */ - -+#ifdef CONFIG_SILENT_CONSOLE -+ /* Check one more time the contents of the silent environment -+ * variable, because if the environment is loaded from NAND it was -+ * not available when console_init_f() was called */ -+ if (getenv("silent") != NULL) -+ gd->flags |= GD_FLG_SILENT; -+#endif -+ - stdio_print_current_devices(); - - #ifdef CONFIG_SYS_CONSOLE_ENV_OVERWRITE -@@ -760,6 +768,14 @@ int console_init_r(void) - - gd->flags |= GD_FLG_DEVINIT; /* device initialization completed */ - -+#ifdef CONFIG_SILENT_CONSOLE -+ /* Check one more time the contents of the silent environment -+ * variable, because if the environment is loaded from NAND it was -+ * not available when console_init_f() was called */ -+ if (getenv("silent") != NULL) -+ gd->flags |= GD_FLG_SILENT; -+#endif -+ - stdio_print_current_devices(); - - /* Setting environment variables */ -diff --git a/include/configs/qi_lb60.h b/include/configs/qi_lb60.h -index d3e78ad..a3534ff 100644 ---- a/include/configs/qi_lb60.h -+++ b/include/configs/qi_lb60.h -@@ -102,6 +102,8 @@ - #define CONFIG_SYS_NO_FLASH - #define CONFIG_SYS_FLASH_BASE 0 /* init flash_base as 0 */ - -+#define CONFIG_SILENT_CONSOLE 1 /* Enable silent console */ -+ - /* - * Command line configuration - */ --- -1.7.9.5 - diff --git a/package/kernel/linux/modules/netdevices.mk b/package/kernel/linux/modules/netdevices.mk index 99d85ab049..bd9a1a10f2 100644 --- a/package/kernel/linux/modules/netdevices.mk +++ b/package/kernel/linux/modules/netdevices.mk @@ -446,6 +446,7 @@ endef $(eval $(call KernelPackage,ne2k-pci)) + define KernelPackage/e1000 SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=Intel(R) PRO/1000 PCI cards kernel support diff --git a/package/kernel/mac80211/files/regdb.txt b/package/kernel/mac80211/files/regdb.txt index c4a9b2d15f..d583887602 100644 --- a/package/kernel/mac80211/files/regdb.txt +++ b/package/kernel/mac80211/files/regdb.txt @@ -85,12 +85,20 @@ country AT: DFS-ETSI # 60 GHz band channels 1-4, ref: Etsi En 302 567 (57000 - 66000 @ 2160), (40) +# Source: +# https://www.legislation.gov.au/Details/F2016C00432 +# Both DFS-ETSI and DFS-FCC are acceptable per AS/NZS 4268 Appendix B. +# The EIRP for DFS bands can be increased by 3dB if TPC is implemented. +# In order to allow 80MHz operation between 5650-5730MHz the upper boundary +# of this more restrictive band has been shifted up by 5MHz from 5725MHz. country AU: DFS-ETSI - (2402 - 2482 @ 40), (20) - (5170 - 5250 @ 80), (17), AUTO-BW - (5250 - 5330 @ 80), (24), DFS, AUTO-BW - (5490 - 5710 @ 160), (24), DFS - (5735 - 5835 @ 80), (30) + (2400 - 2483.5 @ 40), (36) + (5150 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW + (5250 - 5350 @ 80), (20), NO-OUTDOOR, AUTO-BW, DFS + (5470 - 5600 @ 80), (27), DFS + (5650 - 5730 @ 80), (27), DFS + (5730 - 5850 @ 80), (36) + (57000 - 66000 @ 2160), (43), NO-OUTDOOR country AW: DFS-ETSI (2402 - 2482 @ 40), (20) @@ -230,9 +238,9 @@ country BZ: DFS-JP country CA: DFS-FCC (2402 - 2472 @ 40), (30) - (5170 - 5250 @ 80), (17), AUTO-BW - (5250 - 5330 @ 80), (24), DFS, AUTO-BW - (5490 - 5600 @ 80), (24), DFS + (5150 - 5250 @ 80), (23), AUTO-BW + (5250 - 5350 @ 80), (24), DFS, AUTO-BW + (5470 - 5600 @ 80), (24), DFS (5650 - 5730 @ 80), (24), DFS (5735 - 5835 @ 80), (30) @@ -580,11 +588,10 @@ country IL: DFS-ETSI (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW (5250 - 5350 @ 80), (200 mW), NO-OUTDOOR, DFS, AUTO-BW -country IN: DFS-JP +country IN: (2402 - 2482 @ 40), (20) - (5170 - 5250 @ 80), (20), AUTO-BW - (5250 - 5330 @ 80), (20), DFS, AUTO-BW - (5735 - 5835 @ 80), (20) + (5150 - 5350 @ 160), (23) + (5725 - 5875 @ 80), (23) country IR: DFS-JP (2402 - 2482 @ 40), (20) diff --git a/package/kernel/om-watchdog/Makefile b/package/kernel/om-watchdog/Makefile index 7d517a11eb..403069b816 100644 --- a/package/kernel/om-watchdog/Makefile +++ b/package/kernel/om-watchdog/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=om-watchdog -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_VERSION:=1 include $(INCLUDE_DIR)/package.mk @@ -24,12 +24,6 @@ define Package/om-watchdog/description This package contains the hw watchdog script for the OM1P and OM2P device. endef -define Build/Prepare -endef - -define Build/Compile -endef - define Build/Compile endef @@ -40,6 +34,4 @@ define Package/om-watchdog/install $(INSTALL_BIN) ./files/om-watchdog $(1)/sbin/om-watchdog endef - $(eval $(call BuildPackage,om-watchdog)) - diff --git a/package/kernel/om-watchdog/files/om-watchdog.init b/package/kernel/om-watchdog/files/om-watchdog.init index 4ba6beafb6..906ee665fd 100644 --- a/package/kernel/om-watchdog/files/om-watchdog.init +++ b/package/kernel/om-watchdog/files/om-watchdog.init @@ -16,37 +16,46 @@ get_gpio() { local board=$(ar71xx_board_name) case "$board" in - "om2p" | \ - "om2pv4" | \ - "om2p-hs" | \ - "om2p-hsv2" | \ - "om2p-hsv3" | \ - "om2p-hsv4" | \ - "om5p-acv2") - return 12 - ;; - "om2pv2" | \ - "om2p-lc") - return 26 - ;; - "om5p" | \ - "om5p-an") - return 11 - ;; - "om5p-ac") - return 17 - ;; - "mr600v2") - return 15 - ;; - "mr900" | \ - "mr900v2" | \ - "mr1750" | \ - "mr1750v2" | \ - "a40" | \ - "a60") - return 16 - ;; + "a40"|\ + "a60"|\ + "mr1750"|\ + "mr1750v2"|\ + "mr900"|\ + "mr900v2") + return 16 + ;; + "mr600v2") + return 15 + ;; + "om2p"|\ + "om2p-hs"|\ + "om2p-hsv2"|\ + "om2p-hsv3"|\ + "om2p-hsv4"|\ + "om2pv4"|\ + "om5p-acv2") + return 12 + ;; + "om2p-lc"|\ + "om2pv2") + return 26 + ;; + "om5p"|\ + "om5p-an") + return 11 + ;; + "om5p-ac") + return 17 + ;; + esac + elif [ -r /lib/ramips.sh ]; then + . /lib/ramips.sh + local board=$(ramips_board_name) + + case "$board" in + "rut5xx") + return 11 + ;; esac else #we assume it is om1p in this case diff --git a/package/libs/uclient/Makefile b/package/libs/uclient/Makefile index 2c4c626236..3eefa2e012 100644 --- a/package/libs/uclient/Makefile +++ b/package/libs/uclient/Makefile @@ -5,9 +5,9 @@ PKG_RELEASE=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(LEDE_GIT)/project/uclient.git -PKG_SOURCE_DATE:=2017-09-06 -PKG_SOURCE_VERSION:=24d6eded73dec427fc4a3a20cc73c94227f59c31 -PKG_MIRROR_HASH:=e884ae0c859baa20a5c7f3d924022f8e1f57d28474dbe5fed1efb8fb97790dd0 +PKG_SOURCE_DATE:=2017-11-02 +PKG_SOURCE_VERSION:=4b87d83160fec70d50b7fcd736a8c538c28a016c +PKG_MIRROR_HASH:=4bbb4d5f295ebdcd67fec87a6794168bea2176a42cb2907c47d8566fb33dafb3 CMAKE_INSTALL:=1 PKG_BUILD_DEPENDS:=ustream-ssl diff --git a/package/luci/.buildpath b/package/luci/.buildpath deleted file mode 100644 index 81fa6469ec..0000000000 --- a/package/luci/.buildpath +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/package/luci/.cproject b/package/luci/.cproject deleted file mode 100644 index e1a4774106..0000000000 --- a/package/luci/.cproject +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/package/luci/.project b/package/luci/.project deleted file mode 100644 index 11b398b269..0000000000 --- a/package/luci/.project +++ /dev/null @@ -1,78 +0,0 @@ - - - luci - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - ?name? - - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.autoBuildTarget - all - - - org.eclipse.cdt.make.core.buildArguments - - - - org.eclipse.cdt.make.core.buildCommand - make - - - org.eclipse.cdt.make.core.cleanBuildTarget - clean - - - org.eclipse.cdt.make.core.contents - org.eclipse.cdt.make.core.activeConfigSettings - - - org.eclipse.cdt.make.core.enableAutoBuild - false - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.fullBuildTarget - all - - - org.eclipse.cdt.make.core.stopOnError - true - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.core.cnature - org.eclipse.dltk.lua.core.nature - - diff --git a/package/luci/CONTRIBUTING.md b/package/luci/CONTRIBUTING.md deleted file mode 100644 index e4edf0c151..0000000000 --- a/package/luci/CONTRIBUTING.md +++ /dev/null @@ -1,62 +0,0 @@ -# Contributing Guidelines - -## Patches and Pull requests: - -If you want to contribute a change to LuCI, please either send a patch using git send-email -or open a "pull request" against the openwrt/luci repository. - -Regardless of whether you send a patch or open a pull request, please try to follow these rules: - -* Have a useful subject prefixed with the component name - (E.g.: "luci-mod-admin-full: fix wifi channel selection on multiple STA networks") -* Shortly explain the changes made and - if applicable - the reasoning behind them -* Commit message of each commit should include a Signed-off-by line - (See ) - -In case you like to send patches by mail, please use the [LuCI mailinglist](https://lists.subsignal.org/mailman/listinfo/luci) -or the [OpenWrt Development List](https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel). - -If you send via the OpenWrt list, include a "[luci]" tag in your subject line. -For general information on patch submission, follow the [OpenWrt patch submission guideline](https://dev.openwrt.org/wiki/SubmittingPatches). - -## Advice on pull requests: - -Pull requests are the easiest way to contribute changes to git repos at Github. They are the preferred contribution method, as they offer a nice way for commenting and amending the proposed changes. - -* You need a local "fork" of the Github repo. -* Use a "feature branch" for your changes. That separates the changes in the pull request from your other changes and makes it easy to edit/amend commits in the pull request. Workflow using "feature_x" as the example: - - Update your local git fork to the tip (of the master, usually) - - Create the feature branch with `git checkout -b feature_x` - - Edit changes and commit them locally - - Push them to your Github fork by `git push -u origin feature_x`. That creates the "feature_x" branch at your Github fork and sets it as the remote of this branch - - When you now visit Github, you should see a proposal to create a pull request - -* If you later need to add new commits to the pull request, you can simply commit the changes to the local branch and then use `git push` to automatically update the pull request. - -* If you need to change something in the existing pull request (e.g. to add a missing signed-off-by line to the commit message), you can use `git push -f` to overwrite the original commits. That is easy and safe when using a feature branch. Example workflow: - - Checkout the feature branch by `git checkout feature_x` - - Edit changes and commit them locally. If you are just updating the commit message in the last commit, you can use `git commit --amend` to do that - - If you added several new commits or made other changes that require cleaning up, you can use `git rebase -i HEAD~X` (X = number of commits to edit) to possibly squash some commits - - Push the changed commits to Github with `git push -f` to overwrite the original commits in the "feature_x" branch with the new ones. The pull request gets automatically updated - -## If you have commit access: - -* Do NOT use git push --force. -* Use Pull Requests if you are unsure and to suggest changes to other developers. - -## Gaining commit access: - -* Commit access will be granted to responsible contributors who have made - useful pull requests and / or feedback or patches to this repository or - OpenWrt in general. Please include your request for commit access in your - next pull request or ticket. - -## Release Branches: - -* Branches named "for-XX.YY" or "luci-X.Y" (e.g. "for-15.05") are release branches. -* These branches are built with the respective OpenWrt release and are created - during the release stabilisation phase. -* Please ONLY cherry-pick or commit security and bug-fixes to these branches. -* Do NOT add new packages and do NOT do major upgrades of packages here. -* If you are unsure if your change is suitable, please use a pull request. - diff --git a/package/luci/README.md b/package/luci/README.md deleted file mode 100644 index 48863a4591..0000000000 --- a/package/luci/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# OpenWrt luci feed - -## Description - -This is the OpenWrt "luci"-feed containing LuCI - OpenWrt Configuration Interface. - -## Usage - -This feed is enabled by default. Your feeds.conf.default (or feeds.conf) should contain a line like: -``` -src-git luci https://github.com/openwrt/luci.git -``` - -To install all its package definitions, run: -``` -./scripts/feeds update luci -./scripts/feeds install -a -p luci -``` - -## API Reference - -You can browse the generated API documentation [directly on Github](http://htmlpreview.github.io/?http://raw.githubusercontent.com/openwrt/luci/master/documentation/api/index.html). - -## Development - -Documentation for developing and extending LuCI can be found [in the Wiki](https://github.com/openwrt/luci/wiki) - -## License - -See [LICENSE](LICENSE) file. - -## Package Guidelines - -See [CONTRIBUTING.md](CONTRIBUTING.md) file. diff --git a/package/luci/THANKYOU b/package/luci/THANKYOU deleted file mode 100644 index f0519bd8bf..0000000000 --- a/package/luci/THANKYOU +++ /dev/null @@ -1,26 +0,0 @@ -I'd like to thank the following people for contributing to this software: - -* Anton Popov - - for rewriting the openwrt.org theme - -* Florian Fainelli (OpenWrt) - - for the french translation - -* Alina Friedrichsen - - for the reworked translation system, help on standards compliance and accessibility - -* Yanira - - several applications and bugreports - - -Also a big thank you goes to: - -* Mono (Freifunk Halle) - - for donating a Linksys WRT54GL for development purposes - -* tetzlav (Freifunk Leipzig) - - for donating several boards for testing and his feedback - -* Mickey (Freifunk Hannover) - - for his feedback and fixes for the OpenWrt builds - diff --git a/package/luci/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua b/package/luci/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua index e2ef1ef214..4bb404c25c 100644 --- a/package/luci/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua +++ b/package/luci/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua @@ -9,9 +9,9 @@ local dump = util.ubus("network.interface", "dump", {}) local json = require("luci.jsonc") local adbinput = uci.get("adblock", "global", "adb_rtfile") or "/tmp/adb_runtime.json" -if not uci:get_first("adblock", "adblock", "adb_trigger") then - m = SimpleForm("error", nil, translate("Please update your adblock config file to use this package. ") - .. translatef("In OPKG use the '--force-maintainer' option to overwrite the pre-existing config file or download a fresh default config from " +if not uci:get("adblock", "extra") then + m = SimpleForm("", nil, translate("Please update your adblock config file to use this package.
") + .. translatef("During opkg package installation use the '--force-maintainer' option to overwrite the pre-existing config file or download a fresh default config from " .. "" .. "here", "https://raw.githubusercontent.com/openwrt/packages/master/net/adblock/files/adblock.conf")) m.submit = false @@ -23,16 +23,10 @@ m = Map("adblock", translate("Adblock"), translate("Configuration of the adblock package to block ad/abuse domains by using DNS. ") .. translatef("For further information " .. "" - .. "see online documentation", "https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md")) + .. "check the online documentation", "https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md")) function m.on_after_commit(self) - function e4.validate(self, value) - if value == "0" then - luci.sys.call("/etc/init.d/adblock reload >/dev/null 2>&1") - else - luci.sys.call("/etc/init.d/adblock start >/dev/null 2>&1") - end - end + luci.sys.call("/etc/init.d/adblock reload >/dev/null 2>&1") luci.http.redirect(luci.dispatcher.build_url("admin", "services", "adblock")) end @@ -44,7 +38,7 @@ local parse = json.parse(fs.readfile(adbinput) or "") if parse then status = parse.data.adblock_status version = parse.data.adblock_version - domains = parse.data.blocked_domains + domains = parse.data.overall_domains fetch = parse.data.fetch_utility backend = parse.data.dns_backend rundate = parse.data.last_rundate @@ -82,14 +76,13 @@ o2 = s:option(ListValue, "adb_dns", translate("DNS Backend (DNS Directory)"), .. translate("To overwrite the default path use the 'DNS Directory' option in the extra section below.")) o2:value("dnsmasq", "dnsmasq (/tmp/dnsmasq.d)") o2:value("unbound", "unbound (/var/lib/unbound)") -o2:value("named", "bind (/var/lib/bind)") +o2:value("named", "named (/var/lib/bind)") o2:value("kresd", "kresd (/etc/kresd)") o2:value("dnscrypt-proxy","dnscrypt-proxy (/tmp)") -o2.default = "dnsmasq" o2.rmempty = false o3 = s:option(ListValue, "adb_trigger", translate("Startup Trigger"), - translate("List of available network interfaces. By default the startup will be triggered by the 'wan' interface.
") + translate("List of available network interfaces. Usually the startup will be triggered by the 'wan' interface.
") .. translate("Choose 'none' to disable automatic startups, 'timed' to use a classic timeout (default 30 sec.) or select another trigger interface.")) o3:value("none") o3:value("timed") @@ -149,7 +142,7 @@ else dv4.value = backend end -dv5 = s:option(DummyValue, "", translate("Overall Blocked Domains")) +dv5 = s:option(DummyValue, "", translate("Overall Domains")) dv5.template = "adblock/runtime" if parse == nil then dv5.value = translate("n/a") @@ -170,7 +163,7 @@ end bl = m:section(TypedSection, "source", translate("Blocklist Sources"), translate("Available blocklist sources. ") .. translate("List URLs and Shallalist category selections are configurable in the 'Advanced' section.
") - .. translate("Caution: Please don't select big lists or many lists at once on low memory devices to prevent OOM exceptions!")) + .. translate("Caution: To prevent OOM exceptions on low memory devices with less than 64 MB free RAM, please do not select too many lists - 5-6 should be sufficient!")) bl.template = "cbi/tblsection" name = bl:option(Flag, "enabled", translate("Enabled")) @@ -185,12 +178,11 @@ function ssl.cfgvalue(self, section) return translate("No") end end - des = bl:option(DummyValue, "adb_src_desc", translate("Description")) -- Extra options -e = m:section(NamedSection, "global", "adblock", translate("Extra Options"), +e = m:section(NamedSection, "extra", "adblock", translate("Extra Options"), translate("Options for further tweaking in case the defaults are not suitable for you.")) e1 = e:option(Flag, "adb_debug", translate("Verbose Debug Logging"), @@ -204,34 +196,47 @@ e2.default = e2.disabled e2.rmempty = false e3 = e:option(Flag, "adb_forcesrt", translate("Force Overall Sort"), - translate("Enable memory intense overall sort / duplicate removal on low memory devices (< 64 MB RAM)")) + translate("Enable memory intense overall sort / duplicate removal on low memory devices (< 64 MB free RAM)")) e3.default = e3.disabled e3.rmempty = false -e4 = e:option(Flag, "adb_manmode", translate("Manual / Backup mode"), - translate("Do not automatically update blocklists during startup, use blocklist backups instead.")) +e4 = e:option(Flag, "adb_backup", translate("Enable Blocklist Backup"), + translate("Create compressed blocklist backups, they will be used in case of download errors or during startup in backup mode.")) e4.default = e4.disabled e4.rmempty = false -e5 = e:option(Flag, "adb_backup", translate("Enable Blocklist Backup"), - translate("Create compressed blocklist backups, they will be used in case of download errors or during startup in manual mode.")) -e5.default = e5.disabled -e5.rmempty = false +e5 = e:option(Value, "adb_backupdir", translate("Backup Directory"), + translate("Target directory for adblock backups. Please use only non-volatile disks, e.g. an external usb stick.")) +e5:depends("adb_backup", 1) +e5.datatype = "directory" +e5.default = "/mnt" +e5.rmempty = true -e6 = e:option(Value, "adb_backupdir", translate("Backup Directory"), - translate("Target directory for adblock backups. Please use only non-volatile disks, no ram/tmpfs drives.")) -e6.datatype = "directory" -e6.default = "/mnt" -e6.rmempty = false +e6 = e:option(Flag, "adb_backup_mode", translate("Backup Mode"), + translate("Do not automatically update blocklists during startup, use blocklist backups instead.")) +e6:depends("adb_backup", 1) +e6.default = e6.disabled +e6.rmempty = true -e7 = e:option(Value, "adb_dnsdir", translate("DNS Directory"), +e7 = e:option(Flag, "adb_whitelist_mode", translate("Whitelist Mode"), + translate("Block access to all domains except those explicitly listed in the whitelist file.")) +e7.default = e7.disabled +e7.rmempty = true + +e8 = e:option(Value, "adb_dnsdir", translate("DNS Directory"), translate("Target directory for the generated blocklist 'adb_list.overall'.")) -e7.datatype = "directory" -e7.optional = true +e8.datatype = "directory" +e8.optional = true -e8 = e:option(Value, "adb_triggerdelay", translate("Trigger Delay"), +e9 = e:option(Value, "adb_whitelist", translate("Whitelist File"), + translate("Full path to the whitelist file.")) +e9.datatype = "file" +e9.default = "/etc/adblock/adblock.whitelist" +e9.optional = true + +e10 = e:option(Value, "adb_triggerdelay", translate("Trigger Delay"), translate("Additional trigger delay in seconds before adblock processing begins.")) -e8.datatype = "range(1,60)" -e8.optional = true +e10.datatype = "range(1,60)" +e10.optional = true return m diff --git a/package/luci/applications/luci-app-adblock/luasrc/view/adblock/config_css.htm b/package/luci/applications/luci-app-adblock/luasrc/view/adblock/config_css.htm index 53493a18fb..2233a15e31 100644 --- a/package/luci/applications/luci-app-adblock/luasrc/view/adblock/config_css.htm +++ b/package/luci/applications/luci-app-adblock/luasrc/view/adblock/config_css.htm @@ -6,5 +6,8 @@ font-size: 12px; font-family: monospace; resize: none; + white-space: pre; + overflow-wrap: normal; + overflow-x: scroll; } diff --git a/package/luci/applications/luci-app-adblock/po/it/adblock.po b/package/luci/applications/luci-app-adblock/po/it/adblock.po index 1901228634..af3414c997 100644 --- a/package/luci/applications/luci-app-adblock/po/it/adblock.po +++ b/package/luci/applications/luci-app-adblock/po/it/adblock.po @@ -38,15 +38,21 @@ msgstr "Fonti lista di blocco disponibili." msgid "Backup Directory" msgstr "Directory del Backup" +msgid "Backup Mode" +msgstr "" + +msgid "" +"Block access to all domains except those explicitly listed in the whitelist " +"file." +msgstr "" + msgid "Blocklist Sources" msgstr "Fonti lista di Blocco" msgid "" -"Caution: Please don't select big lists or many lists at once on low memory " -"devices to prevent OOM exceptions!" +"Caution: To prevent OOM exceptions on low memory devices with less than 64 " +"MB free RAM, please do not select too many lists - 5-6 should be sufficient!" msgstr "" -"Attenzione: Per favore non selezionare grandi liste o molte liste alla volta " -"su dispositivi con poca memoria per prevenire errori OOM!" msgid "" "Choose 'none' to disable automatic startups, 'timed' to use a classic " @@ -66,10 +72,8 @@ msgstr "" msgid "" "Create compressed blocklist backups, they will be used in case of download " -"errors or during startup in manual mode." +"errors or during startup in backup mode." msgstr "" -"Crea i backup compressi delle liste di blocco, saranno usati in caso di " -"errori di download o durante l'avvio in modalità manuale." msgid "DNS Backend (DNS Directory)" msgstr "" @@ -90,6 +94,12 @@ msgstr "" msgid "Download Utility (SSL Library)" msgstr "" +msgid "" +"During opkg package installation use the '--force-maintainer' option to " +"overwrite the pre-existing config file or download a fresh default config " +"from here" +msgstr "" + msgid "Edit Blacklist" msgstr "Modifica Lista Nera" @@ -107,10 +117,8 @@ msgstr "Attiva Backup Lista di Blocco" msgid "" "Enable memory intense overall sort / duplicate removal on low memory devices " -"(< 64 MB RAM)" +"(< 64 MB free RAM)" msgstr "" -"Attiva l'ordinamento globale / rimozione duplicati stressante per la memoria " -"su dispositivi con poca memoria (< 64 MB RAM)" msgid "Enable verbose debug logging in case of any processing error." msgstr "" @@ -130,11 +138,9 @@ msgstr "" "adatta, p.e. 'libustream-ssl' o wget 'built-in'." msgid "" -"For further information see online " +"For further information check the online " "documentation" msgstr "" -"Per ulteriori informazioni vedi " -"documentazione online" msgid "Force Local DNS" msgstr "Forza DNS Locale" @@ -142,14 +148,8 @@ msgstr "Forza DNS Locale" msgid "Force Overall Sort" msgstr "Forza Ordinamento Globale" -msgid "" -"In OPKG use the '--force-maintainer' option to overwrite the pre-existing " -"config file or download a fresh default config from here" +msgid "Full path to the whitelist file." msgstr "" -"In OPKG usa l'opzione '--force-maintainer' per sovrascrivere il pre-" -"esistente file di configurazione o scarica una nuova configurazione di " -"default da qui" msgid "Input file not found, please check your configuration." msgstr "File di input non trovato, per favore controlla la tua configurazione." @@ -168,11 +168,9 @@ msgstr "" "nella sezione 'Avanzato'.
" msgid "" -"List of available network interfaces. By default the startup will be " -"triggered by the 'wan' interface.
" +"List of available network interfaces. Usually the startup will be triggered " +"by the 'wan' interface.
" msgstr "" -"Lista delle interfacce di rete disponibili. Per default l'avvio sarà " -"innescato dall'interfaccia 'wan'.
" msgid "" "List of supported DNS backends with their default list export directory.
" msgstr "" -"Per favore aggiorna il tuo file configurazione di adblock per usare questo " -"pacchetto." msgid "Query" msgstr "Interrogazione" @@ -250,11 +243,9 @@ msgid "Suspend / Resume Adblock" msgstr "Sospendi / Riprendi Adblock" msgid "" -"Target directory for adblock backups. Please use only non-volatile disks, no " -"ram/tmpfs drives." +"Target directory for adblock backups. Please use only non-volatile disks, e." +"g. an external usb stick." msgstr "" -"Directory per i backup di adblock. Per favore usa solo dischi non volatili, " -"non dischi ram/tmpfs." msgid "Target directory for the generated blocklist 'adb_list.overall'." msgstr "Directory per la lista di blocco generata 'adb_list.overall'." @@ -318,6 +309,12 @@ msgstr "Vedi Registro" msgid "Waiting for command to complete..." msgstr "Aspettando che il comando venga completato..." +msgid "Whitelist File" +msgstr "" + +msgid "Whitelist Mode" +msgstr "" + msgid "Yes" msgstr "Sì" @@ -335,3 +332,65 @@ msgstr "n/d" msgid "paused" msgstr "in pausa" + +#~ msgid "" +#~ "Caution: Please don't select big lists or many lists at once on low " +#~ "memory devices to prevent OOM exceptions!" +#~ msgstr "" +#~ "Attenzione: Per favore non selezionare grandi liste o molte liste alla " +#~ "volta su dispositivi con poca memoria per prevenire errori OOM!" + +#~ msgid "" +#~ "Create compressed blocklist backups, they will be used in case of " +#~ "download errors or during startup in manual mode." +#~ msgstr "" +#~ "Crea i backup compressi delle liste di blocco, saranno usati in caso di " +#~ "errori di download o durante l'avvio in modalità manuale." + +#~ msgid "" +#~ "Enable memory intense overall sort / duplicate removal on low memory " +#~ "devices (< 64 MB RAM)" +#~ msgstr "" +#~ "Attiva l'ordinamento globale / rimozione duplicati stressante per la " +#~ "memoria su dispositivi con poca memoria (< 64 MB RAM)" + +#~ msgid "" +#~ "For further information see online " +#~ "documentation" +#~ msgstr "" +#~ "Per ulteriori informazioni vedi " +#~ "documentazione online" + +#~ msgid "" +#~ "In OPKG use the '--force-maintainer' option to overwrite the pre-existing " +#~ "config file or download a fresh default config from here" +#~ msgstr "" +#~ "In OPKG usa l'opzione '--force-maintainer' per sovrascrivere il pre-" +#~ "esistente file di configurazione o scarica una nuova configurazione di " +#~ "default da qui" + +#~ msgid "" +#~ "List of available network interfaces. By default the startup will be " +#~ "triggered by the 'wan' interface.
" +#~ msgstr "" +#~ "Lista delle interfacce di rete disponibili. Per default l'avvio sarà " +#~ "innescato dall'interfaccia 'wan'.
" + +#~ msgid "Manual / Backup mode" +#~ msgstr "Modalità Manuale / Backup" + +#~ msgid "Overall Blocked Domains" +#~ msgstr "Totale Domini Bloccati" + +#~ msgid "Please update your adblock config file to use this package." +#~ msgstr "" +#~ "Per favore aggiorna il tuo file configurazione di adblock per usare " +#~ "questo pacchetto." + +#~ msgid "" +#~ "Target directory for adblock backups. Please use only non-volatile disks, " +#~ "no ram/tmpfs drives." +#~ msgstr "" +#~ "Directory per i backup di adblock. Per favore usa solo dischi non " +#~ "volatili, non dischi ram/tmpfs." diff --git a/package/luci/applications/luci-app-adblock/po/ja/adblock.po b/package/luci/applications/luci-app-adblock/po/ja/adblock.po index 86ff36379d..becef993fd 100644 --- a/package/luci/applications/luci-app-adblock/po/ja/adblock.po +++ b/package/luci/applications/luci-app-adblock/po/ja/adblock.po @@ -8,7 +8,7 @@ msgstr "" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.3\n" +"X-Generator: Poedit 2.0.4\n" "Language: ja\n" msgid "-------" @@ -38,15 +38,25 @@ msgstr "利用可能なブロックリスト提供元です。" msgid "Backup Directory" msgstr "バックアップ先 ディレクトリ" +msgid "Backup Mode" +msgstr "バックアップ モード" + +msgid "" +"Block access to all domains except those explicitly listed in the whitelist " +"file." +msgstr "" +"ホワイトリストに列記されていない全ドメインへのアクセスをブロックします。" + msgid "Blocklist Sources" msgstr "ブロックリスト提供元" msgid "" -"Caution: Please don't select big lists or many lists at once on low memory " -"devices to prevent OOM exceptions!" +"Caution: To prevent OOM exceptions on low memory devices with less than 64 " +"MB free RAM, please do not select too many lists - 5-6 should be sufficient!" msgstr "" -"警告: メモリー容量の小さいデバイスでは OutOfMemory (OOM) 例外を防ぐため、大き" -"いリストや一度にたくさんのリストを選択しないでください。" +"警告: RAM の空き容量が 64MB に満たないメモリー容量の小さいデバイスでは、 " +"OutOfMemory (OOM) 例外を防ぐために、多くのリストを選択しないようにしてくださ" +"い。5 - 6個のリストで十分です。" msgid "" "Choose 'none' to disable automatic startups, 'timed' to use a classic " @@ -67,11 +77,11 @@ msgstr "" msgid "" "Create compressed blocklist backups, they will be used in case of download " -"errors or during startup in manual mode." +"errors or during startup in backup mode." msgstr "" "圧縮されたブロックリストのバックアップを作成します。これは、リストのダウン" -"ロードがエラーの場合、またはマニュアル モードでサービスを起動時に使用されま" -"す。" +"ロードがエラーの場合、またはバックアップ モードでサービスを起動した場合に使用" +"されます。" msgid "DNS Backend (DNS Directory)" msgstr "DNS バックエンド(DNS ディレクトリ)" @@ -92,6 +102,15 @@ msgstr "" msgid "Download Utility (SSL Library)" msgstr "ダウンロード ユーティリティ(SSL ライブラリ)" +msgid "" +"During opkg package installation use the '--force-maintainer' option to " +"overwrite the pre-existing config file or download a fresh default config " +"from here" +msgstr "" +"opkg でパッケージをインストールする際に '--force-maintainer' オプションを使用" +"して既存の設定ファイルを上書きするか、 ここ" +" からデフォルトの設定ファイルをダウンロードしてください。" + msgid "Edit Blacklist" msgstr "ブラックリストの編集" @@ -109,10 +128,10 @@ msgstr "ブロックリスト バックアップの有効化" msgid "" "Enable memory intense overall sort / duplicate removal on low memory devices " -"(< 64 MB RAM)" +"(< 64 MB free RAM)" msgstr "" -"メモリー容量の少ないデバイス(RAM 64MB 未満)において、一時ファイル内の全体的" -"なソート及び重複の除去を有効にします。" +"メモリー容量の少ないデバイス(RAM 空き領域 64MB 未満)において、一時ファイル" +"内の全体的なソート及び重複の除去を有効にします。" msgid "Enable verbose debug logging in case of any processing error." msgstr "" @@ -132,11 +151,11 @@ msgstr "" "例: 'libustream-ssl' または wget 'built-in'" msgid "" -"For further information see online " +"For further information check the online " "documentation" msgstr "" -"詳細な情報はオンライン ドキュメントを確" -"認してください。" +"詳細な情報は オンライン ドキュメント を" +"確認してください。" msgid "Force Local DNS" msgstr "ローカル DNS の強制" @@ -144,14 +163,8 @@ msgstr "ローカル DNS の強制" msgid "Force Overall Sort" msgstr "全体ソートの強制" -msgid "" -"In OPKG use the '--force-maintainer' option to overwrite the pre-existing " -"config file or download a fresh default config from here" -msgstr "" -"OPKGで '--force-maintainer' オプションを使用して既存の設定ファイルを上書きす" -"るか、 ここ からデフォルトの設定ファイル" -"をダウンロードしてください。" +msgid "Full path to the whitelist file." +msgstr "ホワイトリスト ファイルへのフルパスです。" msgid "Input file not found, please check your configuration." msgstr "入力ファイルが見つかりません。設定を確認してください。" @@ -170,11 +183,11 @@ msgstr "" "で設定することができます。
" msgid "" -"List of available network interfaces. By default the startup will be " -"triggered by the 'wan' interface.
" +"List of available network interfaces. Usually the startup will be triggered " +"by the 'wan' interface.
" msgstr "" -"利用可能なネットワーク インターフェースの一覧です。デフォルトでは 'wan' イン" -"ターフェースによりスタートアップがトリガされます。" +"利用可能なネットワーク インターフェースの一覧です。通常、 'wan' インター" +"フェースによりスタートアップがトリガされます。
" msgid "" "List of supported DNS backends with their default list export directory.
" msgstr "" "このパッケージを使用するには、既存の Adblock 設定ファイルを更新してください。" +"
" msgid "Query" msgstr "検索" @@ -249,11 +260,11 @@ msgid "Suspend / Resume Adblock" msgstr "Adblock の一時停止 / 再開" msgid "" -"Target directory for adblock backups. Please use only non-volatile disks, no " -"ram/tmpfs drives." +"Target directory for adblock backups. Please use only non-volatile disks, e." +"g. an external usb stick." msgstr "" -"Adblock バックアップの保存先ディレクトリです。 RAM/tmpfs ドライブではなく、不" -"揮発性のドライブのみを使用してください。" +"Adblock バックアップの保存先ディレクトリです。 外部 USB フラッシュメモリなど" +"の不揮発性ドライブのみを使用してください。" msgid "Target directory for the generated blocklist 'adb_list.overall'." msgstr "生成されたブロックリスト 'adb_list.overall' の保存先ディレクトリです。" @@ -317,6 +328,12 @@ msgstr "ログファイルを見る" msgid "Waiting for command to complete..." msgstr "コマンド実行中です..." +msgid "Whitelist File" +msgstr "ホワイトリスト ファイル" + +msgid "Whitelist Mode" +msgstr "ホワイトリスト モード" + msgid "Yes" msgstr "はい" diff --git a/package/luci/applications/luci-app-adblock/po/pt-br/adblock.po b/package/luci/applications/luci-app-adblock/po/pt-br/adblock.po index b4c8675f07..f51791f48d 100644 --- a/package/luci/applications/luci-app-adblock/po/pt-br/adblock.po +++ b/package/luci/applications/luci-app-adblock/po/pt-br/adblock.po @@ -41,12 +41,20 @@ msgstr "Fontes de listas de bloqueio disponíveis." msgid "Backup Directory" msgstr "Diretório da cópia de segurança" +msgid "Backup Mode" +msgstr "" + +msgid "" +"Block access to all domains except those explicitly listed in the whitelist " +"file." +msgstr "" + msgid "Blocklist Sources" msgstr "Fontes de listas de bloqueio" msgid "" -"Caution: Please don't select big lists or many lists at once on low memory " -"devices to prevent OOM exceptions!" +"Caution: To prevent OOM exceptions on low memory devices with less than 64 " +"MB free RAM, please do not select too many lists - 5-6 should be sufficient!" msgstr "" msgid "" @@ -65,10 +73,8 @@ msgstr "" msgid "" "Create compressed blocklist backups, they will be used in case of download " -"errors or during startup in manual mode." +"errors or during startup in backup mode." msgstr "" -"Crie backups comprimidos das listas de bloqueio, eles serão usados em caso " -"de erro dedownload ou durante o início em modo manual." msgid "DNS Backend (DNS Directory)" msgstr "" @@ -89,6 +95,12 @@ msgstr "" msgid "Download Utility (SSL Library)" msgstr "Utilitário de Download (Biblioteca SSL)" +msgid "" +"During opkg package installation use the '--force-maintainer' option to " +"overwrite the pre-existing config file or download a fresh default config " +"from here" +msgstr "" + msgid "Edit Blacklist" msgstr "Editar Lista de Bloqueio" @@ -106,10 +118,8 @@ msgstr "Habilitar cópia de segurança da lista de bloqueio" msgid "" "Enable memory intense overall sort / duplicate removal on low memory devices " -"(< 64 MB RAM)" +"(< 64 MB free RAM)" msgstr "" -"Ativar tipo geral intenso de memória / duplicar remoção em dispositivos com " -"pouca memória (< 64 MB RAM)" msgid "Enable verbose debug logging in case of any processing error." msgstr "" @@ -128,11 +138,9 @@ msgstr "" "SSL adequada, e.x. 'libustream-ssl' ou o wget 'built-in'." msgid "" -"For further information see online " +"For further information check the online " "documentation" msgstr "" -"Para outras informações veja a documentação " -"online" msgid "Force Local DNS" msgstr "Force o DNS local" @@ -140,10 +148,7 @@ msgstr "Force o DNS local" msgid "Force Overall Sort" msgstr "Force Tipo Geral" -msgid "" -"In OPKG use the '--force-maintainer' option to overwrite the pre-existing " -"config file or download a fresh default config from here" +msgid "Full path to the whitelist file." msgstr "" msgid "Input file not found, please check your configuration." @@ -161,8 +166,8 @@ msgid "" msgstr "" msgid "" -"List of available network interfaces. By default the startup will be " -"triggered by the 'wan' interface.
" +"List of available network interfaces. Usually the startup will be triggered " +"by the 'wan' interface.
" msgstr "" msgid "" @@ -173,9 +178,6 @@ msgstr "" msgid "Loading" msgstr "Carregando" -msgid "Manual / Backup mode" -msgstr "Manual / Modo backup" - msgid "No" msgstr "Não" @@ -185,7 +187,7 @@ msgstr "" "Opções para aprimoramentos adicionais caso as opções padrão não sejam " "suficientes para você." -msgid "Overall Blocked Domains" +msgid "Overall Domains" msgstr "" msgid "Overview" @@ -199,7 +201,7 @@ msgstr "" msgid "Please edit this file directly in a terminal session." msgstr "Por favor edite esse arquivo direto em uma sessão de terminal." -msgid "Please update your adblock config file to use this package." +msgid "Please update your adblock config file to use this package.
" msgstr "" msgid "Query" @@ -233,8 +235,8 @@ msgid "Suspend / Resume Adblock" msgstr "Suspender / Resumir adblock" msgid "" -"Target directory for adblock backups. Please use only non-volatile disks, no " -"ram/tmpfs drives." +"Target directory for adblock backups. Please use only non-volatile disks, e." +"g. an external usb stick." msgstr "" msgid "Target directory for the generated blocklist 'adb_list.overall'." @@ -296,6 +298,12 @@ msgstr "Ver arquivo de log" msgid "Waiting for command to complete..." msgstr "Aguardando por comando para completar..." +msgid "Whitelist File" +msgstr "" + +msgid "Whitelist Mode" +msgstr "" + msgid "Yes" msgstr "Sim" @@ -314,6 +322,30 @@ msgstr "n/d" msgid "paused" msgstr "" +#~ msgid "" +#~ "Create compressed blocklist backups, they will be used in case of " +#~ "download errors or during startup in manual mode." +#~ msgstr "" +#~ "Crie backups comprimidos das listas de bloqueio, eles serão usados em " +#~ "caso de erro dedownload ou durante o início em modo manual." + +#~ msgid "" +#~ "Enable memory intense overall sort / duplicate removal on low memory " +#~ "devices (< 64 MB RAM)" +#~ msgstr "" +#~ "Ativar tipo geral intenso de memória / duplicar remoção em dispositivos " +#~ "com pouca memória (< 64 MB RAM)" + +#~ msgid "" +#~ "For further information see online " +#~ "documentation" +#~ msgstr "" +#~ "Para outras informações veja a " +#~ "documentação online" + +#~ msgid "Manual / Backup mode" +#~ msgstr "Manual / Modo backup" + #~ msgid "Blocked domains (overall)" #~ msgstr "Domínios bloqueados (total)" diff --git a/package/luci/applications/luci-app-adblock/po/sv/adblock.po b/package/luci/applications/luci-app-adblock/po/sv/adblock.po index 4cb932c601..503c5f6ef7 100644 --- a/package/luci/applications/luci-app-adblock/po/sv/adblock.po +++ b/package/luci/applications/luci-app-adblock/po/sv/adblock.po @@ -2,7 +2,7 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8\n" msgid "-------" -msgstr "" +msgstr "-------" msgid "Adblock" msgstr "Adblock" @@ -11,10 +11,10 @@ msgid "Adblock Logfile" msgstr "Adblock's loggfil" msgid "Adblock Status" -msgstr "" +msgstr "Status för Adblock" msgid "Adblock Version" -msgstr "Version för Adblock" +msgstr "Version av Adblock" msgid "Additional trigger delay in seconds before adblock processing begins." msgstr "" @@ -28,18 +28,29 @@ msgstr "Tillgängliga källor för blockeringslistor" msgid "Backup Directory" msgstr "Säkerhetskopiera mapp" +msgid "Backup Mode" +msgstr "" + +msgid "" +"Block access to all domains except those explicitly listed in the whitelist " +"file." +msgstr "" + msgid "Blocklist Sources" msgstr "Källor för blockeringslistor" msgid "" -"Caution: Please don't select big lists or many lists at once on low memory " -"devices to prevent OOM exceptions!" +"Caution: To prevent OOM exceptions on low memory devices with less than 64 " +"MB free RAM, please do not select too many lists - 5-6 should be sufficient!" msgstr "" msgid "" "Choose 'none' to disable automatic startups, 'timed' to use a classic " "timeout (default 30 sec.) or select another trigger interface." msgstr "" +"Välj 'inga' för att stänga av automatiska uppstarter, 'tidsinställd för att " +"använda ett klassiskt avbrott (30 sek. är standard) eller välj ett annat " +"utlösande gränssnitt." msgid "Collecting data..." msgstr "Samlar in data..." @@ -52,14 +63,14 @@ msgstr "" msgid "" "Create compressed blocklist backups, they will be used in case of download " -"errors or during startup in manual mode." +"errors or during startup in backup mode." msgstr "" msgid "DNS Backend (DNS Directory)" -msgstr "" +msgstr "DNS-bakände (DNS-mapp)" msgid "DNS Directory" -msgstr "" +msgstr "DNS-mapp" msgid "Description" msgstr "Beskrivning" @@ -74,6 +85,12 @@ msgstr "" msgid "Download Utility (SSL Library)" msgstr "Nerladdningsprogram (SSL-bibliotek)" +msgid "" +"During opkg package installation use the '--force-maintainer' option to " +"overwrite the pre-existing config file or download a fresh default config " +"from here" +msgstr "" + msgid "Edit Blacklist" msgstr "Redigera svartlista" @@ -91,7 +108,7 @@ msgstr "Aktivera säkerhetskopiering av blockeringslistan" msgid "" "Enable memory intense overall sort / duplicate removal on low memory devices " -"(< 64 MB RAM)" +"(< 64 MB free RAM)" msgstr "" msgid "Enable verbose debug logging in case of any processing error." @@ -109,11 +126,9 @@ msgid "" msgstr "" msgid "" -"For further information see online " +"For further information check the online " "documentation" msgstr "" -"För mer information se dokumentationen på " -"internet" msgid "Force Local DNS" msgstr "Tvinga lokal DNS" @@ -121,10 +136,7 @@ msgstr "Tvinga lokal DNS" msgid "Force Overall Sort" msgstr "" -msgid "" -"In OPKG use the '--force-maintainer' option to overwrite the pre-existing " -"config file or download a fresh default config from here" +msgid "Full path to the whitelist file." msgstr "" msgid "Input file not found, please check your configuration." @@ -135,7 +147,7 @@ msgid "Invalid domain specified!" msgstr "Ogiltig domän angiven!" msgid "Last Run" -msgstr "" +msgstr "Kördes senast" msgid "" "List URLs and Shallalist category selections are configurable in the " @@ -143,8 +155,8 @@ msgid "" msgstr "" msgid "" -"List of available network interfaces. By default the startup will be " -"triggered by the 'wan' interface.
" +"List of available network interfaces. Usually the startup will be triggered " +"by the 'wan' interface.
" msgstr "" msgid "" @@ -155,9 +167,6 @@ msgstr "" msgid "Loading" msgstr "Laddar" -msgid "Manual / Backup mode" -msgstr "Manuell / Säkerhetskopieringsläge" - msgid "No" msgstr "Nej" @@ -165,7 +174,7 @@ msgid "" "Options for further tweaking in case the defaults are not suitable for you." msgstr "" -msgid "Overall Blocked Domains" +msgid "Overall Domains" msgstr "" msgid "Overview" @@ -179,7 +188,7 @@ msgstr "" msgid "Please edit this file directly in a terminal session." msgstr "Vänligen redigera den här filen direkt i en terminal-session." -msgid "Please update your adblock config file to use this package." +msgid "Please update your adblock config file to use this package.
" msgstr "" msgid "Query" @@ -192,7 +201,7 @@ msgid "Redirect all DNS queries from 'lan' zone to the local resolver." msgstr "" msgid "Resume" -msgstr "" +msgstr "Återuppta" msgid "Runtime Information" msgstr "Information om körtid" @@ -204,17 +213,17 @@ msgid "Save" msgstr "Spara" msgid "Startup Trigger" -msgstr "" +msgstr "Uppstartslösare" msgid "Suspend" -msgstr "" +msgstr "Stäng av" msgid "Suspend / Resume Adblock" msgstr "Upphäv / Återuppta adblock" msgid "" -"Target directory for adblock backups. Please use only non-volatile disks, no " -"ram/tmpfs drives." +"Target directory for adblock backups. Please use only non-volatile disks, e." +"g. an external usb stick." msgstr "" msgid "Target directory for the generated blocklist 'adb_list.overall'." @@ -271,23 +280,51 @@ msgstr "Visa loggfil" msgid "Waiting for command to complete..." msgstr "Väntar på att kommandot ska slutföras..." +msgid "Whitelist File" +msgstr "" + +msgid "Whitelist Mode" +msgstr "" + msgid "Yes" msgstr "Ja" msgid "disabled" -msgstr "" +msgstr "inaktiverad" msgid "enabled" -msgstr "" +msgstr "aktiverad" msgid "error" -msgstr "" +msgstr "fel" msgid "n/a" msgstr "n/a" msgid "paused" -msgstr "" +msgstr "pausad" + +#~ msgid "" +#~ "Caution: Please don't select big lists or many lists at once on low " +#~ "memory devices to prevent OOM exceptions!" +#~ msgstr "" +#~ "Försiktig: Vänligen välj inte stora listor eller många listor på samma " +#~ "gång för enheter med lite minne för att undvika OOM-undantag!" + +#~ msgid "" +#~ "For further information see online " +#~ "documentation" +#~ msgstr "" +#~ "För mer information se dokumentationen " +#~ "på internet" + +#~ msgid "Manual / Backup mode" +#~ msgstr "Manuell / Säkerhetskopieringsläge" + +#~ msgid "Please update your adblock config file to use this package." +#~ msgstr "" +#~ "Vänligen uppdatera din adblock's konfigurationsfil till att använda det " +#~ "här paketet." #~ msgid "Blocked domains (overall)" #~ msgstr "Blockerade domäner (övergripande)" diff --git a/package/luci/applications/luci-app-adblock/po/templates/adblock.pot b/package/luci/applications/luci-app-adblock/po/templates/adblock.pot index c6ad66baa3..9698333515 100644 --- a/package/luci/applications/luci-app-adblock/po/templates/adblock.pot +++ b/package/luci/applications/luci-app-adblock/po/templates/adblock.pot @@ -28,12 +28,20 @@ msgstr "" msgid "Backup Directory" msgstr "" +msgid "Backup Mode" +msgstr "" + +msgid "" +"Block access to all domains except those explicitly listed in the whitelist " +"file." +msgstr "" + msgid "Blocklist Sources" msgstr "" msgid "" -"Caution: Please don't select big lists or many lists at once on low memory " -"devices to prevent OOM exceptions!" +"Caution: To prevent OOM exceptions on low memory devices with less than 64 " +"MB free RAM, please do not select too many lists - 5-6 should be sufficient!" msgstr "" msgid "" @@ -50,7 +58,7 @@ msgstr "" msgid "" "Create compressed blocklist backups, they will be used in case of download " -"errors or during startup in manual mode." +"errors or during startup in backup mode." msgstr "" msgid "DNS Backend (DNS Directory)" @@ -70,6 +78,12 @@ msgstr "" msgid "Download Utility (SSL Library)" msgstr "" +msgid "" +"During opkg package installation use the '--force-maintainer' option to " +"overwrite the pre-existing config file or download a fresh default config " +"from here" +msgstr "" + msgid "Edit Blacklist" msgstr "" @@ -87,7 +101,7 @@ msgstr "" msgid "" "Enable memory intense overall sort / duplicate removal on low memory devices " -"(< 64 MB RAM)" +"(< 64 MB free RAM)" msgstr "" msgid "Enable verbose debug logging in case of any processing error." @@ -105,7 +119,7 @@ msgid "" msgstr "" msgid "" -"For further information see online " +"For further information check the online " "documentation" msgstr "" @@ -115,10 +129,7 @@ msgstr "" msgid "Force Overall Sort" msgstr "" -msgid "" -"In OPKG use the '--force-maintainer' option to overwrite the pre-existing " -"config file or download a fresh default config from here" +msgid "Full path to the whitelist file." msgstr "" msgid "Input file not found, please check your configuration." @@ -136,8 +147,8 @@ msgid "" msgstr "" msgid "" -"List of available network interfaces. By default the startup will be " -"triggered by the 'wan' interface.
" +"List of available network interfaces. Usually the startup will be triggered " +"by the 'wan' interface.
" msgstr "" msgid "" @@ -148,9 +159,6 @@ msgstr "" msgid "Loading" msgstr "" -msgid "Manual / Backup mode" -msgstr "" - msgid "No" msgstr "" @@ -158,7 +166,7 @@ msgid "" "Options for further tweaking in case the defaults are not suitable for you." msgstr "" -msgid "Overall Blocked Domains" +msgid "Overall Domains" msgstr "" msgid "Overview" @@ -172,7 +180,7 @@ msgstr "" msgid "Please edit this file directly in a terminal session." msgstr "" -msgid "Please update your adblock config file to use this package." +msgid "Please update your adblock config file to use this package.
" msgstr "" msgid "Query" @@ -206,8 +214,8 @@ msgid "Suspend / Resume Adblock" msgstr "" msgid "" -"Target directory for adblock backups. Please use only non-volatile disks, no " -"ram/tmpfs drives." +"Target directory for adblock backups. Please use only non-volatile disks, e." +"g. an external usb stick." msgstr "" msgid "Target directory for the generated blocklist 'adb_list.overall'." @@ -258,6 +266,12 @@ msgstr "" msgid "Waiting for command to complete..." msgstr "" +msgid "Whitelist File" +msgstr "" + +msgid "Whitelist Mode" +msgstr "" + msgid "Yes" msgstr "" diff --git a/package/luci/applications/luci-app-adblock/po/zh-cn/adblock.po b/package/luci/applications/luci-app-adblock/po/zh-cn/adblock.po index d5f5104a05..08032cab04 100644 --- a/package/luci/applications/luci-app-adblock/po/zh-cn/adblock.po +++ b/package/luci/applications/luci-app-adblock/po/zh-cn/adblock.po @@ -1,20 +1,22 @@ # liushuyu , 2017. +# Yangfl , 2017. +# msgid "" msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2017-04-15 21:35-0600\n" -"Last-Translator: liushuyu \n" -"Language-Team: Chinese \n" +"PO-Revision-Date: 2017-10-28 16:06+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.1\n" +"X-Generator: Gtranslator 2.91.7\n" "Plural-Forms: nplurals=1; plural=0;\n" msgid "-------" -msgstr "" +msgstr "-------" msgid "Adblock" msgstr "Adblock" @@ -23,35 +25,45 @@ msgid "Adblock Logfile" msgstr "Adblock 日志文件" msgid "Adblock Status" -msgstr "" +msgstr "Adblock 状态" msgid "Adblock Version" msgstr "Adblock 版本" msgid "Additional trigger delay in seconds before adblock processing begins." -msgstr "" +msgstr "触发 Adblock 开始处理前的额外延迟(以秒为单位)。" msgid "Advanced" msgstr "高级" msgid "Available blocklist sources." -msgstr "可用的 blocklist 来源" +msgstr "可用的 blocklist 来源。" msgid "Backup Directory" msgstr "备份目录" +msgid "Backup Mode" +msgstr "" + +msgid "" +"Block access to all domains except those explicitly listed in the whitelist " +"file." +msgstr "" + msgid "Blocklist Sources" msgstr "拦截列表来源" msgid "" -"Caution: Please don't select big lists or many lists at once on low memory " -"devices to prevent OOM exceptions!" +"Caution: To prevent OOM exceptions on low memory devices with less than 64 " +"MB free RAM, please do not select too many lists - 5-6 should be sufficient!" msgstr "" msgid "" "Choose 'none' to disable automatic startups, 'timed' to use a classic " "timeout (default 30 sec.) or select another trigger interface." msgstr "" +"选择“none”以禁用自动启动,“timed”以使用默认的超时设定(默认 30 秒),或选择另" +"一个触发接口。" msgid "Collecting data..." msgstr "正在收集数据..." @@ -62,14 +74,14 @@ msgstr "Adblock 配置工具,通过 DNS 来拦截广告和阻止域名。" msgid "" "Create compressed blocklist backups, they will be used in case of download " -"errors or during startup in manual mode." +"errors or during startup in backup mode." msgstr "" msgid "DNS Backend (DNS Directory)" -msgstr "" +msgstr "DNS 后端(DNS 目录)" msgid "DNS Directory" -msgstr "" +msgstr "DNS 目录" msgid "Description" msgstr "描述" @@ -77,9 +89,15 @@ msgstr "描述" msgid "" "Do not automatically update blocklists during startup, use blocklist backups " "instead." -msgstr "" +msgstr "启动期间不要自动更新 blocklists,改用 blocklists 的备份。" msgid "Download Utility (SSL Library)" +msgstr "下载实用程序(SSL 库)" + +msgid "" +"During opkg package installation use the '--force-maintainer' option to " +"overwrite the pre-existing config file or download a fresh default config " +"from here" msgstr "" msgid "Edit Blacklist" @@ -92,21 +110,21 @@ msgid "Edit Whitelist" msgstr "编辑白名单" msgid "Enable Adblock" -msgstr "启用Adblock" +msgstr "启用 Adblock" msgid "Enable Blocklist Backup" -msgstr "启用拦截规则备份" +msgstr "启用 Blocklist 备份" msgid "" "Enable memory intense overall sort / duplicate removal on low memory devices " -"(< 64 MB RAM)" +"(< 64 MB free RAM)" msgstr "" msgid "Enable verbose debug logging in case of any processing error." -msgstr "" +msgstr "在出现任何处理错误的情况下启用详细调试日志记录。" msgid "Enabled" -msgstr "启用" +msgstr "已启用" msgid "Extra Options" msgstr "额外选项" @@ -115,62 +133,58 @@ msgid "" "For SSL protected blocklist sources you need a suitable SSL library, e.g. " "'libustream-ssl' or the wget 'built-in'." msgstr "" +"对于 SSL 保护的 blocklist 源,您需要一个合适的 SSL 库,例如'libustream-" +"ssl'或 wget'built-in'。" msgid "" -"For further information see online " +"For further information check the online " "documentation" msgstr "" msgid "Force Local DNS" -msgstr "" +msgstr "强制本地 DNS" msgid "Force Overall Sort" -msgstr "" +msgstr "强制整体排序" -msgid "" -"In OPKG use the '--force-maintainer' option to overwrite the pre-existing " -"config file or download a fresh default config from here" +msgid "Full path to the whitelist file." msgstr "" msgid "Input file not found, please check your configuration." -msgstr "" +msgstr "输入文件未找到,请检查您的配置。" msgid "Invalid domain specified!" msgstr "无效域名!" msgid "Last Run" -msgstr "" +msgstr "最后运行" msgid "" "List URLs and Shallalist category selections are configurable in the " "'Advanced' section.
" -msgstr "" +msgstr "列表 URL 和 Shallalist 类别选择可在“高级”选项卡中配置。
" msgid "" -"List of available network interfaces. By default the startup will be " -"triggered by the 'wan' interface.
" +"List of available network interfaces. Usually the startup will be triggered " +"by the 'wan' interface.
" msgstr "" msgid "" "List of supported DNS backends with their default list export directory.
" -msgstr "" +msgstr "支持的 DNS 后端列表及其默认列表导出目录。
" msgid "Loading" msgstr "加载中" -msgid "Manual / Backup mode" -msgstr "" - msgid "No" msgstr "否" msgid "" "Options for further tweaking in case the defaults are not suitable for you." -msgstr "在默认设置并不适合你时的额外选项。" +msgstr "在默认设置并不适合您时的额外选项。" -msgid "Overall Blocked Domains" +msgid "Overall Domains" msgstr "" msgid "Overview" @@ -180,89 +194,91 @@ msgid "" "Please add only one domain per line. Comments introduced with '#' are " "allowed - ip addresses, wildcards and regex are not." msgstr "" +"请每行只添加一个域。允许使用'#'开头的注释 - ip 地址、通配符和正则表达式都不" +"允许。" msgid "Please edit this file directly in a terminal session." -msgstr "" +msgstr "请在终端会话中直接编辑此文件。" -msgid "Please update your adblock config file to use this package." +msgid "Please update your adblock config file to use this package.
" msgstr "" msgid "Query" msgstr "查询" msgid "Query domains" -msgstr "" +msgstr "查询域" msgid "Redirect all DNS queries from 'lan' zone to the local resolver." -msgstr "" +msgstr "将所有 DNS 查询从“lan”区域重定向到本地解析器。" msgid "Resume" -msgstr "" +msgstr "恢复" msgid "Runtime Information" msgstr "运行信息" msgid "SSL req." -msgstr "" +msgstr "SSL 要求" msgid "Save" -msgstr "" +msgstr "保存" msgid "Startup Trigger" -msgstr "" +msgstr "启动触发器" msgid "Suspend" -msgstr "" +msgstr "暂停" msgid "Suspend / Resume Adblock" msgstr "暂停/恢复 Adblock" msgid "" -"Target directory for adblock backups. Please use only non-volatile disks, no " -"ram/tmpfs drives." +"Target directory for adblock backups. Please use only non-volatile disks, e." +"g. an external usb stick." msgstr "" msgid "Target directory for the generated blocklist 'adb_list.overall'." -msgstr "" +msgstr "生成的 blocklist 'adb_list.overall'的目标目录。" msgid "The file size is too large for online editing in LuCI (> 512 KB)." -msgstr "" +msgstr "文件大小太大,无法在 LuCI(> 512 KB)中进行在线编辑。" msgid "" "This form allows you to modify the content of the adblock blacklist (%s)." "
" -msgstr "" +msgstr "此表单允许您修改 adblock 黑名单(%s)的内容。
" msgid "" "This form allows you to modify the content of the adblock whitelist (%s)." "
" -msgstr "" +msgstr "此表单允许您修改 adblock 白名单(%s)的内容。
" msgid "" "This form allows you to modify the content of the main adblock configuration " "file (/etc/config/adblock)." -msgstr "" +msgstr "此表单允许您修改主要 adblock 配置文件(/etc/config/adblock)的内容。" msgid "" "This form allows you to query active block lists for certain domains, e.g. " "for whitelisting." -msgstr "" +msgstr "此表单允许您查询某些域的活动块列表,例如用于列出白名单。" msgid "" "This form shows the syslog output, pre-filtered for adblock related messages " "only." -msgstr "" +msgstr "此表单显示系统日志输出,仅针对 adblock 相关的消息进行了预筛选。" msgid "" "To overwrite the default path use the 'DNS Directory' option in the extra " "section below." -msgstr "" +msgstr "要覆盖默认路径,请使用下面额外部分中的“DNS 目录”选项。" msgid "Trigger Delay" msgstr "触发延迟" msgid "Verbose Debug Logging" -msgstr "" +msgstr "详细的调试记录" msgid "View Logfile" msgstr "查看日志文件" @@ -270,23 +286,79 @@ msgstr "查看日志文件" msgid "Waiting for command to complete..." msgstr "正在执行命令..." +msgid "Whitelist File" +msgstr "" + +msgid "Whitelist Mode" +msgstr "" + msgid "Yes" msgstr "是" msgid "disabled" -msgstr "" +msgstr "已禁用" msgid "enabled" -msgstr "" +msgstr "已启用" msgid "error" -msgstr "" +msgstr "错误" msgid "n/a" -msgstr "" +msgstr "不可用" msgid "paused" -msgstr "" +msgstr "已暂停" + +#~ msgid "" +#~ "Caution: Please don't select big lists or many lists at once on low " +#~ "memory devices to prevent OOM exceptions!" +#~ msgstr "" +#~ "注意:请勿在内存较小的设备上选择过长的列表或同时选择多个列表,以防止 OOM " +#~ "异常!" + +#~ msgid "" +#~ "Create compressed blocklist backups, they will be used in case of " +#~ "download errors or during startup in manual mode." +#~ msgstr "创建压缩的 blocklist 备份,它们将在下载错误或手动模式下启动时使用。" + +#~ msgid "" +#~ "Enable memory intense overall sort / duplicate removal on low memory " +#~ "devices (< 64 MB RAM)" +#~ msgstr "在低内存设备上启用耗用内存的整体排序/重复规则删除(<64 MB RAM)" + +#~ msgid "" +#~ "For further information see online " +#~ "documentation" +#~ msgstr "有关更多信息,请参阅在线文档" + +#~ msgid "" +#~ "In OPKG use the '--force-maintainer' option to overwrite the pre-existing " +#~ "config file or download a fresh default config from here" +#~ msgstr "" +#~ "在 OPKG 中,使用“--force-maintainer”选项覆盖预先存在的配置文件,或从此处下载新的默认配置" + +#~ msgid "" +#~ "List of available network interfaces. By default the startup will be " +#~ "triggered by the 'wan' interface.
" +#~ msgstr "可用网络接口列表。默认情况下,将由“wan”界面触发启动。
" + +#~ msgid "Manual / Backup mode" +#~ msgstr "手动/备份模式" + +#~ msgid "Overall Blocked Domains" +#~ msgstr "整体封锁域名" + +#~ msgid "Please update your adblock config file to use this package." +#~ msgstr "请更新您的 adblock 配置文件以使用此软件包。" + +#~ msgid "" +#~ "Target directory for adblock backups. Please use only non-volatile disks, " +#~ "no ram/tmpfs drives." +#~ msgstr "" +#~ "adblock 备份的目标目录。请仅使用非易失性磁盘,不使用 ram/tmpfs 驱动器。" #~ msgid "DNS backend" #~ msgstr "DNS 后端" diff --git a/package/luci/applications/luci-app-adblock/po/zh-tw/adblock.po b/package/luci/applications/luci-app-adblock/po/zh-tw/adblock.po new file mode 100644 index 0000000000..f838fa0432 --- /dev/null +++ b/package/luci/applications/luci-app-adblock/po/zh-tw/adblock.po @@ -0,0 +1,455 @@ +# liushuyu , 2017. +# Yangfl , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2017-10-28 16:06+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Gtranslator 2.91.7\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "-------" +msgstr "-------" + +msgid "Adblock" +msgstr "Adblock" + +msgid "Adblock Logfile" +msgstr "Adblock 日誌檔案" + +msgid "Adblock Status" +msgstr "Adblock 狀態" + +msgid "Adblock Version" +msgstr "Adblock 版本" + +msgid "Additional trigger delay in seconds before adblock processing begins." +msgstr "觸發 Adblock 開始處理前的額外延遲(以秒為單位)。" + +msgid "Advanced" +msgstr "高階" + +msgid "Available blocklist sources." +msgstr "可用的 blocklist 來源。" + +msgid "Backup Directory" +msgstr "備份目錄" + +msgid "Backup Mode" +msgstr "" + +msgid "" +"Block access to all domains except those explicitly listed in the whitelist " +"file." +msgstr "" + +msgid "Blocklist Sources" +msgstr "攔截列表來源" + +msgid "" +"Caution: To prevent OOM exceptions on low memory devices with less than 64 " +"MB free RAM, please do not select too many lists - 5-6 should be sufficient!" +msgstr "" + +msgid "" +"Choose 'none' to disable automatic startups, 'timed' to use a classic " +"timeout (default 30 sec.) or select another trigger interface." +msgstr "" +"選擇“none”以禁用自動啟動,“timed”以使用預設的超時設定(預設 30 秒),或選擇另" +"一個觸發介面。" + +msgid "Collecting data..." +msgstr "正在收集資料..." + +msgid "" +"Configuration of the adblock package to block ad/abuse domains by using DNS." +msgstr "Adblock 配置工具,通過 DNS 來攔截廣告和阻止域名。" + +msgid "" +"Create compressed blocklist backups, they will be used in case of download " +"errors or during startup in backup mode." +msgstr "" + +msgid "DNS Backend (DNS Directory)" +msgstr "DNS 後端(DNS 目錄)" + +msgid "DNS Directory" +msgstr "DNS 目錄" + +msgid "Description" +msgstr "描述" + +msgid "" +"Do not automatically update blocklists during startup, use blocklist backups " +"instead." +msgstr "啟動期間不要自動更新 blocklists,改用 blocklists 的備份。" + +msgid "Download Utility (SSL Library)" +msgstr "下載實用程式(SSL 庫)" + +msgid "" +"During opkg package installation use the '--force-maintainer' option to " +"overwrite the pre-existing config file or download a fresh default config " +"from here" +msgstr "" + +msgid "Edit Blacklist" +msgstr "編輯黑名單" + +msgid "Edit Configuration" +msgstr "編輯設定" + +msgid "Edit Whitelist" +msgstr "編輯白名單" + +msgid "Enable Adblock" +msgstr "啟用 Adblock" + +msgid "Enable Blocklist Backup" +msgstr "啟用 Blocklist 備份" + +msgid "" +"Enable memory intense overall sort / duplicate removal on low memory devices " +"(< 64 MB free RAM)" +msgstr "" + +msgid "Enable verbose debug logging in case of any processing error." +msgstr "在出現任何處理錯誤的情況下啟用詳細除錯日誌記錄。" + +msgid "Enabled" +msgstr "已啟用" + +msgid "Extra Options" +msgstr "額外選項" + +msgid "" +"For SSL protected blocklist sources you need a suitable SSL library, e.g. " +"'libustream-ssl' or the wget 'built-in'." +msgstr "" +"對於 SSL 保護的 blocklist 源,您需要一個合適的 SSL 庫,例如'libustream-" +"ssl'或 wget'built-in'。" + +msgid "" +"For further information check the online " +"documentation" +msgstr "" + +msgid "Force Local DNS" +msgstr "強制本地 DNS" + +msgid "Force Overall Sort" +msgstr "強制整體排序" + +msgid "Full path to the whitelist file." +msgstr "" + +msgid "Input file not found, please check your configuration." +msgstr "輸入檔案未找到,請檢查您的配置。" + +msgid "Invalid domain specified!" +msgstr "無效域名!" + +msgid "Last Run" +msgstr "最後執行" + +msgid "" +"List URLs and Shallalist category selections are configurable in the " +"'Advanced' section.
" +msgstr "列表 URL 和 Shallalist 類別選擇可在“高階”選項卡中配置。
" + +msgid "" +"List of available network interfaces. Usually the startup will be triggered " +"by the 'wan' interface.
" +msgstr "" + +msgid "" +"List of supported DNS backends with their default list export directory.
" +msgstr "支援的 DNS 後端列表及其預設列表匯出目錄。
" + +msgid "Loading" +msgstr "載入中" + +msgid "No" +msgstr "否" + +msgid "" +"Options for further tweaking in case the defaults are not suitable for you." +msgstr "在預設設定並不適合您時的額外選項。" + +msgid "Overall Domains" +msgstr "" + +msgid "Overview" +msgstr "總覽" + +msgid "" +"Please add only one domain per line. Comments introduced with '#' are " +"allowed - ip addresses, wildcards and regex are not." +msgstr "" +"請每行只新增一個域。允許使用'#'開頭的註釋 - ip 位址、萬用字元和正則表示式都" +"不允許。" + +msgid "Please edit this file directly in a terminal session." +msgstr "請在終端會話中直接編輯此檔案。" + +msgid "Please update your adblock config file to use this package.
" +msgstr "" + +msgid "Query" +msgstr "查詢" + +msgid "Query domains" +msgstr "查詢域" + +msgid "Redirect all DNS queries from 'lan' zone to the local resolver." +msgstr "將所有 DNS 查詢從“lan”區域重定向到本地解析器。" + +msgid "Resume" +msgstr "恢復" + +msgid "Runtime Information" +msgstr "執行資訊" + +msgid "SSL req." +msgstr "SSL 要求" + +msgid "Save" +msgstr "儲存" + +msgid "Startup Trigger" +msgstr "啟動觸發器" + +msgid "Suspend" +msgstr "暫停" + +msgid "Suspend / Resume Adblock" +msgstr "暫停/恢復 Adblock" + +msgid "" +"Target directory for adblock backups. Please use only non-volatile disks, e." +"g. an external usb stick." +msgstr "" + +msgid "Target directory for the generated blocklist 'adb_list.overall'." +msgstr "生成的 blocklist 'adb_list.overall'的目標目錄。" + +msgid "The file size is too large for online editing in LuCI (> 512 KB)." +msgstr "檔案大小太大,無法在 LuCI(> 512 KB)中進行線上編輯。" + +msgid "" +"This form allows you to modify the content of the adblock blacklist (%s)." +"
" +msgstr "此表單允許您修改 adblock 黑名單(%s)的內容。
" + +msgid "" +"This form allows you to modify the content of the adblock whitelist (%s)." +"
" +msgstr "此表單允許您修改 adblock 白名單(%s)的內容。
" + +msgid "" +"This form allows you to modify the content of the main adblock configuration " +"file (/etc/config/adblock)." +msgstr "此表單允許您修改主要 adblock 配置檔案(/etc/config/adblock)的內容。" + +msgid "" +"This form allows you to query active block lists for certain domains, e.g. " +"for whitelisting." +msgstr "此表單允許您查詢某些域的活動塊列表,例如用於列出白名單。" + +msgid "" +"This form shows the syslog output, pre-filtered for adblock related messages " +"only." +msgstr "此表單顯示系統日誌輸出,僅針對 adblock 相關的訊息進行了預篩選。" + +msgid "" +"To overwrite the default path use the 'DNS Directory' option in the extra " +"section below." +msgstr "要覆蓋預設路徑,請使用下面額外部分中的“DNS 目錄”選項。" + +msgid "Trigger Delay" +msgstr "觸發延遲" + +msgid "Verbose Debug Logging" +msgstr "詳細的除錯記錄" + +msgid "View Logfile" +msgstr "檢視日誌檔案" + +msgid "Waiting for command to complete..." +msgstr "正在執行命令..." + +msgid "Whitelist File" +msgstr "" + +msgid "Whitelist Mode" +msgstr "" + +msgid "Yes" +msgstr "是" + +msgid "disabled" +msgstr "已禁用" + +msgid "enabled" +msgstr "已啟用" + +msgid "error" +msgstr "錯誤" + +msgid "n/a" +msgstr "不可用" + +msgid "paused" +msgstr "已暫停" + +#~ msgid "" +#~ "Caution: Please don't select big lists or many lists at once on low " +#~ "memory devices to prevent OOM exceptions!" +#~ msgstr "" +#~ "注意:請勿在記憶體較小的裝置上選擇過長的列表或同時選擇多個列表,以防止 " +#~ "OOM 異常!" + +#~ msgid "" +#~ "Create compressed blocklist backups, they will be used in case of " +#~ "download errors or during startup in manual mode." +#~ msgstr "建立壓縮的 blocklist 備份,它們將在下載錯誤或手動模式下啟動時使用。" + +#~ msgid "" +#~ "Enable memory intense overall sort / duplicate removal on low memory " +#~ "devices (< 64 MB RAM)" +#~ msgstr "" +#~ "在低記憶體裝置上啟用耗用記憶體的整體排序/重複規則刪除(<64 MB RAM)" + +#~ msgid "" +#~ "For further information see online " +#~ "documentation" +#~ msgstr "有關更多資訊,請參閱線上文件" + +#~ msgid "" +#~ "In OPKG use the '--force-maintainer' option to overwrite the pre-existing " +#~ "config file or download a fresh default config from here" +#~ msgstr "" +#~ "在 OPKG 中,使用“--force-maintainer”選項覆蓋預先存在的配置檔案,或從此處下載新的預設配置" + +#~ msgid "" +#~ "List of available network interfaces. By default the startup will be " +#~ "triggered by the 'wan' interface.
" +#~ msgstr "可用網路介面列表。預設情況下,將由“wan”介面觸發啟動。
" + +#~ msgid "Manual / Backup mode" +#~ msgstr "手動/備份模式" + +#~ msgid "Overall Blocked Domains" +#~ msgstr "整體封鎖域名" + +#~ msgid "Please update your adblock config file to use this package." +#~ msgstr "請更新您的 adblock 配置檔案以使用此軟體包。" + +#~ msgid "" +#~ "Target directory for adblock backups. Please use only non-volatile disks, " +#~ "no ram/tmpfs drives." +#~ msgstr "" +#~ "adblock 備份的目標目錄。請僅使用非易失性磁碟,不使用 ram/tmpfs 驅動器。" + +#~ msgid "DNS backend" +#~ msgstr "DNS 後端" + +#~ msgid "Enable verbose debug logging" +#~ msgstr "啟用詳細除錯輸出" + +#~ msgid "Resume adblock" +#~ msgstr "恢復 Adblock" + +#~ msgid "Status" +#~ msgstr "狀態" + +#~ msgid "Suspend adblock" +#~ msgstr "暫停 Adblock" + +#~ msgid "active" +#~ msgstr "已啟用" + +#~ msgid "no domains blocked" +#~ msgstr "沒有被攔截的域名" + +#~ msgid "suspended" +#~ msgstr "已暫停" + +#~ msgid "." +#~ msgstr "." + +#~ msgid "For further information" +#~ msgstr "更多資訊" + +#~ msgid "see online documentation" +#~ msgstr "檢視線上文件" + +#~ msgid "Backup options" +#~ msgstr "備份選項" + +#~ msgid "" +#~ "). Note that list URLs and Shallalist category selections are not " +#~ "configurable via Luci." +#~ msgstr ")。需要注意的是列表URL和列表類別選項無法通過Luci設定。" + +#~ msgid "Available blocklist sources (" +#~ msgstr "可用攔截列表來源(" + +#~ msgid "" +#~ "File with whitelisted hosts/domains that are allowed despite being on a " +#~ "blocklist." +#~ msgstr "允許的主機/域名列表" + +#~ msgid "Global options" +#~ msgstr "全域性選項" + +#~ msgid "Whitelist file" +#~ msgstr "白名單檔案" + +#~ msgid "see list details" +#~ msgstr "檢視列表詳情" + +#~ msgid "Count" +#~ msgstr "數量" + +#~ msgid "IPv4 blackhole ip address" +#~ msgstr "IPv4禁止列表" + +#~ msgid "IPv6 blackhole ip address" +#~ msgstr "IPv6禁止列表" + +#~ msgid "List date/state" +#~ msgstr "列表日期/狀態" + +#~ msgid "Name of the logical lan interface" +#~ msgstr "LAN介面名稱" + +#~ msgid "Port of the adblock uhttpd instance" +#~ msgstr "Adblock uhttpd埠" + +#~ msgid "Redirect all DNS queries to the local resolver" +#~ msgstr "將所有DNS查詢都重定向到本地解析器" + +#~ msgid "Timeout for blocklist fetch (seconds)" +#~ msgstr "列表查詢超時時間(秒)" + +#~ msgid "Total count of blocked domains" +#~ msgstr "阻止域名總數" + +#~ msgid "" +#~ "When adblock is active, all DNS queries are redirected to the local " +#~ "resolver in this server by default. You can disable that to allow queries " +#~ "to external DNS servers." +#~ msgstr "" +#~ "當Adblock處於活動狀態時,預設情況下會將所有的DNS查詢重定向到此伺服器的本地" +#~ "解析器。您可以禁用以允許查詢外部DNS伺服器。" diff --git a/package/luci/applications/luci-app-advanced-reboot/po/sv/luci-app-advanced-reboot.po b/package/luci/applications/luci-app-advanced-reboot/po/sv/luci-app-advanced-reboot.po index cac09d76a6..20d77cbcf7 100644 --- a/package/luci/applications/luci-app-advanced-reboot/po/sv/luci-app-advanced-reboot.po +++ b/package/luci/applications/luci-app-advanced-reboot/po/sv/luci-app-advanced-reboot.po @@ -1,5 +1,5 @@ msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8" +msgstr "Content-Type: text/plain; charset=UTF-8\n" msgid "Action" msgstr "Åtgärd" @@ -74,9 +74,9 @@ msgid "" "might be necessary to renew the address of your computer to reach the device " "again, depending on your settings." msgstr "" -"Systemet stänger ner nu.
STÄNG INTE AV ENHETEN!
Beroende -"på dina inställningar så kan det vara nödvändigt att förnya din dators adress " -"för att nå enheten igen." +"Systemet stänger ner nu.
STÄNG INTE AV ENHETEN!
Beroende på dina " +"inställningar så kan det vara nödvändigt att förnya din dators adress för " +"att nå enheten igen." msgid "" "WARNING: An alternative partition might have its own settings and completely " @@ -94,12 +94,13 @@ msgid "" "support power off.

Click \"Proceed\" below to power off your " "device." msgstr "" -"VARNING: Att stänga av kan resultera i en omstart i en enhet som inte " -"har stöd för avstängning.

Klicka på \"Fortsätt\" nedanför för att stänga av din " -"enhet." +"VARNING: Att stänga av kan resultera i en omstart i en enhet som inte har " +"stöd för avstängning.

Klicka på \"Fortsätt\" nedanför för att " +"stänga av din enhet." msgid "Warning: There are unsaved changes that will get lost on reboot!" -msgstr "Varning: Det finns osparade ändringar som kommer att förloras vid omstart!" +msgstr "" +"Varning: Det finns osparade ändringar som kommer att förloras vid omstart!" msgid "Warning: This system does not have two partitions!" msgstr "Varning: Det här systemet har inte två partitioner!" diff --git a/package/luci/applications/luci-app-aria2/po/zh-cn/aria2.po b/package/luci/applications/luci-app-aria2/po/zh-cn/aria2.po index 823699d7bd..0b7eea21c7 100644 --- a/package/luci/applications/luci-app-aria2/po/zh-cn/aria2.po +++ b/package/luci/applications/luci-app-aria2/po/zh-cn/aria2.po @@ -1,200 +1,221 @@ -msgid "Aria2" +# +# Yangfl , 2017. +# +msgid "" msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"PO-Revision-Date: 2017-10-28 16:10+0800\n" +"X-Generator: Gtranslator 2.91.7\n" -msgid "Aria2 is a multi-protocol & multi-source download utility, here you can configure the settings." -msgstr "Aria2 是一个支持多协议多线程的下载器, 你可以在这里对其进行配置" - -msgid "Aria2 Status" -msgstr "Aria2 状态" +msgid "\"Falloc\" is not available in all cases." +msgstr "\"Falloc\" 并不是在所有情况下都可用" -msgid "Open YAAW" -msgstr "打开YAAW" +msgid "DHT enabled" +msgstr "启用DHT" -msgid "Open WebUI-Aria2" -msgstr "打开WebUI-Aria2" +msgid "LPD enabled" +msgstr "启用LPD" -msgid "The Aria2 service is running." -msgstr "Aria2 正在运行" +msgid "Additional Bt tracker enabled" +msgstr "添加额外的Tracker" -msgid "The Aria2 service is not running." -msgstr "Aria2 未运行" +msgid "Aria2" +msgstr "Aria2" msgid "Aria2 Settings" msgstr "Aria2 配置" -msgid "General settings" -msgstr "一般设置" - -msgid "Files and Locations" -msgstr "文件和目录" +msgid "Aria2 Status" +msgstr "Aria2 状态" -msgid "Enabled" -msgstr "启用" +msgid "" +"Aria2 is a multi-protocol & multi-source download utility, here you can " +"configure the settings." +msgstr "Aria2 是一个支持多协议多线程的下载器, 您可以在这里对其进行配置。" -msgid "Task Settings" -msgstr "任务设置" +msgid "Autosave session interval" +msgstr "定时保存会话间隔" msgid "BitTorrent Settings" -msgstr "BT设置" +msgstr "BitTorrent 设置" -msgid "Run daemon as user" -msgstr "以此用户权限运行" +msgid "BitTorrent listen port" +msgstr "BitTorrent 监听端口" -msgid "RPC port" -msgstr "RPC端口" +msgid "Collecting data..." +msgstr "正在收集数据..." -msgid "RPC authentication method" -msgstr "RPC认证方式" +msgid "Config file directory" +msgstr "配置文件目录" -msgid "No Authentication" -msgstr "无认证" +msgid "Debug" +msgstr "调试" -msgid "Username & Password" -msgstr "用户名与密码" +msgid "Default download directory" +msgstr "默认下载目录" -msgid "Token" -msgstr "令牌" +msgid "Disk cache" +msgstr "磁盘缓存" -msgid "RPC username" -msgstr "RPC用户名" +msgid "Enable log" +msgstr "启用日志" -msgid "RPC password" -msgstr "RPC密码" +msgid "Enabled" +msgstr "启用" -msgid "RPC Token" -msgstr "RPC令牌" +msgid "Error" +msgstr "错误" -msgid "Generate Randomly" -msgstr "随机生成" +msgid "Extra Settings" +msgstr "附加选项" -msgid "Enable log" -msgstr "启用日志" +msgid "Falloc" +msgstr "快速 alloc(Falloc)" -msgid "Log file is in the config file dir." -msgstr "日志文件在配置文件目录下" +msgid "Files and Locations" +msgstr "文件和目录" -msgid "Log level" -msgstr "日志记录等级" +msgid "Follow torrent" +msgstr "自动添加下载的种子" -msgid "Debug" -msgstr "调试" +msgid "General Settings" +msgstr "" + +msgid "Generate Randomly" +msgstr "随机生成" msgid "Info" msgstr "信息" -msgid "Notice" -msgstr "注意" +msgid "List of additional Bt tracker" +msgstr "附加 Bt tracker 列表" -msgid "Warn" -msgstr "警告" +msgid "List of extra settings" +msgstr "附加选项列表" -msgid "Error" -msgstr "错误" +msgid "Log file is in the config file dir." +msgstr "日志文件在配置文件目录下" -msgid "Config file directory" -msgstr "配置文件目录" +msgid "Log level" +msgstr "日志记录等级" -msgid "Default download directory" -msgstr "默认下载目录" +msgid "Max concurrent downloads" +msgstr "最大同时下载任务数" -msgid "Disk cache" -msgstr "磁盘缓存" +msgid "Max connection per server" +msgstr "单服务器最大连接数" -msgid "in bytes, You can append K or M." -msgstr "单位 B, 你可以在数字后跟上 K 或 M" +msgid "Max number of peers per torrent" +msgstr "单个种子最大连接数" -msgid "Preallocation" -msgstr "磁盘预分配" +msgid "Max number of split" +msgstr "单文件最大线程数" -msgid "Off" -msgstr "关闭" +msgid "Min split size" +msgstr "最小文件分片大小" -msgid "Prealloc" -msgstr "" +msgid "No Authentication" +msgstr "无认证" -msgid "Trunc" -msgstr "" +msgid "Notice" +msgstr "注意" -msgid "Falloc" -msgstr "" +msgid "Off" +msgstr "关闭" -msgid "\"Falloc\" is not available in all cases." -msgstr "\"Falloc\" 并不是在所有情况下都可用" +msgid "Open WebUI-Aria2" +msgstr "打开 WebUI-Aria2" -msgid "Overall speed limit enabled" -msgstr "启用全局限速" +msgid "Open YAAW" +msgstr "打开 YAAW" msgid "Overall download limit" msgstr "全局下载限速" -msgid "in bytes/sec, You can append K or M." -msgstr "单位 B/s, 你可以在数字后跟上 K 或 M" +msgid "Overall speed limit enabled" +msgstr "启用全局限速" msgid "Overall upload limit" msgstr "全局上传限速" -msgid "Per task speed limit enabled" -msgstr "启用单任务限速" - msgid "Per task download limit" msgstr "单任务下载限速" +msgid "Per task speed limit enabled" +msgstr "启用单任务限速" + msgid "Per task upload limit" msgstr "单任务上传限速" -msgid "Max concurrent downloads" -msgstr "最大同时下载任务数" +msgid "Prealloc" +msgstr "预分配" -msgid "Max connection per server" -msgstr "单服务器最大连接数" +msgid "Preallocation" +msgstr "磁盘预分配" -msgid "Min split size" -msgstr "最小文件分片大小" +msgid "Prefix of peer ID" +msgstr "Peer ID 前缀" -msgid "Max number of split" -msgstr "单文件最大线程数" +msgid "RPC Token" +msgstr "RPC 令牌" -msgid "Autosave session interval" -msgstr "定时保存会话间隔" +msgid "RPC authentication method" +msgstr "RPC 认证方式" -msgid "Sec" -msgstr "秒" +msgid "RPC password" +msgstr "RPC 密码" -msgid "User agent value" -msgstr "用户代理(UA)" +msgid "RPC port" +msgstr "RPC 端口" -msgid "DHT enabled" -msgstr "启用DHT" +msgid "RPC username" +msgstr "RPC 用户名" -msgid "LPD enabled" -msgstr "启用LPD" +msgid "Run daemon as user" +msgstr "以此用户权限运行" -msgid "Follow torrent" -msgstr "自动添加下载的种子" +msgid "Sec" +msgstr "秒" -msgid "BitTorrent listen port" -msgstr "BT监听端口" +msgid "Task Settings" +msgstr "任务设置" -msgid "Max number of peers per torrent" -msgstr "单个种子最大连接数" +msgid "The Aria2 service is not running." +msgstr "Aria2 未运行" -msgid "Additional Bt tracker enabled" -msgstr "添加额外的Tracker" +msgid "The Aria2 service is running." +msgstr "Aria2 正在运行" -msgid "List of additional Bt tracker" -msgstr "附加Tracker列表" +msgid "Token" +msgstr "令牌" -msgid "Prefix of peer ID" -msgstr "Peer ID前缀" +msgid "Trunc" +msgstr "" -msgid "Extra Settings" -msgstr "附加选项" +msgid "Use WebSocket" +msgstr "使用 WebSocket" -msgid "List of extra settings" -msgstr "附加选项列表" +msgid "User agent value" +msgstr "用户代理(UA)" + +msgid "Username & Password" +msgstr "用户名与密码" msgid "View Json-RPC URL" msgstr "查看 Json-RPC URL" -msgid "Use WebSocket" -msgstr "使用WebSocket" +msgid "Warn" +msgstr "警告" + +msgid "in bytes, You can append K or M." +msgstr "单位 B, 您可以在数字后跟上 K 或 M。" + +msgid "in bytes/sec, You can append K or M." +msgstr "单位 B/s, 您可以在数字后跟上 K 或 M。" + +#~ msgid "General settings" +#~ msgstr "基本设置" diff --git a/package/luci/applications/luci-app-aria2/po/zh-tw/aria2.po b/package/luci/applications/luci-app-aria2/po/zh-tw/aria2.po new file mode 100644 index 0000000000..d6782cf7fe --- /dev/null +++ b/package/luci/applications/luci-app-aria2/po/zh-tw/aria2.po @@ -0,0 +1,221 @@ +# +# Yangfl , 2017. +# +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"PO-Revision-Date: 2017-10-28 16:10+0800\n" +"X-Generator: Gtranslator 2.91.7\n" + +msgid "\"Falloc\" is not available in all cases." +msgstr "\"Falloc\" 並不是在所有情況下都可用" + +msgid "DHT enabled" +msgstr "啟用DHT" + +msgid "LPD enabled" +msgstr "啟用LPD" + +msgid "Additional Bt tracker enabled" +msgstr "新增額外的Tracker" + +msgid "Aria2" +msgstr "Aria2" + +msgid "Aria2 Settings" +msgstr "Aria2 配置" + +msgid "Aria2 Status" +msgstr "Aria2 狀態" + +msgid "" +"Aria2 is a multi-protocol & multi-source download utility, here you can " +"configure the settings." +msgstr "Aria2 是一個支援多協議多執行緒的下載器, 您可以在這裡對其進行配置。" + +msgid "Autosave session interval" +msgstr "定時儲存會話間隔" + +msgid "BitTorrent Settings" +msgstr "BitTorrent 設定" + +msgid "BitTorrent listen port" +msgstr "BitTorrent 監聽埠" + +msgid "Collecting data..." +msgstr "正在收集資料..." + +msgid "Config file directory" +msgstr "配置檔案目錄" + +msgid "Debug" +msgstr "除錯" + +msgid "Default download directory" +msgstr "預設下載目錄" + +msgid "Disk cache" +msgstr "磁碟快取" + +msgid "Enable log" +msgstr "啟用日誌" + +msgid "Enabled" +msgstr "啟用" + +msgid "Error" +msgstr "錯誤" + +msgid "Extra Settings" +msgstr "附加選項" + +msgid "Falloc" +msgstr "快速 alloc(Falloc)" + +msgid "Files and Locations" +msgstr "檔案和目錄" + +msgid "Follow torrent" +msgstr "自動新增下載的種子" + +msgid "General Settings" +msgstr "" + +msgid "Generate Randomly" +msgstr "隨機生成" + +msgid "Info" +msgstr "資訊" + +msgid "List of additional Bt tracker" +msgstr "附加 Bt tracker 列表" + +msgid "List of extra settings" +msgstr "附加選項列表" + +msgid "Log file is in the config file dir." +msgstr "日誌檔案在配置檔案目錄下" + +msgid "Log level" +msgstr "日誌記錄等級" + +msgid "Max concurrent downloads" +msgstr "最大同時下載任務數" + +msgid "Max connection per server" +msgstr "單伺服器最大連線數" + +msgid "Max number of peers per torrent" +msgstr "單個種子最大連線數" + +msgid "Max number of split" +msgstr "單檔案最大執行緒數" + +msgid "Min split size" +msgstr "最小檔案分片大小" + +msgid "No Authentication" +msgstr "無認證" + +msgid "Notice" +msgstr "注意" + +msgid "Off" +msgstr "關閉" + +msgid "Open WebUI-Aria2" +msgstr "開啟 WebUI-Aria2" + +msgid "Open YAAW" +msgstr "開啟 YAAW" + +msgid "Overall download limit" +msgstr "全域性下載限速" + +msgid "Overall speed limit enabled" +msgstr "啟用全侷限速" + +msgid "Overall upload limit" +msgstr "全域性上傳限速" + +msgid "Per task download limit" +msgstr "單任務下載限速" + +msgid "Per task speed limit enabled" +msgstr "啟用單任務限速" + +msgid "Per task upload limit" +msgstr "單任務上傳限速" + +msgid "Prealloc" +msgstr "預分配" + +msgid "Preallocation" +msgstr "磁碟預分配" + +msgid "Prefix of peer ID" +msgstr "Peer ID 字首" + +msgid "RPC Token" +msgstr "RPC 令牌" + +msgid "RPC authentication method" +msgstr "RPC 認證方式" + +msgid "RPC password" +msgstr "RPC 密碼" + +msgid "RPC port" +msgstr "RPC 埠" + +msgid "RPC username" +msgstr "RPC 使用者名稱" + +msgid "Run daemon as user" +msgstr "以此使用者許可權執行" + +msgid "Sec" +msgstr "秒" + +msgid "Task Settings" +msgstr "任務設定" + +msgid "The Aria2 service is not running." +msgstr "Aria2 未執行" + +msgid "The Aria2 service is running." +msgstr "Aria2 正在執行" + +msgid "Token" +msgstr "令牌" + +msgid "Trunc" +msgstr "" + +msgid "Use WebSocket" +msgstr "使用 WebSocket" + +msgid "User agent value" +msgstr "使用者代理(UA)" + +msgid "Username & Password" +msgstr "使用者名稱與密碼" + +msgid "View Json-RPC URL" +msgstr "檢視 Json-RPC URL" + +msgid "Warn" +msgstr "警告" + +msgid "in bytes, You can append K or M." +msgstr "單位 B, 您可以在數字後跟上 K 或 M。" + +msgid "in bytes/sec, You can append K or M." +msgstr "單位 B/s, 您可以在數字後跟上 K 或 M。" + +#~ msgid "General settings" +#~ msgstr "基本設定" diff --git a/package/luci/applications/luci-app-attendedsysupgrade/Makefile b/package/luci/applications/luci-app-attendedsysupgrade/Makefile index 8d7a6163de..dbb572bd28 100644 --- a/package/luci/applications/luci-app-attendedsysupgrade/Makefile +++ b/package/luci/applications/luci-app-attendedsysupgrade/Makefile @@ -4,7 +4,7 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI support for attended sysupgrades -LUCI_DEPENDS:=+luci-base +uhttpd-mod-ubus +rpcd-mod-attendedsysupgrade +LUCI_DEPENDS:=+luci-base +uhttpd-mod-ubus +attendedsysupgrade-common +cgi-io include ../../luci.mk diff --git a/package/luci/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm b/package/luci/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm index 1e423b49f0..4ea67ce70a 100644 --- a/package/luci/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm +++ b/package/luci/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm @@ -71,305 +71,449 @@ end apply_acls("/usr/share/rpcd/acl.d/attendedsysupgrade.json", luci.dispatcher.context.authsession) - apply_acls("/usr/share/rpcd/acl.d/packagelist.json", luci.dispatcher.context.authsession) %> <%+header%>

<%:Attended Sysupgrade%>

-
- - +
+ Easily search and install new releases and package upgrades. Sysupgrade firmware are created on demand based on locally installed packages.
- + + -
- -
- -
-
- - +

+ +

+
+
+
+ + + +
+
+ +
+
+
+
+
diff --git a/package/luci/applications/luci-app-attendedsysupgrade/root/etc/uci-defaults/40_luci-attendedsysupgrade b/package/luci/applications/luci-app-attendedsysupgrade/root/etc/uci-defaults/40_luci-attendedsysupgrade new file mode 100755 index 0000000000..832744f7d8 --- /dev/null +++ b/package/luci/applications/luci-app-attendedsysupgrade/root/etc/uci-defaults/40_luci-attendedsysupgrade @@ -0,0 +1,6 @@ +#!/bin/sh + +rm -rf /tmp/luci-indexcache /tmp/luci-modulecache/ +/etc/init.d/uhttpd restart + +return 0 diff --git a/package/luci/applications/luci-app-attendedsysupgrade/root/usr/share/rpcd/acl.d/attendedsysupgrade.json b/package/luci/applications/luci-app-attendedsysupgrade/root/usr/share/rpcd/acl.d/attendedsysupgrade.json new file mode 100644 index 0000000000..7549319260 --- /dev/null +++ b/package/luci/applications/luci-app-attendedsysupgrade/root/usr/share/rpcd/acl.d/attendedsysupgrade.json @@ -0,0 +1,31 @@ +{ + "attendedsysupgrade": { + "description": "attended sysupgrade via rpcd and luci", + "read": { + "ubus": { + "rpc-sys": [ + "upgrade_start", + "packagelist" + ], + "system": [ + "board", + "info" + ], + "uci": [ + "get", "set", "commit" + ] + }, + "uci": [ + "attendedsysupgrade" + ] + }, + "write": { + "cgi-io": [ + "upload" + ], + "uci": [ + "attendedsysupgrade" + ] + } + } +} diff --git a/package/luci/applications/luci-app-bcp38/po/zh-cn/bcp38.po b/package/luci/applications/luci-app-bcp38/po/zh-cn/bcp38.po index f9e0634b8b..45eff986b2 100644 --- a/package/luci/applications/luci-app-bcp38/po/zh-cn/bcp38.po +++ b/package/luci/applications/luci-app-bcp38/po/zh-cn/bcp38.po @@ -10,7 +10,7 @@ msgid "" "correctly, you can add exceptions manually below." msgstr "" "自动检测上游 IP 是否会被当前配置所阻止,当检测到会被阻止时将会添加例外。如果" -"自动检测无法正常工作,你可以在下面手动添加例外。" +"自动检测无法正常工作,您可以在下面手动添加例外。" msgid "Auto-detect upstream IP" msgstr "自动检测上游 IP" @@ -38,8 +38,8 @@ msgid "" "Takes precedence over blocked ranges. Use to whitelist your upstream network " "if you're behind a double NAT and the auto-detection doesn't work." msgstr "" -"这里的规则优先于阻止规则被使用。如果你在双重 NAT 之后并且自动检测功能不起作" -"用,请在这里添加你上游网络的白名单。" +"这里的规则优先于阻止规则被使用。如果您在双重 NAT 之后并且自动检测功能不起作" +"用,请在这里添加您上游网络的白名单。" msgid "" "This function blocks packets with private address destinations from going " diff --git a/package/luci/applications/luci-app-bcp38/po/zh-tw/bcp38.po b/package/luci/applications/luci-app-bcp38/po/zh-tw/bcp38.po new file mode 100644 index 0000000000..7900cb37f0 --- /dev/null +++ b/package/luci/applications/luci-app-bcp38/po/zh-tw/bcp38.po @@ -0,0 +1,52 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8\n" + +msgid "Allowed IP ranges" +msgstr "允許的 IP 範圍" + +msgid "" +"Attempt to automatically detect if the upstream IP will be blocked by the " +"configuration, and add an exception if it will. If this does not work " +"correctly, you can add exceptions manually below." +msgstr "" +"自動檢測上游 IP 是否會被當前配置所阻止,當檢測到會被阻止時將會新增例外。如果" +"自動檢測無法正常工作,您可以在下面手動新增例外。" + +msgid "Auto-detect upstream IP" +msgstr "自動檢測上游 IP" + +msgid "BCP38" +msgstr "BCP38" + +msgid "BCP38 config" +msgstr "BCP38 配置" + +msgid "Blocked IP ranges" +msgstr "阻止的 IP 範圍" + +msgid "Enable" +msgstr "啟用" + +msgid "Interface name" +msgstr "介面名稱" + +msgid "" +"Interface to apply the blocking to (should be the upstream WAN interface)." +msgstr "應用“阻止規則”的介面(應當為上游 WAN 介面)。" + +msgid "" +"Takes precedence over blocked ranges. Use to whitelist your upstream network " +"if you're behind a double NAT and the auto-detection doesn't work." +msgstr "" +"這裡的規則優先於阻止規則被使用。如果您在雙重 NAT 之後並且自動檢測功能不起作" +"用,請在這裡新增您上游網路的白名單。" + +msgid "" +"This function blocks packets with private address destinations from going " +"out onto the internet as per BCP 38. For IPv6, only source specific default routes are " +"installed, so no BCP38 firewall routes are needed." +msgstr "" +"此功能可以阻止具有私有目標位址的資料包通過 BCP 38 傳送到網際網路上。對於 IPv6,僅安裝源特定的預設路由,因" +"此不需要 BCP38 防火牆路由。" diff --git a/package/luci/applications/luci-app-commands/po/zh-tw/commands.po b/package/luci/applications/luci-app-commands/po/zh-tw/commands.po index f1f452518c..157c07695f 100644 --- a/package/luci/applications/luci-app-commands/po/zh-tw/commands.po +++ b/package/luci/applications/luci-app-commands/po/zh-tw/commands.po @@ -103,7 +103,7 @@ msgstr "" msgid "" "This page allows you to configure custom shell commands which can be easily " "invoked from the web interface." -msgstr "只要可以從web介輕易調用, 這頁面允許你自定shell指令." +msgstr "只要可以從web介輕易調用, 這頁面允許您自定shell指令." msgid "Waiting for command to complete..." msgstr "等待完整命令中..." diff --git a/package/luci/applications/luci-app-ddns/po/it/ddns.po b/package/luci/applications/luci-app-ddns/po/it/ddns.po index 3b9d5f48de..4b8d2f844e 100644 --- a/package/luci/applications/luci-app-ddns/po/it/ddns.po +++ b/package/luci/applications/luci-app-ddns/po/it/ddns.po @@ -725,7 +725,7 @@ msgid "missing / required" msgstr "mancante / richiesto" msgid "must be greater or equal 'Check Interval'" -msgstr "deve essere più grande o uguale "Controlla Intervallo'" +msgstr "deve essere più grande o uguale 'Controlla Intervallo'" msgid "must start with 'http://'" msgstr "deve iniziare con 'http://'" diff --git a/package/luci/applications/luci-app-ddns/po/zh-cn/ddns.po b/package/luci/applications/luci-app-ddns/po/zh-cn/ddns.po index 91bb756b37..f004f8282f 100644 --- a/package/luci/applications/luci-app-ddns/po/zh-cn/ddns.po +++ b/package/luci/applications/luci-app-ddns/po/zh-cn/ddns.po @@ -1,18 +1,22 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" "Project-Id-Version: luci-app-ddns 2.4.0-1\n" "POT-Creation-Date: 2016-01-30 11:07+0100\n" -"PO-Revision-Date: 2015-04-23 13:00+0800\n" -"Last-Translator: Syrone Wong \n" +"PO-Revision-Date: 2017-10-29 14:14+0800\n" +"Last-Translator: Yangfl \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 1.8.4\n" +"X-Generator: Gtranslator 2.91.7\n" +"Language-Team: \n" msgid "&" -msgstr "" +msgstr "&" msgid "-- custom --" msgstr "-- 自定义 --" @@ -24,7 +28,7 @@ msgid "Advanced Settings" msgstr "高级设置" msgid "Allow non-public IP's" -msgstr "允许非公网IP" +msgstr "允许非公网 IP" msgid "Applying changes" msgstr "正在应用更改" @@ -35,11 +39,11 @@ msgstr "基础设置" msgid "" "Below a list of configuration tips for your system to run Dynamic DNS " "updates without limitations" -msgstr "以下是一个能够让你的系统不受限制地进行动态DNS更新的设置贴士." +msgstr "以下是一个能够让您的系统不受限制地进行动态 DNS 更新设置的提示列表" msgid "" "Below is a list of configured DDNS configurations and their current state." -msgstr "一下是当前已经配置好的DDNS设置项列表以及它们的当前状态." +msgstr "以下是当前已经配置好的 DDNS 设置项列表以及它们的当前状态。" msgid "Bind Network" msgstr "使用的接口" @@ -50,23 +54,27 @@ msgstr "不支持绑定到一个指定的网络" msgid "" "BusyBox's nslookup and Wget do not support to specify the IP version to use " "for communication with DDNS Provider!" -msgstr "与DDNS供应商通讯时BusyBox的nslookup和Wget不支持设置特定的IP协议版本." +msgstr "" +"与 DDNS 供应商通讯时,BusyBox 的 nslookup 和 Wget 不支持设置特定的 IP 协议版" +"本。" msgid "" "BusyBox's nslookup and hostip do not support to specify to use TCP instead " "of default UDP when requesting DNS server!" msgstr "" +"向 DNS 服务器查询时,BusyBox 的 nslookup 和 hostip 不支持使用 TCP 而不是默认" +"的 UDP!" msgid "" "BusyBox's nslookup in the current compiled version does not handle given DNS " "Servers correctly!" -msgstr "" +msgstr "当前编译版本中 BusyBox 的 nslookup 在处理给定的 DNS 服务器不正确!" msgid "Casual users should not change this setting" msgstr "普通用户不应该改变这个设置" msgid "Change provider" -msgstr "" +msgstr "更改提供者" msgid "Check Interval" msgstr "检查时间周期" @@ -83,10 +91,10 @@ msgstr "设置" msgid "" "Configure here the details for all Dynamic DNS services including this LuCI " "application." -msgstr "在这里修改动态DNS服务的详细配置" +msgstr "在这里修改动态 DNS 服务的详细配置。" msgid "Configure here the details for selected Dynamic DNS service." -msgstr "在这里修改选择的DDNS服务的详细配置" +msgstr "在这里修改选择的 DDNS 服务的详细配置。" msgid "Current setting" msgstr "当前设置" @@ -96,76 +104,76 @@ msgid "" ">This is the default if you run DDNS scripts by yourself (i.e. via cron with " "force_interval set to '0')" msgstr "" -"现在,DDNS更新在开机或者接口动作时不会被触发
如果你手工运行DDNS脚本的话" -"(例如使用cron时把force_interval设置为0),这是默认设置." +"现在,DDNS 更新在开机或者接口动作时不会被触发。
如果您手工运行 DDNS 脚本" +"的话(例如使用 cron 时把 force_interval 设置为 0),这是默认设置。" msgid "" "Currently DDNS updates are not started at boot or on interface events.
You can start/stop each configuration here. It will run until next reboot." msgstr "" -"现在,DDNS更新在开机或者接口动作时不会被触发
你可以在这里开始/停止每一个" -"设置的条目.它在下次重启之前一直有效." +"现在,DDNS 更新在开机或者接口动作时不会被触发。
您可以在这里开始/停止每" +"一个设置的条目。它在下次重启之前一直有效。" msgid "Custom update script to be used for updating your DDNS Provider." -msgstr "用来更新动态DNS的自定义脚本" +msgstr "用来更新动态 DNS 的自定义脚本。" msgid "Custom update-URL" -msgstr "自定义更新URL" +msgstr "自定义更新 URL" msgid "Custom update-script" msgstr "自定义更新脚本" msgid "DDNS Autostart disabled" -msgstr "DDNS自动启动已禁用." +msgstr "DDNS 自动启动已禁用。" msgid "DDNS Client Configuration" -msgstr "" +msgstr "DDNS 客户端配置" msgid "DDNS Client Documentation" -msgstr "" +msgstr "DDNS 客户端文档" msgid "DDNS Service provider" -msgstr "DDNS服务提供商" +msgstr "DDNS 服务提供商" msgid "DNS requests via TCP not supported" -msgstr "不支持使用TCP进行DNS解析" +msgstr "不支持使用 TCP 进行 DNS 解析" msgid "DNS-Server" -msgstr "DNS服务器" +msgstr "DNS-服务器" msgid "Date format" msgstr "日期格式" msgid "Defines the Web page to read systems IPv4-Address from" -msgstr "设定用来读取系统IPv4地址的网页" +msgstr "设定用来读取系统 IPv4 地址的网页" msgid "Defines the Web page to read systems IPv6-Address from" -msgstr "设定用来读取系统IPv6地址的网页" +msgstr "设定用来读取系统 IPv6 地址的网页" msgid "Defines the interface to read systems IP-Address from" -msgstr "设定用来读取系统IP地址的接口" +msgstr "设定用来读取系统 IP 地址的接口" msgid "Defines the network to read systems IPv4-Address from" -msgstr "设定用来读取系统IPv4地址的网络" +msgstr "设定用来读取系统 IPv4 地址的网络" msgid "Defines the network to read systems IPv6-Address from" -msgstr "设定用来读取系统IPv6地址的网络" +msgstr "设定用来读取系统 IPv6 地址的网络" msgid "" "Defines the source to read systems IPv4-Address from, that will be send to " "the DDNS provider" -msgstr "设定IPv4地址的来源.这将会被发送给DDNS提供商" +msgstr "设定 IPv4 地址的来源。这将会被发送给 DDNS 提供商" msgid "" "Defines the source to read systems IPv6-Address from, that will be send to " "the DDNS provider" -msgstr "设定IPv6地址的来源.这将会被发送给DDNS提供商" +msgstr "设定 IPv6 地址的来源。这将会被发送给 DDNS 提供商" msgid "Defines which IP address 'IPv4/IPv6' is send to the DDNS provider" -msgstr "设定哪一个IP地址(IPv4或IPv6)会被发送给DDNS提供商" +msgstr "设定哪一个 IP 地址(IPv4 或 IPv6)会被发送给 DDNS 提供商" msgid "Details for" -msgstr "详情:" +msgstr "详情" msgid "Directory contains Log files for each running section" msgstr "保存每一个运行中的设置的运行日志的目录" @@ -178,18 +186,18 @@ msgid "Disabled" msgstr "已禁用" msgid "Domain" -msgstr "" +msgstr "域名" msgid "Dynamic DNS" -msgstr "动态DNS" +msgstr "动态 DNS" msgid "" "Dynamic DNS allows that your router can be reached with a fixed hostname " "while having a dynamically changing IP address." -msgstr "动态DNS允许为拥有动态IP的主机配置一个固定的可访问域名." +msgstr "动态 DNS 允许为拥有动态 IP 的主机配置一个固定的可访问域名。" msgid "Enable secure communication with DDNS provider" -msgstr "启用安全连接与DDNS供应商联系" +msgstr "启用安全连接与 DDNS 提供商联系" msgid "Enabled" msgstr "已启用" @@ -219,8 +227,8 @@ msgid "" "Follow this link
You will find more hints to optimize your system to " "run DDNS scripts with all options" msgstr "" -"打开这个链接
你将会得到更多关于如何通过所有设置项优化你的系统以运行DDNS" -"脚本的提示." +"打开这个链接
您将会得到更多关于如何通过所有设置项优化您的系统以运行 " +"DDNS 脚本的提示" msgid "For detailed information about parameter settings look here." msgstr "请看这里获得关于参数设置的详细信息" @@ -229,91 +237,92 @@ msgid "For supported codes look here" msgstr "查看这里获取支持的编码" msgid "Force IP Version" -msgstr "强制设定IP版本" +msgstr "强制设定 IP 版本" msgid "Force IP Version not supported" -msgstr "不支持强制设定IP版本" +msgstr "不支持强制设定 IP 版本" msgid "Force Interval" msgstr "设定周期" msgid "Force TCP on DNS" -msgstr "强制使用TCP进行DNS查询" +msgstr "强制使用 TCP 进行 DNS 查询" msgid "Forced IP Version don't matched" -msgstr "强制设定的IP版本不匹配" +msgstr "强制设定的 IP 版本不匹配" msgid "Format" msgstr "格式" msgid "Format: IP or FQDN" -msgstr "格式:IP或者FQDN" +msgstr "格式:IP 或者 FQDN" msgid "" "GNU Wget will use the IP of given network, cURL will use the physical " "interface." -msgstr "GNU Wget将会使用给定的网络的IP地址,而cURL将会使用物理接口" +msgstr "GNU Wget 将会使用给定的网络的 IP 地址,而 cURL 将会使用物理接口。" msgid "Global Settings" msgstr "全局设置" msgid "HTTPS not supported" -msgstr "不支持HTTPS" +msgstr "不支持 HTTPS" msgid "Hints" msgstr "提示" msgid "Hostname/FQDN to validate, if IP update happen or necessary" -msgstr "" +msgstr "主机名/FQDN 验证,如果 IP 更新发生或必要" msgid "IP address source" -msgstr "IP地址来源" +msgstr "IP 地址来源" msgid "IP address version" -msgstr "IP地址版本" +msgstr "IP 地址版本" msgid "IPv4-Address" -msgstr "IPv4地址" +msgstr "IPv4 地址" msgid "IPv6 address must be given in square brackets" -msgstr "IPv6地址必须填写在中括号(\"[ ]\")内" +msgstr "IPv6 地址必须填写在中括号(\"[ ]\")内" msgid "" "IPv6 is currently not (fully) supported by this system
Please follow " "the instructions on OpenWrt's homepage to enable IPv6 support
or update " "your system to the latest OpenWrt Release" msgstr "" -"当前系统暂时不能(完整地)支持IPv6
请查看OpenWrt首页的介绍以启用IPv6支持" -"
或者更新你的系统到最新OpenWrt版本" +"当前系统暂时不能(完整地)支持 IPv6
请查看 OpenWrt 首页的介绍以启用 " +"IPv6 支持
或者更新您的系统到最新 OpenWrt 版本" msgid "IPv6 not supported" -msgstr "IPv6不被支持" +msgstr "IPv6 不被支持" msgid "IPv6-Address" -msgstr "IPv6地址" +msgstr "IPv6 地址" msgid "If both cURL and GNU Wget are installed, Wget is used by default." -msgstr "如果cURL和GNU Wget同时被安装,那么Wget将会被优先使用." +msgstr "如果 cURL 和 GNU Wget 同时被安装,那么 Wget 将会被优先使用。" msgid "" "If this service section is disabled it could not be started.
Neither " "from LuCI interface nor from console" msgstr "" -"如果服务配置被禁用那么它将不能被启动.
无论是通过LuCI页面或者是通过终端." +"如果服务配置被禁用,那么它将不能被启动。
无论是通过 LuCI 页面或者是通过" +"终端。" msgid "If using secure communication you should verify server certificates!" -msgstr "" +msgstr "如果使用安全通信,您应该验证服务器证书!" msgid "" "If you want to send updates for IPv4 and IPv6 you need to define two " "separate Configurations i.e. 'myddns_ipv4' and 'myddns_ipv6'" msgstr "" -"如果你需要同时更新IPv4和IPv6地址,你需要单独添加两个配置项(例" -"如'myddns_ipv4'和'myddns_ipv6')" +"如果您需要同时更新 IPv4 和 IPv6 地址,您需要单独添加两个配置项(例" +"如'myddns_ipv4'和'myddns_ipv6')" msgid "" "In some versions cURL/libcurl in OpenWrt is compiled without proxy support." -msgstr "OpenWrt中,cURL/libcurl的某些版本编译时没有启用代理服务器支持" +msgstr "OpenWrt 中,cURL/libcurl 的某些版本编译时没有启用代理服务器支持" msgid "Info" msgstr "信息" @@ -322,6 +331,7 @@ msgid "" "Install 'ca-certificates' package or needed certificates by hand into /etc/" "ssl/certs default directory" msgstr "" +"手动将“ca-certificates”包或需要的证书安装到 /etc/ssl/certs 的默认目录中" msgid "Interface" msgstr "接口" @@ -329,18 +339,18 @@ msgstr "接口" msgid "" "Interval to check for changed IP
Values below 5 minutes == 300 seconds " "are not supported" -msgstr "检查IP是否改变的时间隔
不支持低于5分钟(300秒)的数值." +msgstr "检查 IP 是否改变的时间隔
不支持小于 5 分钟(300 秒)的数值。" msgid "" "Interval to force updates send to DDNS Provider
Setting this parameter " "to 0 will force the script to only run once
Values lower 'Check " "Interval' except '0' are not supported" msgstr "" -"强制向提供商更新DDNS的时间周期
把这个参数设置为0将会让脚本仅执行一次" -"
不支持低于\"检查时间周期\"的数值(除了0)." +"强制向提供商更新 DDNS 的时间周期
将这个参数设置为 0 则会让脚本仅执行一次" +"
不支持小于\"检查时间周期\"的数值(除了 0)。" msgid "It is NOT recommended for casual users to change settings on this page." -msgstr "强烈不建议初次使用的用户修改本页设定." +msgstr "强烈不建议初次使用的用户修改本页设定。" msgid "Last Update" msgstr "上次更新" @@ -364,26 +374,28 @@ msgid "Log to syslog" msgstr "把日志记录到系统日志" msgid "Lookup Hostname" -msgstr "" +msgstr "查询主机名" msgid "NOT installed" -msgstr "" +msgstr "未安装" msgid "" "Neither GNU Wget with SSL nor cURL installed to select a network to use for " "communication." -msgstr "包含SSL支持的GNU Wget或者cURL均未被安装.无法选择一个网络用于通信." +msgstr "包含 SSL 支持的 GNU Wget 或者 cURL 均未安装,无法选择网络用于通信。" msgid "" "Neither GNU Wget with SSL nor cURL installed to support secure updates via " "HTTPS protocol." msgstr "" +"包含 SSL 支持的 GNU Wget 或者 cURL 均未安装,无法通过 HTTPS 协议进行安全的更" +"新。" msgid "Network" msgstr "网络" msgid "Network on which the ddns-updater scripts will be started" -msgstr "DDNS更新脚本将会被运行于该网络" +msgstr "DDNS 更新脚本将会运行于该网络" msgid "Never" msgstr "从不" @@ -392,7 +404,7 @@ msgid "Next Update" msgstr "下次更新" msgid "No certificates found" -msgstr "" +msgstr "找不到证书" msgid "No data" msgstr "无数据" @@ -401,7 +413,7 @@ msgid "No logging" msgstr "无日志" msgid "Non-public and by default blocked IP's" -msgstr "非公网IP以及默认被锁定的IP" +msgstr "非公网 IP 以及默认被锁定的 IP" msgid "Notice" msgstr "提示" @@ -410,40 +422,40 @@ msgid "Number of last lines stored in log files" msgstr "日志文件中的最后几行" msgid "OPTIONAL: Force the usage of pure IPv4/IPv6 only communication." -msgstr "可选:强制使用仅IPv4/IPv6通信." +msgstr "可选:强制仅使用 IPv4/IPv6 通信。" msgid "OPTIONAL: Force the use of TCP instead of default UDP on DNS requests." -msgstr "可选:强制使用TCP而非UDP请求DNS." +msgstr "可选:强制使用 TCP 而非 UDP 请求 DNS。" msgid "OPTIONAL: Network to use for communication" -msgstr "可选:用于通信的网络" +msgstr "可选:用于通信的网络" msgid "OPTIONAL: Proxy-Server for detection and updates." -msgstr "可选:用于检测以及更新的代理服务器" +msgstr "可选:用于检测以及更新的代理服务器。" msgid "OPTIONAL: Use non-default DNS-Server to detect 'Registered IP'." -msgstr "可选:使用非默认DNS服务器检测\"已注册的IP地址\"" +msgstr "可选:使用非默认 DNS 服务器检测\"已注册的 IP 地址\"。" msgid "On Error the script will retry the failed action after given time" -msgstr "当出错时,脚本将会重试失败的动作的次数" +msgstr "当出错时,脚本将会重试失败的动作的次数" msgid "On Error the script will stop execution after given number of retrys" -msgstr "当出错时,脚本将会重试该次数之后退出" +msgstr "当出错时,脚本将会重试该次数之后退出" msgid "OpenWrt Wiki" -msgstr "" +msgstr "OpenWrt Wiki" msgid "Optional Encoded Parameter" -msgstr "" +msgstr "可选编码参数" msgid "Optional Parameter" -msgstr "" +msgstr "可选参数" msgid "Optional: Replaces [PARAMENC] in Update-URL (URL-encoded)" -msgstr "" +msgstr "可选:替换更新 URL(已编码 URL)中的 [PARAMENC]" msgid "Optional: Replaces [PARAMOPT] in Update-URL (NOT URL-encoded)" -msgstr "" +msgstr "可选:替换更新 URL(未编码 URL)中的 [PARAMENC]" msgid "Overview" msgstr "总览" @@ -458,7 +470,7 @@ msgid "Password" msgstr "密码" msgid "Path to CA-Certificate" -msgstr "CA证书路径" +msgstr "CA 证书路径" msgid "Please [Save & Apply] your changes first" msgstr "请先保存并应用您的设置" @@ -470,25 +482,25 @@ msgid "Please update to the current version!" msgstr "请更新到最新版本!" msgid "Process ID" -msgstr "处理ID" +msgstr "进程 ID" msgid "Read / Reread log file" msgstr "读取/重新读取日志文件" msgid "Really change DDNS provider?" -msgstr "" +msgstr "确定更改 DDNS 提供商吗?" msgid "Registered IP" -msgstr "已注册的IP地址" +msgstr "已注册的 IP 地址" msgid "Replaces [DOMAIN] in Update-URL" -msgstr "在更新URL中使用[DOMAIN]替换域名" +msgstr "替换更新 URL 中的 [DOMAIN]" msgid "Replaces [PASSWORD] in Update-URL (URL-encoded)" -msgstr "在更新URL中使用[PASSWORD]替换密码" +msgstr "替换更新 URL(已编码 URL)中的 [PASSWORD]" msgid "Replaces [USERNAME] in Update-URL (URL-encoded)" -msgstr "在更新URL中使用[USERNAME]替换用户名" +msgstr "替换更新 URL(已编码 URL)中的 [USERNAME]" msgid "Run once" msgstr "运行一次" @@ -503,13 +515,13 @@ msgid "Software update required" msgstr "需要进行软件更新" msgid "Specifying a DNS-Server is not supported" -msgstr "" +msgstr "不支持指定 DNS 服务器" msgid "Start" -msgstr "启用" +msgstr "启动" msgid "Start / Stop" -msgstr "启用/禁用" +msgstr "启动 / 停止" msgid "Status directory" msgstr "状态目录" @@ -523,7 +535,7 @@ msgid "" msgstr "当前已安装的'ddns-scripts'软件包暂不支持所有可用设置项" msgid "The default setting of '0' will retry infinite." -msgstr "" +msgstr "默认设置“0”将无限重试。" msgid "There is no service configured." msgstr "没有已经配置好的服务项" @@ -532,16 +544,16 @@ msgid "Timer Settings" msgstr "计时器设定" msgid "To change global settings click here" -msgstr "点击这里以更改全局设置" +msgstr "点击这里更改全局设置" msgid "To use cURL activate this option." -msgstr "选中这个项以使用cURL" +msgstr "选中此项以使用 cURL" msgid "URL" msgstr "URL" msgid "URL to detect" -msgstr "用于检测的URL" +msgstr "用于检测的 URL" msgid "Unknown error" msgstr "未知错误" @@ -550,25 +562,26 @@ msgid "" "Update URL to be used for updating your DDNS Provider.
Follow " "instructions you will find on their WEB page." msgstr "" -"DDNS提供商用于更新DDNS的URL
跟随教程你将会在它们的网站上提供这个URL." +"DDNS 提供商用于更新 DDNS 的 URL。
跟随教程,您可以在它们的网站上找到这" +"个 URL。" msgid "Update error" msgstr "更新错误" msgid "Use HTTP Secure" -msgstr "使用HTTPS" +msgstr "使用 HTTPS" msgid "Use cURL" -msgstr "使用cURL" +msgstr "使用 cURL" msgid "User defined script to read systems IP-Address" -msgstr "使用设定的脚本来读取系统IP地址" +msgstr "使用设定的脚本来读取系统 IP 地址" msgid "Username" msgstr "用户名" msgid "Using specific DNS Server not supported" -msgstr "" +msgstr "不支持使用特定的 DNS 服务器" msgid "Verify" msgstr "验证" @@ -587,49 +600,51 @@ msgstr "等待" msgid "" "Writes detailed messages to log file. File will be truncated automatically." -msgstr "向日志中写入详细信息.文件将会被自动减小." +msgstr "向日志中写入详细信息。文件将自动缩小。" msgid "" "Writes log messages to syslog. Critical Errors will always be written to " "syslog." -msgstr "把日志写入系统日志.无论是否启用这项,错误信息总是会被写入系统日志" +msgstr "把日志写入系统日志。无论是否启用这项,错误信息总是会被写入系统日志。" msgid "" "You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' " "package, if you need to specify a DNS server to detect your registered IP." msgstr "" +"如果您需要指定 DNS 服务器来检测您注册的 IP,您应该安装“bind-host”或“knot-" +"host”或“drill”或“hostip”软件包。" msgid "" "You should install 'bind-host' or 'knot-host' or 'drill' package for DNS " "requests." -msgstr "" +msgstr "您应该为 DNS 请求安装“bind-host”或“knot-host”或“drill”软件包。" msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package." -msgstr "" +msgstr "您应该安装“wget”或“curl”或“uclient-fetch”软件包。" msgid "" "You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-" "*ssl' package." -msgstr "" +msgstr "您应该安装“wget”或“curl”或“uclient-fetch”,及“libustream-*ssl”软件包。" msgid "You should install 'wget' or 'curl' package." -msgstr "" +msgstr "您应该安装“wget”或“curl”软件包。" msgid "" "You should install 'wget' or 'uclient-fetch' package or replace libcurl." -msgstr "" +msgstr "您应该安装“wget”或“uclient-fetch”软件包,或替换 libcurl。" msgid "cURL is installed, but libcurl was compiled without proxy support." -msgstr "cURL已经安装,但是libcurl编译时没有启用代理支持." +msgstr "cURL 已经安装,但是 libcurl 编译时没有启用代理支持。" msgid "cURL without Proxy Support" -msgstr "cURL不包含代理支持" +msgstr "cURL 没有包含代理支持" msgid "can not detect local IP. Please select a different Source combination" -msgstr "不能确定本地IP.请更换IP来源." +msgstr "无法确定本地 IP。请更换 IP 来源。" msgid "can not resolve host:" -msgstr "不能解析主机:" +msgstr "无法解析主机:" msgid "config error" msgstr "配置错误" @@ -641,7 +656,7 @@ msgid "directory or path/file" msgstr "目录或者到文件的路径" msgid "either url or script could be set" -msgstr "接受URL或者脚本" +msgstr "接受 URL 或者脚本" msgid "enable here" msgstr "在这里启用" @@ -659,16 +674,16 @@ msgid "installed" msgstr "已安装" msgid "invalid FQDN / required - Sample" -msgstr "" +msgstr "FQDN 无效 / 必需 - 示例" msgid "minimum value '0'" -msgstr "最小值0" +msgstr "最小值 0" msgid "minimum value '1'" -msgstr "最小值1" +msgstr "最小值 1" msgid "minimum value 5 minutes == 300 seconds" -msgstr "最小值为5分钟(300秒)" +msgstr "最小值为 5 分钟(300 秒)" msgid "minutes" msgstr "分钟" @@ -683,7 +698,7 @@ msgid "must start with 'http://'" msgstr "必须以'http://'开头" msgid "nc (netcat) can not connect" -msgstr "nc(netcat)不可连接" +msgstr "nc(netcat)不可连接" msgid "never" msgstr "从不" @@ -692,10 +707,10 @@ msgid "no data" msgstr "无数据" msgid "not found or not executable - Sample: '/path/to/script.sh'" -msgstr "未找到或者不可执行 - 示例: '/path/to/script.sh'" +msgstr "未找到或者不可执行 - 示例:“/path/to/script.sh”" msgid "nslookup can not resolve host" -msgstr "nslookup不能解析主机" +msgstr "nslookup 不能解析主机" msgid "or" msgstr "或者" @@ -710,10 +725,10 @@ msgid "please remove entry" msgstr "请移除该字段" msgid "please select 'IPv4' address version" -msgstr "请设定IPv4地址" +msgstr "请设定 IPv4 地址" msgid "please select 'IPv4' address version in" -msgstr "请设定IPv4地址于" +msgstr "请设定 IPv4 地址于" msgid "please set to 'default'" msgstr "请设置为\"默认\"" @@ -728,7 +743,7 @@ msgid "seconds" msgstr "秒" msgid "to run HTTPS without verification of server certificates (insecure)" -msgstr "使用HTTPS但不检查服务器证书(不安全)" +msgstr "使用 HTTPS 但不检查服务器证书(不安全)" msgid "unknown error" msgstr "未知错误" @@ -737,7 +752,7 @@ msgid "unspecific error" msgstr "未指定的错误" msgid "use hostname, FQDN, IPv4- or IPv6-Address" -msgstr "使用主机名或IPv4/IPv6地址" +msgstr "使用主机名或 IPv4/IPv6 地址" #~ msgid "" #~ "Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS " @@ -745,13 +760,13 @@ msgstr "使用主机名或IPv4/IPv6地址" #~ msgstr "包含SSL支持的GNU Wget或者cURL均未被安装.无法使用HTTPS更新DDNS" #~ msgid "You should install BIND host package for DNS requests." -#~ msgstr "你需要安装BIND以请求DNS记录." +#~ msgstr "您需要安装BIND以请求DNS记录." #~ msgid "You should install GNU Wget with SSL (preferred) or cURL package." -#~ msgstr "你需要安装包含SSL支持的GNU Wget(推荐)或是cURL软件包." +#~ msgstr "您需要安装包含SSL支持的GNU Wget(推荐)或是cURL软件包." #~ msgid "You should install GNU Wget with SSL or cURL package." -#~ msgstr "你需要安装包含SSL支持的GNU Wget或是cURL软件包." +#~ msgstr "您需要安装包含SSL支持的GNU Wget或是cURL软件包." #~ msgid "You should install GNU Wget with SSL or replace libcurl." -#~ msgstr "你需要安装包含SSL支持的GNU Wget或替换libcurl." +#~ msgstr "您需要安装包含SSL支持的GNU Wget或替换libcurl." diff --git a/package/luci/applications/luci-app-ddns/po/zh-tw/ddns.po b/package/luci/applications/luci-app-ddns/po/zh-tw/ddns.po index ae0aaba8d9..f378b39738 100644 --- a/package/luci/applications/luci-app-ddns/po/zh-tw/ddns.po +++ b/package/luci/applications/luci-app-ddns/po/zh-tw/ddns.po @@ -1,728 +1,772 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" "Project-Id-Version: luci-app-ddns 2.4.0-1\n" "POT-Creation-Date: 2016-01-30 11:07+0100\n" -"PO-Revision-Date: 2013-08-07 15:53+0200\n" -"Last-Translator: Ethan \n" -"Language-Team: \n" +"PO-Revision-Date: 2017-10-29 14:14+0800\n" +"Last-Translator: Yangfl \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 1.8.4\n" +"X-Generator: Gtranslator 2.91.7\n" +"Language-Team: \n" msgid "&" -msgstr "" +msgstr "&" msgid "-- custom --" -msgstr "" +msgstr "-- 自定義 --" msgid "-- default --" -msgstr "" +msgstr "-- 預設 --" msgid "Advanced Settings" -msgstr "" +msgstr "高階設定" msgid "Allow non-public IP's" -msgstr "" +msgstr "允許非公網 IP" msgid "Applying changes" -msgstr "" +msgstr "正在應用更改" msgid "Basic Settings" -msgstr "" +msgstr "基礎設定" msgid "" "Below a list of configuration tips for your system to run Dynamic DNS " "updates without limitations" -msgstr "" +msgstr "以下是一個能夠讓您的系統不受限制地進行動態 DNS 更新設定的提示列表" msgid "" "Below is a list of configured DDNS configurations and their current state." -msgstr "" +msgstr "以下是當前已經配置好的 DDNS 設定項列表以及它們的當前狀態。" msgid "Bind Network" -msgstr "" +msgstr "使用的介面" msgid "Binding to a specific network not supported" -msgstr "" +msgstr "不支援繫結到一個指定的網路" msgid "" "BusyBox's nslookup and Wget do not support to specify the IP version to use " "for communication with DDNS Provider!" msgstr "" +"與 DDNS 供應商通訊時,BusyBox 的 nslookup 和 Wget 不支援設定特定的 IP 協議版" +"本。" msgid "" "BusyBox's nslookup and hostip do not support to specify to use TCP instead " "of default UDP when requesting DNS server!" msgstr "" +"向 DNS 伺服器查詢時,BusyBox 的 nslookup 和 hostip 不支援使用 TCP 而不是預設" +"的 UDP!" msgid "" "BusyBox's nslookup in the current compiled version does not handle given DNS " "Servers correctly!" -msgstr "" +msgstr "當前編譯版本中 BusyBox 的 nslookup 在處理給定的 DNS 伺服器不正確!" msgid "Casual users should not change this setting" -msgstr "" +msgstr "普通使用者不應該改變這個設定" msgid "Change provider" -msgstr "" +msgstr "更改提供者" msgid "Check Interval" -msgstr "" +msgstr "檢查時間週期" msgid "Collecting data..." -msgstr "" +msgstr "正在收集資料..." msgid "Config error" -msgstr "" +msgstr "配置錯誤" msgid "Configuration" -msgstr "" +msgstr "設定" msgid "" "Configure here the details for all Dynamic DNS services including this LuCI " "application." -msgstr "" +msgstr "在這裡修改動態 DNS 服務的詳細配置。" msgid "Configure here the details for selected Dynamic DNS service." -msgstr "" +msgstr "在這裡修改選擇的 DDNS 服務的詳細配置。" msgid "Current setting" -msgstr "" +msgstr "當前設定" msgid "" "Currently DDNS updates are not started at boot or on interface events.
This is the default if you run DDNS scripts by yourself (i.e. via cron with " "force_interval set to '0')" msgstr "" +"現在,DDNS 更新在開機或者介面動作時不會被觸發。
如果您手工執行 DDNS 指令" +"碼的話(例如使用 cron 時把 force_interval 設定為 0),這是預設設定。" msgid "" "Currently DDNS updates are not started at boot or on interface events.
You can start/stop each configuration here. It will run until next reboot." msgstr "" +"現在,DDNS 更新在開機或者介面動作時不會被觸發。
您可以在這裡開始/停止每" +"一個設定的條目。它在下次重啟之前一直有效。" msgid "Custom update script to be used for updating your DDNS Provider." -msgstr "" +msgstr "用來更新動態 DNS 的自定義指令碼。" msgid "Custom update-URL" -msgstr "自訂更新的URL" +msgstr "自定義更新 URL" msgid "Custom update-script" -msgstr "" +msgstr "自定義更新指令碼" msgid "DDNS Autostart disabled" -msgstr "" +msgstr "DDNS 自動啟動已禁用。" msgid "DDNS Client Configuration" -msgstr "" +msgstr "DDNS 客戶端配置" msgid "DDNS Client Documentation" -msgstr "" +msgstr "DDNS 客戶端文件" msgid "DDNS Service provider" -msgstr "" +msgstr "DDNS 服務提供商" msgid "DNS requests via TCP not supported" -msgstr "" +msgstr "不支援使用 TCP 進行 DNS 解析" msgid "DNS-Server" -msgstr "" +msgstr "DNS-伺服器" msgid "Date format" -msgstr "" +msgstr "日期格式" msgid "Defines the Web page to read systems IPv4-Address from" -msgstr "" +msgstr "設定用來讀取系統 IPv4 位址的網頁" msgid "Defines the Web page to read systems IPv6-Address from" -msgstr "" +msgstr "設定用來讀取系統 IPv6 位址的網頁" msgid "Defines the interface to read systems IP-Address from" -msgstr "" +msgstr "設定用來讀取系統 IP 位址的介面" msgid "Defines the network to read systems IPv4-Address from" -msgstr "" +msgstr "設定用來讀取系統 IPv4 位址的網路" msgid "Defines the network to read systems IPv6-Address from" -msgstr "" +msgstr "設定用來讀取系統 IPv6 位址的網路" msgid "" "Defines the source to read systems IPv4-Address from, that will be send to " "the DDNS provider" -msgstr "" +msgstr "設定 IPv4 位址的來源。這將會被髮送給 DDNS 提供商" msgid "" "Defines the source to read systems IPv6-Address from, that will be send to " "the DDNS provider" -msgstr "" +msgstr "設定 IPv6 位址的來源。這將會被髮送給 DDNS 提供商" msgid "Defines which IP address 'IPv4/IPv6' is send to the DDNS provider" -msgstr "" +msgstr "設定哪一個 IP 位址(IPv4 或 IPv6)會被髮送給 DDNS 提供商" msgid "Details for" -msgstr "" +msgstr "詳情" msgid "Directory contains Log files for each running section" -msgstr "" +msgstr "儲存每一個執行中的設定的執行日誌的目錄" msgid "" "Directory contains PID and other status information for each running section" -msgstr "" +msgstr "儲存每個執行中的設定的PID以及其它狀態資訊的目錄" msgid "Disabled" -msgstr "" +msgstr "已禁用" msgid "Domain" -msgstr "" +msgstr "域名" msgid "Dynamic DNS" -msgstr "動態DNS" +msgstr "動態 DNS" msgid "" "Dynamic DNS allows that your router can be reached with a fixed hostname " "while having a dynamically changing IP address." -msgstr "" -"動態DNS允許為主機配置一個固定的網域名稱,但該網路名稱卻是對應到動態的IP位置" +msgstr "動態 DNS 允許為擁有動態 IP 的主機配置一個固定的可訪問域名。" msgid "Enable secure communication with DDNS provider" -msgstr "" +msgstr "啟用安全連線與 DDNS 提供商聯絡" msgid "Enabled" -msgstr "" +msgstr "已啟用" msgid "Error" -msgstr "" +msgstr "錯誤" msgid "Error Retry Counter" -msgstr "" +msgstr "錯誤重試計數" msgid "Error Retry Interval" -msgstr "" +msgstr "錯誤重試間隔" msgid "Event Network" -msgstr "" +msgstr "事件網路" msgid "File" -msgstr "" +msgstr "檔案" msgid "File not found" -msgstr "" +msgstr "檔案未找到" msgid "File not found or empty" -msgstr "" +msgstr "檔案未找到或為空" msgid "" "Follow this link
You will find more hints to optimize your system to " "run DDNS scripts with all options" msgstr "" +"開啟這個連結
您將會得到更多關於如何通過所有設定項優化您的系統以執行 " +"DDNS 指令碼的提示" msgid "For detailed information about parameter settings look here." -msgstr "" +msgstr "請看這裡獲得關於引數設定的詳細資訊" msgid "For supported codes look here" -msgstr "" +msgstr "檢視這裡獲取支援的編碼" msgid "Force IP Version" -msgstr "" +msgstr "強制設定 IP 版本" msgid "Force IP Version not supported" -msgstr "" +msgstr "不支援強制設定 IP 版本" msgid "Force Interval" -msgstr "" +msgstr "設定週期" msgid "Force TCP on DNS" -msgstr "" +msgstr "強制使用 TCP 進行 DNS 查詢" msgid "Forced IP Version don't matched" -msgstr "" +msgstr "強制設定的 IP 版本不匹配" msgid "Format" -msgstr "" +msgstr "格式" msgid "Format: IP or FQDN" -msgstr "" +msgstr "格式:IP 或者 FQDN" msgid "" "GNU Wget will use the IP of given network, cURL will use the physical " "interface." -msgstr "" +msgstr "GNU Wget 將會使用給定的網路的 IP 位址,而 cURL 將會使用物理介面。" msgid "Global Settings" -msgstr "" +msgstr "全域性設定" msgid "HTTPS not supported" -msgstr "" +msgstr "不支援 HTTPS" msgid "Hints" -msgstr "" +msgstr "提示" msgid "Hostname/FQDN to validate, if IP update happen or necessary" -msgstr "" +msgstr "主機名/FQDN 驗證,如果 IP 更新發生或必要" msgid "IP address source" -msgstr "" +msgstr "IP 位址來源" msgid "IP address version" -msgstr "" +msgstr "IP 位址版本" msgid "IPv4-Address" -msgstr "" +msgstr "IPv4 位址" msgid "IPv6 address must be given in square brackets" -msgstr "" +msgstr "IPv6 位址必須填寫在中括號(\"[ ]\")內" msgid "" "IPv6 is currently not (fully) supported by this system
Please follow " "the instructions on OpenWrt's homepage to enable IPv6 support
or update " "your system to the latest OpenWrt Release" msgstr "" +"當前系統暫時不能(完整地)支援 IPv6
請檢視 OpenWrt 首頁的介紹以啟用 " +"IPv6 支援
或者更新您的系統到最新 OpenWrt 版本" msgid "IPv6 not supported" -msgstr "" +msgstr "IPv6 不被支援" msgid "IPv6-Address" -msgstr "" +msgstr "IPv6 位址" msgid "If both cURL and GNU Wget are installed, Wget is used by default." -msgstr "" +msgstr "如果 cURL 和 GNU Wget 同時被安裝,那麼 Wget 將會被優先使用。" msgid "" "If this service section is disabled it could not be started.
Neither " "from LuCI interface nor from console" msgstr "" +"如果服務配置被禁用,那麼它將不能被啟動。
無論是通過 LuCI 頁面或者是通過" +"終端。" msgid "If using secure communication you should verify server certificates!" -msgstr "" +msgstr "如果使用安全通訊,您應該驗證伺服器證書!" msgid "" "If you want to send updates for IPv4 and IPv6 you need to define two " "separate Configurations i.e. 'myddns_ipv4' and 'myddns_ipv6'" msgstr "" +"如果您需要同時更新 IPv4 和 IPv6 位址,您需要單獨新增兩個配置項(例" +"如'myddns_ipv4'和'myddns_ipv6')" msgid "" "In some versions cURL/libcurl in OpenWrt is compiled without proxy support." -msgstr "" +msgstr "OpenWrt 中,cURL/libcurl 的某些版本編譯時沒有啟用代理伺服器支援" msgid "Info" -msgstr "" +msgstr "資訊" msgid "" "Install 'ca-certificates' package or needed certificates by hand into /etc/" "ssl/certs default directory" msgstr "" +"手動將“ca-certificates”包或需要的證書安裝到 /etc/ssl/certs 的預設目錄中" msgid "Interface" -msgstr "界面" +msgstr "介面" msgid "" "Interval to check for changed IP
Values below 5 minutes == 300 seconds " "are not supported" -msgstr "" +msgstr "檢查 IP 是否改變的時間隔
不支援小於 5 分鐘(300 秒)的數值。" msgid "" "Interval to force updates send to DDNS Provider
Setting this parameter " "to 0 will force the script to only run once
Values lower 'Check " "Interval' except '0' are not supported" msgstr "" +"強制向提供商更新 DDNS 的時間週期
將這個引數設定為 0 則會讓指令碼僅執行一" +"次
不支援小於\"檢查時間週期\"的數值(除了 0)。" msgid "It is NOT recommended for casual users to change settings on this page." -msgstr "" +msgstr "強烈不建議初次使用的使用者修改本頁設定。" msgid "Last Update" -msgstr "" +msgstr "上次更新" msgid "Loading" -msgstr "" +msgstr "載入中" msgid "Log File Viewer" -msgstr "" +msgstr "日誌檢視器" msgid "Log directory" -msgstr "" +msgstr "日誌目錄" msgid "Log length" -msgstr "" +msgstr "日誌長度" msgid "Log to file" -msgstr "" +msgstr "把日誌記錄到檔案" msgid "Log to syslog" -msgstr "" +msgstr "把日誌記錄到系統日誌" msgid "Lookup Hostname" -msgstr "" +msgstr "查詢主機名" msgid "NOT installed" -msgstr "" +msgstr "未安裝" msgid "" "Neither GNU Wget with SSL nor cURL installed to select a network to use for " "communication." -msgstr "" +msgstr "包含 SSL 支援的 GNU Wget 或者 cURL 均未安裝,無法選擇網路用於通訊。" msgid "" "Neither GNU Wget with SSL nor cURL installed to support secure updates via " "HTTPS protocol." msgstr "" +"包含 SSL 支援的 GNU Wget 或者 cURL 均未安裝,無法通過 HTTPS 協議進行安全的更" +"新。" msgid "Network" msgstr "網路" msgid "Network on which the ddns-updater scripts will be started" -msgstr "" +msgstr "DDNS 更新指令碼將會運行於該網路" msgid "Never" -msgstr "" +msgstr "從不" msgid "Next Update" -msgstr "" +msgstr "下次更新" msgid "No certificates found" -msgstr "" +msgstr "找不到證書" msgid "No data" -msgstr "" +msgstr "無資料" msgid "No logging" -msgstr "" +msgstr "無日誌" msgid "Non-public and by default blocked IP's" -msgstr "" +msgstr "非公網 IP 以及預設被鎖定的 IP" msgid "Notice" -msgstr "" +msgstr "提示" msgid "Number of last lines stored in log files" -msgstr "" +msgstr "日誌檔案中的最後幾行" msgid "OPTIONAL: Force the usage of pure IPv4/IPv6 only communication." -msgstr "" +msgstr "可選:強制僅使用 IPv4/IPv6 通訊。" msgid "OPTIONAL: Force the use of TCP instead of default UDP on DNS requests." -msgstr "" +msgstr "可選:強制使用 TCP 而非 UDP 請求 DNS。" msgid "OPTIONAL: Network to use for communication" -msgstr "" +msgstr "可選:用於通訊的網路" msgid "OPTIONAL: Proxy-Server for detection and updates." -msgstr "" +msgstr "可選:用於檢測以及更新的代理伺服器。" msgid "OPTIONAL: Use non-default DNS-Server to detect 'Registered IP'." -msgstr "" +msgstr "可選:使用非預設 DNS 伺服器檢測\"已註冊的 IP 位址\"。" msgid "On Error the script will retry the failed action after given time" -msgstr "" +msgstr "當出錯時,指令碼將會重試失敗的動作的次數" msgid "On Error the script will stop execution after given number of retrys" -msgstr "" +msgstr "當出錯時,指令碼將會重試該次數之後退出" msgid "OpenWrt Wiki" -msgstr "" +msgstr "OpenWrt Wiki" msgid "Optional Encoded Parameter" -msgstr "" +msgstr "可選編碼引數" msgid "Optional Parameter" -msgstr "" +msgstr "可選引數" msgid "Optional: Replaces [PARAMENC] in Update-URL (URL-encoded)" -msgstr "" +msgstr "可選:替換更新 URL(已編碼 URL)中的 [PARAMENC]" msgid "Optional: Replaces [PARAMOPT] in Update-URL (NOT URL-encoded)" -msgstr "" +msgstr "可選:替換更新 URL(未編碼 URL)中的 [PARAMENC]" msgid "Overview" -msgstr "" +msgstr "總覽" msgid "PROXY-Server" -msgstr "" +msgstr "代理伺服器" msgid "PROXY-Server not supported" -msgstr "" +msgstr "不支援代理伺服器" msgid "Password" msgstr "密碼" msgid "Path to CA-Certificate" -msgstr "" +msgstr "CA 證書路徑" msgid "Please [Save & Apply] your changes first" -msgstr "" +msgstr "請先儲存並應用您的設定" msgid "Please press [Read] button" -msgstr "" +msgstr "請按下\"讀取\"按鈕" msgid "Please update to the current version!" -msgstr "" +msgstr "請更新到最新版本!" msgid "Process ID" -msgstr "" +msgstr "程序 ID" msgid "Read / Reread log file" -msgstr "" +msgstr "讀取/重新讀取日誌檔案" msgid "Really change DDNS provider?" -msgstr "" +msgstr "確定更改 DDNS 提供商嗎?" msgid "Registered IP" -msgstr "" +msgstr "已註冊的 IP 位址" msgid "Replaces [DOMAIN] in Update-URL" -msgstr "" +msgstr "替換更新 URL 中的 [DOMAIN]" msgid "Replaces [PASSWORD] in Update-URL (URL-encoded)" -msgstr "" +msgstr "替換更新 URL(已編碼 URL)中的 [PASSWORD]" msgid "Replaces [USERNAME] in Update-URL (URL-encoded)" -msgstr "" +msgstr "替換更新 URL(已編碼 URL)中的 [USERNAME]" msgid "Run once" -msgstr "" +msgstr "執行一次" msgid "Script" -msgstr "" +msgstr "指令碼" msgid "Show more" -msgstr "" +msgstr "檢視更多" msgid "Software update required" -msgstr "" +msgstr "需要進行軟體更新" msgid "Specifying a DNS-Server is not supported" -msgstr "" +msgstr "不支援指定 DNS 伺服器" msgid "Start" -msgstr "" +msgstr "啟動" msgid "Start / Stop" -msgstr "" +msgstr "啟動 / 停止" msgid "Status directory" -msgstr "" +msgstr "狀態目錄" msgid "Stopped" -msgstr "" +msgstr "已停止" msgid "" "The currently installed 'ddns-scripts' package did not support all available " "settings." -msgstr "" +msgstr "當前已安裝的'ddns-scripts'軟體包暫不支援所有可用設定項" msgid "The default setting of '0' will retry infinite." -msgstr "" +msgstr "預設設定“0”將無限重試。" msgid "There is no service configured." -msgstr "" +msgstr "沒有已經配置好的服務項" msgid "Timer Settings" -msgstr "" +msgstr "計時器設定" msgid "To change global settings click here" -msgstr "" +msgstr "點選這裡更改全域性設定" msgid "To use cURL activate this option." -msgstr "" +msgstr "選中此項以使用 cURL" msgid "URL" msgstr "URL" msgid "URL to detect" -msgstr "" +msgstr "用於檢測的 URL" msgid "Unknown error" -msgstr "" +msgstr "未知錯誤" msgid "" "Update URL to be used for updating your DDNS Provider.
Follow " "instructions you will find on their WEB page." msgstr "" +"DDNS 提供商用於更新 DDNS 的 URL。
跟隨教程,您可以在它們的網站上找到這" +"個 URL。" msgid "Update error" -msgstr "" +msgstr "更新錯誤" msgid "Use HTTP Secure" -msgstr "" +msgstr "使用 HTTPS" msgid "Use cURL" -msgstr "" +msgstr "使用 cURL" msgid "User defined script to read systems IP-Address" -msgstr "" +msgstr "使用設定的指令碼來讀取系統 IP 位址" msgid "Username" msgstr "使用者名稱" msgid "Using specific DNS Server not supported" -msgstr "" +msgstr "不支援使用特定的 DNS 伺服器" msgid "Verify" -msgstr "" +msgstr "驗證" msgid "Version" -msgstr "" +msgstr "版本" msgid "Version Information" -msgstr "" +msgstr "版本資訊" msgid "Waiting for changes to be applied..." -msgstr "" +msgstr "正在應用更改..." msgid "Warning" -msgstr "" +msgstr "等待" msgid "" "Writes detailed messages to log file. File will be truncated automatically." -msgstr "" +msgstr "向日志中寫入詳細資訊。檔案將自動縮小。" msgid "" "Writes log messages to syslog. Critical Errors will always be written to " "syslog." -msgstr "" +msgstr "把日誌寫入系統日誌。無論是否啟用這項,錯誤資訊總是會被寫入系統日誌。" msgid "" "You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' " "package, if you need to specify a DNS server to detect your registered IP." msgstr "" +"如果您需要指定 DNS 伺服器來檢測您註冊的 IP,您應該安裝“bind-host”或“knot-" +"host”或“drill”或“hostip”軟體包。" msgid "" "You should install 'bind-host' or 'knot-host' or 'drill' package for DNS " "requests." -msgstr "" +msgstr "您應該為 DNS 請求安裝“bind-host”或“knot-host”或“drill”軟體包。" msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package." -msgstr "" +msgstr "您應該安裝“wget”或“curl”或“uclient-fetch”軟體包。" msgid "" "You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-" "*ssl' package." -msgstr "" +msgstr "您應該安裝“wget”或“curl”或“uclient-fetch”,及“libustream-*ssl”軟體包。" msgid "You should install 'wget' or 'curl' package." -msgstr "" +msgstr "您應該安裝“wget”或“curl”軟體包。" msgid "" "You should install 'wget' or 'uclient-fetch' package or replace libcurl." -msgstr "" +msgstr "您應該安裝“wget”或“uclient-fetch”軟體包,或替換 libcurl。" msgid "cURL is installed, but libcurl was compiled without proxy support." -msgstr "" +msgstr "cURL 已經安裝,但是 libcurl 編譯時沒有啟用代理支援。" msgid "cURL without Proxy Support" -msgstr "" +msgstr "cURL 沒有包含代理支援" msgid "can not detect local IP. Please select a different Source combination" -msgstr "" +msgstr "無法確定本地 IP。請更換 IP 來源。" msgid "can not resolve host:" -msgstr "" +msgstr "無法解析主機:" msgid "config error" -msgstr "" +msgstr "配置錯誤" msgid "days" -msgstr "" +msgstr "天" msgid "directory or path/file" -msgstr "" +msgstr "目錄或者到檔案的路徑" msgid "either url or script could be set" -msgstr "" +msgstr "接受 URL 或者指令碼" msgid "enable here" -msgstr "" +msgstr "在這裡啟用" msgid "file or directory not found or not 'IGNORE'" -msgstr "" +msgstr "檔案或目錄未找到或未\"被忽視\"" msgid "help" -msgstr "" +msgstr "幫助" msgid "hours" -msgstr "" +msgstr "小時" msgid "installed" -msgstr "" +msgstr "已安裝" msgid "invalid FQDN / required - Sample" -msgstr "" +msgstr "FQDN 無效 / 必需 - 示例" msgid "minimum value '0'" -msgstr "" +msgstr "最小值 0" msgid "minimum value '1'" -msgstr "" +msgstr "最小值 1" msgid "minimum value 5 minutes == 300 seconds" -msgstr "" +msgstr "最小值為 5 分鐘(300 秒)" msgid "minutes" -msgstr "" +msgstr "分鐘" msgid "missing / required" -msgstr "" +msgstr "必須填寫" msgid "must be greater or equal 'Check Interval'" -msgstr "" +msgstr "必須大於或等於\"檢查時間週期\"" msgid "must start with 'http://'" -msgstr "" +msgstr "必須以'http://'開頭" msgid "nc (netcat) can not connect" -msgstr "" +msgstr "nc(netcat)不可連線" msgid "never" -msgstr "" +msgstr "從不" msgid "no data" -msgstr "" +msgstr "無資料" msgid "not found or not executable - Sample: '/path/to/script.sh'" -msgstr "" +msgstr "未找到或者不可執行 - 示例:“/path/to/script.sh”" msgid "nslookup can not resolve host" -msgstr "" +msgstr "nslookup 不能解析主機" msgid "or" -msgstr "" +msgstr "或者" msgid "or higher" -msgstr "" +msgstr "或者更大" msgid "please disable" -msgstr "" +msgstr "請禁用" msgid "please remove entry" -msgstr "" +msgstr "請移除該欄位" msgid "please select 'IPv4' address version" -msgstr "" +msgstr "請設定 IPv4 位址" msgid "please select 'IPv4' address version in" -msgstr "" +msgstr "請設定 IPv4 位址於" msgid "please set to 'default'" -msgstr "" +msgstr "請設定為\"預設\"" msgid "proxy port missing" -msgstr "" +msgstr "代理埠未填" msgid "required" -msgstr "" +msgstr "必須填寫" msgid "seconds" -msgstr "" +msgstr "秒" msgid "to run HTTPS without verification of server certificates (insecure)" -msgstr "" +msgstr "使用 HTTPS 但不檢查伺服器證書(不安全)" msgid "unknown error" -msgstr "" +msgstr "未知錯誤" msgid "unspecific error" -msgstr "" +msgstr "未指定的錯誤" msgid "use hostname, FQDN, IPv4- or IPv6-Address" -msgstr "" +msgstr "使用主機名或 IPv4/IPv6 位址" + +#~ msgid "" +#~ "Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS " +#~ "protocol." +#~ msgstr "包含SSL支援的GNU Wget或者cURL均未被安裝.無法使用HTTPS更新DDNS" + +#~ msgid "You should install BIND host package for DNS requests." +#~ msgstr "您需要安裝BIND以請求DNS記錄." + +#~ msgid "You should install GNU Wget with SSL (preferred) or cURL package." +#~ msgstr "您需要安裝包含SSL支援的GNU Wget(推薦)或是cURL軟體包." + +#~ msgid "You should install GNU Wget with SSL or cURL package." +#~ msgstr "您需要安裝包含SSL支援的GNU Wget或是cURL軟體包." + +#~ msgid "You should install GNU Wget with SSL or replace libcurl." +#~ msgstr "您需要安裝包含SSL支援的GNU Wget或替換libcurl." diff --git a/package/luci/applications/luci-app-diag-core/po/zh-tw/diag_core.po b/package/luci/applications/luci-app-diag-core/po/zh-tw/diag_core.po index 3cb3169998..2d62488451 100644 --- a/package/luci/applications/luci-app-diag-core/po/zh-tw/diag_core.po +++ b/package/luci/applications/luci-app-diag-core/po/zh-tw/diag_core.po @@ -20,14 +20,14 @@ msgstr "診斷" msgid "" "The diagnostics available under this menu depend on what modules you have " "installed on your device." -msgstr "這選單下的診斷機制可運用性, 端看你設備上已安裝的模組而定" +msgstr "這選單下的診斷機制可運用性, 端看您設備上已安裝的模組而定" msgid "" "The entries in the menu allow you to perform diagnostic tests on your system " "to aid in troubleshooting." -msgstr "選單內的項目允許你在系統內執行診斷測試以便解決疑難雜症" +msgstr "選單內的項目允許您在系統內執行診斷測試以便解決疑難雜症" msgid "" "With this menu you can configure network diagnostics, such as network device " "scans and ping tests." -msgstr "採用這選項可以讓你設定網路診斷, 例如網路設備掃描跟ping的測試." +msgstr "採用這選項可以讓您設定網路診斷, 例如網路設備掃描跟ping的測試." diff --git a/package/luci/applications/luci-app-diag-devinfo/po/sv/diag_devinfo.po b/package/luci/applications/luci-app-diag-devinfo/po/sv/diag_devinfo.po index c735323955..d68116bf7b 100644 --- a/package/luci/applications/luci-app-diag-devinfo/po/sv/diag_devinfo.po +++ b/package/luci/applications/luci-app-diag-devinfo/po/sv/diag_devinfo.po @@ -91,7 +91,7 @@ msgid "MAC range and information used to override system and IEEE databases" msgstr "" msgid "Milliseconds to sleep between requests (default 100)" -msgstr "" +msgstr "Millisekunder att sova mellan förfrågningar (100 är standard)" msgid "Model" msgstr "Modell" @@ -109,7 +109,7 @@ msgid "Networks to scan for devices" msgstr "Nätverk att skanna efter enheter i" msgid "Networks to scan for supported devices" -msgstr "" +msgstr "Nätverk att skanna efter enheter som stöds" msgid "No SIP devices" msgstr "Inga SIP-enheter" @@ -118,10 +118,10 @@ msgid "No devices detected" msgstr "Upptäckte inga enheter" msgid "Number of times to send requests (default 1)" -msgstr "" +msgstr "Antalet gånger att skicka förfrågningar (1 är standard)" msgid "OUI Owner" -msgstr "" +msgstr "OUI-ägare" msgid "" "Override the information returned by the MAC to Device Info Script (mac-to-" @@ -129,13 +129,13 @@ msgid "" msgstr "" msgid "Perform Scans (this can take a few minutes)" -msgstr "" +msgstr "Utför skanningar (det här kan ta ett par minuter)" msgid "Phone Information" msgstr "Information om telefon" msgid "Phone Scan" -msgstr "Skanning av telefon" +msgstr "Skanna telefon" msgid "Phone Scanning Configuration" msgstr "Konfiguration av skanning i telefon" @@ -156,7 +156,7 @@ msgid "Repeat Scans (this can take a few minutes)" msgstr "Repetera skanningar (det här kan ta några minuter)" msgid "SIP Device Information" -msgstr "" +msgstr "Information om SIP-enhet" msgid "SIP Device Scan" msgstr "" @@ -195,7 +195,7 @@ msgid "Time to wait for responses in seconds (default 10)" msgstr "Tid att vänta på svar i sekunder (standard 10)" msgid "Timeout" -msgstr "" +msgstr "Avbrott" msgid "Use Configuration" msgstr "Använd konfiguration" diff --git a/package/luci/applications/luci-app-dnscrypt-proxy/luasrc/controller/dnscrypt-proxy.lua b/package/luci/applications/luci-app-dnscrypt-proxy/luasrc/controller/dnscrypt-proxy.lua index 6d6790a839..9f6472e7de 100644 --- a/package/luci/applications/luci-app-dnscrypt-proxy/luasrc/controller/dnscrypt-proxy.lua +++ b/package/luci/applications/luci-app-dnscrypt-proxy/luasrc/controller/dnscrypt-proxy.lua @@ -17,8 +17,8 @@ function index() entry({"admin", "services", "dnscrypt-proxy", "advanced"}, firstchild(), _("Advanced"), 100) entry({"admin", "services", "dnscrypt-proxy", "advanced", "configuration"}, cbi("dnscrypt-proxy/configuration_tab"), _("Edit DNSCrypt-Proxy Configuration"), 110).leaf = true entry({"admin", "services", "dnscrypt-proxy", "advanced", "cfg_dnsmasq"}, cbi("dnscrypt-proxy/cfg_dnsmasq_tab"), _("Edit Dnsmasq Configuration"), 120).leaf = true - entry({"admin", "services", "dnscrypt-proxy", "advanced", "view_reslist"}, call("view_reslist"), _("View Resolver List"), 130).leaf = true - + entry({"admin", "services", "dnscrypt-proxy", "advanced", "cfg_resolvcrypt"}, cbi("dnscrypt-proxy/cfg_resolvcrypt_tab"), _("Edit Resolvcrypt Configuration"), 130).leaf = true + entry({"admin", "services", "dnscrypt-proxy", "advanced", "view_reslist"}, call("view_reslist"), _("View Resolver List"), 140).leaf = true end function view_reslist() @@ -27,6 +27,12 @@ function view_reslist() end function logread() - local logfile = util.trim(util.exec("logread -e 'dnscrypt-proxy'")) + local logfile + + if nixio.fs.access("/var/log/messages") then + logfile = util.trim(util.exec("cat /var/log/messages | grep 'dnscrypt-proxy'")) + else + logfile = util.trim(util.exec("logread -e 'dnscrypt-proxy'")) + end templ.render("dnscrypt-proxy/logread", {title = i18n.translate("DNSCrypt-Proxy Logfile"), content = logfile}) end diff --git a/package/luci/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_dnsmasq_tab.lua b/package/luci/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_dnsmasq_tab.lua index d22abbfd39..6e75ac9f97 100644 --- a/package/luci/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_dnsmasq_tab.lua +++ b/package/luci/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_dnsmasq_tab.lua @@ -7,6 +7,8 @@ local uci_input = "/etc/config/dhcp" if not nxfs.access(uci_input) then m = SimpleForm("error", nil, translate("Input file not found, please check your configuration.")) + m.reset = false + m.submit = false return m end diff --git a/package/luci/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_resolvcrypt_tab.lua b/package/luci/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_resolvcrypt_tab.lua new file mode 100644 index 0000000000..f172b15f81 --- /dev/null +++ b/package/luci/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_resolvcrypt_tab.lua @@ -0,0 +1,39 @@ +-- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 + +local nxfs = require("nixio.fs") +local util = require("luci.util") +local res_input = "/etc/resolv-crypt.conf" + +if not nxfs.access(res_input) then + m = SimpleForm("error", nil, translate("Input file not found, please check your configuration.")) + m.reset = false + m.submit = false + return m +end + +m = SimpleForm("input", nil) +m:append(Template("dnscrypt-proxy/config_css")) +m.submit = translate("Save") +m.reset = false + +s = m:section(SimpleSection, nil, + translate("This form allows you to modify the content of the resolv-crypt configuration file (/etc/resolv-crypt.conf).")) + +f = s:option(TextValue, "data") +f.rows = 20 +f.rmempty = true + +function f.cfgvalue() + return nxfs.readfile(res_input) or "" +end + +function f.write(self, section, data) + return nxfs.writefile(res_input, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n") +end + +function s.handle(self, state, data) + return true +end + +return m diff --git a/package/luci/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/overview_tab.lua b/package/luci/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/overview_tab.lua index 7ab84ab7fa..368c6673ad 100644 --- a/package/luci/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/overview_tab.lua +++ b/package/luci/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/overview_tab.lua @@ -11,15 +11,16 @@ local plug_cnt = tonumber(luci.sys.exec("env -i /usr/sbin/dnscrypt-proxy --vers local res_list = {} local url = "https://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-resolvers.csv" -if not fs.access("/lib/libustream-ssl.so") then - m = SimpleForm("error", nil, translate("SSL support not available, please install an libustream-ssl variant to use this package.")) - m.submit = false - m.reset = false - return m -end - if not fs.access(res_input) then - luci.sys.call("env -i /bin/uclient-fetch --no-check-certificate -O " .. res_input .. " " .. url .. " >/dev/null 2>&1") + if not fs.access("/lib/libustream-ssl.so") then + m = SimpleForm("error", nil, translate("No default resolver list and no SSL support available.
") + .. translate("Please install a resolver list to '/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv' to use this package.")) + m.submit = false + m.reset = false + return m + else + luci.sys.call("env -i /bin/uclient-fetch --no-check-certificate -O " .. res_input .. " " .. url .. " >/dev/null 2>&1") + end end if not uci:get_first("dnscrypt-proxy", "global") then @@ -29,23 +30,64 @@ if not uci:get_first("dnscrypt-proxy", "global") then end for line in io.lines(res_input) do - local name = line:match("^[%w_.-]*") - res_list[#res_list + 1] = { name = name } + local name, + location, + dnssec, + nolog = line:match("^([^,]+),.-,\".-\",\"*(.-)\"*,.-,[0-9],\"*([yesno]+)\"*,\"*([yesno]+)\"*,.*") + if name ~= "" and name ~= "Name" then + if location == "" then + location = "-" + end + if dnssec == "" then + dnssec = "-" + end + if nolog == "" then + nolog = "-" + end + res_list[#res_list + 1] = { name = name, location = location, dnssec = dnssec, nolog = nolog } + end end m = Map("dnscrypt-proxy", translate("DNSCrypt-Proxy"), translate("Configuration of the DNSCrypt-Proxy package. ") - .. translate("Keep in mind to configure Dnsmasq as well. ") .. translatef("For further information " .. "" .. "see the wiki online", "https://wiki.openwrt.org/inbox/dnscrypt")) +m:chain("dhcp") function m.on_after_commit(self) - luci.sys.call("env -i /etc/init.d/dnsmasq restart >/dev/null 2>&1") + function d1.validate(self, value, s1) + if value == "1" then + uci:commit("dnscrypt-proxy") + uci:set("dhcp", s1, "noresolv", 1) + if not fs.access("/etc/resolv-crypt.conf") or nixio.fs.stat("/etc/resolv-crypt.conf").size == 0 then + uci:set("dhcp", s1, "resolvfile", "/tmp/resolv.conf.auto") + else + uci:set("dhcp", s1, "resolvfile", "/etc/resolv-crypt.conf") + end + local server_list = {} + local cnt = 1 + uci:foreach("dnscrypt-proxy", "dnscrypt-proxy", function(s) + server_list[cnt] = s['address'] .. "#" .. s['port'] + cnt = cnt + 1 + end) + server_list[cnt] = "/pool.ntp.org/8.8.8.8" + uci:set_list("dhcp", s1, "server", server_list) + if cnt > 2 then + uci:set("dhcp", s1, "allservers", 1) + else + uci:set("dhcp", s1, "allservers", 0) + end + uci:save("dhcp") + uci:commit("dhcp") + end + return value + end luci.sys.call("env -i /etc/init.d/dnscrypt-proxy restart >/dev/null 2>&1") + luci.sys.call("env -i /etc/init.d/dnsmasq restart >/dev/null 2>&1") end -s = m:section(TypedSection, "global", translate("General options")) +s = m:section(TypedSection, "global", translate("General Options")) s.anonymous = true -- Main dnscrypt-proxy resource list @@ -62,21 +104,53 @@ o3 = s:option(DummyValue, "", translate("File Checksum")) o3.template = "dnscrypt-proxy/res_options" o3.value = luci.sys.exec("sha256sum " .. res_input .. " | awk '{print $1}'") -btn = s:option(Button, "", translate("Refresh Resolver List")) -btn.inputtitle = translate("Refresh List") -btn.inputstyle = "apply" -btn.disabled = false -function btn.write(self, section, value) - luci.sys.call("env -i /bin/uclient-fetch --no-check-certificate -O " .. res_input .. " " .. url .. " >/dev/null 2>&1") - luci.http.redirect(luci.dispatcher.build_url("admin", "services", "dnscrypt-proxy")) +if fs.access("/lib/libustream-ssl.so") then + btn1 = s:option(Button, "", translate("Refresh Resolver List"), + translate("Download the current resolver list from 'download.dnscrypt.org'.")) + btn1.inputtitle = translate("Refresh List") + btn1.inputstyle = "apply" + btn1.disabled = false + function btn1.write() + luci.sys.call("env -i /bin/uclient-fetch --no-check-certificate -O " .. res_input .. " " .. url .. " >/dev/null 2>&1") + luci.http.redirect(luci.dispatcher.build_url("admin", "services", "dnscrypt-proxy")) + end +else + btn1 = s:option(Button, "", translate("Refresh Resolver List"), + translate("No SSL support available.
") + .. translate("Please install a 'libustream-ssl' library to download the current resolver list from 'download.dnscrypt.org'.")) + btn1.inputtitle = translate("-------") + btn1.inputstyle = "button" + btn1.disabled = true +end + +if not fs.access("/etc/resolv-crypt.conf") or nixio.fs.stat("/etc/resolv-crypt.conf").size == 0 then + btn2 = s:option(Button, "", translate("Create Custom Config File"), + translate("Create '/etc/resolv-crypt.conf' with 'options timeout:1' to reduce DNS upstream timeouts with multiple DNSCrypt instances.
") + .. translatef("For further information " + .. "" + .. "see the wiki online", "https://wiki.openwrt.org/inbox/dnscrypt")) + btn2.inputtitle = translate("Create Config File") + btn2.inputstyle = "apply" + btn2.disabled = false + function btn2.write() + luci.sys.call("env -i echo 'options timeout:1' > '/etc/resolv-crypt.conf'") + luci.http.redirect(luci.dispatcher.build_url("admin", "services", "dnscrypt-proxy")) + end +else + btn2 = s:option(Button, "", translate("Create Custom Config File"), + translate("The config file '/etc/resolv-crypt.conf' already exist.
") + .. translate("Please edit the file manually in the 'Advanced' section.")) + btn2.inputtitle = translate("-------") + btn2.inputstyle = "button" + btn2.disabled = true end -- Trigger settings -t = s:option(DynamicList, "procd_trigger", translate("Startup Trigger"), - translate("By default the DNSCrypt-Proxy startup will be triggered by ifup events of multiple network interfaces. ") - .. translate("To restrict the trigger, add only the relevant network interface(s). ") - .. translate("Usually the 'wan' interface should work for most users.")) +t = s:option(ListValue, "procd_trigger", translate("Startup Trigger"), + translate("By default the DNSCrypt-Proxy startup will be triggered by ifup events of 'All' available network interfaces.
") + .. translate("To restrict the trigger, select only the relevant network interface. Usually the 'wan' interface should work for most users.")) +t:value("", "All") if dump then local i, v for i, v in ipairs(dump.interface) do @@ -85,57 +159,38 @@ if dump then end end end +t.default = procd_trigger or "All" t.rmempty = true --- Extra options - -ds = s:option(DummyValue, "_dummy", translate("Extra options"), - translate("Options for further tweaking in case the defaults are not suitable for you.")) -ds.template = "cbi/nullsection" - -btn = s:option(Button, "", translate("Create custom config file"), - translate("Create '/etc/resolv-crypt.conf' with 'options timeout:1' to reduce DNS upstream timeouts with multiple DNSCrypt instances. ") - .. translatef("For further information " - .. "" - .. "see the wiki online", "https://wiki.openwrt.org/inbox/dnscrypt")) -btn.inputtitle = translate("Create Config File") -btn.inputstyle = "apply" -btn.disabled = false -function btn.write(self, section, value) - if not fs.access("/etc/resolv-crypt.conf") then - luci.sys.call("env -i echo 'options timeout:1' > '/etc/resolv-crypt.conf'") - end -end - -- Mandatory options per instance -s = m:section(TypedSection, "dnscrypt-proxy", translate("Instance options")) +s = m:section(TypedSection, "dnscrypt-proxy", translate("Instance Options")) s.anonymous = true s.addremove = true -o1 = s:option(Value, "address", translate("IP Address"), +i1 = s:option(Value, "address", translate("IP Address"), translate("The local IPv4 or IPv6 address. The latter one should be specified within brackets, e.g. '[::1]'.")) -o1.default = address or "127.0.0.1" -o1.rmempty = false +i1.default = address or "127.0.0.1" +i1.rmempty = false -o2 = s:option(Value, "port", translate("Port"), +i2 = s:option(Value, "port", translate("Port"), translate("The listening port for DNS queries.")) -o2.datatype = "port" -o2.default = port -o2.rmempty = false - -o3 = s:option(ListValue, "resolver", translate("Resolver"), - translate("Name of the remote DNS service for resolving queries.")) -o3.datatype = "hostname" -o3.widget = "select" +i2.datatype = "port" +i2.default = port +i2.rmempty = false + +i3 = s:option(ListValue, "resolver", translate("Resolver (LOC/SEC/NOLOG)"), + translate("Name of the remote DNS service for resolving queries incl. Location, DNSSEC- and NOLOG-Flag.")) +i3.datatype = "hostname" +i3.widget = "select" local i, v for i, v in ipairs(res_list) do - if v.name ~= "Name" then - o3:value(v.name) + if v.name then + i3:value(v.name, v.name .. " (" .. v.location .. "/" .. v.dnssec .. "/" .. v.nolog .. ")") end end -o3.default = resolver -o3.rmempty = false +i3.default = resolver +i3.rmempty = false -- Extra options per instance @@ -174,4 +229,17 @@ if plug_cnt > 0 then e6.optional = true end -return m +-- Dnsmasq options + +m1 = Map("dhcp") + +s1 = m1:section(TypedSection, "dnsmasq", translate("Dnsmasq Options")) +s1.anonymous = true + +d1 = s1:option(Flag, "", translate("Transfer Options To Dnsmasq"), + translate("Apply DNSCrypt-Proxy specific settings to the Dnsmasq configuration.
") + .. translate("Please note: This may change the values for 'noresolv', 'resolvfile', 'allservers' and the list 'server' settings.")) +d1.default = d1.enabled +d1.rmempty = false + +return m, m1 diff --git a/package/luci/applications/luci-app-dnscrypt-proxy/po/ja/dnscrypt-proxy.po b/package/luci/applications/luci-app-dnscrypt-proxy/po/ja/dnscrypt-proxy.po index 0328df2279..2cd01c019e 100644 --- a/package/luci/applications/luci-app-dnscrypt-proxy/po/ja/dnscrypt-proxy.po +++ b/package/luci/applications/luci-app-dnscrypt-proxy/po/ja/dnscrypt-proxy.po @@ -7,17 +7,24 @@ msgstr "" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.3\n" +"X-Generator: Poedit 2.0.4\n" "Last-Translator: INAGAKI Hiroshi \n" "Plural-Forms: nplurals=1; plural=0;\n" "Language: ja\n" +msgid "-------" +msgstr "(利用不可)" + msgid "Advanced" msgstr "詳細" msgid "Alternate Resolver List" msgstr "代替 リゾルバ リスト" +msgid "" +"Apply DNSCrypt-Proxy specific settings to the Dnsmasq configuration.
" +msgstr "Dnsmasq の構成に、DNSCrypt-Proxy を指定する設定を適用します。
" + msgid "Blacklist" msgstr "ブラックリスト" @@ -26,26 +33,26 @@ msgstr "IPv6 のブロック" msgid "" "By default the DNSCrypt-Proxy startup will be triggered by ifup events of " -"multiple network interfaces." +"'All' available network interfaces.
" msgstr "" -"デフォルトでは、 DNSCrypt-Proxy は全ネットワーク インターフェースの ifup イベ" -"ントによりトリガされ起動します。" +"デフォルトでは、 DNSCrypt-Proxy は利用可能な全ネットワーク インターフェース" +"の ifup イベントによりトリガされ起動します。
" msgid "Configuration of the DNSCrypt-Proxy package." msgstr "DNSCrypt-Proxy パッケージの設定です。" msgid "" "Create '/etc/resolv-crypt.conf' with 'options timeout:1' to reduce DNS " -"upstream timeouts with multiple DNSCrypt instances." +"upstream timeouts with multiple DNSCrypt instances.
" msgstr "" "複数の DNSCrypt インスタンスで DNS アップストリーム タイムアウトの設定値を共" "用するため、 'options timeout:1' を含めた '/etc/resolv-crypt.conf' を作成しま" -"す。" +"す。
" msgid "Create Config File" msgstr "設定ファイルの作成" -msgid "Create custom config file" +msgid "Create Custom Config File" msgstr "カスタム設定ファイルの作成" msgid "DNS Query Logfile" @@ -66,21 +73,28 @@ msgstr "デフォルト リゾルバ リスト" msgid "Disable IPv6 to speed up DNSCrypt-Proxy." msgstr "DNSCrypt-Proxy の高速化のため、IPv6 を無効化します。" +msgid "Dnsmasq Options" +msgstr "Dnsmasq オプション" + +msgid "Download the current resolver list from 'download.dnscrypt.org'." +msgstr "" +"現在のリゾルバ リストを 'download.dnscrypt.org' からダウンロードします。" + msgid "Edit DNSCrypt-Proxy Configuration" msgstr "DNSCrypt-Proxy 設定の編集" msgid "Edit Dnsmasq Configuration" msgstr "Dnsmasq 設定の編集" +msgid "Edit Resolvcrypt Configuration" +msgstr "Resolvcrypt 設定の編集" + msgid "Enable Caching to speed up DNSCcrypt-Proxy." msgstr "DNSCrypt-Proxy の高速化のため、キャッシュ機能を有効化します。" msgid "Ephemeral Keys" msgstr "一時的なキー" -msgid "Extra options" -msgstr "拡張オプション" - msgid "File Checksum" msgstr "ファイル チェックサム" @@ -94,8 +108,8 @@ msgstr "" "詳細な情報は オンライン Wiki を確認して" "ください。" -msgid "General options" -msgstr "全般設定" +msgid "General Options" +msgstr "全般オプション" msgid "IP Address" msgstr "IP アドレス" @@ -107,12 +121,9 @@ msgstr "" msgid "Input file not found, please check your configuration." msgstr "入力ファイルが見つかりません。設定を確認してください。" -msgid "Instance options" +msgid "Instance Options" msgstr "インスタンス オプション" -msgid "Keep in mind to configure Dnsmasq as well." -msgstr "Dnsmasq を適切に設定する必要があることに留意してください。" - msgid "Local Cache" msgstr "ローカル キャッシュ" @@ -129,16 +140,47 @@ msgstr "" "受信した DNS クエリをファイルに記録します。これにより、ネットワークで何が起き" "ているかをリアルタイムに把握することが可能です。" -msgid "Name of the remote DNS service for resolving queries." -msgstr "クエリの名前解決を行う、リモートの DNS サービス名です。" - msgid "" -"Options for further tweaking in case the defaults are not suitable for you." -msgstr "デフォルト設定が適切でない場合、追加で設定するためのオプションです。" +"Name of the remote DNS service for resolving queries incl. Location, DNSSEC- " +"and NOLOG-Flag." +msgstr "" +"クエリの名前解決を行う、ロケーション, DNSSECの有無, NOLOG フラグを含めたリ" +"モート DNS サービスの名前です。" + +msgid "No SSL support available.
" +msgstr "利用可能な SSL サポートがありません。
" + +msgid "No default resolver list and no SSL support available.
" +msgstr "" +"デフォルトのリゾルバ リストと、利用可能な SSL サポートがありません。
" msgid "Overview" msgstr "概要" +msgid "Please edit the file manually in the 'Advanced' section." +msgstr "'詳細' タブで手動でファイルを編集してください。" + +msgid "" +"Please install a 'libustream-ssl' library to download the current resolver " +"list from 'download.dnscrypt.org'." +msgstr "" +"現在のリゾルバ リストを 'download.dnscrypt.org' からダウンロードするために、 " +"'libustream-ssl' ライブラリをインストールしてください。" + +msgid "" +"Please install a resolver list to '/usr/share/dnscrypt-proxy/dnscrypt-" +"resolvers.csv' to use this package." +msgstr "" +"このパッケージを利用するには、リゾルバ リストを '/usr/share/dnscrypt-proxy/" +"dnscrypt-resolvers.csv' にインストールしてください。" + +msgid "" +"Please note: This may change the values for 'noresolv', 'resolvfile', " +"'allservers' and the list 'server' settings." +msgstr "" +"注: これは、 'noresolv' および 'resolvfile', 'allservers', 'list server' の設" +"定値を変更する場合があります。" + msgid "Port" msgstr "ポート" @@ -148,15 +190,8 @@ msgstr "リストのリフレッシュ" msgid "Refresh Resolver List" msgstr "リゾルバ リストのリフレッシュ" -msgid "Resolver" -msgstr "リゾルバ" - -msgid "" -"SSL support not available, please install an libustream-ssl variant to use " -"this package." -msgstr "" -"SSL サポートが利用できません。このパッケージを使用するには libustream-ssl 等" -"をインストールし、 SSL サポートを有効にしてください。" +msgid "Resolver (LOC/SEC/NOLOG)" +msgstr "リゾルバ(LOC/SEC/NOLOG)" msgid "Save" msgstr "保存" @@ -167,6 +202,9 @@ msgstr "デフォルトとは異なるリゾルバ リストを設定します msgid "Startup Trigger" msgstr "スタートアップ トリガ" +msgid "The config file '/etc/resolv-crypt.conf' already exist.
" +msgstr "設定ファイル '/etc/resolv-crypt.conf' は既に存在しています。
" + msgid "The listening port for DNS queries." msgstr "DNS クエリを待ち受けるポートです。" @@ -199,6 +237,13 @@ msgstr "" "このフォームでは、メインの Dnsmasq 設定ファイル (/etc/config/dhcp) の内容を変" "更することができます。" +msgid "" +"This form allows you to modify the content of the resolv-crypt configuration " +"file (/etc/resolv-crypt.conf)." +msgstr "" +"このフォームでは、 resolv-crypt 設定ファイル(/etc/resolv-crypt.conf)の内容" +"を変更することができます。" + msgid "This form shows the content of the current DNSCrypt Resolver List." msgstr "" "このフォームには、現在の DNSCrypt リゾルバ リストの内容が表示されます。" @@ -217,13 +262,15 @@ msgstr "" "このオプションは、通常よりも CPU リソースを多く使用するほか、ほとんどの " "DNSCrypt サーバーでは不要なものです。" -msgid "To restrict the trigger, add only the relevant network interface(s)." +msgid "" +"To restrict the trigger, select only the relevant network interface. Usually " +"the 'wan' interface should work for most users." msgstr "" -"トリガを限定するには、適切なネットワーク インターフェースのみを追加してくださ" -"い。" +"トリガを限定するには、適切なインターフェースを選択してください。通常、 'wan' " +"インターフェースがほとんどのユーザーに適しています。" -msgid "Usually the 'wan' interface should work for most users." -msgstr "通常、 'wan' インターフェースがほとんどのユーザーに適しています。" +msgid "Transfer Options To Dnsmasq" +msgstr "Dnsmasq の転送オプション" msgid "View Logfile" msgstr "ログファイルの確認" diff --git a/package/luci/applications/luci-app-dnscrypt-proxy/po/templates/dnscrypt-proxy.pot b/package/luci/applications/luci-app-dnscrypt-proxy/po/templates/dnscrypt-proxy.pot index ea83e7a184..59bded87b8 100644 --- a/package/luci/applications/luci-app-dnscrypt-proxy/po/templates/dnscrypt-proxy.pot +++ b/package/luci/applications/luci-app-dnscrypt-proxy/po/templates/dnscrypt-proxy.pot @@ -1,12 +1,19 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8" +msgid "-------" +msgstr "" + msgid "Advanced" msgstr "" msgid "Alternate Resolver List" msgstr "" +msgid "" +"Apply DNSCrypt-Proxy specific settings to the Dnsmasq configuration.
" +msgstr "" + msgid "Blacklist" msgstr "" @@ -15,7 +22,7 @@ msgstr "" msgid "" "By default the DNSCrypt-Proxy startup will be triggered by ifup events of " -"multiple network interfaces." +"'All' available network interfaces.
" msgstr "" msgid "Configuration of the DNSCrypt-Proxy package." @@ -23,13 +30,13 @@ msgstr "" msgid "" "Create '/etc/resolv-crypt.conf' with 'options timeout:1' to reduce DNS " -"upstream timeouts with multiple DNSCrypt instances." +"upstream timeouts with multiple DNSCrypt instances.
" msgstr "" msgid "Create Config File" msgstr "" -msgid "Create custom config file" +msgid "Create Custom Config File" msgstr "" msgid "DNS Query Logfile" @@ -50,19 +57,25 @@ msgstr "" msgid "Disable IPv6 to speed up DNSCrypt-Proxy." msgstr "" +msgid "Dnsmasq Options" +msgstr "" + +msgid "Download the current resolver list from 'download.dnscrypt.org'." +msgstr "" + msgid "Edit DNSCrypt-Proxy Configuration" msgstr "" msgid "Edit Dnsmasq Configuration" msgstr "" -msgid "Enable Caching to speed up DNSCcrypt-Proxy." +msgid "Edit Resolvcrypt Configuration" msgstr "" -msgid "Ephemeral Keys" +msgid "Enable Caching to speed up DNSCcrypt-Proxy." msgstr "" -msgid "Extra options" +msgid "Ephemeral Keys" msgstr "" msgid "File Checksum" @@ -76,7 +89,7 @@ msgid "" "online" msgstr "" -msgid "General options" +msgid "General Options" msgstr "" msgid "IP Address" @@ -88,10 +101,7 @@ msgstr "" msgid "Input file not found, please check your configuration." msgstr "" -msgid "Instance options" -msgstr "" - -msgid "Keep in mind to configure Dnsmasq as well." +msgid "Instance Options" msgstr "" msgid "Local Cache" @@ -106,16 +116,38 @@ msgid "" "is happening on the network." msgstr "" -msgid "Name of the remote DNS service for resolving queries." +msgid "" +"Name of the remote DNS service for resolving queries incl. Location, DNSSEC- " +"and NOLOG-Flag." msgstr "" -msgid "" -"Options for further tweaking in case the defaults are not suitable for you." +msgid "No SSL support available.
" +msgstr "" + +msgid "No default resolver list and no SSL support available.
" msgstr "" msgid "Overview" msgstr "" +msgid "Please edit the file manually in the 'Advanced' section." +msgstr "" + +msgid "" +"Please install a 'libustream-ssl' library to download the current resolver " +"list from 'download.dnscrypt.org'." +msgstr "" + +msgid "" +"Please install a resolver list to '/usr/share/dnscrypt-proxy/dnscrypt-" +"resolvers.csv' to use this package." +msgstr "" + +msgid "" +"Please note: This may change the values for 'noresolv', 'resolvfile', " +"'allservers' and the list 'server' settings." +msgstr "" + msgid "Port" msgstr "" @@ -125,12 +157,7 @@ msgstr "" msgid "Refresh Resolver List" msgstr "" -msgid "Resolver" -msgstr "" - -msgid "" -"SSL support not available, please install an libustream-ssl variant to use " -"this package." +msgid "Resolver (LOC/SEC/NOLOG)" msgstr "" msgid "Save" @@ -142,6 +169,9 @@ msgstr "" msgid "Startup Trigger" msgstr "" +msgid "The config file '/etc/resolv-crypt.conf' already exist.
" +msgstr "" + msgid "The listening port for DNS queries." msgstr "" @@ -165,6 +195,11 @@ msgid "" "file (/etc/config/dhcp)." msgstr "" +msgid "" +"This form allows you to modify the content of the resolv-crypt configuration " +"file (/etc/resolv-crypt.conf)." +msgstr "" + msgid "This form shows the content of the current DNSCrypt Resolver List." msgstr "" @@ -178,10 +213,12 @@ msgid "" "server." msgstr "" -msgid "To restrict the trigger, add only the relevant network interface(s)." +msgid "" +"To restrict the trigger, select only the relevant network interface. Usually " +"the 'wan' interface should work for most users." msgstr "" -msgid "Usually the 'wan' interface should work for most users." +msgid "Transfer Options To Dnsmasq" msgstr "" msgid "View Logfile" diff --git a/package/luci/applications/luci-app-firewall/po/zh-cn/firewall.po b/package/luci/applications/luci-app-firewall/po/zh-cn/firewall.po index f2faab8809..f21d49250a 100644 --- a/package/luci/applications/luci-app-firewall/po/zh-cn/firewall.po +++ b/package/luci/applications/luci-app-firewall/po/zh-cn/firewall.po @@ -1,7 +1,15 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" -"Last-Translator: Hing-wang Liao \n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"PO-Revision-Date: 2017-10-28 18:56+0800\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "%s in %s" msgstr "%s 位于 %s" @@ -62,7 +70,7 @@ msgid "" "otherwise covered by the firewall framework. The commands are executed after " "each firewall restart, right after the default ruleset has been loaded." msgstr "" -"自定义规则允许你执行不属于防火墙框架的任意 iptables 命令。每次重启防火墙时," +"自定义规则允许您执行不属于防火墙框架的任意 iptables 命令。每次重启防火墙时," "在默认的规则运行后这些命令将立即执行。" msgid "Destination IP address" @@ -384,7 +392,7 @@ msgid "" "forwarded traffic between different networks within the zone. Covered " "networks specifies which available networks are members of this zone." msgstr "" -"本节定义 %q 的通用属性, 入站数据和出站数据选项用于设置此区" +"本节定义 %q 的通用属性,入站数据和出站数据选项用于设置此区" "域入站和出站流量的默认策略,转发选项描述该区域内不同网络之间的流量转" "发策略。覆盖网络指定从属于这个区域的网络。" @@ -441,7 +449,7 @@ msgstr "星期" msgid "" "You may specify multiple by selecting \"-- custom --\" and then entering " "protocols separated by space." -msgstr "你也可以选择“--自定义--”来定义多个协议,在多个协议间需加空格。" +msgstr "您也可以选择“--自定义--”来定义多个协议,在多个协议间需加空格。" msgid "Zone %q" msgstr "区域 %q" diff --git a/package/luci/applications/luci-app-firewall/po/zh-tw/firewall.po b/package/luci/applications/luci-app-firewall/po/zh-tw/firewall.po index fff89cbcdf..eceef36632 100644 --- a/package/luci/applications/luci-app-firewall/po/zh-tw/firewall.po +++ b/package/luci/applications/luci-app-firewall/po/zh-tw/firewall.po @@ -1,42 +1,42 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"PO-Revision-Date: 2014-05-21 12:45+0200\n" -"Last-Translator: omnistack \n" -"Language-Team: none\n" -"Language: zh_TW\n" -"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Pootle 2.0.6\n" +"PO-Revision-Date: 2017-10-28 18:56+0800\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "%s in %s" -msgstr "%s 在 %s 之中" +msgstr "%s 位於 %s" msgid "%s%s with %s" -msgstr "%s%s 同 %s" +msgstr "%s%s 和 %s" msgid "%s, %s in %s" -msgstr " %s, %s 在 %s 之中" +msgstr "%s, %s 位於 %s" msgid "(Unnamed Entry)" -msgstr "(未命名的項目)" +msgstr "(未命名條目)" msgid "(Unnamed Rule)" -msgstr "(未命名的規則)" +msgstr "(未命名規則)" msgid "(Unnamed SNAT)" -msgstr "(未命名的來源NAT)" +msgstr "(未命名 SNAT)" msgid "%d pkts. per %s" -msgstr "%d 封包數. 每%s" +msgstr "%d 資料包。每 %s" msgid "%d pkts. per %s, burst %d pkts." -msgstr "%d 封包數. 每%s, 爆量 %d 封包數." +msgstr "%d 資料包。每 %s,突發 %d 資料包。" msgid "%s and limit to %s" -msgstr "%s 且限制到 %s" +msgstr "%s 並限制到 %s" msgid "Action" msgstr "動作" @@ -48,63 +48,63 @@ msgid "Add and edit..." msgstr "新增並編輯..." msgid "Advanced Settings" -msgstr "進階設定" +msgstr "高階設定" msgid "Allow forward from source zones:" -msgstr "允許從source zones轉發:" +msgstr "允許從源區域轉發:" msgid "Allow forward to destination zones:" -msgstr "允許從 destination zones轉發:" +msgstr "允許轉發到目標區域:" msgid "Any" -msgstr "任意" +msgstr "任何" msgid "Covered networks" -msgstr "已覆蓋的網路" +msgstr "覆蓋網路" msgid "Custom Rules" -msgstr "自訂的規則群" +msgstr "自定義規則" msgid "" "Custom rules allow you to execute arbitrary iptables commands which are not " "otherwise covered by the firewall framework. The commands are executed after " "each firewall restart, right after the default ruleset has been loaded." msgstr "" -"自定義規則允許你執行這是不以其他方式涉及的防火牆框架arbitrary的iptables命令。" -"該命令是每個防火牆重啟後執行,默認規則集已經加載之後。" +"自定義規則允許您執行不屬於防火牆框架的任意 iptables 命令。每次重啟防火牆時," +"在預設的規則執行後這些命令將立即執行。" msgid "Destination IP address" -msgstr "目標IP位址" +msgstr "目標 IP 位址" msgid "Destination address" msgstr "目標位址" msgid "Destination port" -msgstr "目地埠" +msgstr "目標埠" msgid "Destination zone" -msgstr "目標區" +msgstr "目標區域" msgid "Do not rewrite" -msgstr "不要改寫" +msgstr "不重寫" msgid "Drop invalid packets" -msgstr "丟棄不正確的封包群" +msgstr "丟棄無效資料包" msgid "Enable" msgstr "啟用" msgid "Enable NAT Loopback" -msgstr "啓用NAT回傳" +msgstr "啟用 NAT 環回" msgid "Enable SYN-flood protection" -msgstr "啟用SYN-flood攻擊的保護" +msgstr "啟用 SYN-flood 防禦" msgid "Enable logging on this zone" -msgstr "啟用日誌記錄這區" +msgstr "啟用此區域的日誌記錄" msgid "External IP address" -msgstr "外部IP位址" +msgstr "外部 IP 位址" msgid "External port" msgstr "外部埠" @@ -113,22 +113,22 @@ msgid "External zone" msgstr "外部區域" msgid "Extra arguments" -msgstr "額外參數" +msgstr "附加引數" msgid "Firewall" msgstr "防火牆" msgid "Firewall - Custom Rules" -msgstr "防火牆-自訂規則" +msgstr "防火牆 - 自定義規則" msgid "Firewall - Port Forwards" -msgstr "防火牆-埠轉發" +msgstr "防火牆 - 埠轉發" msgid "Firewall - Traffic Rules" -msgstr "防火牆-流量規則" +msgstr "防火牆 - 通訊規則" msgid "Firewall - Zone Settings" -msgstr "防火牆-區域設定" +msgstr "防火牆 - 區域設定" msgid "Force connection tracking" msgstr "強制連線追蹤" @@ -140,19 +140,19 @@ msgid "Forward to" msgstr "轉發到" msgid "Friday" -msgstr "" +msgstr "星期五" msgid "From %s in %s" -msgstr "從%s在%s" +msgstr "來自 %s 位於 %s" msgid "From %s in %s with source %s" -msgstr "從%s在%s與來源%" +msgstr "來自 %s 位於 %s 源於 %s" msgid "From %s in %s with source %s and %s" -msgstr "從%s在%s與來源%s和%s" +msgstr "來自 %s 位於 %s 源埠 %s 源 MAC %s" msgid "General Settings" -msgstr "一般設定" +msgstr "基本設定" msgid "IPv4" msgstr "IPv4" @@ -161,205 +161,205 @@ msgid "IPv4 and IPv6" msgstr "IPv4 和 IPv6" msgid "IPv4 only" -msgstr "僅有IPv4" +msgstr "僅 IPv4" msgid "IPv6" msgstr "IPv6" msgid "IPv6 only" -msgstr "僅有IPv6" +msgstr "僅 IPv6" msgid "Input" -msgstr "輸入" +msgstr "入站資料" msgid "Inter-Zone Forwarding" -msgstr "內部-區轉發" +msgstr "埠觸發" msgid "Internal IP address" -msgstr "內部的IP位址" +msgstr "內部 IP 位址" msgid "Internal port" -msgstr "內部的埠號" +msgstr "內部埠" msgid "Internal zone" -msgstr "內部區" +msgstr "內部區域" msgid "Limit log messages" -msgstr "限制日誌訊息數" +msgstr "限制日誌資訊" msgid "MSS clamping" -msgstr "MSS調節" +msgstr "MSS 鉗制" msgid "Masquerading" -msgstr "偽裝" +msgstr "IP 動態偽裝" msgid "Match" -msgstr "匹配" +msgstr "匹配規則" msgid "Match ICMP type" -msgstr "匹配的ICMP型態" +msgstr "匹配 ICMP 型別" msgid "Match forwarded traffic to the given destination port or port range." -msgstr "匹配已轉發的流量到給定的目標埠或者範圍埠" +msgstr "匹配指定目標埠或目標埠範圍的轉發流量。" msgid "" "Match incoming traffic directed at the given destination port or port range " "on this host" -msgstr "匹配輸入的流量到主機上給定的目標埠或者範圍埠" +msgstr "匹配指向此主機上指定目標埠或目標埠範圍的入站流量。" msgid "" "Match incoming traffic originating from the given source port or port range " "on the client host." -msgstr "從給定的來源埠或範圍埠在客戶端主機上的匹配傳入流量始發。" +msgstr "匹配來自客戶端主機上指定源埠或源埠範圍的入站流量。" msgid "Monday" -msgstr "" +msgstr "星期一" msgid "Month Days" -msgstr "" +msgstr "日期" msgid "Name" -msgstr "名稱" +msgstr "名字" msgid "New SNAT rule" -msgstr "新的來源NAT規則" +msgstr "新建 SNAT 規則" msgid "New forward rule" -msgstr "新轉發規則" +msgstr "新建轉發規則" msgid "New input rule" -msgstr "新輸入規則" +msgstr "新建進入規則" msgid "New port forward" -msgstr "新轉發埠" +msgstr "新建埠轉發" msgid "New source NAT" -msgstr "新來源埠" +msgstr "新建 Source NAT" msgid "Only match incoming traffic directed at the given IP address." -msgstr "僅匹配傳入流量予給定的IP地址." +msgstr "僅匹配指定目的 IP 位址的入站流量。" msgid "Only match incoming traffic from these MACs." -msgstr "僅匹配從這些MAC群的傳入流量." +msgstr "僅匹配來自這些 MAC 的入站流量。" msgid "Only match incoming traffic from this IP or range." -msgstr "僅匹配從這個IP或範圍IP給傳入流量." +msgstr "僅匹配來自此 IP 或 IP 範圍的入站流量。" msgid "" "Only match incoming traffic originating from the given source port or port " "range on the client host" -msgstr "僅匹配從給定的來源埠或範圍埠的客戶端主機上給傳入流量." +msgstr "僅匹配源自客戶端主機上給定源埠或源埠範圍的入站流量。" msgid "Open ports on router" -msgstr "開啟路由器上的埠號群" +msgstr "開啟路由器埠" msgid "Other..." msgstr "其它..." msgid "Output" -msgstr "輸出" +msgstr "出站資料" msgid "Passes additional arguments to iptables. Use with care!" -msgstr "通行額外的參數到 iptables上. 使用要小心!" +msgstr "傳遞到 iptables 的額外引數。小心使用!" msgid "Port Forwards" -msgstr "埠轉遞" +msgstr "埠轉發" msgid "" "Port forwarding allows remote computers on the Internet to connect to a " "specific computer or service within the private LAN." -msgstr "埠轉發允許遠端網際網路上的電腦來連接到在私人區網內指定的電腦或服務." +msgstr "埠轉發允許 Internet 上的遠端計算機連線到內部網路中的特定計算機或服務。" msgid "Protocol" -msgstr "協定" +msgstr "協議" msgid "" "Redirect matched incoming traffic to the given port on the internal host" -msgstr "重導向已匹配傳入流量到內部主機上的指定埠" +msgstr "重定向匹配的入站流量到內部主機的埠" msgid "Redirect matched incoming traffic to the specified internal host" -msgstr "重導向已匹配傳入流量到內部主機上" +msgstr "重定向匹配的入站流量到指定的內部主機" msgid "Restart Firewall" -msgstr "" +msgstr "重啟防火牆" msgid "Restrict Masquerading to given destination subnets" -msgstr "限制偽裝到已給予的目標子網路" +msgstr "要限制 IP 動態偽裝的目標子網" msgid "Restrict Masquerading to given source subnets" -msgstr "限制偽裝到已給予的來源子網路" +msgstr "要限制 IP 動態偽裝的源子網" msgid "Restrict to address family" -msgstr "限制的位址群" +msgstr "限制位址" msgid "Rewrite matched traffic to the given address." -msgstr "改寫已匹配的流量到給定的位址." +msgstr "將匹配流量的源位址改寫成指定位址。" msgid "" "Rewrite matched traffic to the given source port. May be left empty to only " "rewrite the IP address." -msgstr "改寫已匹配的流量到給定的來源埠. 或許可以保留空白到唯一改寫的IP位址." +msgstr "將匹配流量的源埠改寫成指定埠。留空只改寫 IP 位址。" msgid "Rewrite to source %s" -msgstr "改寫到來源 %s" +msgstr "源位址改寫成 %s" msgid "Rewrite to source %s, %s" -msgstr "改寫到來源 %s, %s" +msgstr "源位址改寫成 %s, %s" msgid "SNAT IP address" -msgstr "來源NAT IP 位址" +msgstr "SNAT IP 位址" msgid "SNAT port" -msgstr "來源NAT IP 埠" +msgstr "SNAT 埠" msgid "Saturday" -msgstr "" +msgstr "星期六" msgid "Source IP address" -msgstr "來源 IP 位址" +msgstr "源 IP 位址" msgid "Source MAC address" -msgstr "來源 MAC硬體位址" +msgstr "源 MAC 位址" msgid "Source NAT" -msgstr "來源NAT" +msgstr "Source NAT" msgid "" "Source NAT is a specific form of masquerading which allows fine grained " "control over the source IP used for outgoing traffic, for example to map " "multiple WAN addresses to internal subnets." msgstr "" -"來源NAT是偽裝的一種特殊形式,它允許對輸出流量的來源IP進行精細控制, 例如要對映" -"到多個WAN位址到內部子網路群上." +"Source NAT 是一種特殊形式的封包偽裝,它允許精細的控制傳出流量的源 IP,例如:" +"將多個 WAN 位址對映到內部子網。" msgid "Source address" -msgstr "來源位址" +msgstr "源位址" msgid "Source port" -msgstr "來源埠" +msgstr "源埠" msgid "Source zone" -msgstr "來源區" +msgstr "源區域" msgid "Start Date (yyyy-mm-dd)" -msgstr "" +msgstr "開始日期(yyyy-mm-dd)" msgid "Start Time (hh:mm:ss)" -msgstr "" +msgstr "開始時間(hh:mm:ss)" msgid "Stop Date (yyyy-mm-dd)" -msgstr "" +msgstr "停止日期(yyyy-mm-dd)" msgid "Stop Time (hh:mm:ss)" -msgstr "" +msgstr "停止時間(hh:mm:ss)" msgid "Sunday" -msgstr "" +msgstr "星期日" msgid "" "The firewall creates zones over your network interfaces to control network " "traffic flow." -msgstr "防火牆對你的網路建立區域以便控制網路流向." +msgstr "防火牆通過在網路介面上建立區域來控制網路流量。" msgid "" "The options below control the forwarding policies between this zone (%s) and " @@ -369,22 +369,21 @@ msgid "" "rule is unidirectional, e.g. a forward from lan to wan does " "not imply a permission to forward from wan to lan as well." msgstr "" -"下列的選項控制這區域(%s)和其它區轉發策略.目地區 覆蓋從 %q 起" -"源的 已轉發的流量.來源區匹配從其它區域針對 %q的轉發流量.轉發規則是單向的." +"以下選項可以控制區域(%s)和其它區域間的轉發規則。目標區域接收" +"源自 %q 的轉發流量。源區域匹配從目標為 %q 的區域的需轉發流量。轉發規則的作用是單向的,例如:一條允許" +"從 lan 到 wan 的轉發規則並不隱含有允許相反方向從 wan 到 lan 的流量轉發。" msgid "" "This page allows you to change advanced properties of the port forwarding " "entry. In most cases there is no need to modify those settings." -msgstr "" -"這頁面允許你修改這個轉發埠項目的進階選項. 在大多數情況下,不需要修改這些設定." +msgstr "本頁面可以更改埠轉發的高階設定。大多數情況下,不需要更改這些設定。" msgid "" "This page allows you to change advanced properties of the traffic rule " "entry, such as matched source and destination hosts." -msgstr "這頁面允許改變進階流量規則項目的進階設置, 例如匹配的來源和目標主機." +msgstr "本頁面可以更改通訊規則的高階設定,比如:需匹配的源主機和目標主機。" -#, fuzzy msgid "" "This section defines common properties of %q. The input and " "output options set the default policies for traffic entering and " @@ -392,91 +391,91 @@ msgid "" "forwarded traffic between different networks within the zone. Covered " "networks specifies which available networks are members of this zone." msgstr "" -"本節定義 %q 的通用屬性.在輸入和輸出選項設置交通進出的默認策" -"略,而在轉發的選項描述在這區域內不同網路的轉發流量.已覆蓋的網路群" -"指定特定區域成員可以是被運用的網路." +"本節定義 %q 的通用屬性,入站資料和出站資料選項用於設定此區" +"域入站和出站流量的預設策略,轉發選項描述該區域內不同網路之間的流量轉" +"發策略。覆蓋網路指定從屬於這個區域的網路。" msgid "Thursday" -msgstr "" +msgstr "星期四" msgid "Time in UTC" -msgstr "" +msgstr "UTC 時間" msgid "To %s at %s on this device" -msgstr "到%s在上的此設備的%s的" +msgstr "到 %s 在 %s 位於本裝置" msgid "To %s in %s" -msgstr "到%s在%s" +msgstr "到 %s 位於 %s" msgid "To %s on this device" -msgstr "到%s上的此設備的" +msgstr "到 %s 位於本裝置" msgid "To %s, %s in %s" -msgstr "到%s,%s的%s中" +msgstr "到 %s, %s 位於 %s" msgid "To source IP" -msgstr "來源IP" +msgstr "到源 IP" msgid "To source port" -msgstr "來源埠" +msgstr "到源埠" msgid "Traffic Rules" -msgstr "流量規則" +msgstr "通訊規則" msgid "" "Traffic rules define policies for packets traveling between different zones, " "for example to reject traffic between certain hosts or to open WAN ports on " "the router." msgstr "" -"流量規則定義在不同區域之間竄行封包的策略,例如要拒絕特定主機群的流量或者要打開" -"路由器上WAN埠。" +"通訊規則定義了不同區域間的資料包傳輸策略,例如:拒絕一些主機之間的通訊,開放" +"路由器 WAN 上的埠。" msgid "Tuesday" -msgstr "" +msgstr "星期二" msgid "Via %s" -msgstr "通過%s的" +msgstr "通過 %s" msgid "Via %s at %s" -msgstr "通過%s在%s的" +msgstr "通過 %s 在 %s" msgid "Wednesday" -msgstr "" +msgstr "星期三" msgid "Week Days" -msgstr "" +msgstr "星期" msgid "" "You may specify multiple by selecting \"-- custom --\" and then entering " "protocols separated by space." -msgstr "你可以以選擇\"-- 自訂 --\"並且打入由空格分開的協定來做多重指定." +msgstr "您也可以選擇“--自定義--”來定義多個協議,在多個協議間需加空格。" msgid "Zone %q" msgstr "區域 %q" msgid "Zone ⇒ Forwardings" -msgstr "區域 ⇒ 轉發進行" +msgstr "區域 ⇒ 轉發" msgid "Zones" -msgstr "領域" +msgstr "區域" msgid "accept" msgstr "接受" msgid "any" -msgstr "任意" +msgstr "所有" msgid "any host" -msgstr "任意埠" +msgstr "所有主機" msgid "any router IP" -msgstr "任意路由器IP" +msgstr "所有路由 IP" msgid "any zone" -msgstr "任意區" +msgstr "所有區域" msgid "don't track" -msgstr "不要追蹤" +msgstr "不跟蹤" msgid "drop" msgstr "丟棄" @@ -485,10 +484,4 @@ msgid "reject" msgstr "拒絕" msgid "traffic" -msgstr "" - -#~ msgid "-- Please choose --" -#~ msgstr "-- 請選擇 --" - -#~ msgid "-- custom --" -#~ msgstr "-- 自訂 --" +msgstr "通訊" diff --git a/package/luci/applications/luci-app-freifunk-policyrouting/po/zh-cn/freifunk-policyrouting.po b/package/luci/applications/luci-app-freifunk-policyrouting/po/zh-cn/freifunk-policyrouting.po index ff0aabc3ce..6a07b1dce9 100644 --- a/package/luci/applications/luci-app-freifunk-policyrouting/po/zh-cn/freifunk-policyrouting.po +++ b/package/luci/applications/luci-app-freifunk-policyrouting/po/zh-cn/freifunk-policyrouting.po @@ -33,7 +33,7 @@ msgid "" "connection as a fallback. If you do not want this and instead block that " "traffic then you should select this option." msgstr "" -"如果没有缺省的mesh网络路由,则使用属于防火墙区域内的Internet连接作为备用路由。如果你不想要这个,而是阻止该流量,那么你应该选择此选项。" +"如果没有缺省的mesh网络路由,则使用属于防火墙区域内的Internet连接作为备用路由。如果您不想要这个,而是阻止该流量,那么您应该选择此选项。" msgid "" "If your own gateway is not available then fallback to the mesh default " @@ -53,5 +53,5 @@ msgid "" "'Ego Mode'). Your own traffic is then sent via your internet connection " "while traffic originating from the mesh will use another gateway in the mesh." msgstr "" -"这些页面用于某些防火墙区域设置策略路由。这是非常有用的,如果你需要自己使用自己的互联网连接,但你不想把它分享给其他人(这就是为什么它也被称为“自我模式'" -")。你自己的流量,通过你的互联网连接发送,而mesh中的数据包将使用mesh中另外的网关。" +"这些页面用于某些防火墙区域设置策略路由。这是非常有用的,如果您需要自己使用自己的互联网连接,但您不想把它分享给其他人(这就是为什么它也被称为“自我模式'" +")。您自己的流量,通过您的互联网连接发送,而mesh中的数据包将使用mesh中另外的网关。" diff --git a/package/luci/applications/luci-app-fwknopd/root/etc/uci-defaults/40_luci-fwknopd b/package/luci/applications/luci-app-fwknopd/root/etc/uci-defaults/40_luci-fwknopd index 65ef012450..9e5057e701 100644 --- a/package/luci/applications/luci-app-fwknopd/root/etc/uci-defaults/40_luci-fwknopd +++ b/package/luci/applications/luci-app-fwknopd/root/etc/uci-defaults/40_luci-fwknopd @@ -3,6 +3,7 @@ #-- Licensed to the public under the GNU General Public License v2. . /lib/functions/network.sh +[ "$(uci -q get fwknopd.@access[0].KEY)" != "CHANGEME" ] && exit 0 uci batch <\n" +"Project-Id-Version: \n" +"PO-Revision-Date: 2017-10-25 22:33+0900\n" +"Last-Translator: INAGAKI Hiroshi \n" "Language-Team: none\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Pootle 2.0.4\n" +"X-Generator: Poedit 2.0.4\n" +"POT-Creation-Date: \n" msgid "Advanced Settings" msgstr "詳細設定" msgid "Album art names:" -msgstr "アルバムアートワーク・ファイル名:" +msgstr "アルバムアートワーク ファイル名:" + +msgid "Allow wide links:" +msgstr "ワイド リンクの許可:" msgid "Announced model number:" msgstr "通知するモデル番号:" @@ -116,6 +120,12 @@ msgid "" "to store its log file." msgstr "miniDLNAが書きだすログファイルのディレクトリパスを設定してください。" +msgid "" +"Set this to allow serving content outside the media root (via symlinks)." +msgstr "" +"シンボリックリンクを通してメディア ルート外のコンテンツの提供を許可するには、" +"このオプションを有効にしてください。" + msgid "" "Set this to enable inotify monitoring to automatically discover new files." msgstr "" @@ -143,13 +153,13 @@ msgid "" "Set this to the directory you want scanned. If you want to restrict the " "directory to a specific content type, you can prepend the type ('A' for " "audio, 'V' for video, 'P' for images), followed by a comma, to the directory " -"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified." +"(eg. A,/mnt/media/Music). Multiple directories can be specified." msgstr "" "miniDLNA がスキャンするディレクトリを設定します。ディレクトリを特定のコンテン" "ツに制限したい場合、タイプをパスのはじめに付け、コンマ記号で区切ることで設定" "できます ('A'=オーディオ \"audio\", 'V'=ビデオ \"video\", 'P'=写真 \"images" -"\", 例: media_dir=A,/mnt/media/Music)。また、このオプションは複数のディレクト" -"リを登録可能です。" +"\", 例: A,/mnt/media/Music)。また、このオプションは複数のディレクトリを登録可" +"能です。" msgid "Specify the path to the MiniSSDPd socket." msgstr "MiniSSDPd ソケットのパスを設定してください。" @@ -164,8 +174,8 @@ msgid "" "The miniDLNA service is active, serving %d audio, %d video and %d image " "files." msgstr "" -"miniDLNA サービスは稼働中です。%d 個の音楽ファイル , %d 個のビデオファイル, %" -"d 個の写真ファイルを認識しています。" +"miniDLNA サービスは稼働中です。%d 個の音楽ファイル , %d 個のビデオファイル, " +"%d 個の写真ファイルを認識しています。" msgid "The miniDLNA service is not running." msgstr "miniDLNA サービスは稼働していません。" diff --git a/package/luci/applications/luci-app-minidlna/po/ms/minidlna.po b/package/luci/applications/luci-app-minidlna/po/ms/minidlna.po index 8df98a821f..7372c90a83 100644 --- a/package/luci/applications/luci-app-minidlna/po/ms/minidlna.po +++ b/package/luci/applications/luci-app-minidlna/po/ms/minidlna.po @@ -13,6 +13,9 @@ msgstr "" msgid "Album art names:" msgstr "" +msgid "Allow wide links:" +msgstr "" + msgid "Announced model number:" msgstr "" @@ -108,6 +111,10 @@ msgid "" "to store its log file." msgstr "" +msgid "" +"Set this to allow serving content outside the media root (via symlinks)." +msgstr "" + msgid "" "Set this to enable inotify monitoring to automatically discover new files." msgstr "" @@ -127,7 +134,7 @@ msgid "" "Set this to the directory you want scanned. If you want to restrict the " "directory to a specific content type, you can prepend the type ('A' for " "audio, 'V' for video, 'P' for images), followed by a comma, to the directory " -"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified." +"(eg. A,/mnt/media/Music). Multiple directories can be specified." msgstr "" msgid "Specify the path to the MiniSSDPd socket." diff --git a/package/luci/applications/luci-app-minidlna/po/no/minidlna.po b/package/luci/applications/luci-app-minidlna/po/no/minidlna.po index 4b24712f74..daf1996564 100644 --- a/package/luci/applications/luci-app-minidlna/po/no/minidlna.po +++ b/package/luci/applications/luci-app-minidlna/po/no/minidlna.po @@ -17,6 +17,9 @@ msgstr "Avanserte Innstillinger" msgid "Album art names:" msgstr "Albumbilder navn:" +msgid "Allow wide links:" +msgstr "" + msgid "Announced model number:" msgstr "Annonsert modellnummer:" @@ -60,8 +63,8 @@ msgid "" "MiniDLNA is server software with the aim of being fully compliant with DLNA/" "UPnP-AV clients." msgstr "" -"MiniDLNA er serverprogramvare som sikter på å være fullt kompatibel med DLNA" -"/UPnP-AV klienter." +"MiniDLNA er serverprogramvare som sikter på å være fullt kompatibel med DLNA/" +"UPnP-AV klienter." msgid "" "Model number the miniDLNA daemon will report to clients in its XML " @@ -121,6 +124,10 @@ msgstr "" "Her kan en definere hvilken katalog som MiniDLNA skal bruke til å lagre log " "filen i." +msgid "" +"Set this to allow serving content outside the media root (via symlinks)." +msgstr "" + msgid "" "Set this to enable inotify monitoring to automatically discover new files." msgstr "" @@ -147,12 +154,12 @@ msgid "" "Set this to the directory you want scanned. If you want to restrict the " "directory to a specific content type, you can prepend the type ('A' for " "audio, 'V' for video, 'P' for images), followed by a comma, to the directory " -"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified." +"(eg. A,/mnt/media/Music). Multiple directories can be specified." msgstr "" "Her kan en velge den katalogen som blir skannet. Om du ønsker å begrense " "katalogen til en spesifikk innholdstype kan sette en bokstav foran ('A' for " -"lyd, 'V' for video, 'P' for bilder), etterfulgt av et komma og katalogen. " -"(f.eks media_dir=A,/mnt/media/Musikk). Flere kataloger kan brukes." +"lyd, 'V' for video, 'P' for bilder), etterfulgt av et komma og katalogen. (f." +"eks A,/mnt/media/Musikk). Flere kataloger kan brukes." msgid "Specify the path to the MiniSSDPd socket." msgstr "Angi banen til MiniSSDPd socketen." diff --git a/package/luci/applications/luci-app-minidlna/po/pl/minidlna.po b/package/luci/applications/luci-app-minidlna/po/pl/minidlna.po index b4a8a6f676..8c03b51556 100644 --- a/package/luci/applications/luci-app-minidlna/po/pl/minidlna.po +++ b/package/luci/applications/luci-app-minidlna/po/pl/minidlna.po @@ -18,6 +18,9 @@ msgstr "Ustawienia zaawansowane" msgid "Album art names:" msgstr "Nazwy okładek albumów:" +msgid "Allow wide links:" +msgstr "" + msgid "Announced model number:" msgstr "Rozgłaszany model:" @@ -120,6 +123,10 @@ msgstr "" "Ustaw to, jeśli chcesz podać folder, w którym miniDLNA powinien przechowywać " "dzienniki (logi)." +msgid "" +"Set this to allow serving content outside the media root (via symlinks)." +msgstr "" + msgid "" "Set this to enable inotify monitoring to automatically discover new files." msgstr "" @@ -146,12 +153,12 @@ msgid "" "Set this to the directory you want scanned. If you want to restrict the " "directory to a specific content type, you can prepend the type ('A' for " "audio, 'V' for video, 'P' for images), followed by a comma, to the directory " -"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified." +"(eg. A,/mnt/media/Music). Multiple directories can be specified." msgstr "" "Ustaw tu folder, który chcesz skanować. Jeśli chcesz ograniczyć folder do " "konkretnego typu zawartości, możesz poprzedzić ścieżkę typem (\"A\" dla " -"audio, \"V\" dla wideo, \"P\" dla obrazów) i przecinkiem (np media_dir=A,/" -"mnt/media/Muzyka). Możesz podać kilka folderów." +"audio, \"V\" dla wideo, \"P\" dla obrazów) i przecinkiem (np A,/mnt/media/" +"Muzyka). Możesz podać kilka folderów." msgid "Specify the path to the MiniSSDPd socket." msgstr "Podaj ścieżkę do gniazda (socketu) miniSSDPd." diff --git a/package/luci/applications/luci-app-minidlna/po/pt-br/minidlna.po b/package/luci/applications/luci-app-minidlna/po/pt-br/minidlna.po index 3d53abd466..5ae9226d18 100644 --- a/package/luci/applications/luci-app-minidlna/po/pt-br/minidlna.po +++ b/package/luci/applications/luci-app-minidlna/po/pt-br/minidlna.po @@ -14,6 +14,9 @@ msgstr "Configuração Avançada" msgid "Album art names:" msgstr "Nomes do Álbum artistico: " +msgid "Allow wide links:" +msgstr "" + msgid "Announced model number:" msgstr "numero de modelo anunciado:" @@ -121,6 +124,10 @@ msgstr "" "Defina esta opção se você gostaria de especificar o diretório onde você " "deseja MiniDLNA para armazenar seu arquivo de log." +msgid "" +"Set this to allow serving content outside the media root (via symlinks)." +msgstr "" + msgid "" "Set this to enable inotify monitoring to automatically discover new files." msgstr "" @@ -148,13 +155,13 @@ msgid "" "Set this to the directory you want scanned. If you want to restrict the " "directory to a specific content type, you can prepend the type ('A' for " "audio, 'V' for video, 'P' for images), followed by a comma, to the directory " -"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified." +"(eg. A,/mnt/media/Music). Multiple directories can be specified." msgstr "" "Defina esta opção para o diretório que você deseja verificar. Se você quiser " "restringir o diretório para um tipo específico de conteúdo, você pode " "prefixar o tipo ('A' para áudio, 'V' para o vídeo, 'P' para imagens), " -"seguido por uma vírgula, para o diretório (por exemplo media_dir = A, / " -"mnt / media / Música). Vários diretórios podem ser especificados." +"seguido por uma vírgula, para o diretório (por exemplo A, / mnt / media / " +"Música). Vários diretórios podem ser especificados." msgid "Specify the path to the MiniSSDPd socket." msgstr "Especifique o caminho para o soquete MiniSSDPd." diff --git a/package/luci/applications/luci-app-minidlna/po/pt/minidlna.po b/package/luci/applications/luci-app-minidlna/po/pt/minidlna.po index 96132cdf61..dbd835f509 100644 --- a/package/luci/applications/luci-app-minidlna/po/pt/minidlna.po +++ b/package/luci/applications/luci-app-minidlna/po/pt/minidlna.po @@ -17,6 +17,9 @@ msgstr "Definições Avançadas" msgid "Album art names:" msgstr "" +msgid "Allow wide links:" +msgstr "" + msgid "Announced model number:" msgstr "Número modelo anunciado:" @@ -116,6 +119,10 @@ msgid "" "to store its log file." msgstr "" +msgid "" +"Set this to allow serving content outside the media root (via symlinks)." +msgstr "" + msgid "" "Set this to enable inotify monitoring to automatically discover new files." msgstr "" @@ -135,7 +142,7 @@ msgid "" "Set this to the directory you want scanned. If you want to restrict the " "directory to a specific content type, you can prepend the type ('A' for " "audio, 'V' for video, 'P' for images), followed by a comma, to the directory " -"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified." +"(eg. A,/mnt/media/Music). Multiple directories can be specified." msgstr "" msgid "Specify the path to the MiniSSDPd socket." diff --git a/package/luci/applications/luci-app-minidlna/po/ro/minidlna.po b/package/luci/applications/luci-app-minidlna/po/ro/minidlna.po index cba5fe6a7a..5e79cd2cf7 100644 --- a/package/luci/applications/luci-app-minidlna/po/ro/minidlna.po +++ b/package/luci/applications/luci-app-minidlna/po/ro/minidlna.po @@ -18,6 +18,9 @@ msgstr "Setări avansate" msgid "Album art names:" msgstr "" +msgid "Allow wide links:" +msgstr "" + msgid "Announced model number:" msgstr "" @@ -113,6 +116,10 @@ msgid "" "to store its log file." msgstr "" +msgid "" +"Set this to allow serving content outside the media root (via symlinks)." +msgstr "" + msgid "" "Set this to enable inotify monitoring to automatically discover new files." msgstr "" @@ -132,7 +139,7 @@ msgid "" "Set this to the directory you want scanned. If you want to restrict the " "directory to a specific content type, you can prepend the type ('A' for " "audio, 'V' for video, 'P' for images), followed by a comma, to the directory " -"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified." +"(eg. A,/mnt/media/Music). Multiple directories can be specified." msgstr "" msgid "Specify the path to the MiniSSDPd socket." diff --git a/package/luci/applications/luci-app-minidlna/po/ru/minidlna.po b/package/luci/applications/luci-app-minidlna/po/ru/minidlna.po index 539e8ca03d..28ae3165a9 100644 --- a/package/luci/applications/luci-app-minidlna/po/ru/minidlna.po +++ b/package/luci/applications/luci-app-minidlna/po/ru/minidlna.po @@ -20,6 +20,9 @@ msgstr "Расширенные настройки" msgid "Album art names:" msgstr "Имена обложек альбома:" +msgid "Allow wide links:" +msgstr "" + msgid "Announced model number:" msgstr "Номер модели:" @@ -122,6 +125,10 @@ msgid "" "to store its log file." msgstr "Папка, в которой miniDLNA будет хранить свой файл журнала." +msgid "" +"Set this to allow serving content outside the media root (via symlinks)." +msgstr "" + msgid "" "Set this to enable inotify monitoring to automatically discover new files." msgstr "" @@ -148,13 +155,13 @@ msgid "" "Set this to the directory you want scanned. If you want to restrict the " "directory to a specific content type, you can prepend the type ('A' for " "audio, 'V' for video, 'P' for images), followed by a comma, to the directory " -"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified." +"(eg. A,/mnt/media/Music). Multiple directories can be specified." msgstr "" "Директории, которые необходимо сканировать. Если вы хотите установить " "ограничение на определённый тип содержимого в директории, вы можете написать " "тип ('A' для аудио, 'V' для видео, 'P' для изображений) перед путём к " -"директории, за которым следует запятая (напр. media_dir=A,/mnt/media/Music). " -"Может быть указано несколько директорий." +"директории, за которым следует запятая (напр. A,/mnt/media/Music). Может " +"быть указано несколько директорий." msgid "Specify the path to the MiniSSDPd socket." msgstr "Укажите путь к сокету MiniSSDPd." diff --git a/package/luci/applications/luci-app-minidlna/po/sk/minidlna.po b/package/luci/applications/luci-app-minidlna/po/sk/minidlna.po index 19c3e536d4..2968311d2a 100644 --- a/package/luci/applications/luci-app-minidlna/po/sk/minidlna.po +++ b/package/luci/applications/luci-app-minidlna/po/sk/minidlna.po @@ -14,6 +14,9 @@ msgstr "" msgid "Album art names:" msgstr "" +msgid "Allow wide links:" +msgstr "" + msgid "Announced model number:" msgstr "" @@ -109,6 +112,10 @@ msgid "" "to store its log file." msgstr "" +msgid "" +"Set this to allow serving content outside the media root (via symlinks)." +msgstr "" + msgid "" "Set this to enable inotify monitoring to automatically discover new files." msgstr "" @@ -128,7 +135,7 @@ msgid "" "Set this to the directory you want scanned. If you want to restrict the " "directory to a specific content type, you can prepend the type ('A' for " "audio, 'V' for video, 'P' for images), followed by a comma, to the directory " -"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified." +"(eg. A,/mnt/media/Music). Multiple directories can be specified." msgstr "" msgid "Specify the path to the MiniSSDPd socket." diff --git a/package/luci/applications/luci-app-minidlna/po/sv/minidlna.po b/package/luci/applications/luci-app-minidlna/po/sv/minidlna.po index 51a3f3a63f..d06abfd4cd 100644 --- a/package/luci/applications/luci-app-minidlna/po/sv/minidlna.po +++ b/package/luci/applications/luci-app-minidlna/po/sv/minidlna.po @@ -15,6 +15,9 @@ msgstr "" msgid "Album art names:" msgstr "" +msgid "Allow wide links:" +msgstr "" + msgid "Announced model number:" msgstr "" @@ -110,6 +113,10 @@ msgid "" "to store its log file." msgstr "" +msgid "" +"Set this to allow serving content outside the media root (via symlinks)." +msgstr "" + msgid "" "Set this to enable inotify monitoring to automatically discover new files." msgstr "" @@ -129,7 +136,7 @@ msgid "" "Set this to the directory you want scanned. If you want to restrict the " "directory to a specific content type, you can prepend the type ('A' for " "audio, 'V' for video, 'P' for images), followed by a comma, to the directory " -"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified." +"(eg. A,/mnt/media/Music). Multiple directories can be specified." msgstr "" msgid "Specify the path to the MiniSSDPd socket." diff --git a/package/luci/applications/luci-app-minidlna/po/templates/minidlna.pot b/package/luci/applications/luci-app-minidlna/po/templates/minidlna.pot index 2b35d1e716..0f22c674dd 100644 --- a/package/luci/applications/luci-app-minidlna/po/templates/minidlna.pot +++ b/package/luci/applications/luci-app-minidlna/po/templates/minidlna.pot @@ -7,6 +7,9 @@ msgstr "" msgid "Album art names:" msgstr "" +msgid "Allow wide links:" +msgstr "" + msgid "Announced model number:" msgstr "" @@ -102,6 +105,10 @@ msgid "" "to store its log file." msgstr "" +msgid "" +"Set this to allow serving content outside the media root (via symlinks)." +msgstr "" + msgid "" "Set this to enable inotify monitoring to automatically discover new files." msgstr "" @@ -121,7 +128,7 @@ msgid "" "Set this to the directory you want scanned. If you want to restrict the " "directory to a specific content type, you can prepend the type ('A' for " "audio, 'V' for video, 'P' for images), followed by a comma, to the directory " -"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified." +"(eg. A,/mnt/media/Music). Multiple directories can be specified." msgstr "" msgid "Specify the path to the MiniSSDPd socket." diff --git a/package/luci/applications/luci-app-minidlna/po/tr/minidlna.po b/package/luci/applications/luci-app-minidlna/po/tr/minidlna.po index 070d64c4e8..1eeba3f1bc 100644 --- a/package/luci/applications/luci-app-minidlna/po/tr/minidlna.po +++ b/package/luci/applications/luci-app-minidlna/po/tr/minidlna.po @@ -14,6 +14,9 @@ msgstr "" msgid "Album art names:" msgstr "" +msgid "Allow wide links:" +msgstr "" + msgid "Announced model number:" msgstr "" @@ -109,6 +112,10 @@ msgid "" "to store its log file." msgstr "" +msgid "" +"Set this to allow serving content outside the media root (via symlinks)." +msgstr "" + msgid "" "Set this to enable inotify monitoring to automatically discover new files." msgstr "" @@ -128,7 +135,7 @@ msgid "" "Set this to the directory you want scanned. If you want to restrict the " "directory to a specific content type, you can prepend the type ('A' for " "audio, 'V' for video, 'P' for images), followed by a comma, to the directory " -"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified." +"(eg. A,/mnt/media/Music). Multiple directories can be specified." msgstr "" msgid "Specify the path to the MiniSSDPd socket." diff --git a/package/luci/applications/luci-app-minidlna/po/uk/minidlna.po b/package/luci/applications/luci-app-minidlna/po/uk/minidlna.po index 7df732fb0f..db23241cc5 100644 --- a/package/luci/applications/luci-app-minidlna/po/uk/minidlna.po +++ b/package/luci/applications/luci-app-minidlna/po/uk/minidlna.po @@ -15,6 +15,9 @@ msgstr "" msgid "Album art names:" msgstr "" +msgid "Allow wide links:" +msgstr "" + msgid "Announced model number:" msgstr "" @@ -110,6 +113,10 @@ msgid "" "to store its log file." msgstr "" +msgid "" +"Set this to allow serving content outside the media root (via symlinks)." +msgstr "" + msgid "" "Set this to enable inotify monitoring to automatically discover new files." msgstr "" @@ -129,7 +136,7 @@ msgid "" "Set this to the directory you want scanned. If you want to restrict the " "directory to a specific content type, you can prepend the type ('A' for " "audio, 'V' for video, 'P' for images), followed by a comma, to the directory " -"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified." +"(eg. A,/mnt/media/Music). Multiple directories can be specified." msgstr "" msgid "Specify the path to the MiniSSDPd socket." diff --git a/package/luci/applications/luci-app-minidlna/po/vi/minidlna.po b/package/luci/applications/luci-app-minidlna/po/vi/minidlna.po index 070d64c4e8..1eeba3f1bc 100644 --- a/package/luci/applications/luci-app-minidlna/po/vi/minidlna.po +++ b/package/luci/applications/luci-app-minidlna/po/vi/minidlna.po @@ -14,6 +14,9 @@ msgstr "" msgid "Album art names:" msgstr "" +msgid "Allow wide links:" +msgstr "" + msgid "Announced model number:" msgstr "" @@ -109,6 +112,10 @@ msgid "" "to store its log file." msgstr "" +msgid "" +"Set this to allow serving content outside the media root (via symlinks)." +msgstr "" + msgid "" "Set this to enable inotify monitoring to automatically discover new files." msgstr "" @@ -128,7 +135,7 @@ msgid "" "Set this to the directory you want scanned. If you want to restrict the " "directory to a specific content type, you can prepend the type ('A' for " "audio, 'V' for video, 'P' for images), followed by a comma, to the directory " -"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified." +"(eg. A,/mnt/media/Music). Multiple directories can be specified." msgstr "" msgid "Specify the path to the MiniSSDPd socket." diff --git a/package/luci/applications/luci-app-minidlna/po/zh-cn/minidlna.po b/package/luci/applications/luci-app-minidlna/po/zh-cn/minidlna.po index 998975689f..76ebcdade2 100644 --- a/package/luci/applications/luci-app-minidlna/po/zh-cn/minidlna.po +++ b/package/luci/applications/luci-app-minidlna/po/zh-cn/minidlna.po @@ -17,6 +17,9 @@ msgstr "高级设置" msgid "Album art names:" msgstr "专辑封面名称:" +msgid "Allow wide links:" +msgstr "" + msgid "Announced model number:" msgstr "通告型号:" @@ -112,6 +115,10 @@ msgid "" "to store its log file." msgstr "设置miniDLNA日志目录" +msgid "" +"Set this to allow serving content outside the media root (via symlinks)." +msgstr "" + msgid "" "Set this to enable inotify monitoring to automatically discover new files." msgstr "设定启用inotify监控,自动发现新的文件。" @@ -129,15 +136,16 @@ msgstr "" "设定严格遵守DLNA标准。这将允许服务器端降小大尺寸JPEG图像,在(至少)索尼DLNA" "的产品这可能会降低JPEG服务性能。" -# 如果写成media_dir=A,/mnt/media/Music,uci会报错。实际上应该是A,/mnt/media/Music,这样生成的minidlna.conf刚好是media_dir=A,/mnt/media/Music +# 如果写成A,/mnt/media/Music,uci会报错。实际上应该是A,/mnt/media/Music,这样生成的minidlna.conf刚好是A,/mnt/media/Music msgid "" "Set this to the directory you want scanned. If you want to restrict the " "directory to a specific content type, you can prepend the type ('A' for " "audio, 'V' for video, 'P' for images), followed by a comma, to the directory " -"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified." +"(eg. A,/mnt/media/Music). Multiple directories can be specified." msgstr "" -"设置要扫描的目录。如果你想限制特定内容类型的目录,你可以在前面加上类型(用于音频'A','V'视频,'P'图片),其次是用逗号分隔的目录(如A,/mnt" -"/媒体/音乐)。可以指定多个目录。" +"设置要扫描的目录。如果您想限制特定内容类型的目录,您可以在前面加上类型(用于" +"音频'A','V'视频,'P'图片),其次是用逗号分隔的目录(如A,/mnt/媒体/音乐)。可" +"以指定多个目录。" msgid "Specify the path to the MiniSSDPd socket." msgstr "指定MiniSSDPd socket的路径。" diff --git a/package/luci/applications/luci-app-minidlna/po/zh-tw/minidlna.po b/package/luci/applications/luci-app-minidlna/po/zh-tw/minidlna.po index 1af3280993..2c636757d2 100644 --- a/package/luci/applications/luci-app-minidlna/po/zh-tw/minidlna.po +++ b/package/luci/applications/luci-app-minidlna/po/zh-tw/minidlna.po @@ -17,6 +17,9 @@ msgstr "進階設定值" msgid "Album art names:" msgstr "專輯名稱" +msgid "Allow wide links:" +msgstr "" + msgid "Announced model number:" msgstr "已宣告型號數量" @@ -112,6 +115,10 @@ msgid "" "to store its log file." msgstr "" +msgid "" +"Set this to allow serving content outside the media root (via symlinks)." +msgstr "" + msgid "" "Set this to enable inotify monitoring to automatically discover new files." msgstr "" @@ -131,7 +138,7 @@ msgid "" "Set this to the directory you want scanned. If you want to restrict the " "directory to a specific content type, you can prepend the type ('A' for " "audio, 'V' for video, 'P' for images), followed by a comma, to the directory " -"(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified." +"(eg. A,/mnt/media/Music). Multiple directories can be specified." msgstr "" msgid "Specify the path to the MiniSSDPd socket." diff --git a/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua b/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua index c8c122ad48..5ee5fb39f3 100644 --- a/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua +++ b/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua @@ -64,19 +64,19 @@ function interfaceWarnings() -- display status and warning messages at the top o warnings = "" .. translatef("WARNING: %d interfaces are configured exceeding the maximum of 250!", interfaceNumber) .. "" end if errorReliabilityList ~= " " then - warnings = warnings .. "

" .. translate("WARNING: some interfaces have a higher reliability requirement than there are tracking IP addresses!") .. "" + warnings = warnings .. "

" .. translate("WARNING: Some interfaces have a higher reliability requirement than there are tracking IP addresses!") .. "" end if errorRouteList ~= " " then - warnings = warnings .. "

" .. translate("WARNING: some interfaces have no default route in the main routing table!") .. "" + warnings = warnings .. "

" .. translate("WARNING: Some interfaces have no default route in the main routing table!") .. "" end if errorNetConfigList ~= " " then - warnings = warnings .. "

" .. translate("WARNING: some interfaces are configured incorrectly or not at all in /etc/config/network!") .. "" + warnings = warnings .. "

" .. translate("WARNING: Some interfaces are configured incorrectly or not at all in /etc/config/network!") .. "" end if errorNoMetricList ~= " " then - warnings = warnings .. "

" .. translate("WARNING: some interfaces have no metric configured in /etc/config/network!") .. "" + warnings = warnings .. "

" .. translate("WARNING: Some interfaces have no metric configured in /etc/config/network!") .. "" end if errorDuplicateMetricList ~= " " then - warnings = warnings .. "

" .. translate("WARNING: some interfaces have duplicate metrics configured in /etc/config/network!") .. "" + warnings = warnings .. "

" .. translate("WARNING: Some interfaces have duplicate metrics configured in /etc/config/network!") .. "" end return warnings end diff --git a/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua b/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua index 0318091d6c..a7d7c5af7e 100644 --- a/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua +++ b/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua @@ -50,21 +50,21 @@ end function interfaceWarnings() -- display warning messages at the top of the page local warns, lineBreak = "", "" if errorReliability == 1 then - warns = "" .. translate("WARNING: this interface has a higher reliability requirement than there are tracking IP addresses!") .. "" + warns = "" .. translate("WARNING: This interface has a higher reliability requirement than there are tracking IP addresses!") .. "" lineBreak = "

" end if errorRoute == 1 then - warns = warns .. lineBreak .. "" .. translate("WARNING: this interface has no default route in the main routing table!") .. "" + warns = warns .. lineBreak .. "" .. translate("WARNING: This interface has no default route in the main routing table!") .. "" lineBreak = "

" end if errorNetConfig == 1 then - warns = warns .. lineBreak .. "" .. translate("WARNING: this interface is configured incorrectly or not at all in /etc/config/network!") .. "" + warns = warns .. lineBreak .. "" .. translate("WARNING: This interface is configured incorrectly or not at all in /etc/config/network!") .. "" lineBreak = "

" end if errorNoMetric == 1 then - warns = warns .. lineBreak .. "" .. translate("WARNING: this interface has no metric configured in /etc/config/network!") .. "" + warns = warns .. lineBreak .. "" .. translate("WARNING: This interface has no metric configured in /etc/config/network!") .. "" elseif errorDuplicateMetric == 1 then - warns = warns .. lineBreak .. "" .. translate("WARNING: this and other interfaces have duplicate metrics configured in /etc/config/network!") .. "" + warns = warns .. lineBreak .. "" .. translate("WARNING: This and other interfaces have duplicate metrics configured in /etc/config/network!") .. "" end return warns end diff --git a/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/policyconfig.lua b/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/policyconfig.lua index 06a0fec668..feb62dc8a3 100644 --- a/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/policyconfig.lua +++ b/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/policyconfig.lua @@ -9,7 +9,7 @@ end function policyWarn() -- display status and warning messages at the top of the page if nameTooLong == 1 then - return "" .. translatef("WARNING: this policy's name is %d characters exceeding the maximum of 15!", policyNameLength) .. "" + return "" .. translatef("WARNING: This policy's name is %d characters exceeding the maximum of 15!", policyNameLength) .. "" else return "" end diff --git a/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/rule.lua b/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/rule.lua index 0f4c5950a0..9cb4756fc8 100644 --- a/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/rule.lua +++ b/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/rule.lua @@ -17,7 +17,7 @@ end function ruleWarn() -- display warning messages at the top of the page if error_protocol_list ~= " " then - return "" .. translate("WARNING: some rules have a port configured with no or improper protocol specified! Please configure a specific protocol!") .. "" + return "" .. translate("WARNING: Some rules have a port configured with no or improper protocol specified! Please configure a specific protocol!") .. "" else return "" end diff --git a/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/ruleconfig.lua b/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/ruleconfig.lua index 25a96f5c8f..cb1b45d261 100644 --- a/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/ruleconfig.lua +++ b/package/luci/applications/luci-app-mwan3/luasrc/model/cbi/mwan/ruleconfig.lua @@ -13,7 +13,7 @@ end function ruleWarn() -- display warning message at the top of the page if error_protocol == 1 then - return "" .. translate("WARNING: this rule is incorrectly configured with no or improper protocol specified! Please configure a specific protocol!") .. "" + return "" .. translate("WARNING: This rule is incorrectly configured with no or improper protocol specified! Please configure a specific protocol!") .. "" else return "" end diff --git a/package/luci/applications/luci-app-mwan3/po/ja/mwan3.po b/package/luci/applications/luci-app-mwan3/po/ja/mwan3.po index 72c5dddab9..34a9f1f3b3 100644 --- a/package/luci/applications/luci-app-mwan3/po/ja/mwan3.po +++ b/package/luci/applications/luci-app-mwan3/po/ja/mwan3.po @@ -524,90 +524,90 @@ msgstr "" "警告: %d 個のインターフェースが、最大個数の 250個 を超えて設定されています!" msgid "" -"WARNING: Some policies have names exceeding the maximum of 15 characters!" -msgstr "" -"警告: 最大文字数の 15 文字を超える名前が設定されているポリシーがあります!" - -msgid "" -"WARNING: some interfaces are configured incorrectly or not at all in /etc/" +"WARNING: Some interfaces are configured incorrectly or not at all in /etc/" "config/network!" msgstr "" "警告: 設定を誤っているか、もしくは完全に設定されていないインターフェースがあ" "ります!" msgid "" -"WARNING: some interfaces have a higher reliability requirement than there " +"WARNING: Some interfaces have a higher reliability requirement than there " "are tracking IP addresses!" msgstr "" "警告: 追跡 IP アドレスの個数より大きい追跡信頼性の値が設定されたインター" "フェースがあります!" msgid "" -"WARNING: some interfaces have duplicate metrics configured in /etc/config/" +"WARNING: Some interfaces have duplicate metrics configured in /etc/config/" "network!" msgstr "" "警告: /etc/config/network で、重複するメトリックを設定されているインター" "フェースがあります!" msgid "" -"WARNING: some interfaces have no default route in the main routing table!" +"WARNING: Some interfaces have no default route in the main routing table!" msgstr "" "警告: メインのルーティング テーブルで、デフォルト ルートを設定されていないイ" "ンターフェースがあります!" msgid "" -"WARNING: some interfaces have no metric configured in /etc/config/network!" +"WARNING: Some interfaces have no metric configured in /etc/config/network!" msgstr "" "警告: /etc/config/network で、メトリックを設定されていないインターフェースが" "あります!" msgid "" -"WARNING: some rules have a port configured with no or improper protocol " +"WARNING: Some policies have names exceeding the maximum of 15 characters!" +msgstr "" +"警告: 最大文字数の 15 文字を超える名前が設定されているポリシーがあります!" + +msgid "" +"WARNING: Some rules have a port configured with no or improper protocol " "specified! Please configure a specific protocol!" msgstr "" "警告: 不適切なプロトコルが指定されている、または何も指定されていないポートを" "設定されたルールがあります!プロトコルを指定し直してください!" msgid "" -"WARNING: this and other interfaces have duplicate metrics configured in /etc/" +"WARNING: This and other interfaces have duplicate metrics configured in /etc/" "config/network!" msgstr "" "警告: これと他のインターフェースで重複するメトリックが /etc/config/network に" "設定されています!" msgid "" -"WARNING: this interface has a higher reliability requirement than there are " +"WARNING: This interface has a higher reliability requirement than there are " "tracking IP addresses!" msgstr "" "警告: このインターフェースは、追跡 IP アドレスの個数より大きい追跡信頼性の値" "を設定されています!" -msgid "WARNING: this interface has no default route in the main routing table!" +msgid "WARNING: This interface has no default route in the main routing table!" msgstr "" "警告: このインターフェースは、メインのルーティング テーブルにデフォルト ルー" "トが設定されていません!" msgid "" -"WARNING: this interface has no metric configured in /etc/config/network!" +"WARNING: This interface has no metric configured in /etc/config/network!" msgstr "" "警告: このインターフェースは、 /etc/config/network でメトリックが設定されてい" "ません!" msgid "" -"WARNING: this interface is configured incorrectly or not at all in /etc/" +"WARNING: This interface is configured incorrectly or not at all in /etc/" "config/network!" msgstr "" "警告: このインターフェースは /etc/config/network で設定が誤っているか、もしく" "は完全に設定されていません!" msgid "" -"WARNING: this policy's name is %d characters exceeding the maximum of 15!" +"WARNING: This policy's name is %d characters exceeding the maximum of 15!" msgstr "" "警告: このポリシーの名前は、最大文字数 15 文字を超える %d 文字が設定されてい" "ます!" msgid "" -"WARNING: this rule is incorrectly configured with no or improper protocol " +"WARNING: This rule is incorrectly configured with no or improper protocol " "specified! Please configure a specific protocol!" msgstr "" "警告: このルールは不適切なプロトコルが指定されているか、または何も指定されて" diff --git a/package/luci/applications/luci-app-mwan3/po/templates/mwan3.pot b/package/luci/applications/luci-app-mwan3/po/templates/mwan3.pot index e63d8adc2e..ed9fdb131d 100644 --- a/package/luci/applications/luci-app-mwan3/po/templates/mwan3.pot +++ b/package/luci/applications/luci-app-mwan3/po/templates/mwan3.pot @@ -450,65 +450,65 @@ msgid "WARNING: %d interfaces are configured exceeding the maximum of 250!" msgstr "" msgid "" -"WARNING: Some policies have names exceeding the maximum of 15 characters!" -msgstr "" - -msgid "" -"WARNING: some interfaces are configured incorrectly or not at all in /etc/" +"WARNING: Some interfaces are configured incorrectly or not at all in /etc/" "config/network!" msgstr "" msgid "" -"WARNING: some interfaces have a higher reliability requirement than there " +"WARNING: Some interfaces have a higher reliability requirement than there " "are tracking IP addresses!" msgstr "" msgid "" -"WARNING: some interfaces have duplicate metrics configured in /etc/config/" +"WARNING: Some interfaces have duplicate metrics configured in /etc/config/" "network!" msgstr "" msgid "" -"WARNING: some interfaces have no default route in the main routing table!" +"WARNING: Some interfaces have no default route in the main routing table!" msgstr "" msgid "" -"WARNING: some interfaces have no metric configured in /etc/config/network!" +"WARNING: Some interfaces have no metric configured in /etc/config/network!" +msgstr "" + +msgid "" +"WARNING: Some policies have names exceeding the maximum of 15 characters!" msgstr "" msgid "" -"WARNING: some rules have a port configured with no or improper protocol " +"WARNING: Some rules have a port configured with no or improper protocol " "specified! Please configure a specific protocol!" msgstr "" msgid "" -"WARNING: this and other interfaces have duplicate metrics configured in /etc/" +"WARNING: This and other interfaces have duplicate metrics configured in /etc/" "config/network!" msgstr "" msgid "" -"WARNING: this interface has a higher reliability requirement than there are " +"WARNING: This interface has a higher reliability requirement than there are " "tracking IP addresses!" msgstr "" -msgid "WARNING: this interface has no default route in the main routing table!" +msgid "WARNING: This interface has no default route in the main routing table!" msgstr "" msgid "" -"WARNING: this interface has no metric configured in /etc/config/network!" +"WARNING: This interface has no metric configured in /etc/config/network!" msgstr "" msgid "" -"WARNING: this interface is configured incorrectly or not at all in /etc/" +"WARNING: This interface is configured incorrectly or not at all in /etc/" "config/network!" msgstr "" msgid "" -"WARNING: this policy's name is %d characters exceeding the maximum of 15!" +"WARNING: This policy's name is %d characters exceeding the maximum of 15!" msgstr "" msgid "" -"WARNING: this rule is incorrectly configured with no or improper protocol " +"WARNING: This rule is incorrectly configured with no or improper protocol " "specified! Please configure a specific protocol!" msgstr "" diff --git a/package/luci/applications/luci-app-mwan3/po/zh-cn/mwan3.po b/package/luci/applications/luci-app-mwan3/po/zh-cn/mwan3.po index b133e8b1d9..d0b92a6df1 100644 --- a/package/luci/applications/luci-app-mwan3/po/zh-cn/mwan3.po +++ b/package/luci/applications/luci-app-mwan3/po/zh-cn/mwan3.po @@ -1,7 +1,15 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" -"Last-Translator: Hsing-Wang Liao \n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"PO-Revision-Date: 2017-10-28 16:58+0800\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "%d hour" msgstr "%d 小时" @@ -22,10 +30,10 @@ msgid "" "Acceptable values: 1-100. This many Tracking IP addresses must respond for " "the link to be deemed up" msgstr "" -"取值范围: 1-100。这个设置项指定了当多少个 IP 地址能够连通时接口会被认为在线" +"取值范围:1-100。这个设置项指定了当多少个 IP 地址能够连通时接口会被认为在线" msgid "Acceptable values: 1-1000. Defaults to 1 if not set" -msgstr "取值范围: 1-100。如果不填写,默认值为 1" +msgstr "取值范围:1-100。如果不填写,默认值为 1" msgid "Advanced" msgstr "高级" @@ -67,17 +75,17 @@ msgid "Diagnostics" msgstr "诊断" msgid "Disabled" -msgstr "禁用" +msgstr "已禁用" msgid "" "Downed interface will be deemed up after this many successful ping tests" msgstr "当 Ping 成功次数达到这个数值后,已经被认为离线的接口将会重新上线" msgid "Enabled" -msgstr "启用" +msgstr "已启用" msgid "Enter value in hex, starting with 0x" -msgstr "" +msgstr "输入十六进制值,以 0x 开头" msgid "Error collecting troubleshooting information" msgstr "收集故障排除信息时出错" @@ -86,13 +94,13 @@ msgid "Errors" msgstr "错误" msgid "Expect interface state on up event" -msgstr "" +msgstr "在 up 事件发生时的预期接口状态" msgid "Failure interval" msgstr "故障检测间隔" msgid "Firewall mask" -msgstr "" +msgstr "防火墙掩码" msgid "Flush conntrack table" msgstr "刷新连接跟踪表" @@ -101,10 +109,10 @@ msgid "Flush global firewall conntrack table on interface events" msgstr "在接口事件触发时刷新全局防火墙连接跟踪表" msgid "Globals" -msgstr "" +msgstr "全局" msgid "Globals mwan3 options" -msgstr "" +msgstr "全局 mwan3 选项" msgid "Hotplug Script" msgstr "Hotplug 脚本" @@ -125,7 +133,7 @@ msgid "IPv6" msgstr "IPv6" msgid "Initial state" -msgstr "" +msgstr "初始状态" msgid "Interface" msgstr "接口" @@ -137,10 +145,10 @@ msgid "Interface down" msgstr "接口离线" msgid "Interface up" -msgstr "接口上线" +msgstr "接口在线" msgid "Interface will be deemed down after this many failed ping tests" -msgstr "当 Ping 失败次数达到这个数值后接口会被认为离线" +msgstr "当 Ping 失败次数达到这个数值后,接口会被认为离线" msgid "Interfaces" msgstr "接口" @@ -149,13 +157,13 @@ msgid "Internet Protocol" msgstr "互联网协议" msgid "Keep failure interval" -msgstr "" +msgstr "保持故障检测间隔" msgid "Keep ping failure interval during failure state" -msgstr "" +msgstr "在故障状态期间保持的 Ping 故障检测间隔" msgid "Last 50 MWAN systemlog entries. Newest entries sorted at the top :" -msgstr "最近 50 条 MWAN 系统日志,最新条目排在顶部:" +msgstr "最近 50 条 MWAN 系统日志,最新条目排在顶部:" msgid "Last resort" msgstr "备用成员" @@ -167,7 +175,7 @@ msgid "Loading" msgstr "载入中" msgid "Local source interface" -msgstr "" +msgstr "本地源接口" msgid "MWAN Config" msgstr "MWAN 配置文件" @@ -221,16 +229,16 @@ msgid "" msgstr "" "MWAN 支持最多 250 个物理或逻辑接口。
MWAN 要求所有接口必须在 /etc/" "config/network 中设定唯一的网关跃点。
名称必须与 /etc/config/network 中" -"的接口名称匹配。(可查看“高级”选项卡)
名称允许包括A-Z、a-z、0-9、_ 但是" -"不能有空格。
接口不应该与成员、策略、规则中的任意一个设置项使用相同的名" -"称" +"的接口名称匹配。(可查看“高级”选项卡)
名称允许包括 A-Z、a-z、0-9、_ 但" +"是不能有空格。
接口不应该与成员、策略、规则中的任意一个设置项使用相同的" +"名称" msgid "" "May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or " "as a portrange (eg \"1024:2048\") without quotes" msgstr "" -"可以输入一个或多个端口(例如 \"22\" 或者 \"80,443\")或者是一个端口范围(例" -"如 \"1024:2048\")不含引号" +"可以输入一个或多个端口(例如“22”或者“80,443”)或者是一个端口范围(例" +"如“1024:2048”)不含引号" msgid "Member" msgstr "成员" @@ -260,8 +268,8 @@ msgid "" "Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/" "youtube.com/youtube\")" msgstr "" -"匹配 IPset 规则列表名称。需要先配置 /etc/dnsmasq.conf 中的 IPset 规则 (例如: " -"\"ipset=/youtube.com/youtube\")" +"匹配 IPset 规则列表名称。需要先配置 /etc/dnsmasq.conf 中的 IPset 规则(例" +"如:“ipset=/youtube.com/youtube”)" msgid "Network Config" msgstr "网络配置文件" @@ -288,13 +296,13 @@ msgid "Offline" msgstr "离线" msgid "Online" -msgstr "" +msgstr "在线" msgid "Online (tracking active)" -msgstr "在线(追踪启用中)" +msgstr "在线(跟踪启用中)" msgid "Online (tracking off)" -msgstr "在线(追踪已关闭)" +msgstr "在线(跟踪已关闭)" msgid "Overview" msgstr "概况" @@ -381,7 +389,7 @@ msgstr "" "的任意一个设置项使用相同的名称" msgid "Seconds. Acceptable values: 1-1000000. Defaults to 600 if not set" -msgstr "单位为秒。接受的值: 1-1000000。留空则使用默认值 600 秒" +msgstr "单位为秒。接受的值:1-1000000。留空则使用默认值 600 秒" msgid "Source address" msgstr "源地址" @@ -402,7 +410,7 @@ msgid "Stop MWAN" msgstr "停止 MWAN" msgid "Supports CIDR notation (eg \"192.168.100.0/24\") without quotes" -msgstr "支持 CIDR 记法(例如: \"192.168.100.0/24\")不含引号" +msgstr "支持 CIDR 记法(例如:\"192.168.100.0/24\")不含引号" msgid "There are currently %d of 250 supported interfaces configured" msgstr "当前已配置 %d 个接口,最大支持 250 个" @@ -429,27 +437,35 @@ msgid "" "went up or down (e.g. \"wan\" or \"wwan\")
$DEVICE Physical device name " "which interface went up or down (e.g. \"eth0\" or \"wwan0\")

" msgstr "" +"这里允许您修改“/etc/mwan3.user”的内容。
该文件在 sysupgrade 期间也会保" +"留。

注意:
该文件会作为 shell 脚本解释。
脚本的第一行必" +"须是"#!/bin/sh",不带引号。
以#开头的行是注释,不会执行。
" +"将您的自定义 mwan3 动作放在这里,他们将
在启用 mwan3 的接口上
在 " +"netifd hotplug 接口事件时执行。

有三个主要的环境变量传递给这个脚" +"本。

$ACTION “ifup”或“ifdown”
$INTERFACE 启动或停止的接口名" +"(例如“wan”或“wwan”)
$DEVICE 启动或停止接口的物理设备名(例" +"如“eth0”或“wwan0”)

" msgid "This section allows you to modify the contents of /etc/config/mwan3" -msgstr "这里允许你修改 /etc/config/mwan3 的内容" +msgstr "这里允许您修改 /etc/config/mwan3 的内容" msgid "This section allows you to modify the contents of /etc/config/network" -msgstr "这里允许你修改 /etc/config/network 的内容" +msgstr "这里允许您修改 /etc/config/network 的内容" msgid "This section allows you to modify the contents of /etc/config/wireless" -msgstr "这里允许你修改 /etc/config/wireless 的内容" +msgstr "这里允许您修改 /etc/config/wireless 的内容" msgid "Tracking IP" -msgstr "追踪的 IP" +msgstr "跟踪的 IP" msgid "Tracking hostname or IP address" -msgstr "追踪的主机或 IP 地址" +msgstr "跟踪的主机或 IP 地址" msgid "Tracking method" -msgstr "" +msgstr "跟踪方式" msgid "Tracking reliability" -msgstr "追踪可靠性" +msgstr "跟踪可靠性" msgid "Traffic Rules" msgstr "流量规则" @@ -470,77 +486,77 @@ msgstr "故障排除数据" msgid "" "Use the IP address of this interface as source IP address for traffic " "initiated by the router itself" -msgstr "" +msgstr "使用该接口的 IP 地址作为路由器本身发起的流量的源 IP 地址" msgid "View the contents of /etc/protocols for protocol descriptions" msgstr "请查看 /etc/protocols 获取可选协议详情" msgid "WARNING: %d interfaces are configured exceeding the maximum of 250!" -msgstr "警告: 已配置 %d 个接口,超过最大值 250!" +msgstr "警告:已配置 %d 个接口,超过最大值 250!" msgid "" -"WARNING: Some policies have names exceeding the maximum of 15 characters!" -msgstr "警告: 某些策略的名称超过了 15 个字符!" - -msgid "" -"WARNING: some interfaces are configured incorrectly or not at all in /etc/" +"WARNING: Some interfaces are configured incorrectly or not at all in /etc/" "config/network!" -msgstr "警告: 某些接口配置不正确或未配置到 /etc/config/network!" +msgstr "警告:某些接口配置不正确或未配置到 /etc/config/network!" msgid "" -"WARNING: some interfaces have a higher reliability requirement than there " +"WARNING: Some interfaces have a higher reliability requirement than there " "are tracking IP addresses!" -msgstr "警告: 某些接口的追踪可靠性要求大于了追踪 IP 地址总数!" +msgstr "警告:某些接口的跟踪可靠性要求大于了跟踪 IP 地址总数!" msgid "" -"WARNING: some interfaces have duplicate metrics configured in /etc/config/" +"WARNING: Some interfaces have duplicate metrics configured in /etc/config/" "network!" -msgstr "警告: 某些接口在 /etc/config/network 中配置了相同的跃点数!" +msgstr "警告:某些接口在 /etc/config/network 中配置了相同的跃点数!" + +msgid "" +"WARNING: Some interfaces have no default route in the main routing table!" +msgstr "警告:某些接口在主路由表中没有默认路由!" msgid "" -"WARNING: some interfaces have no default route in the main routing table!" -msgstr "警告: 某些接口在主路由表中没有默认路由!" +"WARNING: Some interfaces have no metric configured in /etc/config/network!" +msgstr "警告:某些接口没有在 /etc/config/network 中配置跃点数!" msgid "" -"WARNING: some interfaces have no metric configured in /etc/config/network!" -msgstr "警告: 某些接口没有在 /etc/config/network 中配置跃点数!" +"WARNING: Some policies have names exceeding the maximum of 15 characters!" +msgstr "警告:某些策略的名称超过了 15 个字符!" msgid "" -"WARNING: some rules have a port configured with no or improper protocol " +"WARNING: Some rules have a port configured with no or improper protocol " "specified! Please configure a specific protocol!" msgstr "" -"警告: 某些规则指定了端口却没有配置或配置了不正确的协议,请重新指定协议!" +"警告:某些规则指定了端口却没有配置或配置了不正确的协议,请重新指定协议!" msgid "" -"WARNING: this and other interfaces have duplicate metrics configured in /etc/" +"WARNING: This and other interfaces have duplicate metrics configured in /etc/" "config/network!" -msgstr "警告: 此接口和其他接口在 /etc/config/network 中配置了相同的跃点数!" +msgstr "警告:此接口和其他接口在 /etc/config/network 中配置了相同的跃点数!" msgid "" -"WARNING: this interface has a higher reliability requirement than there are " +"WARNING: This interface has a higher reliability requirement than there are " "tracking IP addresses!" -msgstr "警告: 此接口的追踪可靠性要求大于了追踪 IP 地址总数!" +msgstr "警告:此接口的跟踪可靠性要求大于了跟踪 IP 地址总数!" -msgid "WARNING: this interface has no default route in the main routing table!" -msgstr "警告: 此接口在主路由表中没有默认路由!" +msgid "WARNING: This interface has no default route in the main routing table!" +msgstr "警告:此接口在主路由表中没有默认路由!" msgid "" -"WARNING: this interface has no metric configured in /etc/config/network!" -msgstr "警告: 此接口没有在 /etc/config/network 中配置跃点数!" +"WARNING: This interface has no metric configured in /etc/config/network!" +msgstr "警告:此接口没有在 /etc/config/network 中配置跃点数!" msgid "" -"WARNING: this interface is configured incorrectly or not at all in /etc/" +"WARNING: This interface is configured incorrectly or not at all in /etc/" "config/network!" -msgstr "警告: 此接口配置不正确或未配置到 /etc/config/network!" +msgstr "警告:此接口配置不正确或未配置到 /etc/config/network!" msgid "" -"WARNING: this policy's name is %d characters exceeding the maximum of 15!" -msgstr "警告: 此策略的名称具有 %d 个字符,超过了 15 个字符!" +"WARNING: This policy's name is %d characters exceeding the maximum of 15!" +msgstr "警告:此策略的名称具有 %d 个字符,超过了 15 个字符!" msgid "" -"WARNING: this rule is incorrectly configured with no or improper protocol " +"WARNING: This rule is incorrectly configured with no or improper protocol " "specified! Please configure a specific protocol!" -msgstr "警告: 此规则没有配置或配置了不正确的协议,请重新指定协议!" +msgstr "警告:此规则没有配置或配置了不正确的协议,请重新指定协议!" msgid "Waiting for MWAN to %s..." msgstr "等待 MWAN %s..." @@ -580,13 +596,13 @@ msgid "never" msgstr "从不" msgid "restart" -msgstr "" +msgstr "重启" msgid "start" -msgstr "" +msgstr "启动" msgid "stop" -msgstr "" +msgstr "停止" msgid "unreachable (reject)" msgstr "不可达(拒绝)" @@ -607,7 +623,7 @@ msgstr "不可达(拒绝)" #~ "ifdown)
$INTERFACE is the interface name (wan1, wan2, etc.)
" #~ "$DEVICE is the device name attached to the interface (eth0.1, eth1, etc.)" #~ msgstr "" -#~ "这里允许你修改 /etc/hotplug.d/iface/16-mwancustom 的内容
这可以在接" +#~ "这里允许您修改 /etc/hotplug.d/iface/16-mwancustom 的内容
这可以在接" #~ "口 ifup 或 ifdown Hotplug 事件时运行系统命令或脚本

注意:
" #~ "脚本的第一行必须是 "#!/bin/sh" 不含引号
以#开头的行是注释," #~ "不会执行

可用变量:
$ACTION 是 Hotplug 事件(ifup, ifdown)" diff --git a/package/luci/applications/luci-app-mwan3/po/zh-tw/mwan3.po b/package/luci/applications/luci-app-mwan3/po/zh-tw/mwan3.po new file mode 100644 index 0000000000..04711ac3d7 --- /dev/null +++ b/package/luci/applications/luci-app-mwan3/po/zh-tw/mwan3.po @@ -0,0 +1,630 @@ +# +# Yangfl , 2017. +# +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"PO-Revision-Date: 2017-10-28 16:58+0800\n" +"X-Generator: Gtranslator 2.91.7\n" + +msgid "%d hour" +msgstr "%d 小時" + +msgid "%d minute" +msgstr "%d 分鐘" + +msgid "%d minutes" +msgstr "%d 分鐘" + +msgid "%d second" +msgstr "%d 秒" + +msgid "%d seconds" +msgstr "%d 秒" + +msgid "" +"Acceptable values: 1-100. This many Tracking IP addresses must respond for " +"the link to be deemed up" +msgstr "" +"取值範圍:1-100。這個設定項指定了當多少個 IP 位址能夠連通時介面會被認為線上" + +msgid "Acceptable values: 1-1000. Defaults to 1 if not set" +msgstr "取值範圍:1-100。如果不填寫,預設值為 1" + +msgid "Advanced" +msgstr "高階" + +msgid "Check IP rules" +msgstr "檢查 IP 規則" + +msgid "Check routing table" +msgstr "檢查路由表" + +msgid "Collecting data..." +msgstr "正在收集資料..." + +msgid "Configuration" +msgstr "配置" + +msgid "Currently Configured Interfaces" +msgstr "當前配置的介面" + +msgid "Currently Configured Members" +msgstr "當前配置的成員" + +msgid "Currently Configured Policies" +msgstr "當前配置的策略" + +msgid "Destination address" +msgstr "目標位址" + +msgid "Destination port" +msgstr "目標埠" + +msgid "Detailed Status" +msgstr "詳細狀態" + +msgid "Diagnostic Results" +msgstr "診斷結果" + +msgid "Diagnostics" +msgstr "診斷" + +msgid "Disabled" +msgstr "已禁用" + +msgid "" +"Downed interface will be deemed up after this many successful ping tests" +msgstr "當 Ping 成功次數達到這個數值後,已經被認為離線的介面將會重新上線" + +msgid "Enabled" +msgstr "已啟用" + +msgid "Enter value in hex, starting with 0x" +msgstr "輸入十六進位制值,以 0x 開頭" + +msgid "Error collecting troubleshooting information" +msgstr "收集故障排除資訊時出錯" + +msgid "Errors" +msgstr "錯誤" + +msgid "Expect interface state on up event" +msgstr "在 up 事件發生時的預期介面狀態" + +msgid "Failure interval" +msgstr "故障檢測間隔" + +msgid "Firewall mask" +msgstr "防火牆掩碼" + +msgid "Flush conntrack table" +msgstr "重新整理連線跟蹤表" + +msgid "Flush global firewall conntrack table on interface events" +msgstr "在介面事件觸發時重新整理全域性防火牆連線跟蹤表" + +msgid "Globals" +msgstr "全域性" + +msgid "Globals mwan3 options" +msgstr "全域性 mwan3 選項" + +msgid "Hotplug Script" +msgstr "Hotplug 指令碼" + +msgid "Hotplug ifdown" +msgstr "Hotplug ifdown" + +msgid "Hotplug ifup" +msgstr "Hotplug ifup" + +msgid "IPset" +msgstr "IPset" + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "Initial state" +msgstr "初始狀態" + +msgid "Interface" +msgstr "介面" + +msgid "Interface Status" +msgstr "介面狀態" + +msgid "Interface down" +msgstr "介面離線" + +msgid "Interface up" +msgstr "介面線上" + +msgid "Interface will be deemed down after this many failed ping tests" +msgstr "當 Ping 失敗次數達到這個數值後,介面會被認為離線" + +msgid "Interfaces" +msgstr "介面" + +msgid "Internet Protocol" +msgstr "網際網路協議" + +msgid "Keep failure interval" +msgstr "保持故障檢測間隔" + +msgid "Keep ping failure interval during failure state" +msgstr "在故障狀態期間保持的 Ping 故障檢測間隔" + +msgid "Last 50 MWAN systemlog entries. Newest entries sorted at the top :" +msgstr "最近 50 條 MWAN 系統日誌,最新條目排在頂部:" + +msgid "Last resort" +msgstr "備用成員" + +msgid "Load Balancing" +msgstr "負載均衡" + +msgid "Loading" +msgstr "載入中" + +msgid "Local source interface" +msgstr "本地源介面" + +msgid "MWAN Config" +msgstr "MWAN 配置檔案" + +msgid "MWAN Detailed Status" +msgstr "MWAN 詳細狀態" + +msgid "MWAN Interface Configuration" +msgstr "MWAN 介面配置" + +msgid "MWAN Interface Configuration - %s" +msgstr "MWAN 介面配置 - %s" + +msgid "MWAN Interface Diagnostics" +msgstr "MWAN 介面診斷" + +msgid "MWAN Interface Live Status" +msgstr "MWAN 介面實時狀態" + +msgid "MWAN Interface Systemlog" +msgstr "MWAN 介面系統日誌" + +msgid "MWAN Member Configuration" +msgstr "MWAN 成員配置" + +msgid "MWAN Member Configuration - %s" +msgstr "MWAN 成員配置 - %s" + +msgid "MWAN Policy Configuration" +msgstr "MWAN 策略配置" + +msgid "MWAN Policy Configuration - %s" +msgstr "MWAN 策略配置 - %s" + +msgid "MWAN Rule Configuration" +msgstr "MWAN 規則配置" + +msgid "MWAN Rule Configuration - %s" +msgstr "MWAN 規則配置 - %s" + +msgid "MWAN Service Control" +msgstr "MWAN 服務控制" + +msgid "" +"MWAN supports up to 250 physical and/or logical interfaces
MWAN " +"requires that all interfaces have a unique metric configured in /etc/config/" +"network
Names must match the interface name found in /etc/config/" +"network (see advanced tab)
Names may contain characters A-Z, a-z, 0-9, " +"_ and no spaces
Interfaces may not share the same name as configured " +"members, policies or rules" +msgstr "" +"MWAN 支援最多 250 個物理或邏輯介面。
MWAN 要求所有介面必須在 /etc/" +"config/network 中設定唯一的閘道器躍點。
名稱必須與 /etc/config/network " +"中的介面名稱匹配。(可檢視“高階”選項卡)
名稱允許包括 A-Z、a-z、0-9、_ " +"但是不能有空格。
介面不應該與成員、策略、規則中的任意一個設定項使用相同" +"的名稱" + +msgid "" +"May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or " +"as a portrange (eg \"1024:2048\") without quotes" +msgstr "" +"可以輸入一個或多個埠(例如“22”或者“80,443”)或者是一個埠範圍(例" +"如“1024:2048”)不含引號" + +msgid "Member" +msgstr "成員" + +msgid "Member used" +msgstr "使用的成員" + +msgid "Members" +msgstr "成員" + +msgid "" +"Members are profiles attaching a metric and weight to an MWAN interface
Names may contain characters A-Z, a-z, 0-9, _ and no spaces
Members " +"may not share the same name as configured interfaces, policies or rules" +msgstr "" +"“成員”用來設定每一個 MWAN 介面的躍點數(即介面優先順序)和所佔比重。
名" +"稱允許包括 A-Z、 a-、0-9、_ 但是不能有空格。
成員不應該與介面、策略、規" +"則中的任意一個設定項使用相同的名稱" + +msgid "Members assigned" +msgstr "分配的成員" + +msgid "Metric" +msgstr "躍點數" + +msgid "" +"Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/" +"youtube.com/youtube\")" +msgstr "" +"匹配 IPset 規則列表名稱。需要先配置 /etc/dnsmasq.conf 中的 IPset 規則(例" +"如:“ipset=/youtube.com/youtube”)" + +msgid "Network Config" +msgstr "網路配置檔案" + +msgid "No" +msgstr "否" + +msgid "No MWAN interfaces found" +msgstr "沒有找到 MWAN 介面" + +msgid "No MWAN systemlog history found" +msgstr "沒有在系統日誌中找到 MWAN 歷史資訊" + +msgid "No detailed status information available" +msgstr "沒有狀態詳細資訊可用" + +msgid "No diagnostic results returned" +msgstr "沒有返回診斷結果" + +msgid "No protocol specified" +msgstr "未指定協議" + +msgid "Offline" +msgstr "離線" + +msgid "Online" +msgstr "線上" + +msgid "Online (tracking active)" +msgstr "線上(跟蹤啟用中)" + +msgid "Online (tracking off)" +msgstr "線上(跟蹤已關閉)" + +msgid "Overview" +msgstr "概況" + +msgid "Ping count" +msgstr "Ping 計數" + +msgid "Ping default gateway" +msgstr "Ping 預設閘道器" + +msgid "Ping interval" +msgstr "Ping 間隔" + +msgid "Ping interval during failure detection" +msgstr "故障檢測期間的 Ping 間隔" + +msgid "Ping interval during failure recovering" +msgstr "故障恢復期間的 Ping 間隔" + +msgid "Ping size" +msgstr "Ping 大小" + +msgid "Ping timeout" +msgstr "Ping 超時" + +msgid "Ping tracking IP" +msgstr "Ping 跟蹤 IP" + +msgid "Policies" +msgstr "策略" + +msgid "" +"Policies are profiles grouping one or more members controlling how MWAN " +"distributes traffic
Member interfaces with lower metrics are used " +"first. Interfaces with the same metric load-balance
Load-balanced " +"member interfaces distribute more traffic out those with higher weights
Names may contain characters A-Z, a-z, 0-9, _ and no spaces. Names must be " +"15 characters or less
Policies may not share the same name as " +"configured interfaces, members or rules" +msgstr "" +"“策略”把成員進行分組,告訴 MWAN 如何分配“規則”中使用這一策略的流量
擁有" +"較低躍點數的成員將會被優先使用。擁有相同躍點數的成員把流量進行負載均衡。
進行負載均衡的成員之間擁有較高比重的成員將會被分配到更多流量。
名稱允許" +"包括A-Z、a-z、0-9、_ 但是不能有空格。名稱應該在 15 個字元以內
策略不應該" +"與介面、成員、規則中的任意一個設定項使用相同的名稱" + +msgid "Policy" +msgstr "策略" + +msgid "Policy assigned" +msgstr "分配的策略" + +msgid "Protocol" +msgstr "通訊協議" + +msgid "Recovery interval" +msgstr "故障恢復間隔" + +msgid "Restart MWAN" +msgstr "重啟 MWAN" + +msgid "Rule" +msgstr "規則" + +msgid "Rules" +msgstr "規則" + +msgid "" +"Rules specify which traffic will use a particular MWAN policy based on IP " +"address, port or protocol
Rules are matched from top to bottom. Rules " +"below a matching rule are ignored. Traffic not matching any rule is routed " +"using the main routing table
Traffic destined for known (other than " +"default) networks is handled by the main routing table. Traffic matching a " +"rule, but all WAN interfaces for that policy are down will be blackholed
Names may contain characters A-Z, a-z, 0-9, _ and no spaces
Rules may " +"not share the same name as configured interfaces, members or policies" +msgstr "" +"“規則”基於 IP 位址、協議、埠把流量劃分到指定的“策略”中。
規則按照從上到" +"下的順序進行匹配。除了第一條能夠匹配一次通訊的規則以外,其它規則將被忽略。不" +"匹配任何規則的通訊將會由系統預設路由表進行。
來自已知的網路的轉發流量由" +"系統預設路由表接手,然後 MWAN 從中匹配出相應的流量並轉移到 MWAN 自己的路由" +"表。但是所有被劃分到一個無法使用的策略的流量將會無法正常進行路由。
名稱" +"允許包括A-Z、a-z、0-9、_ 但是不能有空格。
規則不應該與介面、成員、策略中" +"的任意一個設定項使用相同的名稱" + +msgid "Seconds. Acceptable values: 1-1000000. Defaults to 600 if not set" +msgstr "單位為秒。接受的值:1-1000000。留空則使用預設值 600 秒" + +msgid "Source address" +msgstr "源位址" + +msgid "Source port" +msgstr "源埠" + +msgid "Start MWAN" +msgstr "啟動 MWAN" + +msgid "Sticky" +msgstr "粘滯模式" + +msgid "Sticky timeout" +msgstr "粘滯超時" + +msgid "Stop MWAN" +msgstr "停止 MWAN" + +msgid "Supports CIDR notation (eg \"192.168.100.0/24\") without quotes" +msgstr "支援 CIDR 記法(例如:\"192.168.100.0/24\")不含引號" + +msgid "There are currently %d of 250 supported interfaces configured" +msgstr "當前已配置 %d 個介面,最大支援 250 個" + +msgid "" +"This displays the metric assigned to this interface in /etc/config/network" +msgstr "這裡顯示了這個介面在 /etc/config/network 中配置的躍點數" + +msgid "" +"This hostname or IP address will be pinged to determine if the link is up or " +"down. Leave blank to assume interface is always online" +msgstr "通過 ping 此主機或 IP 位址來確定鏈路是否線上。留空則認為介面始終線上" + +msgid "" +"This section allows you to modify the content of \"/etc/mwan3.user\".
The file is also preserved during sysupgrade.

Notes:
This " +"file is interpreted as a shell script.
The first line of the script " +"must be "#!/bin/sh" without quotes.
Lines beginning with # are " +"comments and are not executed.
Put your custom mwan3 action here, they " +"will
be executed with each netifd hotplug interface event
on " +"interfaces for which mwan3 is enabled.

There are three main " +"environment variables that are passed to this script.

$ACTION " +"Either \"ifup\" or \"ifdown\"
$INTERFACE Name of the interface which " +"went up or down (e.g. \"wan\" or \"wwan\")
$DEVICE Physical device name " +"which interface went up or down (e.g. \"eth0\" or \"wwan0\")

" +msgstr "" +"這裡允許您修改“/etc/mwan3.user”的內容。
該檔案在 sysupgrade 期間也會保" +"留。

注意:
該檔案會作為 shell 指令碼解釋。
指令碼的第一" +"行必須是"#!/bin/sh",不帶引號。
以#開頭的行是註釋,不會執行。" +"
將您的自定義 mwan3 動作放在這裡,他們將
在啟用 mwan3 的介面上
在 netifd hotplug 介面事件時執行。

有三個主要的環境變數傳遞給這個" +"腳本。

$ACTION “ifup”或“ifdown”
$INTERFACE 啟動或停止的介面名" +"(例如“wan”或“wwan”)
$DEVICE 啟動或停止介面的物理裝置名(例" +"如“eth0”或“wwan0”)

" + +msgid "This section allows you to modify the contents of /etc/config/mwan3" +msgstr "這裡允許您修改 /etc/config/mwan3 的內容" + +msgid "This section allows you to modify the contents of /etc/config/network" +msgstr "這裡允許您修改 /etc/config/network 的內容" + +msgid "This section allows you to modify the contents of /etc/config/wireless" +msgstr "這裡允許您修改 /etc/config/wireless 的內容" + +msgid "Tracking IP" +msgstr "跟蹤的 IP" + +msgid "Tracking hostname or IP address" +msgstr "跟蹤的主機或 IP 位址" + +msgid "Tracking method" +msgstr "跟蹤方式" + +msgid "Tracking reliability" +msgstr "跟蹤可靠性" + +msgid "Traffic Rules" +msgstr "流量規則" + +msgid "" +"Traffic from the same source IP address that previously matched this rule " +"within the sticky timeout period will use the same WAN interface" +msgstr "" +"來自相同源 IP 的流量,如果已經匹配過此規則並且在粘滯超時時間內,將會使用相同" +"的 WAN 介面" + +msgid "Troubleshooting" +msgstr "故障排除" + +msgid "Troubleshooting Data" +msgstr "故障排除資料" + +msgid "" +"Use the IP address of this interface as source IP address for traffic " +"initiated by the router itself" +msgstr "使用該介面的 IP 位址作為路由器本身發起的流量的源 IP 位址" + +msgid "View the contents of /etc/protocols for protocol descriptions" +msgstr "請檢視 /etc/protocols 獲取可選協議詳情" + +msgid "WARNING: %d interfaces are configured exceeding the maximum of 250!" +msgstr "警告:已配置 %d 個介面,超過最大值 250!" + +msgid "" +"WARNING: Some interfaces are configured incorrectly or not at all in /etc/" +"config/network!" +msgstr "警告:某些介面配置不正確或未配置到 /etc/config/network!" + +msgid "" +"WARNING: Some interfaces have a higher reliability requirement than there " +"are tracking IP addresses!" +msgstr "警告:某些介面的跟蹤可靠性要求大於了跟蹤 IP 位址總數!" + +msgid "" +"WARNING: Some interfaces have duplicate metrics configured in /etc/config/" +"network!" +msgstr "警告:某些介面在 /etc/config/network 中配置了相同的躍點數!" + +msgid "" +"WARNING: Some interfaces have no default route in the main routing table!" +msgstr "警告:某些介面在主路由表中沒有預設路由!" + +msgid "" +"WARNING: Some interfaces have no metric configured in /etc/config/network!" +msgstr "警告:某些介面沒有在 /etc/config/network 中配置躍點數!" + +msgid "" +"WARNING: Some policies have names exceeding the maximum of 15 characters!" +msgstr "警告:某些策略的名稱超過了 15 個字元!" + +msgid "" +"WARNING: Some rules have a port configured with no or improper protocol " +"specified! Please configure a specific protocol!" +msgstr "警告:某些規則指定了埠卻沒有配置或配置了不正確的協議,請重新指定協議!" + +msgid "" +"WARNING: This and other interfaces have duplicate metrics configured in /etc/" +"config/network!" +msgstr "警告:此介面和其他介面在 /etc/config/network 中配置了相同的躍點數!" + +msgid "" +"WARNING: This interface has a higher reliability requirement than there are " +"tracking IP addresses!" +msgstr "警告:此介面的跟蹤可靠性要求大於了跟蹤 IP 位址總數!" + +msgid "WARNING: This interface has no default route in the main routing table!" +msgstr "警告:此介面在主路由表中沒有預設路由!" + +msgid "" +"WARNING: This interface has no metric configured in /etc/config/network!" +msgstr "警告:此介面沒有在 /etc/config/network 中配置躍點數!" + +msgid "" +"WARNING: This interface is configured incorrectly or not at all in /etc/" +"config/network!" +msgstr "警告:此介面配置不正確或未配置到 /etc/config/network!" + +msgid "" +"WARNING: This policy's name is %d characters exceeding the maximum of 15!" +msgstr "警告:此策略的名稱具有 %d 個字元,超過了 15 個字元!" + +msgid "" +"WARNING: This rule is incorrectly configured with no or improper protocol " +"specified! Please configure a specific protocol!" +msgstr "警告:此規則沒有配置或配置了不正確的協議,請重新指定協議!" + +msgid "Waiting for MWAN to %s..." +msgstr "等待 MWAN %s..." + +msgid "Waiting for diagnostic results..." +msgstr "等待診斷結果..." + +msgid "Weight" +msgstr "比重" + +msgid "" +"When all policy members are offline use this behavior for matched traffic" +msgstr "當所有策略成員都無法使用的時候,對使用該策略的流量使用這個操作" + +msgid "Wireless Config" +msgstr "無線配置" + +msgid "Yes" +msgstr "是" + +msgid "always" +msgstr "總是" + +msgid "blackhole (drop)" +msgstr "黑洞(丟棄)" + +msgid "default (use main routing table)" +msgstr "預設(使用主路由表)" + +msgid "ifdown" +msgstr "ifdown" + +msgid "ifup" +msgstr "ifup" + +msgid "never" +msgstr "從不" + +msgid "restart" +msgstr "重啟" + +msgid "start" +msgstr "啟動" + +msgid "stop" +msgstr "停止" + +msgid "unreachable (reject)" +msgstr "不可達(拒絕)" + +#~ msgid "Restore default hotplug script" +#~ msgstr "恢復預設的 hotplug 指令碼" + +#~ msgid "Restore..." +#~ msgstr "恢復..." + +#~ msgid "" +#~ "This section allows you to modify the contents of /etc/hotplug.d/iface/16-" +#~ "mwancustom
This is useful for running system commands and/or scripts " +#~ "based on interface ifup or ifdown hotplug events

Notes:
The first line of the script must be "#!/bin/sh" without " +#~ "quotes
Lines beginning with # are comments and are not executed

Available variables:
$ACTION is the hotplug event (ifup, " +#~ "ifdown)
$INTERFACE is the interface name (wan1, wan2, etc.)
" +#~ "$DEVICE is the device name attached to the interface (eth0.1, eth1, etc.)" +#~ msgstr "" +#~ "這裡允許您修改 /etc/hotplug.d/iface/16-mwancustom 的內容
這可以在接" +#~ "口 ifup 或 ifdown Hotplug 事件時執行系統命令或指令碼

注意:
指令碼的第一行必須是 "#!/bin/sh" 不含引號
以#開頭的行是註" +#~ "釋,不會執行

可用變數:
$ACTION 是 Hotplug 事件(ifup, " +#~ "ifdown)
$INTERFACE 是介面名稱(wan1、wan2 等)
$DEVICE 是連線到" +#~ "介面的設備名稱 (eth0.1、eth1 等)" diff --git a/package/luci/applications/luci-app-noddos/Makefile b/package/luci/applications/luci-app-noddos/Makefile new file mode 100644 index 0000000000..4c2b9044a9 --- /dev/null +++ b/package/luci/applications/luci-app-noddos/Makefile @@ -0,0 +1,18 @@ +# Copyright (C) 2017 Steven Hessing (steven.hessing@gmail.com) +# Based on initial implementation by Stan Grishin (stangri@melmac.net) +# This is free software, licensed under the GNU General Public License v3. + +include $(TOPDIR)/rules.mk + +PKG_LICENSE:=GPLv3 +PKG_MAINTAINER:=Steven Hessing + +LUCI_TITLE:=Noddos Service Web UI +LUCI_DESCRIPTION:=Provides Web UI for Noddos service. +LUCI_DEPENDS:=+luci +noddos +LUCI_PKGARCH:=all +PKG_RELEASE:=1 + +include ../../luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/package/luci/applications/luci-app-noddos/htdocs/cgi-bin/clientdetails b/package/luci/applications/luci-app-noddos/htdocs/cgi-bin/clientdetails new file mode 100755 index 0000000000..6ff4ce59f2 --- /dev/null +++ b/package/luci/applications/luci-app-noddos/htdocs/cgi-bin/clientdetails @@ -0,0 +1,91 @@ +#!/usr/bin/lua + +-- clientdetails.lua : Provides details about client devices discovered by Noddos +-- Copyright (C) 2017 Steven Hessing (steven.hessing@gmail.com) +-- This is free software, licensed under the GNU General Public License v3. + +require "nixio.fs" + +print ("Content-type: Text/html\n") +local info = os.getenv("QUERY_STRING") + +local params = {} +local echo = {} + +function print_row(key) + print ("") + print (key) + print ("") + print (device[key]) + print ("") +end + +for name, value in string.gmatch(info .. '&', '(.-)%=(.-)%&') do + value = string.gsub(value , '%+', ' ') + value = string.gsub(value , '%%(%x%x)', function(dpc) + return string.char(tonumber(dpc,16)) + end ) + params[name] = value + + value = string.gsub(value, "%&", "&") + value = string.gsub(value, "%<", "<") + value = string.gsub(value, '%"', """) + echo[name] = value +end + +device = {} +profile = {} + +if nixio.fs.access("/var/lib/noddos/DeviceDump.json") then + io.input("/var/lib/noddos/DeviceDump.json") + local t = io.read("*all") + local json = require "luci.jsonc" + local devdump = json.parse(t) + for i, v in ipairs(devdump) do + if v.MacAddress == params["mac"] then + device = v + end + end + io.input("/var/lib/noddos/DeviceProfiles.json") + t = io.read("*all") + local temp = json.parse(t) + for i, v in ipairs(temp) do + if device.DeviceProfileUuid == v.DeviceProfileUuid then + profile = v + end + end +end +pagetop = [[ + + + Client Details by Noddos + + + + + + + + + +

Client Details

+]] +print (pagetop) + +if params["mac"] ~= nil then + print ("") + for i, key in ipairs{"MacAddress", "Ipv4Address", "Ipv6Address", "DeviceProfileUuid", "DhcpHostname", "DhcpVendor", "SsdpFriendlyName", "SsdpLocation", "SsdpManufacturer", "SsdpModelName", "SsdpModelUrl", "SsdpSerialNumber", "SsdpServer","SsdpUserAgent", "MdnsDeviceUrl", "MdnsHw", "MdnsManufacturer", "MdnsModelName", "MdnsOs", "WsDiscoveryTypes", "WsDiscoveryXaddrs", "DnsQueries"} do + print_row(key) + end + print ("
") +else + print ("no mac address specified") +end + +pagebase = [[

+Client Details by +Noddos + +]] + +print (pagebase) diff --git a/package/luci/applications/luci-app-noddos/luasrc/controller/noddos.lua b/package/luci/applications/luci-app-noddos/luasrc/controller/noddos.lua new file mode 100644 index 0000000000..c45e24bc97 --- /dev/null +++ b/package/luci/applications/luci-app-noddos/luasrc/controller/noddos.lua @@ -0,0 +1,10 @@ +-- Copyright 2017 Steven Hessing (steven.hessing@gmail.com) +-- This is free software, licensed under the GNU General Public License v3. +-- /usr/lib/lua/luci/controller/noddos.lua + +module("luci.controller.noddos", package.seeall) +function index() + entry({"admin", "status", "noddos"}, template("noddos/clients"), _("Noddos Clients"), 3) + entry({"admin", "network", "noddos"}, cbi("noddos"), _("Noddos Client Tracking"), 55) +end + diff --git a/package/luci/applications/luci-app-noddos/luasrc/model/cbi/noddos.lua b/package/luci/applications/luci-app-noddos/luasrc/model/cbi/noddos.lua new file mode 100644 index 0000000000..3abb73bc66 --- /dev/null +++ b/package/luci/applications/luci-app-noddos/luasrc/model/cbi/noddos.lua @@ -0,0 +1,46 @@ +-- Copyright 2017 Steven Hessing (steven.hessing@gmail.com) +-- This is free software, licensed under the GNU General Public License v3. +-- /usr/lib/lua/luci/model/cbi/noddos.lua + +m = Map("noddos", translate("Client Firewall"), + translate("Noddos controls traffic from the clients on your network to the Internet. " .. + "This helps protect your network, the bandwidth on your Internet connection and " .. + "the Internet")) + +s = m:section(TypedSection, "noddos", translate("Server Settings")) +s.anonymous = true +s.addremove = false + +s:option(Flag, "rfc1918", + translate("Private networks"), + translate("Report traffic to private networks (10/8, 172.16/12, 192.168/16, fd75:6b5d:352c:ed05::/64)")).default=false + +s:option(Flag, "upload", + translate("Upload anonimized traffic stats"), + translate("Uploading your statistics helps improving device recognition " .. + "and discovering hacked devices & botnets")) + +o = s:option(DynamicList, "whitelistipv4", + translate("Excluded IPv4 addresses"), + translate("Don't monitor these IPv4 addresses")) +o.optional = true +o.placeholder = "127.0.0.1 192.168.1.1" +o.delimiter = " " +o.datatype="list(ip4addr)" + +o = s:option(DynamicList, "whitelistipv6", + translate("Excluded IPv6 addresses"), + translate("Don't monitor these IPv6 addresses")) +o.optional = true +o.delimiter = " " +o.datatype="list(ip6addr)" + +o = s:option(DynamicList, "whitelistmac", + translate("Excluded MAC addresses"), + translate("Don't monitor these MAC addresses")) +o.optional = true +o.delimiter = " " +o.datatype="list(macaddr)" + +return m + diff --git a/package/luci/applications/luci-app-noddos/luasrc/view/noddos/clients.htm b/package/luci/applications/luci-app-noddos/luasrc/view/noddos/clients.htm new file mode 100644 index 0000000000..f2fb9312a7 --- /dev/null +++ b/package/luci/applications/luci-app-noddos/luasrc/view/noddos/clients.htm @@ -0,0 +1,111 @@ +<%# + Copyright (C) 2017 Steven Hessing + This is free software, licensed under the GNU General Public License v3. + /usr/lib/lua/luci/view/clients.htm +-%> + +<%- + + require "nixio.fs" + require "os" + + local last_modified = "" + local style = true + local v + local devdump + + if nixio.fs.access("/var/lib/noddos/DeviceDump.json") then + last_modified = os.date("%c", nixio.fs.stat("/var/lib/noddos/DeviceDump.json")['mtime']) + io.input("/var/lib/noddos/DeviceDump.json") + t = io.read("*all") + devdump = luci.jsonc.parse(t) + io.input("/var/lib/noddos/DeviceProfiles.json") + t = io.read("*all") + temp = luci.jsonc.parse(t) + devicevalues = {} + for i, v in ipairs(temp) do + devicevalues[v.DeviceProfileUuid] = v + end + end +-%> + +<%+header%> + +
+

<%:Clients%>

+
<%:The following clients have been discovered on the network. The last discovery was completed at %><%=last_modified%>
+ +
+ <%:Recognized Clients%> +
+ + + + + + + + + + + <% + for i,v in ipairs(devdump) do + if v.DeviceProfileUuid ~= "" then + %> + + + + + + + + + <% + style=false + end + end + %> +
<%:Hostname%><%:IPv4%><%:MAC%><%:Manufacturer%><%:Model%><%:Class%>
<%=v.Hostname%><%=v.Ipv4Address%><%=v.MacAddress%><%=devicevalues[v.DeviceProfileUuid].Manufacturer%><%=devicevalues[v.DeviceProfileUuid].Model%><%=devicevalues[v.DeviceProfileUuid].ThingClass%>
+
+
+
+
+ <%:Unrecognized Clients%> +
+ + + + + + + + + + + + <% + for i,v in ipairs(devdump) do + if v.DeviceProfileUuid == "" then + %> + + + + + + + + + + <% + style=false + end + end + %> +
<%:Hostname%><%:IPv4%><%:MAC%><%:Manufacturer%><%:Model%><%:DhcpVendor%><%:DhcpHostname%>
<%=v.Hostname%><%=v.Ipv4Address%><%=v.MacAddress%><%=v.SsdpManufacturer%><%=v.SsdpModelName%><%=v.DhcpVendor1%><%=v.DhcpHostname%>
+
+
+ +
+ +<%+footer%> + diff --git a/package/luci/applications/luci-app-noddos/po/ja/noddos.po b/package/luci/applications/luci-app-noddos/po/ja/noddos.po new file mode 100644 index 0000000000..c6b461747f --- /dev/null +++ b/package/luci/applications/luci-app-noddos/po/ja/noddos.po @@ -0,0 +1,111 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.4\n" +"Last-Translator: INAGAKI Hiroshi \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language: ja\n" + +msgid "Class" +msgstr "クラス" + +msgid "Client Firewall" +msgstr "クライアント ファイアウォール" + +msgid "Clients" +msgstr "クライアント" + +msgid "DhcpHostname" +msgstr "DHCP ホスト名" + +msgid "DhcpVendor" +msgstr "DHCP ベンダー" + +msgid "Don't monitor these IPv4 addresses" +msgstr "これらの IPv4 アドレスを監視しません。" + +msgid "Don't monitor these IPv6 addresses" +msgstr "これらの IPv6 アドレスを監視しません。" + +msgid "Don't monitor these MAC addresses" +msgstr "これらの MAC アドレスを監視しません。" + +msgid "Excluded IPv4 addresses" +msgstr "除外する IPv4 アドレス" + +msgid "Excluded IPv6 addresses" +msgstr "除外する IPv6 アドレス" + +msgid "Excluded MAC addresses" +msgstr "除外する MAC アドレス" + +msgid "Hostname" +msgstr "ホスト名" + +msgid "IPv4" +msgstr "IPv4" + +msgid "MAC" +msgstr "MAC" + +msgid "Manufacturer" +msgstr "製造元" + +msgid "Model" +msgstr "モデル" + +msgid "Noddos Client Tracking" +msgstr "Noddos クライアント トラッキング" + +msgid "Noddos Clients" +msgstr "Noddos クライアント" + +msgid "" +"Noddos controls traffic from the clients on your network to the Internet. " +"This helps protect your network, the bandwidth on your Internet connection " +"and the Internet" +msgstr "" +"Noddos は、ネットワーク内のクライアントからインターネットへのトラフィックを制" +"御します。これは、ネットワークとインターネット接続の帯域幅、インターネットの" +"保護に役立ちます。" + +msgid "Private networks" +msgstr "プライベート ネットワーク" + +msgid "Recognized Clients" +msgstr "識別済クライアント" + +msgid "" +"Report traffic to private networks (10/8, 172.16/12, 192.168/16, " +"fd75:6b5d:352c:ed05::/64)" +msgstr "" +"プライベート ネットワークへのトラフィックについてのレポート(10/8, " +"172.16/12, 192.168/16, fd75:6b5d:352c:ed05::/64)" + +msgid "Server Settings" +msgstr "サーバー設定" + +msgid "" +"The following clients have been discovered on the network. The last " +"discovery was completed at" +msgstr "" +"以下のクライアントがネットワーク内で見つかりました。探索の最終実行日時:" + +msgid "Unrecognized Clients" +msgstr "未識別クライアント" + +msgid "Upload anonimized traffic stats" +msgstr "匿名トラフィック状況のアップロード" + +msgid "" +"Uploading your statistics helps improving device recognition and discovering " +"hacked devices & botnets" +msgstr "" +"デバイスの識別や、ハックされたデバイスとボットネットの発見の改善に役立てるた" +"め、統計をアップロードします。" diff --git a/package/luci/applications/luci-app-noddos/po/templates/noddos.pot b/package/luci/applications/luci-app-noddos/po/templates/noddos.pot new file mode 100644 index 0000000000..69d135770b --- /dev/null +++ b/package/luci/applications/luci-app-noddos/po/templates/noddos.pot @@ -0,0 +1,92 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +msgid "Class" +msgstr "" + +msgid "Client Firewall" +msgstr "" + +msgid "Clients" +msgstr "" + +msgid "DhcpHostname" +msgstr "" + +msgid "DhcpVendor" +msgstr "" + +msgid "Don't monitor these IPv4 addresses" +msgstr "" + +msgid "Don't monitor these IPv6 addresses" +msgstr "" + +msgid "Don't monitor these MAC addresses" +msgstr "" + +msgid "Excluded IPv4 addresses" +msgstr "" + +msgid "Excluded IPv6 addresses" +msgstr "" + +msgid "Excluded MAC addresses" +msgstr "" + +msgid "Hostname" +msgstr "" + +msgid "IPv4" +msgstr "" + +msgid "MAC" +msgstr "" + +msgid "Manufacturer" +msgstr "" + +msgid "Model" +msgstr "" + +msgid "Noddos Client Tracking" +msgstr "" + +msgid "Noddos Clients" +msgstr "" + +msgid "" +"Noddos controls traffic from the clients on your network to the Internet. " +"This helps protect your network, the bandwidth on your Internet connection " +"and the Internet" +msgstr "" + +msgid "Private networks" +msgstr "" + +msgid "Recognized Clients" +msgstr "" + +msgid "" +"Report traffic to private networks (10/8, 172.16/12, 192.168/16, " +"fd75:6b5d:352c:ed05::/64)" +msgstr "" + +msgid "Server Settings" +msgstr "" + +msgid "" +"The following clients have been discovered on the network. The last " +"discovery was completed at" +msgstr "" + +msgid "Unrecognized Clients" +msgstr "" + +msgid "Upload anonimized traffic stats" +msgstr "" + +msgid "" +"Uploading your statistics helps improving device recognition and discovering " +"hacked devices & botnets" +msgstr "" diff --git a/package/luci/applications/luci-app-noddos/root/etc/uci-defaults/40_luci-noddos b/package/luci/applications/luci-app-noddos/root/etc/uci-defaults/40_luci-noddos new file mode 100644 index 0000000000..17abbc41ca --- /dev/null +++ b/package/luci/applications/luci-app-noddos/root/etc/uci-defaults/40_luci-noddos @@ -0,0 +1,14 @@ +#!/bin/sh + +# Copyright (C) 2017 Steven Hessing (steven.hessing@live.com) +# This is free software, licensed under the GNU General Public License v3 + +uci -q batch <<-EOF >/dev/null + delete ucitrack.@noddos[-1] + add ucitrack noddos + set ucitrack.@noddos[-1].init=noddos + commit ucitrack +EOF + +rm -f /tmp/luci-indexcache +exit 0 diff --git a/package/luci/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua b/package/luci/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua index 7865881cb6..dc7718217c 100644 --- a/package/luci/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua +++ b/package/luci/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua @@ -685,6 +685,10 @@ local knownParams = { "tls_auth", "/etc/openvpn/tlsauth.key", translate("Additional authentication over TLS") }, + { Value, + "tls_crypt", + "/etc/openvpn/tlscrypt.key", + translate("Encrypt and authenticate all control channel packets with the key") }, -- { Value, -- "askpass", -- "[file]", diff --git a/package/luci/applications/luci-app-openvpn/po/ca/openvpn.po b/package/luci/applications/luci-app-openvpn/po/ca/openvpn.po index 1b75fe6cd7..d756469078 100644 --- a/package/luci/applications/luci-app-openvpn/po/ca/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/ca/openvpn.po @@ -199,6 +199,9 @@ msgstr "Activa la interfície de gestió a IP port" msgid "Enabled" msgstr "Activat" +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "" + msgid "Encryption cipher for packets" msgstr "Xifra d'encriptació per paquets" diff --git a/package/luci/applications/luci-app-openvpn/po/cs/openvpn.po b/package/luci/applications/luci-app-openvpn/po/cs/openvpn.po index c68742217e..4fba010530 100644 --- a/package/luci/applications/luci-app-openvpn/po/cs/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/cs/openvpn.po @@ -194,6 +194,9 @@ msgstr "" msgid "Enabled" msgstr "Povoleno" +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "" + msgid "Encryption cipher for packets" msgstr "" diff --git a/package/luci/applications/luci-app-openvpn/po/de/openvpn.po b/package/luci/applications/luci-app-openvpn/po/de/openvpn.po index dc382ee44d..a203c92e79 100644 --- a/package/luci/applications/luci-app-openvpn/po/de/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/de/openvpn.po @@ -197,6 +197,9 @@ msgstr "Administratorschnittstelle aktivieren" msgid "Enabled" msgstr "Einschalten" +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "" + msgid "Encryption cipher for packets" msgstr "Verschlüsselungsalgorithmus für Pakete" diff --git a/package/luci/applications/luci-app-openvpn/po/el/openvpn.po b/package/luci/applications/luci-app-openvpn/po/el/openvpn.po index 2c787d816c..63dd8985a8 100644 --- a/package/luci/applications/luci-app-openvpn/po/el/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/el/openvpn.po @@ -198,6 +198,9 @@ msgstr "" msgid "Enabled" msgstr "Ενεργοποιημένο" +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "" + msgid "Encryption cipher for packets" msgstr "" diff --git a/package/luci/applications/luci-app-openvpn/po/en/openvpn.po b/package/luci/applications/luci-app-openvpn/po/en/openvpn.po index a5994dc292..51819f6b09 100644 --- a/package/luci/applications/luci-app-openvpn/po/en/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/en/openvpn.po @@ -197,6 +197,9 @@ msgstr "Enable management interface on IP port" msgid "Enabled" msgstr "Enabled" +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "Encrypt and authenticate all control channel packets with the key" + msgid "Encryption cipher for packets" msgstr "Encryption cipher for packets" diff --git a/package/luci/applications/luci-app-openvpn/po/es/openvpn.po b/package/luci/applications/luci-app-openvpn/po/es/openvpn.po index a5141831ce..819e7ee509 100644 --- a/package/luci/applications/luci-app-openvpn/po/es/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/es/openvpn.po @@ -196,6 +196,9 @@ msgstr "Interfaz de gestión en IP puerto" msgid "Enabled" msgstr "Activado" +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "" + msgid "Encryption cipher for packets" msgstr "Cifra de encriptación de paquetes" diff --git a/package/luci/applications/luci-app-openvpn/po/fr/openvpn.po b/package/luci/applications/luci-app-openvpn/po/fr/openvpn.po index e2f33dc164..331d1931e8 100644 --- a/package/luci/applications/luci-app-openvpn/po/fr/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/fr/openvpn.po @@ -206,6 +206,9 @@ msgstr "Activer l'interface de gestion sur IP port" msgid "Enabled" msgstr "Activé" +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "" + msgid "Encryption cipher for packets" msgstr "Méthode de chiffrement des paquets" diff --git a/package/luci/applications/luci-app-openvpn/po/he/openvpn.po b/package/luci/applications/luci-app-openvpn/po/he/openvpn.po index 3528444199..517da49080 100644 --- a/package/luci/applications/luci-app-openvpn/po/he/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/he/openvpn.po @@ -192,6 +192,9 @@ msgstr "" msgid "Enabled" msgstr "" +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "" + msgid "Encryption cipher for packets" msgstr "" diff --git a/package/luci/applications/luci-app-openvpn/po/hu/openvpn.po b/package/luci/applications/luci-app-openvpn/po/hu/openvpn.po index 1f9d691d04..67a8217b1a 100644 --- a/package/luci/applications/luci-app-openvpn/po/hu/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/hu/openvpn.po @@ -196,6 +196,9 @@ msgstr "" msgid "Enabled" msgstr "Engedélyezve" +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "" + msgid "Encryption cipher for packets" msgstr "" diff --git a/package/luci/applications/luci-app-openvpn/po/it/openvpn.po b/package/luci/applications/luci-app-openvpn/po/it/openvpn.po index 233c144c57..2759ccc846 100644 --- a/package/luci/applications/luci-app-openvpn/po/it/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/it/openvpn.po @@ -47,7 +47,7 @@ msgid "Allowed maximum of connected clients" msgstr "Numero massimo di clienti connessi" msgid "Allowed maximum of internal" -msgstr "" +msgstr "Numero massimo di interni" msgid "Allowed maximum of new connections" msgstr "Numero massimo di nuove connessioni ammesse" @@ -62,42 +62,40 @@ msgid "Automatically redirect default route" msgstr "Modifica automaticamente la default route" msgid "Below is a list of configured OpenVPN instances and their current state" -msgstr "" -"Sotto c'è una lista di istanze di OpenVPN configurate e il loro stato " -"corrente" +msgstr "Sotto c'è una lista di istanze OpenVPN configurate e il loro stato" msgid "Call down cmd/script before TUN/TAP close" -msgstr "" +msgstr "Richiama un cmd/script prima della chiusura del TUN/TAP" msgid "Certificate authority" -msgstr "" +msgstr "CA" msgid "Change process priority" msgstr "Cambia priorità del processo" msgid "Change to directory before initialization" -msgstr "" +msgstr "Cambia cartella prima dell'inizializzazione" msgid "Check peer certificate against a CRL" -msgstr "" +msgstr "Verifica il certificato del nodo su una CRL" msgid "Chroot to directory after initialization" -msgstr "" +msgstr "Fai chroot alla cartella dopo l'inizializzazione" msgid "Client is disabled" -msgstr "" +msgstr "Client disabilitato" msgid "Configuration category" -msgstr "" +msgstr "Categoria di configurazione" msgid "Configure client mode" -msgstr "" +msgstr "Configura la modalità client" msgid "Configure server bridge" -msgstr "" +msgstr "Configura un server bridge" msgid "Configure server mode" -msgstr "" +msgstr "Configura la modalità server" msgid "Connect through Socks5 proxy" msgstr "Connetti attraverso un proxy Socks5" @@ -106,34 +104,34 @@ msgid "Connect to remote host through an HTTP proxy" msgstr "Connetti attraverso un proxy HTTP" msgid "Connection retry interval" -msgstr "" +msgstr "Intervallo per riprovare la connessione" msgid "Daemonize after initialization" -msgstr "" +msgstr "Usa come daemon dopo l'inizializzazione" msgid "Delay n seconds after connection" -msgstr "" +msgstr "Ritarda n secondi dopo la connessione" msgid "Delay tun/tap open and up script execution" -msgstr "" +msgstr "Ritarda lo script di apertura e avvio del tun/tap" msgid "Diffie Hellman parameters" -msgstr "" +msgstr "Parametri Diffie Hellman" msgid "Directory for custom client config files" -msgstr "" +msgstr "Cartella per file personalizzati di configuarazione client" msgid "Disable Paging" msgstr "" msgid "Disable cipher initialisation vector" -msgstr "" +msgstr "Diasbilita il vettore di inizializzzazione cifratura" msgid "Disable options consistency check" -msgstr "" +msgstr "Disabilita il controllo della consistenza delle opzioni" msgid "Disable replay protection" -msgstr "" +msgstr "Disabilita la protezione replay" msgid "Do not bind to local address and port" msgstr "Non effettuare il bind sull'indirizzo/porta locale" @@ -145,7 +143,7 @@ msgid "Don't add routes automatically" msgstr "Non aggiungere rotte automaticamente" msgid "Don't cache --askpass or --auth-user-pass passwords" -msgstr "" +msgstr "Non tenere in memoria le password di --askpass o di --auth-user-pass" msgid "Don't inherit global push options" msgstr "" @@ -154,7 +152,7 @@ msgid "Don't log timestamps" msgstr "Non loggare il timestamps" msgid "Don't pull routes automatically" -msgstr "" +msgstr "Non spingere automaticamente le rotte" msgid "Don't re-read key on restart" msgstr "Non rileggere le chiavi al riavvio" @@ -166,10 +164,10 @@ msgid "Don't use adaptive lzo compression" msgstr "Non usare compressione lzo adattiva" msgid "Don't warn on ifconfig inconsistencies" -msgstr "" +msgstr "Non avvisare inconsistenze a livello ifconfig" msgid "Echo parameters to log" -msgstr "" +msgstr "Parametri Echo da loggare" msgid "Empirically measure MTU" msgstr "Misura empericamente l'MTU" @@ -178,28 +176,31 @@ msgid "Enable OpenSSL hardware crypto engines" msgstr "Abilita il supporto criptografico hardware per OpenSSL" msgid "Enable Path MTU discovery" -msgstr "" +msgstr "Abilita la ricerca Path MTU" msgid "Enable Static Key encryption mode (non-TLS)" -msgstr "" +msgstr "Abilita la modalità di criptazione chiave statica (non-TLS)" msgid "Enable TLS and assume client role" -msgstr "" +msgstr "Abilita TLS e usa il ruolo client" msgid "Enable TLS and assume server role" -msgstr "" +msgstr "Abilita TLS e usa il ruolo server" msgid "Enable internal datagram fragmentation" msgstr "Abilita frammentazione interna dei datagram" msgid "Enable management interface on IP port" -msgstr "" +msgstr "Abilita l'interfaccia di controllo su IP port" msgid "Enabled" msgstr "Abilitato" +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "Crittografa e autentica tutti i pacchetti del canale di controllo con la chiave" + msgid "Encryption cipher for packets" -msgstr "" +msgstr "Cifratura di criptazione dei pacchetti" msgid "Execute shell cmd after routes are added" msgstr "Esegui un comando shell dopo che le rotte sono aggiunte" @@ -224,7 +225,7 @@ msgid "Get PEM password from controlling tty before we daemonize" msgstr "" msgid "HMAC authentication for packets" -msgstr "" +msgstr "Autenticazione HMAC per i pacchetti" msgid "Handling of authentication failures" msgstr "" diff --git a/package/luci/applications/luci-app-openvpn/po/ja/openvpn.po b/package/luci/applications/luci-app-openvpn/po/ja/openvpn.po index 5474008682..232ae27e1f 100644 --- a/package/luci/applications/luci-app-openvpn/po/ja/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/ja/openvpn.po @@ -196,6 +196,9 @@ msgstr "" msgid "Enabled" msgstr "有効" +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "" + msgid "Encryption cipher for packets" msgstr "" diff --git a/package/luci/applications/luci-app-openvpn/po/ms/openvpn.po b/package/luci/applications/luci-app-openvpn/po/ms/openvpn.po index c439c3eb15..6c6e0d6046 100644 --- a/package/luci/applications/luci-app-openvpn/po/ms/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/ms/openvpn.po @@ -191,6 +191,9 @@ msgstr "" msgid "Enabled" msgstr "" +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "" + msgid "Encryption cipher for packets" msgstr "" diff --git a/package/luci/applications/luci-app-openvpn/po/no/openvpn.po b/package/luci/applications/luci-app-openvpn/po/no/openvpn.po index 3528444199..517da49080 100644 --- a/package/luci/applications/luci-app-openvpn/po/no/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/no/openvpn.po @@ -192,6 +192,9 @@ msgstr "" msgid "Enabled" msgstr "" +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "" + msgid "Encryption cipher for packets" msgstr "" diff --git a/package/luci/applications/luci-app-openvpn/po/pl/openvpn.po b/package/luci/applications/luci-app-openvpn/po/pl/openvpn.po index e289a80fc1..bef5a13a1a 100644 --- a/package/luci/applications/luci-app-openvpn/po/pl/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/pl/openvpn.po @@ -197,6 +197,9 @@ msgstr "Włącz interfejs zarządzalny na IP port" msgid "Enabled" msgstr "Włączone" +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "" + msgid "Encryption cipher for packets" msgstr "Szyfrowanie dla pakietów" diff --git a/package/luci/applications/luci-app-openvpn/po/pt-br/openvpn.po b/package/luci/applications/luci-app-openvpn/po/pt-br/openvpn.po index 84b0540581..26642e2c46 100644 --- a/package/luci/applications/luci-app-openvpn/po/pt-br/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/pt-br/openvpn.po @@ -198,6 +198,9 @@ msgstr "Ativar o interface de gestão em IP porta" msgid "Enabled" msgstr "Ativado" +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "" + msgid "Encryption cipher for packets" msgstr "Cifra de encriptação para pacotes" diff --git a/package/luci/applications/luci-app-openvpn/po/pt/openvpn.po b/package/luci/applications/luci-app-openvpn/po/pt/openvpn.po index 95c50a571a..d74b0a690d 100644 --- a/package/luci/applications/luci-app-openvpn/po/pt/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/pt/openvpn.po @@ -198,6 +198,9 @@ msgstr "Activar o interface de gestão em IP porta" msgid "Enabled" msgstr "Activado" +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "" + msgid "Encryption cipher for packets" msgstr "Cifra de encriptação para pacotes" diff --git a/package/luci/applications/luci-app-openvpn/po/ro/openvpn.po b/package/luci/applications/luci-app-openvpn/po/ro/openvpn.po index 4a7a5b7515..ef5e7ce379 100644 --- a/package/luci/applications/luci-app-openvpn/po/ro/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/ro/openvpn.po @@ -193,6 +193,9 @@ msgstr "" msgid "Enabled" msgstr "" +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "" + msgid "Encryption cipher for packets" msgstr "" diff --git a/package/luci/applications/luci-app-openvpn/po/ru/openvpn.po b/package/luci/applications/luci-app-openvpn/po/ru/openvpn.po index 00e585c374..89cf1161cc 100644 --- a/package/luci/applications/luci-app-openvpn/po/ru/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/ru/openvpn.po @@ -200,6 +200,9 @@ msgstr "Включить интерфейс управления на IPIP cổng msgid "Enabled" msgstr "Kích hoạt " +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "" + msgid "Encryption cipher for packets" msgstr "Encryption cipher cho các gói" diff --git a/package/luci/applications/luci-app-openvpn/po/zh-cn/openvpn.po b/package/luci/applications/luci-app-openvpn/po/zh-cn/openvpn.po index 3904ac4bf8..13182fcddd 100644 --- a/package/luci/applications/luci-app-openvpn/po/zh-cn/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/zh-cn/openvpn.po @@ -1,23 +1,26 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-05-19 19:35+0200\n" -"PO-Revision-Date: 2017-04-14 17:26-0600\n" -"Last-Translator: liushuyu \n" -"Language-Team: QQ Group 75543259 \n" +"PO-Revision-Date: 2017-10-29 14:37+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 2.0.1\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "%s" msgstr "%s" msgid "'net30', 'p2p', or 'subnet'" -msgstr "'net30', 'p2p', 或 '子网'" +msgstr "“net30”,“p2p”,或“subnet”" msgid "Accept options pushed from server" msgstr "接受从服务器发送过来的选项" @@ -29,7 +32,7 @@ msgid "Add route after establishing connection" msgstr "建立连接后添加路由" msgid "Additional authentication over TLS" -msgstr "TLS以外的验证" +msgstr "TLS 以外的验证" msgid "Allow client-to-client traffic" msgstr "允许客户端到客户端的通信" @@ -41,7 +44,7 @@ msgid "Allow only one session" msgstr "只允许一个会话" msgid "Allow remote to change its IP or port" -msgstr "允许远程修改ip和端口" +msgstr "允许远端改变 IP 或端口" msgid "Allowed maximum of connected clients" msgstr "允许最大已连接客户端数" @@ -62,10 +65,10 @@ msgid "Automatically redirect default route" msgstr "自动重定向至默认路由" msgid "Below is a list of configured OpenVPN instances and their current state" -msgstr "Openvpn已配置实例及其当前状态列表" +msgstr "以下是 OpenVPN 已配置实例及其当前状态的列表" msgid "Call down cmd/script before TUN/TAP close" -msgstr "TUN/TAP关闭前关闭命令行及脚本" +msgstr "TUN/TAP 关闭前的命令行及脚本" msgid "Certificate authority" msgstr "认证授权" @@ -98,10 +101,10 @@ msgid "Configure server mode" msgstr "配置服务器模式" msgid "Connect through Socks5 proxy" -msgstr "通过Sock5代理连接" +msgstr "通过 Sock5 代理连接" msgid "Connect to remote host through an HTTP proxy" -msgstr "通过HTTP代理连接到远程主机" +msgstr "通过 HTTP 代理连接到远程主机" msgid "Connection retry interval" msgstr "连接重试时间间隔" @@ -110,13 +113,13 @@ msgid "Daemonize after initialization" msgstr "初始化后进入后台运行" msgid "Delay n seconds after connection" -msgstr "连接后延迟时间(秒)" +msgstr "连接后延迟时间(秒)" msgid "Delay tun/tap open and up script execution" -msgstr "延迟tun/tap的打开并加速脚本执行" +msgstr "延迟 tun/tap 的打开及 up 脚本的执行" msgid "Diffie Hellman parameters" -msgstr "Diffie–Hellman/DH密钥交换 参数" +msgstr "Diffie–Hellman/DH 密钥交换参数" msgid "Directory for custom client config files" msgstr "自定义客户端配置文件的目录" @@ -137,13 +140,13 @@ msgid "Do not bind to local address and port" msgstr "不绑定本地地址和端口" msgid "Don't actually execute ifconfig" -msgstr "不实际执行ifconfig命令" +msgstr "不实际执行 ifconfig 命令" msgid "Don't add routes automatically" msgstr "不自动添加路由" msgid "Don't cache --askpass or --auth-user-pass passwords" -msgstr "不缓存--askpass 或--auth-user-pass passwords" +msgstr "不缓存 --askpass 或 --auth-user-pass passwords" msgid "Don't inherit global push options" msgstr "不继承全局主动发送选项" @@ -152,7 +155,7 @@ msgid "Don't log timestamps" msgstr "不记录时间戳" msgid "Don't pull routes automatically" -msgstr "" +msgstr "不自动拉取路由" msgid "Don't re-read key on restart" msgstr "服务重启时不重读密钥值" @@ -161,49 +164,52 @@ msgid "Don't require client certificate" msgstr "不需要客户的证书" msgid "Don't use adaptive lzo compression" -msgstr "不用自适应的lzo压缩" +msgstr "不用自适应 lzo 压缩" msgid "Don't warn on ifconfig inconsistencies" -msgstr "ifconfig不一致时不警告" +msgstr "ifconfig 不一致时不警告" msgid "Echo parameters to log" msgstr "把参数写入日志" msgid "Empirically measure MTU" -msgstr "以历史值估算MTU值" +msgstr "以历史值估算 MTU 值" msgid "Enable OpenSSL hardware crypto engines" -msgstr "打开OpenSSL硬件加密引擎" +msgstr "打开 OpenSSL 硬件加密引擎" msgid "Enable Path MTU discovery" -msgstr "启用路径MTU发现" +msgstr "启用路径 MTU 发现" msgid "Enable Static Key encryption mode (non-TLS)" msgstr "允许静态密钥加密模式" msgid "Enable TLS and assume client role" -msgstr "允许TLS并伪装为客户端" +msgstr "允许 TLS 并伪装为客户端" msgid "Enable TLS and assume server role" -msgstr "允许TLS并伪装为服务器" +msgstr "允许 TLS 并伪装为服务器" msgid "Enable internal datagram fragmentation" msgstr "允许内部数据报分片" msgid "Enable management interface on IP port" -msgstr "在IP port上启用可管理接口" +msgstr "在 IP port 上启用可管理接口" msgid "Enabled" msgstr "启用" +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "使用密钥加密及认证所有的控制通道数据包" + msgid "Encryption cipher for packets" msgstr "加密数据包" msgid "Execute shell cmd after routes are added" -msgstr "添加路由后执行shell命令" +msgstr "添加路由后执行 shell 命令" msgid "Execute shell command on remote ip change" -msgstr "当远程ip改变时执行shell命令" +msgstr "当远程 ip 改变时执行 shell 命令" msgid "" "Executed in server mode on new client connections, when the client is still " @@ -214,16 +220,16 @@ msgid "" "Executed in server mode whenever an IPv4 address/route or MAC address is " "added to OpenVPN's internal routing table" msgstr "" -"服务器模式下,将每个IPv4地址/路由或MAC地址添加到OpenVPN的内部路由表中。" +"服务器模式下,将每个 IPv4 地址/路由或 MAC 地址添加到 OpenVPN 的内部路由表中。" msgid "Exit on TLS negotiation failure" -msgstr "TLS验证失败后退出" +msgstr "TLS 验证失败后退出" msgid "Get PEM password from controlling tty before we daemonize" -msgstr "后台运行前从控制的tty中获取PEM密码" +msgstr "后台运行前从控制的 tty 中获取 PEM 密码" msgid "HMAC authentication for packets" -msgstr "利用HMAC水印算法校验数据包" +msgstr "利用 HMAC 算法校验数据包" msgid "Handling of authentication failures" msgstr "处理验证失败" @@ -231,7 +237,7 @@ msgstr "处理验证失败" msgid "" "Helper directive to simplify the expression of --ping and --ping-restart in " "server mode configurations" -msgstr "在服务配置模式下Helper简明的执行--ping和--ping-restart" +msgstr "在服务配置模式下简化 Helper 指令 --ping 和 --ping-restart 的表达式" msgid "If hostname resolve fails, retry" msgstr "如果主机名解析错误,重试" @@ -243,10 +249,10 @@ msgid "Invalid" msgstr "无效" msgid "Keep local IP address on restart" -msgstr "服务重启时保持本地IP地址" +msgstr "服务重启时保持本地 IP 地址" msgid "Keep remote IP address on restart" -msgstr "服务重启时保持远程IP地址" +msgstr "服务重启时保持远程 IP 地址" msgid "Keep tun/tap device open on restart" msgstr "服务重启时自动打开 tun/tap 设备" @@ -255,22 +261,22 @@ msgid "Key transition window" msgstr "密钥传输滑动窗口" msgid "Limit repeated log messages" -msgstr "限制重复性的日志消息" +msgstr "限制重复的日志消息" msgid "Local certificate" msgstr "本地证书" msgid "Local host name or ip address" -msgstr "本地主机名或ip地址" +msgstr "本地主机名或 ip 地址" msgid "Local private key" -msgstr "本地私人密钥" +msgstr "本地私钥" msgid "Major mode" msgstr "主要模式" msgid "Make tun device IPv6 capable" -msgstr "使 tun 设备兼容IPv6" +msgstr "使 tun 设备兼容 IPv6" msgid "Maximum number of queued TCP output packets" msgstr "TCP队列中输出包的最大数量" @@ -282,10 +288,10 @@ msgid "Number of lines for log file history" msgstr "历史日志文件的行数" msgid "Only accept connections from given X509 name" -msgstr "只接收已给定的X509名称的连接" +msgstr "只接收已给定的 X509 名称的连接" msgid "Only process ping timeouts if routes exist" -msgstr "当且仅当路由存在时处理ping超时" +msgstr "仅当路由存在时处理 ping 超时" msgid "OpenVPN" msgstr "OpenVPN" @@ -297,13 +303,13 @@ msgid "Optimize TUN/TAP/UDP writes" msgstr "优化 TUN/TAP/UDP 写入" msgid "Output to syslog and do not daemonize" -msgstr "显式输出到syslog" +msgstr "输出到 syslog,不运行守护进程" msgid "Overview" msgstr "概览" msgid "PKCS#12 file containing keys" -msgstr "PKCS#12文件包含的密钥" +msgstr "PKCS#12 文件包含的密钥" msgid "Pass environment variables to script" msgstr "传递环境变量至脚本" @@ -312,10 +318,10 @@ msgid "Persist replay-protection state" msgstr "保存重播保护的状态" msgid "Persist/unpersist ifconfig-pool" -msgstr "持久/非持久ifconfig池" +msgstr "持久/非持久 ifconfig 池" msgid "Ping remote every n seconds over TCP/UDP port" -msgstr "每n秒ping一次远程 TCP/UDP 端口" +msgstr "每 n 秒 ping 一次远程 TCP/UDP 端口" msgid "Policy level over usage of external programs and scripts" msgstr "外部程序和脚本超出了策略允许的使用范围" @@ -330,13 +336,13 @@ msgid "Proxy timeout in seconds" msgstr "代理超时,单位秒" msgid "Push an ifconfig option to remote" -msgstr "主动向远程发送ifconfig选项" +msgstr "主动向远程发送 ifconfig 选项" msgid "Push options to peer" msgstr "主动向端点发送选项" msgid "Query management channel for private key" -msgstr "为私人密钥查询管理通道" +msgstr "为私钥查询管理通道" msgid "Randomly choose remote server" msgstr "随机选择远程服务器" @@ -345,13 +351,13 @@ msgid "Refuse connection if no custom client config" msgstr "拒接没有自定义客户端配置的连接" msgid "Remap SIGUSR1 signals" -msgstr "重映射SIGUSR1信号" +msgstr "重映射 SIGUSR1 信号" msgid "Remote host name or ip address" -msgstr "远程主机名或ip地址" +msgstr "远程主机名或 ip 地址" msgid "Remote ping timeout" -msgstr "远程ping超时" +msgstr "远程 ping 超时" msgid "Renegotiate data chan. key after bytes" msgstr "传输若干字节后重新验证数据通道密钥" @@ -372,22 +378,22 @@ msgid "Require explicit key usage on certificate" msgstr "证书需要明确的密钥" msgid "Restart after remote ping timeout" -msgstr "远程ping超时后重启" +msgstr "远程 ping 超时后重启" msgid "Retransmit timeout on TLS control channel" -msgstr "TLS控制通道超时后重新发送" +msgstr "TLS 控制通道超时后重新发送" msgid "Retry indefinitely on HTTP proxy errors" msgstr "无限重试直至代理正确" msgid "Retry indefinitely on Socks proxy errors" -msgstr "无限重试直至Socks代理正确" +msgstr "无限重试直至 Socks 代理正确" msgid "Route subnet to client" msgstr "路由子网至客户端" msgid "Run as an inetd or xinetd server" -msgstr "以inetd或xinetd服务器的方式运行" +msgstr "以 inetd 或 xinetd 服务器的方式运行" msgid "Run script cmd on client connection" msgstr "当客户端连接时在命令行下允许脚本" @@ -402,19 +408,19 @@ msgid "Send notification to peer on disconnect" msgstr "断开连接时向客户端发送通知" msgid "Set GID to group" -msgstr "为群组设置GID值" +msgstr "为群组设置 GID 值" msgid "Set TCP/UDP MTU" -msgstr "设置TCP/UDP的MTU值" +msgstr "设置 TCP/UDP 的 MTU 值" msgid "Set UID to user" -msgstr "为用户设置UID值" +msgstr "为用户设置 UID 值" msgid "Set aside a pool of subnets" -msgstr "设置为拒绝子网线程池模式" +msgstr "设置子网池" msgid "Set extended HTTP proxy options" -msgstr "设置HTTP扩展代理选项" +msgstr "设置 HTTP 扩展代理选项" msgid "Set output verbosity" msgstr "设置输出冗余级别" @@ -423,37 +429,37 @@ msgid "Set size of real and virtual address hash tables" msgstr "设置实际和虚拟地址的哈希表大小" msgid "Set the TCP/UDP receive buffer size" -msgstr "设置TCP/UDP接收缓冲区大小" +msgstr "设置 TCP/UDP 接收缓冲区大小" msgid "Set the TCP/UDP send buffer size" -msgstr "设置TCP/UDP发送缓冲区大小" +msgstr "设置 TCP/UDP 发送缓冲区大小" msgid "Set tun/tap TX queue length" -msgstr "设置tun/tap发送队列长度" +msgstr "设置 tun/tap 发送队列长度" msgid "Set tun/tap adapter parameters" -msgstr "设置tun/ tap适配器参数" +msgstr "设置 tun/tap 适配器参数" msgid "Set tun/tap device MTU" -msgstr "设置tun/tap设备的MTU值" +msgstr "设置 tun/tap 设备的 MTU 值" msgid "Set tun/tap device overhead" -msgstr "设置tun/tap设备的开销" +msgstr "设置 tun/tap 设备的开销" msgid "Set upper bound on TCP MSS" -msgstr "设置TCP MSS的上限" +msgstr "设置 TCP MSS 上限" msgid "Shaping for peer bandwidth" msgstr "改变结点带宽" msgid "Shell cmd to execute after tun device open" -msgstr "tun设备打开后运行shell命令行" +msgstr "tun 设备打开后运行的 shell 命令" msgid "Shell cmd to run after tun device close" -msgstr "tun设备关闭后运行shell命令行e" +msgstr "tun 设备关闭后运行的 shell 命令" msgid "Shell command to verify X509 name" -msgstr "运行shell命令以验证X509名称" +msgstr "运行 shell 命令以验证 X509 名称" msgid "Silence the output of replay warnings" msgstr "以静音的方式发出重播警告" @@ -465,7 +471,7 @@ msgid "Specify a default gateway for routes" msgstr "指定路由默认网关" msgid "Start OpenVPN in a hibernating state" -msgstr "以休眠的状态打开OpenVPN" +msgstr "以休眠的状态打开 OpenVPN" msgid "Start/Stop" msgstr "启动/停止" @@ -483,16 +489,16 @@ msgid "TCP/UDP port # for both local and remote" msgstr "TCP/UDP 端口 # 同时针对本地和远程" msgid "TCP/UDP port # for local (default=1194)" -msgstr "TCP/UDP 端口 # 本地 (默认 1194)" +msgstr "TCP/UDP 端口 # 本地(默认 1194)" msgid "TCP/UDP port # for remote (default=1194)" -msgstr "TCP/UDP 端口 # 远程 (默认 1194)" +msgstr "TCP/UDP 端口 # 远程(默认 1194)" msgid "TLS cipher" -msgstr "TLS加密" +msgstr "TLS 加密" msgid "TOS passthrough (applies to IPv4 only)" -msgstr "TOS 穿透 (仅限IPv4)" +msgstr "TOS 穿透(仅限 IPv4)" msgid "Temporary directory for client-connect return file" msgstr "客户端连接返回文件的临时目录" @@ -501,7 +507,7 @@ msgid "The highest supported TLS version" msgstr "最高支持的 TLS 版本" msgid "The key direction for 'tls-auth' and 'secret' options" -msgstr "" +msgstr "“tls-auth”和“secret”选项的密钥类型" msgid "The lowest supported TLS version" msgstr "最低支持的 TLS 版本" @@ -513,10 +519,10 @@ msgid "Type of used device" msgstr "使用设备类型" msgid "Use fast LZO compression" -msgstr "使用快速LZO压缩" +msgstr "使用快速 LZO 压缩" msgid "Use individual addresses rather than /30 subnets" -msgstr "利用个人地址代替/30 子网" +msgstr "使用独立的地址代替 /30 子网" msgid "Use protocol" msgstr "采用协议" @@ -531,10 +537,10 @@ msgid "Write log to file" msgstr "保存日志至文件" msgid "Write process ID to file" -msgstr "记录进程ID至文件" +msgstr "记录进程 ID 至文件" msgid "Write status to file every n seconds" -msgstr "每n秒后写状态值至文件" +msgstr "每 n 秒后写入状态至文件" msgid "no" msgstr "否" @@ -546,7 +552,7 @@ msgid "tun/tap inactivity timeout" msgstr "tun/tap 休眠超时" msgid "yes (%i)" -msgstr "是 (%i)" +msgstr "是(%i)" msgid "« Switch to basic configuration" msgstr "« 基本配置" diff --git a/package/luci/applications/luci-app-openvpn/po/zh-tw/openvpn.po b/package/luci/applications/luci-app-openvpn/po/zh-tw/openvpn.po index f26aeb097a..38bb6fcd0e 100644 --- a/package/luci/applications/luci-app-openvpn/po/zh-tw/openvpn.po +++ b/package/luci/applications/luci-app-openvpn/po/zh-tw/openvpn.po @@ -1,545 +1,570 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-05-19 19:35+0200\n" +"PO-Revision-Date: 2017-10-29 14:37+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" +"Language: zh_TW\n" "MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "%s" -msgstr "" +msgstr "%s" msgid "'net30', 'p2p', or 'subnet'" -msgstr "" +msgstr "“net30”,“p2p”,或“subnet”" msgid "Accept options pushed from server" -msgstr "" +msgstr "接受從伺服器傳送過來的選項" msgid "Add" -msgstr "" +msgstr "新增" msgid "Add route after establishing connection" -msgstr "" +msgstr "建立連線後新增路由" msgid "Additional authentication over TLS" -msgstr "" +msgstr "TLS 以外的驗證" msgid "Allow client-to-client traffic" -msgstr "" +msgstr "允許客戶端到客戶端的通訊" msgid "Allow multiple clients with same certificate" -msgstr "" +msgstr "允許多使用者共用同一證書" msgid "Allow only one session" -msgstr "" +msgstr "只允許一個會話" msgid "Allow remote to change its IP or port" -msgstr "" +msgstr "允許遠端改變 IP 或埠" msgid "Allowed maximum of connected clients" -msgstr "" +msgstr "允許最大已連線客戶端數" msgid "Allowed maximum of internal" -msgstr "" +msgstr "允許最大內部連線" msgid "Allowed maximum of new connections" -msgstr "" +msgstr "允許最大新建連線數" msgid "Append log to file" -msgstr "" +msgstr "新增日誌至檔案" msgid "Authenticate using username/password" -msgstr "" +msgstr "以使用者名稱/密碼的方式進行驗證" msgid "Automatically redirect default route" -msgstr "" +msgstr "自動重定向至預設路由" msgid "Below is a list of configured OpenVPN instances and their current state" -msgstr "" +msgstr "以下是 OpenVPN 已配置例項及其當前狀態的列表" msgid "Call down cmd/script before TUN/TAP close" -msgstr "" +msgstr "TUN/TAP 關閉前的命令列及指令碼" msgid "Certificate authority" -msgstr "" +msgstr "認證授權" msgid "Change process priority" -msgstr "" +msgstr "改變程序優先順序" msgid "Change to directory before initialization" -msgstr "" +msgstr "初始化前改變根目錄" msgid "Check peer certificate against a CRL" -msgstr "" +msgstr "驗證客戶端證書以確保其是否過期" msgid "Chroot to directory after initialization" -msgstr "" +msgstr "初始化後改變根目錄" msgid "Client is disabled" -msgstr "" +msgstr "客戶端已被禁止" msgid "Configuration category" -msgstr "" +msgstr "配置分類" msgid "Configure client mode" -msgstr "" +msgstr "配置客戶端模式" msgid "Configure server bridge" -msgstr "" +msgstr "配置伺服器橋接" msgid "Configure server mode" -msgstr "" +msgstr "配置伺服器模式" msgid "Connect through Socks5 proxy" -msgstr "" +msgstr "通過 Sock5 代理連線" msgid "Connect to remote host through an HTTP proxy" -msgstr "" +msgstr "通過 HTTP 代理連線到遠端主機" msgid "Connection retry interval" -msgstr "" +msgstr "連線重試時間間隔" msgid "Daemonize after initialization" -msgstr "" +msgstr "初始化後進入後臺執行" msgid "Delay n seconds after connection" -msgstr "" +msgstr "連線後延遲時間(秒)" msgid "Delay tun/tap open and up script execution" -msgstr "" +msgstr "延遲 tun/tap 的開啟及 up 指令碼的執行" msgid "Diffie Hellman parameters" -msgstr "" +msgstr "Diffie–Hellman/DH 金鑰交換引數" msgid "Directory for custom client config files" -msgstr "" +msgstr "自定義客戶端配置檔案的目錄" msgid "Disable Paging" -msgstr "" +msgstr "禁止分頁" msgid "Disable cipher initialisation vector" -msgstr "" +msgstr "關閉加密的初始化向量" msgid "Disable options consistency check" -msgstr "" +msgstr "禁止選項一致性檢查" msgid "Disable replay protection" -msgstr "" +msgstr "關閉重播保護" msgid "Do not bind to local address and port" -msgstr "" +msgstr "不繫結本地位址和埠" msgid "Don't actually execute ifconfig" -msgstr "" +msgstr "不實際執行 ifconfig 命令" msgid "Don't add routes automatically" -msgstr "" +msgstr "不自動新增路由" msgid "Don't cache --askpass or --auth-user-pass passwords" -msgstr "" +msgstr "不快取 --askpass 或 --auth-user-pass passwords" msgid "Don't inherit global push options" -msgstr "" +msgstr "不繼承全域性主動傳送選項" msgid "Don't log timestamps" -msgstr "" +msgstr "不記錄時間戳" msgid "Don't pull routes automatically" -msgstr "" +msgstr "不自動拉取路由" msgid "Don't re-read key on restart" -msgstr "" +msgstr "服務重啟時不重讀金鑰值" msgid "Don't require client certificate" -msgstr "" +msgstr "不需要客戶的證書" msgid "Don't use adaptive lzo compression" -msgstr "" +msgstr "不用自適應 lzo 壓縮" msgid "Don't warn on ifconfig inconsistencies" -msgstr "" +msgstr "ifconfig 不一致時不警告" msgid "Echo parameters to log" -msgstr "" +msgstr "把引數寫入日誌" msgid "Empirically measure MTU" -msgstr "" +msgstr "以歷史值估算 MTU 值" msgid "Enable OpenSSL hardware crypto engines" -msgstr "" +msgstr "開啟 OpenSSL 硬體加密引擎" msgid "Enable Path MTU discovery" -msgstr "" +msgstr "啟用路徑 MTU 發現" msgid "Enable Static Key encryption mode (non-TLS)" -msgstr "" +msgstr "允許靜態金鑰加密模式" msgid "Enable TLS and assume client role" -msgstr "" +msgstr "允許 TLS 並偽裝為客戶端" msgid "Enable TLS and assume server role" -msgstr "" +msgstr "允許 TLS 並偽裝為伺服器" msgid "Enable internal datagram fragmentation" -msgstr "" +msgstr "允許內部資料報分片" msgid "Enable management interface on IP port" -msgstr "" +msgstr "在 IP port 上啟用可管理介面" msgid "Enabled" -msgstr "" +msgstr "啟用" + +msgid "Encrypt and authenticate all control channel packets with the key" +msgstr "使用金鑰加密及認證所有的控制通道資料包" msgid "Encryption cipher for packets" -msgstr "" +msgstr "加密資料包" msgid "Execute shell cmd after routes are added" -msgstr "" +msgstr "新增路由後執行 shell 命令" msgid "Execute shell command on remote ip change" -msgstr "" +msgstr "當遠端 ip 改變時執行 shell 命令" msgid "" "Executed in server mode on new client connections, when the client is still " "untrusted" -msgstr "" +msgstr "在伺服器模式下執行新的客戶端連線,當客戶端仍然是不可信" msgid "" "Executed in server mode whenever an IPv4 address/route or MAC address is " "added to OpenVPN's internal routing table" msgstr "" +"伺服器模式下,將每個 IPv4 位址/路由或 MAC 位址新增到 OpenVPN 的內部路由表中。" msgid "Exit on TLS negotiation failure" -msgstr "" +msgstr "TLS 驗證失敗後退出" msgid "Get PEM password from controlling tty before we daemonize" -msgstr "" +msgstr "後臺執行前從控制的 tty 中獲取 PEM 密碼" msgid "HMAC authentication for packets" -msgstr "" +msgstr "利用 HMAC 演算法校驗資料包" msgid "Handling of authentication failures" -msgstr "" +msgstr "處理驗證失敗" msgid "" "Helper directive to simplify the expression of --ping and --ping-restart in " "server mode configurations" -msgstr "" +msgstr "在服務配置模式下簡化 Helper 指令 --ping 和 --ping-restart 的表示式" msgid "If hostname resolve fails, retry" -msgstr "" +msgstr "如果主機名解析錯誤,重試" msgid "Instance \"%s\"" -msgstr "" +msgstr "例項 \"%s\"" msgid "Invalid" -msgstr "" +msgstr "無效" msgid "Keep local IP address on restart" -msgstr "" +msgstr "服務重啟時保持本地 IP 位址" msgid "Keep remote IP address on restart" -msgstr "" +msgstr "服務重啟時保持遠端 IP 位址" msgid "Keep tun/tap device open on restart" -msgstr "" +msgstr "服務重啟時自動開啟 tun/tap 裝置" msgid "Key transition window" -msgstr "" +msgstr "金鑰傳輸滑動視窗" msgid "Limit repeated log messages" -msgstr "" +msgstr "限制重複的日誌訊息" msgid "Local certificate" -msgstr "" +msgstr "本地證書" msgid "Local host name or ip address" -msgstr "" +msgstr "本地主機名或 ip 位址" msgid "Local private key" -msgstr "" +msgstr "本地私鑰" msgid "Major mode" -msgstr "" +msgstr "主要模式" msgid "Make tun device IPv6 capable" -msgstr "" +msgstr "使 tun 裝置相容 IPv6" msgid "Maximum number of queued TCP output packets" -msgstr "" +msgstr "TCP佇列中輸出包的最大數量" msgid "Number of allocated broadcast buffers" -msgstr "" +msgstr "已分配的廣播緩衝區數量" msgid "Number of lines for log file history" -msgstr "" +msgstr "歷史日誌檔案的行數" msgid "Only accept connections from given X509 name" -msgstr "" +msgstr "只接收已給定的 X509 名稱的連線" msgid "Only process ping timeouts if routes exist" -msgstr "" +msgstr "僅當路由存在時處理 ping 超時" msgid "OpenVPN" -msgstr "" +msgstr "OpenVPN" msgid "OpenVPN instances" -msgstr "" +msgstr "OpenVPN 例項" msgid "Optimize TUN/TAP/UDP writes" -msgstr "" +msgstr "優化 TUN/TAP/UDP 寫入" msgid "Output to syslog and do not daemonize" -msgstr "" +msgstr "輸出到 syslog,不執行守護程序" msgid "Overview" -msgstr "" +msgstr "概覽" msgid "PKCS#12 file containing keys" -msgstr "" +msgstr "PKCS#12 檔案包含的金鑰" msgid "Pass environment variables to script" -msgstr "" +msgstr "傳遞環境變數至指令碼" msgid "Persist replay-protection state" -msgstr "" +msgstr "儲存重播保護的狀態" msgid "Persist/unpersist ifconfig-pool" -msgstr "" +msgstr "持久/非持久 ifconfig 池" msgid "Ping remote every n seconds over TCP/UDP port" -msgstr "" +msgstr "每 n 秒 ping 一次遠端 TCP/UDP 埠" msgid "Policy level over usage of external programs and scripts" -msgstr "" +msgstr "外部程式和指令碼超出了策略允許的使用範圍" msgid "Port" -msgstr "" +msgstr "埠" msgid "Protocol" -msgstr "" +msgstr "協議" msgid "Proxy timeout in seconds" -msgstr "" +msgstr "代理超時,單位秒" msgid "Push an ifconfig option to remote" -msgstr "" +msgstr "主動向遠端傳送 ifconfig 選項" msgid "Push options to peer" -msgstr "" +msgstr "主動向端點發送選項" msgid "Query management channel for private key" -msgstr "" +msgstr "為私鑰查詢管理通道" msgid "Randomly choose remote server" -msgstr "" +msgstr "隨機選擇遠端伺服器" msgid "Refuse connection if no custom client config" -msgstr "" +msgstr "拒接沒有自定義客戶端配置的連線" msgid "Remap SIGUSR1 signals" -msgstr "" +msgstr "重對映 SIGUSR1 訊號" msgid "Remote host name or ip address" -msgstr "" +msgstr "遠端主機名或 ip 位址" msgid "Remote ping timeout" -msgstr "" +msgstr "遠端 ping 超時" msgid "Renegotiate data chan. key after bytes" -msgstr "" +msgstr "傳輸若干位元組後重新驗證資料通道金鑰" msgid "Renegotiate data chan. key after packets" -msgstr "" +msgstr "傳輸若干資料包後重新驗證資料通道金鑰" msgid "Renegotiate data chan. key after seconds" -msgstr "" +msgstr "傳輸若干秒後重新驗證資料通道金鑰" msgid "Replay protection sliding window size" -msgstr "" +msgstr "重播保護的滑動視窗大小" msgid "Require explicit designation on certificate" -msgstr "" +msgstr "證書需要顯式指定" msgid "Require explicit key usage on certificate" -msgstr "" +msgstr "證書需要明確的金鑰" msgid "Restart after remote ping timeout" -msgstr "" +msgstr "遠端 ping 超時後重啟" msgid "Retransmit timeout on TLS control channel" -msgstr "" +msgstr "TLS 控制通道超時後重新發送" msgid "Retry indefinitely on HTTP proxy errors" -msgstr "" +msgstr "無限重試直至代理正確" msgid "Retry indefinitely on Socks proxy errors" -msgstr "" +msgstr "無限重試直至 Socks 代理正確" msgid "Route subnet to client" -msgstr "" +msgstr "路由子網至客戶端" msgid "Run as an inetd or xinetd server" -msgstr "" +msgstr "以 inetd 或 xinetd 伺服器的方式執行" msgid "Run script cmd on client connection" -msgstr "" +msgstr "當客戶端連線時在命令列下允許指令碼" msgid "Run script cmd on client disconnection" -msgstr "" +msgstr "當客戶端斷開時在命令列下允許指令碼" msgid "Run up/down scripts for all restarts" -msgstr "" +msgstr "每次重啟都執行啟動/關閉指令碼" msgid "Send notification to peer on disconnect" -msgstr "" +msgstr "斷開連線時向客戶端傳送通知" msgid "Set GID to group" -msgstr "" +msgstr "為群組設定 GID 值" msgid "Set TCP/UDP MTU" -msgstr "" +msgstr "設定 TCP/UDP 的 MTU 值" msgid "Set UID to user" -msgstr "" +msgstr "為使用者設定 UID 值" msgid "Set aside a pool of subnets" -msgstr "" +msgstr "設定子網池" msgid "Set extended HTTP proxy options" -msgstr "" +msgstr "設定 HTTP 擴充套件代理選項" msgid "Set output verbosity" -msgstr "" +msgstr "設定輸出冗餘級別" msgid "Set size of real and virtual address hash tables" -msgstr "" +msgstr "設定實際和虛擬位址的雜湊表大小" msgid "Set the TCP/UDP receive buffer size" -msgstr "" +msgstr "設定 TCP/UDP 接收緩衝區大小" msgid "Set the TCP/UDP send buffer size" -msgstr "" +msgstr "設定 TCP/UDP 傳送緩衝區大小" msgid "Set tun/tap TX queue length" -msgstr "" +msgstr "設定 tun/tap 傳送佇列長度" msgid "Set tun/tap adapter parameters" -msgstr "" +msgstr "設定 tun/tap 介面卡引數" msgid "Set tun/tap device MTU" -msgstr "" +msgstr "設定 tun/tap 裝置的 MTU 值" msgid "Set tun/tap device overhead" -msgstr "" +msgstr "設定 tun/tap 裝置的開銷" msgid "Set upper bound on TCP MSS" -msgstr "" +msgstr "設定 TCP MSS 上限" msgid "Shaping for peer bandwidth" -msgstr "" +msgstr "改變結點頻寬" msgid "Shell cmd to execute after tun device open" -msgstr "" +msgstr "tun 裝置開啟後執行的 shell 命令" msgid "Shell cmd to run after tun device close" -msgstr "" +msgstr "tun 裝置關閉後執行的 shell 命令" msgid "Shell command to verify X509 name" -msgstr "" +msgstr "執行 shell 命令以驗證 X509 名稱" msgid "Silence the output of replay warnings" -msgstr "" +msgstr "以靜音的方式發出重播警告" msgid "Size of cipher key" -msgstr "" +msgstr "金鑰大小" msgid "Specify a default gateway for routes" -msgstr "" +msgstr "指定路由預設閘道器" msgid "Start OpenVPN in a hibernating state" -msgstr "" +msgstr "以休眠的狀態開啟 OpenVPN" msgid "Start/Stop" -msgstr "" +msgstr "啟動/停止" msgid "Started" -msgstr "" +msgstr "已執行的" msgid "Status file format version" -msgstr "" +msgstr "顯式檔案格式版本的狀態" msgid "Switch to advanced configuration »" -msgstr "" +msgstr "高階配置 »" msgid "TCP/UDP port # for both local and remote" -msgstr "" +msgstr "TCP/UDP 埠 # 同時針對本地和遠端" msgid "TCP/UDP port # for local (default=1194)" -msgstr "" +msgstr "TCP/UDP 埠 # 本地(預設 1194)" msgid "TCP/UDP port # for remote (default=1194)" -msgstr "" +msgstr "TCP/UDP 埠 # 遠端(預設 1194)" msgid "TLS cipher" -msgstr "" +msgstr "TLS 加密" msgid "TOS passthrough (applies to IPv4 only)" -msgstr "" +msgstr "TOS 穿透(僅限 IPv4)" msgid "Temporary directory for client-connect return file" -msgstr "" +msgstr "客戶端連線返回檔案的臨時目錄" msgid "The highest supported TLS version" -msgstr "" +msgstr "最高支援的 TLS 版本" msgid "The key direction for 'tls-auth' and 'secret' options" -msgstr "" +msgstr "“tls-auth”和“secret”選項的金鑰型別" msgid "The lowest supported TLS version" -msgstr "" +msgstr "最低支援的 TLS 版本" msgid "Timeframe for key exchange" -msgstr "" +msgstr "金鑰交換時間表" msgid "Type of used device" -msgstr "" +msgstr "使用裝置型別" msgid "Use fast LZO compression" -msgstr "" +msgstr "使用快速 LZO 壓縮" msgid "Use individual addresses rather than /30 subnets" -msgstr "" +msgstr "使用獨立的位址代替 /30 子網" msgid "Use protocol" -msgstr "" +msgstr "採用協議" msgid "Use tun/tap device node" -msgstr "" +msgstr "使用 tun/tap 裝置節點" msgid "Use username as common name" -msgstr "" +msgstr "把使用者名稱作為通用名稱" msgid "Write log to file" -msgstr "" +msgstr "儲存日誌至檔案" msgid "Write process ID to file" -msgstr "" +msgstr "記錄程序 ID 至檔案" msgid "Write status to file every n seconds" -msgstr "" +msgstr "每 n 秒後寫入狀態至檔案" msgid "no" -msgstr "" +msgstr "否" msgid "tun/tap device" -msgstr "" +msgstr "tun/tap 裝置" msgid "tun/tap inactivity timeout" -msgstr "" +msgstr "tun/tap 休眠超時" msgid "yes (%i)" -msgstr "" +msgstr "是(%i)" msgid "« Switch to basic configuration" -msgstr "" +msgstr "« 基本配置" + +#~ msgid "Cryptography" +#~ msgstr "加密" + +#~ msgid "Networking" +#~ msgstr "網路" + +#~ msgid "Service" +#~ msgstr "服務" + +#~ msgid "VPN" +#~ msgstr "VPN" diff --git a/package/luci/applications/luci-app-p2pblock/po/pt-br/p2pblock.po b/package/luci/applications/luci-app-p2pblock/po/pt-br/p2pblock.po index de3638164e..8ebac375f2 100644 --- a/package/luci/applications/luci-app-p2pblock/po/pt-br/p2pblock.po +++ b/package/luci/applications/luci-app-p2pblock/po/pt-br/p2pblock.po @@ -1,3 +1,7 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" + msgid "Block Time" msgstr "Tempo de bloqueio" diff --git a/package/luci/applications/luci-app-p910nd/po/zh-tw/p910nd.po b/package/luci/applications/luci-app-p910nd/po/zh-tw/p910nd.po index 7d6c08041e..e6f6313374 100644 --- a/package/luci/applications/luci-app-p910nd/po/zh-tw/p910nd.po +++ b/package/luci/applications/luci-app-p910nd/po/zh-tw/p910nd.po @@ -21,7 +21,7 @@ msgid "" "First you have to install the packages to get support for USB (kmod-usb-" "printer) or parallel port (kmod-lp)." msgstr "" -"首先你必須安裝軟體包以便獲得USB (kmod-usb-printer)或串列埠(kmod-lp)的支援." +"首先您必須安裝軟體包以便獲得USB (kmod-usb-printer)或串列埠(kmod-lp)的支援." msgid "Interface" msgstr "" diff --git a/package/luci/applications/luci-app-pbx-voicemail/po/zh-cn/pbx-voicemail.po b/package/luci/applications/luci-app-pbx-voicemail/po/zh-cn/pbx-voicemail.po index 0be8258a08..5545c05fc0 100644 --- a/package/luci/applications/luci-app-pbx-voicemail/po/zh-cn/pbx-voicemail.po +++ b/package/luci/applications/luci-app-pbx-voicemail/po/zh-cn/pbx-voicemail.po @@ -1,15 +1,18 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"PO-Revision-Date: 2013-10-08 18:42+0200\n" -"Last-Translator: Tanyingyu \n" -"Language-Team: none\n" +"PO-Revision-Date: 2017-10-28 16:41+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Pootle 2.0.6\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "Email Addresses that Receive Voicemail" msgstr "接收语音邮箱的电子邮箱地址" @@ -28,8 +31,10 @@ msgid "" "SMTP server), and provide a list of addresses that receive recorded " "voicemail." msgstr "" -"在这里,你可以为PBX配置一个全球性的语音邮件。由于这个系统运行在嵌入式系统中,如路由器,没有本地存储语音邮件 - 它必须通过电子邮件发送出去。因此,你" -"需要配置一个外发邮件(SMTP)服务器(例如您的ISP,谷歌或雅虎的SMTP服务器),并提供接收记录语音信箱的地址的列表。" +"在这里,您可以为 PBX 配置一个全球性的语音邮件。由于这个系统运行在嵌入式系统" +"中,如路由器,这里并无本地语言邮件的储存空间 - 它必须通过电子邮件发送出去。因" +"此,您需要配置一个外发邮件(SMTP)服务器(例如您的 ISP、谷歌或雅虎的 SMTP 服" +"务器),并提供接收记录语音信箱的地址的列表。" msgid "" "In order for this PBX to send emails containing voicemail recordings, you " @@ -37,11 +42,12 @@ msgid "" "for that purpose. You can also set up a third party SMTP server such as the " "one provided by Google or Yahoo." msgstr "" -"为了这个PBX发送包含语音信箱录音的电子邮件,你需要在这里设置一个SMTP服务器。您的ISP通常会提供一个SMTP服务器。您也可以设立一个第三方的SMT" -"P服务器,像谷歌或雅虎。" +"为了这个 PBX 发送包含语音信箱录音的电子邮件,您需要在这里设置一个 SMTP 服务" +"器。您的 ISP 通常会提供一个 SMTP 服务器。您也可以设立一个第三方的 SMTP 服务" +"器,如谷歌或雅虎那样。" msgid "Last Sent Voicemail Log" -msgstr "最后发送的语音信箱日志" +msgstr "上一次发送语音信箱的日志" msgid "Local Storage Directory" msgstr "本地存储目录" @@ -53,22 +59,22 @@ msgid "Outgoing mail (SMTP) Server" msgstr "电子邮件发送服务器(SMTP)" msgid "SMTP Password" -msgstr "SMTP登录密码" +msgstr "SMTP 登录密码" msgid "SMTP Port Number" -msgstr "SMTP端口" +msgstr "SMTP 端口" msgid "SMTP Server Authentication" -msgstr "SMTP服务器认证" +msgstr "SMTP 服务器认证" msgid "SMTP Server Hostname or IP Address" -msgstr "SMTP服务器主机名或IP地址" +msgstr "SMTP 服务器主机名或 IP 地址" msgid "SMTP User Name" -msgstr "SMTP用户名" +msgstr "SMTP 用户名" msgid "Secure Connection Using TLS" -msgstr "使用TLS安全连接" +msgstr "使用 TLS 安全连接" msgid "Voicemail Setup" msgstr "语音邮箱设置" @@ -77,7 +83,9 @@ msgid "" "When you enable voicemail, you will have the opportunity to specify email " "addresses that receive recorded voicemail. You must also set up an SMTP " "server below." -msgstr "当你启用了语音信箱,你将要指定接收记录语音信箱的电子邮件地址。您还必须设置下面的SMTP服务器" +msgstr "" +"当您启用了语音信箱,您将可以指定接收记录语音信箱的电子邮件地址。您也必须在下" +"面设置 SMTP 服务器。" msgid "Yes" msgstr "是" @@ -88,10 +96,12 @@ msgid "" "limited space on embedded devices like routers, and enable this option only " "if you know what you are doing." msgstr "" -"您也可以保留您的PBX语音信箱留言的副本在你运行的设备上。此处指定的路径当不存在时,将被创建。谨防嵌入式设备上有限的存取空间,如路由器,所以此选项只有你" -"当知道处理时才可使用。" +"您也可以在您运行 PBX 的设备上保留语音信箱留言的副本。此处指定的路径当不存在" +"时,将会创建。谨防嵌入式设备上有限的存取空间,如路由器,所以此选项只有当您确" +"定用途时才可使用。" msgid "" "Your real SMTP password is not shown for your protection. It will be changed " "only when you change the value in this box." -msgstr "为了保护您真正的SMTP密码不显示。该选项需要更改。" +msgstr "" +"为了保护您,真正的 SMTP 密码将不会显示。只有当您改变框中的数值时它才会变更。" diff --git a/package/luci/applications/luci-app-pbx-voicemail/po/zh-tw/pbx-voicemail.po b/package/luci/applications/luci-app-pbx-voicemail/po/zh-tw/pbx-voicemail.po index 14de629830..8464289997 100644 --- a/package/luci/applications/luci-app-pbx-voicemail/po/zh-tw/pbx-voicemail.po +++ b/package/luci/applications/luci-app-pbx-voicemail/po/zh-tw/pbx-voicemail.po @@ -1,24 +1,27 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"PO-Revision-Date: 2014-05-14 18:41+0200\n" -"Last-Translator: omnistack \n" -"Language-Team: none\n" +"PO-Revision-Date: 2017-10-28 16:41+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Pootle 2.0.6\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "Email Addresses that Receive Voicemail" -msgstr "接收語音郵件的信箱位址" +msgstr "接收語音郵箱的電子郵箱位址" msgid "Enable Voicemail" -msgstr "啟用語音郵件功能" +msgstr "啟用語音郵箱" msgid "Global Voicemail Setup" -msgstr "語音郵件通用設定" +msgstr "全域性語音郵箱設定" msgid "" "Here you can configure a global voicemail for this PBX. Since this system is " @@ -28,9 +31,10 @@ msgid "" "SMTP server), and provide a list of addresses that receive recorded " "voicemail." msgstr "" -"在這裡可以幫PBX總機設定通用語音郵件. 因為這個系統想要像路由器一般跑在嵌入式系統, 這裡並無本地語言郵件的儲存空間 - 它必須由郵件來傳送. " -"因此你需要設定一個(SMTP)外寄郵件伺服器(例如你的ISP, Google, 或者Yahoo外寄郵件伺服器), " -"並且提供一個位址清單可以接收錄音檔的語音郵件." +"在這裡,您可以為 PBX 配置一個全球性的語音郵件。由於這個系統執行在嵌入式系統" +"中,如路由器,這裡並無本地語言郵件的儲存空間 - 它必須通過電子郵件傳送出去。因" +"此,您需要配置一個外發郵件(SMTP)伺服器(例如您的 ISP、谷歌或雅虎的 SMTP 服" +"務器),並提供接收記錄語音信箱的位址的列表。" msgid "" "In order for this PBX to send emails containing voicemail recordings, you " @@ -38,50 +42,53 @@ msgid "" "for that purpose. You can also set up a third party SMTP server such as the " "one provided by Google or Yahoo." msgstr "" -"為了幫PBX總機傳送附帶語音郵件錄音檔, 你必須設定一個(SMTP)外寄郵件伺服器.通常你的ISP會提供一個SMTP外寄郵件伺服器讓客戶寄信,.你也可以" -"設定第三方SMTP外寄郵件伺服器類似Google或Yahoo提供的也行." +"為了這個 PBX 傳送包含語音信箱錄音的電子郵件,您需要在這裡設定一個 SMTP 服務" +"器。您的 ISP 通常會提供一個 SMTP 伺服器。您也可以設立一個第三方的 SMTP 服務" +"器,如谷歌或雅虎那樣。" msgid "Last Sent Voicemail Log" -msgstr "上一次傳送語音郵件的記錄" +msgstr "上一次傳送語音信箱的日誌" msgid "Local Storage Directory" -msgstr "本地端儲存目錄" +msgstr "本地儲存目錄" msgid "No" -msgstr "No" +msgstr "不" msgid "Outgoing mail (SMTP) Server" -msgstr "外寄郵件(SMTP)伺服器" +msgstr "電子郵件傳送伺服器(SMTP)" msgid "SMTP Password" -msgstr "外寄郵件(SMTP)伺服器傳送密碼" +msgstr "SMTP 登入密碼" msgid "SMTP Port Number" -msgstr "外寄郵件(SMTP)伺服器服務埠號" +msgstr "SMTP 埠" msgid "SMTP Server Authentication" -msgstr "外寄郵件(SMTP)伺服器驗證" +msgstr "SMTP 伺服器認證" msgid "SMTP Server Hostname or IP Address" -msgstr "外寄郵件(SMTP)伺服器主機名稱或者IP位址" +msgstr "SMTP 伺服器主機名或 IP 位址" msgid "SMTP User Name" -msgstr "外寄郵件(SMTP)伺服器登入使用者名稱" +msgstr "SMTP 使用者名稱" msgid "Secure Connection Using TLS" -msgstr "採用TLS加密協議安全連線" +msgstr "使用 TLS 安全連線" msgid "Voicemail Setup" -msgstr "設定語音郵件" +msgstr "語音郵箱設定" msgid "" "When you enable voicemail, you will have the opportunity to specify email " "addresses that receive recorded voicemail. You must also set up an SMTP " "server below." -msgstr "當你啟用語音郵件功能, 擬將有機會指定特定可接收錄音檔的語音郵件的郵件位址. 你也必須在下面設定外寄郵件(SMTP)伺服器." +msgstr "" +"當您啟用了語音信箱,您將可以指定接收記錄語音信箱的電子郵件位址。您也必須在下" +"面設定 SMTP 伺服器。" msgid "Yes" -msgstr "Yes" +msgstr "是" msgid "" "You can also retain copies of voicemail messages on the device running your " @@ -89,10 +96,12 @@ msgid "" "limited space on embedded devices like routers, and enable this option only " "if you know what you are doing." msgstr "" -"你也可以保留語音郵件訊息的複本在PBX總機的設備上. 這裡所指定的路徑如果它不存在時將會被建立. 為預防像路由器的嵌入式設備有限的空間限制, " -"如果你確定這個用途請啟用這個選項." +"您也可以在您執行 PBX 的裝置上保留語音信箱留言的副本。此處指定的路徑當不存在" +"時,將會建立。謹防嵌入式裝置上有限的存取空間,如路由器,所以此選項只有當您確" +"定用途時才可使用。" msgid "" "Your real SMTP password is not shown for your protection. It will be changed " "only when you change the value in this box." -msgstr "為了保護你的SMTP密碼將不會顯示. 只有當你改變盒子中的值時它將會被變更" +msgstr "" +"為了保護您,真正的 SMTP 密碼將不會顯示。只有當您改變框中的數值時它才會變更。" diff --git a/package/luci/applications/luci-app-pbx/po/zh-cn/pbx.po b/package/luci/applications/luci-app-pbx/po/zh-cn/pbx.po index 8ac03e1aa0..45325b99c1 100644 --- a/package/luci/applications/luci-app-pbx/po/zh-cn/pbx.po +++ b/package/luci/applications/luci-app-pbx/po/zh-cn/pbx.po @@ -93,7 +93,7 @@ msgid "" "experiment to make sure you are blocking numbers from your desired area " "successfully." msgstr "" -"输入你想自动屏蔽的电话号码。你应该忽略国家代码和任何前导零,但请测试来确保你成" +"输入您想自动屏蔽的电话号码。您应该忽略国家代码和任何前导零,但请测试来确保您成" "功屏蔽了想要屏蔽的号码。" msgid "" diff --git a/package/luci/applications/luci-app-pbx/po/zh-tw/pbx.po b/package/luci/applications/luci-app-pbx/po/zh-tw/pbx.po index aa05be778f..603b9df585 100644 --- a/package/luci/applications/luci-app-pbx/po/zh-tw/pbx.po +++ b/package/luci/applications/luci-app-pbx/po/zh-tw/pbx.po @@ -93,14 +93,14 @@ msgid "" "experiment to make sure you are blocking numbers from your desired area " "successfully." msgstr "" -"打入你允許自動通話的號碼. 你或許可以忽略國碼和0字開頭, 但僅供實驗以確保期望區" +"打入您允許自動通話的號碼. 您或許可以忽略國碼和0字開頭, 但僅供實驗以確保期望區" "的號碼被阻斷成功." msgid "" "Enter this IP (or IP:port) in the Server/Registrar setting of SIP devices " "you will use ONLY locally and never from a remote location." msgstr "" -"要設定SIP設備在Server/Registrar內打入IP(或IP:埠號)你僅能本地端使用絕不要打入" +"要設定SIP設備在Server/Registrar內打入IP(或IP:埠號)您僅能本地端使用絕不要打入" "遠端位置" msgid "" @@ -466,7 +466,7 @@ msgid "" msgstr "" msgid "You can specify a real name to show up in the Caller ID here." -msgstr "你可以在此指定一個真實名稱以便顯示在來電ID" +msgstr "您可以在此指定一個真實名稱以便顯示在來電ID" msgid "" "You can use your SIP devices/softphones with this system from a remote " @@ -481,10 +481,10 @@ msgid "" "port and RTP range) to the IP address of the device running this PBX." msgstr "" "不管多遠,只要能取得ISP提供的公眾合法IP,依然可以使用這個系統的SIP設備/PC電話表" -"現一樣的好.你將能夠免費呼叫其他本地端用戶(e.g 其它類比電話機(ATAs)和使用你的" -"VoIP供應商講電話就像你在使用本地的PBX總機電話一樣.在設定這個標籤後, 需回到用" +"現一樣的好.您將能夠免費呼叫其他本地端用戶(e.g 其它類比電話機(ATAs)和使用您的" +"VoIP供應商講電話就像您在使用本地的PBX總機電話一樣.在設定這個標籤後, 需回到用" "戶設定並且查看新的伺服器和埠設定以便能設定遠端SIP設備.請注意假如PBX總機若不在" -"你的路由器/GW上執行,你將必須在你的路由器/GW上設定埠轉發(NAT).在PBX主機上請轉" +"您的路由器/GW上執行,您將必須在您的路由器/GW上設定埠轉發(NAT).在PBX主機上請轉" "發下列(SIP埠+RTP所採用的範圍埠)埠號址定到跑PBX服務設備上的IP位址." msgid "" @@ -492,14 +492,14 @@ msgid "" "when you enter a value different from the saved one. Leaving the PIN empty " "is possible, but please beware of the security implications." msgstr "" -"當存檔時為保護起見你的PIN碼將不會顯示. 除非你打入不同於原始存檔的值它才會變" +"當存檔時為保護起見您的PIN碼將不會顯示. 除非您打入不同於原始存檔的值它才會變" "更. 也可以把PIN碼保留空白, 但要提防會有安全的隱憂." msgid "" "Your password disappears when saved for your protection. It will be changed " "only when you enter a value different from the saved one." msgstr "" -"當存檔時為保護起見你的密碼將不會顯示. 除非你打入不同於原始存檔的值它才會變更." +"當存檔時為保護起見您的密碼將不會顯示. 除非您打入不同於原始存檔的值它才會變更." #~ msgid "" #~ "Designate numbers that are allowed to call through this system and which " diff --git a/package/luci/applications/luci-app-polipo/po/zh-cn/polipo.po b/package/luci/applications/luci-app-polipo/po/zh-cn/polipo.po index 7dcbe2344a..0b3a1dc1a1 100644 --- a/package/luci/applications/luci-app-polipo/po/zh-cn/polipo.po +++ b/package/luci/applications/luci-app-polipo/po/zh-cn/polipo.po @@ -1,15 +1,18 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"PO-Revision-Date: 2013-10-09 03:47+0200\n" -"Last-Translator: Tanyingyu \n" -"Language-Team: none\n" +"PO-Revision-Date: 2017-10-29 14:56+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Pootle 2.0.6\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "Advanced Settings" msgstr "高级设置" @@ -18,21 +21,21 @@ msgid "Allowed clients" msgstr "允许的客户端" msgid "Always use system DNS resolver" -msgstr "始终使用系统DNS解析" +msgstr "始终使用系统 DNS 解析" msgid "" "Basic HTTP authentication supported. Provide username and password in " "username:password format." -msgstr "支持HTTP基本身份验证。提供用户名和密码格式为:用户名:密码。" +msgstr "支持 HTTP 基本身份验证。提供用户名和密码格式为:用户名:密码。" msgid "Configuration" msgstr "配置" msgid "DNS and Query Settings" -msgstr "DNS查询设置" +msgstr "DNS 及查询设置" msgid "DNS server address" -msgstr "DNS地址" +msgstr "DNS 服务器地址" msgid "Delete cache files time" msgstr "清除缓存文件周期" @@ -41,22 +44,22 @@ msgid "Disk cache location" msgstr "磁盘缓存位置" msgid "Do not query IPv6" -msgstr "不能查询IPv6" +msgstr "不能查询 IPv6" msgid "Enable if cache (proxy) is shared by multiple users." msgstr "允许多用户共享缓存(代理)。" msgid "First PMM segment size (in bytes)" -msgstr "第一的PMM段的大小(字节为单位)" +msgstr "第一 PMM 段大小(以字节表示)" msgid "General Settings" msgstr "通用设置" msgid "How much RAM should Polipo use for its cache." -msgstr "" +msgstr "允许 Polipo 做缓存的 RAM 使用量" msgid "In RAM cache size (in bytes)" -msgstr "" +msgstr "RAM 缓存大小(以字节表示)" msgid "Listen address" msgstr "监听地址" @@ -68,51 +71,53 @@ msgid "" "Location where polipo will cache files permanently. Use of external storage " "devices is recommended, because the cache can grow considerably. Leave it " "empty to disable on-disk cache." -msgstr "polipo将永久缓存文件。建议使用外部存储设备,因为缓存会一直增长。留空表示禁用磁盘缓存。" +msgstr "" +"Polipo 持久缓存文件位置。建议使用外部存储设备,因为缓存会一直增长。留空表示禁" +"用磁盘缓存。" msgid "Log file location" msgstr "日志存放位置" msgid "Log to syslog" -msgstr "吐日志到syslog" +msgstr "记录日志到 syslog" msgid "Logging and RAM" -msgstr "" +msgstr "记录和 RAM" msgid "Never use system DNS resolver" -msgstr "从不使用系统DNS解析" +msgstr "从不使用系统 DNS 解析" msgid "On-Disk Cache" msgstr "磁盘缓存" msgid "PMM segments size (in bytes)" -msgstr "" +msgstr "PMM 段大小(以字节表示)" msgid "Parent Proxy" -msgstr "" +msgstr "上层代理" msgid "Parent proxy address" -msgstr "" +msgstr "上层代理地址" msgid "" "Parent proxy address (in host:port format), to which Polipo will forward the " "requests." -msgstr "" +msgstr "Polipo 应该转发请求所到的上层代理(以 主机:端口号 格式表示)。" msgid "Parent proxy authentication" -msgstr "" +msgstr "上层代理地址验证" msgid "Polipo" -msgstr "" +msgstr "Polipo" msgid "Polipo Status" -msgstr "" +msgstr "Polipo 状态" msgid "Polipo is a small and fast caching web proxy." -msgstr "" +msgstr "Polipo 是一个小型且快速的网页缓存代理。" msgid "Poor Man's Multiplexing" -msgstr "" +msgstr "穷人的多工复用器" msgid "" "Poor Man's Multiplexing (PMM) is a technique that simulates multiplexing by " @@ -120,86 +125,92 @@ msgid "" "caused by the weakness of HTTP protocol. NOTE: some sites may not work with " "PMM enabled." msgstr "" +"穷人的多工复用器(PMM)是通过在多个区段中请求单个实例来模拟复用的技术。它尝试" +"降低由 HTTP 协议的弱点引起的延迟。注意:某些站点可能无法启用 PMM。" msgid "Port on which Polipo will listen" -msgstr "" +msgstr "Polipo 监听的端口号" msgid "Proxy" -msgstr "" +msgstr "代理服务器" msgid "Query DNS by hostname" -msgstr "" +msgstr "以主机名称查询 DNS" msgid "Query DNS directly, fallback to system resolver" -msgstr "" +msgstr "直接查询 DNS,失败时退回系统解析" msgid "Query DNS directly, for unknown hosts fall back to system resolver" -msgstr "" +msgstr "直接查询 DNS,对未知的主机退回系统解析" msgid "Query DNS for IPv6" -msgstr "" +msgstr "为 IPv6 查询 DNS" msgid "Query IPv4 and IPv6, prefer IPv4" -msgstr "" +msgstr "查询 IPv4 和 IPv6,IPv4 优先" msgid "Query IPv4 and IPv6, prefer IPv6" -msgstr "" +msgstr "查询 IPv4 和 IPv6,IPv6 优先" msgid "Query only IPv6" -msgstr "" +msgstr "只查询 IPv6" msgid "" "Set the DNS server address to use, if you want Polipo to use different DNS " "server than the host system." msgstr "" +"设置 DNS 服务器地址以便使用,假如您要让 Polipo 使用不同的 DNS 服务器,而非主" +"机系统的。" msgid "Shared cache" -msgstr "" +msgstr "共享的缓存" msgid "" "Size of the first PMM segment. If not defined, it defaults to twice the PMM " "segment size." -msgstr "" +msgstr "第一个 PMM 段的大小,若未定义,默认为两倍 PMM 段的大小。" msgid "Size to which cached files should be truncated" -msgstr "" +msgstr "缓存文件应截断为的大小" msgid "Status" -msgstr "" +msgstr "状态" msgid "Syslog facility" -msgstr "" +msgstr "日志设施" msgid "" "The interface on which Polipo will listen. To listen on all interfaces use " "0.0.0.0 or :: (IPv6)." -msgstr "" +msgstr "Polipo 将会监听的接口。要监听所有接口,请使用 0.0.0.0 或 ::(IPv6)。" msgid "Time after which cached files will be deleted" -msgstr "" +msgstr "缓存删除前的留存时间" msgid "Time after which cached files will be truncated" -msgstr "" +msgstr "缓存截断前的留存时间" msgid "To enable PMM, PMM segment size must be set to some positive value." -msgstr "" +msgstr "要启用 PMM,PMM 段大小必须为正。" msgid "Truncate cache files size (in bytes)" -msgstr "" +msgstr "缓存文件截断大小(以字节为单位)" msgid "Truncate cache files time" -msgstr "" +msgstr "缓存文件截断时间" msgid "" "Use of external storage device is recommended, because the log file is " "written frequently and can grow considerably." -msgstr "" +msgstr "推荐使用外部存储设备,因为日志文件经常写入,将会迅速增长。" msgid "" "When listen address is set to 0.0.0.0 or :: (IPv6), you must list clients " "that are allowed to connect. The format is IP address or network address " "(192.168.1.123, 192.168.1.0/24, 2001:660:116::/48 (IPv6))" msgstr "" +"当监听地址设置为 0.0.0.0 或 ::(IPv6)时,必须列出允许连接的客户端。格式为 " +"IP 地址或网络地址(192.168.1.123,192.168.1.0/24,2001:660:116::/48(IPv6))" msgid "enable" -msgstr "" +msgstr "启用" diff --git a/package/luci/applications/luci-app-polipo/po/zh-tw/polipo.po b/package/luci/applications/luci-app-polipo/po/zh-tw/polipo.po index 5058897bc4..cf3c943704 100644 --- a/package/luci/applications/luci-app-polipo/po/zh-tw/polipo.po +++ b/package/luci/applications/luci-app-polipo/po/zh-tw/polipo.po @@ -1,118 +1,123 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"PO-Revision-Date: 2014-05-21 13:13+0200\n" -"Last-Translator: omnistack \n" -"Language-Team: none\n" +"PO-Revision-Date: 2017-10-29 14:56+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Pootle 2.0.6\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "Advanced Settings" -msgstr "進階設定" +msgstr "高階設定" msgid "Allowed clients" msgstr "允許的客戶端" msgid "Always use system DNS resolver" -msgstr "總是採用系統使用的DNS解析" +msgstr "始終使用系統 DNS 解析" msgid "" "Basic HTTP authentication supported. Provide username and password in " "username:password format." -msgstr "基本的HTTP驗證支援. 提供使用者名稱和密碼以username:password格式" +msgstr "支援 HTTP 基本身份驗證。提供使用者名稱和密碼格式為:使用者名稱:密碼。" msgid "Configuration" -msgstr "設定" +msgstr "配置" msgid "DNS and Query Settings" -msgstr "DNS及查詢設定值" +msgstr "DNS 及查詢設定" msgid "DNS server address" -msgstr "DNS伺服器位址" +msgstr "DNS 伺服器位址" msgid "Delete cache files time" -msgstr "刪除快取檔的時間" +msgstr "清除快取檔案週期" msgid "Disk cache location" -msgstr "磁碟快取放置的位置" +msgstr "磁碟快取位置" msgid "Do not query IPv6" -msgstr "不使用IPv6查詢" +msgstr "不能查詢 IPv6" msgid "Enable if cache (proxy) is shared by multiple users." -msgstr "假若快取(Proxy)被多個使用者分享使用就啓用" +msgstr "允許多使用者共享快取(代理)。" msgid "First PMM segment size (in bytes)" -msgstr "第一個PMM段的大小(以bytes方式表示)" +msgstr "第一 PMM 段大小(以位元組表示)" msgid "General Settings" -msgstr "基本設定" +msgstr "通用設定" msgid "How much RAM should Polipo use for its cache." -msgstr "Polipo拿來當快取的記憶體量是多大?" +msgstr "允許 Polipo 做快取的 RAM 使用量" msgid "In RAM cache size (in bytes)" -msgstr "記憶體快取大小(以bytes方式表示)" +msgstr "RAM 快取大小(以位元組表示)" msgid "Listen address" -msgstr "聆聽位址" +msgstr "監聽位址" msgid "Listen port" -msgstr "聆聽埠號" +msgstr "監聽埠" msgid "" "Location where polipo will cache files permanently. Use of external storage " "devices is recommended, because the cache can grow considerably. Leave it " "empty to disable on-disk cache." -msgstr "Polipo位置將永久快取文件。建議使用外部的存儲設備,因為快取會顯著增長。保留空白以便關閉磁碟快取." +msgstr "" +"Polipo 持久快取檔案位置。建議使用外部儲存裝置,因為快取會一直增長。留空表示禁" +"用磁碟快取。" msgid "Log file location" -msgstr "紀錄檔位置" +msgstr "日誌存放位置" msgid "Log to syslog" -msgstr "記錄到系統記錄syslog中" +msgstr "記錄日誌到 syslog" msgid "Logging and RAM" -msgstr "記錄和記憶體" +msgstr "記錄和 RAM" msgid "Never use system DNS resolver" -msgstr "從不使用系統DNS解析" +msgstr "從不使用系統 DNS 解析" msgid "On-Disk Cache" -msgstr "磁碟上的快取" +msgstr "磁碟快取" msgid "PMM segments size (in bytes)" -msgstr "PMM段大小(以bytes表示)" +msgstr "PMM 段大小(以位元組表示)" msgid "Parent Proxy" -msgstr "上層Proxy" +msgstr "上層代理" msgid "Parent proxy address" -msgstr "上層Proxy位址" +msgstr "上層代理位址" msgid "" "Parent proxy address (in host:port format), to which Polipo will forward the " "requests." -msgstr "Polipo應該重導這個要求所到的上層Proxy(以 主機:埠號 格式表示)." +msgstr "Polipo 應該轉發請求所到的上層代理(以 主機:埠號 格式表示)。" msgid "Parent proxy authentication" -msgstr "上層Proxy位址驗證" +msgstr "上層代理位址驗證" msgid "Polipo" -msgstr "Polipo本地代理伺服器" +msgstr "Polipo" msgid "Polipo Status" -msgstr "Polipo狀況" +msgstr "Polipo 狀態" msgid "Polipo is a small and fast caching web proxy." -msgstr "Polipo是一個小型且快速的快取網頁代理" +msgstr "Polipo 是一個小型且快速的網頁快取代理。" msgid "Poor Man's Multiplexing" -msgstr "窮人的多工器Poor Man's Multiplexing" +msgstr "窮人的多工複用器" msgid "" "Poor Man's Multiplexing (PMM) is a technique that simulates multiplexing by " @@ -120,49 +125,53 @@ msgid "" "caused by the weakness of HTTP protocol. NOTE: some sites may not work with " "PMM enabled." msgstr "" +"窮人的多工複用器(PMM)是通過在多個區段中請求單個例項來模擬複用的技術。它嘗試" +"降低由 HTTP 協議的弱點引起的延遲。注意:某些站點可能無法啟用 PMM。" msgid "Port on which Polipo will listen" -msgstr " Polipo聆聽的埠號" +msgstr "Polipo 監聽的埠號" msgid "Proxy" msgstr "代理伺服器" msgid "Query DNS by hostname" -msgstr "以主機名稱查詢DNS" +msgstr "以主機名稱查詢 DNS" msgid "Query DNS directly, fallback to system resolver" -msgstr "直接查詢DNS, 回傳給系統解析" +msgstr "直接查詢 DNS,失敗時退回系統解析" msgid "Query DNS directly, for unknown hosts fall back to system resolver" -msgstr "直接查詢DNS, 對莫名的主機回傳給系統解析" +msgstr "直接查詢 DNS,對未知的主機退回系統解析" msgid "Query DNS for IPv6" -msgstr "幫IPv6查詢DNS" +msgstr "為 IPv6 查詢 DNS" msgid "Query IPv4 and IPv6, prefer IPv4" -msgstr "查詢IPv4和IPv6,IPv4優先" +msgstr "查詢 IPv4 和 IPv6,IPv4 優先" msgid "Query IPv4 and IPv6, prefer IPv6" -msgstr "查詢IPv4和IPv6 ,IPv6優先" +msgstr "查詢 IPv4 和 IPv6,IPv6 優先" msgid "Query only IPv6" -msgstr "只查詢IPv6" +msgstr "只查詢 IPv6" msgid "" "Set the DNS server address to use, if you want Polipo to use different DNS " "server than the host system." -msgstr "設定DNS伺服器位址以便使用, 假如你要Polipo代理人使用不同的DNS伺服器而非主機系統." +msgstr "" +"設定 DNS 伺服器位址以便使用,假如您要讓 Polipo 使用不同的 DNS 伺服器,而非主" +"機系統的。" msgid "Shared cache" -msgstr "分享的快取" +msgstr "共享的快取" msgid "" "Size of the first PMM segment. If not defined, it defaults to twice the PMM " "segment size." -msgstr "第一個PMM區段的大小, 假若沒定義 ,預設兩次PMM區段的大小." +msgstr "第一個 PMM 段的大小,若未定義,預設為兩倍 PMM 段的大小。" msgid "Size to which cached files should be truncated" -msgstr "快取檔被截斷的大小" +msgstr "快取檔案應截斷為的大小" msgid "Status" msgstr "狀態" @@ -173,33 +182,35 @@ msgstr "日誌設施" msgid "" "The interface on which Polipo will listen. To listen on all interfaces use " "0.0.0.0 or :: (IPv6)." -msgstr "Polipo將會聆聽的介面. 要聆聽所有介面使用0.0.0.0 或 :: (IPv6)." +msgstr "Polipo 將會監聽的介面。要監聽所有介面,請使用 0.0.0.0 或 ::(IPv6)。" msgid "Time after which cached files will be deleted" -msgstr "快取將會被刪除的留存時間" +msgstr "快取刪除前的留存時間" msgid "Time after which cached files will be truncated" -msgstr "快取將會被斷頭的留存時間" +msgstr "快取截斷前的留存時間" msgid "To enable PMM, PMM segment size must be set to some positive value." -msgstr "要啟用PMM, PMM區段大小必須設定些積極的數值." +msgstr "要啟用 PMM,PMM 段大小必須為正。" msgid "Truncate cache files size (in bytes)" -msgstr "" +msgstr "快取檔案截斷大小(以位元組為單位)" msgid "Truncate cache files time" -msgstr "" +msgstr "快取檔案截斷時間" msgid "" "Use of external storage device is recommended, because the log file is " "written frequently and can grow considerably." -msgstr "" +msgstr "推薦使用外部儲存裝置,因為日誌檔案經常寫入,將會迅速增長。" msgid "" "When listen address is set to 0.0.0.0 or :: (IPv6), you must list clients " "that are allowed to connect. The format is IP address or network address " "(192.168.1.123, 192.168.1.0/24, 2001:660:116::/48 (IPv6))" msgstr "" +"當監聽位址設定為 0.0.0.0 或 ::(IPv6)時,必須列出允許連線的客戶端。格式為 " +"IP 位址或網路位址(192.168.1.123,192.168.1.0/24,2001:660:116::/48(IPv6))" msgid "enable" -msgstr "" +msgstr "啟用" diff --git a/package/luci/applications/luci-app-privoxy/po/zh-cn/privoxy.po b/package/luci/applications/luci-app-privoxy/po/zh-cn/privoxy.po index 778422b8bb..efbad08a56 100644 --- a/package/luci/applications/luci-app-privoxy/po/zh-cn/privoxy.po +++ b/package/luci/applications/luci-app-privoxy/po/zh-cn/privoxy.po @@ -57,7 +57,7 @@ msgid "" "proxies. Note that parent proxies can severely decrease your privacy level. " "Also specified here are SOCKS proxies." msgstr "" -"在这里设置 HTTP 请求所经过的多重代理链。注意:父级代理可能严重降低你的隐私安" +"在这里设置 HTTP 请求所经过的多重代理链。注意:父级代理可能严重降低您的隐私安" "全度。在这里还可以设置 SOCKS 代理。" msgid "Debug GIF de-animation" @@ -130,8 +130,8 @@ msgid "" "be a good idea to let them know how to reach you, what you block and why you " "do that, your policies, etc." msgstr "" -"如果除了你还有其他用户使用 Privoxy 连接,最好让他们知道如何联系你,你屏蔽什" -"么,你为什么这样做,你的政策等等。" +"如果除了您还有其他用户使用 Privoxy 连接,最好让他们知道如何联系您,您屏蔽什" +"么,您为什么这样做,您的政策等等。" msgid "Invalid email address" msgstr "邮箱地址无效" diff --git a/package/luci/applications/luci-app-qos/po/zh-cn/qos.po b/package/luci/applications/luci-app-qos/po/zh-cn/qos.po index 0a5cd6220c..db13826dc7 100644 --- a/package/luci/applications/luci-app-qos/po/zh-cn/qos.po +++ b/package/luci/applications/luci-app-qos/po/zh-cn/qos.po @@ -1,17 +1,20 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" "Project-Id-Version: LuCi Chinese Translation\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-25 22:10+0100\n" -"PO-Revision-Date: 2014-06-22 14:33+0200\n" -"Last-Translator: phantasm131 \n" -"Language-Team: QQ Group 75543259\n" +"PO-Revision-Date: 2017-10-29 14:58+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Pootle 2.0.6\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "Calculate overhead" msgstr "计算开销" @@ -29,7 +32,7 @@ msgid "Destination host" msgstr "目的主机" msgid "Download speed (kbit/s)" -msgstr "下载速度 (kbit/s)" +msgstr "下载速度(kbit/s)" msgid "Enable" msgstr "开启" @@ -53,7 +56,7 @@ msgid "QoS" msgstr "QoS" msgid "Quality of Service" -msgstr "QOS服务" +msgstr "服务质量(QoS)" msgid "Source host" msgstr "源主机" @@ -62,12 +65,14 @@ msgid "Target" msgstr "目标" msgid "Upload speed (kbit/s)" -msgstr "上传速度 (kbit/s)" +msgstr "上传速度(kbit/s)" msgid "" "With QoS you can prioritize " "network traffic selected by addresses, ports or services." -msgstr "根据网络地址、端口或服务,给流量数据包排序。" +msgstr "" +"使用 QoS,根据网络地址、端口或服" +"务,为流量数据包排序。" msgid "all" msgstr "全部" diff --git a/package/luci/applications/luci-app-qos/po/zh-tw/qos.po b/package/luci/applications/luci-app-qos/po/zh-tw/qos.po index a011e9ca9a..1197e8a7d5 100644 --- a/package/luci/applications/luci-app-qos/po/zh-tw/qos.po +++ b/package/luci/applications/luci-app-qos/po/zh-tw/qos.po @@ -1,106 +1,111 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"PO-Revision-Date: 2014-05-21 10:36+0200\n" -"Last-Translator: omnistack \n" -"Language-Team: none\n" +"Project-Id-Version: LuCi Chinese Translation\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-03-25 22:10+0100\n" +"PO-Revision-Date: 2017-10-29 15:00+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Pootle 2.0.6\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "Calculate overhead" -msgstr "流量計算" +msgstr "計算開銷" msgid "Classification Rules" msgstr "分類規則" msgid "Classification group" -msgstr "分組" +msgstr "分類組" msgid "Comment" -msgstr "" +msgstr "註解" msgid "Destination host" msgstr "目的主機" msgid "Download speed (kbit/s)" -msgstr "下載速度(kbit/s)" +msgstr "下載速度(kbit/s)" msgid "Enable" -msgstr "啓用" +msgstr "開啟" msgid "Half-duplex" msgstr "半雙工" msgid "Interfaces" -msgstr "界面" +msgstr "介面" msgid "Number of bytes" -msgstr "位元數" +msgstr "位元組數" msgid "Ports" -msgstr "埠號" +msgstr "埠" msgid "Protocol" -msgstr "協定" +msgstr "協議" msgid "QoS" -msgstr "先進先出頻寬管理" +msgstr "QoS" msgid "Quality of Service" -msgstr "連線品質服務" +msgstr "服務品質(QoS)" msgid "Source host" -msgstr "來源主機" +msgstr "源主機" msgid "Target" -msgstr "目的地" +msgstr "目標" msgid "Upload speed (kbit/s)" -msgstr "上傳速度(kbit/s)" +msgstr "上傳速度(kbit/s)" msgid "" "With QoS you can prioritize " "network traffic selected by addresses, ports or services." msgstr "" -"有了 QoS 你可以用位址、埠號或者服務" -"來排優先權." +"使用 QoS,根據網路位址、埠或服務," +"為流量資料包排序。" msgid "all" -msgstr "通用優先權" +msgstr "全部" msgid "default" -msgstr "預設值" +msgstr "預設" msgid "express" -msgstr "高優先權" +msgstr "高" msgid "low" -msgstr "低優先權" +msgstr "低" msgid "normal" -msgstr "一般優先權" +msgstr "普通" msgid "priority" -msgstr "優先權" +msgstr "最高" #~ msgid "Service" #~ msgstr "服務" #~ msgid "Downlink" -#~ msgstr "下載" +#~ msgstr "下行" #~ msgid "Internet Connection" -#~ msgstr "網際網路連線" +#~ msgstr "Internet連線" #~ msgid "Uplink" -#~ msgstr "上傳" +#~ msgstr "上行" #~ msgid "allf" -#~ msgstr "獨一無二" +#~ msgstr "全部" #~ msgid "qos_connbytes" -#~ msgstr "QoS連線位元數" +#~ msgstr "Qos連線位元組數" diff --git a/package/luci/applications/luci-app-radicale/po/pt-br/radicale.po b/package/luci/applications/luci-app-radicale/po/pt-br/radicale.po index 67bf586908..17417fa499 100644 --- a/package/luci/applications/luci-app-radicale/po/pt-br/radicale.po +++ b/package/luci/applications/luci-app-radicale/po/pt-br/radicale.po @@ -14,11 +14,15 @@ msgstr "" msgid "" "'AUTO' selects the highest protocol version that client and server support." -msgstr "'AUTO' seleciona a versão mais alto protocolo que o cliente e o servidor suportar." +msgstr "" +"'AUTO' seleciona a versão mais alto protocolo que o cliente e o servidor " +"suportar." msgid "" "'Hostname:Port' or 'IPv4:Port' or '[IPv6]:Port' Radicale should listen on" -msgstr "'NomeDoEquipamento:porta' ou 'IPv4:Porta' ou '[IPv6]:Porta' em que o Radicale deve escutar" +msgstr "" +"'NomeDoEquipamento:porta' ou 'IPv4:Porta' ou '[IPv6]:Porta' em que o " +"Radicale deve escutar" msgid "AUTO" msgstr "AUTO" @@ -48,7 +52,9 @@ msgstr "Autenticação" msgid "" "Authentication login is matched against the 'user' key, and collection's " "path is matched against the 'collection' key." -msgstr "O nome do usuário na autenticação é comparado com a chave do 'user', e o caminho da coleção é comparado com a chave 'coleção'." +msgstr "" +"O nome do usuário na autenticação é comparado com a chave do 'user', e o " +"caminho da coleção é comparado com a chave 'coleção'." msgid "Authentication method" msgstr "Método de autenticação" @@ -68,7 +74,9 @@ msgstr "CalDAV/CardDAV" msgid "" "Calendars and address books are available for both local and remote access, " "possibly limited through authentication policies." -msgstr "Agendas e contados estão disponíveis tanto para acesso local como remoto, possivelmente limitado através das políticas de autenticação." +msgstr "" +"Agendas e contados estão disponíveis tanto para acesso local como remoto, " +"possivelmente limitado através das políticas de autenticação." msgid "Certificate file" msgstr "Arquivo do certificado" @@ -76,7 +84,9 @@ msgstr "Arquivo do certificado" msgid "" "Change here the encoding Radicale will use instead of 'UTF-8' for responses " "to the client and/or to store data inside collections." -msgstr "Mude aqui a codificação que o Radicale usará em vez de 'UTF-8' para respostas a clientes ou para armazenar dados dentro das coleções." +msgstr "" +"Mude aqui a codificação que o Radicale usará em vez de 'UTF-8' para " +"respostas a clientes ou para armazenar dados dentro das coleções." msgid "Ciphers" msgstr "Cifras" @@ -95,7 +105,11 @@ msgid "" "Cross-origin resource sharing (CORS) is a mechanism that allows restricted " "resources (e.g. fonts, JavaScript, etc.) on a web page to be requested from " "another domain outside the domain from which the resource originated." -msgstr "O compartilhamento de recursos de origem cruzada (CORS) é um mecanismo que permite que os recursos de acesso restrito (por exemplo, fontes, JavaScript, etc.) em uma página web ser solicitado de outro domínio fora do domínio a partir do qual o recurso foi originado." +msgstr "" +"O compartilhamento de recursos de origem cruzada (CORS) é um mecanismo que " +"permite que os recursos de acesso restrito (por exemplo, fontes, JavaScript, " +"etc.) em uma página web ser solicitado de outro domínio fora do domínio a " +"partir do qual o recurso foi originado." msgid "Custom" msgstr "Personalizadas" @@ -108,7 +122,9 @@ msgid "Debug" msgstr "Depuração" msgid "Delay (in seconds) during system boot before Radicale start" -msgstr "Atraso (em segundos) durante a inicialização do sistema antes do Radicale iniciar" +msgstr "" +"Atraso (em segundos) durante a inicialização do sistema antes do Radicale " +"iniciar" #, fuzzy msgid "Directory" @@ -131,7 +147,9 @@ msgstr "Ativar HTTPS" msgid "" "Enable/Disable auto-start of Radicale on system start-up and interface events" -msgstr "Ativar/Desativar iniciação automática do Radicale na iniciação do sistema e em eventos de interface" +msgstr "" +"Ativar/Desativar iniciação automática do Radicale na iniciação do sistema e " +"em eventos de interface" msgid "Encoding" msgstr "Codificação" @@ -164,7 +182,9 @@ msgstr "Sistema de arquivos" msgid "" "For example, for the 'user' key, '.+' means 'authenticated user' and '.*' " "means 'anybody' (including anonymous users)." -msgstr "Por exemplo, para a chave 'user', '.+' Significa 'usuário autenticado' e '.*' Significa 'qualquer um' (incluindo usuários anônimos)." +msgstr "" +"Por exemplo, para a chave 'user', '.+' Significa 'usuário autenticado' e '." +"*' Significa 'qualquer um' (incluindo usuários anônimos)." msgid "Full access for Owner only" msgstr "Acesso completo somente para o proprietário" @@ -228,7 +248,8 @@ msgid "Number of backup files of log to create." msgstr "Número de backups dos arquivos de registros(log) a serem criados." msgid "OPTIONAL: See python's ssl module for available ciphers" -msgstr "Opcional: veja o módulo SSL do python para conhecer as cifras disponíveis" +msgstr "" +"Opcional: veja o módulo SSL do python para conhecer as cifras disponíveis" msgid "One or more missing/invalid fields on tab" msgstr "Um ou campos inválidos/ausentes na aba" @@ -242,7 +263,9 @@ msgstr "O caminho/arquivo é necessário!" msgid "" "Place here the 'user:password' pairs for your users which should have access " "to Radicale." -msgstr "Coloque aqui os pares 'usuário:senha' para os seus usuários que devem ter acesso a Radicale." +msgstr "" +"Coloque aqui os pares 'usuário:senha' para os seus usuários que devem ter " +"acesso a Radicale." msgid "Please install current version !" msgstr "Por favor, instale a versão atual!" @@ -263,7 +286,9 @@ msgid "Radicale CalDAV/CardDAV Server" msgstr "Radicale Servidor CalDAV/CardDAV" msgid "Radicale uses '/etc/radicale/rights' as regexp-based file." -msgstr "Radicale usa o '/etc/radicale/rights' como arquivo baseado em expressão regular." +msgstr "" +"Radicale usa o '/etc/radicale/rights' como arquivo baseado em expressão " +"regular." msgid "Radicale uses '/etc/radicale/users' as htpasswd file." msgstr "Radicale usa o '/etc/radicale/users' como o arquivo htpasswd." @@ -307,7 +332,9 @@ msgid "Server" msgstr "Servidor" msgid "Setting this parameter to '0' will disable rotation of log-file." -msgstr "Definindo este parâmetro para '0' irá desativar a rotação dos arquivos de registros(log)." +msgstr "" +"Definindo este parâmetro para '0' irá desativar a rotação dos arquivos de " +"registros(log)." msgid "Software package '%s' is not installed." msgstr "O pacote de software '%s' não está instalado." @@ -349,18 +376,23 @@ msgstr "Sistema" msgid "" "The Radicale Project is a complete CalDAV (calendar) and CardDAV (contact) " "server solution." -msgstr "O Projeto Radicale é uma solução completa de CalDAV (agenda) e CardDAV (contatos)." +msgstr "" +"O Projeto Radicale é uma solução completa de CalDAV (agenda) e CardDAV " +"(contatos)." msgid "" "They can be viewed and edited by calendar and contact clients on mobile " "phones or computers." -msgstr "Eles podem ser visualizados e editados pelos clientes de agenda e de contatos em telefones celulares ou computadores." +msgstr "" +"Eles podem ser visualizados e editados pelos clientes de agenda e de " +"contatos em telefones celulares ou computadores." msgid "To edit the file follow this link!" msgstr "Para editar o arquivo, siga este link!" msgid "To view latest log file follow this link!" -msgstr "Para visualizar mais recente arquivo de registros(log), siga este link!" +msgstr "" +"Para visualizar mais recente arquivo de registros(log), siga este link!" msgid "Value is not a number" msgstr "O valor não é um número" @@ -384,7 +416,9 @@ msgstr "Informação da Versão" msgid "" "WARNING: Only 'File-system' is documented and tested by Radicale development" -msgstr "AVISO: Apenas 'Sistema de Arquivos "está documentado e testado pelo desenvolvimento do Radicale" +msgstr "" +"AVISO: Apenas 'Sistema de Arquivos está documentado e testado pelo " +"desenvolvimento do Radicale" #, fuzzy msgid "Warning" @@ -393,12 +427,16 @@ msgstr "Alerta" msgid "" "You can also get groups from the user regex in the collection with {0}, {1}, " "etc." -msgstr "Você também pode obter grupos a partir da expressão regular do usuário na coleção com {0}, {1} , etc." +msgstr "" +"Você também pode obter grupos a partir da expressão regular do usuário na " +"coleção com {0}, {1} , etc." msgid "" "You can use Python's ConfigParser interpolation values %(login)s and " "%(path)s." -msgstr "Você pode usar a interpolação de valores %(login)s e %(path)s do ConfigParser do Python." +msgstr "" +"Você pode usar a interpolação de valores %(login)s e %(path)s do " +"ConfigParser do Python." msgid "crypt" msgstr "cifrar" @@ -429,4 +467,3 @@ msgstr "necessário" msgid "salted SHA-1" msgstr "SHA-1 com salto" - diff --git a/package/luci/applications/luci-app-radvd/po/zh-cn/radvd.po b/package/luci/applications/luci-app-radvd/po/zh-cn/radvd.po index f3dae7fbc7..9cb3a31b94 100644 --- a/package/luci/applications/luci-app-radvd/po/zh-cn/radvd.po +++ b/package/luci/applications/luci-app-radvd/po/zh-cn/radvd.po @@ -1,19 +1,22 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2014-07-13 16:23+0200\n" -"Last-Translator: qiuchengxuan \n" -"Language-Team: QQ Group 75543259 \n" +"PO-Revision-Date: 2017-10-29 15:24+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Pootle 2.0.6\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "6to4 interface" -msgstr "IPv6到IPv4的接口" +msgstr "6to4 接口" msgid "Address" msgstr "地址" @@ -25,77 +28,79 @@ msgid "Advanced" msgstr "进阶选项" msgid "Advertise Home Agent flag" -msgstr "广播本地中继标识" +msgstr "宣告本地代理标识" msgid "Advertise router address" -msgstr "广播路由地址" +msgstr "宣告路由地址" msgid "Advertised Domain Suffixes" -msgstr "区域广播后缀" +msgstr "宣告的域后缀" msgid "" "Advertised IPv6 RDNSS. If empty, the current IPv6 address of the interface " "is used" -msgstr "IPv6 Recursive DNS服务器(RDNSS)地址。若为空,则为当前IPv6地址" +msgstr "宣告的 IPv6 RDNSS 地址。若为空,则为当前 IPv6 地址" msgid "Advertised IPv6 prefixes" -msgstr "IPV6广播前缀群" +msgstr "宣告的 IPv6 前缀群" msgid "" "Advertised IPv6 prefixes. If empty, the current interface prefix is used" -msgstr "IPv6广播前缀群。如果为空,将使用当前接口的前缀" +msgstr "宣告的 IPv6 前缀群。若为空,将使用当前接口的前缀" msgid "Advertises Mobile IPv6 Home Agent capability (RFC3775)" -msgstr "广播移动IPv6本地代理功能(RFC3775" +msgstr "宣告移动 IPv6 本地代理功能(RFC3775)" msgid "Advertises Mobile Router registration capability (NEMO Basic)" -msgstr "广播移动路由器注册功能(NEMO基本)" +msgstr "宣告移动路由器注册功能(NEMO 基本)" msgid "" "Advertises assumed reachability time in milliseconds of neighbours in the RA " "if specified. 0 disables reachability advertisements" -msgstr "路由器公告报文中宣告估算的邻居可达时间(毫秒)。0代表禁用可达性宣告。" +msgstr "在 RA 中宣告估算的邻居可达时间(毫秒)。0 禁用可达性宣告" msgid "" "Advertises the default Hop Count value for outgoing unicast packets in the " "RA. 0 disables hopcount advertisements" -msgstr "路由器公告报文中广播外发单播数据包的缺省跳数值。 0禁用广播跳数" +msgstr "在 RA 中宣告外发单播数据包的默认跳数值。0 禁用跳数宣告" msgid "Advertises the default router preference" -msgstr "发布缺省路由设置" +msgstr "宣告默认路由设置" msgid "" "Advertises the given link MTU in the RA if specified. 0 disables MTU " "advertisements" -msgstr "路由器公告报文中宣告链路MTU。0代表禁用MTU宣告" +msgstr "在 RA 中宣告给定的链路 MTU。0 禁用 MTU 宣告" msgid "" "Advertises the length of time in seconds that addresses generated from the " "prefix via stateless address autoconfiguration remain preferred." msgstr "" +"宣告时间长度(秒),对通过无状态地址自动配置从前缀生成的地址,维持为首选地" +"址。" msgid "" "Advertises the length of time in seconds that the prefix is valid for the " "purpose of on-link determination." -msgstr "" +msgstr "宣告前缀对 on-link 决定有效的时间长度(秒)。" msgid "" "Advertises the lifetime of the default router in seconds. 0 indicates that " "the node is no default router" -msgstr "声明默认路由器的生存时间(单位为秒)。0代表结点没有默认路由" +msgstr "宣告默认路由器的生存时间(秒)。0 代表结点没有默认路由" msgid "" "Advertises the time in seconds the router is offering Mobile IPv6 Home Agent " "services" -msgstr "" +msgstr "宣告路由器提供移动 IPv6 本地代理服务的时间(秒)" msgid "" "Advertises wait time in milliseconds between Neighbor Solicitation messages " "in the RA if specified. 0 disables retransmit advertisements" -msgstr "" +msgstr "宣告 RA 中邻居请求消息间的等待时间(毫秒)。0 禁用宣告重传" msgid "Advertising" -msgstr "" +msgstr "宣告" msgid "Autonomous" msgstr "自治的" @@ -110,10 +115,10 @@ msgid "Current hop limit" msgstr "当前跳数限制" msgid "DNSSL" -msgstr "DNS搜索列表" +msgstr "DNSSL" msgid "DNSSL Configuration" -msgstr "DNS搜索列表设置" +msgstr "DNSSL 设置" msgid "Default lifetime" msgstr "默认生存时限" @@ -125,10 +130,10 @@ msgid "Enable" msgstr "启用" msgid "Enable advertisements" -msgstr "启用广播" +msgstr "启用宣告" msgid "Enables router advertisements and solicitations" -msgstr "激活路由广播和请求" +msgstr "激活路由宣告和请求" msgid "" "Enables the additional stateful administered autoconfiguration protocol " @@ -138,25 +143,25 @@ msgstr "使能附加的基于状态管理的自动配置协议(RFC2462)" msgid "" "Enables the autoconfiguration of additional, non address information " "(RFC2462)" -msgstr "启用自动配置,不包括地址信息(RFC2462)" +msgstr "启用自动配置,不包括地址信息(RFC2462)" msgid "General" msgstr "概况" msgid "Home Agent information" -msgstr "本地中继信息" +msgstr "本地代理信息" msgid "Home Agent lifetime" -msgstr "本地中继有效期" +msgstr "本地代理有效期" msgid "Home Agent preference" -msgstr "本地中继优先权" +msgstr "本地代理优先权" msgid "Include Home Agent Information in the RA" -msgstr "路由器公告报文中包含本地中继信息" +msgstr "路由器公告报文中包含本地代理信息" msgid "Include Mobile IPv6 Advertisement Interval option to RA" -msgstr "路由器公告报文中包含移动IPV6广播间隔设置" +msgstr "路由器公告报文中包含移动 IPv6 宣告间隔设置" msgid "Includes the link-layer address of the outgoing interface in the RA" msgstr "路由器公告报文中包含出接口的链路层地址" @@ -164,12 +169,12 @@ msgstr "路由器公告报文中包含出接口的链路层地址" msgid "" "Indicates that the address of interface is sent instead of network prefix, " "as is required by Mobile IPv6" -msgstr "表明使用接口的地址发送而非网络前缀,移动IPv6需要" +msgstr "表明使用接口的地址发送而非网络前缀,移动 IPv6 需要" msgid "" "Indicates that the underlying link is not broadcast capable, prevents " "unsolicited advertisements from being sent" -msgstr "表明潜在的链路并不具有广播能力,避免主动触发的宣告报文发出" +msgstr "表明潜在的链路并不具有宣告能力,避免主动触发的宣告报文发出" msgid "" "Indicates that this prefix can be used for autonomous address configuration " @@ -178,7 +183,7 @@ msgstr "表明此前缀能够用于匿名地址配置(RFC4862)" msgid "" "Indicates that this prefix can be used for on-link determination (RFC4861)" -msgstr "表明此前缀能够用于on-link决定(RFC481)" +msgstr "表明此前缀能够用于 on-link 决定(RFC481)" msgid "Interface" msgstr "接口" @@ -196,31 +201,31 @@ msgid "Lifetime" msgstr "有效期" msgid "Link MTU" -msgstr "连接MTU" +msgstr "连接 MTU" msgid "Managed flag" -msgstr "M标识" +msgstr "M 标识" msgid "Max. interval" msgstr "最大间隔" msgid "Maximum advertisement interval" -msgstr "最大广播间隔" +msgstr "最大宣告间隔" msgid "Minimum advertisement delay" -msgstr "最小广播延时" +msgstr "最小宣告延时" msgid "Minimum advertisement interval" -msgstr "最小广播间隔" +msgstr "最小宣告间隔" msgid "Mobile IPv6" -msgstr "移动IPV6" +msgstr "移动 IPv6" msgid "Mobile IPv6 interval option" -msgstr "移动IPV6间隔选项" +msgstr "移动 IPv6 间隔选项" msgid "Mobile IPv6 router registration" -msgstr "移动IPV6路由注册" +msgstr "移动 IPv6 路由注册" msgid "Multicast" msgstr "组播传输" @@ -232,7 +237,7 @@ msgid "On-link determination" msgstr "已连接的目标" msgid "Preference" -msgstr "优先权" +msgstr "首选项" msgid "Preferred lifetime" msgstr "期望的生存时间" @@ -253,27 +258,28 @@ msgid "RDNSS Configuration" msgstr "邻居发现服务器设置" msgid "Radvd" -msgstr "" +msgstr "Radvd" msgid "Radvd - DNSSL" -msgstr "RADVD-DNS搜索列表" +msgstr "Radvd - DNSSL" msgid "Radvd - Interface %q" -msgstr "" +msgstr "Radvd - 接口 %q" msgid "Radvd - Prefix" -msgstr "RADVD-前缀" +msgstr "Radvd - 前缀" msgid "Radvd - RDNSS" -msgstr "RADVD-邻居发现服务器" +msgstr "Radvd - RDNSS" msgid "Radvd - Route" -msgstr "RADVD-路由" +msgstr "Radvd - 路由" msgid "" "Radvd is a router advertisement daemon for IPv6. It listens to router " "solicitations and sends router advertisements as described in RFC 4861." -msgstr "RADVD是一个IPV6路由公告软件,按照RFC4861监听路由请求和发送路由公告。" +msgstr "" +"Radvd 是一个 IPv6 路由公告软件,按照 RFC4861 监听路由请求和发送路由公告。" msgid "Reachable time" msgstr "可达延时" @@ -289,7 +295,7 @@ msgid "Route Configuration" msgstr "路由设置" msgid "Routes" -msgstr "" +msgstr "路由" msgid "Source link-layer address" msgstr "源链路层地址" @@ -299,9 +305,11 @@ msgid "" "interfaces public IPv4 address is combined with 2002::/3 and the value of " "the prefix option" msgstr "" +"指定从其导出 6to4 前缀的逻辑接口名称。接口的公共 IPv4 地址将与 2002::/3 及前" +"缀选项的值相结合" msgid "Specifies the lifetime associated with the route in seconds." -msgstr "设定路由关联的生存时间,单位为秒" +msgstr "设定路由关联的生存时间(秒)" msgid "Specifies the logical interface name this section belongs to" msgstr "说明这个物理接口连接到哪个网络" @@ -309,12 +317,12 @@ msgstr "说明这个物理接口连接到哪个网络" msgid "" "Specifies the maximum duration how long the DNSSL entries are used for name " "resolution." -msgstr "设定DNSSL表项名称解析的最长时间间隔" +msgstr "设定 DNSSL 表项名称解析的最长时间间隔" msgid "" "Specifies the maximum duration how long the RDNSS entries are used for name " "resolution." -msgstr "设定RDNSS表项名称解析的最长时间间隔" +msgstr "设定 RDNSS 表项名称解析的最长时间间隔" msgid "Specifies the preference associated with the default router" msgstr "设定关联的默认路由的配置" @@ -325,23 +333,23 @@ msgstr "后缀" msgid "" "The maximum time allowed between sending unsolicited multicast router " "advertisements from the interface, in seconds" -msgstr "允许接口发送组播路由宣告报文的最大时间间隔,单位为秒" +msgstr "允许接口发送组播路由宣告报文的最大时间间隔(秒)" msgid "" "The minimum time allowed between sending multicast router advertisements " "from the interface, in seconds" -msgstr "允许接口发送组播路由宣告报文的最小时间间隔,单位为秒" +msgstr "允许接口发送组播路由宣告报文的最小时间间隔(秒)" msgid "" "The minimum time allowed between sending unsolicited multicast router " "advertisements from the interface, in seconds" -msgstr "允许接口发送主动触发组播路由宣告报文的最小时间间隔,单位为秒" +msgstr "允许接口发送主动触发组播路由宣告报文的最小时间间隔(秒)" msgid "The preference for the Home Agent sending this RA" -msgstr "" +msgstr "发送此 RA 的本地代理的首选项" msgid "Timing" -msgstr "" +msgstr "计时" msgid "Unicast only" msgstr "单播" @@ -362,7 +370,7 @@ msgid "low" msgstr "低" msgid "medium" -msgstr "中等" +msgstr "中" msgid "no" msgstr "否" diff --git a/package/luci/applications/luci-app-radvd/po/zh-tw/radvd.po b/package/luci/applications/luci-app-radvd/po/zh-tw/radvd.po index aed76c5274..6de830979e 100644 --- a/package/luci/applications/luci-app-radvd/po/zh-tw/radvd.po +++ b/package/luci/applications/luci-app-radvd/po/zh-tw/radvd.po @@ -1,366 +1,399 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: PACKAGE VERSION\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2017-10-29 15:24+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" +"Language: zh_TW\n" "MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "6to4 interface" -msgstr "" +msgstr "6to4 介面" msgid "Address" -msgstr "" +msgstr "位址" msgid "Addresses" -msgstr "" +msgstr "位址" msgid "Advanced" -msgstr "" +msgstr "進階選項" msgid "Advertise Home Agent flag" -msgstr "" +msgstr "宣告本地代理標識" msgid "Advertise router address" -msgstr "" +msgstr "宣告路由位址" msgid "Advertised Domain Suffixes" -msgstr "" +msgstr "宣告的域字尾" msgid "" "Advertised IPv6 RDNSS. If empty, the current IPv6 address of the interface " "is used" -msgstr "" +msgstr "宣告的 IPv6 RDNSS 位址。若為空,則為當前 IPv6 位址" msgid "Advertised IPv6 prefixes" -msgstr "" +msgstr "宣告的 IPv6 字首群" msgid "" "Advertised IPv6 prefixes. If empty, the current interface prefix is used" -msgstr "" +msgstr "宣告的 IPv6 字首群。若為空,將使用當前介面的字首" msgid "Advertises Mobile IPv6 Home Agent capability (RFC3775)" -msgstr "" +msgstr "宣告移動 IPv6 本地代理功能(RFC3775)" msgid "Advertises Mobile Router registration capability (NEMO Basic)" -msgstr "" +msgstr "宣告移動路由器註冊功能(NEMO 基本)" msgid "" "Advertises assumed reachability time in milliseconds of neighbours in the RA " "if specified. 0 disables reachability advertisements" -msgstr "" +msgstr "在 RA 中宣告估算的鄰居可達時間(毫秒)。0 禁用可達性宣告" msgid "" "Advertises the default Hop Count value for outgoing unicast packets in the " "RA. 0 disables hopcount advertisements" -msgstr "" +msgstr "在 RA 中宣告外發單播資料包的預設跳數值。0 禁用跳數宣告" msgid "Advertises the default router preference" -msgstr "" +msgstr "宣告預設路由設定" msgid "" "Advertises the given link MTU in the RA if specified. 0 disables MTU " "advertisements" -msgstr "" +msgstr "在 RA 中宣告給定的鏈路 MTU。0 禁用 MTU 宣告" msgid "" "Advertises the length of time in seconds that addresses generated from the " "prefix via stateless address autoconfiguration remain preferred." msgstr "" +"宣告時間長度(秒),對通過無狀態位址自動配置從字首生成的位址,維持為首選地" +"址。" msgid "" "Advertises the length of time in seconds that the prefix is valid for the " "purpose of on-link determination." -msgstr "" +msgstr "宣告字首對 on-link 決定有效的時間長度(秒)。" msgid "" "Advertises the lifetime of the default router in seconds. 0 indicates that " "the node is no default router" -msgstr "" +msgstr "宣告預設路由器的生存時間(秒)。0 代表結點沒有預設路由" msgid "" "Advertises the time in seconds the router is offering Mobile IPv6 Home Agent " "services" -msgstr "" +msgstr "宣告路由器提供移動 IPv6 本地代理服務的時間(秒)" msgid "" "Advertises wait time in milliseconds between Neighbor Solicitation messages " "in the RA if specified. 0 disables retransmit advertisements" -msgstr "" +msgstr "宣告 RA 中鄰居請求訊息間的等待時間(毫秒)。0 禁用宣告重傳" msgid "Advertising" -msgstr "" +msgstr "宣告" msgid "Autonomous" -msgstr "" +msgstr "自治的" msgid "Clients" -msgstr "" +msgstr "客戶端" msgid "Configuration flag" -msgstr "" +msgstr "設定標識" msgid "Current hop limit" -msgstr "" +msgstr "當前跳數限制" msgid "DNSSL" -msgstr "" +msgstr "DNSSL" msgid "DNSSL Configuration" -msgstr "" +msgstr "DNSSL 設定" msgid "Default lifetime" -msgstr "" +msgstr "預設生存時限" msgid "Default preference" -msgstr "" +msgstr "預設優先順序" msgid "Enable" -msgstr "" +msgstr "啟用" msgid "Enable advertisements" -msgstr "" +msgstr "啟用宣告" msgid "Enables router advertisements and solicitations" -msgstr "" +msgstr "啟用路由宣告和請求" msgid "" "Enables the additional stateful administered autoconfiguration protocol " "(RFC2462)" -msgstr "" +msgstr "使能附加的基於狀態管理的自動配置協議(RFC2462)" msgid "" "Enables the autoconfiguration of additional, non address information " "(RFC2462)" -msgstr "" +msgstr "啟用自動配置,不包括位址資訊(RFC2462)" msgid "General" -msgstr "" +msgstr "概況" msgid "Home Agent information" -msgstr "" +msgstr "本地代理資訊" msgid "Home Agent lifetime" -msgstr "" +msgstr "本地代理有效期" msgid "Home Agent preference" -msgstr "" +msgstr "本地代理優先權" msgid "Include Home Agent Information in the RA" -msgstr "" +msgstr "路由器公告報文中包含本地代理資訊" msgid "Include Mobile IPv6 Advertisement Interval option to RA" -msgstr "" +msgstr "路由器公告報文中包含移動 IPv6 宣告間隔設定" msgid "Includes the link-layer address of the outgoing interface in the RA" -msgstr "" +msgstr "路由器公告報文中包含出介面的鏈路層位址" msgid "" "Indicates that the address of interface is sent instead of network prefix, " "as is required by Mobile IPv6" -msgstr "" +msgstr "表明使用介面的位址傳送而非網路字首,移動 IPv6 需要" msgid "" "Indicates that the underlying link is not broadcast capable, prevents " "unsolicited advertisements from being sent" -msgstr "" +msgstr "表明潛在的鏈路並不具有宣告能力,避免主動觸發的宣告報文發出" msgid "" "Indicates that this prefix can be used for autonomous address configuration " "(RFC4862)" -msgstr "" +msgstr "表明此字首能夠用於匿名位址配置(RFC4862)" msgid "" "Indicates that this prefix can be used for on-link determination (RFC4861)" -msgstr "" +msgstr "表明此字首能夠用於 on-link 決定(RFC481)" msgid "Interface" -msgstr "" +msgstr "介面" msgid "Interface Configuration" -msgstr "" +msgstr "介面設定" msgid "Interface required" -msgstr "" +msgstr "介面必要項" msgid "Interfaces" -msgstr "" +msgstr "介面" msgid "Lifetime" -msgstr "" +msgstr "有效期" msgid "Link MTU" -msgstr "" +msgstr "連線 MTU" msgid "Managed flag" -msgstr "" +msgstr "M 標識" msgid "Max. interval" -msgstr "" +msgstr "最大間隔" msgid "Maximum advertisement interval" -msgstr "" +msgstr "最大宣告間隔" msgid "Minimum advertisement delay" -msgstr "" +msgstr "最小宣告延時" msgid "Minimum advertisement interval" -msgstr "" +msgstr "最小宣告間隔" msgid "Mobile IPv6" -msgstr "" +msgstr "移動 IPv6" msgid "Mobile IPv6 interval option" -msgstr "" +msgstr "移動 IPv6 間隔選項" msgid "Mobile IPv6 router registration" -msgstr "" +msgstr "移動 IPv6 路由註冊" msgid "Multicast" -msgstr "" +msgstr "組播傳輸" msgid "On-link" -msgstr "" +msgstr "已連線的" msgid "On-link determination" -msgstr "" +msgstr "已連線的目標" msgid "Preference" -msgstr "" +msgstr "首選項" msgid "Preferred lifetime" -msgstr "" +msgstr "期望的生存時間" msgid "Prefix" -msgstr "" +msgstr "字首" msgid "Prefix Configuration" -msgstr "" +msgstr "字首設定" msgid "Prefixes" -msgstr "" +msgstr "字首群" msgid "RDNSS" -msgstr "" +msgstr "鄰居發現伺服器" msgid "RDNSS Configuration" -msgstr "" +msgstr "鄰居發現伺服器設定" msgid "Radvd" -msgstr "" +msgstr "Radvd" msgid "Radvd - DNSSL" -msgstr "" +msgstr "Radvd - DNSSL" msgid "Radvd - Interface %q" -msgstr "" +msgstr "Radvd - 介面 %q" msgid "Radvd - Prefix" -msgstr "" +msgstr "Radvd - 字首" msgid "Radvd - RDNSS" -msgstr "" +msgstr "Radvd - RDNSS" msgid "Radvd - Route" -msgstr "" +msgstr "Radvd - 路由" msgid "" "Radvd is a router advertisement daemon for IPv6. It listens to router " "solicitations and sends router advertisements as described in RFC 4861." msgstr "" +"Radvd 是一個 IPv6 路由公告軟體,按照 RFC4861 監聽路由請求和傳送路由公告。" msgid "Reachable time" -msgstr "" +msgstr "可達延時" msgid "" "Restrict communication to specified clients, leave empty to use multicast" -msgstr "" +msgstr "限制特定會話,留空則使用組播" msgid "Retransmit timer" -msgstr "" +msgstr "中繼轉發計時器" msgid "Route Configuration" -msgstr "" +msgstr "路由設定" msgid "Routes" -msgstr "" +msgstr "路由" msgid "Source link-layer address" -msgstr "" +msgstr "源鏈路層位址" msgid "" "Specifies a logical interface name to derive a 6to4 prefix from. The " "interfaces public IPv4 address is combined with 2002::/3 and the value of " "the prefix option" msgstr "" +"指定從其匯出 6to4 字首的邏輯介面名稱。介面的公共 IPv4 位址將與 2002::/3 及前" +"綴選項的值相結合" msgid "Specifies the lifetime associated with the route in seconds." -msgstr "" +msgstr "設定路由關聯的生存時間(秒)" msgid "Specifies the logical interface name this section belongs to" -msgstr "" +msgstr "說明這個物理介面連線到哪個網路" msgid "" "Specifies the maximum duration how long the DNSSL entries are used for name " "resolution." -msgstr "" +msgstr "設定 DNSSL 表項名稱解析的最長時間間隔" msgid "" "Specifies the maximum duration how long the RDNSS entries are used for name " "resolution." -msgstr "" +msgstr "設定 RDNSS 表項名稱解析的最長時間間隔" msgid "Specifies the preference associated with the default router" -msgstr "" +msgstr "設定關聯的預設路由的配置" msgid "Suffix" -msgstr "" +msgstr "字尾" msgid "" "The maximum time allowed between sending unsolicited multicast router " "advertisements from the interface, in seconds" -msgstr "" +msgstr "允許介面傳送組播路由宣告報文的最大時間間隔(秒)" msgid "" "The minimum time allowed between sending multicast router advertisements " "from the interface, in seconds" -msgstr "" +msgstr "允許介面傳送組播路由宣告報文的最小時間間隔(秒)" msgid "" "The minimum time allowed between sending unsolicited multicast router " "advertisements from the interface, in seconds" -msgstr "" +msgstr "允許介面傳送主動觸發組播路由宣告報文的最小時間間隔(秒)" msgid "The preference for the Home Agent sending this RA" -msgstr "" +msgstr "傳送此 RA 的本地代理的首選項" msgid "Timing" -msgstr "" +msgstr "計時" msgid "Unicast only" -msgstr "" +msgstr "單播" msgid "Valid lifetime" -msgstr "" +msgstr "有效的生存時間" msgid "Validity time" -msgstr "" +msgstr "有效期" msgid "default" -msgstr "" +msgstr "預設" msgid "high" -msgstr "" +msgstr "高" msgid "low" -msgstr "" +msgstr "低" msgid "medium" -msgstr "" +msgstr "中" msgid "no" -msgstr "" +msgstr "否" msgid "yes" -msgstr "" +msgstr "是" + +#~ msgid "Advertised IPv6 prefix" +#~ msgstr "IPV6廣播字首" + +#~ msgid "" +#~ "Advertised IPv6 prefix. If empty, the current interface prefix is used" +#~ msgstr "IPV6廣播字首。若為空,則當前介面字首已被使用。" + +#~ msgid "Open" +#~ msgstr "開啟" + +#~ msgid "" +#~ "Specifies the maximum duration how long the DNSSL entries are used for " +#~ "name resolution. Use 0 to specify an infinite lifetime" +#~ msgstr "指定DNSSL解析域名的最長時間,0則為無限長" + +#~ msgid "" +#~ "Specifies the maximum duration how long the RDNSS entries are used for " +#~ "name resolution. Use 0 to specify an infinite lifetime" +#~ msgstr "指定RDNSS解析域名的最長時間,0則為無限長" diff --git a/package/luci/applications/luci-app-samba/po/zh-cn/samba.po b/package/luci/applications/luci-app-samba/po/zh-cn/samba.po index b6fd8f31da..ea9d0489fd 100644 --- a/package/luci/applications/luci-app-samba/po/zh-cn/samba.po +++ b/package/luci/applications/luci-app-samba/po/zh-cn/samba.po @@ -1,44 +1,47 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-06-10 03:40+0200\n" -"PO-Revision-Date: 2012-06-21 18:31+0200\n" -"Last-Translator: phantasm131 \n" -"Language-Team: QQ Group 75543259 \n" +"PO-Revision-Date: 2017-10-29 15:36+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Pootle 2.0.6\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "Allow guests" msgstr "允许匿名用户" msgid "Allow system users to reach their home directories via network shares" -msgstr "允许系统用户通过网络共享访问他们的主目录" +msgstr "允许系统用户通过网络共享访问他们的家目录" msgid "Allowed users" msgstr "允许用户" msgid "Browseable" -msgstr "" +msgstr "可浏览" msgid "Create mask" -msgstr "创建权限" +msgstr "创建权限掩码" msgid "Description" msgstr "描述" msgid "Directory mask" -msgstr "目录权限" +msgstr "目录权限掩码" msgid "Edit Template" msgstr "编辑模板" msgid "Edit the template that is used for generating the samba configuration." -msgstr "编辑用来生成samba设置的模板" +msgstr "编辑用来生成 samba 设置的模板" msgid "General Settings" msgstr "基本设置" @@ -47,10 +50,10 @@ msgid "Hostname" msgstr "主机名" msgid "Mask for new directories" -msgstr "新目录权限" +msgstr "新目录权限掩码" msgid "Mask for new files" -msgstr "新文件权限" +msgstr "新文件权限掩码" msgid "Name" msgstr "共享名" @@ -64,13 +67,13 @@ msgstr "目录" msgid "" "Please add directories to share. Each directory refers to a folder on a " "mounted device." -msgstr "" +msgstr "请添加要共享的目录。每个目录指到已挂载设备上的文件夹。" msgid "Read-only" msgstr "只读" msgid "Share home-directories" -msgstr "共享主目录" +msgstr "共享家目录" msgid "Shared Directories" msgstr "共享目录" @@ -81,8 +84,8 @@ msgid "" "('|') should not be changed. They get their values from the 'General " "Settings' tab." msgstr "" -"创建samba设置的 \"/etc/samba/smb.conf.template\" 文件的内容。被通道符|包围的" -"值可在基本设置中进行配置" +"这是将从其上生成 samba 配置的文件“/etc/samba/smb.conf.template”的内容。由管道" +"符(“|”)包围的值不应更改。它们将从“常规设置”标签中获取其值。" msgid "Workgroup" msgstr "工作组" diff --git a/package/luci/applications/luci-app-samba/po/zh-tw/samba.po b/package/luci/applications/luci-app-samba/po/zh-tw/samba.po index ed0dabb807..8461a60774 100644 --- a/package/luci/applications/luci-app-samba/po/zh-tw/samba.po +++ b/package/luci/applications/luci-app-samba/po/zh-tw/samba.po @@ -1,77 +1,82 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"PO-Revision-Date: 2013-08-07 15:43+0200\n" -"Last-Translator: Ethan \n" -"Language-Team: none\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-06-10 03:40+0200\n" +"PO-Revision-Date: 2017-10-29 15:36+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Pootle 2.0.6\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "Allow guests" msgstr "允許匿名使用者" msgid "Allow system users to reach their home directories via network shares" -msgstr "允許系統使用者透過網路分享家目錄" +msgstr "允許系統使用者通過網路共享訪問他們的家目錄" msgid "Allowed users" msgstr "允許使用者" msgid "Browseable" -msgstr "" +msgstr "可瀏覽" msgid "Create mask" -msgstr "建立權限" +msgstr "建立權限掩碼" msgid "Description" msgstr "描述" msgid "Directory mask" -msgstr "目錄權限" +msgstr "目錄權限掩碼" msgid "Edit Template" -msgstr "編輯樣版" +msgstr "編輯模板" msgid "Edit the template that is used for generating the samba configuration." -msgstr "編輯用來產生Samba設定的樣板" +msgstr "編輯用來生成 samba 設定的模板" msgid "General Settings" msgstr "基本設定" msgid "Hostname" -msgstr "主機名稱" +msgstr "主機名" msgid "Mask for new directories" -msgstr "新目錄權限" +msgstr "新目錄權限掩碼" msgid "Mask for new files" -msgstr "新檔案權限" +msgstr "新檔案權限掩碼" msgid "Name" -msgstr "共用名稱" +msgstr "共享名" msgid "Network Shares" -msgstr "網路分享" +msgstr "網路共享" msgid "Path" -msgstr "路徑" +msgstr "目錄" msgid "" "Please add directories to share. Each directory refers to a folder on a " "mounted device." -msgstr "" +msgstr "請新增要共享的目錄。每個目錄指到已掛載裝置上的資料夾。" msgid "Read-only" -msgstr "唯讀" +msgstr "只讀" msgid "Share home-directories" -msgstr "分享家目錄" +msgstr "共享家目錄" msgid "Shared Directories" -msgstr "分享目錄" +msgstr "共享目錄" msgid "" "This is the content of the file '/etc/samba/smb.conf.template' from which " @@ -79,8 +84,11 @@ msgid "" "('|') should not be changed. They get their values from the 'General " "Settings' tab." msgstr "" -"建立Samba設定的 \"/etc/samba/smb.conf.template\" 檔案內容。被('|')包圍的值可" -"以在基本設定中進行設定" +"這是將從其上生成 samba 配置的檔案“/etc/samba/smb.conf.template”的內容。由管道" +"符(“|”)包圍的值不應更改。它們將從“常規設定”標籤中獲取其值。" msgid "Workgroup" -msgstr "工作群組" +msgstr "工作組" + +#~ msgid "Physical Path" +#~ msgstr "物理路徑" diff --git a/package/luci/applications/luci-app-simple-adblock/po/sv/simple-adblock.po b/package/luci/applications/luci-app-simple-adblock/po/sv/simple-adblock.po new file mode 100644 index 0000000000..e95f95f02b --- /dev/null +++ b/package/luci/applications/luci-app-simple-adblock/po/sv/simple-adblock.po @@ -0,0 +1,80 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8\n" + +msgid "Blacklisted Domain URLs" +msgstr "Svartlistade domänadresser" + +msgid "Blacklisted Domains" +msgstr "Svartlistade domäner" + +msgid "Blacklisted Hosts URLs" +msgstr "Svartlistade värdadresser" + +msgid "Controls system log and console output verbosity" +msgstr "Kontrollerar systemloggar och detaljnivån för konsoll-utmatningen" + +msgid "Enable/start service" +msgstr "Aktivera/starta tjänsten" + +msgid "Force Router DNS" +msgstr "" + +msgid "Force Router DNS server to all local devices" +msgstr "" + +msgid "Forces Router DNS use on local devices, also known as DNS Hijacking" +msgstr "" + +msgid "Individual domains to be blacklisted" +msgstr "Individuella domäner som ska svartlistas" + +msgid "Individual domains to be whitelisted" +msgstr "Individulla domäner som ska svartlistas" + +msgid "LED to indicate status" +msgstr "LED för att indikera status" + +msgid "Let local devices use their own DNS servers if set" +msgstr "" + +msgid "Output Verbosity Setting" +msgstr "" + +msgid "Pick the LED not already used in" +msgstr "" + +msgid "Simple AdBlock" +msgstr "Simple AdBlock" + +msgid "Simple AdBlock Settings" +msgstr "Inställningar för Simple AdBlock" + +msgid "Some output" +msgstr "Viss utmatning" + +msgid "Suppress output" +msgstr "Förträng utmatning" + +msgid "System LED Configuration" +msgstr "" + +msgid "URLs to lists of domains to be blacklisted" +msgstr "" + +msgid "URLs to lists of domains to be whitelisted" +msgstr "" + +msgid "URLs to lists of hosts to be blacklisted" +msgstr "" + +msgid "Verbose output" +msgstr "Utförlig utmatning" + +msgid "Whitelisted Domain URLs" +msgstr "Vitlistade domänadresser" + +msgid "Whitelisted Domains" +msgstr "Vitlistade domäner" + +msgid "none" +msgstr "ingen" diff --git a/package/luci/applications/luci-app-splash/po/sv/splash.po b/package/luci/applications/luci-app-splash/po/sv/splash.po index 055c67b866..a5ebcb7efe 100644 --- a/package/luci/applications/luci-app-splash/po/sv/splash.po +++ b/package/luci/applications/luci-app-splash/po/sv/splash.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: PACKAGE VERSION\n" -"Last-Translator: Automatically generated\n" +"Last-Translator: Kristoffer Grundström \n" "Language-Team: none\n" "Language: sv\n" "MIME-Version: 1.0\n" @@ -45,6 +45,8 @@ msgstr "" msgid "" "Become an active member of this community and help by operating your own node" msgstr "" +"Bli en aktiv medlem av det här sällskapet och hjälp till genom att " +"tillhandahålla en egen nod" msgid "Blacklist" msgstr "Svartlista" diff --git a/package/luci/applications/luci-app-splash/po/zh-cn/splash.po b/package/luci/applications/luci-app-splash/po/zh-cn/splash.po index 439b774e6c..4ad7404701 100644 --- a/package/luci/applications/luci-app-splash/po/zh-cn/splash.po +++ b/package/luci/applications/luci-app-splash/po/zh-cn/splash.po @@ -51,7 +51,7 @@ msgstr "" # Something wwrong? msgid "" "Become an active member of this community and help by operating your own node" -msgstr "成为这个社区的一个活跃成员并且运营你自己的节点以帮助别人。" +msgstr "成为这个社区的一个活跃成员并且运营您自己的节点以帮助别人。" msgid "Blacklist" msgstr "黑名单" @@ -131,10 +131,10 @@ msgstr "IP地址" msgid "" "If you operate your own wifi equipment use channels different from ours." -msgstr "如果你操作你自有的wifi设备,使用与我们不同的频道" +msgstr "如果您操作您自有的wifi设备,使用与我们不同的频道" msgid "If you use this network on a regular basis we ask for your support:" -msgstr "如果你经常使用这个网络,我们需要你的支持" +msgstr "如果您经常使用这个网络,我们需要您的支持" msgid "Include your own text in the default splash" msgstr "" @@ -277,7 +277,7 @@ msgid "" msgstr "" msgid "Your bandwidth is limited to" -msgstr "你的带宽限制为" +msgstr "您的带宽限制为" msgid "blacklisted" msgstr "黑名单" diff --git a/package/luci/applications/luci-app-statistics/po/zh-cn/rrdtool.po b/package/luci/applications/luci-app-statistics/po/zh-cn/rrdtool.po index d55398ace7..eef7ba6122 100644 --- a/package/luci/applications/luci-app-statistics/po/zh-cn/rrdtool.po +++ b/package/luci/applications/luci-app-statistics/po/zh-cn/rrdtool.po @@ -1,17 +1,19 @@ # rrdtool.pot # generated from ./applications/luci-statistics/luasrc/i18n/rrdtool.en.lua +# Yangfl , 2017. +# msgid "" msgstr "" "Project-Id-Version: \n" -"PO-Revision-Date: 2017-04-15 21:41-0600\n" -"Last-Translator: liushuyu \n" -"Language-Team: none\n" +"PO-Revision-Date: 2017-10-29 15:39+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 2.0.1\n" +"X-Generator: Gtranslator 2.91.7\n" "POT-Creation-Date: \n" #. %H: Wireless - Signal Noise Ratio @@ -37,7 +39,7 @@ msgstr "信号强度" #. %H: Wireless - Signal Quality #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:5 msgid "stat_dg_title_wireless__signal_quality" -msgstr "%H: 无线 - 信号质量" +msgstr "%H:无线 - 信号质量" #. n #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:6 @@ -52,7 +54,7 @@ msgstr "信号质量" #. %H: ICMP Roundtrip Times #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:8 msgid "stat_dg_title_ping" -msgstr "%H: ICMP 往返时间" +msgstr "%H:ICMP 往返时间" #. ms #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:9 @@ -67,22 +69,22 @@ msgstr "%di" #. %H: Firewall - Processed Packets #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:11 msgid "stat_dg_title_iptables__ipt_packets" -msgstr "%H: 防火墙 - 已处理的数据包" +msgstr "%H:防火墙 - 已处理的数据包" #. Packets/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:12 msgid "stat_dg_label_iptables__ipt_packets" -msgstr "Packets/s" +msgstr "包/s" #. Chain \"%di\" #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:13 msgid "stat_ds_ipt_packets" -msgstr "Chain \\\"%di\\\"" +msgstr "链“%di”" #. %H: Netlink - Transfer on %pi #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:14 msgid "stat_dg_title_netlink__if_octets" -msgstr "%H: Netlink - %pi 上的数据传输" +msgstr "%H:Netlink - %pi 上的数据传输" #. Bytes/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:15 @@ -97,12 +99,12 @@ msgstr "字节 (%ds)" #. %H: Netlink - Packets on %pi #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:17 msgid "stat_dg_title_netlink__if_packets" -msgstr "%H: Netlink - %pi 的数据包" +msgstr "%H:Netlink - %pi 的数据包" #. Packets/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:18 msgid "stat_dg_label_netlink__if_packets" -msgstr "Packets/s" +msgstr "包/s" #. Processed (%ds) #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:19 @@ -122,12 +124,12 @@ msgstr "错误 (%ds)" #. %H: Netlink - Multicast on %pi #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:22 msgid "stat_dg_title_netlink__if_multicast" -msgstr "%H: Netlink - %pi 上的多播" +msgstr "%H:Netlink - %pi 上的多播" #. Packets/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:23 msgid "stat_dg_label_netlink__if_multicast" -msgstr "Packets/s" +msgstr "包/s" #. Packets #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:24 @@ -137,22 +139,22 @@ msgstr "数据包" #. %H: Netlink - Collisions on %pi #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:25 msgid "stat_dg_title_netlink__if_collisions" -msgstr "%H: Netlink - %pi 上的 Collisions" +msgstr "%H:Netlink - %pi 上的 Collisions" #. Collisions/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:26 msgid "stat_dg_label_netlink__if_collisions" -msgstr "Collisions/s" +msgstr "碰撞/s" #. Collisions #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:27 msgid "stat_ds_if_collisions" -msgstr "Collisions" +msgstr "碰撞" #. %H: Netlink - Errors on %pi #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:28 msgid "stat_dg_title_netlink__if_tx_errors" -msgstr "%H: Netlink - %pi 上发生的错误" +msgstr "%H:Netlink - %pi 上发生的错误" #. Errors/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:29 @@ -172,7 +174,7 @@ msgstr "%di" #. %H: Processes #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:32 msgid "stat_dg_title_processes" -msgstr "%H: 进程" +msgstr "%H:进程" #. Processes/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:33 @@ -187,7 +189,7 @@ msgstr "%di" #. %H: Process %pi - used cpu time #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:35 msgid "stat_dg_title_processes__ps_cputime" -msgstr "%H: 进程 %s - 占用的 CPU 时间" +msgstr "%H:进程 %s - 占用的 CPU 时间" #. Jiffies #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:36 @@ -207,7 +209,7 @@ msgstr "用户" #. %H: Process %pi - threads and processes #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:39 msgid "stat_dg_title_processes__ps_count" -msgstr "%H: 进程 %pi - 进程与线程" +msgstr "%H:进程 %pi - 进程与线程" #. Count #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:40 @@ -222,7 +224,7 @@ msgstr "%ds" #. %H: Process %pi - page faults #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:42 msgid "stat_dg_title_processes__ps_pagefaults" -msgstr "%H: 进程 %pi - 分页错误" +msgstr "%H:进程 %pi - 分页错误" #. Pagefaults #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:43 @@ -237,7 +239,7 @@ msgstr "分页错误" #. %H: Process %pi - virtual memory size #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:45 msgid "stat_dg_title_processes__ps_rss" -msgstr "%H: 进程 %pi - 虚拟内存大小" +msgstr "%H:进程 %pi - 虚拟内存大小" #. Bytes #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:46 @@ -252,7 +254,7 @@ msgstr "虚拟内存" #. %H: Usage on Processor #%pi #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:48 msgid "stat_dg_title_cpu" -msgstr "%H: 对处理器 #%pi 的占用" +msgstr "%H:对处理器 #%pi 的占用" #. % #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:49 @@ -267,7 +269,7 @@ msgstr "%di" #. %H: Transfer on %di #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:51 msgid "stat_dg_title_interface__if_octets" -msgstr "%H: %di 上的数据传输情况" +msgstr "%H:%di 上的数据传输情况" #. Bytes/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:52 @@ -277,17 +279,17 @@ msgstr "字节/秒" #. %H: Packets on %di #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:53 msgid "stat_dg_title_interface__if_packets" -msgstr "%H: %di 上的数据包" +msgstr "%H:%di 上的数据包" #. Packets/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:54 msgid "stat_dg_label_interface__if_packets" -msgstr "Packets/s" +msgstr "包/s" #. %H: TCP-Connections to Port %pi #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:55 msgid "stat_dg_title_tcpconns" -msgstr "%H: 到端口 %pi 的 TCP 连接" +msgstr "%H:到端口 %pi 的 TCP 连接" #. Connections/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:56 @@ -302,7 +304,7 @@ msgstr "%di" #. %H: Disk Space Usage on %di #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:58 msgid "stat_dg_title_df" -msgstr "%H: %di 上的磁盘占用情况" +msgstr "%H:%di 上的磁盘占用情况" #. Bytes #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:59 @@ -322,12 +324,12 @@ msgstr "%ds" #. %H: Interrupts #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:62 msgid "stat_dg_title_irq" -msgstr "%H: 中断" +msgstr "%H:中断" #. Issues/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:63 msgid "stat_dg_label_irq" -msgstr "Issues/s" +msgstr "中断/s" #. IRQ %di #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:64 @@ -337,7 +339,7 @@ msgstr "IRQ %di" #. %H: System Load #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:65 msgid "stat_dg_title_load" -msgstr "%H: 系统负载" +msgstr "%H:系统负载" #. Load #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:66 diff --git a/package/luci/applications/luci-app-statistics/po/zh-cn/statistics.po b/package/luci/applications/luci-app-statistics/po/zh-cn/statistics.po index 20f5a93cb4..fe631b5e8f 100644 --- a/package/luci/applications/luci-app-statistics/po/zh-cn/statistics.po +++ b/package/luci/applications/luci-app-statistics/po/zh-cn/statistics.po @@ -1,23 +1,26 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-06-10 03:40+0200\n" -"PO-Revision-Date: 2017-04-15 21:46-0600\n" -"Last-Translator: liushuyu \n" +"PO-Revision-Date: 2017-10-29 15:50+0800\n" +"Last-Translator: Yangfl \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 2.0.1\n" -"Language-Team: \n" +"X-Generator: Gtranslator 2.91.7\n" +"Language-Team: \n" msgid "APC UPS" -msgstr "" +msgstr "APC UPS" msgid "APCUPS Plugin Configuration" -msgstr "" +msgstr "APCUPS 插件配置" msgid "Action (target)" msgstr "动作(目标)" @@ -35,7 +38,7 @@ msgid "Add notification command" msgstr "新增通知命令" msgid "Aggregate number of connected users" -msgstr "" +msgstr "连接用户总数" msgid "Base Directory" msgstr "基本目录" @@ -44,7 +47,7 @@ msgid "Basic monitoring" msgstr "基本监控" msgid "CPU Context Switches Plugin Configuration" -msgstr "" +msgstr "CPU Context Switches 插件配置" msgid "CPU Frequency" msgstr "CPU 频率" @@ -53,13 +56,13 @@ msgid "CPU Frequency Plugin Configuration" msgstr "CPU 频率插件配置" msgid "CPU Plugin Configuration" -msgstr "CPU插件配置" +msgstr "CPU 插件配置" msgid "CSV Output" -msgstr "CSV输出" +msgstr "CSV 输出" msgid "CSV Plugin Configuration" -msgstr "CSV插件配置" +msgstr "CSV 插件配置" msgid "Cache collected data for" msgstr "收集缓存数据" @@ -80,33 +83,33 @@ msgid "CollectTopology" msgstr "收集拓扑" msgid "Collectd Settings" -msgstr "Collectd设置" +msgstr "Collectd 设置" msgid "" "Collectd is a small daemon for collecting data from various sources through " "different plugins. On this page you can change general settings for the " "collectd daemon." msgstr "" -"Collectd是一个通过不同插件用于收集各种源数据的小型守护程序。在此页面中,您可" -"以更改Collectd守护进程常规设置。" +"Collectd 是一个通过不同插件用于收集各种源数据的小型守护程序。在此页面中,您可" +"以更改 Collectd 守护进程常规设置。" msgid "Conntrack" msgstr "Conntrack" msgid "Conntrack Plugin Configuration" -msgstr "Conntrack插件设置" +msgstr "Conntrack 插件配置" msgid "Context Switches" -msgstr "" +msgstr "上下文切换" msgid "DF Plugin Configuration" -msgstr "DF插件设置" +msgstr "DF 插件配置" msgid "DNS" msgstr "DNS" msgid "DNS Plugin Configuration" -msgstr "DNS插件设置" +msgstr "DNS 插件配置" msgid "Data collection interval" msgstr "数据收集间隙" @@ -115,16 +118,16 @@ msgid "Datasets definition file" msgstr "数据集定义文件" msgid "Destination ip range" -msgstr "目标IP区间" +msgstr "目标 IP 区间" msgid "Directory for collectd plugins" -msgstr "Collectd插件目录" +msgstr "Collectd 插件目录" msgid "Directory for sub-configurations" msgstr "子配置目录" msgid "Disk Plugin Configuration" -msgstr "Disk插件配置" +msgstr "Disk 插件配置" msgid "Disk Space Usage" msgstr "磁盘空间使用情况" @@ -139,7 +142,7 @@ msgid "Display timespan »" msgstr "显示时间段" msgid "E-Mail Plugin Configuration" -msgstr "E-Mail插件配置" +msgstr "E-Mail 插件配置" msgid "Email" msgstr "电子邮件" @@ -160,10 +163,10 @@ msgid "Exec" msgstr "Exec" msgid "Exec Plugin Configuration" -msgstr "Exec插件配置" +msgstr "Exec 插件配置" msgid "Filter class monitoring" -msgstr "Filter类监测" +msgstr "Filter 类监测" msgid "Firewall" msgstr "防火墙" @@ -175,13 +178,13 @@ msgid "Forwarding between listen and server addresses" msgstr "转发监听服务器和应用服务器之间数据" msgid "Gather compression statistics" -msgstr "" +msgstr "收集压缩统计信息" msgid "General plugins" msgstr "通用插件" msgid "Generate a separate graph for each logged user" -msgstr "" +msgstr "为每个记录的用户生成一个单独的图表" msgid "Graphs" msgstr "图表" @@ -193,7 +196,7 @@ msgid "" "Here you can define external commands which will be started by collectd in " "order to read certain values. The values will be read from stdout." msgstr "" -"在这里,你可以定义外部命令,Collectd将启动命令来获取某些值,将获取的值从标准" +"在这里,您可以定义外部命令,Collectd 将启动命令来获取某些值,将获取的值从标准" "输出端口输出。" msgid "" @@ -201,13 +204,13 @@ msgid "" "certain threshold values have been reached. The values leading to invokation " "will be feeded to the the called programs stdin." msgstr "" -"在这里,你可以定义外部命令,当Collectd达到一定阈值时,将启动命令。阀值将会作" -"为命令的标准输入。" +"在这里,您可以定义外部命令,当 Collectd 达到一定阈值时,将启动命令。阀值将会" +"作为命令的标准输入。" msgid "" "Here you can define various criteria by which the monitored iptables rules " "are selected." -msgstr "在这里,你可以定义各种监控iptables规则临界值。" +msgstr "在这里,您可以定义各种监控 iptables 规则临界值。" msgid "Hold Ctrl to select multiple items or to deselect entries." msgstr "按住 Ctrl 键来选择或取消选择多个项目。" @@ -219,10 +222,10 @@ msgid "Hostname" msgstr "主机名" msgid "IP or hostname where to get the txtinfo output from" -msgstr "获取txtinfo输出的IP地址或主机名" +msgstr "获取 txtinfo 输出的 IP 地址或主机名" msgid "IRQ Plugin Configuration" -msgstr "IRQ插件配置" +msgstr "IRQ 插件配置" msgid "Ignore source addresses" msgstr "忽略源地址" @@ -231,7 +234,7 @@ msgid "Incoming interface" msgstr "入接口" msgid "Interface Plugin Configuration" -msgstr "Interface插件配置" +msgstr "Interface 插件配置" msgid "Interfaces" msgstr "Interfaces" @@ -240,10 +243,10 @@ msgid "Interrupts" msgstr "中断" msgid "Interval for pings" -msgstr "ping间隙" +msgstr "ping 间隙" msgid "Iptables Plugin Configuration" -msgstr "Iptables插件配置" +msgstr "Iptables 插件配置" msgid "Leave unselected to automatically determine interfaces to monitor." msgstr "自动保留对未选中接口的监控。" @@ -258,12 +261,12 @@ msgid "Listener interfaces" msgstr "监听接口" msgid "Load Plugin Configuration" -msgstr "Load插件配置" +msgstr "Load 插件配置" msgid "" "Max values for a period can be used instead of averages when not using 'only " "average RRAs'" -msgstr "" +msgstr "在不使用“仅平均 RRA”的情况下,可以使用一段时间的最大值而不是平均值" msgid "Maximum allowed connections" msgstr "最大允许连接数" @@ -296,7 +299,7 @@ msgid "Monitor filesystem types" msgstr "监测文件系统类型" msgid "Monitor host" -msgstr "" +msgstr "监测主机" msgid "Monitor hosts" msgstr "监测主机" @@ -326,19 +329,19 @@ msgid "Netlink" msgstr "Netlink" msgid "Netlink Plugin Configuration" -msgstr "Netlink插件配置" +msgstr "Netlink 插件配置" msgid "Network" msgstr "Network" msgid "Network Plugin Configuration" -msgstr "Network插件配置" +msgstr "Network 插件配置" msgid "Network plugins" -msgstr "Network插件" +msgstr "Network 插件" msgid "Network protocol" -msgstr "Network协议" +msgstr "Network 协议" msgid "" "Note: as pages are rendered by user 'nobody', the *.rrd files, the storage " @@ -354,10 +357,10 @@ msgid "OLSRd" msgstr "OLSRd" msgid "OLSRd Plugin Configuration" -msgstr "OLSRd插件配置" +msgstr "OLSRd 插件配置" msgid "Only create average RRAs" -msgstr "仅创建平均RRAs" +msgstr "仅创建平均 RRAs" msgid "OpenVPN" msgstr "OpenVPN" @@ -375,19 +378,19 @@ msgid "Outgoing interface" msgstr "出接口" msgid "Output plugins" -msgstr "Output插件" +msgstr "Output 插件" msgid "Ping" msgstr "Ping" msgid "Ping Plugin Configuration" -msgstr "Ping插件配置" +msgstr "Ping 插件配置" msgid "Port" msgstr "端口" msgid "Port for apcupsd communication" -msgstr "" +msgstr "apcupsd 通信端口" msgid "Processes" msgstr "进程" @@ -402,22 +405,22 @@ msgid "Processor" msgstr "处理器" msgid "Qdisc monitoring" -msgstr "Qdisc监测" +msgstr "Qdisc 监测" msgid "RRD XFiles Factor" -msgstr "RRD XFiles因子" +msgstr "RRD XFiles 因子" msgid "RRD heart beat interval" -msgstr "RRD心跳间隙" +msgstr "RRD 心跳间隙" msgid "RRD step interval" -msgstr "RRD区间间隙" +msgstr "RRD 区间间隙" msgid "RRDTool" msgstr "RRDTool" msgid "RRDTool Plugin Configuration" -msgstr "RRDTool插件配置" +msgstr "RRDTool 插件配置" msgid "Rows per RRA" msgstr "行/RRA" @@ -435,7 +438,7 @@ msgid "Sensors" msgstr "传感器" msgid "Sensors Plugin Configuration" -msgstr "传感器插件配置" +msgstr "Sensors 插件配置" msgid "Server host" msgstr "服务器主机" @@ -450,7 +453,7 @@ msgid "Shaping class monitoring" msgstr "整形类监控" msgid "Show max values instead of averages" -msgstr "" +msgstr "显示最大值而不是平均值" msgid "Socket file" msgstr "套接字文件" @@ -462,7 +465,7 @@ msgid "Socket permissions" msgstr "套接字权限" msgid "Source ip range" -msgstr "源IP区间" +msgstr "源 IP 区间" msgid "Specifies what information to collect about links." msgstr "收集指定链接相关信息。" @@ -474,10 +477,10 @@ msgid "Specifies what information to collect about the global topology." msgstr "收集指定拓扑相关信息。" msgid "Splash Leases" -msgstr "" +msgstr "Splash Leases" msgid "Splash Leases Plugin Configuration" -msgstr "" +msgstr "Splash Leases 插件配置" msgid "Statistics" msgstr "统计" @@ -486,7 +489,7 @@ msgid "Storage directory" msgstr "存储目录" msgid "Storage directory for the csv files" -msgstr "csv存储目录" +msgstr "csv 存储目录" msgid "Store data values as rates instead of absolute values" msgstr "存储数据值变化量而不是绝对值" @@ -498,30 +501,30 @@ msgid "System Load" msgstr "系统加载" msgid "TCP Connections" -msgstr "TCP连接数" +msgstr "TCP 连接数" msgid "TCPConns Plugin Configuration" -msgstr "TCPConns插件配置" +msgstr "TCPConns 插件配置" msgid "TTL for network packets" -msgstr "网络包TTL" +msgstr "网络包 TTL" msgid "TTL for ping packets" -msgstr "ping包TTL" +msgstr "ping 包 TTL" msgid "Table" msgstr "表" msgid "The APCUPS plugin collects statistics about the APC UPS." -msgstr "" +msgstr "APCUPS 插件收集 APC UPS 的统计信息。" msgid "The NUT plugin reads information about Uninterruptible Power Supplies." -msgstr "NUT插件读取UPS信息。" +msgstr "NUT 插件读取 UPS 信息。" msgid "" "The OLSRd plugin reads information about meshed networks from the txtinfo " "plugin of OLSRd." -msgstr "OLSRd插件通过txtinfo获取meshed网络信息。" +msgstr "OLSRd 插件通过 txtinfo 获取 meshed 网络信息。" msgid "" "The OpenVPN plugin gathers information about the current vpn connection " @@ -531,10 +534,10 @@ msgstr "OpenVPN 插件可以获取 VPN 连接当前状态" msgid "" "The conntrack plugin collects statistics about the number of tracked " "connections." -msgstr "conntrack插件获取连接数信息。" +msgstr "conntrack 插件获取连接数信息。" msgid "The cpu plugin collects basic statistics about the processor usage." -msgstr "cpu插件获取处理器相关信息。" +msgstr "cpu 插件获取处理器相关信息。" msgid "" "The csv plugin stores collected data in csv file format for further " @@ -544,17 +547,17 @@ msgstr "csv插件用于存储数据,以方便其他程序处理数据。" msgid "" "The df plugin collects statistics about the disk space usage on different " "devices, mount points or filesystem types." -msgstr "df插件收集磁盘空间使用情况,挂载点及文件系统相关信息。" +msgstr "df 插件收集磁盘空间使用情况、挂载点及文件系统相关信息。" msgid "" "The disk plugin collects detailled usage statistics for selected partitions " "or whole disks." -msgstr "disk插件收集磁盘分区使用情况及相关信息。" +msgstr "disk 插件收集磁盘分区使用情况及相关信息。" msgid "" "The dns plugin collects detailled statistics about dns related traffic on " "selected interfaces." -msgstr "dns插件收集dns数据流相关信息。" +msgstr "dns 插件收集 dns 数据流相关信息。" msgid "" "The email plugin creates a unix socket which can be used to transmit email-" @@ -562,50 +565,50 @@ msgid "" "to be used in conjunction with Mail::SpamAssasin::Plugin::Collectd but can " "be used in other ways as well." msgstr "" -"邮件插件创建一个unix套接字用于为Collectd守护进程发送统计信息到电子邮件系统。" -"这个插件主要目的是结合使用Mail::SpamAssasin::Pulgin::Collectd,但可以用在其他" -"方面。" +"邮件插件创建一个 unix 套接字用于为 Collectd 守护进程发送统计信息到电子邮件系" +"统。这个插件主要目的是结合使用 Mail::SpamAssasin::Pulgin::Collectd,但可以用" +"在其他方面。" msgid "The entropy plugin collects statistics about the available entropy." -msgstr "" +msgstr "entropy 插件收集可用熵的统计信息。" msgid "" "The exec plugin starts external commands to read values from or to notify " "external processes when certain threshold values have been reached." msgstr "" -"exec插件,用于当某些监控值已到达阈值时,启动外部命令读值或通知外部程序。" +"exec 插件用于当某些监控值已到达阈值时,启动外部命令读值或通知外部程序。" msgid "" "The interface plugin collects traffic statistics on selected interfaces." -msgstr "Interface插件,用于收集选定接口的数据包的统计信息。" +msgstr "Interface 插件用于收集选定接口的数据包的统计信息。" msgid "" "The iptables plugin will monitor selected firewall rules and collect " "informations about processed bytes and packets per rule." -msgstr "iptables插件,将监测选定防火墙规则和收集关于每个规则处理的数据包信息。" +msgstr "iptables 插件将监测选定防火墙规则和收集关于每个规则处理的数据包信息。" msgid "" "The irq plugin will monitor the rate of issues per second for each selected " "interrupt. If no interrupt is selected then all interrupts are monitored." msgstr "" -"irq插件,用于监控选定中断的每秒钟产生的中断数。如果没有中断被选中,则表示对所" +"irq 插件用于监控选定中断的每秒钟产生的中断数。如果没有中断被选中,则表示对所" "有中断进行监测。" msgid "" "The iwinfo plugin collects statistics about wireless signal strength, noise " "and quality." -msgstr "iwinfo插件,收集无线信号强度、噪声和质量的统计信息。" +msgstr "iwinfo 插件收集无线信号强度、噪声和质量的统计信息。" msgid "The load plugin collects statistics about the general system load." -msgstr "load插件,收集常规系统加载统计信息。" +msgstr "load 插件收集常规系统加载统计信息。" msgid "The memory plugin collects statistics about the memory usage." -msgstr "memory插件,收集关于内存使用情况的统计信息。" +msgstr "memory 插件收集关于内存使用情况的统计信息。" msgid "" "The netlink plugin collects extended informations like qdisc-, class- and " "filter-statistics for selected interfaces." -msgstr "netlink插件,收集为选定接口qdisc-、class-和filter- 的扩展数据。" +msgstr "netlink 插件收集为选定接口 qdisc-、class- 和 filter- 的扩展数据。" msgid "" "The network plugin provides network based communication between different " @@ -613,19 +616,19 @@ msgid "" "client mode locally collected data is transferred to a collectd server " "instance, in server mode the local instance receives data from other hosts." msgstr "" -"network插件,提供了基于网络的不同Collectd实例。Collectd可以工作在客户端和服务" -"器两个模式。在客户端模式下收集本地信息,然后转移到一个Collectd服务器实例中,在" -"服务器模式将从其他主机收集信息。" +"network 插件提供了基于网络的不同 Collectd 实例。Collectd 可以工作在客户端和服" +"务器两个模式。在客户端模式下收集本地信息,然后转移到一个 Collectd 服务器实例" +"中,在服务器模式将从其他主机收集信息。" msgid "" "The ping plugin will send icmp echo replies to selected hosts and measure " "the roundtrip time for each host." -msgstr "ping插件,将发送icmp echo replies到选定主机来测量每台主机的响应时间。" +msgstr "ping 插件将发送 icmp echo replies 到选定主机来测量每台主机的响应时间。" msgid "" "The processes plugin collects informations like cpu time, page faults and " "memory usage of selected processes." -msgstr "processes插件,收集选定进程的cpu时间、页面错误和内存使用信息。" +msgstr "processes 插件收集选定进程的 cpu 时间、页面错误和内存使用信息。" msgid "" "The rrdtool plugin stores the collected data in rrd database files, the " @@ -633,19 +636,19 @@ msgid "" "values will result in a very high memory consumption in the temporary " "directory. This can render the device unusable!
" msgstr "" -"rrdtool插件,将收集数据以图表的形式储存在RRD数据库文件中。


警告:错误的参数设置,将导致非常高的临时内存消耗。这可能会使设备无法" "使用!" msgid "" "The sensors plugin uses the Linux Sensors framework to gather environmental " "statistics." -msgstr "" +msgstr "sensors 插件使用 Linux Sensors 框架来收集环境统计信息。" msgid "" "The splash leases plugin uses libuci to collect statistics about splash " "leases." -msgstr "" +msgstr "splash leases 插件使用 libuci 来收集 splash leases 的统计信息。" msgid "" "The statistics package uses Collectd " @@ -659,23 +662,23 @@ msgstr "" msgid "" "The tcpconns plugin collects informations about open tcp connections on " "selected ports." -msgstr "tcpconns插件,收集选定端口TCP连接信息。" +msgstr "tcpconns 插件收集选定端口 TCP 连接信息。" msgid "" "The thermal plugin will monitor temperature of the system. Data is typically " "read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be " "read, e.g. thermal_zone1 )" msgstr "" -"温感插件将会监控系统温度。数据主要取自 /sys/class/thermal/*/temp ('*' 表示温" -"感设备的名字,比如 thermal_zone1) 。" +"thermal 插件将会监控系统温度。数据主要取自 /sys/class/thermal/*/temp ('*' 表" +"示温感设备的名字,比如 thermal_zone1) 。" msgid "" "The unixsock plugin creates a unix socket which can be used to read " "collected data from a running collectd instance." -msgstr "unixsock插件,创建一个unix套接字可用于读取Collectd实例的收集信息。" +msgstr "unixsock 插件创建一个 unix 套接字可用于读取 Collectd 实例的收集信息。" msgid "The uptime plugin collects statistics about the uptime of the system." -msgstr "" +msgstr "uptime 插件收集系统启动时间的统计信息。" msgid "Thermal" msgstr "温感" @@ -684,19 +687,19 @@ msgid "Thermal Plugin Configuration" msgstr "温感插件配置" msgid "This plugin collects statistics about the processor context switches." -msgstr "" +msgstr "此插件收集处理器上下文切换的统计信息。" msgid "This plugin collects statistics about the processor frequency scaling." -msgstr "此插件会获取 CPU 频率调整的数据。" +msgstr "此插件收集处理器频率调整的统计信息。" msgid "" "This section defines on which interfaces collectd will wait for incoming " "connections." -msgstr "定义Collectd将监听哪个接口来传入连接收集数据。" +msgstr "定义 Collectd 将监听哪个接口来传入连接收集数据。" msgid "" "This section defines to which servers the locally collected data is sent to." -msgstr "定义本地收集数据被发送到哪台Collected服务器。" +msgstr "定义本地收集数据被发送到哪台 Collected 服务器。" msgid "Try to lookup fully qualified hostname" msgstr "尝试解析主机全域名" @@ -705,16 +708,16 @@ msgid "UPS" msgstr "UPS" msgid "UPS Plugin Configuration" -msgstr "UPS插件配置" +msgstr "UPS 插件配置" msgid "UPS name in NUT ups@host format" -msgstr "UPS名使用NUT(Network UPS Tools)格式:ups@host" +msgstr "UPS 名使用 NUT(Network UPS Tools)格式:ups@host" msgid "UnixSock" msgstr "UnixSock" msgid "Unixsock Plugin Configuration" -msgstr "Unixsock插件配置" +msgstr "Unixsock 插件配置" msgid "Uptime" msgstr "运行时间" @@ -726,7 +729,7 @@ msgid "Use improved naming schema" msgstr "使用更高级的命名规则" msgid "Used PID file" -msgstr "正在使用的PID文件" +msgstr "正在使用的 PID 文件" msgid "User" msgstr "用户" @@ -738,7 +741,7 @@ msgid "Wireless" msgstr "无线" msgid "Wireless iwinfo Plugin Configuration" -msgstr "无线iwinfo插件配置" +msgstr "无线 iwinfo 插件配置" msgid "" "You can install additional collectd-mod-* plugins to enable more statistics." @@ -754,10 +757,10 @@ msgid "e.g. reject-with tcp-reset" msgstr "例如:eject-with tcp-reset" msgid "max. 16 chars" -msgstr "最长16个字符" +msgstr "最长 16 个字符" msgid "reduces rrd size" -msgstr "减少rrd大小" +msgstr "减少 rrd 大小" msgid "seconds; multiple separated by space" msgstr "秒数;多个使用空格分隔" diff --git a/package/luci/applications/luci-app-statistics/po/zh-tw/rrdtool.po b/package/luci/applications/luci-app-statistics/po/zh-tw/rrdtool.po index 9245260b4c..ad5eb5b584 100644 --- a/package/luci/applications/luci-app-statistics/po/zh-tw/rrdtool.po +++ b/package/luci/applications/luci-app-statistics/po/zh-tw/rrdtool.po @@ -1,355 +1,362 @@ # rrdtool.pot # generated from ./applications/luci-statistics/luasrc/i18n/rrdtool.en.lua +# Yangfl , 2017. +# msgid "" msgstr "" -"Content-Type: text/plain; charset=ASCII\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" +"Project-Id-Version: \n" +"PO-Revision-Date: 2017-10-29 15:39+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" +"Language: zh_TW\n" "MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Gtranslator 2.91.7\n" +"POT-Creation-Date: \n" #. %H: Wireless - Signal Noise Ratio #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:1 msgid "stat_dg_title_wireless__signal_noise" -msgstr "" +msgstr "無線訊號噪音" #. dBm #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:2 msgid "stat_dg_label_wireless__signal_noise" -msgstr "" +msgstr "信噪比" #. Noise Level #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:3 msgid "stat_ds_signal_noise" -msgstr "" +msgstr "訊號噪音" #. Signal Strength #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:4 msgid "stat_ds_signal_power" -msgstr "" +msgstr "訊號強度" #. %H: Wireless - Signal Quality #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:5 msgid "stat_dg_title_wireless__signal_quality" -msgstr "" +msgstr "%H:無線 - 訊號質量" #. n #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:6 msgid "stat_dg_label_wireless__signal_quality" -msgstr "" +msgstr "n" #. Signal Quality #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:7 msgid "stat_ds_signal_quality" -msgstr "" +msgstr "訊號質量" #. %H: ICMP Roundtrip Times #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:8 msgid "stat_dg_title_ping" -msgstr "" +msgstr "%H:ICMP 往返時間" #. ms #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:9 msgid "stat_dg_label_ping" -msgstr "" +msgstr "響應" #. %di #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:10 msgid "stat_ds_ping" -msgstr "" +msgstr "%di" #. %H: Firewall - Processed Packets #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:11 msgid "stat_dg_title_iptables__ipt_packets" -msgstr "" +msgstr "%H:防火牆 - 已處理的資料包" #. Packets/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:12 msgid "stat_dg_label_iptables__ipt_packets" -msgstr "" +msgstr "包/s" #. Chain \"%di\" #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:13 msgid "stat_ds_ipt_packets" -msgstr "" +msgstr "鏈“%di”" #. %H: Netlink - Transfer on %pi #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:14 msgid "stat_dg_title_netlink__if_octets" -msgstr "" +msgstr "%H:Netlink - %pi 上的資料傳輸" #. Bytes/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:15 msgid "stat_dg_label_netlink__if_octets" -msgstr "" +msgstr "位元組/秒" #. Bytes (%ds) #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:16 msgid "stat_ds_if_octets" -msgstr "" +msgstr "位元組 (%ds)" #. %H: Netlink - Packets on %pi #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:17 msgid "stat_dg_title_netlink__if_packets" -msgstr "" +msgstr "%H:Netlink - %pi 的資料包" #. Packets/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:18 msgid "stat_dg_label_netlink__if_packets" -msgstr "" +msgstr "包/s" #. Processed (%ds) #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:19 msgid "stat_ds_if_packets" -msgstr "" +msgstr "已處理 (%ds)" #. Dropped (%ds) #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:20 msgid "stat_ds_if_dropped" -msgstr "" +msgstr "丟棄 (%ds)" #. Errors (%ds) #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:21 msgid "stat_ds_if_errors" -msgstr "" +msgstr "錯誤 (%ds)" #. %H: Netlink - Multicast on %pi #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:22 msgid "stat_dg_title_netlink__if_multicast" -msgstr "" +msgstr "%H:Netlink - %pi 上的多播" #. Packets/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:23 msgid "stat_dg_label_netlink__if_multicast" -msgstr "" +msgstr "包/s" #. Packets #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:24 msgid "stat_ds_if_multicast" -msgstr "" +msgstr "資料包" #. %H: Netlink - Collisions on %pi #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:25 msgid "stat_dg_title_netlink__if_collisions" -msgstr "" +msgstr "%H:Netlink - %pi 上的 Collisions" #. Collisions/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:26 msgid "stat_dg_label_netlink__if_collisions" -msgstr "" +msgstr "碰撞/s" #. Collisions #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:27 msgid "stat_ds_if_collisions" -msgstr "" +msgstr "碰撞" #. %H: Netlink - Errors on %pi #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:28 msgid "stat_dg_title_netlink__if_tx_errors" -msgstr "" +msgstr "%H:Netlink - %pi 上發生的錯誤" #. Errors/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:29 msgid "stat_dg_label_netlink__if_tx_errors" -msgstr "" +msgstr "錯誤/秒" #. %di #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:30 msgid "stat_ds_if_tx_errors" -msgstr "" +msgstr "%di" #. %di #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:31 msgid "stat_ds_if_rx_errors" -msgstr "" +msgstr "%di" #. %H: Processes #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:32 msgid "stat_dg_title_processes" -msgstr "" +msgstr "%H:程序" #. Processes/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:33 msgid "stat_dg_label_processes" -msgstr "" +msgstr "程序/秒" #. %di #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:34 msgid "stat_ds_ps_state" -msgstr "" +msgstr "%di" #. %H: Process %pi - used cpu time #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:35 msgid "stat_dg_title_processes__ps_cputime" -msgstr "" +msgstr "%H:程序 %s - 佔用的 CPU 時間" #. Jiffies #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:36 msgid "stat_dg_label_processes__ps_cputime" -msgstr "" +msgstr "Jiffies" #. system #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:37 msgid "stat_ds_ps_cputime__syst" -msgstr "" +msgstr "系統" #. user #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:38 msgid "stat_ds_ps_cputime__user" -msgstr "" +msgstr "使用者" #. %H: Process %pi - threads and processes #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:39 msgid "stat_dg_title_processes__ps_count" -msgstr "" +msgstr "%H:程序 %pi - 程序與執行緒" #. Count #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:40 msgid "stat_dg_label_processes__ps_count" -msgstr "" +msgstr "個" #. %ds #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:41 msgid "stat_ds_ps_count" -msgstr "" +msgstr "%ds" #. %H: Process %pi - page faults #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:42 msgid "stat_dg_title_processes__ps_pagefaults" -msgstr "" +msgstr "%H:程序 %pi - 分頁錯誤" #. Pagefaults #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:43 msgid "stat_dg_label_processes__ps_pagefaults" -msgstr "" +msgstr "分頁錯誤" #. page faults #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:44 msgid "stat_ds_ps_pagefaults" -msgstr "" +msgstr "分頁錯誤" #. %H: Process %pi - virtual memory size #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:45 msgid "stat_dg_title_processes__ps_rss" -msgstr "" +msgstr "%H:程序 %pi - 虛擬記憶體大小" #. Bytes #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:46 msgid "stat_dg_label_processes__ps_rss" -msgstr "" +msgstr "位元組" #. virtual memory #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:47 msgid "stat_ds_ps_rss" -msgstr "" +msgstr "虛擬記憶體" #. %H: Usage on Processor #%pi #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:48 msgid "stat_dg_title_cpu" -msgstr "" +msgstr "%H:對處理器 #%pi 的佔用" #. % #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:49 msgid "stat_dg_label_cpu" -msgstr "" +msgstr "%" #. %di #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:50 msgid "stat_ds_cpu" -msgstr "" +msgstr "%di" #. %H: Transfer on %di #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:51 msgid "stat_dg_title_interface__if_octets" -msgstr "" +msgstr "%H:%di 上的資料傳輸情況" #. Bytes/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:52 msgid "stat_dg_label_interface__if_octets" -msgstr "" +msgstr "位元組/秒" #. %H: Packets on %di #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:53 msgid "stat_dg_title_interface__if_packets" -msgstr "" +msgstr "%H:%di 上的資料包" #. Packets/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:54 msgid "stat_dg_label_interface__if_packets" -msgstr "" +msgstr "包/s" #. %H: TCP-Connections to Port %pi #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:55 msgid "stat_dg_title_tcpconns" -msgstr "" +msgstr "%H:到埠 %pi 的 TCP 連線" #. Connections/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:56 msgid "stat_dg_label_tcpconns" -msgstr "" +msgstr "連線/秒" #. %di #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:57 msgid "stat_ds_tcp_connections" -msgstr "" +msgstr "%di" #. %H: Disk Space Usage on %di #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:58 msgid "stat_dg_title_df" -msgstr "" +msgstr "%H:%di 上的磁碟佔用情況" #. Bytes #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:59 msgid "stat_dg_label_df" -msgstr "" +msgstr "位元組" #. %ds #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:60 msgid "stat_ds_df__free" -msgstr "" +msgstr "%ds" #. %ds #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:61 msgid "stat_ds_df__used" -msgstr "" +msgstr "%ds" #. %H: Interrupts #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:62 msgid "stat_dg_title_irq" -msgstr "" +msgstr "%H:中斷" #. Issues/s #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:63 msgid "stat_dg_label_irq" -msgstr "" +msgstr "中斷/s" #. IRQ %di #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:64 msgid "stat_ds_irq" -msgstr "" +msgstr "IRQ %di" #. %H: System Load #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:65 msgid "stat_dg_title_load" -msgstr "" +msgstr "%H:系統負載" #. Load #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:66 msgid "stat_dg_label_load" -msgstr "" +msgstr "負載" #. 1 min #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:67 msgid "stat_ds_load__shortterm" -msgstr "" +msgstr "1 分鐘" #. 5 min #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:68 msgid "stat_ds_load__midterm" -msgstr "" +msgstr "5 分鐘" #. 15 min #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:69 msgid "stat_ds_load__longterm" -msgstr "" +msgstr "15 分鐘" diff --git a/package/luci/applications/luci-app-statistics/po/zh-tw/statistics.po b/package/luci/applications/luci-app-statistics/po/zh-tw/statistics.po index 36e42c1d09..64f141dd44 100644 --- a/package/luci/applications/luci-app-statistics/po/zh-tw/statistics.po +++ b/package/luci/applications/luci-app-statistics/po/zh-tw/statistics.po @@ -1,546 +1,563 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-06-10 03:40+0200\n" +"PO-Revision-Date: 2017-10-29 15:50+0800\n" +"Last-Translator: Yangfl \n" +"Language: zh_TW\n" "MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Gtranslator 2.91.7\n" +"Language-Team: \n" msgid "APC UPS" -msgstr "" +msgstr "APC UPS" msgid "APCUPS Plugin Configuration" -msgstr "" +msgstr "APCUPS 外掛配置" msgid "Action (target)" -msgstr "" +msgstr "動作(目標)" msgid "Add command for reading values" -msgstr "" +msgstr "新增命令讀取資料" msgid "Add matching rule" -msgstr "" +msgstr "新增匹配規則" msgid "Add multiple hosts separated by space." -msgstr "" +msgstr "使用空格分隔多個主機" msgid "Add notification command" -msgstr "" +msgstr "新增通知命令" msgid "Aggregate number of connected users" -msgstr "" +msgstr "連線使用者總數" msgid "Base Directory" -msgstr "" +msgstr "基本目錄" msgid "Basic monitoring" -msgstr "" +msgstr "基本監控" msgid "CPU Context Switches Plugin Configuration" -msgstr "" +msgstr "CPU Context Switches 外掛配置" msgid "CPU Frequency" -msgstr "" +msgstr "CPU 頻率" msgid "CPU Frequency Plugin Configuration" -msgstr "" +msgstr "CPU 頻率外掛配置" msgid "CPU Plugin Configuration" -msgstr "" +msgstr "CPU 外掛配置" msgid "CSV Output" -msgstr "" +msgstr "CSV 輸出" msgid "CSV Plugin Configuration" -msgstr "" +msgstr "CSV 外掛配置" msgid "Cache collected data for" -msgstr "" +msgstr "收集快取資料" msgid "Cache flush interval" -msgstr "" +msgstr "快取清空間隙" msgid "Chain" -msgstr "" +msgstr "鏈" msgid "CollectLinks" -msgstr "" +msgstr "收集連結" msgid "CollectRoutes" -msgstr "" +msgstr "收集路由" msgid "CollectTopology" -msgstr "" +msgstr "收集拓撲" msgid "Collectd Settings" -msgstr "" +msgstr "Collectd 設定" msgid "" "Collectd is a small daemon for collecting data from various sources through " "different plugins. On this page you can change general settings for the " "collectd daemon." msgstr "" +"Collectd 是一個通過不同外掛用於收集各種源資料的小型守護程式。在此頁面中,您可" +"以更改 Collectd 守護程序常規設定。" msgid "Conntrack" -msgstr "" +msgstr "Conntrack" msgid "Conntrack Plugin Configuration" -msgstr "" +msgstr "Conntrack 外掛配置" msgid "Context Switches" -msgstr "" +msgstr "上下文切換" msgid "DF Plugin Configuration" -msgstr "" +msgstr "DF 外掛配置" msgid "DNS" -msgstr "" +msgstr "DNS" msgid "DNS Plugin Configuration" -msgstr "" +msgstr "DNS 外掛配置" msgid "Data collection interval" -msgstr "" +msgstr "資料收集間隙" msgid "Datasets definition file" -msgstr "" +msgstr "資料集定義檔案" msgid "Destination ip range" -msgstr "" +msgstr "目標 IP 區間" msgid "Directory for collectd plugins" -msgstr "" +msgstr "Collectd 外掛目錄" msgid "Directory for sub-configurations" -msgstr "" +msgstr "子配置目錄" msgid "Disk Plugin Configuration" -msgstr "" +msgstr "Disk 外掛配置" msgid "Disk Space Usage" -msgstr "" +msgstr "磁碟空間使用情況" msgid "Disk Usage" -msgstr "" +msgstr "磁碟使用情況" msgid "Display Host »" -msgstr "" +msgstr "顯示主機" msgid "Display timespan »" -msgstr "" +msgstr "顯示時間段" msgid "E-Mail Plugin Configuration" -msgstr "" +msgstr "E-Mail 外掛配置" msgid "Email" -msgstr "" +msgstr "電子郵件" msgid "Empty value = monitor all" -msgstr "" +msgstr "留空 = 監控所有" msgid "Enable this plugin" -msgstr "" +msgstr "啟用該外掛" msgid "Entropy" -msgstr "" +msgstr "熵" msgid "Entropy Plugin Configuration" -msgstr "" +msgstr "熵值外掛配置" msgid "Exec" -msgstr "" +msgstr "Exec" msgid "Exec Plugin Configuration" -msgstr "" +msgstr "Exec 外掛配置" msgid "Filter class monitoring" -msgstr "" +msgstr "Filter 類監測" msgid "Firewall" -msgstr "" +msgstr "防火牆" msgid "Flush cache after" -msgstr "" +msgstr "清空快取後" msgid "Forwarding between listen and server addresses" -msgstr "" +msgstr "轉發監聽伺服器和應用伺服器之間資料" msgid "Gather compression statistics" -msgstr "" +msgstr "收集壓縮統計資訊" msgid "General plugins" -msgstr "" +msgstr "通用外掛" msgid "Generate a separate graph for each logged user" -msgstr "" +msgstr "為每個記錄的使用者生成一個單獨的圖表" msgid "Graphs" -msgstr "" +msgstr "圖表" msgid "Group" -msgstr "" +msgstr "組" msgid "" "Here you can define external commands which will be started by collectd in " "order to read certain values. The values will be read from stdout." msgstr "" +"在這裡,您可以定義外部命令,Collectd 將啟動命令來獲取某些值,將獲取的值從標準" +"輸出埠輸出。" msgid "" "Here you can define external commands which will be started by collectd when " "certain threshold values have been reached. The values leading to invokation " "will be feeded to the the called programs stdin." msgstr "" +"在這裡,您可以定義外部命令,當 Collectd 達到一定閾值時,將啟動命令。閥值將會" +"作為命令的標準輸入。" msgid "" "Here you can define various criteria by which the monitored iptables rules " "are selected." -msgstr "" +msgstr "在這裡,您可以定義各種監控 iptables 規則臨界值。" msgid "Hold Ctrl to select multiple items or to deselect entries." -msgstr "" +msgstr "按住 Ctrl 鍵來選擇或取消選擇多個專案。" msgid "Host" -msgstr "" +msgstr "主機" msgid "Hostname" -msgstr "" +msgstr "主機名" msgid "IP or hostname where to get the txtinfo output from" -msgstr "" +msgstr "獲取 txtinfo 輸出的 IP 位址或主機名" msgid "IRQ Plugin Configuration" -msgstr "" +msgstr "IRQ 外掛配置" msgid "Ignore source addresses" -msgstr "" +msgstr "忽略源位址" msgid "Incoming interface" -msgstr "" +msgstr "入介面" msgid "Interface Plugin Configuration" -msgstr "" +msgstr "Interface 外掛配置" msgid "Interfaces" -msgstr "" +msgstr "Interfaces" msgid "Interrupts" -msgstr "" +msgstr "中斷" msgid "Interval for pings" -msgstr "" +msgstr "ping 間隙" msgid "Iptables Plugin Configuration" -msgstr "" +msgstr "Iptables 外掛配置" msgid "Leave unselected to automatically determine interfaces to monitor." -msgstr "" +msgstr "自動保留對未選中介面的監控。" msgid "Listen host" -msgstr "" +msgstr "監聽主機" msgid "Listen port" -msgstr "" +msgstr "監聽埠" msgid "Listener interfaces" -msgstr "" +msgstr "監聽介面" msgid "Load Plugin Configuration" -msgstr "" +msgstr "Load 外掛配置" msgid "" "Max values for a period can be used instead of averages when not using 'only " "average RRAs'" -msgstr "" +msgstr "在不使用“僅平均 RRA”的情況下,可以使用一段時間的最大值而不是平均值" msgid "Maximum allowed connections" -msgstr "" +msgstr "最大允許連線數" msgid "Memory" -msgstr "" +msgstr "記憶體" msgid "Memory Plugin Configuration" -msgstr "" +msgstr "記憶體外掛配置" msgid "Monitor all except specified" -msgstr "" +msgstr "監測所有(除特別註明外)" msgid "Monitor all local listen ports" -msgstr "" +msgstr "監測所有本地監聽埠" msgid "Monitor all sensors" -msgstr "" +msgstr "監控所有感測器" msgid "Monitor device(s) / thermal zone(s)" -msgstr "" +msgstr "監控裝置/溫感區域" msgid "Monitor devices" -msgstr "" +msgstr "監測裝置" msgid "Monitor disks and partitions" -msgstr "" +msgstr "監測磁碟和分割槽" msgid "Monitor filesystem types" -msgstr "" +msgstr "監測檔案系統型別" msgid "Monitor host" -msgstr "" +msgstr "監測主機" msgid "Monitor hosts" -msgstr "" +msgstr "監測主機" msgid "Monitor interfaces" -msgstr "" +msgstr "監測介面" msgid "Monitor interrupts" -msgstr "" +msgstr "監測中斷" msgid "Monitor local ports" -msgstr "" +msgstr "監測本地埠" msgid "Monitor mount points" -msgstr "" +msgstr "監測掛載點" msgid "Monitor processes" -msgstr "" +msgstr "監測程序" msgid "Monitor remote ports" -msgstr "" +msgstr "監測遠端埠" msgid "Name of the rule" -msgstr "" +msgstr "規則名" msgid "Netlink" -msgstr "" +msgstr "Netlink" msgid "Netlink Plugin Configuration" -msgstr "" +msgstr "Netlink 外掛配置" msgid "Network" -msgstr "" +msgstr "Network" msgid "Network Plugin Configuration" -msgstr "" +msgstr "Network 外掛配置" msgid "Network plugins" -msgstr "" +msgstr "Network 外掛" msgid "Network protocol" -msgstr "" +msgstr "Network 協議" msgid "" "Note: as pages are rendered by user 'nobody', the *.rrd files, the storage " "directory and all its parent directories need to be world readable." msgstr "" +"注意:由於頁面是以 'nobody' 身份生成的,因此 *.rrd 檔案以及包含此檔案的所有父" +"目錄必須全域性可讀。" msgid "Number of threads for data collection" -msgstr "" +msgstr "收集程式使用執行緒數" msgid "OLSRd" -msgstr "" +msgstr "OLSRd" msgid "OLSRd Plugin Configuration" -msgstr "" +msgstr "OLSRd 外掛配置" msgid "Only create average RRAs" -msgstr "" +msgstr "僅建立平均 RRAs" msgid "OpenVPN" -msgstr "" +msgstr "OpenVPN" msgid "OpenVPN Plugin Configuration" -msgstr "" +msgstr "OpenVPN 外掛配置" msgid "OpenVPN status files" -msgstr "" +msgstr "OpenVPN 狀態檔案" msgid "Options" -msgstr "" +msgstr "選項" msgid "Outgoing interface" -msgstr "" +msgstr "出介面" msgid "Output plugins" -msgstr "" +msgstr "Output 外掛" msgid "Ping" -msgstr "" +msgstr "Ping" msgid "Ping Plugin Configuration" -msgstr "" +msgstr "Ping 外掛配置" msgid "Port" -msgstr "" +msgstr "埠" msgid "Port for apcupsd communication" -msgstr "" +msgstr "apcupsd 通訊埠" msgid "Processes" -msgstr "" +msgstr "程序" msgid "Processes Plugin Configuration" -msgstr "" +msgstr "程序外掛配置" msgid "Processes to monitor separated by space" -msgstr "" +msgstr "過程監控,用空格隔開" msgid "Processor" -msgstr "" +msgstr "處理器" msgid "Qdisc monitoring" -msgstr "" +msgstr "Qdisc 監測" msgid "RRD XFiles Factor" -msgstr "" +msgstr "RRD XFiles 因子" msgid "RRD heart beat interval" -msgstr "" +msgstr "RRD 心跳間隙" msgid "RRD step interval" -msgstr "" +msgstr "RRD 區間間隙" msgid "RRDTool" -msgstr "" +msgstr "RRDTool" msgid "RRDTool Plugin Configuration" -msgstr "" +msgstr "RRDTool 外掛配置" msgid "Rows per RRA" -msgstr "" +msgstr "行/RRA" msgid "Script" -msgstr "" +msgstr "指令碼" msgid "Seconds" -msgstr "" +msgstr "秒" msgid "Sensor list" -msgstr "" +msgstr "感測器列表" msgid "Sensors" -msgstr "" +msgstr "感測器" msgid "Sensors Plugin Configuration" -msgstr "" +msgstr "Sensors 外掛配置" msgid "Server host" -msgstr "" +msgstr "伺服器主機" msgid "Server port" -msgstr "" +msgstr "伺服器埠" msgid "Setup" -msgstr "" +msgstr "設定" msgid "Shaping class monitoring" -msgstr "" +msgstr "整形類監控" msgid "Show max values instead of averages" -msgstr "" +msgstr "顯示最大值而不是平均值" msgid "Socket file" -msgstr "" +msgstr "套接字檔案" msgid "Socket group" -msgstr "" +msgstr "套接字組" msgid "Socket permissions" -msgstr "" +msgstr "套接字許可權" msgid "Source ip range" -msgstr "" +msgstr "源 IP 區間" msgid "Specifies what information to collect about links." -msgstr "" +msgstr "收集指定連結相關資訊。" msgid "Specifies what information to collect about routes." -msgstr "" +msgstr "收集指定路由相關資訊。" msgid "Specifies what information to collect about the global topology." -msgstr "" +msgstr "收集指定拓撲相關資訊。" msgid "Splash Leases" -msgstr "" +msgstr "Splash Leases" msgid "Splash Leases Plugin Configuration" -msgstr "" +msgstr "Splash Leases 外掛配置" msgid "Statistics" -msgstr "" +msgstr "統計" msgid "Storage directory" -msgstr "" +msgstr "儲存目錄" msgid "Storage directory for the csv files" -msgstr "" +msgstr "csv 儲存目錄" msgid "Store data values as rates instead of absolute values" -msgstr "" +msgstr "儲存資料值變化量而不是絕對值" msgid "Stored timespans" -msgstr "" +msgstr "儲存時間跨度" msgid "System Load" -msgstr "" +msgstr "系統載入" msgid "TCP Connections" -msgstr "" +msgstr "TCP 連線數" msgid "TCPConns Plugin Configuration" -msgstr "" +msgstr "TCPConns 外掛配置" msgid "TTL for network packets" -msgstr "" +msgstr "網路包 TTL" msgid "TTL for ping packets" -msgstr "" +msgstr "ping 包 TTL" msgid "Table" -msgstr "" +msgstr "表" msgid "The APCUPS plugin collects statistics about the APC UPS." -msgstr "" +msgstr "APCUPS 外掛收集 APC UPS 的統計資訊。" msgid "The NUT plugin reads information about Uninterruptible Power Supplies." -msgstr "" +msgstr "NUT 外掛讀取 UPS 資訊。" msgid "" "The OLSRd plugin reads information about meshed networks from the txtinfo " "plugin of OLSRd." -msgstr "" +msgstr "OLSRd 外掛通過 txtinfo 獲取 meshed 網路資訊。" msgid "" "The OpenVPN plugin gathers information about the current vpn connection " "status." -msgstr "" +msgstr "OpenVPN 外掛可以獲取 VPN 連線當前狀態" msgid "" "The conntrack plugin collects statistics about the number of tracked " "connections." -msgstr "" +msgstr "conntrack 外掛獲取連線數資訊。" msgid "The cpu plugin collects basic statistics about the processor usage." -msgstr "" +msgstr "cpu 外掛獲取處理器相關資訊。" msgid "" "The csv plugin stores collected data in csv file format for further " "processing by external programs." -msgstr "" +msgstr "csv外掛用於儲存資料,以方便其他程式處理資料。" msgid "" "The df plugin collects statistics about the disk space usage on different " "devices, mount points or filesystem types." -msgstr "" +msgstr "df 外掛收集磁碟空間使用情況、掛載點及檔案系統相關資訊。" msgid "" "The disk plugin collects detailled usage statistics for selected partitions " "or whole disks." -msgstr "" +msgstr "disk 外掛收集磁碟分割槽使用情況及相關資訊。" msgid "" "The dns plugin collects detailled statistics about dns related traffic on " "selected interfaces." -msgstr "" +msgstr "dns 外掛收集 dns 資料流相關資訊。" msgid "" "The email plugin creates a unix socket which can be used to transmit email-" @@ -548,44 +565,50 @@ msgid "" "to be used in conjunction with Mail::SpamAssasin::Plugin::Collectd but can " "be used in other ways as well." msgstr "" +"郵件外掛建立一個 unix 套接字用於為 Collectd 守護程序傳送統計資訊到電子郵件系" +"統。這個外掛主要目的是結合使用 Mail::SpamAssasin::Pulgin::Collectd,但可以用" +"在其他方面。" msgid "The entropy plugin collects statistics about the available entropy." -msgstr "" +msgstr "entropy 外掛收集可用熵的統計資訊。" msgid "" "The exec plugin starts external commands to read values from or to notify " "external processes when certain threshold values have been reached." msgstr "" +"exec 外掛用於當某些監控值已到達閾值時,啟動外部命令讀值或通知外部程式。" msgid "" "The interface plugin collects traffic statistics on selected interfaces." -msgstr "" +msgstr "Interface 外掛用於收集選定介面的資料包的統計資訊。" msgid "" "The iptables plugin will monitor selected firewall rules and collect " "informations about processed bytes and packets per rule." -msgstr "" +msgstr "iptables 外掛將監測選定防火牆規則和收集關於每個規則處理的資料包資訊。" msgid "" "The irq plugin will monitor the rate of issues per second for each selected " "interrupt. If no interrupt is selected then all interrupts are monitored." msgstr "" +"irq 外掛用於監控選定中斷的每秒鐘產生的中斷數。如果沒有中斷被選中,則表示對所" +"有中斷進行監測。" msgid "" "The iwinfo plugin collects statistics about wireless signal strength, noise " "and quality." -msgstr "" +msgstr "iwinfo 外掛收集無線訊號強度、噪聲和質量的統計資訊。" msgid "The load plugin collects statistics about the general system load." -msgstr "" +msgstr "load 外掛收集常規系統載入統計資訊。" msgid "The memory plugin collects statistics about the memory usage." -msgstr "" +msgstr "memory 外掛收集關於記憶體使用情況的統計資訊。" msgid "" "The netlink plugin collects extended informations like qdisc-, class- and " "filter-statistics for selected interfaces." -msgstr "" +msgstr "netlink 外掛收集為選定介面 qdisc-、class- 和 filter- 的擴充套件資料。" msgid "" "The network plugin provides network based communication between different " @@ -593,16 +616,19 @@ msgid "" "client mode locally collected data is transferred to a collectd server " "instance, in server mode the local instance receives data from other hosts." msgstr "" +"network 外掛提供了基於網路的不同 Collectd 例項。Collectd 可以工作在客戶端和服" +"務器兩個模式。在客戶端模式下收集本地資訊,然後轉移到一個 Collectd 伺服器例項" +"中,在伺服器模式將從其他主機收集資訊。" msgid "" "The ping plugin will send icmp echo replies to selected hosts and measure " "the roundtrip time for each host." -msgstr "" +msgstr "ping 外掛將傳送 icmp echo replies 到選定主機來測量每臺主機的響應時間。" msgid "" "The processes plugin collects informations like cpu time, page faults and " "memory usage of selected processes." -msgstr "" +msgstr "processes 外掛收集選定程序的 cpu 時間、頁面錯誤和記憶體使用資訊。" msgid "" "The rrdtool plugin stores the collected data in rrd database files, the " @@ -610,126 +636,152 @@ msgid "" "values will result in a very high memory consumption in the temporary " "directory. This can render the device unusable!
" msgstr "" +"rrdtool 外掛將收集資料以圖表的形式儲存在 RRD 資料庫檔案中。

警告:錯誤的引數設定,將導致非常高的臨時記憶體消耗。這可能會使裝置無" +"法使用!" msgid "" "The sensors plugin uses the Linux Sensors framework to gather environmental " "statistics." -msgstr "" +msgstr "sensors 外掛使用 Linux Sensors 框架來收集環境統計資訊。" msgid "" "The splash leases plugin uses libuci to collect statistics about splash " "leases." -msgstr "" +msgstr "splash leases 外掛使用 libuci 來收集 splash leases 的統計資訊。" msgid "" "The statistics package uses Collectd " "to gather data and RRDtool to " "render diagram images." msgstr "" +"Statistics 軟體包使用 Collectd 來收集數" +"據,並用 RRDtool 生成統計圖" +"表。" msgid "" "The tcpconns plugin collects informations about open tcp connections on " "selected ports." -msgstr "" +msgstr "tcpconns 外掛收集選定埠 TCP 連線資訊。" msgid "" "The thermal plugin will monitor temperature of the system. Data is typically " "read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be " "read, e.g. thermal_zone1 )" msgstr "" +"thermal 外掛將會監控系統溫度。資料主要取自 /sys/class/thermal/*/temp ('*' 表" +"示溫感裝置的名字,比如 thermal_zone1) 。" msgid "" "The unixsock plugin creates a unix socket which can be used to read " "collected data from a running collectd instance." -msgstr "" +msgstr "unixsock 外掛建立一個 unix 套接字可用於讀取 Collectd 例項的收集資訊。" msgid "The uptime plugin collects statistics about the uptime of the system." -msgstr "" +msgstr "uptime 外掛收集系統啟動時間的統計資訊。" msgid "Thermal" -msgstr "" +msgstr "溫感" msgid "Thermal Plugin Configuration" -msgstr "" +msgstr "溫感外掛配置" msgid "This plugin collects statistics about the processor context switches." -msgstr "" +msgstr "此外掛收集處理器上下文切換的統計資訊。" msgid "This plugin collects statistics about the processor frequency scaling." -msgstr "" +msgstr "此外掛收集處理器頻率調整的統計資訊。" msgid "" "This section defines on which interfaces collectd will wait for incoming " "connections." -msgstr "" +msgstr "定義 Collectd 將監聽哪個介面來傳入連線收集資料。" msgid "" "This section defines to which servers the locally collected data is sent to." -msgstr "" +msgstr "定義本地收集資料被髮送到哪臺 Collected 伺服器。" msgid "Try to lookup fully qualified hostname" -msgstr "" +msgstr "嘗試解析主機全域名" msgid "UPS" -msgstr "" +msgstr "UPS" msgid "UPS Plugin Configuration" -msgstr "" +msgstr "UPS 外掛配置" msgid "UPS name in NUT ups@host format" -msgstr "" +msgstr "UPS 名使用 NUT(Network UPS Tools)格式:ups@host" msgid "UnixSock" -msgstr "" +msgstr "UnixSock" msgid "Unixsock Plugin Configuration" -msgstr "" +msgstr "Unixsock 外掛配置" msgid "Uptime" -msgstr "" +msgstr "執行時間" msgid "Uptime Plugin Configuration" -msgstr "" +msgstr "執行時間外掛配置" msgid "Use improved naming schema" -msgstr "" +msgstr "使用更高階的命名規則" msgid "Used PID file" -msgstr "" +msgstr "正在使用的 PID 檔案" msgid "User" -msgstr "" +msgstr "使用者" msgid "Verbose monitoring" -msgstr "" +msgstr "詳細監測" msgid "Wireless" -msgstr "" +msgstr "無線" msgid "Wireless iwinfo Plugin Configuration" -msgstr "" +msgstr "無線 iwinfo 外掛配置" msgid "" "You can install additional collectd-mod-* plugins to enable more statistics." -msgstr "" +msgstr "您可以安裝更多的 collectd-mod-* 外掛以獲得更多的統計資料。" msgid "e.g. br-ff" -msgstr "" +msgstr "例如:br-ff" msgid "e.g. br-lan" -msgstr "" +msgstr "例如:br-lan" msgid "e.g. reject-with tcp-reset" -msgstr "" +msgstr "例如:eject-with tcp-reset" msgid "max. 16 chars" -msgstr "" +msgstr "最長 16 個字元" msgid "reduces rrd size" -msgstr "" +msgstr "減少 rrd 大小" msgid "seconds; multiple separated by space" -msgstr "" +msgstr "秒數;多個使用空格分隔" msgid "server interfaces" -msgstr "" +msgstr "伺服器介面" + +#~ msgid "Collectd" +#~ msgstr "Collectd" + +#~ msgid "System plugins" +#~ msgstr "系統外掛" + +#~ msgid "" +#~ "The statistics package is based on Collectd and uses RRD Tool to render diagram images from collected data." +#~ msgstr "" +#~ "統計軟體包是基於Collectd," +#~ "並使用RRD工具來渲染圖表,用" +#~ "於收集資料。" + +#~ msgid "group name" +#~ msgstr "群名稱" diff --git a/package/luci/applications/luci-app-transmission/po/zh-cn/transmission.po b/package/luci/applications/luci-app-transmission/po/zh-cn/transmission.po index 9dd34915e0..f4dba62591 100644 --- a/package/luci/applications/luci-app-transmission/po/zh-cn/transmission.po +++ b/package/luci/applications/luci-app-transmission/po/zh-cn/transmission.po @@ -1,23 +1,26 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-10-08 14:06+0200\n" -"PO-Revision-Date: 2014-06-15 04:57+0200\n" -"Last-Translator: phantasm131 \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2017-10-29 15:56+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Pootle 2.0.6\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "Alternative download speed" msgstr "临时下载限速" msgid "Alternative speed enabled" -msgstr "启用临时限速" +msgstr "临时限速已启用" msgid "Alternative speed time begin" msgstr "计划限速始于" @@ -29,7 +32,7 @@ msgid "Alternative speed time end" msgstr "计划限速止于" msgid "Alternative speed timing enabled" -msgstr "启用计划限速" +msgstr "计划限速已启用" msgid "Alternative upload speed" msgstr "临时上传速度" @@ -41,13 +44,13 @@ msgid "Bandwidth settings" msgstr "带宽配置" msgid "Binding address IPv4" -msgstr "绑定IPv4地址" +msgstr "绑定 IPv4 地址" msgid "Binding address IPv6" -msgstr "绑定IPv6地址" +msgstr "绑定 IPv6 地址" msgid "Block list enabled" -msgstr "启用阻止列表" +msgstr "阻止列表已启用" msgid "Blocklist URL" msgstr "URL阻止清单" @@ -62,7 +65,7 @@ msgid "Config file directory" msgstr "配置文件的目录" msgid "DHT enabled" -msgstr "启用DHT" +msgstr "启用 DHT" msgid "Debug" msgstr "调试" @@ -71,7 +74,7 @@ msgid "Download directory" msgstr "下载目录" msgid "Download queue enabled" -msgstr "启用下载队列" +msgstr "下载队列已启用" msgid "Download queue size" msgstr "下载队列大小" @@ -80,7 +83,7 @@ msgid "Enable watch directory" msgstr "启用种子轮询目录" msgid "Enabled" -msgstr "启用" +msgstr "已启用" msgid "Encryption" msgstr "加密" @@ -101,7 +104,7 @@ msgid "Full" msgstr "全分配" msgid "Global peer limit" -msgstr "全局Peer限制" +msgstr "全局 Peer 限制" msgid "Global settings" msgstr "全局设置" @@ -110,22 +113,22 @@ msgid "Idle seeding limit" msgstr "空闲做种限时" msgid "Idle seeding limit enabled" -msgstr "启用空闲做种时间" +msgstr "空闲做种时间已启用" msgid "Incomplete directory" msgstr "未完成目录" msgid "Incomplete directory enabled" -msgstr "启用未完成目录" +msgstr "未完成目录已启用" msgid "Info" msgstr "信息" msgid "LPD enabled" -msgstr "启用LPD" +msgstr "LPD 已启用" msgid "Lazy bitfield enabled" -msgstr "启用位段延迟" +msgstr "位段延迟已启用" msgid "Message level" msgstr "消息级别" @@ -140,55 +143,57 @@ msgid "" "Number/bitfield. Start with 0, then for each day you want the scheduler " "enabled, add a value. For Sunday - 1, Monday - 2, Tuesday - 4, Wednesday - " "8, Thursday - 16, Friday - 32, Saturday - 64" -msgstr "生效日期是对应日期的算术加和值。对应关系:周日-1、周一-2、周二-4、周三-8、周四-16、周五-32、周六-64。" +msgstr "" +"生效日期是对应日期的算术加和值。对应关系:周日-1、周一-2、周二-4、周三-8、周" +"四-16、周五-32、周六-64。" msgid "Off" msgstr "关闭" msgid "Open Web Interface" -msgstr "Web管理界面" +msgstr "打开 Web 管理界面" msgid "PEX enabled" -msgstr "启用PEX" +msgstr "PEX 已启用" msgid "Peer Port settings" -msgstr "Peer端口设置" +msgstr "Peer 端口设置" msgid "Peer congestion algorithm" -msgstr "Peer拥塞算法" +msgstr "Peer 拥塞算法" msgid "Peer limit per torrent" -msgstr "每个种子Peer限制数" +msgstr "每个种子 Peer 限制数" msgid "Peer port" -msgstr "Peer端口" +msgstr "Peer 端口" msgid "Peer port random high" -msgstr "Peer随机端口最大值" +msgstr "Peer 随机端口最大值" msgid "Peer port random low" -msgstr "Peer随机端口最小值" +msgstr "Peer 随机端口最小值" msgid "Peer port random on start" -msgstr "Peer端口随机" +msgstr "Peer 端口随机" msgid "Peer settings" -msgstr "Peer设置" +msgstr "Peer 设置" msgid "Peer socket tos" -msgstr "Peer套接字tos值" +msgstr "Peer 套接字 tos 值" msgid "Port forwarding enabled" -msgstr "启用端口转发" +msgstr "端口转发已启用" msgid "Preferred" msgstr "优先" msgid "Prefetch enabled" -msgstr "启用预取缓存" +msgstr "预取缓存已启用" msgid "Queue stalled enabled" -msgstr "启用队列暂停" +msgstr "队列暂停已启用" msgid "Queue stalled minutes" msgstr "队列暂停分钟" @@ -200,37 +205,37 @@ msgid "RPC URL" msgstr "RPC URL" msgid "RPC authentication required" -msgstr "PRC授权验证" +msgstr "RPC 授权验证" msgid "RPC bind address" -msgstr "RPC绑定地址" +msgstr "RPC 绑定地址" msgid "RPC enabled" -msgstr "启用PRC" +msgstr "RPC 已启用" msgid "RPC password" -msgstr "RPC密码" +msgstr "RPC 密码" msgid "RPC port" -msgstr "RPC端口" +msgstr "RPC 端口" msgid "RPC settings" -msgstr "RPC配置" +msgstr "RPC 配置" msgid "RPC username" -msgstr "RPC用户名" +msgstr "RPC 用户名" msgid "RPC whitelist" -msgstr "RPC白名单" +msgstr "RPC 白名单" msgid "RPC whitelist enabled" -msgstr "启用RPC白名单" +msgstr "RPC 白名单已启用" msgid "Ratio limit" msgstr "分享率限值" msgid "Ratio limit enabled" -msgstr "启用分享率限制" +msgstr "分享率限制已启用" msgid "Rename partial files" msgstr "重命名未完成文件" @@ -242,16 +247,16 @@ msgid "Scheduling" msgstr "计划任务" msgid "Scrape paused torrents enabled" -msgstr "忽略暂停的种子" +msgstr "忽略暂停种子已启用" msgid "Script torrent done enabled" -msgstr "种子完成时运行脚本" +msgstr "种子完成时运行脚本已启用" msgid "Script torrent done filename" msgstr "脚本文件名" msgid "Seed queue enabled" -msgstr "启用做种队列" +msgstr "做种队列已启用" msgid "Seed queue size" msgstr "做种队列大小" @@ -260,13 +265,13 @@ msgid "Speed limit down" msgstr "下载限速" msgid "Speed limit down enabled" -msgstr "启用下载限速" +msgstr "下载限速已启用" msgid "Speed limit up" msgstr "上传限速" msgid "Speed limit up enabled" -msgstr "启用上传限速" +msgstr "上传限速已启用" msgid "Transmission" msgstr "Transmission" @@ -274,7 +279,7 @@ msgstr "Transmission" msgid "" "Transmission daemon is a simple bittorrent client, here you can configure " "the settings." -msgstr "Transmission是个简单易用的BT/PT客户端。" +msgstr "Transmission 是一个简单的 bittorrent 客户端,在这里您可以配置其设置。" msgid "Trash original torrent files" msgstr "删除种子源文件" @@ -286,10 +291,10 @@ msgid "Watch directory" msgstr "轮询种子目录" msgid "in minutes from midnight" -msgstr "从晚上00:00起的分钟数,限速到临时速度" +msgstr "从晚上 00:00 起的分钟数,限速到临时速度" msgid "preallocation" msgstr "磁盘预分配策略" msgid "uTP enabled" -msgstr "启用uTP" +msgstr "uTP 已启用" diff --git a/package/luci/applications/luci-app-transmission/po/zh-tw/transmission.po b/package/luci/applications/luci-app-transmission/po/zh-tw/transmission.po index 78da18dd15..304bfdad1e 100644 --- a/package/luci/applications/luci-app-transmission/po/zh-tw/transmission.po +++ b/package/luci/applications/luci-app-transmission/po/zh-tw/transmission.po @@ -1,84 +1,89 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"PO-Revision-Date: 2014-05-16 23:11+0200\n" -"Last-Translator: omnistack \n" -"Language-Team: none\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-10-08 14:06+0200\n" +"PO-Revision-Date: 2017-10-29 15:56+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Pootle 2.0.6\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "Alternative download speed" -msgstr "P2P代抓下載速度" +msgstr "臨時下載限速" msgid "Alternative speed enabled" -msgstr "P2P代抓速度啟用" +msgstr "臨時限速已啟用" msgid "Alternative speed time begin" -msgstr "P2P代抓起始時間" +msgstr "計劃限速始於" msgid "Alternative speed time day" -msgstr "P2P代抓起每日時間" +msgstr "計劃限速日期" msgid "Alternative speed time end" -msgstr "P2P代抓結束時間" +msgstr "計劃限速止於" msgid "Alternative speed timing enabled" -msgstr "P2P代抓週期機制啟用" +msgstr "計劃限速已啟用" msgid "Alternative upload speed" -msgstr "P2P代抓上傳速度" +msgstr "臨時上傳速度" msgid "Automatically start added torrents" -msgstr "當增加種子後自動開始下載" +msgstr "種子自動下載" msgid "Bandwidth settings" -msgstr "流量設定" +msgstr "頻寬配置" msgid "Binding address IPv4" -msgstr "綁定的IPv4位置" +msgstr "繫結 IPv4 位址" msgid "Binding address IPv6" -msgstr "綁定的IPv6位置" +msgstr "繫結 IPv6 位址" msgid "Block list enabled" -msgstr "啟用封鎖列表" +msgstr "阻止列表已啟用" msgid "Blocklist URL" -msgstr "封鎖URL" +msgstr "URL阻止清單" msgid "Blocklists" -msgstr "封鎖列表" +msgstr "阻止清單" msgid "Cache size in MB" -msgstr "快取大小(MB)" +msgstr "快取大小(MB)" msgid "Config file directory" -msgstr "設定檔目錄" +msgstr "配置檔案的目錄" msgid "DHT enabled" -msgstr "DHT啟用" +msgstr "啟用 DHT" msgid "Debug" -msgstr "偵錯" +msgstr "除錯" msgid "Download directory" msgstr "下載目錄" msgid "Download queue enabled" -msgstr "啟用下載隊列" +msgstr "下載佇列已啟用" msgid "Download queue size" -msgstr "下載隊列大小" +msgstr "下載佇列大小" msgid "Enable watch directory" -msgstr "啟用觀看目錄" +msgstr "啟用種子輪詢目錄" msgid "Enabled" -msgstr "啟用" +msgstr "已啟用" msgid "Encryption" msgstr "加密" @@ -96,200 +101,200 @@ msgid "Forced" msgstr "強制" msgid "Full" -msgstr "全速" +msgstr "全分配" msgid "Global peer limit" -msgstr "一般連接限制" +msgstr "全域性 Peer 限制" msgid "Global settings" -msgstr "一般設定" +msgstr "全域性設定" msgid "Idle seeding limit" -msgstr "閒置作種限制" +msgstr "空閒做種限時" msgid "Idle seeding limit enabled" -msgstr "閒置作種限制機制啟用" +msgstr "空閒做種時間已啟用" msgid "Incomplete directory" -msgstr "不完整的目錄路徑" +msgstr "未完成目錄" msgid "Incomplete directory enabled" -msgstr "不完整的目錄置放區機制啟用" +msgstr "未完成目錄已啟用" msgid "Info" msgstr "資訊" msgid "LPD enabled" -msgstr "LPD啟用" +msgstr "LPD 已啟用" msgid "Lazy bitfield enabled" -msgstr "防ISP懶散悠閒抓法啟用" +msgstr "位段延遲已啟用" msgid "Message level" -msgstr "訊息等級" +msgstr "訊息級別" msgid "Miscellaneous" -msgstr "雜項" +msgstr "其他引數" msgid "None" -msgstr "None" +msgstr "空" msgid "" "Number/bitfield. Start with 0, then for each day you want the scheduler " "enabled, add a value. For Sunday - 1, Monday - 2, Tuesday - 4, Wednesday - " "8, Thursday - 16, Friday - 32, Saturday - 64" msgstr "" -"數字/欄位. 由0開始,每日你若要啟用排程,就加上新數值. 星期日 -1, 星期一 -2, 星期二 -4, 星期三 -8, 星期四-16, " -"星期五-32星期六 -64" +"生效日期是對應日期的算術加和值。對應關係:週日-1、週一-2、週二-4、週三-8、周" +"四-16、週五-32、週六-64。" msgid "Off" msgstr "關閉" msgid "Open Web Interface" -msgstr "開啟Web介面" +msgstr "開啟 Web 管理介面" msgid "PEX enabled" -msgstr "啟用PEX" +msgstr "PEX 已啟用" msgid "Peer Port settings" -msgstr "P2P節點埠號設定" +msgstr "Peer 埠設定" msgid "Peer congestion algorithm" -msgstr "P2P節點堵塞演算法" +msgstr "Peer 擁塞演算法" msgid "Peer limit per torrent" -msgstr "P2P節點每個種子的限制" +msgstr "每個種子 Peer 限制數" msgid "Peer port" -msgstr "P2P節點埠號" +msgstr "Peer 埠" msgid "Peer port random high" -msgstr "P2P節點較高隨機埠號" +msgstr "Peer 隨機埠最大值" msgid "Peer port random low" -msgstr "P2P節點較低隨機埠號" +msgstr "Peer 隨機埠最小值" msgid "Peer port random on start" -msgstr "一開始就啟用P2P節點隨機埠" +msgstr "Peer 埠隨機" msgid "Peer settings" -msgstr "埠號設定" +msgstr "Peer 設定" msgid "Peer socket tos" -msgstr "P2P節點優先IP插槽" +msgstr "Peer 套接字 tos 值" msgid "Port forwarding enabled" -msgstr "埠轉發啟用" +msgstr "埠轉發已啟用" msgid "Preferred" -msgstr "首選" +msgstr "優先" msgid "Prefetch enabled" -msgstr "預選啟用" +msgstr "預取快取已啟用" msgid "Queue stalled enabled" -msgstr "隊列停滯啟用" +msgstr "佇列暫停已啟用" msgid "Queue stalled minutes" -msgstr "隊列停滯分鐘" +msgstr "佇列暫停分鐘" msgid "Queueing" -msgstr "排隊中" +msgstr "佇列" msgid "RPC URL" -msgstr "遠端調用網址" +msgstr "RPC URL" msgid "RPC authentication required" -msgstr "遠端調用需要驗證" +msgstr "RPC 授權驗證" msgid "RPC bind address" -msgstr "遠端調用綁定位址" +msgstr "RPC 繫結位址" msgid "RPC enabled" -msgstr "遠端調用功能啟用" +msgstr "RPC 已啟用" msgid "RPC password" -msgstr "遠端調用密碼" +msgstr "RPC 密碼" msgid "RPC port" -msgstr "遠端調用埠號" +msgstr "RPC 埠" msgid "RPC settings" -msgstr "遠端調用設定" +msgstr "RPC 配置" msgid "RPC username" -msgstr "遠端調用用戶名稱" +msgstr "RPC 使用者名稱" msgid "RPC whitelist" -msgstr "遠端調用白名單" +msgstr "RPC 白名單" msgid "RPC whitelist enabled" -msgstr "啟用遠端調用白名單" +msgstr "RPC 白名單已啟用" msgid "Ratio limit" -msgstr "比率限制" +msgstr "分享率限值" msgid "Ratio limit enabled" -msgstr "啟用比率限制" +msgstr "分享率限制已啟用" msgid "Rename partial files" -msgstr "不完整檔案更名" +msgstr "重新命名未完成檔案" msgid "Run daemon as user" -msgstr "像用戶使用一樣常駐" +msgstr "使用者組" msgid "Scheduling" -msgstr "排程" +msgstr "計劃任務" msgid "Scrape paused torrents enabled" -msgstr "下載暫停開始做種" +msgstr "忽略暫停種子已啟用" msgid "Script torrent done enabled" -msgstr "作種腳本啟用" +msgstr "種子完成時執行指令碼已啟用" msgid "Script torrent done filename" -msgstr "作種腳本檔名" +msgstr "指令碼檔名" msgid "Seed queue enabled" -msgstr "啟用作種隊列" +msgstr "做種佇列已啟用" msgid "Seed queue size" -msgstr "作種隊列大小" +msgstr "做種佇列大小" msgid "Speed limit down" -msgstr "下載速度限制" +msgstr "下載限速" msgid "Speed limit down enabled" -msgstr "啟用下載速度限制" +msgstr "下載限速已啟用" msgid "Speed limit up" -msgstr "上傳速度限制" +msgstr "上傳限速" msgid "Speed limit up enabled" -msgstr "啟用上傳速度限制" +msgstr "上傳限速已啟用" msgid "Transmission" -msgstr "傳輸任務" +msgstr "Transmission" msgid "" "Transmission daemon is a simple bittorrent client, here you can configure " "the settings." -msgstr "傳輸任務常駐是一個簡單的bittorrent用戶端程式, 這裡你可以配置設定" +msgstr "Transmission 是一個簡單的 bittorrent 客戶端,在這裡您可以配置其設定。" msgid "Trash original torrent files" -msgstr "丟棄來源種子檔" +msgstr "刪除種子原始檔" msgid "Upload slots per torrent" -msgstr "每個種子的上傳插槽數" +msgstr "每個種子上傳連線數" msgid "Watch directory" -msgstr "監看目錄" +msgstr "輪詢種子目錄" msgid "in minutes from midnight" -msgstr "從午夜算起用分表示" +msgstr "從晚上 00:00 起的分鐘數,限速到臨時速度" msgid "preallocation" -msgstr "預先分配" +msgstr "磁碟預分配策略" msgid "uTP enabled" -msgstr "啟用uTP" +msgstr "uTP 已啟用" diff --git a/package/luci/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm b/package/luci/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm index cbb6c189b8..51db2861e5 100644 --- a/package/luci/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm +++ b/package/luci/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm @@ -44,12 +44,12 @@ This is free software, licensed under the Apache License, Version 2.0 <%=ssid%> <%=encryption%> - - + + - - + + <% @@ -63,7 +63,7 @@ This is free software, licensed under the Apache License, Version 2.0 uci:foreach("wireless", "wifi-device", function(s) local device = s[".name"] %> -
+ diff --git a/package/luci/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm b/package/luci/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm index af90c18d23..053b4baca1 100644 --- a/package/luci/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm +++ b/package/luci/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm @@ -59,7 +59,7 @@ This is free software, licensed under the Apache License, Version 2.0 <%=percent_wifi_signal(net)%> % - + @@ -76,12 +76,12 @@ This is free software, licensed under the Apache License, Version 2.0
- + -
+
diff --git a/package/luci/applications/luci-app-upnp/luasrc/controller/upnp.lua b/package/luci/applications/luci-app-upnp/luasrc/controller/upnp.lua index c60b7c4969..e485708f0e 100644 --- a/package/luci/applications/luci-app-upnp/luasrc/controller/upnp.lua +++ b/package/luci/applications/luci-app-upnp/luasrc/controller/upnp.lua @@ -19,8 +19,12 @@ function index() end function act_status() + local uci = luci.model.uci.cursor() + local lease_file = uci:get("upnpd", "config", "upnp_lease_file") + local ipt = io.popen("iptables --line-numbers -t nat -xnvL MINIUPNPD 2>/dev/null") if ipt then + local upnpf = lease_file and io.open(lease_file, "r") local fwd = { } while true do local ln = ipt:read("*l") @@ -29,23 +33,32 @@ function act_status() elseif ln:match("^%d+") then local num, proto, extport, intaddr, intport = ln:match("^(%d+).-([a-z]+).-dpt:(%d+) to:(%S-):(%d+)") + local descr = "" if num and proto and extport and intaddr and intport then num = tonumber(num) extport = tonumber(extport) intport = tonumber(intport) + + if upnpf then + local uln = upnpf:read("*l") + if uln then descr = uln:match(string.format("^%s:%d:%s:%d:%%d*:(.*)$", proto:upper(), extport, intaddr, intport)) end + if not descr then descr = "" end + end fwd[#fwd+1] = { num = num, proto = proto:upper(), extport = extport, intaddr = intaddr, - intport = intport + intport = intport, + descr = descr } end end end + if upnpf then upnpf:close() end ipt:close() luci.http.prepare_content("application/json") diff --git a/package/luci/applications/luci-app-upnp/luasrc/view/upnp_status.htm b/package/luci/applications/luci-app-upnp/luasrc/view/upnp_status.htm index e358dcded3..89fdb5e218 100644 --- a/package/luci/applications/luci-app-upnp/luasrc/view/upnp_status.htm +++ b/package/luci/applications/luci-app-upnp/luasrc/view/upnp_status.htm @@ -29,9 +29,10 @@ tr.insertCell(-1).innerHTML = st[i].extport; tr.insertCell(-1).innerHTML = st[i].intaddr; tr.insertCell(-1).innerHTML = st[i].intport; + tr.insertCell(-1).innerHTML = st[i].descr; tr.insertCell(-1).innerHTML = String.format( - '', + '', st[i].num ); } @@ -58,6 +59,7 @@ <%:External Port%> <%:Client Address%> <%:Client Port%> + <%:Description%>   diff --git a/package/luci/applications/luci-app-upnp/po/ca/upnp.po b/package/luci/applications/luci-app-upnp/po/ca/upnp.po index bb9f88f773..2767ade5b1 100644 --- a/package/luci/applications/luci-app-upnp/po/ca/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/ca/upnp.po @@ -58,8 +58,11 @@ msgstr "Recollint dades..." msgid "Comment" msgstr "Comentari" -msgid "Delete Redirect" -msgstr "Suprimeix la redirecció" +msgid "Delete" +msgstr "" + +msgid "Description" +msgstr "" msgid "Device UUID" msgstr "UUID de dispositiu" @@ -146,6 +149,9 @@ msgstr "Enllaç de pujada" msgid "Value in KByte/s, informational only" msgstr "Valor en KByte/s, només per informació" +#~ msgid "Delete Redirect" +#~ msgstr "Suprimeix la redirecció" + #~ msgid "" #~ "UPNP allows clients in the local network to automatically configure the " #~ "router." diff --git a/package/luci/applications/luci-app-upnp/po/cs/upnp.po b/package/luci/applications/luci-app-upnp/po/cs/upnp.po index 3cefdcc10b..bfc97cca52 100644 --- a/package/luci/applications/luci-app-upnp/po/cs/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/cs/upnp.po @@ -54,8 +54,11 @@ msgstr "Probíhá sběr dat.." msgid "Comment" msgstr "Komentář" -msgid "Delete Redirect" -msgstr "Odstranit přesměrování" +msgid "Delete" +msgstr "" + +msgid "Description" +msgstr "" msgid "Device UUID" msgstr "UUID zařízení" @@ -141,10 +144,14 @@ msgstr "Uplink" msgid "Value in KByte/s, informational only" msgstr "Pouze informační hodnoty (v KByte/s)" +#~ msgid "Delete Redirect" +#~ msgstr "Odstranit přesměrování" + #~ msgid "" #~ "UPNP allows clients in the local network to automatically configure the " #~ "router." -#~ msgstr "UPnP umožňuje klientům v místní síti automaticky nakonfigurovat router." +#~ msgstr "" +#~ "UPnP umožňuje klientům v místní síti automaticky nakonfigurovat router." #~ msgid "enable" #~ msgstr "povolit" diff --git a/package/luci/applications/luci-app-upnp/po/de/upnp.po b/package/luci/applications/luci-app-upnp/po/de/upnp.po index fe6532dea5..46aa42ffe3 100644 --- a/package/luci/applications/luci-app-upnp/po/de/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/de/upnp.po @@ -56,8 +56,11 @@ msgstr "Sammle Daten..." msgid "Comment" msgstr "Kommentar" -msgid "Delete Redirect" -msgstr "Weiterleitung löschen" +msgid "Delete" +msgstr "" + +msgid "Description" +msgstr "" msgid "Device UUID" msgstr "Geräte-UUID" @@ -144,12 +147,15 @@ msgstr "Uplink" msgid "Value in KByte/s, informational only" msgstr "Wert in Kilobyte/s, nur informativ" +#~ msgid "Delete Redirect" +#~ msgstr "Weiterleitung löschen" + #~ msgid "" #~ "UPNP allows clients in the local network to automatically configure the " #~ "router." #~ msgstr "" -#~ "UPnP ermöglicht die automatische Konfiguration des Routers durch Clients im " -#~ "lokalen Netzwerk." +#~ "UPnP ermöglicht die automatische Konfiguration des Routers durch Clients " +#~ "im lokalen Netzwerk." #~ msgid "enable" #~ msgstr "aktivieren" diff --git a/package/luci/applications/luci-app-upnp/po/el/upnp.po b/package/luci/applications/luci-app-upnp/po/el/upnp.po index 8b4fa0cb10..79a02a487a 100644 --- a/package/luci/applications/luci-app-upnp/po/el/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/el/upnp.po @@ -53,7 +53,10 @@ msgstr "" msgid "Comment" msgstr "" -msgid "Delete Redirect" +msgid "Delete" +msgstr "" + +msgid "Description" msgstr "" msgid "Device UUID" diff --git a/package/luci/applications/luci-app-upnp/po/en/upnp.po b/package/luci/applications/luci-app-upnp/po/en/upnp.po index 215b34ca5b..450e62a7c9 100644 --- a/package/luci/applications/luci-app-upnp/po/en/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/en/upnp.po @@ -53,7 +53,10 @@ msgstr "" msgid "Comment" msgstr "" -msgid "Delete Redirect" +msgid "Delete" +msgstr "" + +msgid "Description" msgstr "" msgid "Device UUID" diff --git a/package/luci/applications/luci-app-upnp/po/es/upnp.po b/package/luci/applications/luci-app-upnp/po/es/upnp.po index 91e1393b20..8c26b3cf5e 100644 --- a/package/luci/applications/luci-app-upnp/po/es/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/es/upnp.po @@ -56,8 +56,11 @@ msgstr "Un momento..." msgid "Comment" msgstr "Comentario" -msgid "Delete Redirect" -msgstr "Borrar redirección" +msgid "Delete" +msgstr "" + +msgid "Description" +msgstr "" msgid "Device UUID" msgstr "UUID del dispositivo" @@ -144,12 +147,15 @@ msgstr "Enlace de subida" msgid "Value in KByte/s, informational only" msgstr "Valor en KBytes/s (sólo informativo)" +#~ msgid "Delete Redirect" +#~ msgstr "Borrar redirección" + #~ msgid "" #~ "UPNP allows clients in the local network to automatically configure the " #~ "router." #~ msgstr "" -#~ "UPnP permite que los puestos de la red local configuren automáticamente el " -#~ "router." +#~ "UPnP permite que los puestos de la red local configuren automáticamente " +#~ "el router." #~ msgid "enable" #~ msgstr "activar" diff --git a/package/luci/applications/luci-app-upnp/po/fr/upnp.po b/package/luci/applications/luci-app-upnp/po/fr/upnp.po index 4390d0f1fe..1f3f8635bd 100644 --- a/package/luci/applications/luci-app-upnp/po/fr/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/fr/upnp.po @@ -58,8 +58,11 @@ msgstr "Récupération des données…" msgid "Comment" msgstr "Commentaire" -msgid "Delete Redirect" -msgstr "Détruire la redirection" +msgid "Delete" +msgstr "" + +msgid "Description" +msgstr "" msgid "Device UUID" msgstr "UUID du périphérique" @@ -147,12 +150,15 @@ msgstr "Lien remontant" msgid "Value in KByte/s, informational only" msgstr "Valeur en Ko/s, pour information seulement" +#~ msgid "Delete Redirect" +#~ msgstr "Détruire la redirection" + #~ msgid "" #~ "UPNP allows clients in the local network to automatically configure the " #~ "router." #~ msgstr "" -#~ "UPnP permet à des clients du réseau local de configurer automatiquement le " -#~ "routeur." +#~ "UPnP permet à des clients du réseau local de configurer automatiquement " +#~ "le routeur." #~ msgid "enable" #~ msgstr "activer" diff --git a/package/luci/applications/luci-app-upnp/po/he/upnp.po b/package/luci/applications/luci-app-upnp/po/he/upnp.po index 6e4d1f196e..5b01f31b84 100644 --- a/package/luci/applications/luci-app-upnp/po/he/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/he/upnp.po @@ -49,7 +49,10 @@ msgstr "" msgid "Comment" msgstr "" -msgid "Delete Redirect" +msgid "Delete" +msgstr "" + +msgid "Description" msgstr "" msgid "Device UUID" diff --git a/package/luci/applications/luci-app-upnp/po/hu/upnp.po b/package/luci/applications/luci-app-upnp/po/hu/upnp.po index c5a2c26b2c..9f64e5a18a 100644 --- a/package/luci/applications/luci-app-upnp/po/hu/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/hu/upnp.po @@ -56,8 +56,11 @@ msgstr "Adatok összegyűjtése..." msgid "Comment" msgstr "Megjegyzés" -msgid "Delete Redirect" -msgstr "Átirányítás törlése" +msgid "Delete" +msgstr "" + +msgid "Description" +msgstr "" msgid "Device UUID" msgstr "Eszköz UUID" @@ -144,12 +147,15 @@ msgstr "Feltöltés" msgid "Value in KByte/s, informational only" msgstr "Érték KByte/s-ban, csak tájékoztató jellegű" +#~ msgid "Delete Redirect" +#~ msgstr "Átirányítás törlése" + #~ msgid "" #~ "UPNP allows clients in the local network to automatically configure the " #~ "router." #~ msgstr "" -#~ "Az UPnP lehetővé teszi a hálózatban lévő ügyfelek számára hogy automatikusan " -#~ "beállítsák a routert." +#~ "Az UPnP lehetővé teszi a hálózatban lévő ügyfelek számára hogy " +#~ "automatikusan beállítsák a routert." #~ msgid "enable" #~ msgstr "engedélyezés" diff --git a/package/luci/applications/luci-app-upnp/po/it/upnp.po b/package/luci/applications/luci-app-upnp/po/it/upnp.po index 9ef09ea048..2eb4a44044 100644 --- a/package/luci/applications/luci-app-upnp/po/it/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/it/upnp.po @@ -56,8 +56,11 @@ msgstr "Raccolgo i dati..." msgid "Comment" msgstr "Descrizione" -msgid "Delete Redirect" -msgstr "Cancella Mappatura" +msgid "Delete" +msgstr "" + +msgid "Description" +msgstr "" msgid "Device UUID" msgstr "UUID del dispositivo" @@ -144,6 +147,9 @@ msgstr "Uplink" msgid "Value in KByte/s, informational only" msgstr "Valori in KByte/s, (informativo)" +#~ msgid "Delete Redirect" +#~ msgstr "Cancella Mappatura" + #~ msgid "" #~ "UPNP allows clients in the local network to automatically configure the " #~ "router." diff --git a/package/luci/applications/luci-app-upnp/po/ja/upnp.po b/package/luci/applications/luci-app-upnp/po/ja/upnp.po index f0aff7336a..b9dae4f8d6 100644 --- a/package/luci/applications/luci-app-upnp/po/ja/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/ja/upnp.po @@ -3,22 +3,22 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-05-19 19:36+0200\n" -"PO-Revision-Date: 2016-12-24 19:55+0900\n" +"PO-Revision-Date: 2017-11-11 12:16+0900\n" "Last-Translator: INAGAKI Hiroshi \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 2.0.4\n" "Language-Team: \n" msgid "" "ACLs specify which external ports may be redirected to which internal " "addresses and ports" msgstr "" -"アクセス制御リスト(ACL) は、どの外部ポートからどの内部アドレス及びポートへリ" -"ダイレクトするかを設定します。" +"アクセス制御リスト(ACL) は、どの外部ポートからどの内部アドレス及びポートへ" +"リダイレクトするかを設定します。" msgid "Action" msgstr "動作" @@ -56,8 +56,11 @@ msgstr "データ収集中です..." msgid "Comment" msgstr "コメント" -msgid "Delete Redirect" -msgstr "リダイレクトを削除" +msgid "Delete" +msgstr "削除" + +msgid "Description" +msgstr "説明" msgid "Device UUID" msgstr "デバイス UUID" @@ -129,8 +132,8 @@ msgid "" "UPnP allows clients in the local network to automatically configure the " "router." msgstr "" -"UPnPを使用することで、ローカルネットワーク内のクライアントが自動的にルータを" -"構成することができます。" +"UPnPを使用することで、ローカルネットワーク内のクライアントが自動的にルータ" +"を構成することができます。" msgid "UPnP lease file" msgstr "UPnP リースファイル" @@ -143,20 +146,3 @@ msgstr "アップリンク" msgid "Value in KByte/s, informational only" msgstr "クライアントへの情報提供のみに使用される、KByte/sの値です。" - -#~ msgid "" -#~ "UPNP allows clients in the local network to automatically configure the " -#~ "router." -#~ msgstr "" -#~ "UPnPを使用することで、ローカルネットワーク内のクライアントが自動的にルータ" -#~ "を構成することができます。" - -#~ msgid "enable" -#~ msgstr "有効" - -#~ msgid "" -#~ "UPNP should only be enabled if absolutely necessary as it can result in " -#~ "high security risks for your network." -#~ msgstr "" -#~ "UPnPはあなたの使用するネットワークに対して、セキュリティリスクが生じる可能" -#~ "性があるため、必要な場合のみ有効にしてください。" diff --git a/package/luci/applications/luci-app-upnp/po/ms/upnp.po b/package/luci/applications/luci-app-upnp/po/ms/upnp.po index b4dce32c9b..62d4d5aec4 100644 --- a/package/luci/applications/luci-app-upnp/po/ms/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/ms/upnp.po @@ -48,7 +48,10 @@ msgstr "" msgid "Comment" msgstr "" -msgid "Delete Redirect" +msgid "Delete" +msgstr "" + +msgid "Description" msgstr "" msgid "Device UUID" diff --git a/package/luci/applications/luci-app-upnp/po/no/upnp.po b/package/luci/applications/luci-app-upnp/po/no/upnp.po index d528aa54eb..dc9daba1ba 100644 --- a/package/luci/applications/luci-app-upnp/po/no/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/no/upnp.po @@ -47,8 +47,11 @@ msgstr "Henter data..." msgid "Comment" msgstr "Kommentar" -msgid "Delete Redirect" -msgstr "Fjern Viderekobling" +msgid "Delete" +msgstr "" + +msgid "Description" +msgstr "" msgid "Device UUID" msgstr "Enhet UUID" @@ -135,6 +138,9 @@ msgstr "Opplinje" msgid "Value in KByte/s, informational only" msgstr "Verdi i KByte/sek, kun for informasjon" +#~ msgid "Delete Redirect" +#~ msgstr "Fjern Viderekobling" + #~ msgid "" #~ "UPNP allows clients in the local network to automatically configure the " #~ "router." diff --git a/package/luci/applications/luci-app-upnp/po/pl/upnp.po b/package/luci/applications/luci-app-upnp/po/pl/upnp.po index ab7818011d..0afabe326f 100644 --- a/package/luci/applications/luci-app-upnp/po/pl/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/pl/upnp.po @@ -55,8 +55,11 @@ msgstr "Zbieranie danych..." msgid "Comment" msgstr "Komentarz" -msgid "Delete Redirect" -msgstr "Usuń przekierowanie" +msgid "Delete" +msgstr "" + +msgid "Description" +msgstr "" msgid "Device UUID" msgstr "UUID urządzenia" @@ -142,6 +145,9 @@ msgstr "Uplink" msgid "Value in KByte/s, informational only" msgstr "Wartość w KBajt/s, tylko informacyjnie" +#~ msgid "Delete Redirect" +#~ msgstr "Usuń przekierowanie" + #~ msgid "" #~ "UPNP allows clients in the local network to automatically configure the " #~ "router." diff --git a/package/luci/applications/luci-app-upnp/po/pt-br/upnp.po b/package/luci/applications/luci-app-upnp/po/pt-br/upnp.po index c16aa11f84..72741d26c9 100644 --- a/package/luci/applications/luci-app-upnp/po/pt-br/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/pt-br/upnp.po @@ -57,8 +57,11 @@ msgstr "Coletando dados..." msgid "Comment" msgstr "Comentário" -msgid "Delete Redirect" -msgstr "Apague o Redirecionamento" +msgid "Delete" +msgstr "" + +msgid "Description" +msgstr "" msgid "Device UUID" msgstr "UUID do Dispositivo" @@ -145,6 +148,9 @@ msgstr "Velocidade de envio do enlace (uplink)" msgid "Value in KByte/s, informational only" msgstr "Valores em KByte/s, apenas informativas" +#~ msgid "Delete Redirect" +#~ msgstr "Apague o Redirecionamento" + #~ msgid "" #~ "UPNP allows clients in the local network to automatically configure the " #~ "router." diff --git a/package/luci/applications/luci-app-upnp/po/pt/upnp.po b/package/luci/applications/luci-app-upnp/po/pt/upnp.po index 1d001b694a..415a72b082 100644 --- a/package/luci/applications/luci-app-upnp/po/pt/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/pt/upnp.po @@ -53,7 +53,10 @@ msgstr "" msgid "Comment" msgstr "" -msgid "Delete Redirect" +msgid "Delete" +msgstr "" + +msgid "Description" msgstr "" msgid "Device UUID" diff --git a/package/luci/applications/luci-app-upnp/po/ro/upnp.po b/package/luci/applications/luci-app-upnp/po/ro/upnp.po index f9c9500529..d5e5c79932 100644 --- a/package/luci/applications/luci-app-upnp/po/ro/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/ro/upnp.po @@ -55,8 +55,11 @@ msgstr "Colecteaza date.." msgid "Comment" msgstr "Comentariu" -msgid "Delete Redirect" -msgstr "Sterge redirect" +msgid "Delete" +msgstr "" + +msgid "Description" +msgstr "" msgid "Device UUID" msgstr "UUID al dispozitivului" @@ -142,11 +145,15 @@ msgstr "Uplink" msgid "Value in KByte/s, informational only" msgstr "Valorea in KOcteti/s , doar informational" +#~ msgid "Delete Redirect" +#~ msgstr "Sterge redirect" + #~ msgid "" #~ "UPNP allows clients in the local network to automatically configure the " #~ "router." #~ msgstr "" -#~ "UPNP permite clientulor din reteaua locala sa configureze automat routerul." +#~ "UPNP permite clientulor din reteaua locala sa configureze automat " +#~ "routerul." #~ msgid "enable" #~ msgstr "activeaza" diff --git a/package/luci/applications/luci-app-upnp/po/ru/upnp.po b/package/luci/applications/luci-app-upnp/po/ru/upnp.po index 30b94cebf5..0c195ad85b 100644 --- a/package/luci/applications/luci-app-upnp/po/ru/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/ru/upnp.po @@ -58,8 +58,11 @@ msgstr "Сбор данных..." msgid "Comment" msgstr "Комментарий" -msgid "Delete Redirect" -msgstr "Удалить переадресацию" +msgid "Delete" +msgstr "" + +msgid "Description" +msgstr "" msgid "Device UUID" msgstr "UUID устройства" @@ -146,6 +149,9 @@ msgstr "Восходящий канал" msgid "Value in KByte/s, informational only" msgstr "Значение в КБ/с, только для информации" +#~ msgid "Delete Redirect" +#~ msgstr "Удалить переадресацию" + # Used in upnpmini.lua, which is marked broken, thus can be removed #~ msgid "" #~ "UPNP allows clients in the local network to automatically configure the " diff --git a/package/luci/applications/luci-app-upnp/po/sk/upnp.po b/package/luci/applications/luci-app-upnp/po/sk/upnp.po index c725333f3a..ccd256c715 100644 --- a/package/luci/applications/luci-app-upnp/po/sk/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/sk/upnp.po @@ -49,7 +49,10 @@ msgstr "" msgid "Comment" msgstr "" -msgid "Delete Redirect" +msgid "Delete" +msgstr "" + +msgid "Description" msgstr "" msgid "Device UUID" diff --git a/package/luci/applications/luci-app-upnp/po/sv/upnp.po b/package/luci/applications/luci-app-upnp/po/sv/upnp.po index 29e987ea8e..10fef558ea 100644 --- a/package/luci/applications/luci-app-upnp/po/sv/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/sv/upnp.po @@ -52,8 +52,11 @@ msgstr "Samlar in data..." msgid "Comment" msgstr "Kommentar" -msgid "Delete Redirect" -msgstr "Ta bort omdirigering" +msgid "Delete" +msgstr "" + +msgid "Description" +msgstr "" msgid "Device UUID" msgstr "Enhetens UUID" @@ -139,3 +142,6 @@ msgstr "Upplänk" msgid "Value in KByte/s, informational only" msgstr "Värde i KByte/s, endast informell" + +#~ msgid "Delete Redirect" +#~ msgstr "Ta bort omdirigering" diff --git a/package/luci/applications/luci-app-upnp/po/templates/upnp.pot b/package/luci/applications/luci-app-upnp/po/templates/upnp.pot index ae390c4874..dda0e7ea3c 100644 --- a/package/luci/applications/luci-app-upnp/po/templates/upnp.pot +++ b/package/luci/applications/luci-app-upnp/po/templates/upnp.pot @@ -42,7 +42,10 @@ msgstr "" msgid "Comment" msgstr "" -msgid "Delete Redirect" +msgid "Delete" +msgstr "" + +msgid "Description" msgstr "" msgid "Device UUID" diff --git a/package/luci/applications/luci-app-upnp/po/tr/upnp.po b/package/luci/applications/luci-app-upnp/po/tr/upnp.po index cff3be2735..1bcd2b73ab 100644 --- a/package/luci/applications/luci-app-upnp/po/tr/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/tr/upnp.po @@ -49,7 +49,10 @@ msgstr "" msgid "Comment" msgstr "" -msgid "Delete Redirect" +msgid "Delete" +msgstr "" + +msgid "Description" msgstr "" msgid "Device UUID" diff --git a/package/luci/applications/luci-app-upnp/po/uk/upnp.po b/package/luci/applications/luci-app-upnp/po/uk/upnp.po index 93afd220be..746fd3e881 100644 --- a/package/luci/applications/luci-app-upnp/po/uk/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/uk/upnp.po @@ -56,8 +56,11 @@ msgstr "Збирання даних..." msgid "Comment" msgstr "Коментар" -msgid "Delete Redirect" -msgstr "Видалити переспрямування" +msgid "Delete" +msgstr "" + +msgid "Description" +msgstr "" msgid "Device UUID" msgstr "UUID пристрою" @@ -144,6 +147,9 @@ msgstr "Висхідний канал" msgid "Value in KByte/s, informational only" msgstr "Значення (КБ/с) тільки для інформації" +#~ msgid "Delete Redirect" +#~ msgstr "Видалити переспрямування" + #~ msgid "" #~ "UPNP allows clients in the local network to automatically configure the " #~ "router." diff --git a/package/luci/applications/luci-app-upnp/po/vi/upnp.po b/package/luci/applications/luci-app-upnp/po/vi/upnp.po index 5f954999d2..d27720d2af 100644 --- a/package/luci/applications/luci-app-upnp/po/vi/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/vi/upnp.po @@ -54,7 +54,10 @@ msgstr "" msgid "Comment" msgstr "" -msgid "Delete Redirect" +msgid "Delete" +msgstr "" + +msgid "Description" msgstr "" msgid "Device UUID" diff --git a/package/luci/applications/luci-app-upnp/po/zh-cn/upnp.po b/package/luci/applications/luci-app-upnp/po/zh-cn/upnp.po index 693bbc12e9..6620d93c0d 100644 --- a/package/luci/applications/luci-app-upnp/po/zh-cn/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/zh-cn/upnp.po @@ -54,8 +54,11 @@ msgstr "正在收集数据" msgid "Comment" msgstr "备注" -msgid "Delete Redirect" -msgstr "删除转发规则" +msgid "Delete" +msgstr "" + +msgid "Description" +msgstr "" msgid "Device UUID" msgstr "设备UUID" @@ -82,7 +85,7 @@ msgid "External ports" msgstr "外部端口" msgid "General Settings" -msgstr "一般设置" +msgstr "基本设置" msgid "Internal addresses" msgstr "内部地址" @@ -140,6 +143,9 @@ msgstr "上行速率" msgid "Value in KByte/s, informational only" msgstr "值为KByte/s,仅供参考" +#~ msgid "Delete Redirect" +#~ msgstr "删除转发规则" + #~ msgid "" #~ "UPNP allows clients in the local network to automatically configure the " #~ "router." diff --git a/package/luci/applications/luci-app-upnp/po/zh-tw/upnp.po b/package/luci/applications/luci-app-upnp/po/zh-tw/upnp.po index dde94ae497..338a6629e2 100644 --- a/package/luci/applications/luci-app-upnp/po/zh-tw/upnp.po +++ b/package/luci/applications/luci-app-upnp/po/zh-tw/upnp.po @@ -52,8 +52,11 @@ msgstr "收集數據中..." msgid "Comment" msgstr "評論" -msgid "Delete Redirect" -msgstr "刪除從導" +msgid "Delete" +msgstr "" + +msgid "Description" +msgstr "" msgid "Device UUID" msgstr "設備UUID獨立識別碼" @@ -138,6 +141,9 @@ msgstr "上傳" msgid "Value in KByte/s, informational only" msgstr "僅採用 KByte/s值單位表示" +#~ msgid "Delete Redirect" +#~ msgstr "刪除從導" + #~ msgid "" #~ "UPNP allows clients in the local network to automatically configure the " #~ "router." diff --git a/package/luci/applications/luci-app-voice-diag/po/zh-tw/voice_diag.po b/package/luci/applications/luci-app-voice-diag/po/zh-tw/voice_diag.po index 5207a8b2ca..7926f797b6 100644 --- a/package/luci/applications/luci-app-voice-diag/po/zh-tw/voice_diag.po +++ b/package/luci/applications/luci-app-voice-diag/po/zh-tw/voice_diag.po @@ -17,9 +17,9 @@ msgstr "診斷" msgid "" "The diagnostics available on your device depend on the modules that you have " "installed." -msgstr "能否診斷你的設備端看你已安裝的模組" +msgstr "能否診斷您的設備端看您已安裝的模組" msgid "" "Under this menu are options that allow you to configure and perform tests on " "the voice operations of your system. These are known as diagnostics." -msgstr "選單下有選項讓你能夠設定並執行測試你系統上的語音操作. 這些都是已知的診斷方法" +msgstr "選單下有選項讓您能夠設定並執行測試您系統上的語音操作. 這些都是已知的診斷方法" diff --git a/package/luci/applications/luci-app-vpnbypass/po/zh-cn/vpnbypass.po b/package/luci/applications/luci-app-vpnbypass/po/zh-cn/vpnbypass.po new file mode 100644 index 0000000000..a1539171fc --- /dev/null +++ b/package/luci/applications/luci-app-vpnbypass/po/zh-cn/vpnbypass.po @@ -0,0 +1,61 @@ +# +# Yangfl , 2017. +# +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"PO-Revision-Date: 2017-10-29 15:30+0800\n" +"X-Generator: Gtranslator 2.91.7\n" + +msgid "Domains to Bypass" +msgstr "要绕过的域" + +msgid "Domains to be accessed directly (outside of the VPN tunnel), see" +msgstr "要直接访问的域(不使用 VPN 隧道),请参见" + +msgid "Enable/start service" +msgstr "启用/启动服务" + +msgid "Local IP Addresses to Bypass" +msgstr "要绕过的本地 IP 地址" + +msgid "" +"Local IP addresses or subnets with direct internet access (outside of the " +"VPN tunnel)" +msgstr "直接访问的本地 IP 地址或子网(不使用 VPN 隧道)" + +msgid "Local Ports to Bypass" +msgstr "要绕过的本地端口" + +msgid "Local ports to trigger VPN Bypass" +msgstr "触发 VPN 绕过的本地端口" + +msgid "README" +msgstr "README" + +msgid "Remote IP Addresses to Bypass" +msgstr "要绕过的远程 IP 地址" + +msgid "" +"Remote IP addresses or subnets which will be accessed directly (outside of " +"the VPN tunnel)" +msgstr "将直接访问的远程 IP 地址或子网(不使用 VPN 隧道)" + +msgid "Remote Ports to Bypass" +msgstr "要绕过的远程端口" + +msgid "Remote ports to trigger VPN Bypass" +msgstr "触发 VPN 绕过的远程端口" + +msgid "VPN Bypass" +msgstr "VPN 绕过" + +msgid "VPN Bypass Settings" +msgstr "VPN 绕过设置" + +msgid "for syntax" +msgstr "对于语法" diff --git a/package/luci/applications/luci-app-vpnbypass/po/zh-tw/vpnbypass.po b/package/luci/applications/luci-app-vpnbypass/po/zh-tw/vpnbypass.po new file mode 100644 index 0000000000..90ba85f7ce --- /dev/null +++ b/package/luci/applications/luci-app-vpnbypass/po/zh-tw/vpnbypass.po @@ -0,0 +1,61 @@ +# +# Yangfl , 2017. +# +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"PO-Revision-Date: 2017-10-29 15:30+0800\n" +"X-Generator: Gtranslator 2.91.7\n" + +msgid "Domains to Bypass" +msgstr "要繞過的域" + +msgid "Domains to be accessed directly (outside of the VPN tunnel), see" +msgstr "要直接訪問的域(不使用 VPN 隧道),請參見" + +msgid "Enable/start service" +msgstr "啟用/啟動服務" + +msgid "Local IP Addresses to Bypass" +msgstr "要繞過的本地 IP 位址" + +msgid "" +"Local IP addresses or subnets with direct internet access (outside of the " +"VPN tunnel)" +msgstr "直接訪問的本地 IP 位址或子網(不使用 VPN 隧道)" + +msgid "Local Ports to Bypass" +msgstr "要繞過的本地埠" + +msgid "Local ports to trigger VPN Bypass" +msgstr "觸發 VPN 繞過的本地埠" + +msgid "README" +msgstr "README" + +msgid "Remote IP Addresses to Bypass" +msgstr "要繞過的遠端 IP 位址" + +msgid "" +"Remote IP addresses or subnets which will be accessed directly (outside of " +"the VPN tunnel)" +msgstr "將直接訪問的遠端 IP 位址或子網(不使用 VPN 隧道)" + +msgid "Remote Ports to Bypass" +msgstr "要繞過的遠端埠" + +msgid "Remote ports to trigger VPN Bypass" +msgstr "觸發 VPN 繞過的遠端埠" + +msgid "VPN Bypass" +msgstr "VPN 繞過" + +msgid "VPN Bypass Settings" +msgstr "VPN 繞過設定" + +msgid "for syntax" +msgstr "對於語法" diff --git a/package/luci/applications/luci-app-watchcat/po/zh-cn/watchcat.po b/package/luci/applications/luci-app-watchcat/po/zh-cn/watchcat.po index 991fc48a23..fc9f7d6286 100644 --- a/package/luci/applications/luci-app-watchcat/po/zh-cn/watchcat.po +++ b/package/luci/applications/luci-app-watchcat/po/zh-cn/watchcat.po @@ -21,7 +21,7 @@ msgid "" "How often to check internet connection. Default unit is seconds, you can you " "use the suffix 'm' for minutes, 'h' for hours or 'd' for days" msgstr "" -"检测网络连接的频率。默认单位为秒,你可以使用'm'作为后缀表示分钟,‘h’表示小" +"检测网络连接的频率。默认单位为秒,您可以使用'm'作为后缀表示分钟,‘h’表示小" "时‘d’表示天。" msgid "" @@ -31,7 +31,7 @@ msgid "" "for hours or 'd' for days" msgstr "" "在周期模式,此处定义了重启的周期。在联网模式,这个表示没有网络连接情况下到执" -"行重启的最长时间间隔。默认单位为秒,你可以使用'm'作为后缀表示分钟,‘h’表示小" +"行重启的最长时间间隔。默认单位为秒,您可以使用'm'作为后缀表示分钟,‘h’表示小" "时‘d’表示天。" msgid "Operating mode" diff --git a/package/luci/applications/luci-app-wol/po/zh-cn/wol.po b/package/luci/applications/luci-app-wol/po/zh-cn/wol.po index 7bbae61173..3c66a16b0c 100644 --- a/package/luci/applications/luci-app-wol/po/zh-cn/wol.po +++ b/package/luci/applications/luci-app-wol/po/zh-cn/wol.po @@ -1,23 +1,26 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-19 00:29+0200\n" -"PO-Revision-Date: 2012-06-21 17:52+0200\n" -"Last-Translator: phantasm131 \n" -"Language-Team: QQ Group 75543259 \n" +"PO-Revision-Date: 2017-10-28 16:44+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Pootle 2.0.6\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "Broadcast on all interfaces" msgstr "向所有接口广播" msgid "Choose the host to wake up or enter a custom MAC address to use" -msgstr "选择要唤醒的主机或者输入自定义mac地址" +msgstr "选择要唤醒的主机,或者输入自定义 MAC 地址" msgid "Host to wake up" msgstr "选择要唤醒的主机" @@ -26,7 +29,7 @@ msgid "Network interface to use" msgstr "选择使用的网络接口" msgid "Send to broadcast address" -msgstr "" +msgstr "发送到广播地址" #, fuzzy msgid "" @@ -34,17 +37,17 @@ msgid "" msgstr "有时只有一个工具生效。如果其中一个失效,请尝试另一个" msgid "Specifies the interface the WoL packet is sent on" -msgstr "限定网络唤醒数据包将被发送到的接口" +msgstr "限定将发送网络唤醒数据包的接口" msgid "Starting WoL utility:" -msgstr "正在启动网络唤醒工具" +msgstr "正在启动网络唤醒工具:" msgid "Wake on LAN" msgstr "网络唤醒" msgid "" "Wake on LAN is a mechanism to remotely boot computers in the local network." -msgstr "网络唤醒提供了从远程启动本地网络内计算机的机制。" +msgstr "网络唤醒是一个远程启动本地网络内计算机的机制。" msgid "Wake up host" msgstr "唤醒主机" diff --git a/package/luci/applications/luci-app-wol/po/zh-tw/wol.po b/package/luci/applications/luci-app-wol/po/zh-tw/wol.po index 553d2d04fe..3ef8ea2e2c 100644 --- a/package/luci/applications/luci-app-wol/po/zh-tw/wol.po +++ b/package/luci/applications/luci-app-wol/po/zh-tw/wol.po @@ -1,51 +1,56 @@ +# +# Yangfl , 2017. +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"PO-Revision-Date: 2014-05-14 10:25+0200\n" -"Last-Translator: omnistack \n" -"Language-Team: none\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-04-19 00:29+0200\n" +"PO-Revision-Date: 2017-10-28 16:44+0800\n" +"Last-Translator: Yangfl \n" +"Language-Team: \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Pootle 2.0.6\n" +"X-Generator: Gtranslator 2.91.7\n" msgid "Broadcast on all interfaces" -msgstr "廣播到所有介面" +msgstr "向所有介面廣播" msgid "Choose the host to wake up or enter a custom MAC address to use" -msgstr "叫醒訂選的主機或者打入特定的MAC位址以便使用" +msgstr "選擇要喚醒的主機,或者輸入自定義 MAC 位址" msgid "Host to wake up" -msgstr "要喚醒主機清單" +msgstr "選擇要喚醒的主機" msgid "Network interface to use" -msgstr "使用的網路介面" +msgstr "選擇使用的網路介面" msgid "Send to broadcast address" -msgstr "" +msgstr "傳送到廣播位址" #, fuzzy msgid "" "Sometimes only one of the two tools works. If one fails, try the other one" -msgstr "某些時候全部工具裡面只有一個發生作用,試試另外一個" +msgstr "有時只有一個工具生效。如果其中一個失效,請嘗試另一個" msgid "Specifies the interface the WoL packet is sent on" -msgstr "指定WoL喚醒封包將傳到哪個介面" +msgstr "限定將傳送網路喚醒資料包的介面" msgid "Starting WoL utility:" -msgstr "啟用喚醒工具:" +msgstr "正在啟動網路喚醒工具:" msgid "Wake on LAN" -msgstr "LAN區網喚醒" +msgstr "網路喚醒" msgid "" "Wake on LAN is a mechanism to remotely boot computers in the local network." -msgstr "Wol就是在本地網路中針對遠端開機電腦喚醒的機制" +msgstr "網路喚醒是一個遠端啟動本地網路內計算機的機制。" msgid "Wake up host" msgstr "喚醒主機" msgid "WoL program" -msgstr "Wol喚醒程式" +msgstr "網路喚醒程式" diff --git a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd.sh b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd.sh index 01a93874ab..9ebcb46b13 100755 --- a/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd.sh +++ b/package/luci/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_olsrd.sh @@ -73,7 +73,7 @@ setup_nameservice() { uci batch <<- EOF set $cfg.olsrd_nameservice=LoadPlugin - set $cfg.olsrd_nameservice.library="olsrd_nameservice.so.0.3" + set $cfg.olsrd_nameservice.library="olsrd_nameservice.so.0.4" set $cfg.olsrd_nameservice.latlon_file="$llfile" set $cfg.olsrd_nameservice.hosts_file="$hosts" set $cfg.olsrd_nameservice.sighup_pid_file="/var/run/dnsmasq.pid" @@ -118,7 +118,7 @@ setup_jsoninfo() { proto="$1" uci batch <<- EOF set $cfg.olsrd_jsoninfo=LoadPlugin - set $cfg.olsrd_jsoninfo.library="olsrd_jsoninfo.so.0.0" + set $cfg.olsrd_jsoninfo.library="olsrd_jsoninfo.so.1.1" EOF if [ "$proto" = "6" ]; then uci set $cfg.olsrd_jsoninfo.ipv6only='1' @@ -130,7 +130,7 @@ setup_txtinfo() { proto="$1" uci batch <<- EOF set $cfg.olsrd_txtinfo=LoadPlugin - set $cfg.olsrd_txtinfo.library="olsrd_txtinfo.so.0.1" + set $cfg.olsrd_txtinfo.library="olsrd_txtinfo.so.1.1" EOF if [ "$proto" = "6" ]; then uci set $cfg.olsrd_txtinfo.ipv6only='1' diff --git a/package/luci/luci.mk b/package/luci/luci.mk index 1ddb73d498..0b2ec4e700 100644 --- a/package/luci/luci.mk +++ b/package/luci/luci.mk @@ -7,7 +7,7 @@ LUCI_NAME?=$(notdir ${CURDIR}) LUCI_TYPE?=$(word 2,$(subst -, ,$(LUCI_NAME))) LUCI_BASENAME?=$(patsubst luci-$(LUCI_TYPE)-%,%,$(LUCI_NAME)) -LUCI_LANGUAGES:=$(filter-out templates,$(notdir $(wildcard ${CURDIR}/po/*))) +LUCI_LANGUAGES:=$(sort $(filter-out templates,$(notdir $(wildcard ${CURDIR}/po/*)))) LUCI_DEFAULTS:=$(notdir $(wildcard ${CURDIR}/root/etc/uci-defaults/*)) LUCI_PKGARCH?=$(if $(realpath src/Makefile),,all) diff --git a/package/luci/modules/luci-base/Makefile b/package/luci/modules/luci-base/Makefile index 291789cb64..6393195e59 100644 --- a/package/luci/modules/luci-base/Makefile +++ b/package/luci/modules/luci-base/Makefile @@ -16,7 +16,7 @@ LUCI_DEPENDS:=+lua +libuci-lua +luci-lib-nixio +luci-lib-ip +rpcd +libubus-lua + PKG_SOURCE:=LuaSrcDiet-0.12.1.tar.bz2 PKG_SOURCE_URL:=https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/luasrcdiet -PKG_MD5SUM:=ed7680f2896269ae8633756e7edcf09050812f78c8f49e280e63c30d14f35aea +PKG_HASH:=ed7680f2896269ae8633756e7edcf09050812f78c8f49e280e63c30d14f35aea PKG_LICENSE:=Apache-2.0 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/LuaSrcDiet-0.12.1 diff --git a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi.js b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi.js index 884eb62f68..b334703bdf 100644 --- a/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi.js +++ b/package/luci/modules/luci-base/htdocs/luci-static/resources/cbi.js @@ -229,7 +229,7 @@ var cbi_validators = { { return cbi_validators.hostname.apply(this) || ((ipv4only != 1) && cbi_validators.ipaddr.apply(this)) || - ((ipv4only == 1) && cb_validators.ip4addr.apply(this)); + ((ipv4only == 1) && cbi_validators.ip4addr.apply(this)); }, 'hostname': function() diff --git a/package/luci/modules/luci-base/luasrc/http/protocol.lua b/package/luci/modules/luci-base/luasrc/http/protocol.lua index 061c6ad544..0a8b2fbab9 100644 --- a/package/luci/modules/luci-base/luasrc/http/protocol.lua +++ b/package/luci/modules/luci-base/luasrc/http/protocol.lua @@ -264,7 +264,7 @@ function header_source( sock ) end -- Content-Type. Stores all extracted data associated with its parameter name --- in the params table withing the given message object. Multiple parameter +-- in the params table within the given message object. Multiple parameter -- values are stored as tables, ordinary ones as strings. -- If an optional file callback function is given then it is feeded with the -- file contents chunk by chunk and only the extracted file name is stored @@ -433,7 +433,7 @@ function mimedecode_message_body( src, msg, filecb ) end -- Content-Type. Stores all extracted data associated with its parameter name --- in the params table withing the given message object. Multiple parameter +-- in the params table within the given message object. Multiple parameter -- values are stored as tables, ordinary ones as strings. function urldecode_message_body( src, msg ) diff --git a/package/luci/modules/luci-base/luasrc/model/firewall.lua b/package/luci/modules/luci-base/luasrc/model/firewall.lua index 5573a9b86c..feff0855c4 100644 --- a/package/luci/modules/luci-base/luasrc/model/firewall.lua +++ b/package/luci/modules/luci-base/luasrc/model/firewall.lua @@ -498,11 +498,13 @@ function forwarding.dest(self) end function forwarding.src_zone(self) - return zone(self:src()) + local z = zone(self:src()) + return z.sid and z end function forwarding.dest_zone(self) - return zone(self:dest()) + local z = zone(self:dest()) + return z.sid and z end diff --git a/package/luci/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua b/package/luci/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua index 419c191f2b..48ae5747c0 100644 --- a/package/luci/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua +++ b/package/luci/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua @@ -30,7 +30,7 @@ TZ = { { 'Africa/Johannesburg', 'SAST-2' }, { 'Africa/Juba', 'EAT-3' }, { 'Africa/Kampala', 'EAT-3' }, - { 'Africa/Khartoum', 'EAT-3' }, + { 'Africa/Khartoum', 'CAT-2' }, { 'Africa/Kigali', 'CAT-2' }, { 'Africa/Kinshasa', 'WAT-1' }, { 'Africa/Lagos', 'WAT-1' }, @@ -54,7 +54,7 @@ TZ = { { 'Africa/Sao Tome', 'GMT0' }, { 'Africa/Tripoli', 'EET-2' }, { 'Africa/Tunis', 'CET-1' }, - { 'Africa/Windhoek', 'WAT-1WAST,M9.1.0,M4.1.0' }, + { 'Africa/Windhoek', 'CAT-2' }, { 'America/Adak', 'HST10HDT,M3.2.0,M11.1.0' }, { 'America/Anchorage', 'AKST9AKDT,M3.2.0,M11.1.0' }, { 'America/Anguilla', 'AST4' }, @@ -110,7 +110,7 @@ TZ = { { 'America/Glace Bay', 'AST4ADT,M3.2.0,M11.1.0' }, { 'America/Godthab', '<-03>3<-02>,M3.5.0/-2,M10.5.0/-1' }, { 'America/Goose Bay', 'AST4ADT,M3.2.0,M11.1.0' }, - { 'America/Grand Turk', 'AST4' }, + { 'America/Grand Turk', 'EST5EDT,M3.2.0,M11.1.0' }, { 'America/Grenada', 'AST4' }, { 'America/Guadeloupe', 'AST4' }, { 'America/Guatemala', 'CST6' }, @@ -238,7 +238,7 @@ TZ = { { 'Asia/Dili', '<+09>-9' }, { 'Asia/Dubai', '<+04>-4' }, { 'Asia/Dushanbe', '<+05>-5' }, - { 'Asia/Famagusta', '<+03>-3' }, + { 'Asia/Famagusta', 'EET-2EEST,M3.5.0/3,M10.5.0/4' }, { 'Asia/Gaza', 'EET-2EEST,M3.5.6/1,M10.5.6/1' }, { 'Asia/Hebron', 'EET-2EEST,M3.5.6/1,M10.5.6/1' }, { 'Asia/Ho Chi Minh', '<+07>-7' }, @@ -425,7 +425,7 @@ TZ = { { 'Pacific/Efate', '<+11>-11' }, { 'Pacific/Enderbury', '<+13>-13' }, { 'Pacific/Fakaofo', '<+13>-13' }, - { 'Pacific/Fiji', '<+12>-12<+13>,M11.1.0,M1.3.0/3' }, + { 'Pacific/Fiji', '<+12>-12<+13>,M11.1.0,M1.2.1/147' }, { 'Pacific/Funafuti', '<+12>-12' }, { 'Pacific/Galapagos', '<-06>6' }, { 'Pacific/Gambier', '<-09>9' }, @@ -451,7 +451,7 @@ TZ = { { 'Pacific/Saipan', 'ChST-10' }, { 'Pacific/Tahiti', '<-10>10' }, { 'Pacific/Tarawa', '<+12>-12' }, - { 'Pacific/Tongatapu', '<+13>-13<+14>,M11.1.0,M1.3.0/3' }, + { 'Pacific/Tongatapu', '<+13>-13' }, { 'Pacific/Wake', '<+12>-12' }, { 'Pacific/Wallis', '<+12>-12' }, } diff --git a/package/luci/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm b/package/luci/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm index 2a433b5696..546fd8e85a 100644 --- a/package/luci/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm +++ b/package/luci/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm @@ -43,11 +43,12 @@  ⇒  <% for _, fwd in ipairs(zone:get_forwardings_by("src")) do fz = fwd:dest_zone() - empty = false %> + if fz then + empty = false %>   - <% end %> + <% end end %> <% if empty then %>