From 39a55a1b6e50d7a6b2accacea051bf7cc646ca38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=A4=E5=BF=83?= <3277200+sentsim@users.noreply.github.com> Date: Fri, 20 Jun 2025 17:47:49 +0800 Subject: [PATCH] =?UTF-8?q?docs(i18n):=20=E6=96=B0=E5=A2=9E=E5=9B=BD?= =?UTF-8?q?=E9=99=85=E5=8C=96=E6=96=87=E6=A1=A3=EF=BC=88beta=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit note: 由于时间关系,本次提交仅为初版,该文档尚未完成 --- docs/i18n/detail/demo.md | 481 ++++++++++++++++++++++++++++++++++++ docs/i18n/detail/options.md | 187 ++++++++++++++ docs/i18n/index.md | 67 +++++ 3 files changed, 735 insertions(+) create mode 100644 docs/i18n/detail/demo.md create mode 100644 docs/i18n/detail/options.md create mode 100644 docs/i18n/index.md diff --git a/docs/i18n/detail/demo.md b/docs/i18n/detail/demo.md new file mode 100644 index 00000000..9a09c1db --- /dev/null +++ b/docs/i18n/detail/demo.md @@ -0,0 +1,481 @@ + + + + + i18n 演示 - Layui + + + + + + +
{{! + !}} + + + + + diff --git a/docs/i18n/detail/options.md b/docs/i18n/detail/options.md new file mode 100644 index 00000000..73309887 --- /dev/null +++ b/docs/i18n/detail/options.md @@ -0,0 +1,187 @@ +```js +i18n.set({ + locale: 'zh-CN', // 设置语言环境 + messages: { // 语言包 + 'zh-CN': { // 简体中文(默认) + code: { + copy: '复制代码', + copied: '已复制', + copyError: '复制失败', + maximize: '最大化显示', + restore: '还原显示', + preview: '在新窗口预览' + }, + colorpicker: { + clear: '清除', + confirm: '确定' + }, + dropdown: { + noData: '暂无数据' + }, + flow: { + loadMore: '加载更多', + noMore: '没有更多了' + }, + form: { + select: { + noData: '暂无数据', + noMatch: '无匹配数据', + placeholder: '请选择' + }, + validateMessages: { + required: '必填项不能为空', + phone: '手机号格式不正确', + email: '邮箱格式不正确', + url: '链接格式不正确', + number: '只能填写数字', + date: '日期格式不正确', + identity: '身份证号格式不正确' + }, + verifyErrorPromptTitle: '提示' + }, + laydate: { + month: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'], + weeks: ['日', '一', '二', '三', '四', '五', '六'], + time: ['时', '分', '秒'], + selectDate: '选择日期', + selectTime: '选择时间', + startTime: '开始时间', + endTime: '结束时间', + tools: { + confirm: '确定', + clear: '清空', + now: '现在', + reset: '重置' + }, + timeout: '结束时间不能早于开始时间
请重新选择', + invalidDate: '不在有效日期或时间范围内', + formatError: ['日期格式不合法
必须遵循下述格式:
', '
已为你重置'], + preview: '当前选中的结果' + }, + layer: { + confirm: '确定', + cancel: '取消', + defaultTitle: '信息', + prompt: { + InputLengthPrompt: '最多输入 {length} 个字符' + }, + photos: { + noData: '没有图片', + tools:{ + rotate: '旋转', + scaleX: '水平变换', + zoomIn: '放大', + zoomOut: '缩小', + reset: '还原', + close: '关闭' + }, + viewPicture: '查看原图', + urlError: { + prompt: '当前图片地址异常,
是否继续查看下一张?', + confirm: '下一张', + cancel: '不看了' + } + } + }, + laypage: { + prev: '上一页', + next: '下一页', + first: '首页', + last: '尾页', + total: '共 {total} 条', + pagesize: '条/页', + goto: '到第', + page: '页', + confirm: '确定' + }, + table: { + sort: { + asc: '升序', + desc: '降序' + }, + noData: '无数据', + tools:{ + filter: { + title: '筛选列' + }, + export: { + title: '导出', + noDataPrompt: '当前表格无数据', + compatPrompt: '导出功能不支持 IE,请用 Chrome 等高级浏览器导出', + csvText : '导出 CSV 文件' + }, + print: { + title: '打印', + noDataPrompt: '当前表格无数据' + } + }, + dataFormatError: '返回的数据不符合规范,正确的成功状态码应为:"{statusName}": {statusCode}', + xhrError: '请求异常,错误提示:{msg}' + }, + transfer: { + noData: '无数据', + noMatch: '无匹配数据', + title: ['列表一', '列表二'], + searchPlaceholder: '关键词搜索' + }, + tree: { + defaultNodeName: '未命名', + noData: '无数据', + deleteNodePrompt: '确认删除"{name}"节点吗?' + }, + upload: { + fileType: { + file: '文件', + image: '图片', + video: '视频', + audio: '音频' + }, + validateMessages: { + fileExtensionError: '选择的{fileType}中包含不支持的格式', + filesOverLengthLimit: '同时最多只能上传: {length} 个文件', + currentFilesLength: '您当前已经选择了: {length} 个文件', + fileOverSizeLimit: '文件大小不能超过 {size}' + }, + chooseText: '{length} 个文件' + }, + util: { + timeAgo: { + days: '{days} 天前', + hours: '{hours} 小时前', + minutes: '{minutes} 分钟前', + future: '未来', + justNow: '刚刚' + }, + toDateString: { + meridiem: function(hours, minutes){ + var hm = hours * 100 + minutes; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1100) { + return '上午'; + } else if (hm < 1300) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } + return '晚上'; + } + } + } + }, + 'en': { // 通用英语 + code: { + copy: 'Copy Code', + copied: 'Copied', + // …… + }, + // …… + }, + 'fr': {}, // 通用法语 + 'zh-HK': {}, // 繁体中文 + // …… // 更多语言代码 + } +}); +``` diff --git a/docs/i18n/index.md b/docs/i18n/index.md new file mode 100644 index 00000000..780fce09 --- /dev/null +++ b/docs/i18n/index.md @@ -0,0 +1,67 @@ +--- +title: 国际化 i18n +toc: true +--- + +# 国际化 2.12+ + +> `i18n` 是 2.12 版本新增的国际化模块,用于实现各组件提示文本的多语言支持。 + +

示例

+ +
+ +
+  
+
+ +

API

+ +| API | 描述 | +| --- | --- | +| var i18n = layui.i18n | 获得 `i18n` 模块。| +| [i18n.set(options)](#set) | 设置语言包及默认语言。| +| [i18n.$t(options)](#translation) | 从国际化消息中获取翻译后的内容。 | + +

国际化配置

+ +i18n 支持两种配置方式,您可以根据实际场景选择任一方式。 + +#### 1. 通过 `i18n.set()` 方法配置 + +`i18n.set(options)` + +- 参数 `options` : 基础属性选项。[#详见选项](#options) + +#### 2. 通过 `LAYUI_GLOBAL.i18n` 全局配置 + +该方式通常用于 Layui 内置组件的自动渲染时的场景,需放置在 `layui.js` 导入之前,以确保国际化配置在组件渲染之前完成。 + +```html + + +``` + +

选项

+ +
+{{- d.include("/i18n/detail/options.md") }} +
+ +## 💖 心语 + + +