From e49fa0ac4e793e8af96e99240dc44b6f8cadda3a Mon Sep 17 00:00:00 2001 From: Anyon Date: Mon, 17 Nov 2025 12:37:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=AE=8C=E5=96=84=E5=B9=B6=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=A4=9A=E8=AF=AD=E8=A8=80=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin/think-library/src/lang/en-us.php | 232 +-- plugin/think-library/src/lang/zh-tw.php | 74 +- plugin/think-plugs-account/src/lang/en-us.php | 101 ++ .../src/view/device/index.html | 30 +- .../src/view/message/config.html | 18 +- plugin/think-plugs-admin/src/lang/en-us.php | 193 +++ .../think-plugs-admin/src/view/base/form.html | 30 +- .../src/view/base/index.html | 22 +- .../src/view/config/system.html | 62 +- .../think-plugs-admin/src/view/menu/form.html | 24 +- .../src/view/menu/index.html | 4 +- .../think-plugs-admin/src/view/user/form.html | 50 +- .../src/view/user/index.html | 6 +- .../think-plugs-admin/src/view/user/pass.html | 26 +- plugin/think-plugs-center/src/lang/en-us.php | 23 + .../src/view/index/index.html | 10 +- plugin/think-plugs-payment/src/lang/en-us.php | 140 ++ .../src/view/balance/index.html | 48 +- .../src/view/config/index.html | 34 +- .../src/view/integral/index.html | 4 +- .../src/lang/en-us.php | 93 ++ .../src/view/config/index.html | 60 +- .../src/view/not-auth.html | 2 +- .../src/view/wechat/index.html | 30 +- .../src/view/wechat/index_search.html | 30 +- plugin/think-plugs-wechat/src/lang/en-us.php | 80 +- .../src/view/config/options.html | 6 +- .../src/view/config/payment.html | 38 +- .../src/view/fans/index.html | 28 +- .../src/view/fans/index_search.html | 36 +- .../src/view/menu/index.html | 14 +- plugin/think-plugs-wemall/src/lang/en-us.php | 1346 +++++++++++++++++ .../src/view/base/agent/form.html | 54 +- .../src/view/base/agent/index.html | 48 +- .../src/view/base/agent/index_search.html | 16 +- .../src/view/base/config/index.html | 118 +- .../src/view/base/config/index_content.html | 14 +- .../src/view/base/config/order.html | 82 +- .../src/view/base/config/params.html | 54 +- .../src/view/base/discount/form.html | 18 +- .../src/view/base/discount/index.html | 26 +- .../src/view/base/express/company/form.html | 20 +- .../src/view/base/express/company/index.html | 32 +- .../base/express/company/index_search.html | 14 +- .../src/view/base/express/template/form.html | 44 +- .../src/view/base/express/template/index.html | 28 +- .../base/express/template/index_search.html | 14 +- .../view/base/express/template/region.html | 24 +- .../src/view/base/level/form.html | 52 +- .../src/view/base/level/index.html | 32 +- .../src/view/base/level/index_search.html | 16 +- .../src/view/base/notify/form.html | 16 +- .../src/view/base/notify/index.html | 24 +- .../src/view/base/notify/index_search.html | 18 +- .../src/view/base/poster/form.html | 54 +- .../src/view/base/poster/index.html | 36 +- .../src/view/base/poster/index_search.html | 14 +- .../src/view/base/report/index.html | 82 +- .../src/view/help/feedback/form.html | 22 +- .../src/view/help/feedback/index.html | 34 +- .../src/view/help/feedback/index_search.html | 18 +- .../src/view/help/problem/form.html | 16 +- .../src/view/help/problem/index.html | 32 +- .../src/view/help/problem/index_search.html | 14 +- .../src/view/help/problem/select.html | 32 +- .../src/view/help/question/form.html | 30 +- .../src/view/help/question/index.html | 22 +- .../src/view/help/question/index_search.html | 22 +- plugin/think-plugs-wemall/src/view/main.html | 2 +- .../src/view/shop/goods/cate/form.html | 24 +- .../src/view/shop/goods/cate/index.html | 28 +- .../src/view/shop/goods/cate/select.html | 12 +- .../src/view/shop/goods/form.html | 138 +- .../src/view/shop/goods/index.html | 66 +- .../src/view/shop/goods/index_search.html | 32 +- .../src/view/shop/goods/mark/form.html | 14 +- .../src/view/shop/goods/mark/index.html | 38 +- .../src/view/shop/goods/mark/select.html | 12 +- .../src/view/shop/goods/select.html | 14 +- .../src/view/shop/goods/select_search.html | 10 +- .../src/view/shop/goods/stock.html | 30 +- .../src/view/shop/order/index.html | 74 +- .../src/view/shop/order/index_search.html | 54 +- .../src/view/shop/refund/form.html | 110 +- .../src/view/shop/refund/index.html | 38 +- .../src/view/shop/refund/index_search.html | 32 +- .../src/view/shop/reply/form.html | 30 +- .../src/view/shop/reply/index.html | 32 +- .../src/view/shop/reply/index_search.html | 18 +- .../src/view/shop/sender/config.html | 18 +- .../src/view/shop/sender/delivery_form.html | 36 +- .../src/view/shop/sender/delivery_query.html | 2 +- .../src/view/shop/sender/index.html | 70 +- .../src/view/shop/sender/index_search.html | 44 +- plugin/think-plugs-wemall/src/view/table.html | 2 +- .../src/view/user/admin/form.html | 28 +- .../src/view/user/admin/index.html | 76 +- .../src/view/user/admin/index_search.html | 26 +- .../src/view/user/admin/parent.html | 26 +- .../src/view/user/admin/parent_search.html | 14 +- .../src/view/user/checkin/config.html | 32 +- .../src/view/user/checkin/index.html | 16 +- .../src/view/user/checkin/index_search.html | 18 +- .../src/view/user/coupon/config/form.html | 58 +- .../src/view/user/coupon/config/index.html | 34 +- .../view/user/coupon/config/index_search.html | 14 +- .../src/view/user/coupon/index.html | 22 +- .../src/view/user/coupon/index_search.html | 20 +- .../src/view/user/create/form.html | 64 +- .../src/view/user/create/index.html | 38 +- .../src/view/user/create/index_search.html | 16 +- .../src/view/user/rebate/config/form.html | 40 +- .../src/view/user/rebate/config/index.html | 22 +- .../view/user/rebate/config/index_search.html | 18 +- .../src/view/user/rebate/index.html | 40 +- .../src/view/user/rebate/index_search.html | 28 +- .../src/view/user/recharge/form.html | 24 +- .../src/view/user/recharge/index.html | 16 +- .../src/view/user/recharge/index_search.html | 14 +- .../src/view/user/transfer/audit.html | 54 +- .../src/view/user/transfer/config.html | 34 +- .../src/view/user/transfer/index.html | 36 +- .../src/view/user/transfer/index_search.html | 20 +- .../src/view/user/transfer/payment.html | 28 +- plugin/think-plugs-wuma/src/lang/en-us.php | 71 + .../src/view/warehouse/user/index-search.html | 18 +- .../src/view/warehouse/user/index.html | 38 +- .../src/view/warehouse/user/pass.html | 28 +- 128 files changed, 4094 insertions(+), 2003 deletions(-) create mode 100644 plugin/think-plugs-account/src/lang/en-us.php create mode 100644 plugin/think-plugs-center/src/lang/en-us.php create mode 100644 plugin/think-plugs-payment/src/lang/en-us.php create mode 100644 plugin/think-plugs-wechat-service/src/lang/en-us.php create mode 100644 plugin/think-plugs-wemall/src/lang/en-us.php create mode 100644 plugin/think-plugs-wuma/src/lang/en-us.php diff --git a/plugin/think-library/src/lang/en-us.php b/plugin/think-library/src/lang/en-us.php index 438717f0d..196897924 100644 --- a/plugin/think-library/src/lang/en-us.php +++ b/plugin/think-library/src/lang/en-us.php @@ -14,130 +14,138 @@ // | github 仓库地址 :https://github.com/zoujingli/ThinkLibrary // +---------------------------------------------------------------------- -declare (strict_types=1); +declare(strict_types=1); use think\admin\Library; use think\admin\model\SystemBase; -// 动态读取英文数据字典 -if (count($langs = Library::$sapp->cache->get('lang-en-us', [])) < 1) { +/** + * 动态加载英文数据字典 + * 从系统数据字典中读取英文翻译,并缓存以提高性能 + */ +$cacheKey = 'lang-en-us'; +$langs = Library::$sapp->cache->get($cacheKey, []); + +if (empty($langs)) { + // 从数据字典读取英文翻译 $langs = array_column(SystemBase::items('英文字典'), 'name', 'code'); - $menus = array_column(SystemBase::items('英文菜单'), 'name', 'code'); - foreach ($menus as $key => $name) $langs["menus_{$key}"] = $name; - Library::$sapp->cache->set('lang-en-us', $langs, 360); + + // 读取英文菜单并合并到语言包中(使用 menus_ 前缀) + $menuItems = array_column(SystemBase::items('英文菜单'), 'name', 'code'); + foreach ($menuItems as $key => $name) { + $langs["menus_{$key}"] = $name; + } + + // 缓存语言包数据,有效期 360 秒 + Library::$sapp->cache->set($cacheKey, $langs, 360); } -// 定义菜单专用语言包,使用固定前缀 `menus_` 开头 -// 数据字典菜单语言包类型为:英文菜单,配置与 英文字典 相同 -// PS. 使用前缀是方便后缀追加配置,另外历史版本未开启语言分组 -// PS. 该文件仅在英文模式下才会加载,系统默认使用 `中文` 模式 +/** + * 静态菜单语言包定义 + * 使用固定前缀 `menus_` 开头,便于后续扩展和维护 + * 注意:该文件仅在英文模式下才会加载,系统默认使用中文模式 + */ $menus = [ -// // 系统管理菜单 -// 'menus_系统管理' => 'System', -// 'menus_系统配置' => 'Configuration', -// 'menus_系统参数配置' => 'Parameter', -// 'menus_系统任务管理' => 'Tasks', -// 'menus_系统日志管理' => 'Oplog', -// 'menus_数据字典管理' => 'Dictionary', -// 'menus_系统文件管理' => 'File', -// 'menus_系统菜单管理' => 'Menu', -// 'menus_权限管理' => 'Permission', -// 'menus_访问权限管理' => 'Role', -// 'menus_系统用户管理' => 'User', -// // 微信管理菜单 -// 'menus_微信管理' => 'WeChat', -// 'menus_微信接口配置' => 'Configuration', -// 'menus_微信支付配置' => 'Pay parameters', -// 'menus_微信粉丝管理' => 'Fan User', -// 'menus_微信定制' => 'Custom ', -// 'menus_微信图文管理' => 'News', -// 'menus_微信菜单配置' => 'Menu', -// 'menus_回复规则管理' => 'Reply Rule', -// 'menus_关注自动回复' => 'Auto Reply', -// 'menus_微信支付' => 'Payment', -// 'menus_支付行为管理' => 'Action Record', -// 'menus_支付退款管理' => 'Refund Record', -// // 插件中心菜单 -// 'menus_插件中心' => 'Plugins' + // 系统管理菜单 + 'menus_系统管理' => 'System', + 'menus_系统配置' => 'Config', + 'menus_系统参数配置' => 'Params', + 'menus_系统任务管理' => 'Tasks', + 'menus_系统日志管理' => 'Logs', + 'menus_数据字典管理' => 'Dict', + 'menus_系统文件管理' => 'Files', + 'menus_系统菜单管理' => 'Menus', + 'menus_权限管理' => 'Perms', + 'menus_访问权限管理' => 'Roles', + 'menus_系统用户管理' => 'Users', + + // 微信管理菜单 + 'menus_微信管理' => 'WeChat', + 'menus_微信接口配置' => 'Config', + 'menus_微信支付配置' => 'Pay Config', + 'menus_微信粉丝管理' => 'Fans', + 'menus_微信定制' => 'Custom', + 'menus_微信图文管理' => 'News', + 'menus_微信菜单配置' => 'Menus', + 'menus_回复规则管理' => 'Rules', + 'menus_关注自动回复' => 'Auto Reply', + 'menus_微信支付' => 'Payment', + 'menus_支付行为管理' => 'Actions', + 'menus_支付退款管理' => 'Refunds', + + // 插件中心菜单 + 'menus_插件中心' => 'Plugins', ]; -$extra = []; -$extra['Y年m月d日 H:i:s'] = 'Y/m/d H:i:s'; -$extra['请重新登录!'] = 'Invalid login authorization, Please login again.'; -$extra['共 %s 条记录,每页显示 %s 条,共 %s 页当前显示第 %s 页。'] = 'Total %s records, display %s per page, total %s page current display %s page.'; +/** + * 额外语言包配置 + * 包含日期格式、登录提示、分页信息等特殊翻译 + */ +$extra = [ + 'Y年m月d日 H:i:s' => 'Y/m/d H:i:s', + '请重新登录!' => 'Invalid authorization, please login again.', + '共 %s 条记录,每页显示 %s 条,共 %s 页当前显示第 %s 页。' => 'Total %s records, %s per page, page %s of %s.', +]; -return array_merge([ - // 常规操作翻译 -// '全部' => 'All', -// '添 加' => 'Add', -// '编 辑' => 'Edit', -// '删 除' => 'Delete', -// '搜 索' => 'Search', -// '导 出' => 'Export', -// '已禁用' => 'Disabled', -// '已激活' => 'Activated', -// '排序权重' => 'Sort', -// '回 收 站' => 'Recycle', -// '保存数据' => 'Submit', -// '取消编辑' => 'Cancel', -// '操作面板' => 'Panel', -// '使用状态' => 'Status', -// '条件搜索' => 'Search', -// '清空数据' => 'Clears Data', -// '创建时间' => 'Create Time', -// '批量删除' => 'Remove Selected', -// '批量禁用' => 'Forbid Selected', -// '批量恢复' => 'Resume Selected', -// '已禁用记录' => 'Disabled Records', -// '已激活记录' => 'Activated Records', +/** + * 基础语言包定义 + * 包含接口提示、存储引擎、日志记录、模块管理等翻译 + */ +$base = [ // 接口提示内容 - '数据删除成功!' => 'Successfully deleted.', - '数据删除失败!' => 'Sorry, Delete failed.', - '数据保存成功!' => 'Successfully saved.', - '数据保存失败!' => 'Sorry, Save failed.', - '数据排序成功!' => 'Successfully Sorted.', - '列表排序失败!' => 'Sorry, Sorting failed.', - '请求响应异常!' => 'Sorry, Request response exception.', - '请求响应成功!' => 'Sorry, Request response successful.', - '未授权禁止访问!' => 'Sorry, Unauthorized access prohibited.', - '会话无效或已失效!' => 'The session is invalid or has expired.', - '表单令牌验证失败!' => 'The Form token is validation failed.', - '接口账号验证失败!' => 'Interface account verification failed.', - '接口请求时差过大!' => 'Interface request time difference too large.', - '接口签名验证失败!' => 'Interface signature verification failed.', - '非JWT访问!' => 'Please use JWT to access.', - '请求参数 %s 不能为空!' => 'Request parameter %s cannot be empty.', - '接口请求响应格式异常!' => 'Abnormal format of interface request response.', - '耗时 %.4f 秒' => 'Time taken %.4f seconds', - '创建任务失败,%s' => 'Failed to create task, %s', - '已创建请等待处理完成!' => 'Task has been created, please wait for processing to complete.', - '删除%s[%s]及授权配置' => 'Delete %s[%s] and authorization configuration', - '暂无轨迹信息~' => 'No trajectory information currently available', + '数据删除成功!' => 'Deleted successfully.', + '数据删除失败!' => 'Delete failed.', + '数据保存成功!' => 'Saved successfully.', + '数据保存失败!' => 'Save failed.', + '数据排序成功!' => 'Sorted successfully.', + '列表排序失败!' => 'Sort failed.', + '请求响应异常!' => 'Request exception.', + '请求响应成功!' => 'Request successful.', + '未授权禁止访问!' => 'Unauthorized access.', + '会话无效或已失效!' => 'Session invalid or expired.', + '表单令牌验证失败!' => 'Form token validation failed.', + '接口账号验证失败!' => 'Account verification failed.', + '接口请求时差过大!' => 'Request time difference too large.', + '接口签名验证失败!' => 'Signature verification failed.', + '非JWT访问!' => 'JWT access required.', + '请求参数 %s 不能为空!' => 'Parameter %s cannot be empty.', + '接口请求响应格式异常!' => 'Invalid response format.', + '耗时 %.4f 秒' => 'Time: %.4f s', + '创建任务失败,%s' => 'Failed to create task: %s', + '已创建请等待处理完成!' => 'Task created, please wait.', + '删除%s[%s]及授权配置' => 'Delete %s[%s] and authorization', + '暂无轨迹信息~' => 'No trajectory info.', + // 存储引擎翻译 - '本地服务器存储' => 'Local server storage', - '自建Alist存储' => 'Self built Alist storage', - '又拍云USS存储' => 'Upyun Cloud USS storage', - '阿里云OSS存储' => 'Aliyun Cloud OSS storage', - '腾讯云COS存储' => 'Tencent Cloud COS Storage', - '七牛云对象存储' => 'Qiniu Cloud Object storage', - '未配置又拍云域名' => 'Unconfigured Upyun Cloud domain', - '未配置阿里云域名' => 'Unconfigured Aliyun Cloud domain', - '未配置七牛云域名' => 'Unconfigured Qiniu Cloud domain', - '未配置腾讯云域名' => 'Unconfigured Tencent Cloud domain', - '未配置Alist域名' => 'Unconfigured Alist Server domain', + '本地服务器存储' => 'Local Storage', + '自建Alist存储' => 'Alist Storage', + '又拍云USS存储' => 'Upyun USS', + '阿里云OSS存储' => 'Aliyun OSS', + '腾讯云COS存储' => 'Tencent COS', + '七牛云对象存储' => 'Qiniu OSS', + '未配置又拍云域名' => 'Upyun domain not configured', + '未配置阿里云域名' => 'Aliyun domain not configured', + '未配置七牛云域名' => 'Qiniu domain not configured', + '未配置腾讯云域名' => 'Tencent domain not configured', + '未配置Alist域名' => 'Alist domain not configured', + // 默认日志翻译 - '增加%s[%s]成功' => 'Added: %s [ %s ]', - '修改%s[%s]状态' => 'Modify: %s [ %s ]', - '更新%s[%s]记录' => 'Update: %s [ %s ]', - '删除%s[%s]成功' => 'Remove: %s [ %s ]', + '增加%s[%s]成功' => 'Added: %s[%s]', + '修改%s[%s]状态' => 'Modified: %s[%s]', + '更新%s[%s]记录' => 'Updated: %s[%s]', + '删除%s[%s]成功' => 'Deleted: %s[%s]', + // 模块管理翻译 -// '系统任务管理' => 'System Task Management', -// '系统菜单管理' => 'System Menu Management', -// '系统文件管理' => 'System File Management', -// '系统用户管理' => 'System User Management', -// '系统日志管理' => 'System Oplog Management', -// '系统参数配置' => 'System Parameter Management', -// '系统权限管理' => 'System Permission Management', -// '数据字典管理' => 'System Dictionary Management', -// '系统运维管理' => 'System Maintenance Management', -], $extra, $menus, $langs); \ No newline at end of file + '系统任务管理' => 'Task Management', + '系统菜单管理' => 'Menu Management', + '系统文件管理' => 'File Management', + '系统用户管理' => 'User Management', + '系统日志管理' => 'Logs Management', + '系统参数配置' => 'Parameter Management', + '访问权限管理' => 'Permission Management', + '数据字典管理' => 'Dictionary Management', + '系统运维管理' => 'Maintenance Management', +]; + +// 合并所有语言包:基础翻译 -> 额外配置 -> 静态菜单 -> 动态字典 +return array_merge($base, $extra, $menus, $langs); \ No newline at end of file diff --git a/plugin/think-library/src/lang/zh-tw.php b/plugin/think-library/src/lang/zh-tw.php index 6c72da55e..6f85558d2 100644 --- a/plugin/think-library/src/lang/zh-tw.php +++ b/plugin/think-library/src/lang/zh-tw.php @@ -14,26 +14,48 @@ // | github 仓库地址 :https://github.com/zoujingli/ThinkLibrary // +---------------------------------------------------------------------- -declare (strict_types=1); +declare(strict_types=1); use think\admin\Library; use think\admin\model\SystemBase; -// 动态读取繁体数据字典 -if (count($langs = Library::$sapp->cache->get('lang-zh-tw', [])) < 1) { +/** + * 動態加載繁體中文數據字典 + * 從系統數據字典中讀取繁體中文翻譯,並緩存以提高性能 + */ +$cacheKey = 'lang-zh-tw'; +$langs = Library::$sapp->cache->get($cacheKey, []); + +if (empty($langs)) { + // 從數據字典讀取繁體中文翻譯 $langs = array_column(SystemBase::items('繁体中文'), 'name', 'code'); - $menus = array_column(SystemBase::items('繁体菜单'), 'name', 'code'); - foreach ($menus as $key => $name) $langs["menus_{$key}"] = $name; - Library::$sapp->cache->set('lang-zh-tw', $langs, 360); + + // 讀取繁體菜單並合併到語言包中(使用 menus_ 前綴) + $menuItems = array_column(SystemBase::items('繁体菜单'), 'name', 'code'); + foreach ($menuItems as $key => $name) { + $langs["menus_{$key}"] = $name; + } + + // 緩存語言包數據,有效期 360 秒 + Library::$sapp->cache->set($cacheKey, $langs, 360); } -$extra = []; -$extra['Y年m月d日 H:i:s'] = 'Y年m月d日 H:i:s'; -$extra['请重新登录!'] = '登錄授權無效,請重新登錄!'; -$extra['共 %s 条记录,每页显示 %s 条,共 %s 页当前显示第 %s 页。'] = '共 %s 條記錄,每頁顯示 %s 條,共 %s 頁當前顯示第 %s 頁。'; +/** + * 額外語言包配置 + * 包含日期格式、登錄提示、分頁信息等特殊翻譯 + */ +$extra = [ + 'Y年m月d日 H:i:s' => 'Y年m月d日 H:i:s', + '请重新登录!' => '登錄授權無效,請重新登錄!', + '共 %s 条记录,每页显示 %s 条,共 %s 页当前显示第 %s 页。' => '共 %s 條記錄,每頁顯示 %s 條,共 %s 頁當前顯示第 %s 頁。', +]; -return array_merge([ - // 接口提示内容 +/** + * 基礎語言包定義 + * 包含接口提示、存儲引擎、日誌記錄、模塊管理等翻譯 + */ +$base = [ + // 接口提示內容 '数据删除成功!' => '數據刪除成功!', '数据删除失败!' => '數據刪除失敗!', '数据保存成功!' => '數據保存成功!', @@ -45,7 +67,7 @@ return array_merge([ '未授权禁止访问!' => '未授權禁止訪問!', '会话无效或已失效!' => '會話無效或已失效!', '表单令牌验证失败!' => '表單令牌驗證失敗!', - '接口账号验证失败!' => '接口账号验证失败!', + '接口账号验证失败!' => '接口賬號驗證失敗!', '接口请求时差过大!' => '接口請求時差過大!', '接口签名验证失败!' => '接口簽名驗證失敗!', '非JWT访问!' => '請使用 JWT 方式訪問!', @@ -56,21 +78,37 @@ return array_merge([ '已创建请等待处理完成!' => '已創建請等待處理完成!', '删除%s[%s]及授权配置' => '刪除%s[%s]及授權配置', '暂无轨迹信息~' => '暫無軌迹信息~', - // 存储引擎翻译 + + // 存儲引擎翻譯 '本地服务器存储' => '本地服務器存儲', '自建Alist存储' => '自建Alist存儲', - '七牛云对象存储' => '七牛雲對象存儲', '又拍云USS存储' => '又拍雲USS存儲', '阿里云OSS存储' => '阿裏雲OSS存儲', '腾讯云COS存储' => '騰訊雲COS存儲', + '七牛云对象存储' => '七牛雲對象存儲', '未配置又拍云域名' => '未配置又拍雲域名', '未配置阿里云域名' => '未配置阿裏雲域名', '未配置七牛云域名' => '未配置七牛雲域名', - '未配置腾讯云域名' => '未配置腾讯云域名', + '未配置腾讯云域名' => '未配置騰訊雲域名', '未配置Alist域名' => '未配置Alist域名', - // 默认日志翻译 + + // 默認日誌翻譯 '增加%s[%s]成功' => '增加%s[%s]成功', '修改%s[%s]状态' => '修改%s[%s]狀態', '更新%s[%s]记录' => '更新%s[%s]記錄', '删除%s[%s]成功' => '刪除%s[%s]成功', -], $extra, $langs); \ No newline at end of file + + // 模塊管理翻譯 + '系统任务管理' => '系統任務管理', + '系统菜单管理' => '系統菜單管理', + '系统文件管理' => '系統文件管理', + '系统用户管理' => '系統用戶管理', + '系统日志管理' => '系統日誌管理', + '系统参数配置' => '系統參數配置', + '访问权限管理' => '訪問權限管理', + '数据字典管理' => '數據字典管理', + '系统运维管理' => '系統運維管理', +]; + +// 合併所有語言包:基礎翻譯 -> 額外配置 -> 動態字典 +return array_merge($base, $extra, $langs); \ No newline at end of file diff --git a/plugin/think-plugs-account/src/lang/en-us.php b/plugin/think-plugs-account/src/lang/en-us.php new file mode 100644 index 000000000..d3ace6370 --- /dev/null +++ b/plugin/think-plugs-account/src/lang/en-us.php @@ -0,0 +1,101 @@ + 'User Management', + '回 收 站' => 'Recycle Bin', + '排序权重' => 'Sort Weight', + '头像' => 'Avatar', + '账号状态' => 'Account Status', + '操作面板' => 'Actions', + '已激活' => 'Activated', + '已禁用' => 'Disabled', + '已启用' => 'Enabled', + '已冻结的用户' => 'Frozen Users', + '已激活的用户' => 'Activated Users', + '删 除' => 'Delete', + '保存数据' => 'Save Data', + '取消编辑' => 'Cancel Edit', + '保存配置' => 'Save Configuration', + '取消修改' => 'Cancel Modification', + '确定要取消编辑吗?' => 'Are you sure you want to cancel editing?', + '确定要取消修改吗?' => 'Are you sure you want to cancel the modification?', + '确定要永久删除此账号吗?' => 'Are you sure you want to permanently delete this account?', + '全部' => 'All', + '搜 索' => 'Search', + '导 出' => 'Export', + + // 设备管理 + '账号接口配置' => 'Account Interface Configuration', + '账号配置' => 'Account Configuration', + '终端类型' => 'Device Type', + '绑定手机' => 'Bound Mobile', + '用户姓名' => 'User Name', + '用户昵称' => 'User Nickname', + '关联账号' => 'Associated Account', + '使用状态' => 'Status', + '首次登录' => 'First Login', + '请输入绑定手机' => 'Please enter bound mobile', + '请输入用户姓名' => 'Please enter user name', + '请输入用户昵称' => 'Please enter user nickname', + '请选择绑定时间' => 'Please select binding time', + '用户账号数据' => 'User Account Data', + + // 主账号管理 + '用户编号' => 'User Code', + '绑定邮箱' => 'Bound Email', + '绑定时间' => 'Binding Time', + '请输入用户编号' => 'Please enter user code', + '请输入绑定邮箱' => 'Please enter bound email', + + // 消息管理 + '短信配置' => 'SMS Configuration', + '消息编号' => 'Message Code', + '短信类型' => 'SMS Type', + '发送手机' => 'Send Mobile', + '短信内容' => 'SMS Content', + '发送时间' => 'Send Time', + '发送失败' => 'Send Failed', + '发送成功' => 'Send Success', + '请输入消息编号' => 'Please enter message code', + '请输入发送手机' => 'Please enter send mobile', + '请输入短信内容' => 'Please enter SMS content', + '请选择发送时间' => 'Please select send time', + + // 短信配置 + '服务区域' => 'Service Region', + '阿里云账号' => 'Aliyun Account', + '阿里云密钥' => 'Aliyun Secret Key', + '短信签名' => 'SMS Signature', + '短信模板编号' => 'SMS Template Code', + '请输入阿里云账号' => 'Please enter Aliyun account', + '请输入阿里云密钥' => 'Please enter Aliyun secret key', + '请输入短信签名' => 'Please enter SMS signature', + '请输入短信模板编号' => 'Please enter SMS template code', + + // 账号配置 + '认证有效时间' => 'Authentication Expire Time', + '登录自动注册' => 'Auto Register on Login', + '默认昵称前缀' => 'Default Nickname Prefix', + '默认用户头像' => 'Default User Avatar', + '开放接口通道' => 'Open Interface Channels', + '设置为 0 表示永不过期,建议设置有效时间达到系统自动回收令牌。' => 'Set to 0 means never expires. It is recommended to set an expiration time for automatic token recycling.', + '启用自动登录时,通过验证码登录时账号不存在会自动创建!' => 'When auto login is enabled, accounts that do not exist will be automatically created when logging in with verification code!', + '用户绑定账号后会自动使用此前缀与手机号后4位拼接为新默认昵称。' => 'After user binds account, this prefix will be automatically combined with the last 4 digits of mobile number as new default nickname.', + '当用户未设置头像时,自动使用此头像设置的图片链接。' => 'When user has not set avatar, automatically use the image link set in this avatar.', + '请输入默认昵称前缀' => 'Please enter default nickname prefix', +]); + diff --git a/plugin/think-plugs-account/src/view/device/index.html b/plugin/think-plugs-account/src/view/device/index.html index 1ce07fec3..d04592b16 100644 --- a/plugin/think-plugs-account/src/view/device/index.html +++ b/plugin/think-plugs-account/src/view/device/index.html @@ -2,14 +2,14 @@ {block name="button"} - + {/block} {block name="content"}
{foreach $scenes as $k=>$s} {/foreach} @@ -41,7 +41,7 @@
- - + +
\ No newline at end of file diff --git a/plugin/think-plugs-admin/src/lang/en-us.php b/plugin/think-plugs-admin/src/lang/en-us.php index 2f4ed627f..5db9756b0 100644 --- a/plugin/think-plugs-admin/src/lang/en-us.php +++ b/plugin/think-plugs-admin/src/lang/en-us.php @@ -19,6 +19,7 @@ $extra['开发人员或在功能调试时使用,系统异常时会显示详细 $extra['项目正式部署上线后使用,系统异常时统一显示 “%s”,只记录重要的异常日志信息,强烈推荐上线后使用此模式。'] = 'After the project is officially deployed and launched, it will be used. When there are system exceptions, " %s " will be displayed uniformly, and only important exception log information will be recorded. It is strongly recommended to use this mode after launch.'; $extra['旧版本编辑器,对浏览器兼容较好,但内容编辑体验稍有不足。'] = 'The old version of the editor is compatible with browsers, but the content editing experience is slightly insufficient.'; $extra['新版本编辑器,只支持新特性浏览器,对内容编辑体验较好,推荐使用。'] = 'The new version of the editor only supports the new feature browser and has a good experience in content editing. It is recommended to use it.'; +$extra['国产优质富文本编辑器,对于小程序及App内容支持会更友好,推荐使用。'] = 'A high-quality Chinese rich text editor that provides better support for mini-programs and App content. Recommended for use.'; $extra['优先使用新版本编辑器,若浏览器不支持新版本时自动降级为旧版本编辑器。'] = 'Priority should be given to using the new version of the editor. If the browser does not support the new version, it will automatically be downgraded to the old version of the editor.'; $extra['文件上传到本地服务器的 `static/upload` 目录,不支持大文件上传,占用服务器磁盘空间,访问时消耗服务器带宽流量。'] = 'Uploading files to the `static/upload` directory of the local server does not support uploading large files, occupying server disk space, and consuming server bandwidth traffic during access.'; $extra['文件上传到 Alist 存储的服务器或云存储空间,根据服务配置可支持大文件上传,不占用本身服务器空间及服务器带宽流量。'] = 'Files can be uploaded to the Alist storage server or Cloud storage space. According to the service configuration, large file upload can be supported without occupying the server space and server bandwidth traffic.'; @@ -197,4 +198,196 @@ return array_merge($extra, [ '系统用户' => 'System User', '密 码' => 'Password', '系统用户管理' => 'Users', + + // 通用操作 + '回 收 站' => 'Recycle Bin', + '排序权重' => 'Sort Weight', + '使用状态' => 'Status', + '操作面板' => 'Actions', + '已激活' => 'Activated', + '已禁用' => 'Disabled', + '已启用' => 'Enabled', + '添 加' => 'Add', + '编 辑' => 'Edit', + '删 除' => 'Delete', + '全部' => 'All', + '搜 索' => 'Search', + '导 出' => 'Export', + '保存数据' => 'Save Data', + '取消编辑' => 'Cancel Edit', + '操作日志' => 'Operation Log', + '创建时间' => 'Create Time', + + // 用户管理 + '批量禁用' => 'Batch Disable', + '批量恢复' => 'Batch Restore', + '编辑用户' => 'Edit User', + '设置密码' => 'Set Password', + '角色身份' => 'Role Identity', + '全部菜单' => 'All Menus', + + // 权限管理 + '确定要批量删除权限吗?' => 'Are you sure you want to batch delete permissions?', + '确定要删除权限吗?' => 'Are you sure you want to delete the permission?', + '功能节点' => 'Function Node', + '访问权限名称需要保持不重复,在给用户授权时需要根据名称选择!' => 'Access permission names must be unique. When authorizing users, select based on the name!', + '已禁用记录' => 'Disabled Records', + '已激活记录' => 'Activated Records', + + // 菜单管理 + '确定要删除菜单吗?' => 'Are you sure you want to delete the menu?', + '添加系统菜单' => 'Add System Menu', + '编辑系统菜单' => 'Edit System Menu', + + // 文件管理 + '确定删除这些记录吗?' => 'Are you sure you want to delete these records?', + '播放视频' => 'Play Video', + '播放音频' => 'Play Audio', + '查看下载' => 'View/Download', + '编辑文件信息' => 'Edit File Info', + + // 任务管理 + '确定批量删除记录吗?' => 'Are you sure you want to batch delete records?', + '确定要重置该任务吗?' => 'Are you sure you want to reset this task?', + '确定要删除该记录吗?' => 'Are you sure you want to delete this record?', + '请选择计划时间' => 'Please select scheduled time', + '请输入名称或编号' => 'Please enter name or code', + '请输入任务指令' => 'Please enter task command', + + // 确认提示 + '确定要永久删除吗?' => 'Are you sure you want to permanently delete?', + '确定要取消编辑吗?' => 'Are you sure you want to cancel editing?', + '确定要取消修改吗?' => 'Are you sure you want to cancel the modification?', + '确定要禁用这些用户吗?' => 'Are you sure you want to disable these users?', + '确定要恢复这些账号吗?' => 'Are you sure you want to restore these accounts?', + '确定永久删除这些账号吗?' => 'Are you sure you want to permanently delete these accounts?', + + // 系统提示 + '新增类型' => 'New Type', + '只有超级管理员才能操作!' => 'Only super administrators can operate!', + '日志清理失败,%s' => 'Log cleanup failed, %s', + '已存在 %s 应用!' => 'Application %s already exists!', + + // 演示环境提示 + '演示环境禁止修改用户密码!' => 'Demo environment prohibits modifying user passwords!', + '演示环境禁止修改系统配置!' => 'Demo environment prohibits modifying system configuration!', + '演示环境禁止给菜单排序!' => 'Demo environment prohibits menu sorting!', + '演示环境禁止添加菜单!' => 'Demo environment prohibits adding menus!', + '演示环境禁止编辑菜单!' => 'Demo environment prohibits editing menus!', + '演示环境禁止禁用菜单!' => 'Demo environment prohibits disabling menus!', + '演示环境禁止删除菜单!' => 'Demo environment prohibits deleting menus!', + '演示环境禁止修改密码!' => 'Demo environment prohibits modifying passwords!', + + // 表单字段 + '用户账号' => 'User Account', + '用户权限' => 'User Permissions', + '用户资料' => 'User Profile', + '登录账号' => 'Login Account', + '用户名称' => 'User Name', + '角色身份' => 'Role Identity', + '访问权限' => 'Access Permissions', + '联系邮箱' => 'Contact Email', + '联系手机' => 'Contact Mobile', + '联系QQ' => 'Contact QQ', + '用户描述' => 'User Description', + '登录用户账号' => 'Login Username', + '旧的登录密码' => 'Old Password', + '新的登录密码' => 'New Password', + '重复登录密码' => 'Repeat Password', + '验证密码' => 'Verify Password', + '登录密码' => 'Login Password', + '重复密码' => 'Repeat Password', + + // 表单提示 + '登录账号不能少于4位字符,创建后不能再次修改.' => 'Login account must be at least 4 characters and cannot be modified after creation.', + '用于区分用户数据的用户名称,请尽量不要重复.' => 'User name used to distinguish user data, please try not to duplicate.', + '超级用户拥所有访问权限,不需要配置权限。' => 'Super users have all access permissions and do not need to configure permissions.', + '可选,请填写用户常用的电子邮箱' => 'Optional, please fill in the user\'s commonly used email address', + '可选,请填写用户常用的联系手机号' => 'Optional, please fill in the user\'s commonly used mobile phone number', + '可选,请填写用户常用的联系QQ号' => 'Optional, please fill in the user\'s commonly used QQ number', + '请输入用户描述' => 'Please enter user description', + '登录用户账号创建后,不允许再次修改。' => 'Login username cannot be modified after creation.', + '请输入旧密码来验证修改权限,旧密码不限制格式。' => 'Please enter the old password to verify modification permission. The old password format is not restricted.', + '密码必须包含大小写字母、数字、符号的任意两者组合。' => 'Password must contain any combination of uppercase letters, lowercase letters, numbers, and symbols.', + '请重复输入登录密码' => 'Please repeat the login password', + + // 系统配置表单 + '登录表单标题' => 'Login Form Title', + '后台登录入口' => 'Backend Login Entry', + '后台默认配色' => 'Backend Default Theme', + '登录背景图片' => 'Login Background Image', + 'JWT 接口密钥' => 'JWT API Key', + '浏览器小图标' => 'Browser Icon', + '后台程序名称' => 'Backend Program Name', + '后台程序版本' => 'Backend Program Version', + '公安安备号' => 'Public Security Registration Number', + '保存配置' => 'Save Configuration', + '取消修改' => 'Cancel Modification', + '登录标题' => 'Login Title', + '登录入口' => 'Login Entry', + '接口密钥' => 'API Key', + '图标文件' => 'Icon File', + '程序名称' => 'Program Name', + '版权信息' => 'Copyright Information', + + // 菜单表单提示 + '必选' => 'Required', + '可选' => 'Optional', + '请选择上级菜单或顶级菜单 ( 目前最多支持三级菜单 )' => 'Please select parent menu or top-level menu (currently supports up to 3 levels)', + '请填写菜单名称 ( 如:系统管理 ),建议字符不要太长,一般 4-6 个汉字' => 'Please fill in the menu name (e.g., System Management), it is recommended not to be too long, generally 4-6 Chinese characters', + '请填写链接地址或选择系统节点 ( 如:https://domain.com/admin/user/index.html 或 admin/user/index )' => 'Please fill in the link address or select a system node (e.g., https://domain.com/admin/user/index.html or admin/user/index)', + '当填写链接地址时,以下面的 "权限节点" 来判断菜单自动隐藏或显示,注意未填写 "权限节点" 时将不会隐藏该菜单哦' => 'When filling in the link address, use the "Permission Node" below to determine whether the menu is automatically hidden or displayed. Note that if the "Permission Node" is not filled in, the menu will not be hidden', + '设置菜单链接的 GET 访问参数 ( 如:name=1&age=3 )' => 'Set GET access parameters for menu links (e.g., name=1&age=3)', + '请填写系统权限节点 ( 如:admin/user/index ),未填写时默认解释"菜单链接"判断是否拥有访问权限;' => 'Please fill in the system permission node (e.g., admin/user/index). If not filled in, the "Menu Link" will be used by default to determine access permissions', + '设置菜单选项前置图标,目前支持 layui 字体图标及 iconfont 定制字体图标。' => 'Set the prefix icon for menu options. Currently supports layui font icons and iconfont custom font icons.', + '请输入或选择图标' => 'Please enter or select an icon', + '请输入菜单名称' => 'Please enter menu name', + '请输入菜单链接' => 'Please enter menu link', + '请输入链接参数' => 'Please enter link parameters', + '请输入权限节点' => 'Please enter permission node', + '请输入登录账号' => 'Please enter login account', + '请输入用户名称' => 'Please enter user name', + '请输入联系电子邮箱' => 'Please enter contact email', + '请输入用户联系手机' => 'Please enter user contact mobile', + '请输入常用的联系QQ' => 'Please enter commonly used contact QQ', + '请输入旧的登录密码' => 'Please enter old login password', + '请输入新的登录密码' => 'Please enter new login password', + + // 系统配置表单提示 + '请输入登录页面的表单标题' => 'Please enter login form title', + '后台登录入口是由英文字母开头,且不能有相同名称的模块,设置之后原地址不能继续访问,请谨慎配置 ~' => 'Backend login entry must start with English letters and cannot have modules with the same name. After setting, the original address cannot be accessed. Please configure carefully.', + '请输入32位JWT接口密钥' => 'Please enter 32-bit JWT API key', + '请输入 32 位 JWT 接口密钥,在使用 JWT 接口时需要使用此密钥进行加密及签名!' => 'Please enter a 32-bit JWT API key. This key is required for encryption and signing when using JWT interfaces!', + '请上传浏览器图标' => 'Please upload browser icon', + '建议上传 128x128 或 256x256 的 JPG,PNG,JPEG 图片,保存后会自动生成 48x48 的 ICO 文件 ~' => 'It is recommended to upload JPG, PNG, or JPEG images of 128x128 or 256x256. After saving, a 48x48 ICO file will be automatically generated.', + '请输入网站名称' => 'Please enter site name', + '网站名称将显示在浏览器的标签上 ~' => 'Site name will be displayed on the browser tab.', + '请输入程序名称' => 'Please enter program name', + '管理程序名称显示在后台左上标题处 ~' => 'Management program name is displayed in the top left title of the backend.', + '请输入程序版本' => 'Please enter program version', + '管理程序版本显示在后台左上标题处 ~' => 'Management program version is displayed in the top left title of the backend.', + '请输入公安安备号' => 'Please enter public security registration number', + '请输入网站备案号' => 'Please enter website registration number', + '请输入版权信息' => 'Please enter copyright information', + '网站备案号和公安备案号可以在备案管理中心查询并获取,网站上线时必需配置备案号,备案号会链接到信息备案管理系统 ~' => 'Website registration number and public security registration number can be queried and obtained at the Registration Management Center. Registration numbers must be configured when the website goes online, and will be linked to the information registration management system.', + + // 数据字典表单提示 + '数据类型' => 'Data Type', + '请选择数据类型,数据创建后不能再次修改哦 ~' => 'Please select data type. Data type cannot be modified after creation.', + '请输入数据类型' => 'Please enter data type', + '请输入新的数据类型,数据创建后不能再次修改哦 ~' => 'Please enter new data type. Data type cannot be modified after creation.', + '数据编码' => 'Data Code', + '请输入新的数据编码,数据创建后不能再次修改,同种数据类型的数据编码不能出现重复 ~' => 'Please enter new data code. Data code cannot be modified after creation, and duplicate codes are not allowed for the same data type.', + '数据名称' => 'Data Name', + '请输入当前数据名称,请尽量保持名称的唯一性,数据名称尽量不要出现重复 ~' => 'Please enter data name. Try to keep the name unique and avoid duplicates.', + '数据内容' => 'Data Content', + '请输入数据内容' => 'Please enter data content', + + // 数据字典列表 + '添加数据' => 'Add Data', + '确定要批量删除数据吗?' => 'Are you sure you want to batch delete data?', + '数据状态' => 'Data Status', + '数据操作' => 'Actions', + '编辑数据' => 'Edit Data', + '确定要删除数据吗?' => 'Are you sure you want to delete data?', ]); \ No newline at end of file diff --git a/plugin/think-plugs-admin/src/view/base/form.html b/plugin/think-plugs-admin/src/view/base/form.html index 3c4f6c599..59b60da72 100644 --- a/plugin/think-plugs-admin/src/view/base/form.html +++ b/plugin/think-plugs-admin/src/view/base/form.html @@ -3,7 +3,7 @@
-
数据类型Data Type
+
{:lang('数据类型')}Data Type
{if isset($vo.type)} {else} @@ -27,32 +27,32 @@ }); {/if} -

