Przeglądaj źródła

国际化优化

kuaifan 5 lat temu
rodzic
commit
42a9d24328

+ 3 - 3
app/Http/Controllers/Api/DocsController.php

@@ -144,7 +144,7 @@ class DocsController extends Controller
             ->where('bookid', intval(Request::input('bookid')))
             ->orderByDesc('inorder')
             ->orderByDesc('id')
-            ->take(300)
+            ->take(500)
             ->get());
         if (empty($lists)) {
             return Base::retError('暂无章节');
@@ -177,8 +177,8 @@ class DocsController extends Controller
             return Base::retError('知识库不存在或已被删除!');
         }
         $count = DB::table('docs_section')->where('bookid', $bookid)->count();
-        if ($count >= 300) {
-            return Base::retError('知识库章节已经超过最大限制(300)!');
+        if ($count >= 500) {
+            return Base::retError(['知识库章节已经超过最大限制(%)!', 500]);
         }
         //
         $id = intval(Request::input('id'));

+ 2 - 2
app/Http/Controllers/Api/ProjectController.php

@@ -371,7 +371,7 @@ class ProjectController extends Controller
         }
         $count = DB::table('users')->where('username', $username)->count();
         if ($count <= 0) {
-            return Base::retError('成员用户名(' . $username . ')不存在!');
+            return Base::retError(['成员用户名(%)不存在!', $username]);
         }
         //判断是否已在项目成员内
         $inRes = Project::inThe($projectDetail['id'], $username);
@@ -1438,7 +1438,7 @@ class ProjectController extends Controller
                 if ($task['projectid'] > 0) {
                     $inRes = Project::inThe($task['projectid'], $content);
                     if (Base::isError($inRes)) {
-                        return Base::retError($content . '不在成员列表内!');
+                        return Base::retError(['%不在成员列表内!', $content]);
                     }
                 }
                 $upArray['username'] = $content;

+ 1 - 1
app/Http/Controllers/Api/ReportController.php

@@ -230,7 +230,7 @@ class ReportController extends Controller
         }
         $reportDetail['ccuserAgain'] = isset($reportDetail['ccuserAgain']) ? $reportDetail['ccuserAgain'] : false;
         $reportDetail['ccuserArray'] = explode(',', $reportDetail['ccuser']);
-        return Base::retSuccess($act == 'submit' ? '保存成功' : 'success', $reportDetail);
+        return Base::retSuccess($act == 'submit' ? '保存成功' : 'success', $reportDetail);
     }
 
     /**

+ 1 - 1
app/Http/Controllers/Api/UsersController.php

@@ -54,7 +54,7 @@ class UsersController extends Controller
         if (intval(Request::input('onlydata')) !== 1) {
             Session::put('sessionToken', $array['token']);
         }
-        return Base::retSuccess("登陆成功", Users::retInfo($user));
+        return Base::retSuccess("登陆成功", Users::retInfo($user));
     }
 
     /**

+ 74 - 6
app/Module/Base.php

@@ -1038,6 +1038,26 @@ class Base
     }
 
     /**
+     * 自定义替换次数
+     * @param $search
+     * @param $replace
+     * @param $subject
+     * @param int $limit
+     * @return string|string[]|null
+     */
+    public static function strReplaceLimit($search, $replace, $subject, $limit = -1)
+    {
+        if (is_array($search)) {
+            foreach ($search as $k => $v) {
+                $search[$k] = '`' . preg_quote($search[$k], '`') . '`';
+            }
+        } else {
+            $search = '`' . preg_quote($search, '`') . '`';
+        }
+        return preg_replace($search, $replace, $subject, $limit);
+    }
+
+    /**
      * 获取或设置
      * @param $setname          //配置名称
      * @param bool $array       //保存内容
@@ -1203,6 +1223,54 @@ class Base
     }
 
     /**
+     * 国际化(替换国际语言)
+     * @param $val
+     * @return mixed
+     */
+    public static function Lang($val)
+    {
+        $repArray = [];
+        if (is_array($val)) {
+            if (self::strExists($val[0], '%') && count($val) > 1) {
+                $repArray = array_slice($val, 1);
+            }
+            $val = $val[0];
+        }
+        $data = self::langData();
+        if (isset($data[$val]) && $data[$val] !== null) {
+            $val = $data[$val];
+        }
+        if ($repArray) {
+            foreach ($repArray AS $item) {
+                $val = self::strReplaceLimit('%', $item, $val, 1);
+            }
+        }
+        return $val;
+    }
+
+    /**
+     * 加载语言数据
+     * @param bool $refresh
+     * @return array|mixed
+     */
+    public static function langData($refresh = false)
+    {
+        global $_A;
+        if (!isset($_A["__static_langdata"]) || $refresh === true) {
+            $_A["__static_langdata"] = [];
+            $language = trim(Request::header('language'));
+            $langpath = resource_path('lang/' . $language . '/general.php');
+            if (file_exists($langpath)) {
+                $data = include $langpath;
+                if (is_array($data)) {
+                    $_A["__static_langdata"] = $data;
+                }
+            }
+        }
+        return $_A["__static_langdata"];
+    }
+
+    /**
      * JSON返回
      * @param $param
      * @return string
@@ -1231,7 +1299,7 @@ class Base
     {
         return array(
             'ret' => $ret,
-            'msg' => $msg,
+            'msg' => self::Lang($msg),
             'data' => $data
         );
     }
@@ -1247,7 +1315,7 @@ class Base
     {
         return array(
             'ret' => $ret,
-            'msg' => $msg,
+            'msg' => self::Lang($msg),
             'data' => $data
         );
     }
@@ -1842,7 +1910,7 @@ class Base
     {
         $file = $param['file'];
         if (empty($file)) {
-            return Base::retError("您没有选择要上传的文件!");
+            return Base::retError("您没有选择要上传的文件");
         }
         if($file->isValid()){
             Base::makeDir(public_path($param['path']));
@@ -1880,12 +1948,12 @@ class Base
             }
             $extension = strtolower($file->getClientOriginalExtension());
             if ($type && is_array($type) && !in_array($extension, $type)) {
-                return Base::retError('文件格式错误,限制类型:'.implode(",", $type));
+                return Base::retError(['文件格式错误,限制类型:%!', implode(",", $type)]);
             }
             try {
                 $fileSize = $file->getSize();
                 if ($param['size'] > 0 && $fileSize > $param['size'] * 1024) {
-                    return Base::retError('文件大小超限,最大限制:' . $param['size'] . 'kB');
+                    return Base::retError(['文件大小超限,最大限制:%KB!', $param['size']]);
                 }
             } catch (Exception $e) {
                 $fileSize = 0;
@@ -1921,7 +1989,7 @@ class Base
                 "ext" => $extension,                                    //文件后缀名
             ];
             if (!is_file($array['file'])) {
-                return Base::retError('上传失败!');
+                return Base::retError('上传失败');
             }
             //iOS照片颠倒处理
             if (in_array($extension, ['jpg', 'jpeg']) && function_exists('exif_read_data')) {

+ 0 - 24
app/Module/Project.php

@@ -36,30 +36,6 @@ class Project
     }
 
     /**
-     * 是否在关注列表里
-     * @param int $taskid
-     * @param string $username
-     * @return array
-     */
-    public static function inAttention($taskid, $username)
-    {
-        $whereArray = [
-            'type' => '关注',
-            'projectid' => $projectid,
-            'username' => $username,
-        ];
-        if ($isowner) {
-            $whereArray['isowner'] = 1;
-        }
-        $row = Base::DBC2A(DB::table('project_users')->select(['isowner', 'indate'])->where($whereArray)->first());
-        if (empty($row)) {
-            return Base::retError('你不在项目成员内!');
-        } else {
-            return Base::retSuccess('你在项目内', $row);
-        }
-    }
-
-    /**
      * 更新项目(complete、unfinished)
      * @param int $projectid
      */

