diff --git a/README.md b/README.md index bf871a13..ef8c7b77 100644 --- a/README.md +++ b/README.md @@ -213,6 +213,7 @@ When tests are configured: The project supports multiple languages. Currently supported languages: - 中文(简体)(Chinese Simplified) +- 中文(繁體)(Chinese Traditional) - English (US) - Deutsch (DE) - Español (ES) diff --git a/components/datetime-picker.tsx b/components/datetime-picker.tsx index 59228ca6..c4c98bba 100644 --- a/components/datetime-picker.tsx +++ b/components/datetime-picker.tsx @@ -17,6 +17,7 @@ import { tr, vi, zhCN, + zhTW, type Locale as DateFnsLocale, } from "date-fns/locale" import { RiCalendarLine, RiCloseLine, RiTimeLine } from "@remixicon/react" @@ -50,6 +51,7 @@ const DATE_FNS_LOCALES: Record = { tr, vi, "zh-CN": zhCN, + "zh-TW": zhTW, } interface DateTimePickerProps extends Omit, "value" | "onChange"> { diff --git a/components/language-switcher.tsx b/components/language-switcher.tsx index e22ca52d..d35789d0 100644 --- a/components/language-switcher.tsx +++ b/components/language-switcher.tsx @@ -4,12 +4,13 @@ import { useTranslation } from "react-i18next" import { RiTranslate2 } from "@remixicon/react" import { Button } from "@/components/ui/button" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@/components/ui/dropdown-menu" -import { changeLocale, LOCALE_CODES, type Locale } from "@/lib/i18n" +import { changeLocale, LOCALE_CODES, normalizeLocale } from "@/lib/i18n" const languageConfig: Record = { en: { text: "English", icon: RiTranslate2 }, ar: { text: "العربية", icon: RiTranslate2 }, - zh: { text: "中文", icon: RiTranslate2 }, + zh: { text: "簡體中文", icon: RiTranslate2 }, + "zh-TW": { text: "繁體中文", icon: RiTranslate2 }, fr: { text: "Français", icon: RiTranslate2 }, tr: { text: "Türkçe", icon: RiTranslate2 }, ja: { text: "日本語", icon: RiTranslate2 }, @@ -30,7 +31,7 @@ const options = LOCALE_CODES.map((key) => ({ export function LanguageSwitcher() { const { i18n, t } = useTranslation() - const currentLocale = (i18n.language?.split("-")[0] ?? "en") as Locale + const currentLocale = normalizeLocale(i18n.language) const currentLanguage = languageConfig[currentLocale] ?? languageConfig.en const CurrentIcon = currentLanguage.icon diff --git a/i18n/locales/zh-TW.json b/i18n/locales/zh-TW.json new file mode 100644 index 00000000..de33d295 --- /dev/null +++ b/i18n/locales/zh-TW.json @@ -0,0 +1,2317 @@ +{ + "Resync Recommended": "建議執行重新同步", + "Later": "稍後", + "This is the address other sites use to reach this site. Update it after this server's address changes; every peer site receives the new address.": "這是其他站點用來連線至本站點的位址。本伺服器位址變更後請在此更新,新位址會同步給所有對等站點。", + "This site's address changed. Objects written on other sites while the old address was unreachable were not replicated here. Start a resync toward this site from each peer site's console.": "本站點位址已變更。舊位址無法連線期間寫入其他站點的物件未複製到本站點。請從各對等站點的主控台,對本站點發起重新同步。", + "The address of {name} changed. Objects written on this site while the old address was unreachable were not replicated to it. Run a resync for this site to copy them.": "{name} 的位址已變更。舊位址無法連線期間寫入本站點的物件未複製到該站點。請對該站點執行重新同步以補齊這些物件。", + "Path": "路徑", + "Force Cleanup Folder": "強制清理資料夾", + "Permanently delete all objects, versions, delete markers, and residual files in this folder. This cannot be undone.": "永久刪除此資料夾下的所有物件、版本、刪除標記及殘留檔案。此操作無法復原。", + "Disable table bucket": "停用資料表儲存貯體", + "Table bucket disabled": "資料表儲存貯體已停用", + "Unable to disable table bucket.": "無法停用資料表儲存貯體。", + "Only an empty catalog can be disabled. Existing objects are preserved. Review bucket lifecycle rules before continuing: expiration can resume and delete objects.": "只能關閉內容為空的 Catalog。已有物件會被保留。請在繼續之前檢查儲存貯體生命週期規則:過期處理可能恢復並刪除物件。", + "Bucket is required": "儲存貯體為必填", + "Choose a suggested region or enter a new one.": "選擇建議區域或輸入新區域。", + "Compliance or Object Lock retention may prevent deletion.": "Compliance 或 Object Lock 保留政策可能阻止刪除。", + "Early expiry may still incur minimum storage duration charges.": "提前到期仍可能產生最低儲存時間費用。", + "Endpoint is derived from the region": "端點根據區域衍生", + "Endpoint is derived from the region and cannot be edited.": "端點根據區域自動衍生,無法編輯。", + "Endpoint preview": "端點預覽", + "Enter or select a region": "輸入或選擇區域", + "Region is required": "區域為必填", + "The remote Wasabi bucket must never have had Versioning enabled.": "遠端 Wasabi 儲存貯體必須從未啟用版本控制。", + "Use the entered region": "使用已輸入的區域", + "Wasabi": "Wasabi", + "Wasabi hot cloud storage": "Wasabi 熱雲端儲存", + "Wasabi lifecycle requirements": "Wasabi 生命週期要求", + "(Configuration details are private)": "(設定詳情為私有)", + "(Configured)": "(已設定)", + "API Base URL": "API 基礎 URL", + "API not ready": "API 未就緒", + "API request failed": "API 請求失敗", + "ARN": "ARN", + "AWS S3": "AWS S3", + "Access Control": "存取控制", + "Access Denied": "無權限存取", + "Access Key": "存取金鑰", + "Access Key *": "存取金鑰 *", + "Access Key is required": "存取金鑰為必填", + "Access Key length must be between 3 and 20 characters": "存取金鑰長度必須為 3 到 20 個字元", + "Access Keys": "存取金鑰", + "Access Policy": "存取政策", + "Account": "帳號", + "Action": "操作", + "Actions": "操作", + "Active": "啟用中", + "Add": "新增", + "Add Access Key": "新增存取金鑰", + "Add Account": "新增帳號", + "Add Audit Target": "新增稽核目標", + "Add Event Destination": "新增事件目標", + "Add Event Subscription": "新增事件訂閱", + "Add Event Subscription to get started": "新增事件訂閱以開始使用", + "Add Failed": "新增失敗", + "Add Lifecycle Rule": "新增生命週期規則", + "Add Provider": "新增提供者", + "Add Replication Rule": "新增複製規則", + "Add Site": "新增複製站點", + "Add Site Replication": "新增站點複製", + "Add Success": "新增成功", + "Add Tag": "新增標籤", + "Add Tier": "新增儲存層", + "Add User": "新增使用者", + "Add User Group": "新增使用者群組", + "Add a remote site to initialize site replication for this deployment.": "新增遠端站點以為目前部署初始化站點複製。", + "Add failed": "新增失敗", + "Add group members": "新增群組成員", + "Add replication rules to sync objects across buckets.": "新增複製規則以同步儲存貯體之間的物件。", + "Add success": "新增成功", + "Add tiers to configure remote storage destinations.": "新增儲存層以設定遠端儲存目標。", + "Add to Group": "新增到群組", + "Add {type} Audit Target": "新增 {type} 稽核目標", + "Add {type} Destination": "新增 {type} 目標", + "Added successfully": "新增成功", + "Adding to Upload Queue": "新增到上傳佇列", + "Admin-to-admin join flow": "管理員到管理員的加入流程", + "Administrator access key for the remote site.": "遠端站點管理員的存取金鑰。", + "Advanced Actions": "進階操作", + "Advanced Monitoring": "進階監控", + "Advanced Settings": "進階設定", + "Algorithm": "演算法", + "Allowed Methods": "允許的方法", + "Allowed Origins": "允許的來源", + "Amazon Resource Name": "Amazon 資源名稱", + "Apache License": "Apache 授權條款", + "AppRole": "AppRole", + "AppRole Role ID from Vault": "來自 Vault 的 AppRole 角色 ID", + "AppRole Secret ID from Vault": "來自 Vault 的 AppRole Secret ID", + "Are you sure you want to delete all selected keys?": "您確定要刪除所有選取的金鑰嗎?", + "Are you sure you want to delete all selected user groups?": "您確定要刪除所有選取的使用者群組嗎?", + "Are you sure you want to delete all selected users?": "您確定要刪除所有選取的使用者嗎?", + "Are you sure you want to delete the selected objects?": "您確定要刪除選取的物件嗎?", + "Are you sure you want to delete this OIDC provider?": "確定要刪除這個 OIDC 提供者嗎?", + "Are you sure you want to delete this audit target?": "確定要刪除此稽核目標嗎?", + "Are you sure you want to delete this bucket?": "您確定要刪除此儲存貯體嗎?", + "Are you sure you want to delete this destination?": "您確定要刪除此目標嗎?", + "Are you sure you want to delete this key?": "您確定要刪除這個金鑰嗎?", + "Are you sure you want to delete this notification configuration?": "您確定要刪除此通知設定嗎?", + "Are you sure you want to delete this object?": "您確定要刪除此物件嗎?", + "Are you sure you want to delete this policy?": "您確定要刪除此政策嗎?", + "Are you sure you want to delete this replication rule?": "您確定要刪除此複製規則嗎?", + "Are you sure you want to delete this rule?": "您確定要刪除此規則嗎?", + "Are you sure you want to delete this tag?": "確定要刪除此標籤嗎?", + "Are you sure you want to delete this tier?": "您確定要刪除此儲存層嗎?", + "Are you sure you want to delete this user?": "確定要刪除此使用者嗎?", + "Are you sure you want to force delete this key?": "您確定要強制刪除此金鑰嗎?", + "Are you sure you want to remove all sites from site replication?": "確定要從站點複製中移除所有站點嗎?", + "Are you sure you want to remove encryption?": "您確定要移除加密嗎?", + "Are you sure you want to remove this site from the replication group?": "確定要將此站點從複製群組中移除嗎?", + "Are you sure you want to stop the current rebalance operation?": "您確定要停止目前重新平衡任務嗎?", + "Assign Policy": "指派政策", + "Asynchronous": "非同步", + "Audit": "稽核", + "Audit Targets": "稽核目標", + "Audit is disabled": "稽核已停用", + "Audit is disabled. Enable audit before managing audit targets.": "稽核已停用。請先在設定中啟用稽核,再管理稽核目標。", + "Audit target created successfully": "稽核目標建立成功", + "Auth Method": "驗證方法", + "Authentication Method": "驗證方法", + "Authorization": "授權", + "Authorization Endpoint": "授權端點", + "Auto": "自動", + "Automatically inherit the main account policy when enabled.": "啟用時將自動繼承主帳號政策。", + "Available": "可用", + "Back to Home": "回到首頁", + "Back to Login": "返回登入", + "Backend": "後端", + "Backend Services": "後端服務", + "Backend Status": "後端狀態", + "Backend Type": "後端類型", + "Base64-encoded 32-byte AES-256 key": "Base64 編碼的 32 位元組 AES-256 金鑰", + "Bandwidth Limit": "頻寬限制", + "Batch allocation policies": "批次指派政策", + "Bitrot": "位元衰減", + "Blocked": "已阻止", + "Browser": "物件瀏覽", + "Browser Warning": "重新整理或關閉瀏覽器將取消目前所有任務。", + "Bucket": "儲存貯體", + "Bucket CORS": "儲存貯體 CORS 設定", + "Bucket Configuration": "儲存貯體設定", + "Bucket Count": "儲存貯體數量", + "Bucket Encryption Management": "儲存貯體加密管理", + "Bucket Events": "儲存貯體事件", + "Bucket Notification": "儲存貯體通知", + "Bucket Policy": "儲存貯體政策", + "Bucket Quota": "儲存貯體配額", + "Bucket Quota Exceeded": "儲存貯體配額已超出", + "Bucket Quota Insufficient": "儲存貯體配額不足", + "Bucket Replication": "儲存貯體複製", + "Bucket Setting": "儲存貯體設定", + "Bucket encryption configured successfully": "儲存貯體加密設定成功", + "Bucket encryption removed successfully": "儲存貯體加密移除成功", + "Bucket is not empty": "儲存貯體不為空", + "Bucket list refreshed": "儲存貯體清單已重新整理", + "Bucket name is required": "儲存貯體名稱為必填", + "Bucket names must be 3-63 characters long": "儲存貯體名稱長度必須為 3-63 個字元", + "Bucket names must not contain uppercase letters": "儲存貯體名稱不能包含大寫字母", + "Bucket not found": "未找到儲存貯體", + "Buckets": "儲存貯體", + "Build a site replication group without manually entering the local deployment identity.": "無需手動輸入本地部署識別碼即可建置站點複製群組。", + "Bytes Moved": "已遷移位元組數", + "COMMENT_KEY": "註解", + "COMPLIANCE": "合規", + "CORS Configuration": "CORS 設定", + "CORS JSON must be an array of rules or an object with a \"CORSRules\" array.": "CORS JSON 必須是規則陣列,或包含 \"CORSRules\" 陣列的物件。", + "CORS JSON validation passed": "CORS JSON 驗證通過", + "CORS Rules": "CORS 規則數", + "Cache Enabled": "已啟用快取", + "Cache Hits": "快取命中", + "Cache Misses": "快取未命中", + "Cache Statistics": "快取統計", + "Cache Status": "快取狀態", + "Cache TTL": "快取 TTL", + "Cache TTL (seconds)": "快取 TTL(秒)", + "Cache Warning": "清空瀏覽器快取、session 過期等情況會導致任務中斷或丟失,請謹慎操作。", + "Cache clear completed with warnings": "快取清除完成,但有警告", + "Cache cleared successfully": "快取清除成功", + "Cache time-to-live in seconds, default: 600": "快取生存時間(秒),預設:600", + "Cancel": "取消", + "Cancel Deletion": "取消刪除", + "Cancel Key Deletion": "取消金鑰刪除", + "Cancel Resync": "取消重新同步", + "Canceled": "已取消", + "Canceling": "取消中", + "Cannot Preview": "無法預覽該物件的內容(MIME 類型:{contentType}),請下載檢視", + "Change Password": "更改密碼", + "Change Secret Key": "更改秘密金鑰", + "Change current account password": "更改目前帳號密碼", + "Changes will take effect after RustFS restarts": "變更將在 RustFS 重啟後生效", + "Choose the backend used by SSE/KMS.": "選擇用於 SSE/KMS 的後端類型。", + "Choose the encryption method for this bucket": "選擇此儲存貯體的加密方法", + "Chrome and Firefox support drag and drop to this area and selecting multiple files or folders.": "Chrome 和 Firefox 支援拖曳到此區域上傳,支援選擇多個檔案/資料夾。", + "Claim Name": "宣告名稱", + "Claim Prefix": "宣告 Prefix", + "Clear All": "清除全部", + "Clear Cache": "清除快取", + "Clear Records": "清空紀錄", + "Clearing cache…": "正在清理快取…", + "Click or drag ZIP file to this area to upload": "點選或拖曳 ZIP 檔案到此區域上傳", + "Client ID": "用戶端 ID", + "Client ID is required": "用戶端 ID 為必填", + "Client Secret": "Client Secret", + "Client Secret is required": "Client Secret 為必填", + "Client secret is required when creating a provider.": "建立提供者時必須填寫 Client Secret。", + "Close": "關閉", + "Collecting files": "正在收集檔案", + "Collects and displays key performance indicators (such as CPU, memory, disk I/O, etc.) through visualized charts to help users understand system operation status and performance bottlenecks": "透過視覺化圖表收集並展示 CPU、記憶體、磁碟 I/O 等關鍵效能指標,幫助使用者瞭解系統運作狀態和效能瓶頸", + "Comma-separated audience IDs.": "多個 Audience ID 請以逗號分隔。", + "Completed": "已完成({count})", + "Completing SSO login…": "正在完成 SSO 登入…", + "Configuration": "設定", + "Configuration Information": "設定資訊", + "Configuration URL": "設定 URL", + "Configuration URL is required": "設定 URL 為必填", + "Configuration URL must be a valid HTTP or HTTPS URL": "設定 URL 必須是有效的 HTTP 或 HTTPS 位址", + "Configuration is saved locally in your browser": "設定儲存在您的瀏覽器本地", + "Configuration loaded successfully": "設定載入成功", + "Configuration reset successfully": "設定重設成功", + "Configuration saved successfully": "設定儲存成功", + "Configure": "參數設定", + "Configure Bucket Encryption": "設定儲存貯體加密", + "Configure Encryption": "設定加密", + "Configure Encryption for {bucket}": "為 {bucket} 設定加密", + "Configure KMS": "設定 KMS", + "Configure server-side encryption for your objects using external key management services.": "使用外部金鑰管理服務,為您的物件設定伺服器端加密。", + "Configure the KMS backend, cache policy, and default SSE key.": "設定 KMS 後端、快取策略以及預設 SSE 金鑰。", + "Configured": "已設定", + "Confirm": "確認", + "Confirm Delete": "確認刪除", + "Confirm Force Delete": "確認強制刪除", + "Confirm New Password": "確認新密碼", + "Confirm New Secret Key": "確認新秘密金鑰", + "Confirm Remove Encryption": "確認移除加密", + "Console": "主控台", + "Contact Support": "聯絡支援", + "Content Type": "內容類型", + "Continue Upload": "繼續上傳", + "Controlled by {envKey}": "由 {envKey} 控制", + "Copy": "複製", + "Copy Failed": "複製失敗", + "Copy Path": "複製路徑", + "Copy Success": "複製成功", + "Copy Temporary URL": "複製臨時連結", + "Create": "建立", + "Create Bucket": "建立儲存貯體", + "Create Failed": "建立失敗", + "Create First Key": "建立第一個金鑰", + "Create Key": "建立金鑰", + "Create New Key": "建立新金鑰", + "Create Success": "建立成功", + "Create User": "建立使用者", + "Create a bucket to start storing objects.": "建立儲存貯體以開始儲存物件。", + "Create a new KMS key and optionally make it the default SSE key.": "建立新的 KMS 金鑰,並可選擇設為預設 SSE 金鑰。", + "Create a new access key to get started.": "建立新的存取金鑰以開始使用。", + "Create a policy to manage access control templates.": "建立政策以管理存取控制範本。", + "Create a user to get started": "建立使用者以開始使用", + "Create an audit target to forward audit logs.": "建立稽核目標以轉送稽核日誌。", + "Create an event destination to forward notifications.": "建立事件目標以轉送通知。", + "Create lifecycle rules to automate object transitions and expiration.": "建立生命週期規則以自動化物件轉換和過期。", + "Create user groups to organize permissions": "建立使用者群組以組織權限", + "Create your first KMS key to get started": "建立您的第一個 KMS 金鑰開始使用", + "Create your first bucket to configure encryption": "建立您的第一個儲存貯體以設定加密", + "Create, rotate, and inspect the keys managed by your KMS backend.": "建立、輪替和檢查由您的 KMS 後端管理的金鑰。", + "Created": "建立時間", + "Created automatically after the first remote site is added": "新增第一個遠端站點後會自動建立", + "Creation Date": "建立時間", + "Credentials": "認證資訊", + "Current Configuration": "目前設定", + "Current KMS Type": "目前 KMS 類型", + "Current Password": "目前密碼", + "Current Pool Decommission Status": "目前儲存池除役狀態", + "Current Prefix": "目前 Prefix", + "Current Rebalance Status": "目前重新平衡狀態", + "Current Site": "目前站點", + "Current User Policy": "目前使用者政策", + "Current Version": "目前版本", + "Current backend status for replicated buckets, users, groups, policies, and lifecycle expiry rules.": "複製儲存貯體、使用者、使用者群組、政策和生命週期過期規則的目前後端狀態。", + "Current site + remote peers": "目前站點 + 遠端對等站點", + "Current user policy": "目前使用者政策", + "Custom": "自訂", + "Customer Service": "客戶服務", + "DAYS": "天", + "Dark": "暗色", + "Data Backup": "資料備份", + "Data Key (DEK)": "資料金鑰(DEK)", + "Data Keys (DEK)": "資料金鑰(DEK)", + "Data Redundancy": "資料備援", + "Data keys are automatically generated when encrypting files. They are encrypted by master keys and used for actual data encryption.": "資料金鑰在加密檔案時自動產生。它們由主金鑰加密,用於實際資料加密。", + "Day": "天", + "Days": "天", + "Days After": "天之後", + "Days must be between 0 and 7": "天數必須在 0 到 7 之間", + "Decommission requires more than one pool in the cluster.": "除役要求目前叢集至少有兩個儲存池。", + "Default": "預設", + "Default Bandwidth": "預設頻寬", + "Default Key ID": "預設金鑰 ID", + "Default SSE Key": "預設 SSE 金鑰", + "Default SSE key updated successfully": "預設 SSE 金鑰更新成功", + "Default master key ID for SSE-KMS": "SSE-KMS 的預設主金鑰 ID", + "Delete": "刪除", + "Delete All Versions": "刪除所有版本", + "Delete Failed": "刪除失敗", + "Delete Immediately": "立即刪除", + "Delete Key": "刪除金鑰", + "Delete Key Immediately": "立即刪除金鑰", + "Delete Marker Handling": "刪除標記處理", + "Delete Record": "刪除紀錄", + "Delete Selected": "刪除選取項目", + "Delete Success": "刪除成功", + "Delete Tag": "刪除標籤", + "Delete Tag Confirm": "您確定要刪除這個標籤嗎?", + "Delete task created": "刪除任務已建立", + "Deleting": "刪除中({count})", + "Deleting…": "刪除中…", + "Deletion Date": "刪除日期", + "Deployment ID": "部署 ID", + "Describe the purpose of this key": "描述該金鑰的用途", + "Description": "描述", + "Destination Bucket": "目標儲存貯體", + "Detailed KMS Status": "詳細 KMS 狀態", + "Detailed site replication status is not available on this server yet. Basic peer information is still shown below.": "此伺服器尚未提供詳細的站點複製狀態。下方仍會顯示基礎對等站點資訊。", + "Details": "詳情", + "Development Language Requirements": "開發語言要求", + "Disable Bucket CORS to remove the current cross-origin configuration.": "關閉儲存貯體 CORS 設定後,將移除目前的 CORS 設定。", + "Disable ILM Expiry": "停用 ILM 過期複製", + "Disable ILM expiry rule replication for every site?": "要為所有站點停用 ILM 過期規則複製嗎?", + "Disabled": "已停用", + "Discard": "放棄", + "Discard Changes": "放棄更改", + "Disk Bad Spot Check": "磁碟壞點檢查", + "Disks": "磁碟", + "Display Name": "顯示名稱", + "Documentation": "文件", + "Download": "下載", + "Download Failed": "下載失敗", + "Download complete IAM configuration as ZIP file": "下載完整的 IAM 設定 ZIP 檔案", + "Download ready": "下載已就緒", + "Downloading files": "正在下載檔案", + "Dynamic redirect URI is enabled, so this field is optional.": "已啟用動態重新導向 URI,因此該欄位為選填。", + "EC Mode": "EC 模式", + "ENV": "環境變數", + "ETA": "預計剩餘時間", + "Each remote site needs an endpoint and administrator credentials so the cluster can complete the join handshake.": "每個遠端站點都需要端點和管理員認證資訊,以便叢集完成加入交握。", + "Each remote site uses its administrator credentials to complete the initial replication handshake.": "每個遠端站點都會使用其管理員認證資訊完成初始複製交握。", + "Edit": "編輯", + "Edit Configuration": "編輯設定", + "Edit Event Subscription": "編輯事件訂閱", + "Edit Failed": "修改失敗", + "Edit Group": "編輯群組", + "Edit Key": "編輯金鑰", + "Edit Policy": "編輯政策", + "Edit Replication Rule": "編輯複製規則", + "Edit Site": "編輯站點", + "Edit Success": "修改成功", + "Edit User": "編輯使用者", + "Elapsed": "已耗時", + "Email Claim": "信箱宣告", + "Emergency Response": "緊急回應", + "Enable Cache": "啟用快取", + "Enable ILM Expiry": "啟用 ILM 過期複製", + "Enable ILM expiry rule replication for every site?": "要為所有站點啟用 ILM 過期規則複製嗎?", + "Enable KMS Cache": "啟用 KMS 快取", + "Enable Storage Encryption": "啟用儲存空間加密", + "Enable audit in Settings before managing audit targets.": "請先在設定中啟用稽核,再管理稽核目標。", + "Enable caching for better performance, default: true": "啟用快取以提高效能,預設:true", + "Enable notify in Settings before managing bucket event subscriptions.": "請先在設定中啟用通知,再管理儲存貯體事件訂閱。", + "Enable notify in Settings before managing event destinations.": "請先在設定中啟用通知,再管理事件目標。", + "Enable secure transport when connecting to endpoint.": "連線到端點時啟用安全傳輸。", + "Enabled": "已啟用", + "Encryption": "加密", + "Encryption Status": "加密狀態", + "Encryption Type": "加密類型", + "Encryption algorithm for the key.": "金鑰的加密演算法。", + "Endpoint": "端點", + "Endpoint *": "端點 *", + "Endpoint is required": "端點為必填", + "Endpoint must be unique": "端點必須唯一", + "Enter AppRole Role ID": "輸入 AppRole 角色 ID", + "Enter AppRole Secret ID": "輸入 AppRole Secret ID", + "Enter an absolute path such as D:/data/kms-keys": "輸入絕對路徑,例如 D:/data/kms-keys", + "Enter prefix…": "輸入 Prefix…", + "Enter the default SSE key ID": "輸入預設 SSE 金鑰 ID", + "Enter your Vault authentication token": "輸入您的 Vault 驗證權杖", + "Enterprise": "企業版", + "Enterprise License": "企業版授權", + "Enterprise Service Level": "企業服務等級", + "Environment Managed": "環境變數管理", + "Environment variables are controlling some switches": "部分開關由環境變數控制", + "Environment-managed providers are read-only": "由環境變數管理的提供者為唯讀", + "Error": "錯誤", + "Event Destinations": "事件目標", + "Event subscriptions using this destination": "使用此目標的事件訂閱", + "Loading subscriptions…": "正在載入訂閱…", + "This destination is not used by any event subscription.": "此目標未被任何事件訂閱使用。", + "Unable to load subscriptions. Expand again to retry.": "無法載入訂閱。再次展開以重試。", + "Event Target created successfully": "事件目標建立成功", + "Events": "事件", + "Example: http://localhost:9000 or https://your-domain.com": "範例:http://localhost:9000 或 https://your-domain.com", + "Existing encrypted objects will remain encrypted.": "現有加密物件將保持加密狀態。", + "Exit Fullscreen": "結束全螢幕", + "Expand replication group": "擴充複製群組", + "Expiration": "過期時間", + "Expiration Delete Mark": "過期刪除標記", + "Expired": "已過期", + "Expiry": "過期時間", + "Export": "匯出", + "Export Now": "立即匯出", + "Export all IAM configurations including users, groups, policies, and access keys in a ZIP file.": "匯出所有 IAM 設定,包括使用者、使用者群組、政策和存取金鑰,打包為 ZIP 檔案。", + "Exporting…": "匯出中…", + "External MinIO tier": "外部 MinIO 儲存層", + "Failed": "已失敗({count})", + "Failed Status": "失敗", + "Failed to cancel decommission": "取消除役失敗", + "Failed to cancel key deletion": "取消金鑰刪除失敗", + "Failed to clear cache": "清除快取失敗", + "Failed to configure bucket encryption": "設定儲存貯體加密失敗", + "Failed to create KMS key": "建立 KMS 金鑰失敗", + "Failed to create audit target": "建立稽核目標失敗", + "Failed to create event target": "建立事件目標失敗", + "Failed to create rule": "建立規則失敗", + "Failed to delete OIDC provider": "刪除 OIDC 提供者失敗", + "Failed to delete key": "金鑰刪除失敗", + "Failed to export IAM configuration": "IAM 設定匯出失敗", + "Failed to fetch KMS keys": "取得 KMS 金鑰失敗", + "Failed to fetch data": "取得資料失敗", + "Failed to fetch object info": "取得物件資訊失敗", + "Failed to fetch versions": "取得版本失敗", + "Failed to force delete key": "強制刪除金鑰失敗", + "Failed to generate URL": "連結產生失敗", + "Failed to generate secure random keys": "產生安全隨機金鑰失敗", + "Failed to get data": "取得資料失敗", + "Failed to get detailed status": "取得詳細狀態失敗", + "Failed to get key details": "取得金鑰詳情失敗", + "Failed to import IAM configuration": "IAM 設定匯入失敗", + "Failed to load KMS status": "載入 KMS 狀態失敗", + "Failed to load OIDC providers": "載入 OIDC 提供者失敗", + "Failed to load bucket list": "載入儲存貯體清單失敗", + "Failed to load current configuration": "載入目前設定失敗", + "Failed to load key details": "載入金鑰詳情失敗", + "Failed to load key list": "金鑰清單載入失敗", + "Failed to load module switches": "載入模組開關失敗", + "Failed to refresh key list": "重新整理金鑰清單失敗", + "Failed to refresh status": "重新整理狀態失敗", + "Failed to remove bucket encryption": "移除儲存貯體加密失敗", + "Failed to restart KMS service": "重啟 KMS 服務失敗", + "Failed to save KMS configuration": "儲存 KMS 設定失敗", + "Failed to save OIDC provider": "儲存 OIDC 提供者失敗", + "Failed to save configuration": "設定儲存失敗", + "Failed to save key": "金鑰儲存失敗", + "Failed to schedule key deletion": "排程刪除金鑰失敗", + "Failed to set local development mode": "設定本地開發模式失敗", + "Failed to start KMS service": "啟動 KMS 服務失敗", + "Failed to start decommission": "啟動除役失敗", + "Failed to start rebalance": "啟動重新平衡失敗", + "Failed to stop KMS service": "停止 KMS 服務失敗", + "Failed to stop rebalance": "停止重新平衡失敗", + "Failed to update key status": "更新金鑰狀態失敗", + "Failed to validate OIDC configuration": "OIDC 設定驗證失敗", + "Feature Permissions": "功能權限", + "File Count Limit Exceeded": "檔案數量超出限制", + "File Permissions": "檔案權限", + "File is too large to preview, please download to view": "檔案過大,無法預覽,請下載後檢視", + "File size exceeds limit (10MB)": "檔案大小超出限制(10MB)", + "Files": "檔案", + "Filter From This Page": "從本頁篩選", + "Filter current page": "篩選目前頁", + "Filtering and sorting apply to the current page": "篩選和排序僅作用於目前頁", + "Finish rebalance successfully before retiring a pool.": "請先成功完成重新平衡,再除役儲存池。", + "First": "第一頁", + "First-time setup": "首次設定", + "Folder": "資料夾", + "Folder Processing Error": "資料夾處理錯誤", + "Force Delete": "強制刪除", + "Formatted": "已格式化", + "Friday": "星期五", + "Fullscreen": "全螢幕", + "Future uploads to this bucket will not be encrypted by default.": "未來上傳到此儲存貯體的物件預設不會加密。", + "GOVERNANCE": "治理", + "Generate URL": "產生連結", + "Generated from master keys to encrypt your files. Automatically created when encrypting data.": "由主金鑰產生以加密您的檔案。在加密資料時自動建立。", + "Get Data Failed": "取得資料失敗", + "Get Help": "取得協助", + "Get Notification Config Failed": "取得通知設定失敗", + "Getting URL": "正在取得 URL", + "Groups": "群組", + "Groups Claim": "群組宣告", + "Handshake": "交握", + "HashiCorp Encryption": "HashiCorp 加密", + "HashiCorp Vault KV2": "HashiCorp Vault KV2", + "HashiCorp Vault Transit Engine": "HashiCorp Vault Transit 引擎", + "Health": "健康狀態", + "Health Check Interval (seconds)": "健康檢查間隔(秒)", + "Healthy": "健康", + "High Memory Usage Warning": "高記憶體使用警告", + "High Performance": "高效能", + "Hit Rate": "命中率", + "Home": "首頁", + "Hours": "小時", + "Hours must be between 0 and 23": "小時必須在 0 到 23 之間", + "Hours must be between 0 and 24 when days is 0": "當天數為 0 時,小時必須在 0 到 24 之間", + "IAM Configuration Export": "IAM 設定匯出", + "IAM Configuration Import": "IAM 設定匯入", + "IAM Policies": "IAM 政策", + "IAM configuration exported successfully": "IAM 設定匯出成功", + "IAM configuration imported successfully": "IAM 設定匯入成功", + "ILM Expiry": "ILM 過期", + "ILM Expiry Rules": "ILM 過期規則", + "Identity Authentication Expansion": "身分驗證擴充", + "Idle": "閒置", + "If no versions remain, delete references to this object": "如果沒有剩餘版本,則刪除此物件的引用", + "Import": "匯入", + "Import IAM configurations from a previously exported ZIP file.": "從之前匯出的 ZIP 檔案匯入 IAM 設定。", + "Import Now": "立即匯入", + "Import Success": "匯入成功", + "Import/Export": "匯入 / 匯出", + "Importing…": "匯入中…", + "In Progress": "{total} 個任務進行中(進行中 {processing} 個,已成功 {completed} 個)", + "Inactive": "未啟用", + "Include objects that already exist in the source bucket.": "包含來源儲存貯體中已存在的物件。", + "Infinite Scaling": "無限擴充", + "Info": "物件資訊", + "Infrastructure Health": "基礎設施健康", + "Inherited from group": "繼承自群組", + "Inspect individual server health, disk utilization, and network status.": "檢查個別伺服器的健康狀態、磁碟使用率和網路狀態。", + "Invalid CORS configuration": "CORS 設定無效", + "Invalid JSON format": "JSON 格式無效", + "Invalid server address format": "無效的伺服器位址格式", + "Issuer": "簽發者", + "JSON Editor": "JSON 編輯器", + "JSON content is empty": "JSON 內容為空", + "JSON formatted successfully": "JSON 格式化成功", + "JSON is already formatted": "JSON 已格式化", + "KMS Backend": "KMS 後端", + "Backend and default key": "後端與預設金鑰", + "Reliability": "可靠性", + "KMS Cache": "KMS 快取", + "Vault connection": "Vault 連線", + "KMS Configuration": "KMS 設定", + "KMS Key": "KMS 金鑰", + "KMS Key Details": "KMS 金鑰詳情", + "KMS Key ID": "KMS 金鑰 ID", + "KMS Keys Management": "KMS 金鑰管理", + "KMS Status Overview": "KMS 狀態概覽", + "KMS Type": "KMS 類型", + "KMS configuration saved successfully": "KMS 設定儲存成功", + "KMS configuration updated successfully": "KMS 設定更新成功", + "KMS configured but not started": "KMS 已設定但尚未啟動", + "KMS is not configured, please configure it first": "KMS 未設定,請先進行設定", + "KMS key created successfully": "KMS 金鑰建立成功", + "KMS server has errors": "KMS 伺服器有錯誤", + "KMS server is configured but not running": "KMS 伺服器已設定但未執行", + "KMS server is not configured": "KMS 伺服器未設定", + "KMS server is running and healthy": "KMS 伺服器正在執行且健康", + "KMS server is running but unhealthy": "KMS 伺服器正在執行但不健康", + "KMS server is running, configuration details are private": "KMS 伺服器正在執行,設定詳情為私有", + "KMS server status unknown": "KMS 伺服器狀態未知", + "KMS service has errors": "KMS 服務有錯誤", + "Cannot delete the default SSE key. Choose another default key first.": "無法刪除預設 SSE 金鑰。請先將其他金鑰設為預設金鑰。", + "KMS service is stopped": "KMS 服務已停止", + "KMS service not initialized, please configure it first": "KMS 服務未初始化,請先進行設定", + "KMS service restarted successfully": "KMS 服務重啟成功", + "KMS service started successfully": "KMS 服務啟動成功", + "KMS service stopped successfully": "KMS 服務停止成功", + "KV Mount": "KV 掛載點", + "KV Mount Path": "KV 掛載路徑", + "KV storage mount path, default: secret": "KV 儲存掛載路徑,預設:secret", + "Key": "金鑰", + "Key Creation": "金鑰建立", + "Key Directory": "金鑰目錄", + "Key Expiration": "金鑰過期", + "Key ID": "金鑰 ID", + "Key List": "金鑰清單", + "Key Login": "金鑰登入", + "Key Manager": "金鑰管理器", + "Key Name": "金鑰名稱", + "Key Path Prefix": "金鑰路徑 Prefix", + "Key created but could not update the default SSE key. Save the configuration form and try again.": "金鑰已建立,但無法更新預設 SSE 金鑰。請儲存設定表單後重試。", + "Key created successfully": "金鑰建立成功", + "Key deleted immediately": "金鑰已立即刪除", + "Key deleted successfully": "金鑰刪除成功", + "Key deletion canceled successfully": "已成功取消金鑰刪除", + "Key deletion scheduled successfully": "已成功排程刪除金鑰", + "Key force deleted successfully": "金鑰強制刪除成功", + "Key is already pending deletion": "金鑰已在刪除中", + "Key list refreshed": "金鑰清單已重新整理", + "Key services and configuration values reported by the cluster.": "叢集回報的關鍵服務與設定值。", + "Key storage path prefix in KV store": "KV 儲存中的金鑰儲存路徑 Prefix", + "Keys in PendingDeletion can still be restored or deleted immediately.": "處於 PendingDeletion 狀態的金鑰仍可還原或立即刪除。", + "Language": "語言", + "Large File Count Warning": "大檔案數量警告", + "Last": "最後一頁", + "Last Modified": "更新時間", + "Last Modified Time": "最後修改時間", + "Last Normal Operation": "上次正常操作", + "Last Online": "最後上線", + "Last Scan Activity": "上次掃描活動", + "LastModified": "最後修改時間", + "Leave blank to keep the stored Vault token.": "留空以保留已儲存的 Vault 權杖。", + "Leave empty to keep current secret": "留空表示保留目前的 Secret", + "Leave empty to use current host as default": "留空表示使用目前主機作為預設值", + "Legal Hold": "合法保留", + "Leave blank to keep the current credentials.": "留空則保持現有認證資訊不變。", + "License": "授權", + "License Details": "授權詳情", + "License Key": "授權金鑰", + "License Valid Until": "授權有效期至", + "Licensed Company": "授權公司", + "Licensed Users": "授權使用者", + "Lifecycle": "生命週期", + "Lifecycle Management": "生命週期管理", + "Light": "亮色", + "Load Balancing": "負載平衡", + "Load Failed": "載入失敗", + "Loading buckets…": "正在載入儲存貯體…", + "Loading keys…": "正在載入金鑰…", + "Loading…": "載入中…", + "Local Key Directory": "本地金鑰目錄", + "Local development mode set successfully": "本地開發模式設定成功", + "Local filesystem": "本地檔案系統", + "Login": "登入", + "Login Failed": "登入失敗", + "Login Problems?": "登入遇到問題?", + "Login Success": "登入成功", + "Login with {name}": "使用 {name} 登入", + "Logout": "登出", + "Logs": "日誌", + "MNMD Mode": "MNMD 模式", + "MQTT": "MQTT", + "MQTT_BROKER": "MQTT Broker", + "MQTT_KEEP_ALIVE_INTERVAL": "MQTT Keep-Alive 間隔", + "MQTT_PASSWORD": "MQTT 密碼", + "MQTT_QOS": "MQTT QoS", + "MQTT_QUEUE_DIR": "MQTT 佇列目錄", + "MQTT_QUEUE_LIMIT": "MQTT 佇列限制", + "MQTT_RECONNECT_INTERVAL": "MQTT 重連間隔", + "MQTT_TLS_CA": "MQTT TLS CA", + "MQTT_TLS_CLIENT_CERT": "MQTT TLS 用戶端憑證", + "MQTT_TLS_CLIENT_KEY": "MQTT TLS 用戶端金鑰", + "MQTT_TLS_POLICY": "MQTT TLS 政策", + "MQTT_TLS_TRUST_LEAF_AS_CA": "MQTT 將末端憑證視為 CA", + "MQTT_TOPIC": "MQTT 主題", + "MQTT_USERNAME": "MQTT 使用者名稱", + "MQTT_WS_PATH_ALLOWLIST": "MQTT WebSocket 路徑允許清單", + "Main key ID (Transit key name). Use business-related readable ID.": "主金鑰 ID(Transit 金鑰名稱)。請使用與業務相關的可讀 ID。", + "Make sure the server address is accessible from your network": "確保伺服器位址在您的網路中可存取", + "Manage how RustFS connects to your external key management service.": "管理 RustFS 如何連線到您的外部金鑰管理服務。", + "Managed automatically": "自動管理", + "Master Key": "主金鑰", + "Master Key (CMK)": "主金鑰(CMK)", + "Master Keys (CMK)": "主金鑰(CMK)", + "Matches the backend and MinIO site replication option for expiry lifecycle rules.": "與後端和 MinIO 的過期生命週期規則站點複製選項保持一致。", + "Max 50TB": "最大 50TB", + "Max Cached Keys": "最大快取金鑰數", + "Member Of": "所屬群組", + "Members": "成員", + "Memory Critical": "記憶體用量危急", + "Memory High": "記憶體用量高", + "Memory Low": "記憶體用量低", + "Memory Medium": "記憶體用量中等", + "Memory Usage": "記憶體使用", + "Memory Warning": "記憶體警告", + "Metadata": "中繼資料", + "Metrics": "指標", + "Minio": "MinIO", + "Minutes": "分鐘", + "Minutes must be between 0 and 59": "分鐘必須在 0 到 59 之間", + "Mode": "複製模式", + "Module switch is managed by environment variables": "模組開關由環境變數管理", + "Module switches saved": "模組開關已儲存", + "Monday": "星期一", + "Monitor overall storage usage and recent scanner activity at a glance.": "一目了然地監控整體儲存使用情況和最近的掃描器活動。", + "More Configurations": "更多設定", + "More actions": "更多操作", + "Multi-Cloud Storage": "多雲儲存", + "Multipart Upload": "分段上傳", + "Must be an absolute callback URL.": "必須填寫絕對回呼 URL。", + "NATS": "NATS", + "NATS_ADDRESS": "NATS 位址", + "NATS_CREDENTIALS_FILE": "NATS 認證資訊檔案", + "NATS_PASSWORD": "NATS 密碼", + "NATS_QUEUE_DIR": "NATS 佇列目錄", + "NATS_QUEUE_LIMIT": "NATS 佇列限制", + "NATS_SUBJECT": "NATS 主題", + "NATS_TLS_CA": "NATS TLS CA", + "NATS_TLS_CLIENT_CERT": "NATS TLS 用戶端憑證", + "NATS_TLS_CLIENT_KEY": "NATS TLS 用戶端金鑰", + "NATS_TLS_REQUIRED": "NATS 必須啟用 TLS", + "NATS_TOKEN": "NATS 權杖", + "NATS_USERNAME": "NATS 使用者名稱", + "Name": "名稱", + "Name Placeholder": "請輸入{type}名稱", + "Name inferred from endpoint if left blank": "留空時將根據端點推斷名稱", + "Need help?": "需要幫助?", + "Needs Confirmation": "需要確認", + "Network": "網路", + "New File": "新增檔案", + "New Folder": "新增資料夾", + "New Form": "新增{type}", + "New Password": "新密碼", + "New Policy": "新增政策", + "New Secret Key": "新秘密金鑰", + "New access key has been created": "新的存取金鑰已建立", + "New user has been created": "新使用者已建立", + "Next": "下一頁", + "Next Page": "下一頁", + "No": "否", + "No Access Keys": "無存取金鑰", + "No Audit Targets": "無稽核目標", + "No Buckets": "無儲存貯體", + "No Data": "尚無資料", + "No Destinations": "無目標", + "No data to display": "尚無資料", + "No KMS configuration found": "未找到 KMS 設定", + "No KMS keys found": "未找到 KMS 金鑰", + "No License": "無授權", + "No OIDC providers configured yet.": "目前還沒有設定任何 OIDC 提供者。", + "No Objects": "無物件", + "No loaded objects match this filter.": "已載入的物件均不符合此篩選條件。", + "No matches in loaded objects": "已載入物件中無符合項目", + "No matching objects": "無符合物件", + "More objects have not been searched yet.": "仍有更多物件尚未搜尋。", + "No Policies": "無政策", + "No Secret Configured": "未設定 Secret", + "No Selection": "未選擇檔案/資料夾", + "No Tasks": "尚無任務", + "No Tiers": "無儲存層", + "No Versions": "無版本", + "No bucket selected": "未選擇儲存貯體", + "No buckets found": "未找到儲存貯體", + "No buckets match your search": "沒有儲存貯體符合您的搜尋", + "No files to download": "沒有可下載的檔案", + "No key details available": "尚無金鑰詳情", + "No options available": "沒有可用選項", + "No status data available": "無可用狀態資料", + "No tags": "無標籤", + "No valid events found after conversion": "轉換後未找到有效事件", + "Non-current Version": "非目前版本", + "Normal": "普通", + "Not Configured": "未設定", + "Not Enabled": "未啟用", + "Not configured": "未設定", + "Not set": "未設定", + "Not specified": "未指定", + "Note: AccessKey and SecretKey values are required for each site when adding or editing peer sites": "注意:新增或編輯對等站點時,每個站點的 AccessKey 和 SecretKey 值都是必填的", + "Notice": "注意:新增或編輯對等站點時,每個站點的 AccessKey 和 SecretKey 值都是必填的", + "Notify": "通知", + "Notify is disabled": "通知已停用", + "Notify is disabled. Enable notify before managing bucket event subscriptions.": "通知已停用。請先啟用通知,再管理儲存貯體事件訂閱。", + "Notify is disabled. Enable notify before managing event destinations.": "通知已停用。請先啟用通知,再管理事件目標。", + "Number of retry attempts, default: 3": "重試次數,預設:3", + "OIDC Provider": "OIDC 提供者", + "OIDC Providers": "OIDC 提供者", + "OIDC Settings": "OIDC 設定", + "OIDC configuration validated successfully": "OIDC 設定驗證成功", + "OIDC provider deleted": "OIDC 提供者已刪除", + "OIDC provider saved": "OIDC 提供者已儲存", + "Object": "物件", + "Object Count": "物件數量", + "Object Detail Description": "物件詳細描述", + "Object Details": "物件詳情", + "Object Lock": "物件鎖定", + "Object Name": "物件名稱", + "Object Naming Mode": "物件命名模式", + "Object Repair": "物件修復", + "Object Sharing": "物件共享", + "Object Size": "物件大小", + "Object Tags": "物件標籤", + "Object Type": "物件類型", + "Object Version": "物件版本", + "Object Versions": "物件版本", + "Object lock is not enabled, cannot set retention": "物件鎖定未啟用,無法設定保留", + "Objects": "物件", + "Off": "關閉", + "Offline": "離線", + "On": "開啟", + "On-site Deployment": "現場部署", + "On-site Technical Service": "現場技術服務", + "One-hour Response": "一小時回應", + "Online": "線上", + "Only ZIP files are supported, and file size should not exceed 10MB": "僅支援 ZIP 檔案,檔案大小不應超過 10MB", + "Only letters, numbers, underscores, and hyphens are allowed.": "僅允許字母、數字、底線和連字號。", + "Operation Failed": "操作失敗", + "Operation failed": "操作失敗", + "Optional": "選填", + "Optional Vault namespace": "選填的 Vault 命名空間", + "Optional display name for the key": "金鑰的選填顯示名稱", + "Optional. Leave empty to let the backend apply its default role mapping.": "選填。留空時由後端套用預設角色對應。", + "Optional. Separate claim for role values (e.g. roles). Leave empty to use groups claim only.": "選填。用於角色值的獨立宣告(例如 roles)。留空則僅使用群組宣告。", + "Or continue with": "或使用以下方式繼續", + "Origin": "來源", + "Other Audiences": "其他 Audience", + "Overview": "概覽", + "Overview of replicated configuration and object replication activity.": "已複製設定和物件複製活動的概覽。", + "Overwrite Warning": "若上傳路徑中存在同名檔案,上傳將覆蓋原有檔案。", + "PULSAR_AUTH_TOKEN": "Pulsar 驗證權杖", + "PULSAR_BROKER": "Pulsar Broker", + "PULSAR_PASSWORD": "Pulsar 密碼", + "PULSAR_QUEUE_DIR": "Pulsar 佇列目錄", + "PULSAR_QUEUE_LIMIT": "Pulsar 佇列限制", + "PULSAR_TLS_ALLOW_INSECURE": "Pulsar 允許不安全 TLS", + "PULSAR_TLS_CA": "Pulsar TLS CA", + "PULSAR_TLS_HOSTNAME_VERIFICATION": "Pulsar TLS 主機名稱驗證", + "PULSAR_TOPIC": "Pulsar 主題", + "PULSAR_USERNAME": "Pulsar 使用者名稱", + "Page will refresh automatically after saving configuration": "儲存設定後頁面將自動重新整理", + "Page {current} of {total}": "第 {current} 頁,共 {total} 頁", + "Password": "密碼", + "Pause": "暫停", + "Paused": "已暫停", + "Paused (with count)": "已暫停({count})", + "Peer Sites": "對等站點", + "Peer membership and editable replication controls, aligned with the RustFS backend site replication API and MinIO-style site management flow.": "對等站點成員關係和可編輯的複製控制,與 RustFS 後端站點複製 API 及 MinIO 風格的站點管理流程保持一致。", + "Peer site": "對等站點", + "Pending": "待處理({count})", + "Pending Deletion": "刪除中", + "Performance": "效能", + "Persisted Configuration": "持久化設定", + "Platinum Service": "白金服務", + "Please Enter storage class": "請輸入儲存類型", + "Please configure your RustFS server address": "請設定您的 RustFS 伺服器位址", + "Please enter": "請輸入", + "Please enter Access Key": "請輸入存取金鑰", + "Please enter GCS credentials JSON": "請輸入 GCS 認證資訊 JSON", + "Please enter STS key": "請輸入 STS 金鑰", + "Please enter STS session token": "請輸入 STS 工作階段權杖", + "Please enter STS username": "請輸入 STS 使用者名稱", + "Please enter Secret Key": "請輸入秘密金鑰", + "Please enter the static KMS secret key (base64-encoded 32-byte AES-256 key).": "請輸入靜態 KMS 秘密金鑰(Base64 編碼的 32 位元組 AES-256 金鑰)。", + "Please enter Vault server address": "請輸入 Vault 伺服器位址", + "Please enter Vault token": "請輸入 Vault 權杖", + "Please enter Vault transit mount path": "請輸入 Vault transit 掛載路徑", + "Please enter a valid expiration time": "請輸入有效的到期時間", + "Please enter account": "請輸入帳號", + "Please enter an absolute local key directory path": "請輸入本地金鑰目錄的絕對路徑", + "Please enter both Role ID and Secret ID": "請輸入角色 ID 和 Secret ID", + "Please enter bucket": "請輸入儲存貯體", + "Please enter current password": "請輸入目前密碼", + "Please enter default key ID": "請輸入預設金鑰 ID", + "Please enter endpoint": "請輸入端點", + "Please enter key": "請輸入金鑰", + "Please enter key name": "請輸入金鑰名稱", + "Please enter name": "請輸入名稱", + "Please enter new password": "請輸入新密碼", + "Please enter new password again": "請再次輸入新密碼", + "Please enter password": "請輸入密碼", + "Please enter policy content": "請輸入政策內容", + "Please enter policy name": "請輸入政策名稱", + "Please enter prefix": "請輸入 Prefix", + "Please enter region": "請輸入區域", + "Please enter rule name": "請輸入規則名稱", + "Please enter server address": "請輸入伺服器位址", + "Please enter server address (e.g., http://localhost:9000)": "請輸入伺服器位址(例如:http://localhost:9000)", + "Please enter storage class": "請輸入儲存類型", + "Please enter suffix": "請輸入 Suffix", + "Please enter tag value": "請輸入標籤值", + "Please enter user group name": "請輸入使用者群組名稱", + "Please enter username": "請輸入使用者名稱", + "Please enter valid days": "請輸入有效的天數", + "Please enter valid health check interval": "請輸入有效的健康檢查間隔", + "Please fill in at least one configuration item": "請至少填寫一個設定項目", + "Please fill in complete retention information": "請填寫完整的保留資訊", + "Please fill in complete tag information": "請填寫完整的標籤資訊", + "Please fill in the correct format": "請填寫正確的格式", + "Please fix the form errors before saving": "請先修正表單錯誤再儲存", + "Please fix the form errors before validating": "請先修正表單錯誤再驗證", + "Please provide credentials": "請提供認證資訊", + "Please remove members first": "請先移除成員", + "Please select KMS key": "請選擇 KMS 金鑰", + "Please select a KMS key for SSE-KMS encryption": "請選擇用於 SSE-KMS 加密的 KMS 金鑰", + "Please select a ZIP file to import": "請選擇要匯入的 ZIP 檔案", + "Please select at least one event": "請至少選擇一個事件", + "Please select at least one item": "請至少選擇一項", + "Please select audit target type": "請選擇稽核目標類型", + "Please select authentication method": "請選擇驗證方法", + "Please select bucket": "請選擇儲存貯體", + "Please select encryption type": "請選擇加密類型", + "Please select event target type": "請選擇事件目標類型", + "Please select expiration date": "請選擇過期日期", + "Please select expiry date": "請選擇過期日期", + "Please select policy": "請選擇政策", + "Please select resource name": "請選擇資源名稱", + "Please select rule type": "請選擇規則類型", + "Please select storage type": "請選擇儲存類型", + "Policies": "政策", + "Policy": "政策", + "Policy Content": "政策原文", + "Policy Name": "政策名稱", + "Policy Original": "政策原文", + "Policy format invalid": "政策格式無效", + "Pool": "儲存池", + "Pool Count": "儲存池數量", + "Pool Decommission": "儲存池除役", + "Pool decommission cancel requested": "已請求取消儲存池除役", + "Pool decommission started": "儲存池除役已啟動", + "Pool overview for the current cluster state.": "展示目前叢集狀態下的儲存池概覽。", + "Prefix": "Prefix", + "Prev": "上一頁", + "Preview": "預覽", + "Preview unavailable": "預覽不可用", + "Previous": "上一頁", + "Previous Page": "上一頁", + "Priority": "優先順序", + "Private": "私有", + "Processing": "進行中", + "Processing (with count)": "進行中({count})", + "Progress": "進度", + "Prometheus": "Prometheus", + "Provide an absolute callback URL when dynamic redirect is disabled.": "關閉動態重新導向時必須提供絕對回呼 URL。", + "Provider ID": "提供者 ID", + "Provider ID is required": "提供者 ID 為必填", + "Provider ID may only contain letters, numbers, underscores, and hyphens": "提供者 ID 只能包含字母、數字、底線和連字號", + "Provides detailed performance monitoring and alerting mechanisms to help administrators understand system status in real-time and ensure system stability and reliability": "提供詳細的效能監控和警示機制,幫助管理員即時瞭解系統狀態,確保系統穩定可靠執行", + "Public": "公開", + "Public, Private, Custom": "公開、私有、自訂", + "Pulsar": "Pulsar", + "Quota Save Failed": "配額儲存失敗", + "Quota Size": "配額大小", + "Quota Warning Content": "目前選擇上傳的檔案總大小為 {total},已超過儲存貯體剩餘可用配額 {remaining}。是否繼續上傳?", + "Raw": "原始", + "Read-only OIDC settings": "唯讀 OIDC 設定", + "Read-only settings": "唯讀設定", + "Read/Write Performance": "讀/寫效能", + "Reading Folder Files": "正在讀取資料夾檔案", + "Ready": "就緒", + "Ready to import: {filename}": "準備匯入:{filename}", + "Real-time status of cluster servers and backend storage devices.": "叢集伺服器和後端儲存裝置的即時狀態。", + "Rebalance": "重新平衡", + "Rebalance Status": "重新平衡狀態", + "Rebalance must complete before decommission": "完成重新平衡後才能除役", + "Rebalance requires more than one pool in the cluster.": "重新平衡要求目前叢集至少有兩個儲存池。", + "Rebalance started": "重新平衡已啟動", + "Rebalance stop requested": "已請求停止重新平衡", + "Reconfigure KMS": "重新設定 KMS", + "Redirect URI": "重新導向 URI", + "Redirect URI is required when dynamic redirect is disabled": "關閉動態重新導向時必須填寫重新導向 URI", + "Redirect URI must be an absolute HTTP or HTTPS URL": "重新導向 URI 必須是絕對的 HTTP 或 HTTPS 位址", + "Redirect URI will be resolved dynamically at runtime.": "重新導向 URI 將在執行階段動態解析。", + "Reduced Redundancy Parity": "降低備援同位檢查", + "Reed-Solomon Matrix": "Reed-Solomon 矩陣", + "Refresh": "重新整理", + "Region": "區域", + "Reliable distributed file system": "可靠的分散式檔案系統", + "Remaining (3TB)": "剩餘(3TB)", + "Remote Site": "遠端站點", + "Remote Sites": "遠端站點", + "Remote Technical Support": "遠端技術支援", + "Remote Tiering": "遠端分層", + "Remote target not found for this rule. Refresh and try again.": "未找到該規則對應的遠端目標,請重新整理後重試。", + "Remove": "移除", + "Remove All Sites": "移除所有站點", + "Remove Encryption": "移除加密", + "Remove Site": "移除站點", + "Replicate Delete": "複製刪除", + "Replicate Delete Markers": "複製刪除標記", + "Replicate Existing Objects": "複製現有物件", + "Replicate ILM Expiry": "複製 ILM 過期規則", + "Replicated Objects": "已複製物件", + "Replicated Scope": "複製範圍", + "Replicated Size": "已複製大小", + "Replication": "複製", + "Replication Controls": "複製控制", + "Replication Summary": "複製概覽", + "Request failed": "請求失敗", + "Request timeout in seconds, default: 30": "請求逾時時間(秒),預設:30", + "Required: Vault authentication token": "必填:Vault 驗證權杖", + "Reset": "重設", + "Reset to Current Status": "重設為目前狀態", + "Reset to Default": "重設為預設", + "Reset to default successfully": "重設為預設成功", + "Response Level": "回應等級", + "Restart KMS": "重啟 KMS", + "Restart Required": "需要重啟", + "Restore Key": "還原金鑰", + "Resume": "繼續", + "Resync cancel request sent successfully": "取消重新同步請求已成功傳送", + "Resync request started successfully": "重新同步請求已成功啟動", + "Retention": "保留", + "Retention Mode": "保留模式", + "Retention Period": "保留期限", + "Retention RetainUntilDate": "保留至日期", + "Retention Save Failed": "保留儲存失敗", + "Retention Unit": "保留單位", + "The retain until date must be in the future": "保留截止時間必須是未來時間", + "Retry Attempts": "重試次數", + "Review before decommission": "除役前確認", + "Role ID": "角色 ID", + "Role Policy": "角色政策", + "Roles Claim": "角色宣告", + "Rows per page": "每頁筆數", + "Rule ID": "規則 ID", + "Running": "執行中", + "Running (Unhealthy)": "執行中(不健康)", + "Running Status": "運作狀態", + "Rust-based": "基於 Rust 的", + "RustFS": "RustFS", + "RustFS built-in cold storage": "RustFS 內建冷儲存", + "RustFS creates the internal site replication service account after the first successful join.": "首次成功加入後,RustFS 會自動建立內部站點複製服務帳號。", + "RustyVault Encryption": "RustyVault 加密", + "S3 Compatibility": "S3 相容性", + "S3 Compatible": "相容 S3", + "S3 Endpoint": "S3 端點", + "S3 Region": "S3 區域", + "SDK Support": "SDK 支援", + "SNMD Mode": "SNMD 模式", + "SNND Mode": "SNND 模式", + "SSE Settings": "SSE 設定", + "SSO Login Failed": "SSO 登入失敗", + "SSO Login Success": "SSO 登入成功", + "SSO login failed: invalid callback": "SSO 登入失敗:無效的回呼參數", + "STS Key": "STS 金鑰", + "STS Login": "STS 登入", + "STS Session Token": "STS 工作階段權杖", + "STS Username": "STS 使用者名稱", + "Saturday": "星期六", + "Save": "儲存", + "Save Configuration": "儲存設定", + "Save Failed": "儲存失敗", + "Save Success": "儲存成功", + "Save failed": "儲存失敗", + "Saved": "已儲存", + "Saving…": "儲存中…", + "Scalability": "延展性", + "Schedule Deletion": "排程刪除", + "Schedule Key Deletion": "排程刪除金鑰", + "Scopes": "範圍", + "Scopes must include openid": "Scopes 必須包含 openid", + "Search": "搜尋", + "Search Access Key": "搜尋存取金鑰", + "Search Access User": "搜尋存取使用者", + "Search Account": "搜尋帳號", + "Search Group": "搜尋使用者群組", + "Search Policy": "搜尋政策", + "Search User": "搜尋使用者", + "Search User Group": "搜尋使用者群組", + "Search buckets…": "搜尋儲存貯體…", + "Secret Configured": "已設定金鑰", + "Secret ID": "Secret ID", + "Secret Key": "秘密金鑰", + "Secret Key *": "秘密金鑰 *", + "Secret Key is required": "秘密金鑰為必填", + "Secret Key length must be between 8 and 40 characters": "秘密金鑰長度必須為 8 到 40 個字元", + "Secure & Reliable": "安全可靠", + "Secure Transport": "安全傳輸", + "Select": "選擇", + "Select File": "選擇檔案", + "Select Folder": "選擇資料夾", + "Select Group": "選擇群組", + "Select KMS key": "選擇 KMS 金鑰", + "Select a pool": "選擇一個儲存池", + "Select a pool, review its impact, then start or monitor retirement.": "選擇一個儲存池,確認影響範圍後再啟動或監控除役。", + "Select backend type": "選擇後端類型", + "Select encryption algorithm": "選擇加密演算法", + "Select encryption type": "選擇加密類型", + "Select events": "選擇事件", + "Select the KMS key to use for encryption": "選擇用於加密的 KMS 金鑰", + "Select user group members": "選擇使用者群組成員", + "Select user group policies": "選擇使用者群組政策", + "Selected Pool": "已選儲存池", + "Selected Type": "所選類型", + "Send events via Kafka": "透過 Kafka 傳送事件", + "Send events via MQTT broker": "透過 MQTT Broker 傳送事件", + "Send events via NATS": "透過 NATS 傳送事件", + "Send events via Pulsar": "透過 Pulsar 傳送事件", + "Server Address": "伺服器位址", + "Server Configuration": "伺服器設定", + "Server Host": "伺服器主機", + "Server Information": "伺服器資訊", + "Server List": "伺服器清單", + "Server configuration saved successfully": "伺服器設定儲存成功", + "Server-Side Encryption (SSE) Configuration": "伺服器端加密(SSE)設定", + "Servers": "伺服器", + "Service Account Access Key": "服務帳號存取金鑰", + "Service Email": "服務信箱", + "Service Hotline": "服務熱線", + "Service Status": "服務狀態", + "Service account and global lifecycle expiry replication settings for the site replication group.": "站點複製群組的服務帳號與全域生命週期過期複製設定。", + "Service account is automatic": "服務帳號自動建立", + "Set Bucket CORS": "設定儲存貯體 CORS", + "Set Bucket Quota": "設定儲存貯體配額", + "Set Policy": "設定政策", + "Set Retention": "設定保留", + "Set Tag": "設定標籤", + "Set Tags": "設定標籤", + "Set Up Site Replication": "設定站點複製", + "Set as default SSE key": "設為預設 SSE 金鑰", + "Set the prefix for the rule": "設定規則的 Prefix", + "Set the time cycle for the rule": "設定規則的時間週期", + "Setting prefix": "設定 Prefix", + "Settings": "設定", + "System Setting": "系統設定", + "Show Deleted Objects": "顯示已刪除的物件", + "Show Only Deleted Objects": "只顯示已刪除的物件", + "Hide Deleted Objects": "隱藏已刪除的物件", + "Deleted Objects": "已刪除的物件", + "Deleted": "已刪除", + "Showing up to {count} keys per page": "每頁最多顯示 {count} 個金鑰", + "Showing first {shown} of {total} rows": "顯示前 {shown} 筆,共 {total} 筆", + "{shown} rows": "{shown} 筆", + "Loaded {count} of up to {pageSize} keys on this page": "目前頁已載入 {count} 個,最多 {pageSize} 個物件鍵", + "Single Machine Multiple Disks": "單機多磁碟", + "Single Object": "單一物件", + "Single file supports up to 512GB, use CLI for larger files.": "單一檔案最大支援 512GB,上傳更大的檔案請使用命令列工具。", + "Single pool decommission is not supported": "單儲存池不支援除役", + "Single pool rebalance is not supported": "單儲存池不支援重新平衡", + "Site": "站點", + "Site Name": "站點名稱", + "Site Replication": "站點複製", + "Site Replication Is Not Available": "站點複製不可用", + "Site replication configuration saved": "站點複製設定已儲存", + "Sites": "站點", + "Size": "大小", + "Skip": "跳過", + "Skip TLS verification": "跳過 TLS 驗證", + "Certificate verification is disabled. Only use this for trusted networks.": "憑證驗證已停用。僅可在可信網路中使用。", + "Custom CA certificate": "自訂 CA 憑證", + "Custom CA certificate is required": "必須填寫自訂 CA 憑證", + "Default certificate verification": "預設憑證驗證", + "Paste the CA certificate in PEM format.": "請貼上 PEM 格式的 CA 憑證。", + "TLS Verification": "TLS 驗證", + "Skip to main content": "跳到主要內容", + "Sort by": "排序方式", + "Source": "來源", + "Standard AWS S3 tier": "標準 AWS S3 儲存層", + "Standard Storage Parity": "標準儲存同位檢查", + "Start Decommission": "開始除役", + "Start KMS": "啟動 KMS", + "Start KMS to make SSE and key management available.": "啟動 KMS 後才可使用 SSE 與金鑰管理功能。", + "Start Rebalance": "開始重新平衡", + "Start Resync": "開始重新同步", + "Start Upload": "開始上傳", + "Starting": "啟動中", + "State": "狀態", + "Static key configuration": "靜態金鑰設定", + "Status": "狀態", + "Status refreshed successfully": "狀態重新整理成功", + "Stop": "停止", + "Stop KMS": "停止 KMS", + "Stop rebalance": "停止重新平衡", + "Stopped": "已停止", + "Stopping": "停止中", + "Stopping KMS…": "正在停止 KMS…", + "Storage Class": "儲存類型", + "Storage Space": "儲存空間", + "Storage Type": "儲存類型", + "Storage Usage Statistics": "儲存使用統計", + "Stored token is hidden. Enter a new token only to replace it.": "已儲存的權杖已隱藏。僅在需要替換時輸入新權杖。", + "Submit": "提交", + "Subscribe to event notification": "訂閱事件通知", + "Success Status": "成功", + "Suffix": "Suffix", + "Sunday": "星期日", + "Support Level": "支援等級", + "Supported": "支援", + "Supported CPU Architecture": "支援的 CPU 架構", + "Supported OS": "支援的作業系統", + "Supports Erasure Coding": "支援糾刪碼", + "Supports HTTPS, TLS": "支援 HTTPS、TLS", + "Supports high concurrency operations": "支援高並行操作", + "Supports managing multiple storage disks on a single server to improve storage resource utilization and simplify management and maintenance": "支援在單一伺服器上管理多個儲存磁碟,以提高儲存資源利用率並簡化管理和維護", + "Sync": "同步", + "Sync delete markers to destination bucket.": "同步刪除標記到目標儲存貯體。", + "Sync delete to destination bucket.": "同步刪除到目標儲存貯體。", + "Synchronous": "同步", + "Tag": "標籤", + "Tag Delete Failed": "刪除標籤失敗:{error}", + "Tag Key": "標籤鍵", + "Tag Key Placeholder": "輸入標籤鍵", + "Tag Name": "標籤名稱", + "Tag Update Failed": "標籤更新失敗", + "Tag Update Success": "標籤更新成功", + "Tag Value": "標籤值", + "Tag Value Placeholder": "輸入標籤值", + "Tags": "標籤", + "Target Bucket": "目標儲存貯體", + "Target Pool": "目標儲存池", + "Task Completed": "任務完成", + "Task Management": "任務管理", + "Technical Parameters": "技術參數", + "Technical Training": "技術教育訓練", + "Temporary URL": "臨時連結", + "Temporary URL Expiration": "臨時連結有效期", + "Theme": "主題", + "The current site is detected automatically by the server. Add one or more remote sites to join the replication group.": "目前站點由伺服器自動檢測。請新增一個或多個遠端站點以加入複製群組。", + "The directory must be an absolute path on the server.": "該目錄必須是伺服器端的絕對路徑。", + "The exported file contains sensitive information. Please keep it secure.": "匯出的檔案包含敏感資訊,請妥善保管。", + "The secret key is shown only once. Copy or export it before closing.": "秘密金鑰只會顯示一次,請在關閉前複製或匯出。", + "The server detects the local site identity from the active RustFS deployment.": "伺服器會根據目前 RustFS 部署自動識別本地站點。", + "Multiple peers share the local site name, so the current site cannot be identified.": "多個站點使用了相同的本地站點名稱,無法識別目前站點。", + "The current site could not be identified because the server did not report its deployment ID.": "伺服器未回報其部署 ID,無法識別目前站點。", + "The two passwords are inconsistent": "兩個密碼不一致", + "The value is used only for the initial join request.": "該值僅用於初次加入請求。", + "This action cannot be undone and will bypass the normal deletion process.": "此操作無法復原,將繞過正常刪除過程。", + "This action cannot be undone.": "此操作無法復原。", + "This action retires the selected pool and should be used only after verifying rebalance has completed.": "此操作會除役所選儲存池,僅應在確認重新平衡已完成後執行。", + "This key is used as the platform default SSE key for SSE-KMS and SSE-S3.": "此金鑰將作為平台預設 SSE 金鑰,用於 SSE-KMS 和 SSE-S3。", + "This key is used as the platform default for SSE-KMS.": "該金鑰將作為平台預設的 SSE-KMS 金鑰。", + "This link will expire when your session ends or at the specified time.": "此連結將會在您的登入工作階段結束或達到指定時間後失效。", + "This permanently deletes the key immediately and cannot be undone.": "這會立即永久刪除該金鑰,且無法復原。", + "This restores the key from the pending deletion state.": "這會把金鑰從待刪除狀態還原。", + "This schedules the key for deletion using the default pending window.": "這會按預設等待視窗將金鑰標記為排程刪除。", + "This server does not provide the detailed site replication status endpoint yet.": "目前伺服器暫未提供詳細的站點複製狀態介面。", + "This server has not exposed the site replication API yet, so the page now shows a friendly fallback instead of a raw NotImplemented error.": "此伺服器尚未開放站點複製 API,因此頁面會顯示友善的降級提示,而不是原始的 NotImplemented 錯誤。", + "This user already exists": "此使用者已存在", + "This will update the current KMS configuration after key creation.": "建立金鑰後會同步更新目前 KMS 設定。", + "Thursday": "星期四", + "Tier": "儲存層", + "Tier Type": "儲存層類型", + "Tiered Storage": "分層儲存", + "Tiering Transfer": "分層傳輸", + "Tiers": "儲存層", + "Time Cycle": "時間週期", + "Timeout": "逾時時間", + "Timeout (seconds)": "逾時時間(秒)", + "Token": "權杖", + "Token Endpoint": "權杖端點", + "Top-level encryption keys used to encrypt data keys. Managed by KMS and never leave the system.": "用於加密資料金鑰的頂級加密金鑰。由 KMS 管理且永遠不會離開系統。", + "Topology": "拓撲", + "Total": "總計", + "Total Capacity": "總容量", + "Total Duration": "總時間", + "Total Files": "總檔案數", + "Total Requests": "總請求數", + "Total duration cannot exceed 7 days": "總時間不能超過 7 天", + "Track overall rebalance progress and pool-by-pool movement.": "檢視整體重新平衡進度以及各儲存池的遷移情況。", + "Transit Mount": "Transit 掛載", + "Transit Mount Path": "Transit 掛載路徑", + "Transit engine mount path, default: transit": "Transit 引擎掛載路徑,預設:transit", + "Transition": "轉換", + "Trigger custom HTTP endpoints": "觸發自訂 HTTP 端點", + "Try adjusting your search terms": "嘗試調整您的搜尋詞", + "Tuesday": "星期二", + "Two-stage key deletion": "兩段式金鑰刪除", + "Type": "類型", + "URL generated successfully": "連結產生成功", + "Unable to reach RustFS server health endpoint": "無法存取 RustFS 伺服器健康檢查端點", + "Understanding Key Types": "瞭解金鑰類型", + "Unhealthy": "異常", + "Unknown": "未知", + "Unknown Folder": "未知資料夾", + "Unlimited": "無限制", + "Unnamed Site": "未命名站點", + "Unnamed remote site": "未命名遠端站點", + "Unsupported": "不支援", + "Up to {max} files per upload": "單次最多可上傳 {max} 個檔案", + "Update Failed": "更新失敗", + "Update Key": "更新金鑰", + "Update License": "更新授權", + "Update Success": "更新成功", + "Update failed": "更新失敗", + "Update license": "更新授權", + "Update success": "更新成功", + "Update the deployment environment first before changing ENV-managed module switches.": "更改由 ENV 管理的模組開關前,請先更新部署環境。", + "Update the peer details that RustFS uses for site replication management. Fields not shown here are preserved from the current configuration.": "更新 RustFS 用於站點複製管理的對等站點詳情。此處未顯示的欄位會保留目前設定。", + "Updated At": "更新時間", + "Updated successfully": "更新成功", + "Upload": "上傳", + "Upload File": "上傳檔案", + "Upload files or create folders to populate this bucket.": "上傳檔案或建立資料夾以填充此儲存貯體。", + "Uploading Status": "上傳中", + "Uptime": "正常運作時間", + "Usage": "使用率", + "Usage Report": "使用報告", + "Use AppRole authentication": "使用 AppRole 驗證", + "Use Dynamic Redirect URI": "使用動態重新導向 URI", + "Use Main Account Policy": "使用主帳號政策", + "Use TLS": "使用 TLS", + "Use Vault token for authentication": "使用 Vault 權杖進行驗證", + "Use comma-separated scopes. The openid scope is required.": "使用逗號分隔多個 scope,且必須包含 openid。", + "Use decimal values such as 384 for 0o600.": "請使用十進位值,例如 384 表示 0o600。", + "Use main account policy": "使用主帳號政策", + "Use the remote RustFS API endpoint, including protocol and port if needed.": "使用遠端 RustFS API 端點,必要時包含通訊協定和連接埠。", + "Used": "已使用", + "Used (7TB)": "已使用(7TB)", + "Used Capacity": "已使用容量", + "Usable Capacity Used": "已使用可用容量", + "User Groups": "使用者群組", + "User Name": "使用者名稱", + "Username Claim": "使用者名稱宣告", + "Users": "使用者", + "Validate": "驗證", + "Validating…": "驗證中…", + "Validation failed": "驗證失敗", + "Validity": "有效期", + "Vault AppRole is not supported in the first version of this console.": "目前主控台首版不支援 Vault AppRole。", + "Vault Namespace": "Vault 命名空間", + "Vault Server": "Vault 伺服器", + "Vault Server Address": "Vault 伺服器位址", + "Vault Token": "Vault 權杖", + "Vault token authentication only": "僅支援 Vault 權杖驗證", + "Version": "版本", + "Version 2.0, January 2004": "2.0 版,2004 年 1 月", + "Version Control": "版本控制", + "VersionId": "版本 ID", + "Versions": "版本數", + "View Details": "檢視詳情", + "View Documentation": "檢視文件", + "View and manage persisted OIDC providers.": "檢視並管理持久化的 OIDC 提供者。", + "Virtualization Platform Support": "虛擬化平台支援", + "Visit website": "前往官網", + "WARNING: This will immediately delete the key": "警告:這將立即刪除金鑰", + "WEBHOOK_AUTH_TOKEN": "Webhook 驗證權杖", + "WEBHOOK_CLIENT_CA": "Webhook 用戶端 CA", + "WEBHOOK_CLIENT_CERT": "Webhook 用戶端憑證", + "WEBHOOK_CLIENT_KEY": "Webhook 用戶端金鑰", + "WEBHOOK_ENDPOINT": "Webhook 端點", + "WEBHOOK_QUEUE_DIR": "Webhook 佇列目錄", + "WEBHOOK_QUEUE_LIMIT": "Webhook 佇列限制", + "WEBHOOK_SKIP_TLS_VERIFY": "Webhook 跳過 TLS 驗證", + "WORM": "WORM(一次寫入多次讀取)", + "Waiting": "等待中", + "Warning": "警告", + "Webhook": "Webhook", + "Wednesday": "星期三", + "Weekly MB/s Change Trend": "每週 MB/s 變化趨勢", + "When enabled, lifecycle expiry rule metadata is propagated to every peer site in the group.": "啟用後,生命週期過期規則中繼資料會同步到群組內所有對等站點。", + "When the backend implements the site replication info endpoint, this page will automatically show peer sites, status summaries, and management actions.": "後端實現站點複製資訊端點後,此頁面會自動顯示對等站點、狀態摘要和管理操作。", + "X-Amz-Algorithm": "X-Amz-Algorithm", + "X-Amz-Content-Sha256": "X-Amz-Content-Sha256", + "X-Amz-Credential": "X-Amz-Credential", + "X-Amz-Date": "X-Amz-Date", + "X-Amz-Expires": "X-Amz-Expires", + "X-Amz-Security-Token": "X-Amz-Security-Token", + "X-Amz-Signature": "X-Amz-Signature", + "X-Amz-SignedHeaders": "X-Amz-SignedHeaders", + "X-Amz-Target": "X-Amz-Target", + "YEARS": "年", + "YYYY-MM-DD": "YYYY-MM-DD", + "YYYY-MM-DD HH:mm": "YYYY-MM-DD HH:mm", + "YYYY-MM-DD HH:mm:ss": "YYYY-MM-DD HH:mm:ss", + "YYYY-MM-DDTHH:mm": "YYYY-MM-DDTHH:mm", + "Year": "年", + "Yes": "是", + "You can still adjust this setting later from the site replication overview page.": "之後仍可在站點複製概覽頁調整此設定。", + "You do not have permission to access this page. This may be due to insufficient permissions or not being logged in.": "您沒有存取該頁面的權限,可能是權限不足或未登入。", + "You do not have permission to update OIDC providers.": "您沒有更新 OIDC 提供者的權限。", + "You do not have permission to update module switches.": "您沒有更新模組開關的權限。", + "You have unsaved OIDC changes. Do you want to discard them?": "您有未儲存的 OIDC 更改,是否要放棄?", + "Your browser does not support the audio tag": "您的瀏覽器不支援 audio 標籤", + "Your browser does not support the video tag": "您的瀏覽器不支援 video 標籤", + "Your session has expired. Please log in again.": "您的工作階段已過期。請重新登入。", + "a": "a", + "animationComplete": "動畫完成", + "animationStart": "動畫開始", + "button": "按鈕", + "canceled": "已取消", + "change": "修改", + "changePoliciesSuccess": "修改政策成功", + "close": "關閉", + "content-length": "內容長度", + "div": "div", + "e.g., app-default": "例如:app-default", + "e.g., https://vault.example.com:8200": "例如:https://vault.example.com:8200", + "empty is indicates permanent validity": "留空表示永久有效", + "en-US": "en-US", + "failed": "失敗", + "in progress": "進行中", + "notice": "注意", + "password length cannot be less than 8 characters and greater than 16 characters": "密碼長度不能少於 8 個字元且不能大於 16 個字元", + "password length cannot be less than 8 characters and greater than 40 characters": "密碼長度不能少於 8 個字元且不能超過 40 個字元", + "paused": "已暫停", + "plain": "純文字", + "preview": "預覽", + "refresh-parent": "refresh-parent", + "rustfs-master": "rustfs-master", + "rustfs/kms/keys": "rustfs/kms/keys", + "s3fs": "s3fs", + "saved": "已儲存", + "search": "搜尋", + "secret": "secret", + "sha256": "sha256", + "site": "站點", + "sites": "站點", + "submit": "提交", + "success": "成功", + "transit": "transit", + "update:name": "update:name", + "update:show": "update:show", + "update:visible": "update:visible", + "username length cannot be less than 3 characters and greater than 128 characters": "使用者名稱長度不能少於 3 個字元且不能超過 128 個字元", + "username length cannot be less than 8 characters and greater than 16 characters": "使用者名稱長度不能少於 8 個字元且不能大於 16 個字元", + "waiting": "等待中", + "Completed Status": "已完成", + "Active Pool": "目前儲存池", + "Bytes Failed": "失敗位元組數", + "Complete": "完成", + "Current Size": "目前大小", + "ID": "ID", + "Objects Failed": "失敗物件數", + "Start Size": "開始大小", + "Start Time": "開始時間", + "Bandwidth Unit": "頻寬單位", + "Clear search": "清除搜尋", + "Policy Statement must be an array": "Policy Statement 必須是陣列", + "Policy format is invalid. Please check the JSON syntax.": "Policy 格式無效,請檢查 JSON 語法。", + "Policy must be a valid JSON object": "Policy 必須是有效的 JSON 物件", + "Preparing download": "正在準備下載", + "User menu": "使用者選單", + "Cleanup Warnings": "清理警告", + "Failed to load objects": "載入物件失敗", + "Access Key cannot contain spaces": "存取金鑰不能包含空格", + "Name can only contain letters, numbers, underscores and hyphens, and must start with a letter": "名稱只能包含字母、數字、底線和連字號,並且必須以字母開頭", + "Name must be at most 32 characters": "名稱最多 32 個字元", + "Queued": "排隊中", + "Remaining Bytes": "剩餘位元組數", + "Current Object": "目前物件", + "Waiting Reason": "等待原因", + "Selection Locked": "選擇已鎖定", + "Decommission cleared": "除役紀錄已清理", + "Failed to clear decommission": "清理除役紀錄失敗", + "Clear Decommission": "清理除役", + "All": "全部", + "All reported servers and disks are online.": "已回報的伺服器和磁碟均已上線。", + "Expected": "預期", + "Reported": "已回報", + "Unreported": "未回報", + "The reported health rows do not cover the full cluster topology.": "已回報的健康狀態未覆蓋完整的叢集拓撲。", + "Check your connection, then refresh the status page.": "請檢查連線,然後重新整理狀態頁。", + "Cluster Health": "叢集健康狀態", + "Cluster information": "叢集資訊", + "Current Scan Started": "目前掃描開始於", + "Degraded": "降級", + "Endpoint, ascending": "端點,升序", + "Endpoint, descending": "端點,降序", + "Filter servers": "篩選伺服器", + "Initializing": "初始化中", + "Inventory": "資源概覽", + "Last Completed Scan": "上次完成掃描", + "Last refreshed": "上次重新整理", + "Needs attention": "需要關注", + "Needs attention first": "需要關注的優先", + "No drive information was reported for this server.": "該伺服器未回報磁碟資訊。", + "No server information was reported.": "未回報伺服器資訊。", + "No servers match the current filter": "目前篩選條件下沒有伺服器", + "Offline or degraded resources require attention.": "離線或降級資源需要處理。", + "Parity and backend settings reported by the cluster.": "叢集回報的同位與後端設定。", + "Refresh to try again.": "請重新整理後重試。", + "Refreshing…": "正在重新整理…", + "Review capacity pressure and scanner activity in one place.": "集中檢視容量壓力和掃描器活動。", + "Scan Duration": "掃描時間", + "Scanner metrics": "掃描器指標", + "Show all servers": "顯示全部伺服器", + "Some resource health data is unavailable or still initializing.": "部分資源健康資料不可用或仍在初始化。", + "Some status data is unavailable.": "部分狀態資料不可用。", + "Storage Configuration": "儲存設定", + "Storage Usage and Scanner": "儲存用量與掃描器", + "Storage usage is unavailable for this account.": "目前帳號無權檢視儲存用量。", + "Unable to load cluster status. Check your connection and refresh.": "無法載入叢集狀態。請檢查連線後重新整理。", + "Unavailable": "不可用", + "Uptime, longest first": "運作時間最長優先", + "Uptime, shortest first": "運作時間最短優先", + "Previously loaded values may be stale.": "之前載入的值可能已過期。", + "Scanner Status": "掃描器狀態", + "Scanning": "掃描中", + "Never run": "從未執行", + "Access & Sharing": "存取與共享", + "Add key-value metadata for organization and automation.": "新增用於管理和自動化的鍵值中繼資料。", + "Automation": "自動化", + "Bucket Settings": "儲存貯體設定", + "Capacity & Metadata": "容量與中繼資料", + "Configuration changed. Refresh and try again.": "設定已變更,請重新整理後重試。", + "Configuration unavailable": "設定不可用", + "Configure event delivery, object lifecycle, and replication rules.": "設定事件通知、物件生命週期和複製規則。", + "Control who can access this bucket and which browser origins are allowed.": "控制誰可以存取此儲存貯體,以及允許哪些瀏覽器來源。", + "Controls anonymous and authenticated access to objects in this bucket.": "控制對此儲存貯體中物件的匿名存取和身分驗證存取。", + "Controls which web origins can send cross-origin requests to this bucket.": "控制哪些 Web 來源可以向此儲存貯體傳送跨來源請求。", + "Copy objects to another bucket or site.": "將物件複製到其他儲存貯體或站點。", + "Data Protection": "資料保護", + "Delete Event Subscription": "刪除事件訂閱", + "Delete Rule": "刪除規則", + "Encrypts new objects at rest by default.": "預設對新物件進行靜態加密。", + "Enter a valid positive quota.": "請輸入有效的正數配額。", + "Event subscriptions unavailable": "事件訂閱不可用", + "Expire": "過期", + "Gi": "Gi", + "GiB": "GiB", + "Jump to section": "跳至區段", + "Keep previous object versions and recover from overwrites or deletes.": "保留物件的歷史版本,並可從覆蓋或刪除中復原。", + "Lifecycle rules unavailable": "生命週期規則不可用", + "Limits the total data stored in this bucket.": "限制此儲存貯體可儲存的資料總量。", + "Loading": "載入中", + "Manage encryption, versioning, object lock, and default retention.": "管理加密、版本控制、物件鎖定和預設保留政策。", + "No event subscriptions": "尚無事件訂閱", + "No lifecycle rules": "尚無生命週期規則", + "No replication rules": "尚無複製規則", + "Notify status unavailable": "通知狀態不可用", + "Open": "開啟", + "Protects object versions from deletion during a retention period.": "防止在保留期內刪除物件版本。", + "Quota Unit": "配額單位", + "Replication rules unavailable": "複製規則不可用", + "Requires Object Lock": "需要啟用物件鎖定", + "Retention protects object versions from deletion during the configured period. It does not automatically delete them when the period ends, and lifecycle expiration cannot delete protected versions early. Use a lifecycle expiration rule to remove object versions after retention expires.": "保留政策會在設定的期限內保護物件版本不被刪除。保留期結束時不會自動刪除這些版本,生命週期過期規則也無法提前刪除仍受保護的版本。如需在保留期結束後移除物件版本,請設定生命週期過期規則。", + "Save CORS": "儲存 CORS", + "Save Encryption": "儲存加密設定", + "Save Policy": "儲存政策", + "Save Quota": "儲存配額", + "Save Retention": "儲存保留政策", + "Save Tag": "儲存標籤", + "Send notifications when objects change.": "物件發生變化時傳送通知。", + "Set a storage limit and organize this bucket with tags.": "設定儲存容量上限,並使用標籤管理此儲存貯體。", + "Sets the default retention mode and period for new object versions.": "設定新物件版本的預設保留模式和保留期。", + "Tag key already exists": "標籤鍵已存在", + "The replication target was created but could not be rolled back.": "已建立複製目標,但無法復原。", + "The rule was deleted, but the remote target could not be removed.": "規則已刪除,但無法移除遠端目標。", + "This subscription has no stable ID. Refresh before deleting it.": "此訂閱沒有穩定 ID,請重新整理後再刪除。", + "Transition or expire objects automatically.": "自動轉換物件儲存類型或使其過期。", + "Unable to load event subscriptions. Refresh before making changes.": "無法載入事件訂閱,請重新整理後再進行更改。", + "Unable to load lifecycle rules. Refresh before making changes.": "無法載入生命週期規則,請重新整理後再進行更改。", + "Unable to load replication rules. Refresh before making changes.": "無法載入複製規則,請重新整理後再進行更改。", + "Unable to load this setting. Refresh before making changes.": "無法載入此設定,請重新整理後再進行更改。", + "Unable to verify whether notify is enabled. Refresh before making changes.": "無法驗證通知是否已啟用,請重新整理後再進行更改。", + "Unnamed rule": "未命名規則", + "Unnamed subscription": "未命名訂閱", + "Versioning": "版本控制", + "Versioning can be suspended but existing versions are preserved.": "可以暫停版本控制,但現有版本將保留。", + "Versioning stays enabled while Object Lock is active.": "啟用物件鎖定期間,版本控制將保持啟用。", + "bucket": "儲存貯體", + "The remote target may have been saved. Review the replication configuration before retrying.": "遠端目標可能已儲存。重試前請檢查複製設定。", + "Public access can expose objects to anyone allowed by the policy. Review it before saving.": "公開存取可能會向政策允許的任何人公開物件,儲存前請仔細檢查。", + "Removes the bucket policy. IAM and credential-based access still apply.": "移除儲存貯體政策。IAM 和基於認證資訊的存取仍然有效。", + "Uses the JSON policy below. Invalid statements can block access.": "使用下方的 JSON 政策。無效的語句可能會阻止存取。", + "Uses the selected KMS key to encrypt new objects.": "使用所選 KMS 金鑰加密新物件。", + "Uses server-managed keys to encrypt new objects.": "使用伺服器管理的金鑰加密新物件。", + "Retention cannot be shortened or bypassed until it expires.": "保留期到期前無法縮短或繞過。", + "Authorized users can bypass or shorten retention when necessary.": "授權使用者可在必要時繞過或縮短保留期。", + "Unable to load versioning status.": "無法載入版本控制狀態。", + "Unable to load storage tiers.": "無法載入儲存層。", + "Unable to load event targets.": "無法載入事件目標。", + "Changing KMS service state may briefly interrupt SSE requests.": "更改 KMS 服務狀態可能會短暫中斷 SSE 請求。", + "KMS will be stopped. SSE and key management will be unavailable until you start KMS again.": "KMS 將停止。在重新啟動 KMS 之前,SSE 和金鑰管理將不可用。", + "You have unsaved KMS changes. Do you want to discard them?": "KMS 有未儲存的更改。是否放棄這些更改?", + "The base64-encoded 32-byte AES-256 key used to derive data encryption keys.": "用於衍生資料加密金鑰的 Base64 編碼 32 位元組 AES-256 金鑰。", + "The operation result is uncertain. Current status has been refreshed.": "操作結果尚不確定,目前狀態已重新整理。", + "Please enter a Local KMS master key.": "請輸入本地 KMS 主金鑰。", + "Enter this every time you save Local KMS configuration. It is never shown or retained.": "每次儲存本地 KMS 設定時都需要輸入。該金鑰不會顯示或保留。", + "Local filesystem KMS configuration is read-only in Console until safe master-key rotation is available.": "在支援安全輪替主金鑰之前,主控台中的本地檔案系統 KMS 設定為唯讀。", + "Set a default key for Local KMS in server configuration.": "請在伺服器設定中為本地 KMS 設定預設金鑰。", + "An operation is still in progress. Wait for it to finish before leaving this page.": "操作仍在進行中,請等待完成後再離開此頁面。", + "Save or discard KMS configuration changes before setting a newly created default key.": "將新增金鑰設為預設金鑰前,請先儲存或放棄 KMS 設定更改。", + "Current": "目前", + "Restore": "還原", + "Restore Failed": "還原失敗", + "Restore Success": "還原成功", + "Restore Version": "還原版本", + "This will copy the selected historical version and make it the current object version.": "這會複製選取的歷史版本,並將其設為目前物件版本。", + "New object name must be different": "新物件名稱必須不同", + "Object name cannot contain slashes": "物件名稱不能包含斜線", + "Object name is required": "物件名稱不能為空", + "Object renamed": "物件已重新命名", + "Rename": "重新命名", + "Rename Failed": "重新命名失敗", + "Rename Object": "重新命名物件", + "Renaming object": "正在重新命名物件", + "Filter loaded objects": "篩選已載入物件", + "Loaded {count} objects": "已載入 {count} 個物件", + "Filtering and sorting apply to loaded objects": "篩選和排序作用於已載入物件", + "Loaded objects only": "僅已載入物件", + "Load next objects": "載入下一批物件", + "All objects loaded": "已載入所有物件", + "Failed to load more objects. Loaded objects remain available.": "無法載入更多物件。已載入的物件仍然可用。", + "Retry": "重試", + "Loading more objects": "正在載入更多物件", + "Scroll to load more objects": "捲動以載入更多物件", + "Back to top": "回到頂部", + "Go to bottom": "直達底部", + "Current version expiration creates a delete marker. Configure non-current version expiration to permanently remove object data.": "目前版本過期時會建立刪除標記。請設定非目前版本過期規則,以永久刪除物件資料。", + "2 lifecycle rules will be created.": "將建立 2 條生命週期規則。", + "Lifecycle configuration cannot contain more than 1000 rules.": "生命週期設定不能包含超過 1000 條規則。", + "Cluster diagnostics": "叢集診斷", + "Last error": "最近錯誤", + "Last successful update": "最近成功更新時間", + "Listing and Metacache": "清單與中繼資料快取", + "No issue was reported by this source.": "此狀態來源未回報問題。", + "Peer Health": "節點健康", + "Previously reported data may be out of date.": "此前回報的資料可能已經過期。", + "Review peer, storage, usage, and listing health independently.": "分別檢查節點、儲存、用量和清單服務的健康狀態。", + "Set": "糾刪碼集", + "Stale": "已過期", + "Status Sources": "狀態來源", + "Storage Readiness": "儲存就緒狀態", + "This status source requires attention.": "此狀態來源需要處理。", + "This status source was not reported by the server.": "伺服器未回報此狀態來源。", + "Usage Freshness": "用量資料新鮮度", + "Troubleshooting": "疑難排解", + "Check listing timeout and storage latency before treating this as a disk failure.": "在判斷為磁碟故障前,請先檢查清單逾時和儲存延遲。", + "Not reported": "未回報", + "Workload Admission": "工作負載准入", + "The server reported this status source with an unknown condition.": "伺服器回報了此狀態來源,但狀態條件未知。", + "Historical internode stall timeouts": "歷史節點間停頓逾時", + "This lifetime counter has no sampling window and does not indicate current degradation by itself.": "此生命週期累計計數沒有採樣視窗,不能單獨說明目前處於降級狀態。", + "Backend guidance": "後端提示", + "Open the real multi-node metrics verification guide": "開啟真實多節點指標確認指南", + "Correlate time-windowed walk_dir metrics and metacache logs before treating listing symptoms as a disk failure.": "在將清單症狀判斷為磁碟故障前,請關聯時間視窗內的 walk_dir 指標和中繼資料快取日誌。", + "Review peer, storage, usage, listing, and workload admission health independently.": "分別檢查節點、儲存、用量、清單服務和 Workload Admission 狀態。", + "Diagnostic Details": "診斷詳情", + "Diagnostic items need confirmation": "項診斷狀態需要確認", + "All reported diagnostics are healthy.": "所有已回報的診斷均正常。", + "No diagnostic sources were reported by the server.": "伺服器未回報診斷來源。", + "Expand": "展開", + "Collapse": "收起", + "Cluster is healthy": "叢集運作正常", + "Cluster needs attention": "叢集需要關注", + "Cluster status is incomplete": "叢集狀態資訊不完整", + "A job ID is returned after starting an async transition job.": "啟動非同步轉換任務後會傳回任務 ID。", + "Cancel Job": "取消任務", + "Dry Run": "模擬執行", + "Job ID": "任務 ID", + "Job ID is required": "任務 ID 不能為空", + "Manual Transition": "手動轉換", + "Max Objects": "最大物件數", + "Paste an existing job ID to refresh or cancel it.": "貼上現有任務 ID 以重新整理或取消任務。", + "Refresh Status": "重新整理狀態", + "Run lifecycle transition manually": "手動執行生命週期轉換", + "Scan and report without moving objects.": "僅掃描並產生報告,不移動物件。", + "Scanned": "已掃描", + "Skipped": "已跳過", + "Source Bucket": "來源儲存貯體", + "Start Job": "啟動任務", + "Start a durable background job for objects in a source bucket that should transition to this tier.": "為來源儲存貯體中應轉換到此儲存層的物件啟動一個持久背景任務。", + "Target Tier": "目標儲存層", + "Tier Failures": "儲存層轉換失敗", + "Transition Job Status": "轉換任務狀態", + "Transition job cancelled": "轉換任務已取消", + "Transition job failed": "轉換任務失敗", + "Transition job started": "轉換任務已啟動", + "Transitioned": "已轉換", + "Unable to cancel transition job": "無法取消轉換任務", + "Unable to load transition job": "無法載入轉換任務", + "Local KMS is intended for evaluation only. Keys created without a server-managed master key are stored using plaintext development mode. Do not use this backend for production data.": "Local KMS 僅供評估測試使用。未由伺服器端主金鑰保護的金鑰會以明文開發模式儲存,請勿將此後端用於生產資料。", + "Local KMS is intended for evaluation only. The key directory and file permissions are locked after configuration; changing or rotating the local master key is not supported.": "Local KMS 僅供評估測試使用。設定後金鑰目錄和檔案權限將被鎖定;目前不支援更改或輪替本地主金鑰。", + "KMS configuration changed": "KMS 設定已變更", + "KMS configuration changed on the server. Reset the form to the current status before saving.": "伺服器上的 KMS 設定已變更。請先將表單重設為目前狀態再儲存。", + "Unsupported KMS backend": "不支援的 KMS 後端", + "This KMS backend is not supported by this Console version. Upgrade Console before reconfiguring KMS.": "此主控台版本不支援這個 KMS 後端。請先升級主控台再重新設定 KMS。", + "Console cannot safely edit a newer or unknown KMS backend type.": "主控台無法安全編輯較新或未知的 KMS 後端類型。", + "Local KMS key files must use owner-only permissions such as 384 for 0o600.": "Local KMS 金鑰檔案必須使用僅限擁有者的權限,例如 384 表示 0o600。", + "Key created but could not update the default SSE key. The new key ID has been placed in the default key field so you can retry saving the configuration.": "金鑰已建立,但無法更新預設 SSE 金鑰。新金鑰 ID 已填入預設金鑰欄位,可重新嘗試儲存設定。", + "Add a logical namespace inside": "在以下位置新增邏輯命名空間:", + "Catalog URI": "Catalog URI", + "Catalog backing": "Catalog 儲存", + "Catalog contract": "Catalog 契約", + "Catalog endpoint": "Catalog 端點", + "Catalog-vended temporary credentials": "由 Catalog 核發的臨時認證資訊", + "Client connection": "用戶端連線", + "Client-provided S3 credentials": "用戶端提供 S3 認證資訊", + "Committed table snapshots from metadata.": "來自中繼資料的已提交資料表快照。", + "Connect": "連線", + "Copy catalog URI": "複製 Catalog URI", + "Create a bucket first, then enable it as a table bucket from this page.": "請先建立儲存貯體,再在此頁面將其啟用為資料表儲存貯體。", + "Create a namespace before creating an Iceberg table.": "建立 Iceberg 資料表前請先建立命名空間。", + "Create a table in this namespace to start publishing data.": "在此命名空間建立資料表後即可開始發布資料。", + "Create an Iceberg table in": "在以下位置建立 Iceberg 資料表:", + "Create bucket": "建立儲存貯體", + "Create namespace": "建立命名空間", + "Create table": "建立資料表", + "Creating…": "建立中…", + "Credential mode": "認證資訊模式", + "Credentials stay with your client": "認證資訊保留在用戶端", + "Current schema": "目前 Schema", + "Current snapshot": "目前快照", + "Drop": "刪除", + "Drop namespace": "刪除命名空間", + "Drop table": "刪除資料表", + "Each namespace level must be 64 characters or fewer.": "每個命名空間層級最多 64 個字元。", + "Enable": "啟用", + "Enable table bucket": "啟用資料表儲存貯體", + "Enable this bucket to create namespaces and tables.": "啟用此儲存貯體後即可建立命名空間和資料表。", + "Enabling registers the existing S3 bucket as an Iceberg REST Catalog warehouse. Existing objects are not deleted.": "啟用會將現有 S3 儲存貯體註冊為 Iceberg REST Catalog warehouse,不會刪除已有物件。", + "Format version": "格式版本", + "Iceberg REST Catalog": "Iceberg REST Catalog", + "Iceberg metadata and data are managed through this table bucket.": "Iceberg 中繼資料和資料透過此資料表儲存貯體管理。", + "Iceberg namespaces": "Iceberg 命名空間", + "Iceberg struct schema in REST Catalog JSON format. Field IDs are preserved by the server.": "使用 REST Catalog JSON 格式的 Iceberg struct schema,欄位 ID 會由伺服器端保留。", + "Iceberg tables": "Iceberg 資料表", + "Identifier": "識別碼", + "Leave blank to let RustFS place metadata and data inside this table bucket.": "留空則由 RustFS 將中繼資料和資料放在此資料表儲存貯體中。", + "Loading bucket status…": "正在載入儲存貯體狀態…", + "Loading table catalog…": "正在載入資料表 Catalog…", + "Loading table details…": "正在載入資料表詳情…", + "Location (optional)": "位置(選填)", + "Manage Iceberg REST Catalog table buckets, namespaces, and tables.": "管理 Iceberg REST Catalog 的資料表儲存貯體、命名空間和資料表。", + "Metadata location": "中繼資料位置", + "Manage buckets": "管理儲存貯體", + "Namespace": "命名空間", + "Namespace created": "命名空間已建立", + "Namespace creation failed": "命名空間建立失敗", + "Namespace dropped": "命名空間已刪除", + "Namespaces": "命名空間", + "Namespaces group tables and carry optional catalog properties.": "命名空間用於分組資料表,並可攜帶 Catalog 屬性。", + "No S3 buckets": "沒有 S3 儲存貯體", + "No matching buckets.": "沒有符合的儲存貯體。", + "No matching tables": "沒有符合的資料表", + "No namespaces": "沒有命名空間", + "No schema fields": "沒有 Schema 欄位", + "No snapshots": "沒有快照", + "No tables": "沒有資料表", + "Not enabled": "未啟用", + "Open a table to inspect metadata, snapshots, and recovery evidence.": "開啟資料表以檢視中繼資料、快照和復原證據。", + "Properties": "屬性", + "Properties (optional)": "屬性(選填)", + "Properties must be a JSON object": "屬性必須是 JSON 物件", + "Protected": "受保護", + "Provide a flat JSON object. Values are stored as strings.": "請輸入扁平 JSON 物件,值將以字串儲存。", + "PyIceberg example": "PyIceberg 範例", + "References": "引用數", + "Required": "必填", + "S3 Tables": "S3 Tables", + "S3 bucket": "S3 儲存貯體", + "Schema": "Schema", + "Schema fields": "Schema 欄位", + "Schema must be valid JSON.": "Schema 必須是有效 JSON。", + "Schema must contain a struct type and a fields array.": "Schema 必須包含 struct 類型和 fields 陣列。", + "Scoped credentials available": "可用範圍認證資訊", + "Search buckets": "搜尋儲存貯體", + "Search table buckets": "搜尋資料表儲存貯體", + "Search tables": "搜尋資料表", + "Select an S3 bucket to inspect its catalog.": "選擇一個 S3 儲存貯體檢視其 Catalog。", + "Select namespace": "選擇命名空間", + "Snapshot references": "快照引用", + "Snapshots": "快照", + "Table": "資料表", + "Table UUID": "資料表 UUID", + "Table bucket enabled": "資料表儲存貯體已啟用", + "Table bucket status is unavailable.": "無法取得資料表儲存貯體狀態。", + "Table buckets": "資料表儲存貯體", + "Table catalog status": "資料表 Catalog 狀態", + "Table created": "資料表已建立", + "Table creation failed": "資料表建立失敗", + "Table details": "資料表詳情", + "Table dropped": "資料表已刪除", + "Table metadata": "資料表中繼資料", + "Table name": "資料表名稱", + "Tables": "資料表", + "The table catalog could not be loaded.": "無法載入資料表 Catalog。", + "The table catalog is unavailable.": "無法取得資料表 Catalog。", + "This bucket is not table-enabled": "此儲存貯體尚未啟用資料表功能", + "This deployment currently requires client-provided S3 credentials. The Console never displays or stores a second secret here.": "目前部署要求用戶端提供 S3 認證資訊,主控台不會在此顯示或儲存第二份秘密金鑰。", + "This removes the catalog entry. Data files are not purged by this action.": "這會刪除 Catalog 條目,不會清理資料檔案。", + "This removes the namespace entry. Tables must be removed first.": "這會刪除命名空間條目,必須先刪除其中的資料表。", + "This table has no fields in its current schema.": "此資料表的目前 Schema 沒有欄位。", + "This table has not committed a snapshot yet.": "此資料表尚未提交快照。", + "This will register the existing bucket as an Iceberg table bucket.": "這會將現有儲存貯體註冊為 Iceberg 資料表儲存貯體。", + "Try a different table name.": "請嘗試其他資料表名稱。", + "Unable to create namespace": "無法建立命名空間", + "Unable to create table": "無法建立資料表", + "Unable to drop namespace.": "無法刪除命名空間。", + "Unable to drop table.": "無法刪除資料表。", + "Unable to enable table bucket.": "無法啟用資料表儲存貯體。", + "Unable to list S3 buckets.": "無法列出 S3 儲存貯體。", + "Unable to load namespaces": "無法載入命名空間", + "Unable to load namespaces.": "無法載入命名空間。", + "Unable to load table details": "無法載入資料表詳情", + "Unable to load tables": "無法載入資料表", + "Unable to load tables.": "無法載入資料表。", + "Use dots for nested levels. RustFS stores the REST separator as %1F.": "巢狀層級使用點號。RustFS 將 REST 分隔符儲存為 %1F。", + "Use lowercase letters, numbers, hyphens, or underscores.": "請使用小寫字母、數字、連字號或底線。", + "Use lowercase letters, numbers, hyphens, or underscores; separate levels with dots.": "請使用小寫字母、數字、連字號或底線,並用點號分隔層級。", + "Use the Iceberg REST Catalog endpoint with your existing S3 credentials.": "使用現有 S3 認證資訊連線 Iceberg REST Catalog 端點。", + "User-defined": "使用者定義", + "View": "檢視", + "Warehouse": "倉儲", + "Warehouse location": "倉儲位置", + "You do not have permission to manage namespaces.": "您沒有管理命名空間的權限。", + "namespaces": "個命名空間", + "A stable warehouse location for view metadata.": "檢視表中繼資料的穩定倉儲位置。", + "At least one update is required.": "至少需要一項更新。", + "Commit JSON is invalid.": "Commit JSON 無效。", + "Commit table": "提交資料表", + "Committing…": "提交中…", + "Create a view in this namespace to expose SQL.": "在此命名空間建立檢視表以提供 SQL。", + "Create and replace SQL views registered in this namespace.": "建立和替換註冊在此命名空間中的 SQL 檢視表。", + "Create view": "建立檢視表", + "Current view version": "目前檢視表版本", + "Drop view": "刪除檢視表", + "Edit namespace": "編輯命名空間", + "Edit view": "編輯檢視表", + "For example, spark or trino.": "例如 spark 或 trino。", + "Iceberg views": "Iceberg 檢視表", + "Loading namespace…": "正在載入命名空間…", + "Loading view details…": "正在載入檢視表詳情…", + "Location": "位置", + "Manage Iceberg REST Catalog table buckets, namespaces, tables, and views.": "管理 Iceberg REST Catalog 的資料表儲存貯體、命名空間、資料表和檢視表。", + "Namespace update failed": "命名空間更新失敗", + "Namespace updated": "命名空間已更新", + "No SQL representations": "沒有 SQL 定義", + "No matching views": "沒有符合的檢視表", + "No view versions": "沒有檢視表版本", + "No views": "沒有檢視表", + "Permission required": "需要權限", + "Provide a JSON array of standard Iceberg table updates.": "請輸入標準 Iceberg 資料表更新 JSON 陣列。", + "Requirements": "要求", + "Requirements (optional)": "要求(選填)", + "SQL dialect": "SQL 方言", + "SQL dialect is required.": "SQL 方言不能為空。", + "SQL query": "SQL 查詢", + "SQL query is required.": "SQL 查詢不能為空。", + "SQL representations": "SQL 定義", + "Save changes": "儲存更改", + "Search views": "搜尋檢視表", + "Table commit failed": "資料表提交失敗", + "Table commit succeeded": "資料表提交成功", + "The SQL representation clients will execute.": "用戶端將執行的 SQL 定義。", + "The table UUID assertion is prefilled to prevent committing to another table.": "已預填資料表 UUID 斷言,防止提交到其他資料表。", + "This removes the view catalog entry. Existing data is not changed.": "這會刪除檢視表 Catalog 條目,不會更改現有資料。", + "This view has no SQL definition.": "此檢視表沒有 SQL 定義。", + "This view has no version history.": "此檢視表沒有版本歷史。", + "Try a different view name.": "請嘗試其他檢視表名稱。", + "Unable to commit table": "無法提交資料表", + "Unable to create view": "無法建立檢視表", + "Unable to drop view.": "無法刪除檢視表。", + "Unable to load namespace": "無法載入命名空間", + "Unable to load view": "無法載入檢視表", + "Unable to load views": "無法載入檢視表", + "Unable to load views.": "無法載入檢視表。", + "Unable to update namespace": "無法更新命名空間", + "Unable to update view": "無法更新檢視表", + "Update catalog properties for": "更新以下物件的 Catalog 屬性:", + "Updates": "更新", + "Version history stored in view metadata.": "儲存在檢視表中繼資料中的版本歷史。", + "View JSON is invalid.": "檢視表 JSON 無效。", + "View UUID": "檢視表 UUID", + "View created": "檢視表已建立", + "View creation failed": "檢視表建立失敗", + "View details": "檢視表詳情", + "View dropped": "檢視表已刪除", + "View location is required.": "檢視表位置不能為空。", + "View metadata": "檢視表中繼資料", + "View name": "檢視表名稱", + "View schema": "檢視表 Schema", + "View schema in Iceberg REST Catalog JSON format.": "使用 Iceberg REST Catalog JSON 格式的檢視表 Schema。", + "View update failed": "檢視表更新失敗", + "View updated": "檢視表已更新", + "View versions": "檢視表版本", + "Views": "檢視表", + "You do not have permission to commit table metadata.": "您沒有提交資料表中繼資料的權限。", + "You do not have permission to delete views.": "您沒有刪除檢視表的權限。", + "You do not have permission to delete tables.": "您沒有刪除資料表的權限。", + "You do not have permission to manage views.": "您沒有管理檢視表的權限。", + "You do not have permission to update namespaces.": "您沒有更新命名空間的權限。", + "You do not have permission to update views.": "您沒有更新檢視表的權限。", + "You do not have permission to create namespaces.": "您沒有建立命名空間的權限。", + "The namespace must be 512 characters or fewer.": "命名空間最多 512 個字元。", + "You do not have permission to create tables.": "您沒有建立資料表的權限。", + "Snapshot references are unavailable.": "快照引用不可用。", + "A 6-digit code, or one of your recovery codes.": "一個 6 位數驗證碼,或者您的某個復原碼。", + "A new authenticator is waiting to be confirmed. Your current one keeps working until then.": "新的驗證器 App 正在等待確認。在此之前,目前的驗證器仍然有效。", + "Administrator": "管理員", + "At least 8 characters. This is also your S3 secret key.": "至少 8 個字元。這同時也是您的 S3 秘密金鑰。", + "Authentication code": "驗證碼", + "Back": "返回", + "Can't scan? Manual setup key": "無法掃描?手動設定金鑰", + "Change your password. This is also your S3 secret key.": "修改密碼。這同時也是您的 S3 秘密金鑰。", + "Changing your password signs out your other sessions and invalidates the old secret key.": "修改密碼會登出您的其他工作階段,並使舊的秘密金鑰失效。", + "Copy or download the codes before continuing.": "請先複製或下載這些復原碼,然後繼續。", + "Done": "完成", + "Enable 2FA": "啟用兩步驟驗證", + "Enabled on": "啟用時間", + "Enter a code from your authenticator app": "請輸入驗證器 App 中的驗證碼", + "Enter a code from your authenticator app or a recovery code": "請輸入驗證器 App 中的驗證碼或一個復原碼", + "Enter the 6-digit code": "請輸入 6 位數驗證碼", + "Enter the 6-digit code from your authenticator app": "請輸入驗證器 App 中的 6 位數驗證碼", + "Enter the code from your authenticator app for {account}.": "請輸入 {account} 在驗證器 App 中的驗證碼。", + "Generate": "產生", + "Generate new recovery codes": "產生新的復原碼", + "IAM user": "IAM 使用者", + "Invalid verification code": "驗證碼無效", + "Last used": "最近使用", + "Or use a recovery code": "或使用復原碼", + "Password and two-factor authentication for your account.": "您帳號的密碼與兩步驟驗證。", + "Password must be at least 8 characters": "密碼至少需要 8 個字元", + "Password updated.": "密碼已更新。", + "Password updated. Other sessions have been signed out.": "密碼已更新。其他工作階段已登出。", + "Please enter your current password": "請輸入目前密碼", + "Profile": "個人資料", + "Protect your account with an authenticator app": "使用驗證器 App 保護您的帳號", + "QR code for two-factor authentication setup": "用於設定兩步驟驗證的 QR Code", + "Reconfigure authenticator": "重新設定驗證器", + "Recovery codes remaining": "剩餘復原碼", + "Role": "角色", + "Root credential": "Root 認證資訊", + "Save your recovery codes": "儲存您的復原碼", + "Saved. Store them somewhere only you can reach.": "已儲存。請存放在只有您能存取的地方。", + "Scan this QR code with your authenticator app.": "使用驗證器 App 掃描此 QR Code。", + "Security": "安全", + "Service account": "服務帳號", + "Session access key": "工作階段存取金鑰", + "Temporary session": "臨時工作階段", + "That does not look like a valid code": "這看起來不是有效的驗證碼", + "The identity you are signed in as.": "您目前登入使用的身分。", + "The new password must be different from the current one": "新密碼必須與目前密碼不同", + "These codes are shown only once.": "這些復原碼僅顯示一次。", + "These codes can be used if you lose access to your authenticator. Each code works once.": "如果您無法存取驗證器,可以使用這些復原碼。每個復原碼只能使用一次。", + "This identity is provisioned from the server environment (RUSTFS_ACCESS_KEY). Change it by restarting the server with new values.": "該身分來自伺服器環境變數(RUSTFS_ACCESS_KEY)。請使用新值重啟伺服器來修改。", + "This identity is provisioned from the server environment (RUSTFS_ACCESS_KEY). Its username and password are changed by restarting the server with new values, not from the console.": "該身分來自伺服器環境變數(RUSTFS_ACCESS_KEY)。其使用者名稱和密碼需透過使用新值重啟伺服器來修改,而不是在主控台修改。", + "This identity's password is managed outside the console.": "該身分的密碼在主控台之外管理。", + "Time-based, {digits} digits, {period}s period.": "基於時間,{digits} 位,週期 {period} 秒。", + "Turn off": "關閉", + "Turn off two-factor authentication": "關閉兩步驟驗證", + "Two-factor authentication": "兩步驟驗證", + "Two-factor authentication is now on.": "兩步驟驗證已開啟。", + "Two-factor authentication is off.": "兩步驟驗證已關閉。", + "Unknown user": "未知使用者", + "Update Password": "更新密碼", + "User": "使用者", + "Username": "使用者名稱", + "Verify": "驗證", + "Verify and enable": "驗證並啟用", + "You are running low on recovery codes. Generate a new set to be safe.": "您的復原碼快用完了。請產生一組新的以確保安全。", + "You have no recovery codes left. Generate a new set so you can get back in if you lose your authenticator.": "您已沒有剩餘復原碼。請產生一組新的,以便在丟失驗證器時仍能登入。", + "Your existing recovery codes will stop working.": "您現有的復原碼將失效。", + "Your previous recovery codes no longer work.": "您之前的復原碼已失效。", + "{account} will be protected by its password alone, and the recovery codes will stop working.": "{account} 將僅由密碼保護,復原碼也將失效。", + "Development / testing backend — not supported for production": "開發/測試後端 — 不支援用於生產環境", + "Local filesystem (dev/testing only)": "本地檔案系統(僅限開發/測試)", + "Static single-key (built-in, dev/testing only)": "靜態單金鑰(內建,僅限開發/測試)", + "The mTLS client certificate and private key paths must be provided together.": "mTLS 用戶端憑證與私密金鑰路徑必須同時填寫。", + "Advanced TLS": "進階 TLS 設定", + "Custom CA": "自訂 CA", + "mTLS client identity": "mTLS 用戶端身分", + "Custom CA: configured": "自訂 CA:已設定", + "mTLS client identity: configured": "mTLS 用戶端身分:已設定", + "Stored TLS paths are never displayed. Re-enter the paths to keep them; saving with blank fields removes the stored TLS settings.": "已儲存的 TLS 路徑不會顯示。若要保留請重新填寫路徑;留空儲存將移除已儲存的 TLS 設定。", + "CA Certificate Path": "CA 憑證路徑", + "PEM CA bundle trusted for the Vault connection.": "Vault 連線信任的 PEM 格式 CA 憑證包。", + "Client Certificate Path": "用戶端憑證路徑", + "PEM client certificate presented to Vault for mTLS.": "用於 mTLS、向 Vault 出示的 PEM 格式用戶端憑證。", + "Client Key Path": "用戶端私密金鑰路徑", + "PEM private key matching the client certificate.": "與用戶端憑證相符的 PEM 格式私密金鑰。", + "Paths refer to PEM files on the RustFS server node. In a multi-node cluster the same path must exist on every node.": "路徑指向 RustFS 伺服器節點上的 PEM 檔案。多節點叢集中,每個節點上必須存在相同的路徑。", + "Failed to load rekey sweep status": "載入重新加密掃描狀態失敗", + "Rekey sweep started": "重新加密掃描已啟動", + "A rekey sweep is already running. Showing its progress.": "已有一個重新加密掃描正在執行,正在顯示其進度。", + "The configured KMS backend does not support rewrapping data-key envelopes.": "目前設定的 KMS 後端不支援重新封裝資料金鑰信封。", + "Failed to start rekey sweep": "啟動重新加密掃描失敗", + "Rekey sweep cancellation requested": "已請求取消重新加密掃描", + "Failed to cancel rekey sweep": "取消重新加密掃描失敗", + "Rekey Existing Objects": "重新加密既有物件", + "After rotating a master key, rewrap the data-key envelopes of existing objects to the current key version.": "輪替主金鑰後,將既有物件的資料金鑰信封重新封裝到目前金鑰版本。", + "Not available for this backend": "目前後端不可用", + "Leave blank to sweep all buckets": "留空則掃描所有儲存貯體", + "Comma-separated bucket names. Leave blank to sweep all buckets.": "以逗號分隔的儲存貯體名稱。留空則掃描所有儲存貯體。", + "Object Key Prefix": "物件鍵 Prefix", + "Optional prefix such as photos/": "選填 Prefix,例如 photos/", + "Only objects whose keys start with this prefix are swept.": "僅掃描鍵以此 Prefix 開頭的物件。", + "Cancel Sweep": "取消掃描", + "Start Rekey Sweep": "啟動重新加密掃描", + "No rekey sweep has run yet": "尚未執行過重新加密掃描", + "Scanning bucket {bucket}": "正在掃描儲存貯體 {bucket}", + "Rewrapped": "已重新封裝", + "Already current": "已是最新", + "Not applicable": "不適用", + "Some object versions failed to rewrap": "部分物件版本重新封裝失敗", + "The sweep is idempotent: run it again to retry only the failed versions. Details are in the server log.": "該掃描是冪等的:再次執行即可僅重試失敗的版本。詳情見伺服器日誌。", + "This scans the metadata of every selected object version and issues KMS calls to rewrap outdated envelopes. On large buckets this can take a long time.": "此操作將掃描所有選定物件版本的中繼資料,並發起 KMS 呼叫以重新封裝過期的信封。儲存貯體規模較大時可能耗時很長。", + "Sweep completed": "掃描已完成", + "Sweep cancelled": "掃描已取消", + "Versions scanned": "已掃描版本", + "Versions failed": "失敗版本", + "Move": "移動", + "You do not have permission to transfer this object to the destination.": "您沒有將此物件複製或移動到該目標位置的權限。", + "Object copied": "物件已複製", + "Object moved": "物件已移動", + "Copy could not be confirmed. The source was not deleted. Check the destination before retrying.": "無法確認複製是否成功。來源物件未被刪除,請檢查目標位置後再重試。", + "Removing the source object": "正在刪除來源物件", + "Copying object": "正在複製物件", + "Preparing object transfer": "正在準備複製或移動物件", + "Copy Object": "複製物件", + "Move Object": "移動物件", + "Bucket suggestions could not be loaded. Enter a bucket name or retry.": "無法載入儲存貯體建議清單。請手動輸入儲存貯體名稱,或重試載入。", + "Select or enter a bucket name on this server.": "選擇或輸入此伺服器上的儲存貯體名稱。", + "Destination Object Path": "目標物件路徑", + "Use the full path, including the object name. Existing objects will not be overwritten.": "請輸入包含物件名稱的完整路徑。已有物件不會被覆蓋。", + "The source is deleted only after copying succeeds. Versioned buckets retain historical versions.": "僅在複製成功後刪除來源物件。開啟版本控制的儲存貯體會保留歷史版本。", + "View destination": "檢視目標位置", + "Keep this page open until the transfer finishes.": "請保持此頁面開啟,直到操作完成。", + "Enter a destination bucket name without spaces or slashes.": "請輸入目標儲存貯體名稱,不能包含空格或斜線。", + "Enter a destination path including the object name.": "請輸入包含物件名稱的目標路徑。", + "The object path must not exceed 1,024 UTF-8 bytes.": "物件路徑的 UTF-8 編碼長度不能超過 1,024 位元組。", + "The destination must be different from the source.": "目標位置不能與來源位置相同。", + "The object is too large for multipart copy.": "物件過大,無法進行分段複製。", + "The source object tags could not be read.": "無法讀取來源物件的標籤。", + "The multipart upload could not be confirmed.": "無法確認分段上傳是否已建立。", + "The copied part could not be confirmed.": "無法確認分段是否複製成功。", + "The copy result could not be confirmed. Check the destination before retrying.": "無法確認複製結果,請檢查目標位置後再重試。", + "Copy failed and the unfinished upload could not be cleaned up. Check the destination bucket.": "複製失敗,且未完成的分段上傳無法清理。請檢查目標儲存貯體。", + "The source object is required.": "必須指定來源物件。", + "The source object information could not be confirmed.": "無法確認來源物件資訊。", + "The source changed after copying.": "來源物件在複製後發生了變化。", + "Source deletion could not be confirmed.": "無法確認來源物件是否已刪除。", + "The destination was copied, but source deletion could not be confirmed. Check both locations before retrying.": "物件已複製到目標位置,但無法確認來源物件是否已刪除。請檢查來源位置和目標位置後再重試。", + "The source changed or the destination already exists. Refresh and choose a different destination.": "來源物件已發生變化,或目標物件已存在。請重新整理後選擇其他目標位置。", + "Show key": "顯示金鑰", + "Hide key": "隱藏金鑰", + "0 disables the cache; maximum 3600.": "0 表示停用快取;最大值為 3600。", + "0–268435456 bytes (256 MiB). Larger objects are served first and queued for background pull.": "範圍為 0–268435456 位元組(256 MiB)。超過此大小的物件會先直接回應請求,並排入佇列進行背景拉取。", + "100–600000 ms between source body chunks.": "來源端回應 body chunk 之間的逾時範圍為 100–600000 毫秒。", + "100–600000 ms.": "範圍為 100–600000 毫秒。", + "1–256 across inline, background, and backfill work.": "Inline、背景和回填任務合計可設定為 1–256。", + "1–65536 waiting background pulls.": "等待中的背景拉取任務數可設定為 1–65536。", + "5242880–5368709120 bytes (5 MiB–5 GiB).": "範圍為 5242880–5368709120 位元組(5 MiB–5 GiB)。", + "A backfill job is already running": "已有回填任務正在執行", + "A local versioned delete marker prevents the object from being pulled again.": "本地版本化刪除標記會阻止再次拉取該物件。", + "AWS regions may contain only letters, numbers, and hyphens.": "AWS 區域只能包含字母、數字和連字號。", + "Access key is required.": "存取金鑰為必填。", + "Account key": "帳戶金鑰", + "Addressing style": "定址方式", + "Adds source requests to listings so clients can see objects not yet migrated.": "將來源端物件合併到清單中,使用戶端可以看到尚未遷移的物件。", + "All keys": "所有物件鍵", + "Always skip": "始終跳過", + "Amazon S3": "Amazon S3", + "Any current local object is skipped.": "只要物件已存在於本地,就會跳過。", + "Automatic": "自動", + "Azure Blob Storage (Native)": "Azure Blob 儲存(原生)", + "Azure account key must be valid Base64.": "Azure 帳戶金鑰必須是有效的 Base64。", + "Azure account may contain only letters, numbers, and hyphens.": "Azure 儲存帳戶只能包含字母、數字和連字號。", + "Azure credential type": "Azure 認證資訊類型", + "Azure storage account": "Azure 儲存帳戶", + "Azure storage account is required.": "Azure 儲存帳戶為必填。", + "Backfill cancellation requested": "已請求取消回填任務", + "Backfill cancelled": "回填已取消", + "Backfill cannot start until the module is enabled on every server node.": "必須在所有伺服器節點上啟用該模組後才能開始回填。", + "Backfill completed": "回填已完成", + "Backfill completed with failures": "回填已完成,但有失敗項目", + "Backfill dry run started": "回填模擬執行已開始", + "Backfill failed": "回填失敗", + "Backfill in progress": "回填進行中", + "Backfill operation failed": "回填操作失敗", + "Backfill paused": "回填已暫停", + "Backfill pending": "回填等待中", + "Backfill running": "回填執行中", + "Backfill started": "回填已開始", + "Background backfill": "背景回填", + "Bandwidth limit (bytes/s, optional)": "頻寬限制(位元組/秒,選填)", + "Bandwidth limit must be a whole number of at least 65536 bytes/s.": "頻寬限制必須是至少 65536 位元組/秒的整數。", + "Breaker closed": "斷路器已關閉", + "Breaker half-open": "斷路器半開", + "Breaker open": "斷路器已開啟", + "CA certificate (PEM, optional)": "CA 憑證(PEM,選填)", + "CA certificate must be PEM encoded.": "CA 憑證必須使用 PEM 編碼。", + "Cancel backfill": "取消回填", + "Cancel the running backfill?": "取消正在執行的回填任務?", + "Cancelling": "正在取消", + "Circuit breaker": "斷路器", + "Compare source ETag and size": "比較來源端 ETag 和大小", + "Concurrent pulls": "並行拉取數", + "Concurrent pulls must be a whole number from 1 to 256.": "並行拉取數必須是 1 到 256 之間的整數。", + "Configuration changed on the server. Refresh and review it before disabling migration.": "伺服器上的設定已發生變化。請重新整理並檢查後再停用遷移。", + "Connect an existing AWS S3, S3-compatible, Azure Blob, or Google Cloud Storage bucket.": "連線現有的 AWS S3、S3 相容、Azure Blob 或 Google Cloud Storage 儲存貯體。", + "Connect this bucket to an external source without interrupting reads.": "在不中斷讀取的情況下,將此儲存貯體連線到外部來源端。", + "Connect timeout (ms)": "連線逾時(毫秒)", + "Connect timeout must be a whole number from 100 to 600000.": "連線逾時必須是 100 到 600000 之間的整數。", + "Connection test passed": "連線測試通過", + "Copy object tags": "複製物件標籤", + "Create a bucket before configuring an external migration source.": "請先建立儲存貯體,再設定外部遷移來源。", + "Credentials are write-only": "認證資訊僅供寫入", + "Custom endpoint (optional)": "自訂端點(選填)", + "Data": "資料量", + "Disable": "停用", + "Disable migration": "停用遷移", + "Disable on-demand migration?": "停用隨選遷移?", + "Disabling": "正在停用", + "Discard changes": "放棄更改", + "Discard unsaved changes?": "放棄未儲存的更改?", + "Edit on-demand migration": "編輯隨選遷移", + "Editing cancels the active backfill": "編輯設定會取消目前回填任務", + "Emit object-created events": "傳送物件建立事件", + "Enable RUSTFS_ON_DEMAND_MIGRATION_ENABLED on every server node, restart, and try again.": "請在每個伺服器節點上啟用 RUSTFS_ON_DEMAND_MIGRATION_ENABLED,重啟後再試。", + "Enable migration": "啟用遷移", + "Enable on-demand migration": "啟用隨選遷移", + "Endpoint host": "端點主機", + "Endpoint is required for this provider.": "此供應商必須填寫端點。", + "Enter a real region or auto.": "請輸入實際區域或 auto。", + "Enter an absolute HTTP or HTTPS endpoint.": "請輸入絕對 HTTP 或 HTTPS 端點。", + "Enter the Base64 storage account key.": "請輸入 Base64 編碼的儲存帳戶金鑰。", + "Enter the SAS query string without a leading question mark.": "請輸入不帶開頭問號的 SAS 查詢字串。", + "Existing local objects": "已存在的本地物件", + "Failed objects": "失敗物件數", + "First-byte timeout (ms)": "首位元組逾時(毫秒)", + "First-byte timeout must be a whole number from 100 to 600000.": "首位元組逾時必須是 100 到 600000 之間的整數。", + "For security, re-enter the source credential before testing or saving any change.": "為確保安全,測試連線或儲存任何更改前,請重新輸入來源端認證資訊。", + "Google Cloud Storage (HMAC)": "Google Cloud Storage(HMAC)", + "Google Cloud Storage (Native)": "Google Cloud Storage(原生)", + "HEAD requests": "HEAD 請求", + "Idle timeout (ms)": "閒置逾時(毫秒)", + "Idle timeout must be a whole number from 100 to 600000.": "閒置逾時必須是 100 到 600000 之間的整數。", + "In-flight pulls": "正在拉取", + "Include source objects in ListObjectsV2": "在 ListObjectsV2 中包含來源端物件", + "Inline object limit (bytes)": "Inline 物件上限(位元組)", + "Inline object limit must be a whole number from 0 to 268435456.": "Inline 物件上限必須是 0 到 268435456 之間的整數。", + "Keep editing": "繼續編輯", + "Keep running": "繼續執行", + "Keep the source ETag unless local bucket encryption replaces it.": "保留來源端 ETag;本地儲存貯體加密導致 ETag 變化時除外。", + "Key mapping": "物件鍵對應", + "Last backfill error": "最近一次回填錯誤", + "Last source error": "最近一次來源端錯誤", + "Latest job": "最近任務", + "Leave empty for unlimited; the server minimum is 65536 bytes/s.": "留空表示不限速;伺服器允許的最小值為 65536 位元組/秒。", + "Leave empty to scan the complete configured source namespace.": "留空以掃描已設定來源端的完整命名空間。", + "Leave empty to use https://storage.googleapis.com.": "留空以使用 https://storage.googleapis.com。", + "Leave empty to use the account's public Azure Blob endpoint.": "留空以使用該帳戶的公共 Azure Blob 端點。", + "Leave empty to use the regional Amazon S3 endpoint.": "留空以使用對應區域的 Amazon S3 端點。", + "Lifetime on this node": "目前節點累計值", + "List matching objects without queueing or writing any object.": "僅列出符合物件,不排隊也不寫入任何物件。", + "Listed": "已列出", + "Live counters from the RustFS node that answered this request.": "顯示回應此請求的 RustFS 節點上的即時計數。", + "Loading on-demand migration settings": "正在載入隨選遷移設定", + "Local only": "僅本地", + "Local prefix": "本地 Prefix", + "Local prefix (optional)": "本地 Prefix(選填)", + "Manage migration": "管理遷移", + "Migrated data": "已遷移資料", + "Migrated objects": "已遷移物件", + "Migration active": "遷移執行中", + "Migration configuration could not be saved": "無法儲存遷移設定", + "Migration configuration updated": "遷移設定已更新", + "Migration not configured": "未設定遷移", + "Migration paused": "遷移已暫停", + "Missing local objects are served from this source and then stored locally.": "本地缺失的物件會從此來源端傳回,並隨後儲存到本地。", + "Multipart part size (bytes)": "分段大小(位元組)", + "Multipart part size must be a whole number from 5242880 to 5368709120.": "分段大小必須是 5242880 到 5368709120 之間的整數。", + "Native GCS has no object tags, so no tags will be copied.": "原生 GCS 不提供物件標籤,因此不會複製標籤。", + "Negative cache TTL (seconds)": "負向快取 TTL(秒)", + "Negative cache TTL must be a whole number from 0 to 3600.": "負向快取 TTL 必須是 0 到 3600 之間的整數。", + "No added prefix": "未新增 Prefix", + "No backfill yet": "尚無回填任務", + "No background backfill has been started for this bucket.": "此儲存貯體尚未啟動背景回填。", + "No live runtime state on this node": "目前節點沒有即時運作狀態", + "No migration source configured": "未設定遷移來源", + "No recorded pull failures": "沒有拉取失敗紀錄", + "No runtime state": "無運作狀態", + "No source error recorded": "沒有來源端錯誤紀錄", + "Objects already migrated remain in the local bucket. You can start a new job later.": "已遷移的物件會保留在本地儲存貯體中。之後可以啟動新任務。", + "Objects listed": "已列出物件", + "Objects pulled": "已拉取物件", + "Objects whose recorded source ETag and size differ are pulled again.": "記錄的來源端 ETag 或大小不一致的物件會被重新拉取。", + "On-demand migration": "隨選遷移", + "On-demand migration disabled": "隨選遷移已停用", + "On-demand migration enabled": "隨選遷移已啟用", + "On-demand migration is not available on this server": "此伺服器不支援隨選遷移", + "On-demand migration is not enabled on this server": "此伺服器未啟用隨選遷移", + "On-demand migration is unavailable": "隨選遷移不可用", + "Only local keys with this prefix will consult the source.": "只有帶此 Prefix 的本地物件鍵才會查詢來源端。", + "Open license settings": "開啟授權設定", + "Open migration settings": "開啟遷移設定", + "Paste the issuing certificate when the source uses a private CA.": "來源端使用私有 CA 時,請貼上簽發憑證。", + "Path style": "路徑樣式", + "Performance and limits": "效能與限制", + "Plan a read-only source cutover": "規劃唯讀來源切換", + "Prepended to the local key when RustFS reads the source.": "RustFS 讀取來源端時,會將此 Prefix 新增到本地物件鍵之前。", + "Preserve source ETag": "保留來源端 ETag", + "Provide it only when the source credentials require a session token.": "僅當來源端認證資訊需要工作階段權杖時填寫。", + "Provider": "供應商", + "Pull queue capacity": "拉取佇列容量", + "Pull queue capacity must be a whole number from 1 to 65536.": "拉取佇列容量必須是 1 到 65536 之間的整數。", + "Pulled": "已拉取", + "Queue depth": "佇列深度", + "Range GET requests": "範圍 GET 請求", + "Re-enter the Azure credential to test or save changes.": "請重新輸入 Azure 認證資訊以測試或儲存更改。", + "Re-enter the secret key to test or save changes.": "請重新輸入秘密金鑰以測試或儲存更改。", + "Re-enter the service account JSON to test or save changes.": "請重新輸入服務帳號 JSON 以測試或儲存更改。", + "Read behavior": "讀取行為", + "Read from source on a miss": "本地缺失時從來源端讀取", + "Region is required.": "區域為必填。", + "Requires admin:SetBucketOnDemandMigration": "需要 admin:SetBucketOnDemandMigration 權限", + "Requires source tag-read permission and adds one request per pull.": "需要來源端標籤讀取權限,並且每次拉取會增加一個請求。", + "Respect local delete markers": "遵循本地刪除標記", + "Return Not Found": "傳回 Not Found", + "Return SourceUnavailable": "傳回 SourceUnavailable", + "Returning Not Found can make sync clients treat a temporary source failure as a deletion.": "傳回 Not Found 可能導致同步用戶端將來源端臨時故障視為物件已刪除。", + "Runtime status": "執行階段狀態", + "RustFS pulls objects only when they are read or backfilled. New PUT and DELETE operations in RustFS are not synchronized to the source, and later source changes do not update local copies.": "RustFS 只在物件被讀取或回填時拉取它們。RustFS 中新的 PUT 和 DELETE 操作不會同步到來源端,來源端後續的更改也不會更新本地副本。", + "RustFS reached the source bucket and listed it successfully.": "RustFS 已連線來源端儲存貯體並成功列出物件。", + "RustFS reads from this source and never writes or deletes objects there.": "RustFS 只從此來源端讀取,絕不會在來源端寫入或刪除物件。", + "RustFS will stop consulting the source. Already migrated objects remain local, an active backfill is cancelled, and missing local objects return Not Found.": "RustFS 將停止查詢來源端。已遷移物件會保留在本地,目前回填任務會被取消,本地缺失的物件將傳回 Not Found。", + "S3-compatible storage": "S3 相容儲存", + "SAS token": "SAS 權杖", + "SAS token must omit the leading question mark and whitespace.": "SAS 權杖不能包含開頭的問號或任何空白字元。", + "Sample object": "範例物件", + "Saved settings remain visible, but reads and new backfills are inactive until the module is enabled on every node.": "已儲存的設定仍然可見,但在所有節點啟用該模組之前,來源端讀取和新回填任務均不會執行。", + "Saving": "正在儲存", + "Saving a replacement configuration cancels the current job. You can start a new backfill afterward.": "儲存替換設定會取消目前任務。之後可以啟動新的回填任務。", + "Scan the source and pull objects that have not been requested yet.": "掃描來源端並拉取尚未被請求的物件。", + "Send normal bucket notifications when a pulled object is stored locally.": "拉取的物件儲存到本地時,傳送一般儲存貯體通知。", + "Serve missing objects from an external source while migrating them into RustFS.": "從外部來源端提供缺失物件,並同時將它們遷移到 RustFS。", + "Serve range and queue the full object": "傳回範圍資料並排隊拉取完整物件", + "Serve range only": "僅傳回範圍資料", + "Server module disabled": "伺服器模組已停用", + "Service-account JSON key": "服務帳號 JSON 金鑰", + "Session token (optional)": "工作階段權杖(選填)", + "Skip TLS certificate verification": "跳過 TLS 憑證驗證", + "Skipped existing": "已跳過現有物件", + "Source bucket is required.": "來源端儲存貯體為必填。", + "Source bucket must not contain slashes or whitespace.": "來源端儲存貯體不能包含斜線或空白字元。", + "Source circuit open": "來源端斷路器已開啟", + "Source connection": "來源端連線", + "Source container": "來源端容器", + "Source error response": "來源端錯誤回應", + "Source listing prefix (optional)": "來源端列出 Prefix(選填)", + "Source prefix": "來源端 Prefix", + "Source prefix (optional)": "來源端 Prefix(選填)", + "Source-hit ratio": "來源端命中率", + "Start a job when you are ready to migrate the remaining source objects.": "準備遷移來源端剩餘物件時,請啟動回填任務。", + "Start backfill": "開始回填", + "Start background backfill": "開始背景回填", + "Start dry run": "開始模擬執行", + "TLS": "TLS", + "Test connection": "測試連線", + "Testing connection": "正在測試連線", + "The endpoint must not contain a path, query, or fragment.": "端點不能包含路徑、查詢參數或片段。", + "The endpoint must not contain credentials.": "端點不能包含認證資訊。", + "The existing source that RustFS will read from.": "RustFS 將從這個現有來源端讀取資料。", + "The secret is stored by RustFS but never returned to the Console.": "秘密金鑰由 RustFS 儲存,但永遠不會傳回給主控台。", + "The server rejected this operation": "伺服器拒絕了此操作", + "The source bucket is empty or the selected prefix has no objects.": "來源端儲存貯體為空,或所選 Prefix 下沒有物件。", + "The source could not be reached": "無法連線來源端", + "The source is still being scanned, so no completion percentage is shown.": "來源端仍在掃描中,因此不顯示完成百分比。", + "The source scan is active. Totals are not known until listing finishes, so progress is shown as counters.": "來源端掃描正在進行。列出完成前無法確定總數,因此進度以計數器顯示。", + "This backend is not included in the server build": "伺服器建置中未包含此後端", + "This provider requires a real region; auto is not supported.": "此供應商需要實際區域,不支援 auto。", + "Turn off to keep the saved configuration without consulting the source.": "關閉後保留已儲存的設定,但不再查詢來源端。", + "Unable to load on-demand migration": "無法載入隨選遷移", + "Unable to load this setting": "無法載入此設定", + "Unavailable when the server has no bucket GET total.": "伺服器沒有儲存貯體 GET 總數時不可用。", + "Updated": "更新時間", + "Upgrade RustFS to a version that provides the on-demand migration admin API.": "請將 RustFS 升級到提供隨選遷移管理 API 的版本。", + "Use a read-only key scoped to the source bucket.": "請使用權限範圍僅限來源端儲存貯體的唯讀金鑰。", + "Use a service account with storage.objects.get and storage.objects.list.": "請使用具有 storage.objects.get 和 storage.objects.list 權限的服務帳號。", + "Use a valid service-account JSON key with client_email and private_key.": "請使用包含 client_email 和 private_key 的有效服務帳號 JSON 金鑰。", + "Use an absolute HTTP or HTTPS URL with no path.": "請使用不含路徑的絕對 HTTP 或 HTTPS URL。", + "Use an explicit style when the source redirects or reports a missing bucket.": "當來源端發生重新導向或回報儲存貯體不存在時,請明確選擇定址方式。", + "Use only in a trusted test environment. Prefer a custom CA certificate.": "僅在可信的測試環境中使用。應優先設定自訂 CA 憑證。", + "Use provider default": "使用供應商預設值", + "Used to derive the public endpoint when no custom endpoint is set.": "未設定自訂端點時,用於衍生公共端點。", + "Uses the S3 interoperability API and an HMAC key pair.": "使用 S3 互通 API 和 HMAC 金鑰對。", + "Uses the native Azure Blob API.": "使用原生 Azure Blob API。", + "Uses the native GCS API and a service-account JSON key.": "使用原生 GCS API 和服務帳號 JSON 金鑰。", + "View backfill": "檢視回填", + "Virtual-host style": "虛擬主機樣式", + "You do not have permission to change migration settings": "您沒有更改遷移設定的權限", + "You do not have permission to control backfill": "您沒有控制回填任務的權限", + "You do not have permission to view this bucket's migration settings.": "您沒有檢視此儲存貯體遷移設定的權限。", + "Your migration configuration changes will be lost.": "對遷移設定的更改將會丟失。", + "pull failures": "次拉取失敗", + "Password must be at least 8 bytes": "密碼至少需要 8 個位元組", + "Secret Key must be at least 8 bytes": "秘密金鑰至少需要 8 個位元組", + "At least 8 bytes. This is also your S3 secret key.": "至少 8 個位元組。這也是您的 S3 秘密金鑰。", + "Identity": "身分與權限", + "Operations": "維運管理", + "Resources": "資源", + "Bucket size distribution": "儲存貯體容量佔比", + "Other buckets": "其他儲存貯體", + "Active workers": "活躍工作執行緒", + "Configuration deliveries": "設定推送", + "Connection": "連線狀態", + "Consistency": "一致性", + "Consistency cannot be checked until every peer site is reachable.": "需等所有對等站點都可連線後才能檢查一致性。", + "Differs: {settings}": "不一致:{settings}", + "Downtime": "累計離線時間", + "Every peer site is reachable and nothing is waiting to be replicated or repaired.": "所有對等站點均可連線,沒有等待複製或修復的內容。", + "Every site holds the same buckets, IAM entities, and expiry rules.": "各站點的儲存貯體、IAM 實體和過期規則完全一致。", + "Failed in the last hour": "近 1 小時失敗", + "Failed since start": "啟動以來失敗", + "Failures and Backlog": "失敗與積壓", + "Missing on {sites}": "{sites} 缺失", + "No resync has been started for this site.": "該站點尚未發起過重新同步。", + "Object counters come from the node that answered this request and reset when it restarts.": "物件計數來自回應本次請求的節點,該節點重啟後歸零。", + "Peer reachability is not reported by this server, so replication health cannot be confirmed.": "該伺服器未回報對等站點的連線狀態,無法確認複製是否健康。", + "Queued now": "目前排隊", + "Queued peak": "排隊峰值", + "Refreshes every 30 seconds": "每 30 秒自動重新整理", + "Replication Health": "複製健康狀態", + "Resync Status": "重新同步進度", + "Site {site} is unreachable, so nothing replicates to it.": "站點 {site} 無法連線,任何內容都無法複製到該站點。", + "Sync Setting": "同步開關", + "and {count} more": "以及另外 {count} 項", + "Buckets, IAM entities, or expiry rules that differ between sites: {count}.": "各站點間不一致的儲存貯體、IAM 實體或過期規則:{count} 個。", + "Object replication failures in the last hour: {count}.": "近 1 小時物件複製失敗:{count} 次。", + "{operation} has not finished.": "{operation}尚未完成。", + "{operation} has not finished; waiting for {sites}.": "{operation}尚未完成,正在等待 {sites} 確認。", + "Configuration changes waiting to be delivered to peer sites: {pending} (failed: {failed}).": "等待推送到對等站點的設定變更:{pending} 項(失敗 {failed} 項)。", + "{pending} waiting, {failed} failed": "等待 {pending},失敗 {failed}", + "{state}: {completed} of {total} buckets completed, {failed} failed. {objects} objects replicated, {failedObjects} failed.": "{state}:{total} 個儲存貯體中已完成 {completed} 個,失敗 {failed} 個;已複製 {objects} 個物件,失敗 {failedObjects} 個。", + "Site removal": "站點移除", + "Endpoint update": "端點變更", + "Group": "使用者群組", + "ILM Expiry Rule": "ILM 過期規則", + "Marked for deletion": "已標記刪除", + "Quota": "配額", + "CORS": "CORS", + "Policy document": "政策內容", + "Service account rotation": "服務帳號輪替", + "Objects per batch": "每批物件數", + "The server returned an unrecognized diagnosis. The original deletion error still applies.": "伺服器傳回了無法識別的診斷結果。原始刪除錯誤仍然適用。", + "This server does not support tier deletion diagnostics. The original deletion error still applies.": "此伺服器不支援儲存層刪除診斷。原始刪除錯誤仍然適用。", + "Unable to check tier deletion. Recheck to try again.": "無法檢查儲存層刪除條件。請重新檢查。", + "A limited object cleanup retry pass was accepted. Cleanup may still be pending. Recheck, then retry deletion.": "已受理一次有限的物件清理重試掃描。清理可能仍未完成。請重新檢查,然後重試刪除。", + "The scan reached a limit; additional cleanup may remain.": "掃描已達到限制,可能仍有其他清理工作。", + "Cleanup retry was deferred because the lock could not be acquired. Try again later.": "無法取得鎖,清理重試已暫緩。請稍後重試。", + "The server returned an unknown cleanup retry status. Recheck before taking further action.": "伺服器傳回了未知的清理重試狀態。請重新檢查後再操作。", + "This server does not support object cleanup retry. Background recovery continues automatically.": "此伺服器不支援物件清理重試。背景復原仍會自動繼續。", + "Object cleanup retry failed. Try again later.": "物件清理重試失敗。請稍後重試。", + "Tier deletion check": "儲存層刪除檢查", + "Checking or submitting request…": "正在檢查或提交請求…", + "No local blockers were found in this check. Retry deletion to ask the server to remove the tier configuration.": "本次檢查未發現本地阻擋項目。請重試刪除,由伺服器決定是否移除儲存層設定。", + "Observed deletion blocker": "已發現的刪除阻擋項目", + "The check may stop after the first blocker. Other blockers may remain; recheck after resolving it.": "檢查可能在發現第一個阻擋項目後停止。解決後請重新檢查,其他阻擋項目可能仍然存在。", + "Remote storage reachability was not checked. The final deletion request always decides whether deletion is safe.": "未檢查遠端儲存的連線狀態。是否可以安全刪除始終以最終刪除請求為準。", + "Retry runs a limited pass for free-version object cleanup on this tier. It does not complete all recovery work or delete the tier. Automatic background recovery continues.": "重試僅對該儲存層執行一次有限的 free-version 物件清理掃描,不會完成所有復原工作或刪除儲存層。自動背景復原仍會繼續。", + "Recheck": "重新檢查", + "Retry object cleanup": "重試物件清理", + "Retry deletion": "重試刪除", + "Lifecycle rules still reference this tier. Update those rules before deleting it.": "生命週期規則仍引用此儲存層。刪除前請修改相關規則。", + "Live transitioned object versions still use this tier. Keep it configured while they exist.": "仍有有效的已轉換物件版本使用此儲存層。這些版本存在期間請保留設定。", + "Object cleanup is pending for this tier. Background recovery continues automatically.": "此儲存層仍有物件等待清理。背景復原會自動繼續。", + "A transition is still pending for this tier. Wait for recovery, then recheck.": "此儲存層仍有轉換尚未完成。請等待復原後重新檢查。", + "The server could not complete the deletion safety check. Recheck before retrying deletion.": "伺服器未能完成刪除安全檢查。請重新檢查後再重試刪除。", + "The server reported an unrecognized blocker. The original deletion error still applies.": "伺服器回報了無法識別的阻擋項目。原始刪除錯誤仍然適用。" +} diff --git a/lib/datetime-picker.js b/lib/datetime-picker.js index 96b73651..0cbea4d3 100644 --- a/lib/datetime-picker.js +++ b/lib/datetime-picker.js @@ -16,6 +16,7 @@ export const DATE_FNS_LOCALE_CODE_MAP = { tr: "tr", vi: "vi", zh: "zh-CN", + "zh-TW": "zh-TW", } export function getDateFnsLocaleCode(value) { diff --git a/lib/i18n-config.js b/lib/i18n-config.js index 60dcc551..a580828a 100644 --- a/lib/i18n-config.js +++ b/lib/i18n-config.js @@ -4,6 +4,7 @@ export const LOCALE_FILE_MAP = { en: "en-US", ar: "ar-MA", zh: "zh-CN", + "zh-TW": "zh-TW", ja: "ja-JP", ko: "ko-KR", de: "de-DE", @@ -50,6 +51,12 @@ const LOCALE_ALIASES = { zh: "zh", zhcn: "zh", zhhans: "zh", + zhhant: "zh-TW", + zhhanthk: "zh-TW", + zhhanttw: "zh-TW", + zhhk: "zh-TW", + zhmo: "zh-TW", + zhtw: "zh-TW", } function isLocale(value) { diff --git a/lib/i18n-config.ts b/lib/i18n-config.ts index b9723d5d..54abf0a9 100644 --- a/lib/i18n-config.ts +++ b/lib/i18n-config.ts @@ -4,6 +4,7 @@ export const LOCALE_FILE_MAP = { en: "en-US", ar: "ar-MA", zh: "zh-CN", + "zh-TW": "zh-TW", ja: "ja-JP", ko: "ko-KR", de: "de-DE", @@ -52,6 +53,12 @@ const LOCALE_ALIASES: Record = { zh: "zh", zhcn: "zh", zhhans: "zh", + zhhant: "zh-TW", + zhhanthk: "zh-TW", + zhhanttw: "zh-TW", + zhhk: "zh-TW", + zhmo: "zh-TW", + zhtw: "zh-TW", } function isLocale(value: string): value is Locale { diff --git a/lib/i18n.ts b/lib/i18n.ts index b298583d..895ef48a 100644 --- a/lib/i18n.ts +++ b/lib/i18n.ts @@ -117,7 +117,7 @@ export async function initI18n() { fallbackLng: DEFAULT_LOCALE, supportedLngs: LOCALE_CODES, nonExplicitSupportedLngs: true, - load: "languageOnly", + load: "currentOnly", interpolation: { escapeValue: false, prefix: "{", diff --git a/tests/lib/datetime-picker.test.js b/tests/lib/datetime-picker.test.js index 763da490..8b6989b3 100644 --- a/tests/lib/datetime-picker.test.js +++ b/tests/lib/datetime-picker.test.js @@ -20,6 +20,7 @@ import { test("maps app locales to date-fns locale module codes", () => { assert.equal(getDateFnsLocaleCode("zh-CN"), "zh-CN") assert.equal(getDateFnsLocaleCode("zh"), "zh-CN") + assert.equal(getDateFnsLocaleCode("zh-TW"), "zh-TW") assert.equal(getDateFnsLocaleCode("pt-BR"), "pt-BR") assert.equal(getDateFnsLocaleCode("en-US"), "en-US") assert.equal(getDateFnsLocaleCode("unknown"), "en-US") diff --git a/tests/lib/i18n-config.test.js b/tests/lib/i18n-config.test.js index 4f490b44..9c0f5a3d 100644 --- a/tests/lib/i18n-config.test.js +++ b/tests/lib/i18n-config.test.js @@ -14,9 +14,25 @@ test("normalizeLocale accepts supported, browser, and legacy locale values", () assert.equal(normalizeLocale("unknown"), "en") }) +test("normalizeLocale routes Traditional Chinese variants to zh-TW", () => { + assert.deepEqual(["zh-TW", "zh_TW", "zh-Hant", "zh-Hant-TW", "zh-HK", "zh-MO"].map(normalizeLocale), [ + "zh-TW", + "zh-TW", + "zh-TW", + "zh-TW", + "zh-TW", + "zh-TW", + ]) +}) + +test("normalizeLocale keeps Simplified Chinese variants on zh", () => { + assert.deepEqual(["zh", "zh-CN", "zh-Hans", "zh-SG"].map(normalizeLocale), ["zh", "zh", "zh", "zh"]) +}) + test("getLocaleFile resolves normalized locales to bundled locale files", () => { assert.equal(getLocaleFile("en-US"), "en-US") assert.equal(getLocaleFile("zh_CN"), "zh-CN") + assert.equal(getLocaleFile("zh-TW"), "zh-TW") assert.equal(getLocaleFile("pt-BR"), "pt-BR") })