请选择数据类型,数据创建后不能再次修改哦 ~

+

{:lang('请选择数据类型,数据创建后不能再次修改哦 ~')}

- -

请输入新的数据类型,数据创建后不能再次修改哦 ~

+ +

{:lang('请输入新的数据类型,数据创建后不能再次修改哦 ~')}

@@ -61,8 +61,8 @@ {notempty name='vo.id'}{/notempty}
- - + +
\ No newline at end of file diff --git a/plugin/think-plugs-admin/src/view/base/index.html b/plugin/think-plugs-admin/src/view/base/index.html index a96c33aef..3e90f79d1 100644 --- a/plugin/think-plugs-admin/src/view/base/index.html +++ b/plugin/think-plugs-admin/src/view/base/index.html @@ -2,11 +2,11 @@ {block name="button"} - + - + {/block} @@ -38,11 +38,11 @@ {checkbox: true, fixed: true}, {field: 'sort', title: '{:lang("排序权重")}', width: 100, align: 'center', sort: true, templet: '#SortInputTpl'}, // {field: 'type', title: '数据类型', minWidth: 140, align: 'center'}, - {field: 'code', title: '数据编码', width: '20%', align: 'left'}, - {field: 'name', title: '数据名称', width: '30%', align: 'left'}, - {field: 'status', title: '数据状态', minWidth: 110, align: 'center', templet: '#StatusSwitchTpl'}, - {field: 'create_at', title: '创建时间', minWidth: 170, align: 'center', sort: true}, - {toolbar: '#toolbar', align: 'center', minWidth: 150, title: '数据操作', fixed: 'right'}, + {field: 'code', title: '{:lang("数据编码")}', width: '20%', align: 'left'}, + {field: 'name', title: '{:lang("数据名称")}', width: '30%', align: 'left'}, + {field: 'status', title: '{:lang("数据状态")}', minWidth: 110, align: 'center', templet: '#StatusSwitchTpl'}, + {field: 'create_at', title: '{:lang("创建时间")}', minWidth: 170, align: 'center', sort: true}, + {toolbar: '#toolbar', align: 'center', minWidth: 150, title: '{:lang("数据操作")}', fixed: 'right'}, ]] }); @@ -67,20 +67,20 @@ {/block} \ No newline at end of file diff --git a/plugin/think-plugs-admin/src/view/config/system.html b/plugin/think-plugs-admin/src/view/config/system.html index 1b7c7c53e..bdc7385a6 100644 --- a/plugin/think-plugs-admin/src/view/config/system.html +++ b/plugin/think-plugs-admin/src/view/config/system.html @@ -4,19 +4,19 @@
-
后台登录入口Login Entry
+
{:lang('后台登录入口')}Login Entry
-
后台默认配色Theme Style
+
{:lang('后台默认配色')}Theme Style
- 后台登录入口是由英文字母开头,且不能有相同名称的模块,设置之后原地址不能继续访问,请谨慎配置 ~ + {:lang('后台登录入口是由英文字母开头,且不能有相同名称的模块,设置之后原地址不能继续访问,请谨慎配置 ~')}
-
登录背景图片Background Image
+
{:lang('登录背景图片')}Background Image
-
JWT 接口密钥Jwt Key
+
{:lang('JWT 接口密钥')}Jwt Key
- 请输入 32JWT 接口密钥,在使用 JWT 接口时需要使用此密钥进行加密及签名! + {:lang('请输入 32 位 JWT 接口密钥,在使用 JWT 接口时需要使用此密钥进行加密及签名!')}
-
浏览器小图标Browser Icon
+
{:lang('浏览器小图标')}Browser Icon
- +
- 建议上传 128x128256x256JPG,PNG,JPEG 图片,保存后会自动生成 48x48ICO 文件 ~ + {:lang('建议上传 128x128 或 256x256 的 JPG,PNG,JPEG 图片,保存后会自动生成 48x48 的 ICO 文件 ~')}
- 网站备案号和公安备案号可以在备案管理中心查询并获取,网站上线时必需配置备案号,备案号会链接到信息备案管理系统 ~ + {:lang('网站备案号和公安备案号可以在备案管理中心查询并获取,网站上线时必需配置备案号,备案号会链接到信息备案管理系统 ~')}
- - + +
diff --git a/plugin/think-plugs-admin/src/view/menu/form.html b/plugin/think-plugs-admin/src/view/menu/form.html index 609b34ab7..abb4c1a8b 100644 --- a/plugin/think-plugs-admin/src/view/menu/form.html +++ b/plugin/think-plugs-admin/src/view/menu/form.html @@ -12,25 +12,25 @@ {/eq}{/foreach} -

