From d88e86021830a704876e59e8bd1b44331096e414 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=81=AA?= Date: Tue, 17 Dec 2024 16:20:23 +0800 Subject: [PATCH] project transfer --- .gitignore | 7 ++ CHANGELOG.md | 20 ++++ LICENSE.md | 9 ++ README.md | 1 + composer.json | 51 +++++++++ lang/zh_CN/auth.php | 18 ++++ lang/zh_CN/pagination.php | 22 ++++ lang/zh_CN/ui.php | 90 ++++++++++++++++ lang/zh_CN/validation.php | 157 ++++++++++++++++++++++++++++ lang/zh_HK/auth.php | 18 ++++ lang/zh_HK/pagination.php | 22 ++++ lang/zh_HK/ui.php | 90 ++++++++++++++++ lang/zh_HK/validation.php | 151 ++++++++++++++++++++++++++ lang/zh_TW/auth.php | 18 ++++ lang/zh_TW/pagination.php | 22 ++++ lang/zh_TW/ui.php | 90 ++++++++++++++++ lang/zh_TW/validation.php | 151 ++++++++++++++++++++++++++ pint.json | 17 +++ src/Providers/ZhServiceProvider.php | 19 ++++ 19 files changed, 973 insertions(+) create mode 100644 .gitignore create mode 100644 CHANGELOG.md create mode 100644 LICENSE.md create mode 100644 README.md create mode 100644 composer.json create mode 100644 lang/zh_CN/auth.php create mode 100644 lang/zh_CN/pagination.php create mode 100644 lang/zh_CN/ui.php create mode 100644 lang/zh_CN/validation.php create mode 100644 lang/zh_HK/auth.php create mode 100644 lang/zh_HK/pagination.php create mode 100644 lang/zh_HK/ui.php create mode 100644 lang/zh_HK/validation.php create mode 100644 lang/zh_TW/auth.php create mode 100644 lang/zh_TW/pagination.php create mode 100644 lang/zh_TW/ui.php create mode 100644 lang/zh_TW/validation.php create mode 100644 pint.json create mode 100644 src/Providers/ZhServiceProvider.php diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9d4b362 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +.DS_Store +phpunit.phar +/vendor +composer.phar +composer.lock +*.project +.idea/ \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..87b7239 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,20 @@ +## [1.0.2](https://tea.geekstek.com.cn:8888/moonshine/zh/compare/v1.0.1...v1.0.2) (2024-12-17) + + +### Bug Fixes + +* remove conflict ([7d6f296](https://tea.geekstek.com.cn:8888/moonshine/zh/commit/7d6f296c8b0cb252392f6f7d146cf9f87bc1482b)) + +## [1.0.1](https://tea.geekstek.com.cn:8888/moonshine/zh/compare/v1.0.0...v1.0.1) (2024-12-17) + + +### Bug Fixes + +* Code Style ([00cd995](https://tea.geekstek.com.cn:8888/moonshine/zh/commit/00cd99563d550f76918c535a2a5833dbe42b8364)) + +# 1.0.0 (2024-12-17) + + +### Bug Fixes + +* 項目起始 ([6e9f3fa](https://tea.geekstek.com.cn:8888/moonshine/zh/commit/6e9f3fa1fa9197edcad7d37513a94f3df3a24f0d)) diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..2c6ecf9 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Danil Shutsky + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..43f07a6 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# zh diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..16482e2 --- /dev/null +++ b/composer.json @@ -0,0 +1,51 @@ +{ + "name": "moonshine/zh", + "description": "Chinese localization for MoonShine", + "keywords": [ + "laravel", + "zh", + "localization", + "admin", + "dashboard", + "moonshine" + ], + "type": "library", + "homepage": "https://moonshine-laravel.com", + "license": "MIT", + "support": { + "issues": "https://github.com/moonshine-software/ru/issues", + "source": "https://github.com/moonshine-software/ru" + }, + "authors": [ + { + "name": "Geekstek", + "email": "info@geekstek.com", + "homepage": "https://www.geekstek.com" + } + ], + "require": { + "php": "^8.2|^8.3" + }, + "require-dev": { + "laravel/pint": "^1.18" + }, + "autoload": { + "psr-4": { + "MoonShine\\Zh\\": "src/" + } + }, + "autoload-dev": { + "psr-4": {} + }, + "scripts": {}, + "extra": { + "laravel": { + "providers": [ + "MoonShine\\Zh\\Providers\\ZhServiceProvider" + ] + } + }, + "config": { + "allow-plugins": {} + } +} \ No newline at end of file diff --git a/lang/zh_CN/auth.php b/lang/zh_CN/auth.php new file mode 100644 index 0000000..94373f7 --- /dev/null +++ b/lang/zh_CN/auth.php @@ -0,0 +1,18 @@ + '账号或密码错误,请重新输入。', + 'password' => '输入的密码不正确。', + 'throttle' => '尝试登录次数过多,请在 :seconds 秒后重试。', +]; diff --git a/lang/zh_CN/pagination.php b/lang/zh_CN/pagination.php new file mode 100644 index 0000000..99e45bf --- /dev/null +++ b/lang/zh_CN/pagination.php @@ -0,0 +1,22 @@ + '显示', + 'of' => '共', + 'to' => '到', + 'results' => '条结果', + 'previous' => '« 上一页', + 'next' => '下一页 »', + +]; diff --git a/lang/zh_CN/ui.php b/lang/zh_CN/ui.php new file mode 100644 index 0000000..5cc7df1 --- /dev/null +++ b/lang/zh_CN/ui.php @@ -0,0 +1,90 @@ + '个人资料', + 'dashboard' => '仪表盘', + 'add' => '新增', + 'create' => '创建', + 'edit' => '编辑', + 'show' => '显示', + 'save' => '保存', + 'saved' => '已保存', + 'saved_error' => '保存出错', + 'filters' => '筛选', + 'search' => '搜索', + 'reset' => '重置', + 'total' => '总计', + 'deleted' => '已删除', + 'delete' => '删除', + 'deleting' => '正在删除', + 'download' => '下载', + 'export' => '导出', + 'import' => '导入', + 'cancel' => '取消', + 'confirm' => '确认', + 'close' => '关闭', + 'confirm_message' => '确定要执行此操作吗?', + 'back' => '返回', + 'more' => '更多', + 'all_sections' => '所有部分', + 'file' => '文件', + 'loading' => '加载中...', + 'notfound' => '未找到记录', + 'collapse_menu' => '折叠菜单', + '404' => '页面未找到,出了点问题', + 'copied' => '已复制!', + 'notifications' => [ + 'title' => '通知', + 'mark_as_read_all' => '全部标记为已读', + 'mark_as_read' => '标记为已读', + ], + 'login' => [ + 'title' => '欢迎来到 :moonshine_title!', + 'description' => '请登录您的账户', + 'authorization' => '授权', + 'remember_me' => '记住我', + 'login' => '登录', + 'logout' => '退出登录', + 'username' => '用户名', + 'email' => '电子邮件', + 'password' => '密码', + ], + 'resource' => [ + 'system' => '系统', + 'role' => '角色', + 'name' => '姓名', + 'email' => '电子邮件', + 'password' => '密码', + 'repeat_password' => '重复密码', + 'avatar' => '头像', + 'created_at' => '创建时间', + 'admins_title' => '管理员', + 'role_title' => '角色', + 'role_name' => '名称', + + 'main_information' => '主要信息', + 'change_password' => '修改密码', + + 'queued' => '已加入队列', + + 'export' => [ + 'exported' => '文件已导出', + ], + + 'import' => [ + 'imported' => '导入成功', + 'file_required' => '文件为必填项', + 'extension_not_supported' => '不支持的文件扩展名', + ], + ], + 'choices' => [ + 'no_results' => '未找到结果', + 'no_choices' => '没有可供选择的选项', + 'item_select' => '按下以选择', + 'unique_item' => '只能添加唯一值', + 'custom_add_item' => '只能添加符合特定条件的值', + 'add_item' => '按回车键添加 ":value"', + 'max_item' => '最多可添加 :count 个值', + 'remove_item' => '移除项目', + ], +]; diff --git a/lang/zh_CN/validation.php b/lang/zh_CN/validation.php new file mode 100644 index 0000000..19e8c62 --- /dev/null +++ b/lang/zh_CN/validation.php @@ -0,0 +1,157 @@ + ':attribute 必须被接受。', + 'accepted_if' => '当 :other 为 :value 时,:attribute 必须被接受。', + 'active_url' => ':attribute 不是一个有效的 URL。', + 'after' => ':attribute 必须是 :date 之后的日期。', + 'after_or_equal' => ':attribute 必须是 :date 当天或之后的日期。', + 'alpha' => ':attribute 只能包含字母。', + 'alpha_dash' => ':attribute 只能包含字母、数字、破折号和下划线。', + 'alpha_num' => ':attribute 只能包含字母和数字。', + 'array' => ':attribute 必须是一个数组。', + 'before' => ':attribute 必须是 :date 之前的日期。', + 'before_or_equal' => ':attribute 必须是 :date 当天或之前的日期。', + 'between' => [ + 'array' => ':attribute 必须包含 :min 到 :max 个项目。', + 'file' => ':attribute 必须在 :min 到 :max KB之间。', + 'numeric' => ':attribute 必须介于 :min 到 :max 之间。', + 'string' => ':attribute 必须在 :min 到 :max 个字符之间。', + ], + 'boolean' => ':attribute 字段必须为 true 或 false。', + 'confirmed' => ':attribute 确认不匹配。', + 'current_password' => '密码不正确。', + 'date' => ':attribute 不是一个有效的日期。', + 'date_equals' => ':attribute 必须是等于 :date 的日期。', + 'date_format' => ':attribute 与格式 :format 不匹配。', + 'declined' => ':attribute 必须被拒绝。', + 'declined_if' => '当 :other 为 :value 时,:attribute 必须被拒绝。', + 'different' => ':attribute 和 :other 必须不同。', + 'digits' => ':attribute 必须是 :digits 位数字。', + 'digits_between' => ':attribute 必须在 :min 到 :max 位数字之间。', + 'dimensions' => ':attribute 的图片尺寸无效。', + 'distinct' => ':attribute 字段具有重复值。', + 'email' => ':attribute 必须是有效的电子邮件地址。', + 'ends_with' => ':attribute 必须以以下之一结尾: :values。', + 'enum' => '所选的 :attribute 无效。', + 'exists' => '所选的 :attribute 无效。', + 'file' => ':attribute 必须是文件。', + 'filled' => ':attribute 字段必须有值。', + 'gt' => [ + 'array' => ':attribute 必须包含多于 :value 个项目。', + 'file' => ':attribute 必须大于 :value KB。', + 'numeric' => ':attribute 必须大于 :value。', + 'string' => ':attribute 必须多于 :value 个字符。', + ], + 'gte' => [ + 'array' => ':attribute 必须包含 :value 个或更多项目。', + 'file' => ':attribute 必须大于或等于 :value KB。', + 'numeric' => ':attribute 必须大于或等于 :value。', + 'string' => ':attribute 必须大于或等于 :value 个字符。', + ], + 'image' => ':attribute 必须是图片。', + 'in' => '所选的 :attribute 无效。', + 'in_array' => ':attribute 字段不存在于 :other 中。', + 'integer' => ':attribute 必须是整数。', + 'ip' => ':attribute 必须是有效的 IP 地址。', + 'ipv4' => ':attribute 必须是有效的 IPv4 地址。', + 'ipv6' => ':attribute 必须是有效的 IPv6 地址。', + 'json' => ':attribute 必须是有效的 JSON 字符串。', + 'lt' => [ + 'array' => ':attribute 必须少于 :value 个项目。', + 'file' => ':attribute 必须小于 :value KB。', + 'numeric' => ':attribute 必须小于 :value。', + 'string' => ':attribute 必须少于 :value 个字符。', + ], + 'lte' => [ + 'array' => ':attribute 不能超过 :value 个项目。', + 'file' => ':attribute 必须小于或等于 :value KB。', + 'numeric' => ':attribute 必须小于或等于 :value。', + 'string' => ':attribute 必须小于或等于 :value 个字符。', + ], + 'mac_address' => ':attribute 必须是有效的 MAC 地址。', + 'max' => [ + 'array' => ':attribute 不能超过 :max 个项目。', + 'file' => ':attribute 不能大于 :max KB。', + 'numeric' => ':attribute 不能大于 :max。', + 'string' => ':attribute 不能超过 :max 个字符。', + ], + 'mimes' => ':attribute 必须是以下类型的文件: :values。', + 'mimetypes' => ':attribute 必须是以下类型的文件: :values。', + 'min' => [ + 'array' => ':attribute 必须至少有 :min 个项目。', + 'file' => ':attribute 必须至少 :min KB。', + 'numeric' => ':attribute 必须至少为 :min。', + 'string' => ':attribute 必须至少 :min 个字符。', + ], + 'multiple_of' => ':attribute 必须是 :value 的倍数。', + 'not_in' => '所选的 :attribute 无效。', + 'not_regex' => ':attribute 格式无效。', + 'numeric' => ':attribute 必须是数字。', + 'present' => ':attribute 字段必须存在。', + 'prohibited' => ':attribute 字段被禁止。', + 'prohibited_if' => '当 :other 为 :value 时,:attribute 字段被禁止。', + 'prohibited_unless' => '除非 :other 位于 :values 中,否则 :attribute 字段被禁止。', + 'prohibits' => ':attribute 字段禁止 :other 出现。', + 'regex' => ':attribute 格式无效。', + 'required' => ':attribute 字段是必填的。', + 'required_array_keys' => ':attribute 字段必须包含以下条目: :values。', + 'required_if' => '当 :other 为 :value 时,:attribute 字段是必填的。', + 'required_unless' => '除非 :other 位于 :values 中,否则 :attribute 字段是必填的。', + 'required_with' => '当 :values 存在时,:attribute 字段是必填的。', + 'required_with_all' => '当 :values 都存在时,:attribute 字段是必填的。', + 'required_without' => '当 :values 不存在时,:attribute 字段是必填的。', + 'required_without_all' => '当 :values 都不存在时,:attribute 字段是必填的。', + 'same' => ':attribute 和 :other 必须匹配。', + 'size' => [ + 'array' => ':attribute 必须包含 :size 个项目。', + 'file' => ':attribute 必须是 :size KB。', + 'numeric' => ':attribute 必须是 :size。', + 'string' => ':attribute 必须是 :size 个字符。', + ], + 'starts_with' => ':attribute 必须以以下之一开头: :values。', + 'string' => ':attribute 必须是字符串。', + 'timezone' => ':attribute 必须是有效的时区。', + 'unique' => ':attribute 已被占用。', + 'uploaded' => ':attribute 上传失败。', + 'url' => ':attribute 必须是有效的 URL。', + 'uuid' => ':attribute 必须是有效的 UUID。', + + /* + |-------------------------------------------------------------------------- + | 自定义验证语言行 + |-------------------------------------------------------------------------- + | + | 在这里,您可以为属性的特定规则指定自定义验证消息。 + | + */ + + 'custom' => [ + 'attribute-name' => [ + 'rule-name' => '自定义消息', + ], + ], + + /* + |-------------------------------------------------------------------------- + | 自定义验证属性 + |-------------------------------------------------------------------------- + | + | 以下语言行用于将属性占位符替换为更友好的词语,如 "电子邮件地址" 而不是 "email"。 + | + */ + + 'attributes' => [], + +]; diff --git a/lang/zh_HK/auth.php b/lang/zh_HK/auth.php new file mode 100644 index 0000000..3462352 --- /dev/null +++ b/lang/zh_HK/auth.php @@ -0,0 +1,18 @@ + '所提供的憑證與我們的記錄不符。', + 'password' => '提供的密碼不正確。', + 'throttle' => '嘗試登入次數過多,請在 :seconds 秒後重試。', +]; diff --git a/lang/zh_HK/pagination.php b/lang/zh_HK/pagination.php new file mode 100644 index 0000000..1bd2c79 --- /dev/null +++ b/lang/zh_HK/pagination.php @@ -0,0 +1,22 @@ + '顯示第', + 'of' => '頁,共', + 'to' => '至', + 'results' => '項結果', + 'previous' => '« 上一頁', + 'next' => '下一頁 »', + +]; diff --git a/lang/zh_HK/ui.php b/lang/zh_HK/ui.php new file mode 100644 index 0000000..4f68c30 --- /dev/null +++ b/lang/zh_HK/ui.php @@ -0,0 +1,90 @@ + '個人資料', + 'dashboard' => '儀表板', + 'add' => '新增', + 'create' => '建立', + 'edit' => '編輯', + 'show' => '顯示', + 'save' => '儲存', + 'saved' => '已儲存', + 'saved_error' => '發生錯誤', + 'filters' => '篩選', + 'search' => '搜尋', + 'reset' => '重設', + 'total' => '總計', + 'deleted' => '已刪除', + 'delete' => '刪除', + 'deleting' => '正在刪除', + 'download' => '下載', + 'export' => '匯出', + 'import' => '匯入', + 'cancel' => '取消', + 'confirm' => '確認', + 'close' => '關閉', + 'confirm_message' => '確定要執行此操作嗎?', + 'back' => '返回', + 'more' => '更多', + 'all_sections' => '所有部分', + 'file' => '檔案', + 'loading' => '載入中...', + 'notfound' => '找不到記錄', + 'collapse_menu' => '收合選單', + '404' => '找不到頁面,出了點問題', + 'copied' => '已複製!', + 'notifications' => [ + 'title' => '通知', + 'mark_as_read_all' => '全部標記為已讀', + 'mark_as_read' => '標記為已讀', + ], + 'login' => [ + 'title' => '歡迎來到 :moonshine_title!', + 'description' => '請登入您的帳戶', + 'authorization' => '授權', + 'remember_me' => '記住我', + 'login' => '登入', + 'logout' => '登出', + 'username' => '用戶名', + 'email' => '電子郵件', + 'password' => '密碼', + ], + 'resource' => [ + 'system' => '系統', + 'role' => '角色', + 'name' => '名稱', + 'email' => '電子郵件', + 'password' => '密碼', + 'repeat_password' => '重複密碼', + 'avatar' => '頭像', + 'created_at' => '創建時間', + 'admins_title' => '管理員', + 'role_title' => '角色', + 'role_name' => '名稱', + + 'main_information' => '主要資訊', + 'change_password' => '更改密碼', + + 'queued' => '已加入佇列', + + 'export' => [ + 'exported' => '檔案已匯出', + ], + + 'import' => [ + 'imported' => '已成功匯入', + 'file_required' => '必須提供檔案', + 'extension_not_supported' => '不支援的檔案格式', + ], + ], + 'choices' => [ + 'no_results' => '找不到結果', + 'no_choices' => '沒有可選擇的項目', + 'item_select' => '按下以選擇', + 'unique_item' => '只能添加唯一值', + 'custom_add_item' => '只能添加符合特定條件的值', + 'add_item' => '按 Enter 鍵以添加 ":value"', + 'max_item' => '最多只能添加 :count 個值', + 'remove_item' => '移除項目', + ], +]; diff --git a/lang/zh_HK/validation.php b/lang/zh_HK/validation.php new file mode 100644 index 0000000..32493a8 --- /dev/null +++ b/lang/zh_HK/validation.php @@ -0,0 +1,151 @@ + ':attribute 必須被接受。', + 'accepted_if' => '當 :other 是 :value 時,:attribute 必須被接受。', + 'active_url' => ':attribute 不是有效的 URL。', + 'after' => ':attribute 必須是 :date 之後的日期。', + 'after_or_equal' => ':attribute 必須是 :date 當天或之後的日期。', + 'alpha' => ':attribute 只能包含字母。', + 'alpha_dash' => ':attribute 只能包含字母、數字、連字符和底線。', + 'alpha_num' => ':attribute 只能包含字母和數字。', + 'array' => ':attribute 必須是一個陣列。', + 'before' => ':attribute 必須是 :date 之前的日期。', + 'before_or_equal' => ':attribute 必須是 :date 當天或之前的日期。', + 'between' => [ + 'array' => ':attribute 必須包含 :min 到 :max 個項目。', + 'file' => ':attribute 必須介於 :min 到 :max KB 之間。', + 'numeric' => ':attribute 必須介於 :min 到 :max 之間。', + 'string' => ':attribute 必須介於 :min 到 :max 個字符之間。', + ], + 'boolean' => ':attribute 欄位必須為 true 或 false。', + 'confirmed' => ':attribute 確認不一致。', + 'current_password' => '密碼不正確。', + 'date' => ':attribute 不是有效的日期。', + 'date_equals' => ':attribute 必須是等於 :date 的日期。', + 'date_format' => ':attribute 不符合格式 :format。', + 'declined' => ':attribute 必須被拒絕。', + 'declined_if' => '當 :other 是 :value 時,:attribute 必須被拒絕。', + 'different' => ':attribute 和 :other 必須不同。', + 'digits' => ':attribute 必須是 :digits 位數字。', + 'digits_between' => ':attribute 必須介於 :min 和 :max 位數字之間。', + 'dimensions' => ':attribute 的圖片尺寸無效。', + 'distinct' => ':attribute 欄位具有重複值。', + 'email' => ':attribute 必須是有效的電子郵件地址。', + 'ends_with' => ':attribute 必須以以下之一結尾: :values。', + 'enum' => '所選的 :attribute 無效。', + 'exists' => '所選的 :attribute 無效。', + 'file' => ':attribute 必須是一個檔案。', + 'filled' => ':attribute 欄位必須有值。', + 'gt' => [ + 'array' => ':attribute 必須包含多於 :value 個項目。', + 'file' => ':attribute 必須大於 :value KB。', + 'numeric' => ':attribute 必須大於 :value。', + 'string' => ':attribute 必須多於 :value 個字符。', + ], + 'gte' => [ + 'array' => ':attribute 必須包含 :value 個或更多項目。', + 'file' => ':attribute 必須大於或等於 :value KB。', + 'numeric' => ':attribute 必須大於或等於 :value。', + 'string' => ':attribute 必須大於或等於 :value 個字符。', + ], + 'image' => ':attribute 必須是圖片。', + 'in' => '所選的 :attribute 無效。', + 'in_array' => ':attribute 欄位不存在於 :other 中。', + 'integer' => ':attribute 必須是整數。', + 'ip' => ':attribute 必須是有效的 IP 位址。', + 'ipv4' => ':attribute 必須是有效的 IPv4 位址。', + 'ipv6' => ':attribute 必須是有效的 IPv6 位址。', + 'json' => ':attribute 必須是有效的 JSON 字串。', + 'lt' => [ + 'array' => ':attribute 必須少於 :value 個項目。', + 'file' => ':attribute 必須小於 :value KB。', + 'numeric' => ':attribute 必須小於 :value。', + 'string' => ':attribute 必須少於 :value 個字符。', + ], + 'lte' => [ + 'array' => ':attribute 不能超過 :value 個項目。', + 'file' => ':attribute 必須小於或等於 :value KB。', + 'numeric' => ':attribute 必須小於或等於 :value。', + 'string' => ':attribute 必須小於或等於 :value 個字符。', + ], + 'mac_address' => ':attribute 必須是有效的 MAC 位址。', + 'max' => [ + 'array' => ':attribute 不能超過 :max 個項目。', + 'file' => ':attribute 不能大於 :max KB。', + 'numeric' => ':attribute 不能大於 :max。', + 'string' => ':attribute 不能超過 :max 個字符。', + ], + 'mimes' => ':attribute 必須是以下類型的檔案: :values。', + 'mimetypes' => ':attribute 必須是以下類型的檔案: :values。', + 'min' => [ + 'array' => ':attribute 必須至少有 :min 個項目。', + 'file' => ':attribute 必須至少 :min KB。', + 'numeric' => ':attribute 必須至少為 :min。', + 'string' => ':attribute 必須至少 :min 個字符。', + ], + 'multiple_of' => ':attribute 必須是 :value 的倍數。', + 'not_in' => '所選的 :attribute 無效。', + 'not_regex' => ':attribute 格式無效。', + 'numeric' => ':attribute 必須是數字。', + 'present' => ':attribute 欄位必須存在。', + 'prohibited' => ':attribute 欄位被禁止。', + 'prohibited_if' => '當 :other 是 :value 時,:attribute 欄位被禁止。', + 'prohibited_unless' => '除非 :other 位於 :values 中,否則 :attribute 欄位被禁止。', + 'prohibits' => ':attribute 欄位禁止 :other 出現。', + 'regex' => ':attribute 格式無效。', + 'required' => ':attribute 欄位是必填的。', + 'required_array_keys' => ':attribute 欄位必須包含以下條目: :values。', + 'required_if' => '當 :other 是 :value 時,:attribute 欄位是必填的。', + 'required_unless' => '除非 :other 位於 :values 中,否則 :attribute 欄位是必填的。', + 'required_with' => '當 :values 存在時,:attribute 欄位是必填的。', + 'required_with_all' => '當 :values 都存在時,:attribute 欄位是必填的。', + 'required_without' => '當 :values 不存在時,:attribute 欄位是必填的。', + 'required_without_all' => '當 :values 都不存在時,:attribute 欄位是必填的。', + 'same' => ':attribute 和 :other 必須一致。', + 'size' => [ + 'array' => ':attribute 必須包含 :size 個項目。', + 'file' => ':attribute 必須是 :size KB。', + 'numeric' => ':attribute 必須是 :size。', + 'string' => ':attribute 必須是 :size 個字符。', + ], + 'starts_with' => ':attribute 必須以以下之一開頭: :values。', + 'string' => ':attribute 必須是字串。', + 'timezone' => ':attribute 必須是有效的時區。', + 'unique' => ':attribute 已經存在。', + 'uploaded' => ':attribute 上傳失敗。', + 'url' => ':attribute 必須是有效的 URL。', + 'uuid' => ':attribute 必須是有效的 UUID。', + + /* + |-------------------------------------------------------------------------- + | 自訂驗證語言行 + |-------------------------------------------------------------------------- + */ + + 'custom' => [ + 'attribute-name' => [ + 'rule-name' => '自訂訊息', + ], + ], + + /* + |-------------------------------------------------------------------------- + | 自訂驗證屬性 + |-------------------------------------------------------------------------- + */ + + 'attributes' => [], + +]; diff --git a/lang/zh_TW/auth.php b/lang/zh_TW/auth.php new file mode 100644 index 0000000..b4aeb01 --- /dev/null +++ b/lang/zh_TW/auth.php @@ -0,0 +1,18 @@ + '提供的帳號或密碼不正確。', + 'password' => '所提供的密碼不正確。', + 'throttle' => '登入嘗試次數過多,請在 :seconds 秒後再試。', +]; diff --git a/lang/zh_TW/pagination.php b/lang/zh_TW/pagination.php new file mode 100644 index 0000000..36c0e37 --- /dev/null +++ b/lang/zh_TW/pagination.php @@ -0,0 +1,22 @@ + '顯示', + 'of' => ',共', + 'to' => '到', + 'results' => '筆結果', + 'previous' => '« 上一頁', + 'next' => '下一頁 »', + +]; diff --git a/lang/zh_TW/ui.php b/lang/zh_TW/ui.php new file mode 100644 index 0000000..6873f64 --- /dev/null +++ b/lang/zh_TW/ui.php @@ -0,0 +1,90 @@ + '個人資料', + 'dashboard' => '儀表板', + 'add' => '新增', + 'create' => '建立', + 'edit' => '編輯', + 'show' => '顯示', + 'save' => '儲存', + 'saved' => '已儲存', + 'saved_error' => '發生錯誤', + 'filters' => '篩選條件', + 'search' => '搜尋', + 'reset' => '重設', + 'total' => '總計', + 'deleted' => '已刪除', + 'delete' => '刪除', + 'deleting' => '刪除中', + 'download' => '下載', + 'export' => '匯出', + 'import' => '匯入', + 'cancel' => '取消', + 'confirm' => '確認', + 'close' => '關閉', + 'confirm_message' => '您確定要執行此操作嗎?', + 'back' => '返回', + 'more' => '更多', + 'all_sections' => '所有部分', + 'file' => '檔案', + 'loading' => '載入中...', + 'notfound' => '找不到記錄', + 'collapse_menu' => '收合選單', + '404' => '找不到頁面,發生問題', + 'copied' => '已複製!', + 'notifications' => [ + 'title' => '通知', + 'mark_as_read_all' => '全部標記為已讀', + 'mark_as_read' => '標記為已讀', + ], + 'login' => [ + 'title' => '歡迎來到 :moonshine_title!', + 'description' => '請登入您的帳戶', + 'authorization' => '授權', + 'remember_me' => '記住我', + 'login' => '登入', + 'logout' => '登出', + 'username' => '使用者名稱', + 'email' => '電子郵件', + 'password' => '密碼', + ], + 'resource' => [ + 'system' => '系統', + 'role' => '角色', + 'name' => '名稱', + 'email' => '電子郵件', + 'password' => '密碼', + 'repeat_password' => '重複密碼', + 'avatar' => '頭像', + 'created_at' => '建立時間', + 'admins_title' => '管理員', + 'role_title' => '角色', + 'role_name' => '名稱', + + 'main_information' => '主要資訊', + 'change_password' => '變更密碼', + + 'queued' => '已排程', + + 'export' => [ + 'exported' => '檔案已匯出', + ], + + 'import' => [ + 'imported' => '已成功匯入', + 'file_required' => '必須提供檔案', + 'extension_not_supported' => '不支援的檔案格式', + ], + ], + 'choices' => [ + 'no_results' => '找不到結果', + 'no_choices' => '沒有可選擇的項目', + 'item_select' => '按下以選取', + 'unique_item' => '只能新增唯一值', + 'custom_add_item' => '只能新增符合特定條件的值', + 'add_item' => '按 Enter 鍵以新增「:value」', + 'max_item' => '最多只能新增 :count 個值', + 'remove_item' => '移除項目', + ], +]; diff --git a/lang/zh_TW/validation.php b/lang/zh_TW/validation.php new file mode 100644 index 0000000..ce56ba9 --- /dev/null +++ b/lang/zh_TW/validation.php @@ -0,0 +1,151 @@ + ':attribute 必須被接受。', + 'accepted_if' => '當 :other 是 :value 時,:attribute 必須被接受。', + 'active_url' => ':attribute 不是有效的網址。', + 'after' => ':attribute 必須是 :date 之後的日期。', + 'after_or_equal' => ':attribute 必須是 :date 當天或之後的日期。', + 'alpha' => ':attribute 只能包含字母。', + 'alpha_dash' => ':attribute 只能包含字母、數字、連字符和底線。', + 'alpha_num' => ':attribute 只能包含字母和數字。', + 'array' => ':attribute 必須是陣列。', + 'before' => ':attribute 必須是 :date 之前的日期。', + 'before_or_equal' => ':attribute 必須是 :date 當天或之前的日期。', + 'between' => [ + 'array' => ':attribute 必須包含 :min 到 :max 個項目。', + 'file' => ':attribute 必須在 :min 到 :max KB 之間。', + 'numeric' => ':attribute 必須介於 :min 和 :max 之間。', + 'string' => ':attribute 必須在 :min 到 :max 個字元之間。', + ], + 'boolean' => ':attribute 欄位必須為 true 或 false。', + 'confirmed' => ':attribute 確認不一致。', + 'current_password' => '密碼不正確。', + 'date' => ':attribute 不是有效的日期。', + 'date_equals' => ':attribute 必須是等於 :date 的日期。', + 'date_format' => ':attribute 不符合格式 :format。', + 'declined' => ':attribute 必須被拒絕。', + 'declined_if' => '當 :other 是 :value 時,:attribute 必須被拒絕。', + 'different' => ':attribute 和 :other 必須不同。', + 'digits' => ':attribute 必須是 :digits 位數字。', + 'digits_between' => ':attribute 必須在 :min 到 :max 位數字之間。', + 'dimensions' => ':attribute 圖片尺寸無效。', + 'distinct' => ':attribute 欄位有重複值。', + 'email' => ':attribute 必須是有效的電子郵件地址。', + 'ends_with' => ':attribute 必須以以下之一結尾: :values。', + 'enum' => '所選的 :attribute 無效。', + 'exists' => '所選的 :attribute 無效。', + 'file' => ':attribute 必須是檔案。', + 'filled' => ':attribute 欄位必須有值。', + 'gt' => [ + 'array' => ':attribute 必須包含多於 :value 個項目。', + 'file' => ':attribute 必須大於 :value KB。', + 'numeric' => ':attribute 必須大於 :value。', + 'string' => ':attribute 必須多於 :value 個字元。', + ], + 'gte' => [ + 'array' => ':attribute 必須包含 :value 個或更多項目。', + 'file' => ':attribute 必須大於或等於 :value KB。', + 'numeric' => ':attribute 必須大於或等於 :value。', + 'string' => ':attribute 必須大於或等於 :value 個字元。', + ], + 'image' => ':attribute 必須是圖片。', + 'in' => '所選的 :attribute 無效。', + 'in_array' => ':attribute 欄位不存在於 :other 中。', + 'integer' => ':attribute 必須是整數。', + 'ip' => ':attribute 必須是有效的 IP 地址。', + 'ipv4' => ':attribute 必須是有效的 IPv4 地址。', + 'ipv6' => ':attribute 必須是有效的 IPv6 地址。', + 'json' => ':attribute 必須是有效的 JSON 字串。', + 'lt' => [ + 'array' => ':attribute 必須少於 :value 個項目。', + 'file' => ':attribute 必須小於 :value KB。', + 'numeric' => ':attribute 必須小於 :value。', + 'string' => ':attribute 必須少於 :value 個字元。', + ], + 'lte' => [ + 'array' => ':attribute 不能超過 :value 個項目。', + 'file' => ':attribute 必須小於或等於 :value KB。', + 'numeric' => ':attribute 必須小於或等於 :value。', + 'string' => ':attribute 必須小於或等於 :value 個字元。', + ], + 'mac_address' => ':attribute 必須是有效的 MAC 位址。', + 'max' => [ + 'array' => ':attribute 不能超過 :max 個項目。', + 'file' => ':attribute 不能大於 :max KB。', + 'numeric' => ':attribute 不能大於 :max。', + 'string' => ':attribute 不能超過 :max 個字元。', + ], + 'mimes' => ':attribute 必須是類型為 :values 的檔案。', + 'mimetypes' => ':attribute 必須是類型為 :values 的檔案。', + 'min' => [ + 'array' => ':attribute 必須至少有 :min 個項目。', + 'file' => ':attribute 必須至少 :min KB。', + 'numeric' => ':attribute 必須至少為 :min。', + 'string' => ':attribute 必須至少 :min 個字元。', + ], + 'multiple_of' => ':attribute 必須是 :value 的倍數。', + 'not_in' => '所選的 :attribute 無效。', + 'not_regex' => ':attribute 格式無效。', + 'numeric' => ':attribute 必須是數字。', + 'present' => ':attribute 欄位必須存在。', + 'prohibited' => ':attribute 欄位被禁止。', + 'prohibited_if' => '當 :other 是 :value 時,:attribute 欄位被禁止。', + 'prohibited_unless' => '除非 :other 位於 :values 中,否則 :attribute 欄位被禁止。', + 'prohibits' => ':attribute 欄位禁止 :other 出現。', + 'regex' => ':attribute 格式無效。', + 'required' => ':attribute 欄位是必填的。', + 'required_array_keys' => ':attribute 欄位必須包含以下條目: :values。', + 'required_if' => '當 :other 是 :value 時,:attribute 欄位是必填的。', + 'required_unless' => '除非 :other 位於 :values 中,否則 :attribute 欄位是必填的。', + 'required_with' => '當 :values 存在時,:attribute 欄位是必填的。', + 'required_with_all' => '當 :values 都存在時,:attribute 欄位是必填的。', + 'required_without' => '當 :values 不存在時,:attribute 欄位是必填的。', + 'required_without_all' => '當 :values 都不存在時,:attribute 欄位是必填的。', + 'same' => ':attribute 和 :other 必須相符。', + 'size' => [ + 'array' => ':attribute 必須包含 :size 個項目。', + 'file' => ':attribute 必須是 :size KB。', + 'numeric' => ':attribute 必須是 :size。', + 'string' => ':attribute 必須是 :size 個字元。', + ], + 'starts_with' => ':attribute 必須以以下之一開頭: :values。', + 'string' => ':attribute 必須是字串。', + 'timezone' => ':attribute 必須是有效的時區。', + 'unique' => ':attribute 已經被使用。', + 'uploaded' => ':attribute 上傳失敗。', + 'url' => ':attribute 必須是有效的網址。', + 'uuid' => ':attribute 必須是有效的 UUID。', + + /* + |-------------------------------------------------------------------------- + | 自訂驗證語言行 + |-------------------------------------------------------------------------- + */ + + 'custom' => [ + 'attribute-name' => [ + 'rule-name' => '自訂訊息', + ], + ], + + /* + |-------------------------------------------------------------------------- + | 自訂驗證屬性 + |-------------------------------------------------------------------------- + */ + + 'attributes' => [], + +]; diff --git a/pint.json b/pint.json new file mode 100644 index 0000000..2bfb14b --- /dev/null +++ b/pint.json @@ -0,0 +1,17 @@ +{ + "preset": "laravel", + "rules": { + "concat_space": { + "spacing": "one" + }, + "no_superfluous_phpdoc_tags": { + "allow_hidden_params": false, + "allow_mixed": false, + "allow_unused_params": true, + "remove_inheritdoc": false + }, + "types_spaces": { + "space": "single" + } + } +} \ No newline at end of file diff --git a/src/Providers/ZhServiceProvider.php b/src/Providers/ZhServiceProvider.php new file mode 100644 index 0000000..260f2fd --- /dev/null +++ b/src/Providers/ZhServiceProvider.php @@ -0,0 +1,19 @@ +loadTranslationsFrom(__DIR__ . '/../../lang', 'moonshine'); + + $this->publishes([ + __DIR__ . '/../../lang' => $this->app->langPath('vendor/moonshine'), + ]); + } +}