+ 0 - 355
resources/assets/js/_modules/language/global/en.js

@@ -1,355 +0,0 @@
-export default {
-    "浏览": null,
-    "图片": null,
-    "上传": null,
-    "浏览图片空间的图片": null,
-    "加载中...": null,
-    "自定义图片地址": null,
-    "以“http://”或“https://”开头": null,
-    "确定": null,
-    "自定义地址": null,
-    "关闭": null,
-    "完成": null,
-    "查看图片": null,
-    "上传失败": null,
-    "文件 % 上传失败 %": null,
-    "文件格式不正确": null,
-    "文件 % 格式不正确,请上传 jpg、jpeg、gif、png 格式的图片。": null,
-    "超出文件大小限制": null,
-    "文件 % 太大,不能超过2M。": null,
-    "温馨提示": null,
-    "最多只能上传 % 张图片。": null,
-    "最多只能选择 % 张图片。": null,
-    "加载组件中...": null,
-    "上传/浏览 图片": null,
-    "上传图片": null,
-    "浏览图片": null,
-    "退出全屏": null,
-    "全屏": null,
-    "用户名": null,
-    "昵称": null,
-    "数据加载中.....": null,
-    "没有相关的数据": null,
-    "数据加载失败!": null,
-    "待办": null,
-    "项目": null,
-    "知识库": null,
-    "团队": null,
-    "欢迎您": null,
-    "尊敬的会员": null,
-    "个人中心": null,
-    "退出登录": null,
-    "个人资料": null,
-    "头像": null,
-    "职位/职称": null,
-    "提交": null,
-    "重置": null,
-    "偏好设置": null,
-    "系统皮肤": null,
-    "账号密码": null,
-    "旧密码": null,
-    "新密码": null,
-    "确认新密码": null,
-    "我创建的任务": null,
-    "我归档的任务": null,
-    "请输入昵称!": null,
-    "昵称长度至少2位!": null,
-    "请输入旧密码!": null,
-    "密码长度至少6位!": null,
-    "请输入新密码!": null,
-    "请输入确认新密码!": null,
-    "两次密码输入不一致!": null,
-    "您确定要退出登录吗?": null,
-    "修改成功": null,
-    "修改成功,请重新登录!": null,
-    "缩放": null,
-    "图形": null,
-    "样式": null,
-    "天空蓝": null,
-    "线框": null,
-    "鱼骨图": null,
-    "脑图经典": null,
-    "紧凑经典": null,
-    "温柔冷光": null,
-    "紧凑冷光": null,
-    "经典天盘": null,
-    "紧凑天盘": null,
-    "折叠": null,
-    "展开到一级节点": null,
-    "展开到二级节点": null,
-    "展开到三级节点": null,
-    "展开到四级节点": null,
-    "展开到五级节点": null,
-    "展开全部节点": null,
-    "居中": null,
-    "移动": null,
-    "导出PNG图片": null,
-    "无标题": null,
-    "默认节点": null,
-    "任务名称": null,
-    "创建人": null,
-    "负责人": null,
-    "归档时间": null,
-    "操作": null,
-    "取消归档": null,
-    "你确定要取消归档吗?": null,
-    "网络繁忙,请稍后再试!": null,
-    "归档": null,
-    "创建时间": null,
-    "项目名称": null,
-    "收藏时间": null,
-    "取消收藏": null,
-    "你确定要取消收藏此项目吗?": null,
-    "取消": null,
-    "加入时间": null,
-    "退出": null,
-    "删除": null,
-    "未完成任务": null,
-    "超期任务": null,
-    "已完成任务": null,
-    "输入任务,回车即可保存": null,
-    "重要且紧急": null,
-    "重要不紧急": null,
-    "紧急不重要": null,
-    "不重要不紧急": null,
-    "自己": null,
-    "选择负责人": null,
-    "留空默认: 自己": null,
-    "添加任务": null,
-    "创建于:": null,
-    "描述": null,
-    "添加详细描述...": null,
-    "计划时间:": null,
-    "至": null,
-    "已超期": null,
-    "负责人:": null,
-    "关注者:": null,
-    "优先级:": null,
-    "任务状态:": null,
-    "已完成": null,
-    "未完成": null,
-    "附件": null,
-    "评论": null,
-    "操作记录": null,
-    "输入评论,Enter发表评论,Shift+Enter换行": null,
-    "标记": null,
-    "标记未完成": null,
-    "标记已完成": null,
-    "完成并归档": null,
-    "优先级": null,
-    "输入关键词搜索": null,
-    "计划时间": null,
-    "选择日期范围": null,
-    "日期范围": null,
-    "添加附件": null,
-    "关注人": null,
-    "选择关注人": null,
-    "取消关注": null,
-    "关注任务": null,
-    "今天": null,
-    "明天": null,
-    "本周": null,
-    "本月": null,
-    "3天": null,
-    "5天": null,
-    "7天": null,
-    "请稍候...": null,
-    "修改负责人": null,
-    "你确定修改负责人设置为“%”吗?": null,
-    "任务负责人已改变,点击确定关闭窗口。": null,
-    "修改计划时间": null,
-    "你确定将任务计划时间设置为“%”吗?": null,
-    "取消计划时间": null,
-    "你确定将任务计划时间取消吗?": null,
-    "删除提示": null,
-    "您确定要删除此任务吗?": null,
-    "任务已删除,点击确定关闭窗口。": null,
-    "文件名": null,
-    "关键词": null,
-    "上传者": null,
-    "取消筛选": null,
-    "搜索": null,
-    "上传文件": null,
-    "大小": null,
-    "下载次数": null,
-    "上传时间": null,
-    "下载": null,
-    "重命名": null,
-    "复制链接": null,
-    "复制成功!": null,
-    "复制失败!": null,
-    "没有相关的文件": null,
-    "重命名文件名": null,
-    "请输入新的文件名称": null,
-    "删除文件": null,
-    "你确定要删除此文件吗?": null,
-    "文件 % 上传失败,%": null,
-    "文件 % 格式不正确,仅支持上传:%": null,
-    "状态": null,
-    "全部": null,
-    "级别": null,
-    "阶段": null,
-    "加载更多": null,
-    "没有相关内容": null,
-    "关注时间": null,
-    "完成时间": null,
-    "添加成员": null,
-    "成员角色": null,
-    "项目负责人": null,
-    "成员": null,
-    "移出成员": null,
-    "你确定要将此成员移出项目吗?": null,
-    "请输入昵称/用户名搜索": null,
-    "汇报标题": null,
-    "日报": null,
-    "周报": null,
-    "抄送人": null,
-    "保存": null,
-    "已发送": null,
-    "保存并发送": null,
-    "类型": null,
-    "日期": null,
-    "新建汇报": null,
-    "内容加载中.....": null,
-    "标题": null,
-    "创建日期": null,
-    "查看": null,
-    "编辑": null,
-    "发送": null,
-    "详细内容加载中.....": null,
-    "发送汇报": null,
-    "你确定要发送汇报吗?": null,
-    "删除汇报": null,
-    "你确定要删除汇报吗?": null,
-    "发送人": null,
-    "退出项目": null,
-    "你确定要退出此项目吗?": null,
-    "删除项目": null,
-    "你确定要删除此项目吗?": null,
-    "文档编辑": null,
-    "轻量级的团队在线协作": null,
-    "选中节点,按enter键添加子节点,tab键添加同级节点": null,
-    "知识库目录": null,
-    "文档历史版本": null,
-    "存档日期": null,
-    "操作员": null,
-    "还原": null,
-    "是否放弃修改的内容返回?": null,
-    "放弃保存": null,
-    "保存并返回": null,
-    "网络繁忙,保存失败!": null,
-    "敬请期待!": null,
-    "新建知识库": null,
-    "刷新": null,
-    "我的知识库": null,
-    "新增章节": null,
-    "修改标题": null,
-    "权限设置": null,
-    "知识库名称": null,
-    "文档标题": null,
-    "文档类型": null,
-    "文本": null,
-    "脑图": null,
-    "表格": null,
-    "流程图": null,
-    "目录": null,
-    "请填写知识库名称!": null,
-    "知识库名称长度至少2位!": null,
-    "请填写文档标题!": null,
-    "文档标题长度至少2位!": null,
-    "删除知识库": null,
-    "你确定要删除此知识库吗?": null,
-    "删除文档": null,
-    "你确定要删除此文档吗?": null,
-    "酷团队协作工具就从这里开始": null,
-    "立即登陆": null,
-    "待办四象限": null,
-    "项目管理": null,
-    "在线知识库": null,
-    "日程管理": null,
-    "待办四象限:突出事情优先级,帮助员工合理安排时间,提高工作效率。": null,
-    "项目管理:自定义项目看板,可视化任务安排。": null,
-    "在线知识库:在线流程图,在线文档,以及可视化的目录编排,文档管理无忧。": null,
-    "日程管理:可视化日程管理,快速搞定工作计划,了解工作宏观安排。": null,
-    "用户登录": null,
-    "密码": null,
-    "登录": null,
-    "请填写用户名!": null,
-    "用户名长度至少2位!": null,
-    "请填写登录密码!": null,
-    "密码错长度至少6位!": null,
-    "登录成功": null,
-    "项目面板": null,
-    "任务列表": null,
-    "文件列表": null,
-    "项目动态": null,
-    "设置": null,
-    "刷新列表": null,
-    "添加任务至": null,
-    "添加一个新列表": null,
-    "已归档任务": null,
-    "项目统计": null,
-    "成员管理": null,
-    "刷新成功!": null,
-    "重命名列表": null,
-    "请输入新的列表名称": null,
-    "注:将同时删除列表下所有任务": null,
-    "删除列表": null,
-    "你确定要删除此列表吗?": null,
-    "添加列表": null,
-    "请输入列表名称": null,
-    "新建项目": null,
-    "参与的项目": null,
-    "收藏的项目": null,
-    "我管理的项目": null,
-    "打开": null,
-    "收藏": null,
-    "移交项目": null,
-    "已完成数": null,
-    "未完成数": null,
-    "项目模板": null,
-    "项目流程": null,
-    "添加流程": null,
-    "添加": null,
-    "管理的项目": null,
-    "空白模板": null,
-    "软件开发": null,
-    "产品规划": null,
-    "前端开发": null,
-    "后端开发": null,
-    "测试": null,
-    "发布": null,
-    "其它": null,
-    "产品开发": null,
-    "产品计划": null,
-    "正在设计": null,
-    "正在研发": null,
-    "准备发布": null,
-    "发布成功": null,
-    "请填写项目名称!": null,
-    "项目名称至少2个字!": null,
-    "请输入流程名称,多个可用空格分隔。": null,
-    "重命名项目": null,
-    "请输入新的项目名称": null,
-    "团队成员": null,
-    "添加团队成员": null,
-    "添加后不可修改": null,
-    "登录密码": null,
-    "最少6位数": null,
-    "会员信息": null,
-    "删除团队成员": null,
-    "你确定要删除此团队成员吗?": null,
-    "我的待办": null,
-    "待办日程": null,
-    "已完成的任务": null,
-    "我关注的任务": null,
-    "周报/日报": null,
-    "在这里输入事项,回车即可保存": null,
-    "点击可快速添加需要处理的事项": null,
-    "超期": null,
-    "恭喜你!已完成了所有待办": null,
-    "我的汇报": null,
-    "收到的汇报": null,
-    "修改文档标题": null,
-    "新建文档": null
-}

