diff --git a/README.md b/README.md index c05521b..f02d61f 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,7 @@ lpinfo -v | grep usb ├── setup_cups.sh # 一键安装/卸载脚本 ├── watchdog/ # 网络和打印服务守护脚本 ├── cups-templates-zh_CN/ # 中文界面模板(65个文件) +├── cups-docroot-zh_CN/ # CUPS 中文首页和前端汉化脚本 ├── README.md # 本文档 └── 刷机教程.md # Armbian 刷机教程 ``` @@ -151,7 +152,7 @@ lpinfo -v | grep usb 脚本已配置 `HostNameLookups Off` 解决此问题。如果仍然慢,检查网络连接。 ### 界面显示英文 -确保安装时下载了中文模板。重新运行安装脚本可以修复。 +确保安装时下载了中文模板、中文首页和前端汉化脚本。重新运行安装脚本可以修复。 ### 找不到 USB 打印机 1. 确认打印机已通过 USB 连接到服务器 diff --git a/cups-docroot-zh_CN/cups-zh-localize.js b/cups-docroot-zh_CN/cups-zh-localize.js new file mode 100644 index 0000000..ef64157 --- /dev/null +++ b/cups-docroot-zh_CN/cups-zh-localize.js @@ -0,0 +1,421 @@ +(function () { + var exact = { + "Administration": "管理", + "Home": "首页", + "Jobs": "任务", + "Printers": "打印机", + "Classes": "打印机类", + "Help": "帮助", + "Search": "搜索", + "Clear": "清除", + "Default": "默认", + "Printer Default": "打印机默认", + "None": "无", + "No": "否", + "Yes": "是", + "Off": "关闭", + "On": "开启", + "True": "是", + "False": "否", + "Auto": "自动", + "Automatic": "自动", + "Manual": "手动", + "Idle": "空闲", + "Processing": "处理中", + "Stopped": "已停止", + "Paused": "已暂停", + "Unknown": "未知", + "Ready": "就绪", + "Completed": "已完成", + "Current": "当前", + "General": "常规", + "Basic": "基本", + "Advanced": "高级", + "Printer Features": "打印机功能", + "Installable Options": "可安装选项", + "Job Options": "任务选项", + "Page Setup": "页面设置", + "Media": "纸张", + "Paper": "纸张", + "Finishing": "后处理", + "Output": "输出", + "Color": "彩色", + "Grayscale": "灰度", + "Monochrome": "单色", + "Black": "黑色", + "Black and White": "黑白", + "Normal": "普通", + "Draft": "草稿", + "High": "高", + "Best": "最佳", + "Fast": "快速", + "Photo": "照片", + "Text": "文本", + "Graphics": "图形", + "Line Art": "线条图", + "Portrait": "纵向", + "Landscape": "横向", + "Reverse Portrait": "反向纵向", + "Reverse Landscape": "反向横向", + "Plain": "普通", + "Plain Paper": "普通纸", + "Envelope": "信封", + "Labels": "标签纸", + "Transparency": "透明胶片", + "Recycled": "再生纸", + "Heavy": "重磅纸", + "Thick": "厚纸", + "Thin": "薄纸", + "Long Edge": "长边", + "Short Edge": "短边", + "Long-Edge Binding": "长边装订", + "Short-Edge Binding": "短边装订", + "One-Sided": "单面", + "Two-Sided": "双面", + "No Cover": "无封面", + "Classified": "机密", + "Confidential": "保密", + "Secret": "秘密", + "Standard": "标准", + "Top Secret": "绝密", + "Unclassified": "非密", + "Tray 1": "纸盒 1", + "Tray 2": "纸盒 2", + "Tray 3": "纸盒 3", + "Tray 4": "纸盒 4", + "Manual Feed": "手动进纸", + "Multi-Purpose Tray": "多功能纸盒", + "Upper": "上纸盒", + "Lower": "下纸盒", + "Middle": "中纸盒", + "Letter": "Letter 信纸", + "Legal": "Legal 法律纸", + "Executive": "Executive 行政纸", + "CUPS for Users": "用户指南", + "CUPS for Administrators": "管理员指南", + "CUPS for Developers": "开发者指南", + "Overview of CUPS": "CUPS 概述", + "Command-Line Printing and Options": "命令行打印和选项", + "Adding Printers and Classes": "添加打印机和打印机类", + "Managing Operation Policies": "管理操作策略", + "Using Network Printers": "使用网络打印机", + "Firewalls": "防火墙", + "cupsd.conf Reference": "cupsd.conf 参考", + "CUPS Programming Manual": "CUPS 编程手册", + "Filter and Backend Programming": "过滤器和后端编程", + "Getting Started": "入门", + "Man Pages": "手册页", + "Programming": "编程", + "References": "参考", + "Specifications": "规范", + "Online Help": "在线帮助", + "Online Help Documents": "在线帮助文档", + "All Documents": "所有文档", + "View Printable Version": "查看可打印版本", + "No matches found.": "未找到匹配结果。", + "Add Printer": "添加打印机", + "Find New Printers": "查找新打印机", + "Manage Printers": "管理打印机", + "Add Class": "添加打印机类", + "Manage Classes": "管理打印机类", + "Manage Jobs": "管理打印任务", + "Edit Configuration File": "编辑配置文件", + "Server Settings": "服务器设置", + "Save Settings": "保存设置", + "Share printers connected to this system": "共享连接到此系统的打印机", + "Allow printing from the Internet": "允许从互联网打印", + "Allow remote administration": "允许远程管理", + "Allow users to cancel any job": "允许用户取消任何任务", + "Preserve job history": "保留任务历史", + "Save debugging information": "保存调试信息", + "Maintenance": "维护", + "Print Test Page": "打印测试页", + "Clean Print Heads": "清洗打印头", + "Print Self-Test Page": "打印自检页", + "Start Printer": "恢复打印机", + "Stop Printer": "暂停打印机", + "Accept Jobs": "接受任务", + "Reject Jobs": "拒绝任务", + "Move All Jobs": "移动所有任务", + "Cancel All Jobs": "取消所有任务", + "Modify Printer": "修改打印机", + "Delete Printer": "删除打印机", + "Set Default Options": "设置默认选项", + "Set As Server Default": "设为服务器默认", + "Set Allowed Users": "设置允许用户", + "Description": "描述", + "Location": "位置", + "Driver": "驱动", + "Connection": "连接", + "Defaults": "默认设置", + "Shared": "已共享", + "Not Shared": "未共享", + "Server Default": "服务器默认", + "Accepting Jobs": "接受任务", + "Rejecting Jobs": "拒绝任务", + "Set Default": "设为默认", + "Delete": "删除", + "Modify": "修改", + "Continue": "继续", + "Back": "返回", + "Apply": "应用", + "Execute": "执行", + "Cancel": "取消", + "Refresh": "刷新", + "Name": "名称", + "Make": "品牌", + "Model": "型号", + "Device": "设备", + "Local Printers": "本地打印机", + "Discovered Network Printers": "已发现的网络打印机", + "Other Network Printers": "其他网络打印机", + "Current Connection": "当前连接", + "Sharing": "共享", + "Choose Driver": "选择驱动", + "Choose Device": "选择设备", + "Choose Make": "选择品牌", + "Choose Model": "选择型号", + "Current Driver": "当前驱动", + "Provide a PPD File": "提供 PPD 文件", + "Query Printer for Default Options": "从打印机查询默认选项", + "Loading": "加载中", + "Searching": "搜索中", + "Supply Levels": "耗材余量", + "Policies": "策略", + "Operation Policy": "操作策略", + "Error Policy": "错误策略", + "Job Sheets": "作业封面", + "Banner": "横幅页", + "Starting Banner": "开始横幅页", + "Ending Banner": "结束横幅页", + "Allowed Users": "允许用户", + "Denied Users": "拒绝用户", + "Hold Job": "保留任务", + "Release Job": "释放任务", + "Restart Job": "重启任务", + "Move Job": "移动任务", + "Cancel Job": "取消任务", + "Page": "页面", + "Pages": "页数", + "Status": "状态", + "User": "用户", + "Size": "大小", + "Date": "日期", + "Time": "时间", + "Priority": "优先级", + "Media Limits": "纸张限制", + "Output Order": "输出顺序", + "Reverse": "反向", + "Forward": "正向", + "Collated": "逐份", + "Uncollated": "不逐份", + "Resolution": "分辨率", + "Printer Resolution": "打印机分辨率", + "Color Mode": "色彩模式", + "Color Model": "色彩模型", + "Color Correction": "色彩校正", + "Color Management": "色彩管理", + "Media Weight": "纸张重量", + "Page Delivery": "页面输出", + "Output Resolution": "输出分辨率" + }; + + var phrases = [ + ["Media Size", "纸张尺寸"], + ["Page Size", "页面尺寸"], + ["Paper Size", "纸张尺寸"], + ["Media Type", "纸张类型"], + ["Paper Type", "纸张类型"], + ["Input Slot", "进纸来源"], + ["Paper Source", "纸张来源"], + ["Media Source", "纸张来源"], + ["Output Bin", "出纸槽"], + ["Output Tray", "出纸托盘"], + ["Duplex Printing", "双面打印"], + ["Two-Sided Printing", "双面打印"], + ["2-Sided Printing", "双面打印"], + ["Double-Sided Printing", "双面打印"], + ["Print Quality", "打印质量"], + ["Printout Quality", "打印输出质量"], + ["Printout Mode", "打印模式"], + ["Output Mode", "输出模式"], + ["Color Mode", "色彩模式"], + ["Color Model", "色彩模型"], + ["Color Correction", "色彩校正"], + ["Color Management", "色彩管理"], + ["Resolution", "分辨率"], + ["Copies", "份数"], + ["Collate", "逐份打印"], + ["Orientation", "方向"], + ["Scaling", "缩放"], + ["Fit to Page", "适合页面"], + ["Page Region", "页面区域"], + ["Page Border", "页面边框"], + ["Page Order", "页面顺序"], + ["Mirror Print", "镜像打印"], + ["Toner Save", "省粉模式"], + ["Ink/Toner Save", "省墨/省粉模式"], + ["Economy Mode", "经济模式"], + ["Draft Mode", "草稿模式"], + ["Print Density", "打印浓度"], + ["Density", "浓度"], + ["Darkness", "深浅"], + ["Brightness", "亮度"], + ["Contrast", "对比度"], + ["Saturation", "饱和度"], + ["Gamma", "伽马"], + ["Halftoning", "半色调"], + ["Image Quality", "图像质量"], + ["Installed Memory", "已安装内存"], + ["Optional Tray", "可选纸盒"], + ["Long-Edge", "长边"], + ["Short-Edge", "短边"], + ["one-sided", "单面"], + ["two-sided-long-edge", "双面(长边翻转)"], + ["two-sided-short-edge", "双面(短边翻转)"], + ["job-sheets", "作业封面"], + ["media", "纸张"], + ["sides", "双面设置"], + ["Search Results", "搜索结果"], + ["Print Settings", "打印设置"], + ["Printer Options", "打印机选项"], + ["Default Options", "默认选项"], + ["Installable Options", "可安装选项"], + ["General Options", "常规选项"], + ["Finishing Options", "后处理选项"], + ["Image Options", "图像选项"], + ["Text Options", "文本选项"], + ["Color Options", "色彩选项"], + ["Advanced Options", "高级选项"], + ["Maximum Clients", "最大客户端数"], + ["Maximum Jobs", "最大任务数"], + ["Preserve Metadata", "保留元数据"], + ["Preserve Documents", "保留文档"], + ["Maximum Log File Size", "最大日志文件大小"], + ["Document Name", "文档名称"], + ["Job ID", "任务 ID"], + ["Job State", "任务状态"], + ["Job Name", "任务名称"], + ["Printer State", "打印机状态"], + ["Make and Model", "品牌和型号"], + ["Page Range", "页码范围"], + ["Number-Up", "每张页数"], + ["Pages Per Sheet", "每张纸页数"], + ["Input Tray", "进纸托盘"], + ["Staple", "装订"], + ["Punch", "打孔"], + ["Fold", "折叠"], + ["Booklet", "小册子"], + ["Borderless", "无边距"], + ["Edge-to-Edge", "满版打印"] + ]; + + function trimText(text) { + return text.replace(/^\s+|\s+$/g, ""); + } + + function localizeText(text) { + var core = trimText(text); + var localized = core; + var i; + + if (!core) { + return text; + } + + if (exact[core]) { + localized = exact[core]; + } else { + for (i = 0; i < phrases.length; i++) { + localized = localized.split(phrases[i][0]).join(phrases[i][1]); + } + } + + if (localized === core) { + return text; + } + + return text.replace(core, localized); + } + + function localizeNodeText(root) { + var skip = { SCRIPT: true, STYLE: true, TEXTAREA: true, PRE: true, CODE: true }; + var nodes = []; + var walker; + var node; + var i; + + if (!root) { + return; + } + + if (document.createTreeWalker && window.NodeFilter) { + walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, { + acceptNode: function (candidate) { + if (!candidate.nodeValue || !trimText(candidate.nodeValue)) { + return NodeFilter.FILTER_REJECT; + } + if (candidate.parentNode && skip[candidate.parentNode.nodeName]) { + return NodeFilter.FILTER_REJECT; + } + return NodeFilter.FILTER_ACCEPT; + } + }); + while ((node = walker.nextNode())) { + nodes.push(node); + } + } else { + nodes = root.querySelectorAll ? root.querySelectorAll("*") : []; + } + + for (i = 0; i < nodes.length; i++) { + if (nodes[i].nodeType === 3) { + nodes[i].nodeValue = localizeText(nodes[i].nodeValue); + } else if (nodes[i].childNodes && nodes[i].childNodes.length === 1 && nodes[i].childNodes[0].nodeType === 3 && !skip[nodes[i].nodeName]) { + nodes[i].childNodes[0].nodeValue = localizeText(nodes[i].childNodes[0].nodeValue); + } + } + } + + function localizeControls(root) { + var selects = root.querySelectorAll("select"); + var inputs = root.querySelectorAll("input[type=submit], input[type=button], input[type=reset], button"); + var i; + var j; + var select; + + for (i = 0; i < selects.length; i++) { + select = selects[i]; + if ((select.id && select.id.indexOf("select-") === 0) || select.name === "OP") { + for (j = 0; j < select.options.length; j++) { + select.options[j].text = localizeText(select.options[j].text); + } + } + } + + for (i = 0; i < inputs.length; i++) { + if (inputs[i].value) { + inputs[i].value = trimText(localizeText(inputs[i].value)); + } + } + } + + function localizeSafeTextBlocks(root) { + var blocks = root.querySelectorAll("h1, h2, h3, th, .title, .header a, .cups-header a, .tabs label, .sidebar a, .sidebar h3, .thirds h2, .thirds a, .body p, .cups-body p, .body li, .cups-body li, .body a, .cups-body a"); + var cells = root.querySelectorAll("td"); + var i; + + for (i = 0; i < blocks.length; i++) { + localizeNodeText(blocks[i]); + } + + for (i = 0; i < cells.length; i++) { + if (/^\s*(job-sheets|media|sides)=/.test(cells[i].textContent || "")) { + localizeNodeText(cells[i]); + } + } + } + + localizeSafeTextBlocks(document); + localizeControls(document); +})(); diff --git a/cups-docroot-zh_CN/index.html b/cups-docroot-zh_CN/index.html new file mode 100644 index 0000000..64105be --- /dev/null +++ b/cups-docroot-zh_CN/index.html @@ -0,0 +1,52 @@ + + +
+ + + + + + +CUPS 是面向 Linux 和其他类 Unix 系统的标准化开源打印系统。它通过 IPP Everywhere 支持本地打印机和网络打印机。
+