仓库:MuZiCul/layui_us(原创二次开发)· 上游:layui/layui · 语言:JavaScript (ES5 模块化) · 定位:Layui UI 库的英文语言版本
layui-us 是基于 Layui 的二次开发,目的是将中文版的 Layui 翻译为英文版,方便英文用户使用。
Layui 是一套开源免费的 Web UI 组件库,采用自身轻量级模块化规范,遵循原生态 HTML/CSS/JavaScript 开发模式,极易上手、拿来即用。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link href="./layui/css/layui.css" rel="stylesheet">
</head>
<body>
<!-- HTML Content -->
<script src="./layui/layui.js"></script>
<script>
layui.use(function(){
var layer = layui.layer;
layer.msg('Hello World', {icon: 6});
});
</script>
</body>
</html>
layui_us/
├── src/
│ ├── css/ # 样式源码
│ ├── font/ # 图标字体
│ ├── modules/ # 24 个组件模块(.js)
│ └── layui.js # 核心入口(模块加载器)
├── dist/ # 构建产物
├── docs/ # 文档
├── examples/ # 示例
├── gulpfile.js # 构建脚本
└── package.json
24 个模块覆盖 Layui 全部组件:layer(弹层)、form(表单)、table(表格)、laydate(日期)、upload(上传)、carousel(轮播)、tree(树)、flow(流加载)、util(工具)等。
翻译一个 UI 库的难度远超翻译普通文本:
| 翻译对象 | 说明 |
|---|---|
| 组件文案 | 如 form 的校验提示"必填项不能为空"、table 的"无数据"、分页的"上一页/下一页" |
| 日期/时间 | laydate 的月份、星期、农历等本地化 |
layer 弹层 |
确认按钮、取消按钮、加载文案 |
| 文档站 | docs/ 下全部说明文档 |
| 示例 | examples/ 演示页面 |
因为是 ES5 + 自身模块化规范(layui.define / layui.use)的老式架构,翻译需要逐模块修改源码中的字符串字面量并重新构建(gulp),工作量比现代 i18n 方案(语言包外置)大得多。
"Layui 虽不是前端主流,但也早已不是作者个人的 Layui,而是所有仍在坚持使用它的人的 Layui……而 Layui 所做的,是为填补主流之外的那些略显狭小的空隙。"
这个仓库是我对 Layui 做国际化二次开发的记录:
gulpfile.js 构建、dist/ 产物、docs/ 文档、examples/ 示例全都保留并同步翻译,不是只改源码想 fork 开源项目做本地化或定制版时,重点是要和原工程结构保持一致,方便以后同步上游更新。
背景补充:作者多个 Flask 项目(
Flask_framework、huatec)都使用 Layui 作为前端,这个英文版仓库与其技术栈选择一脉相承。