first commit

This commit is contained in:
ericli1018
2025-06-13 12:29:06 +08:00
commit e781c1e0d7
200 changed files with 31334 additions and 0 deletions

20
lang/en/auth.php Normal file
View File

@ -0,0 +1,20 @@
<?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.',
'password' => 'The provided password is incorrect.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
];

19
lang/en/pagination.php Normal file
View File

@ -0,0 +1,19 @@
<?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;',
];

22
lang/en/passwords.php Normal file
View File

@ -0,0 +1,22 @@
<?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.",
];

191
lang/en/validation.php Normal file
View File

@ -0,0 +1,191 @@
<?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 field must be accepted.',
'accepted_if' => 'The :attribute field must be accepted when :other is :value.',
'active_url' => 'The :attribute field must be a valid URL.',
'after' => 'The :attribute field must be a date after :date.',
'after_or_equal' => 'The :attribute field must be a date after or equal to :date.',
'alpha' => 'The :attribute field must only contain letters.',
'alpha_dash' => 'The :attribute field must only contain letters, numbers, dashes, and underscores.',
'alpha_num' => 'The :attribute field must only contain letters and numbers.',
'array' => 'The :attribute field must be an array.',
'ascii' => 'The :attribute field must only contain single-byte alphanumeric characters and symbols.',
'before' => 'The :attribute field must be a date before :date.',
'before_or_equal' => 'The :attribute field must be a date before or equal to :date.',
'between' => [
'array' => 'The :attribute field must have between :min and :max items.',
'file' => 'The :attribute field must be between :min and :max kilobytes.',
'numeric' => 'The :attribute field must be between :min and :max.',
'string' => 'The :attribute field must be between :min and :max characters.',
],
'boolean' => 'The :attribute field must be true or false.',
'can' => 'The :attribute field contains an unauthorized value.',
'confirmed' => 'The :attribute field confirmation does not match.',
'current_password' => 'The password is incorrect.',
'date' => 'The :attribute field must be a valid date.',
'date_equals' => 'The :attribute field must be a date equal to :date.',
'date_format' => 'The :attribute field must match the format :format.',
'decimal' => 'The :attribute field must have :decimal decimal places.',
'declined' => 'The :attribute field must be declined.',
'declined_if' => 'The :attribute field must be declined when :other is :value.',
'different' => 'The :attribute field and :other must be different.',
'digits' => 'The :attribute field must be :digits digits.',
'digits_between' => 'The :attribute field must be between :min and :max digits.',
'dimensions' => 'The :attribute field has invalid image dimensions.',
'distinct' => 'The :attribute field has a duplicate value.',
'doesnt_end_with' => 'The :attribute field must not end with one of the following: :values.',
'doesnt_start_with' => 'The :attribute field must not start with one of the following: :values.',
'email' => 'The :attribute field must be a valid email address.',
'ends_with' => 'The :attribute field must end with one of the following: :values.',
'enum' => 'The selected :attribute is invalid.',
'exists' => 'The selected :attribute is invalid.',
'extensions' => 'The :attribute field must have one of the following extensions: :values.',
'file' => 'The :attribute field must be a file.',
'filled' => 'The :attribute field must have a value.',
'gt' => [
'array' => 'The :attribute field must have more than :value items.',
'file' => 'The :attribute field must be greater than :value kilobytes.',
'numeric' => 'The :attribute field must be greater than :value.',
'string' => 'The :attribute field must be greater than :value characters.',
],
'gte' => [
'array' => 'The :attribute field must have :value items or more.',
'file' => 'The :attribute field must be greater than or equal to :value kilobytes.',
'numeric' => 'The :attribute field must be greater than or equal to :value.',
'string' => 'The :attribute field must be greater than or equal to :value characters.',
],
'hex_color' => 'The :attribute field must be a valid hexadecimal color.',
'image' => 'The :attribute field must be an image.',
'in' => 'The selected :attribute is invalid.',
'in_array' => 'The :attribute field must exist in :other.',
'integer' => 'The :attribute field must be an integer.',
'ip' => 'The :attribute field must be a valid IP address.',
'ipv4' => 'The :attribute field must be a valid IPv4 address.',
'ipv6' => 'The :attribute field must be a valid IPv6 address.',
'json' => 'The :attribute field must be a valid JSON string.',
'lowercase' => 'The :attribute field must be lowercase.',
'lt' => [
'array' => 'The :attribute field must have less than :value items.',
'file' => 'The :attribute field must be less than :value kilobytes.',
'numeric' => 'The :attribute field must be less than :value.',
'string' => 'The :attribute field must be less than :value characters.',
],
'lte' => [
'array' => 'The :attribute field must not have more than :value items.',
'file' => 'The :attribute field must be less than or equal to :value kilobytes.',
'numeric' => 'The :attribute field must be less than or equal to :value.',
'string' => 'The :attribute field must be less than or equal to :value characters.',
],
'mac_address' => 'The :attribute field must be a valid MAC address.',
'max' => [
'array' => 'The :attribute field must not have more than :max items.',
'file' => 'The :attribute field must not be greater than :max kilobytes.',
'numeric' => 'The :attribute field must not be greater than :max.',
'string' => 'The :attribute field must not be greater than :max characters.',
],
'max_digits' => 'The :attribute field must not have more than :max digits.',
'mimes' => 'The :attribute field must be a file of type: :values.',
'mimetypes' => 'The :attribute field must be a file of type: :values.',
'min' => [
'array' => 'The :attribute field must have at least :min items.',
'file' => 'The :attribute field must be at least :min kilobytes.',
'numeric' => 'The :attribute field must be at least :min.',
'string' => 'The :attribute field must be at least :min characters.',
],
'min_digits' => 'The :attribute field must have at least :min digits.',
'missing' => 'The :attribute field must be missing.',
'missing_if' => 'The :attribute field must be missing when :other is :value.',
'missing_unless' => 'The :attribute field must be missing unless :other is :value.',
'missing_with' => 'The :attribute field must be missing when :values is present.',
'missing_with_all' => 'The :attribute field must be missing when :values are present.',
'multiple_of' => 'The :attribute field must be a multiple of :value.',
'not_in' => 'The selected :attribute is invalid.',
'not_regex' => 'The :attribute field format is invalid.',
'numeric' => 'The :attribute field must be a number.',
'password' => [
'letters' => 'The :attribute field must contain at least one letter.',
'mixed' => 'The :attribute field must contain at least one uppercase and one lowercase letter.',
'numbers' => 'The :attribute field must contain at least one number.',
'symbols' => 'The :attribute field must contain at least one symbol.',
'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.',
],
'present' => 'The :attribute field must be present.',
'present_if' => 'The :attribute field must be present when :other is :value.',
'present_unless' => 'The :attribute field must be present unless :other is :value.',
'present_with' => 'The :attribute field must be present when :values is present.',
'present_with_all' => 'The :attribute field must be present when :values are present.',
'prohibited' => 'The :attribute field is prohibited.',
'prohibited_if' => 'The :attribute field is prohibited when :other is :value.',
'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.',
'prohibits' => 'The :attribute field prohibits :other from being present.',
'regex' => 'The :attribute field format is invalid.',
'required' => 'The :attribute field is required.',
'required_array_keys' => 'The :attribute field must contain entries for: :values.',
'required_if' => 'The :attribute field is required when :other is :value.',
'required_if_accepted' => 'The :attribute field is required when :other is accepted.',
'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 field must match :other.',
'size' => [
'array' => 'The :attribute field must contain :size items.',
'file' => 'The :attribute field must be :size kilobytes.',
'numeric' => 'The :attribute field must be :size.',
'string' => 'The :attribute field must be :size characters.',
],
'starts_with' => 'The :attribute field must start with one of the following: :values.',
'string' => 'The :attribute field must be a string.',
'timezone' => 'The :attribute field must be a valid timezone.',
'unique' => 'The :attribute has already been taken.',
'uploaded' => 'The :attribute failed to upload.',
'uppercase' => 'The :attribute field must be uppercase.',
'url' => 'The :attribute field must be a valid URL.',
'ulid' => 'The :attribute field must be a valid ULID.',
'uuid' => 'The :attribute field 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' => [],
];