必选,请选择上级菜单或顶级菜单 ( 目前最多支持三级菜单 )

+

{:lang('必选')},{:lang('请选择上级菜单或顶级菜单 ( 目前最多支持三级菜单 )')}

- -

必选,请填写菜单名称 ( 如:系统管理 ),建议字符不要太长,一般 4-6 个汉字

+ +

{:lang('必选')},{:lang('请填写菜单名称 ( 如:系统管理 ),建议字符不要太长,一般 4-6 个汉字')}

- +

- 必选,请填写链接地址或选择系统节点 ( 如:https://domain.com/admin/user/index.html 或 admin/user/index ) -
当填写链接地址时,以下面的 “权限节点” 来判断菜单自动隐藏或显示,注意未填写 “权限节点” 时将不会隐藏该菜单哦 + {:lang('必选')},{:lang('请填写链接地址或选择系统节点 ( 如:https://domain.com/admin/user/index.html 或 admin/user/index )')} +
{:lang('当填写链接地址时,以下面的 "权限节点" 来判断菜单自动隐藏或显示,注意未填写 "权限节点" 时将不会隐藏该菜单哦')}

@@ -38,16 +38,16 @@
- -

可选,设置菜单链接的 GET 访问参数 ( 如:name=1&age=3 )

+ +

{:lang('可选')},{:lang('设置菜单链接的 GET 访问参数 ( 如:name=1&age=3 )')}

- -

可选,请填写系统权限节点 ( 如:admin/user/index ),未填写时默认解释"菜单链接"判断是否拥有访问权限;

+ +

{:lang('可选')},{:lang('请填写系统权限节点 ( 如:admin/user/index ),未填写时默认解释"菜单链接"判断是否拥有访问权限;')}

@@ -55,13 +55,13 @@
- +
-

可选,设置菜单选项前置图标,目前支持 layui 字体图标及 iconfont 定制字体图标。

+

{:lang('可选')},{:lang('设置菜单选项前置图标,目前支持 layui 字体图标及 iconfont 定制字体图标。')}

diff --git a/plugin/think-plugs-admin/src/view/menu/index.html b/plugin/think-plugs-admin/src/view/menu/index.html index 4501312e5..4dd759085 100644 --- a/plugin/think-plugs-admin/src/view/menu/index.html +++ b/plugin/think-plugs-admin/src/view/menu/index.html @@ -108,9 +108,9 @@ {if auth('remove')} {{# if( (d.spc<1 || d.status<1)){ }} - 删 除 + {:lang('删 除')} {{# }else{ }} - 删 除 + {:lang('删 除')} {{# } }} {/if} diff --git a/plugin/think-plugs-admin/src/view/user/form.html b/plugin/think-plugs-admin/src/view/user/form.html index d7eadce3b..54936e871 100644 --- a/plugin/think-plugs-admin/src/view/user/form.html +++ b/plugin/think-plugs-admin/src/view/user/form.html @@ -2,7 +2,7 @@
- 用户账号 + {:lang('用户账号')}
@@ -11,20 +11,20 @@
@@ -33,10 +33,10 @@ {if !empty($bases) || !empty($auths)}
- 用户权限 + {:lang('用户权限')} {if !empty($bases)}
-
角色身份Role Identity
+
{:lang('角色身份')}Role Identity
{foreach $bases as $base}
@@ -39,7 +39,7 @@ {/foreach} {empty name='items'}
-
无记录
+
{:lang('无记录')}
{/empty}
diff --git a/plugin/think-plugs-payment/src/lang/en-us.php b/plugin/think-plugs-payment/src/lang/en-us.php new file mode 100644 index 000000000..0e297b4ba --- /dev/null +++ b/plugin/think-plugs-payment/src/lang/en-us.php @@ -0,0 +1,140 @@ + 'Recycle Bin', + '排序权重' => 'Sort Weight', + '头像' => 'Avatar', + '操作面板' => 'Actions', + '已激活' => 'Activated', + '已禁用' => 'Disabled', + '已启用' => 'Enabled', + '已取消' => 'Cancelled', + '已生效' => 'Effective', + '锁定中' => 'Locked', + '锁定' => 'Lock', + '解 锁' => 'Unlock', + '锁 定' => 'Lock', + '删 除' => 'Delete', + '编 辑' => 'Edit', + '保存数据' => 'Save Data', + '取消编辑' => 'Cancel Edit', + '确定要永久删除吗?' => 'Are you sure you want to permanently delete?', + '确定要删除选中的记录吗?' => 'Are you sure you want to delete selected records?', + '确定要删除文章吗?' => 'Are you sure you want to delete the article?', + '全部' => 'All', + '搜 索' => 'Search', + '导 出' => 'Export', + '创建时间' => 'Create Time', + '操作时间' => 'Operation Time', + '更新时间' => 'Update Time', + + // 余额管理 + '余额管理' => 'Balance Management', + '余额统计' => 'Balance Statistics', + '累计充值' => 'Total Recharge', + '已消费' => 'Consumed', + '剩余可用余额' => 'Available Balance', + '用户账号' => 'User Account', + '用户昵称' => 'User Nickname', + '绑定账号' => 'Bound Account', + '交易金额' => 'Transaction Amount', + '交易单号' => 'Transaction Code', + '交易状态' => 'Transaction Status', + '操作描述' => 'Operation Description', + '操作名称' => 'Operation Name', + '状态操作' => 'Status Operation', + '取消时间' => 'Cancel Time', + '生效时间' => 'Effective Time', + '锁定时间' => 'Lock Time', + '元' => 'Yuan', + + // 积分管理 + '积分管理' => 'Integral Management', + '积分统计' => 'Integral Statistics', + '累计发放' => 'Total Issued', + '剩余可用' => 'Available', + '积分' => 'Integral', + + // 支付管理 + '支付管理' => 'Payment Management', + '支付配置' => 'Payment Configuration', + '添加支付' => 'Add Payment', + '批量删除' => 'Batch Delete', + '图标' => 'Icon', + '支付编号' => 'Payment Code', + '支付类型' => 'Payment Type', + '支付名称' => 'Payment Name', + '终端授权' => 'Terminal Authorization', + '支付状态' => 'Payment Status', + + // 支付记录 + '订单内容' => 'Order Content', + '订单标题' => 'Order Title', + '订单编号' => 'Order Number', + '订单名称' => 'Order Name', + '订单金额' => 'Order Amount', + '需支付' => 'Need to Pay', + '已付' => 'Paid', + '待审' => 'Pending Review', + '支付描述' => 'Payment Description', + '支付状态' => 'Payment Status', + '已支付' => 'Paid', + '未支付' => 'Unpaid', + '待支付' => 'Pending Payment', + '待审核' => 'Pending Review', + '已拒绝' => 'Rejected', + '已完成' => 'Completed', + '支付类型' => 'Payment Type', + '支付时间' => 'Payment Time', + '用户编号' => 'User Code', + '支付行为数据' => 'Payment Behavior Data', + + // 退款管理 + '退款内容' => 'Refund Content', + '用户姓名' => 'User Name', + '请输入用户姓名' => 'Please enter user name', + '请输入订单内容' => 'Please enter order content', + '请选择创建时间' => 'Please select create time', + + // 微信支付配置 + '公众号APPID' => 'WeChat Official Account APPID', + '请输入18位绑定公众号(必填)' => 'Please enter 18-digit bound official account (required)', + '微信商户号' => 'WeChat Merchant Number', + '请输入微信商户号(必填)' => 'Please enter WeChat merchant number (required)', + '微信支付 V2 接口' => 'WeChat Payment V2 API', + '微信支付 V3 接口' => 'WeChat Payment V3 API', + '商户密钥' => 'Merchant Key', + '请输入32位微信商户密钥(必填)' => 'Please enter 32-digit WeChat merchant key (required)', + '支付公钥ID' => 'Payment Public Key ID', + '请输入商户证书公钥序号' => 'Please enter merchant certificate public key serial number', + '证书内容' => 'Certificate Content', + '请输入商户证书公钥内容' => 'Please enter merchant certificate public key content', + '必填,' => 'Required, ', + '从商户平台上下载支付证书,解压并取得其中的 apiclient_cert.pem 用记事本打开并复制文件内容填至此处。' => 'Download the payment certificate from the merchant platform, extract it and get apiclient_cert.pem, open it with Notepad and copy the file content to fill here.', + '密钥内容' => 'Key Content', + '请输入微信商户密钥文件内容' => 'Please enter WeChat merchant key file content', + '从商户平台上下载支付证书,解压并取得其中的 apiclient_key.pem 用记事本打开并复制文件内容填至此处。' => 'Download the payment certificate from the merchant platform, extract it and get apiclient_key.pem, open it with Notepad and copy the file content to fill here.', + '微信支付公钥' => 'WeChat Payment Public Key', + '微信支付公钥 ID' => 'WeChat Payment Public Key ID', + '请输入微信支付公钥ID' => 'Please enter WeChat payment public key ID', + '微信支付公钥内容' => 'WeChat Payment Public Key Content', + '( 需要填写文件的全部内容 )' => '(Need to fill in the full content of the file)', + '请输入微信支付公钥内容' => 'Please enter WeChat payment public key content', + '可选,' => 'Optional, ', + '从商户平台上下载支付证书,解压并取得其中的 pub_key.pem 用记事本打开并复制文件内容填至此处。' => 'Download the payment certificate from the merchant platform, extract it and get pub_key.pem, open it with Notepad and copy the file content to fill here.', +]); + diff --git a/plugin/think-plugs-payment/src/view/balance/index.html b/plugin/think-plugs-payment/src/view/balance/index.html index cc30f1d3e..0a589d6ea 100644 --- a/plugin/think-plugs-payment/src/view/balance/index.html +++ b/plugin/think-plugs-payment/src/view/balance/index.html @@ -2,12 +2,12 @@ {block name="content"}
- 余额统计累计充值 {$balanceTotal|number_format} 元,已消费 {$balanceCount|abs|number_format} 元,剩余可用余额 {:number_format($balanceTotal+$balanceCount)} 元。 + {:lang('余额统计')}{:lang('累计充值')} {$balanceTotal|number_format} {:lang('元')},{:lang('已消费')} {$balanceCount|abs|number_format} {:lang('元')},{:lang('剩余可用余额')} {:number_format($balanceTotal+$balanceCount)} {:lang('元')}。
    - {foreach ['index'=>'余额管理','recycle'=>'回 收 站'] as $k=>$v}{if isset($type) and $type eq $k} + {foreach ['index'=>lang('余额管理'),'recycle'=>lang('回 收 站')] as $k=>$v}{if isset($type) and $type eq $k}
  • {$v}
  • {else}
  • {$v}
  • @@ -27,39 +27,39 @@ cols: [[ {field: 'id', hide: true}, // {checkbox: true, fixed: true}, - {field: 'headimg', title: '头像', width: 70, align: 'center', templet: '
    {{-showTableImage(d.user.headimg,true,"sm")}}
    '}, + {field: 'headimg', title: '{:lang("头像")}', width: 70, align: 'center', templet: '
    {{-showTableImage(d.user.headimg,true,"sm")}}
    '}, { - field: 'id', title: '用户账号', minWidth: 170, width: '10%', templet: function (d) { - return laytpl('
    用户昵称:{{d.user.nickname||"-"}}
    绑定账号:{{d.user.email||d.user.phone||d.user.username||"-"}}
    ').render(d); + field: 'id', title: '{:lang("用户账号")}', minWidth: 170, width: '10%', templet: function (d) { + return laytpl('
    {:lang("用户昵称")}:{{d.user.nickname||"-"}}
    {:lang("绑定账号")}:{{d.user.email||d.user.phone||d.user.username||"-"}}
    ').render(d); } }, { - field: 'amount', title: '交易金额', sort: true, minWidth: 180, width: '15%', templet: function (d) { - return laytpl('
    交易金额:{{d.amount}}
    交易单号:{{d.code||"-"}}
    ').render(d); + field: 'amount', title: '{:lang("交易金额")}', sort: true, minWidth: 180, width: '15%', templet: function (d) { + return laytpl('
    {:lang("交易金额")}:{{d.amount}} {:lang("元")}
    {:lang("交易单号")}:{{d.code||"-"}}
    ').render(d); } }, { - field: 'unlock', title: '交易状态', minWidth: 190, width: '17%', templet: function (d) { + field: 'unlock', title: '{:lang("交易状态")}', minWidth: 190, width: '17%', templet: function (d) { if (d.cancel) { - d.typeInfo = '已取消'; - d.typeLabel = '取消'; + d.typeInfo = '{:lang("已取消")}'; + d.typeLabel = '{:lang("取消")}'; d.typeDatetime = d.cancel_time || '-'; } else if (d.unlock) { - d.typeInfo = '已生效'; - d.typeLabel = '生效'; + d.typeInfo = '{:lang("已生效")}'; + d.typeLabel = '{:lang("生效")}'; d.typeDatetime = d.unlock_time || '-'; } else { - d.typeInfo = '锁定中'; - d.typeLabel = '锁定'; + d.typeInfo = '{:lang("锁定中")}'; + d.typeLabel = '{:lang("锁定")}'; d.typeDatetime = d.unlock_time || '-'; } - return laytpl('
    当前状态:{{-d.typeInfo}}
    {{d.typeLabel}}时间:{{d.typeDatetime}}
    ').render(d); + return laytpl('
    当前状态:{{-d.typeInfo}}
    {{d.typeLabel}}{:lang("时间")}:{{d.typeDatetime}}
    ').render(d); } }, - {field: 'name', title: '操作描述', minWidth: 100, templet: '
    操作名称:{{d.name||"-"}}
    操作描述:{{d.remark||"-"}}
    '}, - {field: 'create_time', title: '操作时间', minWidth: 235, sort: true, templet: '
    更新时间:{{d.update_time||"-"}}
    创建时间:{{d.create_time||"-"}}
    '}, - {field: 'cancel', title: '状态操作', align: 'center', minWidth: 80, width: '9%', templet: '#StatusSwitchTpl'}, - {field: 'id', toolbar: '#toolbar', title: '操作面板', align: 'center', minWidth: 80, width: '8%', fixed: 'right'} + {field: 'name', title: '{:lang("操作描述")}', minWidth: 100, templet: '
    {:lang("操作名称")}:{{d.name||"-"}}
    {:lang("操作描述")}:{{d.remark||"-"}}
    '}, + {field: 'create_time', title: '{:lang("操作时间")}', minWidth: 235, sort: true, templet: '
    {:lang("更新时间")}:{{d.update_time||"-"}}
    {:lang("创建时间")}:{{d.create_time||"-"}}
    '}, + {field: 'cancel', title: '{:lang("状态操作")}', align: 'center', minWidth: 80, width: '9%', templet: '#StatusSwitchTpl'}, + {field: 'id', toolbar: '#toolbar', title: '{:lang("操作面板")}', align: 'center', minWidth: 80, width: '8%', fixed: 'right'} ]] }); @@ -79,9 +79,9 @@ @@ -89,14 +89,14 @@ {if isset($type) and $type eq 'index'} {{# if ( d.cancel==0 && d.unlock==0 ){ }} - 解 锁 + {:lang('解 锁')} {{# } else if( d.cancel==0 && d.unlock==1 ) { }} - 锁 定 + {:lang('锁 定')} {{# } }} {else} - 删 除 + {:lang('删 除')} {/if} diff --git a/plugin/think-plugs-payment/src/view/config/index.html b/plugin/think-plugs-payment/src/view/config/index.html index 21af02fdb..25355e8d5 100644 --- a/plugin/think-plugs-payment/src/view/config/index.html +++ b/plugin/think-plugs-payment/src/view/config/index.html @@ -2,22 +2,22 @@ {block name="button"} - + - + - + {/block} {block name="content"}
      - {foreach ['index'=>'支付管理','recycle'=>'回 收 站'] as $k=>$v}{if isset($type) and $type eq $k} + {foreach ['index'=>lang('支付管理'),'recycle'=>lang('回 收 站')] as $k=>$v}{if isset($type) and $type eq $k}
    • {$v}
    • {else}
    • {$v}
    • @@ -39,13 +39,13 @@ sort: {field: 'sort desc,code', type: 'desc'}, cols: [[ {checkbox: true, fixed: true}, - {field: 'sort', title: '排序权重', align: 'center', width: 100, sort: true, templet: '#SortInputTpl'}, - {field: 'cover', title: '图标', width: 60, align: 'center', templet: "
      {{-showTableImage(d.cover||'')}}
      "}, - {field: 'code', title: '支付编号', align: "center", minWidth: 145, width: '10%'}, - {field: 'ntype', title: '支付类型', align: "center", minWidth: 140, width: '10%'}, - {field: 'name', title: '支付名称', align: 'left', minWidth: 140, width: '10%'}, + {field: 'sort', title: '{:lang("排序权重")}', align: 'center', width: 100, sort: true, templet: '#SortInputTpl'}, + {field: 'cover', title: '{:lang("图标")}', width: 60, align: 'center', templet: "
      {{-showTableImage(d.cover||'')}}
      "}, + {field: 'code', title: '{:lang("支付编号")}', align: "center", minWidth: 145, width: '10%'}, + {field: 'ntype', title: '{:lang("支付类型")}', align: "center", minWidth: 140, width: '10%'}, + {field: 'name', title: '{:lang("支付名称")}', align: 'left', minWidth: 140, width: '10%'}, { - field: 'atype', title: '终端授权', align: 'left', minWidth: 140, templet: function (d) { + field: 'atype', title: '{:lang("终端授权")}', align: 'left', minWidth: 140, templet: function (d) { let strs = []; layui.each(d.atype || {}, function (k, v) { strs.push(laytpl('{{d.v}}').render({v: v})); @@ -53,9 +53,9 @@ return strs.join(''); } }, - {field: 'status', title: '支付状态', align: 'center', minWidth: 110, width: '5%', templet: '#StatusSwitchTpl'}, - {field: 'create_time', title: '创建时间', align: 'center', minWidth: 170, width: '12%', sort: true}, - {toolbar: '#toolbar', title: '操作面板', align: 'center', minWidth: 80, width: '8%', fixed: 'right'}, + {field: 'status', title: '{:lang("支付状态")}', align: 'center', minWidth: 110, width: '5%', templet: '#StatusSwitchTpl'}, + {field: 'create_time', title: '{:lang("创建时间")}', align: 'center', minWidth: 170, width: '12%', sort: true}, + {toolbar: '#toolbar', title: '{:lang("操作面板")}', align: 'center', minWidth: 80, width: '8%', fixed: 'right'}, ]] }); @@ -80,20 +80,20 @@ {/block} \ No newline at end of file diff --git a/plugin/think-plugs-payment/src/view/integral/index.html b/plugin/think-plugs-payment/src/view/integral/index.html index d5ed6d6af..f693c74e5 100644 --- a/plugin/think-plugs-payment/src/view/integral/index.html +++ b/plugin/think-plugs-payment/src/view/integral/index.html @@ -2,12 +2,12 @@ {block name="content"}
      - 积分统计累计发放 {$integralTotal|number_format} 积分,已消费 {$integralCount|abs|number_format} 积分,剩余可用 {:number_format($integralTotal+$integralCount)} 积分。 + {:lang('积分统计')}{:lang('累计发放')} {$integralTotal|number_format} {:lang('积分')},{:lang('已消费')} {$integralCount|abs|number_format} {:lang('积分')},{:lang('剩余可用')} {:number_format($integralTotal+$integralCount)} {:lang('积分')}。
        - {foreach ['index'=>'积分管理','recycle'=>'回 收 站'] as $k=>$v}{if isset($type) and $type eq $k} + {foreach ['index'=>lang('积分管理'),'recycle'=>lang('回 收 站')] as $k=>$v}{if isset($type) and $type eq $k}
      • {$v}
      • {else}
      • {$v}
      • diff --git a/plugin/think-plugs-wechat-service/src/lang/en-us.php b/plugin/think-plugs-wechat-service/src/lang/en-us.php new file mode 100644 index 000000000..50c1a8acb --- /dev/null +++ b/plugin/think-plugs-wechat-service/src/lang/en-us.php @@ -0,0 +1,93 @@ + 'Actions', + '已激活' => 'Activated', + '已禁用' => 'Disabled', + '同 步' => 'Sync', + '清 零' => 'Clear', + '回收站' => 'Recycle Bin', + '公众号' => 'Official Account', + '确定要同步授权微信吗?' => 'Are you sure you want to sync authorized WeChat?', + '每个微信每个月有10次清零机会,请谨慎使用!' => 'Each WeChat account has 10 clear opportunities per month, please use with caution!', + + // 微信授权 + '同步授权微信' => 'Sync Authorized WeChat', + '接口信息' => 'Interface Information', + '公众号APPID' => 'Official Account APPID', + '已请求' => 'Requested', + '次' => 'times', + '平台接口密钥' => 'Platform Interface Key', + '未生成平台接口密钥, 请稍候授权绑定' => 'Platform interface key not generated, please wait for authorization binding', + '消息推送地址' => 'Message Push Address', + '未配置消息推送地址' => 'Message push address not configured', + '公众号信息' => 'Official Account Information', + '未获取到微信昵称' => 'WeChat nickname not obtained', + '完成授权' => 'Authorization Completed', + '未认证' => 'Not Verified', + '已认证' => 'Verified', + + // 搜索 + '公众号ID' => 'Official Account ID', + '请输入APPID' => 'Please enter APPID', + '微信名称' => 'WeChat Name', + '请输入微信名称' => 'Please enter WeChat name', + '公司名称' => 'Company Name', + '请输入公司名称' => 'Please enter company name', + '认证类型' => 'Verification Type', + '- 全部 -' => '- All -', + '订阅号' => 'Subscription Account', + '服务号' => 'Service Account', + '小程序' => 'Mini Program', + '认证状态' => 'Verification Status', + '授权时间' => 'Authorization Time', + '请选择授权时间' => 'Please select authorization time', + '于' => 'At', + + // 配置 + '开放平台配置' => 'Open Platform Configuration', + '微信开放平台对接参数及客户端接口网关地址,面向客户端系统支持 Yar、JsonRpc、WebService 接口方式调用。' => 'WeChat Open Platform docking parameters and client interface gateway address, supporting Yar, JsonRpc, WebService interface methods for client systems.', + '开放平台账号' => 'Open Platform Account', + '未配置' => 'Not Configured', + '开放平台服务 AppId,需要在微信开放平台获取' => 'Open Platform Service AppId, needs to be obtained from WeChat Open Platform', + '开放平台密钥' => 'Open Platform Secret', + '开放平台服务 AppSecret,需要在微信开放平台获取' => 'Open Platform Service AppSecret, needs to be obtained from WeChat Open Platform', + '开放平台消息校验' => 'Open Platform Message Verification', + '开发者在代替微信接收到消息时,用此 TOKEN 来校验消息' => 'When developers receive messages on behalf of WeChat, use this TOKEN to verify messages', + '开放平台消息加解密' => 'Open Platform Message Encryption/Decryption', + '在代替微信收发消息时使用,必须是长度为43位字母和数字组合的字符串' => 'Used when sending and receiving messages on behalf of WeChat, must be a 43-character string of letters and numbers', + '授权白名单IP地址' => 'Authorization Whitelist IP Address', + '需要在开放平台配置此IP地址后才能调用开放平台的接口哦' => 'This IP address needs to be configured in the Open Platform before calling the Open Platform interface', + '授权发起页域名' => 'Authorization Initiation Page Domain', + '微信开放平台对接所需参数,从本域名跳转到登录授权页才可以完成登录授权,无需填写域名协议前缀' => 'Required parameter for WeChat Open Platform docking. Jump from this domain to the login authorization page to complete login authorization. No need to fill in domain protocol prefix', + '授权事件接收地址' => 'Authorization Event Receiving Address', + '微信开放平台对接所需参数,用于接收取消授权通知、授权成功通知、授权更新通知、接收 TICKET 凭据' => 'Required parameter for WeChat Open Platform docking, used to receive authorization cancellation notifications, authorization success notifications, authorization update notifications, and receive TICKET credentials', + '微信消息接收地址' => 'WeChat Message Receiving Address', + '微信开放平台对接所需参数,通过该 URL 接收微信消息和事件推送,$APPID$ 将被替换为微信 AppId' => 'Required parameter for WeChat Open Platform docking. Receive WeChat messages and event pushes through this URL. $APPID$ will be replaced with WeChat AppId', + '微信授权绑定跳转入口' => 'WeChat Authorization Binding Redirect Entry', + '应用插件 ThinkPlugsWechat 对接所需参数,使用微信第三方授权时会跳转到这个页面,由微信管理员进行扫码授权' => 'Required parameter for ThinkPlugsWechat plugin docking. When using WeChat third-party authorization, it will jump to this page for WeChat administrator to scan code for authorization', + '客户端系统 Yar 调用接口' => 'Client System Yar Call Interface', + '应用插件 ThinkPlugsWechat 对接所需参数,客户端 Yar 接口,TOKEN 包含 class appid time nostr sign 的加密内容' => 'Required parameter for ThinkPlugsWechat plugin docking. Client Yar interface. TOKEN contains encrypted content of class appid time nostr sign', + '客户端系统 Soap 调用接口' => 'Client System Soap Call Interface', + '应用插件 ThinkPlugsWechat 对接所需参数,客户端 Soap 接口,TOKEN 包含 class appid time nostr sign 的加密内容' => 'Required parameter for ThinkPlugsWechat plugin docking. Client Soap interface. TOKEN contains encrypted content of class appid time nostr sign', + '客户端系统 JsonRpc 调用接口' => 'Client System JsonRpc Call Interface', + '应用插件 ThinkPlugsWechat 对接所需参数,客户端 JsonRpc 接口链接,TOKEN 包含 class appid time nostr sign 的加密内容' => 'Required parameter for ThinkPlugsWechat plugin docking. Client JsonRpc interface link. TOKEN contains encrypted content of class appid time nostr sign', + + // 未授权页面 + '还没有授权,请授权公众号' => 'Not yet authorized, please authorize the official account', +]); + diff --git a/plugin/think-plugs-wechat-service/src/view/config/index.html b/plugin/think-plugs-wechat-service/src/view/config/index.html index e62081b41..6e530142e 100644 --- a/plugin/think-plugs-wechat-service/src/view/config/index.html +++ b/plugin/think-plugs-wechat-service/src/view/config/index.html @@ -6,103 +6,103 @@ - + {/block} {block name="content"}
        - 微信开放平台对接参数及客户端接口网关地址,面向客户端系统支持 YarJsonRpcWebService 接口方式调用。 + {:lang('微信开放平台对接参数及客户端接口网关地址,面向客户端系统支持 Yar、JsonRpc、WebService 接口方式调用。')}
        - 开放平台账号AppId + {:lang('开放平台账号')}AppId -

        开放平台服务 AppId,需要在微信开放平台获取

        +

        {:lang('开放平台服务 AppId,需要在微信开放平台获取')}

        - 开放平台密钥AppSecret + {:lang('开放平台密钥')}AppSecret -

        开放平台服务 AppSecret,需要在微信开放平台获取

        +

        {:lang('开放平台服务 AppSecret,需要在微信开放平台获取')}

        - 开放平台消息校验Token + {:lang('开放平台消息校验')}Token -

        开发者在代替微信接收到消息时,用此 TOKEN 来校验消息

        +

        {:lang('开发者在代替微信接收到消息时,用此 TOKEN 来校验消息')}

        - 开放平台消息加解密AesKey + {:lang('开放平台消息加解密')}AesKey -

        在代替微信收发消息时使用,必须是长度为43位字母和数字组合的字符串

        +

        {:lang('在代替微信收发消息时使用,必须是长度为43位字母和数字组合的字符串')}

        - 授权白名单IP地址ClientIp + {:lang('授权白名单IP地址')}ClientIp -

        需要在开放平台配置此IP地址后才能调用开放平台的接口哦

        +

        {:lang('需要在开放平台配置此IP地址后才能调用开放平台的接口哦')}

        - 授权发起页域名微信开放平台 + {:lang('授权发起页域名')}微信开放平台 -

        微信开放平台对接所需参数,从本域名跳转到登录授权页才可以完成登录授权,无需填写域名协议前缀

        +

        {:lang('微信开放平台对接所需参数,从本域名跳转到登录授权页才可以完成登录授权,无需填写域名协议前缀')}

        - 授权事件接收地址微信开放平台 + {:lang('授权事件接收地址')}微信开放平台 -

        微信开放平台对接所需参数,用于接收取消授权通知、授权成功通知、授权更新通知、接收 TICKET 凭据

        +

        {:lang('微信开放平台对接所需参数,用于接收取消授权通知、授权成功通知、授权更新通知、接收 TICKET 凭据')}

        - 微信消息接收地址微信开放平台 + {:lang('微信消息接收地址')}微信开放平台 -

        微信开放平台对接所需参数,通过该 URL 接收微信消息和事件推送,$APPID$ 将被替换为微信 AppId

        +

        {:lang('微信开放平台对接所需参数,通过该 URL 接收微信消息和事件推送,$APPID$ 将被替换为微信 AppId')}

        - 微信授权绑定跳转入口ThinkPlugsWechat + {:lang('微信授权绑定跳转入口')}ThinkPlugsWechat -

        应用插件 ThinkPlugsWechat 对接所需参数,使用微信第三方授权时会跳转到这个页面,由微信管理员进行扫码授权

        +

        {:lang('应用插件 ThinkPlugsWechat 对接所需参数,使用微信第三方授权时会跳转到这个页面,由微信管理员进行扫码授权')}

        - 客户端系统 Yar 调用接口ThinkPlugsWechat + {:lang('客户端系统 Yar 调用接口')}ThinkPlugsWechat -

        应用插件 ThinkPlugsWechat 对接所需参数,客户端 Yar 接口,TOKEN 包含 class appid time nostr sign 的加密内容

        +

        {:lang('应用插件 ThinkPlugsWechat 对接所需参数,客户端 Yar 接口,TOKEN 包含 class appid time nostr sign 的加密内容')}

        - 客户端系统 Soap 调用接口ThinkPlugsWechat + {:lang('客户端系统 Soap 调用接口')}ThinkPlugsWechat -

        应用插件 ThinkPlugsWechat 对接所需参数,客户端 Soap 接口,TOKEN 包含 class appid time nostr sign 的加密内容

        +

        {:lang('应用插件 ThinkPlugsWechat 对接所需参数,客户端 Soap 接口,TOKEN 包含 class appid time nostr sign 的加密内容')}

        - 客户端系统 JsonRpc 调用接口ThinkPlugsWechat + {:lang('客户端系统 JsonRpc 调用接口')}ThinkPlugsWechat -

        应用插件 ThinkPlugsWechat 对接所需参数,客户端 JsonRpc 接口链接,TOKEN 包含 class appid time nostr sign 的加密内容

        +

        {:lang('应用插件 ThinkPlugsWechat 对接所需参数,客户端 JsonRpc 接口链接,TOKEN 包含 class appid time nostr sign 的加密内容')}

        diff --git a/plugin/think-plugs-wechat-service/src/view/not-auth.html b/plugin/think-plugs-wechat-service/src/view/not-auth.html index cdbc2ac76..00848990e 100644 --- a/plugin/think-plugs-wechat-service/src/view/not-auth.html +++ b/plugin/think-plugs-wechat-service/src/view/not-auth.html @@ -1 +1 @@ -还没有授权,请授权公众号 \ No newline at end of file +{:lang('还没有授权,请授权公众号')} \ No newline at end of file diff --git a/plugin/think-plugs-wechat-service/src/view/wechat/index.html b/plugin/think-plugs-wechat-service/src/view/wechat/index.html index 07da664df..e1578c718 100644 --- a/plugin/think-plugs-wechat-service/src/view/wechat/index.html +++ b/plugin/think-plugs-wechat-service/src/view/wechat/index.html @@ -2,14 +2,14 @@ {block name="button"} - + {/block} {block name="content"}
          - {foreach ['index'=>'公众号','recycle'=>'回收站'] as $k=>$v} + {foreach ['index'=>lang('公众号'),'recycle'=>lang('回收站')] as $k=>$v} {if isset($type) and $type eq $k}
        • {$v}
        • {else} @@ -31,28 +31,28 @@ sort: {field: 'auth_time', type: 'desc'}, cols: [[ { - field: 'total', sort: true, minWidth: 350, title: '接口信息', templet: function (d) { + field: 'total', sort: true, minWidth: 350, title: '{:lang("接口信息")}', templet: function (d) { let line = []; - line.push('公众号APPID:{{d.authorizer_appid}},已请求 {{d.total}} 次') - line.push('平台接口密钥:{{-d.appkey||"未生成平台接口密钥, 请稍候授权绑定"}}') - line.push('消息推送地址:{{d.appuri||"未配置消息推送地址"}}') + line.push('{:lang("公众号APPID")}:{{d.authorizer_appid}},{:lang("已请求")} {{d.total}} {:lang("次")}') + line.push('{:lang("平台接口密钥")}:{{-d.appkey||"' + '{:lang("未生成平台接口密钥, 请稍候授权绑定")}' + '"}}') + line.push('{:lang("消息推送地址")}:{{d.appuri||"' + '{:lang("未配置消息推送地址")}' + '"}}') return laytpl('
          {{-showTableImage(d.user_headimg, false, "md")}}
          ' + line.join('
          ') + '
          ').render(d) } }, { - field: 'auth_time', sort: true, minWidth: 350, title: '公众号信息', templet: function (d) { + field: 'auth_time', sort: true, minWidth: 350, title: '{:lang("公众号信息")}', templet: function (d) { let line = []; - line.push('{{-d.user_nickname||"未获取到微信昵称"}} ( {{d.user_company}} )') - line.push('于 {{layui.util.toDateString(d.auth_time*1000, "yyyy年MM月dd日 HH:mm:ss")}} 完成授权') + line.push('{{-d.user_nickname||"' + '{:lang("未获取到微信昵称")}' + '"}} ( {{d.user_company}} )') + line.push('{:lang("于")} {{layui.util.toDateString(d.auth_time*1000, "yyyy年MM月dd日 HH:mm:ss")}} {:lang("完成授权")}') if (d.service_verify === '未认证') { - line.push("{{d.user_name||'-'}} / {{d.service_type||'-'}} / 未认证") + line.push("{{d.user_name||'-'}} / {{d.service_type||'-'}} / {:lang('未认证')}") } else { - line.push("{{d.user_name||'-'}} / {{d.service_type||'-'}} / 已认证") + line.push("{{d.user_name||'-'}} / {{d.service_type||'-'}} / {:lang('已认证')}") } return laytpl('
          ' + line.join('
          ') + '
          ').render(d) } }, - {toolbar: '#toolbar', title: '操作面板', minWidth: 280, fixed: 'right'}, + {toolbar: '#toolbar', title: '{:lang("操作面板")}', minWidth: 280, fixed: 'right'}, ]] }); @@ -74,17 +74,17 @@
          - 0?'checked':''}}> + 0?'checked':''}}> - 同 步 + {:lang('同 步')} - 清 零 + {:lang('清 零')} diff --git a/plugin/think-plugs-wechat-service/src/view/wechat/index_search.html b/plugin/think-plugs-wechat-service/src/view/wechat/index_search.html index 53975a0c6..50001f498 100644 --- a/plugin/think-plugs-wechat-service/src/view/wechat/index_search.html +++ b/plugin/think-plugs-wechat-service/src/view/wechat/index_search.html @@ -1,28 +1,28 @@ \ No newline at end of file diff --git a/plugin/think-plugs-wechat/src/lang/en-us.php b/plugin/think-plugs-wechat/src/lang/en-us.php index 32f26aa5f..0a32f700b 100644 --- a/plugin/think-plugs-wechat/src/lang/en-us.php +++ b/plugin/think-plugs-wechat/src/lang/en-us.php @@ -23,5 +23,83 @@ $extra['使用微信公众平台直接模式时,需要在微信公众号平台 return array_merge($extra, [ '微信公众平台直接模式' => 'WeChat public platform direct mode', - '微信开放平台授权模式' => 'WeChat Open platform authorization mode' + '微信开放平台授权模式' => 'WeChat Open platform authorization mode', + + // 粉丝管理 + '拉入黑名单' => 'Add to Blacklist', + '移出黑名单' => 'Remove from Blacklist', + '清空用户数据' => 'Clear User Data', + '同步用户数据' => 'Sync User Data', + '确定要清空所有用户数据吗?' => 'Are you sure you want to clear all user data?', + '确定要创建同步用户数据的后台任务?' => 'Are you sure you want to create a background task to sync user data?', + '微信昵称' => 'WeChat Nickname', + '所在区域' => 'Location', + '性别' => 'Gender', + '使用语言' => 'Language', + '订阅状态' => 'Subscription Status', + '订阅时间' => 'Subscription Time', + '是否黑名单' => 'Blacklist Status', + '已订阅' => 'Subscribed', + '未订阅' => 'Unsubscribed', + '男' => 'Male', + '女' => 'Female', + '未知' => 'Unknown', + '操作面板' => 'Actions', + '头像' => 'Avatar', + '请输入微信昵称' => 'Please enter WeChat nickname', + '显示未订阅的粉丝' => 'Show Unsubscribed Fans', + '显示已订阅的粉丝' => 'Show Subscribed Fans', + '拉黑状态' => 'Blacklist Status', + '显示未拉黑的粉丝' => 'Show Non-Blacklisted Fans', + '显示已拉黑的粉丝' => 'Show Blacklisted Fans', + '请选择订阅时间' => 'Please select subscription time', + '微信粉丝数据' => 'WeChat Fans Data', + '所在国家' => 'Country', + '所在省份' => 'Province', + '所在城市' => 'City', + '是否拉黑' => 'Is Blacklisted', + '已拉黑' => 'Blacklisted', + '未拉黑' => 'Not Blacklisted', + + // 配置 + '绑定小程序' => 'Bind Mini Program', + '开放平台接口配置' => 'Open Platform Interface Configuration', + '开放平台接口' => 'Open Platform Interface', + '微信授权测试( 扫码 )' => 'WeChat Authorization Test (Scan Code)', + '微信授权测试' => 'WeChat Authorization Test', + '微信支付测试' => 'WeChat Payment Test', + '温馨提示:' => 'Tips: ', + '微信商户参数配置,此处交易的商户号需要与微信公众号对接的公众号 APPID 匹配。' => 'WeChat merchant parameter configuration. The merchant number used here needs to match the official account APPID connected to the WeChat official account.', + '微信商户账号' => 'WeChat Merchant Account', + '请输入微信商户账号(必填)' => 'Please enter WeChat merchant account (required)', + '微信商户账号,需要在微信商户平台获取' => 'WeChat merchant account needs to be obtained from WeChat merchant platform', + '微信 V2 接口密钥' => 'WeChat V2 Interface Key', + '微信商户V2密钥' => 'WeChat Merchant V2 Key', + '请输入微信商户V2密钥(必填)' => 'Please enter WeChat merchant V2 key (required)', + '微信商户 V2 密钥,需要在微信商户平台获取商户接口密钥' => 'WeChat merchant V2 key needs to be obtained from WeChat merchant platform', + '微信 V3 接口密钥' => 'WeChat V3 Interface Key', + '微信商户V3密钥' => 'WeChat Merchant V3 Key', + '请输入微信商户V3密钥(必填)' => 'Please enter WeChat merchant V3 key (required)', + '微信商户 V3 密钥,需要在微信商户平台获取商户接口密钥' => 'WeChat merchant V3 key needs to be obtained from WeChat merchant platform', + '微信 V3 支付公钥ID' => 'WeChat V3 Payment Public Key ID', + '微信商户V3支付公钥ID' => 'WeChat Merchant V3 Payment Public Key ID', + '请输入微信商户V3支付公钥ID(必填)' => 'Please enter WeChat merchant V3 payment public key ID (required)', + '微信商户 V3 支付证书ID,需要在微信商户平台操作设置操作密码并获取商户接口密钥' => 'WeChat merchant V3 payment certificate ID needs to be set in WeChat merchant platform and merchant interface key needs to be obtained', + '微信 V3 支付公钥文件' => 'WeChat V3 Payment Public Key File', + '上传微信支付公钥' => 'Upload WeChat Payment Public Key', + '微信商户证书文件' => 'WeChat Merchant Certificate File', + '请选择需要上传证书类型,上传 P12 证书会自动转换为 PEM 证书。' => 'Please select the certificate type to upload. Uploading P12 certificate will automatically convert to PEM certificate.', + '保存配置' => 'Save Configuration', + '微信商户支付测试配置' => 'WeChat Merchant Payment Test Configuration', + 'JSAPI 支付测试需要在微信商户平台配置支付目录:' => 'JSAPI payment test requires configuring payment directory in WeChat merchant platform: ', + '扫码支付①需要在微信商户平台配置支付通知地址:' => 'Scan code payment ① requires configuring payment notification address in WeChat merchant platform: ', + + // 菜单管理 + '公众号' => 'Official Account', + '菜单编辑' => 'Menu Editor', + '请在左侧创建菜单...' => 'Please create menu on the left...', + '菜单名称' => 'Menu Name', + '请输入菜单名称' => 'Please enter menu name', + '字数不超过13个汉字或40个字母' => 'No more than 13 Chinese characters or 40 letters', + '菜单类型' => 'Menu Type', ]); \ No newline at end of file diff --git a/plugin/think-plugs-wechat/src/view/config/options.html b/plugin/think-plugs-wechat/src/view/config/options.html index 23fa325d0..46beaa849 100644 --- a/plugin/think-plugs-wechat/src/view/config/options.html +++ b/plugin/think-plugs-wechat/src/view/config/options.html @@ -2,13 +2,13 @@ {block name="button"} - + - + - + {/block} diff --git a/plugin/think-plugs-wechat/src/view/config/payment.html b/plugin/think-plugs-wechat/src/view/config/payment.html index fbe2b24f4..68544377c 100644 --- a/plugin/think-plugs-wechat/src/view/config/payment.html +++ b/plugin/think-plugs-wechat/src/view/config/payment.html @@ -2,13 +2,13 @@ {block name="button"} - + {/block} {block name="content"}
          - 温馨提示:微信商户参数配置,此处交易的商户号需要与微信公众号对接的公众号 APPID 匹配。 + {:lang('温馨提示:')}{:lang('微信商户参数配置,此处交易的商户号需要与微信公众号对接的公众号 APPID 匹配。')}
          @@ -16,38 +16,38 @@
          - 微信 V3 支付公钥文件MCH_V3_PAYCERT + {:lang('微信 V3 支付公钥文件')}MCH_V3_PAYCERT
          @@ -57,13 +57,13 @@
          - 微信商户证书文件MCH_CERT_FILE + {:lang('微信商户证书文件')}MCH_CERT_FILE
          {foreach ['pem'=>'上传 PEM 证书', 'p12'=>'上传 P12 证书'] as $k=>$v} {/foreach} -

          请选择需要上传证书类型,上传 P12 证书会自动转换为 PEM 证书。

          +

          {:lang('请选择需要上传证书类型,上传 P12 证书会自动转换为 PEM 证书。')}

          @@ -97,7 +97,7 @@
          - +
          diff --git a/plugin/think-plugs-wechat/src/view/fans/index.html b/plugin/think-plugs-wechat/src/view/fans/index.html index 0a2fd9387..6dd56c8a8 100644 --- a/plugin/think-plugs-wechat/src/view/fans/index.html +++ b/plugin/think-plugs-wechat/src/view/fans/index.html @@ -2,16 +2,16 @@ {block name="button"} - - + + - + - + {/block} @@ -31,19 +31,19 @@ cols: [[ {checkbox: true}, {field: 'id', hide: true}, - {field: 'headimg', title: '头像', width: 65, align: "center", templet: '
          {{-$.layTable.showImage(d.headimgurl)}}
          '}, - {field: 'nickname', title: '微信昵称', align: "center", minWidth: 100, templet: '
          {{d.nickname||"-"}}
          '}, - {field: 'province', title: '所在区域', align: "center", minWidth: 120, templet: '
          {{d.country||"-"}} {{d.province}} {{d.city}}
          '}, - {field: 'sex', title: '性别', align: 'center', minWidth: 80, templet: '
          {{d.sex==1 ? "男" : (d.sex==2 ? "女" : "未知")}}
          '}, - {field: 'language', title: '使用语言', align: 'center', minWidth: 100, templet: '
          {{d.language}}
          '}, + {field: 'headimg', title: '{:lang("头像")}', width: 65, align: "center", templet: '
          {{-$.layTable.showImage(d.headimgurl)}}
          '}, + {field: 'nickname', title: '{:lang("微信昵称")}', align: "center", minWidth: 100, templet: '
          {{d.nickname||"-"}}
          '}, + {field: 'province', title: '{:lang("所在区域")}', align: "center", minWidth: 120, templet: '
          {{d.country||"-"}} {{d.province}} {{d.city}}
          '}, + {field: 'sex', title: '{:lang("性别")}', align: 'center', minWidth: 80, templet: '
          {{d.sex==1 ? "' + '{:lang("男")}' + '" : (d.sex==2 ? "' + '{:lang("女")}' + '" : "' + '{:lang("未知")}' + '")}}
          '}, + {field: 'language', title: '{:lang("使用语言")}', align: 'center', minWidth: 100, templet: '
          {{d.language}}
          '}, { - field: 'subscribe', title: '订阅状态', align: "center", minWidth: 90, templet: function (d) { - return d.subscribe > 0 ? '已订阅' : '未订阅'; + field: 'subscribe', title: '{:lang("订阅状态")}', align: "center", minWidth: 90, templet: function (d) { + return d.subscribe > 0 ? '' + '{:lang("已订阅")}' + '' : '' + '{:lang("未订阅")}' + ''; } }, - {field: 'subscribe_time', title: '订阅时间', minWidth: 170, align: 'center', sort: true, templet: '
          {{d.subscribe_at}}
          '}, - {field: 'is_black', title: '是否黑名单', align: 'center', minWidth: 110, templet: '#StatusSwitchTpl'}, - {toolbar: '#toolbar', title: '操作面板', align: 'center', fixed: 'right', minWidth: 80} + {field: 'subscribe_time', title: '{:lang("订阅时间")}', minWidth: 170, align: 'center', sort: true, templet: '
          {{d.subscribe_at}}
          '}, + {field: 'is_black', title: '{:lang("是否黑名单")}', align: 'center', minWidth: 110, templet: '#StatusSwitchTpl'}, + {toolbar: '#toolbar', title: '{:lang("操作面板")}', align: 'center', fixed: 'right', minWidth: 80} ]] }); diff --git a/plugin/think-plugs-wechat/src/view/fans/index_search.html b/plugin/think-plugs-wechat/src/view/fans/index_search.html index 4ae613855..452174fb6 100644 --- a/plugin/think-plugs-wechat/src/view/fans/index_search.html +++ b/plugin/think-plugs-wechat/src/view/fans/index_search.html @@ -3,18 +3,18 @@
          - +
          - +
          - +
          - +
          @@ -58,7 +58,7 @@ \ No newline at end of file diff --git a/plugin/think-plugs-wechat/src/view/menu/index.html b/plugin/think-plugs-wechat/src/view/menu/index.html index 33fd4d209..756ba1f9a 100644 --- a/plugin/think-plugs-wechat/src/view/menu/index.html +++ b/plugin/think-plugs-wechat/src/view/menu/index.html @@ -3,7 +3,7 @@ {block name='content'}
\ No newline at end of file diff --git a/plugin/think-plugs-wemall/src/view/base/config/index.html b/plugin/think-plugs-wemall/src/view/base/config/index.html index 398403ab9..ec9119d70 100644 --- a/plugin/think-plugs-wemall/src/view/base/config/index.html +++ b/plugin/think-plugs-wemall/src/view/base/config/index.html @@ -16,76 +16,76 @@
-
{:lang('商城名称')}Name
-
+ -

请填写商城名称,将会在前端部分内容显示。

-
- -
-
{:lang('账户余额')}Balance
-
- {empty name='data.enable_balance'} - 未启用账户余额 - {else} - 已启用账户余额 - {/empty} +
+
{:lang('账户余额')}Balance
+
+ {empty name='data.enable_balance'} + {:lang('未启用账户余额')} + {else} + {:lang('已启用账户余额')} + {/empty} +
+ {:lang('开启账户余额之后,用户会增加余额账户,可以积累余额并可使用余额抵扣支付。')}
- 开启账户余额之后,用户会增加余额账户,可以积累余额并可使用余额抵扣支付。 -
-
-
{:lang('账户积分')}Integral
-
- {empty name='data.enable_integral'} - 未启用账户积分 - {else} - 已启用账户积分 - {/empty} +
+
{:lang('账户积分')}Integral
+
+ {empty name='data.enable_integral'} + {:lang('未启用账户积分')} + {else} + {:lang('已启用账户积分')} + {/empty} +
+ {:lang('开启账户积分之后,用户会增加积分账户,可以积累积分并可使用积分抵扣支付。')}
- 开启账户积分之后,用户会增加积分账户,可以积累积分并可使用积分抵扣支付。 -
-
-
{:lang('下单随减')}Reduction
-
- {empty name='data.enable_reduct'} - 未启用下单随机减免金额 - {else} - - 已启用下单随机减免金额,减免范围 [ {$data.reduct_min|default=0.00} - {$data.reduct_max|default=0.00} ] 元 - {/empty} +
+
{:lang('下单随减')}Reduction
+
+ {empty name='data.enable_reduct'} + {:lang('未启用下单随机减免金额')} + {else} + + {:lang('已启用下单随机减免金额,减免范围')} [ {$data.reduct_min|default=0.00} - {$data.reduct_max|default=0.00} ] {:lang('元')} + {/empty} +
+ {:lang('开启下单随减后,用户每次下单都会随机减免一定金额,最多不会超过订单金额。')}
- 开启下单随减后,用户每次下单都会随机减免一定金额,最多不会超过订单金额。 -
-
-
-
{:lang('内容管理')}Content
- {foreach $pages as $k => $v} -
- -
-
-
编辑内容
+
+
+
{:lang('内容管理')}Content
+ {foreach $pages as $k => $v} +
+ +
+
+
{:lang('编辑内容')}
+
{$v|default=''}
+
+ +
+ +
+
{:lang('编辑内容')}
{$v|default=''}
+
- -
-
编辑内容
-
{$v|default=''}
-
- - + {/foreach}
- {/foreach}
-
diff --git a/plugin/think-plugs-wemall/src/view/base/config/index_content.html b/plugin/think-plugs-wemall/src/view/base/config/index_content.html index 534f4185b..fdcf02043 100644 --- a/plugin/think-plugs-wemall/src/view/base/config/index_content.html +++ b/plugin/think-plugs-wemall/src/view/base/config/index_content.html @@ -1,8 +1,8 @@ {extend name="main"} {block name="button"} - - + + {/block} {block name='content'} @@ -10,12 +10,12 @@
- 富文本内容Content + {:lang('富文本内容')}Content
@@ -23,8 +23,8 @@
- - + +
diff --git a/plugin/think-plugs-wemall/src/view/base/config/order.html b/plugin/think-plugs-wemall/src/view/base/config/order.html index 2e26de9ae..08835f5a9 100644 --- a/plugin/think-plugs-wemall/src/view/base/config/order.html +++ b/plugin/think-plugs-wemall/src/view/base/config/order.html @@ -4,10 +4,10 @@
- 下单随减Order Reduction + {:lang('下单随减')}Order Reduction
{empty name='vo.enable_reduct'}{assign name='vo.enable_reduct' value='0'}{/empty} - {foreach ['禁用','启用'] as $k=>$n}{if (isset($vo.enable_reduct) && $vo.enable_reduct eq $k)} + {foreach [lang('禁用'),lang('启用')] as $k=>$n}{if (isset($vo.enable_reduct) && $vo.enable_reduct eq $k)} {else} @@ -15,26 +15,26 @@
- 减免金额 + {:lang('减免金额')}
- 开启下单随减后,用户每次下单都会随机减免一定金额,最多不会超过订单金额。 + {:lang('开启下单随减后,用户每次下单都会随机减免一定金额,最多不会超过订单金额。')}
- 自动清除Auto Remove + {:lang('自动清除')}Auto Remove
{empty name='vo.remove_auto'}{assign name='vo.remove_auto' value='0'}{/empty} - {foreach ['禁用','启用'] as $k=>$n}{if (isset($vo.remove_auto) && $vo.remove_auto eq $k)} + {foreach [lang('禁用'),lang('启用')] as $k=>$n}{if (isset($vo.remove_auto) && $vo.remove_auto eq $k)} {else} @@ -42,27 +42,27 @@
- 开启自动清理后,当订单已经取消并没有支付信息时会根据配置自动清除! + {:lang('开启自动清理后,当订单已经取消并没有支付信息时会根据配置自动清除!')}
- 自动取消Auto Cancel + {:lang('自动取消')}Auto Cancel
{empty name='vo.cancel_auto'}{assign name='vo.cancel_auto' value='0'}{/empty} - {foreach ['禁用','启用'] as $k=>$n}{if (isset($vo.cancel_auto) && $vo.cancel_auto eq $k)} + {foreach [lang('禁用'),lang('启用')] as $k=>$n}{if (isset($vo.cancel_auto) && $vo.cancel_auto eq $k)} {else} @@ -70,27 +70,27 @@
- 开启自动取消后,当订单在指定时间内未完成支付时会自动取消订单并返还商品库存! + {:lang('开启自动取消后,当订单在指定时间内未完成支付时会自动取消订单并返还商品库存!')}
- 自动签收Auto Receipt + {:lang('自动签收')}Auto Receipt
{empty name='vo.receipt_auto'}{assign name='vo.receipt_auto' value='0'}{/empty} - {foreach ['禁用','启用'] as $k=>$n}{if (isset($vo.receipt_auto) && $vo.receipt_auto eq $k)} + {foreach [lang('禁用'),lang('启用')] as $k=>$n}{if (isset($vo.receipt_auto) && $vo.receipt_auto eq $k)} {else} @@ -98,27 +98,27 @@
- 开启自动签收后,当订单发货后会根据配置自动完成订单签收! + {:lang('开启自动签收后,当订单发货后会根据配置自动完成订单签收!')}
- 自动评论Auto Comment + {:lang('自动评论')}Auto Comment
{empty name='vo.comment_auto'}{assign name='vo.comment_auto' value='0'}{/empty} - {foreach ['禁用','启用'] as $k=>$n}{if (isset($vo.comment_auto) && $vo.comment_auto eq $k)} + {foreach [lang('禁用'),lang('启用')] as $k=>$n}{if (isset($vo.comment_auto) && $vo.comment_auto eq $k)} {else} @@ -126,18 +126,18 @@
- 延时执行填写 0 立即完成评论 + {:lang('延时执行')}{:lang('填写 0 立即完成评论')}
- 开启自动评论后,当订单确认签收后会根据配置自动完成订单评论! + {:lang('开启自动评论后,当订单确认签收后会根据配置自动完成订单评论!')}
@@ -145,7 +145,7 @@
- - + +
\ No newline at end of file diff --git a/plugin/think-plugs-wemall/src/view/base/config/params.html b/plugin/think-plugs-wemall/src/view/base/config/params.html index 5ccc88daf..575251f9e 100644 --- a/plugin/think-plugs-wemall/src/view/base/config/params.html +++ b/plugin/think-plugs-wemall/src/view/base/config/params.html @@ -3,86 +3,86 @@
- 账户余额User Balance + {:lang('账户余额')}User Balance
{empty name='vo.enable_balance'}{assign name='vo.enable_balance' value='0'}{/empty} - {foreach ['禁用账户余额','启用账户余额'] as $k=>$n} + {foreach [lang('禁用账户余额'),lang('启用账户余额')] as $k=>$n} {if (isset($vo.enable_balance) && $vo.enable_balance eq $k)} {else} {/if}{/foreach}
- 开启账户余额之后,可以积累余额并可使用余额抵扣支付。 + {:lang('开启账户余额之后,可以积累余额并可使用余额抵扣支付。')}
- 账户积分User Integral + {:lang('账户积分')}User Integral
{empty name='vo.enable_integral'}{assign name='vo.enable_integral' value='0'}{/empty} - {foreach ['禁用账户积分','启用账户积分'] as $k=>$n} + {foreach [lang('禁用账户积分'),lang('启用账户积分')] as $k=>$n} {if (isset($vo.enable_integral) && $vo.enable_integral eq $k)} {else} {/if}{/foreach}
- 开启账户积分之后,可以积累积分并可使用积分抵扣支付。 + {:lang('开启账户积分之后,可以积累积分并可使用积分抵扣支付。')}
{notempty name='enableAndroid'}
- 手机站点WapSite + {:lang('手机站点')}WapSite
{empty name='vo.enable_wapsite'}{assign name='vo.enable_wapsite' value='0'}{/empty} - {foreach ['禁用','启用'] as $k=>$n} + {foreach [lang('禁用'),lang('启用')] as $k=>$n} {if (isset($vo.enable_wapsite) && $vo.enable_wapsite eq $k)} {else} {/if}{/foreach}
- 禁用WAP站点后WAP仅可用于注册绑定。 + {:lang('禁用WAP站点后WAP仅可用于注册绑定。')}
{/notempty}
- 应用图标Icon + {:lang('应用图标')}Icon
- +
- 请上传应用图标,建议使用 200 x 200 尺寸或同比例图片。 + {:lang('请上传应用图标,建议使用 200 x 200 尺寸或同比例图片。')}
@@ -91,7 +91,7 @@
- - + +
\ No newline at end of file diff --git a/plugin/think-plugs-wemall/src/view/base/discount/form.html b/plugin/think-plugs-wemall/src/view/base/discount/form.html index 2007aab24..2da1f9d4d 100644 --- a/plugin/think-plugs-wemall/src/view/base/discount/form.html +++ b/plugin/think-plugs-wemall/src/view/base/discount/form.html @@ -2,18 +2,18 @@
- 会员等级User Level + {:lang('会员等级')}User Level - - + + @@ -34,16 +34,16 @@
{notempty name='vo.id'}{/notempty}
- - + +
diff --git a/plugin/think-plugs-wemall/src/view/base/discount/index.html b/plugin/think-plugs-wemall/src/view/base/discount/index.html index e9a4a136e..ad298e1f3 100644 --- a/plugin/think-plugs-wemall/src/view/base/discount/index.html +++ b/plugin/think-plugs-wemall/src/view/base/discount/index.html @@ -2,14 +2,14 @@ {block name="button"} - + {/block} {block name="content"}
    - {foreach ['index'=>'折扣方案','recycle'=>'回 收 站'] as $k=>$v}{if isset($type) and $type eq $k} + {foreach ['index'=>lang('折扣方案'),'recycle'=>lang('回 收 站')] as $k=>$v}{if isset($type) and $type eq $k}
  • {$v}
  • {else}
  • {$v}
  • @@ -30,18 +30,18 @@ sort: {field: 'sort desc,id', type: 'desc'}, cols: [[ {field: 'id', title: 'ID', align: "center", width: 80}, - {field: 'sort', title: '排序权重', align: 'center', width: 100, sort: true, templet: '#SortInputTpl'}, - {field: 'name', title: '方案名称', align: 'left', minWidth: 140}, + {field: 'sort', title: '{:lang("排序权重")}', align: 'center', width: 100, sort: true, templet: '#SortInputTpl'}, + {field: 'name', title: '{:lang("方案名称")}', align: 'left', minWidth: 140}, { - title: '方案规则', align: 'left', width: '33%', templet: function (d) { + title: '{:lang("方案规则")}', align: 'left', width: '33%', templet: function (d) { let tags = []; - d.items.forEach((item) => tags.push(laytpl('VIP{{d.level}} 折扣 {{d.discount}}%').render(item))); + d.items.forEach((item) => tags.push(laytpl('VIP{{d.level}} {:lang("折扣")} {{d.discount}}%').render(item))); return tags.join(''); } }, - {field: 'status', title: '状 态', align: 'center', width: 110, templet: '#StatusSwitchTpl'}, - {field: 'create_time', title: '创建时间', align: 'center', minWidth: 170, sort: true}, - {toolbar: '#toolbar', title: '操作面板', align: 'center', minWidth: 80, fixed: 'right'}, + {field: 'status', title: '{:lang("状 态")}', align: 'center', width: 110, templet: '#StatusSwitchTpl'}, + {field: 'create_time', title: '{:lang("创建时间")}', align: 'center', minWidth: 170, sort: true}, + {toolbar: '#toolbar', title: '{:lang("操作面板")}', align: 'center', minWidth: 80, fixed: 'right'}, ]] }); @@ -66,19 +66,19 @@ {/block} \ No newline at end of file diff --git a/plugin/think-plugs-wemall/src/view/base/express/company/form.html b/plugin/think-plugs-wemall/src/view/base/express/company/form.html index cb08cba37..8a3c97358 100644 --- a/plugin/think-plugs-wemall/src/view/base/express/company/form.html +++ b/plugin/think-plugs-wemall/src/view/base/express/company/form.html @@ -3,20 +3,20 @@
    @@ -24,7 +24,7 @@ {notempty name='vo.id'}{/notempty}
    - - + +
    diff --git a/plugin/think-plugs-wemall/src/view/base/express/company/index.html b/plugin/think-plugs-wemall/src/view/base/express/company/index.html index 3d5b6db71..8cf1952b1 100644 --- a/plugin/think-plugs-wemall/src/view/base/express/company/index.html +++ b/plugin/think-plugs-wemall/src/view/base/express/company/index.html @@ -2,30 +2,30 @@ {block name="button"} - + - + - + - + - + {/block} {block name="content"}
      - {foreach ['index'=>'快递公司','recycle'=>'回 收 站'] as $k=>$v} + {foreach ['index'=>lang('快递公司'),'recycle'=>lang('回 收 站')] as $k=>$v} {if isset($type) and $type eq $k}
    • {$v}
    • {else} @@ -47,12 +47,12 @@ sort: {field: 'sort desc,id', type: 'desc'}, cols: [[ {checkbox: true, fixed: true}, - {field: 'sort', title: '排序权重', width: 100, align: 'center', sort: true, templet: '#SortInputTpl'}, - {field: 'name', title: '公司名称', align: "left", minWidth: 100}, - {field: 'code', title: '快递编码', align: "left", minWidth: 100}, - {field: 'status', title: '使用状态', align: 'center', minWidth: 110, templet: '#StatusSwitchTpl'}, - {field: 'id', title: '添加时间', align: 'center', minWidth: 170, sort: true, templet: "
      {{d.create_time}}
      "}, - {toolbar: '#toolbar', title: '操作面板', align: 'center', fixed: 'right'} + {field: 'sort', title: '{:lang("排序权重")}', width: 100, align: 'center', sort: true, templet: '#SortInputTpl'}, + {field: 'name', title: '{:lang("公司名称")}', align: "left", minWidth: 100}, + {field: 'code', title: '{:lang("快递编码")}', align: "left", minWidth: 100}, + {field: 'status', title: '{:lang("使用状态")}', align: 'center', minWidth: 110, templet: '#StatusSwitchTpl'}, + {field: 'id', title: '{:lang("添加时间")}', align: 'center', minWidth: 170, sort: true, templet: "
      {{d.create_time}}
      "}, + {toolbar: '#toolbar', title: '{:lang("操作面板")}', align: 'center', fixed: 'right'} ]] }); @@ -76,19 +76,19 @@ {/block} \ No newline at end of file diff --git a/plugin/think-plugs-wemall/src/view/base/express/company/index_search.html b/plugin/think-plugs-wemall/src/view/base/express/company/index_search.html index 3fe3eba62..7ee9d4bf8 100644 --- a/plugin/think-plugs-wemall/src/view/base/express/company/index_search.html +++ b/plugin/think-plugs-wemall/src/view/base/express/company/index_search.html @@ -1,27 +1,27 @@
      - +
      - +
      - +
      - +
      \ No newline at end of file diff --git a/plugin/think-plugs-wemall/src/view/base/express/template/form.html b/plugin/think-plugs-wemall/src/view/base/express/template/form.html index 181f81c48..fb0cc573c 100644 --- a/plugin/think-plugs-wemall/src/view/base/express/template/form.html +++ b/plugin/think-plugs-wemall/src/view/base/express/template/form.html @@ -5,12 +5,12 @@
      - 指定快递公司Express + {:lang('指定快递公司')}Express
      {foreach $companys as $k=>$v}
      - 配送区域计费规则Region + {:lang('配送区域计费规则')}Region
会员等级售价比例 ( 0.00% - 100.00% ){:lang('会员等级')}{:lang('售价比例 ( 0.00% - 100.00% )')}
- - - - - + + + + + - +
可配送区域首件(个)运费(元)续件(个)续费(元){:lang('可配送区域')}{:lang('首件(个)')}{:lang('运费(元)')}{:lang('续件(个)')}{:lang('续费(元)')}
- 自定区域: + {:lang('自定区域:')}
{{ShowProvinceCityName(province)}}
- 编辑 - 删除 + {:lang('编辑')} + {:lang('删除')}
@@ -61,12 +61,12 @@
添加可配送区域和运费{:lang('添加可配送区域和运费')}
- 默认区域: + {:lang('默认区域:')}
{{ShowProvinceCityName(province)}} @@ -99,7 +99,7 @@ {notempty name='vo.code'}{/notempty}
- +
@@ -110,8 +110,8 @@
- 全选 - 取消 + {:lang('全选')} + {:lang('取消')}

@@ -128,8 +128,8 @@
- 全选 - 取消 + {:lang('全选')} + {:lang('取消')}

@@ -141,7 +141,7 @@
- +
@@ -280,7 +280,7 @@ /*! 显示区域选择器 */ $rootScope.showDialog = function () { layui.layer.open({ - type: 1, shade: false, area: '800px', title: '区域选择器', + type: 1, shade: false, area: '800px', title: '{:lang("区域选择器")}', content: $('#RegionDialog').removeClass('layui-hide'), end: function () { $('#RegionDialog').addClass('layui-hide'), $rootScope.SetRuleItem(); } diff --git a/plugin/think-plugs-wemall/src/view/base/express/template/index.html b/plugin/think-plugs-wemall/src/view/base/express/template/index.html index 91e64764c..7e66d4992 100644 --- a/plugin/think-plugs-wemall/src/view/base/express/template/index.html +++ b/plugin/think-plugs-wemall/src/view/base/express/template/index.html @@ -2,18 +2,18 @@ {block name="button"} - + - + {/block} {block name="content"}
    - {foreach ['index'=>'费用模板','recycle'=>'回 收 站'] as $k=>$v} + {foreach ['index'=>lang('费用模板'),'recycle'=>lang('回 收 站')] as $k=>$v} {if isset($type) and $type eq $k}
  • {$v}
  • {else} @@ -36,11 +36,11 @@ sort: {field: 'sort desc,id', type: 'desc'}, cols: [[ {checkbox: true, fixed: true}, - {field: 'sort', title: '排序权重', width: 100, align: 'center', sort: true, templet: '#SortInputTpl'}, - {field: 'code', title: '模板编号', align: "center"}, - {field: 'name', title: '模板名称', align: "center"}, + {field: 'sort', title: '{:lang("排序权重")}', width: 100, align: 'center', sort: true, templet: '#SortInputTpl'}, + {field: 'code', title: '{:lang("模板编号")}', align: "center"}, + {field: 'name', title: '{:lang("模板名称")}', align: "center"}, { - field: 'company', title: '快递公司', align: "center", templet: function (d) { + field: 'company', title: '{:lang("快递公司")}', align: "center", templet: function (d) { let tpl = ''; layui.each(d.company || {}, function (k, v) { tpl += laytpl("{{d.v}}").render({v: v}); @@ -48,9 +48,9 @@ return tpl || '-'; } }, - {field: 'status', title: '使用状态', align: 'center', minWidth: 110, templet: '#StatusSwitchTpl'}, - {field: 'create_time', title: '添加时间', align: 'center', minWidth: 170}, - {toolbar: '#toolbar', title: '操作面板', align: 'center', minWidth: 80, fixed: 'right'} + {field: 'status', title: '{:lang("使用状态")}', align: 'center', minWidth: 110, templet: '#StatusSwitchTpl'}, + {field: 'create_time', title: '{:lang("添加时间")}', align: 'center', minWidth: 170}, + {toolbar: '#toolbar', title: '{:lang("操作面板")}', align: 'center', minWidth: 80, fixed: 'right'} ]] }); @@ -74,19 +74,19 @@ {/block} \ No newline at end of file diff --git a/plugin/think-plugs-wemall/src/view/base/express/template/index_search.html b/plugin/think-plugs-wemall/src/view/base/express/template/index_search.html index 531ec6a06..634b4906f 100644 --- a/plugin/think-plugs-wemall/src/view/base/express/template/index_search.html +++ b/plugin/think-plugs-wemall/src/view/base/express/template/index_search.html @@ -1,26 +1,26 @@ \ No newline at end of file diff --git a/plugin/think-plugs-wemall/src/view/base/express/template/region.html b/plugin/think-plugs-wemall/src/view/base/express/template/region.html index df4dde325..757f59e2a 100644 --- a/plugin/think-plugs-wemall/src/view/base/express/template/region.html +++ b/plugin/think-plugs-wemall/src/view/base/express/template/region.html @@ -2,17 +2,17 @@ {block name="content"}
    - 颜色说明: - 绿色表示全部选中, - 蓝色表示部分选中, - 橙色表示未选中。 + {:lang('颜色说明:')} + {:lang('绿色')}{:lang('表示全部选中,')} + {:lang('蓝色')}{:lang('表示部分选中,')} + {:lang('橙色')}{:lang('表示未选中。')}
    - 全国配送省份 - 全选 + {:lang('全国')}{:lang('配送省份')} + {:lang('全选')}
    @@ -23,8 +23,8 @@
    - 配送城市 - 全选 + {:lang('配送城市')} + {:lang('全选')}
    @@ -35,8 +35,8 @@
    - 配送区域 - 全选 + {:lang('配送区域')} + {:lang('全选')}
    @@ -47,8 +47,8 @@
    - - + +
    diff --git a/plugin/think-plugs-wemall/src/view/base/level/form.html b/plugin/think-plugs-wemall/src/view/base/level/form.html index a3589f40c..1791f0e07 100644 --- a/plugin/think-plugs-wemall/src/view/base/level/form.html +++ b/plugin/think-plugs-wemall/src/view/base/level/form.html @@ -3,36 +3,36 @@
    - 等级序号Level Serial + {:lang('等级序号')}Level Serial
    - 等级图标( 建议上传尺寸为 400x400 的图片或同比例图片 ) + {:lang('等级图标')}( {:lang('建议上传尺寸为 400x400 的图片或同比例图片')} )
    - 卡片背景( 建议上传尺寸为 650x330 的图片或同比例图片) + {:lang('卡片背景')}( {:lang('建议上传尺寸为 650x330 的图片或同比例图片')} )
    @@ -40,10 +40,10 @@
    - 团队计数Team Count + {:lang('团队计数')}Team Count {empty name='vo.upgrade_team'}{assign name='vo.upgrade_team' value='1'}{/empty}
    - {foreach ['不参与团队计数','参与团队计数'] as $k => $v} + {foreach [lang('不参与团队计数'),lang('参与团队计数')] as $k => $v}
    - 升级规则Upgrade Type + {:lang('升级规则')}Upgrade Type {empty name='vo.upgrade_type'}{assign name='vo.upgrade_type' value='1'}{/empty}
    - {foreach ['达成任意条件','达成全部条件'] as $k => $v} + {foreach [lang('达成任意条件'),lang('达成全部条件')] as $k => $v}
    - 升级条件Upgrade Rules + {:lang('升级条件')}Upgrade Rules
    {if empty($vo.extra.enter_vip_status)} - + {else} - + {/if}
    - {foreach ['order_amount'=>'订单总额'] as $k=>$v} + {foreach ['order_amount'=>lang('订单总额')] as $k=>$v}
    {php}$ks=$k."_status";$kn=$k."_number";{/php} {if isset($vo['extra'][$ks]) and $vo['extra'][$ks] eq 1} - + {else} - + {/if}
    {/foreach} -
    默认等级,无需配置升级规则
    +
    {:lang('默认等级,无需配置升级规则')}
    @@ -113,8 +113,8 @@ {if isset($vo.number)}{/if}
    - - + +
    diff --git a/plugin/think-plugs-wemall/src/view/base/level/index.html b/plugin/think-plugs-wemall/src/view/base/level/index.html index 970ae0068..66b1fe307 100644 --- a/plugin/think-plugs-wemall/src/view/base/level/index.html +++ b/plugin/think-plugs-wemall/src/view/base/level/index.html @@ -2,7 +2,7 @@ {block name="button"} - + {/block} @@ -21,33 +21,33 @@ even: true, height: 'full', sort: {field: 'number', type: 'asc'}, cols: [[ - {field: 'number', title: '序号', align: "center", minWidth: 70, width: '5%', sort: true}, - {field: 'cover', title: '图标', width: 70, align: 'center', templet: '
    {{-$.layTable.showImage(d.cover)}}
    '}, - {field: 'name', title: '等级名称', align: 'center', minWidth: 80, width: '12%'}, + {field: 'number', title: '{:lang("序号")}', align: "center", minWidth: 70, width: '5%', sort: true}, + {field: 'cover', title: '{:lang("图标")}', width: 70, align: 'center', templet: '
    {{-$.layTable.showImage(d.cover)}}
    '}, + {field: 'name', title: '{:lang("等级名称")}', align: 'center', minWidth: 80, width: '12%'}, { - title: '团队计数', align: 'center', minWidth: 80, templet: function (d) { + title: '{:lang("团队计数")}', align: 'center', minWidth: 80, templet: function (d) { return d.upgrade_team ? '' : '-'; } }, { - title: '升级规则', align: 'center', minWidth: 80, templet: function (d) { - return d.upgrade_type === 1 ? '全部条件' : '任意条件'; + title: '{:lang("升级规则")}', align: 'center', minWidth: 80, templet: function (d) { + return d.upgrade_type === 1 ? '' + '{:lang("全部条件")}' + '' : '' + '{:lang("任意条件")}' + ''; } }, { - title: '入会礼包', align: 'center', minWidth: 80, templet: function (d) { + title: '{:lang("入会礼包")}', align: 'center', minWidth: 80, templet: function (d) { return d.extra.enter_vip_status ? '' : '-'; } }, { - title: '订单金额', align: 'center', minWidth: 80, templet: function (d) { + title: '{:lang("订单金额")}', align: 'center', minWidth: 80, templet: function (d) { return d.extra.order_amount_status ? laytpl('{{d.extra.order_amount_number}}').render(d) : '-'; } }, - {field: 'status', title: '等级状态', align: 'center', minWidth: 110, width: '8%', templet: '#StatusSwitchTpl'}, - // {field: 'create_time', title: '创建时间', align: 'center', minWidth: 170, width: '15%', sort: true}, - {toolbar: '#toolbar', title: '操作面板', align: 'center', minWidth: 150, fixed: 'right'}, + {field: 'status', title: '{:lang("等级状态")}', align: 'center', minWidth: 110, width: '8%', templet: '#StatusSwitchTpl'}, + // {field: 'create_time', title: '{:lang("创建时间")}', align: 'center', minWidth: 170, width: '15%', sort: true}, + {toolbar: '#toolbar', title: '{:lang("操作面板")}', align: 'center', minWidth: 150, fixed: 'right'}, ]] }); @@ -72,20 +72,20 @@ {/block} \ No newline at end of file diff --git a/plugin/think-plugs-wemall/src/view/base/level/index_search.html b/plugin/think-plugs-wemall/src/view/base/level/index_search.html index b9378a1a2..5e20c9146 100644 --- a/plugin/think-plugs-wemall/src/view/base/level/index_search.html +++ b/plugin/think-plugs-wemall/src/view/base/level/index_search.html @@ -3,18 +3,18 @@ \ No newline at end of file diff --git a/plugin/think-plugs-wemall/src/view/base/notify/form.html b/plugin/think-plugs-wemall/src/view/base/notify/form.html index 66e2d6bf3..17260ec0b 100644 --- a/plugin/think-plugs-wemall/src/view/base/notify/form.html +++ b/plugin/think-plugs-wemall/src/view/base/notify/form.html @@ -1,8 +1,8 @@ {extend name="main"} {block name="button"} - - + + {/block} {block name='content'} @@ -10,14 +10,14 @@
    - 通知内容Notify Content + {:lang('通知内容')}Notify Content
    @@ -25,8 +25,8 @@ {notempty name='vo.id'}{/notempty}
    - - + +
    diff --git a/plugin/think-plugs-wemall/src/view/base/notify/index.html b/plugin/think-plugs-wemall/src/view/base/notify/index.html index cd61a4144..607a3e9cc 100644 --- a/plugin/think-plugs-wemall/src/view/base/notify/index.html +++ b/plugin/think-plugs-wemall/src/view/base/notify/index.html @@ -2,11 +2,11 @@ {block name='button'} - + - + {/block} @@ -26,12 +26,12 @@ sort: {field: 'sort desc,id', type: 'desc'}, cols: [[ {checkbox: true, fixed: true}, - {field: 'sort', title: '排序权重', align: 'center', width: 100, sort: true, templet: '#SortInputTpl'}, - {field: 'name', title: '通知标题', align: 'left', minWidth: 140}, - {field: 'num_read', title: '阅读次数', align: 'center', minWidth: 110}, - {field: 'status', title: '通知状态', align: 'center', minWidth: 110, templet: '#StatusSwitchTpl'}, - {field: 'create_time', title: '创建时间', align: 'center', minWidth: 170, sort: true}, - {toolbar: '#toolbar', title: '操作面板', align: 'center', minWidth: 140, fixed: 'right'}, + {field: 'sort', title: '{:lang("排序权重")}', align: 'center', width: 100, sort: true, templet: '#SortInputTpl'}, + {field: 'name', title: '{:lang("通知标题")}', align: 'left', minWidth: 140}, + {field: 'num_read', title: '{:lang("阅读次数")}', align: 'center', minWidth: 110}, + {field: 'status', title: '{:lang("通知状态")}', align: 'center', minWidth: 110, templet: '#StatusSwitchTpl'}, + {field: 'create_time', title: '{:lang("创建时间")}', align: 'center', minWidth: 170, sort: true}, + {toolbar: '#toolbar', title: '{:lang("操作面板")}', align: 'center', minWidth: 140, fixed: 'right'}, ]] }); @@ -56,20 +56,20 @@ {/block} \ No newline at end of file diff --git a/plugin/think-plugs-wemall/src/view/base/notify/index_search.html b/plugin/think-plugs-wemall/src/view/base/notify/index_search.html index ab099f103..b8ae2d10d 100644 --- a/plugin/think-plugs-wemall/src/view/base/notify/index_search.html +++ b/plugin/think-plugs-wemall/src/view/base/notify/index_search.html @@ -1,20 +1,20 @@
    - 条件搜索 + {:lang('条件搜索')}
    diff --git a/plugin/think-plugs-wemall/src/view/base/poster/form.html b/plugin/think-plugs-wemall/src/view/base/poster/form.html index 9fe6a2d8e..a4e3f75a3 100644 --- a/plugin/think-plugs-wemall/src/view/base/poster/form.html +++ b/plugin/think-plugs-wemall/src/view/base/poster/form.html @@ -1,8 +1,8 @@ {extend name="main"} {block name="button"} - - + + {/block} {block name="content"} @@ -20,20 +20,20 @@
    - 预 览 + {:lang('预 览')}
    - 授权终端类型Device + {:lang('授权终端类型')}Device
    {empty name='vo.devices'}{php}$vo['devices']=[];{/php}{/empty} {foreach $devices as $k=>$l} @@ -49,7 +49,7 @@
    - 授权会员等级Level + {:lang('授权会员等级')}Level
    {empty name='vo.levels'}{php}$vo['levels']=[];{/php}{/empty} {foreach $levels as $l} @@ -65,7 +65,7 @@
    - 推广海报底图( 推荐尺寸 1008 x 1426 或相应比例 ) + {:lang('推广海报底图')}( {:lang('推荐尺寸 1008 x 1426 或相应比例')} )