From 733fe56263570fec7939f4b122147aa9d139f883 Mon Sep 17 00:00:00 2001
From: foxlesbiao
Date: Fri, 5 Jun 2026 10:01:34 +0800
Subject: [PATCH 01/14] =?UTF-8?q?=E4=B8=AD=E6=96=87=E7=BF=BB=E8=AF=91?=
=?UTF-8?q?=EF=BC=9A=E5=AE=8C=E6=88=90=E5=85=A8=E9=83=A822=E4=B8=AAWeb=20U?=
=?UTF-8?q?I=E9=A1=B5=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
已翻译文件:
- 404.htm, dmxmap.htm, edit.htm, index.htm
- liveview.htm, liveviewws2D.htm, msg.htm
- settings.htm, settings_2D.htm, settings_dmx.htm
- settings_leds.htm, settings_pin.htm, settings_pininfo.htm
- settings_sec.htm, settings_sync.htm, settings_time.htm
- settings_ui.htm, settings_um.htm, settings_wifi.htm
- update.htm, usermod.htm, welcome.htm
翻译内容:标题、按钮、标签、提示文字、错误信息
保持不变:HTML结构、JS代码、CSS、变量名、URL
---
wled00/data/404.htm | 10 +-
wled00/data/dmxmap.htm | 6 +-
wled00/data/edit.htm | 28 +--
wled00/data/index.htm | 190 ++++++++++----------
wled00/data/liveview.htm | 4 +-
wled00/data/liveviewws2D.htm | 4 +-
wled00/data/msg.htm | 8 +-
wled00/data/settings.htm | 26 +--
wled00/data/settings_2D.htm | 92 +++++-----
wled00/data/settings_dmx.htm | 32 ++--
wled00/data/settings_leds.htm | 300 +++++++++++++++----------------
wled00/data/settings_pin.htm | 10 +-
wled00/data/settings_pininfo.htm | 24 +--
wled00/data/settings_sec.htm | 74 ++++----
wled00/data/settings_sync.htm | 206 ++++++++++-----------
wled00/data/settings_time.htm | 114 ++++++------
wled00/data/settings_ui.htm | 98 +++++-----
wled00/data/settings_um.htm | 42 ++---
wled00/data/settings_wifi.htm | 102 +++++------
wled00/data/update.htm | 50 +++---
wled00/data/usermod.htm | 4 +-
wled00/data/welcome.htm | 20 +--
22 files changed, 721 insertions(+), 723 deletions(-)
diff --git a/wled00/data/404.htm b/wled00/data/404.htm
index caf6856def..096a38eb88 100644
--- a/wled00/data/404.htm
+++ b/wled00/data/404.htm
@@ -1,10 +1,10 @@
-
+
- Not found
+ 未找到
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/wled00/data/settings_2D.htm b/wled00/data/settings_2D.htm
index 76f84fa61b..5992f06f57 100644
--- a/wled00/data/settings_2D.htm
+++ b/wled00/data/settings_2D.htm
@@ -1,9 +1,9 @@
-
+
- 2D Set-up
+ 2D 设置
@@ -252,61 +252,61 @@
diff --git a/wled00/data/settings_dmx.htm b/wled00/data/settings_dmx.htm
index 391c2bdc97..0e6e1a75ea 100644
--- a/wled00/data/settings_dmx.htm
+++ b/wled00/data/settings_dmx.htm
@@ -1,9 +1,9 @@
-
+
- DMX Settings
+ DMX 设置
-
- Pin Info
- Loading...
-
+
+ 引脚信息
+ 加载中...
+
diff --git a/wled00/data/settings_sec.htm b/wled00/data/settings_sec.htm
index 4586d44a5d..19ae63b80a 100644
--- a/wled00/data/settings_sec.htm
+++ b/wled00/data/settings_sec.htm
@@ -1,9 +1,9 @@
-
+
- Security & Update Setup
+ 安全和更新设置
blocks instead of the entire file,
preventing cross-block matching errors
4. Safe default output: --output-dir defaults to a temp directory
instead of overwriting English source files. Added safety warning
when output == source.
---
tools/i18n/build.py | 175 +++++++++++++++++++++++++++++---------------
1 file changed, 114 insertions(+), 61 deletions(-)
diff --git a/tools/i18n/build.py b/tools/i18n/build.py
index 6aa733eb23..dc1dda9677 100644
--- a/tools/i18n/build.py
+++ b/tools/i18n/build.py
@@ -1,13 +1,19 @@
#!/usr/bin/env python3
"""
-WLED i18n Build Script (v2 - surgical replacement)
+WLED i18n Build Script (v3 - fixes from coderabbitai review)
Generates translated HTML files from English source + locale JSON.
Uses raw string replacement instead of BeautifulSoup serialization
to preserve original HTML formatting exactly (critical for ESP32 flash size).
+Fixes applied:
+1. File-scoped HTML replacement (no cross-file bleed)
+2. Script-block-aware HTML replacement (skip )', re.DOTALL | re.IGNORECASE)
+ last_end = 0
+
+ for match in pattern.finditer(content):
+ # Non-script content before this script block
+ before = content[last_end:match.start()]
+ if before:
+ segments.append((before, False))
+ # The script block itself (including tags)
+ segments.append((match.group(0), True))
+ last_end = match.end()
+
+ # Remaining non-script content after last script block
+ after = content[last_end:]
+ if after:
+ segments.append((after, False))
+
+ return segments
def replace_html_text(content, original, translated):
@@ -66,12 +99,13 @@ def replace_html_text(content, original, translated):
- >original< (direct child text)
- > original < (with whitespace)
- >... original< (text after sibling element)
+
+ IMPORTANT: content must be non-script segments only.
"""
escaped = re.escape(original)
total = 0
# Pattern 1: Text between > and or > and < (with optional whitespace)
- # Matches: >text< and >text
p1 = re.compile(r'(>)\s*(' + escaped + r')\s*(?\w)')
content, n = p1.subn(r'\g<1>' + translated + r'\g<3>', content)
total += n
@@ -90,10 +124,7 @@ def replace_html_text(content, original, translated):
def replace_html_attr(content, attr, original, translated):
- """Replace HTML attribute value using exact string matching.
- Finds: attr="original" and replaces with attr="translated"
- """
- # Match attribute="value" with exact value
+ """Replace HTML attribute value using exact string matching."""
pattern = re.compile(
r'(' + re.escape(attr) + r'\s*=\s*")(' + re.escape(original) + r')(")',
re.IGNORECASE
@@ -102,34 +133,30 @@ def replace_html_attr(content, attr, original, translated):
return new_content, count
-def replace_js_string(content, original, translated):
- """Replace a JS string literal in block.
+ Returns (new_block, count).
"""
for quote in ['"', "'", '`']:
escaped = re.escape(original)
- # Match the string within quotes, only inside )', re.DOTALL | re.IGNORECASE)
last_end = 0
for match in pattern.finditer(content):
- # Non-script content before this script block
before = content[last_end:match.start()]
if before:
segments.append((before, False))
- # The script block itself (including tags)
segments.append((match.group(0), True))
last_end = match.end()
- # Remaining non-script content after last script block
after = content[last_end:]
if after:
segments.append((after, False))
@@ -94,28 +156,18 @@ def split_script_blocks(content):
def replace_html_text(content, original, translated):
- """Replace HTML text content using exact string matching.
- Handles:
- - >original< (direct child text)
- - > original < (with whitespace)
- - >... original< (text after sibling element)
-
- IMPORTANT: content must be non-script segments only.
- """
+ """Replace HTML text content using exact string matching."""
escaped = re.escape(original)
total = 0
- # Pattern 1: Text between > and or > and < (with optional whitespace)
p1 = re.compile(r'(>)\s*(' + escaped + r')\s*(?\w)')
content, n = p1.subn(r'\g<1>' + translated + r'\g<3>', content)
total += n
- # Pattern 2: Text after a closing tag (e.g. Color palette
)
p2 = re.compile(r'(\w+>)\s*(' + escaped + r')\s*(?\w)')
content, n = p2.subn(r'\g<1>' + translated + r'\g<3>', content)
total += n
- # Pattern 3: Standalone text line (with leading whitespace)
p3 = re.compile(r'^(\s*)(' + escaped + r')(\s*)$', re.MULTILINE)
content, n = p3.subn(r'\g<1>' + translated + r'\g<3>', content)
total += n
@@ -134,12 +186,9 @@ def replace_html_attr(content, attr, original, translated):
def replace_js_in_block(script_block, original, translated):
- """Replace a JS string literal within a single block.
- Returns (new_block, count).
- """
+ """Replace a JS string literal within a single block."""
for quote in ['"', "'", '`']:
escaped = re.escape(original)
- # Match quoted string within this single script block
pattern = re.compile(
r'([' + quote + r'])(' + escaped + r')([' + quote + r'])'
)
@@ -154,28 +203,21 @@ def replace_js_in_block(script_block, original, translated):
def apply_translations(content, file_key, translations, lang_code):
- """Apply all translations to a file's content.
- Uses script-block-aware processing to avoid cross-contamination.
- """
+ """Apply all translations to a file's content."""
total = 0
- # 1. Update lang attribute
content = re.sub(
r'(]*lang\s*=\s*")([^"]+)(")',
r'\g<1>' + lang_code + r'\g<3>',
content, count=1
)
- # 2. Split into script/non-script segments
segments = split_script_blocks(content)
-
- # 3. Apply translations per-segment
file_translations = translations.get(file_key, {})
new_segments = []
for segment_text, is_script in segments:
if is_script:
- # Apply JS translations to script blocks
for key, entry in file_translations.items():
if key.startswith('js:'):
segment_text, count = replace_js_in_block(
@@ -183,7 +225,6 @@ def apply_translations(content, file_key, translations, lang_code):
)
total += count
else:
- # Apply HTML translations to non-script content only
for key, entry in file_translations.items():
if key.startswith('html:'):
parts = key.split(':')
@@ -205,9 +246,9 @@ def apply_translations(content, file_key, translations, lang_code):
return ''.join(new_segments), total
-def build_locale(locale, source_dir=None, output_dir=None):
+def build_locale(locale, source_dir=None, output_dir=None, translations_dir=None):
"""Build translated HTM files for a given locale."""
- file_translations = load_translations(locale)
+ file_translations = load_translations(locale, translations_dir)
if not file_translations:
print(f"Warning: No translations found for {locale}")
return 0
@@ -220,7 +261,6 @@ def build_locale(locale, source_dir=None, output_dir=None):
print(f"Error: No .htm files found in {src_dir}", file=sys.stderr)
return 0
- # BUG FIX #4: Never default to overwriting source files
if output_dir:
out_dir = Path(output_dir)
else:
@@ -229,7 +269,6 @@ def build_locale(locale, source_dir=None, output_dir=None):
out_dir.mkdir(parents=True, exist_ok=True)
- # Safety check: warn if output == source
if out_dir.resolve() == src_dir.resolve():
print(f"WARNING: Output dir equals source dir ({src_dir}).", file=sys.stderr)
print(f" English source files will be overwritten!", file=sys.stderr)
@@ -257,18 +296,51 @@ def build_locale(locale, source_dir=None, output_dir=None):
return total_applied
+def validate_translations(locale, translations_dir=None):
+ """Validate translation completeness against English source files."""
+ file_translations = load_translations(locale, translations_dir)
+ if not file_translations:
+ print(f"No translations for {locale}")
+ return False
+
+ total_keys = 0
+ total_translated = 0
+
+ for fname, entries in file_translations.items():
+ translated = sum(1 for e in entries.values() if e.get('translation', '').strip())
+ total = len(entries)
+ total_keys += total
+ total_translated += translated
+ status = "OK" if translated == total else f"{total - translated} missing"
+ print(f" {fname}: {translated}/{total} ({status})")
+
+ pct = (total_translated / total_keys * 100) if total_keys else 0
+ print(f"\nTotal: {total_translated}/{total_keys} ({pct:.1f}%)")
+ return total_translated == total_keys
+
+
def main():
import argparse
parser = argparse.ArgumentParser(description='Build translated WLED Web UI files')
parser.add_argument('--locale', required=True, help='Locale code (e.g. zh_CN)')
parser.add_argument('--source-dir', default=None, help='Source directory (default: wled00/data/)')
parser.add_argument('--output-dir', default=None, help='Output directory (default: temp dir)')
+ parser.add_argument('--translations-dir', default=None,
+ help='Translations directory (default: auto-detect via PlatformIO libdeps)')
+ parser.add_argument('--validate', action='store_true',
+ help='Validate translation completeness (no build)')
args = parser.parse_args()
+ if args.validate:
+ print(f"Validating translations for {args.locale}")
+ print("=" * 40)
+ ok = validate_translations(args.locale, args.translations_dir)
+ sys.exit(0 if ok else 1)
+
print(f"WLED i18n Build — {args.locale}")
print("=" * 40)
- count = build_locale(args.locale, args.source_dir, args.output_dir)
+ count = build_locale(args.locale, args.source_dir, args.output_dir, args.translations_dir)
if count == 0:
print("\nWarning: No translations applied!")
@@ -289,7 +361,6 @@ def pre_build(source, target, env):
return
print(f"[i18n] Building with locale: {locale}")
- # Use build directory for output, not source directory
build_dir = Path(env.subst('$BUILD_DIR')) / 'i18n' / locale
build_locale(locale, output_dir=build_dir)
diff --git a/tools/i18n/locales/fx_zh_CN.json b/tools/i18n/locales/fx_zh_CN.json
deleted file mode 100644
index 5a7ea54b56..0000000000
--- a/tools/i18n/locales/fx_zh_CN.json
+++ /dev/null
@@ -1,294 +0,0 @@
-{
- "effects": {
- "_data_FX_MODE_STATIC": "常亮",
- "_data_FX_MODE_COPY": "复制段",
- "_data_FX_MODE_BLINK": "闪烁",
- "_data_FX_MODE_BLINK_RAINBOW": "彩虹闪烁",
- "_data_FX_MODE_STROBE": "频闪",
- "_data_FX_MODE_STROBE_RAINBOW": "彩虹频闪",
- "_data_FX_MODE_COLOR_WIPE": "擦除",
- "_data_FX_MODE_COLOR_SWEEP": "扫动",
- "_data_FX_MODE_COLOR_WIPE_RANDOM": "随机擦除",
- "_data_FX_MODE_COLOR_SWEEP_RANDOM": "随机扫动",
- "_data_FX_MODE_RANDOM_COLOR": "随机颜色",
- "_data_FX_MODE_DYNAMIC": "动态",
- "_data_FX_MODE_DYNAMIC_SMOOTH": "平滑动态",
- "_data_FX_MODE_BREATH": "呼吸",
- "_data_FX_MODE_FADE": "渐变",
- "_data_FX_MODE_SCAN": "扫描",
- "_data_FX_MODE_DUAL_SCAN": "双向扫描",
- "_data_FX_MODE_RAINBOW": "色彩循环",
- "_data_FX_MODE_RAINBOW_CYCLE": "彩虹",
- "_data_FX_MODE_THEATER_CHASE": "剧场灯",
- "_data_FX_MODE_THEATER_CHASE_RAINBOW": "彩虹剧场灯",
- "_data_FX_MODE_RUNNING_DUAL": "双向跑马灯",
- "_data_FX_MODE_RUNNING_LIGHTS": "跑马灯",
- "_data_FX_MODE_SAW": "锯齿波",
- "_data_FX_MODE_TWINKLE": "闪烁",
- "_data_FX_MODE_DISSOLVE": "溶解",
- "_data_FX_MODE_DISSOLVE_RANDOM": "随机溶解",
- "_data_FX_MODE_SPARKLE": "闪耀",
- "_data_FX_MODE_FLASH_SPARKLE": "暗闪耀",
- "_data_FX_MODE_HYPER_SPARKLE": "增强闪耀",
- "_data_FX_MODE_MULTI_STROBE": "强力频闪",
- "_data_FX_MODE_ANDROID": "安卓",
- "_data_FX_MODE_CHASE_COLOR": "追逐",
- "_data_FX_MODE_CHASE_RANDOM": "随机追逐",
- "_data_FX_MODE_CHASE_RAINBOW": "彩虹追逐",
- "_data_FX_MODE_CHASE_RAINBOW_WHITE": "彩虹跑者",
- "_data_FX_MODE_COLORFUL": "多彩",
- "_data_FX_MODE_TRAFFIC_LIGHT": "交通灯",
- "_data_FX_MODE_CHASE_FLASH": "闪光追逐",
- "_data_FX_MODE_CHASE_FLASH_RANDOM": "随机闪光追逐",
- "_data_FX_MODE_RUNNING_COLOR": "追逐 2",
- "_data_FX_MODE_RUNNING_RANDOM": "流光",
- "_data_FX_MODE_LARSON_SCANNER": "扫描仪",
- "_data_FX_MODE_DUAL_LARSON_SCANNER": "双向扫描仪",
- "_data_FX_MODE_COMET": "灯塔",
- "_data_FX_MODE_FIREWORKS": "烟花",
- "_data_FX_MODE_RAIN": "雨滴",
- "_data_FX_MODE_FIRE_FLICKER": "火焰闪烁",
- "_data_FX_MODE_GRADIENT": "渐变色",
- "_data_FX_MODE_LOADING": "加载中",
- "_data_FX_MODE_TWO_DOTS": "双点",
- "_data_FX_MODE_FAIRY": "精灵",
- "_data_FX_MODE_FAIRYTWINKLE": "精灵闪烁",
- "_data_FX_MODE_TRICOLOR_CHASE": "追逐 3",
- "_data_FX_MODE_ICU": "重症监护",
- "_data_FX_MODE_TRICOLOR_WIPE": "三向擦除",
- "_data_FX_MODE_TRICOLOR_FADE": "三向渐变",
- "_data_FX_MODE_MULTI_COMET": "多彗星",
- "_data_FX_MODE_RANDOM_CHASE": "流光 2",
- "_data_FX_MODE_OSCILLATE": "振荡",
- "_data_FX_MODE_LIGHTNING": "闪电",
- "_data_FX_MODE_PRIDE_2015": "彩虹骄傲",
- "_data_FX_MODE_COLORWAVES": "色波",
- "_data_FX_MODE_JUGGLE": "杂耍",
- "_data_FX_MODE_PALETTE": "调色板",
- "_data_FX_MODE_FIRE_2012": "火焰 2012",
- "_data_FX_MODE_BPM": "节拍",
- "_data_FX_MODE_FILLNOISE8": "填充噪点",
- "_data_FX_MODE_NOISE16_1": "噪点 1",
- "_data_FX_MODE_NOISE16_2": "噪点 2",
- "_data_FX_MODE_NOISE16_3": "噪点 3",
- "_data_FX_MODE_NOISE16_4": "噪点 4",
- "_data_FX_MODE_COLORTWINKLE": "色彩闪烁",
- "_data_FX_MODE_LAKE": "湖面",
- "_data_FX_MODE_METEOR": "流星",
- "_data_FX_MODE_RAILWAY": "铁路",
- "_data_FX_MODE_RIPPLE": "涟漪",
- "_data_FX_MODE_RIPPLE_RAINBOW": "彩虹涟漪",
- "_data_FX_MODE_TWINKLEFOX": "闪烁狐",
- "_data_FX_MODE_TWINKLECAT": "闪烁猫",
- "_data_FX_MODE_HALLOWEEN_EYES": "万圣节眼睛",
- "_data_FX_MODE_STATIC_PATTERN": "实心图案",
- "_data_FX_MODE_TRI_STATIC_PATTERN": "三色实心图案",
- "_data_FX_MODE_SPOTS": "光斑",
- "_data_FX_MODE_SPOTS_FADE": "光斑渐变",
- "_data_FX_MODE_BOUNCINGBALLS": "弹跳球",
- "_data_FX_MODE_ROLLINGBALLS": "滚动球",
- "_data_FX_MODE_PACMAN": "吃豆人",
- "_data_FX_MODE_SINELON": "正弦追逐",
- "_data_FX_MODE_SINELON_DUAL": "双向正弦追逐",
- "_data_FX_MODE_SINELON_RAINBOW": "彩虹正弦追逐",
- "_data_FX_MODE_GLITTER": "闪光",
- "_data_FX_MODE_SOLID_GLITTER": "实心闪光",
- "_data_FX_MODE_POPCORN": "爆米花",
- "_data_FX_MODE_CANDLE": "蜡烛",
- "_data_FX_MODE_CANDLE_MULTI": "多蜡烛",
- "_data_FX_MODE_STARBURST": "烟花星爆",
- "_data_FX_MODE_EXPLODING_FIREWORKS": "烟花 1D",
- "_data_FX_MODE_DRIP": "水滴",
- "_data_FX_MODE_TETRIX": "俄罗斯方块",
- "_data_FX_MODE_PLASMA": "等离子",
- "_data_FX_MODE_PERCENT": "百分比",
- "_data_FX_MODE_HEARTBEAT": "心跳",
- "_data_FX_MODE_PACIFICA": "太平洋",
- "_data_FX_MODE_SUNRISE": "日出",
- "_data_FX_MODE_PHASED": "相位",
- "_data_FX_MODE_PHASEDNOISE": "相位噪点",
- "_data_FX_MODE_TWINKLEUP": "渐亮闪烁",
- "_data_FX_MODE_NOISEPAL": "噪点调色板",
- "_data_FX_MODE_SINEWAVE": "正弦波",
- "_data_FX_MODE_FLOW": "流动",
- "_data_FX_MODE_CHUNCHUN": "春春",
- "_data_FX_MODE_DANCING_SHADOWS": "舞动阴影",
- "_data_FX_MODE_WASHING_MACHINE": "洗衣机",
- "_data_FX_MODE_IMAGE": "图像",
- "_data_FX_MODE_BLENDS": "混合",
- "_data_FX_MODE_TV_SIMULATOR": "电视模拟器",
- "_data_FX_MODE_AURORA": "极光",
- "_data_FX_MODE_PERLINMOVE": "柏林噪声移动",
- "_data_FX_MODE_WAVESINS": "正弦波",
- "_data_FX_MODE_FLOWSTRIPE": "流动条纹",
- "_data_FX_MODE_SHIMMER": "微光",
- "_data_FX_MODE_2DBLACKHOLE": "黑洞",
- "_data_FX_MODE_2DCOLOREDBURSTS": "彩色爆发",
- "_data_FX_MODE_2DDNA": "DNA",
- "_data_FX_MODE_2DDNASPIRAL": "DNA 螺旋",
- "_data_FX_MODE_2DDRIFT": "漂移",
- "_data_FX_MODE_2DFIRENOISE": "火焰噪点",
- "_data_FX_MODE_2DFRIZZLES": "卷曲",
- "_data_FX_MODE_2DGAMEOFLIFE": "生命游戏",
- "_data_FX_MODE_2DHIPHOTIC": "海波光",
- "_data_FX_MODE_2DJULIA": "茱莉亚",
- "_data_FX_MODE_2DLISSAJOUS": "利萨如图形",
- "_data_FX_MODE_2DMATRIX": "矩阵",
- "_data_FX_MODE_2DMETABALLS": "超球",
- "_data_FX_MODE_2DNOISE": "2D 噪点",
- "_data_FX_MODE_2DPLASMABALL": "等离子球",
- "_data_FX_MODE_2DPOLARLIGHTS": "极光",
- "_data_FX_MODE_2DPULSER": "脉冲器",
- "_data_FX_MODE_2DSINDOTS": "正弦点",
- "_data_FX_MODE_2DSQUAREDSWIRL": "方形漩涡",
- "_data_FX_MODE_2DSUNRADIATION": "太阳辐射",
- "_data_FX_MODE_2DTARTAN": "格子呢",
- "_data_FX_MODE_2DSPACESHIPS": "太空船",
- "_data_FX_MODE_2DCRAZYBEES": "疯狂蜜蜂",
- "_data_FX_MODE_2DGHOSTRIDER": "幽灵骑士",
- "_data_FX_MODE_2DBLOBS": "液滴",
- "_data_FX_MODE_2DSCROLLTEXT": "滚动文字",
- "_data_FX_MODE_2DDRIFTROSE": "漂移玫瑰",
- "_data_FX_MODE_2DPLASMAROTOZOOM": "旋转缩放",
- "_data_FX_MODE_RIPPLEPEAK": "涟漪峰值",
- "_data_FX_MODE_2DSWIRL": "漩涡",
- "_data_FX_MODE_2DWAVERLY": "波浪",
- "_data_FX_MODE_GRAVCENTER": "重心",
- "_data_FX_MODE_GRAVCENTRIC": "离心重力",
- "_data_FX_MODE_GRAVIMETER": "重力仪",
- "_data_FX_MODE_GRAVFREQ": "重力频率",
- "_data_FX_MODE_JUGGLES": "杂耍",
- "_data_FX_MODE_MATRIPIX": "矩阵像素",
- "_data_FX_MODE_MIDNOISE": "中部噪点",
- "_data_FX_MODE_NOISEFIRE": "噪点火焰",
- "_data_FX_MODE_NOISEMETER": "噪点计",
- "_data_FX_MODE_PIXELWAVE": "像素波",
- "_data_FX_MODE_PLASMOID": "等离子体",
- "_data_FX_MODE_PUDDLEPEAK": "水坑峰值",
- "_data_FX_MODE_PUDDLES": "水坑",
- "_data_FX_MODE_PIXELS": "像素",
- "_data_FX_MODE_BLURZ": "模糊",
- "_data_FX_MODE_DJLIGHT": "DJ 灯光",
- "_data_FX_MODE_FREQMAP": "频率映射",
- "_data_FX_MODE_FREQMATRIX": "频率矩阵",
- "_data_FX_MODE_FREQPIXELS": "频率像素",
- "_data_FX_MODE_FREQWAVE": "频率波",
- "_data_FX_MODE_NOISEMOVE": "噪点移动",
- "_data_FX_MODE_ROCKTAVES": "摇滚八度",
- "_data_FX_MODE_WATERFALL": "瀑布",
- "_data_FX_MODE_2DGEQ": "图形均衡器",
- "_data_FX_MODE_2DFUNKYPLANK": "时髦木板",
- "_data_FX_MODE_2DAKEMI": "明美",
- "_data_FX_MODE_2DDISTORTIONWAVES": "扭曲波",
- "_data_FX_MODE_2DSOAP": "肥皂泡",
- "_data_FX_MODE_2DOCTOPUS": "章鱼",
- "_data_FX_MODE_2DWAVINGCELL": "波动细胞",
- "_data_FX_MODE_COLORCLOUDS": "彩云",
- "_data_FX_MODE_PARTICLEATTRACTOR": "粒子吸引子",
- "_data_FX_MODE_PARTICLEBLOBS": "粒子液滴",
- "_data_FX_MODE_PARTICLEBOX": "粒子盒子",
- "_data_FX_MODE_PARTICLECIRCULARGEQ": "粒子新星均衡器",
- "_data_FX_MODE_PARTICLEDANCINGSHADOWS": "粒子舞动阴影",
- "_data_FX_MODE_PARTICLEDRIP": "粒子滴落",
- "_data_FX_MODE_PARTICLEFIRE": "粒子火焰",
- "_data_FX_MODE_PARTICLEFIREWORKS": "粒子烟花",
- "_data_FX_MODE_PARTICLEGALAXY": "粒子星系",
- "_data_FX_MODE_PARTICLEGEQ": "粒子 2D 均衡器",
- "_data_FX_MODE_PARTICLEGHOSTRIDER": "粒子幽灵骑士",
- "_data_FX_MODE_PARTICLEIMPACT": "粒子冲击",
- "_data_FX_MODE_PARTICLEPERLIN": "粒子模糊噪点",
- "_data_FX_MODE_PARTICLEPIT": "粒子球池",
- "_data_FX_MODE_PARTICLESPRAY": "粒子喷射",
- "_data_FX_MODE_PARTICLEVOLCANO": "粒子火山",
- "_data_FX_MODE_PARTICLEVORTEX": "粒子漩涡",
- "_data_FX_MODE_PARTICLEWATERFALL": "粒子瀑布",
- "_data_FX_MODE_PSPINBALL": "粒子弹球",
- "_data_FX_MODE_PS_1DSPRAY": "粒子喷射 1D",
- "_data_FX_MODE_PS_1D_GEQ": "粒子 1D 均衡器",
- "_data_FX_MODE_PS_BALANCE": "粒子 1D 平衡",
- "_data_FX_MODE_PS_CHASE": "粒子追逐",
- "_data_FX_MODE_PS_FIRE1D": "粒子火焰 1D",
- "_data_FX_MODE_PS_FIREWORKS1D": "粒子烟花 1D",
- "_data_FX_MODE_PS_HOURGLASS": "粒子沙漏",
- "_data_FX_MODE_PS_SONICBOOM": "粒子音爆",
- "_data_FX_MODE_PS_SONICSTREAM": "粒子音速流",
- "_data_FX_MODE_PS_SPARKLER": "粒子烟花棒",
- "_data_FX_MODE_PS_SPRINGY": "粒子弹簧",
- "_data_FX_MODE_PS_STARBURST": "粒子星爆",
- "_data_FX_MODE_SLOW_TRANSITION": "慢速过渡"
- },
- "palettes": {
- "palette_0": "默认",
- "palette_1": "* 随机循环",
- "palette_2": "* 颜色 1",
- "palette_3": "* 颜色 1&2",
- "palette_4": "* 颜色渐变",
- "palette_5": "* 仅颜色",
- "palette_6": "派对",
- "palette_7": "云朵",
- "palette_8": "熔岩",
- "palette_9": "海洋",
- "palette_10": "森林",
- "palette_11": "彩虹",
- "palette_12": "彩虹条纹",
- "palette_13": "日落",
- "palette_14": "瑞文戴尔",
- "palette_15": "微风",
- "palette_16": "红蓝",
- "palette_17": "黄色渐出",
- "palette_18": "类似色",
- "palette_19": "飞溅",
- "palette_20": "粉彩",
- "palette_21": "日落 2",
- "palette_22": "海滩",
- "palette_23": "复古",
- "palette_24": "启程",
- "palette_25": "风景",
- "palette_26": "山毛榉",
- "palette_27": "冰沙",
- "palette_28": "胡尔特",
- "palette_29": "胡尔特 64",
- "palette_30": "干湿",
- "palette_31": "七月",
- "palette_32": "绿意",
- "palette_33": "瑞辉",
- "palette_34": "三次色",
- "palette_35": "火焰",
- "palette_36": "冰火",
- "palette_37": "青蓝",
- "palette_38": "浅粉",
- "palette_39": "秋天",
- "palette_40": "品红",
- "palette_41": "红品红",
- "palette_42": "黄品红",
- "palette_43": "黄蓝",
- "palette_44": "橙青",
- "palette_45": "提亚马特",
- "palette_46": "四月夜",
- "palette_47": "橙园",
- "palette_48": "C9",
- "palette_49": "樱花",
- "palette_50": "极光",
- "palette_51": "亚特兰蒂斯",
- "palette_52": "C9 2",
- "palette_53": "C9 新版",
- "palette_54": "温度",
- "palette_55": "极光 2",
- "palette_56": "复古小丑",
- "palette_57": "糖果",
- "palette_58": "珊瑚礁",
- "palette_59": "精灵珊瑚",
- "palette_60": "半蓝",
- "palette_61": "粉红糖果",
- "palette_62": "红珊瑚",
- "palette_63": "水蓝闪光",
- "palette_64": "热黄蓝",
- "palette_65": "柔光",
- "palette_66": "红色闪光",
- "palette_67": "红色闪烁",
- "palette_68": "红色偏移",
- "palette_69": "红潮",
- "palette_70": "糖果 2",
- "palette_71": "交通灯"
- }
-}
\ No newline at end of file
diff --git a/tools/i18n/locales/zh_CN.json b/tools/i18n/locales/zh_CN.json
deleted file mode 100644
index 1dcbb0cb8c..0000000000
--- a/tools/i18n/locales/zh_CN.json
+++ /dev/null
@@ -1,2408 +0,0 @@
-{
- "welcome.htm": {
- "html:html > head > title:text": {
- "en": "Welcome!",
- "translation": "欢迎!",
- "context": "welcome.htm: (html_text)"
- },
- "html:html > body > div:text": {
- "en": "Connect to your local WiFi here!",
- "translation": "在此连接您的本地 WiFi!",
- "context": "welcome.htm: (html_text)"
- },
- "html:html > body > div > h1:text": {
- "en": "Welcome to WLED!",
- "translation": "欢迎使用 WLED!",
- "context": "welcome.htm: (html_text)"
- },
- "html:html > body > div > h3:text": {
- "en": "A versatile tool for controlling LEDs",
- "translation": "一款多功能 LED 控制工具",
- "context": "welcome.htm: (html_text)"
- },
- "html:html > body > div > h4:text": {
- "en": "Find out more at wled.me",
- "translation": "访问 wled.me 了解更多信息",
- "context": "welcome.htm: (html_text)"
- },
- "html:html > body > div > b:text": {
- "en": "Next steps:",
- "translation": "后续步骤:",
- "context": "welcome.htm: (html_text)"
- },
- "html:html > body > div > button:nth-of-type(1):text": {
- "en": "WiFi settings",
- "translation": "WiFi 设置",
- "context": "welcome.htm: (html_text)"
- },
- "html:html > body > div > i:text": {
- "en": "Just trying this out in AP mode?",
- "translation": "只是想在 AP 模式下试试?",
- "context": "welcome.htm: (html_text)"
- },
- "html:html > body > div > button:nth-of-type(2):text": {
- "en": "To the controls!",
- "translation": "进入控制界面!",
- "context": "welcome.htm: (html_text)"
- }
- },
- "404.htm": {
- "html:html > body > h1:text": {
- "en": "404 Not Found",
- "translation": "404 未找到",
- "context": "404.htm: (html_text)"
- },
- "html:html > body > b:text": {
- "en": "Akemi does not know where you are headed...",
- "translation": "Akemi 不知道你要去哪里...",
- "context": "404.htm: (html_text)"
- },
- "html:html > body > button:text": {
- "en": "Back to controls",
- "translation": "返回控制界面",
- "context": "404.htm: (html_text)"
- }
- },
- "edit.htm": {
- "js:edit.htm:77:ef93d8c8": {
- "en": "
body > noscript > div:text": {
- "en": "Sorry, WLED UI needs JavaScript!",
- "translation": "抱歉,WLED 界面需要 JavaScript!",
- "context": "index.htm: (html_text)"
- },
- "html:button#buttonPower > p:text": {
- "en": "Power",
- "translation": "电源",
- "context": "index.htm: (html_text)"
- },
- "html:button#buttonNl > p:text": {
- "en": "Timer",
- "translation": "定时",
- "context": "index.htm: (html_text)"
- },
- "html:button#buttonSync > p:text": {
- "en": "Sync",
- "translation": "同步",
- "context": "index.htm: (html_text)"
- },
- "html:button#buttonSr > p:text": {
- "en": "Peek",
- "translation": "预览",
- "context": "index.htm: (html_text)"
- },
- "html:button#buttonI > p:text": {
- "en": "Info",
- "translation": "信息",
- "context": "index.htm: (html_text)"
- },
- "html:button#buttonNodes > p:text": {
- "en": "Nodes",
- "translation": "节点",
- "context": "index.htm: (html_text)"
- },
- "html:div#top > div > div:nth-of-type(1) > button:nth-of-type(7) > p:text": {
- "en": "Config",
- "translation": "配置",
- "context": "index.htm: (html_text)"
- },
- "html:button#buttonPcm > p:text": {
- "en": "PC Mode",
- "translation": "PC 模式",
- "context": "index.htm: (html_text)"
- },
- "html:div#briwrap > p:text": {
- "en": "Brightness",
- "translation": "亮度",
- "context": "index.htm: (html_text)"
- },
- "html:div#hwrap > div:title": {
- "en": "Hue",
- "translation": "色相",
- "context": "index.htm: (html_title)"
- },
- "html:div#swrap > div:title": {
- "en": "Saturation",
- "translation": "饱和度",
- "context": "index.htm: (html_title)"
- },
- "html:div#vwrap > div:title": {
- "en": "Value/Brightness",
- "translation": "明度/亮度",
- "context": "index.htm: (html_title)"
- },
- "html:div#kwrap > div:title": {
- "en": "Kelvin/Temperature",
- "translation": "色温",
- "context": "index.htm: (html_title)"
- },
- "html:div#rwrap > div:title": {
- "en": "Red channel",
- "translation": "红色通道",
- "context": "index.htm: (html_title)"
- },
- "html:div#gwrap > div:title": {
- "en": "Green channel",
- "translation": "绿色通道",
- "context": "index.htm: (html_title)"
- },
- "html:div#bwrap > div:title": {
- "en": "Blue channel",
- "translation": "蓝色通道",
- "context": "index.htm: (html_title)"
- },
- "html:div#whibri:title": {
- "en": "White channel",
- "translation": "白色通道",
- "context": "index.htm: (html_title)"
- },
- "html:div#wbal > div:title": {
- "en": "White balance",
- "translation": "白平衡",
- "context": "index.htm: (html_title)"
- },
- "html:div#qcs-w > div:nth-of-type(11):title": {
- "en": "Random",
- "translation": "随机",
- "context": "index.htm: (html_title)"
- },
- "html:button#csl0:title": {
- "en": "Select slot",
- "translation": "选择槽位",
- "context": "index.htm: (html_title)"
- },
- "html:button#csl1:title": {
- "en": "Select slot",
- "translation": "选择槽位",
- "context": "index.htm: (html_title)"
- },
- "html:button#csl2:title": {
- "en": "Select slot",
- "translation": "选择槽位",
- "context": "index.htm: (html_title)"
- },
- "html:input#hexc:title": {
- "en": "Hex RGB",
- "translation": "十六进制 RGB",
- "context": "index.htm: (html_title)"
- },
- "html:div#btns > div:nth-of-type(1) > button:title": {
- "en": "File editor",
- "translation": "文件编辑器",
- "context": "index.htm: (html_title)"
- },
- "html:div#btns > div:nth-of-type(1) > div:text": {
- "en": "Files",
- "translation": "文件",
- "context": "index.htm: (html_text)"
- },
- "html:div#btns > div:nth-of-type(2) > button:title": {
- "en": "PixelForge",
- "translation": "PixelForge",
- "context": "index.htm: (html_title)"
- },
- "html:div#btns > div:nth-of-type(2) > div:text": {
- "en": "PixelForge",
- "translation": "PixelForge",
- "context": "index.htm: (html_text)"
- },
- "html:div#btns > div:nth-of-type(3) > button:title": {
- "en": "Custom palettes",
- "translation": "自定义调色板",
- "context": "index.htm: (html_title)"
- },
- "html:div#btns > div:nth-of-type(3) > div:text": {
- "en": "Palettes",
- "translation": "调色板",
- "context": "index.htm: (html_text)"
- },
- "html:p#pall:text": {
- "en": "Color palette",
- "translation": "调色板",
- "context": "index.htm: (html_text)"
- },
- "html:div#palw > div:nth-of-type(1) > input:placeholder": {
- "en": "Search",
- "translation": "搜索",
- "context": "index.htm: (html_placeholder)"
- },
- "html:div#pallist > div > label > div > span:text": {
- "en": "Loading...",
- "translation": "加载中...",
- "context": "index.htm: (html_text)"
- },
- "html:p#modeLabel:text": {
- "en": "Effect mode",
- "translation": "特效模式",
- "context": "index.htm: (html_text)"
- },
- "html:div#fxFind > input:placeholder": {
- "en": "Search",
- "translation": "搜索",
- "context": "index.htm: (html_placeholder)"
- },
- "html:label#filterPal:title": {
- "en": "Uses palette",
- "translation": "使用调色板",
- "context": "index.htm: (html_title)"
- },
- "html:label#filter0D:title": {
- "en": "Single pixel",
- "translation": "单像素",
- "context": "index.htm: (html_title)"
- },
- "html:label#filter1D:title": {
- "en": "1D",
- "translation": "1D",
- "context": "index.htm: (html_title)"
- },
- "html:label#filter2D:title": {
- "en": "2D",
- "translation": "2D",
- "context": "index.htm: (html_title)"
- },
- "html:label#filterVol:title": {
- "en": "Volume",
- "translation": "音量",
- "context": "index.htm: (html_title)"
- },
- "html:label#filterFreq:title": {
- "en": "Frequency",
- "translation": "频率",
- "context": "index.htm: (html_title)"
- },
- "html:div#fxlist > div > label > div > span:text": {
- "en": "Loading...",
- "translation": "加载中...",
- "context": "index.htm: (html_text)"
- },
- "html:div#slider0 > i:title": {
- "en": "Freeze",
- "translation": "冻结",
- "context": "index.htm: (html_title)"
- },
- "html:div#slider0 > div:title": {
- "en": "Effect speed",
- "translation": "特效速度",
- "context": "index.htm: (html_title)"
- },
- "html:div#slider1 > i:title": {
- "en": "Toggle labels",
- "translation": "切换标签",
- "context": "index.htm: (html_title)"
- },
- "html:div#slider1 > div:title": {
- "en": "Effect intensity",
- "translation": "特效强度",
- "context": "index.htm: (html_title)"
- },
- "html:div#slider2 > div:title": {
- "en": "Custom 1",
- "translation": "自定义 1",
- "context": "index.htm: (html_title)"
- },
- "html:div#slider3 > div:title": {
- "en": "Custom 2",
- "translation": "自定义 2",
- "context": "index.htm: (html_title)"
- },
- "html:div#slider4 > div:title": {
- "en": "Custom 3",
- "translation": "自定义 3",
- "context": "index.htm: (html_title)"
- },
- "html:label#opt0:title": {
- "en": "Check 1",
- "translation": "选项 1",
- "context": "index.htm: (html_title)"
- },
- "html:label#opt1:title": {
- "en": "Check 2",
- "translation": "选项 2",
- "context": "index.htm: (html_title)"
- },
- "html:label#opt2:title": {
- "en": "Check 3",
- "translation": "选项 3",
- "context": "index.htm: (html_title)"
- },
- "html:p#segLabel:text": {
- "en": "Segments",
- "translation": "段",
- "context": "index.htm: (html_text)"
- },
- "html:div#segcont:text": {
- "en": "Loading...",
- "translation": "加载中...",
- "context": "index.htm: (html_text)"
- },
- "html:button#rsbtn:text": {
- "en": "Reset segments",
- "translation": "重置段",
- "context": "index.htm: (html_text)"
- },
- "html:div#Segments > p:nth-of-type(2):text": {
- "en": "Transition: s",
- "translation": "过渡时间: s",
- "context": "index.htm: (html_text)"
- },
- "html:input#tt:value": {
- "en": "0.7",
- "translation": "0.7",
- "context": "index.htm: (html_value)"
- },
- "html:select#bs > option:nth-of-type(1):text": {
- "en": "Fade",
- "translation": "淡入淡出",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(2):text": {
- "en": "Fairy Dust",
- "translation": "仙尘",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(3):text": {
- "en": "Swipe right",
- "translation": "向右滑动",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(4):text": {
- "en": "Swipe left",
- "translation": "向左滑动",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(5):text": {
- "en": "Push right",
- "translation": "向右推移",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(6):text": {
- "en": "Push left",
- "translation": "向左推移",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(7):text": {
- "en": "Outside-in",
- "translation": "从外向内",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(8):text": {
- "en": "Inside-out",
- "translation": "从内向外",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(9):text": {
- "en": "Swipe up",
- "translation": "向上滑动",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(10):text": {
- "en": "Swipe down",
- "translation": "向下滑动",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(11):text": {
- "en": "Open H",
- "translation": "水平展开",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(12):text": {
- "en": "Open V",
- "translation": "垂直展开",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(13):text": {
- "en": "Push up",
- "translation": "向上推移",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(14):text": {
- "en": "Push down",
- "translation": "向下推移",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(15):text": {
- "en": "Swipe TL",
- "translation": "左上滑动",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(16):text": {
- "en": "Swipe TR",
- "translation": "右上滑动",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(17):text": {
- "en": "Swipe BR",
- "translation": "右下滑动",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(18):text": {
- "en": "Swipe BL",
- "translation": "左下滑动",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(19):text": {
- "en": "Circular Out",
- "translation": "向外扩散",
- "context": "index.htm: (html_text)"
- },
- "html:select#bs > option:nth-of-type(20):text": {
- "en": "Circular In",
- "translation": "向内收缩",
- "context": "index.htm: (html_text)"
- },
- "html:div#Presets > p:text": {
- "en": "Presets",
- "translation": "预设",
- "context": "index.htm: (html_text)"
- },
- "html:div#psFind > input:placeholder": {
- "en": "Search",
- "translation": "搜索",
- "context": "index.htm: (html_placeholder)"
- },
- "html:div#pcont > span:text": {
- "en": "Loading...",
- "translation": "加载中...",
- "context": "index.htm: (html_text)"
- },
- "html:div#bot > button:nth-of-type(1) > p:text": {
- "en": "Colors",
- "translation": "颜色",
- "context": "index.htm: (html_text)"
- },
- "html:div#bot > button:nth-of-type(2) > p:text": {
- "en": "Effects",
- "translation": "特效",
- "context": "index.htm: (html_text)"
- },
- "html:div#bot > button:nth-of-type(3) > p:text": {
- "en": "Segments",
- "translation": "段",
- "context": "index.htm: (html_text)"
- },
- "html:div#bot > button:nth-of-type(4) > p:text": {
- "en": "Presets",
- "translation": "预设",
- "context": "index.htm: (html_text)"
- },
- "html:div#kv:text": {
- "en": "Loading...",
- "translation": "加载中...",
- "context": "index.htm: (html_text)"
- },
- "html:div#info > div:nth-of-type(3) > button:nth-of-type(1):text": {
- "en": "Refresh",
- "translation": "刷新",
- "context": "index.htm: (html_text)"
- },
- "html:div#info > div:nth-of-type(3) > button:nth-of-type(2):text": {
- "en": "Instance List",
- "translation": "实例列表",
- "context": "index.htm: (html_text)"
- },
- "html:button#updBt:text": {
- "en": "Update WLED",
- "translation": "更新 WLED",
- "context": "index.htm: (html_text)"
- },
- "html:button#resetbtn:text": {
- "en": "Reboot WLED",
- "translation": "重启 WLED",
- "context": "index.htm: (html_text)"
- },
- "html:div#info > span:text": {
- "en": "Made with by and the",
- "translation": "由 和 精心打造,以及",
- "context": "index.htm: (html_text)"
- },
- "html:div#info > span > a:nth-of-type(1):text": {
- "en": "Aircoookie",
- "translation": "Aircoookie",
- "context": "index.htm: (html_text)"
- },
- "html:div#info > span > a:nth-of-type(2):text": {
- "en": "WLED community",
- "translation": "WLED 社区",
- "context": "index.htm: (html_text)"
- },
- "html:div#ndlt:text": {
- "en": "WLED instances",
- "translation": "WLED 实例",
- "context": "index.htm: (html_text)"
- },
- "html:div#kn:text": {
- "en": "Loading...",
- "translation": "加载中...",
- "context": "index.htm: (html_text)"
- },
- "html:div#nodes > div:nth-of-type(3) > button:text": {
- "en": "Refresh",
- "translation": "刷新",
- "context": "index.htm: (html_text)"
- },
- "html:div#klv2D:text": {
- "en": "Loading...",
- "translation": "加载中...",
- "context": "index.htm: (html_text)"
- },
- "html:div#rover:text": {
- "en": "To use built-in effects, use an override button below.\n\tYou can return to realtime mode by pressing the star in the top left corner.",
- "translation": "要使用内置特效,请使用下方的覆盖按钮。\n\t按左上角的星标可返回实时模式。",
- "context": "index.htm: (html_text)"
- },
- "html:div#rover > button:nth-of-type(1):text": {
- "en": "Override once",
- "translation": "覆盖一次",
- "context": "index.htm: (html_text)"
- },
- "html:div#rover > button:nth-of-type(2):text": {
- "en": "Override until reboot",
- "translation": "覆盖直到重启",
- "context": "index.htm: (html_text)"
- },
- "html:div#rover > span:text": {
- "en": "For best performance, it is recommended to turn off the streaming source when not in use.",
- "translation": "为获得最佳性能,建议在不使用时关闭流媒体源。",
- "context": "index.htm: (html_text)"
- }
- },
- "usermod.htm": {
- "html:html > body:text": {
- "en": "No usermod custom web page set.",
- "translation": "未设置用户模块自定义网页。",
- "context": "usermod.htm: (html_text)"
- }
- },
- "settings_pininfo.htm": {
- "html:html > body > h2:text": {
- "en": "Pin Info",
- "translation": "引脚信息",
- "context": "settings_pininfo.htm: (html_text)"
- },
- "html:html > body > button:nth-of-type(1):text": {
- "en": "Back",
- "translation": "返回",
- "context": "settings_pininfo.htm: (html_text)"
- },
- "html:div#pins:text": {
- "en": "Loading...",
- "translation": "加载中...",
- "context": "settings_pininfo.htm: (html_text)"
- },
- "js:settings_pininfo.htm:42:f84ade24": {
- "en": "Error loading pin info",
- "translation": "加载引脚信息时出错",
- "context": "settings_pininfo.htm:42 (js_innerHTML)"
- }
- },
- "settings.htm": {
- "html:button#b:text": {
- "en": "Back",
- "translation": "返回",
- "context": "settings.htm: (html_text)"
- },
- "html:html > body > button:nth-of-type(2):text": {
- "en": "WiFi & Network",
- "translation": "WiFi 和网络",
- "context": "settings.htm: (html_text)"
- },
- "html:html > body > button:nth-of-type(3):text": {
- "en": "LED & Hardware",
- "translation": "LED 和硬件",
- "context": "settings.htm: (html_text)"
- },
- "html:html > body > button:nth-of-type(4):text": {
- "en": "Pin Info",
- "translation": "引脚信息",
- "context": "settings.htm: (html_text)"
- },
- "html:button#2dbtn:text": {
- "en": "2D Configuration",
- "translation": "2D 配置",
- "context": "settings.htm: (html_text)"
- },
- "html:html > body > button:nth-of-type(6):text": {
- "en": "User Interface",
- "translation": "用户界面",
- "context": "settings.htm: (html_text)"
- },
- "html:button#dmxbtn:text": {
- "en": "DMX Output",
- "translation": "DMX 输出",
- "context": "settings.htm: (html_text)"
- },
- "html:html > body > button:nth-of-type(8):text": {
- "en": "Sync Interfaces",
- "translation": "同步接口",
- "context": "settings.htm: (html_text)"
- },
- "html:html > body > button:nth-of-type(9):text": {
- "en": "Time & Macros",
- "translation": "时间和宏",
- "context": "settings.htm: (html_text)"
- },
- "html:html > body > button:nth-of-type(10):text": {
- "en": "Usermods",
- "translation": "用户模块",
- "context": "settings.htm: (html_text)"
- },
- "html:html > body > button:nth-of-type(11):text": {
- "en": "Security & Updates",
- "translation": "安全和更新",
- "context": "settings.htm: (html_text)"
- }
- },
- "settings_wifi.htm": {
- "html:form#form_s > div:nth-of-type(1) > button:nth-of-type(1):text": {
- "en": "Back",
- "translation": "返回",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(1) > button:nth-of-type(2):text": {
- "en": "Save & Connect",
- "translation": "保存并连接",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > h2:text": {
- "en": "WiFi & Network Settings",
- "translation": "WiFi 和网络设置",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > button:nth-of-type(1):text": {
- "en": "Back",
- "translation": "返回",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > button:nth-of-type(2):text": {
- "en": "Save & Connect",
- "translation": "保存并连接",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(4):text": {
- "en": "DNS server address:\n...\n\n\t\tmDNS address (leave empty for no mDNS):\n\t\thttp:// .local\n\t\tClient IP:",
- "translation": "DNS 服务器地址:\n...\n\n\t\tmDNS 地址(留空则不启用 mDNS):\n\t\thttp:// .local\n\t\t客户端 IP:",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(4) > h3:text": {
- "en": "DNS & mDNS",
- "translation": "DNS 和 mDNS",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5):text": {
- "en": "AP SSID (leave empty for no AP): \n\t\tHide AP name: \n\t\tAP password (leave empty for open): \n\t\tAccess Point WiFi channel: \n\t\tAP opens:\n\t\t\n\t\tAP IP:",
- "translation": "AP SSID(留空则不启用 AP): \n\t\t隐藏 AP 名称: \n\t\tAP 密码(留空则开放): \n\t\t接入点 WiFi 信道: \n\t\tAP 开启方式:\n\t\t\n\t\tAP IP:",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > h3:text": {
- "en": "Configure Access Point",
- "translation": "配置接入点",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > select > option:nth-of-type(1):text": {
- "en": "No connection after boot",
- "translation": "启动后无连接时",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > select > option:nth-of-type(2):text": {
- "en": "Disconnected",
- "translation": "断开连接时",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > select > option:nth-of-type(3):text": {
- "en": "Always",
- "translation": "始终",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > select > option:nth-of-type(4):text": {
- "en": "Never (not recommended)",
- "translation": "从不(不推荐)",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > select > option:nth-of-type(5):text": {
- "en": "Temporary (no connection after boot)",
- "translation": "临时(启动后无连接时)",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(6):text": {
- "en": "Force 802.11g mode (ESP8266 only): \n\t\tDisable WiFi sleep:",
- "translation": "强制 802.11g 模式(仅 ESP8266): \n\t\t禁用 WiFi 休眠:",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(6) > h3:text": {
- "en": "WiFi Power",
- "translation": "WiFi 功率",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(7) > h3:text": {
- "en": "ESP-NOW Wireless",
- "translation": "ESP-NOW 无线",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > span:text": {
- "en": "Not active",
- "translation": "未激活",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > h3:text": {
- "en": "Wireless network",
- "translation": "无线网络",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#NoESPNOW > i:text": {
- "en": "This firmware build does not include ESP-NOW support.",
- "translation": "此固件构建不包含 ESP-NOW 支持。",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#ESPNOW:text": {
- "en": "Enable ESP-NOW:",
- "translation": "启用 ESP-NOW:",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#ESPNOW > i:text": {
- "en": "Listen for events over ESP-NOW\n\t\t\tKeep disabled if not using a remote or ESP-NOW sync, increases power consumption.",
- "translation": "通过 ESP-NOW 监听事件\n\t\t\t\t\t如果不使用遥控器或 ESP-NOW 同步,请保持禁用,否则会增加功耗。",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(6) > i:text": {
- "en": "Disabling WiFi sleep increases power consumption\n\t\tbut can help with connectivity issues and sync.",
- "translation": "禁用 WiFi 休眠会增加功耗\n\t\t但有助于解决连接问题和同步。",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:button#scan:text": {
- "en": "Scan",
- "translation": "扫描",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#ethd > h3:text": {
- "en": "Ethernet Type",
- "translation": "以太网类型",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#ethd > select > option:nth-of-type(2):text": {
- "en": "IoTorero/ESP32Deux/RGB2Go",
- "translation": "IoTorero/ESP32Deux/RGB2Go",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#ethd > select > option:nth-of-type(3):text": {
- "en": "ABC! WLED V43 & compatible",
- "translation": "ABC! WLED V43 及兼容型号",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#ethd > select > option:nth-of-type(4):text": {
- "en": "ESP32-POE",
- "translation": "ESP32-POE",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#ethd > select > option:nth-of-type(5):text": {
- "en": "ESP32-POE-WROVER",
- "translation": "ESP32-POE-WROVER",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#ethd > select > option:nth-of-type(6):text": {
- "en": "KIT-VE",
- "translation": "KIT-VE",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#ethd > select > option:nth-of-type(7):text": {
- "en": "LILYGO T-POE Pro",
- "translation": "LILYGO T-POE Pro",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#ethd > select > option:nth-of-type(8):text": {
- "en": "QuinLED Uno/Quad",
- "translation": "QuinLED Uno/Quad",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#ethd > select > option:nth-of-type(9):text": {
- "en": "QuinLED Octa & T-ETH-POE",
- "translation": "QuinLED Octa 及 T-ETH-POE",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#ethd > select > option:nth-of-type(10):text": {
- "en": "QuinLED v4 Uno/Quad",
- "translation": "QuinLED v4 Uno/Quad",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#ethd > select > option:nth-of-type(11):text": {
- "en": "QuinLED v4 Octa",
- "translation": "QuinLED v4 Octa",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#ethd > select > option:nth-of-type(12):text": {
- "en": "Serg74-ETH32",
- "translation": "Serg74-ETH32",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#ethd > select > option:nth-of-type(13):text": {
- "en": "TwilightLord-ESP32",
- "translation": "TwilightLord-ESP32",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#ethd > select > option:nth-of-type(14):text": {
- "en": "WESP32",
- "translation": "WESP32",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#ethd > select > option:nth-of-type(15):text": {
- "en": "WT32-ETH01",
- "translation": "WT32-ETH01",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#ethd > select > option:nth-of-type(16):text": {
- "en": "Gledopto",
- "translation": "Gledopto",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(4) > span:text": {
- "en": "Not connected",
- "translation": "未连接",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > input:nth-of-type(3):title": {
- "en": "Empty or min. 8 characters",
- "translation": "为空或至少8个字符",
- "context": "settings_wifi.htm: (html_title)"
- },
- "html:div#tx:text": {
- "en": "Max. TX power:",
- "translation": "最大发射功率:",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#tx > select > option:nth-of-type(1):text": {
- "en": "19.5 dBm",
- "translation": "19.5 dBm",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#tx > select > option:nth-of-type(2):text": {
- "en": "19 dBm",
- "translation": "19 dBm",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#tx > select > option:nth-of-type(3):text": {
- "en": "18.5 dBm",
- "translation": "18.5 dBm",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#tx > select > option:nth-of-type(4):text": {
- "en": "17 dBm",
- "translation": "17 dBm",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#tx > select > option:nth-of-type(5):text": {
- "en": "15 dBm",
- "translation": "15 dBm",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#tx > select > option:nth-of-type(6):text": {
- "en": "13 dBm",
- "translation": "13 dBm",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#tx > select > option:nth-of-type(7):text": {
- "en": "11 dBm",
- "translation": "11 dBm",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#tx > select > option:nth-of-type(8):text": {
- "en": "8.5 dBm",
- "translation": "8.5 dBm",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#tx > select > option:nth-of-type(9):text": {
- "en": "7 dBm",
- "translation": "7 dBm",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#tx > select > option:nth-of-type(10):text": {
- "en": "5 dBm",
- "translation": "5 dBm",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#tx > select > option:nth-of-type(11):text": {
- "en": "2 dBm",
- "translation": "2 dBm",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#tx > i:text": {
- "en": "WARNING: Modifying TX power may render device unreachable.",
- "translation": "警告:修改发射功率可能导致设备无法访问。",
- "context": "settings_wifi.htm: (html_text)"
- },
- "html:div#rlc:text": {
- "en": "Last device seen: \n\n\t\t\t\tLinked MACs (10 max):",
- "translation": "最后发现的设备: \n\n\t\t\t\t已链接 MAC(最多 10 个):",
- "context": "settings_wifi.htm: (html_text)"
- },
- "js:settings_wifi.htm:16:16380ec4": {
- "en": "Scanning...",
- "translation": "扫描中...",
- "context": "settings_wifi.htm:16 (js_textContent)"
- },
- "js:settings_wifi.htm:69:86273a5d": {
- "en": "${networks[i].ssid} (${networks[i].rssi} dBm)",
- "translation": "",
- "context": "settings_wifi.htm:69 (js_textContent)"
- },
- "js:settings_wifi.htm:81:15feb6b3": {
- "en": "Other network...",
- "translation": "其他网络...",
- "context": "settings_wifi.htm:81 (js_textContent)"
- },
- "js:settings_wifi.htm:90:77f25a22": {
- "en": "Scan",
- "translation": "扫描",
- "context": "settings_wifi.htm:90 (js_textContent)"
- }
- },
- "settings_um.htm": {
- "html:form#form_s > div:nth-of-type(2):text": {
- "en": "SDA:\n\t\t\tSCL:\n\n\n\t\t\tMOSI:\n\t\t\tMISO:\n\t\t\tSCLK:\n\n\t\t\tReboot after save?",
- "translation": "SDA:\n\t\t\tSCL:\n\n\n\t\t\tMOSI:\n\t\t\tMISO:\n\t\t\tSCLK:\n\n\t\t\t保存后重启?",
- "context": "settings_um.htm: (html_text)"
- },
- "html:span#lssuc:text": {
- "en": "✔ Configuration saved!",
- "translation": "✔ 配置已保存!",
- "context": "settings_um.htm: (html_text)"
- },
- "html:span#lserr:text": {
- "en": "⚠ Could not load configuration.",
- "translation": "⚠ 无法加载配置。",
- "context": "settings_um.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > b:nth-of-type(1):text": {
- "en": "IC GPIOs (HW)",
- "translation": "IC GPIO (硬件)",
- "context": "settings_um.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > input:nth-of-type(1):placeholder": {
- "en": "SDA",
- "translation": "SDA",
- "context": "settings_um.htm: (html_placeholder)"
- },
- "html:form#form_s > div:nth-of-type(2) > input:nth-of-type(2):placeholder": {
- "en": "SCL",
- "translation": "SCL",
- "context": "settings_um.htm: (html_placeholder)"
- },
- "html:form#form_s > div:nth-of-type(2) > b:nth-of-type(2):text": {
- "en": "SPI GPIOs (HW)",
- "translation": "SPI GPIO (硬件)",
- "context": "settings_um.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > i:nth-of-type(1):text": {
- "en": "only changable on ESP32",
- "translation": "仅在 ESP32 上可更改",
- "context": "settings_um.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > input:nth-of-type(3):placeholder": {
- "en": "MOSI",
- "translation": "MOSI",
- "context": "settings_um.htm: (html_placeholder)"
- },
- "html:form#form_s > div:nth-of-type(2) > input:nth-of-type(4):placeholder": {
- "en": "MISO",
- "translation": "MISO",
- "context": "settings_um.htm: (html_placeholder)"
- },
- "html:form#form_s > div:nth-of-type(2) > input:nth-of-type(5):placeholder": {
- "en": "SCLK",
- "translation": "SCLK",
- "context": "settings_um.htm: (html_placeholder)"
- },
- "html:form#form_s > div:nth-of-type(2) > i:nth-of-type(2):text": {
- "en": "change requires reboot!",
- "translation": "更改需要重启!",
- "context": "settings_um.htm: (html_text)"
- },
- "html:div#um:text": {
- "en": "Loading settings...",
- "translation": "加载设置中...",
- "context": "settings_um.htm: (html_text)"
- },
- "js:settings_um.htm:53:098d98aa": {
- "en": "No Usermods installed.",
- "translation": "未安装用户模块。",
- "context": "settings_um.htm:53 (js_innerHTML)"
- }
- },
- "settings_2D.htm": {
- "html:select#somp > option:nth-of-type(1):text": {
- "en": "1D Strip",
- "translation": "1D 灯带",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:select#somp > option:nth-of-type(2):text": {
- "en": "2D Matrix",
- "translation": "2D 矩阵",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:div#mpdiv > div:nth-of-type(1) > h3:text": {
- "en": "Matrix Generator",
- "translation": "矩阵生成器",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:div#mxGen:text": {
- "en": "Panel dimensions (WxH): x \n\t\t\tHorizontal panels: \n\t\t\tVertical panels: \n\t\t\t1 panel: \n\t\t\tOrientation: \n\t\t\tSerpentine:",
- "translation": "面板尺寸 (宽x高): x \n\t\t\t水平面板数: \n\t\t\t垂直面板数: \n\t\t\t第1个面板: \n\t\t\t方向: \n\t\t\t蛇形排列:",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:div#mxGen > sup:text": {
- "en": "st",
- "translation": "第",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:div#mxGen > select:nth-of-type(1) > option:nth-of-type(1):text": {
- "en": "Top",
- "translation": "底部",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:div#mxGen > select:nth-of-type(1) > option:nth-of-type(2):text": {
- "en": "Bottom",
- "translation": "底部",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:div#mxGen > select:nth-of-type(2) > option:nth-of-type(1):text": {
- "en": "Left",
- "translation": "右侧",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:div#mxGen > select:nth-of-type(2) > option:nth-of-type(2):text": {
- "en": "Right",
- "translation": "右侧",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:div#mxGen > select:nth-of-type(3) > option:nth-of-type(1):text": {
- "en": "Horizontal",
- "translation": "垂直",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:div#mxGen > select:nth-of-type(3) > option:nth-of-type(2):text": {
- "en": "Vertical",
- "translation": "垂直",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:div#mxGen > i:text": {
- "en": "Pressing Populate will create LED panel layout with pre-arranged matrix.Values above affect final layout.\n\t\t\t\tWARNING: You may need to update each panel parameters after they are generated.",
- "translation": "点击“生成”将创建 LED 面板布局,预先排列矩阵。上方的值会影响最终布局。\n\t\t\t\t警告:",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:div#mxGen > i > i:text": {
- "en": "will not",
- "translation": "不会",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:div#mxGen > button:text": {
- "en": "Populate",
- "translation": "生成",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:div#mpdiv > div:nth-of-type(2):text": {
- "en": "Number of panels:",
- "translation": "面板数量:",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:div#mpdiv > div:nth-of-type(2) > h3:text": {
- "en": "Panel set-up",
- "translation": "面板设置",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:div#mpdiv > div:nth-of-type(2) > i:text": {
- "en": "A matrix is made of 1 or more physical LED panels.\n\t\tEach panel can be of different size and/or have different LED orientation and/or starting point and/or layout.",
- "translation": "矩阵由 1 个或多个物理 LED 面板组成。\n\t\t每个面板可以有不同的尺寸和/或不同的 LED 方向。",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:div#mpdiv > div:nth-of-type(3) > h3:text": {
- "en": "LED panel layout",
- "translation": "LED 面板布局",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:div#mpdiv > div:nth-of-type(5) > i:text": {
- "en": "Note: Gap file is a file containing an array with number of elements equal to the matrix size.\n\t\t\tA value of -1 means that pixel at that position is missing, a value of 0 means never paint that pixel, and 1 means regular pixel.",
- "translation": "注意:间隙文件是一个包含数组的文件,数组元素数量等于矩阵大小。\n\t\t\t值为 -1 表示该位置没有 LED。",
- "context": "settings_2D.htm: (html_text)"
- },
- "html:div#mpdiv > div:nth-of-type(5) > i > b:text": {
- "en": ".json",
- "translation": ".json",
- "context": "settings_2D.htm: (html_text)"
- },
- "js:settings_2D.htm:240:9833976c": {
- "en": "Matrix Dimensions (W*H=LC):",
- "translation": "矩阵尺寸 (宽*高=LED数):",
- "context": "settings_2D.htm:240 (js_innerHTML)"
- }
- },
- "settings_leds.htm": {
- "html:div#json:text": {
- "en": "JSON file:",
- "translation": "JSON 文件:",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#json > button:text": {
- "en": "Upload",
- "translation": "上传",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#abl:text": {
- "en": "Use per-output limiter:",
- "translation": "最大电源电流: mA",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#abl > i:text": {
- "en": "Automatically limits brightness to stay close to the limit.\n\t\t\t\tKeep at <1A if powering LEDs directly from the ESP 5V pin!\n\t\t\t\tIf using multiple outputs it is recommended to use per-output limiter.\n\t\t\t\tAnalog (PWM) and virtual LEDs cannot use automatic brightness limiter.",
- "translation": "自动限制亮度以保持在限制范围内。\n\t\t\t\t如果直接从 ESP 5V 引脚供电,保持在 <1A 以下!\n\t\t\t\t使用多个输出时建议使用单输出限制器。\n\t\t\t\t模拟(PWM)和虚拟 LED 不能使用自动亮度限制。",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#psuMA:text": {
- "en": "Maximum PSU Current: mA",
- "translation": "电源最大电流: mA",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#ppldis > i:text": {
- "en": "Make sure you enter correct value for each LED output.\n\t\t\t\tIf using multiple outputs with only one PSU, distribute its power proportionally amongst outputs.",
- "translation": "请确保为每个 LED 输出输入正确的值。\n\t\t\t\t如果使用多个输出但只有一个电源,请将电流值合理分配到各输出。",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#ampwarning:text": {
- "en": "⚠ Your power supply provides high current.\n\t\t\t\tTo improve the safety of your setup,\n\t\t\t\tplease use thick cables,\n\t\t\t\tmultiple power injection points and a fuse!",
- "translation": "⚠ 您的电源提供较大电流。\n\t\t\t\t为了提高安全性,\n\t\t\t\t请使用粗电缆、\n\t\t\t\t多路输出和保险丝。",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#mLC > h4:text": {
- "en": "LED outputs:",
- "translation": "LED 输出:",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#ledwarning:text": {
- "en": "⚠ You might run into stability or lag issues.\n\t\t\tUse less than for the best experience!",
- "translation": "⚠ 您可能会遇到稳定性或延迟问题。\n\t\t\t少于 个 LED 可获得最佳体验!",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:span#wreason:text": {
- "en": "800 LEDs per output",
- "translation": "每个输出最多 800 个 LED",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#color_order_mapping:text": {
- "en": "Color Order Override:",
- "translation": "颜色顺序覆盖:",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(3) > input:nth-of-type(3):placeholder": {
- "en": "2.2",
- "translation": "2.2",
- "context": "settings_leds.htm: (html_placeholder)"
- },
- "html:div#wc:text": {
- "en": "Global override for Auto-calculate white:\n\t\t\t\n\n\t\t\tCalculate CCT from RGB: \n\t\t\tCCT IC used (Athom 15W): \n\t\t\tCCT blending (±100%): %",
- "translation": "全局覆盖自动计算白色通道:\n\t\t\t\n\n\t\t\t从 RGB 计算 CCT:\n\t\t\t使用的 CCT IC(Athom 15W):\n\t\t\tCCT 混合",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#wc > select > option:nth-of-type(1):text": {
- "en": "Disabled",
- "translation": "精确",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#wc > select > option:nth-of-type(3):text": {
- "en": "Brighter",
- "translation": "最大",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#wc > select > option:nth-of-type(4):text": {
- "en": "Accurate",
- "translation": "精确",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#wc > select > option:nth-of-type(5):text": {
- "en": "Dual",
- "translation": "双路",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#wc > select > option:nth-of-type(6):text": {
- "en": "Max",
- "translation": "最大",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#wc > small:text": {
- "en": "Positive: additive blend, Negative: exclusive blend",
- "translation": "正值:叠加混合,负值:排他混合",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#wc > i:text": {
- "en": "Set to 0 when using 2-wire (reverse polarity) CCT strips",
- "translation": "使用双线(反极性)CCT 灯带时设为 0",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > select > option:nth-of-type(6):text": {
- "en": "21-key RGB",
- "translation": "JSON 遥控",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > select > option:nth-of-type(7):text": {
- "en": "6-key black",
- "translation": "6键黑色遥控器",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > select > option:nth-of-type(8):text": {
- "en": "9-key red",
- "translation": "9键红色遥控器",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > select > option:nth-of-type(9):text": {
- "en": "JSON remote",
- "translation": "JSON 遥控器",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > h2:nth-of-type(3):text": {
- "en": "General settings",
- "translation": "常规设置",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(7) > i:text": {
- "en": "(disable if using boot preset to turn LEDs on)",
- "translation": "(如果使用启动预设点亮 LED,请禁用此项)",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(9):text": {
- "en": "Use harmonic colors in : \n Cycle Time: s",
- "translation": "在 中使用谐波颜色:\n 周期时间: 秒",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(9) > i:nth-of-type(1):text": {
- "en": "Random palettes",
- "translation": "随机调色板",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(9) > i:nth-of-type(2):text": {
- "en": "Random Palette",
- "translation": "随机调色板",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(10):text": {
- "en": "Default duration: min\n\t\tDefault target brightness: \n\t\tMode:",
- "translation": "默认时长: 分钟\n\t\t默认目标亮度:\n\t\t模式:",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(10) > h3:text": {
- "en": "Timed light",
- "translation": "定时灯光",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(10) > select > option:nth-of-type(1):text": {
- "en": "Wait and set",
- "translation": "日出",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(10) > select > option:nth-of-type(2):text": {
- "en": "Fade",
- "translation": "淡入淡出",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(10) > select > option:nth-of-type(3):text": {
- "en": "Fade Color",
- "translation": "渐变颜色",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(10) > select > option:nth-of-type(4):text": {
- "en": "Sunrise",
- "translation": "日出",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(11):text": {
- "en": "Palette wrapping:\n\t\t\n\t\tTarget refresh rate: FPS",
- "translation": "调色板循环:\n\t\t\n\t\t目标刷新率: FPS",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(11) > select > option:nth-of-type(1):text": {
- "en": "Linear (wrap if moving)",
- "translation": "无(不推荐)",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(11) > select > option:nth-of-type(2):text": {
- "en": "Linear (always wrap)",
- "translation": "线性(始终循环)",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(11) > select > option:nth-of-type(3):text": {
- "en": "Linear (never wrap)",
- "translation": "线性(从不循环)",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(11) > select > option:nth-of-type(4):text": {
- "en": "None (not recommended)",
- "translation": "无(不推荐)",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#fpsNone:text": {
- "en": "⚠ Unlimited FPS Mode is experimental ⚠",
- "translation": "⚠ 无限制 FPS 模式为实验性功能 ⚠",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#fpsHigh:text": {
- "en": "⚠ High FPS Mode is experimental.",
- "translation": "⚠ 高 FPS 模式为实验性功能。",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#fpsWarn:text": {
- "en": "Please WLED configuration and presets first!",
- "translation": "请先 WLED 配置和预设!",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#fpsWarn > a:text": {
- "en": "backup",
- "translation": "备份",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#cfg:text": {
- "en": "Config template:",
- "translation": "配置模板:",
- "context": "settings_leds.htm: (html_text)"
- },
- "html:div#cfg > button:text": {
- "en": "Apply",
- "translation": "返回",
- "context": "settings_leds.htm: (html_text)"
- },
- "js:settings_leds.htm:106:8ed1c671": {
- "en": "Sorry, pins ${JSON.stringify(d.ro_gpio)} are input only.",
- "translation": "抱歉,引脚 ${JSON.stringify(d.ro_gpio)} 仅支持输入。",
- "context": "settings_leds.htm:106 (js_alert)"
- },
- "js:settings_leds.htm:119:2659be93": {
- "en": "Pin conflict between ${LC.name}/${nList[j].name}!",
- "translation": "引脚冲突:${LC.name} 与 ${nList[j].name}!",
- "context": "settings_leds.htm:119 (js_alert)"
- },
- "js:settings_leds.htm:139:ddf259ef": {
- "en": "Invalid Bus-config",
- "translation": "无效的总线配置",
- "context": "settings_leds.htm:139 (js_alert)"
- },
- "js:settings_leds.htm:147:d9c0df1b": {
- "en": "HUB75 error: panels≠rows×cols",
- "translation": "HUB75 错误:面板数 ≠ 行×列",
- "context": "settings_leds.htm:147 (js_alert)"
- },
- "js:settings_leds.htm:148:315a9b99": {
- "en": "HUB75 error: height >= 64, only single panel allowed",
- "translation": "HUB75 错误:高度 >= 64,仅允许单面板",
- "context": "settings_leds.htm:148 (js_alert)"
- },
- "js:settings_leds.htm:150:26a7ab01": {
- "en": "HUB75 changes require a reboot",
- "translation": "HUB75 更改需要重启",
- "context": "settings_leds.htm:150 (js_alert)"
- },
- "js:settings_leds.htm:306:a0b9c645": {
- "en": "
No. of Panels:",
- "translation": "
面板数量:",
- "context": "settings_leds.htm:306 (js_innerHTML)"
- },
- "js:settings_leds.htm:307:0fbf6431": {
- "en": "rows x cols:",
- "translation": "行 x 列:",
- "context": "settings_leds.htm:307 (js_innerText)"
- },
- "js:settings_leds.htm:475:c71afabe": {
- "en": "Hardware channels used: RMT ${usage.rmtUsed}/${maxRMT}, I2S ${usage.i2sUsed}/${maxI2S}",
- "translation": "已用硬件通道:RMT ${usage.rmtUsed}/${maxRMT}, I2S ${usage.i2sUsed}/${maxI2S}",
- "context": "settings_leds.htm:475 (js_textContent)"
- },
- "js:settings_leds.htm:751:02258034": {
- "en": "Please select a JSON file first!",
- "translation": "请先选择 JSON 文件!",
- "context": "settings_leds.htm:751 (js_alert)"
- },
- "js:settings_leds.htm:501:complex": {
- "en": "80% of max LED memory",
- "translation": "80% 的最大 LED 内存",
- "context": "settings_leds.htm:501 (js_innerHTML_complex)"
- },
- "js:settings_leds.htm:501:complex2": {
- "en": "WARNING: using over",
- "translation": "警告:使用超过",
- "context": "settings_leds.htm:501 (js_template_literal)"
- }
- },
- "settings_sync.htm": {
- "html:form#form_s:text": {
- "en": "For best results, only use one of these services at a time.\n(alternatively, connect a second ESP to them and use the UDP sync)",
- "translation": "为获得最佳效果,一次只使用其中一个服务。\n(或者,将第二个 ESP 连接到它们并使用 UDP 同步)",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(7):text": {
- "en": "Enable instance list: \nMake this instance discoverable:",
- "translation": "启用实例列表: \n使此实例可被发现:",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8):text": {
- "en": "Receive UDP realtime: \nUse main segment only: \nRespect LED Maps: \n\nType:\n\n\nMulticast: \nStart universe: \n Check out !\nSkip out-of-sequence packets: \nDMX start address: \nDMX segment spacing: \nE1.31 port priority: \nDMX mode:\n\n\nTimeout: ms\nForce max brightness: \nDisable realtime gamma correction: \nRealtime LED offset:",
- "translation": "接收 UDP 实时数据: \n仅使用主段: \n遵循 LED 映射: \n\n类型:\n\n\n组播: \n起始 Universe: \n 查看 !\n跳过乱序数据包: \nDMX 起始地址: \nDMX 段间距: \nE1.31 端口优先级: \nDMX 模式:\n\n\n超时: ms\n强制最大亮度: \n禁用实时伽马校正: \n实时 LED 偏移:",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > h3:text": {
- "en": "Realtime",
- "translation": "实时",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(9) > h3:text": {
- "en": "Alexa Voice Assistant",
- "translation": "Alexa 语音助手",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(11) > h3:text": {
- "en": "MQTT",
- "translation": "MQTT",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(4) > table > tr:nth-of-type(2) > td:nth-of-type(1):text": {
- "en": "Send:",
- "translation": "发送:",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(4) > table > tr:nth-of-type(3) > td:nth-of-type(1):text": {
- "en": "Receive:",
- "translation": "接收:",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > nowrap:nth-of-type(1):text": {
- "en": "Brightness,",
- "translation": "亮度,",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > nowrap:nth-of-type(2):text": {
- "en": "Color,",
- "translation": "颜色,",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > nowrap:nth-of-type(3):text": {
- "en": "Effects,",
- "translation": "效果,",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > nowrap:nth-of-type(4):text": {
- "en": "and Palette",
- "translation": "和 调色板",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > h4:text": {
- "en": "Network DMX input",
- "translation": "网络 DMX 输入",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > select:nth-of-type(1) > option:nth-of-type(1):text": {
- "en": "E1.31 (sACN)",
- "translation": "E1.31 (sACN)",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > select:nth-of-type(1) > option:nth-of-type(2):text": {
- "en": "Art-Net",
- "translation": "Art-Net",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > select:nth-of-type(1) > option:nth-of-type(3):text": {
- "en": "Custom port",
- "translation": "自定义端口",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#xp:text": {
- "en": "Port:",
- "translation": "端口:",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > i:text": {
- "en": "Reboot required.",
- "translation": "需要重启。",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > a:nth-of-type(1):text": {
- "en": "LedFx",
- "translation": "LedFx",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > select:nth-of-type(2) > option:nth-of-type(1):text": {
- "en": "Disabled",
- "translation": "精确",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > select:nth-of-type(2) > option:nth-of-type(2):text": {
- "en": "Single RGB",
- "translation": "单 RGB",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > select:nth-of-type(2) > option:nth-of-type(3):text": {
- "en": "Single DRGB",
- "translation": "单 DRGB",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > select:nth-of-type(2) > option:nth-of-type(4):text": {
- "en": "Effect",
- "translation": "效果",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > select:nth-of-type(2) > option:nth-of-type(5):text": {
- "en": "Effect + White",
- "translation": "效果 + 白",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > select:nth-of-type(2) > option:nth-of-type(6):text": {
- "en": "Effect Segment",
- "translation": "效果段",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > select:nth-of-type(2) > option:nth-of-type(7):text": {
- "en": "Effect Segment + White",
- "translation": "效果段 + 白",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > select:nth-of-type(2) > option:nth-of-type(8):text": {
- "en": "Multi RGB",
- "translation": "多 RGB",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > select:nth-of-type(2) > option:nth-of-type(9):text": {
- "en": "Dimmer + Multi RGB",
- "translation": "调光 + 多 RGB",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > select:nth-of-type(2) > option:nth-of-type(10):text": {
- "en": "Multi RGBW",
- "translation": "多 RGBW",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > select:nth-of-type(2) > option:nth-of-type(11):text": {
- "en": "Preset",
- "translation": "预设",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(8) > a:nth-of-type(2):text": {
- "en": "E1.31 info",
- "translation": "E1.31 信息",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#dmxInput:text": {
- "en": "DMX RX Pin: RO",
- "translation": "DMX RX 引脚: RO",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#dmxInput > h4:text": {
- "en": "Wired DMX Input",
- "translation": "有线 DMX 输入",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#dmxInput > br:nth-of-type(2):text": {
- "en": "DMX TX Pin: DI",
- "translation": "DMX TX 引脚: DI",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#dmxInput > br:nth-of-type(2) > br:text": {
- "en": "DMX Enable Pin: RE+DE",
- "translation": "DMX 使能引脚: RE+DE",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#dmxInput > br:nth-of-type(2) > br > br:text": {
- "en": "DMX Port:",
- "translation": "DMX 端口:",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#dmxInput > br:nth-of-type(2) > br > br > br > i:text": {
- "en": "Reboot required to apply changes.",
- "translation": "需要重启才能生效。",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#dmxInputOff > i:text": {
- "en": "This firmware build does not include DMX Input support.",
- "translation": "此固件构建不包含 DMX 输入支持。",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#dmxOnOffOutput > i:text": {
- "en": "This firmware build does not include DMX output support.",
- "translation": "此固件构建不包含 DMX 输出支持。",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#NoAlexa > i:text": {
- "en": "This firmware build does not include Alexa support.",
- "translation": "此固件构建不包含 Alexa 支持。",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#Alexa:text": {
- "en": "Emulate Alexa device: \nAlexa invocation name: \nAlso emulate devices to call the first presets",
- "translation": "模拟 Alexa 设备: \nAlexa 调用名称: \n同时模拟设备以调用前 个预设",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(10) > b:text": {
- "en": "MQTT and Hue sync connect to external hosts!\nThis may impact the responsiveness of WLED.",
- "translation": "MQTT 和 Hue 同步会连接到外部主机!\n这可能会影响 WLED 的响应速度。",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#NoMQTT > i:text": {
- "en": "This firmware build does not include MQTT support.",
- "translation": "此固件构建不包含 MQTT 支持。",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#MQTT:text": {
- "en": "Enable MQTT: \nBroker: \nPort: \n\nUsername: \nPassword: \nClient ID: \nDevice Topic: \nGroup Topic: \nPublish on button press: \nRetain brightness & color messages:",
- "translation": "启用 MQTT: \n代理: \n端口: \n\n用户名: \n密码: \n客户端 ID: \n设备主题: \n组主题: \n按钮按下时发布: \n保留亮度和颜色消息:",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#MQTT > b:text": {
- "en": "The MQTT credentials are sent over an unsecured connection.\nNever use the MQTT password for another service!",
- "translation": "MQTT 凭据通过不安全的连接发送。\n切勿将 MQTT 密码用于其他服务!",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#MQTT > i:text": {
- "en": "Reboot required to apply changes.",
- "translation": "需要重启才能生效。",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#MQTT > a:text": {
- "en": "MQTT info",
- "translation": "MQTT 信息",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(12) > h3:text": {
- "en": "Philips Hue",
- "translation": "Philips Hue",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#NoHue > em:text": {
- "en": "This firmware build does not include Philips Hue support.",
- "translation": "此固件构建不包含 Philips Hue 支持。",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#Hue:text": {
- "en": "Poll Hue light every ms: \nThen, receive On/Off, Brightness, and Color\nHue Bridge IP:\n .\n .\n .\n\n\n(when first connecting)\nHue status:",
- "translation": "轮询 Hue 灯 每 ms: \n然后接收 开/关, 亮度, 和 颜色\nHue 桥接器 IP:\n .\n .\n .\n\n\n(首次连接时)\nHue 状态:",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#Hue > i:text": {
- "en": "You can find the bridge IP and the light number in the 'About' section of the hue app.",
- "translation": "您可以在 Hue 应用的\"关于\"部分找到桥接器 IP 和灯号。",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#Hue > b:text": {
- "en": "Press the pushlink button on the bridge, after that save this page!",
- "translation": "按下桥接器上的链接按钮,然后保存此页面!",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#Hue > span:text": {
- "en": "Disabled in this build",
- "translation": "此构建中已禁用",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(13) > h3:text": {
- "en": "Serial",
- "translation": "串口",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#NoSerial > em:text": {
- "en": "This firmware build does not support Serial interface.",
- "translation": "此固件构建不支持串口接口。",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#Serial:text": {
- "en": "Baud rate:",
- "translation": "波特率:",
- "context": "settings_sync.htm: (html_text)"
- },
- "html:div#Serial > i:text": {
- "en": "Keep at 115200 to use Improv. Some boards may not support high rates.",
- "translation": "保持 115200 以使用 Improv。部分主板可能不支持高速率。",
- "context": "settings_sync.htm: (html_text)"
- }
- },
- "settings_pin.htm": {
- "html:form#form_s > div > button:nth-of-type(1):text": {
- "en": "Back",
- "translation": "返回",
- "context": "settings_pin.htm: (html_text)"
- },
- "html:form#form_s > div > button:nth-of-type(2):text": {
- "en": "Submit",
- "translation": "提交",
- "context": "settings_pin.htm: (html_text)"
- },
- "html:form#form_s > div > h2:text": {
- "en": "Please enter settings PIN code",
- "translation": "请输入设置 PIN 码",
- "context": "settings_pin.htm: (html_text)"
- }
- },
- "settings_time.htm": {
- "html:form#form_s > i:nth-of-type(1):text": {
- "en": "Presets can be used as macros for both JSON and HTTP API commands.\n\tEnter the preset ID below.",
- "translation": "预设可用作 JSON 和 HTTP API 命令的宏。\n\t在下方输入预设 ID。",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > i:nth-of-type(2):text": {
- "en": "Use 0 for the default action instead of a preset",
- "translation": "使用 0 表示默认操作而非预设",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > h2:nth-of-type(1):text": {
- "en": "Time setup",
- "translation": "时间设置",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(3) > h3:text": {
- "en": "Clock",
- "translation": "时钟",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > h2:nth-of-type(2):text": {
- "en": "Macro Presets",
- "translation": "宏预设",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > a:text": {
- "en": "Analog Button setup",
- "translation": "模拟按钮设置",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(1):text": {
- "en": "GMT(UTC)",
- "translation": "GMT(UTC)",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(2):text": {
- "en": "GMT/BST",
- "translation": "GMT/BST",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(3):text": {
- "en": "CET/CEST",
- "translation": "CET/CEST",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(4):text": {
- "en": "EET/EEST",
- "translation": "EET/EEST",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(5):text": {
- "en": "US-EST/EDT",
- "translation": "US-EST/EDT",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(6):text": {
- "en": "US-CST/CDT",
- "translation": "US-CST/CDT",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(7):text": {
- "en": "US-MST/MDT",
- "translation": "US-MST/MDT",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(8):text": {
- "en": "US-AZ",
- "translation": "US-AZ",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(9):text": {
- "en": "US-PST/PDT",
- "translation": "US-PST/PDT",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(10):text": {
- "en": "CST (AWST, PHST)",
- "translation": "CST (AWST, PHST)",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(11):text": {
- "en": "JST (KST)",
- "translation": "JST (KST)",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(12):text": {
- "en": "AEST/AEDT",
- "translation": "AEST/AEDT",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(13):text": {
- "en": "NZST/NZDT",
- "translation": "NZST/NZDT",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(14):text": {
- "en": "North Korea",
- "translation": "朝鲜",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(15):text": {
- "en": "IST (India)",
- "translation": "IST (印度)",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(16):text": {
- "en": "CA-Saskatchewan",
- "translation": "CA-萨斯卡切温",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(17):text": {
- "en": "ACST",
- "translation": "ACST",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(18):text": {
- "en": "ACST/ACDT",
- "translation": "ACST/ACDT",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(19):text": {
- "en": "HST (Hawaii)",
- "translation": "HST (夏威夷)",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(20):text": {
- "en": "NOVT (Novosibirsk)",
- "translation": "NOVT (新西伯利亚)",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(21):text": {
- "en": "AKST/AKDT (Anchorage)",
- "translation": "AKST/AKDT (安克雷奇)",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(22):text": {
- "en": "MX-CST",
- "translation": "MX-CST",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(23):text": {
- "en": "PKT (Pakistan)",
- "translation": "PKT (巴基斯坦)",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(24):text": {
- "en": "BRT (Brasília)",
- "translation": "BRT (巴西利亚)",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > select:nth-of-type(1) > option:nth-of-type(25):text": {
- "en": "AWST (Perth)",
- "translation": "AWST (珀斯)",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > span:text": {
- "en": "unknown",
- "translation": "未知",
- "context": "settings_time.htm: (html_text)"
- },
- "html:button#locbtn:text": {
- "en": "Get location",
- "translation": "获取位置",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > div:nth-of-type(1) > i:text": {
- "en": "(opens new tab, only works in browser)",
- "translation": "(打开新标签页,仅在浏览器中有效)",
- "context": "settings_time.htm: (html_text)"
- },
- "html:div#cac:text": {
- "en": "First LED: Last LED: \n\t\t\t12h LED: \n\t\t\tShow 5min marks: \n\t\t\tSeconds (as trail): \n\t\t\tShow clock overlay only if all LEDs are solid black:",
- "translation": "首个 LED: 末个 LED: \n\t\t\t12点位 LED: \n\t\t\t显示 5 分钟刻度: \n\t\t\t秒针 (拖尾): \n\t\t\t仅在所有 LED 为纯黑时显示时钟叠加:",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(3) > nowrap:nth-of-type(1):text": {
- "en": "20--",
- "translation": "20--",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > a:nth-of-type(1):text": {
- "en": "JSON API",
- "translation": "JSON API",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > a:nth-of-type(2):text": {
- "en": "HTTP API",
- "translation": "HTTP API",
- "context": "settings_time.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(6) > div > button:text": {
- "en": "Add Timer",
- "translation": "添加定时器",
- "context": "settings_time.htm: (html_text)"
- },
- "js:settings_time.htm:89:bc9d682e": {
- "en": "| En. | Type | Hour | Minute | |
",
- "translation": "| 启用 | 类型 | 时 | 分 | |
",
- "context": "settings_time.htm:89 (js_innerHTML)"
- }
- },
- "settings_dmx.htm": {
- "html:form#form_s > br:nth-of-type(5):text": {
- "en": "Start channel:",
- "translation": "起始通道:",
- "context": "settings_dmx.htm: (html_text)"
- },
- "html:form#form_s > br:nth-of-type(5) > br:text": {
- "en": "Spacing between start channels: [ ]\n\n\nDMX fixtures start LED:",
- "translation": "起始通道间距: [ ]\n\n\nDMX 灯具起始 LED:",
- "context": "settings_dmx.htm: (html_text)"
- },
- "html:form#form_s > br:nth-of-type(5) > br > a:text": {
- "en": "info",
- "translation": "信息",
- "context": "settings_dmx.htm: (html_text)"
- },
- "html:div#gapwarning:text": {
- "en": "WARNING: Channel gap is lower than channels per fixture.",
- "translation": "警告:通道间距小于每灯具通道数。",
- "context": "settings_dmx.htm: (html_text)"
- },
- "html:div#gapwarning > br:text": {
- "en": "This will cause overlap.",
- "translation": "这将导致重叠。",
- "context": "settings_dmx.htm: (html_text)"
- },
- "html:form#form_s > br:nth-of-type(5) > br > button:nth-of-type(1):text": {
- "en": "DMX Map",
- "translation": "DMX 映射",
- "context": "settings_dmx.htm: (html_text)"
- },
- "html:form#form_s > br:nth-of-type(5) > br > h3:text": {
- "en": "Channel functions",
- "translation": "通道功能",
- "context": "settings_dmx.htm: (html_text)"
- },
- "html:form#form_s > br:nth-of-type(5) > br > button:nth-of-type(2):text": {
- "en": "Back",
- "translation": "返回",
- "context": "settings_dmx.htm: (html_text)"
- },
- "html:form#form_s > br:nth-of-type(5) > br > button:nth-of-type(3):text": {
- "en": "Save",
- "translation": "保存",
- "context": "settings_dmx.htm: (html_text)"
- },
- "js:settings_dmx.htm:14:54aa4514": {
- "en": " div:nth-of-type(2) > i:text": {
- "en": "Settings on this page are only changeable if OTA lock is disabled!",
- "translation": "只有在禁用 OTA 锁定后才能更改此页面上的设置!",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:input#PIN:title": {
- "en": "Please enter a 4 digit number",
- "translation": "请输入4位数字",
- "context": "settings_sec.htm: (html_title)"
- },
- "html:form#form_s > div:nth-of-type(2) > div:nth-of-type(1):text": {
- "en": "⚠ Unencrypted transmission. Be prudent when selecting PIN, do NOT use your banking, door, SIM, etc. pin!",
- "translation": "⚠ 未加密传输。选择 PIN 码时请谨慎,不要使用银行卡、门禁、SIM 卡等 PIN 码!",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > b:text": {
- "en": "Disable OTA when not in use, otherwise an attacker can reflash device software!",
- "translation": "不使用时请禁用 OTA,否则攻击者可以重新刷写设备固件!",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(2) > div:nth-of-type(2):text": {
- "en": "⚠ Unencrypted transmission. An attacker on the same network can intercept form data!",
- "translation": "⚠ 未加密传输。同一网络上的攻击者可以截获表单数据!",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:div#OTA:text": {
- "en": "Only allow update from same network/WiFi:",
- "translation": "仅允许同一网络/WiFi 更新:",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:div#OTA > h3:text": {
- "en": "Software Update",
- "translation": "固件更新",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:div#OTA > button:text": {
- "en": "Update WLED",
- "translation": "更新 WLED",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:div#aOTA:text": {
- "en": "Enable ArduinoOTA:",
- "translation": "启用 ArduinoOTA:",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:div#OTA > i:text": {
- "en": "⚠ If you are using multiple VLANs (i.e. IoT or guest network) either set PIN or disable this option.\n\t\t\tDisabling this option will make your device less secure.",
- "translation": "⚠ 如果使用多个 VLAN(如 IoT 或访客网络),请设置 PIN 码或禁用此选项。\n\t\t\t禁用此选项会降低设备安全性。",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:div#backup > h3:text": {
- "en": "Backup & Restore",
- "translation": "备份和恢复",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:div#backup > div:nth-of-type(1):text": {
- "en": "⚠ Restoring presets/configuration will OVERWRITE your current presets/configuration.\n\t\tIncorrect upload or configuration may require a factory reset or re-flashing of your ESP.\n\t\tFor security reasons, passwords are not backed up.",
- "translation": "⚠ 恢复预设/配置将覆盖当前的预设/配置。\n\t\t错误的上传或配置可能需要恢复出厂设置或重新刷写 ESP。\n\t\t出于安全考虑,密码不会被备份。",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:a#bckcfg:text": {
- "en": "Backup presets",
- "translation": "备份预设",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:div#backup > div:nth-of-type(2):text": {
- "en": "Restore presets",
- "translation": "恢复预设",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:div#backup > div:nth-of-type(2) > button:text": {
- "en": "Upload",
- "translation": "上传",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:a#bckpresets:text": {
- "en": "Backup configuration",
- "translation": "备份配置",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:div#backup > div:nth-of-type(3):text": {
- "en": "Restore configuration",
- "translation": "恢复配置",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:div#backup > div:nth-of-type(3) > button:text": {
- "en": "Upload",
- "translation": "上传",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > a:nth-of-type(1):text": {
- "en": "WLED",
- "translation": "WLED",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > a:nth-of-type(2):text": {
- "en": "Contributors, dependencies and special thanks",
- "translation": "贡献者、依赖项和特别感谢",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > i:text": {
- "en": "Licensed under the",
- "translation": "基于以下协议授权",
- "context": "settings_sec.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(5) > i > a:text": {
- "en": "EUPL v1.2 license",
- "translation": "EUPL v1.2 许可证",
- "context": "settings_sec.htm: (html_text)"
- }
- },
- "settings_ui.htm": {
- "html:form#form_s > div:nth-of-type(3):text": {
- "en": ": \n: \n: \n: \n: \n: \n: \n: \n: \n: \n\t\tI hate dark mode: \n\n: \n: \n\n\n: \n: \n\t\tBG image: \n: \n\n\n\n:",
- "translation": ": \n: \n: \n: \n: \n: \n: \n: \n: \n: \n\t\t讨厌深色模式: \n\n: \n: \n\n\n: \n: \n\t\t背景图片: \n: \n\n\n\n:",
- "context": "settings_ui.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(3) > i:text": {
- "en": "The following UI customization settings are unique both to the WLED device and this browser.\n\t\tYou will need to set them again if using a different browser, device or WLED IP address.\n\t\tRefresh the main UI to apply changes.",
- "translation": "以下界面自定义设置同时关联WLED设备和当前浏览器。\n\t\t使用不同浏览器、设备或WLED IP地址时需要重新设置。\n\t\t刷新主界面以应用更改。",
- "context": "settings_ui.htm: (html_text)"
- },
- "html:div#gen:text": {
- "en": "Loading settings...",
- "translation": "加载设置中...",
- "context": "settings_ui.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(3) > h3:nth-of-type(1):text": {
- "en": "UI Appearance",
- "translation": "界面外观",
- "context": "settings_ui.htm: (html_text)"
- },
- "html:span#idonthateyou > i:text": {
- "en": "Why would you?",
- "translation": "为什么要这样呢?",
- "context": "settings_ui.htm: (html_text)"
- },
- "html:div#skin:text": {
- "en": "Custom CSS:",
- "translation": "自定义CSS:",
- "context": "settings_ui.htm: (html_text)"
- },
- "html:div#skin > input:nth-of-type(2):value": {
- "en": "Upload",
- "translation": "上传",
- "context": "settings_ui.htm: (html_value)"
- },
- "html:form#form_s > div:nth-of-type(3) > h3:nth-of-type(2):text": {
- "en": "UI Background",
- "translation": "界面背景",
- "context": "settings_ui.htm: (html_text)"
- },
- "html:form#form_s > div:nth-of-type(3) > input:nth-of-type(17):value": {
- "en": "Remove",
- "translation": "移除",
- "context": "settings_ui.htm: (html_value)"
- },
- "html:div#NoImage:text": {
- "en": ": \n:",
- "translation": ":\n:",
- "context": "settings_ui.htm: (html_text)"
- },
- "html:div#NoImage > h4:text": {
- "en": "Random BG image settings",
- "translation": "随机背景图片设置",
- "context": "settings_ui.htm: (html_text)"
- },
- "html:div#holidays:text": {
- "en": "Holidays:",
- "translation": "节假日:",
- "context": "settings_ui.htm: (html_text)"
- },
- "html:div#holidays > input:nth-of-type(2):value": {
- "en": "Upload",
- "translation": "上传",
- "context": "settings_ui.htm: (html_value)"
- },
- "html:form#form_s > button:nth-of-type(3):text": {
- "en": "Save",
- "translation": "保存",
- "context": "settings_ui.htm: (html_text)"
- },
- "js:settings_ui.htm:125:fec84dc1": {
- "en": "⚠ Settings JSON parsing failed. (",
- "translation": "⚠ 设置JSON解析失败。(",
- "context": "settings_ui.htm:125 (js_innerHTML)"
- },
- "js:settings_ui.htm:146:3cd0309a": {
- "en": "⚠ Settings JSON saving failed. (",
- "translation": "⚠ 设置JSON保存失败。(",
- "context": "settings_ui.htm:146 (js_innerHTML)"
- }
- },
- "update.htm": {
- "html:div#toprow > div > button:title": {
- "en": "Help",
- "translation": "帮助",
- "context": "update.htm: (html_title)"
- },
- "html:div#toprow > div > button:aria-label": {
- "en": "Help",
- "translation": "帮助",
- "context": "update.htm: (html_aria-label)"
- },
- "html:div#toprow > button:text": {
- "en": "Back",
- "translation": "返回",
- "context": "update.htm: (html_text)"
- },
- "html:form#upd > div > h2:text": {
- "en": "WLED Software Update",
- "translation": "WLED 固件更新",
- "context": "update.htm: (html_text)"
- },
- "html:form#upd > div > p:text": {
- "en": "Installed version: \n\t\tRelease:",
- "translation": "已安装版本: \n\t\t发行版:",
- "context": "update.htm: (html_text)"
- },
- "html:form#upd > div > p > span:nth-of-type(1):text": {
- "en": "Loading...",
- "translation": "加载中...",
- "context": "update.htm: (html_text)"
- },
- "html:form#upd > div > p > span:nth-of-type(2):text": {
- "en": "Loading...",
- "translation": "加载中...",
- "context": "update.htm: (html_text)"
- },
- "html:span#Norelease-download:text": {
- "en": "Latest release: Checking...",
- "translation": "最新发行版: 检查中...",
- "context": "update.htm: (html_text)"
- },
- "html:span#release-download:text": {
- "en": "Latest version:",
- "translation": "最新版本:",
- "context": "update.htm: (html_text)"
- },
- "html:span#release-download > a > img:alt": {
- "en": "View latest",
- "translation": "查看最新版本",
- "context": "update.htm: (html_alt)"
- },
- "html:button#autoUpdBtn:text": {
- "en": "Auto update",
- "translation": "自动更新",
- "context": "update.htm: (html_text)"
- },
- "html:form#upd > div > h3:text": {
- "en": "Manual upload",
- "translation": "手动上传",
- "context": "update.htm: (html_text)"
- },
- "html:form#upd > div > label:text": {
- "en": "Ignore firmware validation",
- "translation": "忽略固件验证",
- "context": "update.htm: (html_text)"
- },
- "html:form#upd > div > button:text": {
- "en": "Upload",
- "translation": "上传",
- "context": "update.htm: (html_text)"
- },
- "html:button#rev:text": {
- "en": "Revert update",
- "translation": "回退更新",
- "context": "update.htm: (html_text)"
- },
- "html:div#bootupd > h2:text": {
- "en": "Bootloader Update",
- "translation": "引导加载程序更新",
- "context": "update.htm: (html_text)"
- },
- "html:div#bootupd > form:text": {
- "en": "Only upload verified ESP32 bootloader files!",
- "translation": "仅上传经过验证的 ESP32 引导加载程序文件!",
- "context": "update.htm: (html_text)"
- },
- "html:div#bootupd > form > b:text": {
- "en": "Warning:",
- "translation": "警告:",
- "context": "update.htm: (html_text)"
- },
- "html:div#bootupd > form > button:text": {
- "en": "Update Bootloader",
- "translation": "更新引导加载程序",
- "context": "update.htm: (html_text)"
- },
- "html:div#Noupd:text": {
- "en": "Please do not close or refresh the page :)",
- "translation": "请不要关闭或刷新页面 :)",
- "context": "update.htm: (html_text)"
- },
- "html:div#Noupd > b:text": {
- "en": "Updating...",
- "translation": "更新中...",
- "context": "update.htm: (html_text)"
- },
- "html:button#backbtn:text": {
- "en": "Back",
- "translation": "返回",
- "context": "update.htm: (html_text)"
- },
- "js:update.htm:9:89728d5f": {
- "en": "Revert!",
- "translation": "回退!",
- "context": "update.htm:9 (js_innerText)"
- },
- "js:update.htm:21:8bbb50c5": {
- "en": "${data.brand} ${data.ver} (${data.vid})",
- "translation": "",
- "context": "update.htm:21 (js_textContent)"
- },
- "js:update.htm:40:f270c08d": {
- "en": "
Date: Thu, 11 Jun 2026 01:47:33 +0800
Subject: [PATCH 12/14] revert: remove direct HTM file changes, keep i18n tools
only
The HTM file changes should not be in the main WLED repo.
Translation files belong in the separate WLED-translations repository.
This PR now only contains the i18n toolchain (extract.py, build.py).
---
wled00/data/404.htm | 10 +-
wled00/data/dmxmap.htm | 6 +-
wled00/data/edit.htm | 28 +--
wled00/data/index.htm | 190 ++++++++++----------
wled00/data/liveview.htm | 4 +-
wled00/data/liveviewws2D.htm | 4 +-
wled00/data/msg.htm | 8 +-
wled00/data/settings.htm | 26 +--
wled00/data/settings_2D.htm | 92 +++++-----
wled00/data/settings_dmx.htm | 32 ++--
wled00/data/settings_leds.htm | 300 +++++++++++++++----------------
wled00/data/settings_pin.htm | 10 +-
wled00/data/settings_pininfo.htm | 24 +--
wled00/data/settings_sec.htm | 74 ++++----
wled00/data/settings_sync.htm | 206 ++++++++++-----------
wled00/data/settings_time.htm | 114 ++++++------
wled00/data/settings_ui.htm | 98 +++++-----
wled00/data/settings_um.htm | 42 ++---
wled00/data/settings_wifi.htm | 102 +++++------
wled00/data/update.htm | 50 +++---
wled00/data/usermod.htm | 4 +-
wled00/data/welcome.htm | 20 +--
22 files changed, 723 insertions(+), 721 deletions(-)
diff --git a/wled00/data/404.htm b/wled00/data/404.htm
index 096a38eb88..caf6856def 100644
--- a/wled00/data/404.htm
+++ b/wled00/data/404.htm
@@ -1,10 +1,10 @@
-
+
- 未找到
+ Not found
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/wled00/data/settings_2D.htm b/wled00/data/settings_2D.htm
index 5992f06f57..76f84fa61b 100644
--- a/wled00/data/settings_2D.htm
+++ b/wled00/data/settings_2D.htm
@@ -1,9 +1,9 @@
-
+
- 2D 设置
+ 2D Set-up
@@ -252,61 +252,61 @@
diff --git a/wled00/data/settings_dmx.htm b/wled00/data/settings_dmx.htm
index 0e6e1a75ea..391c2bdc97 100644
--- a/wled00/data/settings_dmx.htm
+++ b/wled00/data/settings_dmx.htm
@@ -1,9 +1,9 @@
-
+
- DMX 设置
+ DMX Settings
-
- 引脚信息
- 加载中...
-
+
+ Pin Info
+ Loading...
+
diff --git a/wled00/data/settings_sec.htm b/wled00/data/settings_sec.htm
index 19ae63b80a..4586d44a5d 100644
--- a/wled00/data/settings_sec.htm
+++ b/wled00/data/settings_sec.htm
@@ -1,9 +1,9 @@
-
+
- 安全和更新设置
+ Security & Update Setup