54
lang/zh_TW.json Normal file
View File

@ -0,0 +1,54 @@
{
"(and :count more error)": "(還有 :count 個錯誤)",
"(and :count more errors)": "(還有 :count 多個錯誤)",
"A fresh verification link has been sent to your email address.": "驗證連結已傳送到您的電子郵件地址。",
"All rights reserved.": "版權所有。",
"Before proceeding, please check your email for a verification link.": "在繼續之前,請檢查您的電子郵件中的驗證連結。",
"click here to request another": "按一下這裡來要求另一個",
"Confirm Password": "確認密碼",
"Dashboard": "控制面板",
"Email Address": "電子郵件地址",
"Forbidden": "拒絕存取",
"Forgot Your Password?": "忘記密碼?",
"Go to page :page": "前往第 :page 頁",
"Hello!": "您好!",
"If you did not create an account, no further action is required.": "如果您未註冊帳號,請忽略此郵件。",
"If you did not receive the email": "如果您沒有收到郵件",
"If you did not request a password reset, no further action is required.": "如果您未要求重設密碼,請忽略此郵件。",
"If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "如果您點擊「:actionText」按鈕時出現問題請複製下方連結至瀏覽器中貼上",
"Invalid JSON was returned from the route.": "路由回傳了無效的 JSON。",
"Login": "登入",
"Logout": "登出",
"Name": "姓名",
"Not Found": "找不到頁面",
"of": "於",
"Page Expired": "頁面已過期",
"Pagination Navigation": "分頁導覽",
"Password": "密碼",
"Payment Required": "需要付款",
"Please click the button below to verify your email address.": "請點擊下方按鈕驗證您的電子郵件地址:",
"Please confirm your password before continuing.": "請在繼續前確認您的密碼。",
"Regards": "致敬",
"Register": "註冊",
"Remember Me": "記住我",
"Reset Password": "重設密碼",
"Reset Password Notification": "重設密碼通知",
"results": "結果",
"Send Password Reset Link": "傳送重設密碼連結",
"Server Error": "伺服器錯誤",
"Service Unavailable": "暫時不提供服務",
"Showing": "顯示中",
"The given data was invalid.": "給定的數據無效。",
"The response is not a streamed response.": "該響應不是流式響應。",
"The response is not a view.": "響應不是視圖。",
"This password reset link will expire in :count minutes.": "重設密碼連結將會在 :count 分鐘後失效。",
"to": "至",
"Toggle navigation": "切換導覽",
"Too Many Requests": "要求次數過多。",
"Unauthorized": "未授權",
"Verify Email Address": "驗證電子郵件地址",
"Verify Your Email Address": "驗證您的電子郵件地址",
"Whoops!": "哎呀!",
"You are logged in!": "您已登入!",
"You are receiving this email because we received a password reset request for your account.": "您收到此電子郵件是因為我們收到了重設密碼的要求。"
}

