From 1d2adecd79c5a89d54b53dc634987371ae75e13d Mon Sep 17 00:00:00 2001 From: Jason Cheng <30381035+jasoncheng7115@users.noreply.github.com> Date: Fri, 21 Jun 2019 09:17:55 +0800 Subject: [PATCH] Traditional Chinese language support (#10178) * Traditional Chinese language support * Rename zh-tw to zh-tw.json * Rename zh-tw.json to zh-TW.json * Update zh-TW.json * Create preferences.php * Update zh-TW.json * Create auth.php * Create commands.php * Create pagination.php * Create passwords.php * Create validation.php * Update auth.php * Update passwords.php * Update zh-TW.json --- resources/lang/zh-TW.json | 256 +++++++++++++++++++++++++++ resources/lang/zh-TW/auth.php | 19 ++ resources/lang/zh-TW/commands.php | 20 +++ resources/lang/zh-TW/pagination.php | 19 ++ resources/lang/zh-TW/passwords.php | 22 +++ resources/lang/zh-TW/preferences.php | 17 ++ resources/lang/zh-TW/validation.php | 149 ++++++++++++++++ 7 files changed, 502 insertions(+) create mode 100644 resources/lang/zh-TW.json create mode 100644 resources/lang/zh-TW/auth.php create mode 100644 resources/lang/zh-TW/commands.php create mode 100644 resources/lang/zh-TW/pagination.php create mode 100644 resources/lang/zh-TW/passwords.php create mode 100644 resources/lang/zh-TW/preferences.php create mode 100644 resources/lang/zh-TW/validation.php diff --git a/resources/lang/zh-TW.json b/resources/lang/zh-TW.json new file mode 100644 index 0000000000..40b567a613 --- /dev/null +++ b/resources/lang/zh-TW.json @@ -0,0 +1,256 @@ +{ + "The :attribute must a valid IP address\/network or hostname.": "這個 :attribute 必需為有效的 IP 位址\/網路或主機名稱。", + "Never polled": "從未輪詢", + "This indicates the most likely endpoint switchport": "這將表示為最有可能的交換器連接埠端點", + "Two-Factor unlocked.": "雙因素驗證已解鎖。", + "Failed to unlock Two-Factor.": "雙因素驗證解鎖失敗。", + "Two-Factor removed.": "雙因素驗證已移除。", + "Failed to remove Two-Factor.": "雙因素驗證移除失敗。", + "TwoFactor auth removed.": "雙因素驗證已移除。", + "Too many two-factor failures, please contact administrator.": "雙因素驗證失敗次數太多,請年繫您的系統管理員,", + "Too many two-factor failures, please wait :time seconds": "雙因素驗證失敗次數太多,請等候 :time 秒再試", + "No Two-Factor Token entered.": "沒有輸入雙因素驗證權仗。", + "No Two-Factor settings, how did you get here?": "沒有設定雙因素驗證,您要如何使用呢?", + "Wrong Two-Factor Token.": "錯誤的雙因素驗證權仗。", + "TwoFactor auth added.": "雙因素驗證已加入。", + "User :username created": "使用者 :username 已建立", + "Failed to create user": "建立使用者失敗", + "Updated dashboard for :username": "已更新 :username 的資訊看版", + "User :username updated": "使用者 :username 已更新", + "Failed to update user :username": "更新使用者 :username 失敗", + "User :username deleted.": "使用者 :username 已刪除。", + "Device does not exist": "裝置不存在", + "Port does not exist": "連接埠不存在", + "App does not exist": "應用不存在", + "Bill does not exist": "帳單不存在", + "Munin plugin does not exist": "Munin 外掛程式不存在", + "Ok": "確認", + "Warning": "警告", + "Critical": "嚴重", + "Existing password did not match": "與既有的密碼不符", + "The :attribute field is required.": ":attribute 是必要欄位。", + "Edit User": "編輯使用者", + "Unlock": "解除所定", + "User exceeded failures": "使用者達到失敗上限", + "Disable TwoFactor": "取消雙因素驗證", + "No TwoFactor key generated for this user, Nothing to do.": "沒有為這個使用者產生雙因素驗證金鑰,暫不動作。", + "Save": "儲存", + "Cancel": "取消", + "Unlocked Two Factor.": "解儲雙因素驗證鎖定。", + "Failed to unlock Two Factor": "雙因素驗證解除鎖定失敗", + "Removed Two Factor.": "雙因素驗證已經移除。", + "Failed to remove Two Factor": "移除雙因素驗證失敗", + "Real Name": "真實姓名", + "Email": "郵件", + "Description": "描述", + "Level": "等級", + "Normal": "正常", + "Global Read": "全部已讀", + "Admin": "Admin", + "Demo": "Demo", + "Dashboard": "資訊看版", + "Password": "密碼", + "Current Password": "目前密碼", + "New Password": "新密碼", + "Confirm Password": "確認新密碼", + "Can Modify Password": "允許修改密碼", + "Create User": "建立使用者", + "Username": "使用者名稱", + "Manage Users": "管理使用者", + "ID": "ID", + "Access": "存取權限", + "Auth": "驗證", + "Actions": "動作", + "Edit": "編輯", + "Delete": "刪除", + "Manage Access": "管理存取權限", + "Add User": "新增使用者", + "Are you sure you want to delete ": "您確定要刪除 ", + "The user could not be deleted": "這個使用者無法刪除", + "Whoops, the web server could not write required files to the filesystem.": "噢,Web Server 無法寫入檔案到檔案系統。", + "Running the following commands will fix the issue most of the time:": "Running the following commands will fix the issue most of the time:", + "Whoops, looks like something went wrong. Check your librenms.log.": "噢,看起來發生了一些錯誤。請您查閱 librenms.log。", + "Public Devices": "公開裝置", + "System Status": "系統裝態", + "Logon": "登入", + "Device": "裝置", + "Platform": "平台", + "Uptime": "運作時間", + "Location": "位置", + "Status": "狀態", + "Remember Me": "記住我", + "Login": "登入", + "Please enter auth token": "請輸入驗證權仗", + "Submit": "提交", + "Logout": "登出", + "Locations": "位置", + "Coordinates": "座標", + "Devices": "裝置", + "Network": "網路", + "Servers": "伺服器", + "Firewalls": "防火牆", + "Down": "離線", + "Save changes": "儲存變更", + "N\/A": "無", + "Location must have devices to show graphs": "此位置必需有裝置才能顯示圖表", + "Traffic": "流量", + "Cannot delete locations used by devices": "無法刪除已有裝置使用的位置", + "Location deleted": "位置已刪除", + "Failed to delete location": "刪除位置失敗", + "Timestamp": "時間戳記", + "Source": "來源", + "Message": "訊息", + "Facility": "設備", + "Total hosts": "所有主機", + "ignored": "已忽略", + "disabled": "已取消", + "up": "上線", + "warn": "警告", + "down": "離線", + "Total services": "所有服務", + "Widget title": "小工具標題", + "Default Title": "預設標題", + "Columns": "欄位", + "Markers": "標記", + "Ports": "連接埠", + "Resolution": "解析度", + "Countries": "國家", + "Provinces": "省份", + "Metros": "Metros", + "Region": "地區", + "Help": "說明", + "Stream": "串流", + "All Messages": "所有訊息", + "All Devices": "所有裝置", + "Page Size": "頁面大小", + "Time Range": "時間範圍", + "Search all time": "搜尋所有時間", + "Search last 5 minutes": "搜尋最近 5 分鐘內", + "Search last 15 minutes": "搜尋最近 15 分鐘內", + "Search last 30 minutes": "搜尋最近 30 分鐘內", + "Search last 1 hour": "搜尋最近 1 小時內", + "Search last 2 hours": "搜尋最近 2 小時內", + "Search last 8 hours": "搜尋最近 8 小時內", + "Search last 1 day": "搜尋最近 1 天內", + "Search last 2 days": "搜尋最近 2 天內", + "Search last 5 days": "搜尋最近 5 天內", + "Search last 7 days": "搜尋最近 7 天內", + "Search last 14 days": "搜尋最近 14 天內", + "Search last 30 days": "搜尋最近 30 天內", + "Custom title": "自訂標題", + "Initial Latitude": "初始緯度", + "ie. 51.4800 for Greenwich": "例如 51.4800 為格林威治", + "Initial Longitude": "初始經度", + "ie. 0 for Greenwich": "例如 0 為格林威治", + "Initial Zoom": "初始 Zoom 縮放等級", + "Grouping radius": "Grouping radius", + "default 80": "預設 80", + "Show devices": "顯示裝置", + "Up + Down": "上線 + 離線", + "Up": "上線", + "Show Services": "顯示服務", + "no": "否", + "yes": "是", + "Show Port Errors": "顯示連接埠錯誤", + "Notes": "附註", + "Custom title for widget": "自訂小工具標題", + "Display type": "顯示類型", + "boxes": "區塊", + "compact": "精簡", + "Uniform Tiles": "Uniform Tiles", + "Tile size": "Tile size", + "Disabled\/ignored": "Disabled\/ignored", + "Show": "顯示", + "Hide": "隱藏", + "Mode select": "模式選擇", + "only devices": "僅裝置", + "only services": "僅服務", + "devices and services": "裝置與服務", + "Order By": "排序", + "Hostname": "主機名稱", + "Device group": "裝置群組", + "Automatic Title": "自動產生標題", + "Graph type": "圖表類型", + "Select a graph": "選擇圖表", + "Show legend": "顯示圖例", + "Date range": "日期範圍", + "One Hour": "1 小時", + "Four Hours": "4 小時", + "Six Hours": "6 小時", + "Twelve Hours": "12 小時", + "One Day": "1 天", + "One Week": "1 週", + "Two Weeks": "2 週", + "One Month": "1 個月", + "Two Months": "2 個月", + "Three Months": "3 個月", + "One Year": "1 年", + "Two Years": "2 年", + "Select a device": "選擇裝置", + "Port": "連接埠", + "Select a port": "選擇連接埠", + "Application": "應用", + "Select an application": "選擇應用", + "Munin plugin": "Munin 外掛程式", + "Select a Munin plugin": "選擇 Munin 外掛程式", + "Bill": "帳單", + "Select a bill": "選擇帳單", + "Custom Aggregator(s)": "Custom Aggregator(s)", + "Select or add one or more": "選擇或加入一或多個", + "Select one or more": "選擇一或多個", + "Top query": "排行榜查詢", + "Response time": "回應時間", + "Poller duration": "輪詢器花費時間", + "Processor load": "處理器負載", + "Memory usage": "記憶體使用量", + "Disk usage": "磁碟使用量", + "Sort order": "排序", + "Ascending": "升冪", + "Descending": "降冪", + "Number of Devices": "裝置數量", + "Last Polled (minutes)": "最後一次輪詢 (分鐘)", + "Image URL": "圖片 URL", + "Target URL": "連結目標 URL", + "Show acknowledged": "顯示已通知", + "not filtered": "不要篩選", + "show only acknowledged": "僅顯示已通知", + "hide acknowledged": "隱藏已通知", + "Show only fired": "僅顯示已觸發", + "show only fired alerts": "僅顯示已觸發警報", + "Displayed severity": "顯示嚴重程度", + "any severity": "任何嚴重程度", + "or higher": "或更高者", + "State": "狀態", + "any state": "任何狀態", + "All alerts": "所有警報", + "Show Procedure field": "顯示處理欄位", + "show": "顯示", + "hide": "隱藏", + "Sort alerts by": "排序警報依據", + "timestamp, descending": "時間戳記、降冪", + "severity, descending": "嚴重程度、降冪", + "All devices": "所有裝置", + "Event type": "事件類型", + "All types": "所有類型", + "Number of interfaces": "介面數量", + "Last polled (minutes)": "最後一次輪詢 (分鐘)", + "Interface type": "介面類型", + "All Ports": "所有連接埠", + "Total": "總計", + "Ignored": "已忽略", + "Disabled": "已取消", + "Errored": "已錯誤", + "Services": "服務", + "No devices found within interval.": "在最近一次輪詢間隔內尚未找到裝置。", + "Summary": "摘要", + "Interface": "介面", + "Total traffic": "流量總計", + "Check your log for more details.": "查閱您的記錄檔以取得更詳細的資訊。", + "If you need additional help, you can find how to get help at": "若您需要更多的說明,您可以在這裡找到更多相關資訊。", + "Geo Locations": "地理位置", + "All Locations": "所有位置", + "Pollers": "輪詢器", + "Groups": "群組", + "Performance": "效能", + "History": "歷程" +} diff --git a/resources/lang/zh-TW/auth.php b/resources/lang/zh-TW/auth.php new file mode 100644 index 0000000000..0b539f7348 --- /dev/null +++ b/resources/lang/zh-TW/auth.php @@ -0,0 +1,19 @@ + '這些憑證與我們的記錄不符。', + 'throttle' => '嘗試登入次數過多。請稍候 :seconds 秒再試。', + +]; diff --git a/resources/lang/zh-TW/commands.php b/resources/lang/zh-TW/commands.php new file mode 100644 index 0000000000..b6bb53d6b2 --- /dev/null +++ b/resources/lang/zh-TW/commands.php @@ -0,0 +1,20 @@ + [ + 'description' => '新增一個本機使用者,只有在設定驗證使用 mysql 時才可以使用此使用者帳號登入', + 'arguments' => [ + 'username' => '使用者用來登入的名稱', + ], + 'options' => [ + 'descr' => '使用者描述', + 'email' => '使用者的郵件', + 'password' => '使用者的密碼,如果沒有提供,您將會收到提示', + 'full-name' => '使用者的全名', + 'role' => '將使用者指派至角色 :roles', + ], + 'password-request' => "請輸入使用者的密碼", + 'success' => '已成功新增使用者: :username', + 'wrong-auth' => '警告,您將無法以這個使用者登入,因為您沒有使用 MySQL 驗證', + ], +]; diff --git a/resources/lang/zh-TW/pagination.php b/resources/lang/zh-TW/pagination.php new file mode 100644 index 0000000000..75e6e302a5 --- /dev/null +++ b/resources/lang/zh-TW/pagination.php @@ -0,0 +1,19 @@ + '« 往前', + 'next' => '往後 »', + +]; diff --git a/resources/lang/zh-TW/passwords.php b/resources/lang/zh-TW/passwords.php new file mode 100644 index 0000000000..57d15e12e6 --- /dev/null +++ b/resources/lang/zh-TW/passwords.php @@ -0,0 +1,22 @@ + '密碼至少需要六個字元,並且要確認兩者相符。', + 'reset' => '您的密碼已重置。', + 'sent' => '已經寄送密碼重置連結至您的電子郵件信箱。', + 'token' => '此密碼重置權仗無效。', + 'user' => "找不到使用者的電子郵件位址。", + +]; diff --git a/resources/lang/zh-TW/preferences.php b/resources/lang/zh-TW/preferences.php new file mode 100644 index 0000000000..bcaa2d9ab7 --- /dev/null +++ b/resources/lang/zh-TW/preferences.php @@ -0,0 +1,17 @@ + '繁體中文', + +]; diff --git a/resources/lang/zh-TW/validation.php b/resources/lang/zh-TW/validation.php new file mode 100644 index 0000000000..b25a77c8a8 --- /dev/null +++ b/resources/lang/zh-TW/validation.php @@ -0,0 +1,149 @@ + ':attribute 須同意。', + 'active_url' => ':attribute 不是有效的 URL。', + 'after' => ':attribute 須為 :date 之後的日期。', + 'after_or_equal' => ':attribute 須等於 :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' => ':attribute 需為陣列。', + 'before' => ':attribute 須為 :date 之前的日期。', + 'before_or_equal' => ':attribute 須等於 :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.', + '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.', + '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' => ':attribute 須是字串。', + 'timezone' => 'The :attribute must be a valid zone.', + 'unique' => 'The :attribute has already been taken.', + 'uploaded' => ':attribute 上傳失敗。', + 'url' => ':attribute 格式無效。', + 'uuid' => ':attribute 須是有效的 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' => [], + +];