import type { TranslationMap } from "../lib/types.ts";

// Generated by scripts/control-ui-i18n.ts.
export const fa: TranslationMap = {
  common: {
    health: "سلامت",
    ok: "تأیید",
    yes: "بله",
    no: "خیر",
    active: "فعال",
    loading: "در حال بارگیری…",
    refreshing: "در حال تازه‌سازی…",
    online: "آنلاین",
    offline: "آفلاین",
    connect: "اتصال",
    connected: "متصل",
    refresh: "تازه‌سازی",
    reload: "بارگذاری مجدد",
    reset: "بازنشانی",
    probe: "بررسی",
    call: "فراخوانی",
    confirm: "تأیید",
    cancel: "لغو",
    next: "بعدی",
    back: "بازگشت",
    create: "ایجاد",
    copy: "کپی",
    copied: "کپی شد!",
    copyCode: "کپی کد",
    delete: "حذف",
    dismiss: "بستن",
    unselect: "لغو انتخاب",
    enabled: "فعال",
    disabled: "غیرفعال",
    none: "هیچ‌کدام",
    na: "n/a",
    never: "هرگز",
    configured: "پیکربندی‌شده",
    running: "در حال اجرا",
    linked: "پیوندشده",
    mode: "حالت",
    system: "سیستم",
    light: "سبک",
    dark: "تیره",
    baseUrl: "URL پایه",
    lastStart: "آخرین شروع",
    lastProbe: "آخرین بررسی",
    lastInbound: "آخرین ورودی",
    lastConnect: "آخرین اتصال",
    lastMessage: "آخرین پیام",
    authAge: "سن احراز هویت",
    credential: "اعتبارنامه",
    audience: "مخاطبان",
    publicKey: "کلید عمومی",
    probeOk: "بررسی موفق",
    probeFailed: "بررسی ناموفق",
    reloadConfig: "بارگذاری مجدد پیکربندی",
    loadConfig: "بارگیری پیکربندی",
    loadApprovals: "بارگیری تأییدیه‌ها",
    settingsSections: "بخش‌های تنظیمات",
    version: "نسخه",
    docs: "مستندات",
    theme: "پوسته",
    colorMode: "حالت رنگ",
    colorModeOption: "حالت رنگ: {mode}",
    resources: "منابع",
    search: "جستجو",
    save: "ذخیره",
    saving: "در حال ذخیره…",
    saveAndPublish: "ذخیره و انتشار",
    importing: "در حال وارد کردن…",
    importFromRelays: "وارد کردن از Relays",
    showAdvanced: "نمایش پیشرفته",
    hideAdvanced: "پنهان کردن پیشرفته",
    unsavedChanges: "تغییرات ذخیره‌نشده دارید",
    secondsAgo: "{count}ث پیش",
    working: "در حال کار…",
    showQr: "نمایش QR",
    relink: "پیوند مجدد",
    waitForScan: "انتظار برای اسکن",
    logout: "خروج",
  },
  channels: {
    health: {
      title: "سلامت کانال",
      subtitle: "نماهای لحظه‌ای وضعیت کانال از Gateway.",
      noSnapshotYet: "هنوز نمای لحظه‌ای وجود ندارد.",
    },
    generic: {
      subtitle: "وضعیت و پیکربندی کانال.",
    },
    gatewayUrlConfirmation: {
      title: "تغییر URL Gateway",
      subtitle: "این کار به یک سرور Gateway دیگر دوباره متصل می‌شود",
      warning:
        "فقط در صورتی تأیید کنید که به این URL اعتماد دارید. URLهای مخرب می‌توانند سیستم شما را به خطر بیندازند.",
    },
    nostr: {
      profile: "نمایه",
      editProfile: "ویرایش نمایه",
      profilePicture: "تصویر نمایه",
      noProfile: "هیچ نمایه‌ای تنظیم نشده است.",
      noProfileHint: 'برای افزودن نام، زندگی‌نامه و آواتار خود، روی "ویرایش نمایه" کلیک کنید.',
      name: "نام",
      displayName: "نام نمایشی",
      about: "درباره",
      advanced: "پیشرفته",
      profilePicturePreview: "پیش‌نمایش تصویر نمایه",
      account: "حساب",
      username: "نام کاربری",
      usernameHelp: "نام کاربری کوتاه (مثلاً satoshi)",
      bio: "زندگی‌نامه",
      bioPlaceholder: "درباره خودتان به دیگران بگویید...",
      bioHelp: "یک زندگی‌نامه یا توضیح کوتاه",
      displayNameHelp: "نام نمایشی کامل شما",
      avatarUrl: "URL آواتار",
      avatarHelp: "URL HTTPS تصویر نمایه شما",
      bannerUrl: "URL بنر",
      bannerHelp: "URL HTTPS برای یک تصویر بنر",
      website: "وب‌سایت",
      websiteHelp: "وب‌سایت شخصی شما",
      nip05Identifier: "شناسه NIP-05",
      nip05Help: "شناسه قابل تأیید (مثلاً you@domain.com)",
      lightningAddress: "آدرس Lightning",
      lightningHelp: "آدرس Lightning برای انعام‌ها (LUD-16)",
    },
  },
  lazyView: {
    loadingTitle: "در حال بارگیری پنل",
    errorTitle: "پنل بارگیری نشد",
    errorSubtitle:
      "برای بارگیری آخرین بسته Control UI صفحه را دوباره بارگیری کنید، یا اگر درخواست شبکه ناموفق بود دوباره تلاش کنید.",
    retry: "تلاش دوباره",
    unknownError: "خطای نامشخص در بارگیری ماژول.",
  },
  nodes: {
    binding: {
      loadConfigHint: "برای ویرایش اتصال‌ها، پیکربندی را بارگیری کنید.",
      formModeHint: "برای ویرایش اتصال‌ها در اینجا، زبانه Config را به حالت Form تغییر دهید.",
      execNodeBinding: "اتصال گره Exec",
      execNodeBindingSubtitle:
        "هنگام استفاده از exec host=node، عامل‌ها را به یک گره مشخص پین کنید.",
      defaultBinding: "اتصال پیش‌فرض",
      defaultBindingHint: "وقتی عامل‌ها اتصال گره را بازنویسی نکنند استفاده می‌شود.",
      node: "گره",
    },
  },
  instances: {
    title: "نمونه‌های متصل",
    subtitle: "چراغ‌های حضور از Gateway و کلاینت‌ها.",
    showHosts: "نمایش میزبان‌ها و IPها",
    hideHosts: "پنهان کردن میزبان‌ها و IPها",
    toggleHostVisibility: "تغییر نمایش میزبان",
    noInstances: "هنوز هیچ نمونه‌ای گزارش نشده است.",
    lastInput: "آخرین ورودی {time}",
    reason: "دلیل {reason}",
  },
  sessionsView: {
    title: "نشست‌ها",
    subtitle: "کلیدهای نشست فعال و بازنویسی‌های مخصوص هر نشست.",
    store: "ذخیره‌گاه: {path}",
    active: "فعال",
    limit: "حد",
    filters: "فیلترها",
    showFilters: "نمایش فیلترها",
    hideFilters: "پنهان کردن فیلترها",
    sourceFilters: "فیلترهای منبع جلسه",
    global: "سراسری",
    unknown: "نامشخص",
    showArchived: "نمایش بایگانی‌شده‌ها",
    activeTooltip: "در {count} دقیقهٔ گذشته به‌روزرسانی شده است.",
    limitTooltip: "حداکثر جلسه‌هایی که بارگیری می‌شوند.",
    globalTooltip: "شامل جلسه‌های سراسری شود.",
    unknownTooltip: "شامل جلسه‌های ناشناخته شود.",
    showArchivedTooltip: "شامل جلسه‌های بایگانی‌شده شود.",
    minutesPlaceholder: "دقیقه",
    searchPlaceholder: "فیلتر بر اساس کلید، عامل، برچسب، نوع…",
    selected: "{count} انتخاب‌شده",
    deleteSelected: "حذف",
    selectAllOnPage: "انتخاب همه در صفحه",
    selectSession: "انتخاب نشست",
    optionalPlaceholder: "(اختیاری)",
    key: "کلید",
    label: "برچسب",
    kind: "نوع",
    updated: "به‌روزشده",
    tokens: "توکن‌ها",
    compaction: "فشرده‌سازی",
    thinking: "تفکر",
    fast: "سریع",
    verbose: "پرگویی",
    reasoning: "استدلال",
    noSessions: "هیچ نشستی پیدا نشد.",
    noSessionsMatchFilters: "هیچ جلسه‌ای با فیلترهای شما مطابقت ندارد.",
    showAll: "نمایش همه",
    inherit: "ارث‌بری",
    defaultOption: "پیش‌فرض ({value})",
    offExplicit: "خاموش (صریح)",
    on: "روشن",
    off: "خاموش",
    full: "کامل",
    stream: "جریان",
    customOption: "{value} (سفارشی)",
    manual: "دستی",
    autoThreshold: "آستانه خودکار",
    overflowRetry: "تلاش دوباره هنگام سرریز",
    timeoutRetry: "تلاش دوباره پس از وقفه",
    tokenRange: "{before} to {after} توکن",
    tokensBefore: "{count} توکن قبل",
    tokenDeltaUnavailable: "دلتای توکن در دسترس نیست",
    checkpoints: "{count} نقطهٔ وارسی",
    checkpoint: "{count} نقطهٔ وارسی",
    showSessionDetails: "نمایش جزئیات جلسه برای {count}",
    hideSessionDetails: "پنهان کردن جزئیات جلسه برای {count}",
    sessionDetails: "جزئیات جلسه",
    compactionHistory: "تاریخچه فشرده‌سازی",
    status: "وضعیت",
    statusLive: "زنده",
    statusIdle: "بی‌کار",
    statusUnknown: "نامشخص",
    statusRunning: "در حال اجرا",
    statusDone: "انجام شد",
    statusFailed: "ناموفق",
    statusKilled: "متوقف شد",
    statusTimeout: "زمان به پایان رسید",
    model: "مدل",
    provider: "ارائه‌دهنده",
    runtime: "زمان اجرا",
    surface: "سطح",
    subject: "موضوع",
    room: "اتاق",
    space: "فضا",
    sessionId: "شناسه جلسه",
    activeRun: "اجرای فعال",
    archived: "بایگانی‌شده",
    loadingCheckpoints: "در حال بارگذاری نقاط وارسی…",
    noCheckpoints: "هیچ نقطهٔ وارسی فشرده‌سازی برای این نشست ثبت نشده است.",
    noSummary: "هیچ خلاصه‌ای ثبت نشده است.",
    branchFromCheckpoint: "انشعاب از نقطهٔ وارسی",
    restoreCheckpoint: "بازیابی نقطهٔ وارسی",
  },
  agents: {
    noAgents: "هیچ عاملی وجود ندارد",
    copyId: "کپی شناسه",
    copyIdTitle: "کپی شناسه عامل در کلیپ‌بورد",
    default: "پیش‌فرض",
    setDefault: "تنظیم به‌عنوان پیش‌فرض",
    alreadyDefaultTitle: "همین حالا عامل پیش‌فرض است",
    setDefaultTitle: "تنظیم به‌عنوان عامل پیش‌فرض",
    selectTitle: "انتخاب عامل",
    selectSubtitle: "یک عامل را انتخاب کنید تا فضای کاری و ابزارهای آن را بررسی کنید.",
    tabs: {
      overview: "نمای کلی",
      files: "فایل‌ها",
      tools: "ابزارها",
      skills: "Skills",
      channels: "کانال‌ها",
      cronJobs: "Cron Jobs",
    },
    context: {
      title: "زمینه عامل",
      workspace: "فضای کاری",
      openFilesTab: "باز کردن زبانه فایل‌ها",
      primaryModel: "مدل اصلی",
      runtime: "زمان اجرا",
      identityName: "نام هویت",
      identityAvatar: "آواتار هویت",
      skillsFilter: "فیلتر Skills",
      default: "پیش‌فرض",
      configurationSubtitle: "پیکربندی فضای کاری، هویت و مدل.",
      schedulingSubtitle: "فضای کاری و اهداف زمان‌بندی.",
    },
    channels: {
      title: "کانال‌ها",
      subtitle: "نمای کلی وضعیت کانال‌ها در سطح Gateway.",
      lastRefresh: "آخرین به‌روزرسانی: {time}",
      loadHint: "کانال‌ها را بارگیری کنید تا وضعیت زنده را ببینید.",
      empty: "هیچ کانالی پیدا نشد.",
      connectedCount: "{connected}/{total} متصل",
      noAccounts: "بدون حساب",
      configuredCount: "{count} پیکربندی‌شده",
      notConfigured: "پیکربندی نشده",
      enabledCount: "{count} فعال",
      setupGuide: "راهنمای راه‌اندازی",
    },
    cronPanel: {
      schedulerTitle: "زمان‌بند",
      schedulerSubtitle: "وضعیت cron در Gateway.",
      jobs: "کارها",
      nextWake: "بیدارباش بعدی",
      agentJobsTitle: "کارهای Cron عامل",
      agentJobsSubtitle: "کارهای زمان‌بندی‌شده‌ای که این عامل را هدف قرار می‌دهند.",
      noJobs: "هیچ کاری اختصاص داده نشده است.",
      runNow: "اکنون اجرا کن",
    },
    files: {
      emptyDraft: "پیش‌نویس خالی",
      minRead: "{count} دقیقه مطالعه",
      markdownPreview: "پیش‌نمایش Markdown",
      extensionPreview: "پیش‌نمایش {ext}",
      preview: "پیش‌نمایش",
      expandPreview: "گسترش پیش‌نمایش",
      collapsePreview: "جمع کردن پیش‌نمایش",
      editFile: "ویرایش فایل",
      closePreview: "بستن پیش‌نمایش",
      coreFilesTitle: "فایل‌های اصلی",
      coreFilesSubtitle: "شخصیت اولیه، هویت و راهنمای ابزارها.",
      workspace: "فضای کاری",
      loadHint: "فایل‌های فضای کاری عامل را بارگیری کنید تا دستورالعمل‌های اصلی را ویرایش کنید.",
      empty: "هیچ فایلی پیدا نشد.",
      missing: "موجود نیست",
      selectFile: "یک فایل را برای ویرایش انتخاب کنید.",
      previewMarkdownTitle: "پیش‌نمایش Markdown رندرشده",
      willCreateOnSave: "هنگام ذخیره ایجاد می‌شود",
      liveDraftPreview: "پیش‌نمایش زنده پیش‌نویس",
      savedPreview: "پیش‌نمایش ذخیره‌شده",
      updated: "{time} به‌روزرسانی شد",
      notCreatedYet: "هنوز ایجاد نشده است",
      updatedUnknown: "زمان به‌روزرسانی نامشخص است",
      missingHint: "این فایل موجود نیست. ذخیره‌سازی آن را در فضای کاری عامل ایجاد می‌کند.",
      content: "محتوا",
      words: "{count} کلمه",
      lines: "خط",
    },
  },
  debug: {
    snapshotsTitle: "عکس‌های فوری",
    snapshotsSubtitle: "داده‌های وضعیت، سلامت و ضربان.",
    status: "وضعیت",
    health: "سلامت",
    lastHeartbeat: "آخرین ضربان",
    security: {
      audit: "ممیزی امنیتی",
      critical: "{count} بحرانی",
      warnings: "{count} هشدار",
      noCriticalIssues: "هیچ مشکل بحرانی وجود ندارد",
      info: "{count} اطلاعات",
      runPrefix: "اجرا کنید",
      runSuffix: "برای جزئیات.",
    },
    manualRpcTitle: "RPC دستی",
    manualRpcSubtitle: "ارسال یک متد خام gateway با پارامترهای JSON.",
    method: "متد",
    selectMethod: "یک متد انتخاب کنید…",
    paramsJson: "پارامترها (JSON)",
    modelsTitle: "مدل‌ها",
    modelsSubtitle: "کاتالوگ از models.list.",
    eventLogTitle: "لاگ رویداد",
    eventLogSubtitle: "آخرین رویدادهای gateway.",
    noEvents: "هنوز رویدادی وجود ندارد.",
  },
  quickSettings: {
    security: {
      browserEnabled: "Browser enabled",
      toolProfile: "Tool profile",
    },
  },
  execApproval: {
    expiresIn: "تا {time} دیگر منقضی می‌شود",
    expired: "منقضی شده",
    execApprovalNeeded: "تأیید اجرا لازم است",
    pluginApprovalNeeded: "تأیید افزونه لازم است",
    pending: "{count} در انتظار",
    allowOnce: "یک‌بار مجاز کن",
    alwaysAllow: "همیشه مجاز کن",
    allowAlwaysUnavailable:
      "The effective approval policy requires approval every time, so Allow Always is unavailable.",
    deny: "رد کردن",
    labels: {
      host: "میزبان",
      agent: "عامل",
      session: "جلسه",
      cwd: "CWD",
      resolved: "حل‌شده",
      security: "امنیت",
      ask: "پرسش",
      severity: "شدت",
      plugin: "افزونه",
    },
  },
  agentTools: {
    connectedSource: "متصل: {id}",
    connected: "متصل",
    channelSource: "کانال: {id}",
    channel: "کانال",
    builtIn: "داخلی",
  },
  nav: {
    chat: "چت",
    control: "کنترل",
    agent: "عامل",
    settings: "تنظیمات",
    expand: "گسترش نوار کناری",
    collapse: "جمع کردن نوار کناری",
    resize: "تغییر اندازه نوار کناری",
  },
  tabs: {
    agents: "عامل‌ها",
    activity: "Activity",
    overview: "نمای کلی",
    channels: "کانال‌ها",
    instances: "نمونه‌ها",
    sessions: "نشست‌ها",
    usage: "مصرف",
    cron: "کارهای Cron",
    skills: "Skills",
    nodes: "گره‌ها",
    chat: "چت",
    config: "Config",
    communications: "ارتباطات",
    appearance: "ظاهر",
    automation: "اتوماسیون",
    infrastructure: "زیرساخت",
    aiAgents: "هوش مصنوعی و عامل‌ها",
    debug: "اشکال‌زدایی",
    logs: "گزارش‌ها",
    dreams: "رؤیاپردازی",
  },
  subtitles: {
    agents: "فضاهای کاری، ابزارها، هویت‌ها.",
    activity: "Browser-local tool activity summaries.",
    overview: "وضعیت، نقاط ورود، سلامت.",
    channels: "کانال‌ها و تنظیمات.",
    instances: "کلاینت‌ها و گره‌های متصل.",
    sessions: "نشست‌های فعال و پیش‌فرض‌ها.",
    usage: "مصرف و هزینه‌های API.",
    cron: "بیدارباش‌ها و اجراهای تکرارشونده.",
    skills: "Skills و کلیدهای API.",
    nodes: "دستگاه‌های جفت‌شده و فرمان‌ها.",
    chat: "چت Gateway برای مداخله‌های سریع.",
    config: "ویرایش openclaw.json.",
    communications: "کانال‌ها، پیام‌ها و تنظیمات صوتی.",
    appearance: "تنظیمات پوسته، UI و جادوگر راه‌اندازی.",
    automation: "فرمان‌ها، قلاب‌ها، cron و پلاگین‌ها.",
    infrastructure: "تنظیمات Gateway، وب، مرورگر و رسانه.",
    aiAgents: "عامل‌ها، مدل‌ها، مهارت‌ها، ابزارها، حافظه، نشست.",
    debug: "نماهای لحظه‌ای، رویدادها، RPC.",
    logs: "گزارش‌های زنده Gateway.",
    dreams: "رؤیاپردازی حافظه، یکپارچه‌سازی و بازتاب.",
  },
  activity: {
    title: "Activity",
    subtitle: "Ephemeral tool activity derived from live session events.",
    visibleCount: "{visible} of {total}",
    filtersLabel: "Activity filters",
    search: "جستجو",
    searchPlaceholder: "Filter by tool, summary, run, session",
    toolFilter: "ابزار",
    allTools: "All tools",
    statusFilters: "Status filters",
    autoFollow: "Auto-follow",
    expandAll: "Expand all",
    collapseAll: "Collapse all",
    clear: "پاک کردن",
    empty: "No tool activity yet.",
    emptyFiltered: "No activity matches these filters.",
    entrySummary: "{argumentSummary}",
    argumentHiddenOne: "1 argument hidden",
    argumentsHidden: "{count} arguments hidden",
    streamLabel: "Tool activity entries",
    toolCallId: "Tool call",
    runId: "اجرا کنید",
    session: "نشست",
    outputTruncated: "Preview redacted and truncated.",
    noOutputPreview: "No output preview.",
    status: {
      running: "در حال اجرا",
      done: "انجام شد",
      error: "خطا",
    },
    duration: {
      ms: "{count} ms",
      seconds: "{count} s",
      minutes: "{minutes}m {seconds}s",
    },
  },
  overview: {
    access: {
      title: "دسترسی Gateway",
      subtitle: "محل اتصال داشبورد و روش احراز هویت آن.",
      wsUrl: "URL WebSocket",
      token: "توکن Gateway",
      password: "گذرواژه (ذخیره نمی‌شود)",
      passwordPlaceholder: "گذرواژه سیستم یا مشترک",
      sessionKey: "کلید نشست پیش‌فرض",
      language: "زبان",
      connectHint: "برای اعمال تغییرات اتصال، روی اتصال کلیک کنید.",
      trustedProxy: "از طریق پروکسی مورد اعتماد احراز هویت شده است.",
      showToken: "نمایش توکن",
      hideToken: "پنهان کردن توکن",
      toggleTokenVisibility: "تغییر نمایش توکن",
      showPassword: "نمایش گذرواژه",
      hidePassword: "پنهان کردن گذرواژه",
      togglePasswordVisibility: "تغییر نمایش گذرواژه",
    },
    snapshot: {
      title: "نما",
      subtitle: "آخرین اطلاعات دست‌دهی Gateway.",
      status: "وضعیت",
      uptime: "زمان کارکرد",
      tickInterval: "فاصله Tick",
      lastChannelsRefresh: "آخرین تازه‌سازی کانال‌ها",
      channelsHint:
        "برای پیوند دادن WhatsApp، Telegram، Discord، Signal یا iMessage از کانال‌ها استفاده کنید.",
    },
    stats: {
      instances: "نمونه‌ها",
      instancesHint: "چراغ‌های حضور در ۵ دقیقه گذشته.",
      sessions: "نشست‌ها",
      sessionsHint: "کلیدهای نشست اخیر که توسط Gateway ردیابی شده‌اند.",
      cron: "Cron",
      cronNext: "بیدارباش بعدی {time}",
    },
    notes: {
      title: "یادداشت‌ها",
      subtitle: "یادآوری‌های سریع برای راه‌اندازی‌های کنترل از راه دور.",
      tailscaleTitle: "Tailscale serve",
      tailscaleText:
        "حالت serve را ترجیح دهید تا Gateway با احراز هویت tailnet روی loopback بماند.",
      sessionTitle: "بهداشت نشست",
      sessionText: "برای بازنشانی زمینه از /new یا sessions.patch استفاده کنید.",
      cronTitle: "یادآوری‌های Cron",
      cronText: "برای اجراهای تکرارشونده از نشست‌های ایزوله استفاده کنید.",
    },
    auth: {
      required:
        "این Gateway به احراز هویت نیاز دارد. یک توکن یا گذرواژه اضافه کنید، سپس روی اتصال کلیک کنید.",
      failed:
        "احراز هویت ناموفق بود. یک URL دارای توکن را با {command} دوباره کپی کنید، یا توکن را به‌روزرسانی کنید، سپس روی اتصال کلیک کنید.",
    },
    pairing: {
      hint: "این دستگاه به تأیید جفت‌سازی از میزبان Gateway نیاز دارد.",
      scopeUpgradeTitle: "ارتقای دامنه در انتظار تأیید است.",
      scopeUpgradeSummary:
        "این دستگاه قبلاً جفت شده است، اما دامنه گسترده‌تر درخواست‌شده در انتظار تأیید است.",
      roleUpgradeTitle: "ارتقای نقش در انتظار تأیید است.",
      roleUpgradeSummary:
        "این دستگاه قبلاً جفت شده است، اما تغییر نقش درخواست‌شده در انتظار تأیید است.",
      metadataUpgradeTitle: "تغییر فراداده دستگاه در انتظار تأیید است.",
      metadataUpgradeSummary: "این دستگاه قبلاً جفت شده است، اما تغییر فراداده در انتظار تأیید است.",
      mobileHint:
        "روی موبایل هستید؟ URL کامل (شامل #token=...) را از openclaw dashboard --no-open روی دسکتاپ خود کپی کنید.",
      docsTitle: "مستندات جفت‌سازی دستگاه (در زبانه جدید باز می‌شود)",
      docsLink: "مستندات: جفت‌سازی دستگاه",
    },
    insecure: {
      hint: "این صفحه HTTP است، بنابراین مرورگر هویت دستگاه را مسدود می‌کند. از HTTPS (Tailscale Serve) استفاده کنید یا {url} را روی میزبان Gateway باز کنید.",
      stayHttp: "اگر مجبورید روی HTTP بمانید، {config} را تنظیم کنید (فقط توکن).",
    },
    connection: {
      title: "نحوه اتصال",
      step1: "Gateway را روی ماشین میزبان خود شروع کنید:",
      step2: "یک URL داشبورد دارای توکن دریافت کنید:",
      step3: "URL WebSocket و توکن را در بالا جای‌گذاری کنید، یا URL دارای توکن را مستقیماً باز کنید.",
      step4: "یا یک توکن قابل استفاده مجدد تولید کنید:",
      docsHint: "برای دسترسی از راه دور، Tailscale Serve توصیه می‌شود. ",
      docsLink: "مستندات را بخوانید →",
      authDocsTitle: "مستندات احراز هویت Control UI (در زبانه جدید باز می‌شود)",
      authDocsLink: "مستندات: احراز هویت Control UI",
      tailscaleDocsTitle: "مستندات Tailscale Serve (در زبانه جدید باز می‌شود)",
      tailscaleDocsLink: "مستندات: Tailscale Serve",
      insecureHttpDocsTitle: "مستندات HTTP ناامن (در زبانه جدید باز می‌شود)",
      insecureHttpDocsLink: "مستندات: HTTP ناامن",
      copyCommand: "کپی فرمان",
      copyCommandAria: "کپی فرمان: {command}",
    },
    cards: {
      cost: "هزینه",
      skills: "Skills",
      recentSessions: "نشست‌های اخیر",
      modelAuth: "احراز هویت مدل",
      modelAuthOk: "{count} سالم",
      modelAuthExpired: "{count} منقضی‌شده",
      modelAuthExpiring: "{count} در حال انقضا",
      modelAuthProviders: "{count} ارائه‌دهنده",
      modelAuthUsageLeft: "{pct}% باقی‌مانده",
      modelAuthExpiresIn: "انقضا {when}",
      modelAuthAttentionExpiredTitle: "احراز هویت مدل منقضی شده است",
      modelAuthAttentionExpiringTitle: "احراز هویت مدل به‌زودی منقضی می‌شود",
      modelAuthAttentionExpiredDesc: "{providers} — با openclaw models auth دوباره احراز هویت کنید",
      modelAuthAttentionExpiringEntry: "{provider} ({when})",
    },
    attention: {
      title: "نیازمند توجه",
    },
    eventLog: {
      title: "گزارش رویداد",
    },
    logTail: {
      title: "گزارش‌های Gateway",
    },
    quickActions: {
      newSession: "نشست جدید",
      automation: "اتوماسیون",
      refreshAll: "تازه‌سازی همه",
      terminal: "ترمینال",
    },
    palette: {
      placeholder: "یک فرمان تایپ کنید…",
      noResults: "نتیجه‌ای وجود ندارد",
      categories: {
        search: "جستجو",
        navigation: "پیمایش",
        skills: "Skills",
      },
      items: {
        overview: "نمای کلی",
        sessions: "نشست‌ها",
        scheduled: "زمان‌بندی‌شده",
        skills: "Skills",
        settings: "تنظیمات",
        agents: "عامل‌ها",
        shellCommand: "فرمان پوسته",
        debugMode: "حالت اشکال‌زدایی",
      },
      descriptions: {
        shellCommand: "اجرای پوسته",
        debugMode: "تغییر وضعیت اشکال‌زدایی",
      },
      footer: {
        navigate: "پیمایش",
        select: "انتخاب",
        close: "بستن",
      },
    },
  },
  dreaming: {
    tabs: {
      scene: "صحنه",
      diary: "دفترچه",
      advanced: "پیشرفته",
    },
    header: {
      refresh: "تازه‌سازی",
      refreshing: "در حال تازه‌سازی…",
      on: "رؤیاپردازی روشن",
      off: "رؤیاپردازی خاموش",
    },
    restartConfirmation: {
      title: "برای اعمال تغییر، Gateway را بازراه‌اندازی کنید",
      subtitle: "تغییر حالت رؤیاپردازی، Gateway را بازراه‌اندازی می‌کند.",
      warning:
        "این اقدام Gateway را بازراه‌اندازی می‌کند و ممکن است چت‌ها، اتوماسیون‌ها و کانال‌های متصل را موقتاً قطع کند.",
      confirm: "تأیید بازراه‌اندازی",
      restarting: "در حال بازراه‌اندازی…",
      failed: "تغییر اعمال نشد. اتصال خود را بررسی کنید و دوباره تلاش کنید.",
    },
    status: {
      active: "رؤیاپردازی فعال",
      idle: "رؤیاپردازی بیکار",
      promotedSuffix: "ارتقایافته",
      nextSweepPrefix: "پویش بعدی",
    },
    scene: {
      backfill: "تکمیل گذشته‌نگر",
      dedupeDiary: "حذف تکراری‌های دفترچه",
      reset: "بازنشانی",
      clearGrounded: "پاک کردن بازپخش‌شده‌ها",
      repairCache: "ترمیم کش رؤیا",
      working: "در حال کار…",
    },
    phase: {
      light: "سبک",
      deep: "عمیق",
      rem: "Rem",
      off: "خاموش",
    },
    advanced: {
      eyebrow: "بازبینی",
      title: "بازبینی گزارش روزانه",
      description:
        "بررسی کنید چه چیزهایی از گزارش روزانه آمده، چه چیزهایی در انتظار ارتقا هستند و چه چیزهایی اخیراً ارتقا یافته‌اند.",
      summaryFromDailyLog: "از گزارش روزانه",
      summaryWaiting: "در انتظار",
      summaryPromotedToday: "امروز ارتقا یافته",
      stagedTitle: "از گزارش روزانه",
      stagedDescription: "نامزدهای بازپخش‌شده که از ورودی‌های قدیمی‌تر گزارش روزانه گرفته شده‌اند.",
      shortTermTitle: "در انتظار ارتقا",
      shortTermDescription: "نامزدهای کوتاه‌مدت فعلی که در انتظار ورود به حافظه واقعی هستند.",
      sortRecent: "جدیدترین",
      sortSignals: "قوی‌ترین پشتیبانی",
      originDailyLog: "بازپخش‌شده",
      originLive: "زنده",
      originMixed: "ترکیبی",
      promotedTitle: "ارتقاهای اخیر",
      promotedDescription: "مواردی که قبلاً از فرایند ارتقا عبور کرده‌اند.",
      emptyGrounded: "در حال حاضر هیچ ورودی بازپخش زمینه‌دارِ مرحله‌بندی‌شده‌ای وجود ندارد.",
      emptyShortTerm: "هیچ ورودی کوتاه‌مدتی برای بررسی وجود ندارد.",
      emptyPromoted: "هیچ ارتقای اخیری برای بررسی وجود ندارد.",
      updatedPrefix: "به‌روزرسانی‌شده",
    },
    stats: {
      shortTerm: "کوتاه‌مدت",
      grounded: "زمینه‌دار",
      signals: "سیگنال‌ها",
      promoted: "ارتقایافته",
      phaseHits: "بازدیدهای فاز",
    },
    trace: {
      shortTerm: "کوتاه‌مدت",
      grounded: "زمینه‌دار",
      signals: "سیگنال‌ها",
      promoted: "ارتقایافته",
      groundedLed: "هدایت‌شده با زمینه",
      emptyShortTerm: "هیچ مورد کوتاه‌مدت فعالی وجود ندارد.",
      emptyGrounded: "هیچ مورد زمینه‌دارِ مرحله‌بندی‌شده‌ای وجود ندارد.",
      emptySignals: "هیچ سیگنال فعالی وجود ندارد.",
      emptyPromoted: "امروز هنوز چیزی ارتقا نیافته است.",
    },
    diary: {
      title: "دفترچه رؤیا",
      noDreamsYet: "هنوز رؤیایی وجود ندارد",
      noDreamsHint: "رؤیاها پس از اجرای نخستین چرخه رؤیاپردازی اینجا ظاهر می‌شوند.",
      waitingTitle: "دفترچه در انتظار است",
      waitingHint: "ورودی‌های روایی پس از چرخه رؤیاپردازی بعدی ظاهر می‌شوند.",
      older: "قدیمی‌تر",
      newer: "جدیدتر",
      reload: "بارگذاری مجدد",
      reloading: "در حال بارگذاری مجدد…",
    },
    phrases: {
      consolidatingMemories: "در حال یکپارچه‌سازی خاطرات…",
      tidyingKnowledgeGraph: "در حال مرتب‌سازی گراف دانش…",
      replayingConversations: "در حال بازپخش گفت‌وگوهای امروز…",
      weavingShortTerm: "در حال بافتن کوتاه‌مدت در بلندمدت…",
      defragmentingMindPalace: "در حال یکپارچه‌سازی کاخ ذهن…",
      filingLooseThoughts: "در حال بایگانی افکار پراکنده…",
      connectingDots: "در حال وصل کردن نقاط دور…",
      compostingContext: "در حال تبدیل پنجره‌های زمینه قدیمی به کود…",
      alphabetizingSubconscious: "در حال الفبایی کردن ناخودآگاه…",
      promotingHunches: "در حال ارتقای حدس‌های امیدوارکننده…",
      forgettingNoise: "در حال فراموش کردن چیزهای بی‌اهمیت…",
      dreamingEmbeddings: "در حال رؤیا دیدن در embeddingها…",
      reorganizingAttic: "در حال بازسازمان‌دهی اتاق زیرشیروانی حافظه…",
      indexingDay: "در حال نمایه‌سازی آرام روز…",
      nurturingInsights: "در حال پرورش بینش‌های نوپا…",
      simmeringIdeas: "در حال جا افتادن ایده‌های نیمه‌شکل‌گرفته…",
      whisperingVectorStore: "در حال نجوا با vector store…",
    },
  },
  usage: {
    common: {
      emptyValue: "—",
      unknown: "نامشخص",
    },
    loading: {
      title: "نمای کلی مصرف",
      badge: "در حال بارگیری",
    },
    metrics: {
      tokens: "توکن‌ها",
      cost: "هزینه",
      session: "نشست",
      sessions: "نشست‌ها",
    },
    presets: {
      today: "امروز",
      last7d: "۷روز",
      last30d: "۳۰روز",
      last90d: "90d",
      last1y: "1y",
      all: "همه",
    },
    scope: {
      instance: "نمونهٔ فعلی",
      instanceHint: "برای هر نشست منطقی، فقط شناسهٔ نشست فعال را نشان دهید.",
      family: "تبارچهٔ تاریخی",
      familyHint: "شناسه‌های نشست شناخته‌شده و چرخش‌یافتهٔ مبتنی بر رونوشت را تجمیع کنید.",
      familyIncluded: "تبارچهٔ تاریخی شامل {count} نمونهٔ نشست است.",
    },
    filters: {
      title: "فیلترها",
      to: "تا",
      startDate: "تاریخ شروع",
      endDate: "تاریخ پایان",
      timeZone: "منطقه زمانی",
      timeZoneLocal: "محلی",
      timeZoneUtc: "UTC",
      pin: "سنجاق کردن",
      pinned: "سنجاق‌شده",
      unpin: "برداشتن سنجاق فیلترها",
      selectAll: "انتخاب همه",
      clear: "پاک کردن",
      clearAll: "پاک کردن همه",
      remove: "حذف فیلتر",
      all: "همه",
      days: "روزها",
      hours: "ساعت‌ها",
      session: "نشست",
      agent: "عامل",
      channel: "کانال",
      provider: "ارائه‌دهنده",
      model: "مدل",
      tool: "ابزار",
      daysCount: "{count} روز",
      hoursCount: "{count} ساعت",
      sessionsCount: "{count} نشست",
    },
    query: {
      placeholder:
        "فیلتر کردن نشست‌ها (مثلاً key:agent:main:cron* model:gpt-4o has:errors minTokens:2000)",
      apply: "فیلتر (سمت کلاینت)",
      matching: "{shown} از {total} نشست مطابق است",
      inRange: "{total} نشست در بازه",
      tip: "نکته: برای محدود کردن روزها از فیلترها استفاده کنید یا روی نوارها کلیک کنید.",
    },
    export: {
      label: "خروجی گرفتن",
      sessionsCsv: "CSV نشست‌ها",
      dailyCsv: "CSV روزانه",
      json: "JSON",
    },
    cacheStatus: {
      warning:
        "کشِ استفاده در پس‌زمینه در حال بازسازی است. مجموع‌های نمایش‌داده‌شده ممکن است قدیمی باشند.",
      title: "{status}: {pending} در انتظار، {stale} قدیمی، {cached} کش‌شده",
      status: {
        refreshing: "در حال تازه‌سازی",
        stale: "قدیمی",
        partial: "جزئی",
      },
    },
    empty: {
      title: "با یک بازه تاریخ شروع کنید",
      subtitle:
        "داده‌های مصرف را بارگیری کنید تا هزینه‌ها را مقایسه کنید، نشست‌ها را بررسی کنید و بدون خروج از داشبورد وارد جزئیات خط زمانی شوید.",
      hint: "یک بازه تاریخ انتخاب کنید و برای بارگیری مصرف روی تازه‌سازی کلیک کنید.",
      noData: "داده‌ای وجود ندارد",
      featureOverview: "کارت‌های نمای کلی",
      featureSessions: "رتبه‌بندی نشست‌ها",
      featureTimeline: "بررسی جزئیات خط زمانی",
    },
    daily: {
      title: "مصرف روزانه",
      total: "کل",
      byType: "بر اساس نوع",
      tokensTitle: "مصرف روزانه توکن",
      costTitle: "هزینه روزانه",
    },
    breakdown: {
      output: "خروجی",
      input: "ورودی",
      cacheWrite: "نوشتن کش",
      cacheRead: "خواندن کش",
      total: "کل",
      tokensByType: "توکن‌ها بر اساس نوع",
      costByType: "هزینه بر اساس نوع",
    },
    overview: {
      title: "نمای کلی مصرف",
      messages: "پیام‌ها",
      messagesHint: "مجموع پیام‌های کاربر و دستیار در بازه.",
      messagesAbbrev: "پیام",
      user: "کاربر",
      assistant: "دستیار",
      toolCalls: "فراخوانی‌های ابزار",
      toolCallsHint: "تعداد کل فراخوانی‌های ابزار در نشست‌ها.",
      toolsUsed: "ابزارهای استفاده‌شده",
      errors: "خطاها",
      errorsHint: "مجموع خطاهای پیام و ابزار در بازه.",
      toolResults: "نتایج ابزار",
      avgTokens: "میانگین توکن / پیام",
      avgTokensHint: "میانگین توکن به‌ازای هر پیام در این بازه.",
      avgCost: "میانگین هزینه / پیام",
      avgCostHint: "میانگین هزینه به‌ازای هر پیام وقتی ارائه‌دهنده‌ها هزینه‌ها را گزارش می‌کنند.",
      avgCostHintMissing:
        "میانگین هزینه به‌ازای هر پیام وقتی ارائه‌دهنده‌ها هزینه‌ها را گزارش می‌کنند. داده هزینه برای برخی یا همه نشست‌های این بازه موجود نیست.",
      acrossMessages: "در میان {count} پیام",
      sessions: "نشست‌ها",
      sessionsHint: "نشست‌های متمایز در بازه.",
      sessionsInRange: "از {count} در بازه",
      throughput: "توان عملیاتی",
      throughputHint:
        "توان عملیاتی، توکن‌ها در دقیقه را در زمان فعال نشان می‌دهد. هرچه بیشتر باشد بهتر است.",
      tokensPerMinute: "توکن/دقیقه",
      perMinute: "/ دقیقه",
      errorRate: "نرخ خطا",
      errorHint: "نرخ خطا = خطاها / مجموع پیام‌ها. هرچه کمتر باشد بهتر است.",
      avgSession: "میانگین نشست",
      cacheHitRate: "نرخ اصابت کش",
      cacheHint:
        "نرخ اصابت کش = خواندن کش / (ورودی + خواندن کش + نوشتن کش). هرچه بیشتر باشد بهتر است.",
      cached: "کش‌شده",
      prompt: "پرامپت",
      calls: "فراخوانی‌ها",
      topModels: "مدل‌های برتر",
      topProviders: "ارائه‌دهنده‌های برتر",
      topTools: "ابزارهای برتر",
      topAgents: "عامل‌های برتر",
      topChannels: "کانال‌های برتر",
      peakErrorDays: "روزهای اوج خطا",
      peakErrorHours: "ساعت‌های اوج خطا",
      noModelData: "داده‌ای از مدل وجود ندارد",
      noProviderData: "داده‌ای از ارائه‌دهنده وجود ندارد",
      noToolCalls: "فراخوانی ابزاری وجود ندارد",
      noAgentData: "داده‌ای از عامل وجود ندارد",
      noChannelData: "داده‌ای از کانال وجود ندارد",
      noErrorData: "داده‌ای از خطا وجود ندارد",
    },
    sessions: {
      title: "نشست‌ها",
      shown: "{count} نمایش داده‌شده",
      total: "{count} کل",
      avg: "میانگین",
      all: "همه",
      recent: "اخیراً مشاهده‌شده",
      recentShort: "اخیر",
      sort: "مرتب‌سازی",
      ascending: "صعودی",
      descending: "نزولی",
      clearSelection: "پاک کردن انتخاب",
      noRecent: "نشست اخیر وجود ندارد",
      noneInRange: "هیچ نشستی در بازه وجود ندارد",
      more: "+{count} مورد دیگر",
      selected: "انتخاب‌شده ({count})",
      copy: "کپی",
      copyName: "کپی نام نشست",
      limitReached: "۱٬۰۰۰ نشست اول نمایش داده می‌شود. برای نتایج کامل، بازه تاریخ را محدودتر کنید.",
    },
    details: {
      noUsageData: "برای این نشست داده مصرفی وجود ندارد.",
      duration: "مدت",
      modelMix: "ترکیب مدل",
      filtered: "(فیلترشده)",
      close: "بستن جزئیات نشست",
      noTimeline: "داده خط زمانی وجود ندارد",
      noDataInRange: "داده‌ای در بازه وجود ندارد",
      usageOverTime: "مصرف در طول زمان",
      reset: "بازنشانی",
      perTurn: "به‌ازای هر نوبت",
      cumulative: "تجمعی",
      turnRange: "نوبت‌های {start}–{end} از {total}",
      assistantOutputTokens: "توکن‌های خروجی دستیار",
      userToolInputTokens: "توکن‌های ورودی کاربر + ابزار",
      tokensWrittenToCache: "توکن‌های نوشته‌شده در کش",
      tokensReadFromCache: "توکن‌های خوانده‌شده از کش",
      noContextData: "داده زمینه وجود ندارد",
      systemPromptBreakdown: "تفکیک پرامپت سیستم",
      collapse: "جمع کردن",
      collapseAll: "جمع کردن همه",
      expandAll: "گسترش همه",
      baseContextPerMessage: "زمینه پایه به‌ازای هر پیام",
      system: "سیستم",
      systemShort: "Sys",
      skills: "Skills",
      tools: "ابزارها",
      files: "فایل‌ها",
      ofInput: "از ورودی",
      of: "از",
      timelineFiltered: "خط زمانی فیلتر شده",
      conversation: "گفت‌وگو",
      noMessages: "پیامی وجود ندارد",
      tool: "ابزار",
      toolResult: "نتیجه ابزار",
      hasTools: "دارای ابزارها",
      searchConversation: "جستجوی گفت‌وگو",
      you: "شما",
      noMessagesMatch: "هیچ پیامی با فیلترها مطابقت ندارد.",
    },
    mosaic: {
      title: "فعالیت بر اساس زمان",
      subtitleEmpty: "برآوردها به مهرزمان‌های نشست نیاز دارند.",
      subtitle: "برآوردشده از بازه‌های نشست (اولین/آخرین فعالیت). منطقه زمانی: {zone}.",
      noTimelineData: "هنوز داده خط زمانی وجود ندارد.",
      dayOfWeek: "روز هفته",
      midnight: "نیمه‌شب",
      fourAm: "۴ صبح",
      eightAm: "۸ صبح",
      noon: "ظهر",
      fourPm: "۴ بعدازظهر",
      eightPm: "۸ شب",
      legend: "تراکم توکن کم → زیاد",
      sun: "یکشنبه",
      mon: "دوشنبه",
      tue: "سه‌شنبه",
      wed: "چهارشنبه",
      thu: "پنجشنبه",
      fri: "جمعه",
      sat: "شنبه",
    },
  },
  login: {
    subtitle: "داشبورد Gateway",
    passwordPlaceholder: "اختیاری",
    showToken: "نمایش توکن",
    hideToken: "پنهان کردن توکن",
    toggleTokenVisibility: "تغییر نمایش توکن",
    showPassword: "نمایش گذرواژه",
    hidePassword: "پنهان کردن گذرواژه",
    togglePasswordVisibility: "تغییر نمایش گذرواژه",
    failure: {
      rawError: "خطای خام",
      docsAuth: "مستندات احراز هویت Control UI",
      docsPairing: "مستندات جفت سازی دستگاه",
      docsInsecure: "مستندات HTTP ناامن",
      authRequired: {
        title: "احراز هویت لازم است",
        summary:
          "Gateway در دسترس است، اما قبل از اتصال این مرورگر به یک توکن یا گذرواژه منطبق نیاز دارد.",
        stepPaste:
          "توکن openclaw dashboard --no-open را جای گذاری کنید یا گذرواژه پیکربندی شده را وارد کنید.",
        stepGenerate:
          "اگر توکنی پیکربندی نشده است، openclaw doctor --generate-gateway-token را روی میزبان Gateway اجرا کنید.",
        stepConnect: "پس از به روز کردن اعتبارنامه، دوباره روی Connect کلیک کنید.",
      },
      authFailed: {
        title: "احراز هویت مطابقت نداشت",
        summary:
          "اعتبارنامه ارائه شده رد شد. رایج ترین علت، توکن قدیمی یا توکنی است که از URL یک Gateway دیگر کپی شده است.",
        stepDashboard:
          "openclaw dashboard --no-open را اجرا کنید و URL تازه را باز کنید یا توکن آن را جای گذاری کنید.",
        stepReplace:
          "مقادیر قدیمی توکن/گذرواژه را جایگزین کنید؛ از توکن URL یک Gateway دیگر دوباره استفاده نکنید.",
        stepMode:
          "هر بار فقط یک حالت احراز هویت منطبق استفاده کنید: توکن gateway برای حالت توکن، گذرواژه برای حالت گذرواژه.",
      },
      rateLimited: {
        title: "تلاش های ناموفق بیش از حد",
        summary: "Gateway به طور موقت تلاش های احراز هویت این کلاینت را محدود می کند.",
        stepStop: "برای لحظه ای از این زبانه دوباره تلاش نکنید.",
        stepWait:
          "صبر کنید محدودکننده احراز هویت آرام شود، سپس با اعتبارنامه اصلاح شده دوباره وصل شوید.",
        stepCheckClients:
          "اگر این میزبان مشترک است، کلاینت های دیگر را برای تلاش های نادرست تکراری بررسی کنید.",
      },
      pairing: {
        title: "جفت سازی دستگاه لازم است",
        scopeTitle: "ارتقای scope در انتظار است",
        roleTitle: "ارتقای نقش در انتظار است",
        metadataTitle: "به روزرسانی دستگاه در انتظار است",
        summary:
          "این مرورگر قبل از استفاده از Control UI به تأیید یک باره از میزبان Gateway نیاز دارد.",
        upgradeSummary:
          "این مرورگر از قبل شناخته شده است، اما دسترسی درخواستی تغییر کرده و به تأیید تازه نیاز دارد.",
        stepList: "openclaw devices list را روی میزبان Gateway اجرا کنید.",
        stepApproveId: "این درخواست را تأیید کنید: openclaw devices approve {requestId}.",
        stepApprove: "درخواست در انتظار مرورگر/دستگاه را از آن فهرست تأیید کنید.",
        stepReconnect: "پس از تکمیل تأیید، دوباره وصل شوید.",
      },
      insecure: {
        title: "زمینه امن مرورگر لازم است",
        summary:
          "این صفحه روی HTTP ساده اجرا می شود، بنابراین مرورگر نمی تواند هویت دستگاه مورد انتظار Gateway را بسازد.",
        stepHttps:
          "از HTTPS/Tailscale Serve استفاده کنید یا http://127.0.0.1:18789 را روی میزبان Gateway باز کنید.",
        stepLocalCompat:
          "برای سازگاری محلی فقط با توکن، gateway.controlUi.allowInsecureAuth: true را تنظیم کنید.",
        stepAvoidDisable:
          "از غیرفعال کردن احراز هویت دستگاه برای دسترسی HTTP راه دور خودداری کنید.",
      },
      origin: {
        title: "مبدأ مرورگر مجاز نیست",
        summary: "Gateway پیش از پذیرش اتصال Control UI، مبدأ این صفحه را رد کرد.",
        stepAllowedOrigins: "این مبدأ مرورگر را به gateway.controlUi.allowedOrigins اضافه کنید.",
        stepFullOrigin:
          "از مبدأهای کامل مانند http://localhost:5173 استفاده کنید، نه الگوهای wildcard.",
        stepRestart: "پس از تغییر مبدأهای مجاز، Gateway را دوباره راه اندازی یا بارگذاری کنید.",
      },
      protocol: {
        title: "عدم تطابق پروتکل",
        summary:
          "Control UI سرو شده و Gateway در حال اجرا درباره پروتکل اتصال پشتیبانی شده توافق ندارند.",
        stepDashboard:
          "داشبورد سرو شده را با openclaw dashboard دوباره باز کنید تا UI و Gateway از همان نصب باشند.",
        stepDevUi:
          "اگر از pnpm ui:dev استفاده می کنید، UI توسعه را بر اساس checkout فعلی دوباره بسازید یا راه اندازی کنید.",
        stepRestart:
          "پس از به روزرسانی OpenClaw، Gateway را دوباره راه اندازی کنید تا پروتکل فعلی را سرو کند.",
      },
      network: {
        title: "اتصال برقرار نشد",
        summary:
          "مرورگر نتوانست اتصال Gateway را کامل کند. پیش از تلاش دوباره با اعتبارنامه ها، هدف و انتقال را بررسی کنید.",
        stepGateway:
          "با openclaw status یا openclaw gateway run تأیید کنید که Gateway در حال اجرا است.",
        stepUrl:
          "URL WebSocket را بررسی کنید و وقتی Gateway پشت HTTPS/Tailscale Serve است از wss:// استفاده کنید.",
        stepDashboard:
          "داشبورد را با openclaw dashboard --no-open دوباره باز کنید تا URL و جزئیات احراز هویت فعلی را دوباره کپی کنید.",
      },
    },
  },
  chat: {
    disconnected: "اتصال از Gateway قطع شد.",
    refreshTitle: "تازه‌سازی داده‌های چت",
    settings: "تنظیمات چت",
    thinkingToggle: "تغییر وضعیت خروجی فکر/کار دستیار",
    toolCallsToggle: "تغییر وضعیت نمایش فراخوانی‌های ابزار و نتایج ابزار",
    autoScrollMode: "حالت پیمایش خودکار",
    autoScrollAlways: "همیشه",
    autoScrollNearBottom: "نزدیک پایین",
    autoScrollOff: "خاموش",
    focusToggle: "تغییر وضعیت حالت تمرکز (پنهان کردن نوار کناری + سرصفحه صفحه)",
    hideCronSessions: "پنهان کردن نشست‌های cron",
    showCronSessions: "نمایش نشست‌های cron",
    showCronSessionsHidden: "نمایش نشست‌های cron ({count} پنهان)",
    onboardingDisabled: "در طول راه‌اندازی غیرفعال است",
    gatewayStatus: "وضعیت Gateway: {status}",
    commandPaletteTitle: "جست‌وجو یا رفتن به… (⌘K)",
    openCommandPalette: "باز کردن پالت فرمان",
    docsOpensInNewTab: "{label} (در زبانهٔ جدید باز می‌شود)",
    updateAvailable: "به‌روزرسانی در دسترس است:",
    runningVersion: "در حال اجرای v{version}",
    updating: "در حال به‌روزرسانی…",
    updateNow: "اکنون به‌روزرسانی کن",
    dismissUpdateBanner: "بستن بنر به‌روزرسانی",
    switchedSession: "به {session} جابه‌جا شد",
    welcome: {
      ready: "Ready to chat",
      hintBeforeShortcut: "Type a message below ·",
      hintAfterShortcut: "for commands",
      suggestions: {
        whatCanYouDo: "What can you do?",
        summarizeRecentSessions: "Summarize my recent sessions",
        configureChannel: "Help me configure a channel",
        checkSystemHealth: "Check system health",
      },
    },
    runControls: {
      newSession: "New session",
      export: "خروجی گرفتن",
      exportChat: "Export chat",
      queue: "Queue",
      queueMessage: "Queue message",
      stop: "Stop",
      stopGenerating: "Stop generating",
      send: "Send",
      sendMessage: "Send message",
    },
    composer: {
      placeholder: "Message {name} (Enter to send)",
      placeholderWithAttachments: "Add a message or paste more images...",
      placeholderDisconnected: "Connect to the gateway to start chatting...",
      attachFile: "Attach file",
      startTalk: "Start Talk",
      stillListening: "هنوز در حال گوش دادن",
      talkTranscript: "رونوشت گفتار",
      stopTalk: "Stop Talk",
    },
    selectors: {
      agentFilter: "فیلتر کردن نشست‌ها بر اساس عامل",
      session: "Chat session",
      sessionSearch: "جستجوی نشست‌ها",
      clearSessionSearch: "پاک کردن جستجوی نشست",
      loadMoreSessions: "بارگذاری نشست‌های بیشتر",
      model: "Chat model",
      thinkingLevel: "Chat thinking level",
    },
  },
  languages: {
    en: "English (انگلیسی)",
    zhCN: "简体中文 (چینی ساده‌شده)",
    zhTW: "繁體中文 (چینی سنتی)",
    ptBR: "Português (پرتغالی برزیلی)",
    de: "Deutsch (آلمانی)",
    es: "Español (اسپانیایی)",
    jaJP: "日本語 (ژاپنی)",
    ko: "한국어 (کره‌ای)",
    fr: "Français (فرانسوی)",
    ar: "العربية (عربی)",
    it: "Italiano (ایتالیایی)",
    tr: "Türkçe (ترکی)",
    uk: "Українська (اوکراینی)",
    id: "Bahasa Indonesia (اندونزیایی)",
    pl: "Polski (لهستانی)",
    th: "ไทย (تایلندی)",
    vi: "Tiếng Việt (ویتنامی)",
    nl: "Nederlands (هلندی)",
    fa: "فارسی",
  },
  cron: {
    quickCreate: {
      schedules: {
        everyMorning: {
          label: "هر صبح",
          description: "هر روز ساعت 8:00 AM",
        },
        everyEvening: {
          label: "هر عصر",
          description: "هر روز ساعت 6:00 PM",
        },
        hourly: {
          label: "ساعتی",
          description: "هر ساعت",
        },
        weekdays: {
          label: "روزهای کاری",
          description: "دوشنبه تا جمعه ساعت 9:00 AM",
        },
        weekly: {
          label: "هفتگی",
          description: "هر دوشنبه ساعت 9:00 AM",
        },
        once: {
          label: "یک‌بار اجرا شود",
          description: "یک‌باره، پس از اجرا حذف شود",
        },
      },
      delivery: {
        notify: {
          label: "به من اطلاع بده",
          description: "ارسال نتایج به چت",
        },
        silent: {
          label: "بی‌صدا",
          description: "اجرا بدون اعلان",
        },
        isolated: {
          label: "نشست مستقل",
          description: "در نشست خودش اجرا شود",
        },
      },
      steps: {
        what: "چه کاری",
        when: "چه زمانی",
        how: "چگونه",
      },
      defaultName: "اتوماسیون",
      whatHeading: "چه کاری باید انجام دهد؟",
      whatHint: "وظیفه را به زبان طبیعی توصیف کنید. عامل هر بار این پرامپت را اجرا می‌کند.",
      promptPlaceholder: "مثلاً، صندوق ورودی من را برای ایمیل‌های فوری بررسی کن و آن‌ها را خلاصه کن...",
      nameOptional: "نام (اختیاری)",
      namePlaceholder: "مثلاً، بررسی صبحگاهی صندوق ورودی",
      whenHeading: "چه زمانی باید اجرا شود؟",
      whenHint: "یک زمان‌بندی انتخاب کنید. بعداً می‌توانید آن را دقیق‌تر تنظیم کنید.",
      howHeading: "چگونه باید کار کند؟",
      howHint: "نحوهٔ تحویل نتایج را انتخاب کنید.",
      title: "اتوماسیون جدید",
    },
    summary: {
      enabled: "فعال",
      yes: "بله",
      no: "خیر",
      jobs: "کارها",
      nextWake: "بیدارباش بعدی",
      refreshing: "در حال تازه‌سازی...",
      refresh: "تازه‌سازی",
    },
    jobs: {
      title: "کارها",
      subtitle: "همه کارهای زمان‌بندی‌شده ذخیره‌شده در Gateway.",
      shownOf: "{shown} نمایش داده‌شده از {total}",
      searchJobs: "جستجوی کارها",
      searchPlaceholder: "نام، توضیح یا عامل",
      enabled: "فعال",
      schedule: "زمان‌بندی",
      lastRun: "آخرین اجرا",
      all: "همه",
      sort: "مرتب‌سازی",
      nextRun: "اجرای بعدی",
      recentlyUpdated: "به‌تازگی به‌روزرسانی‌شده",
      name: "نام",
      direction: "جهت",
      ascending: "صعودی",
      descending: "نزولی",
      reset: "بازنشانی",
      emptyTitle: "No scheduled jobs yet.",
      emptyHint: "Create one from a plain-language prompt; advanced fields can wait.",
      emptyFilteredHint: "Clear or change filters to see scheduled jobs.",
      noMatching: "کار منطبقی وجود ندارد.",
      loading: "در حال بارگیری...",
      loadMore: "بارگیری کارهای بیشتر",
    },
    runs: {
      title: "تاریخچه اجرا",
      subtitleAll: "آخرین اجراها در همه کارها.",
      subtitleJob: "آخرین اجراها برای {title}.",
      scope: "دامنه",
      allJobs: "همه کارها",
      selectedJob: "کار انتخاب‌شده",
      searchRuns: "جستجوی اجراها",
      searchPlaceholder: "خلاصه، خطا یا کار",
      newestFirst: "جدیدترین ابتدا",
      oldestFirst: "قدیمی‌ترین ابتدا",
      status: "وضعیت",
      delivery: "تحویل",
      clear: "پاک کردن",
      allStatuses: "همه وضعیت‌ها",
      allDelivery: "همه تحویل‌ها",
      selectJobHint: "برای بررسی تاریخچه اجرا، یک کار انتخاب کنید.",
      noMatching: "اجرای منطبقی وجود ندارد.",
      loadMore: "بارگیری اجراهای بیشتر",
      runStatusOk: "تأیید",
      runStatusError: "خطا",
      runStatusSkipped: "ردشده",
      runStatusUnknown: "نامشخص",
      deliveryDelivered: "تحویل‌شده",
      deliveryNotDelivered: "تحویل‌نشده",
      deliveryUnknown: "نامشخص",
      deliveryNotRequested: "درخواست‌نشده",
    },
    form: {
      editJob: "ویرایش کار",
      newJob: "کار جدید",
      advancedJob: "Advanced job",
      updateSubtitle: "کار زمان‌بندی‌شده انتخاب‌شده را به‌روزرسانی کنید.",
      createSubtitle: "یک بیدارباش زمان‌بندی‌شده یا اجرای عامل ایجاد کنید.",
      required: "ضروری",
      requiredSr: "ضروری",
      basics: "مبانی",
      basicsSub: "نام‌گذاری کنید، دستیار را انتخاب کنید و وضعیت فعال بودن را تنظیم کنید.",
      fieldName: "نام",
      description: "توضیح",
      agentId: "شناسه عامل",
      namePlaceholder: "خلاصه صبحگاهی",
      descriptionPlaceholder: "زمینه اختیاری برای این کار",
      agentPlaceholder: "main یا ops",
      agentHelp: "برای انتخاب یک عامل شناخته‌شده شروع به تایپ کنید، یا یک مورد سفارشی وارد کنید.",
      schedule: "زمان‌بندی",
      scheduleSub: "کنترل کنید این کار چه زمانی اجرا شود.",
      every: "هر",
      at: "در",
      cronOption: "Cron",
      runAt: "اجرا در",
      unit: "واحد",
      minutes: "دقیقه",
      hours: "ساعت",
      days: "روز",
      expression: "عبارت",
      expressionPlaceholder: "0 7 * * *",
      everyAmountPlaceholder: "30",
      timezoneOptional: "منطقه زمانی (اختیاری)",
      timezonePlaceholder: "America/Los_Angeles",
      timezoneHelp: "یک منطقه زمانی رایج انتخاب کنید یا هر منطقه زمانی معتبر IANA را وارد کنید.",
      jitterHelp: "به نوسان نیاز دارید؟ از پیشرفته → پنجره پخش / واحد پخش استفاده کنید.",
      execution: "اجرا",
      executionSub: "زمان بیدار شدن و کاری را که این کار باید انجام دهد انتخاب کنید.",
      session: "نشست",
      main: "اصلی",
      isolated: "ایزوله",
      sessionHelp: "اصلی یک رویداد سیستم ارسال می‌کند. ایزوله یک نوبت اختصاصی عامل را اجرا می‌کند.",
      wakeMode: "حالت بیدارباش",
      now: "اکنون",
      nextHeartbeat: "ضربان بعدی",
      wakeModeHelp: "اکنون بلافاصله فعال می‌کند. ضربان بعدی تا چرخه بعدی منتظر می‌ماند.",
      payloadKind: "چه چیزی باید اجرا شود؟",
      systemEvent: "ارسال پیام به خط زمانی اصلی",
      agentTurn: "اجرای وظیفه دستیار (ایزوله)",
      systemEventHelp:
        "متن شما را به خط زمانی اصلی Gateway می‌فرستد (برای یادآوری‌ها/محرک‌ها مناسب است).",
      agentTurnHelp: "یک اجرای دستیار را در نشست خودش با استفاده از پرامپت شما شروع می‌کند.",
      timeoutSeconds: "مهلت زمانی (ثانیه)",
      timeoutPlaceholder: "اختیاری، مثلاً 90",
      timeoutHelp:
        "اختیاری. برای استفاده از رفتار پیش‌فرض مهلت زمانی Gateway برای این اجرا، خالی بگذارید.",
      mainTimelineMessage: "پیام خط زمانی اصلی",
      assistantTaskPrompt: "پرامپت وظیفه دستیار",
      deliverySection: "تحویل",
      deliverySub: "انتخاب کنید خلاصه‌های اجرا به کجا ارسال شوند.",
      resultDelivery: "تحویل نتیجه",
      announceDefault: "اعلام خلاصه (پیش‌فرض)",
      webhookPost: "Webhook POST",
      noneInternal: "هیچ‌کدام (داخلی)",
      deliveryHelp: "اعلام، خلاصه‌ای را به چت ارسال می‌کند. هیچ‌کدام اجرا را داخلی نگه می‌دارد.",
      webhookUrl: "URL وب‌هوک",
      channel: "کانال",
      webhookPlaceholder: "https://example.com/cron",
      channelHelp: "انتخاب کنید کدام کانال متصل خلاصه را دریافت کند.",
      webhookHelp: "خلاصه‌های اجرا را به یک نقطه پایانی وب‌هوک ارسال کنید.",
      to: "به",
      toPlaceholder: "+1555... یا شناسه چت",
      toHelp: "بازنویسی اختیاری گیرنده (شناسه چت، تلفن یا شناسه کاربر).",
      advanced: "پیشرفته",
      advancedHelp: "بازنویسی‌های اختیاری برای تضمین‌های تحویل، نوسان زمان‌بندی و کنترل‌های مدل.",
      deleteAfterRun: "حذف پس از اجرا",
      deleteAfterRunHelp: "بهترین گزینه برای یادآورهای یک‌باره که باید به‌طور خودکار پاک شوند.",
      clearAgentOverride: "پاک کردن بازنویسی عامل",
      clearAgentHelp: "این کار را وادار کنید از دستیار پیش‌فرض Gateway استفاده کند.",
      exactTiming: "زمان‌بندی دقیق (بدون پخش)",
      exactTimingHelp: "اجرا روی مرزهای دقیق cron بدون پخش.",
      staggerWindow: "پنجره پخش",
      staggerUnit: "واحد پخش",
      staggerPlaceholder: "30",
      seconds: "ثانیه",
      model: "مدل",
      modelPlaceholder: "openai/gpt-5.2",
      modelHelp: "برای انتخاب یک مدل شناخته‌شده شروع به تایپ کنید، یا یک مورد سفارشی وارد کنید.",
      thinking: "تفکر",
      thinkingPlaceholder: "low",
      thinkingHelp: "از یک سطح پیشنهادی استفاده کنید یا یک مقدار ویژه ارائه‌دهنده وارد کنید.",
      bestEffortDelivery: "تحویل با بیشترین تلاش",
      bestEffortHelp: "اگر خود تحویل ناموفق شد، کار را ناموفق نکنید.",
      cantAddYet: "هنوز نمی‌توان کار را اضافه کرد",
      fillRequired: "برای فعال شدن ارسال، فیلدهای ضروری زیر را پر کنید.",
      fixFields: "برای ادامه، {count} فیلد را اصلاح کنید.",
      fixFieldsPlural: "برای ادامه، {count} فیلد را اصلاح کنید.",
      saving: "در حال ذخیره...",
      saveChanges: "ذخیره تغییرات",
      addJob: "افزودن کار",
      cancel: "لغو",
    },
    jobList: {
      allJobs: "همه کارها",
      selectJob: "(یک کار انتخاب کنید)",
      enabled: "فعال",
      disabled: "غیرفعال",
      edit: "ویرایش",
      clone: "شبیه‌سازی",
      disable: "غیرفعال کردن",
      enable: "فعال کردن",
      run: "اجرا",
      history: "تاریخچه",
      remove: "حذف",
    },
    jobDetail: {
      system: "سیستم",
      prompt: "پرامپت",
      delivery: "تحویل",
      agent: "عامل",
    },
    jobState: {
      status: "وضعیت",
      next: "بعدی",
      last: "آخرین",
    },
    runEntry: {
      noSummary: "خلاصه‌ای وجود ندارد.",
      runAt: "اجرا در",
      openRunChat: "باز کردن چت اجرا",
      next: "بعدی {rel}",
      due: "موعد {rel}",
    },
    errors: {
      nameRequired: "نام ضروری است.",
      scheduleAtInvalid: "یک تاریخ/زمان معتبر وارد کنید.",
      everyAmountInvalid: "فاصله باید بزرگ‌تر از 0 باشد.",
      cronExprRequired: "عبارت Cron ضروری است.",
      staggerAmountInvalid: "پخش باید بزرگ‌تر از 0 باشد.",
      systemTextRequired: "متن سیستم ضروری است.",
      agentMessageRequired: "پیام عامل ضروری است.",
      timeoutInvalid: "اگر تنظیم شود، مهلت زمانی باید بیشتر از 0 ثانیه باشد.",
      webhookUrlRequired: "URL وب‌هوک ضروری است.",
      webhookUrlInvalid: "URL وب‌هوک باید با http:// یا https:// شروع شود.",
      invalidRunTime: "زمان اجرا نامعتبر است.",
      invalidIntervalAmount: "مقدار فاصله نامعتبر است.",
      cronExprRequiredShort: "عبارت Cron ضروری است.",
      invalidStaggerAmount: "مقدار پخش نامعتبر است.",
      systemEventTextRequired: "متن رویداد سیستم ضروری است.",
      agentMessageRequiredShort: "پیام عامل ضروری است.",
      nameRequiredShort: "نام ضروری است.",
    },
  },
};