9
lang/zh_TW/auth.php Normal file
View File

@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
return [
'failed' => '使用者名稱或密碼錯誤。',
'password' => '密碼錯誤',
'throttle' => '嘗試登入太多次,請在 :seconds 秒後再試。',
];

View File

@ -0,0 +1,8 @@
<?php
declare(strict_types=1);
return [
'next' => '下一頁 &raquo;',
'previous' => '&laquo; 上一頁',
];

11
lang/zh_TW/passwords.php Normal file
View File

@ -0,0 +1,11 @@
<?php
declare(strict_types=1);
return [
'reset' => '密碼已成功重設!',
'sent' => '密碼重設郵件已發送!',
'throttled' => '請稍候再試。',
'token' => '密碼重設碼無效。',
'user' => '找不到該 E-mail 對應的使用者。',
];

150
lang/zh_TW/validation.php Normal file
View File

@ -0,0 +1,150 @@
<?php
declare(strict_types=1);
return [
'accepted' => '必須接受 :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 必須為陣列。',
'ascii' => ':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 必須為布林值。',
'can' => ':Attribute 字段包含未經授權的值。',
'confirmed' => ':Attribute 確認欄位的輸入不一致。',
'current_password' => '當前密碼不正確。',
'date' => ':Attribute 不是有效的日期。',
'date_equals' => ':Attribute 必須等於 :date。',
'date_format' => ':Attribute 不符合 :format 的格式。',
'decimal' => ':Attribute 必須有 :decimal 位小數。',
'declined' => ':Attribute 必須拒絕。',
'declined_if' => '當 :other 為 :value 時,:attribute 必須拒絕。',
'different' => ':Attribute 與 :other 必須不同。',
'digits' => ':Attribute 必須是 :digits 位數字。',
'digits_between' => ':Attribute 必須介於 :min 至 :max 位數字。',
'dimensions' => ':Attribute 圖片尺寸不正確。',
'distinct' => ':Attribute 已經存在。',
'doesnt_end_with' => ':Attribute 不能以下列之一結尾::values。',
'doesnt_start_with' => ':Attribute 不能以下列之一開頭::values。',
'email' => ':Attribute 必須是有效的 E-mail。',
'ends_with' => ':Attribute 結尾必須包含下列之一::values。',
'enum' => ':Attribute 的值不正確。',
'exists' => ':Attribute 不存在。',
'extensions' => ':attribute 欄位必須具有以下副檔名之一::values。',
'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 個字元。',
],
'hex_color' => ':attribute 字段必須是有效的十六進位顏色。',
'image' => ':Attribute 必須是一張圖片。',
'in' => '所選擇的 :attribute 選項無效。',
'in_array' => ':Attribute 沒有在 :other 中。',
'integer' => ':Attribute 必須是一個整數。',
'ip' => ':Attribute 必須是一個有效的 IP 位址。',
'ipv4' => ':Attribute 必須是一個有效的 IPv4 位址。',
'ipv6' => ':Attribute 必須是一個有效的 IPv6 位址。',
'json' => ':Attribute 必須是正確的 JSON 字串。',
'lowercase' => ':Attribute 必須小寫。',
'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 個字元。',
],
'max_digits' => ':Attribute 不得超過 :max 位。',
'mimes' => ':Attribute 必須為 :values 的檔案。',
'mimetypes' => ':Attribute 必須為 :values 的檔案。',
'min' => [
'array' => ':Attribute 至少有 :min 個元素。',
'file' => ':Attribute 不能小於 :min KB。',
'numeric' => ':Attribute 不能小於 :min。',
'string' => ':Attribute 不能小於 :min 個字元。',
],
'min_digits' => ':Attribute 必須至少有 :min 位數字。',
'missing' => '必須缺少 :attribute 字段。',
'missing_if' => '當 :other 為 :value 時,必須缺少 :attribute 字段。',
'missing_unless' => '必須缺少 :attribute 字段,除非 :other 是 :value。',
'missing_with' => '存在 :values 時,必須缺少 :attribute 字段。',
'missing_with_all' => '存在 :values 時,必須缺少 :attribute 字段。',
'multiple_of' => '所選擇的 :attribute 必須為 :value 中的多個。',
'not_in' => '所選擇的 :attribute 選項無效。',
'not_regex' => ':Attribute 的格式錯誤。',
'numeric' => ':Attribute 必須為一個數字。',
'password' => [
'letters' => ':Attribute 必須至少包含一個字母。',
'mixed' => ':Attribute 必須至少包含一個大寫字母和一個小寫字母。',
'numbers' => ':Attribute 必須至少包含一個數字。',
'symbols' => ':Attribute 必須包含至少一個符號。',
'uncompromised' => '給定的 :attribute 已出現數據洩漏。請選擇不同的 :attribute。',
],
'present' => ':Attribute 必須存在。',
'present_if' => '當 :other 等於 :value 時,必須存在 :attribute 個欄位。',
'present_unless' => '除非 :other 等於 :value否則 :attribute 個字段必須存在。',
'present_with' => '當 :values 存在時,:attribute 個字段必須存在。',
'present_with_all' => '當存在 :values 時,必須存在 :attribute 個字段。',
'prohibited' => ':Attribute 字段被禁止。',
'prohibited_if' => '当 :other 为 :value 时,:attribute字段被禁止。',
'prohibited_unless' => ':Attribute 字段被禁止,除非 :other 在 :values 中。',
'prohibits' => ':Attribute 字段禁止包含 :other。',
'regex' => ':Attribute 的格式錯誤。',
'required' => ':Attribute 不能留空。',
'required_array_keys' => ':Attribute 必須包含 :values 中的一個鍵。',
'required_if' => '當 :other 是 :value 時 :attribute 不能留空。',
'required_if_accepted' => '接受 :other 時需要 :attribute 字段。',
'required_unless' => '當 :other 不是 :values 時 :attribute 不能留空。',
'required_with' => '當 :values 出現時 :attribute 不能留空。',
'required_with_all' => '當 :values 出現時 :attribute 不能為空。',
'required_without' => '當 :values 留空時 :attribute field 不能留空。',
'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 必須是一個正確的時區值。',
'ulid' => ':Attribute 必須是有效的 ULID。',
'unique' => ':Attribute 已經存在。',
'uploaded' => ':Attribute 上傳失敗。',
'uppercase' => ':Attribute 必須大寫。',
'url' => ':Attribute 的格式錯誤。',
'uuid' => ':Attribute 必須是有效的 UUID。',
];