+ 2 - 2
resources/assets/js/_modules/language/index.js

@@ -21,8 +21,8 @@ export default {
                         this.privateLanguageInit = true;
                         //
                         this.addLanguageData({
-                            en: require("./global/en.js").default,
-                            zh: require("./global/zh.js").default
+                            en: require("../../../../lang/en/general.js").default,
+                            zh: require("../../../../lang/zh/general.js").default
                         });
                         this.privateLanguageType = window.localStorage['__language:type__'] || 'zh';
                         //

+ 0 - 19
resources/lang/en/auth.php

@@ -1,19 +0,0 @@
-<?php
-
-return [
-
-    /*
-    |--------------------------------------------------------------------------
-    | Authentication Language Lines
-    |--------------------------------------------------------------------------
-    |
-    | The following language lines are used during authentication for various
-    | messages that we need to display to the user. You are free to modify
-    | these language lines according to your application's requirements.
-    |
-    */
-
-    'failed' => 'These credentials do not match our records.',
-    'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
-
-];

+ 377 - 0
resources/lang/en/general.js

@@ -0,0 +1,377 @@
+export default {
+    "浏览": "Browse",
+    "图片": "Image",
+    "上传": "Upload",
+    "浏览图片空间的图片": "Browse pictures of space images",
+    "加载中...": "Loading...",
+    "自定义图片地址": "Custom Image URL",
+    "以“http://”或“https://”开头": "With \"http: //\" or \"https: //\" at the beginning",
+    "确定": "Determine",
+    "自定义地址": "Custom address",
+    "关闭": "Shut down",
+    "完成": "Carry out",
+    "查看图片": "View image",
+    "上传失败": "Upload failed",
+    "文件 % 上传失败 %": "File upload failed%%",
+    "文件格式不正确": "File format is incorrect",
+    "文件 % 格式不正确,请上传 jpg、jpeg、gif、png 格式的图片。": "% File format is incorrect, please upload pictures jpg, jpeg, gif, png format.",
+    "超出文件大小限制": "File size limit exceeded",
+    "文件 % 太大,不能超过2M。": "% File is too large, no more than 2M.",
+    "温馨提示": "Tips",
+    "最多只能上传 % 张图片。": "% Can only upload pictures.",
+    "最多只能选择 % 张图片。": "Select at most% pictures.",
+    "加载组件中...": "Load assembly ...",
+    "上传/浏览 图片": "Upload / browse pictures",
+    "上传图片": "Upload image",
+    "浏览图片": "View picture",
+    "退出全屏": "Exit Full Screen",
+    "全屏": "Full screen",
+    "用户名": "Username",
+    "昵称": "Nickname",
+    "数据加载中.....": "Loading.....",
+    "没有相关的数据": "No data",
+    "数据加载失败!": "Loading failure!",
+    "待办": "Upcoming",
+    "项目": "Project",
+    "知识库": "Knowledge",
+    "团队": "Team",
+    "欢迎您": "Welcome",
+    "尊敬的会员": "Dear Member",
+    "个人中心": "Personal center",
+    "退出登录": "Sign out",
+    "个人资料": "Personal information",
+    "头像": "Head portrait",
+    "职位/职称": "Position / Title",
+    "提交": "Submit",
+    "重置": "Reset",
+    "偏好设置": "Preferences",
+    "系统皮肤": "Skin System",
+    "账号密码": "Account password",
+    "旧密码": "Old password",
+    "新密码": "New password",
+    "确认新密码": "Confirm the new password",
+    "我创建的任务": "I created the task",
+    "我归档的任务": "I archiving task",
+    "请输入昵称!": "Please enter a nickname!",
+    "昵称长度至少2位!": "Nicknames length of at least 2!",
+    "请输入旧密码!": "Please enter your old password!",
+    "密码长度至少6位!": "Password length of at least 6!",
+    "请输入新密码!": "Please enter a new password!",
+    "请输入确认新密码!": "Please enter confirm the new password!",
+    "两次密码输入不一致!": "Enter the password twice inconsistent!",
+    "您确定要退出登录吗?": "Are you sure you want to log off?",
+    "修改成功": "Successfully modified",
+    "修改成功,请重新登录!": "Modified successfully, please log in again!",
+    "缩放": "Scaling",
+    "图形": "Graph",
+    "样式": "Style",
+    "天空蓝": "Sky blue",
+    "线框": "Wireframe",
+    "鱼骨图": "Fishbone Diagram",
+    "脑图经典": "Figure classic brain",
+    "紧凑经典": "Compact Classic",
+    "温柔冷光": "Gentle cold",
+    "紧凑冷光": "Compact cold light",
+    "经典天盘": "Classic Tin plate",
+    "紧凑天盘": "Compact disc days",
+    "折叠": "Fold",
+    "展开到一级节点": "Expand to a node",
+    "展开到二级节点": "Expand the node to two",
+    "展开到三级节点": "Expand the node to three",
+    "展开到四级节点": "Expand to four nodes",
+    "展开到五级节点": "Expand the node to five",
+    "展开全部节点": "Expand all nodes",
+    "居中": "Center",
+    "移动": "Mobile",
+    "导出PNG图片": "Export PNG image",
+    "无标题": "Untitled",
+    "默认节点": "The default node",
+    "任务名称": "Mission name",
+    "创建人": "Founder",
+    "负责人": "Principal",
+    "归档时间": "Archive Time",
+    "操作": "Operating",
+    "取消归档": "Unarchiving",
+    "你确定要取消归档吗?": "Are you sure you want to cancel archiving it?",
+    "网络繁忙,请稍后再试!": "Network is busy, please try again later!",
+    "归档": "File",
+    "创建时间": "Created",
+    "项目名称": "Project name",
+    "收藏时间": "Collection time",
+    "取消收藏": "Unfavorite",
+    "你确定要取消收藏此项目吗?": "Are you sure you want to unsubscribe this item?",
+    "取消": "Cancel",
+    "加入时间": "Joined",
+    "退出": "Drop out",
+    "删除": "Delete",
+    "未完成任务": "Unfinished task",
+    "超期任务": "Mission extended",
+    "已完成任务": "Completed tasks",
+    "输入任务,回车即可保存": "Enter the task, press Enter to save",
+    "重要且紧急": "Important and urgent",
+    "重要不紧急": "Important not urgent",
+    "紧急不重要": "Emergency unimportant",
+    "不重要不紧急": "Important not urgent",
+    "自己": "Own",
+    "选择负责人": "Select the person in charge",
+    "留空默认: 自己": "Blank Default: own",
+    "添加任务": "Add a task",
+    "创建于:": "Built in:",
+    "描述": "Description",
+    "添加详细描述...": "Add a detailed description ...",
+    "计划时间:": "Planning time:",
+    "至": "To",
+    "已超期": "It has been extended",
+    "负责人:": "Principal:",
+    "关注者:": "Followers:",
+    "优先级:": "Priority:",
+    "任务状态:": "Task Status:",
+    "已完成": "Completed",
+    "未完成": "Undone",
+    "附件": "Annex",
+    "评论": "Comment",
+    "操作记录": "Operation Record",
+    "输入评论,Enter发表评论,Shift+Enter换行": "Enter a comment, Enter comment, Shift + Enter Wrap",
+    "标记": "Mark",
+    "标记未完成": "Mark unfinished",
+    "标记已完成": "Mark has been completed",
+    "完成并归档": "Complete and file",
+    "优先级": "Priority",
+    "输入关键词搜索": "Enter search keywords",
+    "计划时间": "Planning time",
+    "选择日期范围": "Select a date range",
+    "日期范围": "Date range",
+    "添加附件": "Add attachments",
+    "关注人": "Concerned about people",
+    "选择关注人": "Select the person concerned",
+    "取消关注": "Unsubscribe",
+    "关注任务": "Attention task",
+    "今天": "Nowadays",
+    "明天": "Tomorrow",
+    "本周": "This week",
+    "本月": "This month",
+    "3天": "3 days",
+    "5天": "5 days",
+    "7天": "7 days",
+    "请稍候...": "Please wait...",
+    "修改负责人": "Modify the person in charge",
+    "你确定修改负责人设置为“%”吗?": "Are you sure you modify the person in charge is set to "%" do?",
+    "任务负责人已改变,点击确定关闭窗口。": "Mandate holders has changed, click OK to close the window.",
+    "修改计划时间": "Modify the plan time",
+    "你确定将任务计划时间设置为“%”吗?": "Are you sure you schedule a task time is set to "%" do?",
+    "取消计划时间": "Cancel a scheduled time",
+    "你确定将任务计划时间取消吗?": "Are you sure you schedule a task time to cancel it?",
+    "删除提示": "Delete Tip",
+    "您确定要删除此任务吗?": "Are you sure you want to delete this task?",
+    "任务已删除,点击确定关闭窗口。": "Task has been deleted, click OK to close the window.",
+    "文件名": "File name",
+    "关键词": "Key words",
+    "上传者": "Uploaded by",
+    "取消筛选": "Remove Filter",
+    "搜索": "Search for",
+    "上传文件": "Upload files",
+    "大小": "Size",
+    "下载次数": "Download times",
+    "上传时间": "Upload time",
+    "下载": "Download",
+    "重命名": "Rename",
+    "复制链接": "Copy Link",
+    "复制成功!": "Copy successful!",
+    "复制失败!": "Copy failed!",
+    "没有相关的文件": "No related documents",
+    "重命名文件名": "Rename the file name",
+    "请输入新的文件名称": "Please enter a new file name",
+    "删除文件": "Delete Files",
+    "你确定要删除此文件吗?": "Are you sure you want to delete this file?",
+    "文件 % 上传失败,%": "File upload failed%,%",
+    "文件 % 格式不正确,仅支持上传:%": "% File format is not correct, only supports uploading:%",
+    "状态": "Status",
+    "全部": "Complete",
+    "级别": "Level",
+    "阶段": "Stage",
+    "加载更多": "Load more",
+    "没有相关内容": "No related content",
+    "关注时间": "Attention time",
+    "完成时间": "Complete time",
+    "添加成员": "Add Members",
+    "成员角色": "Member role",
+    "项目负责人": "Project manager",
+    "成员": "Member",
+    "移出成员": "Members removed",
+    "你确定要将此成员移出项目吗?": "Are you sure you want to do this project out of the members?",
+    "请输入昵称/用户名搜索": "Please enter a nickname / username search",
+    "汇报标题": "Report title",
+    "日报": "Daily",
+    "周报": "Weekly",
+    "抄送人": "Cc",
+    "保存": "Save",
+    "已发送": "Has been sent",
+    "保存并发送": "Save and Send",
+    "类型": "Types of",
+    "日期": "Date",
+    "新建汇报": "New report",
+    "内容加载中.....": "Content Loading .....",
+    "标题": "Title",
+    "创建日期": "Creation Date",
+    "查看": "View",
+    "编辑": "Edit",
+    "发送": "Send",
+    "详细内容加载中.....": "Details Loading .....",
+    "发送汇报": "Send report",
+    "你确定要发送汇报吗?": "Are you sure you want to send a report it?",
+    "删除汇报": "Delete report",
+    "你确定要删除汇报吗?": "Are you sure you want to delete the report?",
+    "发送人": "Sender",
+    "退出项目": "Exit Project",
+    "你确定要退出此项目吗?": "Are you sure you want to exit this item?",
+    "删除项目": "Remove items",
+    "你确定要删除此项目吗?": "Are you sure you want to delete this item?",
+    "文档编辑": "Document editing",
+    "轻量级的团队在线协作": "Lightweight team online collaboration",
+    "选中节点,按enter键添加子节点,tab键添加同级节点": "Select the node, press enter to add a child node, tab key to add sibling nodes",
+    "知识库目录": "Knowledge directory",
+    "文档历史版本": "Document version history",
+    "存档日期": "Archive Date",
+    "操作员": "Operator",
+    "还原": "Reduction",
+    "是否放弃修改的内容返回?": "Whether to give modify the contents of the return?",
+    "放弃保存": "Discard",
+    "保存并返回": "Save and Return",
+    "网络繁忙,保存失败!": "The network is busy, save failed!",
+    "敬请期待!": "Stay tuned!",
+    "新建知识库": "New Knowledge",
+    "刷新": "Refresh",
+    "我的知识库": "My Knowledge",
+    "新增章节": "New chapter",
+    "修改标题": "Modify Title",
+    "权限设置": "Permission settings",
+    "知识库名称": "Knowledge Name",
+    "文档标题": "Document Title",
+    "文档类型": "Document Type",
+    "文本": "Text",
+    "脑图": "Brain Mapping",
+    "表格": "Form",
+    "流程图": "Flow chart",
+    "目录": "Table of Contents",
+    "请填写知识库名称!": "Please fill in the knowledge base name!",
+    "知识库名称长度至少2位!": "Knowledge name length of at least 2!",
+    "请填写文档标题!": "Please fill out the document title!",
+    "文档标题长度至少2位!": "Document title length of at least two!",
+    "删除知识库": "Delete repository",
+    "你确定要删除此知识库吗?": "Are you sure you want to delete this knowledge base it?",
+    "删除文档": "Delete Document",
+    "你确定要删除此文档吗?": "Are you sure you want to delete this document?",
+    "酷团队协作工具就从这里开始": "Cool team collaboration tools from here",
+    "立即登陆": "Immediately landing",
+    "待办四象限": "Upcoming Quadrant",
+    "项目管理": "Project management",
+    "在线知识库": "Online Knowledge Base",
+    "日程管理": "Calendar",
+    "待办四象限:突出事情优先级,帮助员工合理安排时间,提高工作效率。": "Four quadrant to-do: highlight what priority, to help employees arrange your time, improve work efficiency.",
+    "项目管理:自定义项目看板,可视化任务安排。": "Project Management: Project custom signage, visualization tasks scheduled.",
+    "在线知识库:在线流程图,在线文档,以及可视化的目录编排,文档管理无忧。": "Online Knowledge Base: Online flowchart, online documentation, and visualization of the catalog layout, document management worries.",
+    "日程管理:可视化日程管理,快速搞定工作计划,了解工作宏观安排。": "Calendar: visual schedule management, quick to get the work plan, understand the macro work arrangements.",
+    "用户登录": "User login",
+    "密码": "Password",
+    "登录": "Log in",
+    "请填写用户名!": "Please enter username!",
+    "用户名长度至少2位!": "Username length of at least two!",
+    "请填写登录密码!": "Please fill in the login password!",
+    "密码错长度至少6位!": "Wrong password length of at least 6!",
+    "登录成功": "Login successful",
+    "项目面板": "Project panel",
+    "任务列表": "Task list",
+    "文件列表": "Document list",
+    "项目动态": "Project News",
+    "设置": "Set up",
+    "刷新列表": "Refresh the list",
+    "添加任务至": "Adding to the task",
+    "添加一个新列表": "Add a new list",
+    "已归档任务": "Archived task",
+    "项目统计": "Project Statistics",
+    "成员管理": "Member of the Management",
+    "刷新成功!": "Refresh success!",
+    "重命名列表": "Rename list",
+    "请输入新的列表名称": "Enter a new list name",
+    "注:将同时删除列表下所有任务": "Note: To delete all tasks at the same time list",
+    "删除列表": "Delete List",
+    "你确定要删除此列表吗?": "Are you sure you want to delete this list?",
+    "添加列表": "Add List",
+    "请输入列表名称": "Please enter a list of names",
+    "新建项目": "New Project",
+    "参与的项目": "Project involved",
+    "收藏的项目": "Favorite items",
+    "我管理的项目": "I manage the project",
+    "打开": "Turn on",
+    "收藏": "Collect",
+    "移交项目": "BOT projects",
+    "已完成数": "Completed Number",
+    "未完成数": "The number of outstanding",
+    "项目模板": "Project Templates",
+    "项目流程": "Project Flow",
+    "添加流程": "Adding Process",
+    "添加": "Add to",
+    "管理的项目": "Project management",
+    "空白模板": "Blank template",
+    "软件开发": "Software Development",
+    "产品规划": "Product Planning",
+    "前端开发": "Front-end development",
+    "后端开发": "Back-end development",
+    "测试": "Test",
+    "发布": "Release",
+    "其它": "Other",
+    "产品开发": "Product development",
+    "产品计划": "Product plans",
+    "正在设计": "It is being designed",
+    "正在研发": "We are developed",
+    "准备发布": "Ready for release",
+    "发布成功": "Successfully posted",
+    "请填写项目名称!": "Please fill in item name!",
+    "项目名称至少2个字!": "Project Name at least two words!",
+    "请输入流程名称,多个可用空格分隔。": "Please enter the name of the process, a number of available spaces.",
+    "重命名项目": "Rename the project",
+    "请输入新的项目名称": "Please enter a new project name",
+    "团队成员": "Team member",
+    "添加团队成员": "Add team members",
+    "添加后不可修改": "After the addition can not be modified",
+    "登录密码": "Login password",
+    "最少6位数": "At least 6 digits",
+    "会员信息": "Member information",
+    "删除团队成员": "Remove team members",
+    "你确定要删除此团队成员吗?": "Are you sure you want to delete this team?",
+    "我的待办": "My to-do",
+    "待办日程": "Upcoming Schedule",
+    "已完成的任务": "Completed Tasks",
+    "我关注的任务": "I am concerned about the task",
+    "周报/日报": "Weekly / Daily",
+    "在这里输入事项,回车即可保存": "Here input matters, Enter to save",
+    "点击可快速添加需要处理的事项": "Click to quickly add items need to be addressed",
+    "超期": "Extended",
+    "恭喜你!已完成了所有待办": "Congratulations! Has completed all the to-do",
+    "我的汇报": "My report",
+    "收到的汇报": "Received reports",
+    "修改文档标题": "Modify the document title",
+    "新建文档": "New Document",
+    "上午": "Morning",
+    "下午": "In the afternoon",
+    "晚上": "At night",
+    "账号": "Account number",
+    "加载更多...": "Load more...",
+    "删除对话": "Delete a conversation",
+    "清除聊天记录": "Clear chat history",
+    "有%条新消息": "There are new messages%",
+    "请输入要发送的消息": "Please enter the message to be sent",
+    "[图片]": "[image]",
+    "[来自关注任务]": "[Attention from the task]",
+    "[来自工作报告]": "[From work report]",
+    "[未知类型]": "[Unknown type]",
+    "历史消息": "Message History",
+    "确认操作": "Confirm the operation",
+    "你确定要删除此对话吗?": "Are you sure you want to delete this conversation?",
+    "你确定要清除聊天记录吗?": "Are you sure you want to clear the chat history?",
+    "来自关注任务": "Attention from the task",
+    "来自工作报告": "From work report",
+    "错误详情": "Error Details",
+    "修改了工作报告": "Revised work report",
+    "发送了工作报告": "Send the work report",
+}

+ 110 - 0
resources/lang/en/general.php

@@ -0,0 +1,110 @@
+<?php
+
+return [
+    "暂无对话记录" => "No conversations",
+    "清除成功!" => "Clear success!",
+    "暂无知识库" => "No Knowledge",
+    "标题限制2-100个字!" => "Titles are limited to 2-100 word!",
+    "知识库不存在或已被删除!" => "Knowledge does not exist or has been deleted!",
+    "此操作仅限知识库负责人!" => "This operation is limited knowledge base person in charge!",
+    "系统繁忙,请稍后再试!" => "The system is busy, please try again later!",
+    "暂无章节" => "No chapter",
+    "知识库章节已经超过最大限制(%)!" => "Knowledge chapters has exceeded the maximum limit (%)!",
+    "参数错误!" => "Parameter error!",
+    "文档不存在或已被删除!" => "The document does not exist or has been deleted!",
+    "暂无历史数据" => "No historical data",
+    "未找到任何相关的项目" => "Any related items found",
+    "项目不存在或已被删除!" => "Project does not exist or has been deleted!",
+    "项目名称不可以少于2个字!" => "Project name can not be less than two words!",
+    "项目名称最多只能设置32个字!" => "Project name can only be set up to 32 characters!",
+    "添加失败!" => "Add failed!",
+    "取消成功!" => "Cancel success!",
+    "已取消!" => "Cancelled!",
+    "收藏成功!" => "Bookmarked!",
+    "已收藏!" => "Collected!",
+    "你不是项目负责人!" => "You're not the project leader!",
+    "你已是项目负责人!" => "You have a project leader!",
+    "成员用户名(%)不存在!" => "Members Username (%) does not exist!",
+    "移交成功!" => "Transfer success!",
+    "你是项目负责人,不可退出项目!" => "You are the project leader, the project can not quit!",
+    "退出项目成功!" => "Exit success of the project!",
+    "未找到任何相关的成员" => "Any relevant Member Not Found",
+    "操作完成!" => "The operation is complete!",
+    "列表名称不能为空!" => "List name can not be empty!",
+    "列表名称最多只能设置32个字!" => "List names can only be set up to 32 characters!",
+    "列表名称已存在!" => "List name already exists!",
+    "列表不存在或已被删除!" => "List does not exist or has been deleted!",
+    "未找到任何相关的任务!" => "We did not find any related tasks!",
+    "未能找到此任务或无法管理此任务!" => "This task could not be found or can not manage this task!",
+    "项目子分类不存在或已被删除!" => "Project sub-category does not exist or has been deleted!",
+    "负责人不在项目成员内!" => "Responsible for project members who are not!",
+    "任务标题不能为空!" => "Task title can not be empty!",
+    "任务标题最多只能设置255个字!" => "Job title can only be set up to 255 words!",
+    "添加成功!" => "Added successfully!",
+    "任务不存在!" => "Task does not exist!",
+    "此操作只允许项目管理员或者任务负责人!" => "This allows only the person in charge of the task or project administrator!",
+    "此操作只允许任务负责人!" => "This allows only the person responsible for the task!",
+    "标题未做改变!" => "Title without making change!",
+    "描述未做改变!" => "Description without making change!",
+    "优先级未做改变!" => "Priority without making change!",
+    "优先级参数错误!" => "Priority parameter error!",
+    "负责人未做改变!" => "The person in charge without making change!",
+    "%不在成员列表内!" => "% Are not members of the list!",
+    "计划时间参数错误!" => "Time Parameters error!",
+    "与原计划时间一致!" => "Consistent with the originally planned!",
+    "任务已标记完成,请勿重复操作!" => "Marked completed the task, do not repeat!",
+    "任务未完成,无法标记未完成!" => "The task is not complete, you can not mark the unfinished!",
+    "任务已经归档,请勿重复操作!" => "Task has been archived, do not repeat!",
+    "任务未归档,无法取消归档操作!" => "The task is not an archive, you can not cancel archiving operations!",
+    "任务已删除,请勿重复操作!" => "Task has been deleted, do not repeat!",
+    "评论内容至少2个字!" => "Review at least two words!",
+    "删除成功!" => "Successfully deleted!",
+    "评论成功!" => "Comments Success!",
+    "保存成功!" => "Saved successfully!",
+    "修改成功!" => "Successfully modified!",
+    "你不是任务负责人!" => "You do not mandate holders!",
+    "未找到任何相关的文件" => "File not found any relevant",
+    "文件不存在或已被删除!" => "File does not exist or has been deleted!",
+    "此操作仅支持管理员或上传者!" => "This only supports the administrator or uploaders!",
+    "文件名称不能为空!" => "File name can not be empty!",
+    "文件名称最多只能设置32个字!" => "File names can only be set up to 32 characters!",
+    "未找到任何相关的记录" => "Any relevant records found",
+    "内容不存在或已被删除!" => "Content does not exist or has been deleted!",
+    "没有相关的数据!" => "No data!",
+    "没有相关的数据或已被删除!" => "No data or has been deleted!",
+    "汇报已发送,无法删除!" => "Report has been sent, can not be deleted!",
+    "未找到任何相关的汇报" => "The report did not find any related",
+    "账号或密码错误。" => "Incorrect username or password.",
+    "账号或密码错误!" => "Incorrect username or password!",
+    "登陆成功!" => "Landed successfully!",
+    "昵称不可以少于2个字!" => "Nicknames may not be less than two words!",
+    "昵称最多只能设置8个字!" => "Nickname can set up to eight characters!",
+    "昵称最多只能设置20个字!" => "Nickname can only be set up to 20 characters!",
+    "请设置要修改的内容!" => "Please set the content to be modified!",
+    "密码设置不能小于6位数!" => "Password can not be less than 6 digits!",
+    "密码最多只能设置32位数!" => "Password can only be set up to 32 digits!",
+    "新旧密码一致!" => "Consistent with the old and new password!",
+    "请填写正确的旧密码!" => "Please fill in the correct old password!",
+    "修改成功" => "Successfully modified",
+    "未找到任何相关的团队成员" => "Any relevant team members found",
+    "身份权限不足!" => "Lack of identity permission!",
+    "用户名不可以少于2个字符!" => "Username can not be less than two characters!",
+    "用户名最多只能设置16个字符!" => "User name can only be set up to 16 characters!",
+    "用户名由2-16位数字或字母、汉字、下划线组成!" => "The user name of 2-16 digits or letters, Chinese characters, underscores!",
+    "用户名已存在!" => "Username already exists!",
+    "不能删除自己!" => "You can not delete yourself!",
+    "删除失败!" => "Failed to delete!",
+    "身份失效,等重新登录!" => "The identity of the failure, and other logon again!",
+    "您没有选择要上传的文件!" => "You did not select a file to upload!",
+    "错误的类型参数" => "Wrong type parameter",
+    "文件格式错误,限制类型:%!" => "File format error, limit type:%!",
+    "文件大小超限,最大限制:%KB!" => "File size overrun, the maximum limit:% KB!",
+    "上传失败!" => "Upload failed!",
+    "请开启您PHP环境的openssl" => "Please open your PHP environment openssl",
+    "你不在项目成员内!" => "You are not members of the project!",
+    "你在项目内" => "You within the project",
+    "身份已失效,请重新登录!" => "Status has expired, please login again!",
+    "请登录后继续..." => "Please log in to continue ...",
+    "权限通过" => "By permission",
+    "权限不足" => "Insufficient permissions",
+];

+ 0 - 19
resources/lang/en/pagination.php

@@ -1,19 +0,0 @@
-<?php
-
-return [
-
-    /*
-    |--------------------------------------------------------------------------
-    | Pagination Language Lines
-    |--------------------------------------------------------------------------
-    |
-    | The following language lines are used by the paginator library to build
-    | the simple pagination links. You are free to change them to anything
-    | you want to customize your views to better match your application.
-    |
-    */
-
-    'previous' => '&laquo; Previous',
-    'next' => 'Next &raquo;',
-
-];

+ 0 - 22
resources/lang/en/passwords.php

@@ -1,22 +0,0 @@
-<?php
-
-return [
-
-    /*
-    |--------------------------------------------------------------------------
-    | Password Reset Language Lines
-    |--------------------------------------------------------------------------
-    |
-    | The following language lines are the default lines which match reasons
-    | that are given by the password broker for a password update attempt
-    | has failed, such as for an invalid token or invalid new password.
-    |
-    */
-
-    'reset' => 'Your password has been reset!',
-    'sent' => 'We have emailed your password reset link!',
-    'throttled' => 'Please wait before retrying.',
-    'token' => 'This password reset token is invalid.',
-    'user' => "We can't find a user with that email address.",
-
-];

+ 0 - 151
resources/lang/en/validation.php

@@ -1,151 +0,0 @@
-<?php
-
-return [
-
-    /*
-    |--------------------------------------------------------------------------
-    | Validation Language Lines
-    |--------------------------------------------------------------------------
-    |
-    | The following language lines contain the default error messages used by
-    | the validator class. Some of these rules have multiple versions such
-    | as the size rules. Feel free to tweak each of these messages here.
-    |
-    */
-
-    'accepted' => 'The :attribute must be accepted.',
-    'active_url' => 'The :attribute is not a valid URL.',
-    'after' => 'The :attribute must be a date after :date.',
-    'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
-    'alpha' => 'The :attribute may only contain letters.',
-    'alpha_dash' => 'The :attribute may only contain letters, numbers, dashes and underscores.',
-    'alpha_num' => 'The :attribute may only contain letters and numbers.',
-    'array' => 'The :attribute must be an array.',
-    'before' => 'The :attribute must be a date before :date.',
-    'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
-    'between' => [
-        'numeric' => 'The :attribute must be between :min and :max.',
-        'file' => 'The :attribute must be between :min and :max kilobytes.',
-        'string' => 'The :attribute must be between :min and :max characters.',
-        'array' => 'The :attribute must have between :min and :max items.',
-    ],
-    'boolean' => 'The :attribute field must be true or false.',
-    'confirmed' => 'The :attribute confirmation does not match.',
-    'date' => 'The :attribute is not a valid date.',
-    'date_equals' => 'The :attribute must be a date equal to :date.',
-    'date_format' => 'The :attribute does not match the format :format.',
-    'different' => 'The :attribute and :other must be different.',
-    'digits' => 'The :attribute must be :digits digits.',
-    'digits_between' => 'The :attribute must be between :min and :max digits.',
-    'dimensions' => 'The :attribute has invalid image dimensions.',
-    'distinct' => 'The :attribute field has a duplicate value.',
-    'email' => 'The :attribute must be a valid email address.',
-    'ends_with' => 'The :attribute must end with one of the following: :values.',
-    'exists' => 'The selected :attribute is invalid.',
-    'file' => 'The :attribute must be a file.',
-    'filled' => 'The :attribute field must have a value.',
-    'gt' => [
-        'numeric' => 'The :attribute must be greater than :value.',
-        'file' => 'The :attribute must be greater than :value kilobytes.',
-        'string' => 'The :attribute must be greater than :value characters.',
-        'array' => 'The :attribute must have more than :value items.',
-    ],
-    'gte' => [
-        'numeric' => 'The :attribute must be greater than or equal :value.',
-        'file' => 'The :attribute must be greater than or equal :value kilobytes.',
-        'string' => 'The :attribute must be greater than or equal :value characters.',
-        'array' => 'The :attribute must have :value items or more.',
-    ],
-    'image' => 'The :attribute must be an image.',
-    'in' => 'The selected :attribute is invalid.',
-    'in_array' => 'The :attribute field does not exist in :other.',
-    'integer' => 'The :attribute must be an integer.',
-    'ip' => 'The :attribute must be a valid IP address.',
-    'ipv4' => 'The :attribute must be a valid IPv4 address.',
-    'ipv6' => 'The :attribute must be a valid IPv6 address.',
-    'json' => 'The :attribute must be a valid JSON string.',
-    'lt' => [
-        'numeric' => 'The :attribute must be less than :value.',
-        'file' => 'The :attribute must be less than :value kilobytes.',
-        'string' => 'The :attribute must be less than :value characters.',
-        'array' => 'The :attribute must have less than :value items.',
-    ],
-    'lte' => [
-        'numeric' => 'The :attribute must be less than or equal :value.',
-        'file' => 'The :attribute must be less than or equal :value kilobytes.',
-        'string' => 'The :attribute must be less than or equal :value characters.',
-        'array' => 'The :attribute must not have more than :value items.',
-    ],
-    'max' => [
-        'numeric' => 'The :attribute may not be greater than :max.',
-        'file' => 'The :attribute may not be greater than :max kilobytes.',
-        'string' => 'The :attribute may not be greater than :max characters.',
-        'array' => 'The :attribute may not have more than :max items.',
-    ],
-    'mimes' => 'The :attribute must be a file of type: :values.',
-    'mimetypes' => 'The :attribute must be a file of type: :values.',
-    'min' => [
-        'numeric' => 'The :attribute must be at least :min.',
-        'file' => 'The :attribute must be at least :min kilobytes.',
-        'string' => 'The :attribute must be at least :min characters.',
-        'array' => 'The :attribute must have at least :min items.',
-    ],
-    'not_in' => 'The selected :attribute is invalid.',
-    'not_regex' => 'The :attribute format is invalid.',
-    'numeric' => 'The :attribute must be a number.',
-    'password' => 'The password is incorrect.',
-    'present' => 'The :attribute field must be present.',
-    'regex' => 'The :attribute format is invalid.',
-    'required' => 'The :attribute field is required.',
-    'required_if' => 'The :attribute field is required when :other is :value.',
-    'required_unless' => 'The :attribute field is required unless :other is in :values.',
-    'required_with' => 'The :attribute field is required when :values is present.',
-    'required_with_all' => 'The :attribute field is required when :values are present.',
-    'required_without' => 'The :attribute field is required when :values is not present.',
-    'required_without_all' => 'The :attribute field is required when none of :values are present.',
-    'same' => 'The :attribute and :other must match.',
-    'size' => [
-        'numeric' => 'The :attribute must be :size.',
-        'file' => 'The :attribute must be :size kilobytes.',
-        'string' => 'The :attribute must be :size characters.',
-        'array' => 'The :attribute must contain :size items.',
-    ],
-    'starts_with' => 'The :attribute must start with one of the following: :values.',
-    'string' => 'The :attribute must be a string.',
-    'timezone' => 'The :attribute must be a valid zone.',
-    'unique' => 'The :attribute has already been taken.',
-    'uploaded' => 'The :attribute failed to upload.',
-    'url' => 'The :attribute format is invalid.',
-    'uuid' => 'The :attribute must be a valid UUID.',
-
-    /*
-    |--------------------------------------------------------------------------
-    | Custom Validation Language Lines
-    |--------------------------------------------------------------------------
-    |
-    | Here you may specify custom validation messages for attributes using the
-    | convention "attribute.rule" to name the lines. This makes it quick to
-    | specify a specific custom language line for a given attribute rule.
-    |
-    */
-
-    'custom' => [
-        'attribute-name' => [
-            'rule-name' => 'custom-message',
-        ],
-    ],
-
-    /*
-    |--------------------------------------------------------------------------
-    | Custom Validation Attributes
-    |--------------------------------------------------------------------------
-    |
-    | The following language lines are used to swap our attribute placeholder
-    | with something more reader friendly such as "E-Mail Address" instead
-    | of "email". This simply helps us make our message more expressive.
-    |
-    */
-
-    'attributes' => [],
-
-];

resources/assets/js/_modules/language/global/zh.js → resources/lang/zh/general.js


+ 5 - 0
resources/lang/zh/general.php

@@ -0,0 +1,5 @@
+<?php
+
+return [
+
+];