/* eslint-disable prettier/prettier */
export default {
  setup: {
    connect: {
      title: '需要簽名',
      scan: '連接您的DID錢包以成為此伺服器的擁有者',
      confirm: '請在您的DID錢包上檢查此操作',
      success: '您的帳戶已連接到此伺服器'
    },
    keyPair: {
      title: '需要衍生金鑰對',
      scan: '連接您的DID錢包以為此應用程式產生一對密鑰',
      confirm: '請在您的 DID 錢包上查看此操作',
      success: '您的金鑰對安全儲存'
    },
    verify: {
      title: '需要擁有權憑證',
      scan: '連接您的DID錢包以提供所有權憑證',
      confirm: '請在您的DID錢包上檢查此操作',
      success: '您的帳戶已連線到此伺服器'
    },
    accept: {
      title: '接受伺服器要求的所有權證書',
      scan: '連接您的DID錢包以提供所有權憑證',
      confirm: '請在您的DID錢包上檢查此操作',
      success: '您的帳戶已連接到此伺服器'
    },
    title: '設置 Blocklet Server ',
    steps: {
      eula: '最終用戶許可協議',
      eulaFooter: '我已閱讀並同意 EULA 條款',
      connect: '連接所有者DID錢包',
      verify: '驗證所有權',
      basicSettings: '基本設置',
      launchApp: '啟動應用程式',
      complete: '完成'
    },
    congratulation: '恭喜你！你的Blocklet伺服器已經安全且準備好使用。',
    redirectButton: '帶我去儀表板！'
  },
  login: {
    loginTo: '連接到',
    description: '只有伺服器所有者和已核准的成員才能存取儀表板',
    switchDid: {
      title: '切換DID錢包',
      scan: '掃描以下 QR 碼以切換帳號',
      confirm: '確認在您的DID錢包中切換',
      success: '成功切換'
    },
    switchSpecifiedDid: {
      title: '切換 DID 錢包',
      scan: '你需要切換 DID 至 {did} 以完成以下操作',
      confirm: '確認在您的DID錢包中切換',
      success: '成功切換'
    },
    connect: {
      title: '連接DID錢包',
      scan: '連接您的DID錢包以提供通行證',
      confirm: '在您的帳戶中確認',
      success: '您已成功連線'
    },
    verify: {
      title: '驗證訪問',
      scan: '連接你的 DID 錢包以展示所有者或管理員通行證',
      confirm: '在你的 帳戶 中確認',
      success: '您的訪問已驗證',
      abort: '存取驗證已中止',
      description: '您需要提供 {roles} 通行證才能執行此操作，在 1 小時的非活動狀態後才會再次要求驗證。',
      descriptionForDestroy: '您需要提供 {roles} 通行證以繼續此操作以確保安全。'
    },
    login: '連接',
    termsOfUse: '使用條款',
    agreeTermsOfUse: '我已閱讀並同意適用的'
  },
  acceptServer: {
    title: '使用所有權NFT索取伺服器',
    tooltip: '如果您收到了一枚伺服器所有權 NFT，您可以使用此連結來領取您的所有者通行證。'
  },
  exchangePassport: {
    title: '用NFT交換通行證',
    success: '您已成功交換您的通行證並使用通行證登錄',
    login: '登入',
    dialog: {
      title: '使用NFT取得通行證',
      scan: '連接您的DID錢包，展示您的NFT以獲得通行證',
      confirm: '在您的DID錢包上選擇NFT',
      success: '通行證成功換取'
    },
    tooltip1: '如果你擁有來自該系列的NFT,',
    tooltip2: '你可以透過此連結兌換你的護照。'
  },
  payablePassport: {
    title: '購買並付款通行證',
    tooltip: '如果您沒有通行證，您可以使用此連結購買通行證。'
  },
  sidebar: {
    dashboard: '儀表板',
    blocklets: 'Blocklets',
    console: '控制台',
    settings: '設定'
  },
  system: {
    total: '總共',
    used: '已使用',
    free: '自由',
    cores: '核心數',
    instances: '實例數量'
  },
  common: {
    invalid: '無效',
    about: '關於',
    access: '訪問',
    accessKey: '存取金鑰',
    action: '行動',
    actions: '行動',
    add: '新增',
    address: '地址',
    afterTime: '在{time}後',
    allow: '允許',
    alreadyExist: '已存在',
    approve: '批准',
    approved: '批准',
    appUrl: 'APP連結',
    auditLogs: '稽核追蹤',
    author: '作者',
    avatar: '阿凡達',
    back: '返回',
    basic: '基本',
    basicInfo: '基本資訊',
    profile: '個人檔案',
    bind: '綁定',
    blocklet: 'Blocklet',
    blocklets: 'Blocklets',
    blockletsStorage: 'Blocklets 儲存',
    cacheStorage: '快取存儲',
    cancel: '取消',
    certificate: '證書',
    category: '日誌主題',
    click: '點擊複製',
    close: '關閉',
    selectAll: '全選',
    unselectAll: '取消全選',
    collapseAll: '折疊所有',
    community: '社群 URL',
    complete: '完成',
    componentBasicInfo: 'Blocklet 基本資訊',
    components: 'Blocklet 管理器',
    config: '配置',
    configuration: '配置',
    appearance: '外觀',
    configNavigation: '導航',
    configSuccess: '配置成功',
    confirm: '確認',
    connect: '連線',
    console: '控制台',
    continue: '繼續',
    continueWith: '繼續',
    copiedTip: '已複製',
    copyAndClose: '複製並關閉',
    copyTip: '點擊複製',
    coreStorage: '核心儲存',
    cpu: 'CPU',
    create: '創建',
    createSuccess: '建立存取金鑰',
    created: '建立於',
    createdAt: '創建於',
    createdBy: '創建者是',
    dAddress: '分散式識別符 (DID)',
    dataStorage: '本地磁碟機儲存',
    delConfirm: '刪除',
    delConfirmDescription: '確認刪除 {data} 嗎？',
    delete: '刪除',
    dependents: '受扶養人',
    description: '描述',
    detail: '詳情',
    did: 'DID',
    disk: '磁碟',
    diskInfo: '磁碟資訊',
    docker: '是Docker',
    documentation: '文件',
    domain: '網域',
    downgradeTo: '降級為',
    download: '下載',
    downloading: '下載中',
    edit: '編輯',
    email: '電子郵箱',
    phone: '電話',
    empty: '空的',
    emptyData: '找不到結果',
    enable: '啟用',
    engine: '引擎',
    env: '環境',
    environment: '環境',
    expandAll: '展開所有',
    expired: '已過期',
    expires: '到期',
    export: '匯出',
    externalIp: '外部IP',
    failed: '失敗',
    filter: '日誌篩選器',
    fingerprint: '指紋',
    finish: '完成',
    forbid: '禁止',
    free: '自由',
    general: '將軍',
    gitpod: 'Gitpod是',
    goEULA: '點擊檢視「最終用户許可協議」',
    group: '團體',
    image: 'IS 圖像',
    install: '安裝',
    installed: '安裝完成',
    installedAt: '安裝在',
    installSuccess: '安裝成功',
    installing: '正在安裝',
    internalIp: '內部IP',
    introduction: '介紹',
    invite: '邀請',
    inviting: '邀請',
    ip: 'IP',
    isPublic: '公開的',
    issue: '問題',
    issuer: '發行者',
    item: '物品',
    joined: '加入',
    key: '關鍵字',
    releases: '發布',
    lastPublishedAt: '發表於',
    launcher: '啟動器資訊',
    leavePageTip: '你確定要離開頁面嗎？',
    link: '連結',
    loading: '載入中',
    log: '檢視日誌',
    logStorage: '日誌存儲',
    login: '登入',
    logo: '商標',
    logout: '登出',
    logs: '日誌',
    manageTeam: '管理團隊',
    marketplace: '市場',
    member: '成員',
    members: '成員',
    memory: '記憶',
    meta: '元資料',
    analytics: '分析',
    runtime: '執行時間',
    traffic: '交通',
    more: '更多',
    mountPoint: '掛載點',
    name: '名字',
    next: '下一個',
    no: '不',
    noData: '沒有記錄可顯示',
    notice: '如果不讀這個，將會發生意想不到的壞事！',
    noticeTitle: '注意事項',
    notification: '通知',
    open: '打開',
    management: '管理',
    os: '作業系統',
    overview: '概述',
    owner: '所有者',
    page404: '404頁面',
    passport: '通行證',
    permission: '允許',
    port: '港口',
    pre: '前',
    preferences: '偏好',
    preview: '預覽',
    protected: '受保護',
    protocol: '協議',
    purchase: '購買',
    readMore: '更多',
    redirect: '重新導向',
    redirectCode: '重定向代碼',
    redirectPermanently: '永久重新導向',
    redirectTemporary: '臨時重定向',
    redirectUrl: '重定向 URL',
    rewrite: '重寫',
    release: '釋放',
    rewriteUrl: '重寫URL',
    reject: '拒絕',
    reload: '重新載入',
    remark: '備註',
    remove: '刪除',
    removeSuccess: '成功刪除',
    renew: '更新',
    reportIssue: '回報問題',
    required: '必需',
    requiredErrorText: '{name} 是必需的',
    resource: '資源',
    restart: '重新啟動',
    restore: '還原',
    retry: '重試',
    revoke: '撤銷',
    role: '角色',
    running: '跑步',
    runtimeInfo: '執行時資訊',
    save: '保存',
    saveChanges: '儲存變更',
    saveSuccess: '儲存成功',
    scheduleFailed: '計劃失敗',
    scheduleSuccess: '成功安排',
    scope: '範圍',
    screenshot: '螢幕截圖',
    search: '搜索',
    security: '安全',
    serverDid: '伺服器 DID',
    serverVersion: '伺服器版本',
    setting: '設定',
    start: '開始',
    status: '狀態',
    stop: '停止',
    storage: '儲存',
    backup: '備份',
    store: '商店',
    succeeded: '成功',
    subscription: '訂閱',
    support: '支援網址或電子郵箱',
    switch: '開關',
    team: '團隊',
    the: '這個',
    timeAgo: '{time}前',
    title: '標題',
    type: '類型',
    unavailable: '暫無',
    update: '更新',
    updateAvailable: '新版本 {version} 可用',
    updatedAt: '更新於 {time}',
    updatedBy: '更新者',
    upgrade: '升級',
    upgradeTo: '升級到',
    upgrading: '升級',
    uptime: '上線時間',
    url: 'URL',
    valid: '有效的',
    value: '價值',
    version: '版本',
    visit: '參觀',
    waiting: '等待中',
    webhook: '整合',
    yes: '是的',
    invalidParam: '無效參數',
    launch: '發射',
    price: '價格',
    redirecting: '重新導向',
    error: '錯誤',
    reminder: '提醒',
    normal: '正常',
    gateway: '閘道器',
    verifyNFT: '驗證NFT',
    errorMessage: '錯誤訊息：',
    slugifyHint: '實際掛載點將是：{value}',
    strategy: '策略',
    auto: '汽車',
    manual: '手冊',
    progress: '進行中',
    startTime: '開始時間',
    endTime: '結束時間',
    timeoutError: '超時錯誤',
    tags: '標籤',
    connectToStore: '連接至商店',
    uploaded: '已上傳',
    upload: '上傳',
    blockletStudio: 'Studio',
    visitStore: '訪問 Store',
    reconnect: '重新連接',
    change: '更改',
    disconnect: '斷開連線',
    sourceApp: '屬於此 App',
    visitTarget: '拜訪{name}',
    upgradeServer: '升級伺服器',
    display: '外觀',
    requiredInputPlaceholder: '請輸入 {name}',
    refresh: '重新 整理',
    moveUp: '向上移動',
    moveDown: '下移',
    enabled: '已啟用',
    disabled: '已停用',
    homepage: '首頁',
    buy: '購買',
    view: '檢視',
    homepageTip: '首頁或示範 URL',
    repository: '代碼倉庫',
    expand: '展開',
    collapse: '收合',
    all: '全部',
    notificationRecords: '通知',
    unrecordedUser: '未記錄的名稱',
    unrecordedRole: '未記錄角色',
    auditLogsSearch: '搜尋操作或內容',
    optional: '可選',
    bugOrConnectDomain: '購買或連接已有網域',
    bugOrConnectDomainTip: '網域名是你在網際網路上的網站的唯一位址。 你可以從DID Names或任何域名註冊商購買新網域名，或者設定你已擁有的現有網域名。',
    connectExistingDomain: '連接現有網域',
    domains: '網域',
    didDomains: 'DID 網域',
    manualDomains: '我的網域',
    didDomainsDescription: '以下網域由DID:Names 服務自動管理。',
    systemDomains: '默认域名',
    systemDomainsDescription: '以下網域名稱由系統分配。可以存取它們；但是，它們並非用於生產用途，不應與您的客戶共享。',
    manualDomainsDescription: '以下網域由您的網域提供商管理，並已手動設定為指向這裡。',
    fileCount: '檔案計數',
    fileSize: '檔案大小',
    time: '時間',
    less: '更少',
    timeInfo: '時間',
    operator: '操作者',
    inviter: '邀請者',
    clear: '清除',
    ok: 'OK',
    minutes: '分鐘',
    hours: '小時',
    hour: '小時',
    days: '天',
    day: '天',
    weeks: '週',
    months: '月份',
    custom: '自訂',
    environments: '環境',
    sites: '網站',
    active: '活躍',
    backupTime: '備份時間',
    lastUsedAt: '上次使用時間',
    expiredAt: '到期日',
    createdVia: '透過',
    neverExpired: '從不',
    baseInfo: '基本資訊',
    otherInfo: '更多資訊',
    lightMode: '淺色模式',
    darkMode: '深色模式',
    globalSettings: '全域設定',
    document: '文件',
    mcpServers: 'MCP 伺服器',
    generate: '產生',
    copy: '複製',
    copied: '已複製',
    orgs: '組織',
    userSessions: '用戶會話',
    duplicate: '複製',
    oauth: 'OAuth 應用程式',
    poweredBy: '由 {brand} 提供支援'
  },
  blocklet: {
    external: '外部的',
    notFound: '在此伺服器上未找到 Blocklet，可能已經被刪除',
    installFromMarket: '安裝新的 Blocklets',
    installFromUrl: '從URL安裝',
    installFromCreate: '建立 Blocklet',
    installFromDiskBackup: '從此伺服器還原',
    installedAt: '安裝於',
    internal: '內部',
    startedAt: '開始於',
    stoppedAt: '停在',
    urlEmptyTip: '無訪問URL',
    goToAddRule: '前往添加',
    services: '暴露的服務',
    upstreamPort: '上游端口',
    noService: '無服務',
    appId: 'App DID',
    appPid: '永久的DID',
    alsoKnownAs: '別名',
    skSource: '所有人錢包',
    reloadSuccess: 'Blocklet成功重新加載',
    statusTip: 'Blocklet 是 {status}',
    initialUptime: '小於1公尺',
    dashboard: 'Blocklet 檢測儀表板',
    noComponent: '應用程式沒有組件，無法啟動',
    fromUrl: {
      title: '安裝 Blocklet',
      label: 'Blocklet URL',
      description: 'URL 應該指向 Blocklet 的元檔案。如果你需要參考一個本地檔案，請添加 file:// 前綴，例如：file:///Users/foo/blocklet.json。',
      confirm: '安裝',
      step0: '輸入URL',
      step1: '確認元信息',
      existTipPrefix: '具有相同DID的Blocklet已經存在，版本為{version}',
      existTipSuffix: '請安裝更高的版本。'
    },
    action: {
      stopDescription: '停止方塊將使其公共介面不可訪問，這可能導致終端用户失敗',
      stopComponentDescription: '停止該元件將使其公共介面無法存取，可能導致終端用户失敗',
      confirmStop: '是的，停下來',
      cancelDownloadDescription: '取消下載{name}？',
      removeApplicationDescription: '移除該應用程式將刪除由此應用程式產生的程式碼和資料，如果您沒有任何備份，這些資料將無法還原',
      removeApplicationAfterBackup: '備份並刪除應用程式。如果需要，您可以從此伺服器恢復應用程式',
      removeApplicationComplete: '刪除此應用程式的程式碼和資料',
      removeComponentDescription: '刪除元件將清除由此元件生成的代碼和數據，如果您沒有任何備份，則無法恢復',
      removeComponentKeepData: '保留此組件的資料，僅移除程式碼',
      removeComponentComplete: '移除此元件的程式碼和資料',
      confirmRemove: '是的，刪除它',
      confirmComponentRemove: '是的，刪除它',
      upgradeDescription: '升級 Blocklet 將使其暫時無法使用，你確定要繼續嗎？',
      confirmUpgrade: '是的，升級它',
      confirmRestart: '是的，重新啟動',
      restartDescription: '重新啟動塊將暫時暫停且可能由於配置更改無法啟動'
    },
    dev: {
      modeTip: '請將Blocklet伺服器切換到偵錯模式'
    },
    index: {
      tableTitle: '管理您的Blocklets',
      noBlocklet: '在這個Blocklet伺服器中找不到blocklets，請從市場安裝一個blocklet開始。'
    },
    config: {
      name: '應用程式名稱',
      description: '應用程式描述',
      logoSquare: '應用程式標誌',
      logoRect: '網站 Logo',
      logoRectDesc: '使用於: 網站頁眉和頁腳，未設定則回退到應用程式 Logo',
      logoFavicon: 'Favicon',
      logoFaviconDesc: '使用於：瀏覽器地址列和分頁，未設定則回退到應用程式 Logo',
      clusterSize: '在叢集模式下運行此 blocklet 時的實例數',
      copyrightOwner: '版權所有人',
      copyrightYear: '版權 年份',
      deletable: {
        name: '刪除保護',
        enable: '目前無法刪除此 blocklet',
        disable: '這個 Blocklet 目前可以刪除'
      },
      walletType: {
        name: '錢包類型',
        description: 'Blocklet實例錢包類型，將更改衍生的DID'
      },
      languages: '支援的語言',
      selectLanguagesTip: '通過刪除和重新添加來調整順序',
      languagesSearch: '透過國家本地名稱、英文名稱或ISO代碼搜尋...',
      passportColor: '通行證顏色',
      appUrl: '應用程式網址',
      access: {
        title: '誰能存取？',
        description: '選擇你希望如何控制對你的應用程式的存取。',
        useDefault: '使用預設值',
        defaultDescription: '使用應用程式的預設配置',
        whoCanAccess: {
          all: {
            title: '面向所有人',
            description: '任何人都可以訪問應用程式而不需要身份驗證。'
          },
          owner: {
            title: '僅限所有者存取',
            description: '僅限擁有者訪問應用程式。'
          },
          invited: {
            title: '僅限受邀訪問',
            description: '只有受邀成員可以存取。'
          }
        },
        publicToStore: '公眾在店內',
        publicInstanceTip: '此 Blocklet 鏈的存取地址將會在商店中顯示（連同您的DID用於接受捐款）',
        updatedTip: '存取控制已修改'
      },
      changedTip: '配置已更新，請重新啟動 Blocklet',
      missingRequired: '缺少啟動 Blocklet 鏈所需的配置',
      gotoFix: '去修理',
      environment: {
        key: '配置鍵',
        value: '配置值',
        keyValueRequired: '配置鍵和值必須指定',
        invalidKey: '配置鍵不能以BLOCKLET_或COMPONENT_開頭',
        deleteForbidden: '這個設定是必需的，不應該被刪除',
        tip: '以 BWA_ 為前綴的配置項不應包含敏感信息，因為它們將被發送到瀏覽器'
      },
      dangerZone: '危險區域',
      sharedToAllComponents: '將分享給所有組件',
      session: {
        ttl: '如果用户在此網站上沒有任何活動 {day} 天，將被要求重新登錄',
        day: '{day}天',
        days: '{day} 天',
        period: '會話有效期',
        profile: '用户個人檔案需求',
        cacheTtl: '用戶會話數據的快取持續時間（以秒為單位）',
        fullNameEnabled: '登錄時請求用户名稱（預設啟用）',
        avatarEnabled: '登錄時請求用户頭像（默認啟用）',
        emailEnabled: '在登錄時請求用户電子郵箱',
        emailRequireVerified: '要求用户在登入前驗證電子郵箱',
        emailRequireUnique: '要求用户電子郵箱在所有用户中是唯一的',
        phoneEnabled: '在登錄時請求用户電話號碼（目前不支援）',
        phoneRequireVerified: '在登錄前要求用戶驗證電話號碼',
        phoneRequireUnique: '要求用户電話號碼在所有用戶中是唯一的',
        emailTrustOauthProviders: '信任OAuth提供商進行電子郵箱驗證狀態',
        enableDomainBlackList: '啟用電子郵箱域黑名單（拒絕列出的電子郵箱域）',
        enableDomainWhiteList: '啟用電子郵箱域白名單（僅允許列出的電子郵箱域登錄）',
        addDomain: '添加來源以獲取清單（純文本格式，每行一個域名）',
        enableBlacklist: '啟用 Login Token 黑名單功能',
        experimentalSettings: '實驗設定'
      },
      clearCache: {
        name: '快取管理',
        purpose: '管理路由器和 Blocklet Server 中緩存的檔案',
        title: '確認清除快取嗎？',
        action: '清除快取',
        success: '成功清除{count}個快取項目',
        description: '你確定要清除路由器和 Blocklet Blocklet中的快取文件嗎？這個操作可能會導致短期內性能略微下降。'
      },
      tenantMode: {
        name: '多租戶模式',
        multiple: '該 Blocklet 以多租戶模式運行，每個租戶的數據應該是隔離的',
        single: '這個 Blocklet 在單租戶模式下運行，所有數據都是共享的'
      },
      splashPortrait: '啟動畫面',
      splashLandscape: '橫屏閃屏圖',
      splashPortraitDesc: 'Blocklet 啟動時顯示。建議使用 PNG 或 JPG 格式，直向比例為 9:16，橫向比例為 16:9（最大 5MB）',
      rotateSessionKey: {
        name: '會話密鑰輪換',
        purpose: '會話 salt 是用於增強會話令牌安全性的隨機值。點擊按鈕手動旋轉會話 salt，以幫助降低登錄令牌被盜的風險。',
        title: '確認會話密鑰輪換嗎?',
        action: '輪換密鑰',
        success: '會話密鑰輪換成功',
        description: '你確定要輪換會話密鑰嗎？此操作將使所有現有的登錄令牌失效，並強制用戶重新登錄，包括你自己的登錄令牌。'
      },
      ogImage: 'Open Graph 背景',
      ogImageDesc: '使用於：社群媒體分享背景',
      migrate: {
        button: '應用 DID 輪換',
        title: '確認應用 DID 輪換？',
        description: '您確定要輪換應用 DID 嗎？此操作將使所有現有工作階段失效，並強制使用者重新登入，包括您自己的工作階段',
        confirm: '您確定要更改應用 DID 嗎？此操作將使所有現有會話失效，並強制使用者重新登入，包括您自己的會話。'
      },
      vault: {
        name: 'Vault DID',
        title: '配置 Vault',
        desc: '使用 vault 為這個 Blocklet 管理的資金增加一層額外的安全保障。',
        tip: '輸入 vault 地址繼續，你需要證明 vault 地址的所有權才能使用。',
        address: 'Vault 位址',
        verified: 'Vault 已驗證',
        current: '當前 Vault',
        error: {
          invalid: 'Vault 地址必須是有效的 DID',
          holder: 'Vault 地址必須是區塊鏈上的有效代幣持有者，代幣/資產/工廠/質押地址不支持',
          duplicate: 'Vault 地址已存在',
          appDid: '不能使用應用 DID 作為 vault 地址，請使用不同的地址'
        },
        role: '角色類型',
        firstSeen: '首次見到',
        lastSeen: '上次查看',
        migratedFrom: '移轉自',
        migratedTo: '遷移到',
        commit: {
          title: '驗證 Vault 所有權',
          scan: '掃描下面的二維碼以驗證保險庫的所有權',
          confirm: '確認使用 DID Wallet',
          success: 'Vault 配置成功'
        },
        approve: {
          title: '批准 Vault 變更',
          byOwner: '與Blocklet所有者簽名以批准更改',
          byLast: '使用最後保險庫簽名以批准更改',
          confirm: '使用 DID Wallet 確認',
          success: 'Vault變更已批准'
        }
      },
      changeImageTip: '提示：如果想更改圖片，請點擊預覽圖片進行更改。',
      baseInfo: '應用資訊',
      baseInfoDesc: '這裡可以設定網站的基本資訊。',
      logoSettings: '視覺資訊',
      logoSettingsDesc: '塑造獨特的品牌形象，提升網站在各種情境下的辨識度和視覺吸引力。',
      languagesDesc: '使用於：訪客語言選擇',
      nameDesc: '使用於：DID Connect 頭部，瀏覽器分頁，網站頁尾，SEO 元數據和 OpenGraph 元數據',
      nameValidateError: '無效：以字母/數字開頭，3-129 個字元，僅限 a-z, 0-9, - 和 _。',
      descriptionDesc: '用於: SEO 元數據和 OpenGraph 元數據',
      logoSquareDesc: '用於：使用者身份驗證對話框頁腳和 <b>DID Wallet</b> 應用程式列表',
      logoDesc: '建議尺寸：{width} * {height} 像素',
      splashDesc: 'ArcSphere 應用啟動畫面 (如果已設定，將會顯示在 <b>ArcSphere</b> 中)\n\n直向模式：\n比例：9:16\n\n橫向模式：\n比例：16:9',
      copyrightDesc: '使用於：網站頁腳',
      appUrlDesc: '使用於： 網站地圖和社群分享',
      advanced: '進階設定',
      errorReason: 'Blocklet 啟動失敗，但您仍然可以透過點擊下方的按鈕來存取它。'
    },
    overview: {
      source: '來源',
      deployedFrom: '從部署',
      accessControl: '存取控制',
      viewInStore: '在商店觀看'
    },
    diskInfo: {
      empty: '磁碟資訊目前無法使用！',
      appDir: '應用程式目錄',
      dataDir: '資料目錄',
      logDir: '日誌目錄',
      cacheDir: '快取目錄'
    },
    runtimeInfo: {
      noRunning: '當 blocklet 正在運行時，將提供執行時資訊！',
      memoryUsage: '記憶體使用',
      cpuUsage: 'CPU 使用率',
      uptime: '持續時間',
      port: '港口',
      processId: '進程 ID',
      dataStorage: '資料儲存'
    },
    dist: {
      downloadLink: '下載連結',
      verify: '驗證'
    },
    status: {
      added: '已加入',
      waiting: '等待中',
      downloading: '下載中',
      extracting: '提取',
      installing: '安裝中',
      upgrading: '升級',
      installed: '已安裝',
      created: '創建',
      starting: '開始',
      running: '跑步',
      stopping: '停止',
      stopped: '停止',
      error: '錯誤',
      deleting: '刪除',
      corrupted: '損壞的',
      purchasing: '等待購買',
      purchased: '已購買',
      verifying: '驗證購買',
      resource: '資源',
      failWithOldVersion: '啟動失敗，當前服務仍在使用舊版本',
      hasSomeErrors: '{blocklets} 有一些錯誤'
    },
    list: {
      download: '下載',
      star: '星',
      searchPlaceholder: '按 Blocklet 名稱或 DID 搜尋'
    },
    component: {
      container: '全球配置',
      showContainer: '顯示全局配置',
      didSpaceConfig: '設定 DID 空間',
      didSpaceConfigTip: '請完成以下授權過程以將應用程式資料存儲在DID空間中',
      didSpaceConnected: '授權給存儲: {endpoint}',
      checkUpdateTitle: '檢查更新',
      updateTitle: '更新 Blocklet',
      noUpdate: '沒有 Blocklet可更新',
      add: '添加 Blocklet',
      selectComponent: '選擇 Blocklet',
      selectRegistry: '選擇 Blocklet 商店',
      selectRegistryTip: '您可以切換 Blocklet Store 以查看更多 Blocklet',
      selectInstance: '選擇實例',
      selectInstanceTip: '您可以選擇現有實例或建立新實例。現有實例將使用先前保存的配置和數據',
      newInstance: '建立新實例',
      noComponent: '沒有 Blocklets',
      mountPoint: '掛載點是什麼？',
      mountPointTip: "如果您將掛載點設置為 '/my-prefix'，則以該掛載點開頭的所有請求都將被路由到所選組件。",
      delete: '刪除 Blocklet',
      deleteDescription: '刪除後此 Blocklet 將無法被讀取。確認刪除？',
      purchase: '需要付款',
      tip: {
        stopBlocklet: '請先停止運行 Blocklet',
        requiredBy: '該 Blocklet 是{name}所需的'
      },
      choose: '選擇',
      addWithName: '將 Blocklet 新增至 {name}',
      installingCanCloseWindowTip: '正在背景安裝 Blocklet，您可以安全關閉此視窗',
      installSuccessTip: '恭喜，元件安裝成功！',
      missDownloadTokenTip: '沒有有效的下載令牌，無法增加付費組件',
      purchaseComponentSecondCheckTip: '請出示您的 Blocklet 鏈購買NFT以繼續',
      installComponentError: '安裝 Blocklet 時出現錯誤，請重試',
      downloadComponentError: '下載 Blocklet 出錯，請重試',
      addComponentTip: {
        introduction: '歡迎使用新增元件精靈',
        isPurchase: '在使用<b>{name}</b>作為組件之前，您需要驗證 NFT',
        belowInformation: '以下是該組件的資訊:',
        verifyNFT: '請選擇驗證 NFT 的方法',
        config: '請填寫元件的配置',
        environment: '請填寫元件的環境',
        fromUrl: '從 URL 新增 Blocklet',
        fromUpload: '從上傳添加 Blocklet',
        uploadFailed: '上傳失敗',
        allowedFileTypes: '允許上傳的檔案類型：{types}'
      },
      addNext: '新增 {name}',
      upgradeNext: '升級 {name}',
      setting: '設定',
      noDependencies: '{name}沒有任何依賴',
      relatedComponents: '相關 Blocklet',
      required: '需要',
      installed: '已安裝',
      installingTip: '安裝元件，請稍後...',
      upgrade: '升級',
      upgradeAvailable: '可更新',
      needBuy: '需購買',
      isOfficial: '官方認證'
    },
    router: {
      urlPath: 'URL路徑',
      noRunning: ' Blocklet 鏈未啟動。無法透過以下地址訪問！',
      securitySetting: '安全設置',
      checkUrlAccessible: '檢查地址的可訪問性',
      urlInaccessible: '可能是因為網路原因，該地址暫時無法存取',
      noAccessibleUrl: '沒有可訪問的URL',
      domainLockTooltip: '系統生成的域名無法編輯。',
      urlLockTooltip: '系統生成的URL路徑無法編輯。',
      showAllDomains: '顯示所有網域',
      showAllDIDs: '顯示所有DID',
      currentDomainTip: '您正在透過此網域存取當前頁面'
    },
    export: {
      title: '導出Blocklet',
      name: '捆綁名稱',
      nameTip: '我的-blocklet-name',
      result: '接下來是什麼？',
      exportSource: '匯出來源',
      success: 'Blocklet 成功匯出',
      resultTipStart: '與',
      resultTipEnd: '您可以在幾分鐘內建構並發布此 Blocklet',
      uploadedComponentTip: '無法匯出直接上傳的組件'
    },
    migrate: {
      title: '遷移應用程式',
      scan: '連接您的DID錢包以為此應用程式生成金鑰對',
      confirm: '請在您的DID錢包上檢視此操作',
      success: '您的應用程式已成功遷移，頁面將於{sec}秒後重新整理',
      intro: {
        l1: '點擊這裡',
        l2: '遷移您的應用程式到新版本（在遷移完成之前更改被禁用）',
        l3: 'DID應用程式將完全由您的DID錢包控制。',
        l4: '2. 應用程式資料將被遷移，不需要進一步的更改。',
        l5: '3. 新的應用程式結構在更改元件時將給您更多的彈性。',
        l6: '4. 在組件新版本發布之前，請不要更改組件的掛載點。'
      },
      tip: {
        duplicate: '查找重複的組件{name}，請刪除無用的組件並重新遷移',
        running: '請在遷移之前停止blocklet'
      }
    },
    error: {
      isRunning: 'Blocklet正在運行，請先停止它',
      isInProgress: 'Blocklet正在進行中，請等待完成'
    },
    publish: {
      createResource: '建立資源',
      addResource: '新增 Blocklet',
      productTitle: '產品',
      versionTitle: '版本',
      imgTitle: '圖片',
      resourceTitle: '資源',
      blockletEmptyTip: '這裡沒有 Blocklets',
      createBlockletTip: '您可以透過現有的資源、元件和設定，在此應用程式中建立新的 blocklet',
      createBlocklet: '新增 Blocklet',
      componentNotRunning: 'Blocklet {name} 沒有運行，請先啟動它',
      releaseEmptyTip: '這裡沒有任何發布',
      createReleaseTip: '您可以創建一個 Blocklet 釋出，附帶釋出說明和資源，供其他人使用',
      createRelease: '創建版本',
      deleteReleaseTip: '刪除後無法還原發布',
      createBlockletDid: '從DID錢包創建',
      createReleaseSuccess: '發佈成功',
      saveDraftSuccess: '草稿已成功儲存',
      connect: {
        title: '創建 Blocklet DID',
        scan: '掃描下方的QR碼以生成Blocklet DID',
        confirm: '使用DID錢包進行確認',
        success: '已生成Blocklet DID，請繼續進行操作'
      },
      saveDraft: '儲存草稿',
      releaseNote: '發佈說明',
      errorTip: {
        noDid: '需要Blocklet的DID',
        noTitle: '需要提供Blocklet標題',
        noVersion: '需要 Blocklet 版本',
        noDescription: '需要提供 Blocklet 描述',
        noNote: '需要提供發佈說明',
        inValidVersion: '無效的 Blocklet 版本',
        noResource: '請選擇上傳的資源以包含在 Blocklet 中',
        noFirstDid: '請先建立Blocklet DID',
        invalidUrl: '請輸入有效的URL',
        invalidUrlOrEmail: '請輸入有效的URL或電子郵箱'
      },
      packTip: '目前，blocklet可以直接安裝為應用程序。組件和應用程序配置將自動包含在blocklet中',
      resourceChangedWarning: '您已修改資源，請儘速保存',
      installResourceTip: '安裝網址:',
      installResourceTip2: '如果您想查看更多提示，請訪問 {name}',
      installResourceHelp: '幫助文件',
      componentIncluded: '已包含',
      componentForceRequired: '强依赖',
      download: '下載 {name}',
      delete: '刪除 {name}',
      copyInstallUrl: '複製安裝連結',
      install: '安裝{name}',
      publishToStoreSuccess: '成功發佈到商店的Blocklet',
      connectStoreSuccess: 'Store 連線成功',
      uploadToStoreSuccess: 'Blocklet 成功上傳至 Store，請在 Store 中發布',
      viewLastRelease: '查看最新版本',
      reconnectStoreTip: '重新連接後，將綁定一個新的開發者。你確定要重新連接嗎？',
      deleteProject: {
        title: '刪除{name}',
        scan: '掃描下方的QR碼以刪除{name}',
        confirm: '確認使用DID錢包',
        success: 'Blocklet 已被刪除，請繼續進行操作',
        tip1: 'Blocklet 項目一旦刪除將無法恢復。',
        tip2: '您將無法再向已刪除的 Blocklet 發佈新版本，這意味著該 Blocklet 將不再在商店中更新。',
        tip3: '刪除 Blocklet 不會影響商店中已發布的版本。',
        description: '您確定要刪除這個 Blocklet 嗎？刪除後可能會遇到以下問題：'
      },
      resourceTip: '目前，作為資源型 Blocklet，無法直接從商店安裝。',
      whyCantSeeInStore: '你可以將目前 Blocklet 發佈到商店，它可以在全世界使用',
      whyCantSeeResourceBlockletInStore: '你可以將目前 Blocklet 發佈到商店，它可以在全球使用。Blocklets 預設情況下隱藏在商店列表頁面',
      tenantScope: '租戶',
      blockletStudio: 'Blocklet Studio',
      allComponentsNotRunning: 'Blocklets未執行，請先啟動',
      resourceEmptyTip: '沒有可用的資源',
      steps: {
        resources: '請選擇需要與當前的 Blocklet 關聯的資源，因為這些資源將與 Blocklet 一起安裝。',
        blocklets: '請選擇要關聯的 Blocklets。',
        version: '設置發布版本和更改日誌。',
        introduction: '清晰的介紹可以有效地突出你的 Blocklet。你可以使用 Markdown 語法來編寫和預覽。',
        branding: '描述您的 Blocklet 的基本資訊。此資訊將呈現給商店用户。'
      },
      branding: '品牌',
      brandingHelp: '將在商店中顯示有關 Blocklet 的更多信息',
      resourceSelect: '從 Blocklets 選擇資源',
      resourceUpload: '從您的磁盤上傳資源（存檔中需要index.html）',
      deleteStoreTip: '您確定要將{name}從連接商店列表中移除嗎？',
      disconnectStoreTip: '斷開連線後，Blocklet 將從商店中移除。您確定要斷開連線嗎？',
      connectOrUpload: '連接或上傳',
      developerInfo: '開發者資訊',
      possibleSameStoreTip: '依賴的 Blocklets 優先使用同源 Store',
      autoUploadTip: '創建發布後自動將 Blocklet 上傳到商店',
      needProjectId: '請先創建一個專案',
      projectSettings: '專案設定',
      noStoreSelected: '請選擇現有商店或添加新商店以繼續',
      installToThisServer: '安裝至此伺服器',
      forceResourceBlocklet: '強制定義為資源型 Blocklet',
      resourceDocker: '從 Docker 構建 Blocklet',
      resourceSelectTitle: '資源',
      resourceUploadTitle: '上傳',
      resourceDockerTitle: 'Docker',
      resourceDockerInputTip: '請輸入 docker run 命令',
      docker: {
        pleaseInputDockerCommand: '請輸入 docker run 指令',
        volumeTip: '卷必須以 $BLOCKLET_DATA_DIR 或 $BLOCKLET_APP_DIR 開頭',
        volumeTip2: '卷不能包含 ".."',
        noAllowTheArg: '不允許在 docker run 指令中使用該參數',
        needCustomInput: '安裝 Blocklet 時設置值',
        dockerParams: 'Docker 參數',
        dockerCommand: 'Docker 指令',
        dockerImageName: 'Docker 映像名稱',
        addItem: '新增 Docker 執行參數',
        envKey: '環境變數鍵',
        publishTips: '最終外部端口將由 blocklet 自動分配',
        volumeTips: '卷需要以 $BLOCKLET_DATA_DIR 或 $BLOCKLET_APP_DIR 開頭',
        modifyParam: '修改 Docker 執行參數',
        modifyEnv: '修改環境變數',
        paramDetail: '參數詳情',
        description: '描述',
        secure: '安全',
        shared: '共享',
        required: '必需',
        prefix: '前綴',
        path: '路徑',
        name: '名字',
        portType: '端口類型',
        dockerImageNameError: 'Docker 映像檔名稱不能包含空格',
        autoGenerated: '自動生成',
        dockerCMDError: 'Docker CMD 只支援簡單字元',
        proxyBehavior: '代理行為',
        serviceProxy: '服務',
        directProxy: '直接',
        nextTab: '解析 命令'
      },
      storeRule: {
        maxImageCount: 'Store 最多允許 {max} 張螢幕截圖。',
        minImageCount: 'Store 至少需要 {min} 張螢幕截圖。',
        minImageSize: '{name}張螢幕截圖影像大小必須至少為 {width}x{height}。',
        logoFormat: 'Logo 圖片格式僅支援 [{format}]。',
        warning: '警告',
        screenshot: '螢幕截圖',
        screenshots: '螢幕截圖',
        first: '第一',
        second: '第二',
        third: '第三'
      },
      store: 'Blocklet 商店',
      endpoint: {
        tab: '遠端 Blocklet',
        uploadToEndpoint: '你可以上傳目前的 Blocklet 到指定的 Blocklet。',
        addEndpoint: '新增 Blocklet URL',
        urlEmpty: '端點 URL 不可為空',
        addFailed: '新增 Blocklet URL 失敗：',
        deleteEndpoint: '刪除 Blocklet URL',
        deleteDesc: '確認刪除 Blocklet URL {name}？<br/><span style="color: {color}">*移除此 Blocklet URL後，除非重新添加，否則無法更新從此 Blocklet URL 安裝的應用程式。</span>',
        confirmDesc: '請輸入 {name} 刪除',
        visitEndpoint: '造訪 Blocklet',
        disconnectEndpointTip: '你確定要斷開 {url} 的連線嗎？斷開連線後，Blocklet 將不會上傳到此 URL。',
        deleteFailed: '刪除 Blocklet URL 失敗',
        publishToEndpointSuccess: 'Blocklet 成功發佈到 URL',
        uploadToEndpointSuccess: 'Blocklet 上傳到 URL 成功'
      },
      autoPublishErrorTip: '自動發布到 {storeName} 失敗：{error}',
      singleton: '僅運行一個實例',
      singletonTip: '啟用單例模式時，應用程式不能同時執行多個實例。由於您的應用使用單例模式，藍綠部署無法用於更新或重新啟動。'
    },
    titleValidationError: '標題長度必須在 3 到 20 個字元之間',
    descriptionValidationError: '描述長度必須介於3到80個字元之間',
    whyNeedAppPid: '如果已遷移您的應用程式，永久 DID 是最初安裝此 Blocklet 時產生的 DID。',
    usingDocker: '這個 Blocklet 將使用 Docker 運行',
    gotoVisitError: '無法訪問 Blocklet URL，請稍後再試',
    usingIsolation: '這個 Blocklet 將使用網路隔離執行',
    dockerImage: '支援 Docker',
    mountPoint: {
      description1: '此更改可能會破壞包含舊掛載點的 URL，這可能會進一步導致：',
      case1: '此應用程式中 Blocklets 之間的資源參考已損壞',
      case2: '無效的 URL，如果您已公開分享',
      description2: '你可以設定從舊掛載點到新掛載點的重新導向，以最大程度地減少可能造成的破壞性變更。'
    },
    skSourceMigratedTip: '此應用程式最初使用伺服器管理的錢包啟動，現已遷移到 DID Wallet 以增強安全性。',
    skSourceManagedTip: '此應用程式正在使用伺服器管理的錢包，請儘快遷移到DID Wallet以獲得更好的安全性。',
    zeroDowntime: '零停機'
  },
  dashboard: {
    nodeDid: '節點',
    ownerDid: '主人',
    routingEngine: '路由引擎',
    ownerNftURL: 'NFT擁有者',
    expirationLeft: '剩餘到期日',
    startFromCrashTip: 'Blocklet Server 上次未正常結束，請手動啟動需要運行的 Blocklet。',
    runtimeConfig: {
      blockletMaxMemoryLimit: 'Blocklet最大記憶體限制',
      daemonMaxMemoryLimit: '伺服器最大記憶體限制'
    },
    document: '在我們的文件了解更多資訊',
    database: '資料庫'
  },
  store: {
    nameSort: '名字',
    popularSort: '流行度',
    headerDescription: '尋找並安裝您的 Blocklets',
    detail: {
      purchase: '購買 {name}',
      open: '打開 {name}',
      install: '安裝 {name}',
      upgrade: '升級{name}',
      empty: '沒有介紹'
    },
    blockletRegistry: {
      changeFailed: '更改 Blocklet Store 失敗',
      addFailed: '新增 Blocklet Store 失敗',
      editFailed: '編輯 Blocklet Store 失敗',
      switchRegistry: '切換 Blocklet 存儲',
      addRegistry: '添加 Blocklet Store',
      editRegistry: '編輯 Blocklet Store',
      deleteRegistry: '刪除 Blocklet Store',
      haveSameRegistry: '存在相同的 Blocklet Store',
      registryName: 'Blocklet Store 名稱',
      registryUrl: 'Blocklet Store 的 URL',
      registryNameEmpty: 'Blocklet Store 名稱不能為空',
      registryUrlEmpty: 'Blocklet Store URL 不能為空',
      deleteDesc: '確認刪除 Blocklet Store {name} ？<br/><span style="color: {color}">*刪除此 Blocklet Store 之後，除非重新加入，否則無法更新從該 blocklet 商店安裝的應用程式。</span>',
      confirmDesc: '請輸入要刪除的{name}'
    },
    purchase: {
      title: '購買 {name}',
      confirmed: '您的 Blocklet 購買 NFT 已驗證',
      declined: '您未提供有效的 Blocklet 購買 NFT',
      waiting: '等待購買完成...',
      purchase: {
        title: '購買 NFT',
        description: '在安裝此blocklet之前，請支付一些代幣，如果你尚未購買此blocklet'
      },
      verify: {
        title: '驗證NFT',
        description: '在安裝此Blocklet之前，將驗證您是否已購買並持有購買的NFT',
        auth: {
          title: '購買憑證必需',
          scan: '將DID錢包連接以提供blocklet購買NFT',
          confirm: '請在您的DID錢包上查看此操作',
          success: '您的 NFT 購買已經驗證並開始安裝'
        }
      },
      auth: {
        title: '購買{name}',
        scan: '請使用您的DID錢包掃描以下QR碼',
        confirm: '確認 在您的帳戶',
        success: '購買的NFT已發送到您的DID錢包'
      },
      launch: '啟動{name}',
      autoLaunch: '{name} 購買成功，正在重新導向至啟動頁面...'
    },
    tooltip: {
      upgradeServer: 'Blocklet 需要 Blocklet Server 版本 {version}，目前 Blocklet Server 版本是 {serverVersion}'
    }
  },
  setting: {
    saveSuccess: '設定儲存成功',
    unSavedTip: '有未保存的變更，請點擊「儲存變更」以保存它們。',
    unSavedLeaveTip: '有未保存的更改，確定要離開頁面嗎？',
    form: {
      name: '伺服器名稱',
      nameRequired: '需要伺服器描述',
      namePlaceholder: '伺服器名稱',
      description: '描述你的伺服器',
      descriptionHolder: '伺服器描述',
      descriptionRequired: '需要伺服器描述',
      domain: '你的伺服器域名',
      domainPlaceholder: '伺服器網域名稱',
      domainRequired: '伺服器網域是必要的',
      ipPlaceholder: 'IP',
      ipRequired: 'IP是必需的',
      registry: 'Blocklet Store',
      registryPlaceholder: 'Blocklet 獲取 Blocklet ',
      registryRequired: '需要 Blocklet 商店',
      registerUrl: 'Blocklet Launcher URL',
      registerUrlPlaceholder: '輸入您首選的Blocklet Launcher的URL，您可以安全使用官方的',
      webWalletUrl: 'DID 錢包網址',
      webWalletUrlPlaceholder: '請輸入您托管的“DID錢包”的URL，您可以安全地使用官方的',
      nftDomainUrl: 'NFT域名URL',
      nftDomainUrlPlaceholder: '請輸入您託管的「NFT域名」的URL，您可以安全使用官方網址',
      enableWelcomePage: '啟用歡迎頁',
      welcome: {
        switchLabel: '歡迎頁面'
      },
      upgrade: {
        title: '升級 Blocklet Server 到 {version}',
        description: '在升級期間，您的 Blocklet Server 將進入維護模式，更新完成後將持續幾分鐘。',
        dialog: '點擊"確認"安裝更新。Blocklet服務器將進入維護模式，直到更新完成並自動返回生產模式。',
        confirm: '升級',
        switchLabel: '自動更新檢查',
        enableBetaRelease: '啟用測試版釋出',
        setup: '準備升級',
        installing: '正在安裝Blocklet伺服器 v{version}',
        restarting: '重新啟動Blocklet伺服器',
        cleanup: '遷移 Blocklet Server 資料',
        verifying: '正在驗證Blocklet服務器v{version}',
        rollback: '回滾Blocklet伺服器',
        complete: '升級完成！',
        progress: '升級 {name}',
        check: '檢查更新',
        latest: '您正在執行最新版本。'
      },
      restart: {
        title: '重新啟動 Blocklet Server ',
        description: '在重新啟動期間，您的 Blocklet Server 將進入維護模式，直到重新啟動完成。',
        dialog: '點擊 "確認" 重新啟動。Blocklet Server 將進入維護模式，直到重新啟動完成並自動返回到生產模式。',
        confirm: '重新開始',
        setup: '準備重新啟動',
        verifying: '驗證 Blocklet Server ',
        restarting: '重新啟動 Blocklet Server ',
        cleanup: '確保一切正常',
        rollback: '清理髒污狀態',
        complete: '維護完成！',
        progress: '重新啟動 {name}'
      },
      register: {
        title: '註冊到 Blocklet Launcher',
        description: '一旦添加，你可以從{url}啟動這個blocklet伺服器上的blocklets',
        button: '註冊'
      },
      monitor: {
        diskThreshold: '當磁碟使用量超過 (%) 時發送警示',
        diskThresholdPlaceholder: '請設置磁碟使用警示閾值'
      },
      security: {
        switchLabel: '檔案系統隔離',
        switchTips: '在停用此選項後，Blocklet的檔案系統將不再處於隔離狀態，這可能會導致惡意軟體損壞檔案系統。',
        warningTips: '檔案系統隔離功能無法生效。請將 node.js 版本（目前版本為 {version}）升級到 v21.6.0 或更高。'
      },
      docker: {
        switchLabel: '在容器中運行 Blocklets',
        switchTips: '啟用此選項後，Blocklet 將使用容器運行，可提高伺服器的整體安全性。',
        notInstalled: '無法啟用容器運行，因為未安裝 Docker 或缺少執行所需的權限',
        needCloseFileSystemIsolation: '檔案系統隔離和 Docker 容器模式運行時不能同時啟用'
      },
      dockerNetwork: {
        switchLabel: '容器網路隔離',
        switchTips: '啟用該選項後，blocklet 會以更高安全性執行：一個 blocklet 無法存取跨應用程式的其他 blocklet 或 blocklet 伺服器。',
        needEnableDocker: '必須啟用 Docker 才能啟用網路隔離'
      },
      restartAllContainers: {
        title: '重新啟動所有容器',
        description: '重新啟動所有容器並保持 Blocklets 運行。',
        dialog: '點擊 "確認" 重啟所有容器 Blocklets 並保持 Blocklets 狀態運行。',
        confirm: '重新啟動',
        setup: '正在準備重啟',
        verifying: '正在驗證 Blocklet Server',
        restarting: '在背景重新啟動所有容器',
        cleanup: '確保一切正常',
        rollback: '清理髒狀態',
        complete: '保持完整！',
        progress: '在背景中重新啟動所有容器'
      },
      restartAllBlocklet: {
        title: '重新啟動所有 Blocklets',
        description: '重新啟動此伺服器上所有正在運行或出錯的 Blocklets。',
        dialog: '點擊“確認”在背景重新啟動所有 Blocklets。',
        confirm: '重新啟動',
        setup: '正在準備重啟',
        verifying: '驗證 Blocklet Server',
        restarting: '背景重新啟動所有正在執行或錯誤的 Blocklets',
        cleanup: '確保一切正常',
        rollback: '清理髒狀態',
        complete: '維護完成！',
        progress: '正在背景重啟所有執行中或出錯的 Blocklets'
      },
      enableSessionHardening: {
        switchLabel: '啟用會話強化',
        switchTips: '啟用此選項後，變更操作將需要嚴格驗證，這可以提高伺服器的整體安全性。'
      }
    },
    accessKey: {
      accessKeyId: 'Access Key ID',
      accessKeySecret: 'Access Key Secret',
      lastUsed: '上次使用於',
      tip: '請輸入此存取金鑰的名稱',
      saveSecretTip: '這是您的存取秘密金鑰唯一能夠檢視且無法復原的時間。然而，您可以隨時建立新的存取金鑰',
      iKnow: '我已複製並保存了 Access Secret',
      showSecret: '顯示秘密存取金鑰',
      hideSecret: '隱藏秘密',
      title: '刪除訪問金鑰',
      descriptionNoTime: '這會永久刪除名為 {name} 的存取金鑰 {key}，該金鑰以前從未使用',
      description: '這將永久刪除訪問金鑰 {key}，其名稱為 {name}，上次使用時間為 {time}，{timeAge}',
      confirm_desc: '請輸入{name}以刪除',
      remark: '訪問金鑰名稱',
      remarkInvalid: '需要存取金鑰名稱',
      passport: '選擇一個護照用於存取金鑰以授予或限制權限',
      expireTime: '設定存取金鑰的到期日期以增強安全性',
      authType: '驗證類型',
      resourceType: '資源類型',
      resourceId: '資源 ID',
      component: '元件',
      expired: '{time}過期',
      simple: '一般安全',
      signature: '高安全',
      signatureDesc: '企業級安全標準，使用加密技術。需要與SDK (@blocklet/server-js)整合程式碼，非常適合安全要求高且需要傳輸關鍵數據的場景',
      simpleDesc: '輕量級載體令牌機制，類似於OpenAPI Key，支援RESTful API呼叫和第三方服務整合。無需編碼，透過HTTP Header快速整合，非常適合快速開發',
      viewSecret: '你可以在存取金鑰的詳細頁面稍後存取金鑰',
      usage: '使用',
      listTitle: '使用存取金鑰管理安全的 API 存取',
      tooltipTitle: '產生和管理允許信任系統以程式方式與您的應用程式互動的憑證。存取金鑰允許安全的自動化以及您工具和服務之間的無縫整合。'
    },
    webhook: {
      add: '添加整合',
      delTitle: '刪除整合',
      requiredError: '請提供有效的{type}',
      confirm_desc: '請輸入要刪除的{name}',
      test: '測試',
      description: '這將永久刪除與ID {id} 的整合',
      columns: {
        description: 'ID',
        params: '參數',
        createdAt: '建立於'
      },
      testSuccess: '測試消息發送成功',
      duplicateError: 'URL 已存在',
      updateSuccess: '更新狀態成功'
    },
    dns: {
      step1Title: '登入你的網域名稱註冊商',
      step1Desc1: '登入你的網域名註冊商，找到網域名管理頁面，並找到名稱伺服器設定頁面。 你可以在',
      step2Title: '2. 尋找 {url} 的 DNS 設定',
      step2Desc: '這可能被稱為“DNS 管理”,“進階設定”或類似名稱。',
      step3Title: '3. 新增下列 DNS 記錄',
      step3Desc: '名稱可以叫做 "host"，"hostname"，或 "alias"'
    },
    domain: {
      addingDomain: '新增網域...',
      checkingResolvable: '正在檢查網域名稱狀態...',
      cannotResolve: '{domain} 無法解析，請檢查您的 DNS 設定',
      resolvedAddressError: '{domain} 未正確配置指向 {curDomain} 的 CNAME 記錄',
      invalidDNSReminder: '{error}。但是，您可以繼續添加域名，但無法自動產生憑證。',
      continueAdd: '繼續添加',
      conflictTitle: '{domain} 已經被使用了',
      conflictDescription: '{domain} 已經被 "{title}" 使用。點擊確認，該域名將從 "{from}"移除並添加到 "{to}"。'
    },
    aigne: {
      modelAdapter: '模型提供商',
      modelName: '模型名稱',
      desc: {
        modelAdapter: '提供 AI 模型服務的平台',
        modelName: '特定的模型版本或模型名稱',
        key: '{provider} API 密鑰用於認證',
        baseUrl: '輸入您的 AIGNE Hub 實例的 URL（例如 https://hub.aigne.io）。如果您自行托管，請使用您自己的地址。',
        accessKeyId: '訪問模型的唯一密鑰 ID',
        secretAccessKey: '與訪問密鑰 ID 配對的秘密密鑰',
        docLink: '查看官方文件以了解更多詳情和 API 參考'
      },
      configDesc: '將您的 Blocklet 與 AIGNE Hub 整合，以實現對大型語言模型 (LLMs) 的安全、路由存取。 連接後，您的 Blocklet 及其元件可以傳送智慧請求並立即變得更聰明。 您可以使用您自己的自託管 <a href="{url}" target="_blank">AIGNE Hub</a> 或預設的公共實例。',
      failed: 'AIGNE 配置保存失敗',
      authorizeAigneHub: '連接到 {name}',
      baseUrl: 'AIGNE Hub 網址',
      disconnect: '斷開連接',
      disconnectConfirm: '你確定要斷開與 AIGNE Hub 的連接嗎？這將移除當前的 AI 配置。',
      disconnectSuccess: '成功斷開 AIGNE Hub 連接',
      disconnectFailed: '斷開 AIGNE Hub 連接失敗',
      testConnection: '測試 {provider} 連接',
      invalidUrl: '{provider} URL 無效',
      description: '目前的配置將在 {name} 執行時生效。需要儲存並重新啟動 Blocklet 才能生效。',
      revokeUrlAuthTitle: '確認更改 {url}?',
      revokeUrlAuth: '您確定要更改 {url} 嗎？修改後，您的授權將失效，需要重新授權！',
      testSuccess: '成功連接到 AIGNE Hub',
      check: '檢查',
      apiKeyNotAuthorized: 'API 密鑰未獲授權。 請點擊連接到 AIGNE Hub 按鈕進行授權',
      switchUser: '切換用戶',
      connectTimeOut: '連接到 {provider} 超時，請稍後再試',
      restart: {
        title: '重新啟動 Blocklet',
        connectedContent: '你的 Blocklet 當前連接到 {provider}。配置將在重啟後生效。你想現在重啟嗎？',
        notConnectedContent: '你的 Blocklet 當前已與 {provider} 斷開連接。配置將於重啟後生效。你想現在重啟嗎？',
        confirm: '立即 重啟',
        cancel: '稍後 重啟'
      },
      testFailed: '無法連接到 AIGNE Hub。請檢查 URL 或您的網路。',
      addCredits: '購買 Credits',
      transaction: '查看帳單',
      connected: '成功連接',
      account: '帳戶信息',
      pendingCredit: '未付費用',
      infinite: '無限制',
      config: '配置 AIGNE Hub'
    }
  },
  notification: {
    title: '通知',
    history: '歷史',
    channelSettings: '頻道設定',
    empty: '還沒有活動',
    viewAll: '檢視全部',
    showRead: '顯示閱讀',
    markAllAsRead: '將全部標記為已讀',
    markAsRead: '標記為已讀',
    proceed: '繼續',
    checkingForUpdates: '正在檢查更新...',
    email: {
      enable: '啟用通知',
      from: '電子郵件寄件人',
      host: 'SMTP伺服器主機',
      port: 'SMTP服務器端口',
      user: 'SMTP 使用者名稱',
      secure: '安全連線',
      password: 'SMTP 密碼',
      fromRequired: '電子郵件寄件人是必需的',
      fromInvalid: '電子郵件發送者無效',
      receiverRequired: '電子郵件接收者是必需的',
      receiverInvalid: '電子郵件接收者無效',
      hostRequired: '需要 SMTP 伺服器主機',
      hostInvalid: 'SMTP 伺服器主機無效',
      portRequired: 'SMTP 服務器端口是必需的',
      portInvalid: 'SMTP 伺服器連接埠無效，連接埠應該在 1 和 65535 之間',
      userRequired: '需要提供 SMTP 伺服器用户名稱',
      passwordRequired: '需要 SMTP 伺服器用户密碼。',
      testSuccess: '測試電子郵件發送成功',
      testFailed: '測試郵件發送失敗',
      testReceiver: '電子郵件接收者',
      testSendEmail: '測試郵件發送',
      inputTestReceiver: '請輸入測試收件人電子郵箱',
      disable: '取消電子郵件通知',
      disableDescription: '取消訂閱後，您將不再收到電子郵件通知。要收到電子郵件通知，您可以在此頁面上再次訂閱。',
      unsubscribe: '取消電子郵件通知',
      unsubscribeDescription: '取消訂閱後，您將不再收到任何電子郵件通知。',
      subscribe: '訂閱',
      subscribeDescription: '要接收電子郵件通知，您可以在設置頁面上再次訂閱。',
      companyName: '公司名稱',
      companyLink: '公司連結',
      companyAddress: '公司地址',
      supportEmail: '支援郵箱',
      emailInvalid: '電子郵箱無效',
      linkInvalid: '連結無效，應以http或https開頭',
      signature: '郵件簽名',
      signatureTooltip: '電子郵件簽名用於底部，以便向收件人提供寄件者的關鍵資訊。'
    },
    wallet: {
      description: 'DID Wallet 通知總是對所有用戶啟用。'
    },
    webhooks: {
      description: '通過 webhooks 發送的通知總是對所有用戶啟用。'
    },
    comingSoon: '更多通知頻道正在建設中',
    unsubscribe: '取消訂閱',
    unsubscribeSucceed: '退訂成功',
    unsubscribeFailed: '取消訂閱失敗',
    unsubscribeTokenRequired: '必須提供退訂令牌',
    unsubscribeTokenExpired: '退訂令牌已過期',
    unsubscribeTokenInvalid: '退訂令牌無效',
    installComponentError: '未找到已卸載的組件 {name}',
    installingComponent: '安裝元件{name}',
    pushKit: {
      enable: '啟用通知',
      endpoint: 'PushKit 端點',
      endpointInvalid: 'PushKit 端點不是一個有效的網址',
      testSuccess: 'Test PushKit 送出成功',
      testFailed: '測試 PushKit 傳送失敗',
      testReceiver: 'PushKit 接收者',
      testSend: '測試推播套件發送',
      inputTestReceiver: '請輸入測試接收者 DID',
      receiverRequired: '需要 PushKit 接收者 DID',
      pushPath: 'PushKit 的 API 路徑（預設 /api/push）',
      did: 'PushKit Blocklet DID',
      customOptions: '自訂選項'
    },
    notificationDetails: '通知詳情',
    receiver: '接收者',
    sendStatus: {
      success: '送出成功',
      failed: '發送失敗',
      sentTime: '傳送時間：{date}',
      pending: '待處理',
      reason: {
        enabled: '使用者已啟用 {channel} 通知',
        disabled: '使用者未啟用 {channel} 通知',
        unavailable: '當前 Blocklet 尚未配置 {channel} 通知',
        available: '當前 Blocklet 已配置 {channel} 通知',
        notSent: '目前消息尚未發送到 {channel}',
        offline: '使用者目前離線'
      },
      count: '{count}',
      total: '總計'
    },
    filter: '篩選',
    notificationPreview: '通知預覽',
    resend: '重新傳送',
    resendLimit: '你每天最多可以重發三次通知。',
    from: '從',
    to: '至',
    body: '身體',
    notificationTitle: '標題',
    createdAt: '建立於',
    status: '狀態',
    system: '系統',
    severity: '嚴重性',
    config: '設定',
    selectChannels: '選擇頻道',
    selectChannelsTip: '選擇要重新傳送的頻道',
    resendFailedOnly: '僅重新傳送至失敗的 Channels',
    statistics: '統計',
    allSender: '所有寄件者',
    allSeverity: '所有嚴重程度',
    severityType: {
      info: '資訊',
      success: '成功',
      warning: '警告',
      error: '錯誤'
    },
    clear: '清除',
    allDone: '全部完成',
    filterType: {
      all: '全部',
      unread: '未讀'
    },
    viewMore: '查看更多'
  },
  router: {
    routerSetting: '網域和網址',
    certSetting: 'SSL 證書',
    defaultSite: '預設',
    urlHelperText: '不以 HTTP/HTTPS 開頭的 URL 被視為相對路徑',
    empty: '點擊操作以設置 URL 映射',
    healthy: {
      ok: 'Blocklet 或服務正在運行',
      error: 'Blocklet或服務未運行或未安裝'
    },
    service: {
      select: '選擇 Blocklet Server (可選)',
      what: 'Blocklet Server 是在將請求重定向到上游 Blocklet 之前執行的管道'
    },
    nonProvider: {
      title: '引擎更改警告',
      description: '如果您將引擎更改為“無”，則當前頁面可能無法正常運作，因為先前的引擎將停止運行。您確定要繼續嗎？',
      confirm: '我理解，繼續'
    },
    validation: {
      urlRequired: '需要 URL',
      redirectCodeRequired: '轉向程式碼是必需的',
      didRequired: '需要 Blocklet',
      pathPrefixTooLong: 'URL 前綴不能超過{length}個字符',
      pathPrefixCannotBeEmpty: 'URL 前綴不能為空',
      domainRequired: '需要伺服器網域',
      invalidUrl: '請提供有效的 URL',
      pathPrefixRequired: '需要 URL 前綴',
      redirectUrlRequired: '需要重新導向 URL',
      rewriteUrlRequired: '需要重寫 URL'
    },
    domain: {
      addSite: '新增站點',
      validate: {
        emptyTip: '站點網域不能為空',
        suffixTip: '網站域名不能包含{suffix}'
      },
      add: {
        title: '新增網域名稱',
        description: '請提供有效的域名',
        confirm: '新增',
        cancel: '取消',
        blocklet: '選擇Blocklet',
        redirect: '將流量重定向到哪裡？',
        port: '您的請求處理程序需要監聽哪個埠？',
        portTip: '預設為請求處理程序的主要端口，您可以自訂此端口',
        type: '交通管理員',
        component: '選擇元件',
        pageGroup: '頁面群組',
        pageGroupTip: '此元件可以呈現上面列出的任何頁面群組，留空以呈現所有頁面'
      },
      update: {
        title: '更新網站域名',
        label: '網站網域',
        description: '請提供有效的網站域名'
      },
      setup: {
        tipStart: '為該域名新增DNS記錄',
        tipEnd: '根據以下準則',
        recordType: '紀錄類型',
        recordValue: '記錄值'
      },
      verify: {
        ok: '域名解析正常',
        notResolved: '此域名未解析，也無法存取，請檢查您的 DNS 配置'
      },
      https: {
        ok: '該域名已啟用https協議',
        bad: '此網域尚未啟用 https'
      },
      delete: {
        title: '刪除網站',
        description: '確認後，將刪除現有的"{name}"站點。請在下方輸入"{name}"，選擇刪除以完成變更，或者選擇取消以保留您的站點。',
        confirm_desc: '請輸入{name}以確認'
      }
    },
    domainAlias: {
      nftDomain: '自動設定與 DID 名稱',
      showTipHint: '如何配置域名解析？',
      add: {
        title: '添加額外域名',
        domainDescription: '請提供有效的域名',
        forceTip: '如果域名已經存在，強制添加',
        helperText: '如果輸入 HTTP 或 HTTPS URL，將自動轉換為網域名稱。',
        isDidDomainError: '此網域是一個 DID 網域。請使用自動網域配置方法添加。',
        tips: '你可以輸入從 DID Names 或任何其他地方購買的域名。如果這是一個 DID 域名，你必須出示 DID 域名 NFT 才能繼續。'
      },
      addCustomDomain: {
        name: '自訂網域'
      },
      addDomainNFT: {
        showNFT: '自動配置網域',
        tips: '你可以輸入從 DID Names 購買的域名。如果偵測到 DID 域名，你必須出示 DID 域名 NFT 才能繼續。',
        connect: {
          scan: '使用以下其中一種方法連接 {domain} 到 {appName}',
          confirm: '確認 在 您的 帳戶',
          success: '授權成功',
          title: '連接 DID 名稱到 {appName}'
        },
        buyTip: 'DID 名稱將自動完成網域名稱解析，無需手動配置， Blocklet 會在需要時自動更新網域名稱的解析記錄。如果您還沒有 DID Domain NFT，',
        buy: '購買 DID 網域名稱',
        topLevelDidDomainHint: '對於DID網域，如果您輸入頂級網域（例如 example.com），它將自動設定為 www.example.com',
        authorizeFailed: '取得域名 NFT 資訊失敗，請重試！'
      },
      delete: {
        title: '刪除',
        description: '刪除「{domain}」後，對該別名的存取可能無法正常處理。',
        confirmPlaceholder: '請輸入 "{domain}" 刪除'
      },
      custom: '自訂網域',
      noCustom: '無自訂網域',
      noCustomTip: '你的網站尚未設定自訂網域。為增強安全性並提升使用者體驗，我們建議你設定自己的自訂網域。點擊下方開始設定。'
    },
    domainSecurity: {
      title: '域名安全',
      cors: {
        title: '允許的CORS域名',
        description: '可以向{name}傳送跨來源請求的域名清單，用逗號分隔，使用"*"允許任何人，但不被推薦',
        domainInvalid: '請輸入有效的域名列表'
      }
    },
    rule: {
      add: {
        title: '新增URL對應',
        confirm: '加',
        pathPrefix: 'URL 前綴是什麼？',
        pathPrefixTip: "如果您將前綴設置為'/my-prefix'，則所有以該前綴開頭的請求將被路由到配置的 Blocklet ",
        blocklet: '哪一個Blocklet將處理這些請求？',
        port: ' Blocklet 上的哪個埠將處理請求？',
        portTip: '這預設為 blocklet 的主要埠口，如果您的 blocklet 監聽多個埠口，您可以自訂這個',
        responseType: '回應類型',
        responseBody: '回應內容',
        responseBodyTip: '請將您的回覆內容貼上此處，不得超過4096個字元',
        responseBodyRequired: '回應內容不能為空'
      },
      delete: {
        title: '刪除URL映射',
        description: '確認後，您將刪除現有的"{name}"URL映射。請輸入"{name}"，然後選擇刪除以完成更改，或者選擇取消以保留您的URL映射。',
        confirm_desc: '請輸入 {name} 以刪除',
        cancel: '取消'
      },
      update: {
        title: '更新 URL 映射',
        confirm: '是的，更新',
        cancel: '取消'
      }
    },
    cert: {
      name: '證書名稱',
      domain: '域名',
      action: '行動',
      commonName: '通用名稱',
      boundDomains: '領域',
      source: '來源',
      expired: '已過期',
      leftDays: '剩餘天數',
      issuedOn: '發行日期',
      expiryOn: '到期日',
      fingerprintAlg: '指紋算法',
      validityPeriod: '有效期限',
      matchedSites: '匹配的網站',
      upload: '手動上傳',
      publicCertHelperText: '公開證書可以下載',
      nonPublicCertHelperText: '無法下載非公開證書',
      protectedCertHelperText: '無法編輯受保護的證書',
      unprotectedCertHelperText: '未受保護的證書可以被編輯',
      issuing: '證書正在生成',
      sourceTypes: {
        upload: '手動上傳',
        lets_encrypt: '讓我們加密'
      },
      table: {
        nodata: '無數據'
      },
      delete: {
        title: '刪除證書',
        description: '確認刪除網域{domain}的憑證嗎？刪除它可能會影響相關服務。在繼續刪除之前，請確認它是安全的。',
        confirm: '確認'
      },
      nginx: {
        title: '更新證書',
        titleAdd: '新增證書',
        pem: 'SSL證書檔案',
        pemTip: '請將您的伺服器憑證檔案放在這裡，它應該以".pem"或".crt"結尾',
        key: '私鑰檔案',
        keyTip: '請在這裡放置您的伺服器私鑰檔案，它應該以".pem"或".key"結尾',
        confirm: '保存',
        cancel: '取消',
        invalidFile: '您選擇了一個無效的檔案',
        empty: '尚未選擇檔案',
        source: '來源',
        sourceTypes: {
          upload: '手動上傳',
          lets_encrypt: '讓我們加密'
        }
      },
      detail: {
        title: '證書詳情'
      },
      genLetsEncryptCert: {
        title: "生成Let's Encrypt證書",
        dnsTip: '請確保域名已指向當前的Blocklet伺服器。',
        description: '添加證書將使服務更安全，Blocklet Server 將在證書到期之前自動 renew 該證書。'
      }
    },
    gateway: {
      reqLimit: {
        switchLabel: '請求限制',
        rate: '請求限制（{rate} 請求/秒）',
        title: '請求限制',
        global: '限制閘道器處理的併發請求數為每秒 {global} 個（全域限制）',
        burstFactor: '速率限制的突發因子，應用於全局和每個IP的限制 (global: {global}, per-IP: {rate})',
        methods: '限制以下方法的IP併發請求',
        burstDelay: '請求突發並超過每IP限制時的延遲 ({delay} 秒)'
      },
      cacheEnabled: {
        switchLabel: '啟用網關快取以提升性能',
        title: '網關快取'
      },
      blockPolicy: {
        switchLabel: '請求阻塞',
        addItem: '新增項目',
        blacklistDesc: '這些IP的請求將被封鎖，無法存取此伺服器和所有 Blocklet ',
        inputPlaceholder: '請輸入IP位址、CIDR範圍或URL',
        invalidItem: '無效的IP地址、CIDR範圍或URL',
        title: '請求阻止',
        autoBlocking: {
          switchLabel: '通過實時檢測阻止恶意請求',
          windowSize: '用於統計請求的時間窗口大小（秒）',
          windowQuota: '每個 IP 在窗口期內允許的最大請求數',
          blockDuration: '超出窗口配額時按 IP 阻止用戶的持續時間（秒）',
          statusCodes: '需要檢查的狀態代碼'
        }
      },
      proxyPolicy: {
        switchLabel: '在代理之後運行',
        trustRecursive: '遞歸相信代理',
        trustRecursiveDesc: '使用 X-Forwarded-For 鏈中最左邊的 IP',
        trustedProxies: '可信代理',
        trustedProxiesDesc: '這些IP的請求將被信任以獲取真實的用戶端IP',
        realIpHeaderLabel: '客戶端 IP 標頭',
        realIpHeaderDesc: '如果Blocklet伺服器在CloudFront等代理器後運行，您可以在此設置客戶端真實IP的標頭。',
        addItem: '新增項目',
        inputPlaceholder: '輸入IP地址，CIDR範圍',
        invalidItem: '無效的IP地址，CIDR範圍',
        title: '代理政策'
      },
      wafPolicy: {
        switchLabel: '使用 ModSecurity 偵測和阻止惡意請求',
        modeDesc: 'Modsecurity 的模式（需要 modsecurity 模組）',
        mode: {
          detectOnly: '僅偵測（不會阻擋請求）',
          on: '開啟（將阻止請求）'
        },
        logLevelDesc: 'ModSecurity 的日誌級別（0-9），0 表示禁用審計日誌',
        inboundAnomalyScoreThresholdDesc: '入站異常評分閾值 (1-100)，值越低意味著越嚴格',
        outboundAnomalyScoreThresholdDesc: '外部異常評分門檻 (1-100)，較低值意味著更嚴格',
        docDesc: '查看文件了解如何設置 modsecurity',
        title: 'Web 應用防火牆'
      }
    }
  },
  noMatch: {
    desc: '找不到您要尋找的頁面'
  },
  health: {
    connectionErrorTip: 'Blocklet伺服器無法連接到網路，請檢查Blocklet伺服器是否已停止或網路是否有問題',
    connectionRecoveryTip: ' Blocklet 鏈伺服器的連接已恢復',
    connectionStoppedTip: 'Blocklet伺服器已停止',
    wrongAccessUrlTip: 'Blocklet Server 存取位址錯誤，請使用正確的存取位址'
  },
  debug: {
    title: '您的 Blocklet Server 已啟動並運行中！'
  },
  team: {
    invite: {
      action: '邀請新人',
      setting: '邀請設置',
      enabled: '停用此設定以限制只有擁有者/管理員才能邀請新用戶',
      disabled: '啟用此設定以允許任何用戶邀請新用戶',
      inviter: '被邀請者'
    },
    add: '新增',
    member: {
      name: '名字',
      passport: '通行證',
      passports: '通行證',
      lastLogin: '最後登入',
      lastLoginIp: '上次登入IP',
      source: '註冊來源',
      source_derived: '從oauth派生',
      source_wallet: 'DID錢包',
      filter: '依篩選',
      blockAccess: '禁止登錄',
      blockAccessDescription: '用户無法連接到此應用程式',
      allowAccess: '允許登錄',
      allowAccessDescription: '用户將能夠連接到此應用程式',
      updateRole: '更新角色',
      removeUser: '刪除用户',
      removeUserDescription: '確認刪除用户"{name}"嗎？',
      revokePassport: '撤銷通行證',
      revokePassportDescription: '一旦通行證被吊銷，持有人將無法再使用該通行證登錄，確定要繼續嗎？',
      enablePassport: '啟用通行證',
      enablePassportDescription: '一旦吊銷的通行證再次啟用，通行證持有人可以再次使用它進行登錄，您確定要繼續嗎？',
      passportPermissionTitle: '通行證具有以下權限：',
      search: '搜尋會員',
      onlyApprovedMember: '僅顯示已核准',
      inviteDialog: {
        createInviteLink: '生成邀請鏈接',
        createSuccessTip: '邀請連結已成功建立，請點擊複製並將連結發送給被邀請成員，請注意此邀請連結無法重複使用並且將於 {expireDate} 過期。'
      },
      error: {
        passportEmpty: '通行證不能為空'
      },
      connectedAccounts: '已連接帳戶',
      connections: '連線',
      federated: '聯邦的',
      switch: {
        did: '切換DID',
        profile: '切換設定檔',
        passport: '切換通行證'
      },
      settings: {
        notification: '通知',
        email: '當一些事件發生時，請給我發送電子郵件',
        wallet: '當一些事件發生時，請通知我的錢包',
        phone: '當發生某些事件時，請發送短信給我',
        webhook: 'Webhooks',
        add: '新增 webhook',
        url: '客製網址',
        slack: 'Slack Webhook',
        tested: '測試訊息已發送'
      },
      activeUserSessions: '活躍用戶會話',
      forceLogout: '強制登出',
      forceLogoutDescription: '確認是否強制登出此用户？',
      openProfile: '檢視個人檔案',
      removeUserSuccess: '使用者成功刪除',
      forceLogoutRemoveDescription: '確認強制登出此用戶 (同時移除所有使用者會話)？'
    },
    transferNode: {
      name: '轉讓所有權',
      inviteDialog: {
        title: '轉移 Blocklet Server ',
        tips: {
          progress: '為了完成轉移操作，接收者必須接受伺服器的轉移請求。一旦接受，您將無法再使用當前通行證登入伺服器。',
          newOwnerPermissions: '新屬主將有權管理所有操作，如成員、通行證和Blocklets。',
          revoke: '如果您要撤回轉讓邀請，可以在「團隊-> 成員-> 邀請」頁面中 刪除邀請連結。'
        },
        createInviteLink: '生成邀請鏈接',
        createSuccessTip: '邀請連結已成功建立，請點擊複製並將連結發送給被邀請的成員，請注意該邀請連結不可重複使用並將於 {expireDate} 到期'
      },
      delegateDialog: {
        title: '需要授權',
        scan: '使用DID錢包掃描以下QR碼，授權伺服器轉移伺服器所有權NFT。',
        confirm: '確認在你的帳戶',
        success: '授權成功'
      }
    },
    transferApp: {
      name: '轉移所有權',
      transferDialog: {
        title: '轉移申請',
        tips: {
          progress: '申請的轉讓需要接收方接受才能完成轉讓操作，一旦接收方接受後，您將無法再使用當前通行證登錄該應用程序。',
          newOwnerPermissions: '新所有者將擁有管理所有操作的權利，如成員、通行證和設置。'
        },
        createTransferLink: '生成轉移連結',
        createSuccessTip1: '成功建立轉移連結，受邀者必須使用<a style="color: rgb(29, 193, 199)" target="_blank" href="https://www.didwallet.io/">DID Wallet</a>接收應用程式所有權',
        createSuccessTip2: '請點擊複製並將連結發送給受邀成員，請注意此轉移連結無法重複使用且將於 {expireDate} 到期。你的轉移連結只會在關閉此對話框後顯示一次，之後將無法查看。',
        createSuccessTip3: '轉帳成功後，應用程式將自動重新啟動以使更改生效',
        link: '轉移連結',
        iKnow: '我已經複製並保存了連結'
      },
      connectDialog: {
        title: '需要授權',
        scan: '請使用DID錢包掃描以下QR碼授權應用程序進行所有權轉移。',
        confirm: '確認 在您的帳戶中',
        success: '授權成功'
      },
      receiveDialog: {
        title: '接收申請所有權',
        scan: '使用DID錢包掃描以下QR碼以收到應用程式所有權',
        confirm: '確認 在 您 的 帳戶',
        success: '接收所有權成功'
      },
      successTitle: '您已成為此應用程式的新擁有者',
      visitDashboard: '訪問應用程式儀表板',
      description: '如果你想更改項目的所有權, 點擊 "transfer ownership" 開始'
    },
    permission: {
      create: {
        title: '建立權限',
        description: "格式：<action>_<resource> 例如：'查詢用户'，'修改用户'"
      },
      delete: {
        title: '刪除權限',
        description: '確認刪除{name}？'
      },
      error: {
        actionEmpty: '動作不能為空',
        resourceEmpty: '資源不能為空',
        permissionTooLong: '權限不能超過{length}個字符',
        descriptionTooLong: '描述不能超過{length}個字符'
      }
    },
    passport: {
      create: {
        title: '建立通行證',
        titleTip: '標題在建立後無法修改，建議最多使用14個字母'
      },
      bind: {
        title: '綁定權限',
        roleTip: '綁定後，您將獲得所選通行證的所有權限。',
        permissionTip: '綁定後將獲得所選權限',
        transferLeftTitle: '所有權限',
        transferRightTitle: '授予的權限'
      },
      delete: {
        title: '刪除通行證',
        description: '用户持有的通行證在被刪除後將失去所有權限。您確定要繼續嗎？'
      },
      error: {
        titleEmpty: '標題不能為空',
        titleTooLong: '標題不能超過{length}個字元',
        descriptionEmpty: '描述不能為空'
      },
      issuance: {
        pending: '待定',
        create: {
          title: '生成連結'
        },
        delete: {
          title: '刪除接收連結',
          description: '確認刪除{link}？'
        }
      },
      issue: '發簽證',
      disableIssuance: '停用通行證發放',
      enableIssuance: '啟用通行證簽發',
      disableIssuanceTip: '將禁用“Issue Passport”，“Invite Member”和其他操作。',
      enableIssuanceTip: '將啟用"Issue Passport", "Invite Member"和其他操作',
      trustedPassportIssuers: '可信任的通行證頒發機構',
      trustedIssuers: '可信任的發行者',
      trustedFactories: '可信的NFT收藏品',
      trustedFactoriesTip: '管理可用於兌換通行證的可信NFT收藏',
      searchFactoryAddress: '搜尋收藏 DID',
      configFactories: '配置可信的NFT收藏品',
      configFactoriesTip: '允許用戶將NFT交換成通行證',
      factoryAddress: 'NFT 收藏地址',
      factory404: '未找到NFT收藏',
      factoryAddressTip: 'NFT Collection地址必須存在於ArcBlock主鏈上',
      role: '通行證類型',
      ttl: '通行證到期政策',
      ttlNever: '永不過期',
      ttlMint: '自NFT購買以來',
      ttlExchange: '由於通行證交換',
      ttlNeverTip: '通行證有效期至吊銷前',
      ttlMintTip: '自從購買NFT起，通行證將有效，直到您指定的ttl或撤銷',
      ttlExchangeTip: '通行證將從用戶成功交換時起有效，直到您指定的ttl或撤銷',
      ttlTip: '365d 意味著365天，你也可以使用30天或24h',
      validUntil: '有效期至：{date}',
      externalPassport: '外部通行證',
      notTrustedIssuerTip: '由於簽發機構不在信任機構清單中，通行證無法使用',
      issuerDid: '發行人DID',
      addNodeToTrustedIssuers: '將當前伺服器添加為受信任的通行證簽發機構',
      revoked: '已撤銷',
      noPermission: '沒有權限執行此操作',
      shouldNotDeleteCurrent: '您目前不能撤銷您的正在使用的通行證',
      mappingRule: '映射規則',
      defaultRule: '預設規則',
      search: '搜尋通行證',
      searchIssuerDid: '搜尋發行方DID',
      issueBy: '{name}問題',
      configColor: '配置通行證顏色',
      configColorTip: '自訂通行證的顏色',
      color: '通行證顏色',
      description: '使用這個通行證連接 {teamName} 作為 {title}',
      displayBuiltin: '內建',
      displayCustom: '自訂',
      typesTip: '自訂通行證類型，以逗號分隔',
      issuanceDate: '簽發日期: {date}',
      sourceMaps: {
        recover: '找回',
        issue: '發行',
        invite: '邀請',
        trusted: '信任'
      },
      related: '相關通行證',
      operationLogs: '操作日誌',
      owner: '所有者',
      status: '狀態',
      statusMap: {
        valid: '有效',
        revoked: '撤銷',
        expired: '過期'
      },
      view: '管理通行證',
      trustedPassportIssuersTip: '管理可供簽發通行證的受信任通行證頒發機構',
      issuanceTime: '發行時間',
      relatedDescription: '目前的通行證是被找回的，數據流轉過程如下',
      passportExpireTime: '設定通行證的過期日期',
      customExpireTime: '自訂到期時間',
      customExpireTimeIsInvalid: '自訂過期時間無效'
    },
    inviting: {
      link: '邀請連結',
      inviter: '邀請者',
      delete: {
        title: '刪除邀請連結',
        description: '確認刪除 {link}？'
      },
      disabledTip: '邀請未啟用'
    },
    whoCanAccess: {
      all: {
        title: '適用於所有人'
      },
      owner: {
        title: '僅限擁有者'
      },
      invited: {
        title: '僅限受邀用戶'
      }
    },
    userFollowers: {
      title: '關注',
      follow: '關注',
      unfollow: '取消關注',
      followers: '粉絲',
      following: '正在關注',
      followersOnly: '僅對追蹤者可見',
      emptyFollowing: '還沒有關注任何人',
      emptyFollowers: '還沒有粉絲',
      invitees: '受邀者',
      emptyInvitees: '你還沒有邀請任何人。'
    },
    orgs: {
      explain: '允許用戶創建和加入組織，分配角色並管理資源。',
      description: '描述',
      deleteConfirm: '確認刪除 {name}?',
      members: '成員',
      myCreated: '我創建的',
      myJoined: '我加入的',
      myCreatedEmpty: '你還沒有建立任何組織。',
      myJoinedEmpty: '你尚未加入任何組織。',
      deleteConfirmDescription: '刪除此組織將移除與其關聯的所有角色和資源。使用者將保留在系統中，但會失去在此組織中的角色。此操作無法撤銷。',
      active: '活動',
      deleteOrg: '移除當前組織',
      invitedAt: '邀請於: {time}',
      joinedAt: '加入於: {time}',
      createNew: '創建新的組織',
      viewAll: '查看所有組織',
      validate: {
        nameEmpty: '名稱不能為空',
        nameTooLong: '名稱不能超過 {length} 個字元',
        descriptionTooLong: '描述不能超過 {length} 個字元'
      },
      mutate: {
        title: '{mode} 組織',
        name: '組織名稱',
        createSuccess: '組織創建成功',
        updateSuccess: '組織更新成功',
        orgNotEnabled: '組織未啟用',
        maxMemberPerOrg: '組織最多可以邀請 {maxMemberPerOrg} 位成員',
        maxOrgPerUser: '您最多可以建立 {maxOrgPerUser} 個組織'
      },
      invite: {
        chooseUsersToInvite: '選擇 使用者 進行 邀請',
        success: '已向使用者發送邀請',
        pleaseSelectUsers: '請選擇 用戶',
        pleaseSelectRole: '請選擇角色',
        inviteExternalUsers: '邀請 外部使用者',
        failed: '{count} 用戶邀請失敗，請稍後再試',
        remove: '移除使用者',
        removeSuccess: '用戶 移除 成功',
        limit: '限制',
        limitTip: '限制每個用戶的 org 成員和 org 數量',
        maxMembers: '每個 org 最多成員數',
        maxOrgs: '每個用戶的最大組織數',
        maxMembersTip: '可邀請加入此組織的最大使用者數',
        inviteLinkSendToEmail: '邀請連結已發送到電子郵件 ({email})，請查收',
        enterEmailAddress: '請輸入電子郵件地址',
        inviteTitle: '邀請使用者加入 {orgName}'
      },
      member: {
        removeMemberConfirm: '確認移除 {name}？',
        removeMemberConfirmDescription: '移除後，使用者將失去在組織中的角色和權限。此操作無法撤銷。',
        removeInvitingMember: '確認取消邀請 {name}？',
        removeInvitingMemberDescription: '移除後，使用者將無法加入組織，需要重新邀請。此操作無法撤銷。'
      }
    }
  },
  launcher: {
    provider: '提供者',
    adminUrl: 'URL'
  },
  session: {
    blockAccess: '您已被禁止訪問此伺服器'
  },
  launchBlocklet: {
    appInfo: '應用程式資訊',
    appInfoDesc: '確認申請資訊',
    author: '應用程式作者：{author}',
    setup: '設置Blocklet',
    redirect: '重定向',
    alreadyRunning: '{name} 應用程式已經在此 Blocklet Server 上運行',
    alreadyInstalled: '應用程式 {name} 已在此 Blocklet Server 上安裝',
    alreadyExists: '此應用程式已經存在，正在重新導向...',
    purchased: '已購買',
    purchase: '購買',
    nextStep: '下一步',
    agreement: '許可協議',
    agreeAll: '同意並繼續',
    installing: '正在安裝{appName}在{serverName}上，可能需要幾分鐘才能完成，請耐心等候...',
    redirecting: '{appName} 安裝成功，現在啟動...',
    start: '發布',
    launch: '將Blocklet安裝到伺服器',
    launchSuccess: '{appName}成功上線了!',
    installSuccess: 'Blocklet在{serverName}上成功安裝並啟動',
    openInRegistry: '在Blocklet Store中查看',
    subTitle: '準備在{serverName}上安裝Blocklet {appName}',
    installingSubTitle: '{appName} 安裝中',
    access: '開啟應用程式',
    viewApplication: '查看應用程式',
    newVersion: '新版本',
    newVersionDesc: '該應用程式已經存在，但當前版本可以升級',
    upgradeNow: '立即升級',
    later: '稍後',
    introduction: '介紹',
    welcome: '歡迎使用 Blocklet 發佈嚮導',
    accept: '我同意Blocklet的最終用戶許可協議',
    license: '應用許可',
    next: '同意 EULA 並繼續',
    purchaseApp: '購買 Blocklet',
    setupAppDesc: '初始化您的 Blocklet 鏈模塊',
    launched: '完成',
    confirmInstall: '確認安裝',
    dialog: {
      title: '成為應用程式所有者',
      nftFreeDescription: '請展示應用空間NFT並創建應用帳戶以繼續',
      nftPaidDescription: '請展示應用空間 NFT 和應用購買 NFT 以繼續',
      freeDescription: '請建立應用程式帳號以繼續',
      paidDescription: '請展示應用購買NFT並創建應用帳號以繼續',
      confirm: '在你的帳戶中確認',
      success: '授權成功',
      authorizationTimeout: '權限逾時'
    },
    waiting: {
      verifying: '驗證應用程式元數據...',
      downloading: '正在下載應用程式套件...',
      downloadingComponent: '正在下載{name}',
      extractingComponent: '提取 {name}',
      extracting: '正在提取應用程式包...',
      installing: '正在安裝應用程式元件...',
      installed: '已安裝',
      starting: '啟動應用程式...',
      done: '您的應用正在啟動...',
      parsing: '正在解析應用元數據...',
      initializing: '正在初始化應用程式設定...',
      initializingOwner: '正在初始化應用擁有者...',
      creatingSecurityRules: '建立預設安全規則...',
      assigningDomain: '正在分配預設網域...',
      waitingForDomain: '等待預設網域生效...'
    },
    error: {
      loadMetaFailed: '載入應用程式資訊失敗',
      appMetaNotFound: '找不到此應用程式的資訊',
      downloadFailed: '下載應用失敗，請重試',
      installFailed: '安裝應用失敗，請重試',
      startFailed: '啟動應用程式失敗，請重試',
      launchFailed: '啟動應用程式失敗，請再試一次',
      installedButStopped: '應用程式安裝成功，但無法啟動。在解決阻塞問題後，您可以手動啟動它',
      installedButError: '應用程式安裝成功，但無法啟動',
      restoreFailed: '應用程式恢復失敗，請重試',
      resourceBlocklet: '此 Blocklet 無法直接啟動，但你可以將其添加到現有的應用程式中。'
    },
    steps: {
      introduction: '介紹',
      installApp: '安裝應用程式',
      purchaseSpace: '購買空間',
      prepareSpace: '準備空間'
    },
    installRelatedComponents: '安裝相關的 Blocklets',
    canNotInstall: '無法安裝',
    dockerBlockletCantInstall: '無法安裝 Blocklet，因為 Blocklet Server 未啟用 Docker 或 Docker Network',
    nav: {
      myApps: '我的應用',
      viewMyApps: '查看我的應用'
    },
    withoutWallet: '暫不連接 DID Wallet',
    nwFailed: '擷取工作流程失敗。',
    alreadyConsumed: '啟動階段已被使用',
    redirectToLauncherBlocklet: '正在跳轉到 Launcher Blocklet'
  },
  issuePassport: {
    title: '收到通行證',
    description: '使用DID錢包接收{name}發行的通行證',
    dialog: {
      scan: '使用您的DID錢包來申領通行證',
      confirm: '確認在你的帳戶',
      success: '通行證已成功添加到您的錢包',
      loginWithPassport: '連接到此通行證',
      autoClose: '頁面將在 {seconds} 秒後自動關閉',
      autoJump: '頁面將在 {seconds} 秒後自動轉跳'
    }
  },
  lostPassport: {
    title: '丟失通行證',
    description: '用戶{name}的擁有者可以掃描QR碼以取回通行證，會員請聯繫擁有者重新發放通行證。',
    return: '取消擷取作業，返回首頁',
    receivePassport: '收到通行證',
    recoverDialog: {
      title: '恢復護照',
      scan: '使用你的 DID 錢包掃描下面的二維碼以取回你的護照',
      confirm: '在你的 DID wallet 上確認',
      success: '成功擷取'
    },
    receiveDialog: {
      title: '收到護照',
      scan: '使用你的 DID 錢包掃描下面的二維碼以接收護照',
      confirm: '在你的 DID wallet 上確認',
      success: '已成功接收'
    },
    recoverPassport: '找回護照'
  },
  invite: {
    message: '{name}邀請您成為{dapp}的{role}',
    success: '你已成功加入 {dapp}',
    receive: '接收與',
    validUntil: '有效期限：',
    viewPermission: '檢視權限',
    emptyPermission: '空許可權',
    open: '打開',
    description: {
      step1: '下載並設置您的{wallet}',
      step2: '點擊上方按鈕以收取通行證',
      step3: '使用收到的通行證登錄{dapp}'
    },
    transferNFTDialog: {
      title: '接受 Blocklet Server {name}',
      scan: '連接啟動器以完成對 Blocklet Server 的接收。',
      confirm: '請在您的 DID 錢包上檢查此操作',
      success: '連線成功，等待收到伺服器確認'
    }
  },
  receive: {
    dialog: {
      title: '使用您的DID錢包收取通行證',
      scan: '將您的DID錢包連接以接收通行證',
      confirm: '在您的帳戶中確認',
      success: '你已成功連線',
      scanWithDid: '請使用 {did} 帳戶接收此護照。收到護照後，您可以使用該護照登入到應用程式。'
    }
  },
  navigation: {
    navigation: '導航',
    actionFailed: '動作失敗',
    form: {
      themeConfig: '主題設定',
      contentConfig: '內容設定',
      title: '標題',
      titlePlaceholder: '請輸入導航標題',
      titleTooLong: '標題長度應小於 {len}',
      description: '描述',
      descriptionPlaceholder: '請輸入導航描述',
      descriptionTooLong: '描述長度應小於 {len}',
      icon: '預設圖示',
      iconPlaceholder: '請選擇一個圖示',
      invalidIcon: '圖示無效',
      findMoreIcon: '尋找更多圖標',
      link: '連結',
      linkPlaceholder: '請輸入導航連結',
      invalidLink: '連結無效',
      component: '元件',
      componentPlaceholder: '請選擇導航元件',
      role: '角色',
      rolePlaceholder: '請選擇導航角色',
      locale: '語系',
      localePlaceholder: '請輸入您想要添加的地區設置',
      localeExists: '{value} 已經存在',
      activeIcon: '激活圖標',
      activeColor: '激活顏色',
      color: '預設顏色',
      colorPlaceholder: '例如 #FF0000',
      invalidColor: '顏色無效',
      searchIcons: '尋找圖標',
      searchIconsPlaceholder: '如：mdi:home'
    },
    action: {
      add: '新增導航',
      addSub: '添加次導航',
      edit: '編輯導航',
      hide: '隱藏導航',
      show: '顯示導航',
      del: '刪除導航',
      new: '新',
      noAddSub: '無法安裝的元件無法新增子導覽',
      noEdit: '無法編輯已解除安裝的元件',
      noDel: '不允許刪除內建導航',
      reset: '重置',
      restConfirmTitle: '將 {section} 導覽重置為預設值？',
      restConfirmDesc: '您的自訂導覽將被清除並恢復為預設項目。',
      resetSuccessful: '重設成功',
      delTabBarTitle: '您要刪除此導航嗎？',
      delTabBarDesc: '刪除後，導航將從導航列表中移除'
    },
    system: '系統',
    services: '服務',
    access: '訪問',
    members: '成員',
    passport: '通行證',
    analytics: '分析',
    dashboard: '儀表板',
    studio: 'Blocklet Studio',
    aigne: 'AI 連接',
    blockletService: 'Blocklet服務',
    didConnect: '身份與存取',
    didSpaces: '儲存與備份',
    website: '網站工作室',
    notification: '通知中心',
    operations: '可觀測性',
    integration: '整合',
    developer: '開發者',
    overviewDesc: '監控應用程式健康狀況和詳情，在一個地方輕鬆安裝、啟動或移除 Blocklets。',
    didConnectDesc: '新增團隊成員，設定登入選項，管理安全存取，實現順暢協作。',
    aigneDesc: '設定您的 blocklet 的 AI 相關連接，包括 <a href="{aigneHubUrl}" target="_blank">AIGNE Hub</a> 和 <a href="{mcpUrl}" target="_blank">MCP 相容伺服器</a>。',
    websiteDesc: '管理網域，調整主題，完善品牌，自訂導航，打造獨特的網站外觀。',
    operationsDesc: '查看分析、檢查活動日誌、獲取警報，並根據需要調整進階設定。',
    integrationsDesc: '透過 Webhooks、存取金鑰和 MCP 伺服器連結外部服務，擴展應用程式功能。',
    developersDesc: '使用日誌、效能追蹤和文件來建置、偵錯和優化您的應用程式。',
    didSpacesDesc: '安全儲存和備份您的 Blocklet 應用程式資料，確保可靠的保護和輕鬆恢復。',
    publishDesc: '將您的應用程式發佈到商店或透過連結分享，讓更多人使用它。'
  },
  storage: {
    spaces: {
      title: 'DID Spaces',
      tips: '小費',
      label: '請輸入DID空間網關',
      connected: {
        title: '連接的DID空間',
        tag: '已連接'
      },
      connectedWithName: '您已成功連接到{name}',
      addedWithName: '您已成功新增{name}',
      connects: '連接',
      reconnect: '重新連接',
      addressCannotEmpty: '地址不能為空',
      addressNotValid: '{url} 不是一個有效的地址',
      authorize: {
        title: '將{appName}連接到DID空間',
        scan: '使用您的DID錢包掃描下方的QR碼，允許應用程式{appName}連接到DID空間',
        success: '連線成功'
      },
      provideNFT: {
        title: '請展示 {appName} 的DID Spaces NFT',
        scan: '使用您的 DID 錢包掃描下面的二維碼以允許應用程式 {appName} 顯示 DID 空間 NFT',
        success: '連線成功'
      },
      backup: {
        title: '備份',
        records: '備份記錄',
        without: '沒有備份',
        succeeded: '備份成功',
        failed: '備份失敗',
        lastBackup: '上次備份時間',
        lastBackupTip: '距離您上次成功備份已是 {time}，請在「DID Spaces」分頁中檢查您的備份設定',
        noBackup: '沒有備份',
        noBackupTip: '尚未建立任何備份。我們建議設定定期備份以保護您的資料和設定'
      },
      autoBackup: {
        title: '自動備份',
        enabled: '自動備份已啟用',
        disabled: '自動備份已關閉'
      },
      autoCheckUpdate: {
        title: '自動檢查新版本通知',
        enabled: '自動檢查新版本已啟用。',
        disabled: '自動檢查新版本已關閉'
      },
      backupSuccessfully: '備份成功',
      restore: '還原',
      restoreSuccessfully: '還原成功',
      gateway: {
        title: '閘道器',
        select: '選擇一個DID空間',
        add: {
          title: '新增DID空間',
          label: '請輸入DID Spaces的網址',
          failed: '添加DID空間失敗',
          invalidUrl: '無效的DID空間網關URL',
          duplicate: '{name} 已連接到此 Blocklet'
        },
        delete: {
          title: '斷開連接',
          succeeded: '成功斷開連接 DID Space {name}',
          failed: '斷開連接失敗',
          failedForSelected: '無法斷開連接所選的 DID Space',
          descForBackup: '斷開連接後，您將無法再將此Blocklet的數據備份到此 DID Space。您確定要斷開連接嗎？\n斷開連接後，您可以重新連接到{name}以恢復備份操作。',
          descForStorage: '斷開連接後，您將無法再將此Blocklet的數據備份到此 DID Space。您確定要斷開連接嗎？\n斷開連接後，您可以重新連接到{name}以恢復備份操作。'
        },
        connect: {
          title: '連接DID空間',
          add: '現在連接到DID Spaces',
          addTips: '你還沒有連接到任何 DID Space',
          switch: '切換DID空間',
          switchTips: '您已連線到{name}',
          connected: '已連接'
        },
        switch: {
          failedForMismatchSpace: '請連接到正確的 DID Space {name}'
        },
        connectTo: '連接到DID Spaces'
      },
      strategy: {
        title: '備份策略',
        autoBackup: '自動備份',
        backupNow: '立即備份',
        viewBackupFiles: '查看備份檔案'
      },
      progress: {
        title: '備份進度'
      },
      record: {
        title: '備份記錄',
        emptyData: '沒有紀錄'
      },
      notYet: '你還沒有進行備份...',
      connect: {
        now: '立即連接',
        title: '連接DID空間',
        provider: '提供您的 DID Spaces 以開始備份',
        providerForStorage: '提供您的 DID Space 進行資料儲存',
        useWallet: '與DID錢包連接',
        useWalletReconnect: '重新連接DID錢包',
        useSpaceGateway: '使用DID Spaces閘道器進行連接',
        useSpaceGatewayReconnect: '使用DID Spaces 網關重新連接',
        switchToSpace: '切換到 DID Space',
        switchToSpaceSucceeded: '已切換到 DID Space {name}',
        succeeded: '您已成功連接到DID空間',
        disconnect: '斷開連接',
        abortBlockletBackup: '中止備份'
      },
      disconnected: {
        tag: '斷開連接',
        reconnectNow: '重新連接'
      }
    },
    appLevel: {
      title: '應用級存儲',
      description: '應用生成的所有數據都存儲在這個 DID Space 上'
    }
  },
  log: {
    lastDays: {
      1: '最近1天',
      7: '最近1週'
    }
  },
  oauth: {
    commonSettings: '常用設定',
    save: '儲存',
    saveSuccess: '保存成功',
    saveFailed: '儲存失敗',
    issued: '已發行',
    thirdPartyLogin: '第三方登入',
    alreadyBindOAuth: '已經綁定第三方登錄',
    alreadyBindWallet: '已綁定DID錢包',
    auth0: {
      enable: '啟用Auth0登錄',
      domain: '網域',
      domainDescription: '需要填寫Auth0的網域',
      clientId: 'Client ID',
      clientIdDescription: '需要 Auth0 的 Client ID',
      clientSecret: 'Client Secret',
      clientSecretDescription: '需要 Auth0 OAuth 應用程式 Client Secret'
    },
    comingSoon: '更多的登入方式正在建設中',
    moreLogin: '登入',
    federated: '聯邦登錄',
    runTest: '測試',
    github: {
      enable: '啟用 Github 登入',
      clientId: 'Client ID',
      clientIdDescription: 'Github OAuth 應用程式 Client ID 是必要的',
      clientSecret: 'Client Secret',
      clientSecretDescription: 'Github OAuth 應用程式的 Client Secret 資訊是必要的'
    },
    google: {
      enable: '啟用谷歌登入',
      clientId: 'Client ID',
      clientIdDescription: '需要 Google OAuth 應用的 Client ID',
      clientSecret: 'Client Secret',
      clientSecretDescription: 'Google OAuth 應用程式的 Client Secret 是必須的'
    },
    apple: {
      enable: '啟用 Apple 登入',
      teamId: 'Team ID',
      teamIdDescription: '需要 Apple OAuth 應用程式 Team ID',
      serviceId: 'Service ID',
      serviceIdDescription: '需要 Apple OAuth 應用 Service ID',
      keyId: 'Key ID',
      keyIdDescription: '需要 Apple OAuth 應用程式 Key ID',
      authKey: 'Auth Key',
      authKeyDescription: '需要蘋果OAuth應用程序的 Auth Key',
      bundleId: '產品包 ID',
      bundleIdDescription: 'Apple OAuth 應用程式 Bundle ID 為必填'
    },
    oauth: '第三方登入',
    authorize: 'OAuth 授權',
    client: {
      tab: 'OAuth 應用',
      name: '應用名稱',
      clientId: '客戶 ID',
      clientSecret: '客戶端密鑰',
      scope: '範圍',
      redirectUris: '重新導向 URI',
      grantTypes: '授權類型',
      responseTypes: '回應類型',
      tokenEndpointAuthMethod: '權杖端點驗證方法',
      actions: '動作',
      grantResponse: '授權與回應',
      metaContact: 'Meta & 聯絡方式',
      clientUri: '用戶端 URI',
      logoUri: 'Logo URI',
      contacts: '聯絡人',
      tosUri: '服務條款 URL',
      policyUri: '策略 URI',
      jwksSoftware: 'JWKS & Software',
      jwksUri: 'JWKS URI',
      jwks: 'JWKS',
      softwareId: '軟體 ID',
      softwareVersion: '軟體版本',
      clientSecretExpiresAt: '用戶端秘密金鑰到期時間',
      clientIdIssuedAt: '客戶端 ID 發行時間',
      oauthAppDetails: 'OAuth 應用詳情',
      oauthEndpoints: 'OAuth 端點',
      authorizationEndpoint: '授權端點',
      tokenEndpoint: '權杖端點',
      userinfoEndpoint: '使用者資訊端點',
      registrationEndpoint: '註冊端點',
      endSessionEndpoint: '結束階段 Endpoint',
      validate: {
        clientName: '應用程式名稱必填',
        clientNameMinLength: '應用名稱必須至少包含3個字符',
        clientUri: '需要主頁 URL',
        clientUriInvalid: '請輸入以 http:// 或 https:// 開頭的有效網址',
        redirectUris: '需要授權回呼 URL',
        redirectUrisInvalid: '請輸入以http:// 或 https:// 開頭的有效網址',
        contacts: '請輸入用逗號分隔的有效電子郵箱地址',
        tosUri: '需要服務條款 URL',
        tosUriInvalid: '請輸入有效的 URL',
        policyUri: '需要政策 URL',
        policyUriInvalid: '請輸入有效的URL',
        jwksUri: '需要 JWKS URI',
        jwksUriInvalid: '請輸入有效的URL',
        jwks: '需要 JWKS',
        jwksInvalid: '請輸入有效的 JWKS'
      },
      input: {
        clientName: '應用名稱',
        clientNamePlaceholder: '使用者熟悉並信任的內容',
        clientUri: '首頁 URL',
        clientUriPlaceholder: 'https://your-app.com',
        redirectUris: '授權回呼 URL',
        redirectUrisPlaceholder: 'https://your-app.com/callback',
        contacts: '聯絡郵箱',
        contactsPlaceholder: 'admin@your-app.com, support@your-app.com',
        permissions: '選擇您需要的權限',
        tosUri: '服務條款 URL',
        tosUriPlaceholder: 'https://your-app.com/terms',
        policyUri: '政策 URL',
        policyUriPlaceholder: 'https://your-app.com/policy',
        jwksUri: 'JWKS URI',
        jwksUriPlaceholder: 'https://your-app.com/jwks',
        jwks: 'JWKS',
        jwksPlaceholder: 'JSON Web 鑰匙集',
        expireTime: '設定客戶端機密的到期日期以增強安全性'
      },
      helperText: {
        clientName: '使用者熟悉並信任的東西',
        clientUri: '你的應用程式首頁的完整 URL',
        redirectUris: '您應用程式的回呼 URL',
        contacts: '應用程式負責人的電子郵箱地址',
        tosUri: '你應用 的 服務條款網址。',
        policyUri: '你應用程式的隱私權政策網址。',
        read: '閱讀我們的',
        document: 'OAuth 文件',
        more: '更多資訊。'
      },
      delete: {
        title: '刪除 OAuth 客戶端',
        description: '你確定要刪除這個 {clientName} OAuth 客戶端嗎？'
      },
      register: '建立新的 OAuth 應用程式',
      requiredInformation: '所需資訊',
      optionalInformation: '選填資訊',
      registerButton: '建立',
      logo: 'Logo',
      openRegistration: '開放註冊',
      openidConfiguration: 'OpenID 設定',
      createUser: '建立者',
      update: '更新 OAuth 應用程式',
      listTitle: '啟用 OAuth 應用程式的安全第三方存取',
      tooltipTitle: '使用您應用內建的 OAuth 伺服器來授權外部應用程式使用業界標準協定。賦予用戶安全、無縫的身份驗證和委託存取控制。',
      empty: '沒有添加數據'
    },
    viewDocument: '查看文档',
    twitter: {
      enable: '啟用 X 登入',
      clientId: '用戶端 ID',
      clientIdDescription: '需要 X OAuth application 用戶端 ID',
      clientSecret: '用戶端密碼',
      clientSecretDescription: '需要 X OAuth 應用的 Client Secret'
    }
  },
  expiration: {
    mobile: {
      tips: {
        success: '你好, {validity}',
        warning: '{validity}',
        error: '已過期'
      },
      loadFailed: '重試!'
    },
    desktop: {
      tips: {
        success: '訂閱將在 {validity} 後到期',
        warning: '訂閱將在 {validity} 後到期',
        error: '訂閱已到期'
      },
      loading: '加載訂閱...',
      loadFailed: '載入訂閱資訊失敗，請重試！',
      nextInvoice: '下個發票：{date}'
    }
  },
  analytics: {
    trend: '趨勢',
    detail: '分布',
    traffic: {
      totalRequests: '總請求數',
      validRequests: '成功請求',
      failedRequests: '失敗的請求',
      uniqueVisitors: '獨特訪客',
      uniqueFiles: '獨特的URL',
      uniqueReferrers: '唯一推薦人',
      uniqueNotFound: '獨特的404',
      uniqueStaticFiles: '唯一的靜態檔案',
      logSize: '日誌大小',
      bandwidth: '頻寬'
    },
    runtime: '執行時間'
  },
  federated: {
    inviteJoinFederatedLogin: '邀請加入聯合登錄',
    inviteJoinFederatedLoginDescription: '複製以下地址並填寫在需要申請聯合登錄的應用程式中。',
    federatedLogin: '聯合登錄',
    joinFederatedLogin: '加入聯合登錄',
    joinFederatedLoginDescription: '請輸入由 Master Blocklet 提供的聯合登錄地址以加入聯合登錄',
    quitFederatedLogin: '退出聯邦登錄',
    quitFederatedLoginDescription: '退出聯合登錄後，常規登錄始終可用',
    federatedJoinAppUrl: '加入聯合登錄應用程式於appUrl',
    federatedJoinAppUrlRequired: '請輸入聯合登錄加入appUrl',
    failedToGetFederatedLoginAppUrl: '無法取得聯盟登錄加入應用URL',
    federatedJoinAppUrlInvalid: '聯邦登錄 appUrl 無效',
    siteDetail: '站點詳細資訊',
    approveToJoinLogin: '批准加入聯盟登錄',
    approve: '啟用登入',
    revoke: '禁用登錄',
    enableFederatedLogin: '啟用聯合登錄',
    disableFederatedLogin: '停用聯合登錄',
    enableFederatedLoginDescription: '啟用聯合登錄後，此網站將自動登錄',
    disableFederatedLoginDescription: '停用聯合登錄後，此網站將不會自動登錄',
    enableFederatedAutoLogin: '啟用自動登錄',
    enableFederatedAutoLoginDescription: '啟用自動登錄後，如果目前存在統一登錄狀態，該網站將自動以聯合登錄的身份登錄',
    disableFederatedAutoLogin: '停用自動登錄',
    disableFederatedAutoLoginDescription: '關閉自動登錄後，該網站將不會自動使用統一登錄的用户資訊進行登錄，您仍然可以選擇以聯合登錄的身份手動點擊進行登錄。',
    info: {
      appId: 'APP做了',
      appPid: '永久ID',
      migratedFrom: '亦稱為',
      appName: 'Blocklet 名稱',
      appDescription: 'Blocklet 描述',
      appUrl: 'Blocklet 網址',
      appLogo: 'Blocklet 標誌',
      did: 'Blocklet DID',
      serverId: 'Blocklet Server ID',
      serverVersion: 'Blocklet Server 版本',
      version: 'Blocklet 版本',
      appliedAt: '申請於',
      status: '狀態'
    },
    status: {
      pending: '待辦',
      approved: '核准',
      rejected: '被拒絕',
      revoked: '撤銷'
    },
    disbandFederatedLogin: '解散聯合登錄',
    disbandFederatedLoginDescription: '解除聯邦登錄後，所有成員網站將自動退出聯邦登錄。',
    syncConfig: '同步聯邦站點配置',
    quitMember: '移除',
    quitMemberDescription: '從站點組中移除指定成員',
    removeFederatedLogin: '移除成員',
    removeFederatedLoginDescription: '從站點群組中移除指定成員後，成員只能使用普通登入。',
    title: '什麼是聯合登入？',
    description: '聯合登入可以透過在多個系統中單點登入來實現。你可以邀請其他團隊加入聯合登入，或主動加入其他組織的聯合登入平台。',
    link: '檢視文档'
  },
  optionsOrder: {
    1: '選項一',
    2: '選項二'
  },
  securityRule: {
    title: '安全規則',
    sortByDescription: '依配對優先順序排序',
    add: '新增安全規則',
    edit: '編輯安全規則',
    view: '查看安全規則',
    form: {
      precede: '前置',
      pathPattern: '路徑模式',
      pathPatternPlaceholder: '請輸入路徑模式',
      pathPatternErrorText: '路徑模式無效',
      accessPolicyOrResponseHeaderPolicyRequired: '需要存取政策或回應標頭政策',
      accessPolicy: '存取政策',
      accessPolicyPlaceholder: '請選擇存取權限政策',
      accessPolicyHelperText: '請選擇存取政策',
      responseHeaderPolicy: '回應標頭政策',
      responseHeaderPolicyPlaceholder: '請選擇回應標頭政策',
      responseHeaderPolicyHelperText: '選擇回應標頭政策',
      remark: '備註',
      remarkPlaceholder: '請輸入備註',
      component: '元件',
      componentPlaceholder: '請選擇元件'
    },
    delete: {
      title: '刪除安全規則？',
      description: '刪除安全規則後，規則將不再生效'
    },
    useless: '無用的安全規則'
  },
  responseHeaderPolicy: {
    title: '回應標頭政策',
    add: '新增回應標頭政策',
    edit: '編輯回應標頭政策',
    view: '查看回應標頭政策',
    form: {
      name: '姓名',
      namePlaceholder: '請輸入你的名字',
      description: '描述',
      descriptionPlaceholder: '請輸入描述',
      cors: {
        origin: '起源',
        originPlaceholder: '支持下列網域格式：http://www.example.com, http://*.example.com, http://www.example.com:8080, *（不建議使用萬用字元）',
        originHelperText: '網域名稱以 http:// 或 https:// 開頭，每行一個，每行一個萬用字元 *',
        methods: '方法',
        allowedHeaders: '允許的header',
        allowedHeadersPlaceholder: '建議填寫*, 支援多行輸入',
        allowedHeadersHelperText: '告訴伺服器在傳送 OPTIONS 要求時，可以在下一個要求中使用哪些自訂的 HTTP 要求標頭，例如：x-blocklet-version',
        exposedHeaders: '暴露標頭',
        exposedHeadersPlaceholder: '多行輸入支援',
        exposedHeadersHelperText: '配置 Expose-Headers，例如: X-Content-Range',
        maxAge: 'Max-Age (秒)',
        maxAgeHelperText: '透過 OPTIONS 請求取得結果的有效期，須為正整數',
        optionsSuccessStatus: '選項 成功 狀態',
        preflightContinue: '繼續預檢',
        credentials: '憑證',
        smartModeHelperText: '自動新增目前應用程式的所有網域名稱以及聯合登入網站群組的所有網域名稱',
        smartMode: '智能模式'
      },
      originOverride: '源頭覆蓋',
      originOverrideHelperText: '是否允許該應用程式中的邏輯來覆蓋此回應頭?'
    },
    delete: {
      title: '刪除回應標題政策？',
      description: '移除回應標頭政策後，該政策將不再生效'
    }
  },
  accessPolicy: {
    title: '訪問策略',
    add: '添加存取權限政策',
    edit: '編輯存取權限政策',
    view: '查看存取權限策略',
    form: {
      name: '名字',
      namePlaceholder: '請輸入姓名',
      description: '描述',
      descriptionPlaceholder: '請輸入描述',
      roles: '存取角色',
      accessType: '存取類型'
    },
    delete: {
      title: '刪除存取權限政策？',
      description: '移除存取權限政策後，該政策將不再生效'
    }
  },
  didConnect: {
    genKeyPair: {
      title: '生成 Blocklet DID',
      scan: '掃描以下 QRCode 產生 Blocklet DID',
      success: '成功生成 Blocklet DID',
      successDesc: 'Blocklet DID 已成功產生 (後續發布需要使用產生該 DID 的錢包進行操作)'
    },
    common: {
      invalidSession: '無效工作階段',
      invalidSessionDesc: '會話不存在或已過期',
      connectionError: '連線失敗'
    }
  },
  pagination: {
    next: '下一頁',
    previous: '上一頁',
    rowsPerPage: '每頁行數:',
    displayRows: '的',
    jumpToPage: '跳轉到頁面:'
  },
  webhookEndpoint: {
    createWebhook: '建立 Webhook',
    createWebhookTitle: '建立 Webhook',
    selectAllEvents: '選擇所有事件',
    selectAllEventsTooltip: '選擇所有可用事件',
    selectedEventsCount: '{count} 個事件已選擇',
    selectedCount: '{count} 個已選擇',
    eventsCount: '{count} 個事件',
    saveWebhook: '建立 Webhook',
    noAvailableEvents: '沒有可用的事件',
    loadingEvents: '載入事件...',
    loadingError: '載入事件失敗：{message}',
    title: 'Webhooks',
    noWebhooksAdded: '未新增任何webhook',
    validation: {
      urlRequired: '需要 URL',
      urlInvalid: '請輸入有效的URL',
      descriptionRequired: '需要描述',
      eventRequired: '請選擇至少一個事件'
    },
    hosted: '託管端點',
    add: '建立 Webhook',
    addTip: '設定你的 webhook 端點以接收即時事件',
    listen: '收聽',
    version: 'API 版本',
    attempts: 'Webhook嘗試',
    url: {
      label: 'URL',
      description: 'Webhook URL'
    },
    description: {
      label: '描述',
      description: '此端點用途的選填描述'
    },
    events: {
      label: '選擇要收聽的事件',
      description: '你好, {name}.'
    },
    disabled: '已停用',
    enabled: '已啟用',
    disable: '停用',
    enable: '啟用',
    editWebhookTitle: '更新 Webhook',
    updateWebhook: '更新 Webhook',
    waitingForEvents: '等待接收事件...',
    loadingMore: '正在載入...',
    loadMore: '載入更多',
    response: '回覆',
    request: '請求',
    eventData: '事件數據',
    deleteWebhook: {
      title: '刪除 Webhook？',
      description: '刪除 Webhook 後，Webhook 將不再接收事件'
    },
    success: '成功',
    listTitle: '使用 Webhooks 傳送即時事件數據',
    tooltipTitle: '透過傳送即時事件通知，無縫連接你的應用程式到外部系統。Webhooks 支援強大的整合和跨工具及服務的自動化工作流程。',
    triggeredFrom: '此 Webhook 數據來自觸發'
  },
  description: {
    environment: '目前的變數將在 {name} 執行時生效。需要重新啟動應用程式才能生效。',
    preferences: '目前的變數將在 {name} 執行時生效。儲存後將套用變更，無需重新啟動應用程式。'
  },
  preferencesFor: '{name} 的偏好設定',
  environmentFor: '{name} 的環境变量',
  environmentTips: {
    delete: '你確定要删除此行嗎？',
    deleteForbidden: '只有自定義環境變數可以被删除。'
  },
  accessKey: '存取金鑰',
  embed: {
    iconTip: '點擊查看訂閱詳情'
  },
  command: '命令',
  mcp: {
    listTitle: '從 MCP 客戶端存取你的 Blocklet',
    tooltipTitle: '探索此Blocklet支援的MCP伺服器列表，選擇一個伺服器即可立即查看從客戶端加入所需的連線命令。',
    endpoint: 'MCP 端點',
    available: '可用的 MCP 伺服器',
    noServer: '沒有可用的 MCP 伺服器'
  },
  installCommand: '安裝命令',
  label: {
    add: '新增',
    apply: '套用標籤',
    manage: '管理標籤',
    title: '標籤',
    description: '描述',
    systemLabel: '系統標籤',
    create: '建立標籤',
    edit: '編輯標籤',
    name: '名稱',
    slug: '識別碼（Slug）',
    parentLabel: '父標籤',
    color: '顏色',
    search: '搜尋標籤',
    saveSuccess: '標籤已成功儲存',
    delete: '刪除',
    deleteTip: '確定刪除「{name}」？',
    deleteDesc: '刪除標籤後，該標籤將不再被使用。確定要刪除「{name}」嗎？',
    deleteSuccess: '標籤已成功刪除',
    reassignTip: '如果該標籤正在被使用，可將相關項目重新分配至其他標籤。',
    reassignTo: '選擇新的標籤',
    recently: '最近',
    noMatching: '未找到符合的標籤',
    noLabels: '尚未建立任何標籤',
    filter: '篩選標籤',
    createNewLabel: '建立新標籤「{name}」',
    actionLabel: '批次指派標籤',
    selectLabels: '選擇標籤',
    nameRequired: '標題為必填項',
    nameMinLength: '標題至少需要 1 個字元',
    nameMaxLength: '標題不能超過 64 個字元',
    slugRequired: '識別碼（Slug）為必填項',
    slugMinLength: '識別碼至少需要 1 個字元',
    slugMaxLength: '識別碼不能超過 128 個字元',
    descriptionMaxLength: '描述不能超過 255 個字元',
    colorRequired: '顏色為必填項',
    colorInvalid: '顏色無效'
  }
};